summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorBryan O'Sullivan <bos@lindenlab.com>2009-06-22 15:02:19 -0700
committerBryan O'Sullivan <bos@lindenlab.com>2009-06-22 15:02:19 -0700
commitbaa73fddd9287ddafd2d31551cb253b355ed910a (patch)
treee3f0986617fe6c0ee0a14df6aac13c6bb6f92507 /indra/newview
parentdc3833f31b8a20220ddb1775e1625c016c397435 (diff)
parentfcaa1ad46fd1df4cfec9dee12caf6e7b5bf32136 (diff)
Merge with viewer-2.0.0-3 branch
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/CMakeLists.txt129
-rw-r--r--indra/newview/app_settings/cmd_line.xml724
-rw-r--r--indra/newview/app_settings/settings.xml155
-rw-r--r--indra/newview/character/avatar_lad.xml213
-rw-r--r--indra/newview/character/checkerboard.tgabin0 -> 16428 bytes
-rwxr-xr-xindra/newview/character/invisible_head.tgabin0 -> 140793 bytes
-rw-r--r--indra/newview/installers/windows/installer_template.nsi3
-rw-r--r--indra/newview/installers/windows/lang_nl.nsibin7388 -> 7414 bytes
-rwxr-xr-xindra/newview/linux_tools/launch_url.sh76
-rw-r--r--indra/newview/llagent.cpp1828
-rw-r--r--indra/newview/llagent.h1673
-rw-r--r--indra/newview/llagentpilot.cpp6
-rw-r--r--indra/newview/llagentpilot.h1
-rw-r--r--indra/newview/llagentwearables.cpp1584
-rw-r--r--indra/newview/llagentwearables.h235
-rw-r--r--indra/newview/llappviewer.cpp245
-rw-r--r--indra/newview/llappviewer.h9
-rw-r--r--indra/newview/llappviewermacosx.cpp24
-rw-r--r--indra/newview/llappviewermacosx.h1
-rw-r--r--indra/newview/llappviewerwin32.cpp39
-rw-r--r--indra/newview/llassetuploadresponders.cpp13
-rw-r--r--indra/newview/llavatariconctrl.cpp97
-rw-r--r--indra/newview/llavatariconctrl.h5
-rw-r--r--indra/newview/llavatarlist.cpp163
-rw-r--r--indra/newview/llavatarlist.h63
-rw-r--r--indra/newview/llavatarlistitem.cpp273
-rw-r--r--indra/newview/llavatarlistitem.h102
-rw-r--r--indra/newview/llavatarpropertiesprocessor.cpp347
-rw-r--r--indra/newview/llavatarpropertiesprocessor.h152
-rw-r--r--indra/newview/llbottomtray.cpp346
-rw-r--r--indra/newview/llbottomtray.h91
-rw-r--r--indra/newview/llchatbar.cpp68
-rw-r--r--indra/newview/llchatbar.h3
-rw-r--r--indra/newview/llchiclet.cpp725
-rw-r--r--indra/newview/llchiclet.h286
-rw-r--r--indra/newview/llcolorswatch.cpp2
-rw-r--r--indra/newview/llcurrencyuimanager.cpp3
-rw-r--r--indra/newview/lldebugview.cpp5
-rw-r--r--indra/newview/lldrawable.h2
-rw-r--r--indra/newview/lldrawpoolsky.cpp68
-rw-r--r--indra/newview/lldynamictexture.cpp2
-rw-r--r--indra/newview/llfasttimerview.cpp1128
-rw-r--r--indra/newview/llfasttimerview.h41
-rw-r--r--indra/newview/llfavoritesbar.cpp481
-rw-r--r--indra/newview/llfavoritesbar.h25
-rw-r--r--indra/newview/llfloaterabout.cpp27
-rw-r--r--indra/newview/llfloaterabout.h3
-rw-r--r--indra/newview/llfloateranimpreview.cpp1
-rw-r--r--indra/newview/llfloaterauction.cpp9
-rw-r--r--indra/newview/llfloaterauction.h2
-rw-r--r--indra/newview/llfloaterbuildoptions.cpp2
-rw-r--r--indra/newview/llfloaterbuildoptions.h2
-rw-r--r--indra/newview/llfloaterbulkpermission.cpp6
-rw-r--r--indra/newview/llfloaterbulkpermission.h1
-rw-r--r--indra/newview/llfloaterbump.cpp2
-rw-r--r--indra/newview/llfloaterbump.h5
-rw-r--r--indra/newview/llfloaterbuycurrency.cpp2
-rw-r--r--indra/newview/llfloaterbuyland.cpp2
-rw-r--r--indra/newview/llfloatercamera.cpp15
-rw-r--r--indra/newview/llfloatercamera.h2
-rw-r--r--indra/newview/llfloaterchat.cpp12
-rw-r--r--indra/newview/llfloaterfriends.cpp182
-rw-r--r--indra/newview/llfloaterfriends.h9
-rw-r--r--indra/newview/llfloatergroupinvite.cpp4
-rw-r--r--indra/newview/llfloatergroups.cpp80
-rw-r--r--indra/newview/llfloatergroups.h2
-rw-r--r--indra/newview/llfloaterhardwaresettings.h4
-rw-r--r--indra/newview/llfloaterimagepreview.cpp50
-rw-r--r--indra/newview/llfloaterinspect.cpp5
-rw-r--r--indra/newview/llfloaterlagmeter.cpp92
-rw-r--r--indra/newview/llfloaterlagmeter.h7
-rw-r--r--indra/newview/llfloaterland.cpp31
-rw-r--r--indra/newview/llfloatermap.cpp4
-rw-r--r--indra/newview/llfloaternamedesc.cpp1
-rw-r--r--indra/newview/llfloaternotificationsconsole.cpp12
-rw-r--r--indra/newview/llfloaternotificationsconsole.h2
-rw-r--r--indra/newview/llfloateropenobject.cpp1
-rw-r--r--indra/newview/llfloaterpreference.cpp1394
-rw-r--r--indra/newview/llfloaterpreference.h109
-rw-r--r--indra/newview/llfloaterproperties.cpp9
-rw-r--r--indra/newview/llfloaterregioninfo.cpp1
-rw-r--r--indra/newview/llfloaterreporter.cpp2
-rw-r--r--indra/newview/llfloatersettingsdebug.cpp91
-rw-r--r--indra/newview/llfloatersettingsdebug.h8
-rw-r--r--indra/newview/llfloatersnapshot.cpp8
-rw-r--r--indra/newview/llfloatertools.cpp3
-rw-r--r--indra/newview/llfloateruipreview.cpp109
-rw-r--r--indra/newview/llfloateruipreview.h5
-rw-r--r--indra/newview/llfloatervoicedevicesettings.cpp10
-rw-r--r--indra/newview/llfloatervoicedevicesettings.h3
-rw-r--r--indra/newview/llfolderview.cpp267
-rw-r--r--indra/newview/llfolderview.h42
-rw-r--r--indra/newview/llgesturemgr.cpp7
-rw-r--r--indra/newview/llglsandbox.cpp2
-rw-r--r--indra/newview/llgroupactions.cpp141
-rw-r--r--indra/newview/llgroupactions.h79
-rw-r--r--indra/newview/llgrouplist.cpp70
-rw-r--r--indra/newview/llgrouplist.h53
-rw-r--r--indra/newview/llhudrender.cpp20
-rw-r--r--indra/newview/llhudtext.cpp42
-rw-r--r--indra/newview/llimpanel.cpp24
-rw-r--r--indra/newview/llimview.cpp31
-rw-r--r--indra/newview/llimview.h17
-rw-r--r--indra/newview/llinventorybridge.cpp259
-rw-r--r--indra/newview/llinventorybridge.h188
-rw-r--r--indra/newview/llinventorymodel.cpp312
-rw-r--r--indra/newview/llinventorymodel.h8
-rw-r--r--indra/newview/lljoystickbutton.cpp10
-rw-r--r--indra/newview/lllandmarklist.cpp61
-rw-r--r--indra/newview/lllandmarklist.h13
-rw-r--r--indra/newview/lllocationhistory.cpp8
-rw-r--r--indra/newview/lllocationhistory.h1
-rw-r--r--indra/newview/lllocationinputctrl.cpp1239
-rw-r--r--indra/newview/lllocationinputctrl.h249
-rw-r--r--indra/newview/lllogchat.cpp9
-rw-r--r--indra/newview/llmanip.cpp16
-rw-r--r--indra/newview/llmaniptranslate.cpp2
-rw-r--r--indra/newview/llmemoryview.cpp199
-rw-r--r--indra/newview/llmemoryview.h12
-rw-r--r--indra/newview/llmenucommands.cpp5
-rw-r--r--indra/newview/llmetricperformancetester.cpp258
-rw-r--r--indra/newview/llmetricperformancetester.h159
-rw-r--r--indra/newview/llmorphview.cpp4
-rw-r--r--indra/newview/llmutelist.cpp36
-rw-r--r--indra/newview/llnamebox.cpp2
-rw-r--r--indra/newview/llnameeditor.cpp2
-rw-r--r--indra/newview/llnamelistctrl.cpp4
-rw-r--r--indra/newview/llnamelistctrl.h4
-rw-r--r--indra/newview/llnavigationbar.cpp434
-rw-r--r--indra/newview/llnavigationbar.h19
-rw-r--r--indra/newview/llnetmap.cpp4
-rw-r--r--indra/newview/lloutputmonitorctrl.cpp17
-rw-r--r--indra/newview/lloutputmonitorctrl.h6
-rw-r--r--indra/newview/lloverlaybar.cpp6
-rw-r--r--indra/newview/llpanelavatar.cpp2183
-rw-r--r--indra/newview/llpanelavatar.h341
-rw-r--r--indra/newview/llpanelclassified.cpp33
-rw-r--r--indra/newview/llpanelclassified.h2
-rw-r--r--indra/newview/llpanelgroupgeneral.cpp4
-rw-r--r--indra/newview/llpanelgrouplandmoney.cpp18
-rw-r--r--indra/newview/llpanelgroupnotices.cpp13
-rw-r--r--indra/newview/llpanelgrouproles.cpp4
-rw-r--r--indra/newview/llpanelgrouproles.h1
-rw-r--r--indra/newview/llpanellandmarks.cpp252
-rw-r--r--indra/newview/llpanellandmarks.h61
-rw-r--r--indra/newview/llpanellogin.cpp12
-rw-r--r--indra/newview/llpanelpeople.cpp729
-rw-r--r--indra/newview/llpanelpeople.h122
-rw-r--r--indra/newview/llpanelpermissions.cpp6
-rw-r--r--indra/newview/llpanelpick.cpp572
-rw-r--r--indra/newview/llpanelpick.h105
-rw-r--r--indra/newview/llpanelpicks.cpp469
-rw-r--r--indra/newview/llpanelpicks.h153
-rw-r--r--indra/newview/llpanelplace.cpp234
-rw-r--r--indra/newview/llpanelplace.h13
-rw-r--r--indra/newview/llpanelplaceinfo.cpp382
-rw-r--r--indra/newview/llpanelplaceinfo.h109
-rw-r--r--indra/newview/llpanelplaces.cpp293
-rw-r--r--indra/newview/llpanelplaces.h85
-rw-r--r--indra/newview/llpanelplacestab.cpp98
-rw-r--r--indra/newview/llpanelplacestab.h68
-rw-r--r--indra/newview/llpanelprofileview.cpp112
-rw-r--r--indra/newview/llpanelprofileview.h69
-rw-r--r--indra/newview/llpanelteleporthistory.cpp211
-rw-r--r--indra/newview/llpanelteleporthistory.h72
-rw-r--r--indra/newview/llpreview.cpp4
-rw-r--r--indra/newview/llpreviewanim.cpp2
-rw-r--r--indra/newview/llpreviewgesture.cpp2
-rw-r--r--indra/newview/llpreviewscript.cpp2
-rw-r--r--indra/newview/llrecentpeople.cpp69
-rw-r--r--indra/newview/llrecentpeople.h101
-rw-r--r--indra/newview/llremoteparcelrequest.cpp118
-rw-r--r--indra/newview/llremoteparcelrequest.h64
-rw-r--r--indra/newview/llrootview.h55
-rw-r--r--indra/newview/llselectmgr.cpp7
-rw-r--r--indra/newview/llsidetray.cpp746
-rw-r--r--indra/newview/llsidetray.h240
-rw-r--r--indra/newview/llspatialpartition.h2
-rw-r--r--indra/newview/llstartup.cpp1428
-rw-r--r--indra/newview/llstatusbar.cpp237
-rw-r--r--indra/newview/llstatusbar.h36
-rw-r--r--indra/newview/llsurface.cpp1
-rw-r--r--indra/newview/llteleporthistory.cpp123
-rw-r--r--indra/newview/llteleporthistory.h70
-rw-r--r--indra/newview/lltexglobalcolor.cpp150
-rw-r--r--indra/newview/lltexglobalcolor.h86
-rw-r--r--indra/newview/lltexlayer.cpp1491
-rw-r--r--indra/newview/lltexlayer.h568
-rw-r--r--indra/newview/lltexlayerparams.cpp541
-rw-r--r--indra/newview/lltexlayerparams.h180
-rw-r--r--indra/newview/lltexturectrl.cpp13
-rw-r--r--indra/newview/lltexturefetch.cpp15
-rw-r--r--indra/newview/lltexturefetch.h1
-rw-r--r--indra/newview/lltextureview.cpp8
-rw-r--r--indra/newview/lltoolbar.cpp32
-rw-r--r--indra/newview/lltoolcomp.cpp12
-rw-r--r--indra/newview/lltooldraganddrop.cpp29
-rw-r--r--indra/newview/lltoolfocus.cpp2
-rw-r--r--indra/newview/lltoolgrab.cpp4
-rw-r--r--indra/newview/lltoolmgr.cpp1
-rw-r--r--indra/newview/lltoolmorph.cpp6
-rw-r--r--indra/newview/lltoolobjpicker.cpp3
-rw-r--r--indra/newview/lltoolpie.cpp2
-rw-r--r--indra/newview/lltoolpipette.h2
-rw-r--r--indra/newview/lltoolselect.cpp2
-rw-r--r--indra/newview/lluploaddialog.cpp1
-rw-r--r--indra/newview/llviewercamera.cpp103
-rw-r--r--indra/newview/llviewercamera.h1
-rw-r--r--indra/newview/llviewercontrol.cpp9
-rw-r--r--indra/newview/llviewerdisplay.cpp76
-rw-r--r--indra/newview/llviewerfloaterreg.cpp30
-rw-r--r--indra/newview/llviewergesture.cpp3
-rw-r--r--indra/newview/llviewerinventory.cpp189
-rw-r--r--indra/newview/llviewerinventory.h11
-rw-r--r--indra/newview/llviewerjointattachment.h16
-rw-r--r--indra/newview/llviewerkeyboard.cpp27
-rw-r--r--indra/newview/llviewermenu.cpp568
-rw-r--r--indra/newview/llviewermenufile.cpp3
-rw-r--r--indra/newview/llviewermessage.cpp103
-rw-r--r--indra/newview/llviewermessage.h3
-rw-r--r--indra/newview/llviewerobject.cpp33
-rw-r--r--indra/newview/llviewerobject.h1
-rw-r--r--indra/newview/llviewerobjectlist.cpp3
-rw-r--r--indra/newview/llviewerparcelmgr.cpp11
-rw-r--r--indra/newview/llviewerparcelmgr.h6
-rw-r--r--indra/newview/llviewerparceloverlay.cpp11
-rw-r--r--indra/newview/llviewerprecompiledheaders.h5
-rw-r--r--indra/newview/llviewerregion.cpp1
-rw-r--r--indra/newview/llviewerstats.cpp14
-rw-r--r--indra/newview/llviewertexteditor.cpp5
-rw-r--r--indra/newview/llviewervisualparam.cpp14
-rw-r--r--indra/newview/llviewervisualparam.h2
-rw-r--r--indra/newview/llviewerwindow.cpp789
-rw-r--r--indra/newview/llviewerwindow.h21
-rw-r--r--indra/newview/llvoavatar.cpp3370
-rw-r--r--indra/newview/llvoavatar.h1330
-rw-r--r--indra/newview/llvoavatardefines.cpp258
-rw-r--r--indra/newview/llvoavatardefines.h176
-rw-r--r--indra/newview/llvoavatarself.cpp2016
-rw-r--r--indra/newview/llvoavatarself.h321
-rw-r--r--indra/newview/llvoiceclient.cpp1
-rw-r--r--indra/newview/llvopartgroup.cpp4
-rw-r--r--indra/newview/llvosky.cpp4
-rw-r--r--indra/newview/llvotree.cpp28
-rw-r--r--indra/newview/llvotree.h5
-rw-r--r--indra/newview/llvovolume.cpp65
-rw-r--r--indra/newview/llwearable.cpp234
-rw-r--r--indra/newview/llwearable.h97
-rw-r--r--indra/newview/llwearablelist.cpp102
-rw-r--r--indra/newview/llwearablelist.h30
-rw-r--r--indra/newview/llworld.cpp1
-rw-r--r--indra/newview/llworldmap.cpp4
-rw-r--r--indra/newview/llworldmapview.cpp18
-rw-r--r--indra/newview/llworldmapview.h4
-rw-r--r--indra/newview/pipeline.cpp130
-rw-r--r--indra/newview/pipeline.h1
-rw-r--r--indra/newview/skins/default/colors.xml32
-rw-r--r--indra/newview/skins/default/textures/show_btn.tgabin0 -> 3884 bytes
-rw-r--r--indra/newview/skins/default/textures/show_btn_selected.tgabin0 -> 3884 bytes
-rw-r--r--indra/newview/skins/default/textures/textures.xml7
-rw-r--r--indra/newview/skins/default/xui/da/floater_about_land.xml427
-rw-r--r--indra/newview/skins/default/xui/da/floater_animation_preview.xml13
-rw-r--r--indra/newview/skins/default/xui/da/floater_buy_land.xml60
-rw-r--r--indra/newview/skins/default/xui/da/floater_customize.xml512
-rw-r--r--indra/newview/skins/default/xui/da/floater_env_settings.xml52
-rw-r--r--indra/newview/skins/default/xui/da/floater_gesture.xml32
-rw-r--r--indra/newview/skins/default/xui/da/floater_hardware_settings.xml60
-rw-r--r--indra/newview/skins/default/xui/da/floater_hud.xml4
-rw-r--r--indra/newview/skins/default/xui/da/floater_im.xml90
-rw-r--r--indra/newview/skins/default/xui/da/floater_image_preview.xml64
-rw-r--r--indra/newview/skins/default/xui/da/floater_inspect.xml26
-rw-r--r--indra/newview/skins/default/xui/da/floater_inventory_item_properties.xml8
-rw-r--r--indra/newview/skins/default/xui/da/floater_inventory_view_finder.xml48
-rw-r--r--indra/newview/skins/default/xui/da/floater_mem_leaking.xml36
-rw-r--r--indra/newview/skins/default/xui/da/floater_preview_gesture.xml44
-rw-r--r--indra/newview/skins/default/xui/da/floater_region_info.xml4
-rw-r--r--indra/newview/skins/default/xui/da/floater_report_abuse.xml47
-rw-r--r--indra/newview/skins/default/xui/da/floater_sell_land.xml8
-rw-r--r--indra/newview/skins/default/xui/da/floater_snapshot.xml58
-rw-r--r--indra/newview/skins/default/xui/da/floater_tools.xml349
-rw-r--r--indra/newview/skins/default/xui/da/floater_top_objects.xml110
-rw-r--r--indra/newview/skins/default/xui/da/floater_url_entry.xml24
-rw-r--r--indra/newview/skins/default/xui/da/floater_water.xml206
-rw-r--r--indra/newview/skins/default/xui/da/floater_windlight_options.xml456
-rw-r--r--indra/newview/skins/default/xui/da/floater_world_map.xml80
-rw-r--r--indra/newview/skins/default/xui/da/mime_types.xml460
-rw-r--r--indra/newview/skins/default/xui/da/notifications.xml3564
-rw-r--r--indra/newview/skins/default/xui/da/panel_audio_device.xml50
-rw-r--r--indra/newview/skins/default/xui/da/panel_friends.xml52
-rw-r--r--indra/newview/skins/default/xui/da/panel_group_general.xml158
-rw-r--r--indra/newview/skins/default/xui/da/panel_group_invite.xml60
-rw-r--r--indra/newview/skins/default/xui/da/panel_group_land_money.xml160
-rw-r--r--indra/newview/skins/default/xui/da/panel_group_notices.xml146
-rw-r--r--indra/newview/skins/default/xui/da/panel_group_roles.xml322
-rw-r--r--indra/newview/skins/default/xui/da/panel_groups.xml36
-rw-r--r--indra/newview/skins/default/xui/da/panel_preferences_chat.xml12
-rw-r--r--indra/newview/skins/default/xui/da/panel_preferences_general.xml75
-rw-r--r--indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml32
-rw-r--r--indra/newview/skins/default/xui/da/panel_region_covenant.xml100
-rw-r--r--indra/newview/skins/default/xui/da/panel_region_debug.xml102
-rw-r--r--indra/newview/skins/default/xui/da/panel_region_estate.xml142
-rw-r--r--indra/newview/skins/default/xui/da/panel_region_general.xml92
-rw-r--r--indra/newview/skins/default/xui/da/panel_region_terrain.xml60
-rw-r--r--indra/newview/skins/default/xui/da/panel_region_texture.xml114
-rw-r--r--indra/newview/skins/default/xui/da/panel_scrolling_param.xml24
-rw-r--r--indra/newview/skins/default/xui/da/panel_status_bar.xml88
-rw-r--r--indra/newview/skins/default/xui/da/role_actions.xml402
-rw-r--r--indra/newview/skins/default/xui/da/teleport_strings.xml176
-rw-r--r--indra/newview/skins/default/xui/de/floater_about.xml3
-rw-r--r--indra/newview/skins/default/xui/de/floater_about_land.xml275
-rw-r--r--indra/newview/skins/default/xui/de/floater_avatar_picker.xml54
-rw-r--r--indra/newview/skins/default/xui/de/floater_avatar_textures.xml47
-rw-r--r--indra/newview/skins/default/xui/de/floater_bulk_perms.xml44
-rw-r--r--indra/newview/skins/default/xui/de/floater_buy_land.xml206
-rw-r--r--indra/newview/skins/default/xui/de/floater_customize.xml530
-rw-r--r--indra/newview/skins/default/xui/de/floater_font_test.xml6
-rw-r--r--indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml8
-rw-r--r--indra/newview/skins/default/xui/de/floater_joystick.xml44
-rw-r--r--indra/newview/skins/default/xui/de/floater_land_holdings.xml21
-rw-r--r--indra/newview/skins/default/xui/de/floater_notification.xml7
-rw-r--r--indra/newview/skins/default/xui/de/floater_notifications_console.xml5
-rw-r--r--indra/newview/skins/default/xui/de/floater_perm_prefs.xml16
-rw-r--r--indra/newview/skins/default/xui/de/floater_preview_gesture.xml8
-rw-r--r--indra/newview/skins/default/xui/de/floater_report_abuse.xml24
-rw-r--r--indra/newview/skins/default/xui/de/floater_sell_land.xml36
-rw-r--r--indra/newview/skins/default/xui/de/floater_snapshot.xml4
-rw-r--r--indra/newview/skins/default/xui/de/floater_sound_preview.xml20
-rw-r--r--indra/newview/skins/default/xui/de/floater_statistics.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_tools.xml660
-rw-r--r--indra/newview/skins/default/xui/de/floater_tos.xml8
-rw-r--r--indra/newview/skins/default/xui/de/floater_world_map.xml38
-rw-r--r--indra/newview/skins/default/xui/de/menu_inventory.xml119
-rw-r--r--indra/newview/skins/default/xui/de/menu_mini_map.xml8
-rw-r--r--indra/newview/skins/default/xui/de/menu_viewer.xml37
-rw-r--r--indra/newview/skins/default/xui/de/notifications.xml8784
-rw-r--r--indra/newview/skins/default/xui/de/panel_group_general.xml14
-rw-r--r--indra/newview/skins/default/xui/de/panel_group_invite.xml8
-rw-r--r--indra/newview/skins/default/xui/de/panel_group_land_money.xml44
-rw-r--r--indra/newview/skins/default/xui/de/panel_group_roles.xml2
-rw-r--r--indra/newview/skins/default/xui/de/panel_notifications_channel.xml15
-rw-r--r--indra/newview/skins/default/xui/de/panel_preferences_chat.xml12
-rw-r--r--indra/newview/skins/default/xui/de/panel_preferences_general.xml45
-rw-r--r--indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml32
-rw-r--r--indra/newview/skins/default/xui/de/panel_region_covenant.xml96
-rw-r--r--indra/newview/skins/default/xui/de/panel_region_general.xml72
-rw-r--r--indra/newview/skins/default/xui/de/strings.xml99
-rw-r--r--indra/newview/skins/default/xui/de/teleport_strings.xml30
-rw-r--r--indra/newview/skins/default/xui/en/accordion_parent.xml7
-rw-r--r--indra/newview/skins/default/xui/en/floater_about.xml117
-rw-r--r--indra/newview/skins/default/xui/en/floater_about_land.xml2139
-rw-r--r--indra/newview/skins/default/xui/en/floater_animation_preview.xml475
-rw-r--r--indra/newview/skins/default/xui/en/floater_auction.xml68
-rw-r--r--indra/newview/skins/default/xui/en/floater_avatar_picker.xml208
-rw-r--r--indra/newview/skins/default/xui/en/floater_avatar_textures.xml211
-rw-r--r--indra/newview/skins/default/xui/en/floater_beacons.xml86
-rw-r--r--indra/newview/skins/default/xui/en/floater_build_options.xml71
-rw-r--r--indra/newview/skins/default/xui/en/floater_bulk_perms.xml337
-rw-r--r--indra/newview/skins/default/xui/en/floater_bumps.xml47
-rw-r--r--indra/newview/skins/default/xui/en/floater_buy_contents.xml94
-rw-r--r--indra/newview/skins/default/xui/en/floater_buy_currency.xml294
-rw-r--r--indra/newview/skins/default/xui/en/floater_buy_land.xml696
-rw-r--r--indra/newview/skins/default/xui/en/floater_buy_object.xml108
-rw-r--r--indra/newview/skins/default/xui/en/floater_camera.xml69
-rw-r--r--indra/newview/skins/default/xui/en/floater_choose_group.xml49
-rw-r--r--indra/newview/skins/default/xui/en/floater_color_picker.xml228
-rw-r--r--indra/newview/skins/default/xui/en/floater_critical.xml57
-rw-r--r--indra/newview/skins/default/xui/en/floater_customize.xml3574
-rw-r--r--indra/newview/skins/default/xui/en/floater_day_cycle_options.xml613
-rw-r--r--indra/newview/skins/default/xui/en/floater_device_settings.xml16
-rw-r--r--indra/newview/skins/default/xui/en/floater_env_settings.xml174
-rw-r--r--indra/newview/skins/default/xui/en/floater_font_test.xml336
-rw-r--r--indra/newview/skins/default/xui/en/floater_gesture.xml91
-rw-r--r--indra/newview/skins/default/xui/en/floater_god_tools.xml685
-rw-r--r--indra/newview/skins/default/xui/en/floater_hardware_settings.xml158
-rw-r--r--indra/newview/skins/default/xui/en/floater_hud.xml20
-rw-r--r--indra/newview/skins/default/xui/en/floater_im.xml78
-rw-r--r--indra/newview/skins/default/xui/en/floater_image_preview.xml125
-rw-r--r--indra/newview/skins/default/xui/en/floater_incoming_call.xml67
-rw-r--r--indra/newview/skins/default/xui/en/floater_inspect.xml64
-rw-r--r--indra/newview/skins/default/xui/en/floater_inventory.xml423
-rw-r--r--indra/newview/skins/default/xui/en/floater_inventory_item_properties.xml395
-rw-r--r--indra/newview/skins/default/xui/en/floater_inventory_view_finder.xml281
-rw-r--r--indra/newview/skins/default/xui/en/floater_joystick.xml859
-rw-r--r--indra/newview/skins/default/xui/en/floater_lagmeter.xml346
-rw-r--r--indra/newview/skins/default/xui/en/floater_land_holdings.xml164
-rw-r--r--indra/newview/skins/default/xui/en/floater_live_lsleditor.xml71
-rw-r--r--indra/newview/skins/default/xui/en/floater_lsl_guide.xml62
-rw-r--r--indra/newview/skins/default/xui/en/floater_map.xml172
-rw-r--r--indra/newview/skins/default/xui/en/floater_media_browser.xml144
-rw-r--r--indra/newview/skins/default/xui/en/floater_mem_leaking.xml110
-rw-r--r--indra/newview/skins/default/xui/en/floater_moveview.xml127
-rw-r--r--indra/newview/skins/default/xui/en/floater_mute_object.xml55
-rw-r--r--indra/newview/skins/default/xui/en/floater_my_friends.xml41
-rw-r--r--indra/newview/skins/default/xui/en/floater_nearby_chat.xml32
-rw-r--r--indra/newview/skins/default/xui/en/floater_notification.xml36
-rw-r--r--indra/newview/skins/default/xui/en/floater_notifications_console.xml39
-rw-r--r--indra/newview/skins/default/xui/en/floater_openobject.xml57
-rw-r--r--indra/newview/skins/default/xui/en/floater_pay.xml129
-rw-r--r--indra/newview/skins/default/xui/en/floater_pay_object.xml174
-rw-r--r--indra/newview/skins/default/xui/en/floater_perm_prefs.xml106
-rw-r--r--indra/newview/skins/default/xui/en/floater_post_process.xml420
-rw-r--r--indra/newview/skins/default/xui/en/floater_postcard.xml156
-rw-r--r--indra/newview/skins/default/xui/en/floater_preferences.xml154
-rw-r--r--indra/newview/skins/default/xui/en/floater_preview_animation.xml57
-rw-r--r--indra/newview/skins/default/xui/en/floater_preview_classified.xml22
-rw-r--r--indra/newview/skins/default/xui/en/floater_preview_event.xml22
-rw-r--r--indra/newview/skins/default/xui/en/floater_preview_gesture.xml351
-rw-r--r--indra/newview/skins/default/xui/en/floater_preview_notecard.xml105
-rw-r--r--indra/newview/skins/default/xui/en/floater_preview_sound.xml61
-rw-r--r--indra/newview/skins/default/xui/en/floater_preview_texture.xml77
-rw-r--r--indra/newview/skins/default/xui/en/floater_region_info.xml18
-rw-r--r--indra/newview/skins/default/xui/en/floater_report_abuse.xml454
-rw-r--r--indra/newview/skins/default/xui/en/floater_script_debug.xml19
-rw-r--r--indra/newview/skins/default/xui/en/floater_script_debug_panel.xml20
-rw-r--r--indra/newview/skins/default/xui/en/floater_script_preview.xml62
-rw-r--r--indra/newview/skins/default/xui/en/floater_script_queue.xml49
-rw-r--r--indra/newview/skins/default/xui/en/floater_script_search.xml90
-rw-r--r--indra/newview/skins/default/xui/en/floater_select_key.xml32
-rw-r--r--indra/newview/skins/default/xui/en/floater_sell_land.xml315
-rw-r--r--indra/newview/skins/default/xui/en/floater_settings_debug.xml135
-rw-r--r--indra/newview/skins/default/xui/en/floater_snapshot.xml370
-rw-r--r--indra/newview/skins/default/xui/en/floater_sound_preview.xml75
-rw-r--r--indra/newview/skins/default/xui/en/floater_statistics.xml10
-rw-r--r--indra/newview/skins/default/xui/en/floater_stats.xml30
-rw-r--r--indra/newview/skins/default/xui/en/floater_telehub.xml132
-rw-r--r--indra/newview/skins/default/xui/en/floater_test_button.xml111
-rw-r--r--indra/newview/skins/default/xui/en/floater_test_checkbox.xml83
-rw-r--r--indra/newview/skins/default/xui/en/floater_test_combobox.xml143
-rw-r--r--indra/newview/skins/default/xui/en/floater_test_layout.xml88
-rw-r--r--indra/newview/skins/default/xui/en/floater_test_radiogroup.xml81
-rw-r--r--indra/newview/skins/default/xui/en/floater_test_slider.xml77
-rw-r--r--indra/newview/skins/default/xui/en/floater_test_spinner.xml93
-rw-r--r--indra/newview/skins/default/xui/en/floater_test_textbox.xml129
-rw-r--r--indra/newview/skins/default/xui/en/floater_test_widgets.xml342
-rw-r--r--indra/newview/skins/default/xui/en/floater_texture_ctrl.xml149
-rw-r--r--indra/newview/skins/default/xui/en/floater_tools.xml2866
-rw-r--r--indra/newview/skins/default/xui/en/floater_top_objects.xml224
-rw-r--r--indra/newview/skins/default/xui/en/floater_tos.xml79
-rw-r--r--indra/newview/skins/default/xui/en/floater_ui_preview.xml381
-rw-r--r--indra/newview/skins/default/xui/en/floater_url_entry.xml69
-rw-r--r--indra/newview/skins/default/xui/en/floater_water.xml656
-rw-r--r--indra/newview/skins/default/xui/en/floater_wearable_save_as.xml58
-rw-r--r--indra/newview/skins/default/xui/en/floater_windlight_options.xml1487
-rw-r--r--indra/newview/skins/default/xui/en/floater_world_map.xml540
-rw-r--r--indra/newview/skins/default/xui/en/fonts.xml108
-rw-r--r--indra/newview/skins/default/xui/en/menu_avatar_icon.xml43
-rw-r--r--indra/newview/skins/default/xui/en/menu_favorites.xml39
-rw-r--r--indra/newview/skins/default/xui/en/menu_group_plus.xml11
-rw-r--r--indra/newview/skins/default/xui/en/menu_inventory.xml518
-rw-r--r--indra/newview/skins/default/xui/en/menu_login.xml105
-rw-r--r--indra/newview/skins/default/xui/en/menu_mini_map.xml56
-rw-r--r--indra/newview/skins/default/xui/en/menu_navbar.xml85
-rw-r--r--indra/newview/skins/default/xui/en/menu_nearby_chat.xml43
-rw-r--r--indra/newview/skins/default/xui/en/menu_slurl.xml37
-rw-r--r--indra/newview/skins/default/xui/en/menu_viewer.xml3545
-rw-r--r--indra/newview/skins/default/xui/en/mime_types.xml456
-rw-r--r--indra/newview/skins/default/xui/en/notifications.xml6470
-rw-r--r--indra/newview/skins/default/xui/en/panel_audio_device.xml153
-rw-r--r--indra/newview/skins/default/xui/en/panel_avatar_list_item.xml65
-rw-r--r--indra/newview/skins/default/xui/en/panel_bars.xml69
-rw-r--r--indra/newview/skins/default/xui/en/panel_bottomtray.xml41
-rw-r--r--indra/newview/skins/default/xui/en/panel_classified.xml135
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_pick.xml147
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_profile.xml243
-rw-r--r--indra/newview/skins/default/xui/en/panel_friends.xml124
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_general.xml316
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_invite.xml102
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_land_money.xml373
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_notices.xml378
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_roles.xml743
-rw-r--r--indra/newview/skins/default/xui/en/panel_groups.xml111
-rw-r--r--indra/newview/skins/default/xui/en/panel_landmark_info.xml258
-rw-r--r--indra/newview/skins/default/xui/en/panel_landmarks.xml10
-rw-r--r--indra/newview/skins/default/xui/en/panel_login.xml221
-rw-r--r--indra/newview/skins/default/xui/en/panel_navigation_bar.xml142
-rw-r--r--indra/newview/skins/default/xui/en/panel_nearby_chat.xml27
-rw-r--r--indra/newview/skins/default/xui/en/panel_notes.xml202
-rw-r--r--indra/newview/skins/default/xui/en/panel_notifications_channel.xml77
-rw-r--r--indra/newview/skins/default/xui/en/panel_people.xml443
-rw-r--r--indra/newview/skins/default/xui/en/panel_pick_info.xml184
-rw-r--r--indra/newview/skins/default/xui/en/panel_picks.xml173
-rw-r--r--indra/newview/skins/default/xui/en/panel_places.xml86
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_chat.xml370
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_general.xml427
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml921
-rw-r--r--indra/newview/skins/default/xui/en/panel_profile.xml574
-rw-r--r--indra/newview/skins/default/xui/en/panel_profile_view.xml64
-rw-r--r--indra/newview/skins/default/xui/en/panel_progress.xml133
-rw-r--r--indra/newview/skins/default/xui/en/panel_region_covenant.xml328
-rw-r--r--indra/newview/skins/default/xui/en/panel_region_debug.xml272
-rw-r--r--indra/newview/skins/default/xui/en/panel_region_estate.xml519
-rw-r--r--indra/newview/skins/default/xui/en/panel_region_general.xml350
-rw-r--r--indra/newview/skins/default/xui/en/panel_region_terrain.xml239
-rw-r--r--indra/newview/skins/default/xui/en/panel_region_texture.xml340
-rw-r--r--indra/newview/skins/default/xui/en/panel_script_ed.xml190
-rw-r--r--indra/newview/skins/default/xui/en/panel_scrolling_param.xml92
-rw-r--r--indra/newview/skins/default/xui/en/panel_side_tray.xml95
-rw-r--r--indra/newview/skins/default/xui/en/panel_side_tray_tab_caption.xml15
-rw-r--r--indra/newview/skins/default/xui/en/panel_status_bar.xml252
-rw-r--r--indra/newview/skins/default/xui/en/panel_teleport_history.xml12
-rw-r--r--indra/newview/skins/default/xui/en/panel_world_map.xml128
-rw-r--r--indra/newview/skins/default/xui/en/role_actions.xml187
-rw-r--r--indra/newview/skins/default/xui/en/strings.xml788
-rw-r--r--indra/newview/skins/default/xui/en/teleport_strings.xml90
-rw-r--r--indra/newview/skins/default/xui/en/widgets/button.xml17
-rw-r--r--indra/newview/skins/default/xui/en/widgets/check_box.xml18
-rw-r--r--indra/newview/skins/default/xui/en/widgets/color_swatch.xml10
-rw-r--r--indra/newview/skins/default/xui/en/widgets/combo_box.xml22
-rw-r--r--indra/newview/skins/default/xui/en/widgets/drop_down.xml20
-rw-r--r--indra/newview/skins/default/xui/en/widgets/flyout_button.xml13
-rw-r--r--indra/newview/skins/default/xui/en/widgets/icon.xml7
-rw-r--r--indra/newview/skins/default/xui/en/widgets/line_editor.xml18
-rw-r--r--indra/newview/skins/default/xui/en/widgets/location_input.xml66
-rw-r--r--indra/newview/skins/default/xui/en/widgets/menu.xml6
-rw-r--r--indra/newview/skins/default/xui/en/widgets/menu_item_call.xml6
-rw-r--r--indra/newview/skins/default/xui/en/widgets/menu_item_check.xml6
-rw-r--r--indra/newview/skins/default/xui/en/widgets/menu_item_separator.xml6
-rw-r--r--indra/newview/skins/default/xui/en/widgets/multi_slider.xml6
-rw-r--r--indra/newview/skins/default/xui/en/widgets/multi_slider_bar.xml10
-rw-r--r--indra/newview/skins/default/xui/en/widgets/name_editor.xml2
-rw-r--r--indra/newview/skins/default/xui/en/widgets/panel.xml5
-rw-r--r--indra/newview/skins/default/xui/en/widgets/progress_bar.xml21
-rw-r--r--indra/newview/skins/default/xui/en/widgets/radio_group.xml6
-rw-r--r--indra/newview/skins/default/xui/en/widgets/radio_item.xml9
-rw-r--r--indra/newview/skins/default/xui/en/widgets/scroll_bar.xml19
-rw-r--r--indra/newview/skins/default/xui/en/widgets/scroll_container.xml3
-rw-r--r--indra/newview/skins/default/xui/en/widgets/scroll_list.xml16
-rw-r--r--indra/newview/skins/default/xui/en/widgets/search_editor.xml6
-rw-r--r--indra/newview/skins/default/xui/en/widgets/side_tray.xml8
-rw-r--r--indra/newview/skins/default/xui/en/widgets/simple_text_editor.xml11
-rw-r--r--indra/newview/skins/default/xui/en/widgets/slider.xml16
-rw-r--r--indra/newview/skins/default/xui/en/widgets/slider_bar.xml7
-rw-r--r--indra/newview/skins/default/xui/en/widgets/spinner.xml5
-rw-r--r--indra/newview/skins/default/xui/en/widgets/tab_container.xml9
-rw-r--r--indra/newview/skins/default/xui/en/widgets/text.xml16
-rw-r--r--indra/newview/skins/default/xui/en/widgets/text_editor.xml19
-rw-r--r--indra/newview/skins/default/xui/en/widgets/texture_picker.xml9
-rw-r--r--indra/newview/skins/default/xui/en/widgets/view_border.xml8
-rw-r--r--indra/newview/skins/default/xui/en/widgets/web_browser.xml2
-rw-r--r--indra/newview/skins/default/xui/en/xui_version.xml4
-rw-r--r--indra/newview/skins/default/xui/es/floater_about.xml2
-rw-r--r--indra/newview/skins/default/xui/es/floater_about_land.xml251
-rw-r--r--indra/newview/skins/default/xui/es/floater_animation_preview.xml25
-rw-r--r--indra/newview/skins/default/xui/es/floater_avatar_picker.xml43
-rw-r--r--indra/newview/skins/default/xui/es/floater_beacons.xml30
-rw-r--r--indra/newview/skins/default/xui/es/floater_bulk_perms.xml44
-rw-r--r--indra/newview/skins/default/xui/es/floater_buy_currency.xml10
-rw-r--r--indra/newview/skins/default/xui/es/floater_buy_land.xml37
-rw-r--r--indra/newview/skins/default/xui/es/floater_camera.xml24
-rw-r--r--indra/newview/skins/default/xui/es/floater_customize.xml181
-rw-r--r--indra/newview/skins/default/xui/es/floater_day_cycle_options.xml188
-rw-r--r--indra/newview/skins/default/xui/es/floater_device_settings.xml4
-rw-r--r--indra/newview/skins/default/xui/es/floater_env_settings.xml46
-rw-r--r--indra/newview/skins/default/xui/es/floater_font_test.xml6
-rw-r--r--indra/newview/skins/default/xui/es/floater_hardware_settings.xml56
-rw-r--r--indra/newview/skins/default/xui/es/floater_hud.xml4
-rw-r--r--indra/newview/skins/default/xui/es/floater_image_preview.xml10
-rw-r--r--indra/newview/skins/default/xui/es/floater_inspect.xml22
-rw-r--r--indra/newview/skins/default/xui/es/floater_inventory_item_properties.xml16
-rw-r--r--indra/newview/skins/default/xui/es/floater_joystick.xml168
-rw-r--r--indra/newview/skins/default/xui/es/floater_lagmeter.xml304
-rw-r--r--indra/newview/skins/default/xui/es/floater_land_holdings.xml5
-rw-r--r--indra/newview/skins/default/xui/es/floater_lsl_guide.xml14
-rw-r--r--indra/newview/skins/default/xui/es/floater_media_browser.xml38
-rw-r--r--indra/newview/skins/default/xui/es/floater_mem_leaking.xml36
-rw-r--r--indra/newview/skins/default/xui/es/floater_mute_object.xml24
-rw-r--r--indra/newview/skins/default/xui/es/floater_my_friends.xml14
-rw-r--r--indra/newview/skins/default/xui/es/floater_perm_prefs.xml16
-rw-r--r--indra/newview/skins/default/xui/es/floater_post_process.xml106
-rw-r--r--indra/newview/skins/default/xui/es/floater_preview_classified.xml4
-rw-r--r--indra/newview/skins/default/xui/es/floater_preview_event.xml4
-rw-r--r--indra/newview/skins/default/xui/es/floater_preview_gesture.xml24
-rw-r--r--indra/newview/skins/default/xui/es/floater_region_info.xml4
-rw-r--r--indra/newview/skins/default/xui/es/floater_report_abuse.xml22
-rw-r--r--indra/newview/skins/default/xui/es/floater_select_key.xml14
-rw-r--r--indra/newview/skins/default/xui/es/floater_sell_land.xml18
-rw-r--r--indra/newview/skins/default/xui/es/floater_settings_debug.xml2
-rw-r--r--indra/newview/skins/default/xui/es/floater_snapshot.xml24
-rw-r--r--indra/newview/skins/default/xui/es/floater_sound_preview.xml2
-rw-r--r--indra/newview/skins/default/xui/es/floater_statistics.xml2
-rw-r--r--indra/newview/skins/default/xui/es/floater_tools.xml316
-rw-r--r--indra/newview/skins/default/xui/es/floater_url_entry.xml24
-rw-r--r--indra/newview/skins/default/xui/es/floater_water.xml176
-rw-r--r--indra/newview/skins/default/xui/es/floater_windlight_options.xml378
-rw-r--r--indra/newview/skins/default/xui/es/floater_world_map.xml37
-rw-r--r--indra/newview/skins/default/xui/es/menu_inventory.xml1
-rw-r--r--indra/newview/skins/default/xui/es/menu_login.xml26
-rw-r--r--indra/newview/skins/default/xui/es/menu_mini_map.xml8
-rw-r--r--indra/newview/skins/default/xui/es/menu_slurl.xml12
-rw-r--r--indra/newview/skins/default/xui/es/menu_viewer.xml14
-rw-r--r--indra/newview/skins/default/xui/es/mime_types.xml460
-rw-r--r--indra/newview/skins/default/xui/es/notifications.xml8835
-rw-r--r--indra/newview/skins/default/xui/es/panel_audio_device.xml50
-rw-r--r--indra/newview/skins/default/xui/es/panel_friends.xml40
-rw-r--r--indra/newview/skins/default/xui/es/panel_group_general.xml13
-rw-r--r--indra/newview/skins/default/xui/es/panel_group_invite.xml4
-rw-r--r--indra/newview/skins/default/xui/es/panel_group_land_money.xml10
-rw-r--r--indra/newview/skins/default/xui/es/panel_group_roles.xml2
-rw-r--r--indra/newview/skins/default/xui/es/panel_groups.xml30
-rw-r--r--indra/newview/skins/default/xui/es/panel_preferences_chat.xml17
-rw-r--r--indra/newview/skins/default/xui/es/panel_preferences_general.xml41
-rw-r--r--indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml76
-rw-r--r--indra/newview/skins/default/xui/es/panel_region_covenant.xml86
-rw-r--r--indra/newview/skins/default/xui/es/panel_region_general.xml21
-rw-r--r--indra/newview/skins/default/xui/es/strings.xml907
-rw-r--r--indra/newview/skins/default/xui/es/teleport_strings.xml150
-rw-r--r--indra/newview/skins/default/xui/fr/floater_about.xml5
-rw-r--r--indra/newview/skins/default/xui/fr/floater_about_land.xml331
-rw-r--r--indra/newview/skins/default/xui/fr/floater_avatar_picker.xml53
-rw-r--r--indra/newview/skins/default/xui/fr/floater_avatar_textures.xml55
-rw-r--r--indra/newview/skins/default/xui/fr/floater_beacons.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/floater_bulk_perms.xml84
-rw-r--r--indra/newview/skins/default/xui/fr/floater_buy_contents.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/floater_buy_currency.xml17
-rw-r--r--indra/newview/skins/default/xui/fr/floater_buy_land.xml23
-rw-r--r--indra/newview/skins/default/xui/fr/floater_customize.xml235
-rw-r--r--indra/newview/skins/default/xui/fr/floater_font_test.xml14
-rw-r--r--indra/newview/skins/default/xui/fr/floater_god_tools.xml14
-rw-r--r--indra/newview/skins/default/xui/fr/floater_im.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml8
-rw-r--r--indra/newview/skins/default/xui/fr/floater_land_holdings.xml21
-rw-r--r--indra/newview/skins/default/xui/fr/floater_live_lsleditor.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/floater_notification.xml14
-rw-r--r--indra/newview/skins/default/xui/fr/floater_notifications_console.xml10
-rw-r--r--indra/newview/skins/default/xui/fr/floater_perm_prefs.xml32
-rw-r--r--indra/newview/skins/default/xui/fr/floater_preview_gesture.xml9
-rw-r--r--indra/newview/skins/default/xui/fr/floater_report_abuse.xml162
-rw-r--r--indra/newview/skins/default/xui/fr/floater_sell_land.xml16
-rw-r--r--indra/newview/skins/default/xui/fr/floater_snapshot.xml12
-rw-r--r--indra/newview/skins/default/xui/fr/floater_sound_preview.xml18
-rw-r--r--indra/newview/skins/default/xui/fr/floater_statistics.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/floater_tools.xml53
-rw-r--r--indra/newview/skins/default/xui/fr/floater_top_objects.xml12
-rw-r--r--indra/newview/skins/default/xui/fr/floater_tos.xml8
-rw-r--r--indra/newview/skins/default/xui/fr/floater_world_map.xml64
-rw-r--r--indra/newview/skins/default/xui/fr/menu_login.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/menu_mini_map.xml8
-rw-r--r--indra/newview/skins/default/xui/fr/menu_viewer.xml18
-rw-r--r--indra/newview/skins/default/xui/fr/notifications.xml8741
-rw-r--r--indra/newview/skins/default/xui/fr/panel_friends.xml12
-rw-r--r--indra/newview/skins/default/xui/fr/panel_group_general.xml52
-rw-r--r--indra/newview/skins/default/xui/fr/panel_group_land_money.xml18
-rw-r--r--indra/newview/skins/default/xui/fr/panel_notifications_channel.xml30
-rw-r--r--indra/newview/skins/default/xui/fr/panel_preferences_chat.xml12
-rw-r--r--indra/newview/skins/default/xui/fr/panel_preferences_general.xml29
-rw-r--r--indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml32
-rw-r--r--indra/newview/skins/default/xui/fr/panel_region_covenant.xml95
-rw-r--r--indra/newview/skins/default/xui/fr/panel_region_debug.xml6
-rw-r--r--indra/newview/skins/default/xui/fr/panel_region_general.xml28
-rw-r--r--indra/newview/skins/default/xui/fr/role_actions.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/strings.xml28
-rw-r--r--indra/newview/skins/default/xui/fr/teleport_strings.xml31
-rw-r--r--indra/newview/skins/default/xui/it/floater_about.xml72
-rw-r--r--indra/newview/skins/default/xui/it/floater_about_land.xml887
-rw-r--r--indra/newview/skins/default/xui/it/floater_animation_preview.xml179
-rw-r--r--indra/newview/skins/default/xui/it/floater_auction.xml18
-rw-r--r--indra/newview/skins/default/xui/it/floater_avatar_picker.xml55
-rw-r--r--indra/newview/skins/default/xui/it/floater_avatar_textures.xml60
-rw-r--r--indra/newview/skins/default/xui/it/floater_beacons.xml30
-rw-r--r--indra/newview/skins/default/xui/it/floater_build_options.xml16
-rw-r--r--indra/newview/skins/default/xui/it/floater_bulk_perms.xml44
-rw-r--r--indra/newview/skins/default/xui/it/floater_bumps.xml42
-rw-r--r--indra/newview/skins/default/xui/it/floater_buy_contents.xml42
-rw-r--r--indra/newview/skins/default/xui/it/floater_buy_currency.xml135
-rw-r--r--indra/newview/skins/default/xui/it/floater_buy_land.xml460
-rw-r--r--indra/newview/skins/default/xui/it/floater_buy_object.xml52
-rw-r--r--indra/newview/skins/default/xui/it/floater_camera.xml24
-rw-r--r--indra/newview/skins/default/xui/it/floater_choose_group.xml16
-rw-r--r--indra/newview/skins/default/xui/it/floater_color_picker.xml68
-rw-r--r--indra/newview/skins/default/xui/it/floater_critical.xml22
-rw-r--r--indra/newview/skins/default/xui/it/floater_customize.xml895
-rw-r--r--indra/newview/skins/default/xui/it/floater_day_cycle_options.xml188
-rw-r--r--indra/newview/skins/default/xui/it/floater_device_settings.xml4
-rw-r--r--indra/newview/skins/default/xui/it/floater_env_settings.xml46
-rw-r--r--indra/newview/skins/default/xui/it/floater_font_test.xml6
-rw-r--r--indra/newview/skins/default/xui/it/floater_gesture.xml30
-rw-r--r--indra/newview/skins/default/xui/it/floater_hardware_settings.xml56
-rw-r--r--indra/newview/skins/default/xui/it/floater_hud.xml4
-rw-r--r--indra/newview/skins/default/xui/it/floater_im.xml90
-rw-r--r--indra/newview/skins/default/xui/it/floater_image_preview.xml65
-rw-r--r--indra/newview/skins/default/xui/it/floater_inspect.xml22
-rw-r--r--indra/newview/skins/default/xui/it/floater_inventory.xml94
-rw-r--r--indra/newview/skins/default/xui/it/floater_inventory_item_properties.xml166
-rw-r--r--indra/newview/skins/default/xui/it/floater_inventory_view_finder.xml48
-rw-r--r--indra/newview/skins/default/xui/it/floater_joystick.xml168
-rw-r--r--indra/newview/skins/default/xui/it/floater_lagmeter.xml304
-rw-r--r--indra/newview/skins/default/xui/it/floater_land_holdings.xml77
-rw-r--r--indra/newview/skins/default/xui/it/floater_live_lsleditor.xml24
-rw-r--r--indra/newview/skins/default/xui/it/floater_lsl_guide.xml14
-rw-r--r--indra/newview/skins/default/xui/it/floater_media_browser.xml38
-rw-r--r--indra/newview/skins/default/xui/it/floater_mem_leaking.xml36
-rw-r--r--indra/newview/skins/default/xui/it/floater_moveview.xml22
-rw-r--r--indra/newview/skins/default/xui/it/floater_mute_object.xml24
-rw-r--r--indra/newview/skins/default/xui/it/floater_my_friends.xml14
-rw-r--r--indra/newview/skins/default/xui/it/floater_openobject.xml16
-rw-r--r--indra/newview/skins/default/xui/it/floater_pay.xml42
-rw-r--r--indra/newview/skins/default/xui/it/floater_pay_object.xml60
-rw-r--r--indra/newview/skins/default/xui/it/floater_perm_prefs.xml16
-rw-r--r--indra/newview/skins/default/xui/it/floater_post_process.xml106
-rw-r--r--indra/newview/skins/default/xui/it/floater_postcard.xml72
-rw-r--r--indra/newview/skins/default/xui/it/floater_preferences.xml16
-rw-r--r--indra/newview/skins/default/xui/it/floater_preview_animation.xml16
-rw-r--r--indra/newview/skins/default/xui/it/floater_preview_classified.xml4
-rw-r--r--indra/newview/skins/default/xui/it/floater_preview_event.xml4
-rw-r--r--indra/newview/skins/default/xui/it/floater_preview_gesture.xml119
-rw-r--r--indra/newview/skins/default/xui/it/floater_preview_notecard.xml32
-rw-r--r--indra/newview/skins/default/xui/it/floater_preview_sound.xml16
-rw-r--r--indra/newview/skins/default/xui/it/floater_preview_texture.xml18
-rw-r--r--indra/newview/skins/default/xui/it/floater_region_info.xml4
-rw-r--r--indra/newview/skins/default/xui/it/floater_report_abuse.xml217
-rw-r--r--indra/newview/skins/default/xui/it/floater_script_debug.xml12
-rw-r--r--indra/newview/skins/default/xui/it/floater_script_preview.xml12
-rw-r--r--indra/newview/skins/default/xui/it/floater_script_queue.xml8
-rw-r--r--indra/newview/skins/default/xui/it/floater_script_search.xml26
-rw-r--r--indra/newview/skins/default/xui/it/floater_select_key.xml14
-rw-r--r--indra/newview/skins/default/xui/it/floater_sell_land.xml123
-rw-r--r--indra/newview/skins/default/xui/it/floater_settings_debug.xml26
-rw-r--r--indra/newview/skins/default/xui/it/floater_snapshot.xml164
-rw-r--r--indra/newview/skins/default/xui/it/floater_sound_preview.xml22
-rw-r--r--indra/newview/skins/default/xui/it/floater_statistics.xml2
-rw-r--r--indra/newview/skins/default/xui/it/floater_telehub.xml56
-rw-r--r--indra/newview/skins/default/xui/it/floater_texture_ctrl.xml46
-rw-r--r--indra/newview/skins/default/xui/it/floater_tools.xml1110
-rw-r--r--indra/newview/skins/default/xui/it/floater_top_objects.xml110
-rw-r--r--indra/newview/skins/default/xui/it/floater_tos.xml32
-rw-r--r--indra/newview/skins/default/xui/it/floater_url_entry.xml24
-rw-r--r--indra/newview/skins/default/xui/it/floater_water.xml176
-rw-r--r--indra/newview/skins/default/xui/it/floater_wearable_save_as.xml22
-rw-r--r--indra/newview/skins/default/xui/it/floater_windlight_options.xml378
-rw-r--r--indra/newview/skins/default/xui/it/floater_world_map.xml118
-rw-r--r--indra/newview/skins/default/xui/it/menu_inventory.xml131
-rw-r--r--indra/newview/skins/default/xui/it/menu_login.xml26
-rw-r--r--indra/newview/skins/default/xui/it/menu_mini_map.xml8
-rw-r--r--indra/newview/skins/default/xui/it/menu_slurl.xml12
-rw-r--r--indra/newview/skins/default/xui/it/menu_viewer.xml408
-rw-r--r--indra/newview/skins/default/xui/it/mime_types.xml460
-rw-r--r--indra/newview/skins/default/xui/it/notifications.xml8884
-rw-r--r--indra/newview/skins/default/xui/it/panel_audio_device.xml50
-rw-r--r--indra/newview/skins/default/xui/it/panel_friends.xml40
-rw-r--r--indra/newview/skins/default/xui/it/panel_group_general.xml150
-rw-r--r--indra/newview/skins/default/xui/it/panel_group_invite.xml46
-rw-r--r--indra/newview/skins/default/xui/it/panel_group_land_money.xml154
-rw-r--r--indra/newview/skins/default/xui/it/panel_group_notices.xml142
-rw-r--r--indra/newview/skins/default/xui/it/panel_group_roles.xml286
-rw-r--r--indra/newview/skins/default/xui/it/panel_groups.xml30
-rw-r--r--indra/newview/skins/default/xui/it/panel_login.xml82
-rw-r--r--indra/newview/skins/default/xui/it/panel_preferences_chat.xml109
-rw-r--r--indra/newview/skins/default/xui/it/panel_preferences_general.xml189
-rw-r--r--indra/newview/skins/default/xui/it/panel_preferences_graphics1.xml300
-rw-r--r--indra/newview/skins/default/xui/it/panel_region_covenant.xml130
-rw-r--r--indra/newview/skins/default/xui/it/panel_region_debug.xml80
-rw-r--r--indra/newview/skins/default/xui/it/panel_region_estate.xml138
-rw-r--r--indra/newview/skins/default/xui/it/panel_region_general.xml102
-rw-r--r--indra/newview/skins/default/xui/it/panel_region_terrain.xml54
-rw-r--r--indra/newview/skins/default/xui/it/panel_region_texture.xml114
-rw-r--r--indra/newview/skins/default/xui/it/panel_scrolling_param.xml20
-rw-r--r--indra/newview/skins/default/xui/it/panel_status_bar.xml76
-rw-r--r--indra/newview/skins/default/xui/it/strings.xml907
-rw-r--r--indra/newview/skins/default/xui/it/teleport_strings.xml148
-rw-r--r--indra/newview/skins/default/xui/ja/floater_about.xml5
-rw-r--r--indra/newview/skins/default/xui/ja/floater_about_land.xml176
-rw-r--r--indra/newview/skins/default/xui/ja/floater_avatar_picker.xml59
-rw-r--r--indra/newview/skins/default/xui/ja/floater_avatar_textures.xml49
-rw-r--r--indra/newview/skins/default/xui/ja/floater_bulk_perms.xml87
-rw-r--r--indra/newview/skins/default/xui/ja/floater_buy_currency.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/floater_buy_land.xml23
-rw-r--r--indra/newview/skins/default/xui/ja/floater_customize.xml508
-rw-r--r--indra/newview/skins/default/xui/ja/floater_font_test.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/floater_god_tools.xml24
-rw-r--r--indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/floater_land_holdings.xml5
-rw-r--r--indra/newview/skins/default/xui/ja/floater_notification.xml14
-rw-r--r--indra/newview/skins/default/xui/ja/floater_notifications_console.xml10
-rw-r--r--indra/newview/skins/default/xui/ja/floater_perm_prefs.xml32
-rw-r--r--indra/newview/skins/default/xui/ja/floater_preview_gesture.xml12
-rw-r--r--indra/newview/skins/default/xui/ja/floater_report_abuse.xml162
-rw-r--r--indra/newview/skins/default/xui/ja/floater_sell_land.xml14
-rw-r--r--indra/newview/skins/default/xui/ja/floater_snapshot.xml12
-rw-r--r--indra/newview/skins/default/xui/ja/floater_sound_preview.xml18
-rw-r--r--indra/newview/skins/default/xui/ja/floater_statistics.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_telehub.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/floater_tools.xml80
-rw-r--r--indra/newview/skins/default/xui/ja/floater_tos.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/floater_world_map.xml96
-rw-r--r--indra/newview/skins/default/xui/ja/menu_login.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/menu_mini_map.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/menu_viewer.xml16
-rw-r--r--indra/newview/skins/default/xui/ja/notifications.xml9247
-rw-r--r--indra/newview/skins/default/xui/ja/panel_group_general.xml18
-rw-r--r--indra/newview/skins/default/xui/ja/panel_group_land_money.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/panel_group_notices.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_login.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_notifications_channel.xml30
-rw-r--r--indra/newview/skins/default/xui/ja/panel_preferences_chat.xml14
-rw-r--r--indra/newview/skins/default/xui/ja/panel_preferences_general.xml29
-rw-r--r--indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml32
-rw-r--r--indra/newview/skins/default/xui/ja/panel_region_covenant.xml89
-rw-r--r--indra/newview/skins/default/xui/ja/panel_region_general.xml78
-rw-r--r--indra/newview/skins/default/xui/ja/role_actions.xml92
-rw-r--r--indra/newview/skins/default/xui/ja/strings.xml26
-rw-r--r--indra/newview/skins/default/xui/ja/teleport_strings.xml26
-rw-r--r--indra/newview/skins/default/xui/nl/floater_about.xml70
-rw-r--r--indra/newview/skins/default/xui/nl/floater_about_land.xml878
-rw-r--r--indra/newview/skins/default/xui/nl/floater_auction.xml18
-rw-r--r--indra/newview/skins/default/xui/nl/floater_beacons.xml30
-rw-r--r--indra/newview/skins/default/xui/nl/floater_bulk_perms.xml44
-rw-r--r--indra/newview/skins/default/xui/nl/floater_bumps.xml42
-rw-r--r--indra/newview/skins/default/xui/nl/floater_buy_contents.xml42
-rw-r--r--indra/newview/skins/default/xui/nl/floater_buy_currency.xml134
-rw-r--r--indra/newview/skins/default/xui/nl/floater_buy_land.xml453
-rw-r--r--indra/newview/skins/default/xui/nl/floater_buy_object.xml52
-rw-r--r--indra/newview/skins/default/xui/nl/floater_camera.xml24
-rw-r--r--indra/newview/skins/default/xui/nl/floater_choose_group.xml16
-rw-r--r--indra/newview/skins/default/xui/nl/floater_color_picker.xml60
-rw-r--r--indra/newview/skins/default/xui/nl/floater_critical.xml22
-rw-r--r--indra/newview/skins/default/xui/nl/floater_customize.xml896
-rw-r--r--indra/newview/skins/default/xui/nl/floater_env_settings.xml46
-rw-r--r--indra/newview/skins/default/xui/nl/floater_font_test.xml6
-rw-r--r--indra/newview/skins/default/xui/nl/floater_gesture.xml30
-rw-r--r--indra/newview/skins/default/xui/nl/floater_hud.xml4
-rw-r--r--indra/newview/skins/default/xui/nl/floater_im.xml90
-rw-r--r--indra/newview/skins/default/xui/nl/floater_inspect.xml22
-rw-r--r--indra/newview/skins/default/xui/nl/floater_inventory.xml94
-rw-r--r--indra/newview/skins/default/xui/nl/floater_joystick.xml168
-rw-r--r--indra/newview/skins/default/xui/nl/floater_lagmeter.xml304
-rw-r--r--indra/newview/skins/default/xui/nl/floater_lsl_guide.xml14
-rw-r--r--indra/newview/skins/default/xui/nl/floater_mem_leaking.xml36
-rw-r--r--indra/newview/skins/default/xui/nl/floater_moveview.xml22
-rw-r--r--indra/newview/skins/default/xui/nl/floater_mute_object.xml22
-rw-r--r--indra/newview/skins/default/xui/nl/floater_my_friends.xml14
-rw-r--r--indra/newview/skins/default/xui/nl/floater_openobject.xml16
-rw-r--r--indra/newview/skins/default/xui/nl/floater_pay.xml42
-rw-r--r--indra/newview/skins/default/xui/nl/floater_pay_object.xml60
-rw-r--r--indra/newview/skins/default/xui/nl/floater_perm_prefs.xml16
-rw-r--r--indra/newview/skins/default/xui/nl/floater_post_process.xml106
-rw-r--r--indra/newview/skins/default/xui/nl/floater_postcard.xml72
-rw-r--r--indra/newview/skins/default/xui/nl/floater_preferences.xml16
-rw-r--r--indra/newview/skins/default/xui/nl/floater_region_info.xml4
-rw-r--r--indra/newview/skins/default/xui/nl/floater_report_abuse.xml216
-rw-r--r--indra/newview/skins/default/xui/nl/floater_script_debug.xml12
-rw-r--r--indra/newview/skins/default/xui/nl/floater_script_queue.xml8
-rw-r--r--indra/newview/skins/default/xui/nl/floater_select_key.xml14
-rw-r--r--indra/newview/skins/default/xui/nl/floater_sell_land.xml123
-rw-r--r--indra/newview/skins/default/xui/nl/floater_snapshot.xml164
-rw-r--r--indra/newview/skins/default/xui/nl/floater_statistics.xml2
-rw-r--r--indra/newview/skins/default/xui/nl/floater_telehub.xml50
-rw-r--r--indra/newview/skins/default/xui/nl/floater_texture_ctrl.xml46
-rw-r--r--indra/newview/skins/default/xui/nl/floater_tools.xml1108
-rw-r--r--indra/newview/skins/default/xui/nl/floater_top_objects.xml110
-rw-r--r--indra/newview/skins/default/xui/nl/floater_tos.xml30
-rw-r--r--indra/newview/skins/default/xui/nl/floater_url_entry.xml24
-rw-r--r--indra/newview/skins/default/xui/nl/floater_water.xml176
-rw-r--r--indra/newview/skins/default/xui/nl/floater_world_map.xml113
-rw-r--r--indra/newview/skins/default/xui/nl/menu_inventory.xml131
-rw-r--r--indra/newview/skins/default/xui/nl/menu_login.xml26
-rw-r--r--indra/newview/skins/default/xui/nl/menu_mini_map.xml8
-rw-r--r--indra/newview/skins/default/xui/nl/menu_slurl.xml12
-rw-r--r--indra/newview/skins/default/xui/nl/menu_viewer.xml408
-rw-r--r--indra/newview/skins/default/xui/nl/mime_types.xml460
-rw-r--r--indra/newview/skins/default/xui/nl/notifications.xml8876
-rw-r--r--indra/newview/skins/default/xui/nl/panel_audio_device.xml50
-rw-r--r--indra/newview/skins/default/xui/nl/panel_friends.xml40
-rw-r--r--indra/newview/skins/default/xui/nl/panel_group_general.xml144
-rw-r--r--indra/newview/skins/default/xui/nl/panel_group_invite.xml42
-rw-r--r--indra/newview/skins/default/xui/nl/panel_group_notices.xml122
-rw-r--r--indra/newview/skins/default/xui/nl/panel_group_roles.xml270
-rw-r--r--indra/newview/skins/default/xui/nl/panel_groups.xml30
-rw-r--r--indra/newview/skins/default/xui/nl/panel_login.xml74
-rw-r--r--indra/newview/skins/default/xui/nl/panel_region_debug.xml80
-rw-r--r--indra/newview/skins/default/xui/nl/panel_region_estate.xml136
-rw-r--r--indra/newview/skins/default/xui/nl/panel_region_general.xml105
-rw-r--r--indra/newview/skins/default/xui/nl/panel_region_terrain.xml54
-rw-r--r--indra/newview/skins/default/xui/nl/panel_region_texture.xml114
-rw-r--r--indra/newview/skins/default/xui/nl/panel_status_bar.xml76
-rw-r--r--indra/newview/skins/default/xui/nl/strings.xml907
-rw-r--r--indra/newview/skins/default/xui/nl/teleport_strings.xml148
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_about_land.xml178
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_animation_preview.xml168
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_auction.xml2
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_avatar_picker.xml49
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_avatar_textures.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/floater_beacons.xml2
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_build_options.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/floater_bulk_perms.xml44
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_bumps.xml2
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_buy_currency.xml18
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_buy_land.xml70
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_camera.xml2
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_critical.xml2
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_customize.xml472
-rw-r--r--indra/newview/skins/default/xui/pl/floater_font_test.xml6
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_god_tools.xml41
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_im.xml2
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_inventory_item_properties.xml8
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_land_holdings.xml23
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_mute_object.xml7
-rw-r--r--indra/newview/skins/default/xui/pl/floater_perm_prefs.xml16
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_post_process.xml2
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_preview_gesture.xml45
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_preview_notecard.xml2
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_report_abuse.xml20
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_script_search.xml6
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_sell_land.xml8
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_snapshot.xml12
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_sound_preview.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/floater_statistics.xml2
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_telehub.xml27
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_texture_ctrl.xml2
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_tools.xml352
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_top_objects.xml32
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_tos.xml4
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_windlight_options.xml2
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_world_map.xml82
-rwxr-xr-xindra/newview/skins/default/xui/pl/menu_inventory.xml119
-rw-r--r--indra/newview/skins/default/xui/pl/menu_mini_map.xml8
-rwxr-xr-xindra/newview/skins/default/xui/pl/menu_viewer.xml402
-rw-r--r--indra/newview/skins/default/xui/pl/notifications.xml8755
-rwxr-xr-xindra/newview/skins/default/xui/pl/panel_audio_device.xml2
-rwxr-xr-xindra/newview/skins/default/xui/pl/panel_friends.xml2
-rwxr-xr-xindra/newview/skins/default/xui/pl/panel_group_general.xml53
-rwxr-xr-xindra/newview/skins/default/xui/pl/panel_group_invite.xml8
-rwxr-xr-xindra/newview/skins/default/xui/pl/panel_group_land_money.xml33
-rwxr-xr-xindra/newview/skins/default/xui/pl/panel_group_roles.xml4
-rwxr-xr-xindra/newview/skins/default/xui/pl/panel_preferences_chat.xml18
-rwxr-xr-xindra/newview/skins/default/xui/pl/panel_preferences_general.xml111
-rwxr-xr-xindra/newview/skins/default/xui/pl/panel_preferences_graphics1.xml34
-rwxr-xr-xindra/newview/skins/default/xui/pl/panel_region_covenant.xml81
-rwxr-xr-xindra/newview/skins/default/xui/pl/panel_region_general.xml73
-rwxr-xr-xindra/newview/skins/default/xui/pl/panel_status_bar.xml30
-rwxr-xr-xindra/newview/skins/default/xui/pl/role_actions.xml44
-rwxr-xr-xindra/newview/skins/default/xui/pl/strings.xml101
-rwxr-xr-xindra/newview/skins/default/xui/pl/teleport_strings.xml16
-rw-r--r--indra/newview/skins/default/xui/pt/floater_about.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/floater_about_land.xml175
-rw-r--r--indra/newview/skins/default/xui/pt/floater_animation_preview.xml25
-rw-r--r--indra/newview/skins/default/xui/pt/floater_avatar_picker.xml43
-rw-r--r--indra/newview/skins/default/xui/pt/floater_bulk_perms.xml44
-rw-r--r--indra/newview/skins/default/xui/pt/floater_buy_currency.xml6
-rw-r--r--indra/newview/skins/default/xui/pt/floater_buy_land.xml53
-rw-r--r--indra/newview/skins/default/xui/pt/floater_customize.xml148
-rw-r--r--indra/newview/skins/default/xui/pt/floater_device_settings.xml4
-rw-r--r--indra/newview/skins/default/xui/pt/floater_font_test.xml6
-rw-r--r--indra/newview/skins/default/xui/pt/floater_image_preview.xml5
-rw-r--r--indra/newview/skins/default/xui/pt/floater_inventory_item_properties.xml10
-rw-r--r--indra/newview/skins/default/xui/pt/floater_joystick.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/floater_land_holdings.xml5
-rw-r--r--indra/newview/skins/default/xui/pt/floater_mute_object.xml4
-rw-r--r--indra/newview/skins/default/xui/pt/floater_my_friends.xml14
-rw-r--r--indra/newview/skins/default/xui/pt/floater_perm_prefs.xml16
-rw-r--r--indra/newview/skins/default/xui/pt/floater_post_process.xml106
-rw-r--r--indra/newview/skins/default/xui/pt/floater_preview_gesture.xml32
-rw-r--r--indra/newview/skins/default/xui/pt/floater_report_abuse.xml22
-rw-r--r--indra/newview/skins/default/xui/pt/floater_select_key.xml14
-rw-r--r--indra/newview/skins/default/xui/pt/floater_sell_land.xml25
-rw-r--r--indra/newview/skins/default/xui/pt/floater_snapshot.xml24
-rw-r--r--indra/newview/skins/default/xui/pt/floater_sound_preview.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/floater_statistics.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/floater_tools.xml310
-rw-r--r--indra/newview/skins/default/xui/pt/floater_world_map.xml42
-rw-r--r--indra/newview/skins/default/xui/pt/menu_inventory.xml5
-rw-r--r--indra/newview/skins/default/xui/pt/menu_mini_map.xml8
-rw-r--r--indra/newview/skins/default/xui/pt/menu_viewer.xml16
-rw-r--r--indra/newview/skins/default/xui/pt/notifications.xml8790
-rw-r--r--indra/newview/skins/default/xui/pt/panel_group_general.xml12
-rw-r--r--indra/newview/skins/default/xui/pt/panel_group_invite.xml8
-rw-r--r--indra/newview/skins/default/xui/pt/panel_group_land_money.xml8
-rw-r--r--indra/newview/skins/default/xui/pt/panel_group_roles.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/panel_groups.xml32
-rw-r--r--indra/newview/skins/default/xui/pt/panel_login.xml4
-rw-r--r--indra/newview/skins/default/xui/pt/panel_preferences_chat.xml14
-rw-r--r--indra/newview/skins/default/xui/pt/panel_preferences_general.xml39
-rw-r--r--indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml52
-rw-r--r--indra/newview/skins/default/xui/pt/panel_region_covenant.xml86
-rw-r--r--indra/newview/skins/default/xui/pt/panel_region_general.xml21
-rw-r--r--indra/newview/skins/default/xui/pt/strings.xml73
-rw-r--r--indra/newview/skins/paths.xml2
-rw-r--r--indra/newview/tests/llcapabilitylistener_test.cpp2
-rwxr-xr-xindra/newview/viewer_manifest.py20
978 files changed, 124786 insertions, 83620 deletions
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 5d79dfbc3e..c177de6e88 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -11,7 +11,6 @@ include(ELFIO)
include(FMOD)
include(OPENAL)
include(FindOpenGL)
-include(LLAddBuildTest)
include(LLAudio)
include(LLCharacter)
include(LLCommon)
@@ -66,28 +65,36 @@ include_directories(
)
set(viewer_SOURCE_FILES
+ llaccordionpanel.cpp
llagent.cpp
llagentaccess.cpp
llagentdata.cpp
llagentlanguage.cpp
llagentpilot.cpp
+ llagentwearables.cpp
llanimstatelabels.cpp
llappviewer.cpp
llassetuploadresponders.cpp
llassetuploadqueue.cpp
llaudiosourcevo.cpp
llavatariconctrl.cpp
+ llavatarlist.cpp
+ llavatarlistitem.cpp
llavatarpropertiesprocessor.cpp
llbbox.cpp
+ llbottomtray.cpp
llbox.cpp
llcallbacklist.cpp
llcallingcard.cpp
llcapabilitylistener.cpp
llcaphttpsender.cpp
llchatbar.cpp
+ llchathistoryscroll.cpp
+ llchiclet.cpp
llclassifiedinfo.cpp
llclassifiedstatsresponder.cpp
llcloud.cpp
+ llcollapsiblectrl.cpp
llcolorswatch.cpp
llcommandhandler.cpp
llcommandlineparser.cpp
@@ -99,6 +106,7 @@ set(viewer_SOURCE_FILES
lldebugview.cpp
lldelayedgestureerror.cpp
lldirpicker.cpp
+ lldraggerbar.cpp
lldrawable.cpp
lldrawpoolalpha.cpp
lldrawpoolavatar.cpp
@@ -126,6 +134,7 @@ set(viewer_SOURCE_FILES
llflexibleobject.cpp
llfloaterabout.cpp
llfloateractivespeakers.cpp
+ llfloateraddlandmark.cpp
llfloateranimpreview.cpp
llfloaterauction.cpp
llfloateravatarinfo.cpp
@@ -172,6 +181,7 @@ set(viewer_SOURCE_FILES
llfloaterlandholdings.cpp
llfloatermap.cpp
llfloatermemleak.cpp
+ llfloaterminiinspector.cpp
llfloatermute.cpp
llfloaternamedesc.cpp
llfloaternotificationsconsole.cpp
@@ -202,9 +212,12 @@ set(viewer_SOURCE_FILES
llfloaterworldmap.cpp
llfolderview.cpp
llfollowcam.cpp
+ llfriendactions.cpp
llgesturemgr.cpp
llgivemoney.cpp
llglsandbox.cpp
+ llgroupactions.cpp
+ llgrouplist.cpp
llgroupmgr.cpp
llgroupnotify.cpp
llhomelocationresponder.cpp
@@ -222,7 +235,7 @@ set(viewer_SOURCE_FILES
llhudview.cpp
llimpanel.cpp
llimview.cpp
- llinventoryactions.cpp
+ llimcontrolpanel.cpp
llinventorybridge.cpp
llinventoryclipboard.cpp
llinventorymodel.cpp
@@ -242,6 +255,7 @@ set(viewer_SOURCE_FILES
llmediaremotectrl.cpp
llmemoryview.cpp
llmenucommands.cpp
+ llmetricperformancetester.cpp
llmimetypes.cpp
llmorphview.cpp
llmoveview.cpp
@@ -250,12 +264,11 @@ set(viewer_SOURCE_FILES
llnameeditor.cpp
llnamelistctrl.cpp
llnavigationbar.cpp
+ llnearbychathistory.cpp
llnetmap.cpp
llnotify.cpp
lloutputmonitorctrl.cpp
lloverlaybar.cpp
- llpanelaudioprefs.cpp
- llpanelaudiovolume.cpp
llpanelavatar.cpp
llpanelavatarrow.cpp
llpanelclassified.cpp
@@ -268,38 +281,37 @@ set(viewer_SOURCE_FILES
llpaneldirland.cpp
llpaneldirpeople.cpp
llpaneldirplaces.cpp
- llpaneldisplay.cpp
llpanelevent.cpp
llpanelface.cpp
- llpanelgeneral.cpp
llpanelgroup.cpp
llpanelgroupgeneral.cpp
llpanelgroupinvite.cpp
llpanelgrouplandmoney.cpp
llpanelgroupnotices.cpp
llpanelgrouproles.cpp
- llpanelinput.cpp
llpanelinventory.cpp
llpanelland.cpp
+ llpanellandmarks.cpp
llpanellandmedia.cpp
llpanellogin.cpp
- llpanelmsgs.cpp
- llpanelnetwork.cpp
+ llpanelmeprofile.cpp
llpanelobject.cpp
+ llpanelpeople.cpp
llpanelpermissions.cpp
llpanelpick.cpp
+ llpanelpicks.cpp
llpanelplace.cpp
+ llpanelplaceinfo.cpp
llpanelshower.cpp
- llpanelskins.cpp
+ llpanelplaces.cpp
+ llpanelplacestab.cpp
+ llpanelprofileview.cpp
+ llpanelteleporthistory.cpp
llpanelvolume.cpp
- llpanelweb.cpp
llparcelselection.cpp
llpatchvertexarray.cpp
llpolymesh.cpp
llpolymorph.cpp
- llprefschat.cpp
- llprefsim.cpp
- llprefsvoice.cpp
llpreviewanim.cpp
llpreview.cpp
llpreviewgesture.cpp
@@ -310,10 +322,12 @@ set(viewer_SOURCE_FILES
llpreviewtexture.cpp
llproductinforequest.cpp
llprogressview.cpp
+ llrecentpeople.cpp
llregionposition.cpp
llremoteparcelrequest.cpp
llsavedsettingsglue.cpp
llselectmgr.cpp
+ llsidetray.cpp
llsky.cpp
llslurl.cpp
llspatialpartition.cpp
@@ -324,7 +338,9 @@ set(viewer_SOURCE_FILES
llsurface.cpp
llsurfacepatch.cpp
llteleporthistory.cpp
+ lltexglobalcolor.cpp
lltexlayer.cpp
+ lltexlayerparams.cpp
lltexturecache.cpp
lltexturectrl.cpp
lltexturefetch.cpp
@@ -402,6 +418,7 @@ set(viewer_SOURCE_FILES
llvlmanager.cpp
llvoavatar.cpp
llvoavatardefines.cpp
+ llvoavatarself.cpp
llvocache.cpp
llvoclouds.cpp
llvograss.cpp
@@ -409,6 +426,7 @@ set(viewer_SOURCE_FILES
llvoiceclient.cpp
llvoiceremotectrl.cpp
llvoicevisualizer.cpp
+ llvoicecontrolpanel.cpp
llvoinventorylistener.cpp
llvopartgroup.cpp
llvosky.cpp
@@ -422,6 +440,7 @@ set(viewer_SOURCE_FILES
llwaterparammanager.cpp
llwaterparamset.cpp
llwearable.cpp
+ llwearabledictionary.cpp
llwearablelist.cpp
llweb.cpp
llwebbrowserctrl.cpp
@@ -459,12 +478,13 @@ endif (LINUX)
set(viewer_HEADER_FILES
CMakeLists.txt
ViewerInstall.cmake
-
+ llaccordionpanel.h
llagent.h
llagentaccess.h
llagentdata.h
llagentlanguage.h
llagentpilot.h
+ llagentwearables.h
llanimstatelabels.h
llappearance.h
llappviewer.h
@@ -472,8 +492,11 @@ set(viewer_HEADER_FILES
llassetuploadqueue.h
llaudiosourcevo.h
llavatariconctrl.h
+ llavatarlist.h
+ llavatarlistitem.h
llavatarpropertiesprocessor.h
llbbox.h
+ llbottomtray.h
llbox.h
llcallbacklist.h
llcallingcard.h
@@ -481,9 +504,12 @@ set(viewer_HEADER_FILES
llcapabilityprovider.h
llcaphttpsender.h
llchatbar.h
+ llchathistoryscroll.h
+ llchiclet.h
llclassifiedinfo.h
llclassifiedstatsresponder.h
llcloud.h
+ llcollapsiblectrl.h
llcolorswatch.h
llcommandhandler.h
llcommandlineparser.h
@@ -495,6 +521,7 @@ set(viewer_HEADER_FILES
lldebugview.h
lldelayedgestureerror.h
lldirpicker.h
+ lldraggerbar.h
lldrawable.h
lldrawpool.h
lldrawpoolalpha.h
@@ -523,6 +550,7 @@ set(viewer_HEADER_FILES
llflexibleobject.h
llfloaterabout.h
llfloateractivespeakers.h
+ llfloateraddlandmark.h
llfloateranimpreview.h
llfloaterauction.h
llfloateravatarinfo.h
@@ -569,6 +597,7 @@ set(viewer_HEADER_FILES
llfloaterlandholdings.h
llfloatermap.h
llfloatermemleak.h
+ llfloaterminiinspector.h
llfloatermute.h
llfloaternamedesc.h
llfloaternotificationsconsole.h
@@ -599,8 +628,11 @@ set(viewer_HEADER_FILES
llfloaterworldmap.h
llfolderview.h
llfollowcam.h
+ llfriendactions.h
llgesturemgr.h
llgivemoney.h
+ llgroupactions.h
+ llgrouplist.h
llgroupmgr.h
llgroupnotify.h
llhomelocationresponder.h
@@ -618,6 +650,7 @@ set(viewer_HEADER_FILES
llhudview.h
llimpanel.h
llimview.h
+ llimcontrolpanel.h
llinventorybridge.h
llinventoryclipboard.h
llinventorymodel.h
@@ -638,6 +671,7 @@ set(viewer_HEADER_FILES
llmediaremotectrl.h
llmemoryview.h
llmenucommands.h
+ llmetricperformancetester.h
llmimetypes.h
llmorphview.h
llmoveview.h
@@ -646,12 +680,11 @@ set(viewer_HEADER_FILES
llnameeditor.h
llnamelistctrl.h
llnavigationbar.h
+ llnearbychathistory.h
llnetmap.h
llnotify.h
lloutputmonitorctrl.h
lloverlaybar.h
- llpanelaudioprefs.h
- llpanelaudiovolume.h
llpanelavatar.h
llpanelavatarrow.h
llpanelclassified.h
@@ -664,38 +697,37 @@ set(viewer_HEADER_FILES
llpaneldirland.h
llpaneldirpeople.h
llpaneldirplaces.h
- llpaneldisplay.h
llpanelevent.h
llpanelface.h
- llpanelgeneral.h
llpanelgroup.h
llpanelgroupgeneral.h
llpanelgroupinvite.h
llpanelgrouplandmoney.h
llpanelgroupnotices.h
llpanelgrouproles.h
- llpanelinput.h
llpanelinventory.h
llpanelland.h
+ llpanellandmarks.h
llpanellandmedia.h
llpanellogin.h
- llpanelmsgs.h
- llpanelnetwork.h
+ llpanelmeprofile.h
llpanelobject.h
+ llpanelpeople.h
llpanelpermissions.h
llpanelpick.h
+ llpanelpicks.h
llpanelplace.h
+ llpanelplaceinfo.h
llpanelshower.h
- llpanelskins.h
+ llpanelplaces.h
+ llpanelplacestab.h
+ llpanelprofileview.h
+ llpanelteleporthistory.h
llpanelvolume.h
- llpanelweb.h
llparcelselection.h
llpatchvertexarray.h
llpolymesh.h
llpolymorph.h
- llprefschat.h
- llprefsim.h
- llprefsvoice.h
llpreview.h
llpreviewanim.h
llpreviewgesture.h
@@ -706,11 +738,14 @@ set(viewer_HEADER_FILES
llpreviewtexture.h
llproductinforequest.h
llprogressview.h
+ llrecentpeople.h
llregionposition.h
llremoteparcelrequest.h
llresourcedata.h
+ llrootview.h
llsavedsettingsglue.h
llselectmgr.h
+ llsidetray.h
llsky.h
llslurl.h
llspatialpartition.h
@@ -722,7 +757,9 @@ set(viewer_HEADER_FILES
llsurfacepatch.h
lltable.h
llteleporthistory.h
+ lltexglobalcolor.h
lltexlayer.h
+ lltexlayerparams.h
lltexturecache.h
lltexturectrl.h
lltexturefetch.h
@@ -800,6 +837,7 @@ set(viewer_HEADER_FILES
llvlmanager.h
llvoavatar.h
llvoavatardefines.h
+ llvoavatarself.h
llvocache.h
llvoclouds.h
llvograss.h
@@ -807,6 +845,7 @@ set(viewer_HEADER_FILES
llvoiceclient.h
llvoiceremotectrl.h
llvoicevisualizer.h
+ llvoicecontrolpanel.h
llvoinventorylistener.h
llvopartgroup.h
llvosky.h
@@ -821,6 +860,7 @@ set(viewer_HEADER_FILES
llwaterparammanager.h
llwaterparamset.h
llwearable.h
+ llwearabledictionary.h
llwearablelist.h
llweb.h
llwebbrowserctrl.h
@@ -988,12 +1028,11 @@ if (WINDOWS)
)
set(viewer_LIBRARIES
- advapi32
+ ${WINDOWS_LIBRARIES}
comdlg32
${DINPUT_LIBRARY}
${DXGUID_LIBRARY}
fmodvc
- gdi32
kernel32
odbc32
odbccp32
@@ -1001,7 +1040,6 @@ if (WINDOWS)
oleaut32
opengl32
shell32
- user32
Vfw32
winspool
)
@@ -1017,6 +1055,8 @@ if (WINDOWS)
if (INTEL_MEMOPS_LIBRARY)
list(APPEND viewer_LIBRARIES ${INTEL_MEMOPS_LIBRARY})
endif (INTEL_MEMOPS_LIBRARY)
+
+ use_prebuilt_binary(dbghelp)
endif (WINDOWS)
# Add the xui files. This is handy for searching for xui elements
@@ -1026,11 +1066,11 @@ set(viewer_XUI_FILES
skins/default/textures/textures.xml
)
file(GLOB DEFAULT_XUI_FILE_GLOB_LIST
- ${CMAKE_CURRENT_SOURCE_DIR}/skins/default/xui/en-us/*.xml)
+ ${CMAKE_CURRENT_SOURCE_DIR}/skins/default/xui/en/*.xml)
list(APPEND viewer_XUI_FILES ${DEFAULT_XUI_FILE_GLOB_LIST})
file(GLOB DEFAULT_WIDGET_FILE_GLOB_LIST
- ${CMAKE_CURRENT_SOURCE_DIR}/skins/default/xui/en-us/widgets/*.xml)
+ ${CMAKE_CURRENT_SOURCE_DIR}/skins/default/xui/en/widgets/*.xml)
list(APPEND viewer_XUI_FILES ${DEFAULT_WIDGET_FILE_GLOB_LIST})
file(GLOB SILVER_XUI_FILE_GLOB_LIST
@@ -1164,6 +1204,8 @@ if (WINDOWS)
set_target_properties(${VIEWER_BINARY_NAME}
PROPERTIES
+ # *TODO -reenable this once we get server usage sorted out
+ #LINK_FLAGS "/debug /NODEFAULTLIB:LIBCMT /SUBSYSTEM:WINDOWS /INCLUDE:\"__tcmalloc\""
LINK_FLAGS "/debug /NODEFAULTLIB:LIBCMT /SUBSYSTEM:WINDOWS"
LINK_FLAGS_DEBUG "/NODEFAULTLIB:\"LIBCMT;LIBCMTD;MSVCRT\" /INCREMENTAL:NO"
LINK_FLAGS_RELEASE ${release_flags}
@@ -1269,6 +1311,7 @@ target_link_libraries(${VIEWER_BINARY_NAME}
${XMLRPCEPI_LIBRARIES}
${ELFIO_LIBRARIES}
${LLLOGIN_LIBRARIES}
+ ${GOOGLE_PERFTOOLS_LIBRARIES}
)
build_version(viewer)
@@ -1390,8 +1433,20 @@ if (INSTALL)
include(${CMAKE_CURRENT_SOURCE_DIR}/ViewerInstall.cmake)
endif (INSTALL)
-ADD_VIEWER_BUILD_TEST(llagentaccess viewer)
-ADD_VIEWER_COMM_BUILD_TEST(llcapabilitylistener viewer
- ${CMAKE_CURRENT_SOURCE_DIR}/../llmessage/tests/test_llsdmessage_peer.py)
-ADD_VIEWER_COMM_BUILD_TEST(llxmlrpclistener viewer
- ${CMAKE_CURRENT_SOURCE_DIR}/tests/test_llxmlrpc_peer.py)
+include(LLAddBuildTest)
+SET(viewer_TEST_SOURCE_FILES
+ llagentaccess.cpp
+ # Not *actually* a unit test, it's an integration test.
+ # Because it won't work in the new unit test iface, i've commented out
+ # and notified Nat. Delete this when it's replaced!
+ # + poppy & brad 2009-06-05
+ # llcapabilitylistener.cpp
+ )
+set_source_files_properties(
+ ${viewer_TEST_SOURCE_FILES}
+ PROPERTIES
+ LL_TEST_ADDITIONAL_SOURCE_FILES llviewerprecompiledheaders.cpp
+ )
+LL_ADD_PROJECT_UNIT_TESTS(${VIEWER_BINARY_NAME} "${viewer_TEST_SOURCE_FILES}")
+
+#ADD_VIEWER_BUILD_TEST(llmemoryview viewer)
diff --git a/indra/newview/app_settings/cmd_line.xml b/indra/newview/app_settings/cmd_line.xml
index db665b72dd..783a886fdd 100644
--- a/indra/newview/app_settings/cmd_line.xml
+++ b/indra/newview/app_settings/cmd_line.xml
@@ -1,337 +1,387 @@
-<?xml version="1.0"?>
-<llsd>
- <map>
- <key>help</key>
- <map>
- <key>desc</key>
- <string>display this help message</string>
-
- <key>short</key>
- <string>h</string>
- </map>
-
- <key>port</key>
- <map>
- <key>count</key>
- <integer>1</integer>
- <key>map-to</key>
- <string>UserConnectionPort</string>
- </map>
-
- <key>drop</key>
- <map>
- <key>count</key>
- <integer>1</integer>
- <key>map-to</key>
- <string>PacketDropPercentage</string>
- </map>
-
- <key>inbw</key>
- <map>
- <key>count</key>
- <integer>1</integer>
- <key>map-to</key>
- <string>InBandwidth</string>
- </map>
-
- <key>outbw</key>
- <map>
- <key>count</key>
- <integer>1</integer>
- <key>map-to</key>
- <string>OutBandwidth</string>
- </map>
-
- <key>grid</key>
- <map>
- <key>desc</key>
- <string>Specify the name of the grid, local, or an IP address to connect to.</string>
- <key>count</key>
- <integer>1</integer>
- <key>map-to</key>
- <string>CmdLineGridChoice</string>
- </map>
-
- <key>loginuri</key>
- <map>
- <key>desc</key>
- <string>login server and CGI script to use</string>
- <key>count</key>
- <integer>1</integer>
- <key>compose</key>
- <boolean>true</boolean>
- <key>map-to</key>
- <string>CmdLineLoginURI</string>
- </map>
-
- <key>helperuri</key>
- <map>
- <key>desc</key>
- <string>helper web CGI prefix to use</string>
- <key>count</key>
- <integer>1</integer>
- <key>map-to</key>
- <string>CmdLineHelperURI</string>
- </map>
-
- <key>debugviews</key>
- <map>
- <key>map-to</key>
- <string>DebugViews</string>
- </map>
-
- <key>skin</key>
- <map>
- <key>desc</key>
- <string>ui/branding skin folder to use</string>
- <key>count</key>
- <integer>1</integer>
- <key>map-to</key>
- <string>SkinFolder</string>
- </map>
-
- <key>autologin</key>
- <map>
- <key>desc</key>
- <string>log in as last saved user</string>
- <key>map-to</key>
- <string>AutoLogin</string>
- </map>
-
- <key>quitafter</key>
- <map>
- <key>count</key>
- <integer>1</integer>
- <key>map-to</key>
- <string>QuitAfterSeconds</string>
- </map>
-
- <key>rotate</key>
- <map>
- <key>map-to</key>
- <string>RotateRight</string>
- </map>
-
- <key>noaudio</key>
- <map>
- <key>map-to</key>
- <string>NoAudio</string>
- </map>
-
- <key>nosound</key>
- <map>
- <key>map-to</key>
- <string>NoAudio</string>
- </map>
-
- <key>noprobe</key>
- <map>
- <key>map-to</key>
- <string>NoHardwareProbe</string>
- </map>
-
- <key>noquicktime</key>
- <map>
- <key>map-to</key>
- <string>NoQuickTime</string>
- </map>
-
- <key>nopreload</key>
- <map>
- <key>map-to</key>
- <string>NoPreload</string>
- </map>
-
- <key>purge</key>
- <map>
- <key>desc</key>
- <string>Delete files in the cache.</string>
- <key>map-to</key>
- <string>PurgeCacheOnNextStartup</string>
- </map>
-
- <key>noinvlib</key>
- <map>
- <key>desc</key>
- <string>Do not request the inventory library.</string>
- <key>map-to</key>
- <string>NoInventoryLibrary</string>
- </map>
-
- <key>logfile</key>
- <map>
- <key>count</key>
- <integer>1</integer>
- <key>map-to</key>
- <string>UserLogFile</string>
- </map>
-
- <key>setdefault</key>
- <map>
- <key>desc</key>
- <string> specify the value of a particular
- configuration variable which can be
- overridden by settings.xml
- </string>
- <key>count</key>
- <integer>2</integer>
- <!-- Special case. Mapped to settings procedurally. -->
- </map>
-
- <key>set</key>
- <map>
- <key>desc</key>
- <string> specify the value of a particular
- configuration variable that
- overrides all other settings
- </string>
- <key>count</key>
- <integer>2</integer>
- <key>compose</key>
- <boolean>true</boolean>
- <!-- Special case. Mapped to settings procedurally. -->
- </map>
-
- <key>settings</key>
- <map>
- <key>desc</key>
- <string>Specify the filename of a configuration file.</string>
- <key>count</key>
- <integer>1</integer>
- <!-- Special case. Mapped to settings procedurally. -->
- </map>
-
- <key>login</key>
- <map>
- <key>desc</key>
- <string>3 tokens: first, last and password</string>
- <key>count</key>
- <integer>3</integer>
- <key>map-to</key>
- <string>UserLoginInfo</string>
- </map>
-
- <key>god</key>
- <map>
- <key>desc</key>
- <string>Log in a god if you have god access.</string>
- <key>map-to</key>
- <string>ConnectAsGod</string>
- </map>
-
- <key>console</key>
- <map>
- <key>count</key>
- <integer>1</integer>
- <key>map-to</key>
- <string>ShowConsoleWindow</string>
- </map>
-
- <key>safe</key>
- <map>
- <key>desc</key>
- <string>Reset preferences, run in safe mode.</string>
- <key>map-to</key>
- <string>SafeMode</string>
- </map>
-
- <key>multiple</key>
- <map>
- <key>desc</key>
- <string>Allow multple viewers.</string>
- <key>map-to</key>
- <string>AllowMultipleViewers</string>
- </map>
-
- <key>novoice</key>
- <map>
- <key>desc</key>
- <string>Disable voice.</string>
- <key>map-to</key>
- <string>CmdLineDisableVoice</string>
- </map>
-
- <key>url</key>
- <map>
- <key>desc</key>
- <string>Startup location</string>
- <key>count</key>
- <integer>1</integer>
- <key>last_option</key>
- <boolean>true</boolean>
- <!-- Special case. Not mapped to a setting. -->
- </map>
-
- <key>slurl</key>
- <map>
- <key>desc</key>
- <string>Startup SLurl</string>
- <key>count</key>
- <integer>1</integer>
- <key>positional</key>
- <boolean>true</boolean>
- <key>last_option</key>
- <boolean>true</boolean>
- <!-- Special case. Not mapped to a setting. -->
- </map>
-
- <key>ignorepixeldepth</key>
- <map>
- <key>desc</key>
- <string>Ignore pixel depth settings.</string>
- <key>map-to</key>
- <string>IgnorePixelDepth</string>
- </map>
-
- <key>cooperative</key>
- <map>
- <key>desc</key>
- <string>Yield some idle time to local host.</string>
- <key>count</key>
- <integer>1</integer>
- <key>map-to</key>
- <string>YieldTime</string>
- </map>
-
- <key>no-verify-ssl-cert</key>
- <map>
- <key>map-to</key>
- <string>NoVerifySSLCert</string>
- </map>
-
- <key>channel</key>
- <map>
- <key>count</key>
- <integer>1</integer>
- <key>map-to</key>
- <string>VersionChannelName</string>
- </map>
-
- <key>loginpage</key>
- <map>
- <key>desc</key>
- <string>Login authentication page to use.</string>
- <key>count</key>
- <integer>1</integer>
- <key>map-to</key>
- <string>LoginPage</string>
- </map>
-
- <key>qa</key>
- <map>
- <key>desc</key>
- <string>Activated debugging menu in Advanced Settings.</string>
- <key>map-to</key>
- <string>QAMode</string>
- </map>
-
- <key>crashonstartup</key>
- <map>
- <key>desc</key>
- <string>Crashes on startup. For QA use.</string>
- <key>map-to</key>
- <string>CrashOnStartup</string>
- </map>
-
- </map>
-</llsd>
+<?xml version="1.0"?>
+<llsd>
+ <map>
+ <key>help</key>
+ <map>
+ <key>desc</key>
+ <string>display this help message</string>
+
+ <key>short</key>
+ <string>h</string>
+ </map>
+
+ <key>port</key>
+ <map>
+ <key>count</key>
+ <integer>1</integer>
+ <key>map-to</key>
+ <string>UserConnectionPort</string>
+ </map>
+
+ <key>drop</key>
+ <map>
+ <key>count</key>
+ <integer>1</integer>
+ <key>map-to</key>
+ <string>PacketDropPercentage</string>
+ </map>
+
+ <key>inbw</key>
+ <map>
+ <key>count</key>
+ <integer>1</integer>
+ <key>map-to</key>
+ <string>InBandwidth</string>
+ </map>
+
+ <key>outbw</key>
+ <map>
+ <key>count</key>
+ <integer>1</integer>
+ <key>map-to</key>
+ <string>OutBandwidth</string>
+ </map>
+
+ <key>grid</key>
+ <map>
+ <key>desc</key>
+ <string>Specify the name of the grid, local, or an IP address to connect to.</string>
+ <key>count</key>
+ <integer>1</integer>
+ <key>map-to</key>
+ <string>CmdLineGridChoice</string>
+ </map>
+
+ <key>loginuri</key>
+ <map>
+ <key>desc</key>
+ <string>login server and CGI script to use</string>
+ <key>count</key>
+ <integer>1</integer>
+ <key>compose</key>
+ <boolean>true</boolean>
+ <key>map-to</key>
+ <string>CmdLineLoginURI</string>
+ </map>
+
+ <key>helperuri</key>
+ <map>
+ <key>desc</key>
+ <string>helper web CGI prefix to use</string>
+ <key>count</key>
+ <integer>1</integer>
+ <key>map-to</key>
+ <string>CmdLineHelperURI</string>
+ </map>
+
+ <key>debugviews</key>
+ <map>
+ <key>map-to</key>
+ <string>DebugViews</string>
+ </map>
+
+ <key>skin</key>
+ <map>
+ <key>desc</key>
+ <string>ui/branding skin folder to use</string>
+ <key>count</key>
+ <integer>1</integer>
+ <key>map-to</key>
+ <string>SkinFolder</string>
+ </map>
+
+ <key>autologin</key>
+ <map>
+ <key>desc</key>
+ <string>log in as last saved user</string>
+ <key>map-to</key>
+ <string>AutoLogin</string>
+ </map>
+
+ <key>quitafter</key>
+ <map>
+ <key>count</key>
+ <integer>1</integer>
+ <key>map-to</key>
+ <string>QuitAfterSeconds</string>
+ </map>
+
+ <key>logperformance</key>
+ <map>
+ <key>desc</key>
+ <string>Log performance metrics for benchmarking</string>
+ <key>map-to</key>
+ <string>LogPerformance</string>
+ </map>
+
+ <key>logmetrics</key>
+ <map>
+ <key>desc</key>
+ <string>Log metrics for benchmarking</string>
+ <key>map-to</key>
+ <string>LogMetrics</string>
+ </map>
+
+ <key>analyzeperformance</key>
+ <map>
+ <key>desc</key>
+ <string>When used in conjunction with logperformance, analyzes result of log against baseline.</string>
+ <key>map-to</key>
+ <string>AnalyzePerformance</string>
+ </map>
+
+ <key>debugsession</key>
+ <map>
+ <key>desc</key>
+ <string>Run as if RenderDebugGL is TRUE, but log errors until end of session.</string>
+ <key>map-to</key>
+ <string>DebugSession</string>
+ </map>
+
+ <key>replaysession</key>
+ <map>
+ <key>desc</key>
+ <string>After login, replay last recorded session and quit.</string>
+ <key>map-to</key>
+ <string>ReplaySession</string>
+ </map>
+
+ <key>rotate</key>
+ <map>
+ <key>map-to</key>
+ <string>RotateRight</string>
+ </map>
+
+ <key>noaudio</key>
+ <map>
+ <key>map-to</key>
+ <string>NoAudio</string>
+ </map>
+
+ <key>nosound</key>
+ <map>
+ <key>map-to</key>
+ <string>NoAudio</string>
+ </map>
+
+ <key>noprobe</key>
+ <map>
+ <key>map-to</key>
+ <string>NoHardwareProbe</string>
+ </map>
+
+ <key>noquicktime</key>
+ <map>
+ <key>map-to</key>
+ <string>NoQuickTime</string>
+ </map>
+
+ <key>nopreload</key>
+ <map>
+ <key>map-to</key>
+ <string>NoPreload</string>
+ </map>
+
+ <key>purge</key>
+ <map>
+ <key>desc</key>
+ <string>Delete files in the cache.</string>
+ <key>map-to</key>
+ <string>PurgeCacheOnNextStartup</string>
+ </map>
+
+ <key>noinvlib</key>
+ <map>
+ <key>desc</key>
+ <string>Do not request the inventory library.</string>
+ <key>map-to</key>
+ <string>NoInventoryLibrary</string>
+ </map>
+
+ <key>logfile</key>
+ <map>
+ <key>count</key>
+ <integer>1</integer>
+ <key>map-to</key>
+ <string>UserLogFile</string>
+ </map>
+
+ <key>graphicslevel</key>
+ <map>
+ <key>desc</key>
+ <string>Set the detail level.
+ 0 - low, 1 - medium, 2 - high, 3 - ultra
+ </string>
+ <key>count</key>
+ <integer>1</integer>
+ </map>
+
+ <key>setdefault</key>
+ <map>
+ <key>desc</key>
+ <string> specify the value of a particular
+ configuration variable which can be
+ overridden by settings.xml
+ </string>
+ <key>count</key>
+ <integer>2</integer>
+ <!-- Special case. Mapped to settings procedurally. -->
+ </map>
+
+ <key>set</key>
+ <map>
+ <key>desc</key>
+ <string> specify the value of a particular
+ configuration variable that
+ overrides all other settings
+ </string>
+ <key>count</key>
+ <integer>2</integer>
+ <key>compose</key>
+ <boolean>true</boolean>
+ <!-- Special case. Mapped to settings procedurally. -->
+ </map>
+
+ <key>settings</key>
+ <map>
+ <key>desc</key>
+ <string>Specify the filename of a configuration file.</string>
+ <key>count</key>
+ <integer>1</integer>
+ <!-- Special case. Mapped to settings procedurally. -->
+ </map>
+
+ <key>login</key>
+ <map>
+ <key>desc</key>
+ <string>3 tokens: first, last and password</string>
+ <key>count</key>
+ <integer>3</integer>
+ <key>map-to</key>
+ <string>UserLoginInfo</string>
+ </map>
+
+ <key>god</key>
+ <map>
+ <key>desc</key>
+ <string>Log in a god if you have god access.</string>
+ <key>map-to</key>
+ <string>ConnectAsGod</string>
+ </map>
+
+ <key>console</key>
+ <map>
+ <key>count</key>
+ <integer>1</integer>
+ <key>map-to</key>
+ <string>ShowConsoleWindow</string>
+ </map>
+
+ <key>safe</key>
+ <map>
+ <key>desc</key>
+ <string>Reset preferences, run in safe mode.</string>
+ <key>map-to</key>
+ <string>SafeMode</string>
+ </map>
+
+ <key>multiple</key>
+ <map>
+ <key>desc</key>
+ <string>Allow multple viewers.</string>
+ <key>map-to</key>
+ <string>AllowMultipleViewers</string>
+ </map>
+
+ <key>novoice</key>
+ <map>
+ <key>desc</key>
+ <string>Disable voice.</string>
+ <key>map-to</key>
+ <string>CmdLineDisableVoice</string>
+ </map>
+
+ <key>url</key>
+ <map>
+ <key>desc</key>
+ <string>Startup location</string>
+ <key>count</key>
+ <integer>1</integer>
+ <key>last_option</key>
+ <boolean>true</boolean>
+ <!-- Special case. Not mapped to a setting. -->
+ </map>
+
+ <key>slurl</key>
+ <map>
+ <key>desc</key>
+ <string>Startup SLurl</string>
+ <key>count</key>
+ <integer>1</integer>
+ <key>positional</key>
+ <boolean>true</boolean>
+ <key>last_option</key>
+ <boolean>true</boolean>
+ <!-- Special case. Not mapped to a setting. -->
+ </map>
+
+ <key>ignorepixeldepth</key>
+ <map>
+ <key>desc</key>
+ <string>Ignore pixel depth settings.</string>
+ <key>map-to</key>
+ <string>IgnorePixelDepth</string>
+ </map>
+
+ <key>cooperative</key>
+ <map>
+ <key>desc</key>
+ <string>Yield some idle time to local host.</string>
+ <key>count</key>
+ <integer>1</integer>
+ <key>map-to</key>
+ <string>YieldTime</string>
+ </map>
+
+ <key>no-verify-ssl-cert</key>
+ <map>
+ <key>map-to</key>
+ <string>NoVerifySSLCert</string>
+ </map>
+
+ <key>channel</key>
+ <map>
+ <key>count</key>
+ <integer>1</integer>
+ <key>map-to</key>
+ <string>VersionChannelName</string>
+ </map>
+
+ <key>loginpage</key>
+ <map>
+ <key>desc</key>
+ <string>Login authentication page to use.</string>
+ <key>count</key>
+ <integer>1</integer>
+ <key>map-to</key>
+ <string>LoginPage</string>
+ </map>
+
+ <key>qa</key>
+ <map>
+ <key>desc</key>
+ <string>Activated debugging menu in Advanced Settings.</string>
+ <key>map-to</key>
+ <string>QAMode</string>
+ </map>
+
+ <key>crashonstartup</key>
+ <map>
+ <key>desc</key>
+ <string>Crashes on startup. For QA use.</string>
+ <key>map-to</key>
+ <string>CrashOnStartup</string>
+ </map>
+
+ </map>
+</llsd>
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index f396226165..5ad49774a9 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -584,6 +584,17 @@
<key>Value</key>
<integer>0</integer>
</map>
+ <key>BottomPanelNew</key>
+ <map>
+ <key>Comment</key>
+ <string>Enable the new bottom panel</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>0</integer>
+ </map>
<key>BrowserHomePage</key>
<map>
<key>Comment</key>
@@ -2732,6 +2743,17 @@
<key>Value</key>
<integer>1</integer>
</map>
+ <key>FirstSelectedDisabledPopups</key>
+ <map>
+ <key>Comment</key>
+ <string>Return false if there is not disabled popup selected in the list of floater preferences popups</string>
+ <key>Persist</key>
+ <integer>0</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>0</integer>
+ </map>
<key>FixedWeather</key>
<map>
<key>Comment</key>
@@ -2870,17 +2892,6 @@
<integer>0</integer>
</array>
</map>
- <key>FloaterViewBottom</key>
- <map>
- <key>Comment</key>
- <string>[DO NOT MODIFY] Controls layout of floating windows within SL window</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>S32</string>
- <key>Value</key>
- <integer>-1</integer>
- </map>
<key>FlyBtnEnabled</key>
<map>
<key>Comment</key>
@@ -3318,16 +3329,16 @@
<key>Value</key>
<integer>0</integer>
</map>
- <key>FullScreen</key>
+ <key>NotFullScreen</key>
<map>
<key>Comment</key>
- <string>Run SL in fullscreen mode</string>
+ <string>Run SL in non fullscreen mode</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
- <integer>0</integer>
+ <integer>1</integer>
</map>
<key>FullScreenAspectRatio</key>
<map>
@@ -3516,6 +3527,17 @@
<key>Value</key>
<string />
</map>
+ <key>IMInChatConsole</key>
+ <map>
+ <key>Comment</key>
+ <string>Copy IM into chat console</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>1</integer>
+ </map>
<key>IMInChatHistory</key>
<map>
<key>Comment</key>
@@ -4331,6 +4353,17 @@
<key>Value</key>
<real>600.0</real>
</map>
+ <key>MemProfiling</key>
+ <map>
+ <key>Comment</key>
+ <string>You want to use tcmalloc's memory profiling options.</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>0</integer>
+ </map>
<key>MenuAccessKeyTime</key>
<map>
<key>Comment</key>
@@ -5427,6 +5460,17 @@
<key>Value</key>
<integer>0</integer>
</map>
+ <key>RenderDebugAlphaMask</key>
+ <map>
+ <key>Comment</key>
+ <string>Test Alpha Masking Cutoffs.</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>F32</string>
+ <key>Value</key>
+ <real>0.5</real>
+ </map>
<key>RenderDebugGL</key>
<map>
<key>Comment</key>
@@ -5791,6 +5835,17 @@
<key>Value</key>
<integer>0</integer>
</map>
+ <key>RenderHUDParticles</key>
+ <map>
+ <key>Comment</key>
+ <string>Display particle systems in HUD attachments (experimental)</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>0</integer>
+ </map>
<key>RenderHiddenSelections</key>
<map>
<key>Comment</key>
@@ -6997,7 +7052,18 @@
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
+ <integer>0</integer>
+ </map>
+ <key>ShowNetStats</key>
+ <map>
+ <key>Comment</key>
+ <string>Show the Search Bar in the Status Overlay</string>
+ <key>Persist</key>
<integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>0</integer>
</map>
<key>ShowSelectionBeam</key>
<map>
@@ -7092,7 +7158,7 @@
<key>Comment</key>
<string>Display XUI Names as Tooltips</string>
<key>Persist</key>
- <integer>1</integer>
+ <integer>0</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
@@ -7377,28 +7443,6 @@
<key>Value</key>
<string>fss.txt</string>
</map>
- <key>StatusBarHeight</key>
- <map>
- <key>Comment</key>
- <string>Height of menu/status bar at top of screen (pixels)</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>S32</string>
- <key>Value</key>
- <integer>26</integer>
- </map>
- <key>StatusBarPad</key>
- <map>
- <key>Comment</key>
- <string>Spacing between popup buttons at bottom of screen (Stand up, Release Controls)</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>S32</string>
- <key>Value</key>
- <integer>10</integer>
- </map>
<key>SystemLanguage</key>
<map>
<key>Comment</key>
@@ -7408,7 +7452,7 @@
<key>Type</key>
<string>String</string>
<key>Value</key>
- <string>en-us</string>
+ <string>en</string>
</map>
<key>TabToTextFieldsOnly</key>
<map>
@@ -7861,6 +7905,28 @@
<key>Value</key>
<string>5748decc-f629-461c-9a36-a35a221fe21f</string>
</map>
+ <key>UIImgDefaultAlphaUUID</key>
+ <map>
+ <key>Comment</key>
+ <string />
+ <key>Persist</key>
+ <integer>0</integer>
+ <key>Type</key>
+ <string>String</string>
+ <key>Value</key>
+ <string>5748decc-f629-461c-9a36-a35a221fe21f</string>
+ </map>
+ <key>UIImgDefaultTattooUUID</key>
+ <map>
+ <key>Comment</key>
+ <string />
+ <key>Persist</key>
+ <integer>0</integer>
+ <key>Type</key>
+ <string>String</string>
+ <key>Value</key>
+ <string>5748decc-f629-461c-9a36-a35a221fe21f</string>
+ </map>
<key>UIImgDefaultUnderwearUUID</key>
<map>
<key>Comment</key>
@@ -9149,6 +9215,17 @@
<key>Value</key>
<integer>44125</integer>
</map>
+ <key>WarningsAsChat</key>
+ <map>
+ <key>Comment</key>
+ <string>Display warning messages in chat history</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>0</integer>
+ </map>
<key>WLSkyDetail</key>
<map>
<key>Comment</key>
@@ -9169,7 +9246,7 @@
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
- <integer>1</integer>
+ <integer>0</integer>
</map>
<key>WaterEditPresets</key>
<map>
diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml
index f484167cab..c943c57fdb 100644
--- a/indra/newview/character/avatar_lad.xml
+++ b/indra/newview/character/avatar_lad.xml
@@ -5542,6 +5542,14 @@
<texture
local_texture="hair_grain" />
</layer>
+
+ <layer
+ name="hair alpha"
+ visibility_mask="TRUE">
+ <texture
+ local_texture="hair_alpha" />
+ </layer>
+
</layer_set>
<!-- =========================================================== -->
@@ -5615,13 +5623,31 @@
</param>
</layer>
- <layer
- name="head_bodypaint">
- <texture
- local_texture="head_bodypaint" />
- </layer>
+ <layer
+ name="highlight">
+ <texture
+ tga_file="head_highlights_alpha.tga"
+ file_is_mask="TRUE" />
- <layer
+
+ <param
+ id="159"
+ group="1"
+ name="Shading"
+ wearable="skin"
+ value_min="0"
+ value_max="1">
+ <param_color>
+ <value
+ color="255, 255, 255, 0" />
+
+
+ <value
+ color="255, 255, 255, 64" />
+ </param_color>
+ </param>
+ </layer>
+ <layer
name="rosyface">
<texture
tga_file="rosyface_alpha.tga"
@@ -5651,52 +5677,6 @@
</layer>
<layer
- name="freckles"
- fixed_color="120,47,20,128">
- <param
- id="165"
- group="0"
- wearable="skin"
- edit_group="skin_facedetail"
- edit_group_order="2"
- name="Freckles"
- label_min="Less"
- label_max="More"
- value_min="0"
- value_max="1"
- camera_distance=".3"
- camera_elevation=".07">
- <param_alpha
- tga_file="freckles_alpha.tga"
- skip_if_zero="true"
- domain="0.5" />
- </param>
- </layer>
-
- <layer
- name="highlight">
- <texture
- tga_file="head_highlights_alpha.tga"
- file_is_mask="TRUE" />
-
- <param
- id="159"
- group="1"
- name="Shading"
- wearable="skin"
- value_min="0"
- value_max="1">
- <param_color>
- <value
- color="255, 255, 255, 0" />
-
- <value
- color="255, 255, 255, 64" />
- </param_color>
- </param>
- </layer>
-
- <layer
name="lips">
<texture
tga_file="lips_mask.tga"
@@ -5757,8 +5737,29 @@
domain="0.3" />
</param>
</layer>-->
-
<layer
+ name="freckles"
+ fixed_color="120,47,20,128">
+ <param
+ id="165"
+ group="0"
+ wearable="skin"
+ edit_group="skin_facedetail"
+ edit_group_order="2"
+ name="Freckles"
+ label_min="Less"
+ label_max="More"
+ value_min="0"
+ value_max="1"
+ camera_distance=".3"
+ camera_elevation=".07">
+ <param_alpha
+ tga_file="freckles_alpha.tga"
+ skip_if_zero="true"
+ domain="0.5" />
+ </param>
+ </layer>
+ <layer
name="eyebrowsbump"
render_pass="bump">
<texture
@@ -6458,8 +6459,6 @@
<layer
name="facialhair"
global_color="hair_color">
- <morph_mask
- morph_name="Displace_Hair_Facial" />
<texture
tga_file="head_hair.tga"
@@ -6546,6 +6545,23 @@
</param>
</layer>
+ <layer
+ name="head_bodypaint">
+ <texture
+ local_texture="head_bodypaint" />
+ </layer>
+ <layer
+ name="head alpha"
+ visibility_mask="TRUE">
+ <texture
+ local_texture="head_alpha" />
+ </layer>
+ <layer
+ name="head_tattoo">
+ <texture
+ local_texture="head_tattoo" />
+ </layer>
+
</layer_set>
<!-- =========================================================== -->
@@ -6662,6 +6678,13 @@
</layer>
<layer
+ name="upper_tattoo">
+ <texture
+ local_texture="upper_tattoo" />
+ </layer>
+
+
+ <layer
name="upper_undershirt bump"
render_pass="bump"
fixed_color="128,128,128,255">
@@ -7289,12 +7312,6 @@
<texture
local_texture="upper_shirt" />
- <morph_mask
- morph_name="Displace_Loose_Upperbody" />
-
- <morph_mask
- morph_name="Shirtsleeve_flair" />
-
<param
id="803"
group="0"
@@ -7730,6 +7747,14 @@
domain="0.01" />
</param>
</layer>
+
+ <layer
+ name="upper alpha"
+ visibility_mask="TRUE">
+ <texture
+ local_texture="upper_alpha" />
+ </layer>
+
</layer_set>
<!-- =========================================================== -->
@@ -7846,6 +7871,12 @@
</layer>
<layer
+ name="lower_tattoo">
+ <texture
+ local_texture="lower_tattoo" />
+ </layer>
+
+ <layer
name="lower_underpants bump"
render_pass="bump"
fixed_color="128,128,128,255">
@@ -8315,18 +8346,6 @@
<texture
local_texture="lower_pants" />
- <morph_mask
- morph_name="Displace_Loose_Lowerbody" />
-
- <morph_mask
- morph_name="Leg_Pantflair" />
-
- <morph_mask
- morph_name="Low_Crotch" />
-
- <morph_mask
- morph_name="Leg_Longcuffs" />
-
<param
id="806"
group="0"
@@ -8602,6 +8621,14 @@
domain="0.01" />
</param>
</layer>
+
+ <layer
+ name="lower alpha"
+ visibility_mask="TRUE">
+ <texture
+ local_texture="lower_alpha" />
+ </layer>
+
</layer_set>
<!-- =========================================================== -->
@@ -8621,6 +8648,14 @@
<texture
local_texture="eyes_iris" />
</layer>
+
+ <layer
+ name="eyes alpha"
+ visibility_mask="TRUE">
+ <texture
+ local_texture="eyes_alpha" />
+ </layer>
+
</layer_set>
<!-- =========================================================== -->
@@ -8800,6 +8835,7 @@
domain="0" />
</param>
</layer>
+
</layer_set>
<!-- =========================================================== -->
@@ -11260,5 +11296,36 @@
</param>
</driver_parameters>
+
+ <morph_masks>
+ <mask
+ morph_name="Displace_Hair_Facial"
+ body_region="head"
+ layer="facialhair" />
+ <mask
+ morph_name="Displace_Loose_Upperbody"
+ body_region="upper_body"
+ layer="upper_clothes" />
+ <mask
+ morph_name="Shirtsleeve_flair"
+ body_region="upper_body"
+ layer="upper_clothes" />
+ <mask
+ morph_name="Displace_Loose_Lowerbody"
+ body_region="lower_body"
+ layer="lower_pants" />
+ <mask
+ morph_name="Leg_Pantflair"
+ body_region="lower_body"
+ layer="lower_pants" />
+ <mask
+ morph_name="Low_Crotch"
+ body_region="lower_body"
+ layer="lower_pants" />
+ <mask
+ morph_name="Leg_Longcuffs"
+ body_region="lower_body"
+ layer="lower_pants" />
+ </morph_masks>
</linden_avatar>
diff --git a/indra/newview/character/checkerboard.tga b/indra/newview/character/checkerboard.tga
new file mode 100644
index 0000000000..1950d7403d
--- /dev/null
+++ b/indra/newview/character/checkerboard.tga
Binary files differ
diff --git a/indra/newview/character/invisible_head.tga b/indra/newview/character/invisible_head.tga
new file mode 100755
index 0000000000..2673a237d5
--- /dev/null
+++ b/indra/newview/character/invisible_head.tga
Binary files differ
diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi
index 87218008bd..73a548cdc6 100644
--- a/indra/newview/installers/windows/installer_template.nsi
+++ b/indra/newview/installers/windows/installer_template.nsi
@@ -498,7 +498,8 @@ RMDir "$INSTDIR"
IfFileExists "$INSTDIR" FOLDERFOUND NOFOLDER
FOLDERFOUND:
- MessageBox MB_YESNO $(DeleteProgramFilesMB) IDNO NOFOLDER
+ ; Silent uninstall always removes all files (/SD IDYES)
+ MessageBox MB_YESNO $(DeleteProgramFilesMB) /SD IDYES IDNO NOFOLDER
RMDir /r "$INSTDIR"
NOFOLDER:
diff --git a/indra/newview/installers/windows/lang_nl.nsi b/indra/newview/installers/windows/lang_nl.nsi
index c8ffa8bfcd..8884b1e858 100644
--- a/indra/newview/installers/windows/lang_nl.nsi
+++ b/indra/newview/installers/windows/lang_nl.nsi
Binary files differ
diff --git a/indra/newview/linux_tools/launch_url.sh b/indra/newview/linux_tools/launch_url.sh
index d2c8919d46..404ea36f26 100755
--- a/indra/newview/linux_tools/launch_url.sh
+++ b/indra/newview/linux_tools/launch_url.sh
@@ -7,17 +7,15 @@
#
# On Unixoids we try, in order of decreasing priority:
# - $BROWSER if set (preferred)
-# - kfmclient openURL
+# - Default GNOME browser
+# - Default KDE browser
# - x-www-browser
-# - opera
-# - firefox
-# - mozilla
-# - netscape
+# - The first browser in $BROWSER_COMMANDS that is found.
URL="$1"
if [ -z "$URL" ]; then
- echo "Usage: $0 URL"
+ echo "Usage: $(basename "$0") URL"
exit
fi
@@ -47,46 +45,42 @@ if [ ! -z "$XBROWSER" ]; then
echo "$0: Trying some others..."
fi
-# else kfmclient
-# (embodies KDE concept of 'preferred browser')
-if which kfmclient >/dev/null; then
- kfmclient openURL "$URL" &
- exit
-fi
-
-# else x-www-browser
-# (Debianesque idea of a working X browser)
-if which x-www-browser >/dev/null; then
- x-www-browser "$URL" &
- exit
-fi
-
-# else opera
-# (if user has opera in their path, they probably went to the
-# trouble of installing it -> prefer it)
-if which opera >/dev/null; then
- opera "$URL" &
+# Launcher the default GNOME browser.
+if [ ! -z "$GNOME_DESKTOP_SESSION_ID" ] && which gnome-open >/dev/null; then
+ gnome-open "$URL" &
exit
fi
-# else firefox
-if which firefox >/dev/null; then
- firefox "$URL" &
+# Launch the default KDE browser.
+if [ ! -z "$KDE_FULL_SESSION" ] && which kfmclient >/dev/null; then
+ kfmclient openURL "$URL" &
exit
fi
-# else mozilla
-if which mozilla >/dev/null; then
- mozilla "$URL" &
- exit
-fi
-
-# else netscape
-if which netscape >/dev/null; then
- netscape "$URL" &
- exit
-fi
+# List of browser commands that will be tried in the order listed. x-www-browser
+# will be tried first, which is a debian alternative.
+BROWSER_COMMANDS=" \
+ x-www-browser \
+ firefox \
+ mozilla-firefox \
+ iceweasel \
+ iceape \
+ opera \
+ epiphany-browser \
+ epiphany-gecko \
+ epiphany-webkit \
+ epiphany \
+ mozilla \
+ seamonkey \
+ galeon \
+ dillo \
+ netscape"
+for browser_cmd in $BROWSER_COMMANDS; do
+ if which $browser_cmd >/dev/null; then
+ $browser_cmd "$URL" &
+ exit
+ fi
+done
echo '$0: Failed to find a known browser. Please consider setting the $BROWSER environment variable.'
-
-# end.
+exit 1
diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp
index f97f9f607f..a70d31431f 100644
--- a/indra/newview/llagent.cpp
+++ b/indra/newview/llagent.cpp
@@ -32,110 +32,69 @@
#include "llviewerprecompiledheaders.h"
-#include "stdtypes.h"
-#include "stdenums.h"
-
#include "llagent.h"
+#include "llagentwearables.h"
-#include "llcamera.h"
-#include "llcoordframe.h"
-#include "indra_constants.h"
-#include "llmath.h"
-#include "llcriticaldamp.h"
-#include "llfocusmgr.h"
-#include "llglheaders.h"
-#include "llmenugl.h"
-#include "llparcel.h"
-#include "llpermissions.h"
-#include "llregionhandle.h"
-#include "m3math.h"
-#include "m4math.h"
-#include "message.h"
-#include "llquaternion.h"
-#include "v3math.h"
-#include "v4math.h"
-#include "llsmoothstep.h"
-#include "llsdutil.h"
-//#include "vmath.h"
-
-#include "imageids.h"
-#include "llbox.h"
-#include "llbutton.h"
+#include "llanimationstates.h"
#include "llcallingcard.h"
#include "llchatbar.h"
#include "llconsole.h"
#include "lldrawable.h"
-#include "llface.h"
#include "llfirstuse.h"
-#include "llfloater.h"
#include "llfloaterreg.h"
#include "llfloateractivespeakers.h"
#include "llfloateravatarinfo.h"
-#include "llfloaterbuildoptions.h"
#include "llfloatercamera.h"
-#include "llfloaterchat.h"
#include "llfloatercustomize.h"
#include "llfloaterdirectory.h"
#include "llfloatergroupinfo.h"
-#include "llfloatergroups.h"
#include "llfloaterland.h"
#include "llfloatermute.h"
#include "llfloatersnapshot.h"
#include "llfloatertools.h"
#include "llfloaterworldmap.h"
+
+#include "llfocusmgr.h"
#include "llgroupmgr.h"
#include "llhomelocationresponder.h"
-#include "llhudeffectlookat.h"
+#include "llimview.h"
#include "llhudmanager.h"
-#include "llinventorymodel.h"
-#include "llinventoryview.h"
#include "lljoystickbutton.h"
#include "llmenugl.h"
#include "llmorphview.h"
#include "llmoveview.h"
-#include "llteleporthistory.h"
-#include "llnotify.h"
-#include "llquantize.h"
+#include "llparcel.h"
#include "llsdutil.h"
#include "llselectmgr.h"
#include "llsky.h"
#include "llslurl.h"
-#include "llrendersphere.h"
+#include "llsmoothstep.h"
+#include "llsidetray.h"
#include "llstatusbar.h"
-#include "llstartup.h"
-#include "llimview.h"
+#include "llteleporthistory.h"
#include "lltool.h"
#include "lltoolcomp.h"
-#include "lltoolfocus.h"
-#include "lltoolgrab.h"
#include "lltoolmgr.h"
-#include "lltoolpie.h"
-#include "llui.h" // for make_ui_sound
+#include "lluictrlfactory.h"
+#include "llurldispatcher.h"
+
#include "llviewercamera.h"
-#include "llviewerinventory.h"
-#include "llviewermenu.h"
-#include "llviewernetwork.h"
+#include "llviewerdisplay.h"
#include "llviewerobjectlist.h"
#include "llviewerparcelmgr.h"
-#include "llviewerparceloverlay.h"
-#include "llviewerregion.h"
#include "llviewerstats.h"
#include "llviewerwindow.h"
-#include "llviewerdisplay.h"
-#include "llvoavatar.h"
-#include "llvoground.h"
-#include "llvosky.h"
-#include "llwearable.h"
-#include "llwearablelist.h"
+#include "llviewercontrol.h"
+#include "llviewerjoystick.h"
+
+#include "llvoavatarself.h"
+#include "llwindow.h"
#include "llworld.h"
#include "llworldmap.h"
+
#include "pipeline.h"
-#include "roles_constants.h"
-#include "llviewercontrol.h"
-#include "llappviewer.h"
-#include "llviewerjoystick.h"
-#include "llfollowcam.h"
#include "lltrans.h"
+#include "llbottomtray.h"
#include "stringize.h"
#include "llcapabilitylistener.h"
@@ -145,6 +104,10 @@ using namespace LLVOAvatarDefines;
extern LLMenuBarGL* gMenuBarView;
+const BOOL ANIMATE = TRUE;
+const U8 AGENT_STATE_TYPING = 0x04;
+const U8 AGENT_STATE_EDITING = 0x10;
+
//drone wandering constants
const F32 MAX_WANDER_TIME = 20.f; // seconds
const F32 MAX_HEADING_HALF_ERROR = 0.2f; // radians
@@ -220,7 +183,7 @@ const F64 CHAT_AGE_FAST_RATE = 3.0;
// The agent instance.
LLAgent gAgent;
-//
+//--------------------------------------------------------------------
// Statics
//
@@ -259,7 +222,6 @@ bool handleSlowMotionAnimation(const LLSD& newvalue)
return true;
}
-
// ************************************************************
// Enabled this definition to compile a 'hacked' viewer that
// locally believes the end user has godlike powers.
@@ -282,19 +244,12 @@ LLAgent::LLAgent() :
mHideGroupTitle(FALSE),
mGroupID(),
- mMapOriginX(0.F),
- mMapOriginY(0.F),
- mMapWidth(0),
- mMapHeight(0),
-
mLookAt(NULL),
mPointAt(NULL),
mHUDTargetZoom(1.f),
mHUDCurZoom(1.f),
mInitialized(FALSE),
- mNumPendingQueries(0),
- mActiveCacheQueries(NULL),
mForceMouselook(FALSE),
mDoubleTapRunTimer(),
@@ -413,9 +368,6 @@ LLAgent::LLAgent() :
mFirstLogin(FALSE),
mGenderChosen(FALSE),
- mAgentWearablesUpdateSerialNum(0),
- mWearablesLoaded(FALSE),
- mTextureCacheQueryID(0),
mAppearanceSerialNum(0)
{
for (U32 i = 0; i < TOTAL_CONTROLS; i++)
@@ -424,12 +376,6 @@ LLAgent::LLAgent() :
mControlsTakenPassedOnCount[i] = 0;
}
- mActiveCacheQueries = new S32[BAKED_NUM_INDICES];
- for (U32 i = 0; i < (U32)BAKED_NUM_INDICES; i++)
- {
- mActiveCacheQueries[i] = 0;
- }
-
mFollowCam.setMaxCameraDistantFromSubject( MAX_CAMERA_DISTANCE_FROM_AGENT );
}
@@ -450,7 +396,7 @@ void LLAgent::init()
// Leave at 0.1 meters until we have real near clip management
LLViewerCamera::getInstance()->setNear(0.1f);
LLViewerCamera::getInstance()->setFar(mDrawDistance); // if you want to change camera settings, do so in camera.h
- LLViewerCamera::getInstance()->setAspect( gViewerWindow->getDisplayAspectRatio() ); // default, overridden in LLViewerWindow::reshape
+ LLViewerCamera::getInstance()->setAspect( gViewerWindow->getWorldViewAspectRatio() ); // default, overridden in LLViewerWindow::reshape
LLViewerCamera::getInstance()->setViewHeightInPixels(768); // default, overridden in LLViewerWindow::reshape
setFlying( gSavedSettings.getBOOL("FlyingAtExit") );
@@ -464,7 +410,7 @@ void LLAgent::init()
mTrackFocusObject = gSavedSettings.getBOOL("TrackFocusObject");
mEffectColor = gSavedSkinSettings.getColor4("EffectColor");
-
+
gSavedSettings.getControl("PreferredMaturity")->getValidateSignal()->connect(boost::bind(&LLAgent::validateMaturity, this, _2));
gSavedSettings.getControl("PreferredMaturity")->getSignal()->connect(boost::bind(&LLAgent::handleMaturity, this, _2));
@@ -477,7 +423,9 @@ void LLAgent::init()
void LLAgent::cleanup()
{
setSitCamera(LLUUID::null);
+
mAvatarObject = NULL;
+
if(mLookAt)
{
mLookAt->markDead() ;
@@ -499,9 +447,6 @@ LLAgent::~LLAgent()
{
cleanup();
- delete [] mActiveCacheQueries;
- mActiveCacheQueries = NULL;
-
// *Note: this is where LLViewerCamera::getInstance() used to be deleted.
}
@@ -549,7 +494,7 @@ void LLAgent::resetView(BOOL reset_camera, BOOL change_camera)
{
LLViewerJoystick::getInstance()->moveAvatar(true);
}
-
+
LLFloaterReg::hideInstance("build");
gViewerWindow->showCursor();
@@ -1350,167 +1295,171 @@ LLQuaternion LLAgent::getQuat() const
//-----------------------------------------------------------------------------
// calcFocusOffset()
//-----------------------------------------------------------------------------
-LLVector3 LLAgent::calcFocusOffset(LLViewerObject *object, LLVector3 pos_agent, S32 x, S32 y)
+LLVector3 LLAgent::calcFocusOffset(LLViewerObject *object, LLVector3 original_focus_point, S32 x, S32 y)
{
- // calculate offset based on view direction
- BOOL is_avatar = object->isAvatar();
- LLMatrix4 obj_matrix = is_avatar ? ((LLVOAvatar*)object)->mPelvisp->getWorldMatrix() : object->getRenderMatrix();
- LLQuaternion obj_rot = is_avatar ? ((LLVOAvatar*)object)->mPelvisp->getWorldRotation() : object->getRenderRotation();
- LLVector3 obj_pos = is_avatar ? ((LLVOAvatar*)object)->mPelvisp->getWorldPosition() : object->getRenderPosition();
- LLQuaternion inv_obj_rot = ~obj_rot;
+ LLMatrix4 obj_matrix = object->getRenderMatrix();
+ LLQuaternion obj_rot = object->getRenderRotation();
+ LLVector3 obj_pos = object->getRenderPosition();
- LLVector3 obj_dir_abs = obj_pos - LLViewerCamera::getInstance()->getOrigin();
- obj_dir_abs.rotVec(inv_obj_rot);
- obj_dir_abs.normalize();
- obj_dir_abs.abs();
+ BOOL is_avatar = object->isAvatar();
+ // if is avatar - don't do any funk heuristics to position the focal point
+ // see DEV-30589
+ if (is_avatar)
+ {
+ return original_focus_point - obj_pos;
+ }
+
+ LLQuaternion inv_obj_rot = ~obj_rot; // get inverse of rotation
LLVector3 object_extents = object->getScale();
// make sure they object extents are non-zero
object_extents.clamp(0.001f, F32_MAX);
- LLVector3 object_half_extents = object_extents * 0.5f;
- obj_dir_abs.mV[VX] = obj_dir_abs.mV[VX] / object_extents.mV[VX];
- obj_dir_abs.mV[VY] = obj_dir_abs.mV[VY] / object_extents.mV[VY];
- obj_dir_abs.mV[VZ] = obj_dir_abs.mV[VZ] / object_extents.mV[VZ];
+ // obj_to_cam_ray is unit vector pointing from object center to camera, in the coordinate frame of the object
+ LLVector3 obj_to_cam_ray = obj_pos - LLViewerCamera::getInstance()->getOrigin();
+ obj_to_cam_ray.rotVec(inv_obj_rot);
+ obj_to_cam_ray.normalize();
- LLVector3 normal;
- if (obj_dir_abs.mV[VX] > obj_dir_abs.mV[VY] && obj_dir_abs.mV[VX] > obj_dir_abs.mV[VZ])
+ // obj_to_cam_ray_proportions are the (positive) ratios of
+ // the obj_to_cam_ray x,y,z components with the x,y,z object dimensions.
+ LLVector3 obj_to_cam_ray_proportions;
+ obj_to_cam_ray_proportions.mV[VX] = llabs(obj_to_cam_ray.mV[VX] / object_extents.mV[VX]);
+ obj_to_cam_ray_proportions.mV[VY] = llabs(obj_to_cam_ray.mV[VY] / object_extents.mV[VY]);
+ obj_to_cam_ray_proportions.mV[VZ] = llabs(obj_to_cam_ray.mV[VZ] / object_extents.mV[VZ]);
+
+ // find the largest ratio stored in obj_to_cam_ray_proportions
+ // this corresponds to the object's local axial plane (XY, YZ, XZ) that is *most* facing the camera
+ LLVector3 longest_object_axis;
+ // is x-axis longest?
+ if (obj_to_cam_ray_proportions.mV[VX] > obj_to_cam_ray_proportions.mV[VY]
+ && obj_to_cam_ray_proportions.mV[VX] > obj_to_cam_ray_proportions.mV[VZ])
{
- normal.setVec(obj_matrix.getFwdRow4());
+ // then grab it
+ longest_object_axis.setVec(obj_matrix.getFwdRow4());
}
- else if (obj_dir_abs.mV[VY] > obj_dir_abs.mV[VZ])
+ // is y-axis longest?
+ else if (obj_to_cam_ray_proportions.mV[VY] > obj_to_cam_ray_proportions.mV[VZ])
{
- normal.setVec(obj_matrix.getLeftRow4());
+ // then grab it
+ longest_object_axis.setVec(obj_matrix.getLeftRow4());
}
+ // otherwise, use z axis
else
{
- normal.setVec(obj_matrix.getUpRow4());
+ longest_object_axis.setVec(obj_matrix.getUpRow4());
}
- normal.normalize();
+
+ // Use this axis as the normal to project mouse click on to plane with that normal, at the object center.
+ // This generates a point behind the mouse cursor that is approximately in the middle of the object in
+ // terms of depth.
+ // We do this to allow the camera rotation tool to "tumble" the object by rotating the camera.
+ // If the focus point were the object surface under the mouse, camera rotation would introduce an undesirable
+ // eccentricity to the object orientation
+ LLVector3 focus_plane_normal(longest_object_axis);
+ focus_plane_normal.normalize();
LLVector3d focus_pt_global;
- // RN: should we check return value for valid pick?
- gViewerWindow->mousePointOnPlaneGlobal(focus_pt_global, x, y, gAgent.getPosGlobalFromAgent(obj_pos), normal);
+ gViewerWindow->mousePointOnPlaneGlobal(focus_pt_global, x, y, gAgent.getPosGlobalFromAgent(obj_pos), focus_plane_normal);
LLVector3 focus_pt = gAgent.getPosAgentFromGlobal(focus_pt_global);
- // find vector from camera to focus point in object coordinates
- LLVector3 camera_focus_vec = focus_pt - LLViewerCamera::getInstance()->getOrigin();
- // convert to object-local space
- camera_focus_vec.rotVec(inv_obj_rot);
+
+ // find vector from camera to focus point in object space
+ LLVector3 camera_to_focus_vec = focus_pt - LLViewerCamera::getInstance()->getOrigin();
+ camera_to_focus_vec.rotVec(inv_obj_rot);
// find vector from object origin to focus point in object coordinates
- LLVector3 focus_delta = focus_pt - obj_pos;
+ LLVector3 focus_offset_from_object_center = focus_pt - obj_pos;
// convert to object-local space
- focus_delta.rotVec(inv_obj_rot);
+ focus_offset_from_object_center.rotVec(inv_obj_rot);
- // calculate clip percentage needed to get focus offset back in bounds along the camera_focus axis
+ // We need to project the focus point back into the bounding box of the focused object.
+ // Do this by calculating the XYZ scale factors needed to get focus offset back in bounds along the camera_focus axis
LLVector3 clip_fraction;
+ // for each axis...
for (U32 axis = VX; axis <= VZ; axis++)
{
- F32 clip_amt;
- if (focus_delta.mV[axis] > 0.f)
+ //...calculate distance that focus offset sits outside of bounding box along that axis...
+ //NOTE: dist_out_of_bounds keeps the sign of focus_offset_from_object_center
+ F32 dist_out_of_bounds;
+ if (focus_offset_from_object_center.mV[axis] > 0.f)
{
- clip_amt = llmax(0.f, focus_delta.mV[axis] - object_half_extents.mV[axis]);
+ dist_out_of_bounds = llmax(0.f, focus_offset_from_object_center.mV[axis] - (object_extents.mV[axis] * 0.5f));
}
else
{
- clip_amt = llmin(0.f, focus_delta.mV[axis] + object_half_extents.mV[axis]);
+ dist_out_of_bounds = llmin(0.f, focus_offset_from_object_center.mV[axis] + (object_extents.mV[axis] * 0.5f));
}
- // don't divide by very small nunber
- if (llabs(camera_focus_vec.mV[axis]) < 0.0001f)
+ //...then calculate the scale factor needed to push camera_to_focus_vec back in bounds along current axis
+ if (llabs(camera_to_focus_vec.mV[axis]) < 0.0001f)
{
+ // don't divide by very small number
clip_fraction.mV[axis] = 0.f;
}
else
{
- clip_fraction.mV[axis] = clip_amt / camera_focus_vec.mV[axis];
+ clip_fraction.mV[axis] = dist_out_of_bounds / camera_to_focus_vec.mV[axis];
}
}
LLVector3 abs_clip_fraction = clip_fraction;
abs_clip_fraction.abs();
- // find greatest shrinkage factor and
+ // find axis of focus offset that is *most* outside the bounding box and use that to
// rescale focus offset to inside object extents
- if (abs_clip_fraction.mV[VX] > abs_clip_fraction.mV[VY] &&
- abs_clip_fraction.mV[VX] > abs_clip_fraction.mV[VZ])
+ if (abs_clip_fraction.mV[VX] > abs_clip_fraction.mV[VY]
+ && abs_clip_fraction.mV[VX] > abs_clip_fraction.mV[VZ])
{
- focus_delta -= clip_fraction.mV[VX] * camera_focus_vec;
+ focus_offset_from_object_center -= clip_fraction.mV[VX] * camera_to_focus_vec;
}
else if (abs_clip_fraction.mV[VY] > abs_clip_fraction.mV[VZ])
{
- focus_delta -= clip_fraction.mV[VY] * camera_focus_vec;
+ focus_offset_from_object_center -= clip_fraction.mV[VY] * camera_to_focus_vec;
}
else
{
- focus_delta -= clip_fraction.mV[VZ] * camera_focus_vec;
+ focus_offset_from_object_center -= clip_fraction.mV[VZ] * camera_to_focus_vec;
}
// convert back to world space
- focus_delta.rotVec(obj_rot);
+ focus_offset_from_object_center.rotVec(obj_rot);
+ // now, based on distance of camera from object relative to object size
+ // push the focus point towards the near surface of the object when (relatively) close to the objcet
+ // or keep the focus point in the object middle when (relatively) far
+ // NOTE: leave focus point in middle of avatars, since the behavior you want when alt-zooming on avatars
+ // is almost always "tumble about middle" and not "spin around surface point"
if (!is_avatar)
{
- //unproject relative clicked coordinate from window coordinate using GL
- /*GLint viewport[4];
- GLdouble modelview[16];
- GLdouble projection[16];
- GLfloat winX, winY, winZ;
- GLdouble posX, posY, posZ;
-
- // convert our matrices to something that has a multiply that works
- glh::matrix4f newModel((F32*)LLViewerCamera::getInstance()->getModelview().mMatrix);
- glh::matrix4f tmpObjMat((F32*)obj_matrix.mMatrix);
- newModel *= tmpObjMat;
-
- for(U32 i = 0; i < 16; ++i)
- {
- modelview[i] = newModel.m[i];
- projection[i] = LLViewerCamera::getInstance()->getProjection().mMatrix[i/4][i%4];
- }
- glGetIntegerv( GL_VIEWPORT, viewport );
-
- winX = ((F32)x) * gViewerWindow->getDisplayScale().mV[VX];
- winY = ((F32)y) * gViewerWindow->getDisplayScale().mV[VY];
- glReadPixels( llfloor(winX), llfloor(winY), 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &winZ );
-
- gluUnProject( winX, winY, winZ, modelview, projection, viewport, &posX, &posY, &posZ);*/
-
- LLVector3 obj_rel = pos_agent - object->getRenderPosition();
+ LLVector3 obj_rel = original_focus_point - object->getRenderPosition();
- LLVector3 obj_center = LLVector3(0, 0, 0) * object->getRenderMatrix();
-
//now that we have the object relative position, we should bias toward the center of the object
//based on the distance of the camera to the focus point vs. the distance of the camera to the focus
F32 relDist = llabs(obj_rel * LLViewerCamera::getInstance()->getAtAxis());
- F32 viewDist = dist_vec(obj_center + obj_rel, LLViewerCamera::getInstance()->getOrigin());
+ F32 viewDist = dist_vec(obj_pos + obj_rel, LLViewerCamera::getInstance()->getOrigin());
LLBBox obj_bbox = object->getBoundingBoxAgent();
F32 bias = 0.f;
+ // virtual_camera_pos is the camera position we are simulating by backing the camera off
+ // and adjusting the FOV
LLVector3 virtual_camera_pos = gAgent.getPosAgentFromGlobal(mFocusTargetGlobal + (getCameraPositionGlobal() - mFocusTargetGlobal) / (1.f + mCameraFOVZoomFactor));
- if(obj_bbox.containsPointAgent(virtual_camera_pos))
- {
- // if the camera is inside the object (large, hollow objects, for example)
- // force focus point all the way to destination depth, away from object center
- bias = 1.f;
- }
- else
+ // if the camera is inside the object (large, hollow objects, for example)
+ // leave focus point all the way to destination depth, away from object center
+ if(!obj_bbox.containsPointAgent(virtual_camera_pos))
{
// perform magic number biasing of focus point towards surface vs. planar center
bias = clamp_rescale(relDist/viewDist, 0.1f, 0.7f, 0.0f, 1.0f);
+ obj_rel = lerp(focus_offset_from_object_center, obj_rel, bias);
}
-
- obj_rel = lerp(focus_delta, obj_rel, bias);
-
- return LLVector3(obj_rel);
+
+ focus_offset_from_object_center = obj_rel;
}
- return LLVector3(focus_delta.mV[VX], focus_delta.mV[VY], focus_delta.mV[VZ]);
+ return focus_offset_from_object_center;
}
//-----------------------------------------------------------------------------
@@ -2200,7 +2149,7 @@ void LLAgent::setBusy()
{
gBusyMenu->setLabel(LLTrans::getString("AvatarSetNotBusy"));
}
- LLFloaterMute::getInstance()->updateButtons();
+ LLFloaterReg::getTypedInstance<LLFloaterMute>("mute")->updateButtons();
}
//-----------------------------------------------------------------------------
@@ -2214,7 +2163,7 @@ void LLAgent::clearBusy()
{
gBusyMenu->setLabel(LLTrans::getString("AvatarSetBusy"));
}
- LLFloaterMute::getInstance()->updateButtons();
+ LLFloaterReg::getTypedInstance<LLFloaterMute>("mute")->updateButtons();
}
//-----------------------------------------------------------------------------
@@ -2694,7 +2643,7 @@ std::ostream& operator<<(std::ostream &s, const LLAgent &agent)
//-----------------------------------------------------------------------------
// setAvatarObject()
//-----------------------------------------------------------------------------
-void LLAgent::setAvatarObject(LLVOAvatar *avatar)
+void LLAgent::setAvatarObject(LLVOAvatarSelf *avatar)
{
mAvatarObject = avatar;
@@ -2721,8 +2670,6 @@ void LLAgent::setAvatarObject(LLVOAvatar *avatar)
{
mPointAt->setSourceObject(avatar);
}
-
- sendAgentWearablesRequest();
}
// TRUE if your own avatar needs to be rendered. Usually only
@@ -2773,7 +2720,7 @@ void LLAgent::startTyping()
{
sendAnimationRequest(ANIM_AGENT_TYPE, ANIM_REQUEST_START);
}
- gChatBar->sendChatFromViewer("", CHAT_TYPE_START, FALSE);
+ LLBottomTray::getInstance()->sendChatFromViewer("", CHAT_TYPE_START, FALSE);
}
//-----------------------------------------------------------------------------
@@ -2785,7 +2732,7 @@ void LLAgent::stopTyping()
{
clearRenderState(AGENT_STATE_TYPING);
sendAnimationRequest(ANIM_AGENT_TYPE, ANIM_REQUEST_STOP);
- gChatBar->sendChatFromViewer("", CHAT_TYPE_STOP, FALSE);
+ LLBottomTray::getInstance()->sendChatFromViewer("", CHAT_TYPE_STOP, FALSE);
}
}
@@ -2860,6 +2807,10 @@ void LLAgent::endAnimationUpdateUI()
LLNavigationBar::getInstance()->setVisible(TRUE);
gStatusBar->setVisibleForMouselook(true);
+ LLBottomTray::getInstance()->setVisible(TRUE);
+
+ LLSideTray::getInstance()->setVisible(TRUE);
+
LLToolMgr::getInstance()->setCurrentToolset(gBasicToolset);
// Only pop if we have pushed...
@@ -2874,7 +2825,7 @@ void LLAgent::endAnimationUpdateUI()
#endif
mViewsPushed = FALSE;
}
-
+
gAgent.setLookAt(LOOKAT_TARGET_CLEAR);
if( gMorphView )
@@ -2946,6 +2897,10 @@ void LLAgent::endAnimationUpdateUI()
LLNavigationBar::getInstance()->setVisible(FALSE);
gStatusBar->setVisibleForMouselook(false);
+ LLBottomTray::getInstance()->setVisible(FALSE);
+
+ LLSideTray::getInstance()->setVisible(FALSE);
+
// clear out camera lag effect
mCameraLag.clearVec();
@@ -2955,7 +2910,7 @@ void LLAgent::endAnimationUpdateUI()
LLToolMgr::getInstance()->setCurrentToolset(gMouselookToolset);
mViewsPushed = TRUE;
-
+
// hide all floaters except the mini map
#if 0 // Use this once all floaters are registered
@@ -4275,7 +4230,7 @@ void LLAgent::changeCameraToCustomizeAvatar(BOOL avatar_animate, BOOL camera_ani
gFocusMgr.setKeyboardFocus( NULL );
gFocusMgr.setMouseCapture( NULL );
- LLVOAvatar::onCustomizeStart();
+ LLVOAvatarSelf::onCustomizeStart();
}
if (mAvatarObject.notNull())
@@ -5239,15 +5194,15 @@ BOOL LLAgent::buildLocationString(std::string& str, ELocationFormat fmt)
switch (fmt)
{
case LOCATION_FORMAT_LANDMARK:
- buffer = llformat("%.32s (%d, %d, %d)",
- region_name.c_str(),
- pos_x, pos_y, pos_z);
+ buffer = llformat("%.100s", region_name.c_str());
break;
case LOCATION_FORMAT_NORMAL:
+ buffer = llformat("%s", region_name.c_str());
+ break;
case LOCATION_FORMAT_FULL:
buffer = llformat("%s (%d, %d, %d)",
region_name.c_str(),
- pos_x, pos_y, pos_z);
+ pos_x, pos_y, pos_z);
break;
}
}
@@ -5257,20 +5212,16 @@ BOOL LLAgent::buildLocationString(std::string& str, ELocationFormat fmt)
switch (fmt)
{
case LOCATION_FORMAT_LANDMARK:
- buffer = llformat("%.32s, %.32s (%d, %d, %d)",
- parcel_name.c_str(),
- region_name.c_str(),
- pos_x, pos_y, pos_z);
+ buffer = llformat("%.100s", parcel_name.c_str());
break;
case LOCATION_FORMAT_NORMAL:
- buffer = llformat("%s/%s (%d, %d, %d)",
+ buffer = llformat("%s, %s",
region_name.c_str(),
- parcel_name.c_str(),
- pos_x, pos_y, pos_z);
+ parcel_name.c_str());
break;
case LOCATION_FORMAT_FULL:
std::string sim_access_string = region->getSimAccessString();
- buffer = llformat("%s/%s (%d, %d, %d)%s%s",
+ buffer = llformat("%s, %s (%d, %d, %d)%s%s",
region_name.c_str(),
parcel_name.c_str(),
pos_x, pos_y, pos_z,
@@ -5445,7 +5396,7 @@ BOOL LLAgent::allowOperation(PermissionBit op,
}
-void LLAgent::getName(std::string& name)
+void LLAgent::getName(std::string& name) const
{
name.clear();
@@ -5483,16 +5434,51 @@ void LLAgent::initOriginGlobal(const LLVector3d &origin_global)
mAgentOriginGlobal = origin_global;
}
+BOOL LLAgent::leftButtonGrabbed() const
+{
+ return (!cameraMouselook() && mControlsTakenCount[CONTROL_LBUTTON_DOWN_INDEX] > 0)
+ || (cameraMouselook() && mControlsTakenCount[CONTROL_ML_LBUTTON_DOWN_INDEX] > 0)
+ || (!cameraMouselook() && mControlsTakenPassedOnCount[CONTROL_LBUTTON_DOWN_INDEX] > 0)
+ || (cameraMouselook() && mControlsTakenPassedOnCount[CONTROL_ML_LBUTTON_DOWN_INDEX] > 0);
+}
+
+BOOL LLAgent::rotateGrabbed() const
+{
+ return (mControlsTakenCount[CONTROL_YAW_POS_INDEX] > 0)
+ || (mControlsTakenCount[CONTROL_YAW_NEG_INDEX] > 0);
+}
+
+BOOL LLAgent::forwardGrabbed() const
+{
+ return (mControlsTakenCount[CONTROL_AT_POS_INDEX] > 0);
+}
+
+BOOL LLAgent::backwardGrabbed() const
+{
+ return (mControlsTakenCount[CONTROL_AT_NEG_INDEX] > 0);
+}
+
+BOOL LLAgent::upGrabbed() const
+{
+ return (mControlsTakenCount[CONTROL_UP_POS_INDEX] > 0);
+}
+
+BOOL LLAgent::downGrabbed() const
+{
+ return (mControlsTakenCount[CONTROL_UP_NEG_INDEX] > 0);
+}
+
void update_group_floaters(const LLUUID& group_id)
{
LLFloaterGroupInfo::refreshGroup(group_id);
+ //*TODO Implement group update for Profile View
// update avatar info
- LLFloaterAvatarInfo* fa = LLFloaterReg::findTypedInstance<LLFloaterAvatarInfo>("preview_avatar", LLSD(gAgent.getID()));
- if(fa)
- {
- fa->resetGroupList();
- }
+// LLFloaterAvatarInfo* fa = LLFloaterReg::findTypedInstance<LLFloaterAvatarInfo>("preview_avatar", LLSD(gAgent.getID()));
+// if(fa)
+// {
+// fa->resetGroupList();
+// }
if (gIMMgr)
{
@@ -5928,9 +5914,9 @@ void LLAgent::processControlRelease(LLMessageSystem *msg, void **)
//static
void LLAgent::processAgentCachedTextureResponse(LLMessageSystem *mesgsys, void **user_data)
{
- gAgent.mNumPendingQueries--;
+ gAgentQueryManager.mNumPendingQueries--;
- LLVOAvatar* avatarp = gAgent.getAvatarObject();
+ LLVOAvatarSelf* avatarp = gAgent.getAvatarObject();
if (!avatarp || avatarp->isDead())
{
llwarns << "No avatar for user in cached texture update!" << llendl;
@@ -5960,12 +5946,12 @@ void LLAgent::processAgentCachedTextureResponse(LLMessageSystem *mesgsys, void *
if (texture_id.notNull()
&& (S32)texture_index < BAKED_NUM_INDICES
- && gAgent.mActiveCacheQueries[ texture_index ] == query_id)
+ && gAgentQueryManager.mActiveCacheQueries[texture_index] == query_id)
{
//llinfos << "Received cached texture " << (U32)texture_index << ": " << texture_id << llendl;
- avatarp->setCachedBakedTexture(getTextureIndex((EBakedTextureIndex)texture_index), texture_id);
+ avatarp->setCachedBakedTexture(LLVOAvatarDictionary::bakedToLocalTextureIndex((EBakedTextureIndex)texture_index), texture_id);
//avatarp->setTETexture( LLVOAvatar::sBakedTextureIndices[texture_index], texture_id );
- gAgent.mActiveCacheQueries[ texture_index ] = 0;
+ gAgentQueryManager.mActiveCacheQueries[texture_index] = 0;
num_results++;
}
}
@@ -5974,7 +5960,7 @@ void LLAgent::processAgentCachedTextureResponse(LLMessageSystem *mesgsys, void *
avatarp->updateMeshTextures();
- if (gAgent.mNumPendingQueries == 0)
+ if (gAgentQueryManager.mNumPendingQueries == 0)
{
// RN: not sure why composites are disabled at this point
avatarp->setCompositeUpdatesEnabled(TRUE);
@@ -5984,8 +5970,7 @@ void LLAgent::processAgentCachedTextureResponse(LLMessageSystem *mesgsys, void *
BOOL LLAgent::anyControlGrabbed() const
{
- U32 i;
- for (i = 0; i < TOTAL_CONTROLS; i++)
+ for (U32 i = 0; i < TOTAL_CONTROLS; i++)
{
if (gAgent.mControlsTakenCount[i] > 0)
return TRUE;
@@ -6082,7 +6067,7 @@ bool LLAgent::teleportCore(bool is_local)
// hide land floater too - it'll be out of date
LLFloaterLand::hideInstance();
-
+
LLViewerParcelMgr::getInstance()->deselectLand();
// Close all pie menus, deselect land, etc.
@@ -6382,878 +6367,6 @@ void LLAgent::requestLeaveGodMode()
sendReliableMessage();
}
-// wearables
-LLAgent::createStandardWearablesAllDoneCallback::~createStandardWearablesAllDoneCallback()
-{
- gAgent.createStandardWearablesAllDone();
-}
-
-LLAgent::sendAgentWearablesUpdateCallback::~sendAgentWearablesUpdateCallback()
-{
- gAgent.sendAgentWearablesUpdate();
-}
-
-LLAgent::addWearableToAgentInventoryCallback::addWearableToAgentInventoryCallback(
- LLPointer<LLRefCount> cb, S32 index, LLWearable* wearable, U32 todo) :
- mIndex(index),
- mWearable(wearable),
- mTodo(todo),
- mCB(cb)
-{
-}
-
-void LLAgent::addWearableToAgentInventoryCallback::fire(const LLUUID& inv_item)
-{
- if (inv_item.isNull())
- return;
-
- gAgent.addWearabletoAgentInventoryDone(mIndex, inv_item, mWearable);
-
- if (mTodo & CALL_UPDATE)
- {
- gAgent.sendAgentWearablesUpdate();
- }
- if (mTodo & CALL_RECOVERDONE)
- {
- gAgent.recoverMissingWearableDone();
- }
- /*
- * Do this for every one in the loop
- */
- if (mTodo & CALL_CREATESTANDARDDONE)
- {
- gAgent.createStandardWearablesDone(mIndex);
- }
- if (mTodo & CALL_MAKENEWOUTFITDONE)
- {
- gAgent.makeNewOutfitDone(mIndex);
- }
-}
-
-void LLAgent::addWearabletoAgentInventoryDone(
- S32 index,
- const LLUUID& item_id,
- LLWearable* wearable)
-{
- if (item_id.isNull())
- return;
-
- LLUUID old_item_id = mWearableEntry[index].mItemID;
- mWearableEntry[index].mItemID = item_id;
- mWearableEntry[index].mWearable = wearable;
- if (old_item_id.notNull())
- gInventory.addChangedMask(LLInventoryObserver::LABEL, old_item_id);
- gInventory.addChangedMask(LLInventoryObserver::LABEL, item_id);
- LLViewerInventoryItem* item = gInventory.getItem(item_id);
- if(item && wearable)
- {
- // We're changing the asset id, so we both need to set it
- // locally via setAssetUUID() and via setTransactionID() which
- // will be decoded on the server. JC
- item->setAssetUUID(wearable->getID());
- item->setTransactionID(wearable->getTransactionID());
- gInventory.addChangedMask(LLInventoryObserver::INTERNAL, item_id);
- item->updateServer(FALSE);
- }
- gInventory.notifyObservers();
-}
-
-void LLAgent::sendAgentWearablesUpdate()
-{
- // First make sure that we have inventory items for each wearable
- S32 i;
- for(i=0; i < WT_COUNT; ++i)
- {
- LLWearable* wearable = mWearableEntry[ i ].mWearable;
- if (wearable)
- {
- if( mWearableEntry[ i ].mItemID.isNull() )
- {
- LLPointer<LLInventoryCallback> cb =
- new addWearableToAgentInventoryCallback(
- LLPointer<LLRefCount>(NULL),
- i,
- wearable,
- addWearableToAgentInventoryCallback::CALL_NONE);
- addWearableToAgentInventory(cb, wearable);
- }
- else
- {
- gInventory.addChangedMask( LLInventoryObserver::LABEL,
- mWearableEntry[i].mItemID );
- }
- }
- }
-
- // Then make sure the inventory is in sync with the avatar.
- gInventory.notifyObservers();
-
- // Send the AgentIsNowWearing
- gMessageSystem->newMessageFast(_PREHASH_AgentIsNowWearing);
-
- gMessageSystem->nextBlockFast(_PREHASH_AgentData);
- gMessageSystem->addUUIDFast(_PREHASH_AgentID, getID());
- gMessageSystem->addUUIDFast(_PREHASH_SessionID, getSessionID());
-
- lldebugs << "sendAgentWearablesUpdate()" << llendl;
- for(i=0; i < WT_COUNT; ++i)
- {
- gMessageSystem->nextBlockFast(_PREHASH_WearableData);
-
- U8 type_u8 = (U8)i;
- gMessageSystem->addU8Fast(_PREHASH_WearableType, type_u8 );
-
- LLWearable* wearable = mWearableEntry[ i ].mWearable;
- if( wearable )
- {
- //llinfos << "Sending wearable " << wearable->getName() << llendl;
- gMessageSystem->addUUIDFast(_PREHASH_ItemID, mWearableEntry[ i ].mItemID );
- }
- else
- {
- //llinfos << "Not wearing wearable type " << LLWearable::typeToTypeName((EWearableType)i) << llendl;
- gMessageSystem->addUUIDFast(_PREHASH_ItemID, LLUUID::null );
- }
-
- lldebugs << " " << LLWearable::typeToTypeLabel((EWearableType)i) << ": " << (wearable ? wearable->getID() : LLUUID::null) << llendl;
- }
- gAgent.sendReliableMessage();
-}
-
-void LLAgent::saveWearable( EWearableType type, BOOL send_update )
-{
- LLWearable* old_wearable = mWearableEntry[(S32)type].mWearable;
- if( old_wearable && (old_wearable->isDirty() || old_wearable->isOldVersion()) )
- {
- LLWearable* new_wearable = gWearableList.createCopyFromAvatar( old_wearable );
- mWearableEntry[(S32)type].mWearable = new_wearable;
-
- LLInventoryItem* item = gInventory.getItem(mWearableEntry[(S32)type].mItemID);
- if( item )
- {
- // Update existing inventory item
- LLPointer<LLViewerInventoryItem> template_item =
- new LLViewerInventoryItem(item->getUUID(),
- item->getParentUUID(),
- item->getPermissions(),
- new_wearable->getID(),
- new_wearable->getAssetType(),
- item->getInventoryType(),
- item->getName(),
- item->getDescription(),
- item->getSaleInfo(),
- item->getFlags(),
- item->getCreationDate());
- template_item->setTransactionID(new_wearable->getTransactionID());
- template_item->updateServer(FALSE);
- gInventory.updateItem(template_item);
- }
- else
- {
- // Add a new inventory item (shouldn't ever happen here)
- U32 todo = addWearableToAgentInventoryCallback::CALL_NONE;
- if (send_update)
- {
- todo |= addWearableToAgentInventoryCallback::CALL_UPDATE;
- }
- LLPointer<LLInventoryCallback> cb =
- new addWearableToAgentInventoryCallback(
- LLPointer<LLRefCount>(NULL),
- (S32)type,
- new_wearable,
- todo);
- addWearableToAgentInventory(cb, new_wearable);
- return;
- }
-
- getAvatarObject()->wearableUpdated( type );
-
- if( send_update )
- {
- sendAgentWearablesUpdate();
- }
- }
-}
-
-void LLAgent::saveWearableAs(
- EWearableType type,
- const std::string& new_name,
- BOOL save_in_lost_and_found)
-{
- if(!isWearableCopyable(type))
- {
- llwarns << "LLAgent::saveWearableAs() not copyable." << llendl;
- return;
- }
- LLWearable* old_wearable = getWearable(type);
- if(!old_wearable)
- {
- llwarns << "LLAgent::saveWearableAs() no old wearable." << llendl;
- return;
- }
- LLInventoryItem* item = gInventory.getItem(mWearableEntry[type].mItemID);
- if(!item)
- {
- llwarns << "LLAgent::saveWearableAs() no inventory item." << llendl;
- return;
- }
- std::string trunc_name(new_name);
- LLStringUtil::truncate(trunc_name, DB_INV_ITEM_NAME_STR_LEN);
- LLWearable* new_wearable = gWearableList.createCopyFromAvatar(
- old_wearable,
- trunc_name);
- LLPointer<LLInventoryCallback> cb =
- new addWearableToAgentInventoryCallback(
- LLPointer<LLRefCount>(NULL),
- type,
- new_wearable,
- addWearableToAgentInventoryCallback::CALL_UPDATE);
- LLUUID category_id;
- if (save_in_lost_and_found)
- {
- category_id = gInventory.findCategoryUUIDForType(
- LLAssetType::AT_LOST_AND_FOUND);
- }
- else
- {
- // put in same folder as original
- category_id = item->getParentUUID();
- }
-
- copy_inventory_item(
- gAgent.getID(),
- item->getPermissions().getOwner(),
- item->getUUID(),
- category_id,
- new_name,
- cb);
-
-/*
- LLWearable* old_wearable = getWearable( type );
- if( old_wearable )
- {
- std::string old_name = old_wearable->getName();
- old_wearable->setName( new_name );
- LLWearable* new_wearable = gWearableList.createCopyFromAvatar( old_wearable );
- old_wearable->setName( old_name );
-
- LLUUID category_id;
- LLInventoryItem* item = gInventory.getItem( mWearableEntry[ type ].mItemID );
- if( item )
- {
- new_wearable->setPermissions(item->getPermissions());
- if (save_in_lost_and_found)
- {
- category_id = gInventory.findCategoryUUIDForType(LLAssetType::AT_LOST_AND_FOUND);
- }
- else
- {
- // put in same folder as original
- category_id = item->getParentUUID();
- }
- LLInventoryView* view = LLInventoryView::getActiveInventory();
- if(view)
- {
- view->getPanel()->setSelection(item->getUUID(), TAKE_FOCUS_NO);
- }
- }
-
- mWearableEntry[ type ].mWearable = new_wearable;
- LLPointer<LLInventoryCallback> cb =
- new addWearableToAgentInventoryCallback(
- LLPointer<LLRefCount>(NULL),
- type,
- addWearableToAgentInventoryCallback::CALL_UPDATE);
- addWearableToAgentInventory(cb, new_wearable, category_id);
- }
-*/
-}
-
-void LLAgent::revertWearable( EWearableType type )
-{
- LLWearable* wearable = mWearableEntry[(S32)type].mWearable;
- if( wearable )
- {
- wearable->writeToAvatar( TRUE );
- }
- sendAgentSetAppearance();
-}
-
-void LLAgent::revertAllWearables()
-{
- for( S32 i=0; i < WT_COUNT; i++ )
- {
- revertWearable( (EWearableType)i );
- }
-}
-
-void LLAgent::saveAllWearables()
-{
- //if(!gInventory.isLoaded())
- //{
- // return;
- //}
-
- for( S32 i=0; i < WT_COUNT; i++ )
- {
- saveWearable( (EWearableType)i, FALSE );
- }
- sendAgentWearablesUpdate();
-}
-
-// Called when the user changes the name of a wearable inventory item that is currenlty being worn.
-void LLAgent::setWearableName( const LLUUID& item_id, const std::string& new_name )
-{
- for( S32 i=0; i < WT_COUNT; i++ )
- {
- if( mWearableEntry[i].mItemID == item_id )
- {
- LLWearable* old_wearable = mWearableEntry[i].mWearable;
- llassert( old_wearable );
-
- std::string old_name = old_wearable->getName();
- old_wearable->setName( new_name );
- LLWearable* new_wearable = gWearableList.createCopy( old_wearable );
- LLInventoryItem* item = gInventory.getItem(item_id);
- if(item)
- {
- new_wearable->setPermissions(item->getPermissions());
- }
- old_wearable->setName( old_name );
-
- mWearableEntry[i].mWearable = new_wearable;
- sendAgentWearablesUpdate();
- break;
- }
- }
-}
-
-
-BOOL LLAgent::isWearableModifiable(EWearableType type)
-{
- LLUUID item_id = getWearableItem(type);
- if(!item_id.isNull())
- {
- LLInventoryItem* item = gInventory.getItem(item_id);
- if(item && item->getPermissions().allowModifyBy(gAgent.getID(),
- gAgent.getGroupID()))
- {
- return TRUE;
- }
- }
- return FALSE;
-}
-
-BOOL LLAgent::isWearableCopyable(EWearableType type)
-{
- LLUUID item_id = getWearableItem(type);
- if(!item_id.isNull())
- {
- LLInventoryItem* item = gInventory.getItem(item_id);
- if(item && item->getPermissions().allowCopyBy(gAgent.getID(),
- gAgent.getGroupID()))
- {
- return TRUE;
- }
- }
- return FALSE;
-}
-
-U32 LLAgent::getWearablePermMask(EWearableType type)
-{
- LLUUID item_id = getWearableItem(type);
- if(!item_id.isNull())
- {
- LLInventoryItem* item = gInventory.getItem(item_id);
- if(item)
- {
- return item->getPermissions().getMaskOwner();
- }
- }
- return PERM_NONE;
-}
-
-LLInventoryItem* LLAgent::getWearableInventoryItem(EWearableType type)
-{
- LLUUID item_id = getWearableItem(type);
- LLInventoryItem* item = NULL;
- if(item_id.notNull())
- {
- item = gInventory.getItem(item_id);
- }
- return item;
-}
-
-LLWearable* LLAgent::getWearableFromWearableItem( const LLUUID& item_id )
-{
- for( S32 i=0; i < WT_COUNT; i++ )
- {
- if( mWearableEntry[i].mItemID == item_id )
- {
- return mWearableEntry[i].mWearable;
- }
- }
- return NULL;
-}
-
-
-void LLAgent::sendAgentWearablesRequest()
-{
- gMessageSystem->newMessageFast(_PREHASH_AgentWearablesRequest);
- gMessageSystem->nextBlockFast(_PREHASH_AgentData);
- gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID() );
- gMessageSystem->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID() );
- sendReliableMessage();
-}
-
-// Used to enable/disable menu items.
-// static
-BOOL LLAgent::selfHasWearable( void* userdata )
-{
- EWearableType type = (EWearableType)(intptr_t)userdata;
- return gAgent.getWearable( type ) != NULL;
-}
-
-BOOL LLAgent::isWearingItem( const LLUUID& item_id )
-{
- return (getWearableFromWearableItem( item_id ) != NULL);
-}
-
-// static
-void LLAgent::processAgentInitialWearablesUpdate( LLMessageSystem* mesgsys, void** user_data )
-{
- // We should only receive this message a single time. Ignore subsequent AgentWearablesUpdates
- // that may result from AgentWearablesRequest having been sent more than once.
- static bool first = true;
- if (!first) return;
- first = false;
-
- LLUUID agent_id;
- gMessageSystem->getUUIDFast(_PREHASH_AgentData, _PREHASH_AgentID, agent_id );
-
- LLVOAvatar* avatar = gAgent.getAvatarObject();
- if( avatar && (agent_id == avatar->getID()) )
- {
- gMessageSystem->getU32Fast(_PREHASH_AgentData, _PREHASH_SerialNum, gAgent.mAgentWearablesUpdateSerialNum );
-
- S32 num_wearables = gMessageSystem->getNumberOfBlocksFast(_PREHASH_WearableData);
- if( num_wearables < 4 )
- {
- // Transitional state. Avatars should always have at least their body parts (hair, eyes, shape and skin).
- // The fact that they don't have any here (only a dummy is sent) implies that this account existed
- // before we had wearables, or that the database has gotten messed up.
- return;
- }
-
- //lldebugs << "processAgentInitialWearablesUpdate()" << llendl;
- // Add wearables
- LLUUID asset_id_array[ WT_COUNT ];
- S32 i;
- for( i=0; i < num_wearables; i++ )
- {
- U8 type_u8 = 0;
- gMessageSystem->getU8Fast(_PREHASH_WearableData, _PREHASH_WearableType, type_u8, i );
- if( type_u8 >= WT_COUNT )
- {
- continue;
- }
- EWearableType type = (EWearableType) type_u8;
-
- LLUUID item_id;
- gMessageSystem->getUUIDFast(_PREHASH_WearableData, _PREHASH_ItemID, item_id, i );
-
- LLUUID asset_id;
- gMessageSystem->getUUIDFast(_PREHASH_WearableData, _PREHASH_AssetID, asset_id, i );
- if( asset_id.isNull() )
- {
- LLWearable::removeFromAvatar( type, FALSE );
- }
- else
- {
- LLAssetType::EType asset_type = LLWearable::typeToAssetType( type );
- if( asset_type == LLAssetType::AT_NONE )
- {
- continue;
- }
-
- gAgent.mWearableEntry[type].mItemID = item_id;
- asset_id_array[type] = asset_id;
- }
-
- lldebugs << " " << LLWearable::typeToTypeLabel(type) << llendl;
- }
-
- // now that we have the asset ids...request the wearable assets
- for( i = 0; i < WT_COUNT; i++ )
- {
- if( !gAgent.mWearableEntry[i].mItemID.isNull() )
- {
- gWearableList.getAsset(
- asset_id_array[i],
- LLStringUtil::null,
- LLWearable::typeToAssetType( (EWearableType) i ),
- LLAgent::onInitialWearableAssetArrived, (void*)(intptr_t)i );
- }
- }
- }
-}
-
-// A single wearable that the avatar was wearing on start-up has arrived from the database.
-// static
-void LLAgent::onInitialWearableAssetArrived( LLWearable* wearable, void* userdata )
-{
- EWearableType type = (EWearableType)(intptr_t)userdata;
-
- LLVOAvatar* avatar = gAgent.getAvatarObject();
- if( !avatar )
- {
- return;
- }
-
- if( wearable )
- {
- llassert( type == wearable->getType() );
- gAgent.mWearableEntry[ type ].mWearable = wearable;
-
- // disable composites if initial textures are baked
- avatar->setupComposites();
- gAgent.queryWearableCache();
-
- wearable->writeToAvatar( FALSE );
- avatar->setCompositeUpdatesEnabled(TRUE);
- gInventory.addChangedMask( LLInventoryObserver::LABEL, gAgent.mWearableEntry[type].mItemID );
- }
- else
- {
- // Somehow the asset doesn't exist in the database.
- gAgent.recoverMissingWearable( type );
- }
-
- gInventory.notifyObservers();
-
- // Have all the wearables that the avatar was wearing at log-in arrived?
- if( !gAgent.mWearablesLoaded )
- {
- gAgent.mWearablesLoaded = TRUE;
- for( S32 i = 0; i < WT_COUNT; i++ )
- {
- if( !gAgent.mWearableEntry[i].mItemID.isNull() && !gAgent.mWearableEntry[i].mWearable )
- {
- gAgent.mWearablesLoaded = FALSE;
- break;
- }
- }
- }
-
- if( gAgent.mWearablesLoaded )
- {
- // Make sure that the server's idea of the avatar's wearables actually match the wearables.
- gAgent.sendAgentSetAppearance();
-
- // Check to see if there are any baked textures that we hadn't uploaded before we logged off last time.
- // If there are any, schedule them to be uploaded as soon as the layer textures they depend on arrive.
- if( !gAgent.cameraCustomizeAvatar() )
- {
- avatar->requestLayerSetUploads();
- }
- }
-}
-
-// Normally, all wearables referred to "AgentWearablesUpdate" will correspond to actual assets in the
-// database. If for some reason, we can't load one of those assets, we can try to reconstruct it so that
-// the user isn't left without a shape, for example. (We can do that only after the inventory has loaded.)
-void LLAgent::recoverMissingWearable( EWearableType type )
-{
- // Try to recover by replacing missing wearable with a new one.
- LLNotifications::instance().add("ReplacedMissingWearable");
- lldebugs << "Wearable " << LLWearable::typeToTypeLabel( type ) << " could not be downloaded. Replaced inventory item with default wearable." << llendl;
- LLWearable* new_wearable = gWearableList.createNewWearable(type);
-
- S32 type_s32 = (S32) type;
- mWearableEntry[type_s32].mWearable = new_wearable;
- new_wearable->writeToAvatar( TRUE );
-
- // Add a new one in the lost and found folder.
- // (We used to overwrite the "not found" one, but that could potentially
- // destory content.) JC
- LLUUID lost_and_found_id =
- gInventory.findCategoryUUIDForType(LLAssetType::AT_LOST_AND_FOUND);
- LLPointer<LLInventoryCallback> cb =
- new addWearableToAgentInventoryCallback(
- LLPointer<LLRefCount>(NULL),
- type_s32,
- new_wearable,
- addWearableToAgentInventoryCallback::CALL_RECOVERDONE);
- addWearableToAgentInventory( cb, new_wearable, lost_and_found_id, TRUE);
-}
-
-void LLAgent::recoverMissingWearableDone()
-{
- // Have all the wearables that the avatar was wearing at log-in arrived or been fabricated?
- mWearablesLoaded = TRUE;
- for( S32 i = 0; i < WT_COUNT; i++ )
- {
- if( !mWearableEntry[i].mItemID.isNull() && !mWearableEntry[i].mWearable )
- {
- mWearablesLoaded = FALSE;
- break;
- }
- }
-
- if( mWearablesLoaded )
- {
- // Make sure that the server's idea of the avatar's wearables actually match the wearables.
- sendAgentSetAppearance();
- }
- else
- {
- gInventory.addChangedMask( LLInventoryObserver::LABEL, LLUUID::null );
- gInventory.notifyObservers();
- }
-}
-
-void LLAgent::createStandardWearables(BOOL female)
-{
- llwarns << "Creating Standard " << (female ? "female" : "male" )
- << " Wearables" << llendl;
-
- if (mAvatarObject.isNull())
- {
- return;
- }
-
- if(female) mAvatarObject->setSex(SEX_FEMALE);
- else mAvatarObject->setSex(SEX_MALE);
-
- BOOL create[WT_COUNT] =
- {
- TRUE, //WT_SHAPE
- TRUE, //WT_SKIN
- TRUE, //WT_HAIR
- TRUE, //WT_EYES
- TRUE, //WT_SHIRT
- TRUE, //WT_PANTS
- TRUE, //WT_SHOES
- TRUE, //WT_SOCKS
- FALSE, //WT_JACKET
- FALSE, //WT_GLOVES
- TRUE, //WT_UNDERSHIRT
- TRUE, //WT_UNDERPANTS
- FALSE //WT_SKIRT
- };
-
- for( S32 i=0; i < WT_COUNT; i++ )
- {
- bool once = false;
- LLPointer<LLRefCount> donecb = NULL;
- if( create[i] )
- {
- if (!once)
- {
- once = true;
- donecb = new createStandardWearablesAllDoneCallback;
- }
- llassert( mWearableEntry[i].mWearable == NULL );
- LLWearable* wearable = gWearableList.createNewWearable((EWearableType)i);
- mWearableEntry[i].mWearable = wearable;
- // no need to update here...
- LLPointer<LLInventoryCallback> cb =
- new addWearableToAgentInventoryCallback(
- donecb,
- i,
- wearable,
- addWearableToAgentInventoryCallback::CALL_CREATESTANDARDDONE);
- addWearableToAgentInventory(cb, wearable, LLUUID::null, FALSE);
- }
- }
-}
-void LLAgent::createStandardWearablesDone(S32 index)
-{
- LLWearable* wearable = mWearableEntry[index].mWearable;
-
- if (wearable)
- {
- wearable->writeToAvatar(TRUE);
- }
-}
-
-void LLAgent::createStandardWearablesAllDone()
-{
- // ... because sendAgentWearablesUpdate will notify inventory
- // observers.
- mWearablesLoaded = TRUE;
- sendAgentWearablesUpdate();
- sendAgentSetAppearance();
-
- // Treat this as the first texture entry message, if none received yet
- mAvatarObject->onFirstTEMessageReceived();
-}
-
-void LLAgent::makeNewOutfit(
- const std::string& new_folder_name,
- const LLDynamicArray<S32>& wearables_to_include,
- const LLDynamicArray<S32>& attachments_to_include,
- BOOL rename_clothing)
-{
- if (mAvatarObject.isNull())
- {
- return;
- }
-
- // First, make a folder in the Clothes directory.
- LLUUID folder_id = gInventory.createNewCategory(
- gInventory.findCategoryUUIDForType(LLAssetType::AT_CLOTHING),
- LLAssetType::AT_NONE,
- new_folder_name);
-
- bool found_first_item = false;
-
- ///////////////////
- // Wearables
-
- if( wearables_to_include.count() )
- {
- // Then, iterate though each of the wearables and save copies of them in the folder.
- S32 i;
- S32 count = wearables_to_include.count();
- LLDynamicArray<LLUUID> delete_items;
- LLPointer<LLRefCount> cbdone = NULL;
- for( i = 0; i < count; ++i )
- {
- S32 index = wearables_to_include[i];
- LLWearable* old_wearable = mWearableEntry[ index ].mWearable;
- if( old_wearable )
- {
- std::string new_name;
- LLWearable* new_wearable;
- new_wearable = gWearableList.createCopy(old_wearable);
- if (rename_clothing)
- {
- new_name = new_folder_name;
- new_name.append(" ");
- new_name.append(old_wearable->getTypeLabel());
- LLStringUtil::truncate(new_name, DB_INV_ITEM_NAME_STR_LEN);
- new_wearable->setName(new_name);
- }
-
- LLViewerInventoryItem* item = gInventory.getItem(mWearableEntry[index].mItemID);
- S32 todo = addWearableToAgentInventoryCallback::CALL_NONE;
- if (!found_first_item)
- {
- found_first_item = true;
- /* set the focus to the first item */
- todo |= addWearableToAgentInventoryCallback::CALL_MAKENEWOUTFITDONE;
- /* send the agent wearables update when done */
- cbdone = new sendAgentWearablesUpdateCallback;
- }
- LLPointer<LLInventoryCallback> cb =
- new addWearableToAgentInventoryCallback(
- cbdone,
- index,
- new_wearable,
- todo);
- if (isWearableCopyable((EWearableType)index))
- {
- copy_inventory_item(
- gAgent.getID(),
- item->getPermissions().getOwner(),
- item->getUUID(),
- folder_id,
- new_name,
- cb);
- }
- else
- {
- move_inventory_item(
- gAgent.getID(),
- gAgent.getSessionID(),
- item->getUUID(),
- folder_id,
- new_name,
- cb);
- }
- }
- }
- gInventory.notifyObservers();
- }
-
-
- ///////////////////
- // Attachments
-
- if( attachments_to_include.count() )
- {
- BOOL msg_started = FALSE;
- LLMessageSystem* msg = gMessageSystem;
- for( S32 i = 0; i < attachments_to_include.count(); i++ )
- {
- S32 attachment_pt = attachments_to_include[i];
- LLViewerJointAttachment* attachment = get_if_there(mAvatarObject->mAttachmentPoints, attachment_pt, (LLViewerJointAttachment*)NULL );
- if(!attachment) continue;
- LLViewerObject* attached_object = attachment->getObject();
- if(!attached_object) continue;
- const LLUUID& item_id = attachment->getItemID();
- if(item_id.isNull()) continue;
- LLInventoryItem* item = gInventory.getItem(item_id);
- if(!item) continue;
- if(!msg_started)
- {
- msg_started = TRUE;
- msg->newMessage("CreateNewOutfitAttachments");
- msg->nextBlock("AgentData");
- msg->addUUID("AgentID", getID());
- msg->addUUID("SessionID", getSessionID());
- msg->nextBlock("HeaderData");
- msg->addUUID("NewFolderID", folder_id);
- }
- msg->nextBlock("ObjectData");
- msg->addUUID("OldItemID", item_id);
- msg->addUUID("OldFolderID", item->getParentUUID());
- }
-
- if( msg_started )
- {
- sendReliableMessage();
- }
-
- }
-}
-
-void LLAgent::makeNewOutfitDone(S32 index)
-{
- LLUUID first_item_id = mWearableEntry[index].mItemID;
- // Open the inventory and select the first item we added.
- if( first_item_id.notNull() )
- {
- LLInventoryView* view = LLInventoryView::getActiveInventory();
- if(view)
- {
- view->getPanel()->setSelection(first_item_id, TAKE_FOCUS_NO);
- }
- }
-}
-
-
-void LLAgent::addWearableToAgentInventory(
- LLPointer<LLInventoryCallback> cb,
- LLWearable* wearable,
- const LLUUID& category_id,
- BOOL notify)
-{
- create_inventory_item(
- gAgent.getID(),
- gAgent.getSessionID(),
- category_id,
- wearable->getTransactionID(),
- wearable->getName(),
- wearable->getDescription(),
- wearable->getAssetType(),
- LLInventoryType::IT_WEARABLE,
- wearable->getType(),
- wearable->getPermissions().getMaskNextOwner(),
- cb);
-}
-
//-----------------------------------------------------------------------------
// sendAgentSetAppearance()
//-----------------------------------------------------------------------------
@@ -7261,7 +6374,7 @@ void LLAgent::sendAgentSetAppearance()
{
if (mAvatarObject.isNull()) return;
- if (mNumPendingQueries > 0 && !gAgent.cameraCustomizeAvatar())
+ if (gAgentQueryManager.mNumPendingQueries > 0 && !gAgent.cameraCustomizeAvatar())
{
return;
}
@@ -7291,11 +6404,11 @@ void LLAgent::sendAgentSetAppearance()
// is texture data current relative to wearables?
// KLW - TAT this will probably need to check the local queue.
- BOOL textures_current = !mAvatarObject->hasPendingBakedUploads() && mWearablesLoaded;
+ BOOL textures_current = mAvatarObject->areTexturesCurrent();
for(U8 baked_index = 0; baked_index < BAKED_NUM_INDICES; baked_index++ )
{
- const ETextureIndex texture_index = getTextureIndex((EBakedTextureIndex)baked_index);
+ const ETextureIndex texture_index = LLVOAvatarDictionary::bakedToLocalTextureIndex((EBakedTextureIndex)baked_index);
// if we're not wearing a skirt, we don't need the texture to be baked
if (texture_index == TEX_SKIRT_BAKED && !mAvatarObject->isWearingWearableType(WT_SKIRT))
@@ -7317,13 +6430,14 @@ void LLAgent::sendAgentSetAppearance()
llinfos << "TAT: Sending cached texture data" << llendl;
for (U8 baked_index = 0; baked_index < BAKED_NUM_INDICES; baked_index++)
{
- const LLVOAvatarDictionary::WearableDictionaryEntry *wearable_dict = LLVOAvatarDictionary::getInstance()->getWearable((EBakedTextureIndex)baked_index);
+ const LLVOAvatarDictionary::BakedEntry *baked_dict = LLVOAvatarDictionary::getInstance()->getBakedTexture((EBakedTextureIndex)baked_index);
LLUUID hash;
- for (U8 i=0; i < wearable_dict->mWearablesVec.size(); i++)
+ for (U8 i=0; i < baked_dict->mWearables.size(); i++)
{
// EWearableType wearable_type = gBakedWearableMap[baked_index][wearable_num];
- const EWearableType wearable_type = wearable_dict->mWearablesVec[i];
- const LLWearable* wearable = getWearable(wearable_type);
+ const EWearableType wearable_type = baked_dict->mWearables[i];
+ // MULTI-WEARABLE: fixed to 0th - extend to everything once messaging works.
+ const LLWearable* wearable = gAgentWearables.getWearable(wearable_type,0);
if (wearable)
{
hash ^= wearable->getID();
@@ -7331,10 +6445,10 @@ void LLAgent::sendAgentSetAppearance()
}
if (hash.notNull())
{
- hash ^= wearable_dict->mHashID;
+ hash ^= baked_dict->mWearablesHashID;
}
- const ETextureIndex texture_index = getTextureIndex((EBakedTextureIndex)baked_index);
+ const ETextureIndex texture_index = LLVOAvatarDictionary::bakedToLocalTextureIndex((EBakedTextureIndex)baked_index);
msg->nextBlockFast(_PREHASH_WearableData);
msg->addUUIDFast(_PREHASH_CacheID, hash);
@@ -7376,12 +6490,10 @@ void LLAgent::sendAgentSetAppearance()
void LLAgent::sendAgentDataUpdateRequest()
{
- if(getID().isNull())
- return; // not logged in
gMessageSystem->newMessageFast(_PREHASH_AgentDataUpdateRequest);
gMessageSystem->nextBlockFast(_PREHASH_AgentData);
- gMessageSystem->addUUIDFast(_PREHASH_AgentID, getID());
- gMessageSystem->addUUIDFast(_PREHASH_SessionID, getSessionID());
+ gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID() );
+ gMessageSystem->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
sendReliableMessage();
}
@@ -7396,453 +6508,6 @@ void LLAgent::sendAgentUserInfoRequest()
sendReliableMessage();
}
-void LLAgent::removeWearable( EWearableType type )
-{
- LLWearable* old_wearable = mWearableEntry[ type ].mWearable;
-
- if ( (gAgent.isTeen())
- && (type == WT_UNDERSHIRT || type == WT_UNDERPANTS))
- {
- // Can't take off underclothing in simple UI mode or on PG accounts
- return;
- }
-
- if( old_wearable )
- {
- if( old_wearable->isDirty() )
- {
- LLSD payload;
- payload["wearable_type"] = (S32)type;
- // Bring up view-modal dialog: Save changes? Yes, No, Cancel
- LLNotifications::instance().add("WearableSave", LLSD(), payload, &LLAgent::onRemoveWearableDialog);
- return;
- }
- else
- {
- removeWearableFinal( type );
- }
- }
-}
-
-// static
-bool LLAgent::onRemoveWearableDialog(const LLSD& notification, const LLSD& response )
-{
- S32 option = LLNotification::getSelectedOption(notification, response);
- EWearableType type = (EWearableType)notification["payload"]["wearable_type"].asInteger();
- switch( option )
- {
- case 0: // "Save"
- gAgent.saveWearable( type );
- gAgent.removeWearableFinal( type );
- break;
-
- case 1: // "Don't Save"
- gAgent.removeWearableFinal( type );
- break;
-
- case 2: // "Cancel"
- break;
-
- default:
- llassert(0);
- break;
- }
- return false;
-}
-
-// Called by removeWearable() and onRemoveWearableDialog() to actually do the removal.
-void LLAgent::removeWearableFinal( EWearableType type )
-{
- LLWearable* old_wearable = mWearableEntry[ type ].mWearable;
-
- gInventory.addChangedMask( LLInventoryObserver::LABEL, mWearableEntry[type].mItemID );
-
- mWearableEntry[ type ].mWearable = NULL;
- mWearableEntry[ type ].mItemID.setNull();
-
- queryWearableCache();
-
- if( old_wearable )
- {
- old_wearable->removeFromAvatar( TRUE );
- }
-
- // Update the server
- sendAgentWearablesUpdate();
- sendAgentSetAppearance();
- gInventory.notifyObservers();
-}
-
-void LLAgent::copyWearableToInventory( EWearableType type )
-{
- LLWearable* wearable = mWearableEntry[ type ].mWearable;
- if( wearable )
- {
- // Save the old wearable if it has changed.
- if( wearable->isDirty() )
- {
- wearable = gWearableList.createCopyFromAvatar( wearable );
- mWearableEntry[ type ].mWearable = wearable;
- }
-
- // Make a new entry in the inventory. (Put it in the same folder as the original item if possible.)
- LLUUID category_id;
- LLInventoryItem* item = gInventory.getItem( mWearableEntry[ type ].mItemID );
- if( item )
- {
- category_id = item->getParentUUID();
- wearable->setPermissions(item->getPermissions());
- }
- LLPointer<LLInventoryCallback> cb =
- new addWearableToAgentInventoryCallback(
- LLPointer<LLRefCount>(NULL),
- type,
- wearable);
- addWearableToAgentInventory(cb, wearable, category_id);
- }
-}
-
-
-// A little struct to let setWearable() communicate more than one value with onSetWearableDialog().
-struct LLSetWearableData
-{
- LLSetWearableData( const LLUUID& new_item_id, LLWearable* new_wearable ) :
- mNewItemID( new_item_id ), mNewWearable( new_wearable ) {}
- LLUUID mNewItemID;
- LLWearable* mNewWearable;
-};
-
-BOOL LLAgent::needsReplacement(EWearableType wearableType, S32 remove)
-{
- return TRUE;
- /*if (remove) return TRUE;
-
- return getWearable(wearableType) ? TRUE : FALSE;*/
-}
-
-// Assumes existing wearables are not dirty.
-void LLAgent::setWearableOutfit(
- const LLInventoryItem::item_array_t& items,
- const LLDynamicArray< LLWearable* >& wearables,
- BOOL remove )
-{
- lldebugs << "setWearableOutfit() start" << llendl;
-
- BOOL wearables_to_remove[WT_COUNT];
- wearables_to_remove[WT_SHAPE] = FALSE;
- wearables_to_remove[WT_SKIN] = FALSE;
- wearables_to_remove[WT_HAIR] = FALSE;
- wearables_to_remove[WT_EYES] = FALSE;
- wearables_to_remove[WT_SHIRT] = remove;
- wearables_to_remove[WT_PANTS] = remove;
- wearables_to_remove[WT_SHOES] = remove;
- wearables_to_remove[WT_SOCKS] = remove;
- wearables_to_remove[WT_JACKET] = remove;
- wearables_to_remove[WT_GLOVES] = remove;
- wearables_to_remove[WT_UNDERSHIRT] = (!gAgent.isTeen()) & remove;
- wearables_to_remove[WT_UNDERPANTS] = (!gAgent.isTeen()) & remove;
- wearables_to_remove[WT_SKIRT] = remove;
-
- S32 count = wearables.count();
- llassert( items.count() == count );
-
- S32 i;
- for( i = 0; i < count; i++ )
- {
- LLWearable* new_wearable = wearables[i];
- LLPointer<LLInventoryItem> new_item = items[i];
-
- EWearableType type = new_wearable->getType();
- wearables_to_remove[type] = FALSE;
-
- LLWearable* old_wearable = mWearableEntry[ type ].mWearable;
- if( old_wearable )
- {
- const LLUUID& old_item_id = mWearableEntry[ type ].mItemID;
- if( (old_wearable->getID() == new_wearable->getID()) &&
- (old_item_id == new_item->getUUID()) )
- {
- lldebugs << "No change to wearable asset and item: " << LLWearable::typeToTypeName( type ) << llendl;
- continue;
- }
-
- gInventory.addChangedMask(LLInventoryObserver::LABEL, old_item_id);
-
- // Assumes existing wearables are not dirty.
- if( old_wearable->isDirty() )
- {
- llassert(0);
- continue;
- }
- }
-
- mWearableEntry[ type ].mItemID = new_item->getUUID();
- mWearableEntry[ type ].mWearable = new_wearable;
- }
-
- std::vector<LLWearable*> wearables_being_removed;
-
- for( i = 0; i < WT_COUNT; i++ )
- {
- if( wearables_to_remove[i] )
- {
- wearables_being_removed.push_back(mWearableEntry[ i ].mWearable);
- mWearableEntry[ i ].mWearable = NULL;
-
- gInventory.addChangedMask(LLInventoryObserver::LABEL, mWearableEntry[ i ].mItemID);
- mWearableEntry[ i ].mItemID.setNull();
- }
- }
-
- gInventory.notifyObservers();
-
- queryWearableCache();
-
- std::vector<LLWearable*>::iterator wearable_iter;
-
- for( wearable_iter = wearables_being_removed.begin();
- wearable_iter != wearables_being_removed.end();
- ++wearable_iter)
- {
- LLWearable* wearablep = *wearable_iter;
- if (wearablep)
- {
- wearablep->removeFromAvatar( TRUE );
- }
- }
-
- for( i = 0; i < count; i++ )
- {
- wearables[i]->writeToAvatar( TRUE );
- }
-
- // Start rendering & update the server
- mWearablesLoaded = TRUE;
- sendAgentWearablesUpdate();
- sendAgentSetAppearance();
-
- lldebugs << "setWearableOutfit() end" << llendl;
-}
-
-
-// User has picked "wear on avatar" from a menu.
-void LLAgent::setWearable( LLInventoryItem* new_item, LLWearable* new_wearable )
-{
- EWearableType type = new_wearable->getType();
-
- LLWearable* old_wearable = mWearableEntry[ type ].mWearable;
- if( old_wearable )
- {
- const LLUUID& old_item_id = mWearableEntry[ type ].mItemID;
- if( (old_wearable->getID() == new_wearable->getID()) &&
- (old_item_id == new_item->getUUID()) )
- {
- lldebugs << "No change to wearable asset and item: " << LLWearable::typeToTypeName( type ) << llendl;
- return;
- }
-
- if( old_wearable->isDirty() )
- {
- // Bring up modal dialog: Save changes? Yes, No, Cancel
- LLSD payload;
- payload["item_id"] = new_item->getUUID();
- LLNotifications::instance().add( "WearableSave", LLSD(), payload, boost::bind(LLAgent::onSetWearableDialog, _1, _2, new_wearable));
- return;
- }
- }
-
- setWearableFinal( new_item, new_wearable );
-}
-
-// static
-bool LLAgent::onSetWearableDialog( const LLSD& notification, const LLSD& response, LLWearable* wearable )
-{
- S32 option = LLNotification::getSelectedOption(notification, response);
- LLInventoryItem* new_item = gInventory.getItem( notification["payload"]["item_id"].asUUID());
- if( !new_item )
- {
- delete wearable;
- return false;
- }
-
- switch( option )
- {
- case 0: // "Save"
- gAgent.saveWearable( wearable->getType() );
- gAgent.setWearableFinal( new_item, wearable );
- break;
-
- case 1: // "Don't Save"
- gAgent.setWearableFinal( new_item, wearable );
- break;
-
- case 2: // "Cancel"
- break;
-
- default:
- llassert(0);
- break;
- }
-
- delete wearable;
- return false;
-}
-
-// Called from setWearable() and onSetWearableDialog() to actually set the wearable.
-void LLAgent::setWearableFinal( LLInventoryItem* new_item, LLWearable* new_wearable )
-{
- EWearableType type = new_wearable->getType();
-
- // Replace the old wearable with a new one.
- llassert( new_item->getAssetUUID() == new_wearable->getID() );
- LLUUID old_item_id = mWearableEntry[ type ].mItemID;
- mWearableEntry[ type ].mItemID = new_item->getUUID();
- mWearableEntry[ type ].mWearable = new_wearable;
-
- if (old_item_id.notNull())
- {
- gInventory.addChangedMask( LLInventoryObserver::LABEL, old_item_id );
- gInventory.notifyObservers();
- }
-
- //llinfos << "LLVOAvatar::setWearable()" << llendl;
- queryWearableCache();
- new_wearable->writeToAvatar( TRUE );
-
- // Update the server
- sendAgentWearablesUpdate();
- sendAgentSetAppearance();
-}
-
-void LLAgent::queryWearableCache()
-{
- if (!mWearablesLoaded)
- {
- return;
- }
-
- // Look up affected baked textures.
- // If they exist:
- // disallow updates for affected layersets (until dataserver responds with cache request.)
- // If cache miss, turn updates back on and invalidate composite.
- // If cache hit, modify baked texture entries.
- //
- // Cache requests contain list of hashes for each baked texture entry.
- // Response is list of valid baked texture assets. (same message)
-
- gMessageSystem->newMessageFast(_PREHASH_AgentCachedTexture);
- gMessageSystem->nextBlockFast(_PREHASH_AgentData);
- gMessageSystem->addUUIDFast(_PREHASH_AgentID, getID());
- gMessageSystem->addUUIDFast(_PREHASH_SessionID, getSessionID());
- gMessageSystem->addS32Fast(_PREHASH_SerialNum, mTextureCacheQueryID);
-
- S32 num_queries = 0;
- for (U8 baked_index = 0; baked_index < BAKED_NUM_INDICES; baked_index++ )
- {
- const LLVOAvatarDictionary::WearableDictionaryEntry *wearable_dict = LLVOAvatarDictionary::getInstance()->getWearable((EBakedTextureIndex)baked_index);
- LLUUID hash;
- for (U8 i=0; i < wearable_dict->mWearablesVec.size(); i++)
- {
- // EWearableType wearable_type = gBakedWearableMap[baked_index][wearable_num];
- const EWearableType wearable_type = wearable_dict->mWearablesVec[i];
- const LLWearable* wearable = getWearable(wearable_type);
- if (wearable)
- {
- hash ^= wearable->getID();
- }
- }
- if (hash.notNull())
- {
- hash ^= wearable_dict->mHashID;
- num_queries++;
- // *NOTE: make sure at least one request gets packed
-
- //llinfos << "Requesting texture for hash " << hash << " in baked texture slot " << baked_index << llendl;
- gMessageSystem->nextBlockFast(_PREHASH_WearableData);
- gMessageSystem->addUUIDFast(_PREHASH_ID, hash);
- gMessageSystem->addU8Fast(_PREHASH_TextureIndex, (U8)baked_index);
- }
-
- mActiveCacheQueries[ baked_index ] = mTextureCacheQueryID;
- }
-
- llinfos << "Requesting texture cache entry for " << num_queries << " baked textures" << llendl;
- gMessageSystem->sendReliable(getRegion()->getHost());
- mNumPendingQueries++;
- mTextureCacheQueryID++;
-}
-
-// User has picked "remove from avatar" from a menu.
-// static
-void LLAgent::userRemoveWearable( void* userdata )
-{
- EWearableType type = (EWearableType)(intptr_t)userdata;
-
- if( !(type==WT_SHAPE || type==WT_SKIN || type==WT_HAIR ) ) //&&
- //!((!gAgent.isTeen()) && ( type==WT_UNDERPANTS || type==WT_UNDERSHIRT )) )
- {
- gAgent.removeWearable( type );
- }
-}
-
-void LLAgent::userRemoveAllClothes( void* userdata )
-{
- // We have to do this up front to avoid having to deal with the case of multiple wearables being dirty.
- if( gFloaterCustomize )
- {
- gFloaterCustomize->askToSaveIfDirty( LLAgent::userRemoveAllClothesStep2 );
- }
- else
- {
- LLAgent::userRemoveAllClothesStep2( TRUE );
- }
-}
-
-void LLAgent::userRemoveAllClothesStep2( BOOL proceed )
-{
- if( proceed )
- {
- gAgent.removeWearable( WT_SHIRT );
- gAgent.removeWearable( WT_PANTS );
- gAgent.removeWearable( WT_SHOES );
- gAgent.removeWearable( WT_SOCKS );
- gAgent.removeWearable( WT_JACKET );
- gAgent.removeWearable( WT_GLOVES );
- gAgent.removeWearable( WT_UNDERSHIRT );
- gAgent.removeWearable( WT_UNDERPANTS );
- gAgent.removeWearable( WT_SKIRT );
- }
-}
-
-void LLAgent::userRemoveAllAttachments( void* userdata )
-{
- LLVOAvatar* avatarp = gAgent.getAvatarObject();
- if(!avatarp)
- {
- llwarns << "No avatar found." << llendl;
- return;
- }
-
- gMessageSystem->newMessage("ObjectDetach");
- gMessageSystem->nextBlockFast(_PREHASH_AgentData);
- gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID() );
- gMessageSystem->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
-
- for (LLVOAvatar::attachment_map_t::iterator iter = avatarp->mAttachmentPoints.begin();
- iter != avatarp->mAttachmentPoints.end(); )
- {
- LLVOAvatar::attachment_map_t::iterator curiter = iter++;
- LLViewerJointAttachment* attachment = curiter->second;
- LLViewerObject* objectp = attachment->getObject();
- if (objectp)
- {
- gMessageSystem->nextBlockFast(_PREHASH_ObjectData);
- gMessageSystem->addU32Fast(_PREHASH_ObjectLocalID, objectp->getLocalID());
- }
- }
- gMessageSystem->sendReliable( gAgent.getRegionHost() );
-}
-
void LLAgent::observeFriends()
{
if(!mFriendObserver)
@@ -7905,4 +6570,87 @@ void LLAgent::parseTeleportMessages(const std::string& xml_filename)
}//end for (all message sets in xml file)
}
+// static
+void LLAgent::createLandmarkHere()
+{
+ std::string landmark_name, landmark_desc;
+
+ gAgent.buildLocationString(landmark_name, LLAgent::LOCATION_FORMAT_LANDMARK);
+ gAgent.buildLocationString(landmark_desc, LLAgent::LOCATION_FORMAT_FULL);
+ LLUUID folder_id = gInventory.findCategoryUUIDForType(LLAssetType::AT_LANDMARK);
+
+ createLandmarkHere(landmark_name, landmark_desc, folder_id);
+}
+
+// static
+void LLAgent::createLandmarkHere(const std::string& name, const std::string& desc, const LLUUID& folder_id)
+{
+ LLViewerRegion* agent_region = gAgent.getRegion();
+ if(!agent_region)
+ {
+ llwarns << "No agent region" << llendl;
+ return;
+ }
+ LLParcel* agent_parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
+ if (!agent_parcel)
+ {
+ llwarns << "No agent parcel" << llendl;
+ return;
+ }
+ if (!agent_parcel->getAllowLandmark()
+ && !LLViewerParcelMgr::isParcelOwnedByAgent(agent_parcel, GP_LAND_ALLOW_LANDMARK))
+ {
+ LLNotifications::instance().add("CannotCreateLandmarkNotOwner");
+ return;
+ }
+
+ create_inventory_item(gAgent.getID(), gAgent.getSessionID(),
+ folder_id, LLTransactionID::tnull,
+ name, desc,
+ LLAssetType::AT_LANDMARK,
+ LLInventoryType::IT_LANDMARK,
+ NOT_WEARABLE, PERM_ALL,
+ NULL);
+}
+
+void LLAgent::sendAgentUpdateUserInfo(bool im_via_email, const std::string& directory_visibility )
+{
+ gMessageSystem->newMessageFast(_PREHASH_UpdateUserInfo);
+ gMessageSystem->nextBlockFast(_PREHASH_AgentData);
+ gMessageSystem->addUUIDFast(_PREHASH_AgentID, getID());
+ gMessageSystem->addUUIDFast(_PREHASH_SessionID, getSessionID());
+ gMessageSystem->nextBlockFast(_PREHASH_UserData);
+ gMessageSystem->addBOOLFast(_PREHASH_IMViaEMail, im_via_email);
+ gMessageSystem->addString("DirectoryVisibility", directory_visibility);
+ gAgent.sendReliableMessage();
+}
+
+// static
+void LLAgent::dumpGroupInfo()
+{
+ llinfos << "group " << gAgent.mGroupName << llendl;
+ llinfos << "ID " << gAgent.mGroupID << llendl;
+ llinfos << "powers " << gAgent.mGroupPowers << llendl;
+ llinfos << "title " << gAgent.mGroupTitle << llendl;
+ //llinfos << "insig " << gAgent.mGroupInsigniaID << llendl;
+}
+
+/********************************************************************************/
+LLAgentQueryManager gAgentQueryManager;
+
+LLAgentQueryManager::LLAgentQueryManager() :
+ mWearablesCacheQueryID(0),
+ mNumPendingQueries(0),
+ mUpdateSerialNum(0)
+{
+ for (U32 i = 0; i < BAKED_NUM_INDICES; i++)
+ {
+ mActiveCacheQueries[i] = 0;
+ }
+}
+
+LLAgentQueryManager::~LLAgentQueryManager()
+{
+}
+
// EOF
diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h
index 23ff6cd594..94f6229838 100644
--- a/indra/newview/llagent.h
+++ b/indra/newview/llagent.h
@@ -33,63 +33,25 @@
#ifndef LL_LLAGENT_H
#define LL_LLAGENT_H
-#include <set>
-
#include "indra_constants.h"
-#include "llmath.h"
-#include "llcontrol.h"
-#include "llcoordframe.h"
-#include "llevent.h"
+#include "llevent.h" // LLObservable base class
+#include "llagentaccess.h"
#include "llagentaccess.h"
#include "llagentconstants.h"
-#include "llanimationstates.h"
-#include "lldbstrings.h"
-#include "llhudeffectlookat.h"
-#include "llhudeffectpointat.h"
+#include "llhudeffectpointat.h" // ELookAtType
+#include "llhudeffectlookat.h" // EPointAtType
#include "llpointer.h"
-#include "llstring.h"
-#include "lluuid.h"
-#include "m3math.h"
-#include "m4math.h"
-#include "llquaternion.h"
-#include "lltimer.h"
-#include "v3dmath.h"
-#include "v3math.h"
-#include "v4color.h"
-#include "v4math.h"
-//#include "vmath.h"
-#include "stdenums.h"
-#include "llwearable.h"
-#include "llcharacter.h"
-#include "llinventory.h"
-#include "llviewerinventory.h"
-#include "llagentdata.h"
-
-// Ventrella
-#include "llfollowcam.h"
-// end Ventrella
-
-const U8 AGENT_STATE_TYPING = 0x04; // Typing indication
-const U8 AGENT_STATE_EDITING = 0x10; // Set when agent has objects selected
-
-const BOOL ANIMATE = TRUE;
-
-typedef enum e_camera_modes
-{
- CAMERA_MODE_THIRD_PERSON,
- CAMERA_MODE_MOUSELOOK,
- CAMERA_MODE_CUSTOMIZE_AVATAR,
- CAMERA_MODE_FOLLOW
-} ECameraMode;
+#include "llcharacter.h" // LLAnimPauseRequest
+#include "llfollowcam.h" // Ventrella
+#include "llagentdata.h" // gAgentID, gAgentSessionID
+#include "llvoavatardefines.h"
-typedef enum e_anim_request
-{
- ANIM_REQUEST_START,
- ANIM_REQUEST_STOP
-} EAnimRequest;
+extern const BOOL ANIMATE;
+extern const U8 AGENT_STATE_TYPING; // Typing indication
+extern const U8 AGENT_STATE_EDITING; // Set when agent has objects selected
class LLChat;
-class LLVOAvatar;
+class LLVOAvatarSelf;
class LLViewerRegion;
class LLMotion;
class LLToolset;
@@ -98,6 +60,25 @@ class LLPermissions;
class LLHost;
class LLFriendObserver;
class LLPickInfo;
+class LLViewerObject;
+class LLAgentDropGroupViewerNode;
+
+//--------------------------------------------------------------------
+// Types
+//--------------------------------------------------------------------
+enum ECameraMode
+{
+ CAMERA_MODE_THIRD_PERSON,
+ CAMERA_MODE_MOUSELOOK,
+ CAMERA_MODE_CUSTOMIZE_AVATAR,
+ CAMERA_MODE_FOLLOW
+};
+
+enum EAnimRequest
+{
+ ANIM_REQUEST_START,
+ ANIM_REQUEST_STOP
+};
struct LLGroupData
{
@@ -110,343 +91,389 @@ struct LLGroupData
std::string mName;
};
-inline bool operator==(const LLGroupData &a, const LLGroupData &b)
-{
- return (a.mID == b.mID);
-}
-
-// forward declarations
-
-//
-
+//------------------------------------------------------------------------
+// LLAgent
+//------------------------------------------------------------------------
class LLAgent : public LLOldEvents::LLObservable
{
LOG_CLASS(LLAgent);
-
+
public:
- // When the agent hasn't typed anything for this duration, it leaves the
- // typing state (for both chat and IM).
- static const F32 TYPING_TIMEOUT_SECS;
+ friend class LLAgentDropGroupViewerNode;
- LLAgent();
- ~LLAgent();
+/********************************************************************************
+ ** **
+ ** INITIALIZATION
+ **/
+ //--------------------------------------------------------------------
+ // Constructors / Destructors
+ //--------------------------------------------------------------------
+public:
+ LLAgent();
+ virtual ~LLAgent();
void init();
void cleanup();
+ void setAvatarObject(LLVOAvatarSelf *avatar);
- //
- // MANIPULATORS
- //
- // TODO: Put all non-const functions here.
-
- // Called whenever the agent moves. Puts camera back in default position,
- // deselects items, etc.
- void resetView(BOOL reset_camera = TRUE, BOOL change_camera = FALSE);
-
- // Called on camera movement, to allow the camera to be unlocked from the
- // default position behind the avatar.
- void unlockView();
-
- void onAppFocusGained();
-
- void sendMessage(); // Send message to this agent's region.
- void sendReliableMessage();
-
- LLVector3d calcCameraPositionTargetGlobal(BOOL *hit_limit = NULL); // Calculate the camera position target
- LLVector3d calcFocusPositionTargetGlobal();
- LLVector3d calcThirdPersonFocusOffset();
- // target for this mode
- LLVector3d getCameraPositionGlobal() const;
- const LLVector3 &getCameraPositionAgent() const;
- F32 calcCameraFOVZoomFactor();
- F32 getCameraMinOffGround(); // minimum height off ground for this mode, meters
- void endAnimationUpdateUI();
- void setKey(const S32 direction, S32 &key); // sets key to +1 for +direction, -1 for -direction
- void handleScrollWheel(S32 clicks); // mousewheel driven zoom
-
- void setAvatarObject(LLVOAvatar *avatar);
-
- // rendering state bitmask helpers
- void startTyping();
- void stopTyping();
- void setRenderState(U8 newstate);
- void clearRenderState(U8 clearstate);
- U8 getRenderState();
-
- // Set the home data
- void setRegion(LLViewerRegion *regionp);
- LLViewerRegion *getRegion() const;
- LLHost getRegionHost() const;
- std::string getSLURL() const;
-
- void updateAgentPosition(const F32 dt, const F32 yaw, const S32 mouse_x, const S32 mouse_y); // call once per frame to update position, angles radians
- void updateLookAt(const S32 mouse_x, const S32 mouse_y);
-
-
- void updateCamera(); // call once per frame to update camera location/orientation
- void resetCamera(); // slam camera into its default position
- void setupSitCamera();
- void setCameraCollidePlane(const LLVector4 &plane) { mCameraCollidePlane = plane; }
-
- void changeCameraToDefault();
- void changeCameraToMouselook(BOOL animate = TRUE);
- void changeCameraToThirdPerson(BOOL animate = TRUE);
- void changeCameraToCustomizeAvatar(BOOL avatar_animate = TRUE, BOOL camera_animate = TRUE); // trigger transition animation
- // Ventrella
- void changeCameraToFollow(BOOL animate = TRUE);
- //end Ventrella
-
- void setFocusGlobal(const LLPickInfo& pick);
- void setFocusGlobal(const LLVector3d &focus, const LLUUID &object_id = LLUUID::null);
- void setFocusOnAvatar(BOOL focus, BOOL animate);
- void setCameraPosAndFocusGlobal(const LLVector3d& pos, const LLVector3d& focus, const LLUUID &object_id);
- void setSitCamera(const LLUUID &object_id, const LLVector3 &camera_pos = LLVector3::zero, const LLVector3 &camera_focus = LLVector3::zero);
- void clearFocusObject();
- void setFocusObject(LLViewerObject* object);
- void setObjectTracking(BOOL track) { mTrackFocusObject = track; }
-// void setLookingAtAvatar(BOOL looking);
-
- void heardChat(const LLUUID& id);
- void lookAtLastChat();
- F32 getTypingTime() { return mTypingTimer.getElapsedTimeF32(); }
-
- void setAFK();
- void clearAFK();
- BOOL getAFK() const;
-
- void setAlwaysRun() { mbAlwaysRun = true; }
- void clearAlwaysRun() { mbAlwaysRun = false; }
-
- void setRunning() { mbRunning = true; }
- void clearRunning() { mbRunning = false; }
-
- void setBusy();
- void clearBusy();
- BOOL getBusy() const;
-
- void setAdminOverride(BOOL b);
- void setGodLevel(U8 god_level);
- void setFirstLogin(BOOL b) { mFirstLogin = b; }
- void setGenderChosen(BOOL b) { mGenderChosen = b; }
-
- // update internal datastructures and update the server with the
- // new contribution level. Returns true if the group id was found
- // and contribution could be set.
- BOOL setGroupContribution(const LLUUID& group_id, S32 contribution);
- BOOL setUserGroupFlags(const LLUUID& group_id, BOOL accept_notices, BOOL list_in_profile);
- void setHideGroupTitle(BOOL hide) { mHideGroupTitle = hide; }
-
- //
- // ACCESSORS
- //
- // TODO: Put all read functions here, make them const
+ //--------------------------------------------------------------------
+ // Login
+ //--------------------------------------------------------------------
+public:
+ void onAppFocusGained();
+ void setFirstLogin(BOOL b) { mFirstLogin = b; }
+ // Return TRUE if the database reported this login as the first for this particular user.
+ BOOL isFirstLogin() const { return mFirstLogin; }
+public:
+ BOOL mInitialized;
+ BOOL mFirstLogin;
+ std::string mMOTD; // Message of the day
+ //--------------------------------------------------------------------
+ // Session
+ //--------------------------------------------------------------------
+public:
const LLUUID& getID() const { return gAgentID; }
const LLUUID& getSessionID() const { return gAgentSessionID; }
-
+ // Note: NEVER send this value in the clear or over any weakly
+ // encrypted channel (such as simple XOR masking). If you are unsure
+ // ask Aaron or MarkL.
const LLUUID& getSecureSessionID() const { return mSecureSessionID; }
- // Note: NEVER send this value in the clear or over any weakly
- // encrypted channel (such as simple XOR masking). If you are unsure
- // ask Aaron or MarkL.
-
- BOOL isGodlike() const;
- U8 getGodLevel() const;
- // note: this is a prime candidate for pulling out into a Maturity class
- // rather than just expose the preference setting, we're going to actually
- // expose what the client code cares about -- what the user should see
- // based on a combination of the is* and prefers* flags, combined with God bit.
- bool wantsPGOnly() const;
- bool canAccessMature() const;
- bool canAccessAdult() const;
- bool canAccessMaturityInRegion( U64 region_handle ) const;
- bool canAccessMaturityAtGlobal( LLVector3d pos_global ) const;
- bool prefersPG() const;
- bool prefersMature() const;
- bool prefersAdult() const;
- bool isTeen() const;
- bool isMature() const;
- bool isAdult() const;
- void setTeen(bool teen);
- void setMaturity(char text);
- static int convertTextToMaturity(char text);
- bool sendMaturityPreferenceToServer(int preferredMaturity);
-
- // maturity callbacks for PreferredMaturity control variable
- void handleMaturity(const LLSD& newvalue);
- bool validateMaturity(const LLSD& newvalue);
-
- const LLAgentAccess& getAgentAccess();
-
- // This function can go away after the AO transition (see llstartup.cpp)
- void setAOTransition();
+public:
+ LLUUID mSecureSessionID; // Secure token for this login session
- BOOL isGroupTitleHidden() const { return mHideGroupTitle; }
- BOOL isGroupMember() const { return !mGroupID.isNull(); } // This is only used for building titles!
- const LLUUID &getGroupID() const { return mGroupID; }
- ECameraMode getCameraMode() const { return mCameraMode; }
- BOOL getFocusOnAvatar() const { return mFocusOnAvatar; }
- LLPointer<LLViewerObject>& getFocusObject() { return mFocusObject; }
- F32 getFocusObjectDist() const { return mFocusObjectDist; }
- BOOL inPrelude();
- BOOL canManageEstate() const;
- BOOL getAdminOverride() const;
+/** Initialization
+ ** **
+ *******************************************************************************/
- LLUUID getLastChatter() const { return mLastChatterID; }
- bool getAlwaysRun() const { return mbAlwaysRun; }
- bool getRunning() const { return mbRunning; }
-
- const LLUUID& getInventoryRootID() const { return mInventoryRootID; }
+/********************************************************************************
+ ** **
+ ** IDENTITY
+ **/
+ //--------------------------------------------------------------------
+ // Name
+ //--------------------------------------------------------------------
+public:
+ void getName(std::string& name) const;
void buildFullname(std::string &name) const;
void buildFullnameAndTitle(std::string &name) const;
- // Check against all groups in the entire agent group list.
- BOOL isInGroup(const LLUUID& group_id) const;
- BOOL hasPowerInGroup(const LLUUID& group_id, U64 power) const;
- // Check for power in just the active group.
- BOOL hasPowerInActiveGroup(const U64 power) const;
- U64 getPowerInGroup(const LLUUID& group_id) const;
-
- // Get group information by group_id. if not in group, data is
- // left unchanged and method returns FALSE. otherwise, values are
- // copied and returns TRUE.
- BOOL getGroupData(const LLUUID& group_id, LLGroupData& data) const;
- // Get just the agent's contribution to the given group.
- S32 getGroupContribution(const LLUUID& group_id) const;
-
- // return TRUE if the database reported this login as the first
- // for this particular user.
- BOOL isFirstLogin() const { return mFirstLogin; }
-
+ //--------------------------------------------------------------------
+ // Gender
+ //--------------------------------------------------------------------
+public:
// On the very first login, gender isn't chosen until the user clicks
// in a dialog. We don't render the avatar until they choose.
- BOOL isGenderChosen() const { return mGenderChosen; }
-
- typedef enum e_location_format
- {
- LOCATION_FORMAT_NORMAL,
- LOCATION_FORMAT_LANDMARK,
- LOCATION_FORMAT_FULL,
- } ELocationFormat;
-
- // utility to build a location string
- BOOL buildLocationString(std::string& str, ELocationFormat fmt = LOCATION_FORMAT_LANDMARK);
-
- LLQuaternion getHeadRotation();
- LLVOAvatar *getAvatarObject() const { return mAvatarObject; }
-
- BOOL needsRenderAvatar(); // TRUE when camera mode is such that your own avatar should draw
- // Not const because timers can't be accessed in const-fashion.
- BOOL needsRenderHead();
- BOOL cameraThirdPerson() const { return (mCameraMode == CAMERA_MODE_THIRD_PERSON && mLastCameraMode == CAMERA_MODE_THIRD_PERSON); }
- BOOL cameraMouselook() const { return (mCameraMode == CAMERA_MODE_MOUSELOOK && mLastCameraMode == CAMERA_MODE_MOUSELOOK); }
- BOOL cameraCustomizeAvatar() const { return (mCameraMode == CAMERA_MODE_CUSTOMIZE_AVATAR /*&& !mCameraAnimating*/); }
- BOOL cameraFollow() const { return (mCameraMode == CAMERA_MODE_FOLLOW && mLastCameraMode == CAMERA_MODE_FOLLOW); }
+ BOOL isGenderChosen() const { return mGenderChosen; }
+ void setGenderChosen(BOOL b) { mGenderChosen = b; }
+private:
+ BOOL mGenderChosen;
- LLVector3 getPosAgentFromGlobal(const LLVector3d &pos_global) const;
- LLVector3d getPosGlobalFromAgent(const LLVector3 &pos_agent) const;
+/** Identity
+ ** **
+ *******************************************************************************/
- // Get the data members
- const LLVector3& getAtAxis() const { return mFrameAgent.getAtAxis(); } // direction avatar is looking, not camera
- const LLVector3& getUpAxis() const { return mFrameAgent.getUpAxis(); } // direction avatar is looking, not camera
- const LLVector3& getLeftAxis() const { return mFrameAgent.getLeftAxis(); } // direction avatar is looking, not camera
+/********************************************************************************
+ ** **
+ ** GENERAL ACCESSORS
+ **/
- LLCoordFrame getFrameAgent() const { return mFrameAgent; }
- LLVector3 getVelocity() const;
- F32 getVelocityZ() const { return getVelocity().mV[VZ]; } // a hack
+public:
+ LLVOAvatarSelf* getAvatarObject() const { return mAvatarObject; }
+ const LLUUID& getInventoryRootID() const { return mInventoryRootID; }
+ LLUUID& getInventoryRootID() { return mInventoryRootID; }
+private:
+ LLUUID mInventoryRootID;
+ LLPointer<LLVOAvatarSelf> mAvatarObject; // NULL until avatar object sent down from simulator
- const LLVector3d &getPositionGlobal() const;
- const LLVector3 &getPositionAgent();
- S32 getRegionsVisited() const;
- F64 getDistanceTraveled() const;
+/** General Accessors
+ ** **
+ *******************************************************************************/
- const LLVector3d &getFocusGlobal() const { return mFocusGlobal; }
- const LLVector3d &getFocusTargetGlobal() const { return mFocusTargetGlobal; }
+/********************************************************************************
+ ** **
+ ** POSITION
+ **/
- BOOL getJump() const { return mbJump; }
- BOOL getAutoPilot() const { return mAutoPilot; }
- LLVector3d getAutoPilotTargetGlobal() const { return mAutoPilotTargetGlobal; }
+ //--------------------------------------------------------------------
+ // Position
+ //--------------------------------------------------------------------
+public:
+ LLVector3 getPosAgentFromGlobal(const LLVector3d &pos_global) const;
+ LLVector3d getPosGlobalFromAgent(const LLVector3 &pos_agent) const;
+ const LLVector3d &getPositionGlobal() const;
+ const LLVector3 &getPositionAgent();
+ // Call once per frame to update position, angles (radians).
+ void updateAgentPosition(const F32 dt, const F32 yaw, const S32 mouse_x, const S32 mouse_y);
+ void setPositionAgent(const LLVector3 &center);
+protected:
+ void propagate(const F32 dt); // ! BUG ! Should roll into updateAgentPosition
+private:
+ mutable LLVector3d mPositionGlobal;
- LLQuaternion getQuat() const; // returns the quat that represents the rotation
- // of the agent in the absolute frame
-// BOOL getLookingAtAvatar() const;
+ //--------------------------------------------------------------------
+ // Velocity
+ //--------------------------------------------------------------------
+public:
+ LLVector3 getVelocity() const;
+ F32 getVelocityZ() const { return getVelocity().mV[VZ]; } // ! HACK !
+
+ //--------------------------------------------------------------------
+ // Coordinate System
+ //--------------------------------------------------------------------
+public:
+ LLCoordFrame getFrameAgent() const { return mFrameAgent; }
+ void initOriginGlobal(const LLVector3d &origin_global); // Only to be used in ONE place
+ void resetAxes();
+ void resetAxes(const LLVector3 &look_at); // Makes reasonable left and up
+ // The following three get*Axis functions return direction avatar is looking, not camera.
+ const LLVector3& getAtAxis() const { return mFrameAgent.getAtAxis(); }
+ const LLVector3& getUpAxis() const { return mFrameAgent.getUpAxis(); }
+ const LLVector3& getLeftAxis() const { return mFrameAgent.getLeftAxis(); }
+ LLQuaternion getQuat() const; // Returns the quat that represents the rotation of the agent in the absolute frame
+private:
+ LLVector3d mAgentOriginGlobal; // Origin of agent coords from global coords
+ LLCoordFrame mFrameAgent; // Agent position and view, agent-region coordinates
- void getName(std::string& name);
- const LLColor4 &getEffectColor();
- void setEffectColor(const LLColor4 &color);
- //
- // UTILITIES
- //
+ //--------------------------------------------------------------------
+ // Home
+ //--------------------------------------------------------------------
+public:
+ void setStartPosition(U32 location_id); // Marks current location as start, sends information to servers
+ void setHomePosRegion(const U64& region_handle, const LLVector3& pos_region);
+ BOOL getHomePosGlobal(LLVector3d* pos_global);
+private:
+ BOOL mHaveHomePosition;
+ U64 mHomeRegionHandle;
+ LLVector3 mHomePosRegion;
- // Set the physics data
- void slamLookAt(const LLVector3 &look_at);
+ //--------------------------------------------------------------------
+ // Region
+ //--------------------------------------------------------------------
+public:
+ enum ELocationFormat
+ {
+ LOCATION_FORMAT_NORMAL,
+ LOCATION_FORMAT_LANDMARK,
+ LOCATION_FORMAT_FULL,
+ };
+ void setRegion(LLViewerRegion *regionp);
+ LLViewerRegion *getRegion() const;
+ LLHost getRegionHost() const;
+ std::string getSLURL() const;
+ BOOL inPrelude();
+ BOOL buildLocationString(std::string& str, ELocationFormat fmt = LOCATION_FORMAT_LANDMARK); // Utility to build a location string
+ static void createLandmarkHere();
+ static void createLandmarkHere(const std::string& name, const std::string& desc, const LLUUID& folder_id);
+private:
+ LLViewerRegion *mRegionp;
- void setPositionAgent(const LLVector3 &center);
+ //--------------------------------------------------------------------
+ // History
+ //--------------------------------------------------------------------
+public:
+ S32 getRegionsVisited() const;
+ F64 getDistanceTraveled() const;
+private:
+ std::set<U64> mRegionsVisited; // Stat - what distinct regions has the avatar been to?
+ F64 mDistanceTraveled; // Stat - how far has the avatar moved?
+ LLVector3d mLastPositionGlobal; // Used to calculate travel distance
+
+/** Position
+ ** **
+ *******************************************************************************/
- void resetAxes();
- void resetAxes(const LLVector3 &look_at); // makes reasonable left and up
+/********************************************************************************
+ ** **
+ ** ACTIONS
+ **/
- // Move the avatar's frame
- void rotate(F32 angle, const LLVector3 &axis);
- void rotate(F32 angle, F32 x, F32 y, F32 z);
- void rotate(const LLMatrix3 &matrix);
- void rotate(const LLQuaternion &quaternion);
- void pitch(F32 angle);
- void roll(F32 angle);
- void yaw(F32 angle);
- LLVector3 getReferenceUpVector();
- F32 clampPitchToLimits(F32 angle);
+ //--------------------------------------------------------------------
+ // Fidget
+ //--------------------------------------------------------------------
+ // Trigger random fidget animations
+public:
+ void fidget();
+ static void stopFidget();
+private:
+ LLFrameTimer mFidgetTimer;
+ LLFrameTimer mFocusObjectFadeTimer;
+ F32 mNextFidgetTime;
+ S32 mCurrentFidget;
- void setThirdPersonHeadOffset(LLVector3 offset) { mThirdPersonHeadOffset = offset; }
- // Flight management
- BOOL getFlying() const { return mControlFlags & AGENT_CONTROL_FLY; }
+ //--------------------------------------------------------------------
+ // Fly
+ //--------------------------------------------------------------------
+public:
+ BOOL getFlying() const { return mControlFlags & AGENT_CONTROL_FLY; }
void setFlying(BOOL fly);
static void toggleFlying();
static bool enableFlying();
+ BOOL canFly(); // Does this parcel allow you to fly?
+
+ //--------------------------------------------------------------------
+ // Chat
+ //--------------------------------------------------------------------
+public:
+ void heardChat(const LLUUID& id);
+ void lookAtLastChat();
+ F32 getTypingTime() { return mTypingTimer.getElapsedTimeF32(); }
+ LLUUID getLastChatter() const { return mLastChatterID; }
+ F32 getNearChatRadius() { return mNearChatRadius; }
+protected:
+ void ageChat(); // Helper function to prematurely age chat when agent is moving
+private:
+ LLFrameTimer mChatTimer;
+ LLUUID mLastChatterID;
+ F32 mNearChatRadius;
+
+ //--------------------------------------------------------------------
+ // Typing
+ //--------------------------------------------------------------------
+public:
+ void startTyping();
+ void stopTyping();
+public:
+ // When the agent hasn't typed anything for this duration, it leaves the
+ // typing state (for both chat and IM).
+ static const F32 TYPING_TIMEOUT_SECS;
+private:
+ LLFrameTimer mTypingTimer;
- // Does this parcel allow you to fly?
- BOOL canFly();
-
- // Animation functions
- void stopCurrentAnimations();
- void requestStopMotion( LLMotion* motion );
- void onAnimStop(const LLUUID& id);
-
- void sendAnimationRequests(LLDynamicArray<LLUUID> &anim_ids, EAnimRequest request);
- void sendAnimationRequest(const LLUUID &anim_id, EAnimRequest request);
-
- LLVector3 calcFocusOffset(LLViewerObject *object, LLVector3 pos_agent, S32 x, S32 y);
- BOOL calcCameraMinDistance(F32 &obj_min_distance);
+ //--------------------------------------------------------------------
+ // AFK
+ //--------------------------------------------------------------------
+public:
+ void setAFK();
+ void clearAFK();
+ BOOL getAFK() const;
- void startCameraAnimation();
- void stopCameraAnimation();
+ //--------------------------------------------------------------------
+ // Run
+ //--------------------------------------------------------------------
+public:
+ enum EDoubleTapRunMode
+ {
+ DOUBLETAP_NONE,
+ DOUBLETAP_FORWARD,
+ DOUBLETAP_BACKWARD,
+ DOUBLETAP_SLIDELEFT,
+ DOUBLETAP_SLIDERIGHT
+ };
- void cameraZoomIn(const F32 factor); // zoom in by fraction of current distance
- void cameraOrbitAround(const F32 radians); // rotate camera CCW radians about build focus point
- void cameraOrbitOver(const F32 radians); // rotate camera forward radians over build focus point
- void cameraOrbitIn(const F32 meters); // move camera in toward build focus point
+ void setAlwaysRun() { mbAlwaysRun = true; }
+ void clearAlwaysRun() { mbAlwaysRun = false; }
+ void setRunning() { mbRunning = true; }
+ void clearRunning() { mbRunning = false; }
+ void sendWalkRun(bool running);
+ bool getAlwaysRun() const { return mbAlwaysRun; }
+ bool getRunning() const { return mbRunning; }
+public:
+ LLFrameTimer mDoubleTapRunTimer;
+ EDoubleTapRunMode mDoubleTapRunMode;
+private:
+ bool mbAlwaysRun; // Should the avatar run by default rather than walk?
+ bool mbRunning; // Is the avatar trying to run right now?
- F32 getCameraZoomFraction(); // get camera zoom as fraction of minimum and maximum zoom
- void setCameraZoomFraction(F32 fraction); // set camera zoom as fraction of minimum and maximum zoom
+ //--------------------------------------------------------------------
+ // Busy
+ //--------------------------------------------------------------------
+public:
+ void setBusy();
+ void clearBusy();
+ BOOL getBusy() const;
+private:
+ BOOL mIsBusy;
- void cameraPanIn(const F32 meters);
- void cameraPanLeft(const F32 meters);
- void cameraPanUp(const F32 meters);
+ //--------------------------------------------------------------------
+ // Jump
+ //--------------------------------------------------------------------
+public:
+ BOOL getJump() const { return mbJump; }
+private:
+ BOOL mbJump;
- void updateFocusOffset();
- void validateFocusObject();
+ //--------------------------------------------------------------------
+ // Grab
+ //--------------------------------------------------------------------
+public:
+ BOOL leftButtonGrabbed() const;
+ BOOL rotateGrabbed() const;
+ BOOL forwardGrabbed() const;
+ BOOL backwardGrabbed() const;
+ BOOL upGrabbed() const;
+ BOOL downGrabbed() const;
- void setUsingFollowCam( bool using_follow_cam);
+ //--------------------------------------------------------------------
+ // Controls
+ //--------------------------------------------------------------------
+public:
+ U32 getControlFlags();
+ void setControlFlags(U32 mask); // Performs bitwise mControlFlags |= mask
+ void clearControlFlags(U32 mask); // Performs bitwise mControlFlags &= ~mask
+ BOOL controlFlagsDirty() const;
+ void enableControlFlagReset();
+ void resetControlFlags();
+ BOOL anyControlGrabbed() const; // True iff a script has taken over a control
+ BOOL isControlGrabbed(S32 control_index) const;
+ // Send message to simulator to force grabbed controls to be
+ // released, in case of a poorly written script.
+ void forceReleaseControls();
+private:
+ S32 mControlsTakenCount[TOTAL_CONTROLS];
+ S32 mControlsTakenPassedOnCount[TOTAL_CONTROLS];
+ U32 mControlFlags; // Replacement for the mFooKey's
+ BOOL mbFlagsDirty;
+ BOOL mbFlagsNeedReset; // ! HACK ! For preventing incorrect flags sent when crossing region boundaries
- F32 calcCustomizeAvatarUIOffset( const LLVector3d& camera_pos_global );
-
- // marks current location as start, sends information to servers
- void setStartPosition(U32 location_id);
+ //--------------------------------------------------------------------
+ // Animations
+ //--------------------------------------------------------------------
+public:
+ void stopCurrentAnimations();
+ void requestStopMotion(LLMotion* motion);
+ void onAnimStop(const LLUUID& id);
+ void sendAnimationRequests(LLDynamicArray<LLUUID> &anim_ids, EAnimRequest request);
+ void sendAnimationRequest(const LLUUID &anim_id, EAnimRequest request);
+ void endAnimationUpdateUI();
+private:
+ LLFrameTimer mAnimationTimer; // Seconds that transition animation has been active
+ F32 mAnimationDuration; // In seconds
+ BOOL mCustomAnim; // Current animation is ANIM_AGENT_CUSTOMIZE ?
+ LLAnimPauseRequest mPauseRequest;
+ BOOL mViewsPushed; // Keep track of whether or not we have pushed views
+
+/** Animation
+ ** **
+ *******************************************************************************/
+
+/********************************************************************************
+ ** **
+ ** MOVEMENT
+ **/
+
+ //--------------------------------------------------------------------
+ // Keys
+ //--------------------------------------------------------------------
+public:
+ void setKey(const S32 direction, S32 &key); // Sets key to +1 for +direction, -1 for -direction
+private:
+ S32 mAtKey; // Either 1, 0, or -1. Indicates that movement key is pressed
+ S32 mWalkKey; // Like AtKey, but causes less forward thrust
+ S32 mLeftKey;
+ S32 mUpKey;
+ F32 mYawKey;
+ S32 mPitchKey;
- // Movement from user input. All set the appropriate animation flags.
+ //--------------------------------------------------------------------
+ // Movement from user input
+ //--------------------------------------------------------------------
+ // All set the appropriate animation flags.
// All turn off autopilot and make sure the camera is behind the avatar.
- // direction is either positive, zero, or negative
+ // Direction is either positive, zero, or negative
+public:
void moveAt(S32 direction, bool reset_view = true);
void moveAtNudge(S32 direction);
void moveLeft(S32 direction);
@@ -455,145 +482,97 @@ public:
void moveYaw(F32 mag, bool reset_view = true);
void movePitch(S32 direction);
- void setOrbitLeftKey(F32 mag) { mOrbitLeftKey = mag; }
- void setOrbitRightKey(F32 mag) { mOrbitRightKey = mag; }
- void setOrbitUpKey(F32 mag) { mOrbitUpKey = mag; }
- void setOrbitDownKey(F32 mag) { mOrbitDownKey = mag; }
- void setOrbitInKey(F32 mag) { mOrbitInKey = mag; }
- void setOrbitOutKey(F32 mag) { mOrbitOutKey = mag; }
-
- void setPanLeftKey(F32 mag) { mPanLeftKey = mag; }
- void setPanRightKey(F32 mag) { mPanRightKey = mag; }
- void setPanUpKey(F32 mag) { mPanUpKey = mag; }
- void setPanDownKey(F32 mag) { mPanDownKey = mag; }
- void setPanInKey(F32 mag) { mPanInKey = mag; }
- void setPanOutKey(F32 mag) { mPanOutKey = mag; }
-
- U32 getControlFlags();
- void setControlFlags(U32 mask); // performs bitwise mControlFlags |= mask
- void clearControlFlags(U32 mask); // performs bitwise mControlFlags &= ~mask
- BOOL controlFlagsDirty() const;
- void enableControlFlagReset();
- void resetControlFlags();
-
- void propagate(const F32 dt); // BUG: should roll into updateAgentPosition
+ //--------------------------------------------------------------------
+ // Orbit
+ //--------------------------------------------------------------------
+public:
+ void setOrbitLeftKey(F32 mag) { mOrbitLeftKey = mag; }
+ void setOrbitRightKey(F32 mag) { mOrbitRightKey = mag; }
+ void setOrbitUpKey(F32 mag) { mOrbitUpKey = mag; }
+ void setOrbitDownKey(F32 mag) { mOrbitDownKey = mag; }
+ void setOrbitInKey(F32 mag) { mOrbitInKey = mag; }
+ void setOrbitOutKey(F32 mag) { mOrbitOutKey = mag; }
+private:
+ F32 mOrbitLeftKey;
+ F32 mOrbitRightKey;
+ F32 mOrbitUpKey;
+ F32 mOrbitDownKey;
+ F32 mOrbitInKey;
+ F32 mOrbitOutKey;
+
+ //--------------------------------------------------------------------
+ // Pan
+ //--------------------------------------------------------------------
+public:
+ void setPanLeftKey(F32 mag) { mPanLeftKey = mag; }
+ void setPanRightKey(F32 mag) { mPanRightKey = mag; }
+ void setPanUpKey(F32 mag) { mPanUpKey = mag; }
+ void setPanDownKey(F32 mag) { mPanDownKey = mag; }
+ void setPanInKey(F32 mag) { mPanInKey = mag; }
+ void setPanOutKey(F32 mag) { mPanOutKey = mag; }
+private:
+ F32 mPanUpKey;
+ F32 mPanDownKey;
+ F32 mPanLeftKey;
+ F32 mPanRightKey;
+ F32 mPanInKey;
+ F32 mPanOutKey;
- void startAutoPilotGlobal(const LLVector3d &pos_global, const std::string& behavior_name = std::string(), const LLQuaternion *target_rotation = NULL,
- void (*finish_callback)(BOOL, void *) = NULL, void *callback_data = NULL, F32 stop_distance = 0.f, F32 rotation_threshold = 0.03f);
+ //--------------------------------------------------------------------
+ // Move the avatar's frame
+ //--------------------------------------------------------------------
+public:
+ void rotate(F32 angle, const LLVector3 &axis);
+ void rotate(F32 angle, F32 x, F32 y, F32 z);
+ void rotate(const LLMatrix3 &matrix);
+ void rotate(const LLQuaternion &quaternion);
+ void pitch(F32 angle);
+ void roll(F32 angle);
+ void yaw(F32 angle);
+ LLVector3 getReferenceUpVector();
+ F32 clampPitchToLimits(F32 angle);
+ //--------------------------------------------------------------------
+ // Autopilot
+ //--------------------------------------------------------------------
+public:
+ BOOL getAutoPilot() const { return mAutoPilot; }
+ LLVector3d getAutoPilotTargetGlobal() const { return mAutoPilotTargetGlobal; }
+ void startAutoPilotGlobal(const LLVector3d &pos_global,
+ const std::string& behavior_name = std::string(),
+ const LLQuaternion *target_rotation = NULL,
+ void (*finish_callback)(BOOL, void *) = NULL, void *callback_data = NULL,
+ F32 stop_distance = 0.f, F32 rotation_threshold = 0.03f);
void startFollowPilot(const LLUUID &leader_id);
void stopAutoPilot(BOOL user_cancel = FALSE);
void setAutoPilotGlobal(const LLVector3d &pos_global);
- void autoPilot(F32 *delta_yaw); // autopilot walking action, angles in radians
+ void autoPilot(F32 *delta_yaw); // Autopilot walking action, angles in radians
void renderAutoPilotTarget();
+private:
+ BOOL mAutoPilot;
+ BOOL mAutoPilotFlyOnStop;
+ LLVector3d mAutoPilotTargetGlobal;
+ F32 mAutoPilotStopDistance;
+ BOOL mAutoPilotUseRotation;
+ LLVector3 mAutoPilotTargetFacing;
+ F32 mAutoPilotTargetDist;
+ S32 mAutoPilotNoProgressFrameCount;
+ F32 mAutoPilotRotationThreshold;
+ std::string mAutoPilotBehaviorName;
+ void (*mAutoPilotFinishedCallback)(BOOL, void *);
+ void* mAutoPilotCallbackData;
+ LLUUID mLeaderID;
+
+/** Movement
+ ** **
+ *******************************************************************************/
- //
- // teportation methods
- //
-
- // go to a named location home
- void teleportRequest(
- const U64& region_handle,
- const LLVector3& pos_local);
-
- // teleport to a landmark
- void teleportViaLandmark(const LLUUID& landmark_id);
-
- // go home
- void teleportHome() { teleportViaLandmark(LLUUID::null); }
-
- // to an invited location
- void teleportViaLure(const LLUUID& lure_id, BOOL godlike);
-
- // to a global location - this will probably need to be
- // deprecated.
- void teleportViaLocation(const LLVector3d& pos_global);
-
- // cancel the teleport, may or may not be allowed by server
- void teleportCancel();
-
- void setTargetVelocity(const LLVector3 &vel);
- const LLVector3 &getTargetVelocity() const;
-
- const std::string getTeleportSourceSLURL() const { return mTeleportSourceSLURL; }
-
-
- // Setting the ability for this avatar to proxy for another avatar.
- //static void processAddModifyAbility(LLMessageSystem* msg, void**);
- //static void processGrantedProxies(LLMessageSystem* msg, void**);
- //static void processRemoveModifyAbility(LLMessageSystem* msg, void**);
- //BOOL isProxyFor(const LLUUID& agent_id);// *FIX should be const
-
- static void processAgentDataUpdate(LLMessageSystem *msg, void **);
- static void processAgentGroupDataUpdate(LLMessageSystem *msg, void **);
- static void processAgentDropGroup(LLMessageSystem *msg, void **);
- static void processScriptControlChange(LLMessageSystem *msg, void **);
- static void processAgentCachedTextureResponse(LLMessageSystem *mesgsys, void **user_data);
- //static void processControlTake(LLMessageSystem *msg, void **);
- //static void processControlRelease(LLMessageSystem *msg, void **);
-
- // This method checks to see if this agent can modify an object
- // based on the permissions and the agent's proxy status.
- BOOL isGrantedProxy(const LLPermissions& perm);
-
- BOOL allowOperation(PermissionBit op,
- const LLPermissions& perm,
- U64 group_proxy_power = 0,
- U8 god_minimum = GOD_MAINTENANCE);
-
- friend std::ostream& operator<<(std::ostream &s, const LLAgent &sphere);
-
- void initOriginGlobal(const LLVector3d &origin_global); // Only to be used in ONE place! - djs 08/07/02
-
- BOOL leftButtonGrabbed() const { return ( (!cameraMouselook() && mControlsTakenCount[CONTROL_LBUTTON_DOWN_INDEX] > 0)
- ||(cameraMouselook() && mControlsTakenCount[CONTROL_ML_LBUTTON_DOWN_INDEX] > 0)
- ||(!cameraMouselook() && mControlsTakenPassedOnCount[CONTROL_LBUTTON_DOWN_INDEX] > 0)
- ||(cameraMouselook() && mControlsTakenPassedOnCount[CONTROL_ML_LBUTTON_DOWN_INDEX] > 0)); }
- BOOL rotateGrabbed() const { return ( (mControlsTakenCount[CONTROL_YAW_POS_INDEX] > 0)
- ||(mControlsTakenCount[CONTROL_YAW_NEG_INDEX] > 0)); }
- BOOL forwardGrabbed() const { return ( (mControlsTakenCount[CONTROL_AT_POS_INDEX] > 0)); }
- BOOL backwardGrabbed() const { return ( (mControlsTakenCount[CONTROL_AT_NEG_INDEX] > 0)); }
- BOOL upGrabbed() const { return ( (mControlsTakenCount[CONTROL_UP_POS_INDEX] > 0)); }
- BOOL downGrabbed() const { return ( (mControlsTakenCount[CONTROL_UP_NEG_INDEX] > 0)); }
-
- // True iff a script has taken over a control.
- BOOL anyControlGrabbed() const;
-
- BOOL isControlGrabbed(S32 control_index) const;
-
- // Send message to simulator to force grabbed controls to be
- // released, in case of a poorly written script.
- void forceReleaseControls();
-
- BOOL sitCameraEnabled() { return mSitCameraEnabled; }
-
- F32 getCurrentCameraBuildOffset() { return (F32)mCameraFocusOffset.length(); }
-
- // look at behavior
- BOOL setLookAt(ELookAtType target_type, LLViewerObject *object = NULL, LLVector3 position = LLVector3::zero);
- ELookAtType getLookAtType();
-
- // point at behavior
- BOOL setPointAt(EPointAtType target_type, LLViewerObject *object = NULL, LLVector3 position = LLVector3::zero);
- EPointAtType getPointAtType();
-
- void setHomePosRegion( const U64& region_handle, const LLVector3& pos_region );
- BOOL getHomePosGlobal( LLVector3d* pos_global );
- void setCameraAnimating( BOOL b ) { mCameraAnimating = b; }
- BOOL getCameraAnimating( ) { return mCameraAnimating; }
- void setAnimationDuration( F32 seconds ) { mAnimationDuration = seconds; }
-
- F32 getNearChatRadius() { return mNearChatRadius; }
-
- enum EDoubleTapRunMode
- {
- DOUBLETAP_NONE,
- DOUBLETAP_FORWARD,
- DOUBLETAP_BACKWARD,
- DOUBLETAP_SLIDELEFT,
- DOUBLETAP_SLIDERIGHT
- };
+/********************************************************************************
+ ** **
+ ** TELEPORT
+ **/
+public:
enum ETeleportState
{
TELEPORT_NONE = 0, // No teleport in progress
@@ -604,377 +583,487 @@ public:
TELEPORT_ARRIVING = 5 // Make the user wait while content "pre-caches"
};
- ETeleportState getTeleportState() const { return mTeleportState; }
- void setTeleportState( ETeleportState state );
- const std::string& getTeleportMessage() const { return mTeleportMessage; }
- void setTeleportMessage(const std::string& message)
- {
- mTeleportMessage = message;
- }
-
- // trigger random fidget animations
- void fidget();
-
- void requestEnterGodMode();
- void requestLeaveGodMode();
-
- void sendAgentSetAppearance();
- void sendAgentDataUpdateRequest();
- void sendAgentUserInfoRequest();
-
-
- // Ventrella
- LLFollowCam mFollowCam;
- // end Ventrella
+public:
+ static void parseTeleportMessages(const std::string& xml_filename);
+ const std::string getTeleportSourceSLURL() const { return mTeleportSourceSLURL; }
+public:
+ // ! TODO ! Define ERROR and PROGRESS enums here instead of exposing the mappings.
+ static std::map<std::string, std::string> sTeleportErrorMessages;
+ static std::map<std::string, std::string> sTeleportProgressMessages;
+private:
+ std::string mTeleportSourceSLURL; // SLURL where last TP began
//--------------------------------------------------------------------
- // Wearables
+ // Teleport Actions
//--------------------------------------------------------------------
- void setWearable( LLInventoryItem* new_item, LLWearable* wearable );
- static bool onSetWearableDialog( const LLSD& notification, const LLSD& response, LLWearable* wearable );
- void setWearableFinal( LLInventoryItem* new_item, LLWearable* new_wearable );
- void setWearableOutfit( const LLInventoryItem::item_array_t& items, const LLDynamicArray< LLWearable* >& wearables, BOOL remove );
- void queryWearableCache();
-
- BOOL isWearableModifiable(EWearableType type);
- BOOL isWearableCopyable(EWearableType type);
- BOOL needsReplacement(EWearableType wearableType, S32 remove);
- U32 getWearablePermMask(EWearableType type);
-
- LLInventoryItem* getWearableInventoryItem(EWearableType type);
+public:
+ void teleportRequest(const U64& region_handle,
+ const LLVector3& pos_local); // Go to a named location home
+ void teleportViaLandmark(const LLUUID& landmark_id); // Teleport to a landmark
+ void teleportHome() { teleportViaLandmark(LLUUID::null); } // Go home
+ void teleportViaLure(const LLUUID& lure_id, BOOL godlike); // To an invited location
+ void teleportViaLocation(const LLVector3d& pos_global); // To a global location - this will probably need to be deprecated
+ void teleportCancel(); // May or may not be allowed by server
+protected:
+ bool teleportCore(bool is_local = false); // Stuff for all teleports; returns true if the teleport can proceed
- LLWearable* getWearable( EWearableType type ) { return (type < WT_COUNT) ? mWearableEntry[ type ].mWearable : NULL; }
- BOOL isWearingItem( const LLUUID& item_id );
- LLWearable* getWearableFromWearableItem( const LLUUID& item_id );
- const LLUUID& getWearableItem( EWearableType type ) { return (type < WT_COUNT) ? mWearableEntry[ type ].mItemID : LLUUID::null; }
+ //--------------------------------------------------------------------
+ // Teleport State
+ //--------------------------------------------------------------------
+public:
+ ETeleportState getTeleportState() const { return mTeleportState; }
+ void setTeleportState(ETeleportState state);
+private:
+ ETeleportState mTeleportState;
- static EWearableType getTEWearableType( S32 te );
- static LLUUID getDefaultTEImageID( S32 te );
-
- void copyWearableToInventory( EWearableType type );
-
- void makeNewOutfit(
- const std::string& new_folder_name,
- const LLDynamicArray<S32>& wearables_to_include,
- const LLDynamicArray<S32>& attachments_to_include,
- BOOL rename_clothing);
- void makeNewOutfitDone(S32 index);
-
- void removeWearable( EWearableType type );
- static bool onRemoveWearableDialog(const LLSD& notification, const LLSD& response );
- void removeWearableFinal( EWearableType type );
-
- void sendAgentWearablesUpdate();
-
- /**
- * @brief Only public because of addWearableToAgentInventoryCallback.
- *
- * NOTE: Do not call this method unless you are the inventory callback.
- * NOTE: This can suffer from race conditions when working on the
- * same values for index.
- * @param index The index in mWearableEntry.
- * @param item_id The inventory item id of the new wearable to wear.
- * @param wearable The actual wearable data.
- */
- void addWearabletoAgentInventoryDone(
- S32 index,
- const LLUUID& item_id,
- LLWearable* wearable);
-
- void saveWearableAs( EWearableType type, const std::string& new_name, BOOL save_in_lost_and_found );
- void saveWearable( EWearableType type, BOOL send_update = TRUE );
- void saveAllWearables();
+ //--------------------------------------------------------------------
+ // Teleport Message
+ //--------------------------------------------------------------------
+public:
+ const std::string& getTeleportMessage() const { return mTeleportMessage; }
+ void setTeleportMessage(const std::string& message) { mTeleportMessage = message; }
+private:
+ std::string mTeleportMessage;
- void revertWearable( EWearableType type );
- void revertAllWearables();
+/** Teleport
+ ** **
+ *******************************************************************************/
- void setWearableName( const LLUUID& item_id, const std::string& new_name );
- void createStandardWearables(BOOL female);
- void createStandardWearablesDone(S32 index);
- void createStandardWearablesAllDone();
-
- BOOL areWearablesLoaded() { return mWearablesLoaded; }
-
- void sendWalkRun(bool running);
-
- void observeFriends();
- void friendsChanged();
-
- // statics
- static void stopFidget();
- static void processAgentInitialWearablesUpdate(LLMessageSystem* mesgsys, void** user_data);
- static void userRemoveWearable( void* userdata ); // userdata is EWearableType
- static void userRemoveAllClothes( void* userdata ); // userdata is NULL
- static void userRemoveAllClothesStep2(BOOL proceed );
- static void userRemoveAllAttachments( void* userdata); // userdata is NULL
- static BOOL selfHasWearable( void* userdata ); // userdata is EWearableType
-
- //debug methods
- static void clearVisualParams(void *);
+/********************************************************************************
+ ** **
+ ** CAMERA
+ **/
-protected:
- // stuff to do for any sort of teleport. Returns true if the
- // teleport can proceed.
- bool teleportCore(bool is_local = false);
+ //--------------------------------------------------------------------
+ // Mode
+ //--------------------------------------------------------------------
+public:
+ void changeCameraToDefault();
+ void changeCameraToMouselook(BOOL animate = TRUE);
+ void changeCameraToThirdPerson(BOOL animate = TRUE);
+ void changeCameraToCustomizeAvatar(BOOL avatar_animate = TRUE, BOOL camera_animate = TRUE); // Trigger transition animation
+ void changeCameraToFollow(BOOL animate = TRUE); // Ventrella
+ BOOL cameraThirdPerson() const { return (mCameraMode == CAMERA_MODE_THIRD_PERSON && mLastCameraMode == CAMERA_MODE_THIRD_PERSON); }
+ BOOL cameraMouselook() const { return (mCameraMode == CAMERA_MODE_MOUSELOOK && mLastCameraMode == CAMERA_MODE_MOUSELOOK); }
+ BOOL cameraCustomizeAvatar() const { return (mCameraMode == CAMERA_MODE_CUSTOMIZE_AVATAR /*&& !mCameraAnimating*/); }
+ BOOL cameraFollow() const { return (mCameraMode == CAMERA_MODE_FOLLOW && mLastCameraMode == CAMERA_MODE_FOLLOW); }
+ ECameraMode getCameraMode() const { return mCameraMode; }
+ void updateCamera(); // Call once per frame to update camera location/orientation
+ void resetCamera(); // Slam camera into its default position
+private:
+ ECameraMode mCameraMode; // Target mode after transition animation is done
+ ECameraMode mLastCameraMode;
- // helper function to prematurely age chat when agent is moving
- void ageChat();
+ //--------------------------------------------------------------------
+ // Position
+ //--------------------------------------------------------------------
+public:
+ LLVector3d getCameraPositionGlobal() const;
+ const LLVector3 &getCameraPositionAgent() const;
+ LLVector3d calcCameraPositionTargetGlobal(BOOL *hit_limit = NULL); // Calculate the camera position target
+ F32 getCameraMinOffGround(); // Minimum height off ground for this mode, meters
+ void setCameraCollidePlane(const LLVector4 &plane) { mCameraCollidePlane = plane; }
+ BOOL calcCameraMinDistance(F32 &obj_min_distance);
+ F32 calcCustomizeAvatarUIOffset(const LLVector3d& camera_pos_global);
+ F32 getCurrentCameraBuildOffset() { return (F32)mCameraFocusOffset.length(); }
+private:
+ F32 mCurrentCameraDistance; // Current camera offset from avatar
+ F32 mTargetCameraDistance; // Target camera offset from avatar
+ F32 mCameraFOVZoomFactor; // Amount of fov zoom applied to camera when zeroing in on an object
+ F32 mCameraCurrentFOVZoomFactor; // Interpolated fov zoom
+ F32 mCameraFOVDefault; // Default field of view that is basis for FOV zoom effect
+ LLVector3 mCameraOffsetDefault; // Default third-person camera offset
+ LLVector4 mCameraCollidePlane; // Colliding plane for camera
+ F32 mCameraZoomFraction; // Mousewheel driven fraction of zoom
+ LLVector3 mCameraPositionAgent; // Camera position in agent coordinates
+ LLVector3 mCameraVirtualPositionAgent; // Camera virtual position (target) before performing FOV zoom
+ LLVector3d mCameraSmoothingLastPositionGlobal;
+ LLVector3d mCameraSmoothingLastPositionAgent;
+ BOOL mCameraSmoothingStop;
+ LLVector3 mCameraLag; // Third person camera lag
+ LLVector3 mCameraUpVector; // Camera's up direction in world coordinates (determines the 'roll' of the view)
- // internal wearable functions
- void sendAgentWearablesRequest();
- static void onInitialWearableAssetArrived(LLWearable* wearable, void* userdata);
- void recoverMissingWearable(EWearableType type);
- void recoverMissingWearableDone();
- void addWearableToAgentInventory(LLPointer<LLInventoryCallback> cb,
- LLWearable* wearable, const LLUUID& category_id = LLUUID::null,
- BOOL notify = TRUE);
+ //--------------------------------------------------------------------
+ // Follow
+ //--------------------------------------------------------------------
public:
- // TODO: Make these private!
- LLUUID mSecureSessionID; // secure token for this login session
+ void setUsingFollowCam(bool using_follow_cam);
+private:
+ LLFollowCam mFollowCam; // Ventrella
- F32 mDrawDistance;
+ //--------------------------------------------------------------------
+ // Sit
+ //--------------------------------------------------------------------
+public:
+ void setupSitCamera();
+ BOOL sitCameraEnabled() { return mSitCameraEnabled; }
+ void setSitCamera(const LLUUID &object_id,
+ const LLVector3 &camera_pos = LLVector3::zero, const LLVector3 &camera_focus = LLVector3::zero);
+private:
+ LLPointer<LLViewerObject> mSitCameraReferenceObject; // Object to which camera is related when sitting
+ BOOL mSitCameraEnabled; // Use provided camera information when sitting?
+ LLVector3 mSitCameraPos; // Root relative camera pos when sitting
+ LLVector3 mSitCameraFocus; // Root relative camera target when sitting
- U64 mGroupPowers;
- BOOL mHideGroupTitle;
- std::string mGroupTitle; // honorific, like "Sir"
- std::string mGroupName;
- LLUUID mGroupID;
- //LLUUID mGroupInsigniaID;
- LLUUID mInventoryRootID;
- LLUUID mMapID;
- F64 mMapOriginX; // Global x coord of mMapID's bottom left corner.
- F64 mMapOriginY; // Global y coord of mMapID's bottom left corner.
- S32 mMapWidth; // Width of map in meters
- S32 mMapHeight; // Height of map in meters
- std::string mMOTD; // message of the day
+ //--------------------------------------------------------------------
+ // Animation
+ //--------------------------------------------------------------------
+public:
+ void setCameraAnimating(BOOL b) { mCameraAnimating = b; }
+ BOOL getCameraAnimating() { return mCameraAnimating; }
+ void setAnimationDuration(F32 seconds) { mAnimationDuration = seconds; }
+ void startCameraAnimation();
+ void stopCameraAnimation();
+private:
+ BOOL mCameraAnimating; // Camera is transitioning from one mode to another
+ LLVector3d mAnimationCameraStartGlobal; // Camera start position, global coords
+ LLVector3d mAnimationFocusStartGlobal; // Camera focus point, global coords
+ //--------------------------------------------------------------------
+ // Focus
+ //--------------------------------------------------------------------
+public:
+ LLVector3d calcFocusPositionTargetGlobal();
+ LLVector3 calcFocusOffset(LLViewerObject *object, LLVector3 pos_agent, S32 x, S32 y);
+ BOOL getFocusOnAvatar() const { return mFocusOnAvatar; }
+ LLPointer<LLViewerObject>& getFocusObject() { return mFocusObject; }
+ F32 getFocusObjectDist() const { return mFocusObjectDist; }
+ void updateFocusOffset();
+ void validateFocusObject();
+ void setFocusGlobal(const LLPickInfo& pick);
+ void setFocusGlobal(const LLVector3d &focus, const LLUUID &object_id = LLUUID::null);
+ void setFocusOnAvatar(BOOL focus, BOOL animate);
+ void setCameraPosAndFocusGlobal(const LLVector3d& pos, const LLVector3d& focus, const LLUUID &object_id);
+ void clearFocusObject();
+ void setFocusObject(LLViewerObject* object);
+ void setObjectTracking(BOOL track) { mTrackFocusObject = track; }
+ const LLVector3d &getFocusGlobal() const { return mFocusGlobal; }
+ const LLVector3d &getFocusTargetGlobal() const { return mFocusTargetGlobal; }
+private:
+ LLVector3d mCameraFocusOffset; // Offset from focus point in build mode
+ LLVector3d mCameraFocusOffsetTarget; // Target towards which we are lerping the camera's focus offset
+ BOOL mFocusOnAvatar;
+ LLVector3d mFocusGlobal;
+ LLVector3d mFocusTargetGlobal;
+ LLPointer<LLViewerObject> mFocusObject;
+ F32 mFocusObjectDist;
+ LLVector3 mFocusObjectOffset;
+ F32 mFocusDotRadius; // Meters
+ BOOL mTrackFocusObject;
+ F32 mUIOffset;
+
+ //--------------------------------------------------------------------
+ // Lookat / Pointat
+ //--------------------------------------------------------------------
+public:
+ void updateLookAt(const S32 mouse_x, const S32 mouse_y);
+ BOOL setLookAt(ELookAtType target_type, LLViewerObject *object = NULL, LLVector3 position = LLVector3::zero);
+ ELookAtType getLookAtType();
+ void slamLookAt(const LLVector3 &look_at); // Set the physics data
+ BOOL setPointAt(EPointAtType target_type, LLViewerObject *object = NULL, LLVector3 position = LLVector3::zero);
+ EPointAtType getPointAtType();
+public:
LLPointer<LLHUDEffectLookAt> mLookAt;
LLPointer<LLHUDEffectPointAt> mPointAt;
- LLDynamicArray<LLGroupData> mGroups;
+ //--------------------------------------------------------------------
+ // Third person
+ //--------------------------------------------------------------------
+public:
+ LLVector3d calcThirdPersonFocusOffset();
+ void setThirdPersonHeadOffset(LLVector3 offset) { mThirdPersonHeadOffset = offset; }
+private:
+ LLVector3 mThirdPersonHeadOffset; // Head offset for third person camera position
- F32 mHUDTargetZoom; // target zoom level for HUD objects (used when editing)
- F32 mHUDCurZoom; // current animated zoom level for HUD objects
+ //--------------------------------------------------------------------
+ // Orbit
+ //--------------------------------------------------------------------
+public:
+ void cameraOrbitAround(const F32 radians); // Rotate camera CCW radians about build focus point
+ void cameraOrbitOver(const F32 radians); // Rotate camera forward radians over build focus point
+ void cameraOrbitIn(const F32 meters); // Move camera in toward build focus point
- BOOL mInitialized;
+ //--------------------------------------------------------------------
+ // Zoom
+ //--------------------------------------------------------------------
+public:
+ void handleScrollWheel(S32 clicks); // Mousewheel driven zoom
+ void cameraZoomIn(const F32 factor); // Zoom in by fraction of current distance
+ F32 getCameraZoomFraction(); // Get camera zoom as fraction of minimum and maximum zoom
+ void setCameraZoomFraction(F32 fraction); // Set camera zoom as fraction of minimum and maximum zoom
+ F32 calcCameraFOVZoomFactor();
- S32 mNumPendingQueries;
- S32* mActiveCacheQueries;
+ //--------------------------------------------------------------------
+ // Pan
+ //--------------------------------------------------------------------
+public:
+ void cameraPanIn(const F32 meters);
+ void cameraPanLeft(const F32 meters);
+ void cameraPanUp(const F32 meters);
+
+ //--------------------------------------------------------------------
+ // View
+ //--------------------------------------------------------------------
+public:
+ // Called whenever the agent moves. Puts camera back in default position, deselects items, etc.
+ void resetView(BOOL reset_camera = TRUE, BOOL change_camera = FALSE);
+ // Called on camera movement. Unlocks camera from the default position behind the avatar.
+ void unlockView();
+ //--------------------------------------------------------------------
+ // Mouselook
+ //--------------------------------------------------------------------
+public:
+ BOOL getForceMouselook() const { return mForceMouselook; }
+ void setForceMouselook(BOOL mouselook) { mForceMouselook = mouselook; }
+private:
BOOL mForceMouselook;
+
+ //--------------------------------------------------------------------
+ // HUD
+ //--------------------------------------------------------------------
+public:
+ const LLColor4 &getEffectColor();
+ void setEffectColor(const LLColor4 &color);
+public:
+ F32 mHUDTargetZoom; // Target zoom level for HUD objects (used when editing)
+ F32 mHUDCurZoom; // Current animated zoom level for HUD objects
+private:
+ LLColor4 mEffectColor;
- static void parseTeleportMessages(const std::string& xml_filename);
- //we should really define ERROR and PROGRESS enums here
- //but I don't really feel like doing that, so I am just going
- //to expose the mappings....yup
- static std::map<std::string, std::string> sTeleportErrorMessages;
- static std::map<std::string, std::string> sTeleportProgressMessages;
+/** Camera
+ ** **
+ *******************************************************************************/
- LLFrameTimer mDoubleTapRunTimer;
- EDoubleTapRunMode mDoubleTapRunMode;
+/********************************************************************************
+ ** **
+ ** ACCESS
+ **/
+public:
+ // Checks if agent can modify an object based on the permissions and the agent's proxy status.
+ BOOL isGrantedProxy(const LLPermissions& perm);
+ BOOL allowOperation(PermissionBit op,
+ const LLPermissions& perm,
+ U64 group_proxy_power = 0,
+ U8 god_minimum = GOD_MAINTENANCE);
+ const LLAgentAccess& getAgentAccess();
+ BOOL canManageEstate() const;
+ BOOL getAdminOverride() const;
+ // ! BACKWARDS COMPATIBILITY ! This function can go away after the AO transition (see llstartup.cpp).
+ void setAOTransition();
private:
- bool mbAlwaysRun; // should the avatar run by default rather than walk
- bool mbRunning; // is the avatar trying to run right now
-
- LLAgentAccess mAgentAccess;
+ LLAgentAccess mAgentAccess;
- ETeleportState mTeleportState;
- std::string mTeleportMessage;
-
- S32 mControlsTakenCount[TOTAL_CONTROLS];
- S32 mControlsTakenPassedOnCount[TOTAL_CONTROLS];
-
- LLViewerRegion *mRegionp;
- LLVector3d mAgentOriginGlobal; // Origin of agent coords from global coords
- mutable LLVector3d mPositionGlobal;
+ //--------------------------------------------------------------------
+ // God
+ //--------------------------------------------------------------------
+public:
+ BOOL isGodlike() const;
+ U8 getGodLevel() const;
+ void setAdminOverride(BOOL b);
+ void setGodLevel(U8 god_level);
+ void requestEnterGodMode();
+ void requestLeaveGodMode();
- std::string mTeleportSourceSLURL; // SLURL where last TP began.
+ //--------------------------------------------------------------------
+ // Maturity
+ //--------------------------------------------------------------------
+public:
+ // Note: this is a prime candidate for pulling out into a Maturity class.
+ // Rather than just expose the preference setting, we're going to actually
+ // expose what the client code cares about -- what the user should see
+ // based on a combination of the is* and prefers* flags, combined with god bit.
+ bool wantsPGOnly() const;
+ bool canAccessMature() const;
+ bool canAccessAdult() const;
+ bool canAccessMaturityInRegion( U64 region_handle ) const;
+ bool canAccessMaturityAtGlobal( LLVector3d pos_global ) const;
+ bool prefersPG() const;
+ bool prefersMature() const;
+ bool prefersAdult() const;
+ bool isTeen() const;
+ bool isMature() const;
+ bool isAdult() const;
+ void setTeen(bool teen);
+ void setMaturity(char text);
+ static int convertTextToMaturity(char text);
+ bool sendMaturityPreferenceToServer(int preferredMaturity); // ! "U8" instead of "int"?
+
+ // Maturity callbacks for PreferredMaturity control variable
+ void handleMaturity(const LLSD& newvalue);
+ bool validateMaturity(const LLSD& newvalue);
+
+
+/** Access
+ ** **
+ *******************************************************************************/
+
+/********************************************************************************
+ ** **
+ ** RENDERING
+ **/
- std::set<U64> mRegionsVisited; // stat - what distinct regions has the avatar been to?
- F64 mDistanceTraveled; // stat - how far has the avatar moved?
- LLVector3d mLastPositionGlobal; // Used to calculate travel distance
+public:
+ LLQuaternion getHeadRotation();
+ BOOL needsRenderAvatar(); // TRUE when camera mode is such that your own avatar should draw
+ BOOL needsRenderHead();
+public:
+ F32 mDrawDistance;
+private:
+ BOOL mShowAvatar; // Should we render the avatar?
+ U32 mAppearanceSerialNum;
+
+ //--------------------------------------------------------------------
+ // Rendering state bitmap helpers
+ //--------------------------------------------------------------------
+public:
+ void setRenderState(U8 newstate);
+ void clearRenderState(U8 clearstate);
+ U8 getRenderState();
+private:
+ U8 mRenderState; // Current behavior state of agent
- LLPointer<LLVOAvatar> mAvatarObject; // NULL until avatar object sent down from simulator
+/** Rendering
+ ** **
+ *******************************************************************************/
- U8 mRenderState; // Current behavior state of agent
- LLFrameTimer mTypingTimer;
+/********************************************************************************
+ ** **
+ ** GROUPS
+ **/
- ECameraMode mCameraMode; // target mode after transition animation is done
- ECameraMode mLastCameraMode;
- BOOL mViewsPushed; // keep track of whether or not we have pushed views.
-
- BOOL mCustomAnim ; //current animation is ANIM_AGENT_CUSTOMIZE ?
- BOOL mShowAvatar; // should we render the avatar?
- BOOL mCameraAnimating; // camera is transitioning from one mode to another
- LLVector3d mAnimationCameraStartGlobal; // camera start position, global coords
- LLVector3d mAnimationFocusStartGlobal; // camera focus point, global coords
- LLFrameTimer mAnimationTimer; // seconds that transition animation has been active
- F32 mAnimationDuration; // seconds
- F32 mCameraFOVZoomFactor; // amount of fov zoom applied to camera when zeroing in on an object
- F32 mCameraCurrentFOVZoomFactor; // interpolated fov zoom
- F32 mCameraFOVDefault; // default field of view that is basis for FOV zoom effect
- LLVector3d mCameraFocusOffset; // offset from focus point in build mode
- LLVector3d mCameraFocusOffsetTarget; // target towards which we are lerping the camera's focus offset
- LLVector3 mCameraOffsetDefault; // default third-person camera offset
- LLVector4 mCameraCollidePlane; // colliding plane for camera
- F32 mCurrentCameraDistance; // current camera offset from avatar
- F32 mTargetCameraDistance; // target camera offset from avatar
- F32 mCameraZoomFraction; // mousewheel driven fraction of zoom
- LLVector3 mCameraLag; // third person camera lag
- LLVector3 mThirdPersonHeadOffset; // head offset for third person camera position
- LLVector3 mCameraPositionAgent; // camera position in agent coordinates
- LLVector3 mCameraVirtualPositionAgent; // camera virtual position (target) before performing FOV zoom
- BOOL mSitCameraEnabled; // use provided camera information when sitting?
- LLVector3 mSitCameraPos; // root relative camera pos when sitting
- LLVector3 mSitCameraFocus; // root relative camera target when sitting
- LLVector3d mCameraSmoothingLastPositionGlobal;
- LLVector3d mCameraSmoothingLastPositionAgent;
- BOOL mCameraSmoothingStop;
+public:
+ const LLUUID &getGroupID() const { return mGroupID; }
+ // Get group information by group_id, or FALSE if not in group.
+ BOOL getGroupData(const LLUUID& group_id, LLGroupData& data) const;
+ // Get just the agent's contribution to the given group.
+ S32 getGroupContribution(const LLUUID& group_id) const;
+ // Update internal datastructures and update the server.
+ BOOL setGroupContribution(const LLUUID& group_id, S32 contribution);
+ BOOL setUserGroupFlags(const LLUUID& group_id, BOOL accept_notices, BOOL list_in_profile);
+ const std::string &getGroupName() const { return mGroupName; }
+private:
+ std::string mGroupName;
+ LLUUID mGroupID;
- LLVector3 mCameraUpVector; // camera's up direction in world coordinates (determines the 'roll' of the view)
+ //--------------------------------------------------------------------
+ // Group Membership
+ //--------------------------------------------------------------------
+public:
+ // Checks against all groups in the entire agent group list.
+ BOOL isInGroup(const LLUUID& group_id) const;
+protected:
+ // Only used for building titles.
+ BOOL isGroupMember() const { return !mGroupID.isNull(); }
+public:
+ LLDynamicArray<LLGroupData> mGroups;
- LLPointer<LLViewerObject> mSitCameraReferenceObject; // object to which camera is related when sitting
+ //--------------------------------------------------------------------
+ // Group Title
+ //--------------------------------------------------------------------
+public:
+ void setHideGroupTitle(BOOL hide) { mHideGroupTitle = hide; }
+ BOOL isGroupTitleHidden() const { return mHideGroupTitle; }
+private:
+ std::string mGroupTitle; // Honorific, like "Sir"
+ BOOL mHideGroupTitle;
- BOOL mFocusOnAvatar;
- LLVector3d mFocusGlobal;
- LLVector3d mFocusTargetGlobal;
- LLPointer<LLViewerObject> mFocusObject;
- F32 mFocusObjectDist;
- LLVector3 mFocusObjectOffset;
- F32 mFocusDotRadius; // meters
- BOOL mTrackFocusObject;
- F32 mUIOffset;
+ //--------------------------------------------------------------------
+ // Group Powers
+ //--------------------------------------------------------------------
+public:
+ BOOL hasPowerInGroup(const LLUUID& group_id, U64 power) const;
+ BOOL hasPowerInActiveGroup(const U64 power) const;
+ U64 getPowerInGroup(const LLUUID& group_id) const;
+ U64 mGroupPowers;
- LLCoordFrame mFrameAgent; // Agent position and view, agent-region coordinates
+ //--------------------------------------------------------------------
+ // Friends
+ //--------------------------------------------------------------------
+public:
+ void observeFriends();
+ void friendsChanged();
+private:
+ LLFriendObserver* mFriendObserver;
+ std::set<LLUUID> mProxyForAgents;
- BOOL mIsBusy;
+/** Groups
+ ** **
+ *******************************************************************************/
- S32 mAtKey; // Either 1, 0, or -1... indicates that movement-key is pressed
- S32 mWalkKey; // like AtKey, but causes less forward thrust
- S32 mLeftKey;
- S32 mUpKey;
- F32 mYawKey;
- S32 mPitchKey;
+/********************************************************************************
+ ** **
+ ** MESSAGING
+ **/
- F32 mOrbitLeftKey;
- F32 mOrbitRightKey;
- F32 mOrbitUpKey;
- F32 mOrbitDownKey;
- F32 mOrbitInKey;
- F32 mOrbitOutKey;
+ //--------------------------------------------------------------------
+ // Send
+ //--------------------------------------------------------------------
+public:
+ void sendMessage(); // Send message to this agent's region
+ void sendReliableMessage();
+ void sendAgentSetAppearance();
+ void sendAgentDataUpdateRequest();
+ void sendAgentUserInfoRequest();
+ // IM to Email and Online visibility
+ void sendAgentUpdateUserInfo(bool im_to_email, const std::string& directory_visibility);
- F32 mPanUpKey;
- F32 mPanDownKey;
- F32 mPanLeftKey;
- F32 mPanRightKey;
- F32 mPanInKey;
- F32 mPanOutKey;
+ //--------------------------------------------------------------------
+ // Receive
+ //--------------------------------------------------------------------
+public:
+ static void processAgentDataUpdate(LLMessageSystem *msg, void **);
+ static void processAgentGroupDataUpdate(LLMessageSystem *msg, void **);
+ static void processAgentDropGroup(LLMessageSystem *msg, void **);
+ static void processScriptControlChange(LLMessageSystem *msg, void **);
+ static void processAgentCachedTextureResponse(LLMessageSystem *mesgsys, void **user_data);
+
+/** Messaging
+ ** **
+ *******************************************************************************/
- U32 mControlFlags; // replacement for the mFooKey's
- BOOL mbFlagsDirty;
- BOOL mbFlagsNeedReset; // HACK for preventing incorrect flags sent when crossing region boundaries
+/********************************************************************************
+ ** **
+ ** DEBUGGING
+ **/
- BOOL mbJump;
+public:
+ static void dumpGroupInfo();
+ static void clearVisualParams(void *);
+ friend std::ostream& operator<<(std::ostream &s, const LLAgent &sphere);
- BOOL mAutoPilot;
- BOOL mAutoPilotFlyOnStop;
- LLVector3d mAutoPilotTargetGlobal;
- F32 mAutoPilotStopDistance;
- BOOL mAutoPilotUseRotation;
- LLVector3 mAutoPilotTargetFacing;
- F32 mAutoPilotTargetDist;
- S32 mAutoPilotNoProgressFrameCount;
- F32 mAutoPilotRotationThreshold;
- std::string mAutoPilotBehaviorName;
- void (*mAutoPilotFinishedCallback)(BOOL, void *);
- void* mAutoPilotCallbackData;
- LLUUID mLeaderID;
+/** Debugging
+ ** **
+ *******************************************************************************/
- std::set<LLUUID> mProxyForAgents;
+};
- LLColor4 mEffectColor;
+extern LLAgent gAgent;
- BOOL mHaveHomePosition;
- U64 mHomeRegionHandle;
- LLVector3 mHomePosRegion;
- LLFrameTimer mChatTimer;
- LLUUID mLastChatterID;
- F32 mNearChatRadius;
+inline bool operator==(const LLGroupData &a, const LLGroupData &b)
+{
+ return (a.mID == b.mID);
+}
- LLFrameTimer mFidgetTimer;
- LLFrameTimer mFocusObjectFadeTimer;
- F32 mNextFidgetTime;
- S32 mCurrentFidget;
- BOOL mFirstLogin;
- BOOL mGenderChosen;
+class LLAgentQueryManager
+{
+ friend class LLAgent;
+ friend class LLAgentWearables;
- //--------------------------------------------------------------------
- // Wearables
- //--------------------------------------------------------------------
- struct LLWearableEntry
- {
- LLWearableEntry() : mItemID( LLUUID::null ), mWearable( NULL ) {}
-
- LLUUID mItemID; // ID of the inventory item in the agent's inventory.
- LLWearable* mWearable;
- };
- LLWearableEntry mWearableEntry[ WT_COUNT ];
- U32 mAgentWearablesUpdateSerialNum;
- BOOL mWearablesLoaded;
- S32 mTextureCacheQueryID;
- U32 mAppearanceSerialNum;
- LLAnimPauseRequest mPauseRequest;
-
- class createStandardWearablesAllDoneCallback : public LLRefCount
- {
- protected:
- ~createStandardWearablesAllDoneCallback();
- };
- class sendAgentWearablesUpdateCallback : public LLRefCount
- {
- protected:
- ~sendAgentWearablesUpdateCallback();
- };
-
- class addWearableToAgentInventoryCallback : public LLInventoryCallback
- {
- public:
- enum {
- CALL_NONE = 0,
- CALL_UPDATE = 1,
- CALL_RECOVERDONE = 2,
- CALL_CREATESTANDARDDONE = 4,
- CALL_MAKENEWOUTFITDONE = 8
- } EType;
-
- /**
- * @brief Construct a callback for dealing with the wearables.
- *
- * Would like to pass the agent in here, but we can't safely
- * count on it being around later. Just use gAgent directly.
- * @param cb callback to execute on completion (??? unused ???)
- * @param index Index for the wearable in the agent
- * @param wearable The wearable data.
- * @param todo Bitmask of actions to take on completion.
- */
- addWearableToAgentInventoryCallback(
- LLPointer<LLRefCount> cb,
- S32 index,
- LLWearable* wearable,
- U32 todo = CALL_NONE);
- virtual void fire(const LLUUID& inv_item);
-
- private:
- S32 mIndex;
- LLWearable* mWearable;
- U32 mTodo;
- LLPointer<LLRefCount> mCB;
- };
-
- LLFriendObserver* mFriendObserver;
+public:
+ LLAgentQueryManager();
+ virtual ~LLAgentQueryManager();
+
+ BOOL hasNoPendingQueries() const { return getNumPendingQueries() == 0; }
+ S32 getNumPendingQueries() const { return mNumPendingQueries; }
+private:
+ S32 mNumPendingQueries;
+ S32 mWearablesCacheQueryID;
+ U32 mUpdateSerialNum;
+ S32 mActiveCacheQueries[LLVOAvatarDefines::BAKED_NUM_INDICES];
};
-extern LLAgent gAgent;
+extern LLAgentQueryManager gAgentQueryManager;
#endif
diff --git a/indra/newview/llagentpilot.cpp b/indra/newview/llagentpilot.cpp
index 95595c87ab..8ffb97d8fc 100644
--- a/indra/newview/llagentpilot.cpp
+++ b/indra/newview/llagentpilot.cpp
@@ -44,6 +44,7 @@
LLAgentPilot gAgentPilot;
BOOL LLAgentPilot::sLoop = TRUE;
+BOOL LLAgentPilot::sReplaySession = FALSE;
LLAgentPilot::LLAgentPilot() :
mNumRuns(-1),
@@ -176,6 +177,11 @@ void LLAgentPilot::stopPlayback()
mTimer.reset();
gAgent.stopAutoPilot();
}
+
+ if (sReplaySession)
+ {
+ LLAppViewer::instance()->forceQuit();
+ }
}
void LLAgentPilot::updateTarget()
diff --git a/indra/newview/llagentpilot.h b/indra/newview/llagentpilot.h
index 0ad4772f68..dc034398a7 100644
--- a/indra/newview/llagentpilot.h
+++ b/indra/newview/llagentpilot.h
@@ -70,6 +70,7 @@ public:
static void startPlayback(void *);
static void stopPlayback(void *);
static BOOL sLoop;
+ static BOOL sReplaySession;
S32 mNumRuns;
BOOL mQuitAfterRuns;
diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp
new file mode 100644
index 0000000000..1c756b1441
--- /dev/null
+++ b/indra/newview/llagentwearables.cpp
@@ -0,0 +1,1584 @@
+/**
+ * @file llagentwearables.cpp
+ * @brief LLAgentWearables class implementation
+ *
+ * $LicenseInfo:firstyear=2001&license=viewergpl$
+ *
+ * Copyright (c) 2001-2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llagent.h"
+#include "llagentwearables.h"
+
+#include "llfloatercustomize.h"
+#include "llinventoryview.h"
+#include "llinventorymodel.h"
+#include "llnotify.h"
+#include "llviewerregion.h"
+#include "llvoavatarself.h"
+#include "llwearable.h"
+#include "llwearablelist.h"
+
+LLAgentWearables gAgentWearables;
+
+BOOL LLAgentWearables::mInitialWearablesUpdateReceived = FALSE;
+
+using namespace LLVOAvatarDefines;
+
+void LLAgentWearables::dump()
+{
+ llinfos << "LLAgentWearablesDump" << llendl;
+ for (S32 i = 0; i < WT_COUNT; i++)
+ {
+ U32 count = getWearableCount((EWearableType)i);
+ llinfos << "Type: " << i << " count " << count << llendl;
+ for (U32 j=0; j<count; j++)
+ {
+ LLWearableInv* wearable_entry = getWearableInv((EWearableType)i,j);
+ if (wearable_entry == NULL)
+ {
+ llinfos << " " << j << " NULL entry" << llendl;
+ continue;
+ }
+ if (wearable_entry->mWearable == NULL)
+ {
+ llinfos << " " << j << " NULL wearable" << llendl;
+ continue;
+ }
+ llinfos << " " << j << " Name " << wearable_entry->mWearable->getName()
+ << " description " << wearable_entry->mWearable->getDescription() << llendl;
+
+ }
+ }
+}
+
+// MULTI-WEARABLE: debugging
+struct LLAgentDumper
+{
+ LLAgentDumper(std::string name):
+ mName(name)
+ {
+ llinfos << llendl;
+ llinfos << "LLAgentDumper " << mName << llendl;
+ gAgentWearables.dump();
+ }
+
+ ~LLAgentDumper()
+ {
+ llinfos << llendl;
+ llinfos << "~LLAgentDumper " << mName << llendl;
+ gAgentWearables.dump();
+ }
+
+ std::string mName;
+};
+
+LLAgentWearables::LLAgentWearables() :
+ mWearablesLoaded(FALSE),
+ mAvatarObject(NULL)
+{
+ // MULTI-WEARABLE: TODO remove null entries.
+ for (U32 i = 0; i < WT_COUNT; i++)
+ {
+ mWearableDatas[(EWearableType)i].push_back(new LLWearableInv);
+ }
+}
+
+LLAgentWearables::~LLAgentWearables()
+{
+ cleanup();
+}
+
+void LLAgentWearables::cleanup()
+{
+ for (wearableentry_map_t::iterator iter = mWearableDatas.begin();
+ iter != mWearableDatas.end();
+ iter++)
+ {
+ wearableentry_vec_t &wearables = iter->second;
+ for (U32 i = 0; i < wearables.size(); i++)
+ {
+ LLWearableInv *wearable = wearables[i];
+ delete wearable;
+ wearables[i] = NULL;
+ }
+ }
+ mAvatarObject = NULL;
+}
+
+void LLAgentWearables::setAvatarObject(LLVOAvatarSelf *avatar)
+{
+ mAvatarObject = avatar;
+ if (avatar)
+ {
+ sendAgentWearablesRequest();
+ }
+}
+
+// wearables
+LLAgentWearables::createStandardWearablesAllDoneCallback::~createStandardWearablesAllDoneCallback()
+{
+ gAgentWearables.createStandardWearablesAllDone();
+}
+
+LLAgentWearables::sendAgentWearablesUpdateCallback::~sendAgentWearablesUpdateCallback()
+{
+ gAgentWearables.sendAgentWearablesUpdate();
+}
+
+/**
+ * @brief Construct a callback for dealing with the wearables.
+ *
+ * Would like to pass the agent in here, but we can't safely
+ * count on it being around later. Just use gAgent directly.
+ * @param cb callback to execute on completion (??? unused ???)
+ * @param type Type for the wearable in the agent
+ * @param wearable The wearable data.
+ * @param todo Bitmask of actions to take on completion.
+ */
+LLAgentWearables::addWearableToAgentInventoryCallback::addWearableToAgentInventoryCallback(
+ LLPointer<LLRefCount> cb, S32 type, U32 index, LLWearable* wearable, U32 todo) :
+ mType(type),
+ mIndex(index),
+ mWearable(wearable),
+ mTodo(todo),
+ mCB(cb)
+{
+}
+
+void LLAgentWearables::addWearableToAgentInventoryCallback::fire(const LLUUID& inv_item)
+{
+ if (inv_item.isNull())
+ return;
+
+ gAgentWearables.addWearabletoAgentInventoryDone(mType, mIndex, inv_item, mWearable);
+
+ if (mTodo & CALL_UPDATE)
+ {
+ gAgentWearables.sendAgentWearablesUpdate();
+ }
+ if (mTodo & CALL_RECOVERDONE)
+ {
+ gAgentWearables.recoverMissingWearableDone();
+ }
+ /*
+ * Do this for every one in the loop
+ */
+ if (mTodo & CALL_CREATESTANDARDDONE)
+ {
+ gAgentWearables.createStandardWearablesDone(mType, mIndex);
+ }
+ if (mTodo & CALL_MAKENEWOUTFITDONE)
+ {
+ gAgentWearables.makeNewOutfitDone(mType, mIndex);
+ }
+}
+
+void LLAgentWearables::addWearabletoAgentInventoryDone(const S32 type,
+ const U32 index,
+ const LLUUID& item_id,
+ LLWearable* wearable)
+{
+ if (item_id.isNull())
+ return;
+
+ LLWearableInv* wearable_entry = getWearableInv((EWearableType)type, index);
+
+ LLUUID old_item_id = wearable_entry->mItemID;
+ wearable_entry->mItemID = item_id;
+ wearable_entry->mWearable = wearable;
+ if (old_item_id.notNull())
+ gInventory.addChangedMask(LLInventoryObserver::LABEL, old_item_id);
+ gInventory.addChangedMask(LLInventoryObserver::LABEL, item_id);
+ LLViewerInventoryItem* item = gInventory.getItem(item_id);
+ if (item && wearable)
+ {
+ // We're changing the asset id, so we both need to set it
+ // locally via setAssetUUID() and via setTransactionID() which
+ // will be decoded on the server. JC
+ item->setAssetUUID(wearable->getID());
+ item->setTransactionID(wearable->getTransactionID());
+ gInventory.addChangedMask(LLInventoryObserver::INTERNAL, item_id);
+ item->updateServer(FALSE);
+ }
+ gInventory.notifyObservers();
+}
+
+void LLAgentWearables::sendAgentWearablesUpdate()
+{
+ // MULTI-WEARABLE: call i "type" or something.
+ // First make sure that we have inventory items for each wearable
+ for (S32 i=0; i < WT_COUNT; ++i)
+ {
+ for (U32 j=0; j < getWearableCount((EWearableType)i); j++)
+ {
+ LLWearableInv* wearable_entry = getWearableInv((EWearableType)i,j);
+ LLWearable* wearable = wearable_entry->mWearable;
+ if (wearable)
+ {
+ if (wearable_entry->mItemID.isNull())
+ {
+ LLPointer<LLInventoryCallback> cb =
+ new addWearableToAgentInventoryCallback(
+ LLPointer<LLRefCount>(NULL),
+ i,
+ j,
+ wearable,
+ addWearableToAgentInventoryCallback::CALL_NONE);
+ addWearableToAgentInventory(cb, wearable);
+ }
+ else
+ {
+ gInventory.addChangedMask(LLInventoryObserver::LABEL,
+ wearable_entry->mItemID);
+ }
+ }
+ }
+ }
+
+ // Then make sure the inventory is in sync with the avatar.
+ gInventory.notifyObservers();
+
+ // Send the AgentIsNowWearing
+ gMessageSystem->newMessageFast(_PREHASH_AgentIsNowWearing);
+
+ gMessageSystem->nextBlockFast(_PREHASH_AgentData);
+ gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
+ gMessageSystem->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
+
+ lldebugs << "sendAgentWearablesUpdate()" << llendl;
+ // MULTI-WEARABLE: update for multi-wearables after server-side support is in.
+ for (S32 i=0; i < WT_COUNT; ++i)
+ {
+ gMessageSystem->nextBlockFast(_PREHASH_WearableData);
+
+ U8 type_u8 = (U8)i;
+ gMessageSystem->addU8Fast(_PREHASH_WearableType, type_u8);
+
+ // MULTI-WEARABLE: TODO: hacked index to 0, needs to loop over all once messages support this.
+ LLWearableInv* wearable_entry = getWearableInv((EWearableType)i, 0);
+ LLWearable* wearable = wearable_entry->mWearable;
+ if (wearable)
+ {
+ //llinfos << "Sending wearable " << wearable->getName() << llendl;
+ gMessageSystem->addUUIDFast(_PREHASH_ItemID, wearable_entry->mItemID);
+ }
+ else
+ {
+ //llinfos << "Not wearing wearable type " << LLWearableDictionary::getInstance()->getWearable((EWearableType)i) << llendl;
+ gMessageSystem->addUUIDFast(_PREHASH_ItemID, LLUUID::null);
+ }
+
+ lldebugs << " " << LLWearableDictionary::getTypeLabel((EWearableType)i) << ": " << (wearable ? wearable->getID() : LLUUID::null) << llendl;
+ }
+ gAgent.sendReliableMessage();
+}
+
+// MULTI-WEARABLE: add index.
+void LLAgentWearables::saveWearable(const EWearableType type, const U32 index, BOOL send_update)
+{
+ LLWearableInv* wearable_entry = getWearableInv(type, index);
+ LLWearable* old_wearable = wearable_entry ? wearable_entry->mWearable : NULL;
+ if (old_wearable && (old_wearable->isDirty() || old_wearable->isOldVersion()))
+ {
+ LLWearable* new_wearable = LLWearableList::instance().createCopyFromAvatar(old_wearable);
+ wearable_entry->mWearable = new_wearable;
+
+ LLInventoryItem* item = gInventory.getItem(wearable_entry->mItemID);
+ if (item)
+ {
+ // Update existing inventory item
+ LLPointer<LLViewerInventoryItem> template_item =
+ new LLViewerInventoryItem(item->getUUID(),
+ item->getParentUUID(),
+ item->getPermissions(),
+ new_wearable->getID(),
+ new_wearable->getAssetType(),
+ item->getInventoryType(),
+ item->getName(),
+ item->getDescription(),
+ item->getSaleInfo(),
+ item->getFlags(),
+ item->getCreationDate());
+ template_item->setTransactionID(new_wearable->getTransactionID());
+ template_item->updateServer(FALSE);
+ gInventory.updateItem(template_item);
+ }
+ else
+ {
+ // Add a new inventory item (shouldn't ever happen here)
+ U32 todo = addWearableToAgentInventoryCallback::CALL_NONE;
+ if (send_update)
+ {
+ todo |= addWearableToAgentInventoryCallback::CALL_UPDATE;
+ }
+ LLPointer<LLInventoryCallback> cb =
+ new addWearableToAgentInventoryCallback(
+ LLPointer<LLRefCount>(NULL),
+ (S32)type,
+ index,
+ new_wearable,
+ todo);
+ addWearableToAgentInventory(cb, new_wearable);
+ return;
+ }
+
+ gAgent.getAvatarObject()->wearableUpdated( type );
+
+ if (send_update)
+ {
+ sendAgentWearablesUpdate();
+ }
+ }
+}
+
+// MULTI-WEARABLE: add index
+void LLAgentWearables::saveWearableAs(const EWearableType type,
+ const U32 index,
+ const std::string& new_name,
+ BOOL save_in_lost_and_found)
+{
+ if (!isWearableCopyable(type, index))
+ {
+ llwarns << "LLAgent::saveWearableAs() not copyable." << llendl;
+ return;
+ }
+ LLWearableInv* wearable_entry = getWearableInv(type, index);
+ LLWearable* old_wearable = wearable_entry->mWearable;
+ if (!old_wearable)
+ {
+ llwarns << "LLAgent::saveWearableAs() no old wearable." << llendl;
+ return;
+ }
+
+ LLInventoryItem* item = gInventory.getItem(wearable_entry->mItemID);
+ if (!item)
+ {
+ llwarns << "LLAgent::saveWearableAs() no inventory item." << llendl;
+ return;
+ }
+ std::string trunc_name(new_name);
+ LLStringUtil::truncate(trunc_name, DB_INV_ITEM_NAME_STR_LEN);
+ LLWearable* new_wearable = LLWearableList::instance().createCopyFromAvatar(
+ old_wearable,
+ trunc_name);
+ LLPointer<LLInventoryCallback> cb =
+ new addWearableToAgentInventoryCallback(
+ LLPointer<LLRefCount>(NULL),
+ type,
+ index,
+ new_wearable,
+ addWearableToAgentInventoryCallback::CALL_UPDATE);
+ LLUUID category_id;
+ if (save_in_lost_and_found)
+ {
+ category_id = gInventory.findCategoryUUIDForType(
+ LLAssetType::AT_LOST_AND_FOUND);
+ }
+ else
+ {
+ // put in same folder as original
+ category_id = item->getParentUUID();
+ }
+
+ copy_inventory_item(
+ gAgent.getID(),
+ item->getPermissions().getOwner(),
+ item->getUUID(),
+ category_id,
+ new_name,
+ cb);
+}
+
+void LLAgentWearables::revertWearable(const EWearableType type, const U32 index)
+{
+ LLWearableInv* wearable_entry = getWearableInv(type, index);
+ LLWearable* wearable = wearable_entry->mWearable;
+ if (wearable)
+ {
+ wearable->writeToAvatar(TRUE);
+ }
+ gAgent.sendAgentSetAppearance();
+}
+
+void LLAgentWearables::saveAllWearables()
+{
+ //if (!gInventory.isLoaded())
+ //{
+ // return;
+ //}
+
+ for (S32 i=0; i < WT_COUNT; i++)
+ {
+ for (U32 j=0; j < getWearableCount((EWearableType)i); j++)
+ saveWearable((EWearableType)i, j, FALSE);
+ }
+ sendAgentWearablesUpdate();
+}
+
+// Called when the user changes the name of a wearable inventory item that is currently being worn.
+void LLAgentWearables::setWearableName(const LLUUID& item_id, const std::string& new_name)
+{
+ for (S32 i=0; i < WT_COUNT; i++)
+ {
+ for (U32 j=0; j < getWearableCount((EWearableType)i); j++)
+ {
+ LLWearableInv* wearable_entry = getWearableInv((EWearableType)i,j);
+ if (wearable_entry->mItemID == item_id)
+ {
+ LLWearable* old_wearable = wearable_entry->mWearable;
+ llassert(old_wearable);
+
+ std::string old_name = old_wearable->getName();
+ old_wearable->setName(new_name);
+ LLWearable* new_wearable = LLWearableList::instance().createCopy(old_wearable);
+ LLInventoryItem* item = gInventory.getItem(item_id);
+ if (item)
+ {
+ new_wearable->setPermissions(item->getPermissions());
+ }
+ old_wearable->setName(old_name);
+
+ wearable_entry->mWearable = new_wearable;
+ sendAgentWearablesUpdate();
+ break;
+ }
+ }
+ }
+}
+
+
+BOOL LLAgentWearables::isWearableModifiable(EWearableType type, U32 index) const
+{
+ LLUUID item_id = getWearableItem(type, index);
+ if (!item_id.isNull())
+ {
+ LLInventoryItem* item = gInventory.getItem(item_id);
+ if (item && item->getPermissions().allowModifyBy(gAgent.getID(),
+ gAgent.getGroupID()))
+ {
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+BOOL LLAgentWearables::isWearableCopyable(EWearableType type, U32 index) const
+{
+ LLUUID item_id = getWearableItem(type, index);
+ if (!item_id.isNull())
+ {
+ LLInventoryItem* item = gInventory.getItem(item_id);
+ if (item && item->getPermissions().allowCopyBy(gAgent.getID(),
+ gAgent.getGroupID()))
+ {
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+/*
+ U32 LLAgentWearables::getWearablePermMask(EWearableType type)
+ {
+ LLUUID item_id = getWearableItem(type);
+ if (!item_id.isNull())
+ {
+ LLInventoryItem* item = gInventory.getItem(item_id);
+ if (item)
+ {
+ return item->getPermissions().getMaskOwner();
+ }
+ }
+ return PERM_NONE;
+ }
+*/
+
+LLInventoryItem* LLAgentWearables::getWearableInventoryItem(EWearableType type, U32 index)
+{
+ LLUUID item_id = getWearableItem(type,index);
+ LLInventoryItem* item = NULL;
+ if (item_id.notNull())
+ {
+ item = gInventory.getItem(item_id);
+ }
+ return item;
+}
+
+LLWearable* LLAgentWearables::getWearableFromWearableItem(const LLUUID& item_id) const
+{
+ for (S32 i=0; i < WT_COUNT; i++)
+ {
+ for (U32 j=0; j < getWearableCount((EWearableType)i); j++)
+ {
+ const LLWearableInv* wearable_entry = getWearableInv((EWearableType)i, j);
+ if (wearable_entry->mItemID == item_id)
+ {
+ return wearable_entry->mWearable;
+ }
+ }
+ }
+ return NULL;
+}
+
+void LLAgentWearables::sendAgentWearablesRequest()
+{
+ gMessageSystem->newMessageFast(_PREHASH_AgentWearablesRequest);
+ gMessageSystem->nextBlockFast(_PREHASH_AgentData);
+ gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
+ gMessageSystem->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
+ gAgent.sendReliableMessage();
+}
+
+// MULTI-WEARABLE: update for multiple items per type.
+// Used to enable/disable menu items.
+// static
+BOOL LLAgentWearables::selfHasWearable(void* userdata)
+{
+ EWearableType type = (EWearableType)(intptr_t)userdata;
+ // MULTI-WEARABLE: TODO could be getWearableCount > 0, once null entries have been eliminated.
+ return gAgentWearables.getWearableInv(type,0)->mWearable != NULL;
+}
+
+const LLAgentWearables::LLWearableInv LLAgentWearables::s_null_wearable;
+
+LLWearable* LLAgentWearables::getWearable(const EWearableType type, U32 index)
+{
+ LLWearableInv* inv = getWearableInv(type,index);
+ return inv->mWearable;
+}
+
+const LLWearable* LLAgentWearables::getWearable(const EWearableType type, U32 index) const
+{
+ const LLWearableInv* inv = getWearableInv(type,index);
+ return inv->mWearable;
+}
+
+//MULTI-WEARABLE: this will give wrong values until we get rid of the "always one empty object" scheme.
+U32 LLAgentWearables::getWearableCount(const EWearableType type) const
+{
+ wearableentry_map_t::const_iterator wearable_iter = mWearableDatas.find(type);
+ if (wearable_iter == mWearableDatas.end())
+ {
+ return 0;
+ }
+ const wearableentry_vec_t& wearable_vec = wearable_iter->second;
+ return wearable_vec.size();
+}
+
+LLAgentWearables::LLWearableInv* LLAgentWearables::getWearableInv(const EWearableType type, U32 index)
+{
+ wearableentry_map_t::iterator wearable_iter = mWearableDatas.find(type);
+ if (wearable_iter == mWearableDatas.end())
+ {
+ return NULL;
+ }
+ wearableentry_vec_t& wearable_vec = wearable_iter->second;
+ if (index>=wearable_vec.size())
+ {
+ return NULL;
+ }
+ else
+ {
+ return wearable_vec[index];
+ }
+}
+
+const LLAgentWearables::LLWearableInv* LLAgentWearables::getWearableInv(const EWearableType type, U32 index) const
+{
+ wearableentry_map_t::const_iterator wearable_iter = mWearableDatas.find(type);
+ if (wearable_iter == mWearableDatas.end()) return &s_null_wearable;
+ const wearableentry_vec_t& wearable_vec = wearable_iter->second;
+ if (index>=wearable_vec.size())
+ return &s_null_wearable;
+ else
+ return wearable_vec[index];
+}
+
+const LLUUID& LLAgentWearables::getWearableItem(EWearableType type, U32 index) const
+{
+ return getWearableInv(type,index)->mItemID;
+}
+
+
+BOOL LLAgentWearables::isWearingItem(const LLUUID& item_id) const
+{
+ return (getWearableFromWearableItem(item_id) != NULL);
+}
+
+// MULTI-WEARABLE: update for multiple
+// static
+void LLAgentWearables::processAgentInitialWearablesUpdate(LLMessageSystem* mesgsys, void** user_data)
+{
+ // We should only receive this message a single time. Ignore subsequent AgentWearablesUpdates
+ // that may result from AgentWearablesRequest having been sent more than once.
+ if (mInitialWearablesUpdateReceived)
+ return;
+ mInitialWearablesUpdateReceived = true;
+
+ LLUUID agent_id;
+ gMessageSystem->getUUIDFast(_PREHASH_AgentData, _PREHASH_AgentID, agent_id);
+
+ LLVOAvatar* avatar = gAgent.getAvatarObject();
+ if (avatar && (agent_id == avatar->getID()))
+ {
+ gMessageSystem->getU32Fast(_PREHASH_AgentData, _PREHASH_SerialNum, gAgentQueryManager.mUpdateSerialNum);
+
+ S32 num_wearables = gMessageSystem->getNumberOfBlocksFast(_PREHASH_WearableData);
+ if (num_wearables < 4)
+ {
+ // Transitional state. Avatars should always have at least their body parts (hair, eyes, shape and skin).
+ // The fact that they don't have any here (only a dummy is sent) implies that this account existed
+ // before we had wearables, or that the database has gotten messed up.
+ return;
+ }
+
+ //lldebugs << "processAgentInitialWearablesUpdate()" << llendl;
+ // Add wearables
+ LLUUID asset_id_array[WT_COUNT];
+ // MULTI-WEARABLE: TODO: update once messages change. Currently use results to populate the zeroth element.
+ for (S32 i=0; i < num_wearables; i++)
+ {
+ U8 type_u8 = 0;
+ gMessageSystem->getU8Fast(_PREHASH_WearableData, _PREHASH_WearableType, type_u8, i);
+ if (type_u8 >= WT_COUNT)
+ {
+ continue;
+ }
+ const EWearableType type = (EWearableType) type_u8;
+
+ LLUUID item_id;
+ gMessageSystem->getUUIDFast(_PREHASH_WearableData, _PREHASH_ItemID, item_id, i);
+
+ LLUUID asset_id;
+ gMessageSystem->getUUIDFast(_PREHASH_WearableData, _PREHASH_AssetID, asset_id, i);
+ if (asset_id.isNull())
+ {
+ LLWearable::removeFromAvatar(type, FALSE);
+ }
+ else
+ {
+ LLAssetType::EType asset_type = LLWearableDictionary::getAssetType(type);
+ if (asset_type == LLAssetType::AT_NONE)
+ {
+ continue;
+ }
+ // MULTI-WEARABLE: TODO FIXME: assumes zeroth element always exists and can be safely written to.
+ LLWearableInv* wearable_entry = gAgentWearables.getWearableInv(type,0);
+ wearable_entry->mItemID = item_id;
+ asset_id_array[type] = asset_id;
+ }
+
+ lldebugs << " " << LLWearableDictionary::getTypeLabel(type) << llendl;
+ }
+
+ // now that we have the asset ids...request the wearable assets
+ for (S32 i = 0; i < WT_COUNT; i++)
+ {
+ // MULTI-WEARABLE: TODO: update once messages change. Currently use results to populate the zeroth element.
+ LLWearableInv* wearable_entry = gAgentWearables.getWearableInv((EWearableType)i, 0);
+ if (!wearable_entry->mItemID.isNull())
+ {
+ LLWearableList::instance().getAsset(asset_id_array[i],
+ LLStringUtil::null,
+ LLWearableDictionary::getAssetType((EWearableType) i),
+ onInitialWearableAssetArrived, (void*)(intptr_t)i);
+ }
+ }
+ }
+}
+
+// A single wearable that the avatar was wearing on start-up has arrived from the database.
+// static
+void LLAgentWearables::onInitialWearableAssetArrived(LLWearable* wearable, void* userdata)
+{
+ const EWearableType type = (EWearableType)(intptr_t)userdata;
+
+ LLVOAvatarSelf* avatar = gAgent.getAvatarObject();
+ if (!avatar)
+ {
+ return;
+ }
+
+ if (wearable)
+ {
+ llassert(type == wearable->getType());
+ // MULTI-WEARABLE: is this always zeroth element? Change sometime.
+ LLWearableInv* wearable_entry = gAgentWearables.getWearableInv(type,0);
+ wearable_entry->mWearable = wearable;
+
+ // disable composites if initial textures are baked
+ avatar->setupComposites();
+ gAgentWearables.queryWearableCache();
+
+ wearable->writeToAvatar(FALSE);
+ avatar->setCompositeUpdatesEnabled(TRUE);
+ gInventory.addChangedMask(LLInventoryObserver::LABEL, wearable_entry->mItemID);
+ }
+ else
+ {
+ // Somehow the asset doesn't exist in the database.
+ // MULTI-WEARABLE: assuming zeroth elt
+ gAgentWearables.recoverMissingWearable(type,0);
+ }
+
+ gInventory.notifyObservers();
+
+ // Have all the wearables that the avatar was wearing at log-in arrived?
+ // MULTI-WEARABLE: update when multiple wearables can arrive per type.
+ if (!gAgentWearables.mWearablesLoaded)
+ {
+ gAgentWearables.mWearablesLoaded = TRUE;
+ for (S32 i = 0; i < WT_COUNT; i++)
+ {
+ LLWearableInv* wearable_entry = gAgentWearables.getWearableInv((EWearableType)i,0);
+ if (!wearable_entry->mItemID.isNull() && !wearable_entry->mWearable)
+ {
+ gAgentWearables.mWearablesLoaded = FALSE;
+ break;
+ }
+ }
+ }
+
+ if (gAgentWearables.mWearablesLoaded)
+ {
+
+ // Can't query cache until all wearables have arrived, so calling this earlier is a no-op.
+ gAgentWearables.queryWearableCache();
+
+ // Make sure that the server's idea of the avatar's wearables actually match the wearables.
+ gAgent.sendAgentSetAppearance();
+
+ // Check to see if there are any baked textures that we hadn't uploaded before we logged off last time.
+ // If there are any, schedule them to be uploaded as soon as the layer textures they depend on arrive.
+ if (gAgent.cameraCustomizeAvatar())
+ {
+ avatar->requestLayerSetUploads();
+ }
+ }
+}
+
+// Normally, all wearables referred to "AgentWearablesUpdate" will correspond to actual assets in the
+// database. If for some reason, we can't load one of those assets, we can try to reconstruct it so that
+// the user isn't left without a shape, for example. (We can do that only after the inventory has loaded.)
+void LLAgentWearables::recoverMissingWearable(const EWearableType type, U32 index)
+{
+ // Try to recover by replacing missing wearable with a new one.
+ LLNotifications::instance().add("ReplacedMissingWearable");
+ lldebugs << "Wearable " << LLWearableDictionary::getTypeLabel(type) << " could not be downloaded. Replaced inventory item with default wearable." << llendl;
+ LLWearable* new_wearable = LLWearableList::instance().createNewWearable(type);
+
+ S32 type_s32 = (S32) type;
+ LLWearableInv* wearable_entry = getWearableInv(type, index);
+ wearable_entry->mWearable = new_wearable;
+ new_wearable->writeToAvatar(TRUE);
+
+ // Add a new one in the lost and found folder.
+ // (We used to overwrite the "not found" one, but that could potentially
+ // destory content.) JC
+ LLUUID lost_and_found_id =
+ gInventory.findCategoryUUIDForType(LLAssetType::AT_LOST_AND_FOUND);
+ LLPointer<LLInventoryCallback> cb =
+ new addWearableToAgentInventoryCallback(
+ LLPointer<LLRefCount>(NULL),
+ type_s32,
+ index,
+ new_wearable,
+ addWearableToAgentInventoryCallback::CALL_RECOVERDONE);
+ addWearableToAgentInventory(cb, new_wearable, lost_and_found_id, TRUE);
+}
+
+void LLAgentWearables::recoverMissingWearableDone()
+{
+ // Have all the wearables that the avatar was wearing at log-in arrived or been fabricated?
+ mWearablesLoaded = TRUE;
+ for (S32 i = 0; i < WT_COUNT; i++)
+ {
+ // MULTI-WEARABLE: assuming zeroth elt - fix when messages change.
+ LLWearableInv* wearable_entry = getWearableInv((EWearableType)i,0);
+ if (!wearable_entry->mItemID.isNull() && !wearable_entry->mWearable)
+ {
+ mWearablesLoaded = FALSE;
+ break;
+ }
+ }
+
+ if (mWearablesLoaded)
+ {
+ // Make sure that the server's idea of the avatar's wearables actually match the wearables.
+ gAgent.sendAgentSetAppearance();
+ }
+ else
+ {
+ gInventory.addChangedMask(LLInventoryObserver::LABEL, LLUUID::null);
+ gInventory.notifyObservers();
+ }
+}
+
+void LLAgentWearables::createStandardWearables(BOOL female)
+{
+ llwarns << "Creating Standard " << (female ? "female" : "male")
+ << " Wearables" << llendl;
+
+ if (mAvatarObject.isNull())
+ {
+ return;
+ }
+
+ mAvatarObject->setSex(female ? SEX_FEMALE : SEX_MALE);
+
+ const BOOL create[WT_COUNT] =
+ {
+ TRUE, //WT_SHAPE
+ TRUE, //WT_SKIN
+ TRUE, //WT_HAIR
+ TRUE, //WT_EYES
+ TRUE, //WT_SHIRT
+ TRUE, //WT_PANTS
+ TRUE, //WT_SHOES
+ TRUE, //WT_SOCKS
+ FALSE, //WT_JACKET
+ FALSE, //WT_GLOVES
+ TRUE, //WT_UNDERSHIRT
+ TRUE, //WT_UNDERPANTS
+ FALSE //WT_SKIRT
+ };
+
+ for (S32 i=0; i < WT_COUNT; i++)
+ {
+ bool once = false;
+ LLPointer<LLRefCount> donecb = NULL;
+ if (create[i])
+ {
+ if (!once)
+ {
+ once = true;
+ donecb = new createStandardWearablesAllDoneCallback;
+ }
+ // MULTI_WEARABLE: only elt 0, may be the right thing?
+ LLWearableInv* wearable_entry = getWearableInv((EWearableType)i,0);
+ llassert(wearable_entry->mWearable == NULL);
+ LLWearable* wearable = LLWearableList::instance().createNewWearable((EWearableType)i);
+ wearable_entry->mWearable = wearable;
+ // no need to update here...
+ // MULTI_WEARABLE: hardwired index = 0 here.
+ LLPointer<LLInventoryCallback> cb =
+ new addWearableToAgentInventoryCallback(
+ donecb,
+ i,
+ 0,
+ wearable,
+ addWearableToAgentInventoryCallback::CALL_CREATESTANDARDDONE);
+ addWearableToAgentInventory(cb, wearable, LLUUID::null, FALSE);
+ }
+ }
+}
+
+void LLAgentWearables::createStandardWearablesDone(S32 type, U32 index)
+{
+ LLWearable* wearable = getWearable((EWearableType)type, index);
+
+ if (wearable)
+ {
+ wearable->writeToAvatar(TRUE);
+ }
+}
+
+void LLAgentWearables::createStandardWearablesAllDone()
+{
+ // ... because sendAgentWearablesUpdate will notify inventory
+ // observers.
+ mWearablesLoaded = TRUE;
+ updateServer();
+
+ // Treat this as the first texture entry message, if none received yet
+ mAvatarObject->onFirstTEMessageReceived();
+}
+
+void LLAgentWearables::makeNewOutfit(const std::string& new_folder_name,
+ const LLDynamicArray<S32>& wearables_to_include,
+ const LLDynamicArray<S32>& attachments_to_include,
+ BOOL rename_clothing)
+{
+ if (mAvatarObject.isNull())
+ {
+ return;
+ }
+
+ // First, make a folder in the Clothes directory.
+ LLUUID folder_id = gInventory.createNewCategory(
+ gInventory.findCategoryUUIDForType(LLAssetType::AT_CLOTHING),
+ LLAssetType::AT_NONE,
+ new_folder_name);
+
+ bool found_first_item = false;
+
+ ///////////////////
+ // Wearables
+
+ if (wearables_to_include.count())
+ {
+ // Then, iterate though each of the wearables and save copies of them in the folder.
+ S32 i;
+ S32 count = wearables_to_include.count();
+ LLDynamicArray<LLUUID> delete_items;
+ LLPointer<LLRefCount> cbdone = NULL;
+ for (i = 0; i < count; ++i)
+ {
+ const S32 type = wearables_to_include[i];
+ for (U32 j=0; j<getWearableCount((EWearableType)i); j++)
+ {
+ LLWearableInv* wearable_entry = getWearableInv((EWearableType)type, j);
+ LLWearable* old_wearable = wearable_entry->mWearable;
+ if (old_wearable)
+ {
+ std::string new_name;
+ LLWearable* new_wearable;
+ new_wearable = LLWearableList::instance().createCopy(old_wearable);
+ if (rename_clothing)
+ {
+ new_name = new_folder_name;
+ new_name.append(" ");
+ new_name.append(old_wearable->getTypeLabel());
+ LLStringUtil::truncate(new_name, DB_INV_ITEM_NAME_STR_LEN);
+ new_wearable->setName(new_name);
+ }
+
+ LLViewerInventoryItem* item = gInventory.getItem(wearable_entry->mItemID);
+ S32 todo = addWearableToAgentInventoryCallback::CALL_NONE;
+ if (!found_first_item)
+ {
+ found_first_item = true;
+ /* set the focus to the first item */
+ todo |= addWearableToAgentInventoryCallback::CALL_MAKENEWOUTFITDONE;
+ /* send the agent wearables update when done */
+ cbdone = new sendAgentWearablesUpdateCallback;
+ }
+ LLPointer<LLInventoryCallback> cb =
+ new addWearableToAgentInventoryCallback(
+ cbdone,
+ type,
+ j,
+ new_wearable,
+ todo);
+ if (isWearableCopyable((EWearableType)type, j))
+ {
+ copy_inventory_item(
+ gAgent.getID(),
+ item->getPermissions().getOwner(),
+ item->getUUID(),
+ folder_id,
+ new_name,
+ cb);
+ }
+ else
+ {
+ move_inventory_item(
+ gAgent.getID(),
+ gAgent.getSessionID(),
+ item->getUUID(),
+ folder_id,
+ new_name,
+ cb);
+ }
+ }
+ }
+ }
+ gInventory.notifyObservers();
+ }
+
+
+ ///////////////////
+ // Attachments
+
+ if (attachments_to_include.count())
+ {
+ BOOL msg_started = FALSE;
+ LLMessageSystem* msg = gMessageSystem;
+ for (S32 i = 0; i < attachments_to_include.count(); i++)
+ {
+ S32 attachment_pt = attachments_to_include[i];
+ LLViewerJointAttachment* attachment = get_if_there(mAvatarObject->mAttachmentPoints, attachment_pt, (LLViewerJointAttachment*)NULL);
+ if (!attachment) continue;
+ LLViewerObject* attached_object = attachment->getObject();
+ if (!attached_object) continue;
+ const LLUUID& item_id = attachment->getItemID();
+ if (item_id.isNull()) continue;
+ LLInventoryItem* item = gInventory.getItem(item_id);
+ if (!item) continue;
+ if (!msg_started)
+ {
+ msg_started = TRUE;
+ msg->newMessage("CreateNewOutfitAttachments");
+ msg->nextBlock("AgentData");
+ msg->addUUID("AgentID", gAgent.getID());
+ msg->addUUID("SessionID", gAgent.getSessionID());
+ msg->nextBlock("HeaderData");
+ msg->addUUID("NewFolderID", folder_id);
+ }
+ msg->nextBlock("ObjectData");
+ msg->addUUID("OldItemID", item_id);
+ msg->addUUID("OldFolderID", item->getParentUUID());
+ }
+
+ if (msg_started)
+ {
+ gAgent.sendReliableMessage();
+ }
+
+ }
+}
+
+void LLAgentWearables::makeNewOutfitDone(S32 type, U32 index)
+{
+ LLWearableInv* wearable_entry = getWearableInv((EWearableType)type, index);
+ LLUUID first_item_id = wearable_entry->mItemID;
+ // Open the inventory and select the first item we added.
+ if (first_item_id.notNull())
+ {
+ LLInventoryView* view = LLInventoryView::getActiveInventory();
+ if (view)
+ {
+ view->getPanel()->setSelection(first_item_id, TAKE_FOCUS_NO);
+ }
+ }
+}
+
+
+void LLAgentWearables::addWearableToAgentInventory(LLPointer<LLInventoryCallback> cb,
+ LLWearable* wearable,
+ const LLUUID& category_id,
+ BOOL notify)
+{
+ create_inventory_item(gAgent.getID(),
+ gAgent.getSessionID(),
+ category_id,
+ wearable->getTransactionID(),
+ wearable->getName(),
+ wearable->getDescription(),
+ wearable->getAssetType(),
+ LLInventoryType::IT_WEARABLE,
+ wearable->getType(),
+ wearable->getPermissions().getMaskNextOwner(),
+ cb);
+}
+
+void LLAgentWearables::removeWearable(const EWearableType type, bool do_remove_all, U32 index)
+{
+
+ if (do_remove_all)
+ {
+ removeWearableFinal(type, do_remove_all, index);
+ }
+ else
+ {
+// MULTI_WEARABLE: handle vector changes from arbitrary removal.
+ LLWearable* old_wearable = getWearable(type,index);
+
+ if ((gAgent.isTeen())
+ && (type == WT_UNDERSHIRT || type == WT_UNDERPANTS))
+ {
+ // Can't take off underclothing in simple UI mode or on PG accounts
+ return;
+ }
+
+ if (old_wearable)
+ {
+ if (old_wearable->isDirty())
+ {
+ LLSD payload;
+ payload["wearable_type"] = (S32)type;
+ // Bring up view-modal dialog: Save changes? Yes, No, Cancel
+ LLNotifications::instance().add("WearableSave", LLSD(), payload, &LLAgentWearables::onRemoveWearableDialog);
+ return;
+ }
+ else
+ {
+ removeWearableFinal(type, do_remove_all, index);
+ }
+ }
+ }
+}
+
+
+// MULTI_WEARABLE: assuming one wearable per type.
+// MULTI_WEARABLE: hardwiring 0th elt for now - notification needs to change.
+// static
+bool LLAgentWearables::onRemoveWearableDialog(const LLSD& notification, const LLSD& response)
+{
+ S32 option = LLNotification::getSelectedOption(notification, response);
+ EWearableType type = (EWearableType)notification["payload"]["wearable_type"].asInteger();
+ switch(option)
+ {
+ case 0: // "Save"
+ gAgentWearables.saveWearable(type, 0);
+ gAgentWearables.removeWearableFinal(type, false, 0);
+ break;
+
+ case 1: // "Don't Save"
+ gAgentWearables.removeWearableFinal(type, false, 0);
+ break;
+
+ case 2: // "Cancel"
+ break;
+
+ default:
+ llassert(0);
+ break;
+ }
+ return false;
+}
+
+// Called by removeWearable() and onRemoveWearableDialog() to actually do the removal.
+void LLAgentWearables::removeWearableFinal(const EWearableType type, bool do_remove_all, U32 index)
+{
+ //LLAgentDumper dumper("removeWearable");
+ if (do_remove_all)
+ {
+ S32 max_entry = mWearableDatas[type].size()-1;
+ for (S32 i=max_entry; i>=0; i--)
+ {
+ LLWearableInv *wearable_entry = getWearableInv(type,i);
+ LLWearable* old_wearable = wearable_entry->mWearable;
+ gInventory.addChangedMask(LLInventoryObserver::LABEL, wearable_entry->mItemID);
+ wearable_entry->mWearable = NULL;
+ wearable_entry->mItemID.setNull();
+ //queryWearableCache(); // BAP moved below
+ // MULTI_WEARABLE: FIXME - currently we keep a null entry, so can't delete the last one.
+ if (i>0)
+ {
+ mWearableDatas[type].pop_back();
+ delete wearable_entry;
+ }
+ if (old_wearable)
+ {
+ old_wearable->removeFromAvatar(TRUE);
+ }
+ }
+ }
+ else
+ {
+ LLWearableInv* wearable_entry = getWearableInv(type, index);
+ LLWearable* old_wearable = wearable_entry->mWearable;
+
+ gInventory.addChangedMask(LLInventoryObserver::LABEL, wearable_entry->mItemID);
+
+ wearable_entry->mWearable = NULL;
+ wearable_entry->mItemID.setNull();
+
+ //queryWearableCache(); // BAP moved below
+
+ if (old_wearable)
+ {
+ old_wearable->removeFromAvatar(TRUE);
+ }
+
+ // MULTI_WEARABLE: logic changes if null entries go away
+ if (getWearableCount(type)>1)
+ {
+ // Have to shrink the vector and clean up the item.
+ wearableentry_map_t::iterator wearable_iter = mWearableDatas.find(type);
+ llassert_always(wearable_iter != mWearableDatas.end());
+ wearableentry_vec_t& wearable_vec = wearable_iter->second;
+ wearable_vec.erase( wearable_vec.begin() + index );
+ delete(wearable_entry);
+ }
+ }
+
+ queryWearableCache();
+
+ // Update the server
+ updateServer();
+ gInventory.notifyObservers();
+}
+
+// Assumes existing wearables are not dirty.
+// MULTI_WEARABLE: assumes one wearable per type.
+void LLAgentWearables::setWearableOutfit(const LLInventoryItem::item_array_t& items,
+ const LLDynamicArray< LLWearable* >& wearables,
+ BOOL remove)
+{
+ lldebugs << "setWearableOutfit() start" << llendl;
+
+ BOOL wearables_to_remove[WT_COUNT];
+ wearables_to_remove[WT_SHAPE] = FALSE;
+ wearables_to_remove[WT_SKIN] = FALSE;
+ wearables_to_remove[WT_HAIR] = FALSE;
+ wearables_to_remove[WT_EYES] = FALSE;
+ wearables_to_remove[WT_SHIRT] = remove;
+ wearables_to_remove[WT_PANTS] = remove;
+ wearables_to_remove[WT_SHOES] = remove;
+ wearables_to_remove[WT_SOCKS] = remove;
+ wearables_to_remove[WT_JACKET] = remove;
+ wearables_to_remove[WT_GLOVES] = remove;
+ wearables_to_remove[WT_UNDERSHIRT] = (!gAgent.isTeen()) & remove;
+ wearables_to_remove[WT_UNDERPANTS] = (!gAgent.isTeen()) & remove;
+ wearables_to_remove[WT_SKIRT] = remove;
+
+ S32 count = wearables.count();
+ llassert(items.count() == count);
+
+ S32 i;
+ for (i = 0; i < count; i++)
+ {
+ LLWearable* new_wearable = wearables[i];
+ LLPointer<LLInventoryItem> new_item = items[i];
+
+ const EWearableType type = new_wearable->getType();
+ wearables_to_remove[type] = FALSE;
+
+ // MULTI_WEARABLE: using 0th
+ LLWearableInv* old_wearable_entry = getWearableInv(type, 0);
+ LLWearable* old_wearable = old_wearable_entry->mWearable;
+ if (old_wearable)
+ {
+ const LLUUID& old_item_id = old_wearable_entry->mItemID;
+ if ((old_wearable->getID() == new_wearable->getID()) &&
+ (old_item_id == new_item->getUUID()))
+ {
+ lldebugs << "No change to wearable asset and item: " << LLWearableDictionary::getInstance()->getWearableEntry(type) << llendl;
+ continue;
+ }
+
+ gInventory.addChangedMask(LLInventoryObserver::LABEL, old_item_id);
+
+ // Assumes existing wearables are not dirty.
+ if (old_wearable->isDirty())
+ {
+ llassert(0);
+ continue;
+ }
+ }
+
+ old_wearable_entry->mItemID = new_item->getUUID();
+ old_wearable_entry->mWearable = new_wearable;
+ }
+
+ std::vector<LLWearable*> wearables_being_removed;
+
+ for (i = 0; i < WT_COUNT; i++)
+ {
+ if (wearables_to_remove[i])
+ {
+ // MULTI_WEARABLE: assuming 0th
+ LLWearableInv* wearable_entry = getWearableInv((EWearableType)i, 0);
+ wearables_being_removed.push_back(wearable_entry->mWearable);
+ wearable_entry->mWearable = NULL;
+
+ gInventory.addChangedMask(LLInventoryObserver::LABEL, wearable_entry->mItemID);
+ wearable_entry->mItemID.setNull();
+ }
+ }
+
+ gInventory.notifyObservers();
+
+ queryWearableCache();
+
+ std::vector<LLWearable*>::iterator wearable_iter;
+
+ for (wearable_iter = wearables_being_removed.begin();
+ wearable_iter != wearables_being_removed.end();
+ ++wearable_iter)
+ {
+ LLWearable* wearablep = *wearable_iter;
+ if (wearablep)
+ {
+ wearablep->removeFromAvatar(TRUE);
+ }
+ }
+
+ for (i = 0; i < count; i++)
+ {
+ wearables[i]->writeToAvatar(TRUE);
+ }
+
+ // Start rendering & update the server
+ mWearablesLoaded = TRUE;
+ updateServer();
+
+ lldebugs << "setWearableOutfit() end" << llendl;
+}
+
+
+// User has picked "wear on avatar" from a menu.
+void LLAgentWearables::setWearable(LLInventoryItem* new_item, LLWearable* new_wearable, bool do_append)
+{
+ //LLAgentDumper dumper("setWearable");
+ if (isWearingItem(new_item->getUUID()))
+ {
+ llwarns << "wearable " << new_item->getUUID() << " is already worn" << llendl;
+ return;
+ }
+
+ const EWearableType type = new_wearable->getType();
+
+ if (!do_append)
+ {
+ // Remove old wearable, if any
+ // MULTI_WEARABLE: hardwired to 0
+ LLWearableInv* old_wearable_entry = getWearableInv(type,0);
+ LLWearable* old_wearable = old_wearable_entry->mWearable;
+ if (old_wearable)
+ {
+ const LLUUID& old_item_id = old_wearable_entry->mItemID;
+ if ((old_wearable->getID() == new_wearable->getID()) &&
+ (old_item_id == new_item->getUUID()))
+ {
+ lldebugs << "No change to wearable asset and item: " << LLWearableDictionary::getInstance()->getWearableEntry(type) << llendl;
+ return;
+ }
+
+ if (old_wearable->isDirty())
+ {
+ // Bring up modal dialog: Save changes? Yes, No, Cancel
+ LLSD payload;
+ payload["item_id"] = new_item->getUUID();
+ LLNotifications::instance().add("WearableSave", LLSD(), payload, boost::bind(onSetWearableDialog, _1, _2, new_wearable));
+ return;
+ }
+ }
+ }
+
+ setWearableFinal(new_item, new_wearable, do_append);
+}
+
+// static
+bool LLAgentWearables::onSetWearableDialog(const LLSD& notification, const LLSD& response, LLWearable* wearable)
+{
+ S32 option = LLNotification::getSelectedOption(notification, response);
+ LLInventoryItem* new_item = gInventory.getItem(notification["payload"]["item_id"].asUUID());
+ if (!new_item)
+ {
+ delete wearable;
+ return false;
+ }
+
+ switch(option)
+ {
+ case 0: // "Save"
+// MULTI_WEARABLE: assuming 0th
+ gAgentWearables.saveWearable(wearable->getType(),0);
+ gAgentWearables.setWearableFinal(new_item, wearable);
+ break;
+
+ case 1: // "Don't Save"
+ gAgentWearables.setWearableFinal(new_item, wearable);
+ break;
+
+ case 2: // "Cancel"
+ break;
+
+ default:
+ llassert(0);
+ break;
+ }
+
+ delete wearable;
+ return false;
+}
+
+// Called from setWearable() and onSetWearableDialog() to actually set the wearable.
+// MULTI_WEARABLE: unify code after null objects are gone.
+void LLAgentWearables::setWearableFinal(LLInventoryItem* new_item, LLWearable* new_wearable, bool do_append)
+{
+ const EWearableType type = new_wearable->getType();
+
+ if (do_append && getWearableInv(type,0)->mItemID.notNull())
+ {
+ LLWearableInv *new_wearable_entry = new LLWearableInv;
+ new_wearable_entry->mItemID = new_item->getUUID();
+ new_wearable_entry->mWearable = new_wearable;
+ mWearableDatas[type].push_back(new_wearable_entry);
+ llinfos << "Added additional wearable for type " << type
+ << " size is now " << mWearableDatas[type].size() << llendl;
+ }
+ else
+ {
+ LLWearableInv* wearable_entry = getWearableInv(type,0);
+ // Replace the old wearable with a new one.
+ llassert(new_item->getAssetUUID() == new_wearable->getID());
+ LLUUID old_item_id = wearable_entry->mItemID;
+ wearable_entry->mItemID = new_item->getUUID();
+ wearable_entry->mWearable = new_wearable;
+
+ if (old_item_id.notNull())
+ {
+ gInventory.addChangedMask(LLInventoryObserver::LABEL, old_item_id);
+ gInventory.notifyObservers();
+ }
+ llinfos << "Replaced current element 0 for type " << type
+ << " size is now " << mWearableDatas[type].size() << llendl;
+ }
+
+ //llinfos << "LLVOAvatar::setWearable()" << llendl;
+ queryWearableCache();
+ new_wearable->writeToAvatar(TRUE);
+
+ updateServer();
+}
+
+void LLAgentWearables::queryWearableCache()
+{
+ if (!mWearablesLoaded)
+ {
+ return;
+ }
+
+ // Look up affected baked textures.
+ // If they exist:
+ // disallow updates for affected layersets (until dataserver responds with cache request.)
+ // If cache miss, turn updates back on and invalidate composite.
+ // If cache hit, modify baked texture entries.
+ //
+ // Cache requests contain list of hashes for each baked texture entry.
+ // Response is list of valid baked texture assets. (same message)
+
+ gMessageSystem->newMessageFast(_PREHASH_AgentCachedTexture);
+ gMessageSystem->nextBlockFast(_PREHASH_AgentData);
+ gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
+ gMessageSystem->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
+ gMessageSystem->addS32Fast(_PREHASH_SerialNum, gAgentQueryManager.mWearablesCacheQueryID);
+
+ S32 num_queries = 0;
+ for (U8 baked_index = 0; baked_index < BAKED_NUM_INDICES; baked_index++)
+ {
+ const LLVOAvatarDictionary::BakedEntry *baked_dict = LLVOAvatarDictionary::getInstance()->getBakedTexture((EBakedTextureIndex)baked_index);
+ LLUUID hash;
+ for (U8 i=0; i < baked_dict->mWearables.size(); i++)
+ {
+ // EWearableType baked_type = gBakedWearableMap[baked_index][baked_num];
+ const EWearableType baked_type = baked_dict->mWearables[i];
+ // MULTI_WEARABLE: assuming 0th
+ const LLWearable* wearable = getWearableInv(baked_type,0)->mWearable;
+ if (wearable)
+ {
+ hash ^= wearable->getID();
+ }
+ }
+ if (hash.notNull())
+ {
+ hash ^= baked_dict->mWearablesHashID;
+ num_queries++;
+ // *NOTE: make sure at least one request gets packed
+
+ //llinfos << "Requesting texture for hash " << hash << " in baked texture slot " << baked_index << llendl;
+ gMessageSystem->nextBlockFast(_PREHASH_WearableData);
+ gMessageSystem->addUUIDFast(_PREHASH_ID, hash);
+ gMessageSystem->addU8Fast(_PREHASH_TextureIndex, (U8)baked_index);
+ }
+
+ gAgentQueryManager.mActiveCacheQueries[baked_index] = gAgentQueryManager.mWearablesCacheQueryID;
+ }
+
+ llinfos << "Requesting texture cache entry for " << num_queries << " baked textures" << llendl;
+ gMessageSystem->sendReliable(gAgent.getRegion()->getHost());
+ gAgentQueryManager.mNumPendingQueries++;
+ gAgentQueryManager.mWearablesCacheQueryID++;
+}
+
+// MULTI_WEARABLE: need a way to specify by wearable rather than by type.
+// User has picked "remove from avatar" from a menu.
+// static
+void LLAgentWearables::userRemoveWearable(void* userdata)
+{
+ EWearableType type = (EWearableType)(intptr_t)userdata;
+
+ if (!(type==WT_SHAPE || type==WT_SKIN || type==WT_HAIR)) //&&
+ //!((!gAgent.isTeen()) && (type==WT_UNDERPANTS || type==WT_UNDERSHIRT)))
+ {
+ // MULTI_WEARABLE: fixed to 0th for now.
+ gAgentWearables.removeWearable(type,false,0);
+ }
+}
+
+// static
+void LLAgentWearables::userRemoveAllClothes(void* userdata)
+{
+ // We have to do this up front to avoid having to deal with the case of multiple wearables being dirty.
+ if (gFloaterCustomize)
+ {
+ gFloaterCustomize->askToSaveIfDirty(userRemoveAllClothesStep2);
+ }
+ else
+ {
+ userRemoveAllClothesStep2(TRUE);
+ }
+}
+
+// static
+// MULTI_WEARABLE: removing all here.
+void LLAgentWearables::userRemoveAllClothesStep2(BOOL proceed)
+{
+ if (proceed)
+ {
+ gAgentWearables.removeWearable(WT_SHIRT,true,0);
+ gAgentWearables.removeWearable(WT_PANTS,true,0);
+ gAgentWearables.removeWearable(WT_SHOES,true,0);
+ gAgentWearables.removeWearable(WT_SOCKS,true,0);
+ gAgentWearables.removeWearable(WT_JACKET,true,0);
+ gAgentWearables.removeWearable(WT_GLOVES,true,0);
+ gAgentWearables.removeWearable(WT_UNDERSHIRT,true,0);
+ gAgentWearables.removeWearable(WT_UNDERPANTS,true,0);
+ gAgentWearables.removeWearable(WT_SKIRT,true,0);
+ }
+}
+
+void LLAgentWearables::userRemoveAllAttachments(void* userdata)
+{
+ LLVOAvatar* avatarp = gAgent.getAvatarObject();
+ if (!avatarp)
+ {
+ llwarns << "No avatar found." << llendl;
+ return;
+ }
+
+ gMessageSystem->newMessage("ObjectDetach");
+ gMessageSystem->nextBlockFast(_PREHASH_AgentData);
+ gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
+ gMessageSystem->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
+
+ for (LLVOAvatar::attachment_map_t::iterator iter = avatarp->mAttachmentPoints.begin();
+ iter != avatarp->mAttachmentPoints.end();)
+ {
+ LLVOAvatar::attachment_map_t::iterator curiter = iter++;
+ LLViewerJointAttachment* attachment = curiter->second;
+ LLViewerObject* objectp = attachment->getObject();
+ if (objectp)
+ {
+ gMessageSystem->nextBlockFast(_PREHASH_ObjectData);
+ gMessageSystem->addU32Fast(_PREHASH_ObjectLocalID, objectp->getLocalID());
+ }
+ }
+ gMessageSystem->sendReliable(gAgent.getRegionHost());
+}
+
+void LLAgentWearables::updateServer()
+{
+ sendAgentWearablesUpdate();
+ gAgent.sendAgentSetAppearance();
+}
diff --git a/indra/newview/llagentwearables.h b/indra/newview/llagentwearables.h
new file mode 100644
index 0000000000..98f49203d3
--- /dev/null
+++ b/indra/newview/llagentwearables.h
@@ -0,0 +1,235 @@
+/**
+ * @file llagentwearables.h
+ * @brief LLAgentWearables class header file
+ *
+ * $LicenseInfo:firstyear=2000&license=viewergpl$
+ *
+ * Copyright (c) 2000-2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#ifndef LL_LLAGENTWEARABLES_H
+#define LL_LLAGENTWEARABLES_H
+
+#include "llmemory.h"
+#include "lluuid.h"
+#include "llinventory.h"
+#include "llviewerinventory.h"
+
+class LLInventoryItem;
+class LLVOAvatarSelf;
+class LLWearable;
+
+class LLAgentWearables
+{
+ //--------------------------------------------------------------------
+ // Constructors / destructors / Initializers
+ //--------------------------------------------------------------------
+public:
+ LLAgentWearables();
+ virtual ~LLAgentWearables();
+ void setAvatarObject(LLVOAvatarSelf *avatar);
+ void createStandardWearables(BOOL female);
+ void cleanup();
+ void dump();
+protected:
+ // MULTI-WEARABLE: assuming one per type. Type is called index - rename.
+ void createStandardWearablesDone(S32 type, U32 index/* = 0*/);
+ void createStandardWearablesAllDone();
+
+ //--------------------------------------------------------------------
+ // Queries
+ //--------------------------------------------------------------------
+public:
+ BOOL isWearingItem(const LLUUID& item_id) const;
+ BOOL isWearableModifiable(EWearableType type, U32 index /*= 0*/) const;
+ BOOL isWearableCopyable(EWearableType type, U32 index /*= 0*/) const;
+ BOOL areWearablesLoaded() const { return mWearablesLoaded; }
+
+ //--------------------------------------------------------------------
+ // Accessors
+ //--------------------------------------------------------------------
+public:
+ const LLUUID& getWearableItem(EWearableType type, U32 index /*= 0*/) const;
+ LLWearable* getWearableFromWearableItem(const LLUUID& item_id) const;
+ LLInventoryItem* getWearableInventoryItem(EWearableType type, U32 index /*= 0*/);
+ // MULTI-WEARABLE: assuming one per type.
+ static BOOL selfHasWearable(void* userdata); // userdata is EWearableType
+ LLWearable* getWearable(const EWearableType type, U32 index /*= 0*/);
+ const LLWearable* getWearable(const EWearableType type, U32 index /*= 0*/) const;
+ U32 getWearableCount(const EWearableType type) const;
+
+private:
+ struct LLWearableInv;
+ LLWearableInv* getWearableInv(const EWearableType type, U32 index /*= 0*/);
+ const LLWearableInv* getWearableInv(const EWearableType type, U32 /*index = 0*/) const;
+ //--------------------------------------------------------------------
+ // Setters
+ //--------------------------------------------------------------------
+public:
+ void setWearable(LLInventoryItem* new_item, LLWearable* wearable, bool do_append = false);
+ void setWearableOutfit(const LLInventoryItem::item_array_t& items, const LLDynamicArray< LLWearable* >& wearables, BOOL remove);
+ void setWearableName(const LLUUID& item_id, const std::string& new_name);
+protected:
+ void setWearableFinal(LLInventoryItem* new_item, LLWearable* new_wearable, bool do_append = false);
+ static bool onSetWearableDialog(const LLSD& notification, const LLSD& response, LLWearable* wearable);
+
+ void addWearableToAgentInventory(LLPointer<LLInventoryCallback> cb,
+ LLWearable* wearable,
+ const LLUUID& category_id = LLUUID::null,
+ BOOL notify = TRUE);
+ void addWearabletoAgentInventoryDone(const S32 type,
+ const U32 index,
+ const LLUUID& item_id,
+ LLWearable* wearable);
+ void recoverMissingWearable(const EWearableType type, U32 index /*= 0*/);
+ void recoverMissingWearableDone();
+
+ //--------------------------------------------------------------------
+ // Removing wearables
+ //--------------------------------------------------------------------
+public:
+ void removeWearable(const EWearableType type, bool do_remove_all /*= false*/, U32 index /*= 0*/);
+private:
+ void removeWearableFinal(const EWearableType type, bool do_remove_all /*= false*/, U32 index /*= 0*/);
+protected:
+ static bool onRemoveWearableDialog(const LLSD& notification, const LLSD& response);
+ static void userRemoveAllClothesStep2(BOOL proceed); // userdata is NULL
+
+ //--------------------------------------------------------------------
+ // Server Communication
+ //--------------------------------------------------------------------
+public:
+ static void processAgentInitialWearablesUpdate(LLMessageSystem* mesgsys, void** user_data);
+protected:
+ void sendAgentWearablesUpdate();
+ void sendAgentWearablesRequest();
+ void queryWearableCache();
+ void updateServer();
+ static void onInitialWearableAssetArrived(LLWearable* wearable, void* userdata);
+
+ //--------------------------------------------------------------------
+ // Outfits
+ //--------------------------------------------------------------------
+public:
+ void makeNewOutfit(const std::string& new_folder_name,
+ const LLDynamicArray<S32>& wearables_to_include,
+ const LLDynamicArray<S32>& attachments_to_include,
+ BOOL rename_clothing);protected:
+private:
+ void makeNewOutfitDone(S32 type, U32 index);
+
+ //--------------------------------------------------------------------
+ // Save Wearables
+ //--------------------------------------------------------------------
+public:
+ // MULTI-WEARABLE: assumes one per type.
+ void saveWearableAs(const EWearableType type, const U32 index, const std::string& new_name, BOOL save_in_lost_and_found);
+ void saveWearable(const EWearableType type, const U32 index, BOOL send_update = TRUE);
+ void saveAllWearables();
+ void revertWearable(const EWearableType type, const U32 index);
+
+ //--------------------------------------------------------------------
+ // Static UI hooks
+ //--------------------------------------------------------------------
+public:
+ // MULTI-WEARABLE: assuming one wearable per type. Need upstream changes.
+ static void userRemoveWearable(void* userdata); // userdata is EWearableType
+ static void userRemoveAllClothes(void* userdata); // userdata is NULL
+ static void userRemoveAllAttachments(void* userdata); // userdata is NULL
+
+ //--------------------------------------------------------------------
+ // Member variables
+ //--------------------------------------------------------------------
+private:
+ typedef std::vector<LLWearableInv*> wearableentry_vec_t; // all wearables of a certain type (EG all shirts)
+ typedef std::map<EWearableType, wearableentry_vec_t> wearableentry_map_t; // wearable "categories" arranged by wearable type
+ wearableentry_map_t mWearableDatas;
+
+ static BOOL mInitialWearablesUpdateReceived;
+ BOOL mWearablesLoaded;
+ LLPointer<LLVOAvatarSelf> mAvatarObject; // NULL until avatar object sent down from simulator
+
+ //--------------------------------------------------------------------------------
+ // Support classes
+ //--------------------------------------------------------------------------------
+private:
+ class createStandardWearablesAllDoneCallback : public LLRefCount
+ {
+ protected:
+ ~createStandardWearablesAllDoneCallback();
+ };
+ class sendAgentWearablesUpdateCallback : public LLRefCount
+ {
+ protected:
+ ~sendAgentWearablesUpdateCallback();
+ };
+
+ class addWearableToAgentInventoryCallback : public LLInventoryCallback
+ {
+ public:
+ enum EType
+ {
+ CALL_NONE = 0,
+ CALL_UPDATE = 1,
+ CALL_RECOVERDONE = 2,
+ CALL_CREATESTANDARDDONE = 4,
+ CALL_MAKENEWOUTFITDONE = 8
+ };
+
+ // MULTI-WEARABLE: index is an EWearableType - more confusing usage.
+ // MULTI-WEARABLE: need to have type and index args both?
+ addWearableToAgentInventoryCallback(LLPointer<LLRefCount> cb,
+ S32 type,
+ U32 index,
+ LLWearable* wearable,
+ U32 todo = CALL_NONE);
+ virtual void fire(const LLUUID& inv_item);
+ private:
+ S32 mType;
+ U32 mIndex;
+ LLWearable* mWearable;
+ U32 mTodo;
+ LLPointer<LLRefCount> mCB;
+ };
+
+ struct LLWearableInv // Make this subclass of llwearable?
+ {
+ LLWearableInv() : mItemID(LLUUID::null), mWearable(NULL) {}
+ // BOOL exists() const;
+ LLUUID mItemID; // ID of the inventory item in the agent's inventory.
+ LLWearable* mWearable;
+ };
+ const static LLWearableInv s_null_wearable;
+
+}; // LLAgentWearables
+
+extern LLAgentWearables gAgentWearables;
+
+//--------------------------------------------------------------------
+// Types
+//--------------------------------------------------------------------
+
+#endif // LL_AGENTWEARABLES_H
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 455e987da0..48cb3babfa 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -45,6 +45,7 @@
#include "llviewerimagelist.h"
#include "llgroupmgr.h"
#include "llagent.h"
+#include "llagentwearables.h"
#include "llwindow.h"
#include "llviewerstats.h"
#include "llmd5.h"
@@ -55,6 +56,7 @@
#include "llstartup.h"
#include "llfocusmgr.h"
#include "llviewerjoystick.h"
+#include "llallocator.h"
#include "llares.h"
#include "llcurl.h"
#include "llviewerwindow.h"
@@ -64,12 +66,14 @@
#include "llviewerobjectlist.h"
#include "llworldmap.h"
#include "llmutelist.h"
+#include "lluicolortable.h"
#include "llurldispatcher.h"
#include "llurlhistory.h"
#include "llfirstuse.h"
#include "llrender.h"
#include "llteleporthistory.h"
#include "lllocationhistory.h"
+#include "llfasttimerview.h"
#include "llweb.h"
#include "llsecondlifeurls.h"
@@ -370,7 +374,6 @@ static void settings_to_globals()
MENU_BAR_HEIGHT = gSavedSettings.getS32("MenuBarHeight");
MENU_BAR_WIDTH = gSavedSettings.getS32("MenuBarWidth");
- STATUS_BAR_HEIGHT = gSavedSettings.getS32("StatusBarHeight");
LLCOMBOBOX_HEIGHT = BTN_HEIGHT - 2;
LLCOMBOBOX_WIDTH = 128;
@@ -394,7 +397,7 @@ static void settings_to_globals()
gAgentPilot.mNumRuns = gSavedSettings.getS32("StatsNumRuns");
gAgentPilot.mQuitAfterRuns = gSavedSettings.getBOOL("StatsQuitAfterRuns");
- gAgent.mHideGroupTitle = gSavedSettings.getBOOL("RenderHideGroupTitle");
+ gAgent.setHideGroupTitle(gSavedSettings.getBOOL("RenderHideGroupTitle"));
gDebugWindowProc = gSavedSettings.getBOOL("DebugWindowProc");
gAllowTapTapHoldRun = gSavedSettings.getBOOL("AllowTapTapHoldRun");
@@ -411,7 +414,7 @@ static void settings_modify()
LLVOAvatar::sUseImpostors = gSavedSettings.getBOOL("RenderUseImpostors");
LLVOSurfacePatch::sLODFactor = gSavedSettings.getF32("RenderTerrainLODFactor");
LLVOSurfacePatch::sLODFactor *= LLVOSurfacePatch::sLODFactor; //square lod factor to get exponential range of [1,4]
- gDebugGL = gSavedSettings.getBOOL("RenderDebugGL");
+ gDebugGL = gSavedSettings.getBOOL("RenderDebugGL") || gDebugSession;
gDebugPipeline = gSavedSettings.getBOOL("RenderDebugPipeline");
#if LL_VECTORIZE
@@ -449,6 +452,38 @@ static void settings_modify()
#endif
}
+class LLFastTimerLogThread : public LLThread
+{
+public:
+ std::string mFile;
+
+ LLFastTimerLogThread() : LLThread("fast timer log")
+ {
+ if(LLFastTimer::sLog)
+ {
+ mFile = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "performance.slp");
+ }
+ if(LLFastTimer::sMetricLog)
+ {
+ mFile = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "metric.slp");
+ }
+ }
+
+ void run()
+ {
+ std::ofstream os(mFile.c_str());
+
+ while (!LLAppViewer::instance()->isQuitting())
+ {
+ LLFastTimer::writeLog(os);
+ os.flush();
+ ms_sleep(32);
+ }
+
+ os.close();
+ }
+};
+
void LLAppViewer::initGridChoice()
{
// Load up the initial grid choice from:
@@ -514,19 +549,22 @@ LLAppViewer::LLAppViewer() :
mPurgeOnExit(false),
mSecondInstance(false),
mSavedFinalSnapshot(false),
+ mForceGraphicsDetail(false),
mQuitRequested(false),
mLogoutRequestSent(false),
mYieldTime(-1),
mMainloopTimeout(NULL),
mAgentRegionLastAlive(false),
mRandomizeFramerate(LLCachedControl<bool>(gSavedSettings,"Randomize Framerate", FALSE)),
- mPeriodicSlowFrame(LLCachedControl<bool>(gSavedSettings,"Periodic Slow Frame", FALSE))
+ mPeriodicSlowFrame(LLCachedControl<bool>(gSavedSettings,"Periodic Slow Frame", FALSE)),
+ mFastTimerLogThread(NULL)
{
if(NULL != sInstance)
{
llerrs << "Oh no! An instance of LLAppViewer already exists! LLAppViewer is sort of like a singleton." << llendl;
}
+ setupErrorHandling();
sInstance = this;
}
@@ -566,6 +604,8 @@ bool LLAppViewer::init()
if (!initConfiguration())
return false;
+ mAlloc.setProfilingEnabled(gSavedSettings.getBOOL("MemProfiling"));
+
// *NOTE:Mani - LLCurl::initClass is not thread safe.
// Called before threads are created.
LLCurl::initClass();
@@ -623,6 +663,7 @@ bool LLAppViewer::init()
settings_map["color"] = &gSavedSkinSettings;
settings_map["ignores"] = &gWarningSettings;
settings_map["floater"] = &gSavedSettings; // *TODO: New settings file
+ settings_map["account"] = &gSavedPerAccountSettings;
LLUI::initClass(settings_map,
LLUIImageList::getInstance(),
@@ -816,6 +857,7 @@ bool LLAppViewer::init()
bool LLAppViewer::mainLoop()
{
+ LLMemType mt1(LLMemType::MTYPE_MAIN);
mMainloopTimeout = new LLWatchdogTimeout();
// *FIX:Mani - Make this a setting, once new settings exist in this branch.
@@ -833,7 +875,6 @@ bool LLAppViewer::mainLoop()
LLVoiceChannel::initClass();
LLVoiceClient::init(gServicePump);
- LLMemType mt1(LLMemType::MTYPE_MAIN);
LLTimer frameTimer,idleTimer;
LLTimer debugTime;
LLViewerJoystick* joystick(LLViewerJoystick::getInstance());
@@ -849,10 +890,9 @@ bool LLAppViewer::mainLoop()
// Handle messages
while (!LLApp::isExiting())
{
- LLFastTimer::reset(); // Should be outside of any timer instances
+ LLFastTimer::nextFrame(); // Should be outside of any timer instances
try
{
- LLFastTimer t(LLFastTimer::FTM_FRAME);
pingMainloopTimeout("Main:MiscNativeWindowEvents");
if (gViewerWindow)
@@ -905,6 +945,7 @@ bool LLAppViewer::mainLoop()
&& !gViewerWindow->getShowProgress()
&& !gFocusMgr.focusLocked())
{
+ LLMemType mjk(LLMemType::MTYPE_JOY_KEY);
joystick->scanJoystick();
gKeyboard->scanKeyboard();
}
@@ -918,6 +959,7 @@ bool LLAppViewer::mainLoop()
if (gAres != NULL && gAres->isInitialized())
{
+ LLMemType mt_ip(LLMemType::MTYPE_IDLE_PUMP);
pingMainloopTimeout("Main:ServicePump");
LLFastTimer t4(LLFastTimer::FTM_PUMP);
gAres->process();
@@ -955,6 +997,7 @@ bool LLAppViewer::mainLoop()
// Sleep and run background threads
{
+ LLMemType mt_sleep(LLMemType::MTYPE_SLEEP);
LLFastTimer t2(LLFastTimer::FTM_SLEEP);
bool run_multiple_threads = gSavedSettings.getBOOL("RunMultipleThreads");
@@ -1355,6 +1398,7 @@ bool LLAppViewer::cleanup()
sTextureCache->shutdown();
sTextureFetch->shutdown();
sImageDecodeThread->shutdown();
+
delete sTextureCache;
sTextureCache = NULL;
delete sTextureFetch;
@@ -1362,6 +1406,31 @@ bool LLAppViewer::cleanup()
delete sImageDecodeThread;
sImageDecodeThread = NULL;
+ LLLocationHistory::getInstance()->save();
+ delete mFastTimerLogThread;
+ mFastTimerLogThread = NULL;
+
+ if (LLFastTimerView::sAnalyzePerformance)
+ {
+ llinfos << "Analyzing performance" << llendl;
+
+ if(LLFastTimer::sLog)
+ {
+ LLFastTimerView::doAnalysis(
+ gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "performance_baseline.slp"),
+ gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "performance.slp"),
+ gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "performance_report.csv"));
+ }
+ if(LLFastTimer::sMetricLog)
+ {
+ LLFastTimerView::doAnalysis(
+ gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "metric_baseline.slp"),
+ gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "metric.slp"),
+ gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "metric_report.csv"));
+ }
+ }
+ LLMetricPerformanceTester::cleanClass() ;
+
//Note:
//LLViewerMedia::cleanupClass() has to be put before gImageList.shutdown()
//because some new image might be generated during cleaning up media. --bao
@@ -1414,6 +1483,8 @@ bool LLAppViewer::cleanup()
llinfos << "File launched." << llendflush;
}
+ ll_close_fail_log();
+
llinfos << "Goodbye" << llendflush;
// return 0;
@@ -1464,6 +1535,13 @@ bool LLAppViewer::initThreads()
LLAppViewer::sTextureFetch = new LLTextureFetch(LLAppViewer::getTextureCache(), enable_threads && false);
LLImage::initClass(LLAppViewer::getImageDecodeThread());
+ if (LLFastTimer::sLog || LLFastTimer::sMetricLog)
+ {
+ LLFastTimer::sLogLock = new LLMutex(NULL);
+ mFastTimerLogThread = new LLFastTimerLogThread();
+ mFastTimerLogThread->start();
+ }
+
// *FIX: no error handling here!
return true;
}
@@ -1621,6 +1699,37 @@ void LLAppViewer::loadColorSettings()
loadSettingsFromDirectory("CurrentSkin", true);
loadSettingsFromDirectory("UserSkin");
+ class ColorConverterFunctor : public LLControlGroup::ApplyFunctor
+ {
+ public:
+ explicit ColorConverterFunctor(LLUIColorTable::Params& result)
+ :mResult(result)
+ {
+ }
+
+ void apply(const std::string& name, LLControlVariable* control)
+ {
+ if(control->isType(TYPE_COL4))
+ {
+ LLUIColorTable::ColorParams color;
+ color.value = (LLColor4)control->getValue();
+
+ LLUIColorTable::ColorEntryParams color_entry;
+ color_entry.name = name;
+ color_entry.color = color;
+
+ mResult.color_entries.add(color_entry);
+ }
+ }
+
+ private:
+ LLUIColorTable::Params& mResult;
+ };
+
+ LLUIColorTable::Params params;
+ ColorConverterFunctor ccf(params);
+ LLControlGroup::getInstance("Skinning")->applyToAll(&ccf);
+ LLUIColorTable::instance().init(params);
}
bool LLAppViewer::initConfiguration()
@@ -1806,6 +1915,68 @@ bool LLAppViewer::initConfiguration()
gCrashOnStartup = TRUE;
}
+ if (clp.hasOption("logperformance"))
+ {
+ LLFastTimer::sLog = TRUE;
+ }
+
+ if(clp.hasOption("logmetrics"))
+ {
+ LLFastTimer::sMetricLog = TRUE ;
+ }
+
+ if (clp.hasOption("graphicslevel"))
+ {
+ const LLCommandLineParser::token_vector_t& value = clp.getOption("graphicslevel");
+ if(value.size() != 1)
+ {
+ llwarns << "Usage: -graphicslevel <0-3>" << llendl;
+ }
+ else
+ {
+ std::string detail = value.front();
+ mForceGraphicsDetail = TRUE;
+
+ switch (detail.c_str()[0])
+ {
+ case '0':
+ gSavedSettings.setU32("RenderQualityPerformance", 0);
+ break;
+ case '1':
+ gSavedSettings.setU32("RenderQualityPerformance", 1);
+ break;
+ case '2':
+ gSavedSettings.setU32("RenderQualityPerformance", 2);
+ break;
+ case '3':
+ gSavedSettings.setU32("RenderQualityPerformance", 3);
+ break;
+ default:
+ mForceGraphicsDetail = FALSE;
+ llwarns << "Usage: -graphicslevel <0-3>" << llendl;
+ break;
+ }
+ }
+ }
+
+ if (clp.hasOption("analyzeperformance"))
+ {
+ LLFastTimerView::sAnalyzePerformance = TRUE;
+ }
+
+ if (clp.hasOption("replaysession"))
+ {
+ LLAgentPilot::sReplaySession = TRUE;
+ }
+
+ if (clp.hasOption("debugsession"))
+ {
+ gDebugSession = TRUE;
+ gDebugGL = TRUE;
+
+ ll_init_fail_log(gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "test_failures.log"));
+ }
+
// Handle slurl use. NOTE: Don't let SL-55321 reappear.
// *FIX: This init code should be made more robust to prevent
@@ -2012,18 +2183,41 @@ void LLAppViewer::checkForCrash(void)
{
#if LL_SEND_CRASH_REPORTS
- if (gLastExecEvent == LAST_EXEC_FROZE || gLastExecEvent == LAST_EXEC_OTHER_CRASH)
+ //*NOTE:Mani The current state of the crash handler has the MacOSX
+ // sending all crash reports as freezes, in order to let
+ // the MacOSX CrashRepoter generate stacks before spawning the
+ // SL crash logger.
+ // The Linux and Windows clients generate their own stacks and
+ // spawn the SL crash logger immediately. This may change in the future.
+#if LL_DARWIN
+ if(gLastExecEvent != LAST_EXEC_NORMAL)
+#else
+ if (gLastExecEvent == LAST_EXEC_FROZE)
+#endif
{
llinfos << "Last execution froze, requesting to send crash report." << llendl;
//
// Pop up a freeze or crash warning dialog
//
- std::ostringstream msg;
- msg << LLTrans::getString("MBFrozenCrashed");
- std::string alert = LLTrans::getString("SECOND_LIFE_VIEWER") + " " + LLTrans::getString("MBAlert");
- S32 choice = OSMessageBox(msg.str(),
+ S32 choice;
+ if(gCrashSettings.getS32(CRASH_BEHAVIOR_SETTING) == CRASH_BEHAVIOR_ASK)
+ {
+ std::ostringstream msg;
+ msg << LLTrans::getString("MBFrozenCrashed");
+ std::string alert = LLTrans::getString("SECOND_LIFE_VIEWER") + " " + LLTrans::getString("MBAlert");
+ choice = OSMessageBox(msg.str(),
alert,
OSMB_YESNO);
+ }
+ else if(gCrashSettings.getS32(CRASH_BEHAVIOR_SETTING) == CRASH_BEHAVIOR_NEVER_SEND)
+ {
+ choice = OSBTN_NO;
+ }
+ else
+ {
+ choice = OSBTN_YES;
+ }
+
if (OSBTN_YES == choice)
{
llinfos << "Sending crash report." << llendl;
@@ -2058,7 +2252,7 @@ bool LLAppViewer::initWindow()
gSavedSettings.getS32("WindowWidth"), gSavedSettings.getS32("WindowHeight"),
FALSE, ignorePixelDepth);
- if (gSavedSettings.getBOOL("FullScreen"))
+ if (!gSavedSettings.getBOOL("NotFullScreen"))
{
gViewerWindow->toggleFullscreen(FALSE);
// request to go full screen... which will be delayed until login
@@ -2076,6 +2270,11 @@ bool LLAppViewer::initWindow()
// Initialize GL stuff
//
+ if (mForceGraphicsDetail)
+ {
+ LLFeatureManager::getInstance()->setGraphicsLevel(gSavedSettings.getU32("RenderQualityPerformance"), false);
+ }
+
// Set this flag in case we crash while initializing GL
gSavedSettings.setBOOL("RenderInitError", TRUE);
gSavedSettings.saveToFile( gSavedSettings.getString("ClientSettingsFile"), TRUE );
@@ -2247,7 +2446,7 @@ void LLAppViewer::handleViewerCrash()
llinfos << "Handle viewer crash entry." << llendl;
//print out recorded call stacks if there are any.
- LLError::LLCallStacks::print() ;
+ LLError::LLCallStacks::print();
LLAppViewer* pApp = LLAppViewer::instance();
if (pApp->beingDebugged())
@@ -2294,6 +2493,8 @@ void LLAppViewer::handleViewerCrash()
gDebugInfo["SessionLength"] = F32(LLFrameTimer::getElapsedSeconds());
gDebugInfo["StartupState"] = LLStartUp::getStartupStateString();
gDebugInfo["RAMInfo"]["Allocated"] = (LLSD::Integer) LLMemory::getCurrentRSS() >> 10;
+ gDebugInfo["FirstLogin"] = (LLSD::Boolean) gAgent.isFirstLogin();
+ gDebugInfo["FirstRunThisInstall"] = gSavedSettings.getBOOL("FirstRunThisInstall");
if(gLogoutInProgress)
{
@@ -3062,6 +3263,7 @@ public:
///////////////////////////////////////////////////////
void LLAppViewer::idle()
{
+ LLMemType mt_idle(LLMemType::MTYPE_IDLE);
pingMainloopTimeout("Main:Idle");
// Update frame timers
@@ -3105,7 +3307,6 @@ void LLAppViewer::idle()
//
// Special case idle if still starting up
//
-
if (LLStartUp::getStartupState() < STATE_STARTED)
{
// Skip rest if idle startup returns false (essentially, no world yet)
@@ -3145,7 +3346,7 @@ void LLAppViewer::idle()
// When appropriate, update agent location to the simulator.
F32 agent_update_time = agent_update_timer.getElapsedTimeF32();
BOOL flags_changed = gAgent.controlFlagsDirty() || (last_control_flags != gAgent.getControlFlags());
-
+
if (flags_changed || (agent_update_time > (1.0f / (F32) AGENT_UPDATES_PER_SECOND)))
{
// Send avatar and camera info
@@ -3160,7 +3361,6 @@ void LLAppViewer::idle()
// Manage statistics
//
//
-
{
// Initialize the viewer_stats_timer with an already elapsed time
// of SEND_STATS_PERIOD so that the initial stats report will
@@ -3199,7 +3399,7 @@ void LLAppViewer::idle()
}
}
}
-
+
if (!gDisconnected)
{
LLFastTimer t(LLFastTimer::FTM_NETWORK);
@@ -3553,6 +3753,7 @@ static F32 CheckMessagesMaxTime = CHECK_MESSAGES_DEFAULT_MAX_TIME;
void LLAppViewer::idleNetwork()
{
+ LLMemType mt_in(LLMemType::MTYPE_IDLE_NETWORK);
pingMainloopTimeout("idleNetwork");
LLError::LLCallStacks::clear() ;
llpushcallstacks ;
@@ -3572,7 +3773,8 @@ void LLAppViewer::idleNetwork()
stop_glerror();
const S64 frame_count = gFrameCount; // U32->S64
F32 total_time = 0.0f;
- while (gMessageSystem->checkAllMessages(frame_count, gServicePump))
+
+ while (gMessageSystem->checkAllMessages(frame_count, gServicePump))
{
if (gDoDisconnect)
{
@@ -3601,6 +3803,7 @@ void LLAppViewer::idleNetwork()
break;
#endif
}
+
// Handle per-frame message system processing.
gMessageSystem->processAcks();
@@ -3713,6 +3916,8 @@ void LLAppViewer::disconnectViewer()
// close inventory interface, close all windows
LLInventoryView::cleanup();
+ gAgentWearables.cleanup();
+
// Also writes cached agent settings to gSavedSettings
gAgent.cleanup();
@@ -3828,6 +4033,8 @@ void LLAppViewer::pingMainloopTimeout(const std::string& state, F32 secs)
void LLAppViewer::handleLoginComplete()
{
+ gViewerWindow->handleLoginComplete();
+
initMainloopTimeout("Mainloop Init");
// Store some data to DebugInfo in case of a freeze.
diff --git a/indra/newview/llappviewer.h b/indra/newview/llappviewer.h
index a7f1594d0e..b23bd8cc81 100644
--- a/indra/newview/llappviewer.h
+++ b/indra/newview/llappviewer.h
@@ -40,6 +40,8 @@ class LLWorkerThread;
class LLTextureFetch;
class LLWatchdogTimeout;
class LLCommandLineParser;
+class LLAllocator;
+
class LLAppViewer : public LLApp
@@ -153,6 +155,8 @@ public:
// *NOTE:Mani Fix this for login abstraction!!
void handleLoginComplete();
+ LLAllocator & getAllocator() { return mAlloc; }
+
protected:
virtual bool initWindow(); // Initialize the viewer's window.
virtual bool initLogging(); // Initialize log files, logging system, return false on failure.
@@ -224,6 +228,8 @@ private:
bool mSavedFinalSnapshot;
+ bool mForceGraphicsDetail;
+
bool mQuitRequested; // User wants to quit, may have modified documents open.
bool mLogoutRequestSent; // Disconnect message sent to simulator, no longer safe to send messages to the sim.
S32 mYieldTime;
@@ -231,10 +237,13 @@ private:
LLWatchdogTimeout* mMainloopTimeout;
+ LLThread* mFastTimerLogThread;
// for tracking viewer<->region circuit death
bool mAgentRegionLastAlive;
LLUUID mAgentRegionLastID;
+ LLAllocator mAlloc;
+
public:
//some information for updater
typedef struct
diff --git a/indra/newview/llappviewermacosx.cpp b/indra/newview/llappviewermacosx.cpp
index 1c32f0c564..ca005946c9 100644
--- a/indra/newview/llappviewermacosx.cpp
+++ b/indra/newview/llappviewermacosx.cpp
@@ -188,7 +188,7 @@ bool LLAppViewerMacOSX::initParseCommandLine(LLCommandLineParser& clp)
// in the "General" tab, click the "Add Localization" button
// create a new localization for the language you're adding
// set the contents of the new localization of the file to the string corresponding to our localization
- // (i.e. "en-us", "ja", etc. Use the existing ones as a guide.)
+ // (i.e. "en", "ja", etc. Use the existing ones as a guide.)
CFURLRef url = CFBundleCopyResourceURL(CFBundleGetMainBundle(), CFSTR("language"), CFSTR("txt"), NULL);
char path[MAX_PATH];
if(CFURLGetFileSystemRepresentation(url, false, (UInt8 *)path, sizeof(path)))
@@ -391,6 +391,28 @@ void LLAppViewerMacOSX::handleCrashReporting(bool reportFreeze)
{
_exit(1);
}
+
+ // TODO:palmer REMOVE THIS VERY SOON. THIS WILL NOT BE IN VIEWER 2.0
+ // Remove the crash stack log from previous executions.
+ // Since we've started logging a new instance of the app, we can assume
+ // The old crash stack is invalid for the next crash report.
+ char path[MAX_PATH];
+ FSRef folder;
+ if(FSFindFolder(kUserDomain, kLogsFolderType, false, &folder) == noErr)
+ {
+ // folder is an FSRef to ~/Library/Logs/
+ if(FSRefMakePath(&folder, (UInt8*)&path, sizeof(path)) == noErr)
+ {
+ std::string pathname = std::string(path) + std::string("/CrashReporter/");
+ std::string mask = "Second Life*";
+ std::string file_name;
+ while(gDirUtilp->getNextFileInDir(pathname, mask, file_name, false))
+ {
+ LLFile::remove(pathname + file_name);
+ }
+ }
+ }
+
}
std::string LLAppViewerMacOSX::generateSerialNumber()
diff --git a/indra/newview/llappviewermacosx.h b/indra/newview/llappviewermacosx.h
index bc841fc3a7..0928916a57 100644
--- a/indra/newview/llappviewermacosx.h
+++ b/indra/newview/llappviewermacosx.h
@@ -55,6 +55,7 @@ protected:
virtual void handleSyncCrashTrace();
std::string generateSerialNumber();
+ virtual bool initLogging();
virtual bool initParseCommandLine(LLCommandLineParser& clp);
};
diff --git a/indra/newview/llappviewerwin32.cpp b/indra/newview/llappviewerwin32.cpp
index be5403e39a..98d7ab712b 100644
--- a/indra/newview/llappviewerwin32.cpp
+++ b/indra/newview/llappviewerwin32.cpp
@@ -160,9 +160,31 @@ int APIENTRY WINMAIN(HINSTANCE hInstance,
int nCmdShow)
{
LLMemType mt1(LLMemType::MTYPE_STARTUP);
+
+ const S32 MAX_HEAPS = 255;
+ DWORD heap_enable_lfh_error[MAX_HEAPS];
+ S32 num_heaps = 0;
#if WINDOWS_CRT_MEM_CHECKS && !INCLUDE_VLD
_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); // dump memory leaks on exit
+#elif 1
+ // Experimental - enable the low fragmentation heap
+ // This results in a 2-3x improvement in opening a new Inventory window (which uses a large numebr of allocations)
+ // Note: This won't work when running from the debugger unless the _NO_DEBUG_HEAP environment variable is set to 1
+
+ _CrtSetDbgFlag(0); // default, just making explicit
+
+ ULONG ulEnableLFH = 2;
+ HANDLE* hHeaps = new HANDLE[MAX_HEAPS];
+ num_heaps = GetProcessHeaps(MAX_HEAPS, hHeaps);
+ for(S32 i = 0; i < num_heaps; i++)
+ {
+ bool success = HeapSetInformation(hHeaps[i], HeapCompatibilityInformation, &ulEnableLFH, sizeof(ulEnableLFH));
+ if (success)
+ heap_enable_lfh_error[i] = 0;
+ else
+ heap_enable_lfh_error[i] = GetLastError();
+ }
#endif
// *FIX: global
@@ -184,8 +206,21 @@ int APIENTRY WINMAIN(HINSTANCE hInstance,
llwarns << "Application init failed." << llendl;
return -1;
}
-
- // Run the application main loop
+
+ // Have to wait until after logging is initialized to display LFH info
+ if (num_heaps > 0)
+ {
+ llinfos << "Attempted to enable LFH for " << num_heaps << " heaps." << llendl;
+ for(S32 i = 0; i < num_heaps; i++)
+ {
+ if (heap_enable_lfh_error[i])
+ {
+ llinfos << " Failed to enable LFH for heap: " << i << " Error: " << heap_enable_lfh_error[i] << llendl;
+ }
+ }
+ }
+
+ // Run the application main loop
if(!LLApp::isQuitting())
{
viewer_app_ptr->mainLoop();
diff --git a/indra/newview/llassetuploadresponders.cpp b/indra/newview/llassetuploadresponders.cpp
index 63d0518cfe..4cd9647603 100644
--- a/indra/newview/llassetuploadresponders.cpp
+++ b/indra/newview/llassetuploadresponders.cpp
@@ -172,6 +172,9 @@ void LLAssetUploadResponder::uploadUpload(const LLSD& content)
void LLAssetUploadResponder::uploadFailure(const LLSD& content)
{
+ // remove the "Uploading..." message
+ LLUploadDialog::modalUploadFinished();
+
std::string reason = content["state"];
// deal with L$ errors
if (reason == "insufficient funds")
@@ -335,11 +338,11 @@ void LLNewAgentInventoryResponder::uploadComplete(const LLSD& content)
}
LLSendTexLayerResponder::LLSendTexLayerResponder(const LLSD& post_data,
- const LLUUID& vfile_id,
- LLAssetType::EType asset_type,
- LLBakedUploadData * baked_upload_data)
- : LLAssetUploadResponder(post_data, vfile_id, asset_type),
- mBakedUploadData(baked_upload_data)
+ const LLUUID& vfile_id,
+ LLAssetType::EType asset_type,
+ LLBakedUploadData * baked_upload_data) :
+ LLAssetUploadResponder(post_data, vfile_id, asset_type),
+ mBakedUploadData(baked_upload_data)
{
}
diff --git a/indra/newview/llavatariconctrl.cpp b/indra/newview/llavatariconctrl.cpp
index 09aecd193f..807f2f035c 100644
--- a/indra/newview/llavatariconctrl.cpp
+++ b/indra/newview/llavatariconctrl.cpp
@@ -35,8 +35,8 @@
#include "llagent.h"
#include "llavatarconstants.h"
#include "llavatariconctrl.h"
-#include "llfloateravatarinfo.h"
-#include "llfloaterfriends.h"
+#include "llcallingcard.h" // for LLAvatarTracker
+#include "llfriendactions.h"
#include "llimview.h"
#include "llmenugl.h"
#include "lluictrlfactory.h"
@@ -44,10 +44,11 @@
#define MENU_ITEM_VIEW_PROFILE 0
#define MENU_ITEM_SEND_IM 1
-static LLRegisterWidget<LLAvatarIconCtrl> r("avatar_icon");
+static LLDefaultWidgetRegistry::Register<LLAvatarIconCtrl> r("avatar_icon");
LLAvatarIconCtrl::LLAvatarIconCtrl(const LLAvatarIconCtrl::Params& p)
-: LLIconCtrl(p)
+: LLIconCtrl(p),
+ mDrawTooltip(p.draw_tooltip)
{
LLRect rect = p.rect;
@@ -87,18 +88,23 @@ LLAvatarIconCtrl::LLAvatarIconCtrl(const LLAvatarIconCtrl::Params& p)
mStatusSymbol->setColor(LLColor4::grey);
addChild(mStatusSymbol);
-
+
if (p.avatar_id.isProvided())
{
LLSD value(p.avatar_id);
setValue(value);
}
+ else
+ {
+ LLIconCtrl::setValue("default_profile_picture.j2c");
+ }
+
LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar;
registrar.add("AvatarIcon.Action", boost::bind(&LLAvatarIconCtrl::onAvatarIconContextMenuItemClicked, this, _2));
- LLMenuGL* menu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_avatar_icon.xml", this);
+ LLMenuGL* menu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_avatar_icon.xml", gMenuHolder);
mPopupMenuHandle = menu->getHandle();
}
@@ -127,7 +133,7 @@ void LLAvatarIconCtrl::setValue(const LLSD& value)
if (mAvatarId != value.asUUID())
{
LLAvatarPropertiesProcessor::getInstance()->addObserver(value.asUUID(), this);
- LLAvatarPropertiesProcessor::getInstance()->sendAvatarPropertiesRequest(value.asUUID());
+ LLAvatarPropertiesProcessor::getInstance()->sendDataRequest(value.asUUID(),APT_PROPERTIES);
mAvatarId = value.asUUID();
}
}
@@ -140,28 +146,47 @@ void LLAvatarIconCtrl::setValue(const LLSD& value)
}
//virtual
-void LLAvatarIconCtrl::processAvatarProperties(const LLAvatarData& avatar_data)
+void LLAvatarIconCtrl::processProperties(void* data, EAvatarProcessorType type)
{
- if (avatar_data.avatar_id != mAvatarId)
+ if (APT_PROPERTIES == type)
{
- return;
- }
-
- // Update the avatar
- LLIconCtrl::setValue(avatar_data.image_id);
-
- // Update color of status symbol and tool tip
- if (avatar_data.flags & AVATAR_ONLINE)
- {
- mStatusSymbol->setColor(LLColor4::green);
- setToolTip((LLStringExplicit)"Online");
- }
- else
- {
- mStatusSymbol->setColor(LLColor4::grey);
- setToolTip((LLStringExplicit)"Offline");
+ LLAvatarData* avatar_data = static_cast<LLAvatarData*>(data);
+ if (avatar_data)
+ {
+ if (avatar_data->avatar_id != mAvatarId)
+ {
+ return;
+ }
+
+ // Update the avatar
+ if (avatar_data->image_id.notNull())
+ {
+ LLIconCtrl::setValue(avatar_data->image_id);
+ }
+ else
+ {
+ LLIconCtrl::setValue("default_profile_picture.j2c");
+ }
+
+ // Update color of status symbol and tool tip
+ if (avatar_data->flags & AVATAR_ONLINE)
+ {
+ mStatusSymbol->setColor(LLColor4::green);
+ if (mDrawTooltip)
+ {
+ setToolTip((LLStringExplicit)"Online");
+ }
+ }
+ else
+ {
+ mStatusSymbol->setColor(LLColor4::grey);
+ if (mDrawTooltip)
+ {
+ setToolTip((LLStringExplicit)"Offline");
+ }
+ }
+ }
}
-
}
BOOL LLAvatarIconCtrl::handleRightMouseDown(S32 x, S32 y, MASK mask)
@@ -203,7 +228,7 @@ void LLAvatarIconCtrl::onAvatarIconContextMenuItemClicked(const LLSD& userdata)
if (level == "profile")
{
- LLFloaterAvatarInfo::show(id);
+ LLFriendActions::showProfile(id);
}
else if (level == "im")
{
@@ -221,24 +246,10 @@ void LLAvatarIconCtrl::onAvatarIconContextMenuItemClicked(const LLSD& userdata)
name.append(" ");
name.append(getLastName());
- LLPanelFriends::requestFriendshipDialog(id, name);
+ LLFriendActions::requestFriendshipDialog(id, name);
}
else if (level == "remove")
{
- LLSD args;
-
- std::string msgType = "RemoveFromFriends";
-
- args["FIRST_NAME"] = getFirstName();
- args["LAST_NAME"] = getLastName();
-
- LLSD payload;
-
- payload["ids"].append(id);
-
- LLNotifications::instance().add(msgType,
- args,
- payload,
- &LLPanelFriends::handleRemove);
+ LLFriendActions::removeFriendDialog(id);
}
}
diff --git a/indra/newview/llavatariconctrl.h b/indra/newview/llavatariconctrl.h
index 4cec1d2d75..cb1e9584ba 100644
--- a/indra/newview/llavatariconctrl.h
+++ b/indra/newview/llavatariconctrl.h
@@ -44,9 +44,11 @@ public:
struct Params : public LLInitParam::Block<Params, LLIconCtrl::Params>
{
Optional <LLUUID> avatar_id;
+ Optional <bool> draw_tooltip;
Params()
{
name = "avatar_icon";
+ draw_tooltip = TRUE;
}
};
protected:
@@ -61,7 +63,7 @@ public:
virtual void setValue(const LLSD& value);
// LLAvatarPropertiesProcessor observer trigger
- virtual void processAvatarProperties(const LLAvatarData& avatar_data);
+ virtual void processProperties(void* data, EAvatarProcessorType type);
BOOL handleRightMouseDown(S32 x, S32 y, MASK mask);
@@ -81,6 +83,7 @@ protected:
std::string mFirstName;
std::string mLastName;
LLHandle<LLView> mPopupMenuHandle;
+ bool mDrawTooltip;
};
#endif // LL_LLAVATARICONCTRL_H
diff --git a/indra/newview/llavatarlist.cpp b/indra/newview/llavatarlist.cpp
new file mode 100644
index 0000000000..08f0cf8842
--- /dev/null
+++ b/indra/newview/llavatarlist.cpp
@@ -0,0 +1,163 @@
+/**
+ * @file llavatarlist.h
+ * @brief Generic avatar list
+ *
+ * $LicenseInfo:firstyear=2009&license=viewergpl$
+ *
+ * Copyright (c) 2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llavatarlist.h"
+
+// newview
+#include "llcallingcard.h" // for LLAvatarTracker
+#include "llcachename.h"
+
+static LLDefaultWidgetRegistry::Register<LLAvatarList> r("avatar_list");
+
+LLAvatarList::Params::Params()
+{
+ draw_heading = true;
+ draw_stripes = false;
+ multi_select = false;
+ column_padding = 0;
+ search_column = LIST_NAME;
+ sort_column = LIST_NAME;
+}
+
+LLAvatarList::LLAvatarList(const Params& p)
+: LLScrollListCtrl(p)
+{
+ setCommitOnSelectionChange(TRUE); // there's no such param in LLScrollListCtrl::Params
+
+ // "name" column
+ {
+ LLScrollListColumn::Params col_params;
+ col_params.name = "name";
+ col_params.header.label = "Name"; // *TODO: localize or remove the header
+ col_params.width.dynamic_width = true;
+ addColumn(col_params);
+ }
+
+ // invisible "id" column
+ {
+ LLScrollListColumn::Params col_params;
+ col_params.name = "id";
+ col_params.width.pixel_width = 0;
+ addColumn(col_params);
+ }
+
+ // The corresponding parameters don't work because we create columns dynamically.
+ sortByColumnIndex(LIST_NAME, TRUE);
+ setSearchColumn(LIST_NAME);
+}
+
+std::vector<LLUUID> LLAvatarList::getSelectedIDs()
+{
+ LLUUID selected_id;
+ std::vector<LLUUID> avatar_ids;
+ std::vector<LLScrollListItem*> selected = getAllSelected();
+ for(std::vector<LLScrollListItem*>::iterator itr = selected.begin(); itr != selected.end(); ++itr)
+ {
+ avatar_ids.push_back((*itr)->getUUID());
+ }
+ return avatar_ids;
+}
+
+void LLAvatarList::addItem(const LLUUID& id, const std::string& name, BOOL is_bold, EAddPosition pos)
+{
+ std::string fullname;
+
+ // Populate list item.
+ LLSD element;
+ element["id"] = id;
+
+ LLSD& friend_column = element["columns"][LIST_NAME];
+ friend_column["column"] = "name";
+ friend_column["value"] = name;
+
+ LLScrollListItem* new_itemp = addElement(element, pos);
+
+ // Indicate buddy online status.
+ // (looks like parsing font parameters from LLSD is broken)
+ if (is_bold)
+ {
+ LLScrollListText* name_textp = dynamic_cast<LLScrollListText*>(new_itemp->getColumn(LIST_NAME));
+ if (name_textp)
+ name_textp->setFontStyle(LLFontGL::BOLD);
+ else
+ {
+ llwarns << "Name column not found" << llendl;
+ }
+ }
+}
+
+BOOL LLAvatarList::updateList(const std::vector<LLUUID>& all_buddies)
+{
+ BOOL have_names = TRUE;
+
+ // Save selection.
+ std::vector<LLUUID> selected_ids = getSelectedIDs();
+ LLUUID current_id = getCurrentID();
+ S32 pos = getScrollPos();
+
+ std::vector<LLUUID>::const_iterator buddy_it = all_buddies.begin();
+ deleteAllItems();
+ for(; buddy_it != all_buddies.end(); ++buddy_it)
+ {
+ std::string name;
+ const LLUUID& buddy_id = *buddy_it;
+ have_names &= gCacheName->getFullName(buddy_id, name);
+ addItem(buddy_id, name, LLAvatarTracker::instance().isBuddyOnline(buddy_id));
+ }
+
+ // Changed item in place, need to request sort and update columns
+ // because we might have changed data in a column on which the user
+ // has already sorted. JC
+ sortItems();
+
+ // re-select items
+ selectMultiple(selected_ids);
+ setCurrentByID(current_id);
+#if 0
+ // Restore selection.
+ if(selected_ids.size() > 0)
+ {
+ // only non-null if friends was already found. This may fail,
+ // but we don't really care here, because refreshUI() will
+ // clean up the interface.
+ for(std::vector<LLUUID>::iterator itr = selected_ids.begin(); itr != selected_ids.end(); ++itr)
+ {
+ setSelectedByValue(*itr, true);
+ }
+ }
+#endif
+ setScrollPos(pos);
+
+ return have_names;
+}
diff --git a/indra/newview/llavatarlist.h b/indra/newview/llavatarlist.h
new file mode 100644
index 0000000000..9bd9ce8e0e
--- /dev/null
+++ b/indra/newview/llavatarlist.h
@@ -0,0 +1,63 @@
+/**
+ * @file llavatarlist.h
+ * @brief Generic avatar list
+ *
+ * $LicenseInfo:firstyear=2009&license=viewergpl$
+ *
+ * Copyright (c) 2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#ifndef LL_LLAVATARLIST_H
+#define LL_LLAVATARLIST_H
+
+#include <llscrolllistctrl.h>
+
+// *TODO: derive from ListView when it's ready.
+class LLAvatarList : public LLScrollListCtrl
+{
+ LOG_CLASS(LLAvatarList);
+public:
+ struct Params : public LLInitParam::Block<Params, LLScrollListCtrl::Params>
+ {
+ Params();
+ };
+
+ enum AVATAR_LIST_COLUMN_ORDER
+ {
+ LIST_NAME,
+ };
+
+ LLAvatarList(const Params&);
+ virtual ~LLAvatarList() {}
+
+ BOOL updateList(const std::vector<LLUUID>& all_buddies);
+
+protected:
+ std::vector<LLUUID> getSelectedIDs();
+ void addItem(const LLUUID& id, const std::string& name, BOOL is_bold, EAddPosition pos = ADD_BOTTOM);
+};
+
+#endif // LL_LLAVATARLIST_H
diff --git a/indra/newview/llavatarlistitem.cpp b/indra/newview/llavatarlistitem.cpp
new file mode 100644
index 0000000000..80b80dc228
--- /dev/null
+++ b/indra/newview/llavatarlistitem.cpp
@@ -0,0 +1,273 @@
+/**
+ * @file llavatarlistitem.cpp
+ * @avatar list item source file
+ *
+ * $LicenseInfo:firstyear=2004&license=viewergpl$
+ *
+ * Copyright (c) 2004-2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llfloaterreg.h"
+#include "llavatarlistitem.h"
+#include "llagent.h"
+
+
+
+//---------------------------------------------------------------------------------
+LLAvatarListItem::LLAvatarListItem(const Params& p) : LLPanel()
+{
+ mNeedsArrange = false;
+ LLUICtrlFactory::getInstance()->buildPanel(this, "panel_avatar_list_item.xml");
+
+ mStatus = NULL;
+ mInfo = NULL;
+ mProfile = NULL;
+ mini_inspector = NULL;
+
+ mAvatar = getChild<LLAvatarIconCtrl>("avatar_icon");
+ //mAvatar->setValue(p.avatar_icon);
+ mName = getChild<LLTextBox>("name");
+ //mName->setText(p.user_name);
+
+ init(p);
+
+
+}
+
+//---------------------------------------------------------------------------------
+void LLAvatarListItem::init(const Params& p)
+{
+ mLocator = getChild<LLIconCtrl>("locator");
+
+ mStatus = getChild<LLTextBox>("user_status");
+
+ mInfo = getChild<LLButton>("info_btn");
+ mInfo->setVisible(false);
+
+ mProfile = getChild<LLButton>("profile_btn");
+ mProfile->setVisible(false);
+
+ if(!p.buttons.locator)
+ {
+ mLocator->setVisible(false);
+ delete mLocator;
+ mLocator = NULL;
+ }
+
+ if(!p.buttons.status)
+ {
+ mStatus->setVisible(false);
+ delete mStatus;
+ mStatus = NULL;
+ }
+
+ if(!p.buttons.info)
+ {
+ delete mInfo;
+ mInfo = NULL;
+ }
+ else
+ {
+ mInfo->setClickedCallback(boost::bind(&LLAvatarListItem::onInfoBtnClick, this));
+ }
+
+ if(!p.buttons.profile)
+ {
+ delete mProfile;
+ mProfile = NULL;
+
+ LLRect rect;
+
+ rect.setLeftTopAndSize(mName->getRect().mLeft, mName->getRect().mTop, mName->getRect().getWidth() + 30, mName->getRect().getHeight());
+ mName->setRect(rect);
+
+ if(mStatus)
+ {
+ rect.setLeftTopAndSize(mStatus->getRect().mLeft + 30, mStatus->getRect().mTop, mStatus->getRect().getWidth(), mStatus->getRect().getHeight());
+ mStatus->setRect(rect);
+ }
+
+ if(mLocator)
+ {
+ rect.setLeftTopAndSize(mLocator->getRect().mLeft + 30, mLocator->getRect().mTop, mLocator->getRect().getWidth(), mLocator->getRect().getHeight());
+ mLocator->setRect(rect);
+ }
+
+ if(mInfo)
+ {
+ rect.setLeftTopAndSize(mInfo->getRect().mLeft + 30, mInfo->getRect().mTop, mInfo->getRect().getWidth(), mInfo->getRect().getHeight());
+ mInfo->setRect(rect);
+ }
+ }
+
+}
+
+//---------------------------------------------------------------------------------
+void LLAvatarListItem::reshape(S32 width, S32 height, BOOL called_from_parent)
+{
+ if(!mNeedsArrange)
+ {
+ LLView::reshape(width, height, called_from_parent);
+ return;
+ }
+
+ LLRect rect;
+ S32 profile_delta = 0;
+ S32 width_delta = getRect().getWidth() - width;
+
+ if(!mProfile)
+ {
+ profile_delta = 30;
+ }
+ else
+ {
+ rect.setLeftTopAndSize(mProfile->getRect().mLeft - width_delta, mProfile->getRect().mTop, mProfile->getRect().getWidth(), mProfile->getRect().getHeight());
+ mProfile->setRect(rect);
+ }
+
+ width_delta += profile_delta;
+
+ if(mInfo)
+ {
+ rect.setLeftTopAndSize(mInfo->getRect().mLeft - width_delta, mInfo->getRect().mTop, mInfo->getRect().getWidth(), mInfo->getRect().getHeight());
+ mInfo->setRect(rect);
+ }
+
+ if(mLocator)
+ {
+ rect.setLeftTopAndSize(mLocator->getRect().mLeft - width_delta, mLocator->getRect().mTop, mLocator->getRect().getWidth(), mLocator->getRect().getHeight());
+ mLocator->setRect(rect);
+ }
+
+ if(mStatus)
+ {
+ rect.setLeftTopAndSize(mStatus->getRect().mLeft - width_delta, mStatus->getRect().mTop, mStatus->getRect().getWidth(), mStatus->getRect().getHeight());
+ mStatus->setRect(rect);
+ }
+
+ mNeedsArrange = false;
+ LLView::reshape(width, height, called_from_parent);
+}
+
+//---------------------------------------------------------------------------------
+LLAvatarListItem::~LLAvatarListItem()
+{
+}
+//---------------------------------------------------------------------------------
+
+//---------------------------------------------------------------------------------
+BOOL LLAvatarListItem::handleHover(S32 x, S32 y, MASK mask)
+{
+ mYPos = y;
+ mXPos = x;
+
+ return true;
+}
+
+//---------------------------------------------------------------------------------
+void LLAvatarListItem::onMouseEnter(S32 x, S32 y, MASK mask)
+{
+ setTransparentColor( *(new LLColor4((F32)0.4, (F32)0.4, (F32)0.4)) );
+
+ if(mInfo)
+ mInfo->setVisible(true);
+
+ if(mProfile)
+ mProfile->setVisible(true);
+}
+
+//---------------------------------------------------------------------------------
+void LLAvatarListItem::onMouseLeave(S32 x, S32 y, MASK mask)
+{
+ if(mInfo)
+ {
+ if( mInfo->getRect().pointInRect(x, y) )
+ return;
+
+ mInfo->setVisible(false);
+ }
+
+ if(mProfile)
+ {
+ if( mProfile->getRect().pointInRect(x, y) )
+ return;
+
+ mProfile->setVisible(false);
+ }
+
+ setTransparentColor( *(new LLColor4((F32)0.3, (F32)0.3, (F32)0.3)) );
+}
+
+//---------------------------------------------------------------------------------
+void LLAvatarListItem::setStatus(int status)
+{
+}
+
+//---------------------------------------------------------------------------------
+void LLAvatarListItem::setName(std::string name)
+{
+}
+
+//---------------------------------------------------------------------------------
+void LLAvatarListItem::setAvatar(LLSD& data)
+{
+}
+
+//---------------------------------------------------------------------------------
+void LLAvatarListItem::onInfoBtnClick()
+{
+ mini_inspector = LLFloaterReg::showInstance("mini_inspector", gAgent.getID());
+
+ if (!mini_inspector)
+ return;
+
+ LLRect rect;
+ localPointToScreen(mXPos, mYPos, &mXPos, &mYPos);
+
+
+ // *TODO Vadim: rewrite this. "+= -" looks weird.
+ S32 delta = mYPos - mini_inspector->getRect().getHeight();
+ if(delta < 0)
+ {
+ mYPos += -delta;
+ }
+
+ rect.setLeftTopAndSize(mXPos, mYPos, mini_inspector->getRect().getWidth(), mini_inspector->getRect().getHeight());
+ mini_inspector->setRect(rect);
+ mini_inspector->setFrontmost(true);
+ mini_inspector->setVisible(true);
+
+}
+
+//---------------------------------------------------------------------------------
+void LLAvatarListItem::onProfileBtnClick()
+{
+}
+
+//---------------------------------------------------------------------------------
diff --git a/indra/newview/llavatarlistitem.h b/indra/newview/llavatarlistitem.h
new file mode 100644
index 0000000000..5835a4c6b4
--- /dev/null
+++ b/indra/newview/llavatarlistitem.h
@@ -0,0 +1,102 @@
+/**
+ * @file llavatarlistitem.h
+ * @avatar list item header file
+ *
+ * $LicenseInfo:firstyear=2004&license=viewergpl$
+ *
+ * Copyright (c) 2004-2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#include "llavatariconctrl.h"
+#include <llview.h>
+#include <llpanel.h>
+#include <llfloater.h>
+#include <lltextbox.h>
+#include <llbutton.h>
+#include <lluuid.h>
+
+#include "llfloaterminiinspector.h"
+
+class LLAvatarListItem : public LLPanel
+{
+public:
+ struct Params : public LLInitParam::Block<Params, LLPanel::Params>
+ {
+ Optional<LLUUID> avatar_icon;
+ Optional<std::string> user_name;
+ struct avatar_list_item_buttons
+ {
+ bool status;
+ bool info;
+ bool profile;
+ bool locator;
+ avatar_list_item_buttons() : status(true), info(true), profile(true), locator(true)
+ {};
+ } buttons;
+
+ Params() : avatar_icon("avatar_icon",LLUUID()), user_name("user_name","")
+ {};
+ };
+
+
+ LLAvatarListItem(const Params& p);
+ virtual ~LLAvatarListItem();
+
+ void reshape(S32 width, S32 height, BOOL called_from_parent);
+
+ //interface
+ void setStatus(int status);
+ void setName(std::string name);
+ void setAvatar(LLSD& data);
+ void needsArrange( void ) {mNeedsArrange = true;}
+
+
+ //event handlers
+ //mouse
+ virtual BOOL handleHover(S32 x, S32 y, MASK mask);
+ virtual void onMouseLeave(S32 x, S32 y, MASK mask);
+ virtual void onMouseEnter(S32 x, S32 y, MASK mask);
+ //buttons
+ void onInfoBtnClick();
+ void onProfileBtnClick();
+
+private:
+ LLAvatarIconCtrl* mAvatar;
+ LLIconCtrl* mLocator;
+ LLTextBox* mName;
+ LLTextBox* mStatus;
+ LLButton* mInfo;
+ LLButton* mProfile;
+
+ S32 mYPos;
+ S32 mXPos;
+
+ LLFloater* mini_inspector;
+ bool mNeedsArrange;
+
+ //
+ void init(const Params& p);
+};
diff --git a/indra/newview/llavatarpropertiesprocessor.cpp b/indra/newview/llavatarpropertiesprocessor.cpp
index 6ff5c8f625..e27da5663b 100644
--- a/indra/newview/llavatarpropertiesprocessor.cpp
+++ b/indra/newview/llavatarpropertiesprocessor.cpp
@@ -30,15 +30,21 @@
* $/LicenseInfo$
*/
-#include "llviewerprecompiledheaders.h"
-
+#include "llviewerprecompiledheaders.h"
+
#include "llavatarpropertiesprocessor.h"
+
#include "message.h"
#include "llagent.h"
+#include "llviewergenericmessage.h"
+
+LLAvatarPropertiesProcessor::LLAvatarPropertiesProcessor()
+{
+}
void LLAvatarPropertiesProcessor::addObserver(const LLUUID& avatar_id, LLAvatarPropertiesObserver* observer)
{
- // Check if that observer is alredy in mObservers for that avatar_id
+ // Check if that observer is already in mObservers for that avatar_id
observer_multimap_t::iterator it;
// IAN BUG this should update the observer's UUID if this is a dupe - sent to PE
@@ -81,11 +87,41 @@ void LLAvatarPropertiesProcessor::removeObserver(const LLUUID& avatar_id, LLAvat
}
}
+void LLAvatarPropertiesProcessor::sendDataRequest(const LLUUID& avatar_id, EAvatarProcessorType type,
+ const void * data)
+{
+ switch(type)
+ {
+ case APT_PROPERTIES:
+ sendAvatarPropertiesRequest(avatar_id);
+ break;
+ case APT_PICKS:
+ sendGenericRequest(avatar_id, "avatarpicksrequest");
+ break;
+ case APT_PICK_INFO:
+ if (data) {
+ sendPickInfoRequest(avatar_id, *static_cast<const LLUUID*>(data));
+ }
+ case APT_NOTES:
+ sendGenericRequest(avatar_id, "avatarnotesrequest");
+ break;
+ case APT_GROUPS:
+ sendGenericRequest(avatar_id, "avatargroupsrequest");
+ break;
+ default:
+ break;
+ }
+}
+
+void LLAvatarPropertiesProcessor::sendGenericRequest(const LLUUID& avatar_id, const std::string method)
+{
+ std::vector<std::string> strings;
+ strings.push_back( avatar_id.asString() );
+ send_generic_message(method, strings);
+}
-// IAN BUG - this is in no way linked to observers... problem?
void LLAvatarPropertiesProcessor::sendAvatarPropertiesRequest(const LLUUID& avatar_id)
{
- lldebugs << "LLAvatarPropertiesProcessor::sendAvatarPropertiesRequest()" << llendl;
LLMessageSystem *msg = gMessageSystem;
msg->newMessageFast(_PREHASH_AvatarPropertiesRequest);
@@ -94,45 +130,312 @@ void LLAvatarPropertiesProcessor::sendAvatarPropertiesRequest(const LLUUID& avat
msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
msg->addUUIDFast( _PREHASH_AvatarID, avatar_id);
gAgent.sendReliableMessage();
+}
+
+void LLAvatarPropertiesProcessor::sendDataUpdate(const void* data, EAvatarProcessorType type)
+{
+ switch(type)
+ {
+ case APT_PROPERTIES:
+ sendAvatarPropertiesUpdate(data);
+ break;
+ case APT_PICK_INFO:
+ sendPicInfoUpdate(data);
+ case APT_PICKS:
+// sendGenericRequest(avatar_id, "avatarpicksrequest");
+ break;
+ case APT_NOTES:
+// sendGenericRequest(avatar_id, "avatarnotesrequest");
+ break;
+ case APT_GROUPS:
+// sendGenericRequest(avatar_id, "avatargroupsrequest");
+ break;
+ default:
+ break;
+ }
}
+void LLAvatarPropertiesProcessor::sendAvatarPropertiesUpdate(const void* data)
+{
+ llinfos << "Sending avatarinfo update" << llendl;
+
+ const LLAvatarData* avatar_props = static_cast<const LLAvatarData*>(data);
+ // This value is required by sendAvatarPropertiesUpdate method.
+ //A profile should never be mature. (From the original code)
+ BOOL mature = FALSE;
+
-// static
-void LLAvatarPropertiesProcessor::processAvatarPropertiesReply(LLMessageSystem *msg, void**)
+
+ LLMessageSystem *msg = gMessageSystem;
+
+ msg->newMessageFast(_PREHASH_AvatarPropertiesUpdate);
+ msg->nextBlockFast(_PREHASH_AgentData);
+ msg->addUUIDFast( _PREHASH_AgentID, gAgent.getID() );
+ msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID() );
+ msg->nextBlockFast(_PREHASH_PropertiesData);
+
+ msg->addUUIDFast( _PREHASH_ImageID, avatar_props->image_id);
+ msg->addUUIDFast( _PREHASH_FLImageID, avatar_props->fl_image_id);
+ msg->addStringFast( _PREHASH_AboutText, avatar_props->about_text);
+ msg->addStringFast( _PREHASH_FLAboutText, avatar_props->fl_about_text);
+
+ msg->addBOOL(_PREHASH_AllowPublish, avatar_props->allow_publish);
+ msg->addBOOL(_PREHASH_MaturePublish, mature);
+ msg->addString(_PREHASH_ProfileURL, avatar_props->profile_url);
+ gAgent.sendReliableMessage();
+}
+
+void LLAvatarPropertiesProcessor::processAvatarPropertiesReply(LLMessageSystem* msg, void**)
{
LLAvatarData avatar_data;
- msg->getUUIDFast( _PREHASH_AgentData, _PREHASH_AgentID, avatar_data.agent_id);
- msg->getUUIDFast( _PREHASH_AgentData, _PREHASH_AvatarID, avatar_data.avatar_id);
- msg->getUUIDFast( _PREHASH_PropertiesData, _PREHASH_ImageID, avatar_data.image_id);
- msg->getUUIDFast( _PREHASH_PropertiesData, _PREHASH_FLImageID, avatar_data.fl_image_id);
- msg->getUUIDFast( _PREHASH_PropertiesData, _PREHASH_PartnerID, avatar_data.partner_id);
- msg->getStringFast( _PREHASH_PropertiesData, _PREHASH_AboutText, avatar_data.about_text);
+ msg->getUUIDFast( _PREHASH_AgentData, _PREHASH_AgentID, avatar_data.agent_id);
+ msg->getUUIDFast( _PREHASH_AgentData, _PREHASH_AvatarID, avatar_data.avatar_id);
+ msg->getUUIDFast( _PREHASH_PropertiesData, _PREHASH_ImageID, avatar_data.image_id);
+ msg->getUUIDFast( _PREHASH_PropertiesData, _PREHASH_FLImageID, avatar_data.fl_image_id);
+ msg->getUUIDFast( _PREHASH_PropertiesData, _PREHASH_PartnerID, avatar_data.partner_id);
+ msg->getStringFast( _PREHASH_PropertiesData, _PREHASH_AboutText, avatar_data.about_text);
msg->getStringFast( _PREHASH_PropertiesData, _PREHASH_FLAboutText, avatar_data.fl_about_text);
- msg->getStringFast( _PREHASH_PropertiesData, _PREHASH_BornOn, avatar_data.born_on);
- msg->getString( "PropertiesData", "ProfileURL", avatar_data.profile_url);
- msg->getU32Fast( _PREHASH_PropertiesData, _PREHASH_Flags, avatar_data.flags);
+ msg->getStringFast( _PREHASH_PropertiesData, _PREHASH_BornOn, avatar_data.born_on);
+ msg->getString( _PREHASH_PropertiesData, _PREHASH_ProfileURL, avatar_data.profile_url);
+ msg->getU32Fast( _PREHASH_PropertiesData, _PREHASH_Flags, avatar_data.flags);
+
avatar_data.caption_index = 0;
S32 charter_member_size = 0;
- charter_member_size = msg->getSize("PropertiesData", "CharterMember");
+ charter_member_size = msg->getSize(_PREHASH_PropertiesData, _PREHASH_CharterMember);
if(1 == charter_member_size)
{
- msg->getBinaryData("PropertiesData", "CharterMember", &avatar_data.caption_index, 1);
+ msg->getBinaryData(_PREHASH_PropertiesData, _PREHASH_CharterMember, &avatar_data.caption_index, 1);
}
else if(1 < charter_member_size)
{
- msg->getString("PropertiesData", "CharterMember", avatar_data.caption_text);
+ msg->getString(_PREHASH_PropertiesData, _PREHASH_CharterMember, avatar_data.caption_text);
+ }
+ notifyObservers(avatar_data.avatar_id,&avatar_data,APT_PROPERTIES);
+}
+
+void LLAvatarPropertiesProcessor::processAvatarInterestsReply(LLMessageSystem* msg, void**)
+{
+/*
+ AvatarInterestsReply is automatically sent by the server in response to the
+ AvatarPropertiesRequest sent when the panel is opened (in addition to the AvatarPropertiesReply message).
+ If the interests panel is no longer part of the design (?) we should just register the message
+ to a handler function that does nothing.
+ That will suppress the warnings and be compatible with old server versions.
+ WARNING: LLTemplateMessageReader::decodeData: Message from 216.82.37.237:13000 with no handler function received: AvatarInterestsReply
+*/
+}
+void LLAvatarPropertiesProcessor::processAvatarClassifiedReply(LLMessageSystem* msg, void**)
+{
+ // avatarclassifiedsrequest is not sent according to new UI design but
+ // keep this method according to resolved issues.
+}
+void LLAvatarPropertiesProcessor::processAvatarNotesReply(LLMessageSystem* msg, void**)
+{
+ LLAvatarNotes avatar_notes;
+
+ msg->getUUID(_PREHASH_AgentData, _PREHASH_AgentID, avatar_notes.agent_id);
+ msg->getUUID(_PREHASH_Data, _PREHASH_TargetID, avatar_notes.target_id);
+ msg->getString(_PREHASH_Data, _PREHASH_Notes, avatar_notes.notes);
+
+ notifyObservers(avatar_notes.target_id,&avatar_notes,APT_NOTES);
+}
+
+void LLAvatarPropertiesProcessor::processAvatarPicksReply(LLMessageSystem* msg, void**)
+{
+ LLAvatarPicks avatar_picks;
+ msg->getUUID(_PREHASH_AgentData, _PREHASH_AgentID, avatar_picks.target_id);
+ msg->getUUID(_PREHASH_AgentData, _PREHASH_TargetID, avatar_picks.target_id);
+
+ S32 block_count = msg->getNumberOfBlocks(_PREHASH_Data);
+ for (int block = 0; block < block_count; ++block)
+ {
+ LLUUID pick_id;
+ std::string pick_name;
+
+ msg->getUUID(_PREHASH_Data, _PREHASH_PickID, pick_id, block);
+ msg->getString(_PREHASH_Data, _PREHASH_PickName, pick_name, block);
+
+ avatar_picks.picks_list.push_back(std::make_pair(pick_id,pick_name));
}
+ notifyObservers(avatar_picks.target_id,&avatar_picks,APT_PICKS);
+}
+
+void LLAvatarPropertiesProcessor::processPickInfoReply(LLMessageSystem* msg, void**)
+{
+ LLPickData pick_data;
+
+ // Extract the agent id and verify the message is for this
+ // client.
+ msg->getUUID(_PREHASH_AgentData, _PREHASH_AgentID, pick_data.agent_id );
+ msg->getUUID(_PREHASH_Data, _PREHASH_PickID, pick_data.pick_id);
+ msg->getUUID(_PREHASH_Data, _PREHASH_CreatorID, pick_data.creator_id);
+
+ // ** top_pick should be deleted, not being used anymore - angela
+ msg->getBOOL(_PREHASH_Data, _PREHASH_TopPick, pick_data.top_pick);
+ msg->getUUID(_PREHASH_Data, _PREHASH_ParcelID, pick_data.parcel_id);
+ msg->getString(_PREHASH_Data, _PREHASH_Name, pick_data.name);
+ msg->getString(_PREHASH_Data, _PREHASH_Desc, pick_data.desc);
+ msg->getUUID(_PREHASH_Data, _PREHASH_SnapshotID, pick_data.snapshot_id);
+
+ // "Location text" is actually the owner name, the original
+ // name that owner gave the parcel, and the location.
+ msg->getString(_PREHASH_Data, _PREHASH_User, pick_data.location_text);
+ pick_data.location_text.append(", ");
+ msg->getString(_PREHASH_Data, _PREHASH_OriginalName, pick_data.original_name);
+ if (!pick_data.original_name.empty())
+ {
+ pick_data.location_text.append(pick_data.original_name);
+ pick_data.location_text.append(", ");
+ }
+
+ msg->getString(_PREHASH_Data, _PREHASH_SimName, pick_data.sim_name);
+ pick_data.location_text.append(pick_data.sim_name);
+ pick_data.location_text.append(" ");
+
+ msg->getVector3d(_PREHASH_Data, _PREHASH_PosGlobal, pick_data.pos_global);
+ S32 region_x = llround((F32)pick_data.pos_global.mdV[VX]) % REGION_WIDTH_UNITS;
+ S32 region_y = llround((F32)pick_data.pos_global.mdV[VY]) % REGION_WIDTH_UNITS;
+ S32 region_z = llround((F32)pick_data.pos_global.mdV[VZ]);
+ pick_data.location_text.append(llformat("(%d, %d, %d)", region_x, region_y, region_z));
+
+ msg->getS32(_PREHASH_Data, _PREHASH_SortOrder, pick_data.sort_order);
+ msg->getBOOL(_PREHASH_Data, _PREHASH_Enabled, pick_data.enabled);
+
+ notifyObservers(pick_data.agent_id, &pick_data, APT_PICK_INFO);
+}
+
+void LLAvatarPropertiesProcessor::processAvatarGroupsReply(LLMessageSystem* msg, void**)
+{
+ LLAvatarGroups avatar_groups;
+ msg->getUUIDFast(_PREHASH_AgentData, _PREHASH_AgentID, avatar_groups.agent_id );
+ msg->getUUIDFast(_PREHASH_AgentData, _PREHASH_AvatarID, avatar_groups.avatar_id );
+
+ S32 group_count = msg->getNumberOfBlocksFast(_PREHASH_GroupData);
+ for(S32 i = 0; i < group_count; ++i)
+ {
+ LLAvatarGroups::LLGroupData group_data;
+
+ msg->getU64( _PREHASH_GroupData, _PREHASH_GroupPowers, group_data.group_powers, i );
+ msg->getStringFast(_PREHASH_GroupData, _PREHASH_GroupTitle, group_data.group_title, i );
+ msg->getUUIDFast( _PREHASH_GroupData, _PREHASH_GroupID, group_data.group_id, i);
+ msg->getStringFast(_PREHASH_GroupData, _PREHASH_GroupName, group_data.group_name, i );
+ msg->getUUIDFast( _PREHASH_GroupData, _PREHASH_GroupInsigniaID, group_data.group_insignia_id, i );
+
+ avatar_groups.group_list.push_back(group_data);
+ }
+
+ notifyObservers(avatar_groups.avatar_id,&avatar_groups,APT_GROUPS);
+}
+
+void LLAvatarPropertiesProcessor::notifyObservers(const LLUUID& id,void* data, EAvatarProcessorType type)
+{
LLAvatarPropertiesProcessor::observer_multimap_t observers = LLAvatarPropertiesProcessor::getInstance()->mObservers;
- observer_multimap_t::iterator oi = observers.find(avatar_data.avatar_id);
- observer_multimap_t::iterator end = observers.upper_bound(avatar_data.avatar_id);
+ observer_multimap_t::iterator oi = observers.lower_bound(id);
+ observer_multimap_t::iterator end = observers.upper_bound(id);
for (; oi != end; ++oi)
{
- oi->second->processAvatarProperties(avatar_data);
+ oi->second->processProperties(data,type);
+ }
+}
+
+void LLAvatarPropertiesProcessor::sendFriendRights(const LLUUID& avatar_id, S32 rights)
+{
+ if(!avatar_id.isNull())
+ {
+ LLMessageSystem* msg = gMessageSystem;
+
+ // setup message header
+ msg->newMessageFast(_PREHASH_GrantUserRights);
+ msg->nextBlockFast(_PREHASH_AgentData);
+ msg->addUUID(_PREHASH_AgentID, gAgent.getID());
+ msg->addUUID(_PREHASH_SessionID, gAgent.getSessionID());
+
+ msg->nextBlockFast(_PREHASH_Rights);
+ msg->addUUID(_PREHASH_AgentRelated, avatar_id);
+ msg->addS32(_PREHASH_RelatedRights, rights);
+
+ gAgent.sendReliableMessage();
+ }
+}
+
+void LLAvatarPropertiesProcessor::sendNotes(const LLUUID& avatar_id, const std::string notes)
+{
+ if(!avatar_id.isNull())
+ {
+ LLMessageSystem* msg = gMessageSystem;
+
+ // setup message header
+ msg->newMessageFast(_PREHASH_AvatarNotesUpdate);
+ msg->nextBlockFast(_PREHASH_AgentData);
+ msg->addUUID(_PREHASH_AgentID, gAgent.getID());
+ msg->addUUID(_PREHASH_SessionID, gAgent.getSessionID());
+
+ msg->nextBlockFast(_PREHASH_Data);
+ msg->addUUID(_PREHASH_TargetID, avatar_id);
+ msg->addString(_PREHASH_Notes, notes);
+
+ gAgent.sendReliableMessage();
}
}
+
+void LLAvatarPropertiesProcessor::sendPickDelete( const LLUUID& pick_id )
+{
+ LLMessageSystem* msg = gMessageSystem;
+ msg->newMessage(_PREHASH_PickDelete);
+ msg->nextBlock(_PREHASH_AgentData);
+ msg->addUUID(_PREHASH_AgentID, gAgent.getID());
+ msg->addUUID(_PREHASH_SessionID, gAgent.getSessionID());
+ msg->nextBlock(_PREHASH_Data);
+ msg->addUUID(_PREHASH_PickID, pick_id);
+ gAgent.sendReliableMessage();
+}
+
+void LLAvatarPropertiesProcessor::sendPicInfoUpdate(const void* pick_data)
+{
+ if (!pick_data) return;
+ const LLPickData *new_pick = static_cast<const LLPickData*>(pick_data);
+ if (!new_pick) return;
+
+ LLMessageSystem* msg = gMessageSystem;
+
+ msg->newMessage(_PREHASH_PickInfoUpdate);
+ msg->nextBlock(_PREHASH_AgentData);
+ msg->addUUID(_PREHASH_AgentID, gAgent.getID());
+ msg->addUUID(_PREHASH_SessionID, gAgent.getSessionID());
+
+ msg->nextBlock(_PREHASH_Data);
+ msg->addUUID(_PREHASH_PickID, new_pick->pick_id);
+ msg->addUUID(_PREHASH_CreatorID, new_pick->creator_id);
+
+ //legacy var need to be deleted
+ msg->addBOOL(_PREHASH_TopPick, FALSE);
+
+ // fills in on simulator if null
+ msg->addUUID(_PREHASH_ParcelID, new_pick->parcel_id);
+ msg->addString(_PREHASH_Name, new_pick->name);
+ msg->addString(_PREHASH_Desc, new_pick->desc);
+ msg->addUUID(_PREHASH_SnapshotID, new_pick->snapshot_id);
+ msg->addVector3d(_PREHASH_PosGlobal, new_pick->pos_global);
+
+ // Only top picks have a sort order
+ msg->addS32(_PREHASH_SortOrder, 0);
+
+ msg->addBOOL(_PREHASH_Enabled, new_pick->enabled);
+ gAgent.sendReliableMessage();
+}
+
+void LLAvatarPropertiesProcessor::sendPickInfoRequest(const LLUUID& creator_id, const LLUUID& pick_id)
+{
+ // Must ask for a pick based on the creator id because
+ // the pick database is distributed to the inventory cluster. JC
+ std::vector<std::string> request_params;
+ request_params.push_back(creator_id.asString() );
+ request_params.push_back(pick_id.asString() );
+ send_generic_message("pickinforequest", request_params);
+}
diff --git a/indra/newview/llavatarpropertiesprocessor.h b/indra/newview/llavatarpropertiesprocessor.h
index e8c0e253d7..4d50541d9a 100644
--- a/indra/newview/llavatarpropertiesprocessor.h
+++ b/indra/newview/llavatarpropertiesprocessor.h
@@ -36,12 +36,30 @@
#include "lluuid.h"
#include <map>
+/*
+*TODO Vadim: This needs some refactoring:
+- Remove EAvatarProcessorType in favor of separate observers, derived from a common parent (to get rid of void*).
+*/
+
+/*
+*TODO: mantipov: get rid of sendDataRequest and sendDataUpdate methods. Use exact methods instead of.
+*/
+
class LLMessageSystem;
+enum EAvatarProcessorType
+{
+ APT_PROPERTIES,
+ APT_NOTES,
+ APT_GROUPS,
+ APT_PICKS,
+ APT_PICK_INFO
+};
+
struct LLAvatarData
{
LLUUID agent_id;
- LLUUID avatar_id;
+ LLUUID avatar_id; //target id
LLUUID image_id;
LLUUID fl_image_id;
LLUUID partner_id;
@@ -49,32 +67,140 @@ struct LLAvatarData
std::string fl_about_text;
std::string born_on;
std::string profile_url;
- U8 caption_index;
+ U8 caption_index;
std::string caption_text;
- U32 flags;
+ U32 flags;
+ BOOL allow_publish;
+};
+
+struct LLAvatarPicks
+{
+ LLUUID agent_id;
+ LLUUID target_id; //target id
+
+ typedef std::pair<LLUUID,std::string> pick_data_t;
+ typedef std::list< pick_data_t> picks_list_t;
+ picks_list_t picks_list;
+};
+
+struct LLPickData
+{
+ LLUUID agent_id;
+ LLUUID pick_id;
+ LLUUID creator_id;
+ BOOL top_pick;
+ LLUUID parcel_id;
+ std::string name;
+ std::string desc;
+ LLUUID snapshot_id;
+ LLVector3d pos_global;
+ S32 sort_order;
+ BOOL enabled;
+
+ //used only in read requests
+ std::string location_text;
+ std::string original_name;
+ std::string sim_name;
+
+ //used only in write (update) requests
+ LLUUID session_id;
+
+};
+
+struct LLAvatarNotes
+{
+ LLUUID agent_id;
+ LLUUID target_id; //target id
+ std::string notes;
+};
+
+struct LLAvatarGroups
+{
+ LLUUID agent_id;
+ LLUUID avatar_id; //target id
+ BOOL list_in_profile;
+
+ struct LLGroupData;
+ typedef std::list<LLGroupData> group_list_t;
+
+ group_list_t group_list;
+
+ struct LLGroupData
+ {
+ U64 group_powers;
+ BOOL accept_notices;
+ std::string group_title;
+ LLUUID group_id;
+ std::string group_name;
+ LLUUID group_insignia_id;
+ };
};
class LLAvatarPropertiesObserver
{
public:
virtual ~LLAvatarPropertiesObserver() {}
- virtual void processAvatarProperties(const LLAvatarData& avatar_data) = 0;
+ virtual void processProperties(void* data, EAvatarProcessorType type) = 0;
};
-class LLAvatarPropertiesProcessor : public LLSingleton<LLAvatarPropertiesProcessor>
+class LLAvatarPropertiesProcessor
+ : public LLSingleton<LLAvatarPropertiesProcessor>
{
-
public:
- virtual ~LLAvatarPropertiesProcessor() {}
- void addObserver(const LLUUID& avatar_id, LLAvatarPropertiesObserver* observer);
- void removeObserver(const LLUUID& avatar_id, LLAvatarPropertiesObserver* observer);
+
+ LLAvatarPropertiesProcessor();
+ virtual ~LLAvatarPropertiesProcessor()
+ {}
+
+ void addObserver(const LLUUID& avatar_id, LLAvatarPropertiesObserver* observer);
+
+ void removeObserver(const LLUUID& avatar_id, LLAvatarPropertiesObserver* observer);
+
+ void sendDataRequest(const LLUUID& avatar_id, EAvatarProcessorType type, const void * data = NULL);
+
+ void sendDataUpdate(const void* data, EAvatarProcessorType type);
+
+ void sendFriendRights(const LLUUID& avatar_id, S32 rights);
+
+ void sendNotes(const LLUUID& avatar_id, const std::string notes);
+
+ void sendPickDelete(const LLUUID& pick_id);
+
+ static void processAvatarPropertiesReply(LLMessageSystem* msg, void**);
+
+ static void processAvatarInterestsReply(LLMessageSystem* msg, void**);
+
+ static void processAvatarClassifiedReply(LLMessageSystem* msg, void**);
+
+ static void processAvatarGroupsReply(LLMessageSystem* msg, void**);
+
+ static void processAvatarNotesReply(LLMessageSystem* msg, void**);
+
+ static void processAvatarPicksReply(LLMessageSystem* msg, void**);
+
+ static void processPickInfoReply(LLMessageSystem* msg, void**);
+protected:
void sendAvatarPropertiesRequest(const LLUUID& avatar_id);
- static void processAvatarPropertiesReply(LLMessageSystem *msg, void **);
-private:
- typedef std::multimap<LLUUID, LLAvatarPropertiesObserver*> observer_multimap_t;
- observer_multimap_t mObservers;
+ void sendGenericRequest(const LLUUID& avatar_id, const std::string method);
+
+ void sendAvatarPropertiesUpdate(const void* data);
+
+ void sendPickInfoRequest(const LLUUID& creator_id, const LLUUID& pick_id);
+
+ void sendPicInfoUpdate(const void * pick_data);
+
+ static void notifyObservers(const LLUUID& id,void* data, EAvatarProcessorType type);
+
+ typedef void* (*processor_method_t)(LLMessageSystem*);
+ static processor_method_t getProcessor(EAvatarProcessorType type);
+
+protected:
+
+ typedef std::multimap<LLUUID, LLAvatarPropertiesObserver*> observer_multimap_t;
+
+ observer_multimap_t mObservers;
};
#endif // LL_LLAVATARPROPERTIESPROCESSOR_H
diff --git a/indra/newview/llbottomtray.cpp b/indra/newview/llbottomtray.cpp
new file mode 100644
index 0000000000..616cbb1fdb
--- /dev/null
+++ b/indra/newview/llbottomtray.cpp
@@ -0,0 +1,346 @@
+/**
+* @file llbottomtray.cpp
+* @brief LLBottomTray class implementation
+*
+* $LicenseInfo:firstyear=2009&license=viewergpl$
+*
+* Copyright (c) 2009, Linden Research, Inc.
+*
+* Second Life Viewer Source Code
+* The source code in this file ("Source Code") is provided by Linden Lab
+* to you under the terms of the GNU General Public License, version 2.0
+* ("GPL"), unless you have obtained a separate licensing agreement
+* ("Other License"), formally executed by you and Linden Lab. Terms of
+* the GPL can be found in doc/GPL-license.txt in this distribution, or
+* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+*
+* There are special exceptions to the terms and conditions of the GPL as
+* it is applied to this Source Code. View the full text of the exception
+* in the file doc/FLOSS-exception.txt in this software distribution, or
+* online at
+* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+*
+* By copying, modifying or distributing this software, you acknowledge
+* that you have read and understood your obligations described above,
+* and agree to abide by those obligations.
+*
+* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+* COMPLETENESS OR PERFORMANCE.
+* $/LicenseInfo$
+*/
+
+#include "llviewerprecompiledheaders.h" // must be first include
+#include "llbottomtray.h"
+#include "llagent.h"
+#include "llchiclet.h"
+#include "lllayoutstack.h"
+#include "llkeyboard.h"
+#include "llgesturemgr.h"
+#include "llanimationstates.h"
+
+//FIXME: temporary, for send_chat_from_viewer() proto
+#include "llchatbar.h"
+
+LLBottomTray::LLBottomTray()
+ :mLastSpecialChatChannel(0)
+{
+ LLUICtrlFactory::getInstance()->buildPanel(this,"panel_bottomtray.xml");
+
+ mChicletPanel = getChild<LLChicletPanel>("chiclet_list",TRUE,FALSE);
+
+ LLLineEditor* chat_box = getChatBox();
+ chat_box->setCommitCallback(boost::bind(&LLBottomTray::onChatBoxCommit, this));
+ chat_box->setKeystrokeCallback(&onChatBoxKeystroke, this);
+ chat_box->setFocusLostCallback(&onChatBoxFocusLost, this);
+
+ LLIMMgr::getInstance()->addSessionObserver(this);
+}
+
+LLBottomTray::~LLBottomTray()
+{
+ if (!LLSingleton<LLIMMgr>::destroyed())
+ {
+ LLIMMgr::getInstance()->removeSessionObserver(this);
+ }
+}
+
+LLLineEditor* LLBottomTray::getChatBox()
+{
+ return getChild<LLLineEditor>("chat_box",TRUE,FALSE);
+}
+
+void LLBottomTray::onChatBoxCommit()
+{
+ if (getChatBox()->getText().length() > 0)
+ {
+ sendChat(CHAT_TYPE_NORMAL);
+
+ LLLineEditor* chat_box = getChatBox();
+
+ if (chat_box)
+ {
+ chat_box->setText(LLStringExplicit(""));
+ }
+
+ gAgent.stopTyping();
+ }
+}
+
+void LLBottomTray::sendChatFromViewer(const std::string &utf8text, EChatType type, BOOL animate)
+{
+ sendChatFromViewer(utf8str_to_wstring(utf8text), type, animate);
+}
+
+void LLBottomTray::sendChatFromViewer(const LLWString &wtext, EChatType type, BOOL animate)
+{
+ // Look for "/20 foo" channel chats.
+ S32 channel = 0;
+ LLWString out_text = stripChannelNumber(wtext, &channel);
+ std::string utf8_out_text = wstring_to_utf8str(out_text);
+ std::string utf8_text = wstring_to_utf8str(wtext);
+
+ utf8_text = utf8str_trim(utf8_text);
+ if (!utf8_text.empty())
+ {
+ utf8_text = utf8str_truncate(utf8_text, MAX_STRING - 1);
+ }
+
+ // Don't animate for chats people can't hear (chat to scripts)
+ if (animate && (channel == 0))
+ {
+ if (type == CHAT_TYPE_WHISPER)
+ {
+ lldebugs << "You whisper " << utf8_text << llendl;
+ gAgent.sendAnimationRequest(ANIM_AGENT_WHISPER, ANIM_REQUEST_START);
+ }
+ else if (type == CHAT_TYPE_NORMAL)
+ {
+ lldebugs << "You say " << utf8_text << llendl;
+ gAgent.sendAnimationRequest(ANIM_AGENT_TALK, ANIM_REQUEST_START);
+ }
+ else if (type == CHAT_TYPE_SHOUT)
+ {
+ lldebugs << "You shout " << utf8_text << llendl;
+ gAgent.sendAnimationRequest(ANIM_AGENT_SHOUT, ANIM_REQUEST_START);
+ }
+ else
+ {
+ llinfos << "send_chat_from_viewer() - invalid volume" << llendl;
+ return;
+ }
+ }
+ else
+ {
+ if (type != CHAT_TYPE_START && type != CHAT_TYPE_STOP)
+ {
+ lldebugs << "Channel chat: " << utf8_text << llendl;
+ }
+ }
+
+ send_chat_from_viewer(utf8_out_text, type, channel);
+}
+
+// static
+void LLBottomTray::onChatBoxKeystroke(LLLineEditor* caller, void* userdata)
+{
+ LLBottomTray* self = (LLBottomTray *)userdata;
+
+ LLWString raw_text;
+ if (self->getChatBox()) raw_text = self->getChatBox()->getWText();
+
+ // Can't trim the end, because that will cause autocompletion
+ // to eat trailing spaces that might be part of a gesture.
+ LLWStringUtil::trimHead(raw_text);
+
+ S32 length = raw_text.length();
+
+ if( (length > 0) && (raw_text[0] != '/') ) // forward slash is used for escape (eg. emote) sequences
+ {
+ gAgent.startTyping();
+ }
+ else
+ {
+ gAgent.stopTyping();
+ }
+
+ /* Doesn't work -- can't tell the difference between a backspace
+ that killed the selection vs. backspace at the end of line.
+ if (length > 1
+ && text[0] == '/'
+ && key == KEY_BACKSPACE)
+ {
+ // the selection will already be deleted, but we need to trim
+ // off the character before
+ std::string new_text = raw_text.substr(0, length-1);
+ self->mInputEditor->setText( new_text );
+ self->mInputEditor->setCursorToEnd();
+ length = length - 1;
+ }
+ */
+
+ KEY key = gKeyboard->currentKey();
+
+ // Ignore "special" keys, like backspace, arrows, etc.
+ if (length > 1
+ && raw_text[0] == '/'
+ && key < KEY_SPECIAL)
+ {
+ // we're starting a gesture, attempt to autocomplete
+
+ std::string utf8_trigger = wstring_to_utf8str(raw_text);
+ std::string utf8_out_str(utf8_trigger);
+
+ if (gGestureManager.matchPrefix(utf8_trigger, &utf8_out_str))
+ {
+ if (self->getChatBox())
+ {
+ std::string rest_of_match = utf8_out_str.substr(utf8_trigger.size());
+ self->getChatBox()->setText(utf8_trigger + rest_of_match); // keep original capitalization for user-entered part
+ S32 outlength = self->getChatBox()->getLength(); // in characters
+
+ // Select to end of line, starting from the character
+ // after the last one the user typed.
+ self->getChatBox()->setSelection(length, outlength);
+ }
+ }
+
+ //llinfos << "GESTUREDEBUG " << trigger
+ // << " len " << length
+ // << " outlen " << out_str.getLength()
+ // << llendl;
+ }
+}
+
+// static
+void LLBottomTray::onChatBoxFocusLost(LLFocusableElement* caller, void* userdata)
+{
+ // stop typing animation
+ gAgent.stopTyping();
+}
+
+
+//virtual
+void LLBottomTray::sessionAdded(const LLUUID& session_id, const std::string& name, const LLUUID& other_participant_id)
+{
+ if(getChicletPanel())
+ {
+ LLSD sid(session_id);
+
+ if(getChicletPanel()->findIMChiclet(&sid))
+ {
+
+ }
+ else
+ {
+ LLIMChiclet* chicklet = (LLIMChiclet *)getChicletPanel()->createChiclet(&sid);
+ chicklet->setIMSessionName(name);
+ chicklet->setOtherParticipantId(other_participant_id);
+
+ getChicletPanel()->arrange();
+ }
+ }
+}
+
+//virtual
+void LLBottomTray::sessionRemoved(const LLUUID& session_id)
+{
+ if(getChicletPanel())
+ {
+ LLSD sid(session_id);
+ getChicletPanel()->removeIMChiclet(&sid);
+ getChicletPanel()->arrange();
+ }
+}
+
+void LLBottomTray::sendChat( EChatType type )
+{
+ LLLineEditor* chat_box = getChatBox();
+
+ if (chat_box)
+ {
+ LLWString text = chat_box->getConvertedText();
+ if (!text.empty())
+ {
+ // store sent line in history, duplicates will get filtered
+ chat_box->updateHistory();
+ // Check if this is destined for another channel
+ S32 channel = 0;
+ stripChannelNumber(text, &channel);
+
+ std::string utf8text = wstring_to_utf8str(text);
+ // Try to trigger a gesture, if not chat to a script.
+ std::string utf8_revised_text;
+ if (0 == channel)
+ {
+ // discard returned "found" boolean
+ gGestureManager.triggerAndReviseString(utf8text, &utf8_revised_text);
+ }
+ else
+ {
+ utf8_revised_text = utf8text;
+ }
+
+ utf8_revised_text = utf8str_trim(utf8_revised_text);
+
+ if (!utf8_revised_text.empty())
+ {
+ // Chat with animation
+ sendChatFromViewer(utf8_revised_text, type, TRUE);
+ }
+ }
+ }
+
+ gAgent.stopTyping();
+}
+
+// If input of the form "/20foo" or "/20 foo", returns "foo" and channel 20.
+// Otherwise returns input and channel 0.
+LLWString LLBottomTray::stripChannelNumber(const LLWString &mesg, S32* channel)
+{
+ if (mesg[0] == '/'
+ && mesg[1] == '/')
+ {
+ // This is a "repeat channel send"
+ *channel = mLastSpecialChatChannel;
+ return mesg.substr(2, mesg.length() - 2);
+ }
+ else if (mesg[0] == '/'
+ && mesg[1]
+ && LLStringOps::isDigit(mesg[1]))
+ {
+ // This a special "/20" speak on a channel
+ S32 pos = 0;
+
+ // Copy the channel number into a string
+ LLWString channel_string;
+ llwchar c;
+ do
+ {
+ c = mesg[pos+1];
+ channel_string.push_back(c);
+ pos++;
+ }
+ while(c && pos < 64 && LLStringOps::isDigit(c));
+
+ // Move the pointer forward to the first non-whitespace char
+ // Check isspace before looping, so we can handle "/33foo"
+ // as well as "/33 foo"
+ while(c && iswspace(c))
+ {
+ c = mesg[pos+1];
+ pos++;
+ }
+
+ mLastSpecialChatChannel = strtol(wstring_to_utf8str(channel_string).c_str(), NULL, 10);
+ *channel = mLastSpecialChatChannel;
+ return mesg.substr(pos, mesg.length() - pos);
+ }
+ else
+ {
+ // This is normal chat.
+ *channel = 0;
+ return mesg;
+ }
+}
+
diff --git a/indra/newview/llbottomtray.h b/indra/newview/llbottomtray.h
new file mode 100644
index 0000000000..780e1b270d
--- /dev/null
+++ b/indra/newview/llbottomtray.h
@@ -0,0 +1,91 @@
+/**
+* @file llbottomtray.h
+* @brief LLBottomTray class header file
+*
+* $LicenseInfo:firstyear=2009&license=viewergpl$
+*
+* Copyright (c) 2009, Linden Research, Inc.
+*
+* Second Life Viewer Source Code
+* The source code in this file ("Source Code") is provided by Linden Lab
+* to you under the terms of the GNU General Public License, version 2.0
+* ("GPL"), unless you have obtained a separate licensing agreement
+* ("Other License"), formally executed by you and Linden Lab. Terms of
+* the GPL can be found in doc/GPL-license.txt in this distribution, or
+* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+*
+* There are special exceptions to the terms and conditions of the GPL as
+* it is applied to this Source Code. View the full text of the exception
+* in the file doc/FLOSS-exception.txt in this software distribution, or
+* online at
+* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+*
+* By copying, modifying or distributing this software, you acknowledge
+* that you have read and understood your obligations described above,
+* and agree to abide by those obligations.
+*
+* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+* COMPLETENESS OR PERFORMANCE.
+* $/LicenseInfo$
+*/
+
+#ifndef LL_LLBOTTOMPANEL_H
+#define LL_LLBOTTOMPANEL_H
+
+#include "llpanel.h"
+#include "llflyoutbutton.h"
+#include "llimview.h"
+#include "llchat.h"
+
+class LLChicletPanel;
+class LLNotificationChiclet;
+class LLNotificationChiclet;
+class LLTalkButton;
+
+class LLBottomTray
+ : public LLSingleton<LLBottomTray>
+ , public LLPanel
+ , public LLIMSessionObserver
+{
+public:
+ LLBottomTray();
+
+ ~LLBottomTray();
+
+ LLLineEditor* getChatBox();
+
+ LLChicletPanel* getChicletPanel() {return mChicletPanel;};
+
+ LLNotificationChiclet* getIMWell() {return mIMWell;};
+
+ LLNotificationChiclet* getNotificationWell(){return mNotificationWell;};
+
+ void onChatBoxCommit();
+ void sendChatFromViewer(const std::string &utf8text, EChatType type, BOOL animate);
+ void sendChatFromViewer(const LLWString &wtext, EChatType type, BOOL animate);
+ static void onChatBoxKeystroke(LLLineEditor* caller, void* userdata);
+ static void onChatBoxFocusLost(LLFocusableElement* caller, void* userdata);
+
+ // LLIMSessionObserver observe triggers
+ virtual void sessionAdded(const LLUUID& session_id, const std::string& name, const LLUUID& other_participant_id);
+ virtual void sessionRemoved(const LLUUID& session_id);
+
+protected:
+
+ void sendChat( EChatType type );
+ LLWString stripChannelNumber(const LLWString &mesg, S32* channel);
+
+ // Which non-zero channel did we last chat on?
+ S32 mLastSpecialChatChannel;
+
+ LLChicletPanel* mChicletPanel;
+ LLNotificationChiclet* mIMWell;
+ LLNotificationChiclet* mNotificationWell;
+ LLTalkButton* mTalkBtn;
+};
+
+extern LLBottomTray* gBottomTray;
+extern S32 BOTTOM_TRAY_HEIGHT;
+
+#endif // LL_LLBOTTOMPANEL_H
diff --git a/indra/newview/llchatbar.cpp b/indra/newview/llchatbar.cpp
index 4e2eebbab1..5e97157694 100644
--- a/indra/newview/llchatbar.cpp
+++ b/indra/newview/llchatbar.cpp
@@ -67,7 +67,7 @@
#include "llui.h"
#include "llviewermenu.h"
#include "lluictrlfactory.h"
-
+#include "llbottomtray.h"
//
// Globals
@@ -76,10 +76,6 @@ const F32 AGENT_TYPING_TIMEOUT = 5.f; // seconds
LLChatBar *gChatBar = NULL;
-// legacy calllback glue
-void send_chat_from_viewer(const std::string& utf8_out_text, EChatType type, S32 channel);
-
-
class LLChatBarGestureObserver : public LLGestureManagerObserver
{
public:
@@ -418,17 +414,25 @@ void LLChatBar::sendChat( EChatType type )
// static
void LLChatBar::startChat(const char* line)
{
- gChatBar->setVisible(TRUE);
- gChatBar->setKeyboardFocus(TRUE);
- gSavedSettings.setBOOL("ChatVisible", TRUE);
-
- if (line && gChatBar->mInputEditor)
+ //TODO* remove DUMMY chat
+ if(LLBottomTray::getInstance()->getChatBox())
{
- std::string line_string(line);
- gChatBar->mInputEditor->setText(line_string);
+ LLBottomTray::getInstance()->getChatBox()->setFocus(TRUE);
}
- // always move cursor to end so users don't obliterate chat when accidentally hitting WASD
- gChatBar->mInputEditor->setCursorToEnd();
+
+ // *TODO Vadim: Why was this code commented out?
+
+// gChatBar->setVisible(TRUE);
+// gChatBar->setKeyboardFocus(TRUE);
+// gSavedSettings.setBOOL("ChatVisible", TRUE);
+//
+// if (line && gChatBar->mInputEditor)
+// {
+// std::string line_string(line);
+// gChatBar->mInputEditor->setText(line_string);
+// }
+// // always move cursor to end so users don't obliterate chat when accidentally hitting WASD
+// gChatBar->mInputEditor->setCursorToEnd();
}
@@ -436,21 +440,29 @@ void LLChatBar::startChat(const char* line)
// static
void LLChatBar::stopChat()
{
- // In simple UI mode, we never release focus from the chat bar
- gChatBar->setKeyboardFocus(FALSE);
-
- // If we typed a movement key and pressed return during the
- // same frame, the keyboard handlers will see the key as having
- // gone down this frame and try to move the avatar.
- gKeyboard->resetKeys();
- gKeyboard->resetMaskKeys();
-
- // stop typing animation
- gAgent.stopTyping();
+ //TODO* remove DUMMY chat
+ if(LLBottomTray::getInstance()->getChatBox())
+ {
+ LLBottomTray::getInstance()->getChatBox()->setFocus(FALSE);
+ }
- // hide chat bar so it doesn't grab focus back
- gChatBar->setVisible(FALSE);
- gSavedSettings.setBOOL("ChatVisible", FALSE);
+ // *TODO Vadim: Why was this code commented out?
+
+// // In simple UI mode, we never release focus from the chat bar
+// gChatBar->setKeyboardFocus(FALSE);
+//
+// // If we typed a movement key and pressed return during the
+// // same frame, the keyboard handlers will see the key as having
+// // gone down this frame and try to move the avatar.
+// gKeyboard->resetKeys();
+// gKeyboard->resetMaskKeys();
+//
+// // stop typing animation
+// gAgent.stopTyping();
+//
+// // hide chat bar so it doesn't grab focus back
+// gChatBar->setVisible(FALSE);
+// gSavedSettings.setBOOL("ChatVisible", FALSE);
}
// static
diff --git a/indra/newview/llchatbar.h b/indra/newview/llchatbar.h
index 93421da34f..e0e324af6b 100644
--- a/indra/newview/llchatbar.h
+++ b/indra/newview/llchatbar.h
@@ -45,6 +45,9 @@ class LLFrameTimer;
class LLChatBarGestureObserver;
class LLComboBox;
+// legacy calllback glue
+void send_chat_from_viewer(const std::string& utf8_out_text, EChatType type, S32 channel);
+
class LLChatBar
: public LLPanel
{
diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp
new file mode 100644
index 0000000000..d8e844d291
--- /dev/null
+++ b/indra/newview/llchiclet.cpp
@@ -0,0 +1,725 @@
+/**
+* @file llchiclet.cpp
+* @brief LLChiclet class implementation
+*
+* $LicenseInfo:firstyear=2002&license=viewergpl$
+*
+* Copyright (c) 2002-2009, Linden Research, Inc.
+*
+* Second Life Viewer Source Code
+* The source code in this file ("Source Code") is provided by Linden Lab
+* to you under the terms of the GNU General Public License, version 2.0
+* ("GPL"), unless you have obtained a separate licensing agreement
+* ("Other License"), formally executed by you and Linden Lab. Terms of
+* the GPL can be found in doc/GPL-license.txt in this distribution, or
+* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+*
+* There are special exceptions to the terms and conditions of the GPL as
+* it is applied to this Source Code. View the full text of the exception
+* in the file doc/FLOSS-exception.txt in this software distribution, or
+* online at
+* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+*
+* By copying, modifying or distributing this software, you acknowledge
+* that you have read and understood your obligations described above,
+* and agree to abide by those obligations.
+*
+* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+* COMPLETENESS OR PERFORMANCE.
+* $/LicenseInfo$
+*/
+
+#include "llviewerprecompiledheaders.h" // must be first include
+#include "llchiclet.h"
+#include "llfloaterreg.h"
+#include "llvoiceclient.h"
+#include "llagent.h"
+#include "lltextbox.h"
+#include "lliconctrl.h"
+#include "llvoicecontrolpanel.h"
+#include "lloutputmonitorctrl.h"
+#include "llimview.h"
+#include "llbottomtray.h"
+
+static const S32 CHICLET_HEIGHT = 25;
+static const S32 CHICLET_SPACING = 0;
+static const S32 CHICLET_PADDING = 3;
+static const S32 AVATAR_WIDTH = 25;
+static const S32 SPEAKER_WIDTH = 20;
+static const S32 COUNTER_WIDTH = 20;
+static const S32 SCROLL_BUTTON_WIDTH = 19;
+static const S32 SCROLL_BUTTON_HEIGHT = 20;
+static const S32 NOTIFICATION_TEXT_TOP_PAD = 5;
+
+static LLDefaultWidgetRegistry::Register<LLChicletPanel> t1("chiclet_panel");
+static LLDefaultWidgetRegistry::Register<LLTalkButton> t2("chiclet_talk");
+static LLDefaultWidgetRegistry::Register<LLNotificationChiclet> t3("chiclet_notification");
+static LLDefaultWidgetRegistry::Register<LLChicletPanel> t4("chiclet_panel");
+
+//////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////
+
+LLNotificationChiclet::Params::Params()
+: image_unselected("image_unselected")
+, image_selected("image_selected")
+, image_overlay("image_overlay")
+{
+}
+
+LLNotificationChiclet::LLNotificationChiclet(const Params& p)
+: LLChiclet(p)
+, mButton(NULL)
+, mCounterText(NULL)
+{
+ LLRect rc(p.rect);
+
+ LLButton::Params button_params;
+ button_params.name("btn");
+ button_params.label(LLStringUtil::null);
+ button_params.rect(LLRect(0,rc.getHeight(),rc.getWidth(),0));
+ button_params.image_overlay(p.image_overlay);
+ button_params.image_unselected(p.image_unselected);
+ button_params.image_selected(p.image_selected);
+ button_params.tab_stop(false);
+ mButton = LLUICtrlFactory::create<LLButton>(button_params);
+ addChild(mButton);
+
+ LLTextBox::Params textbox_params;
+ textbox_params.name("txt");
+ textbox_params.rect(LLRect(p.label_left,rc.getHeight(),
+ rc.getWidth()-p.label_left,0));
+ textbox_params.mouse_opaque(false);
+ textbox_params.v_pad(NOTIFICATION_TEXT_TOP_PAD);
+ textbox_params.font.style("SansSerif");
+ textbox_params.font_halign(LLFontGL::HCENTER);
+ mCounterText = LLUICtrlFactory::create<LLTextBox>(textbox_params);
+ addChild(mCounterText);
+ mCounterText->setColor(LLColor4::white);
+ mCounterText->setText(LLStringUtil::null);
+}
+
+LLNotificationChiclet::~LLNotificationChiclet()
+{
+
+}
+
+LLChiclet* LLNotificationChiclet::create(const Params& p)
+{
+ LLChiclet* chiclet = new LLNotificationChiclet(p);
+ return chiclet;
+}
+
+void LLNotificationChiclet::setCounter(S32 counter)
+{
+ std::stringstream stream;
+ mCounter = counter;
+ stream << mCounter;
+ mCounterText->setText(stream.str());
+}
+
+boost::signals2::connection LLNotificationChiclet::setClickCallback(
+ const commit_callback_t& cb)
+{
+ return mButton->setClickedCallback(cb);
+}
+
+//////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////
+
+LLChiclet::LLChiclet(const Params& p)
+: LLUICtrl(p)
+, mCounter(0)
+, mShowCounter(true)
+{
+
+}
+
+LLChiclet::~LLChiclet()
+{
+
+}
+
+boost::signals2::connection LLChiclet::setLeftButtonClickCallback(
+ const commit_callback_t& cb)
+{
+ return mCommitSignal.connect(cb);
+}
+
+BOOL LLChiclet::handleMouseDown(S32 x, S32 y, MASK mask)
+{
+ onCommit();
+ childrenHandleMouseDown(x,y,mask);
+ return TRUE;
+}
+
+//////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////
+
+LLIMChiclet::LLIMChiclet(const LLChiclet::Params& p)
+: LLChiclet(p)
+, mAvatar(NULL)
+, mCounterText(NULL)
+, mSpeaker(NULL)
+, mIMSessionId()
+, mShowSpeaker(false)
+, mSpeakerStatus(SPEAKER_IDLE)
+{
+ LLAvatarIconCtrl::Params avatar_params;
+ avatar_params.control_name("avatar");
+ avatar_params.draw_tooltip = FALSE;
+ mAvatar = LLUICtrlFactory::create<LLAvatarIconCtrl>(avatar_params);
+
+ addChild(mAvatar);
+
+ LLTextBox::Params unread_params;
+ unread_params.font.style("SansSerif");
+ unread_params.font_halign(LLFontGL::HCENTER);
+ unread_params.v_pad(5);
+ mCounterText = LLUICtrlFactory::create<LLTextBox>(unread_params);
+ addChild(mCounterText);
+ mCounterText->setColor(LLColor4::white);
+ setCounter(getCounter());
+
+ LLIconCtrl::Params speaker_params;
+ speaker_params.image( LLUI::getUIImage("icn_voice_ptt-on-lvl2.tga") );
+ mSpeaker = LLUICtrlFactory::create<LLIconCtrl>(speaker_params);
+ addChild(mSpeaker);
+ mSpeaker->setVisible(getShowSpeaker());
+
+ S32 left = 0;
+ mAvatar->setRect(LLRect(left,CHICLET_HEIGHT,AVATAR_WIDTH,0));
+ left += AVATAR_WIDTH + CHICLET_SPACING;
+ mCounterText->setRect(LLRect(left,CHICLET_HEIGHT,left + COUNTER_WIDTH,0));
+ left += COUNTER_WIDTH + CHICLET_SPACING;
+ mSpeaker->setRect(LLRect(left,CHICLET_HEIGHT,left + SPEAKER_WIDTH,0));
+}
+
+LLIMChiclet::~LLIMChiclet()
+{
+
+}
+
+LLChiclet* LLIMChiclet::create(LLSD* imSessionId /* = NULL */)
+{
+ LLIMChiclet* chiclet = new LLIMChiclet(LLChiclet::Params());
+ chiclet->setIMSessionId(imSessionId);
+ return chiclet;
+}
+
+void LLIMChiclet::setCounter(S32 counter)
+{
+ mCounter = counter;
+ std::stringstream stream;
+ stream << mCounter;
+ mCounterText->setText(stream.str());
+
+ LLRect rc = mCounterText->getRect();
+ rc.mRight = rc.mLeft + calcCounterWidth();
+ mCounterText->setRect(rc);
+}
+
+LLRect LLIMChiclet::getRequiredRect()
+{
+ LLRect rect(0,CHICLET_HEIGHT,AVATAR_WIDTH,0);
+ if(getShowCounter())
+ {
+ rect.mRight += CHICLET_SPACING + calcCounterWidth();
+ }
+ if(getShowSpeaker())
+ {
+ rect.mRight += CHICLET_SPACING + SPEAKER_WIDTH;
+ }
+ return rect;
+}
+
+void LLIMChiclet::setShowCounter(bool show)
+{
+ LLChiclet::setShowCounter(show);
+ mCounterText->setVisible(getShowCounter());
+}
+
+void LLIMChiclet::setIMSessionName(const std::string& name)
+{
+ setToolTip(name);
+}
+
+void LLIMChiclet::setOtherParticipantId(const LLUUID& other_participant_id)
+{
+ if (mAvatar)
+ {
+ mAvatar->setValue(other_participant_id);
+ }
+}
+
+void LLIMChiclet::setShowSpeaker(bool show)
+{
+ mShowSpeaker = show;
+ mSpeaker->setVisible(getShowSpeaker());
+}
+
+void LLIMChiclet::draw()
+{
+ LLUICtrl::draw();
+ gl_rect_2d(1, getRect().getHeight(), getRect().getWidth(), 1, LLColor4(0.0f,0.0f,0.0f,1.f), FALSE);
+}
+
+S32 LLIMChiclet::calcCounterWidth()
+{
+ S32 font_width = mCounterText->getFont()->getWidth("0");
+ S32 text_size = mCounterText->getText().size();
+
+ return llmax(font_width * text_size, COUNTER_WIDTH);
+}
+
+//////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////
+
+LLChicletPanel::LLChicletPanel(const Params&p)
+: LLPanel(p)
+, mLeftScroll(NULL)
+, mRightScroll(NULL)
+, mFirstToShow(0)
+{
+ LLButton::Params params;
+
+ params.name("scroll_left");
+ params.label(LLStringUtil::null);
+ params.tab_stop(false);
+ params.image_selected(LLUI::getUIImage("scroll_left.tga"));
+ params.image_unselected(LLUI::getUIImage("scroll_left.tga"));
+ params.image_hover_selected(LLUI::getUIImage("scroll_left.tga"));
+ mLeftScroll = LLUICtrlFactory::create<LLButton>(params);
+ addChild(mLeftScroll);
+ mLeftScroll->setClickedCallback(boost::bind(&LLChicletPanel::onLeftScrollClick,this));
+ mLeftScroll->setEnabled(false);
+
+ params.name("scroll_right");
+ params.image_selected(LLUI::getUIImage("scroll_right.tga"));
+ params.image_unselected(LLUI::getUIImage("scroll_right.tga"));
+ params.image_hover_selected(LLUI::getUIImage("scroll_right.tga"));
+ mRightScroll = LLUICtrlFactory::create<LLButton>(params);
+ addChild(mRightScroll);
+ mRightScroll->setClickedCallback(boost::bind(&LLChicletPanel::onRightScrollClick,this));
+ mRightScroll->setEnabled(false);
+
+ LLPanel::Params panel_params;
+ mScrollArea = LLUICtrlFactory::create<LLPanel>(panel_params,this);
+ addChild(mScrollArea);
+}
+
+LLChicletPanel::~LLChicletPanel()
+{
+
+}
+
+LLChicletPanel* LLChicletPanel::create()
+{
+ LLChicletPanel* panel = new LLChicletPanel(LLChicletPanel::Params());
+ return panel;
+}
+
+BOOL LLChicletPanel::postBuild()
+{
+ LLPanel::postBuild();
+
+ return TRUE;
+}
+
+LLChiclet* LLChicletPanel::createChiclet(LLSD* imSessionId, S32 pos)
+{
+ LLChiclet* chiclet = LLIMChiclet::create(imSessionId);
+ if(!chiclet)
+ {
+ assert(false);
+ return NULL;
+ }
+
+ if(!addChiclet(chiclet, pos))
+ {
+ assert(false);
+ return NULL;
+ }
+
+ return chiclet;
+}
+
+bool LLChicletPanel::addChiclet(LLChiclet* chiclet, S32 pos)
+{
+ if(mScrollArea->addChild(chiclet))
+ {
+ mChicletList.insert(mChicletList.begin() + pos, chiclet);
+
+ chiclet->setLeftButtonClickCallback(boost::bind(&LLChicletPanel::onChicletClick, this, _1, _2));
+
+ return true;
+ }
+
+ return false;
+}
+
+void LLChicletPanel::onChicletClick(LLUICtrl*ctrl,const LLSD&param)
+{
+ LLIMChiclet* chiclet = dynamic_cast<LLIMChiclet*>(ctrl);
+ if (chiclet)
+ {
+ LLFloaterReg::showInstance("communicate", chiclet->getIMSessionId().asUUID());
+ }
+
+ mCommitSignal(ctrl,param);
+}
+
+LLChiclet* LLChicletPanel::findIMChiclet(LLSD* imSessionId)
+{
+ chiclet_list_t::const_iterator it = mChicletList.begin();
+ for( ; mChicletList.end() != it; ++it)
+ {
+ LLIMChiclet* chiclet = dynamic_cast<LLIMChiclet*>(*it);
+ if(!chiclet)
+ {
+ continue;
+ }
+
+ if(chiclet->getIMSessionId().asUUID() == imSessionId->asUUID())
+ {
+ return chiclet;
+ }
+ }
+ return NULL;
+}
+
+LLChiclet* LLChicletPanel::getChiclet(S32 pos)
+{
+ return mChicletList.at(pos);
+}
+
+void LLChicletPanel::removeChiclet(chiclet_list_t::iterator it)
+{
+ mScrollArea->removeChild(*it);
+ delete *it;
+ mChicletList.erase(it);
+ mLeftScroll->setEnabled(canScrollLeft());
+ mRightScroll->setEnabled(canScrollRight());
+}
+
+void LLChicletPanel::removeChiclet(S32 pos)
+{
+ if(0 > pos || getChicletCount() >= pos)
+ {
+ return;
+ }
+ removeChiclet(mChicletList.begin() + pos);
+}
+
+void LLChicletPanel::removeChiclet(LLChiclet*chiclet)
+{
+ chiclet_list_t::iterator it = mChicletList.begin();
+ for( ; mChicletList.end() != it; ++it)
+ {
+ LLChiclet* temp = *it;
+ if(temp == chiclet)
+ {
+ removeChiclet(it);
+ return;
+ }
+ }
+}
+
+void LLChicletPanel::removeIMChiclet(LLSD* imSessionId)
+{
+ chiclet_list_t::iterator it = mChicletList.begin();
+ for( ; mChicletList.end() != it; ++it)
+ {
+ LLIMChiclet* chiclet = dynamic_cast<LLIMChiclet*>(*it);
+ if(!chiclet)
+ {
+ continue;
+ }
+
+ if(chiclet->getIMSessionId().asUUID() == imSessionId->asUUID())
+ {
+ removeChiclet(it);
+ return;
+ }
+ }
+}
+
+void LLChicletPanel::removeAll()
+{
+ mScrollArea->deleteAllChildren();
+
+ mChicletList.erase(mChicletList.begin(), mChicletList.end());
+ mLeftScroll->setEnabled(false);
+ mRightScroll->setEnabled(false);
+}
+
+void LLChicletPanel::reshape(S32 width, S32 height, BOOL called_from_parent )
+{
+ LLPanel::reshape(width,height,called_from_parent);
+
+ mLeftScroll->setRect(LLRect(0,CHICLET_HEIGHT,SCROLL_BUTTON_WIDTH,
+ CHICLET_HEIGHT - SCROLL_BUTTON_HEIGHT));
+ mRightScroll->setRect(LLRect(getRect().getWidth()-SCROLL_BUTTON_WIDTH,CHICLET_HEIGHT,
+ getRect().getWidth(),CHICLET_HEIGHT - SCROLL_BUTTON_HEIGHT));
+
+ mScrollArea->setRect(LLRect(SCROLL_BUTTON_WIDTH + 5,CHICLET_HEIGHT + 1,
+ getRect().getWidth() - SCROLL_BUTTON_WIDTH - 5, 0));
+
+
+ arrange();
+}
+
+void LLChicletPanel::arrange()
+{
+ S32 left = 0;
+ S32 size = getChicletCount();
+
+ for( int n = mFirstToShow; n < size; ++n)
+ {
+ LLChiclet* chiclet = getChiclet(n);
+ S32 chiclet_width = chiclet->getRequiredRect().getWidth();
+ LLRect rc(left, CHICLET_HEIGHT, left + chiclet_width, 0);
+
+ chiclet->setRect(rc);
+ chiclet->reshape(rc.getWidth(),rc.getHeight());
+
+ left += chiclet_width + CHICLET_PADDING;
+ }
+
+ mLeftScroll->setEnabled(canScrollLeft());
+ mRightScroll->setEnabled(canScrollRight());
+}
+
+void LLChicletPanel::draw()
+{
+ //gl_rect_2d(0,getRect().getHeight(),getRect().getWidth(),0,LLColor4(0.f,1.f,1.f,1.f),TRUE);
+
+ child_list_const_iter_t it = getChildList()->begin();
+ for( ; getChildList()->end() != it; ++it)
+ {
+ LLView* child = *it;
+ if(child == dynamic_cast<LLView*>(mScrollArea))
+ {
+ LLLocalClipRect clip(mScrollArea->getRect());
+ drawChild(mScrollArea);
+ }
+ else
+ {
+ drawChild(child);
+ }
+ }
+}
+
+bool LLChicletPanel::canScrollRight()
+{
+ S32 width = 0;
+ LLRect visible_rect = mScrollArea->getRect();
+
+ chiclet_list_t::const_iterator it = mChicletList.begin() + mFirstToShow;
+ for(;mChicletList.end() != it; ++it)
+ {
+ LLChiclet* chiclet = *it;
+ width += chiclet->getRect().getWidth() + CHICLET_PADDING;
+ if(width > visible_rect.getWidth())
+ return true;
+ }
+ return false;
+}
+
+bool LLChicletPanel::canScrollLeft()
+{
+ return mFirstToShow > 0;
+}
+
+void LLChicletPanel::scroll(ScrollDirection direction)
+{
+ S32 elem = 0;
+ if(SCROLL_LEFT == direction)
+ elem = mFirstToShow;
+ else if(SCROLL_RIGHT)
+ elem = mFirstToShow - 1;
+
+ S32 offset = mChicletList[elem]->getRect().getWidth() +
+ CHICLET_PADDING;
+ offset *= direction;
+
+ chiclet_list_t::const_iterator it = mChicletList.begin();
+ for(;mChicletList.end() != it; ++it)
+ {
+ LLChiclet* chiclet = *it;
+ chiclet->translate(offset,0);
+ }
+}
+
+void LLChicletPanel::scrollLeft()
+{
+ if(canScrollLeft())
+ {
+ --mFirstToShow;
+ scroll(SCROLL_LEFT);
+ mLeftScroll->setEnabled(canScrollLeft());
+ mRightScroll->setEnabled(canScrollRight());
+ }
+}
+
+void LLChicletPanel::scrollRight()
+{
+ if(canScrollRight())
+ {
+ ++mFirstToShow;
+ scroll(SCROLL_RIGHT);
+ mLeftScroll->setEnabled(canScrollLeft());
+ mRightScroll->setEnabled(canScrollRight());
+ }
+}
+
+void LLChicletPanel::onLeftScrollClick()
+{
+ scrollLeft();
+}
+
+void LLChicletPanel::onRightScrollClick()
+{
+ scrollRight();
+}
+
+boost::signals2::connection LLChicletPanel::setChicletClickCallback(
+ const commit_callback_t& cb)
+{
+ return mCommitSignal.connect(cb);
+}
+
+BOOL LLChicletPanel::handleScrollWheel(S32 x, S32 y, S32 clicks)
+{
+ if(clicks > 0)
+ {
+ scrollRight();
+ }
+ else
+ {
+ scrollLeft();
+ }
+ return TRUE;
+}
+
+LLTalkButton::LLTalkButton(const LLUICtrl::Params& p)
+: LLUICtrl(p)
+{
+ static S32 DROPDOWN_BTN_WIDTH = 20;
+
+ LLRect rc(p.rect);
+
+ LLButton::Params speak_params;
+ speak_params.name("left");
+ speak_params.rect(LLRect(0,rc.getHeight(),rc.getWidth()-DROPDOWN_BTN_WIDTH,0));
+ speak_params.label("Speak");
+ speak_params.label_selected("Speak");
+ speak_params.font(LLFontGL::getFontSansSerifSmall());
+ speak_params.label_color(LLColor4::black);
+ speak_params.label_color_selected(LLColor4::black);
+ speak_params.tab_stop(false);
+ speak_params.is_toggle(true);
+ speak_params.picture_style(true);
+ speak_params.image_selected(LLUI::getUIImage("flyout_btn_left_selected.tga"));
+ speak_params.image_unselected(LLUI::getUIImage("flyout_btn_left.tga"));
+ mSpeakBtn = LLUICtrlFactory::create<LLButton>(speak_params);
+ addChild(mSpeakBtn);
+
+ mSpeakBtn->setClickedCallback(boost::bind(&LLTalkButton::onClick_SpeakBtn, this));
+ mSpeakBtn->setToggleState(false);
+
+ LLButton::Params show_params;
+ show_params.name("right");
+ show_params.rect(LLRect(rc.getWidth()-DROPDOWN_BTN_WIDTH,rc.getHeight(),rc.getWidth(),0));
+ show_params.label("");
+ show_params.tab_stop(false);
+ show_params.is_toggle(true);
+ show_params.picture_style(true);
+ show_params.image_selected(LLUI::getUIImage("show_btn_selected.tga"));
+ show_params.image_unselected(LLUI::getUIImage("show_btn.tga"));
+ mShowBtn = LLUICtrlFactory::create<LLButton>(show_params);
+ addChild(mShowBtn);
+
+ mShowBtn->setClickedCallback(boost::bind(&LLTalkButton::onClick_ShowBtn, this));
+ mShowBtn->setToggleState(false);
+
+ mSpeakBtn->setToggleState(FALSE);
+ mShowBtn->setToggleState(FALSE);
+
+ rc = mSpeakBtn->getRect();
+
+ LLOutputMonitorCtrl::Params monitor_param;
+ monitor_param.name("monitor");
+ monitor_param.draw_border(false);
+ monitor_param.rect(LLRect(rc.getWidth()-20,18,rc.getWidth()-3,2));
+ monitor_param.visible(true);
+ mOutputMonitor = LLUICtrlFactory::create<LLOutputMonitorCtrl>(monitor_param);
+
+ mSpeakBtn->addChild(mOutputMonitor);
+
+ mPrivateCallPanel = NULL;
+}
+
+LLTalkButton::~LLTalkButton()
+{
+}
+
+void LLTalkButton::draw()
+{
+ if(mSpeakBtn->getToggleState())
+ {
+ mOutputMonitor->setPower(gVoiceClient->getCurrentPower(gAgent.getID()));
+ }
+
+ LLUICtrl::draw();
+}
+
+void LLTalkButton::onClick_SpeakBtn()
+{
+ bool speaking = mSpeakBtn->getToggleState();
+ gVoiceClient->setUserPTTState(speaking);
+ mOutputMonitor->setIsMuted(!speaking);
+}
+
+void LLTalkButton::onClick_ShowBtn()
+{
+ if(!mShowBtn->getToggleState())
+ {
+ mPrivateCallPanel->onClickClose(mPrivateCallPanel);
+ delete mPrivateCallPanel;
+ mPrivateCallPanel = NULL;
+ mShowBtn->setToggleState(FALSE);
+ return;
+ }
+
+ S32 x = mSpeakBtn->getRect().mLeft;
+ S32 y = 0;
+
+ localPointToScreen(x, y, &x, &y);
+
+ mPrivateCallPanel = new LLVoiceControlPanel;
+ getRootView()->addChild(mPrivateCallPanel);
+
+ y = LLBottomTray::getInstance()->getRect().getHeight()
+ + mPrivateCallPanel->getRect().getHeight();
+
+ LLRect rect;
+ rect.setLeftTopAndSize(x, y, mPrivateCallPanel->getRect().getWidth(), mPrivateCallPanel->getRect().getHeight());
+ mPrivateCallPanel->setRect(rect);
+
+ LLAvatarListItem::Params p;
+ p.buttons.status = true;
+ p.buttons.info = true;
+ p.buttons.profile = false;
+ p.buttons.locator = true;
+
+ mPrivateCallPanel->addItem(new LLAvatarListItem(p));
+ mPrivateCallPanel->setVisible(TRUE);
+ mPrivateCallPanel->setFrontmost(TRUE);
+
+ mShowBtn->setToggleState(TRUE);
+}
diff --git a/indra/newview/llchiclet.h b/indra/newview/llchiclet.h
new file mode 100644
index 0000000000..11c3356c46
--- /dev/null
+++ b/indra/newview/llchiclet.h
@@ -0,0 +1,286 @@
+/**
+* @file llchiclet.h
+* @brief LLChiclet class header file
+*
+* $LicenseInfo:firstyear=2002&license=viewergpl$
+*
+* Copyright (c) 2002-2009, Linden Research, Inc.
+*
+* Second Life Viewer Source Code
+* The source code in this file ("Source Code") is provided by Linden Lab
+* to you under the terms of the GNU General Public License, version 2.0
+* ("GPL"), unless you have obtained a separate licensing agreement
+* ("Other License"), formally executed by you and Linden Lab. Terms of
+* the GPL can be found in doc/GPL-license.txt in this distribution, or
+* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+*
+* There are special exceptions to the terms and conditions of the GPL as
+* it is applied to this Source Code. View the full text of the exception
+* in the file doc/FLOSS-exception.txt in this software distribution, or
+* online at
+* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+*
+* By copying, modifying or distributing this software, you acknowledge
+* that you have read and understood your obligations described above,
+* and agree to abide by those obligations.
+*
+* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+* COMPLETENESS OR PERFORMANCE.
+* $/LicenseInfo$
+*/
+
+#ifndef LL_LLCHICLET_H
+#define LL_LLCHICLET_H
+
+#include "llpanel.h"
+
+class LLTextBox;
+class LLIconCtrl;
+class LLAvatarIconCtrl;
+class LLVoiceControlPanel;
+class LLOutputMonitorCtrl;
+
+class LLChiclet : public LLUICtrl
+{
+public:
+
+ struct Params : public LLInitParam::Block<Params, LLUICtrl::Params>
+ {
+ Params(){};
+ };
+
+ virtual ~LLChiclet();
+
+ virtual void setCounter(S32 counter) = 0;
+
+ virtual S32 getCounter() = 0;
+
+ virtual void setShowCounter(bool show) {mShowCounter = show;};
+
+ virtual bool getShowCounter() {return mShowCounter;};
+
+ virtual boost::signals2::connection setLeftButtonClickCallback(
+ const commit_callback_t& cb);
+
+protected:
+
+ friend class LLUICtrlFactory;
+ LLChiclet(const Params& p);
+
+ virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask);
+
+protected:
+ S32 mCounter;
+ bool mShowCounter;
+};
+
+class LLIMChiclet : public LLChiclet
+{
+public:
+ static LLChiclet* create(LLSD* imSessionId = NULL);
+
+ void setCounter(S32);
+
+ S32 getCounter() {return mCounter;};
+
+ const LLSD& getIMSessionId() const {return mIMSessionId;};
+
+ void setIMSessionId(LLSD* imSessionId) {if (imSessionId) mIMSessionId = *imSessionId;};
+ void setIMSessionName(const std::string& name);
+ void setOtherParticipantId(const LLUUID& other_participant_id);
+
+ void setShowSpeaker(bool show);
+
+ bool getShowSpeaker() {return mShowSpeaker;};
+
+ enum SpeakerStatus
+ {
+ SPREAKER_ACTIVE,
+ SPEAKER_IDLE
+ };
+
+ void setSpeakerStatus(SpeakerStatus status);
+
+ SpeakerStatus getSpeakerStatus() {return mSpeakerStatus;};
+
+ ~LLIMChiclet();
+
+protected:
+ LLIMChiclet(const LLChiclet::Params& p);
+ friend class LLUICtrlFactory;
+
+ S32 calcCounterWidth();
+
+ //overrides
+public:
+
+ void setShowCounter(bool show);
+
+ void draw();
+
+ LLRect getRequiredRect();
+
+protected:
+ LLAvatarIconCtrl* mAvatar;
+ LLTextBox* mCounterText;
+ LLIconCtrl* mSpeaker;
+
+ LLSD mIMSessionId;
+ bool mShowSpeaker;
+ SpeakerStatus mSpeakerStatus;
+};
+
+class LLNotificationChiclet : public LLChiclet
+{
+public:
+
+ struct Params : public LLInitParam::Block<Params, LLChiclet::Params>
+ {
+ Optional<LLUIImage*>
+ image_unselected,
+ image_selected,
+ image_hover_selected,
+ image_hover_unselected,
+ image_disabled_selected,
+ image_disabled,
+ image_overlay;
+
+ Optional<S32>
+ label_left;
+
+ Params();
+ };
+
+ static LLChiclet* create(const Params& p);
+
+ void setCounter(S32 counter);
+
+ S32 getCounter() {return mCounter;};
+
+ boost::signals2::connection setClickCallback(const commit_callback_t& cb);
+
+ virtual ~ LLNotificationChiclet();
+
+protected:
+ LLNotificationChiclet(const Params& p);
+ friend class LLUICtrlFactory;
+
+protected:
+ LLButton* mButton;
+ LLTextBox* mCounterText;
+};
+
+class LLChicletPanel : public LLPanel
+{
+public:
+
+ struct Params : public LLInitParam::Block<Params, LLPanel::Params>
+ {
+ Params(){};
+ };
+
+ static LLChicletPanel* create();
+
+ LLChiclet* createChiclet(LLSD* imSessionId = NULL, S32 pos = 0);
+
+ bool addChiclet(LLChiclet*, S32 pos);
+
+ LLChiclet* getChiclet(S32 pos);
+
+ LLChiclet* findIMChiclet(LLSD* imSessionId);
+
+ S32 getChicletCount() {return mChicletList.size();};
+
+ void removeChiclet(S32 pos);
+
+ void removeChiclet(LLChiclet*);
+
+ void removeIMChiclet(LLSD* imSessionId);
+
+ void removeAll();
+
+ void arrange();
+
+ ~LLChicletPanel();
+
+ void scrollLeft();
+
+ void scrollRight();
+
+ void onLeftScrollClick();
+
+ void onRightScrollClick();
+
+ boost::signals2::connection setChicletClickCallback(
+ const commit_callback_t& cb);
+
+ void onChicletClick(LLUICtrl*ctrl,const LLSD&param);
+
+ //overrides
+public:
+
+ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE );
+
+ void draw();
+
+ BOOL postBuild();
+
+protected:
+ LLChicletPanel(const Params&p);
+ friend class LLUICtrlFactory;
+
+ bool needsScrolling();
+
+ bool canScrollRight();
+
+ bool canScrollLeft();
+
+ enum ScrollDirection
+ {
+ SCROLL_LEFT = 1,
+ SCROLL_RIGHT = -1
+ };
+
+ void scroll(ScrollDirection direction);
+
+ typedef std::vector<LLChiclet*> chiclet_list_t;
+
+ void removeChiclet(chiclet_list_t::iterator it);
+
+ BOOL handleScrollWheel(S32 x, S32 y, S32 clicks);
+
+protected:
+
+ chiclet_list_t mChicletList;
+ LLButton* mLeftScroll;
+ LLButton* mRightScroll;
+ S32 mFirstToShow;
+ S32 mLastToShow;
+ LLPanel* mScrollArea;
+};
+
+
+class LLTalkButton : public LLUICtrl
+{
+public:
+
+ virtual ~LLTalkButton();
+
+ void onClick_SpeakBtn();
+ void onClick_ShowBtn();
+
+ void draw();
+
+protected:
+ friend class LLUICtrlFactory;
+ LLTalkButton(const LLUICtrl::Params& p);
+
+private:
+ LLButton* mSpeakBtn;
+ LLButton* mShowBtn;
+ LLVoiceControlPanel* mPrivateCallPanel;
+ LLOutputMonitorCtrl* mOutputMonitor;
+};
+
+#endif // LL_LLCHICLET_H
diff --git a/indra/newview/llcolorswatch.cpp b/indra/newview/llcolorswatch.cpp
index 096d4fb8ed..33aaac542b 100644
--- a/indra/newview/llcolorswatch.cpp
+++ b/indra/newview/llcolorswatch.cpp
@@ -51,7 +51,7 @@
#include "llviewerimagelist.h"
#include "llfocusmgr.h"
-static LLRegisterWidget<LLColorSwatchCtrl> r("color_swatch");
+static LLDefaultWidgetRegistry::Register<LLColorSwatchCtrl> r("color_swatch");
LLColorSwatchCtrl::Params::Params()
: color("color", LLColor4::white),
diff --git a/indra/newview/llcurrencyuimanager.cpp b/indra/newview/llcurrencyuimanager.cpp
index 19a560abf2..9957694727 100644
--- a/indra/newview/llcurrencyuimanager.cpp
+++ b/indra/newview/llcurrencyuimanager.cpp
@@ -122,7 +122,8 @@ LLCurrencyUIManager::Impl::Impl(LLPanel& dialog)
: mPanel(dialog),
mHidden(false),
mError(false),
- mUserCurrencyBuy(1000), mUserEnteredCurrencyBuy(false),
+ mUserCurrencyBuy(2000), // note, this is a default, real value set in llfloaterbuycurrency.cpp
+ mUserEnteredCurrencyBuy(false),
mSiteCurrencyEstimated(false),
mSiteCurrencyEstimatedCost(0),
mBought(false),
diff --git a/indra/newview/lldebugview.cpp b/indra/newview/lldebugview.cpp
index 2af29260f4..bd5b9c30a2 100644
--- a/indra/newview/lldebugview.cpp
+++ b/indra/newview/lldebugview.cpp
@@ -43,6 +43,8 @@
#include "imageids.h"
#include "llviewercontrol.h"
#include "llviewerwindow.h"
+#include "llappviewer.h"
+#include "llmemoryview.h"
//
// Globals
@@ -81,7 +83,8 @@ LLDebugView::LLDebugView(const LLDebugView::Params& p)
mFastTimerView->setVisible(FALSE); // start invisible
addChild(mFastTimerView);
- r.set(25, rect.getHeight() - 50, rect.getWidth()/2, rect.getHeight() - 450);
+ r.set(25, rect.getHeight() - 50, (S32) (gViewerWindow->getVirtualWindowRect().getWidth() * 0.75f),
+ (S32) (gViewerWindow->getVirtualWindowRect().getHeight() * 0.75f));
LLMemoryView::Params mp;
mp.name("memory");
mp.rect(r);
diff --git a/indra/newview/lldrawable.h b/indra/newview/lldrawable.h
index ba37694356..f3ef0753e7 100644
--- a/indra/newview/lldrawable.h
+++ b/indra/newview/lldrawable.h
@@ -150,7 +150,7 @@ public:
void updateTexture();
void updateMaterial();
- virtual void updateDistance(LLCamera& camera);
+ virtual void updateDistance(LLCamera& camera, bool force_update);
BOOL updateGeometry(BOOL priority);
void updateFaceSize(S32 idx);
diff --git a/indra/newview/lldrawpoolsky.cpp b/indra/newview/lldrawpoolsky.cpp
index 060af75736..a9e0948ecf 100644
--- a/indra/newview/lldrawpoolsky.cpp
+++ b/indra/newview/lldrawpoolsky.cpp
@@ -60,8 +60,8 @@ LLDrawPool *LLDrawPoolSky::instancePool()
void LLDrawPoolSky::prerender()
{
- mVertexShaderLevel = LLViewerShaderMgr::instance()->getVertexShaderLevel(LLViewerShaderMgr::SHADER_ENVIRONMENT);
-// gSky.mVOSkyp->updateGeometry(gSky.mVOSkyp->mDrawable);
+ mVertexShaderLevel = LLViewerShaderMgr::instance()->getVertexShaderLevel(LLViewerShaderMgr::SHADER_ENVIRONMENT);
+ gSky.mVOSkyp->updateGeometry(gSky.mVOSkyp->mDrawable);
}
void LLDrawPoolSky::render(S32 pass)
@@ -96,7 +96,6 @@ void LLDrawPoolSky::render(S32 pass)
}
- LLVOSky *voskyp = gSky.mVOSkyp;
LLGLSPipelineSkyBox gls_skybox;
LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE);
@@ -119,43 +118,9 @@ void LLDrawPoolSky::render(S32 pass)
{
renderSkyCubeFace(i);
}
-
- LLFace *hbfaces[3];
- hbfaces[0] = NULL;
- hbfaces[1] = NULL;
- hbfaces[2] = NULL;
- for (S32 curr_face = 0; curr_face < face_count; curr_face++)
- {
- LLFace* facep = mDrawFace[curr_face];
- if (voskyp->isSameFace(LLVOSky::FACE_SUN, facep))
- {
- hbfaces[0] = facep;
- }
- if (voskyp->isSameFace(LLVOSky::FACE_MOON, facep))
- {
- hbfaces[1] = facep;
- }
- if (voskyp->isSameFace(LLVOSky::FACE_BLOOM, facep))
- {
- hbfaces[2] = facep;
- }
- }
LLGLEnable blend(GL_BLEND);
- if (hbfaces[2])
- {
- // renderSunHalo(hbfaces[2]);
- }
- if (hbfaces[0])
- {
- // renderHeavenlyBody(0, hbfaces[0]);
- }
- if (hbfaces[1])
- {
- // renderHeavenlyBody(1, hbfaces[1]);
- }
-
glPopMatrix();
}
@@ -180,35 +145,6 @@ void LLDrawPoolSky::renderSkyCubeFace(U8 side)
}
}
-void LLDrawPoolSky::renderHeavenlyBody(U8 hb, LLFace* face)
-{
- if ( !mHB[hb]->getDraw() ) return;
- if (! face->getGeomCount()) return;
-
- LLImageGL* tex = face->getTexture();
- gGL.getTexUnit(0)->bind(tex);
- LLColor4 color(mHB[hb]->getInterpColor());
- LLOverrideFaceColor override(this, color);
- face->renderIndexed();
-}
-
-
-
-void LLDrawPoolSky::renderSunHalo(LLFace* face)
-{
- if (! mHB[0]->getDraw()) return;
- if (! face->getGeomCount()) return;
-
- LLImageGL* tex = face->getTexture();
- gGL.getTexUnit(0)->bind(tex);
- LLColor4 color(mHB[0]->getInterpColor());
- color.mV[3] = llclamp(mHB[0]->getHaloBrighness(), 0.f, 1.f);
-
- LLOverrideFaceColor override(this, color);
- face->renderIndexed();
-}
-
-
void LLDrawPoolSky::renderForSelect()
{
}
diff --git a/indra/newview/lldynamictexture.cpp b/indra/newview/lldynamictexture.cpp
index 203c086c56..1953c29068 100644
--- a/indra/newview/lldynamictexture.cpp
+++ b/indra/newview/lldynamictexture.cpp
@@ -179,7 +179,7 @@ void LLDynamicTexture::postRender(BOOL success)
}
// restore viewport
- gViewerWindow->setupViewport();
+ gViewerWindow->setup2DViewport();
// restore camera
LLViewerCamera::getInstance()->setOrigin(mCamera);
diff --git a/indra/newview/llfasttimerview.cpp b/indra/newview/llfasttimerview.cpp
index 7a79b7ef3e..b373dd2241 100644
--- a/indra/newview/llfasttimerview.cpp
+++ b/indra/newview/llfasttimerview.cpp
@@ -41,6 +41,7 @@
#include "llrender.h"
#include "llmath.h"
#include "llfontgl.h"
+#include "llsdserialize.h"
#include "llappviewer.h"
#include "llviewerimagelist.h"
@@ -49,290 +50,108 @@
#include "llstat.h"
#include "llfasttimer.h"
-
+#include "lltreeiterators.h"
+#include "llmetricperformancetester.h"
//////////////////////////////////////////////////////////////////////////////
static const S32 MAX_VISIBLE_HISTORY = 10;
static const S32 LINE_GRAPH_HEIGHT = 240;
-struct ft_display_info {
- int timer;
- const char *desc;
- const LLColor4 *color;
- S32 disabled; // initialized to 0
- int level; // calculated based on desc
- int parent; // calculated
-};
-
-static const LLColor4 red0(0.5f, 0.0f, 0.0f, 1.0f);
-static const LLColor4 green0(0.0f, 0.5f, 0.0f, 1.0f);
-static const LLColor4 blue0(0.0f, 0.0f, 0.5f, 1.0f);
-static const LLColor4 blue7(0.0f, 0.0f, 0.5f, 1.0f);
-
-static const LLColor4 green7(0.6f, 1.0f, 0.4f, 1.0f);
-static const LLColor4 green8(0.4f, 1.0f, 0.6f, 1.0f);
-static const LLColor4 green9(0.6f, 1.0f, 0.6f, 1.0f);
-
-// green(6), blue, yellow, orange, pink(2), cyan
-// red (5) magenta (4)
-static struct ft_display_info ft_display_table[] =
-{
- { LLFastTimer::FTM_FRAME, "Frame", &LLColor4::white, 0 },
- { LLFastTimer::FTM_MESSAGES, " System Messages", &LLColor4::grey1, 1 },
- { LLFastTimer::FTM_MOUSEHANDLER, " Mouse", &LLColor4::grey1, 0 },
- { LLFastTimer::FTM_KEYHANDLER, " Keyboard", &LLColor4::grey1, 0 },
- { LLFastTimer::FTM_SLEEP, " Sleep", &LLColor4::grey2, 0 },
- { LLFastTimer::FTM_IDLE, " Idle", &blue0, 0 },
- { LLFastTimer::FTM_PUMP, " Pump", &LLColor4::magenta2, 1 },
- { LLFastTimer::FTM_CURL, " Curl", &LLColor4::magenta3, 0 },
- { LLFastTimer::FTM_INVENTORY, " Inventory Update", &LLColor4::purple6, 1 },
- { LLFastTimer::FTM_AUTO_SELECT, " Open and Select", &LLColor4::red, 0 },
- { LLFastTimer::FTM_FILTER, " Filter", &LLColor4::red2, 0 },
- { LLFastTimer::FTM_ARRANGE, " Arrange", &LLColor4::red3, 0 },
- { LLFastTimer::FTM_REFRESH, " Refresh", &LLColor4::red4, 0 },
- { LLFastTimer::FTM_SORT, " Sort", &LLColor4::red5, 0 },
- { LLFastTimer::FTM_RESET_DRAWORDER, " ResetDrawOrder", &LLColor4::pink1, 0 },
- { LLFastTimer::FTM_WORLD_UPDATE, " World Update", &LLColor4::blue1, 1 },
- { LLFastTimer::FTM_UPDATE_MOVE, " Move Objects", &LLColor4::pink2, 0 },
- { LLFastTimer::FTM_OCTREE_BALANCE, " Octree Balance", &LLColor4::red3, 0 },
- { LLFastTimer::FTM_SIMULATE_PARTICLES, " Particle Sim", &LLColor4::blue4, 0 },
- { LLFastTimer::FTM_OBJECTLIST_UPDATE, " Object Update", &LLColor4::purple1, 1 },
- { LLFastTimer::FTM_AVATAR_UPDATE, " Avatars", &LLColor4::purple2, 0 },
- { LLFastTimer::FTM_JOINT_UPDATE, " Joints", &LLColor4::purple3, 0 },
- { LLFastTimer::FTM_ATTACHMENT_UPDATE, " Attachments", &LLColor4::purple4, 0 },
- { LLFastTimer::FTM_UPDATE_ANIMATION, " Animation", &LLColor4::purple5, 0 },
- { LLFastTimer::FTM_FLEXIBLE_UPDATE, " Flex Update", &LLColor4::pink2, 0 },
- { LLFastTimer::FTM_LOD_UPDATE, " LOD Update", &LLColor4::magenta1, 0 },
- { LLFastTimer::FTM_REGION_UPDATE, " Region Update", &LLColor4::cyan2, 0 },
- { LLFastTimer::FTM_NETWORK, " Network", &LLColor4::orange1, 1 },
- { LLFastTimer::FTM_IDLE_NETWORK, " Decode Msgs", &LLColor4::orange2, 0 },
- { LLFastTimer::FTM_PROCESS_MESSAGES, " Process Msgs", &LLColor4::orange3, 0 },
- { LLFastTimer::FTM_PROCESS_OBJECTS, " Object Updates",&LLColor4::orange4, 0 },
- { LLFastTimer::FTM_CREATE_OBJECT, " Create Obj", &LLColor4::orange5, 0 },
-// { LLFastTimer::FTM_LOAD_AVATAR, " Load Avatar", &LLColor4::pink2, 0 },
- { LLFastTimer::FTM_PROCESS_IMAGES, " Image Updates",&LLColor4::orange6, 0 },
- { LLFastTimer::FTM_PIPELINE, " Pipeline", &LLColor4::magenta4, 0 },
- { LLFastTimer::FTM_CLEANUP, " Cleanup", &LLColor4::cyan3, 0 },
- { LLFastTimer::FTM_AUDIO_UPDATE, " Audio Update", &LLColor4::yellow3, 0 },
- { LLFastTimer::FTM_VFILE_WAIT, " VFile Wait", &LLColor4::cyan6, 0 },
-// { LLFastTimer::FTM_IDLE_CB, " Callbacks", &LLColor4::pink1, 0 },
- { LLFastTimer::FTM_RENDER, " Render", &green0, 1 },
- { LLFastTimer::FTM_PICK, " Pick", &LLColor4::purple, 1 },
- { LLFastTimer::FTM_HUD_EFFECTS, " HUD Effects", &LLColor4::orange1, 0 },
- { LLFastTimer::FTM_HUD_UPDATE, " HUD Update", &LLColor4::orange2, 0 },
- { LLFastTimer::FTM_UPDATE_SKY, " Sky Update", &LLColor4::cyan1, 0 },
- { LLFastTimer::FTM_UPDATE_TEXTURES, " Textures", &LLColor4::pink2, 0 },
- { LLFastTimer::FTM_GEO_UPDATE, " Geo Update", &LLColor4::blue3, 1 },
- { LLFastTimer::FTM_UPDATE_PRIMITIVES, " Volumes", &LLColor4::blue4, 0 },
- { LLFastTimer::FTM_GEN_VOLUME, " Gen Volume", &LLColor4::yellow3, 0 },
- { LLFastTimer::FTM_GEN_FLEX, " Flexible", &LLColor4::yellow4, 0 },
- { LLFastTimer::FTM_GEN_TRIANGLES, " Triangles", &LLColor4::yellow5, 0 },
- { LLFastTimer::FTM_UPDATE_AVATAR, " Avatar", &LLColor4::yellow1, 0 },
- { LLFastTimer::FTM_UPDATE_TREE, " Tree", &LLColor4::yellow2, 0 },
- { LLFastTimer::FTM_UPDATE_TERRAIN, " Terrain", &LLColor4::yellow6, 0 },
- { LLFastTimer::FTM_UPDATE_CLOUDS, " Clouds", &LLColor4::yellow7, 0 },
- { LLFastTimer::FTM_UPDATE_GRASS, " Grass", &LLColor4::yellow8, 0 },
- { LLFastTimer::FTM_UPDATE_WATER, " Water", &LLColor4::yellow9, 0 },
- { LLFastTimer::FTM_GEO_LIGHT, " Lighting", &LLColor4::yellow1, 0 },
- { LLFastTimer::FTM_GEO_SHADOW, " Shadow", &LLColor4::black, 0 },
- { LLFastTimer::FTM_UPDATE_PARTICLES, " Particles", &LLColor4::blue5, 0 },
- { LLFastTimer::FTM_GEO_RESERVE, " Reserve", &LLColor4::blue6, 0 },
- { LLFastTimer::FTM_UPDATE_LIGHTS, " Lights", &LLColor4::yellow2, 0 },
- { LLFastTimer::FTM_GEO_SKY, " Sky", &LLColor4::yellow3, 0 },
- { LLFastTimer::FTM_UPDATE_WLPARAM, " Windlight Param",&LLColor4::magenta2, 0 },
- { LLFastTimer::FTM_CULL, " Object Cull", &LLColor4::blue2, 1 },
- { LLFastTimer::FTM_CULL_REBOUND, " Rebound", &LLColor4::blue3, 0 },
- { LLFastTimer::FTM_FRUSTUM_CULL, " Frustum Cull", &LLColor4::blue4, 0 },
- { LLFastTimer::FTM_OCCLUSION_READBACK, " Occlusion Read", &LLColor4::red2, 0 },
- { LLFastTimer::FTM_IMAGE_UPDATE, " Image Update", &LLColor4::yellow4, 1 },
- { LLFastTimer::FTM_IMAGE_CREATE, " Image CreateGL",&LLColor4::yellow5, 0 },
- { LLFastTimer::FTM_IMAGE_DECODE, " Image Decode", &LLColor4::yellow6, 0 },
- { LLFastTimer::FTM_IMAGE_MARK_DIRTY, " Dirty Textures",&LLColor4::red1, 0 },
- { LLFastTimer::FTM_STATESORT, " State Sort", &LLColor4::orange1, 1 },
- { LLFastTimer::FTM_STATESORT_DRAWABLE, " Drawable", &LLColor4::orange2, 0 },
- { LLFastTimer::FTM_STATESORT_POSTSORT, " Post Sort", &LLColor4::orange3, 0 },
- { LLFastTimer::FTM_REBUILD_OCCLUSION_VB," Occlusion", &LLColor4::cyan5, 0 },
- { LLFastTimer::FTM_REBUILD_VBO, " VBO Rebuild", &LLColor4::red4, 0 },
- { LLFastTimer::FTM_REBUILD_VOLUME_VB, " Volume", &LLColor4::blue1, 0 },
-// { LLFastTimer::FTM_REBUILD_NONE_VB, " Unknown", &LLColor4::cyan5, 0 },
-// { LLFastTimer::FTM_REBUILD_BRIDGE_VB, " Bridge", &LLColor4::blue2, 0 },
-// { LLFastTimer::FTM_REBUILD_HUD_VB, " HUD", &LLColor4::blue3, 0 },
- { LLFastTimer::FTM_REBUILD_TERRAIN_VB, " Terrain", &LLColor4::blue4, 0 },
-// { LLFastTimer::FTM_REBUILD_WATER_VB, " Water", &LLColor4::blue5, 0 },
-// { LLFastTimer::FTM_REBUILD_TREE_VB, " Tree", &LLColor4::cyan1, 0 },
- { LLFastTimer::FTM_REBUILD_PARTICLE_VB, " Particle", &LLColor4::cyan2, 0 },
-// { LLFastTimer::FTM_REBUILD_CLOUD_VB, " Cloud", &LLColor4::cyan3, 0 },
- { LLFastTimer::FTM_REBUILD_GRASS_VB, " Grass", &LLColor4::cyan4, 0 },
- { LLFastTimer::FTM_SHADOW_RENDER, " Shadow", &LLColor4::green5, 1 },
- { LLFastTimer::FTM_SHADOW_SIMPLE, " Simple", &LLColor4::yellow2, 1 },
- { LLFastTimer::FTM_SHADOW_ALPHA, " Alpha", &LLColor4::yellow6, 1 },
- { LLFastTimer::FTM_SHADOW_TERRAIN, " Terrain", &LLColor4::green6, 1 },
- { LLFastTimer::FTM_SHADOW_AVATAR, " Avatar", &LLColor4::yellow1, 1 },
- { LLFastTimer::FTM_SHADOW_TREE, " Tree", &LLColor4::yellow8, 1 },
- { LLFastTimer::FTM_RENDER_GEOMETRY, " Geometry", &LLColor4::green2, 1 },
- { LLFastTimer::FTM_POOLS, " Pools", &LLColor4::green3, 1 },
- { LLFastTimer::FTM_POOLRENDER, " RenderPool", &LLColor4::green4, 1 },
- { LLFastTimer::FTM_RENDER_TERRAIN, " Terrain", &LLColor4::green6, 0 },
- { LLFastTimer::FTM_RENDER_CHARACTERS, " Avatars", &LLColor4::yellow1, 0 },
- { LLFastTimer::FTM_RENDER_SIMPLE, " Simple", &LLColor4::yellow2, 0 },
- { LLFastTimer::FTM_RENDER_FULLBRIGHT, " Fullbright", &LLColor4::yellow5, 0 },
- { LLFastTimer::FTM_RENDER_GLOW, " Glow", &LLColor4::orange1, 0 },
- { LLFastTimer::FTM_RENDER_GRASS, " Grass", &LLColor4::yellow6, 0 },
- { LLFastTimer::FTM_RENDER_INVISIBLE, " Invisible", &LLColor4::red2, 0 },
- { LLFastTimer::FTM_RENDER_SHINY, " Shiny", &LLColor4::yellow3, 0 },
- { LLFastTimer::FTM_RENDER_BUMP, " Bump", &LLColor4::yellow4, 0 },
- { LLFastTimer::FTM_RENDER_TREES, " Trees", &LLColor4::yellow8, 0 },
- { LLFastTimer::FTM_RENDER_OCCLUSION, " Occlusion", &LLColor4::red1, 0 },
- { LLFastTimer::FTM_RENDER_CLOUDS, " Clouds", &LLColor4::yellow5, 0 },
- { LLFastTimer::FTM_RENDER_ALPHA, " Alpha", &LLColor4::yellow6, 0 },
- { LLFastTimer::FTM_RENDER_HUD, " HUD", &LLColor4::yellow7, 0 },
- { LLFastTimer::FTM_RENDER_WATER, " Water", &LLColor4::yellow9, 0 },
- { LLFastTimer::FTM_RENDER_WL_SKY, " WL Sky", &LLColor4::blue3, 0 },
- { LLFastTimer::FTM_RENDER_FAKE_VBO_UPDATE," Fake VBO update", &LLColor4::red2, 0 },
- { LLFastTimer::FTM_RENDER_BLOOM, " Bloom", &LLColor4::blue4, 0 },
- { LLFastTimer::FTM_RENDER_BLOOM_FBO, " First FBO", &LLColor4::blue, 0 },
- { LLFastTimer::FTM_RENDER_UI, " UI", &LLColor4::cyan4, 1 },
- { LLFastTimer::FTM_RENDER_TIMER, " Timers", &LLColor4::cyan5, 1, 0 },
- { LLFastTimer::FTM_RENDER_FONTS, " Fonts", &LLColor4::pink1, 0 },
- { LLFastTimer::FTM_SWAP, " Swap", &LLColor4::pink2, 0 },
- { LLFastTimer::FTM_CLIENT_COPY, " Client Copy", &LLColor4::red1, 1},
- { LLFastTimer::FTM_SWAP, " Swap", &LLColor4::pink2, 0 },
- { LLFastTimer::FTM_CLIENT_COPY, " Client Copy", &LLColor4::red1, 1},
-
-#if 0 || !LL_RELEASE_FOR_DOWNLOAD
- { LLFastTimer::FTM_TEMP1, " Temp1", &LLColor4::red1, 0 },
- { LLFastTimer::FTM_TEMP2, " Temp2", &LLColor4::magenta1, 0 },
- { LLFastTimer::FTM_TEMP3, " Temp3", &LLColor4::red2, 0 },
- { LLFastTimer::FTM_TEMP4, " Temp4", &LLColor4::magenta2, 0 },
- { LLFastTimer::FTM_TEMP5, " Temp5", &LLColor4::red3, 0 },
- { LLFastTimer::FTM_TEMP6, " Temp6", &LLColor4::magenta3, 0 },
- { LLFastTimer::FTM_TEMP7, " Temp7", &LLColor4::red4, 0 },
- { LLFastTimer::FTM_TEMP8, " Temp8", &LLColor4::magenta4, 0 },
-#endif
-
- { LLFastTimer::FTM_OTHER, " Other", &red0 }
-};
-static int ft_display_didcalc = 0;
-static const int FTV_DISPLAY_NUM = LL_ARRAY_SIZE(ft_display_table);
+//static const int FTV_DISPLAY_NUM = (sizeof(ft_display_table)/sizeof(ft_display_table[0]));
+static S32 FTV_NUM_TIMERS;
+const S32 FTV_MAX_DEPTH = 8;
+
+std::vector<LLFastTimer::NamedTimer*> ft_display_idx; // line of table entry for display purposes (for collapse)
+
+typedef LLTreeDFSIter<LLFastTimer::NamedTimer, LLFastTimer::NamedTimer::child_const_iter> timer_tree_iterator_t;
-S32 ft_display_idx[FTV_DISPLAY_NUM]; // line of table entry for display purposes (for collapse)
+BOOL LLFastTimerView::sAnalyzePerformance = FALSE;
+
+static timer_tree_iterator_t begin_timer_tree(LLFastTimer::NamedTimer& id)
+{
+ return timer_tree_iterator_t(&id,
+ boost::bind(boost::mem_fn(&LLFastTimer::NamedTimer::beginChildren), _1),
+ boost::bind(boost::mem_fn(&LLFastTimer::NamedTimer::endChildren), _1));
+}
+
+static timer_tree_iterator_t end_timer_tree()
+{
+ return timer_tree_iterator_t();
+}
LLFastTimerView::LLFastTimerView(const LLRect& rect)
-: LLFloater()
+: LLFloater(),
+ mHoverTimer(NULL)
{
setRect(rect);
setVisible(FALSE);
mDisplayMode = 0;
mAvgCountTotal = 0;
mMaxCountTotal = 0;
- mDisplayCenter = 1;
+ mDisplayCenter = ALIGN_CENTER;
mDisplayCalls = 0;
mDisplayHz = 0;
mScrollIndex = 0;
- mHoverIndex = -1;
+ mHoverID = NULL;
mHoverBarIndex = -1;
- mBarStart = new S32[(MAX_VISIBLE_HISTORY + 1) * FTV_DISPLAY_NUM];
- memset(mBarStart, 0, (MAX_VISIBLE_HISTORY + 1) * FTV_DISPLAY_NUM * sizeof(S32));
- mBarEnd = new S32[(MAX_VISIBLE_HISTORY + 1) * FTV_DISPLAY_NUM];
- memset(mBarEnd, 0, (MAX_VISIBLE_HISTORY + 1) * FTV_DISPLAY_NUM * sizeof(S32));
- mSubtractHidden = 0;
+ FTV_NUM_TIMERS = LLFastTimer::NamedTimer::instanceCount();
mPrintStats = -1;
-
- // One-time setup
- if (!ft_display_didcalc)
- {
- int pidx[FTV_DISPLAY_NUM];
- int pdisabled[FTV_DISPLAY_NUM];
- for (S32 i=0; i < FTV_DISPLAY_NUM; i++)
- {
- int level = 0;
- const char *text = ft_display_table[i].desc;
- while(text[0] == ' ')
- {
- text++;
- level++;
- }
- llassert(level < FTV_DISPLAY_NUM);
- ft_display_table[i].desc = text;
- ft_display_table[i].level = level;
- if (level > 0)
- {
- ft_display_table[i].parent = pidx[level-1];
- if (pdisabled[level-1])
- {
- ft_display_table[i].disabled = 3;
- }
- }
- else
- {
- ft_display_table[i].parent = -1;
- }
- ft_display_idx[i] = i;
- pidx[level] = i;
- pdisabled[level] = ft_display_table[i].disabled;
- }
- ft_display_didcalc = 1;
- }
}
-LLFastTimerView::~LLFastTimerView()
-{
- delete[] mBarStart;
- delete[] mBarEnd;
-}
BOOL LLFastTimerView::handleRightMouseDown(S32 x, S32 y, MASK mask)
{
- if (mBarRect.pointInRect(x, y))
+ if (mHoverTimer )
+ {
+ // right click collapses timers
+ if (!mHoverTimer->getCollapsed())
+ {
+ mHoverTimer->setCollapsed(true);
+ }
+ else if (mHoverTimer->getParent())
+ {
+ mHoverTimer->getParent()->setCollapsed(true);
+ }
+ }
+ else if (mBarRect.pointInRect(x, y))
{
S32 bar_idx = MAX_VISIBLE_HISTORY - ((y - mBarRect.mBottom) * (MAX_VISIBLE_HISTORY + 2) / mBarRect.getHeight());
bar_idx = llclamp(bar_idx, 0, MAX_VISIBLE_HISTORY);
mPrintStats = bar_idx;
-// return TRUE; // for now, pass all mouse events through
}
return FALSE;
}
-S32 LLFastTimerView::getLegendIndex(S32 y)
+LLFastTimer::NamedTimer* LLFastTimerView::getLegendID(S32 y)
{
S32 idx = (getRect().getHeight() - y) / ((S32) LLFontGL::getFontMonospace()->getLineHeight()+2) - 5;
- if (idx >= 0 && idx < FTV_DISPLAY_NUM)
+
+ if (idx >= 0 && idx < (S32)ft_display_idx.size())
{
return ft_display_idx[idx];
}
- return -1;
+ return NULL;
}
BOOL LLFastTimerView::handleMouseDown(S32 x, S32 y, MASK mask)
{
if (x < mBarRect.mLeft)
{
- S32 legend_index = getLegendIndex(y);
- if (legend_index >= 0 && legend_index < FTV_DISPLAY_NUM)
+ LLFastTimer::NamedTimer* idp = getLegendID(y);
+ if (idp)
{
- S32 disabled = ft_display_table[legend_index].disabled;
- if (++disabled > 2)
- disabled = 0;
- ft_display_table[legend_index].disabled = disabled;
- S32 level = ft_display_table[legend_index].level;
-
- // propagate enable/disable to all children
- legend_index++;
- while (legend_index < FTV_DISPLAY_NUM && ft_display_table[legend_index].level > level)
- {
- ft_display_table[legend_index].disabled = disabled ? 3 : 0;
- legend_index++;
- }
+ idp->setCollapsed(!idp->getCollapsed());
}
}
+ else if (mHoverTimer)
+ {
+ //left click drills down by expanding timers
+ mHoverTimer->setCollapsed(false);
+ }
else if (mask & MASK_ALT)
{
- if (mask & MASK_SHIFT)
- {
- mSubtractHidden = !mSubtractHidden;
- }
- else if (mask & MASK_CONTROL)
+ if (mask & MASK_CONTROL)
{
mDisplayHz = !mDisplayHz;
}
@@ -348,8 +167,7 @@ BOOL LLFastTimerView::handleMouseDown(S32 x, S32 y, MASK mask)
}
else if (mask & MASK_CONTROL)
{
- if (++mDisplayCenter > 2)
- mDisplayCenter = 0;
+ mDisplayCenter = (ChildAlignment)((mDisplayCenter + 1) % ALIGN_COUNT);
}
else
{
@@ -370,13 +188,14 @@ BOOL LLFastTimerView::handleMouseUp(S32 x, S32 y, MASK mask)
return FALSE;
}
-
BOOL LLFastTimerView::handleHover(S32 x, S32 y, MASK mask)
{
+ mHoverTimer = NULL;
+ mHoverID = NULL;
+
if(LLFastTimer::sPauseHistory && mBarRect.pointInRect(x, y))
{
- mHoverIndex = -1;
- mHoverBarIndex = MAX_VISIBLE_HISTORY - ((y - mBarRect.mBottom) * (MAX_VISIBLE_HISTORY + 2) / mBarRect.getHeight());
+ mHoverBarIndex = llmin(LLFastTimer::getCurFrameIndex() - 1, MAX_VISIBLE_HISTORY - ((y - mBarRect.mBottom) * (MAX_VISIBLE_HISTORY + 2) / mBarRect.getHeight()));
if (mHoverBarIndex == 0)
{
return TRUE;
@@ -385,39 +204,88 @@ BOOL LLFastTimerView::handleHover(S32 x, S32 y, MASK mask)
{
mHoverBarIndex = 0;
}
- for (S32 i = 0; i < FTV_DISPLAY_NUM; i++)
+
+ S32 i = 0;
+ for(timer_tree_iterator_t it = begin_timer_tree(LLFastTimer::NamedTimer::getRootNamedTimer());
+ it != end_timer_tree();
+ ++it, ++i)
{
- if (x > mBarStart[mHoverBarIndex * FTV_DISPLAY_NUM + i] &&
- x < mBarEnd[mHoverBarIndex * FTV_DISPLAY_NUM + i] &&
- ft_display_table[i].disabled <= 1)
+ // is mouse over bar for this timer?
+ if (x > mBarStart[mHoverBarIndex][i] &&
+ x < mBarEnd[mHoverBarIndex][i])
+ {
+ mHoverID = (*it);
+ mHoverTimer = (*it);
+ mToolTipRect.set(mBarStart[mHoverBarIndex][i],
+ mBarRect.mBottom + llround(((F32)mHoverBarIndex + 1.f) * ((F32)mBarRect.getHeight() / ((F32)MAX_VISIBLE_HISTORY + 2.f))),
+ mBarEnd[mHoverBarIndex][i],
+ mBarRect.mBottom + llround((F32)mHoverBarIndex * ((F32)mBarRect.getHeight() / ((F32)MAX_VISIBLE_HISTORY + 2.f))));
+ }
+
+ if ((*it)->getCollapsed())
{
- mHoverIndex = i;
+ it.skipDescendants();
}
}
}
else if (x < mBarRect.mLeft)
{
- S32 legend_index = getLegendIndex(y);
- if (legend_index >= 0 && legend_index < FTV_DISPLAY_NUM)
+ LLFastTimer::NamedTimer* timer_id = getLegendID(y);
+ if (timer_id)
{
- mHoverIndex = legend_index;
+ mHoverID = timer_id;
}
}
return FALSE;
}
+
+BOOL LLFastTimerView::handleToolTip(S32 x, S32 y, std::string& msg, LLRect* sticky_rect_screen)
+{
+ if(LLFastTimer::sPauseHistory && mBarRect.pointInRect(x, y))
+ {
+ // tooltips for timer bars
+ if (mHoverTimer)
+ {
+ msg = mHoverTimer->getToolTip(LLFastTimer::NamedTimer::HISTORY_NUM - mScrollIndex - mHoverBarIndex);
+ return TRUE;
+ }
+ }
+ else
+ {
+ // tooltips for timer legend
+ if (x < mBarRect.mLeft)
+ {
+ LLFastTimer::NamedTimer* idp = getLegendID(y);
+ if (idp)
+ {
+ msg = idp->getToolTip();
+ return TRUE;
+ }
+ }
+
+ }
+
+ return FALSE;
+}
+
BOOL LLFastTimerView::handleScrollWheel(S32 x, S32 y, S32 clicks)
{
LLFastTimer::sPauseHistory = TRUE;
mScrollIndex = llclamp(mScrollIndex - clicks,
- 0, llmin(LLFastTimer::sLastFrameIndex, (S32)LLFastTimer::FTM_HISTORY_NUM-MAX_VISIBLE_HISTORY));
+ 0,
+ llmin(LLFastTimer::getLastFrameIndex(), (S32)LLFastTimer::NamedTimer::HISTORY_NUM - MAX_VISIBLE_HISTORY));
return TRUE;
}
+static LLFastTimer::DeclareTimer FTM_RENDER_TIMER("Timers", true);
+
+static std::map<LLFastTimer::NamedTimer*, LLColor4> sTimerColors;
+
void LLFastTimerView::draw()
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_TIMER);
+ LLFastTimer t(FTM_RENDER_TIMER);
std::string tdesc;
@@ -436,47 +304,9 @@ void LLFastTimerView::draw()
S32 texth, textw;
LLPointer<LLUIImage> box_imagep = LLUI::getUIImage("rounded_square.tga");
- // Make sure all timers are accounted for
- // Set 'FTM_OTHER' to unaccounted ticks last frame
- {
- S32 display_timer[LLFastTimer::FTM_NUM_TYPES];
- S32 hidx = LLFastTimer::sLastFrameIndex % LLFastTimer::FTM_HISTORY_NUM;
- for (S32 i=0; i < LLFastTimer::FTM_NUM_TYPES; i++)
- {
- display_timer[i] = 0;
- }
- for (S32 i=0; i < FTV_DISPLAY_NUM; i++)
- {
- S32 tidx = ft_display_table[i].timer;
- display_timer[tidx] = 1;
- }
- LLFastTimer::sCountHistory[hidx][LLFastTimer::FTM_OTHER] = 0;
- LLFastTimer::sCallHistory[hidx][LLFastTimer::FTM_OTHER] = 0;
- for (S32 tidx = 0; tidx < LLFastTimer::FTM_NUM_TYPES; tidx++)
- {
- U64 counts = LLFastTimer::sCountHistory[hidx][tidx];
- if (counts > 0 && display_timer[tidx] == 0)
- {
- LLFastTimer::sCountHistory[hidx][LLFastTimer::FTM_OTHER] += counts;
- LLFastTimer::sCallHistory[hidx][LLFastTimer::FTM_OTHER] += 1;
- }
- }
- LLFastTimer::sCountAverage[LLFastTimer::FTM_OTHER] = 0;
- LLFastTimer::sCallAverage[LLFastTimer::FTM_OTHER] = 0;
- for (S32 h = 0; h < LLFastTimer::FTM_HISTORY_NUM; h++)
- {
- LLFastTimer::sCountAverage[LLFastTimer::FTM_OTHER] += LLFastTimer::sCountHistory[h][LLFastTimer::FTM_OTHER];
- LLFastTimer::sCallAverage[LLFastTimer::FTM_OTHER] += LLFastTimer::sCallHistory[h][LLFastTimer::FTM_OTHER];
- }
- LLFastTimer::sCountAverage[LLFastTimer::FTM_OTHER] /= LLFastTimer::FTM_HISTORY_NUM;
- LLFastTimer::sCallAverage[LLFastTimer::FTM_OTHER] /= LLFastTimer::FTM_HISTORY_NUM;
- }
-
// Draw the window background
- {
- gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
- gl_rect_2d(0, getRect().getHeight(), getRect().getWidth(), 0, LLColor4(0.f, 0.f, 0.f, 0.25f));
- }
+ gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
+ gl_rect_2d(0, getRect().getHeight(), getRect().getWidth(), 0, LLColor4(0.f, 0.f, 0.f, 0.25f));
S32 xleft = margin;
S32 ytop = margin;
@@ -515,148 +345,135 @@ void LLFastTimerView::draw()
y -= (texth + 2);
}
- // Calc the total ticks
- S32 histmax = llmin(LLFastTimer::sLastFrameIndex+1, MAX_VISIBLE_HISTORY);
- U64 ticks_sum[LLFastTimer::FTM_HISTORY_NUM+1][FTV_DISPLAY_NUM];
- for (S32 j=-1; j<LLFastTimer::FTM_HISTORY_NUM; j++)
- {
- S32 hidx;
- if (j >= 0)
- hidx = (LLFastTimer::sLastFrameIndex+j) % LLFastTimer::FTM_HISTORY_NUM;
- else
- hidx = -1;
-
- // calculate tick info by adding child ticks to parents
- for (S32 i=0; i < FTV_DISPLAY_NUM; i++)
- {
- if (mSubtractHidden && ft_display_table[i].disabled > 1)
- {
- continue;
- }
- // Get ticks
- S32 tidx = ft_display_table[i].timer;
- if (hidx >= 0)
- ticks_sum[j+1][i] = LLFastTimer::sCountHistory[hidx][tidx];
- else
- ticks_sum[j+1][i] = LLFastTimer::sCountAverage[tidx];
- S32 pidx = ft_display_table[i].parent;
- // Add ticks to parents
- while (pidx >= 0)
- {
- ticks_sum[j+1][pidx] += ticks_sum[j+1][i];
- pidx = ft_display_table[pidx].parent;
- }
- }
- }
+ S32 histmax = llmin(LLFastTimer::getLastFrameIndex()+1, MAX_VISIBLE_HISTORY);
// Draw the legend
-
- S32 legendwidth = 0;
xleft = margin;
ytop = y;
y -= (texth + 2);
- S32 cur_line = 0;
- S32 display_line[FTV_DISPLAY_NUM];
- for (S32 i=0; i<FTV_DISPLAY_NUM; i++)
+ sTimerColors[&LLFastTimer::NamedTimer::getRootNamedTimer()] = LLColor4::grey;
+
+ F32 hue = 0.f;
+
+ for (timer_tree_iterator_t it = begin_timer_tree(LLFastTimer::NamedTimer::getRootNamedTimer());
+ it != timer_tree_iterator_t();
+ ++it)
{
- S32 disabled = ft_display_table[i].disabled;
- if (disabled == 3)
- {
- continue; // skip row
- }
- display_line[i] = cur_line;
- ft_display_idx[cur_line] = i;
- cur_line++;
- S32 level = ft_display_table[i].level;
- S32 parent = ft_display_table[i].parent;
-
- x = xleft;
+ LLFastTimer::NamedTimer* idp = (*it);
- left = x; right = x + texth;
- top = y; bottom = y - texth;
- S32 scale_offset = 0;
- if (i == mHoverIndex)
- {
- scale_offset = llfloor(sinf(mHighlightTimer.getElapsedTimeF32() * 6.f) * 2.f);
- }
- gl_rect_2d(left - scale_offset, top + scale_offset, right + scale_offset, bottom - scale_offset, *ft_display_table[i].color);
+ const F32 HUE_INCREMENT = 0.23f;
+ hue = fmodf(hue + HUE_INCREMENT, 1.f);
+ // saturation increases with depth
+ F32 saturation = clamp_rescale((F32)idp->getDepth(), 0.f, 3.f, 0.f, 1.f);
+ // lightness alternates with depth
+ F32 lightness = idp->getDepth() % 2 ? 0.5f : 0.6f;
- int tidx = ft_display_table[i].timer;
- F32 ms = 0;
- S32 calls = 0;
- if (mHoverBarIndex > 0 && mHoverIndex >= 0)
- {
- S32 hidx = (LLFastTimer::sLastFrameIndex + (mHoverBarIndex - 1) - mScrollIndex) % LLFastTimer::FTM_HISTORY_NUM;
- S32 bidx = LLFastTimer::FTM_HISTORY_NUM - mScrollIndex - mHoverBarIndex;
- U64 ticks = ticks_sum[bidx+1][i]; // : LLFastTimer::sCountHistory[hidx][tidx];
- ms = (F32)((F64)ticks * iclock_freq);
- calls = (S32)LLFastTimer::sCallHistory[hidx][tidx];
- }
- else
- {
- U64 ticks = ticks_sum[0][i];
- ms = (F32)((F64)ticks * iclock_freq);
- calls = (S32)LLFastTimer::sCallAverage[tidx];
- }
- if (mDisplayCalls)
- {
- tdesc = llformat("%s (%d)",ft_display_table[i].desc,calls);
- }
- else
- {
- tdesc = llformat("%s [%.1f]",ft_display_table[i].desc,ms);
- }
- dx = (texth+4) + level*8;
+ LLColor4 child_color;
+ child_color.setHSL(hue, saturation, lightness);
+
+ sTimerColors[idp] = child_color;
+ }
- LLColor4 color = disabled > 1 ? LLColor4::grey : LLColor4::white;
- if (level > 0)
+ const S32 LEGEND_WIDTH = 220;
+ {
+ LLLocalClipRect clip(LLRect(margin, y, LEGEND_WIDTH, margin));
+ S32 cur_line = 0;
+ ft_display_idx.clear();
+ std::map<LLFastTimer::NamedTimer*, S32> display_line;
+ for (timer_tree_iterator_t it = begin_timer_tree(LLFastTimer::NamedTimer::getRootNamedTimer());
+ it != timer_tree_iterator_t();
+ ++it)
{
- S32 line_start_y = (top + bottom) / 2;
- S32 line_end_y = line_start_y + ((texth + 2) * (display_line[i] - display_line[parent])) - (texth / 2);
- gl_line_2d(x + dx - 8, line_start_y, x + dx, line_start_y, color);
- S32 line_x = x + (texth + 4) + ((level - 1) * 8);
- gl_line_2d(line_x, line_start_y, line_x, line_end_y, color);
- if (disabled == 1)
+ LLFastTimer::NamedTimer* idp = (*it);
+ display_line[idp] = cur_line;
+ ft_display_idx.push_back(idp);
+ cur_line++;
+
+ x = xleft;
+
+ left = x; right = x + texth;
+ top = y; bottom = y - texth;
+ S32 scale_offset = 0;
+ if (idp == mHoverID)
{
- gl_line_2d(line_x+4, line_start_y-3, line_x+4, line_start_y+4, color);
+ scale_offset = llfloor(sinf(mHighlightTimer.getElapsedTimeF32() * 6.f) * 2.f);
}
- }
+ gl_rect_2d(left - scale_offset, top + scale_offset, right + scale_offset, bottom - scale_offset, sTimerColors[idp]);
- x += dx;
- BOOL is_child_of_hover_item = (i == mHoverIndex);
- S32 next_parent = ft_display_table[i].parent;
- while(!is_child_of_hover_item && next_parent >= 0)
- {
- is_child_of_hover_item = (mHoverIndex == next_parent);
- next_parent = ft_display_table[next_parent].parent;
- }
+ F32 ms = 0;
+ S32 calls = 0;
+ if (mHoverBarIndex > 0 && mHoverID)
+ {
+ S32 hidx = LLFastTimer::NamedTimer::HISTORY_NUM - mScrollIndex - mHoverBarIndex;
+ U64 ticks = idp->getHistoricalCount(hidx);
+ ms = (F32)((F64)ticks * iclock_freq);
+ calls = (S32)idp->getHistoricalCalls(hidx);
+ }
+ else
+ {
+ U64 ticks = idp->getCountAverage();
+ ms = (F32)((F64)ticks * iclock_freq);
+ calls = (S32)idp->getCallAverage();
+ }
- if (is_child_of_hover_item)
- {
- LLFontGL::getFontMonospace()->renderUTF8(tdesc, 0, x, y, color, LLFontGL::LEFT, LLFontGL::TOP, LLFontGL::BOLD);
- }
- else
- {
- LLFontGL::getFontMonospace()->renderUTF8(tdesc, 0, x, y, color, LLFontGL::LEFT, LLFontGL::TOP);
- }
- y -= (texth + 2);
+ if (mDisplayCalls)
+ {
+ tdesc = llformat("%s (%d)",idp->getName().c_str(),calls);
+ }
+ else
+ {
+ tdesc = llformat("%s [%.1f]",idp->getName().c_str(),ms);
+ }
+ dx = (texth+4) + idp->getDepth()*8;
- textw = dx + LLFontGL::getFontMonospace()->getWidth(std::string(ft_display_table[i].desc)) + 40;
- if (textw > legendwidth)
- legendwidth = textw;
- }
- for (S32 i=cur_line; i<FTV_DISPLAY_NUM; i++)
- {
- ft_display_idx[i] = -1;
+ LLColor4 color = LLColor4::white;
+ if (idp->getDepth() > 0)
+ {
+ S32 line_start_y = (top + bottom) / 2;
+ S32 line_end_y = line_start_y + ((texth + 2) * (cur_line - display_line[idp->getParent()])) - texth;
+ gl_line_2d(x + dx - 8, line_start_y, x + dx, line_start_y, color);
+ S32 line_x = x + (texth + 4) + ((idp->getDepth() - 1) * 8);
+ gl_line_2d(line_x, line_start_y, line_x, line_end_y, color);
+ if (idp->getCollapsed() && !idp->getChildren().empty())
+ {
+ gl_line_2d(line_x+4, line_start_y-3, line_x+4, line_start_y+4, color);
+ }
+ }
+
+ x += dx;
+ BOOL is_child_of_hover_item = (idp == mHoverID);
+ LLFastTimer::NamedTimer* next_parent = idp->getParent();
+ while(!is_child_of_hover_item && next_parent)
+ {
+ is_child_of_hover_item = (mHoverID == next_parent);
+ next_parent = next_parent->getParent();
+ }
+
+ LLFontGL::getFontMonospace()->renderUTF8(tdesc, 0,
+ x, y,
+ color,
+ LLFontGL::LEFT, LLFontGL::TOP,
+ is_child_of_hover_item ? LLFontGL::BOLD : LLFontGL::NORMAL);
+
+ y -= (texth + 2);
+
+ textw = dx + LLFontGL::getFontMonospace()->getWidth(idp->getName()) + 40;
+
+ if (idp->getCollapsed())
+ {
+ it.skipDescendants();
+ }
+ }
}
- xleft += legendwidth + 8;
+
+ xleft += LEGEND_WIDTH + 8;
// ytop = ytop;
// update rectangle that includes timer bars
mBarRect.mLeft = xleft;
- mBarRect.mRight = getRect().mRight - xleft;
+ mBarRect.mRight = getRect().getWidth();
mBarRect.mTop = ytop - ((S32)LLFontGL::getFontMonospace()->getLineHeight() + 4);
mBarRect.mBottom = margin + LINE_GRAPH_HEIGHT;
@@ -668,25 +485,18 @@ void LLFastTimerView::draw()
barw = width - xleft - margin;
// Draw the history bars
- if (LLFastTimer::sLastFrameIndex >= 0)
+ if (LLFastTimer::getLastFrameIndex() >= 0)
{
+ LLLocalClipRect clip(LLRect(xleft, ytop - margin, getRect().getWidth() - margin, margin));
+
U64 totalticks;
if (!LLFastTimer::sPauseHistory)
{
- U64 ticks = 0;
- int hidx = (LLFastTimer::sLastFrameIndex - mScrollIndex) % LLFastTimer::FTM_HISTORY_NUM;
- for (S32 i=0; i<FTV_DISPLAY_NUM; i++)
- {
- if (mSubtractHidden && ft_display_table[i].disabled > 1)
- {
- continue;
- }
- int tidx = ft_display_table[i].timer;
- ticks += LLFastTimer::sCountHistory[hidx][tidx];
- }
- if (LLFastTimer::sCurFrameIndex >= 10)
+ U64 ticks = LLFastTimer::NamedTimer::getRootNamedTimer().getHistoricalCount(mScrollIndex);
+
+ if (LLFastTimer::getCurFrameIndex() >= 10)
{
- U64 framec = LLFastTimer::sCurFrameIndex;
+ U64 framec = LLFastTimer::getCurFrameIndex();
U64 avg = (U64)mAvgCountTotal;
mAvgCountTotal = (avg*framec + ticks) / (framec + 1);
if (ticks > mMaxCountTotal)
@@ -694,11 +504,13 @@ void LLFastTimerView::draw()
mMaxCountTotal = ticks;
}
}
-#if 1
+
if (ticks < mAvgCountTotal/100 || ticks > mAvgCountTotal*100)
- LLFastTimer::sResetHistory = 1;
-#endif
- if (LLFastTimer::sCurFrameIndex < 10 || LLFastTimer::sResetHistory)
+ {
+ LLFastTimer::sResetHistory = true;
+ }
+
+ if (LLFastTimer::getCurFrameIndex() < 10 || LLFastTimer::sResetHistory)
{
mAvgCountTotal = ticks;
mMaxCountTotal = ticks;
@@ -719,16 +531,8 @@ void LLFastTimerView::draw()
totalticks = 0;
for (S32 j=0; j<histmax; j++)
{
- U64 ticks = 0;
- for (S32 i=0; i<FTV_DISPLAY_NUM; i++)
- {
- if (mSubtractHidden && ft_display_table[i].disabled > 1)
- {
- continue;
- }
- int tidx = ft_display_table[i].timer;
- ticks += LLFastTimer::sCountHistory[j][tidx];
- }
+ U64 ticks = LLFastTimer::NamedTimer::getRootNamedTimer().getHistoricalCount(j);
+
if (ticks > totalticks)
totalticks = ticks;
}
@@ -801,18 +605,23 @@ void LLFastTimerView::draw()
gl_rect_2d(graph_rect, FALSE);
}
+ mBarStart.clear();
+ mBarEnd.clear();
+
// Draw bars for each history entry
// Special: -1 = show running average
gGL.getTexUnit(0)->bind(box_imagep->getImage());
for (S32 j=-1; j<histmax && y > LINE_GRAPH_HEIGHT; j++)
{
- int sublevel_dx[FTV_DISPLAY_NUM+1];
- int sublevel_left[FTV_DISPLAY_NUM+1];
- int sublevel_right[FTV_DISPLAY_NUM+1];
+ mBarStart.push_back(std::vector<S32>());
+ mBarEnd.push_back(std::vector<S32>());
+ int sublevel_dx[FTV_MAX_DEPTH];
+ int sublevel_left[FTV_MAX_DEPTH];
+ int sublevel_right[FTV_MAX_DEPTH];
S32 tidx;
if (j >= 0)
{
- tidx = LLFastTimer::FTM_HISTORY_NUM - j - 1 - mScrollIndex;
+ tidx = LLFastTimer::NamedTimer::HISTORY_NUM - j - 1 - mScrollIndex;
}
else
{
@@ -822,88 +631,75 @@ void LLFastTimerView::draw()
x = xleft;
// draw the bars for each stat
- int xpos[FTV_DISPLAY_NUM+1];
- int deltax[FTV_DISPLAY_NUM+1];
- xpos[0] = xleft;
+ std::vector<S32> xpos;
+ std::vector<S32> deltax;
+ xpos.push_back(xleft);
+
+ LLFastTimer::NamedTimer* prev_id = NULL;
- for (S32 i = 0; i < FTV_DISPLAY_NUM; i++)
+ S32 i = 0;
+ for(timer_tree_iterator_t it = begin_timer_tree(LLFastTimer::NamedTimer::getRootNamedTimer());
+ it != end_timer_tree();
+ ++it, ++i)
{
- if (ft_display_table[i].disabled > 1)
- {
- continue;
- }
-
- F32 frac = (F32)ticks_sum[tidx+1][i] / (F32)totalticks;
+ LLFastTimer::NamedTimer* idp = (*it);
+ F32 frac = tidx == -1
+ ? (F32)idp->getCountAverage() / (F32)totalticks
+ : (F32)idp->getHistoricalCount(tidx) / (F32)totalticks;
dx = llround(frac * (F32)barw);
- deltax[i] = dx;
+ S32 prev_delta_x = deltax.empty() ? 0 : deltax.back();
+ deltax.push_back(dx);
- int level = ft_display_table[i].level;
- int parent = ft_display_table[i].parent;
- llassert(level < FTV_DISPLAY_NUM);
- llassert(parent < FTV_DISPLAY_NUM);
+ int level = idp->getDepth() - 1;
- left = xpos[level];
-
- S32 prev_idx = i - 1;
- while (prev_idx > 0)
- {
- if (ft_display_table[prev_idx].disabled <= 1)
- {
- break;
- }
- prev_idx--;
- }
- S32 next_idx = i + 1;
- while (next_idx < FTV_DISPLAY_NUM)
+ while ((S32)xpos.size() > level + 1)
{
- if (ft_display_table[next_idx].disabled <= 1)
- {
- break;
- }
- next_idx++;
+ xpos.pop_back();
}
-
+ left = xpos.back();
+
if (level == 0)
- {
+ {
sublevel_left[level] = xleft;
sublevel_dx[level] = dx;
sublevel_right[level] = sublevel_left[level] + sublevel_dx[level];
- }
- else if (i==0 || ft_display_table[prev_idx].level < level)
+ }
+ else if (prev_id && prev_id->getDepth() < idp->getDepth())
{
- // If we are the first entry at a new sublevel block, calc the
- // total width of this sublevel and modify left to align block.
- U64 sublevelticks = ticks_sum[tidx+1][i];
- for (S32 k=i+1; k<FTV_DISPLAY_NUM; k++)
- {
- if (ft_display_table[k].level < level)
- break;
- if (ft_display_table[k].disabled <= 1 && ft_display_table[k].level == level)
- sublevelticks += ticks_sum[tidx+1][k];
- }
- F32 subfrac = (F32)sublevelticks / (F32)totalticks;
+ U64 sublevelticks = 0;
+
+ for (LLFastTimer::NamedTimer::child_const_iter it = prev_id->beginChildren();
+ it != prev_id->endChildren();
+ ++it)
+ {
+ sublevelticks += (tidx == -1)
+ ? (*it)->getCountAverage()
+ : (*it)->getHistoricalCount(tidx);
+ }
+
+ F32 subfrac = (F32)sublevelticks / (F32)totalticks;
sublevel_dx[level] = (int)(subfrac * (F32)barw + .5f);
- if (mDisplayCenter == 1) // center aligned
+ if (mDisplayCenter == ALIGN_CENTER)
{
- left += (deltax[parent] - sublevel_dx[level])/2;
+ left += (prev_delta_x - sublevel_dx[level])/2;
}
- else if (mDisplayCenter == 2) // right aligned
+ else if (mDisplayCenter == ALIGN_RIGHT)
{
- left += (deltax[parent] - sublevel_dx[level]);
- }
+ left += (prev_delta_x - sublevel_dx[level]);
+ }
sublevel_left[level] = left;
sublevel_right[level] = sublevel_left[level] + sublevel_dx[level];
}
right = left + dx;
- xpos[level] = right;
- xpos[level+1] = left;
+ xpos.back() = right;
+ xpos.push_back(left);
- mBarStart[(j + 1) * FTV_DISPLAY_NUM + i] = left;
- mBarEnd[(j + 1) * FTV_DISPLAY_NUM + i] = right;
+ mBarStart.back().push_back(left);
+ mBarEnd.back().push_back(right);
top = y;
bottom = y - barh;
@@ -911,23 +707,23 @@ void LLFastTimerView::draw()
if (right > left)
{
//U32 rounded_edges = 0;
- LLColor4 color = *ft_display_table[i].color;
+ LLColor4 color = sTimerColors[idp];//*ft_display_table[i].color;
S32 scale_offset = 0;
- BOOL is_child_of_hover_item = (i == mHoverIndex);
- S32 next_parent = ft_display_table[i].parent;
- while(!is_child_of_hover_item && next_parent >= 0)
+ BOOL is_child_of_hover_item = (idp == mHoverID);
+ LLFastTimer::NamedTimer* next_parent = idp->getParent();
+ while(!is_child_of_hover_item && next_parent)
{
- is_child_of_hover_item = (mHoverIndex == next_parent);
- next_parent = ft_display_table[next_parent].parent;
+ is_child_of_hover_item = (mHoverID == next_parent);
+ next_parent = next_parent->getParent();
}
- if (i == mHoverIndex)
+ if (idp == mHoverID)
{
scale_offset = llfloor(sinf(mHighlightTimer.getElapsedTimeF32() * 6.f) * 3.f);
//color = lerp(color, LLColor4::black, -0.4f);
}
- else if (mHoverIndex >= 0 && !is_child_of_hover_item)
+ else if (mHoverID != NULL && !is_child_of_hover_item)
{
color = lerp(color, LLColor4::grey, 0.8f);
}
@@ -938,7 +734,13 @@ void LLFastTimerView::draw()
gl_segmented_rect_2d_fragment_tex(sublevel_left[level], top - level + scale_offset, sublevel_right[level], bottom + level - scale_offset, box_imagep->getTextureWidth(), box_imagep->getTextureHeight(), 16, start_fragment, end_fragment);
}
-
+
+ if ((*it)->getCollapsed())
+ {
+ it.skipDescendants();
+ }
+
+ prev_id = idp;
}
y -= (barh + dy);
if (j < 0)
@@ -973,10 +775,10 @@ void LLFastTimerView::draw()
//highlight visible range
{
- S32 first_frame = LLFastTimer::FTM_HISTORY_NUM - mScrollIndex;
+ S32 first_frame = LLFastTimer::NamedTimer::HISTORY_NUM - mScrollIndex;
S32 last_frame = first_frame - MAX_VISIBLE_HISTORY;
- F32 frame_delta = ((F32) (graph_rect.getWidth()))/(LLFastTimer::FTM_HISTORY_NUM-1);
+ F32 frame_delta = ((F32) (graph_rect.getWidth()))/(LLFastTimer::NamedTimer::HISTORY_NUM-1);
F32 right = (F32) graph_rect.mLeft + frame_delta*first_frame;
F32 left = (F32) graph_rect.mLeft + frame_delta*last_frame;
@@ -999,28 +801,27 @@ void LLFastTimerView::draw()
}
U64 cur_max = 0;
- for (S32 idx = 0; idx < FTV_DISPLAY_NUM; ++idx)
+ for(timer_tree_iterator_t it = begin_timer_tree(LLFastTimer::NamedTimer::getRootNamedTimer());
+ it != end_timer_tree();
+ ++it)
{
- if (ft_display_table[idx].disabled > 1)
- { //skip disabled timers
- continue;
- }
+ LLFastTimer::NamedTimer* idp = (*it);
//fatten highlighted timer
- if (mHoverIndex == idx)
+ if (mHoverID == idp)
{
gGL.flush();
glLineWidth(3);
}
- const F32 * col = ft_display_table[idx].color->mV;
+ const F32 * col = sTimerColors[idp].mV;// ft_display_table[idx].color->mV;
F32 alpha = 1.f;
- if (mHoverIndex >= 0 &&
- idx != mHoverIndex)
+ if (mHoverID != NULL &&
+ idp != mHoverID)
{ //fade out non-hihglighted timers
- if (ft_display_table[idx].parent != mHoverIndex)
+ if (idp->getParent() != mHoverID)
{
alpha = alpha_interp;
}
@@ -1028,9 +829,9 @@ void LLFastTimerView::draw()
gGL.color4f(col[0], col[1], col[2], alpha);
gGL.begin(LLRender::LINE_STRIP);
- for (U32 j = 0; j < LLFastTimer::FTM_HISTORY_NUM; j++)
+ for (U32 j = 0; j < LLFastTimer::NamedTimer::HISTORY_NUM; j++)
{
- U64 ticks = ticks_sum[j+1][idx];
+ U64 ticks = idp->getHistoricalCount(j);
if (mDisplayHz)
{
@@ -1040,26 +841,31 @@ void LLFastTimerView::draw()
}
else if (mDisplayCalls)
{
- S32 tidx = ft_display_table[idx].timer;
- S32 hidx = (LLFastTimer::sLastFrameIndex + j) % LLFastTimer::FTM_HISTORY_NUM;
- ticks = (S32)LLFastTimer::sCallHistory[hidx][tidx];
+ ticks = (S32)idp->getHistoricalCalls(j);
}
if (alpha == 1.f)
- { //normalize to highlighted timer
+ {
+ //normalize to highlighted timer
cur_max = llmax(cur_max, ticks);
}
- F32 x = graph_rect.mLeft + ((F32) (graph_rect.getWidth()))/(LLFastTimer::FTM_HISTORY_NUM-1)*j;
+ F32 x = graph_rect.mLeft + ((F32) (graph_rect.getWidth()))/(LLFastTimer::NamedTimer::HISTORY_NUM-1)*j;
F32 y = graph_rect.mBottom + (F32) graph_rect.getHeight()/max_ticks*ticks;
gGL.vertex2f(x,y);
}
gGL.end();
- if (mHoverIndex == idx)
+ if (mHoverID == idp)
{
gGL.flush();
glLineWidth(1);
}
+
+ if (idp->getCollapsed())
+ {
+ //skip hidden timers
+ it.skipDescendants();
+ }
}
//interpolate towards new maximum
@@ -1071,12 +877,16 @@ void LLFastTimerView::draw()
alpha_interp = alpha_interp + (alpha_target-alpha_interp) * dt;
- if (mHoverIndex >= 0)
+ if (mHoverID != NULL)
{
x = (graph_rect.mRight + graph_rect.mLeft)/2;
y = graph_rect.mBottom + 8;
- LLFontGL::getFontMonospace()->renderUTF8(std::string(ft_display_table[mHoverIndex].desc), 0, x, y, LLColor4::white,
+ LLFontGL::getFontMonospace()->renderUTF8(
+ mHoverID->getName(),
+ 0,
+ x, y,
+ LLColor4::white,
LLFontGL::LEFT, LLFontGL::BOTTOM);
}
}
@@ -1086,87 +896,269 @@ void LLFastTimerView::draw()
if (mPrintStats >= 0)
{
std::string legend_stat;
- S32 stat_num;
- S32 first = 1;
- for (stat_num = 0; stat_num < FTV_DISPLAY_NUM; stat_num++)
+ bool first = true;
+ for(timer_tree_iterator_t it = begin_timer_tree(LLFastTimer::NamedTimer::getRootNamedTimer());
+ it != end_timer_tree();
+ ++it)
{
- if (ft_display_table[stat_num].disabled > 1)
- continue;
+ LLFastTimer::NamedTimer* idp = (*it);
+
if (!first)
+ {
legend_stat += ", ";
- first=0;
- legend_stat += ft_display_table[stat_num].desc;
+ }
+ first = true;
+ legend_stat += idp->getName();
+
+ if (idp->getCollapsed())
+ {
+ it.skipDescendants();
+ }
}
llinfos << legend_stat << llendl;
std::string timer_stat;
- first = 1;
- for (stat_num = 0; stat_num < FTV_DISPLAY_NUM; stat_num++)
+ first = true;
+ for(timer_tree_iterator_t it = begin_timer_tree(LLFastTimer::NamedTimer::getRootNamedTimer());
+ it != end_timer_tree();
+ ++it)
{
- S32 disabled = ft_display_table[stat_num].disabled;
- if (disabled > 1)
- continue;
+ LLFastTimer::NamedTimer* idp = (*it);
+
if (!first)
+ {
timer_stat += ", ";
- first=0;
+ }
+ first = false;
+
U64 ticks;
- S32 tidx = ft_display_table[stat_num].timer;
if (mPrintStats > 0)
{
- S32 hidx = (LLFastTimer::sLastFrameIndex+(mPrintStats-1)-mScrollIndex) % LLFastTimer::FTM_HISTORY_NUM;
- ticks = disabled >= 1 ? ticks_sum[mPrintStats][stat_num] : LLFastTimer::sCountHistory[hidx][tidx];
+ S32 hidx = (mPrintStats - 1) - mScrollIndex;
+ ticks = idp->getHistoricalCount(hidx);
}
else
{
- ticks = disabled >= 1 ? ticks_sum[0][stat_num] : LLFastTimer::sCountAverage[tidx];
+ ticks = idp->getCountAverage();
}
F32 ms = (F32)((F64)ticks * iclock_freq);
timer_stat += llformat("%.1f",ms);
+
+ if (idp->getCollapsed())
+ {
+ it.skipDescendants();
+ }
}
llinfos << timer_stat << llendl;
mPrintStats = -1;
}
- mHoverIndex = -1;
+ mHoverID = NULL;
mHoverBarIndex = -1;
LLView::draw();
}
-F64 LLFastTimerView::getTime(LLFastTimer::EFastTimerType tidx)
+F64 LLFastTimerView::getTime(LLFastTimer::NamedTimer::FrameState& id)
{
- // Find table index
- S32 i;
- for (i=0; i<FTV_DISPLAY_NUM; i++)
+ return (F64)id.mTimer->getCountAverage() / (F64)LLFastTimer::countsPerSecond();
+}
+
+//static
+LLSD LLFastTimerView::analyzePerformanceLogDefault(std::istream& is)
+{
+ LLSD ret;
+
+ LLSD cur;
+
+ LLSD::Real total_time = 0.0;
+ LLSD::Integer total_frames = 0;
+
+ while (!is.eof() && LLSDSerialize::fromXML(cur, is))
{
- if (tidx == ft_display_table[i].timer)
+ for (LLSD::map_iterator iter = cur.beginMap(); iter != cur.endMap(); ++iter)
{
- break;
+ std::string label = iter->first;
+
+ F64 time = iter->second["Time"].asReal();
+
+ total_time += time;
+
+ if (time > 0.0)
+ {
+ ret[label]["TotalTime"] = ret[label]["TotalTime"].asReal() + time;
+ ret[label]["MaxTime"] = llmax(time, ret[label]["MaxTime"].asReal());
+
+ if (ret[label]["MinTime"].asReal() == 0)
+ {
+ ret[label]["MinTime"] = time;
+ }
+ else
+ {
+ ret[label]["MinTime"] = llmin(ret[label]["MinTime"].asReal(), time);
+ }
+
+ LLSD::Integer samples = iter->second["Calls"].asInteger();
+
+ ret[label]["Samples"] = ret[label]["Samples"].asInteger() + samples;
+ ret[label]["MaxSamples"] = llmax(ret[label]["MaxSamples"].asInteger(), samples);
+
+ if (ret[label]["MinSamples"].asInteger() == 0)
+ {
+ ret[label]["MinSamples"] = samples;
+ }
+ else
+ {
+ ret[label]["MinSamples"] = llmin(ret[label]["MinSamples"].asInteger(), samples);
+ }
+ }
}
+ total_frames++;
}
+
+ ret["SessionTime"] = total_time;
+ ret["FrameCount"] = total_frames;
- if (i == FTV_DISPLAY_NUM)
+ return ret;
+
+}
+
+//static
+void LLFastTimerView::doAnalysisDefault(std::string baseline, std::string target, std::string output)
+{
+
+ //analyze baseline
+ std::ifstream base_is(baseline.c_str());
+ LLSD base = analyzePerformanceLogDefault(base_is);
+ base_is.close();
+
+ //analyze current
+ std::ifstream target_is(target.c_str());
+ LLSD current = analyzePerformanceLogDefault(target_is);
+ target_is.close();
+
+ //output comparision
+ std::ofstream os(output.c_str());
+
+ LLSD::Real session_time = current["SessionTime"].asReal();
+
+ os << "Label, % Change, % of Session, Cur Min, Cur Max, Cur Mean, Cur Total, Cur Samples, Base Min, Base Max, Base Mean, Base Total, Base Samples\n";
+ for (LLSD::map_iterator iter = base.beginMap(); iter != base.endMap(); ++iter)
{
- // walked off the end of ft_display_table without finding
- // the desired timer type
- llwarns << "Timer type " << tidx << " not known." << llendl;
- return F64(0.0);
+ LLSD::String label = iter->first;
+
+ if (current[label]["Samples"].asInteger() == 0 ||
+ base[label]["Samples"].asInteger() == 0)
+ {
+ //cannot compare
+ continue;
+ }
+ LLSD::Real a = base[label]["TotalTime"].asReal() / base[label]["Samples"].asReal();
+ LLSD::Real b = current[label]["TotalTime"].asReal() / base[label]["Samples"].asReal();
+
+ LLSD::Real diff = b-a;
+
+ LLSD::Real perc = diff/a * 100;
+
+ os << llformat("%s, %.2f, %.4f, %.4f, %.4f, %.4f, %.4f, %d, %.4f, %.4f, %.4f, %.4f, %d\n",
+ label.c_str(),
+ (F32) perc,
+ (F32) (current[label]["TotalTime"].asReal()/session_time * 100.0),
+ (F32) current[label]["MinTime"].asReal(),
+ (F32) current[label]["MaxTime"].asReal(),
+ (F32) b,
+ (F32) current[label]["TotalTime"].asReal(),
+ current[label]["Samples"].asInteger(),
+ (F32) base[label]["MinTime"].asReal(),
+ (F32) base[label]["MaxTime"].asReal(),
+ (F32) a,
+ (F32) base[label]["TotalTime"].asReal(),
+ base[label]["Samples"].asInteger());
}
- S32 table_idx = i;
- // Add child ticks to parent
- U64 ticks = LLFastTimer::sCountAverage[tidx];
- S32 level = ft_display_table[table_idx].level;
- for (i=table_idx+1; i<FTV_DISPLAY_NUM; i++)
+ os.flush();
+ os.close();
+}
+
+//-------------------------
+//static
+LLSD LLFastTimerView::analyzeMetricPerformanceLog(std::istream& is)
+{
+ LLSD ret;
+ LLSD cur;
+
+ while (!is.eof() && LLSDSerialize::fromXML(cur, is))
{
- if (ft_display_table[i].level <= level)
+ for (LLSD::map_iterator iter = cur.beginMap(); iter != cur.endMap(); ++iter)
{
- break;
+ std::string label = iter->first;
+
+ LLMetricPerformanceTester* tester = LLMetricPerformanceTester::getTester(iter->second["Name"].asString()) ;
+ if(tester)
+ {
+ ret[label]["Name"] = iter->second["Name"] ;
+
+ S32 num_of_strings = tester->getNumOfMetricStrings() ;
+ for(S32 index = 0 ; index < num_of_strings ; index++)
+ {
+ ret[label][ tester->getMetricString(index) ] = iter->second[ tester->getMetricString(index) ] ;
+ }
+ }
}
- ticks += LLFastTimer::sCountAverage[ft_display_table[i].timer];
}
+
+ return ret;
+}
+
+//static
+void LLFastTimerView::doAnalysisMetrics(std::string baseline, std::string target, std::string output)
+{
+ if(!LLMetricPerformanceTester::hasMetricPerformanceTesters())
+ {
+ return ;
+ }
+
+ //analyze baseline
+ std::ifstream base_is(baseline.c_str());
+ LLSD base = analyzeMetricPerformanceLog(base_is);
+ base_is.close();
+
+ //analyze current
+ std::ifstream target_is(target.c_str());
+ LLSD current = analyzeMetricPerformanceLog(target_is);
+ target_is.close();
- return (F64)ticks / (F64)LLFastTimer::countsPerSecond();
+ //output comparision
+ std::ofstream os(output.c_str());
+
+ os << "Label, Metric, Base(B), Target(T), Diff(T-B), Percentage(100*T/B)\n";
+ for(LLMetricPerformanceTester::name_tester_map_t::iterator iter = LLMetricPerformanceTester::sTesterMap.begin() ;
+ iter != LLMetricPerformanceTester::sTesterMap.end() ; ++iter)
+ {
+ LLMetricPerformanceTester* tester = ((LLMetricPerformanceTester*)iter->second) ;
+ tester->analyzePerformance(&os, &base, &current) ;
+ }
+
+ os.flush();
+ os.close();
}
+
+//static
+void LLFastTimerView::doAnalysis(std::string baseline, std::string target, std::string output)
+{
+ if(LLFastTimer::sLog)
+ {
+ doAnalysisDefault(baseline, target, output) ;
+ return ;
+ }
+
+ if(LLFastTimer::sMetricLog)
+ {
+ doAnalysisMetrics(baseline, target, output) ;
+ return ;
+ }
+}
+
+
diff --git a/indra/newview/llfasttimerview.h b/indra/newview/llfasttimerview.h
index 611bca6494..78ca7b50d6 100644
--- a/indra/newview/llfasttimerview.h
+++ b/indra/newview/llfasttimerview.h
@@ -34,39 +34,62 @@
#define LL_LLFASTTIMERVIEW_H
#include "llfloater.h"
-#include "llframetimer.h"
+#include "llfasttimer.h"
class LLFastTimerView : public LLFloater
{
public:
LLFastTimerView(const LLRect& rect);
- virtual ~LLFastTimerView();
+
+ static BOOL sAnalyzePerformance;
+
+ static void doAnalysis(std::string baseline, std::string target, std::string output);
+
+private:
+ static void doAnalysisDefault(std::string baseline, std::string target, std::string output) ;
+ static void doAnalysisMetrics(std::string baseline, std::string target, std::string output) ;
+ static LLSD analyzeMetricPerformanceLog(std::istream& is) ;
+ static LLSD analyzePerformanceLogDefault(std::istream& is) ;
+
+public:
virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask);
virtual BOOL handleRightMouseDown(S32 x, S32 y, MASK mask);
virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask);
virtual BOOL handleHover(S32 x, S32 y, MASK mask);
+ virtual BOOL handleToolTip(S32 x, S32 y, std::string& msg, LLRect* sticky_rect_screen);
virtual BOOL handleScrollWheel(S32 x, S32 y, S32 clicks);
virtual void draw();
- S32 getLegendIndex(S32 y);
- F64 getTime(LLFastTimer::EFastTimerType tidx);
+ LLFastTimer::NamedTimer* getLegendID(S32 y);
+ F64 getTime(LLFastTimer::NamedTimer::FrameState& id);
private:
- S32* mBarStart;
- S32* mBarEnd;
+ typedef std::vector<std::vector<S32> > bar_positions_t;
+ bar_positions_t mBarStart;
+ bar_positions_t mBarEnd;
S32 mDisplayMode;
- S32 mDisplayCenter;
+
+ typedef enum child_alignment
+ {
+ ALIGN_LEFT,
+ ALIGN_CENTER,
+ ALIGN_RIGHT,
+ ALIGN_COUNT
+ } ChildAlignment;
+
+ ChildAlignment mDisplayCenter;
S32 mDisplayCalls;
S32 mDisplayHz;
U64 mAvgCountTotal;
U64 mMaxCountTotal;
LLRect mBarRect;
S32 mScrollIndex;
- S32 mHoverIndex;
+ LLFastTimer::NamedTimer* mHoverID;
+ LLFastTimer::NamedTimer* mHoverTimer;
+ LLRect mToolTipRect;
S32 mHoverBarIndex;
LLFrameTimer mHighlightTimer;
- S32 mSubtractHidden;
S32 mPrintStats;
};
diff --git a/indra/newview/llfavoritesbar.cpp b/indra/newview/llfavoritesbar.cpp
index 45bbea7e2a..0e5b943dd3 100644
--- a/indra/newview/llfavoritesbar.cpp
+++ b/indra/newview/llfavoritesbar.cpp
@@ -33,16 +33,21 @@
#include "llviewerprecompiledheaders.h"
#include "llfavoritesbar.h"
+
+#include "llbutton.h"
+#include "llfloaterreg.h"
+#include "llinventory.h"
#include "lluictrlfactory.h"
+#include "llmenugl.h"
#include "llagent.h"
-#include "llviewerinventory.h"
-#include "llinventory.h"
-#include "llinventorymodel.h"
-#include "llbutton.h"
#include "llinventorybridge.h"
+#include "llinventorymodel.h"
+#include "llviewerinventory.h"
+#include "llviewermenu.h"
+#include "llviewermenu.h"
-static LLRegisterWidget<LLFavoritesBarCtrl> r("favorites_bar");
+static LLDefaultWidgetRegistry::Register<LLFavoritesBarCtrl> r("favorites_bar");
// updateButtons's helper
struct LLFavoritesSort
@@ -64,16 +69,64 @@ struct LLFavoritesSort
}
};
+class LLVisibilityTrackingMenuGL : public LLMenuGL
+{
+protected:
+ LLVisibilityTrackingMenuGL(const LLMenuGL::Params&);
+ friend class LLUICtrlFactory;
+public:
+ virtual void onVisibilityChange (BOOL curVisibilityIn);
+ void setChevronRect(const LLRect& rect) { mChevronRect = rect; }
+
+ bool getClosedByChevronClick() { return mClosedByChevronClick; }
+ void resetClosedByChevronClick() { mClosedByChevronClick = false; }
+
+protected:
+ bool mClosedByChevronClick;
+ LLRect mChevronRect;
+};
+
+LLVisibilityTrackingMenuGL::LLVisibilityTrackingMenuGL(const LLMenuGL::Params& p)
+: LLMenuGL(p),
+ mClosedByChevronClick(false)
+{
+}
+
+//virtual
+void LLVisibilityTrackingMenuGL::onVisibilityChange (BOOL curVisibilityIn)
+{
+ S32 x,y;
+ LLUI::getCursorPositionLocal(LLUI::getRootView(), &x, &y);
+
+ if (!curVisibilityIn && mChevronRect.pointInRect(x, y))
+ {
+ mClosedByChevronClick = true;
+ }
+}
+
LLFavoritesBarCtrl::LLFavoritesBarCtrl(const LLFavoritesBarCtrl::Params& p)
: LLUICtrl(p),
- mFont(p.font.isProvided() ? p.font() : LLFontGL::getFontSansSerifSmall())
+ mFont(p.font.isProvided() ? p.font() : LLFontGL::getFontSansSerifSmall()),
+ mPopupMenuHandle(),
+ mInventoryItemsPopupMenuHandle()
{
+ // Register callback for menus with current registrar (will be parent panel's registrar)
+ LLUICtrl::CommitCallbackRegistry::currentRegistrar().add("Favorites.DoToSelected",
+ boost::bind(&LLFavoritesBarCtrl::doToSelected, this, _2));
+
+ // Add this if we need to selectively enable items
+ //LLUICtrl::EnableCallbackRegistry::currentRegistrar().add("Favorites.EnableSelected",
+ // boost::bind(&LLFavoritesBarCtrl::enableSelected, this, _2));
+
gInventory.addObserver(this);
}
LLFavoritesBarCtrl::~LLFavoritesBarCtrl()
{
gInventory.removeObserver(this);
+
+ LLView::deleteViewByHandle(mPopupMenuHandle);
+ LLView::deleteViewByHandle(mInventoryItemsPopupMenuHandle);
}
BOOL LLFavoritesBarCtrl::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
@@ -87,9 +140,7 @@ BOOL LLFavoritesBarCtrl::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
switch (cargo_type)
{
- // IAN BUG: did the spec ask for calling cards here?
case DAD_LANDMARK:
- case DAD_CALLINGCARD:
{
// Copy the item into the favorites folder (if it's not already there).
LLInventoryItem *item = (LLInventoryItem *)cargo_data;
@@ -127,6 +178,31 @@ BOOL LLFavoritesBarCtrl::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
//virtual
void LLFavoritesBarCtrl::changed(U32 mask)
{
+ if (mFavoriteFolderId.isNull())
+ {
+ mFavoriteFolderId = gInventory.findCategoryUUIDForType(LLAssetType::AT_FAVORITE);
+
+ if (mFavoriteFolderId.notNull())
+ {
+ gInventory.fetchDescendentsOf(mFavoriteFolderId);
+ }
+ }
+ else
+ {
+ updateButtons(getRect().getWidth());
+ }
+}
+
+//virtual
+void LLFavoritesBarCtrl::reshape(S32 width, S32 height, BOOL called_from_parent)
+{
+ updateButtons(width);
+
+ LLUICtrl::reshape(width, height, called_from_parent);
+}
+
+void LLFavoritesBarCtrl::updateButtons(U32 bar_width)
+{
LLInventoryModel::item_array_t items;
if (!collectFavoriteItems(items))
@@ -134,170 +210,317 @@ void LLFavoritesBarCtrl::changed(U32 mask)
return;
}
+ const S32 buttonHPad = LLUI::sSettingGroups["config"]->getS32("ButtonHPad");
+ const S32 buttonHGap = 2;
+ const S32 buttonVGap = 2;
+ static LLButton::Params default_button_params(LLUICtrlFactory::getDefaultParams<LLButton::Params>());
+ std::string flat_icon = "transparent.j2c";
+ std::string hover_icon = default_button_params.image_unselected.name;
+ std::string hover_icon_selected = default_button_params.image_selected.name;
+
+ S32 curr_x = buttonHGap;
+
S32 count = items.count();
- if (getChildCount() == count)
+
+ const S32 chevron_button_width = mFont->getWidth(">>") + buttonHPad * 2;
+
+ S32 buttons_space = bar_width - curr_x;
+
+ S32 first_drop_down_item = count;
+
+ // Calculating, how much buttons can fit in the bar
+ S32 buttons_width = 0;
+ for (S32 i = 0; i < count; ++i)
{
- // Check whether buttons are reflecting state of favorite inventory folder
- const LLView::child_list_t *buttons_list = getChildList();
- S32 i = 0;
- for(LLView::child_list_const_iter_t iter = buttons_list->begin(); iter != buttons_list->end(); iter++)
+ buttons_width += mFont->getWidth(items.get(i)->getName()) + buttonHPad * 2 + buttonHGap;
+ if (buttons_width > buttons_space)
{
- LLButton *button = (LLButton *)*iter;
- LLInventoryItem* item = items.get(i);
- // tooltip contains full name of item, label can be cutted
- if (button->getToolTip() != item->getName())
+ // There is no space for all buttons.
+ // Calculating the number of buttons, that are fit with chevron button
+ buttons_space -= chevron_button_width + buttonHGap;
+ while (i >= 0 && buttons_width > buttons_space)
{
- break;
+ buttons_width -= mFont->getWidth(items.get(i)->getName()) + buttonHPad * 2 + buttonHGap;
+ i--;
}
-
-
- i++;
+ first_drop_down_item = i + 1; // First item behind visible items
+
+ break;
}
+ }
- // Check passed, nothing is changed
- if (i < items.count())
+ // If inventory items are not changed up to mFirstDropDownItem, no need to recreate them
+ if (mFirstDropDownItem == first_drop_down_item && (mItemNamesCache.size() == count || mItemNamesCache.size() == mFirstDropDownItem))
+ {
+ S32 i;
+ for (i = 0; i < mFirstDropDownItem; ++i)
{
+ if (mItemNamesCache.get(i) != items.get(i)->getName())
+ {
+ break;
+ }
+ }
+ if (i == mFirstDropDownItem)
+ {
+ // Chevron button should stay right aligned
+ LLView *chevron_button = getChildView(std::string(">>"), FALSE, FALSE);
+ if (chevron_button)
+ {
+ LLRect rect;
+ rect.setOriginAndSize(bar_width - chevron_button_width - buttonHGap, buttonVGap, chevron_button_width, getRect().getHeight()-buttonVGap);
+ chevron_button->setRect(rect);
+
+ S32 chevron_root_x, chevron_root_y;
+ localPointToOtherView(rect.mLeft, rect.mBottom, &chevron_root_x, &chevron_root_y, LLUI::getRootView());
+ mChevronRect.setOriginAndSize(chevron_root_x, chevron_root_y, rect.getWidth(), rect.getHeight());
+ }
return;
}
}
- //FIXME: optimize this
- deleteAllChildren();
-
- LLButton::Params bparams;
+ mFirstDropDownItem = first_drop_down_item;
- const S32 buttonWidth = LLUI::sSettingGroups["config"]->getS32("ButtonHPad") * 2;
- LLRect rect;
+ mItemNamesCache.clear();
+ for (S32 i = 0; i < mFirstDropDownItem; i++)
+ {
+ mItemNamesCache.put(items.get(i)->getName());
+ }
- for(S32 i = 0; i < count; ++i)
+ // Rebuild the buttons only
+ // child_list_t is a linked list, so safe to erase from the middle if we pre-incrament the iterator
+ for ( child_list_const_iter_t child_it = getChildList()->begin(); child_it != getChildList()->end(); )
+ {
+ child_list_const_iter_t cur_it = child_it++;
+ LLView* viewp = *cur_it;
+ LLButton* button = dynamic_cast<LLButton*>(viewp);
+ if (button)
+ {
+ removeChild(button);
+ delete button;
+ }
+ }
+
+ // Adding buttons
+ for(S32 i = 0; i < mFirstDropDownItem; i++)
{
- rect.setOriginAndSize(0, 0, buttonWidth, llround(mFont->getLineHeight()));
+
+ LLInventoryItem* item = items.get(i);
+ S32 buttonWidth = mFont->getWidth(item->getName()) + buttonHPad * 2;
+
+ LLRect rect;
+ rect.setOriginAndSize(curr_x, buttonVGap, buttonWidth, getRect().getHeight()-buttonVGap);
+
+ LLButton::Params bparams;
+ bparams.image_unselected.name(flat_icon);
+ bparams.image_disabled.name(flat_icon);
+ bparams.image_selected.name(hover_icon_selected);
+ bparams.image_hover_selected.name(hover_icon_selected);
+ bparams.image_disabled_selected.name(hover_icon_selected);
+ bparams.image_hover_unselected.name(hover_icon);
bparams.follows.flags (FOLLOWS_LEFT | FOLLOWS_BOTTOM);
bparams.rect (rect);
bparams.tab_stop(false);
bparams.font(mFont);
- bparams.click_callback.function(boost::bind(&LLFavoritesBarCtrl::onButtonClick, this, 0));
+ bparams.name(item->getName());
+ bparams.tool_tip(item->getName());
+ bparams.click_callback.function(boost::bind(&LLFavoritesBarCtrl::onButtonClick, this, item->getUUID()));
+ bparams.rightclick_callback.function(boost::bind(&LLFavoritesBarCtrl::onButtonRightClick, this, item->getUUID()));
- LLButton *button = LLUICtrlFactory::create<LLButton> (bparams);
+ addChildInBack(LLUICtrlFactory::create<LLButton> (bparams));
- addChildInBack(button);
+ curr_x += buttonWidth + buttonHGap;
}
- updateButtons(getRect().getWidth(), items);
+ // Chevron button
+ if (mFirstDropDownItem != count)
+ {
+ LLButton::Params bparams;
+
+ LLRect rect;
+ rect.setOriginAndSize(bar_width - chevron_button_width - buttonHGap, buttonVGap, chevron_button_width, getRect().getHeight()-buttonVGap);
+
+ bparams.follows.flags (FOLLOWS_LEFT | FOLLOWS_BOTTOM);
+ bparams.image_unselected.name(flat_icon);
+ bparams.image_disabled.name(flat_icon);
+ bparams.image_selected.name(hover_icon_selected);
+ bparams.image_hover_selected.name(hover_icon_selected);
+ bparams.image_disabled_selected.name(hover_icon_selected);
+ bparams.image_hover_unselected.name(hover_icon);
+ bparams.rect (rect);
+ bparams.tab_stop(false);
+ bparams.font(mFont);
+ bparams.name(">>");
+ bparams.click_callback.function(boost::bind(&LLFavoritesBarCtrl::showDropDownMenu, this));
+
+ addChildInBack(LLUICtrlFactory::create<LLButton> (bparams));
+
+ S32 chevron_root_x, chevron_root_y;
+ localPointToOtherView(rect.mLeft, rect.mBottom, &chevron_root_x, &chevron_root_y, LLUI::getRootView());
+ mChevronRect.setOriginAndSize(chevron_root_x, chevron_root_y, rect.getWidth(), rect.getHeight());
+ }
}
-//virtual
-void LLFavoritesBarCtrl::reshape(S32 width, S32 height, BOOL called_from_parent)
+BOOL LLFavoritesBarCtrl::postBuild()
{
- LLInventoryModel::item_array_t items;
- if (collectFavoriteItems(items))
+ // make the popup menu available
+ LLMenuGL* menu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_favorites.xml", gMenuHolder);
+ if (!menu)
{
- updateButtons(width, items);
+ menu = LLUICtrlFactory::getDefaultWidget<LLMenuGL>("inventory_menu");
}
+ menu->setBackgroundColor(gSavedSkinSettings.getColor("MenuPopupBgColor"));
+ mInventoryItemsPopupMenuHandle = menu->getHandle();
- LLUICtrl::reshape(width, height, called_from_parent);
+ return TRUE;
}
-void LLFavoritesBarCtrl::updateButtons(U32 barWidth, LLInventoryModel::item_array_t items)
+BOOL LLFavoritesBarCtrl::collectFavoriteItems(LLInventoryModel::item_array_t &items)
{
- std::sort(items.begin(), items.end(), LLFavoritesSort());
+ if (mFavoriteFolderId.isNull())
+ return FALSE;
+
+ LLInventoryModel::cat_array_t cats;
- const S32 buttonHPad = LLUI::sSettingGroups["config"]->getS32("ButtonHPad");
- const S32 buttonHGap = 2;
+ LLIsType is_type(LLAssetType::AT_LANDMARK);
+ gInventory.collectDescendentsIf(mFavoriteFolderId, cats, items, LLInventoryModel::EXCLUDE_TRASH, is_type);
- S32 curr_x = buttonHGap;
+ std::sort(items.begin(), items.end(), LLFavoritesSort());
- S32 count = items.count();
- S32 labelsWidth = 0;
+ return TRUE;
+}
- for (S32 i = 0; i < count; ++i)
+void LLFavoritesBarCtrl::showDropDownMenu()
+{
+ if (mPopupMenuHandle.isDead())
{
- labelsWidth += mFont->getWidth(items.get(i)->getName());
- }
-
- const S32 ellipsisWIdth = mFont->getWidth("...");
+ LLMenuGL::Params menu_p;
+ menu_p.name("favorites menu");
+ menu_p.can_tear_off(false);
+ menu_p.visible(false);
+ menu_p.scrollable(true);
- F32 shrinkFactor = 1.0f;
+ LLVisibilityTrackingMenuGL* menu = LLUICtrlFactory::create<LLVisibilityTrackingMenuGL>(menu_p);
- S32 labelsSpace = barWidth - buttonHGap * (count + 1) - buttonHPad * 2 * count; // There is leading buttonHGap in front of first button,
- // one buttonHGap at the end of each button and 2 buttonHPad's
- if (labelsWidth >= labelsSpace)
- {
- shrinkFactor = (float)labelsSpace / labelsWidth;
+ mPopupMenuHandle = menu->getHandle();
}
- const LLView::child_list_t *buttons_list = getChildList();
+ LLVisibilityTrackingMenuGL* menu = (LLVisibilityTrackingMenuGL*)mPopupMenuHandle.get();
- S32 i = 0;
- for(LLView::child_list_const_iter_t iter = buttons_list->begin(); iter != buttons_list->end(); iter++)
+ if(menu)
{
- LLButton *button = (LLButton *)*iter;
-
- LLInventoryItem* item = items.get(i);
+ if (menu->getClosedByChevronClick())
+ {
+ menu->resetClosedByChevronClick();
+ return;
+ }
- LLRect rect;
+ if (menu->getVisible())
+ {
+ menu->setVisible(FALSE);
+ menu->resetClosedByChevronClick();
+ return;
+ }
- S32 labelWidth = mFont->getWidth(item->getName());
+ LLInventoryModel::item_array_t items;
- if (shrinkFactor < 1.0f)
+ if (!collectFavoriteItems(items))
{
- labelWidth = (S32) ((float)labelWidth * shrinkFactor);
+ return;
+ }
- if (labelWidth > ellipsisWIdth)
- {
- labelWidth -= ellipsisWIdth;
+ S32 count = items.count();
- S32 charsTotal = item->getName().length();
- S32 charsFitted = 1;
- while (charsFitted < charsTotal && mFont->getWidth(item->getName(), 0, charsFitted) < labelWidth)
+ // Check it there are changed items, since last call
+ if (mItemNamesCache.size() == count)
+ {
+ S32 i;
+ for (i = mFirstDropDownItem; i < count; i++)
+ {
+ if (mItemNamesCache.get(i) != items.get(i)->getName())
{
- charsFitted++;
+ break;
}
+ }
+
+ // Check passed, just show the menu
+ if (i == count)
+ {
+ menu->buildDrawLabels();
+ menu->updateParent(LLMenuGL::sMenuContainer);
- charsFitted--;
- labelWidth += ellipsisWIdth;
+ menu->setChevronRect(mChevronRect);
- button->setLabel(item->getName().substr(0, charsFitted) + "...");
+ LLMenuGL::showPopup(this, menu, getRect().getWidth() - menu->getRect().getWidth(), 0);
+ return;
}
- else
+ }
+
+ // Add menu items to cache, if there is only names of buttons
+ if (mItemNamesCache.size() == mFirstDropDownItem)
+ {
+ for (S32 i = mFirstDropDownItem; i < count; i++)
{
- button->setLabel((LLStringExplicit)"");
- labelWidth = 0;
+ mItemNamesCache.put(items.get(i)->getName());
}
}
- else
+
+ menu->empty();
+
+ U32 max_width = 0;
+
+ // Menu will not be wider, than bar
+ S32 bar_width = getRect().getWidth();
+
+ for(S32 i = mFirstDropDownItem; i < count; i++)
{
- button->setLabel(item->getName());
- }
+ LLInventoryItem* item = items.get(i);
+ const std::string& item_name = item->getName();
- S32 buttonWidth = labelWidth + buttonHPad * 2;
- rect.setOriginAndSize(curr_x, 2, buttonWidth, llround(mFont->getLineHeight()));
- button->setRect(rect);
+ LLMenuItemCallGL::Params item_params;
+ item_params.name(item_name);
+ item_params.label(item_name);
+
+ item_params.on_click.function(boost::bind(&LLFavoritesBarCtrl::onButtonClick, this, item->getUUID()));
- button->setToolTip(item->getName());
+ LLMenuItemCallGL *menu_item = LLUICtrlFactory::create<LLMenuItemCallGL>(item_params);
- curr_x += buttonWidth + buttonHGap;
+ // Check whether item name wider than menu
+ if ((S32) menu_item->getNominalWidth() > bar_width)
+ {
+ S32 chars_total = item_name.length();
+ S32 chars_fitted = 1;
+ menu_item->setLabel(LLStringExplicit(""));
+ S32 label_space = bar_width - menu_item->getFont()->getWidth("...") -
+ menu_item->getNominalWidth(); // This returns width of menu item with empty label (pad pixels)
- i++;
- }
-}
+ while (chars_fitted < chars_total && menu_item->getFont()->getWidth(item_name, 0, chars_fitted) < label_space)
+ {
+ chars_fitted++;
+ }
+ chars_fitted--; // Rolling back one char, that doesn't fit
-BOOL LLFavoritesBarCtrl::collectFavoriteItems(LLInventoryModel::item_array_t &items)
-{
- LLUUID favorite_folder_id = gInventory.findCategoryUUIDForType(LLAssetType::AT_FAVORITE);
+ menu_item->setLabel(item_name.substr(0, chars_fitted) + "...");
+ }
- if (!favorite_folder_id.notNull())
- return FALSE;
-
- LLInventoryModel::cat_array_t cats;
+ max_width = llmax(max_width, menu_item->getNominalWidth());
- gInventory.collectDescendents(favorite_folder_id, cats, items, LLInventoryModel::EXCLUDE_TRASH);
+ menu->addChild(menu_item);
+ }
- return TRUE;
+ // Menu will not be wider, than bar
+ max_width = llmin((S32)max_width, bar_width);
+
+ menu->buildDrawLabels();
+ menu->updateParent(LLMenuGL::sMenuContainer);
+
+ menu->setChevronRect(mChevronRect);
+
+ LLMenuGL::showPopup(this, menu, getRect().getWidth() - max_width, 0);
+ }
}
-void LLFavoritesBarCtrl::onButtonClick(int idx)
+void LLFavoritesBarCtrl::onButtonClick(LLUUID item_id)
{
LLInventoryModel::item_array_t items;
@@ -306,23 +529,51 @@ void LLFavoritesBarCtrl::onButtonClick(int idx)
return;
}
- S32 count = items.count();
+ // We only have one Inventory, gInventory. Some day this should be better abstracted.
+ LLInvFVBridgeAction::doAction(item_id,&gInventory);
+}
- if (idx < 0 || idx >= count)
+void LLFavoritesBarCtrl::onButtonRightClick(LLUUID item_id)
+{
+ mSelectedItemID = item_id;
+
+ LLMenuGL* menu = (LLMenuGL*)mInventoryItemsPopupMenuHandle.get();
+ if (!menu)
{
- llwarns << "Invalid favorites bar index" << llendl;
return;
}
+
+ menu->updateParent(LLMenuGL::sMenuContainer);
- LLInventoryItem* item = items.get(idx);
- if(item)
- {
- LLUUID item_id = item->getUUID();
- LLAssetType::EType item_type = item->getType();
+ S32 x,y;
+ LLUI::getCursorPositionLocal(this, &x, &y);
+ LLMenuGL::showPopup(this, menu, x, y);
+}
- //TODO - donno but may be we must use InventoryModel from InventoryView
- //think for now there is only one model...but still
- LLInvFVBridgeAction::doAction(item_type,item_id,&gInventory);
+void LLFavoritesBarCtrl::doToSelected(const LLSD& userdata)
+{
+ std::string action = userdata.asString();
+ llinfos << "Action = " << action << " Item = " << mSelectedItemID.asString() << llendl;
+
+ LLViewerInventoryItem* item = gInventory.getItem(mSelectedItemID);
+ if (!item)
+ return;
+
+ if (action == "open")
+ {
+ teleport_via_landmark(item->getAssetUUID());
+ }
+ else if (action == "about")
+ {
+ LLFloaterReg::showInstance("preview_landmark", LLSD(mSelectedItemID), TAKE_FOCUS_YES);
+ }
+ else if (action == "rename")
+ {
+ // Would need to re-implement this:
+ // folder->startRenamingSelectedItem();
+ }
+ else if (action == "delete")
+ {
+ gInventory.removeItem(mSelectedItemID);
}
}
-
diff --git a/indra/newview/llfavoritesbar.h b/indra/newview/llfavoritesbar.h
index c92f1d5caf..646e98cabb 100644
--- a/indra/newview/llfavoritesbar.h
+++ b/indra/newview/llfavoritesbar.h
@@ -47,22 +47,41 @@ protected:
public:
virtual ~LLFavoritesBarCtrl();
+ /*virtual*/ BOOL postBuild();
+
/*virtual*/ BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
EDragAndDropType cargo_type,
void* cargo_data,
EAcceptance* accept,
std::string& tooltip_msg);
+ // LLInventoryObserver observer trigger
virtual void changed(U32 mask);
-
virtual void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);
+
protected:
- void updateButtons(U32 barWidth, LLInventoryModel::item_array_t items);
+ void updateButtons(U32 bar_width);
BOOL collectFavoriteItems(LLInventoryModel::item_array_t &items);
- void onButtonClick(int idx);
+ void onButtonClick(LLUUID id);
+ void onButtonRightClick(LLUUID id);
+
+ void doToSelected(const LLSD& userdata);
+
+ void showDropDownMenu();
+ LLHandle<LLView> mPopupMenuHandle;
+ LLHandle<LLView> mInventoryItemsPopupMenuHandle;
+
+ LLUUID mFavoriteFolderId;
const LLFontGL *mFont;
+ S32 mFirstDropDownItem;
+
+ typedef LLDynamicArray<std::string> item_names_array_t;
+ item_names_array_t mItemNamesCache;
+
+ LLUUID mSelectedItemID;
+ LLRect mChevronRect;
};
diff --git a/indra/newview/llfloaterabout.cpp b/indra/newview/llfloaterabout.cpp
index 356ecff236..9df0a96888 100644
--- a/indra/newview/llfloaterabout.cpp
+++ b/indra/newview/llfloaterabout.cpp
@@ -59,8 +59,14 @@
#include "llappviewer.h"
#include "llglheaders.h"
#include "llmediamanager.h"
+#include "llwindow.h"
+#if LL_WINDOWS
+#include "lldxhardware.h"
+#endif
+extern LLCPUInfo gSysCPU;
+extern LLMemoryInfo gSysMemory;
extern U32 gPacketsIn;
static std::string get_viewer_release_notes_url();
@@ -74,8 +80,8 @@ static std::string get_viewer_release_notes_url();
LLFloaterAbout::LLFloaterAbout(const LLSD& key)
: LLFloater()
{
- LLUICtrlFactory::getInstance()->buildFloater(this, "floater_about.xml");
- center();
+ //LLUICtrlFactory::getInstance()->buildFloater(this, "floater_about.xml");
+
}
// Destroys the object
@@ -85,6 +91,7 @@ LLFloaterAbout::~LLFloaterAbout()
BOOL LLFloaterAbout::postBuild()
{
+ center();
LLViewerTextEditor *support_widget =
getChild<LLViewerTextEditor>("support_editor", true);
@@ -185,6 +192,20 @@ BOOL LLFloaterAbout::postBuild()
support.append( (const char*) glGetString(GL_RENDERER) );
support.append("\n");
+#if LL_WINDOWS
+ getWindow()->incBusyCount();
+ getWindow()->setCursor(UI_CURSOR_ARROW);
+ support.append("Windows Graphics Driver Version: ");
+ LLSD driver_info = gDXHardware.getDisplayInfo();
+ if (driver_info.has("DriverVersion"))
+ {
+ support.append(driver_info["DriverVersion"]);
+ }
+ support.append("\n");
+ getWindow()->decBusyCount();
+ getWindow()->setCursor(UI_CURSOR_ARROW);
+#endif
+
support.append(getString("OpenGLVersion") + " ");
support.append( (const char*) glGetString(GL_VERSION) );
support.append("\n");
@@ -255,7 +276,7 @@ BOOL LLFloaterAbout::postBuild()
query["version"] = version.str();
std::ostringstream url;
- url << LLFloaterAbout::getInstance()->getString("RELEASE_NOTES_BASE_URL") << LLURI::mapToQueryString(query);
+ url << LLTrans::getString("RELEASE_NOTES_BASE_URL") << LLURI::mapToQueryString(query);
return url.str();
}
diff --git a/indra/newview/llfloaterabout.h b/indra/newview/llfloaterabout.h
index 537c8f29c0..1b0f3cddd3 100644
--- a/indra/newview/llfloaterabout.h
+++ b/indra/newview/llfloaterabout.h
@@ -39,8 +39,9 @@ class LLFloaterAbout
: public LLFloater, public LLFloaterSingleton<LLFloaterAbout>
{
friend class LLUISingleton<LLFloaterAbout, VisibilityPolicy<LLFloater> >;
-protected:
+public:
LLFloaterAbout(const LLSD& key);
+protected:
virtual ~LLFloaterAbout();
public:
diff --git a/indra/newview/llfloateranimpreview.cpp b/indra/newview/llfloateranimpreview.cpp
index 34bd5211f2..12c4932293 100644
--- a/indra/newview/llfloateranimpreview.cpp
+++ b/indra/newview/llfloateranimpreview.cpp
@@ -42,6 +42,7 @@
#include "llstring.h"
#include "llagent.h"
+#include "llanimationstates.h"
#include "llbbox.h"
#include "llbutton.h"
#include "llcheckboxctrl.h"
diff --git a/indra/newview/llfloaterauction.cpp b/indra/newview/llfloaterauction.cpp
index e1974bba84..8ad5a19d02 100644
--- a/indra/newview/llfloaterauction.cpp
+++ b/indra/newview/llfloaterauction.cpp
@@ -75,7 +75,9 @@ LLFloaterAuction::LLFloaterAuction(const LLSD& key)
: LLFloater(),
mParcelID(-1)
{
- LLUICtrlFactory::getInstance()->buildFloater(this, "floater_auction.xml");
+// LLUICtrlFactory::getInstance()->buildFloater(this, "floater_auction.xml");
+ mCommitCallbackRegistrar.add("ClickSnapshot", boost::bind(&LLFloaterAuction::onClickSnapshot, this));
+ mCommitCallbackRegistrar.add("ClickOK", boost::bind(&LLFloaterAuction::onClickOK, this));
}
// Destroys the object
@@ -85,11 +87,6 @@ LLFloaterAuction::~LLFloaterAuction()
BOOL LLFloaterAuction::postBuild()
{
- childSetValue("fence_check", LLSD( gSavedSettings.getBOOL("AuctionShowFence") ) );
- getChild<LLUICtrl>("fence_check")->setCommitCallback(boost::bind(LLSavedSettingsGlue::setBOOL, _1, "AuctionShowFence"));
-
- childSetAction("snapshot_btn", onClickSnapshot, this);
- childSetAction("ok_btn", onClickOK, this);
return TRUE;
}
diff --git a/indra/newview/llfloaterauction.h b/indra/newview/llfloaterauction.h
index d71fd3c653..b018316c64 100644
--- a/indra/newview/llfloaterauction.h
+++ b/indra/newview/llfloaterauction.h
@@ -55,9 +55,9 @@ public:
/*virtual*/ void onOpen(const LLSD& key);
/*virtual*/ void draw();
-private:
LLFloaterAuction(const LLSD& key);
~LLFloaterAuction();
+private:
void initialize();
static void onClickSnapshot(void* data);
diff --git a/indra/newview/llfloaterbuildoptions.cpp b/indra/newview/llfloaterbuildoptions.cpp
index 2507a72caa..9dbd1db38e 100644
--- a/indra/newview/llfloaterbuildoptions.cpp
+++ b/indra/newview/llfloaterbuildoptions.cpp
@@ -46,7 +46,7 @@
LLFloaterBuildOptions::LLFloaterBuildOptions(const LLSD& key)
: LLFloater()
{
- LLUICtrlFactory::getInstance()->buildFloater(this, "floater_build_options.xml");
+ //LLUICtrlFactory::getInstance()->buildFloater(this, "floater_build_options.xml");
}
LLFloaterBuildOptions::~LLFloaterBuildOptions()
diff --git a/indra/newview/llfloaterbuildoptions.h b/indra/newview/llfloaterbuildoptions.h
index da72520486..61db303ba2 100644
--- a/indra/newview/llfloaterbuildoptions.h
+++ b/indra/newview/llfloaterbuildoptions.h
@@ -45,7 +45,7 @@ class LLFloaterBuildOptions
: public LLFloater, public LLFloaterSingleton<LLFloaterBuildOptions>
{
friend class LLUISingleton<LLFloaterBuildOptions, VisibilityPolicy<LLFloater> >;
-protected:
+public:
LLFloaterBuildOptions(const LLSD& key);
~LLFloaterBuildOptions();
};
diff --git a/indra/newview/llfloaterbulkpermission.cpp b/indra/newview/llfloaterbulkpermission.cpp
index 6157d19541..65dc3cd9f0 100644
--- a/indra/newview/llfloaterbulkpermission.cpp
+++ b/indra/newview/llfloaterbulkpermission.cpp
@@ -68,6 +68,7 @@ LLFloaterBulkPermission::LLFloaterBulkPermission(const LLSD& seed)
BOOL LLFloaterBulkPermission::postBuild()
{
childSetEnabled("next_owner_transfer", gSavedSettings.getBOOL("BulkChangeNextOwnerCopy"));
+ childSetAction("help", onHelpBtn, this);
childSetAction("apply", onApplyBtn, this);
childSetAction("close", onCloseBtn, this);
childSetAction("check_all", onCheckAll, this);
@@ -157,6 +158,11 @@ void LLFloaterBulkPermission::onApplyBtn(void* user_data)
self->doApply();
}
+void LLFloaterBulkPermission::onHelpBtn(void* user_data)
+{
+ LLNotifications::instance().add("HelpBulkPermission");
+}
+
void LLFloaterBulkPermission::onCloseBtn(void* user_data)
{
LLFloaterBulkPermission* self = static_cast<LLFloaterBulkPermission*>(user_data);
diff --git a/indra/newview/llfloaterbulkpermission.h b/indra/newview/llfloaterbulkpermission.h
index d4578f9f30..2ea12fbe69 100644
--- a/indra/newview/llfloaterbulkpermission.h
+++ b/indra/newview/llfloaterbulkpermission.h
@@ -77,6 +77,7 @@ private:
U8 key,
bool is_new);
+ static void onHelpBtn(void* user_data);
static void onCloseBtn(void* user_data);
static void onApplyBtn(void* user_data);
static void onCommitCopy(LLUICtrl* ctrl, void* data);
diff --git a/indra/newview/llfloaterbump.cpp b/indra/newview/llfloaterbump.cpp
index 5cf4d90ece..e4e1c7efa2 100644
--- a/indra/newview/llfloaterbump.cpp
+++ b/indra/newview/llfloaterbump.cpp
@@ -50,7 +50,7 @@
LLFloaterBump::LLFloaterBump(const LLSD& key)
: LLFloater()
{
- LLUICtrlFactory::getInstance()->buildFloater(this, "floater_bumps.xml");
+ //LLUICtrlFactory::getInstance()->buildFloater(this, "floater_bumps.xml");
}
diff --git a/indra/newview/llfloaterbump.h b/indra/newview/llfloaterbump.h
index f55a9e6bc5..b56817436c 100644
--- a/indra/newview/llfloaterbump.h
+++ b/indra/newview/llfloaterbump.h
@@ -44,13 +44,12 @@ class LLFloaterBump
{
friend class LLUISingleton<LLFloaterBump, VisibilityPolicy<LLFloater> >;
protected:
- LLFloaterBump(const LLSD& key);
- virtual ~LLFloaterBump();
-
void add(LLScrollListCtrl* list, LLMeanCollisionData *mcd);
public:
/*virtual*/ void onOpen(const LLSD& key);
+ LLFloaterBump(const LLSD& key);
+ virtual ~LLFloaterBump();
};
#endif
diff --git a/indra/newview/llfloaterbuycurrency.cpp b/indra/newview/llfloaterbuycurrency.cpp
index c943eaeacf..4274650f2c 100644
--- a/indra/newview/llfloaterbuycurrency.cpp
+++ b/indra/newview/llfloaterbuycurrency.cpp
@@ -46,7 +46,7 @@
#include "llwindow.h"
#include "llappviewer.h"
-static const S32 STANDARD_BUY_AMOUNT = 1000;
+static const S32 STANDARD_BUY_AMOUNT = 2000;
static const S32 MINIMUM_BALANCE_AMOUNT = 0;
class LLFloaterBuyCurrencyUI
diff --git a/indra/newview/llfloaterbuyland.cpp b/indra/newview/llfloaterbuyland.cpp
index e981b07a82..3fbee83c7b 100644
--- a/indra/newview/llfloaterbuyland.cpp
+++ b/indra/newview/llfloaterbuyland.cpp
@@ -1146,7 +1146,7 @@ void LLFloaterBuyLandUI::refreshUI()
if (mIsForGroup)
{
LLStringUtil::format_map_t string_args;
- string_args["[GROUP]"] = std::string(gAgent.mGroupName);
+ string_args["[GROUP]"] = std::string(gAgent.getGroupName());
message += getString("insufficient_land_credits", string_args);
diff --git a/indra/newview/llfloatercamera.cpp b/indra/newview/llfloatercamera.cpp
index 6ca8944a19..e79142513b 100644
--- a/indra/newview/llfloatercamera.cpp
+++ b/indra/newview/llfloatercamera.cpp
@@ -47,20 +47,24 @@ const F32 CAMERA_BUTTON_DELAY = 0.0f;
//
// Member functions
//
-
-
LLFloaterCamera::LLFloaterCamera(const LLSD& val)
: LLFloater()
{
- setIsChrome(TRUE);
-
// For now, only used for size and tooltip strings
const BOOL DONT_OPEN = FALSE;
LLUICtrlFactory::getInstance()->buildFloater(this, "floater_camera.xml", DONT_OPEN);
-
+}
+
+// virtual
+BOOL LLFloaterCamera::postBuild()
+{
+ setIsChrome(TRUE);
+
mRotate = getChild<LLJoystickCameraRotate>("cam_rotate_stick");
mZoom = getChild<LLJoystickCameraZoom>("zoom");
mTrack = getChild<LLJoystickCameraTrack>("cam_track_stick");
+
+ return TRUE;
}
// virtual
@@ -79,3 +83,4 @@ void LLFloaterCamera::onClose(bool app_quitting)
gSavedSettings.setBOOL("ShowCameraControls", FALSE);
}
}
+
diff --git a/indra/newview/llfloatercamera.h b/indra/newview/llfloatercamera.h
index 871e5c8ed1..f954e329eb 100644
--- a/indra/newview/llfloatercamera.h
+++ b/indra/newview/llfloatercamera.h
@@ -51,7 +51,7 @@ private:
/*virtual*/ void onOpen(const LLSD& key);
/*virtual*/ void onClose(bool app_quitting);
-
+ /*virtual*/ BOOL postBuild();
public:
LLJoystickCameraRotate* mRotate;
LLJoystickCameraZoom* mZoom;
diff --git a/indra/newview/llfloaterchat.cpp b/indra/newview/llfloaterchat.cpp
index 4e2d952488..61ef3abda6 100644
--- a/indra/newview/llfloaterchat.cpp
+++ b/indra/newview/llfloaterchat.cpp
@@ -55,6 +55,7 @@
#include "llmutelist.h"
//#include "llresizehandle.h"
#include "llchatbar.h"
+#include "llrecentpeople.h"
#include "llstatusbar.h"
#include "llviewertexteditor.h"
#include "llviewergesture.h" // for triggering gestures
@@ -316,8 +317,7 @@ void LLFloaterChat::onClickMute(void *data)
LLMute mute(id);
mute.setFromDisplayName(name);
LLMuteList::getInstance()->add(mute);
-
- LLFloaterMute::showInstance();
+ LLFloaterReg::showInstance("mute");
}
//static
@@ -376,7 +376,7 @@ void LLFloaterChat::addChat(const LLChat& chat,
size = INSTANT_MSG_SIZE;
}
// We display anything if it's not an IM. If it's an IM, check pref...
- if ( !from_instant_message || gSavedSettings.getBOOL("IMInChatHistory") )
+ if ( !from_instant_message || gSavedSettings.getBOOL("IMInChatConsole") )
{
gConsole->addLine(chat.mText, size, text_color);
}
@@ -385,11 +385,15 @@ void LLFloaterChat::addChat(const LLChat& chat,
if(from_instant_message && gSavedPerAccountSettings.getBOOL("LogChatIM"))
log_chat_text(chat);
- if(from_instant_message && gSavedSettings.getBOOL("IMInChatHistory"))
+ if(from_instant_message && gSavedSettings.getBOOL("IMInChatHistory"))
addChatHistory(chat,false);
triggerAlerts(chat.mText);
+ // Add the sender to the list of people with which we've recently interacted.
+ if(chat.mSourceType == CHAT_SOURCE_AGENT && chat.mFromID.notNull())
+ LLRecentPeople::instance().add(chat.mFromID);
+
if(!from_instant_message)
addChatHistory(chat);
}
diff --git a/indra/newview/llfloaterfriends.cpp b/indra/newview/llfloaterfriends.cpp
index 7fa9d07d0a..1e8129c7d3 100644
--- a/indra/newview/llfloaterfriends.cpp
+++ b/indra/newview/llfloaterfriends.cpp
@@ -46,12 +46,11 @@
#include "llfloateravatarpicker.h"
#include "llviewerwindow.h"
#include "llbutton.h"
-#include "llfloateravatarinfo.h"
+#include "llfriendactions.h"
#include "llinventorymodel.h"
#include "llnamelistctrl.h"
#include "llnotify.h"
#include "llresmgr.h"
-#include "llimview.h"
#include "llscrolllistctrl.h"
#include "llscrolllistitem.h"
#include "llscrolllistcell.h"
@@ -63,6 +62,8 @@
#include "lltextbox.h"
#include "llvoiceclient.h"
+// *TODO: Move more common stuff to LLFriendActions?
+
//Maximum number of people you can select to do an operation on at once.
#define MAX_FRIEND_SELECT 20
#define DEFAULT_PERIOD 5.0
@@ -541,14 +542,11 @@ void LLPanelFriends::onClickProfile(void* user_data)
{
LLPanelFriends* panelp = (LLPanelFriends*)user_data;
- //llinfos << "LLPanelFriends::onClickProfile()" << llendl;
std::vector<LLUUID> ids = panelp->getSelectedIDs();
if(ids.size() > 0)
{
LLUUID agent_id = ids[0];
- BOOL online;
- online = LLAvatarTracker::instance().isBuddyOnline(agent_id);
- LLFloaterAvatarInfo::showFromFriend(agent_id, online);
+ LLFriendActions::showProfile(agent_id);
}
}
@@ -557,112 +555,28 @@ void LLPanelFriends::onClickIM(void* user_data)
{
LLPanelFriends* panelp = (LLPanelFriends*)user_data;
- //llinfos << "LLPanelFriends::onClickIM()" << llendl;
std::vector<LLUUID> ids = panelp->getSelectedIDs();
if(ids.size() > 0)
{
if(ids.size() == 1)
{
- LLUUID agent_id = ids[0];
- const LLRelationship* info = LLAvatarTracker::instance().getBuddyInfo(agent_id);
- std::string fullname;
- if(info && gCacheName->getFullName(agent_id, fullname))
- {
- gIMMgr->addSession(fullname, IM_NOTHING_SPECIAL, agent_id);
- }
+ LLFriendActions::startIM(ids[0]);
}
else
{
- // *HACK: Copy into dynamic array
- LLDynamicArray<LLUUID> id_array;
- for (std::vector<LLUUID>::iterator it = ids.begin(); it != ids.end(); ++it)
- {
- id_array.push_back(*it);
- }
- gIMMgr->addSession("Friends Conference", IM_SESSION_CONFERENCE_START, ids[0], id_array);
+ LLFriendActions::startConference(ids);
}
- make_ui_sound("UISndStartIM");
}
}
// static
-void LLPanelFriends::requestFriendship(const LLUUID& target_id, const std::string& target_name, const std::string& message)
-{
- LLUUID calling_card_folder_id = gInventory.findCategoryUUIDForType(LLAssetType::AT_CALLINGCARD);
- send_improved_im(target_id,
- target_name,
- message,
- IM_ONLINE,
- IM_FRIENDSHIP_OFFERED,
- calling_card_folder_id);
-}
-
-// static
-bool LLPanelFriends::callbackAddFriendWithMessage(const LLSD& notification, const LLSD& response)
-{
- S32 option = LLNotification::getSelectedOption(notification, response);
- if (option == 0)
- {
- requestFriendship(notification["payload"]["id"].asUUID(),
- notification["payload"]["name"].asString(),
- response["message"].asString());
- }
- return false;
-}
-
-bool LLPanelFriends::callbackAddFriend(const LLSD& notification, const LLSD& response)
-{
- S32 option = LLNotification::getSelectedOption(notification, response);
- if (option == 0)
- {
- // Servers older than 1.25 require the text of the message to be the
- // calling card folder ID for the offering user. JC
- LLUUID calling_card_folder_id =
- gInventory.findCategoryUUIDForType(LLAssetType::AT_CALLINGCARD);
- std::string message = calling_card_folder_id.asString();
- requestFriendship(notification["payload"]["id"].asUUID(),
- notification["payload"]["name"].asString(),
- message);
- }
- return false;
-}
-
-// static
void LLPanelFriends::onPickAvatar(const std::vector<std::string>& names,
const std::vector<LLUUID>& ids,
void* )
{
if (names.empty()) return;
if (ids.empty()) return;
- requestFriendshipDialog(ids[0], names[0]);
-}
-
-// static
-void LLPanelFriends::requestFriendshipDialog(const LLUUID& id,
- const std::string& name)
-{
- if(id == gAgentID)
- {
- LLNotifications::instance().add("AddSelfFriend");
- return;
- }
-
- LLSD args;
- args["NAME"] = name;
- LLSD payload;
- payload["id"] = id;
- payload["name"] = name;
- // Look for server versions like: Second Life Server 1.24.4.95600
- if (gLastVersionChannel.find(" 1.24.") != std::string::npos)
- {
- // Old and busted server version, doesn't support friend
- // requests with messages.
- LLNotifications::instance().add("AddFriend", args, payload, &callbackAddFriend);
- }
- else
- {
- LLNotifications::instance().add("AddFriendWithMessage", args, payload, &callbackAddFriendWithMessage);
- }
+ LLFriendActions::requestFriendshipDialog(ids[0], names[0]);
}
// static
@@ -681,53 +595,14 @@ void LLPanelFriends::onClickAddFriend(void* user_data)
void LLPanelFriends::onClickRemove(void* user_data)
{
LLPanelFriends* panelp = (LLPanelFriends*)user_data;
-
- //llinfos << "LLPanelFriends::onClickRemove()" << llendl;
- std::vector<LLUUID> ids = panelp->getSelectedIDs();
- LLSD args;
- if(ids.size() > 0)
- {
- std::string msgType = "RemoveFromFriends";
- if(ids.size() == 1)
- {
- LLUUID agent_id = ids[0];
- std::string first, last;
- if(gCacheName->getName(agent_id, first, last))
- {
- args["FIRST_NAME"] = first;
- args["LAST_NAME"] = last;
- }
- }
- else
- {
- msgType = "RemoveMultipleFromFriends";
- }
- LLSD payload;
-
- for (LLDynamicArray<LLUUID>::iterator it = ids.begin();
- it != ids.end();
- ++it)
- {
- payload["ids"].append(*it);
- }
-
- LLNotifications::instance().add(msgType,
- args,
- payload,
- &handleRemove);
- }
+ LLFriendActions::removeFriendsDialog(panelp->getSelectedIDs());
}
// static
void LLPanelFriends::onClickOfferTeleport(void* user_data)
{
LLPanelFriends* panelp = (LLPanelFriends*)user_data;
-
- std::vector<LLUUID> ids = panelp->getSelectedIDs();
- if(ids.size() > 0)
- {
- handle_lure(ids);
- }
+ LLFriendActions::offerTeleport(panelp->getSelectedIDs());
}
// static
@@ -936,42 +811,3 @@ void LLPanelFriends::sendRightsGrant(rights_map_t& ids)
mNumRightsChanged = ids.size();
gAgent.sendReliableMessage();
}
-
-
-
-// static
-bool LLPanelFriends::handleRemove(const LLSD& notification, const LLSD& response)
-{
- S32 option = LLNotification::getSelectedOption(notification, response);
-
- const LLSD& ids = notification["payload"]["ids"];
- for(LLSD::array_const_iterator itr = ids.beginArray(); itr != ids.endArray(); ++itr)
- {
- LLUUID id = itr->asUUID();
- const LLRelationship* ip = LLAvatarTracker::instance().getBuddyInfo(id);
- if(ip)
- {
- switch(option)
- {
- case 0: // YES
- if( ip->isRightGrantedTo(LLRelationship::GRANT_MODIFY_OBJECTS))
- {
- LLAvatarTracker::instance().empower(id, FALSE);
- LLAvatarTracker::instance().notifyObservers();
- }
- LLAvatarTracker::instance().terminateBuddy(id);
- LLAvatarTracker::instance().notifyObservers();
- gInventory.addChangedMask(LLInventoryObserver::LABEL | LLInventoryObserver::CALLING_CARD, LLUUID::null);
- gInventory.notifyObservers();
- break;
-
- case 1: // NO
- default:
- llinfos << "No removal performed." << llendl;
- break;
- }
- }
-
- }
- return false;
-}
diff --git a/indra/newview/llfloaterfriends.h b/indra/newview/llfloaterfriends.h
index 51fe5f6d89..9c6660c0dc 100644
--- a/indra/newview/llfloaterfriends.h
+++ b/indra/newview/llfloaterfriends.h
@@ -74,15 +74,6 @@ public:
virtual BOOL postBuild();
- // Show a dialog explaining what friendship entails, then request
- // friendship. JC
- static void requestFriendshipDialog(const LLUUID& target_id,
- const std::string& target_name);
-
- // Just request friendship, no dialog.
- static void requestFriendship(const LLUUID& target_id,
- const std::string& target_name, const std::string& message);
-
// *HACK Made public to remove friends from LLAvatarIconCtrl context menu
static bool handleRemove(const LLSD& notification, const LLSD& response);
diff --git a/indra/newview/llfloatergroupinvite.cpp b/indra/newview/llfloatergroupinvite.cpp
index e8a0973ced..92db0b0926 100644
--- a/indra/newview/llfloatergroupinvite.cpp
+++ b/indra/newview/llfloatergroupinvite.cpp
@@ -91,7 +91,7 @@ LLFloaterGroupInvite::LLFloaterGroupInvite(const LLUUID& group_id)
contents = mImpl->mInvitePanelp->getRect();
contents.mTop -= floater_header_size;
- setTitle (LLTrans::getString("GroupInvitation"));
+ setTitle (mImpl->mInvitePanelp->getString("GroupInvitation"));
mImpl->mInvitePanelp->setCloseCallback(impl::closeFloater, this);
@@ -135,7 +135,7 @@ void LLFloaterGroupInvite::showForGroup(const LLUUID& group_id, std::vector<LLUU
contents.mTop += floater_header_size;
fgi->setRect(contents);
fgi->getDragHandle()->setRect(contents);
- fgi->getDragHandle()->setTitle(LLTrans::getString("GroupInvitation"));
+ fgi->getDragHandle()->setTitle(fgi->mImpl->mInvitePanelp->getString("GroupInvitation"));
impl::sInstances[group_id] = fgi;
diff --git a/indra/newview/llfloatergroups.cpp b/indra/newview/llfloatergroups.cpp
index 65035d9b5c..a967a1833f 100644
--- a/indra/newview/llfloatergroups.cpp
+++ b/indra/newview/llfloatergroups.cpp
@@ -41,22 +41,14 @@
#include "llfloatergroups.h"
-#include "message.h"
#include "roles_constants.h"
#include "llagent.h"
#include "llbutton.h"
-#include "llfloaterreg.h"
-#include "llfloatergroupinfo.h"
-#include "llfloaterdirectory.h"
-#include "llfocusmgr.h"
-#include "llalertdialog.h"
-#include "llselectmgr.h"
+#include "llgroupactions.h"
#include "llscrolllistctrl.h"
#include "lltextbox.h"
#include "lluictrlfactory.h"
-#include "llviewerwindow.h"
-#include "llimview.h"
#include "lltrans.h"
using namespace LLOldEvents;
@@ -304,112 +296,54 @@ void LLPanelGroups::onBtnSearch(void* userdata)
void LLPanelGroups::create()
{
- llinfos << "LLPanelGroups::create" << llendl;
- LLFloaterGroupInfo::showCreateGroup(NULL);
+ LLGroupActions::create();
}
void LLPanelGroups::activate()
{
- llinfos << "LLPanelGroups::activate" << llendl;
LLCtrlListInterface *group_list = childGetListInterface("group list");
LLUUID group_id;
if (group_list)
{
group_id = group_list->getCurrentID();
}
- LLMessageSystem* msg = gMessageSystem;
- msg->newMessageFast(_PREHASH_ActivateGroup);
- msg->nextBlockFast(_PREHASH_AgentData);
- msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
- msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
- msg->addUUIDFast(_PREHASH_GroupID, group_id);
- gAgent.sendReliableMessage();
+ LLGroupActions::activate(group_id);
}
void LLPanelGroups::info()
{
- llinfos << "LLPanelGroups::info" << llendl;
LLCtrlListInterface *group_list = childGetListInterface("group list");
LLUUID group_id;
if (group_list && (group_id = group_list->getCurrentID()).notNull())
{
- LLFloaterGroupInfo::showFromUUID(group_id);
+ LLGroupActions::info(group_id);
}
}
void LLPanelGroups::startIM()
{
- //llinfos << "LLPanelFriends::onClickIM()" << llendl;
LLCtrlListInterface *group_list = childGetListInterface("group list");
LLUUID group_id;
if (group_list && (group_id = group_list->getCurrentID()).notNull())
{
- LLGroupData group_data;
- if (gAgent.getGroupData(group_id, group_data))
- {
- gIMMgr->addSession(
- group_data.mName,
- IM_SESSION_GROUP_START,
- group_id);
- make_ui_sound("UISndStartIM");
- }
- else
- {
- // this should never happen, as starting a group IM session
- // relies on you belonging to the group and hence having the group data
- make_ui_sound("UISndInvalidOp");
- }
+ LLGroupActions::startChat(group_id);
}
}
void LLPanelGroups::leave()
{
- llinfos << "LLPanelGroups::leave" << llendl;
LLCtrlListInterface *group_list = childGetListInterface("group list");
LLUUID group_id;
if (group_list && (group_id = group_list->getCurrentID()).notNull())
{
- S32 count = gAgent.mGroups.count();
- S32 i;
- for(i = 0; i < count; ++i)
- {
- if(gAgent.mGroups.get(i).mID == group_id)
- break;
- }
- if(i < count)
- {
- LLSD args;
- args["GROUP"] = gAgent.mGroups.get(i).mName;
- LLSD payload;
- payload["group_id"] = group_id;
- LLNotifications::instance().add("GroupLeaveConfirmMember", args, payload, callbackLeaveGroup);
- }
+ LLGroupActions::leave(group_id);
}
}
void LLPanelGroups::search()
{
- LLFloaterReg::showInstance("search", LLSD().insert("panel", "group"));
-}
-
-// static
-bool LLPanelGroups::callbackLeaveGroup(const LLSD& notification, const LLSD& response)
-{
- S32 option = LLNotification::getSelectedOption(notification, response);
- LLUUID group_id = notification["payload"]["group_id"].asUUID();
- if(option == 0)
- {
- LLMessageSystem* msg = gMessageSystem;
- msg->newMessageFast(_PREHASH_LeaveGroupRequest);
- msg->nextBlockFast(_PREHASH_AgentData);
- msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
- msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
- msg->nextBlockFast(_PREHASH_GroupData);
- msg->addUUIDFast(_PREHASH_GroupID, group_id);
- gAgent.sendReliableMessage();
- }
- return false;
+ LLGroupActions::search();
}
void LLPanelGroups::onGroupList(LLUICtrl* ctrl, void* userdata)
diff --git a/indra/newview/llfloatergroups.h b/indra/newview/llfloatergroups.h
index d3fb405b42..0425b81294 100644
--- a/indra/newview/llfloatergroups.h
+++ b/indra/newview/llfloatergroups.h
@@ -62,7 +62,7 @@ class LLFloaterGroupPicker : public LLFloater, public LLUIFactory<LLFloaterGroup
public:
~LLFloaterGroupPicker();
- // Note: Don't return connection; use boost::bind + boost::signal::trackable to disconnect slots
+ // Note: Don't return connection; use boost::bind + boost::signals2::trackable to disconnect slots
typedef boost::signals2::signal<void (LLUUID id)> signal_t;
void setSelectGroupCallback(const signal_t::slot_type& cb) { mGroupSelectSignal.connect(cb); }
void setPowersMask(U64 powers_mask);
diff --git a/indra/newview/llfloaterhardwaresettings.h b/indra/newview/llfloaterhardwaresettings.h
index 70344c11d1..ec99638740 100644
--- a/indra/newview/llfloaterhardwaresettings.h
+++ b/indra/newview/llfloaterhardwaresettings.h
@@ -35,8 +35,6 @@
#include "llfloater.h"
-class LLSliderCtrl;
-
/// Menuing system for all of windlight's functionality
class LLFloaterHardwareSettings : public LLFloater
{
@@ -85,8 +83,6 @@ public:
void refreshEnabledState();
protected:
- LLSliderCtrl* mCtrlVideoCardMem;
-
BOOL mUseVBO;
BOOL mUseAniso;
U32 mFSAASamples;
diff --git a/indra/newview/llfloaterimagepreview.cpp b/indra/newview/llfloaterimagepreview.cpp
index c8a76cbe55..faa4f0ec99 100644
--- a/indra/newview/llfloaterimagepreview.cpp
+++ b/indra/newview/llfloaterimagepreview.cpp
@@ -52,6 +52,7 @@
#include "llui.h"
#include "llviewercamera.h"
#include "llviewerwindow.h"
+#include "llviewerobjectlist.h"
#include "llvoavatar.h"
#include "pipeline.h"
#include "lluictrlfactory.h"
@@ -110,7 +111,7 @@ BOOL LLFloaterImagePreview::postBuild()
childHide("bad_image_text");
- if (mRawImagep.notNull())
+ if (mRawImagep.notNull() && gAgent.getRegion() != NULL)
{
mAvatarPreview = new LLImagePreviewAvatar(256, 256);
mAvatarPreview->setPreviewTarget("mPelvis", "mUpperBodyMesh0", mRawImagep, 2.f, FALSE);
@@ -213,13 +214,16 @@ void LLFloaterImagePreview::onPreviewTypeCommit(LLUICtrl* ctrl, void* userdata)
//-----------------------------------------------------------------------------
void LLFloaterImagePreview::clearAllPreviewTextures()
{
- mAvatarPreview->clearPreviewTexture("mHairMesh0");
- mAvatarPreview->clearPreviewTexture("mUpperBodyMesh0");
- mAvatarPreview->clearPreviewTexture("mLowerBodyMesh0");
- mAvatarPreview->clearPreviewTexture("mHeadMesh0");
- mAvatarPreview->clearPreviewTexture("mUpperBodyMesh0");
- mAvatarPreview->clearPreviewTexture("mLowerBodyMesh0");
- mAvatarPreview->clearPreviewTexture("mSkirtMesh0");
+ if (mAvatarPreview)
+ {
+ mAvatarPreview->clearPreviewTexture("mHairMesh0");
+ mAvatarPreview->clearPreviewTexture("mUpperBodyMesh0");
+ mAvatarPreview->clearPreviewTexture("mLowerBodyMesh0");
+ mAvatarPreview->clearPreviewTexture("mHeadMesh0");
+ mAvatarPreview->clearPreviewTexture("mUpperBodyMesh0");
+ mAvatarPreview->clearPreviewTexture("mLowerBodyMesh0");
+ mAvatarPreview->clearPreviewTexture("mSkirtMesh0");
+ }
}
//-----------------------------------------------------------------------------
@@ -612,7 +616,8 @@ LLImagePreviewAvatar::LLImagePreviewAvatar(S32 width, S32 height) : LLDynamicTex
mCameraPitch = 0.f;
mCameraZoom = 1.f;
- mDummyAvatar = new LLVOAvatar(LLUUID::null, LL_PCODE_LEGACY_AVATAR, gAgent.getRegion());
+ mDummyAvatar = (LLVOAvatar*)gObjectList.createObjectViewer(LL_PCODE_LEGACY_AVATAR, gAgent.getRegion());
+ mDummyAvatar->initInstance();
mDummyAvatar->createDrawable(&gPipeline);
mDummyAvatar->mIsDummy = TRUE;
mDummyAvatar->mSpecialRenderMode = 2;
@@ -670,11 +675,14 @@ void LLImagePreviewAvatar::setPreviewTarget(const std::string& joint_name, const
//-----------------------------------------------------------------------------
void LLImagePreviewAvatar::clearPreviewTexture(const std::string& mesh_name)
{
- LLViewerJointMesh *mesh = (LLViewerJointMesh*)mDummyAvatar->mRoot.findJoint(mesh_name);
- // clear out existing test mesh
- if (mesh)
+ if (mDummyAvatar)
{
- mesh->setTestTexture(0);
+ LLViewerJointMesh *mesh = (LLViewerJointMesh*)mDummyAvatar->mRoot.findJoint(mesh_name);
+ // clear out existing test mesh
+ if (mesh)
+ {
+ mesh->setTestTexture(0);
+ }
}
}
@@ -795,27 +803,11 @@ LLImagePreviewSculpted::LLImagePreviewSculpted(S32 width, S32 height) : LLDynami
F32 const HIGHEST_LOD = 4.0f;
mVolume = new LLVolume(volume_params, HIGHEST_LOD);
-
- /*
- mDummyAvatar = new LLVOAvatar(LLUUID::null, LL_PCODE_LEGACY_AVATAR, gAgent.getRegion());
- mDummyAvatar->createDrawable(&gPipeline);
- mDummyAvatar->mIsDummy = TRUE;
- mDummyAvatar->mSpecialRenderMode = 2;
- mDummyAvatar->setPositionAgent(LLVector3::zero);
- mDummyAvatar->slamPosition();
- mDummyAvatar->updateJointLODs();
- mDummyAvatar->updateGeometry(mDummyAvatar->mDrawable);
- gPipeline.markVisible(mDummyAvatar->mDrawable, *LLViewerCamera::getInstance());
- mTextureName = 0;
- */
}
LLImagePreviewSculpted::~LLImagePreviewSculpted()
{
- /*
- mDummyAvatar->markDead();
- */
}
diff --git a/indra/newview/llfloaterinspect.cpp b/indra/newview/llfloaterinspect.cpp
index 14d664ff9d..57f4bcf319 100644
--- a/indra/newview/llfloaterinspect.cpp
+++ b/indra/newview/llfloaterinspect.cpp
@@ -37,6 +37,7 @@
#include "llfloaterreg.h"
#include "llfloateravatarinfo.h"
#include "llfloatertools.h"
+#include "llfriendactions.h"
#include "llcachename.h"
#include "llscrolllistctrl.h"
#include "llscrolllistitem.h"
@@ -122,7 +123,7 @@ void LLFloaterInspect::onClickCreatorProfile(void* ctrl)
LLSelectNode* node = sInstance->mObjectSelection->getFirstNode(&func);
if(node)
{
- LLFloaterAvatarInfo::showFromDirectory(node->mPermissions->getCreator());
+ LLFriendActions::showProfile(node->mPermissions->getCreator());
}
}
}
@@ -149,7 +150,7 @@ void LLFloaterInspect::onClickOwnerProfile(void* ctrl)
if(node)
{
const LLUUID& owner_id = node->mPermissions->getOwner();
- LLFloaterAvatarInfo::showFromDirectory(owner_id);
+ LLFriendActions::showProfile(owner_id);
}
}
}
diff --git a/indra/newview/llfloaterlagmeter.cpp b/indra/newview/llfloaterlagmeter.cpp
index 5d6c06f1a6..82deaef4a9 100644
--- a/indra/newview/llfloaterlagmeter.cpp
+++ b/indra/newview/llfloaterlagmeter.cpp
@@ -53,21 +53,22 @@ const std::string LAG_GOOD_IMAGE_NAME = "lag_status_good.tga";
LLFloaterLagMeter::LLFloaterLagMeter(const LLSD& key)
: LLFloater()
{
- LLUICtrlFactory::getInstance()->buildFloater(this, "floater_lagmeter.xml");
+// LLUICtrlFactory::getInstance()->buildFloater(this, "floater_lagmeter.xml");
+ 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 (gSavedSettings.getBOOL("LagMeterShrunk"))
{
- onClickShrink(this);
+ onClickShrink();
}
-}
-
-BOOL LLFloaterLagMeter::postBuild()
-{
+
mClientButton = getChild<LLButton>("client_lagmeter");
mClientText = getChild<LLTextBox>("client_text");
mClientCause = getChild<LLTextBox>("client_lag_cause");
@@ -102,7 +103,7 @@ BOOL LLFloaterLagMeter::postBuild()
config_string = getString("server_single_process_max_time_ms", mStringArgs);
mServerSingleProcessMaxTime = (float)atof( config_string.c_str() );
- mShrunk = false;
+// mShrunk = false;
config_string = getString("max_width_px", mStringArgs);
mMaxWidth = atoi( config_string.c_str() );
config_string = getString("min_width_px", mStringArgs);
@@ -120,18 +121,18 @@ BOOL LLFloaterLagMeter::postBuild()
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);
+// childSetAction("minimize", onClickShrink, this);
return TRUE;
}
LLFloaterLagMeter::~LLFloaterLagMeter()
{
// save shrunk status for next time
- gSavedSettings.setBOOL("LagMeterShrunk", mShrunk);
+// gSavedSettings.setBOOL("LagMeterShrunk", mShrunk);
// expand so we save the large window rectangle
- if (mShrunk)
+ if (gSavedSettings.getBOOL("LagMeterShrunk"))
{
- onClickShrink(this);
+ onClickShrink();
}
}
@@ -184,7 +185,7 @@ void LLFloaterLagMeter::determineClient()
{
mClientCause->setText( getString("client_texture_loading_cause_msg", mStringArgs) );
}
- else if((LLViewerImage::sBoundTextureMemory >> 20) > LLViewerImage::sMaxBoundTextureMem)
+ else if((BYTES_TO_MEGA_BYTES(LLViewerImage::sBoundTextureMemoryInBytes)) > LLViewerImage::sMaxBoundTextureMemInMegaBytes)
{
mClientCause->setText( getString("client_texture_memory_cause_msg", mStringArgs) );
}
@@ -311,58 +312,61 @@ void LLFloaterLagMeter::determineServer()
}
}
-//static
-void LLFloaterLagMeter::onClickShrink(void * data)
+
+void LLFloaterLagMeter::onClickShrink() // toggle "LagMeterShrunk"
{
- LLFloaterLagMeter * self = (LLFloaterLagMeter*)data;
+// LLFloaterLagMeter * self = (LLFloaterLagMeter*)data;
+
+ LLButton * button = getChild<LLButton>("minimize");
+ S32 delta_width = mMaxWidth -mMinWidth;
+ LLRect r = getRect();
+ bool shrunk = gSavedSettings.getBOOL("LagMeterShrunk");
- LLButton * button = self->getChild<LLButton>("minimize");
- S32 delta_width = self->mMaxWidth - self->mMinWidth;
- LLRect r = self->getRect();
- if(self->mShrunk)
+ if(shrunk)
{
- self->setTitle( self->getString("max_title_msg", self->mStringArgs) );
+ setTitle(getString("max_title_msg", mStringArgs) );
// make left edge appear to expand
r.translate(-delta_width, 0);
- self->setRect(r);
- self->reshape(self->mMaxWidth, self->getRect().getHeight());
+ setRect(r);
+ reshape(mMaxWidth, getRect().getHeight());
- self->childSetText("client", self->getString("client_text_msg", self->mStringArgs) + ":");
- self->childSetText("network", self->getString("network_text_msg", self->mStringArgs) + ":");
- self->childSetText("server", self->getString("server_text_msg", self->mStringArgs) + ":");
+ childSetText("client", getString("client_text_msg", mStringArgs) + ":");
+ childSetText("network", getString("network_text_msg",mStringArgs) + ":");
+ childSetText("server", getString("server_text_msg", mStringArgs) + ":");
// usually "<<"
- button->setLabel( self->getString("smaller_label", self->mStringArgs) );
+ button->setLabel( getString("smaller_label", mStringArgs) );
}
else
{
- self->setTitle( self->getString("min_title_msg", self->mStringArgs) );
+ setTitle( getString("min_title_msg", mStringArgs) );
// make left edge appear to collapse
r.translate(delta_width, 0);
- self->setRect(r);
- self->reshape(self->mMinWidth, self->getRect().getHeight());
+ setRect(r);
+ reshape(mMinWidth, getRect().getHeight());
- self->childSetText("client", self->getString("client_text_msg", self->mStringArgs) );
- self->childSetText("network", self->getString("network_text_msg", self->mStringArgs) );
- self->childSetText("server", self->getString("server_text_msg", self->mStringArgs) );
+ childSetText("client", getString("client_text_msg", mStringArgs) );
+ childSetText("network",getString("network_text_msg",mStringArgs) );
+ childSetText("server", getString("server_text_msg", mStringArgs) );
// usually ">>"
- button->setLabel( self->getString("bigger_label", self->mStringArgs) );
+ 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->childSetVisible("client_help", self->mShrunk);
+// self->mClientText->setVisible(self->mShrunk);
+// self->mClientCause->setVisible(self->mShrunk);
+// self->childSetVisible("client_help", self->mShrunk);
- self->mNetworkText->setVisible(self->mShrunk);
- self->mNetworkCause->setVisible(self->mShrunk);
- self->childSetVisible("network_help", self->mShrunk);
+// self->mNetworkText->setVisible(self->mShrunk);
+// self->mNetworkCause->setVisible(self->mShrunk);
+// self->childSetVisible("network_help", self->mShrunk);
- self->mServerText->setVisible(self->mShrunk);
- self->mServerCause->setVisible(self->mShrunk);
- self->childSetVisible("server_help", self->mShrunk);
+// self->mServerText->setVisible(self->mShrunk);
+// self->mServerCause->setVisible(self->mShrunk);
+// self->childSetVisible("server_help", self->mShrunk);
- self->mShrunk = !self->mShrunk;
+// self->mShrunk = !self->mShrunk;
+ gSavedSettings.setBOOL("LagMeterShrunk", !gSavedSettings.getBOOL("LagMeterShrunk"));
}
diff --git a/indra/newview/llfloaterlagmeter.h b/indra/newview/llfloaterlagmeter.h
index e8af68ac7a..6d2086839e 100644
--- a/indra/newview/llfloaterlagmeter.h
+++ b/indra/newview/llfloaterlagmeter.h
@@ -42,17 +42,18 @@ class LLFloaterLagMeter : public LLFloater, public LLFloaterSingleton<LLFloaterL
friend class LLUISingleton<LLFloaterLagMeter, VisibilityPolicy<LLFloater> >;
public:
+ LLFloaterLagMeter(const LLSD& key);
+ /*virtual*/ ~LLFloaterLagMeter();
+
/*virtual*/ void draw();
/*virtual*/ BOOL postBuild();
private:
- LLFloaterLagMeter(const LLSD& key);
- /*virtual*/ ~LLFloaterLagMeter();
void determineClient();
void determineNetwork();
void determineServer();
- static void onClickShrink(void * data);
+ void onClickShrink();
bool mShrunk;
S32 mMaxWidth, mMinWidth;
diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp
index 347fe45b82..f3275913e4 100644
--- a/indra/newview/llfloaterland.cpp
+++ b/indra/newview/llfloaterland.cpp
@@ -44,15 +44,15 @@
#include "lluserauth.h"
#include "llagent.h"
-#include "llfloateravatarpicker.h"
#include "llbutton.h"
#include "llcheckboxctrl.h"
-#include "llradiogroup.h"
#include "llcombobox.h"
+#include "llfloaterreg.h"
+#include "llfloateravatarpicker.h"
#include "llfloaterauction.h"
-#include "llfloateravatarinfo.h"
#include "llfloatergroups.h"
#include "llfloatergroupinfo.h"
+#include "llfriendactions.h"
#include "lllineeditor.h"
#include "llnamelistctrl.h"
#include "llnotify.h"
@@ -784,7 +784,7 @@ void LLPanelLandGeneral::onClickProfile(void* data)
else
{
const LLUUID& avatar_id = parcel->getOwnerID();
- LLFloaterAvatarInfo::showFromObject(avatar_id);
+ LLFriendActions::showProfile(avatar_id);
}
}
@@ -889,7 +889,8 @@ void LLPanelLandGeneral::onClickStartAuction(void* data)
}
else
{
- LLFloaterAuction::showInstance();
+ //LLFloaterAuction::showInstance();
+ LLFloaterReg::showInstance("auction");
}
}
}
@@ -1056,7 +1057,7 @@ void LLPanelLandObjects::onDoubleClickOwner(void *userdata)
}
else
{
- LLFloaterAvatarInfo::showFromDirectory(owner_id);
+ LLFriendActions::showProfile(owner_id);
}
}
}
@@ -2284,6 +2285,8 @@ LLPanelLandAccess::~LLPanelLandAccess()
void LLPanelLandAccess::refresh()
{
+ LLFloater* parent_floater = gFloaterView->getParentFloater(this);
+
if (mListAccess)
mListAccess->deleteAllItems();
if (mListBanned)
@@ -2326,20 +2329,20 @@ void LLPanelLandAccess::refresh()
if (seconds >= 120)
{
args["[MINUTES]"] = llformat("%d", (seconds/60));
- std::string buf = getString ("Minutes", args);
+ std::string buf = parent_floater->getString ("Minutes", args);
suffix.append(buf);
}
else if (seconds >= 60)
{
- suffix.append("1 " + getString("Minute"));
+ suffix.append("1 " + parent_floater->getString("Minute"));
}
else
{
args["[SECONDS]"] = llformat("%d", seconds);
- std::string buf = getString ("Seconds", args);
+ std::string buf = parent_floater->getString ("Seconds", args);
suffix.append(buf);
}
- suffix.append(" " + getString("Remaining") + ")");
+ suffix.append(" " + parent_floater->getString("Remaining") + ")");
}
if (mListAccess)
mListAccess->addNameItem(entry.mID, ADD_SORTED, TRUE, suffix);
@@ -2368,20 +2371,20 @@ void LLPanelLandAccess::refresh()
if (seconds >= 120)
{
args["[MINUTES]"] = llformat("%d", (seconds/60));
- std::string buf = getString ("Minutes", args);
+ std::string buf = parent_floater->getString ("Minutes", args);
suffix.append(buf);
}
else if (seconds >= 60)
{
- suffix.append("1 " + getString("Minute"));
+ suffix.append("1 " + parent_floater->getString("Minute"));
}
else
{
args["[SECONDS]"] = llformat("%d", seconds);
- std::string buf = getString ("Seconds", args);
+ std::string buf = parent_floater->getString ("Seconds", args);
suffix.append(buf);
}
- suffix.append(" " + getString("Remaining") + ")");
+ suffix.append(" " + parent_floater->getString("Remaining") + ")");
}
mListBanned->addNameItem(entry.mID, ADD_SORTED, TRUE, suffix);
}
diff --git a/indra/newview/llfloatermap.cpp b/indra/newview/llfloatermap.cpp
index 6920d45381..6660650c56 100644
--- a/indra/newview/llfloatermap.cpp
+++ b/indra/newview/llfloatermap.cpp
@@ -40,7 +40,6 @@
#include "llfloaterreg.h"
#include "llfontgl.h"
#include "llglheaders.h"
-#include "llmenugl.h"
// Viewer includes
#include "llagent.h"
@@ -50,6 +49,7 @@
#include "llviewercamera.h"
#include "lldraghandle.h"
#include "lltextbox.h"
+#include "llviewermenu.h"
//
// Constants
@@ -94,7 +94,7 @@ BOOL LLFloaterMap::postBuild()
registrar.add("Minimap.Zoom", boost::bind(&LLFloaterMap::handleZoom, this, _2));
registrar.add("Minimap.Tracker", boost::bind(&LLFloaterMap::handleStopTracking, this, _2));
- mPopupMenu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_minimap.xml", this);
+ mPopupMenu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_minimap.xml", gMenuHolder);
if (mPopupMenu && !LLTracker::isTracking(0))
{
mPopupMenu->setItemEnabled ("Stop Tracking", false);
diff --git a/indra/newview/llfloaternamedesc.cpp b/indra/newview/llfloaternamedesc.cpp
index ad0f9aacb1..6ef72d4c1a 100644
--- a/indra/newview/llfloaternamedesc.cpp
+++ b/indra/newview/llfloaternamedesc.cpp
@@ -41,6 +41,7 @@
#include "llbutton.h"
#include "llviewerwindow.h"
#include "llfocusmgr.h"
+#include "llrootview.h"
#include "llradiogroup.h"
#include "lldbstrings.h"
#include "lldir.h"
diff --git a/indra/newview/llfloaternotificationsconsole.cpp b/indra/newview/llfloaternotificationsconsole.cpp
index 11842b8b0e..3d5d2b733f 100644
--- a/indra/newview/llfloaternotificationsconsole.cpp
+++ b/indra/newview/llfloaternotificationsconsole.cpp
@@ -163,7 +163,9 @@ bool LLNotificationChannelPanel::update(const LLSD& payload, bool passed_filter)
LLFloaterNotificationConsole::LLFloaterNotificationConsole(const LLSD& key)
: LLFloater()
{
- LLUICtrlFactory::instance().buildFloater(this, "floater_notifications_console.xml");
+ mCommitCallbackRegistrar.add("ClickAdd", boost::bind(&LLFloaterNotificationConsole::onClickAdd, this));
+
+ //LLUICtrlFactory::instance().buildFloater(this, "floater_notifications_console.xml");
}
void LLFloaterNotificationConsole::onClose(bool app_quitting)
@@ -187,7 +189,7 @@ BOOL LLFloaterNotificationConsole::postBuild()
addChannel("Notifications");
addChannel("NotificationTips");
- getChild<LLButton>("add_notification")->setClickedCallback(onClickAdd, this);
+// getChild<LLButton>("add_notification")->setClickedCallback(onClickAdd, this);
LLComboBox* notifications = getChild<LLComboBox>("notification_types");
LLNotifications::TemplateNames names = LLNotifications::instance().getTemplateNames();
@@ -236,11 +238,9 @@ void LLFloaterNotificationConsole::updateResizeLimits()
setResizeLimits(getMinWidth(), floater_header_size + HEADER_PADDING + ((NOTIFICATION_PANEL_HEADER_HEIGHT + 3) * stack.getNumPanels()));
}
-void LLFloaterNotificationConsole::onClickAdd(void* user_data)
+void LLFloaterNotificationConsole::onClickAdd()
{
- LLFloaterNotificationConsole* floater = (LLFloaterNotificationConsole*)user_data;
-
- std::string message_name = floater->getChild<LLComboBox>("notification_types")->getValue().asString();
+ std::string message_name = getChild<LLComboBox>("notification_types")->getValue().asString();
if (!message_name.empty())
{
LLNotifications::instance().add(message_name, LLSD());
diff --git a/indra/newview/llfloaternotificationsconsole.h b/indra/newview/llfloaternotificationsconsole.h
index 0372553182..b85437c3c5 100644
--- a/indra/newview/llfloaternotificationsconsole.h
+++ b/indra/newview/llfloaternotificationsconsole.h
@@ -55,7 +55,7 @@ public:
void updateResizeLimits();
private:
- static void onClickAdd(void* user_data);
+ void onClickAdd();
};
diff --git a/indra/newview/llfloateropenobject.cpp b/indra/newview/llfloateropenobject.cpp
index de6b8ad814..4d782a1814 100644
--- a/indra/newview/llfloateropenobject.cpp
+++ b/indra/newview/llfloateropenobject.cpp
@@ -45,6 +45,7 @@
#include "llagent.h" // for agent id
#include "llalertdialog.h"
+#include "llinventorybridge.h"
#include "llinventoryview.h"
#include "llinventorymodel.h"
#include "llpanelinventory.h"
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index 1dcf4a51d2..15d57ebbcc 100644
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -42,92 +42,348 @@
#include "message.h"
-#include "llfocusmgr.h"
-#include "lltabcontainer.h"
-#include "llfloaterreg.h"
-
#include "llagent.h"
+#include "llavatarconstants.h"
+#include "llcheckboxctrl.h"
+#include "llcombobox.h"
#include "llcommandhandler.h"
+#include "lldirpicker.h"
+#include "llfeaturemanager.h"
+#include "llfocusmgr.h"
+#include "llfirstuse.h"
+#include "llfloaterreg.h"
#include "llfloaterabout.h"
#include "llfloaterhardwaresettings.h"
-#include "llpanelnetwork.h"
-#include "llpanelaudioprefs.h"
-#include "llpaneldisplay.h"
-#include "llpanelgeneral.h"
-#include "llpanelinput.h"
+#include "llfloatervoicedevicesettings.h"
+#include "llkeyboard.h"
+#include "llmodaldialog.h"
#include "llpanellogin.h"
-#include "llpanelmsgs.h"
-#include "llpanelweb.h"
-#include "llpanelskins.h"
-#include "llprefschat.h"
-#include "llprefsvoice.h"
-#include "llprefsim.h"
+#include "llradiogroup.h"
+#include "llsky.h"
+#include "llstylemap.h"
+#include "llscrolllistctrl.h"
+#include "llscrolllistitem.h"
+#include "llsliderctrl.h"
+#include "lltabcontainer.h"
+#include "lltrans.h"
+#include "lltexteditor.h"
#include "llviewercontrol.h"
+#include "llviewercamera.h"
+#include "llviewerwindow.h"
+#include "llviewermessage.h"
+#include "llviewershadermgr.h"
+#include "llvotree.h"
+#include "llvosky.h"
+
+// linden library includes
+#include "llerror.h"
+#include "llfontgl.h"
+#include "llrect.h"
+#include "llstring.h"
+
+// project includes
+
+#include "llbutton.h"
+#include "llflexibleobject.h"
+#include "lllineeditor.h"
+#include "llresmgr.h"
+#include "llspinctrl.h"
+#include "llstartup.h"
+#include "lltextbox.h"
+
+#include "llui.h"
+
+#include "llviewerimage.h"
+#include "llviewerimagelist.h"
+#include "llviewerobjectlist.h"
+
+#include "llvoavatar.h"
+#include "llvovolume.h"
+#include "llwindow.h"
+#include "llworld.h"
+#include "pipeline.h"
+#include "lluictrlfactory.h"
+#include "llboost.h"
+
+
+//RN temporary includes for resolution switching
+#include "llglheaders.h"
+const F32 MAX_USER_FAR_CLIP = 512.f;
+const F32 MIN_USER_FAR_CLIP = 64.f;
+
+const S32 ASPECT_RATIO_STR_LEN = 100;
+
+class LLVoiceSetKeyDialog : public LLModalDialog
+ {
+ public:
+ LLVoiceSetKeyDialog(LLFloaterPreference* parent);
+ ~LLVoiceSetKeyDialog();
+
+ BOOL handleKeyHere(KEY key, MASK mask);
+ static void onCancel(void* user_data);
+
+ private:
+ LLFloaterPreference* mParent;
+ };
+
+LLVoiceSetKeyDialog::LLVoiceSetKeyDialog(LLFloaterPreference* parent)
+: LLModalDialog(LLStringUtil::null, 240, 100), mParent(parent)
+{
+ LLUICtrlFactory::getInstance()->buildFloater(this, "floater_select_key.xml");
+ childSetAction("Cancel", onCancel, this);
+ childSetFocus("Cancel");
+
+ gFocusMgr.setKeystrokesOnly(TRUE);
+}
+
+LLVoiceSetKeyDialog::~LLVoiceSetKeyDialog()
+{
+}
+
+BOOL LLVoiceSetKeyDialog::handleKeyHere(KEY key, MASK mask)
+{
+ BOOL result = TRUE;
+
+ if(key == 'Q' && mask == MASK_CONTROL)
+ {
+ result = FALSE;
+ }
+ else
+ {
+ mParent->setKey(key);
+ }
+
+ closeFloater();
+ return result;
+}
+
+//static
+void LLVoiceSetKeyDialog::onCancel(void* user_data)
+{
+ LLVoiceSetKeyDialog* self = (LLVoiceSetKeyDialog*)user_data;
+ self->closeFloater();
+}
+
+
+// global functions
+
+// helper functions for getting/freeing the web browser media
+// if creating/destroying these is too slow, we'll need to create
+// a static member and update all our static callbacks
+
+void free_web_media(LLMediaBase *media_source);
+void handleHTMLLinkColorChanged(const LLSD& newvalue);
+LLMediaBase *get_web_media();
+bool callback_clear_browser_cache(const LLSD& notification, const LLSD& response);
+
+bool callback_skip_dialogs(const LLSD& notification, const LLSD& response, LLFloaterPreference* floater);
+bool callback_reset_dialogs(const LLSD& notification, const LLSD& response, LLFloaterPreference* floater);
+
+bool extractWindowSizeFromString(const std::string& instr, U32 &width, U32 &height);
+void fractionFromDecimal(F32 decimal_val, S32& numerator, S32& denominator);
+
+LLMediaBase *get_web_media()
+{
+ LLMediaBase *media_source;
+ LLMediaManager *mgr = LLMediaManager::getInstance();
+
+ if (!mgr)
+ {
+ llwarns << "cannot get media manager" << llendl;
+ return NULL;
+ }
+
+ media_source = mgr->createSourceFromMimeType("http", "text/html" );
+ if ( !media_source )
+ {
+ llwarns << "media source create failed " << llendl;
+ return NULL;
+ }
+
+ return media_source;
+}
+
+void free_web_media(LLMediaBase *media_source)
+{
+ if (!media_source)
+ return;
+
+ LLMediaManager *mgr = LLMediaManager::getInstance();
+ if (!mgr)
+ {
+ llwarns << "cannot get media manager" << llendl;
+ return;
+ }
+
+ mgr->destroySource(media_source);
+}
+
+
+bool callback_clear_browser_cache(const LLSD& notification, const LLSD& response)
+{
+ S32 option = LLNotification::getSelectedOption(notification, response);
+ if ( option == 0 ) // YES
+ {
+ LLMediaBase *media_source = get_web_media();
+ if (media_source)
+ media_source->clearCache();
+ free_web_media(media_source);
+ }
+ return false;
+}
+void handleHTMLLinkColorChanged(const LLSD& newvalue)
+{
+ LLTextEditor::setLinkColor(LLColor4(newvalue));
+ LLStyleMap::instance().update();
+
+}
+
+bool callback_skip_dialogs(const LLSD& notification, const LLSD& response, LLFloaterPreference* floater)
+{
+ S32 option = LLNotification::getSelectedOption(notification, response);
+ if (0 == option && floater )
+ {
+ if ( floater )
+ {
+ floater->setAllIgnored();
+ LLFirstUse::disableFirstUse();
+ LLFloaterPreference::buildLists(floater);
+ }
+ }
+ return false;
+}
+
+bool callback_reset_dialogs(const LLSD& notification, const LLSD& response, LLFloaterPreference* floater)
+{
+ S32 option = LLNotification::getSelectedOption(notification, response);
+ if ( 0 == option && floater )
+ {
+ if ( floater )
+ {
+ floater->resetAllIgnored();
+ LLFirstUse::resetFirstUse();
+ LLFloaterPreference::buildLists(floater);
+ }
+ }
+ return false;
+}
+
+
+// Extract from strings of the form "<width> x <height>", e.g. "640 x 480".
+bool extractWindowSizeFromString(const std::string& instr, U32 &width, U32 &height)
+{
+ using namespace boost;
+ cmatch what;
+ const regex expression("([0-9]+) x ([0-9]+)");
+ if (regex_match(instr.c_str(), what, expression))
+ {
+ width = atoi(what[1].first);
+ height = atoi(what[2].first);
+ return true;
+ }
+
+ width = height = 0;
+ return false;
+}
+
+void fractionFromDecimal(F32 decimal_val, S32& numerator, S32& denominator)
+{
+ numerator = 0;
+ denominator = 0;
+ for (F32 test_denominator = 1.f; test_denominator < 30.f; test_denominator += 1.f)
+ {
+ if (fmodf((decimal_val * test_denominator) + 0.01f, 1.f) < 0.02f)
+ {
+ numerator = llround(decimal_val * test_denominator);
+ denominator = llround(test_denominator);
+ break;
+ }
+ }
+}
+// static
+std::string LLFloaterPreference::sSkin = "";
+F32 LLFloaterPreference::sAspectRatio = 0.0;
//////////////////////////////////////////////
// LLFloaterPreference
LLFloaterPreference::LLFloaterPreference(const LLSD& key)
: LLFloater(key),
- mInputPanel(NULL),
- mNetworkPanel(NULL),
- mWebPanel(NULL),
- mDisplayPanel(NULL),
- mAudioPanel(NULL),
- mPrefsChat(NULL),
- mPrefsVoice(NULL),
- mPrefsIM(NULL),
- mMsgPanel(NULL),
- mSkinsPanel(NULL)
-{
- mFactoryMap["general"] = LLCallbackMap((LLCallbackMap::callback_t)LLCallbackMap::buildPanel<LLPanelGeneral>);
- mFactoryMap["input"] = LLCallbackMap((LLCallbackMap::callback_t)LLCallbackMap::buildPanel<LLPanelInput>);
- mFactoryMap["network"] = LLCallbackMap((LLCallbackMap::callback_t)LLCallbackMap::buildPanel<LLPanelNetwork>);
- mFactoryMap["web"] = LLCallbackMap((LLCallbackMap::callback_t)LLCallbackMap::buildPanel<LLPanelWeb>);
- mFactoryMap["display"] = LLCallbackMap((LLCallbackMap::callback_t)LLCallbackMap::buildPanel<LLPanelDisplay>);
- mFactoryMap["audio"] = LLCallbackMap((LLCallbackMap::callback_t)LLCallbackMap::buildPanel<LLPanelAudioPrefs>);
- mFactoryMap["chat"] = LLCallbackMap((LLCallbackMap::callback_t)LLCallbackMap::buildPanel<LLPrefsChat>);
- mFactoryMap["voice"] = LLCallbackMap((LLCallbackMap::callback_t)LLCallbackMap::buildPanel<LLPrefsVoice>);
- mFactoryMap["im"] = LLCallbackMap((LLCallbackMap::callback_t)LLCallbackMap::buildPanel<LLPrefsIM>);
- mFactoryMap["msgs"] = LLCallbackMap((LLCallbackMap::callback_t)LLCallbackMap::buildPanel<LLPanelMsgs>);
- mFactoryMap["skins"] = LLCallbackMap((LLCallbackMap::callback_t)LLCallbackMap::buildPanel<LLPanelSkins>);
-
- //Called from floater reg: LLUICtrlFactory::getInstance()->buildFloater(this, "floater_preferences.xml", FALSE);
+ mGotPersonalInfo(false),
+ mOriginalIMViaEmail(false)
+{
+ //Build Floater is now Called from LLFloaterReg::add("preferences", "floater_preferences.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPreference>);
+
+ mCommitCallbackRegistrar.add("Pref.Apply", boost::bind(&LLFloaterPreference::onBtnApply, this));
+ mCommitCallbackRegistrar.add("Pref.Cancel", boost::bind(&LLFloaterPreference::onBtnCancel, this));
+ mCommitCallbackRegistrar.add("Pref.OK", boost::bind(&LLFloaterPreference::onBtnOK, this));
+
+ mCommitCallbackRegistrar.add("Pref.ClearCache", boost::bind(&LLFloaterPreference::onClickClearCache, (void*)NULL));
+ mCommitCallbackRegistrar.add("Pref.WebClearCache", boost::bind(&LLFloaterPreference::onClickBrowserClearCache, (void*)NULL));
+ mCommitCallbackRegistrar.add("Pref.SetCache", boost::bind(&LLFloaterPreference::onClickSetCache, this));
+ mCommitCallbackRegistrar.add("Pref.ResetCache", boost::bind(&LLFloaterPreference::onClickResetCache, this));
+ mCommitCallbackRegistrar.add("Pref.ClickSkin", boost::bind(&LLFloaterPreference::onClickSkin, this,_1, _2));
+ mCommitCallbackRegistrar.add("Pref.SelectSkin", boost::bind(&LLFloaterPreference::onSelectSkin, this));
+ mCommitCallbackRegistrar.add("Pref.VoiceSetKey", boost::bind(&LLFloaterPreference::onClickSetKey, this));
+ mCommitCallbackRegistrar.add("Pref.VoiceSetMiddleMouse", boost::bind(&LLFloaterPreference::onClickSetMiddleMouse, this));
+ mCommitCallbackRegistrar.add("Pref.ClickSkipDialogs", boost::bind(&LLFloaterPreference::onClickSkipDialogs, this));
+ mCommitCallbackRegistrar.add("Pref.ClickResetDialogs", boost::bind(&LLFloaterPreference::onClickResetDialogs, this));
+ mCommitCallbackRegistrar.add("Pref.ClickEnablePopup", boost::bind(&LLFloaterPreference::onClickEnablePopup, this));
+ mCommitCallbackRegistrar.add("Pref.LogPath", boost::bind(&LLFloaterPreference::onClickLogPath, this));
+ mCommitCallbackRegistrar.add("Pref.Logging", boost::bind(&LLFloaterPreference::onCommitLogging, this));
+ mCommitCallbackRegistrar.add("Pref.OpenHelp", boost::bind(&LLFloaterPreference::onOpenHelp, this));
+ mCommitCallbackRegistrar.add("Pref.ChangeCustom", boost::bind(&LLFloaterPreference::onChangeCustom, this));
+ mCommitCallbackRegistrar.add("Pref.UpdateMeterText", boost::bind(&LLFloaterPreference::updateMeterText, this, _1));
+ mCommitCallbackRegistrar.add("Pref.HardwareSettings", boost::bind(&LLFloaterPreference::onOpenHardwareSettings, this));
+ mCommitCallbackRegistrar.add("Pref.HardwareDefaults", boost::bind(&LLFloaterPreference::setHardwareDefaults, this));
+ mCommitCallbackRegistrar.add("Pref.VertexShaderEnable", boost::bind(&LLFloaterPreference::onVertexShaderEnable, this));
+ mCommitCallbackRegistrar.add("Pref.WindowedMod", boost::bind(&LLFloaterPreference::onCommitWindowedMode, this));
+ mCommitCallbackRegistrar.add("Pref.UpdateSliderText", boost::bind(&LLFloaterPreference::onUpdateSliderText,this, _1,_2));
+ mCommitCallbackRegistrar.add("Pref.AutoDetectAspect", boost::bind(&LLFloaterPreference::onCommitAutoDetectAspect, this));
+ mCommitCallbackRegistrar.add("Pref.onSelectAspectRatio", boost::bind(&LLFloaterPreference::onKeystrokeAspectRatio, this));
+ mCommitCallbackRegistrar.add("Pref.QualityPerformance", boost::bind(&LLFloaterPreference::onChangeQuality, this, _2));
+
+ gSavedSkinSettings.getControl("HTMLLinkColor")->getCommitSignal()->connect(boost::bind(&handleHTMLLinkColorChanged, _2));
+
}
BOOL LLFloaterPreference::postBuild()
{
- getChild<LLButton>("About...")->setClickedCallback(onClickAbout, this);
- getChild<LLButton>("Apply")->setClickedCallback(onBtnApply, this);
- getChild<LLButton>("Cancel")->setClickedCallback(onBtnCancel, this);
- getChild<LLButton>("OK")->setClickedCallback(onBtnOK, this);
-
LLTabContainer* tabcontainer = getChild<LLTabContainer>("pref core");
if (!tabcontainer->selectTab(gSavedSettings.getS32("LastPrefTab")))
tabcontainer->selectFirstTab();
-
- // Panels that don't yet derive from LLPanelPreferenc
- // *TODO: Skinning - conver these to derive from LLPanelPreference
- mWebPanel = dynamic_cast<LLPanelWeb*>(getChild<LLPanel>("web"));
- mDisplayPanel = dynamic_cast<LLPanelDisplay*>(getChild<LLPanel>("display"));
- mAudioPanel = dynamic_cast<LLPanelAudioPrefs*>(getChild<LLPanel>("audio"));
- mPrefsChat = dynamic_cast<LLPrefsChat*>(getChild<LLPanel>("chat"));
- mPrefsVoice = dynamic_cast<LLPrefsVoice*>(getChild<LLPanel>("voice"));
- mPrefsIM = dynamic_cast<LLPrefsIM*>(getChild<LLPanel>("im"));
- mMsgPanel = dynamic_cast<LLPanelMsgs*>(getChild<LLPanel>("msgs"));
- mSkinsPanel = dynamic_cast<LLPanelSkins*>(getChild<LLPanel>("skins"));
-
return TRUE;
}
-
LLFloaterPreference::~LLFloaterPreference()
{
+ // clean up user data
+ LLComboBox* ctrl_aspect_ratio = getChild<LLComboBox>( "aspect_ratio");
+ LLComboBox* ctrl_window_size = getChild<LLComboBox>("windowsize combo");
+ for (S32 i = 0; i < ctrl_aspect_ratio->getItemCount(); i++)
+ {
+ ctrl_aspect_ratio->setCurrentByIndex(i);
+ }
+ for (S32 i = 0; i < ctrl_window_size->getItemCount(); i++)
+ {
+ ctrl_window_size->setCurrentByIndex(i);
+ }
+}
+void LLFloaterPreference::draw()
+{
+ BOOL has_first_selected = (getChildRef<LLScrollListCtrl>("disabled_popups").getFirstSelected()!=NULL);
+ gSavedSettings.setBOOL("FirstSelectedDisabledPopups", has_first_selected);
+ LLFloater::draw();
}
void LLFloaterPreference::apply()
{
LLTabContainer* tabcontainer = getChild<LLTabContainer>("pref core");
+ if (sSkin != gSavedSettings.getString("SkinCurrent"))
+ {
+ LLNotifications::instance().add("ChangeSkin");
+ refreshSkin(this);
+ }
// Call apply() on all panels that derive from LLPanelPreference
for (child_list_t::const_iterator iter = tabcontainer->getChildList()->begin();
iter != tabcontainer->getChildList()->end(); ++iter)
@@ -137,18 +393,77 @@ void LLFloaterPreference::apply()
if (panel)
panel->apply();
}
-
- if (mWebPanel) mWebPanel->apply();
- if (mDisplayPanel) mDisplayPanel->apply();
- if (mAudioPanel) mAudioPanel->apply();
- if (mPrefsChat) mPrefsChat->apply();
- if (mPrefsVoice) mPrefsVoice->apply();
- if (mPrefsIM) mPrefsIM->apply();
- if (mMsgPanel) mMsgPanel->apply();
- if (mSkinsPanel) mSkinsPanel->apply();
-
// hardware menu apply
LLFloaterHardwareSettings::instance()->apply();
+
+ LLFloaterVoiceDeviceSettings* voice_device_settings = LLFloaterReg::findTypedInstance<LLFloaterVoiceDeviceSettings>("pref_voicedevicesettings");
+ if(voice_device_settings)
+ {
+ voice_device_settings->apply();
+ }
+
+ gViewerWindow->requestResolutionUpdate(); // for UIScaleFactor
+
+ LLSliderCtrl* fov_slider = getChild<LLSliderCtrl>("camera_fov");
+ fov_slider->setMinValue(LLViewerCamera::getInstance()->getMinView());
+ fov_slider->setMaxValue(LLViewerCamera::getInstance()->getMaxView());
+
+ std::string cache_location = gDirUtilp->getExpandedFilename(LL_PATH_CACHE, "");
+ childSetText("cache_location", cache_location);
+
+ LLMediaBase *media_source = get_web_media();
+ if (media_source)
+ {
+ media_source->enableCookies(childGetValue("cookies_enabled"));
+ if(hasChild("web_proxy_enabled") &&hasChild("web_proxy_editor") && hasChild("web_proxy_port"))
+ {
+ bool proxy_enable = childGetValue("web_proxy_enabled");
+ std::string proxy_address = childGetValue("web_proxy_editor");
+
+ int proxy_port = childGetValue("web_proxy_port");
+ media_source->enableProxy(proxy_enable, proxy_address, proxy_port);
+ }
+ }
+ free_web_media(media_source);
+
+ LLTextEditor* busy = getChild<LLTextEditor>("busy_response");
+ LLWString busy_response;
+ if (busy) busy_response = busy->getWText();
+ LLWStringUtil::replaceTabsWithSpaces(busy_response, 4);
+
+ if(mGotPersonalInfo)
+ {
+ gSavedPerAccountSettings.setString("BusyModeResponse2", std::string(wstring_to_utf8str(busy_response)));
+ bool new_im_via_email = childGetValue("send_im_to_email").asBoolean();
+ bool new_hide_online = childGetValue("online_visibility").asBoolean();
+
+ if((new_im_via_email != mOriginalIMViaEmail)
+ ||(new_hide_online != mOriginalHideOnlineStatus))
+ {
+ // This hack is because we are representing several different
+ // possible strings with a single checkbox. Since most users
+ // can only select between 2 values, we represent it as a
+ // checkbox. This breaks down a little bit for liaisons, but
+ // works out in the end.
+ if(new_hide_online != mOriginalHideOnlineStatus)
+ {
+ if(new_hide_online) mDirectoryVisibility = VISIBILITY_HIDDEN;
+ else mDirectoryVisibility = VISIBILITY_DEFAULT;
+ //Update showonline value, otherwise multiple applys won't work
+ mOriginalHideOnlineStatus = new_hide_online;
+ }
+ gAgent.sendAgentUpdateUserInfo(new_im_via_email,mDirectoryVisibility);
+ }
+ }
+
+ applyResolution();
+
+ // Only set window size if we're not in fullscreen mode
+ if(gSavedSettings.getBOOL("NotFullScreen"))
+ {
+ applyWindowSize();
+ }
+
}
void LLFloaterPreference::cancel()
@@ -163,18 +478,25 @@ void LLFloaterPreference::cancel()
if (panel)
panel->cancel();
}
-
- if (mWebPanel) mWebPanel->apply();
- if (mDisplayPanel) mDisplayPanel->cancel();
- if (mAudioPanel) mAudioPanel->cancel();
- if (mPrefsChat) mPrefsChat->cancel();
- if (mPrefsVoice) mPrefsVoice->cancel();
- if (mPrefsIM) mPrefsIM->cancel();
- if (mMsgPanel) mMsgPanel->cancel();
- if (mSkinsPanel) mSkinsPanel->cancel();
-
+ // hide joystick pref floater
+ LLFloaterReg::hideInstance("pref_joystick");
+
// cancel hardware menu
- LLFloaterHardwareSettings::instance()->cancel();
+ LLFloaterHardwareSettings::instance()->cancel(); // TODO: angela change the build of the floater to floater reg
+
+ // reverts any changes to current skin
+ gSavedSettings.setString("SkinCurrent", sSkin);
+
+ LLFloaterVoiceDeviceSettings* voice_device_settings = LLFloaterReg::findTypedInstance<LLFloaterVoiceDeviceSettings>("pref_voicedevicesettings");
+ if (voice_device_settings)
+ {
+ voice_device_settings ->cancel();
+ }
+
+ LLFloaterReg::hideInstance("pref_voicedevicesettings");
+
+ gSavedSettings.setF32("FullScreenAspectRatio", sAspectRatio);
+
}
void LLFloaterPreference::onOpen(const LLSD& key)
@@ -183,6 +505,16 @@ void LLFloaterPreference::onOpen(const LLSD& key)
LLPanelLogin::setAlwaysRefresh(true);
}
+void LLFloaterPreference::onVertexShaderEnable()
+{
+ refreshEnabledGraphics();
+}
+
+void LLFloaterPreference::setHardwareDefaults()
+{
+ LLFeatureManager::getInstance()->applyRecommendedSettings();
+ refreshEnabledGraphics();
+}
void LLFloaterPreference::onClose(bool app_quitting)
{
gSavedSettings.setS32("LastPrefTab", getChild<LLTabContainer>("pref core")->getCurrentPanelIndex());
@@ -190,19 +522,15 @@ void LLFloaterPreference::onClose(bool app_quitting)
cancel(); // will be a no-op if OK or apply was performed just prior.
destroy();
}
-
-// static
-void LLFloaterPreference::onClickAbout(void*)
+void LLFloaterPreference::onOpenHardwareSettings()
{
- LLFloaterAbout::showInstance();
+ LLFloaterHardwareSettings::show();
}
-
// static
-void LLFloaterPreference::onBtnOK( void* userdata )
+void LLFloaterPreference::onBtnOK()
{
- LLFloaterPreference *fp =(LLFloaterPreference *)userdata;
// commit any outstanding text entry
- if (fp->hasFocus())
+ if (hasFocus())
{
LLUICtrl* cur_focus = gFocusMgr.getKeyboardFocus();
if (cur_focus->acceptsTextInput())
@@ -211,11 +539,10 @@ void LLFloaterPreference::onBtnOK( void* userdata )
}
}
- if (fp->canClose())
+ if (canClose())
{
- fp->apply();
- fp->closeFloater(false);
-
+ apply();
+ closeFloater(false);
gSavedSettings.saveToFile( gSavedSettings.getString("ClientSettingsFile"), TRUE );
gSavedSkinSettings.saveToFile(gSavedSettings.getString("SkinningSettingsFile") , TRUE );
std::string crash_settings_filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, CRASH_SETTINGS_FILE);
@@ -231,12 +558,16 @@ void LLFloaterPreference::onBtnOK( void* userdata )
LLPanelLogin::refreshLocation( false );
}
+void LLFloaterPreference::onOpenHelp()
+{
+ const char* xml_alert = "GraphicsPreferencesHelp";
+ LLNotifications::instance().add(this->contextualNotification(xml_alert));
+}
// static
-void LLFloaterPreference::onBtnApply( void* userdata )
+void LLFloaterPreference::onBtnApply( )
{
- LLFloaterPreference *fp =(LLFloaterPreference *)userdata;
- if (fp->hasFocus())
+ if (hasFocus())
{
LLUICtrl* cur_focus = gFocusMgr.getKeyboardFocus();
if (cur_focus->acceptsTextInput())
@@ -244,17 +575,15 @@ void LLFloaterPreference::onBtnApply( void* userdata )
cur_focus->onCommit();
}
}
- fp->apply();
+ apply();
LLPanelLogin::refreshLocation( false );
}
-
// static
-void LLFloaterPreference::onBtnCancel( void* userdata )
+void LLFloaterPreference::onBtnCancel()
{
- LLFloaterPreference *fp =(LLFloaterPreference *)userdata;
- if (fp->hasFocus())
+ if (hasFocus())
{
LLUICtrl* cur_focus = gFocusMgr.getKeyboardFocus();
if (cur_focus->acceptsTextInput())
@@ -262,38 +591,875 @@ void LLFloaterPreference::onBtnCancel( void* userdata )
cur_focus->onCommit();
}
}
-
- fp->closeFloater(); // side effect will also cancel any unsaved changes.
+ closeFloater(); // side effect will also cancel any unsaved changes.
}
-
-// static
+// static
void LLFloaterPreference::updateUserInfo(const std::string& visibility, bool im_via_email, const std::string& email)
{
LLFloaterPreference* instance = LLFloaterReg::findTypedInstance<LLFloaterPreference>("preferences");
- if(instance && instance->mPrefsIM)
+ if(instance)
{
- instance->mPrefsIM->setPersonalInfo(visibility, im_via_email, email);
+ instance->setPersonalInfo(visibility, im_via_email, email);
}
}
-// static
+
+void LLFloaterPreference::onChangeCustom()
+{
+ // if custom is turned off, reset everything to defaults
+ if (this && getChild<LLCheckBoxCtrl>("CustomSettings")->getValue())
+ {
+ U32 set = (U32)getChild<LLSliderCtrl>("QualityPerformanceSelection")->getValueF32();
+ LLFeatureManager::getInstance()->setGraphicsLevel(set, true);
+ updateMeterText(getChild<LLSliderCtrl>("DrawDistance"));
+ }
+
+ refreshEnabledGraphics();
+}
+
void LLFloaterPreference::refreshEnabledGraphics()
{
LLFloaterPreference* instance = LLFloaterReg::findTypedInstance<LLFloaterPreference>("preferences");
if(instance)
{
LLFloaterHardwareSettings::instance()->refreshEnabledState();
- if (instance->mDisplayPanel)
- instance->mDisplayPanel->refreshEnabledState();
+ instance->refreshEnabledState();
}
}
-//----------------------------------------------------------------------------
+void LLFloaterPreference::updateMeterText(LLUICtrl* ctrl)
+{
+ // get our UI widgets
+ LLSliderCtrl* slider = (LLSliderCtrl*) ctrl;
+
+ LLTextBox* m1 = getChild<LLTextBox>("DrawDistanceMeterText1");
+ LLTextBox* m2 = getChild<LLTextBox>("DrawDistanceMeterText2");
+
+ // toggle the two text boxes based on whether we have 1 or two digits
+ F32 val = slider->getValueF32();
+ bool two_digits = val < 100;
+ m1->setVisible(two_digits);
+ m2->setVisible(!two_digits);
+}
+
+// static
+void LLFloaterPreference::onClickClearCache(void*)
+{
+ // flag client cache for clearing next time the client runs
+ gSavedSettings.setBOOL("PurgeCacheOnNextStartup", TRUE);
+ LLNotifications::instance().add("CacheWillClear");
+}
+
+// static
+void LLFloaterPreference::onClickBrowserClearCache(void*)
+{
+ LLNotifications::instance().add("ConfirmClearBrowserCache", LLSD(), LLSD(), callback_clear_browser_cache);
+}
+
+void LLFloaterPreference::onClickSetCache()
+{
+ std::string cur_name(gSavedSettings.getString("CacheLocation"));
+ std::string proposed_name(cur_name);
+
+ LLDirPicker& picker = LLDirPicker::instance();
+ if (! picker.getDir(&proposed_name ) )
+ {
+ return; //Canceled!
+ }
+
+ std::string dir_name = picker.getDirName();
+ if (!dir_name.empty() && dir_name != cur_name)
+ {
+ childSetText("cache_location", dir_name);
+ LLNotifications::instance().add("CacheWillBeMoved");
+ gSavedSettings.setString("NewCacheLocation", dir_name);
+ }
+ else
+ {
+ std::string cache_location = gDirUtilp->getCacheDir();
+ childSetText("cache_location", cache_location);
+ }
+}
+
+void LLFloaterPreference::onClickResetCache()
+{
+ if (!gSavedSettings.getString("CacheLocation").empty())
+ {
+ gSavedSettings.setString("NewCacheLocation", "");
+ LLNotifications::instance().add("CacheWillBeMoved");
+ }
+ std::string cache_location = gDirUtilp->getCacheDir(true);
+ childSetText("cache_location", cache_location);
+}
+
+void LLFloaterPreference::onClickSkin(LLUICtrl* ctrl, const LLSD& userdata)
+{
+ gSavedSettings.setString("SkinCurrent", userdata.asString());
+ ctrl->setValue(userdata.asString());
+}
+
+void LLFloaterPreference::onSelectSkin()
+{
+ std::string skin_selection = getChild<LLRadioGroup>("skin_selection")->getValue().asString();
+ gSavedSettings.setString("SkinCurrent", skin_selection);
+}
+
+void LLFloaterPreference::refreshSkin(void* data)
+{
+ LLPanel*self = (LLPanel*)data;
+ sSkin = gSavedSettings.getString("SkinCurrent");
+ self->getChild<LLRadioGroup>("skin_selection", true)->setValue(sSkin);
+}
+
+// static
+void LLFloaterPreference::buildLists(void* data)
+{
+ LLPanel*self = (LLPanel*)data;
+ LLScrollListCtrl& disabled_popups = self->getChildRef<LLScrollListCtrl>("disabled_popups");
+ LLScrollListCtrl& enabled_popups = self->getChildRef<LLScrollListCtrl>("enabled_popups");
+
+ disabled_popups.deleteAllItems();
+ enabled_popups.deleteAllItems();
+
+ for (LLNotifications::TemplateMap::const_iterator iter = LLNotifications::instance().templatesBegin();
+ iter != LLNotifications::instance().templatesEnd();
+ ++iter)
+ {
+ LLNotificationTemplatePtr templatep = iter->second;
+ LLNotificationFormPtr formp = templatep->mForm;
+
+ LLNotificationForm::EIgnoreType ignore = formp->getIgnoreType();
+ if (ignore == LLNotificationForm::IGNORE_NO)
+ continue;
+
+ LLSD row;
+ row["columns"][0]["value"] = formp->getIgnoreMessage();
+ row["columns"][0]["font"] = "SANSSERIF_SMALL";
+ row["columns"][0]["width"] = 400;
+
+ LLScrollListItem* item = NULL;
+
+ bool show_popup = LLUI::sSettingGroups["ignores"]->getBOOL(templatep->mName);
+ if (!show_popup)
+ {
+ if (ignore == LLNotificationForm::IGNORE_WITH_LAST_RESPONSE)
+ {
+ LLSD last_response = LLUI::sSettingGroups["config"]->getLLSD("Default" + templatep->mName);
+ if (!last_response.isUndefined())
+ {
+ for (LLSD::map_const_iterator it = last_response.beginMap();
+ it != last_response.endMap();
+ ++it)
+ {
+ if (it->second.asBoolean())
+ {
+ row["columns"][1]["value"] = formp->getElement(it->first)["ignore"].asString();
+ break;
+ }
+ }
+ }
+ row["columns"][1]["font"] = "SANSSERIF_SMALL";
+ row["columns"][1]["width"] = 360;
+ }
+ item = disabled_popups.addElement(row,
+ ADD_SORTED);
+ }
+ else
+ {
+ item = enabled_popups.addElement(row,
+ ADD_SORTED);
+ }
+
+ if (item)
+ {
+ item->setUserdata((void*)&iter->first);
+ }
+ }
+}
+
+void LLFloaterPreference::refreshEnabledState()
+{
+
+ // disable graphics settings and exit if it's not set to custom
+ if(!gSavedSettings.getBOOL("RenderCustomSettings"))
+ {
+ return;
+ }
+
+ LLCheckBoxCtrl* ctrl_reflections = getChild<LLCheckBoxCtrl>("Reflections");
+ LLRadioGroup* radio_reflection_detail = getChild<LLRadioGroup>("ReflectionDetailRadio");
+
+ // Reflections
+ BOOL reflections = gSavedSettings.getBOOL("VertexShaderEnable")
+ && gGLManager.mHasCubeMap
+ && LLCubeMap::sUseCubeMaps;
+ ctrl_reflections->setEnabled(reflections);
+
+ // Bump & Shiny
+ bool bumpshiny = gGLManager.mHasCubeMap && LLCubeMap::sUseCubeMaps && LLFeatureManager::getInstance()->isFeatureAvailable("RenderObjectBump");
+ getChild<LLCheckBoxCtrl>("BumpShiny")->setEnabled(bumpshiny ? TRUE : FALSE);
+
+ for (S32 i = 0; i < radio_reflection_detail->getItemCount(); ++i)
+ {
+ radio_reflection_detail->setIndexEnabled(i, ctrl_reflections->get() && reflections);
+ }
+
+ // Avatar Mode
+ // Enable Avatar Shaders
+ LLCheckBoxCtrl* ctrl_avatar_vp = getChild<LLCheckBoxCtrl>("AvatarVertexProgram");
+ // Avatar Render Mode
+ LLCheckBoxCtrl* ctrl_avatar_cloth = getChild<LLCheckBoxCtrl>("AvatarCloth");
+
+ S32 max_avatar_shader = LLViewerShaderMgr::instance()->mMaxAvatarShaderLevel;
+ ctrl_avatar_vp->setEnabled((max_avatar_shader > 0) ? TRUE : FALSE);
+
+ if (gSavedSettings.getBOOL("VertexShaderEnable") == FALSE ||
+ gSavedSettings.getBOOL("RenderAvatarVP") == FALSE)
+ {
+ ctrl_avatar_cloth->setEnabled(false);
+ }
+ else
+ {
+ ctrl_avatar_cloth->setEnabled(true);
+ }
+
+ // Vertex Shaders
+ // Global Shader Enable
+ LLCheckBoxCtrl* ctrl_shader_enable = getChild<LLCheckBoxCtrl>("BasicShaders");
+ // radio set for terrain detail mode
+ LLRadioGroup* mRadioTerrainDetail = getChild<LLRadioGroup>("TerrainDetailRadio"); // can be linked with control var
+
+ ctrl_shader_enable->setEnabled(LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable"));
+
+ BOOL shaders = ctrl_shader_enable->get();
+ if (shaders)
+ {
+ mRadioTerrainDetail->setValue(1);
+ mRadioTerrainDetail->setEnabled(FALSE);
+ }
+ else
+ {
+ mRadioTerrainDetail->setEnabled(TRUE);
+ }
+
+ // WindLight
+ LLCheckBoxCtrl* ctrl_wind_light = getChild<LLCheckBoxCtrl>("WindLightUseAtmosShaders");
+
+ // *HACK just checks to see if we can use shaders...
+ // maybe some cards that use shaders, but don't support windlight
+ ctrl_wind_light->setEnabled(ctrl_shader_enable->getEnabled() && shaders);
+ // now turn off any features that are unavailable
+ disableUnavailableSettings();
+}
+
+void LLFloaterPreference::disableUnavailableSettings()
+{
+ LLCheckBoxCtrl* ctrl_reflections = getChild<LLCheckBoxCtrl>("Reflections");
+ LLCheckBoxCtrl* ctrl_avatar_vp = getChild<LLCheckBoxCtrl>("AvatarVertexProgram");
+ LLCheckBoxCtrl* ctrl_avatar_cloth = getChild<LLCheckBoxCtrl>("AvatarCloth");
+ LLCheckBoxCtrl* ctrl_shader_enable = getChild<LLCheckBoxCtrl>("BasicShaders");
+ LLCheckBoxCtrl* ctrl_wind_light = getChild<LLCheckBoxCtrl>("WindLightUseAtmosShaders");
+ LLCheckBoxCtrl* ctrl_avatar_impostors = getChild<LLCheckBoxCtrl>("AvatarImpostors");
+
+ // if vertex shaders off, disable all shader related products
+ if(!LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable"))
+ {
+ ctrl_shader_enable->setEnabled(FALSE);
+ ctrl_shader_enable->setValue(FALSE);
+
+ ctrl_wind_light->setEnabled(FALSE);
+ ctrl_wind_light->setValue(FALSE);
+
+ ctrl_reflections->setEnabled(FALSE);
+ ctrl_reflections->setValue(FALSE);
+
+ ctrl_avatar_vp->setEnabled(FALSE);
+ ctrl_avatar_vp->setValue(FALSE);
+
+ ctrl_avatar_cloth->setEnabled(FALSE);
+ ctrl_avatar_cloth->setValue(FALSE);
+ }
+
+ // disabled windlight
+ if(!LLFeatureManager::getInstance()->isFeatureAvailable("WindLightUseAtmosShaders"))
+ {
+ ctrl_wind_light->setEnabled(FALSE);
+ ctrl_wind_light->setValue(FALSE);
+ }
+
+ // disabled reflections
+ if(!LLFeatureManager::getInstance()->isFeatureAvailable("RenderWaterReflections"))
+ {
+ ctrl_reflections->setEnabled(FALSE);
+ ctrl_reflections->setValue(FALSE);
+ }
+
+ // disabled av
+ if(!LLFeatureManager::getInstance()->isFeatureAvailable("RenderAvatarVP"))
+ {
+ ctrl_avatar_vp->setEnabled(FALSE);
+ ctrl_avatar_vp->setValue(FALSE);
+
+ ctrl_avatar_cloth->setEnabled(FALSE);
+ ctrl_avatar_cloth->setValue(FALSE);
+ }
+ // disabled cloth
+ if(!LLFeatureManager::getInstance()->isFeatureAvailable("RenderAvatarCloth"))
+ {
+ ctrl_avatar_cloth->setEnabled(FALSE);
+ ctrl_avatar_cloth->setValue(FALSE);
+ }
+ // disabled impostors
+ if(!LLFeatureManager::getInstance()->isFeatureAvailable("RenderUseImpostors"))
+ {
+ ctrl_avatar_impostors->setEnabled(FALSE);
+ ctrl_avatar_impostors->setValue(FALSE);
+ }
+}
+
+void LLFloaterPreference::onCommitAutoDetectAspect()
+{
+ BOOL auto_detect = getChild<LLCheckBoxCtrl>("aspect_auto_detect")->get();
+ F32 ratio;
+
+ if (auto_detect)
+ {
+ S32 numerator = 0;
+ S32 denominator = 0;
+
+ // clear any aspect ratio override
+ gViewerWindow->mWindow->setNativeAspectRatio(0.f);
+ fractionFromDecimal(gViewerWindow->mWindow->getNativeAspectRatio(), numerator, denominator);
+
+ std::string aspect;
+ if (numerator != 0)
+ {
+ aspect = llformat("%d:%d", numerator, denominator);
+ }
+ else
+ {
+ aspect = llformat("%.3f", gViewerWindow->mWindow->getNativeAspectRatio());
+ }
+
+ getChild<LLComboBox>( "aspect_ratio")->setLabel(aspect);
+
+ ratio = gViewerWindow->mWindow->getNativeAspectRatio();
+ gSavedSettings.setF32("FullScreenAspectRatio", ratio);
+ }
+}
+
+void LLFloaterPreference::refresh()
+{
+ LLPanel::refresh();
+
+ // sliders and their text boxes
+ // mPostProcess = gSavedSettings.getS32("RenderGlowResolutionPow");
+ // slider text boxes
+ updateSliderText(getChild<LLSliderCtrl>("ObjectMeshDetail"), getChild<LLTextBox>("ObjectMeshDetailText"));
+ updateSliderText(getChild<LLSliderCtrl>("FlexibleMeshDetail"), getChild<LLTextBox>("FlexibleMeshDetailText"));
+ updateSliderText(getChild<LLSliderCtrl>("TreeMeshDetail"), getChild<LLTextBox>("TreeMeshDetailText"));
+ updateSliderText(getChild<LLSliderCtrl>("AvatarMeshDetail"), getChild<LLTextBox>("AvatarMeshDetailText"));
+ updateSliderText(getChild<LLSliderCtrl>("TerrainMeshDetail"), getChild<LLTextBox>("TerrainMeshDetailText"));
+ updateSliderText(getChild<LLSliderCtrl>("RenderPostProcess"), getChild<LLTextBox>("PostProcessText"));
+ updateSliderText(getChild<LLSliderCtrl>("SkyMeshDetail"), getChild<LLTextBox>("SkyMeshDetailText"));
+
+ refreshEnabledState();
+}
+
+void LLFloaterPreference::onCommitWindowedMode()
+{
+ refresh();
+}
+
+void LLFloaterPreference::onChangeQuality(const LLSD& data)
+{
+ U32 level = (U32)(data.asReal());
+ LLFeatureManager::getInstance()->setGraphicsLevel(level, true);
+ refreshEnabledGraphics();
+ refresh();
+}
+
+// static
+// DEV-24146 - needs to be removed at a later date. jan-2009
+void LLFloaterPreference::cleanupBadSetting()
+{
+ if (gSavedPerAccountSettings.getString("BusyModeResponse2") == "|TOKEN COPY BusyModeResponse|")
+ {
+ llwarns << "cleaning old BusyModeResponse" << llendl;
+ gSavedPerAccountSettings.setString("BusyModeResponse2", gSavedPerAccountSettings.getText("BusyModeResponse"));
+ }
+}
+
+void LLFloaterPreference::onClickSetKey()
+{
+ LLVoiceSetKeyDialog* dialog = new LLVoiceSetKeyDialog(this);
+ dialog->startModal();
+}
+
+void LLFloaterPreference::setKey(KEY key)
+{
+ childSetValue("modifier_combo", LLKeyboard::stringFromKey(key));
+}
+
+void LLFloaterPreference::onClickSetMiddleMouse()
+{
+ childSetValue("modifier_combo", "MiddleMouse");
+}
+
+void LLFloaterPreference::onClickSkipDialogs()
+{
+ LLNotifications::instance().add("SkipShowNextTimeDialogs", LLSD(), LLSD(), boost::bind(&callback_skip_dialogs, _1, _2, this));
+}
+
+void LLFloaterPreference::onClickResetDialogs()
+{
+ LLNotifications::instance().add("ResetShowNextTimeDialogs", LLSD(), LLSD(), boost::bind(&callback_reset_dialogs, _1, _2, this));
+}
+
+void LLFloaterPreference::onClickEnablePopup()
+{
+ LLScrollListCtrl& disabled_popups = getChildRef<LLScrollListCtrl>("disabled_popups");
+
+ std::vector<LLScrollListItem*> items = disabled_popups.getAllSelected();
+ std::vector<LLScrollListItem*>::iterator itor;
+ for (itor = items.begin(); itor != items.end(); ++itor)
+ {
+ LLNotificationTemplatePtr templatep = LLNotifications::instance().getTemplate(*(std::string*)((*itor)->getUserdata()));
+ //gSavedSettings.setWarning(templatep->mName, TRUE);
+ std::string notification_name = templatep->mName;
+ LLUI::sSettingGroups["ignores"]->setBOOL(notification_name, TRUE);
+ }
+
+ buildLists(this);
+}
+
+void LLFloaterPreference::resetAllIgnored()
+{
+ for (LLNotifications::TemplateMap::const_iterator iter = LLNotifications::instance().templatesBegin();
+ iter != LLNotifications::instance().templatesEnd();
+ ++iter)
+ {
+ if (iter->second->mForm->getIgnoreType() != LLNotificationForm::IGNORE_NO)
+ {
+ LLUI::sSettingGroups["ignores"]->setBOOL(iter->first, TRUE);
+ }
+ }
+}
+
+void LLFloaterPreference::setAllIgnored()
+{
+ for (LLNotifications::TemplateMap::const_iterator iter = LLNotifications::instance().templatesBegin();
+ iter != LLNotifications::instance().templatesEnd();
+ ++iter)
+ {
+ if (iter->second->mForm->getIgnoreType() != LLNotificationForm::IGNORE_NO)
+ {
+ LLUI::sSettingGroups["ignores"]->setBOOL(iter->first, FALSE);
+ }
+ }
+}
+
+void LLFloaterPreference::onClickLogPath()
+{
+ std::string proposed_name(childGetText("log_path_string"));
+
+ LLDirPicker& picker = LLDirPicker::instance();
+ if (!picker.getDir(&proposed_name ) )
+ {
+ return; //Canceled!
+ }
+
+ childSetText("log_path_string", picker.getDirName());
+}
+
+void LLFloaterPreference::onCommitLogging()
+{
+ enableHistory();
+}
+
+void LLFloaterPreference::enableHistory()
+{
+ if (childGetValue("log_instant_messages").asBoolean() || childGetValue("log_chat").asBoolean())
+ {
+ childEnable("log_show_history");
+ childEnable("log_path_button");
+ }
+ else
+ {
+ childDisable("log_show_history");
+ childDisable("log_path_button");
+ }
+}
+
+void LLFloaterPreference::setPersonalInfo(const std::string& visibility, bool im_via_email, const std::string& email)
+{
+ mGotPersonalInfo = true;
+ mOriginalIMViaEmail = im_via_email;
+ mDirectoryVisibility = visibility;
+
+ if(visibility == VISIBILITY_DEFAULT)
+ {
+ mOriginalHideOnlineStatus = false;
+ childEnable("online_visibility");
+ }
+ else if(visibility == VISIBILITY_HIDDEN)
+ {
+ mOriginalHideOnlineStatus = true;
+ childEnable("online_visibility");
+ }
+ else
+ {
+ mOriginalHideOnlineStatus = true;
+ }
+
+ childEnable("include_im_in_chat_history");
+ childEnable("show_timestamps_check_im");
+ childEnable("friends_online_notify_checkbox");
+
+ childSetValue("online_visibility", mOriginalHideOnlineStatus);
+ childSetLabelArg("online_visibility", "[DIR_VIS]", mDirectoryVisibility);
+ childEnable("send_im_to_email");
+ childSetValue("send_im_to_email", im_via_email);
+ childEnable("log_instant_messages");
+ childEnable("log_chat");
+ childEnable("busy_response");
+ childEnable("log_instant_messages_timestamp");
+ childEnable("log_chat_timestamp");
+ childEnable("log_chat_IM");
+ childEnable("log_date_timestamp");
+
+ childSetText("busy_response", gSavedPerAccountSettings.getString("BusyModeResponse2"));
+
+ enableHistory();
+ std::string display_email(email);
+ childSetText("email_address",display_email);
+
+}
+
+void LLFloaterPreference::onUpdateSliderText(LLUICtrl* ctrl, const LLSD& name)
+{
+ if(name.asString() =="" || !hasChild("name"))
+ return;
+
+ LLTextBox* text_box = getChild<LLTextBox>(name.asString());
+ LLSliderCtrl* slider = dynamic_cast<LLSliderCtrl*>(ctrl);
+ updateSliderText(slider, text_box);
+}
+
+void LLFloaterPreference::updateSliderText(LLSliderCtrl* ctrl, LLTextBox* text_box)
+{
+ if(text_box == NULL || ctrl== NULL)
+ return;
+
+ // get range and points when text should change
+ F32 value = (F32)ctrl->getValue().asReal();
+ F32 min = ctrl->getMinValue();
+ F32 max = ctrl->getMaxValue();
+ F32 range = max - min;
+ llassert(range > 0);
+ F32 midPoint = min + range / 3.0f;
+ F32 highPoint = min + (2.0f * range / 3.0f);
+
+ // choose the right text
+ if(value < midPoint)
+ {
+ text_box->setText(LLTrans::getString("GraphicsQualityLow"));
+ }
+ else if (value < highPoint)
+ {
+ text_box->setText(LLTrans::getString("GraphicsQualityMid"));
+ }
+ else
+ {
+ text_box->setText(LLTrans::getString("GraphicsQualityHigh"));
+ }
+}
+
+void LLFloaterPreference::onKeystrokeAspectRatio()
+{
+ getChild<LLCheckBoxCtrl>("aspect_auto_detect")->set(FALSE);
+}
+void LLFloaterPreference::applyWindowSize()
+{
+ LLComboBox* ctrl_windowSize = getChild<LLComboBox>("windowsize combo");
+ if (ctrl_windowSize->getVisible() && (ctrl_windowSize->getCurrentIndex() != -1))
+ {
+ U32 width = 0;
+ U32 height = 0;
+ if (extractWindowSizeFromString(ctrl_windowSize->getValue().asString().c_str(), width,height))
+ {
+ LLViewerWindow::movieSize(width, height);
+ }
+ }
+}
+
+void LLFloaterPreference::applyResolution()
+{
+ LLComboBox* ctrl_aspect_ratio = getChild<LLComboBox>( "aspect_ratio");
+ gGL.flush();
+ char aspect_ratio_text[ASPECT_RATIO_STR_LEN]; /*Flawfinder: ignore*/
+ if (ctrl_aspect_ratio->getCurrentIndex() == -1)
+ {
+ // *Can't pass const char* from c_str() into strtok
+ strncpy(aspect_ratio_text, ctrl_aspect_ratio->getSimple().c_str(), sizeof(aspect_ratio_text) -1); /*Flawfinder: ignore*/
+ aspect_ratio_text[sizeof(aspect_ratio_text) -1] = '\0';
+ char *element = strtok(aspect_ratio_text, ":/\\");
+ if (!element)
+ {
+ sAspectRatio = 0.f; // will be clamped later
+ }
+ else
+ {
+ LLLocale locale(LLLocale::USER_LOCALE);
+ sAspectRatio = (F32)atof(element);
+ }
+
+ // look for denominator
+ element = strtok(NULL, ":/\\");
+ if (element)
+ {
+ LLLocale locale(LLLocale::USER_LOCALE);
+
+ F32 denominator = (F32)atof(element);
+ if (denominator != 0.f)
+ {
+ sAspectRatio /= denominator;
+ }
+ }
+ }
+ else
+ {
+ sAspectRatio = (F32)ctrl_aspect_ratio->getValue().asReal();
+ }
+
+ // presumably, user entered a non-numeric value if aspect_ratio == 0.f
+ if (sAspectRatio != 0.f)
+ {
+ sAspectRatio = llclamp(sAspectRatio, 0.2f, 5.f);
+ gSavedSettings.setF32("FullScreenAspectRatio", sAspectRatio);
+ }
+
+ // Screen resolution
+ S32 num_resolutions;
+ LLWindow::LLWindowResolution* supported_resolutions =
+ gViewerWindow->getWindow()->getSupportedResolutions(num_resolutions);
+ U32 resIndex = getChild<LLComboBox>("fullscreen combo")->getCurrentIndex();
+ gSavedSettings.setS32("FullScreenWidth", supported_resolutions[resIndex].mWidth);
+ gSavedSettings.setS32("FullScreenHeight", supported_resolutions[resIndex].mHeight);
+
+ gViewerWindow->requestResolutionUpdate(!gSavedSettings.getBOOL("NotFullScreen"));
+
+ send_agent_update(TRUE);
+
+ // Update enable/disable
+ refresh();
+}
+
+void LLFloaterPreference::initWindowSizeControls(LLPanel* panelp)
+{
+ // Window size
+ // mWindowSizeLabel = getChild<LLTextBox>("WindowSizeLabel");
+ LLComboBox* ctrl_window_size = panelp->getChild<LLComboBox>("windowsize combo");
+
+ // Look to see if current window size matches existing window sizes, if so then
+ // just set the selection value...
+ const U32 height = gViewerWindow->getWindowDisplayHeight();
+ const U32 width = gViewerWindow->getWindowDisplayWidth();
+ for (S32 i=0; i < ctrl_window_size->getItemCount(); i++)
+ {
+ U32 height_test = 0;
+ U32 width_test = 0;
+ ctrl_window_size->setCurrentByIndex(i);
+ if (extractWindowSizeFromString(ctrl_window_size->getValue().asString(), width_test, height_test))
+ {
+ if ((height_test == height) && (width_test == width))
+ {
+ return;
+ }
+ }
+ }
+ // ...otherwise, add a new entry with the current window height/width.
+ LLUIString resolution_label = panelp->getString("resolution_format");
+ resolution_label.setArg("[RES_X]", llformat("%d", width));
+ resolution_label.setArg("[RES_Y]", llformat("%d", height));
+ ctrl_window_size->add(resolution_label, ADD_TOP);
+ ctrl_window_size->setCurrentByIndex(0);
+}
+
+
+
+//----------------------------------------------------------------------------
+static LLRegisterPanelClassWrapper<LLPanelPreference> t_places("panel_preference");
+LLPanelPreference::LLPanelPreference()
+: LLPanel()
+{
+ //
+ mCommitCallbackRegistrar.add("setControlFalse", boost::bind(&LLPanelPreference::setControlFalse,this, _2));
+}
//virtual
BOOL LLPanelPreference::postBuild()
{
+ if (hasChild("maturity_desired_combobox"))
+ {
+ /////////////////////////// From LLPanelGeneral //////////////////////////
+ // if we have no agent, we can't let them choose anything
+ // if we have an agent, then we only let them choose if they have a choice
+ bool canChoose = gAgent.getID().notNull() &&
+ (gAgent.isMature() || gAgent.isGodlike());
+
+ if (canChoose)
+ {
+
+ // if they're not adult or a god, they shouldn't see the adult selection, so delete it
+ if (!gAgent.isAdult() && !gAgent.isGodlike())
+ {
+ LLComboBox* pMaturityCombo = getChild<LLComboBox>("maturity_desired_combobox");
+ // we're going to remove the adult entry from the combo. This obviously depends
+ // on the order of items in the XML file, but there doesn't seem to be a reasonable
+ // way to depend on the field in XML called 'name'.
+ pMaturityCombo->remove(0);
+ }
+ childSetVisible("maturity_desired_combobox", true);
+ childSetVisible("maturity_desired_textbox", false);
+ }
+ else
+ {
+ childSetVisible("maturity_desired_combobox", false);
+ std::string selectedItemLabel = getChild<LLComboBox>("maturity_desired_combobox")->getSelectedItemLabel();
+ childSetValue("maturity_desired_textbox", selectedItemLabel);
+ childSetVisible("maturity_desired_textbox", true);
+ }
+ }
+ ////////////////////// PanelVoice ///////////////////
+ if(hasChild("voice_unavailable"))
+ {
+ BOOL voice_disabled = gSavedSettings.getBOOL("CmdLineDisableVoice");
+ childSetVisible("voice_unavailable", voice_disabled);
+ childSetVisible("enable_voice_check", !voice_disabled);
+ }
+
+ //////////////////////PanelSkins ///////////////////
+
+ if (hasChild("skin_selection"))
+ {
+ LLFloaterPreference::refreshSkin(this);
+
+ // if skin is set to a skin that no longer exists (silver) set back to default
+ if (getChild<LLRadioGroup>("skin_selection")->getSelectedIndex() < 0)
+ {
+ gSavedSettings.setString("SkinCurrent", "default");
+ LLFloaterPreference::refreshSkin(this);
+ }
+
+ }
+ ////////////////////////Panel Popups/////////////////
+ if(hasChild("disabled_popups") && hasChild("enabled_popups"))
+ {
+ LLFloaterPreference::buildLists(this);
+ }
+ //////
+ if(hasChild("online_visibility") && hasChild("send_im_to_email"))
+ {
+ requires("online_visibility");
+ requires("send_im_to_email");
+ if (!checkRequirements())
+ {
+ return FALSE;
+ }
+ childSetText("email_address",getString("log_in_to_change") );
+ childSetText("busy_response", getString("log_in_to_change"));
+
+ }
+
+
+ if(hasChild("fullscreen combo"))
+ {
+ //============================================================================
+ // Resolution
+
+ S32 num_resolutions = 0;
+ LLWindow::LLWindowResolution* supported_resolutions = gViewerWindow->getWindow()->getSupportedResolutions(num_resolutions);
+
+ S32 fullscreen_mode = num_resolutions - 1;
+
+ LLComboBox*ctrl_full_screen = getChild<LLComboBox>( "fullscreen combo");
+ LLUIString resolution_label = getString("resolution_format");
+
+ for (S32 i = 0; i < num_resolutions; i++)
+ {
+ resolution_label.setArg("[RES_X]", llformat("%d", supported_resolutions[i].mWidth));
+ resolution_label.setArg("[RES_Y]", llformat("%d", supported_resolutions[i].mHeight));
+ ctrl_full_screen->add( resolution_label, ADD_BOTTOM );
+ }
+
+ {
+ BOOL targetFullscreen;
+ S32 targetWidth;
+ S32 targetHeight;
+
+ gViewerWindow->getTargetWindow(targetFullscreen, targetWidth, targetHeight);
+
+ if (targetFullscreen)
+ {
+ fullscreen_mode = 0; // default to 800x600
+ for (S32 i = 0; i < num_resolutions; i++)
+ {
+ if (targetWidth == supported_resolutions[i].mWidth
+ && targetHeight == supported_resolutions[i].mHeight)
+ {
+ fullscreen_mode = i;
+ }
+ }
+ ctrl_full_screen->setCurrentByIndex(fullscreen_mode);
+ }
+ else
+ {
+ // set to windowed mode
+ //fullscreen_mode = mCtrlFullScreen->getItemCount() - 1;
+ ctrl_full_screen->setCurrentByIndex(0);
+ }
+ }
+
+ LLFloaterPreference::initWindowSizeControls(this);
+
+ if (gSavedSettings.getBOOL("FullScreenAutoDetectAspectRatio"))
+ {
+ LLFloaterPreference::sAspectRatio = gViewerWindow->getDisplayAspectRatio();
+ }
+ else
+ {
+ LLFloaterPreference::sAspectRatio = gSavedSettings.getF32("FullScreenAspectRatio");
+ }
+
+ getChild<LLComboBox>("aspect_ratio")->setTextEntryCallback(boost::bind(&LLPanelPreference::setControlFalse, this, LLSD("FullScreenAutoDetectAspectRatio") ));
+
+
+ S32 numerator = 0;
+ S32 denominator = 0;
+ fractionFromDecimal(LLFloaterPreference::sAspectRatio, numerator, denominator);
+
+ LLUIString aspect_ratio_text = getString("aspect_ratio_text");
+ if (numerator != 0)
+ {
+ aspect_ratio_text.setArg("[NUM]", llformat("%d", numerator));
+ aspect_ratio_text.setArg("[DEN]", llformat("%d", denominator));
+ }
+ else
+ {
+ aspect_ratio_text = llformat("%.3f", LLFloaterPreference::sAspectRatio);
+ }
+
+ LLComboBox* ctrl_aspect_ratio = getChild<LLComboBox>( "aspect_ratio");
+ //mCtrlAspectRatio->setCommitCallback(onSelectAspectRatio, this);
+ // add default aspect ratios
+ ctrl_aspect_ratio->add(aspect_ratio_text, &LLFloaterPreference::sAspectRatio, ADD_TOP);
+ ctrl_aspect_ratio->setCurrentByIndex(0);
+
+ refresh();
+ }
+
apply();
return true;
}
@@ -326,7 +1492,7 @@ void LLPanelPreference::apply()
view_stack.push_back(*iter);
}
}
-
+
}
void LLPanelPreference::cancel()
@@ -339,3 +1505,13 @@ void LLPanelPreference::cancel()
control->set(ctrl_value);
}
}
+
+void LLPanelPreference::setControlFalse(const LLSD& user_data)
+{
+ std::string control_name = user_data.asString();
+ LLControlVariable* control = findControl(control_name);
+
+ if (control)
+ control->set(LLSD(FALSE));
+}
+
diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h
index 8144b9b8f1..afff610c69 100644
--- a/indra/newview/llfloaterpreference.h
+++ b/indra/newview/llfloaterpreference.h
@@ -41,23 +41,24 @@
#include "llfloater.h"
-class LLPanelGeneral;
-class LLPanelInput;
+class LLPanelPreference;
class LLPanelLCD;
-class LLPanelDisplay;
-class LLPanelAudioPrefs;
class LLPanelDebug;
-class LLPanelNetwork;
-class LLPanelWeb;
class LLMessageSystem;
-class LLPrefsChat;
-class LLPrefsVoice;
-class LLPrefsIM;
-class LLPanelMsgs;
-class LLPanelSkins;
class LLScrollListCtrl;
-
+class LLSliderCtrl;
class LLSD;
+class LLTextBox;
+
+typedef enum
+ {
+ GS_LOW_GRAPHICS,
+ GS_MID_GRAPHICS,
+ GS_HIGH_GRAPHICS,
+ GS_ULTRA_GRAPHICS
+
+ } EGraphicsSettings;
+
// Floater to control preferences (display, audio, bandwidth, general.
class LLFloaterPreference : public LLFloater
@@ -68,6 +69,7 @@ public:
void apply();
void cancel();
+ /*virtual*/ void draw();
virtual BOOL postBuild();
virtual void onOpen(const LLSD& key);
virtual void onClose(bool app_quitting);
@@ -79,32 +81,85 @@ public:
static void refreshEnabledGraphics();
protected:
- static void onClickAbout(void*);
- static void onBtnOK(void*);
- static void onBtnCancel(void*);
- static void onBtnApply(void*);
+ void onBtnOK();
+ void onBtnCancel();
+ void onBtnApply();
+ void onOpenHelp();
+
+ static void onClickClearCache(void*);
+ static void onClickBrowserClearCache(void*);
+
+ // if the custom settings box is clicked
+ void onChangeCustom();
+ void updateMeterText(LLUICtrl* ctrl);
+ void onOpenHardwareSettings();
+ /// callback for defaults
+ void setHardwareDefaults();
+ // callback for when client turns on shaders
+ void onVertexShaderEnable();
+
+
+public:
+
+ void onClickSetCache();
+ void onClickResetCache();
+ void onClickSkin(LLUICtrl* ctrl,const LLSD& userdata);
+ void onSelectSkin();
+ void onClickSetKey();
+ void setKey(KEY key);
+ void onClickSetMiddleMouse();
+ void onClickSkipDialogs();
+ void onClickResetDialogs();
+ void onClickEnablePopup();
+ void resetAllIgnored();
+ void setAllIgnored();
+ void onClickLogPath();
+ void enableHistory();
+ void onCommitLogging();
+ void setPersonalInfo(const std::string& visibility, bool im_via_email, const std::string& email);
+ void refreshEnabledState();
+ void disableUnavailableSettings();
+ void onCommitWindowedMode();
+ void refresh(); // Refresh enable/disable
+ // if the quality radio buttons are changed
+ void onChangeQuality(const LLSD& data);
+
+ void updateSliderText(LLSliderCtrl* ctrl, LLTextBox* text_box);
+ void onUpdateSliderText(LLUICtrl* ctrl, const LLSD& name);
+ void onKeystrokeAspectRatio();
+// void fractionFromDecimal(F32 decimal_val, S32& numerator, S32& denominator);
+// bool extractWindowSizeFromString(const std::string& instr, U32 &width, U32 &height);
+
+ void onCommitAutoDetectAspect();
+ void applyResolution();
+ void applyWindowSize();
+
+ static void initWindowSizeControls(LLPanel* panelp);
+
+ static void buildLists(void* data);
+ static void refreshSkin(void* data);
+ static void cleanupBadSetting();
+ static F32 sAspectRatio;
private:
- LLPanelSkins *mSkinsPanel;
- LLPanelInput *mInputPanel;
- LLPanelNetwork *mNetworkPanel;
- LLPanelDisplay *mDisplayPanel;
- LLPanelAudioPrefs *mAudioPanel;
- LLPrefsChat *mPrefsChat;
- LLPrefsVoice *mPrefsVoice;
- LLPrefsIM *mPrefsIM;
- LLPanelWeb *mWebPanel;
- LLPanelMsgs *mMsgPanel;
+ static std::string sSkin;
+ bool mGotPersonalInfo;
+ bool mOriginalIMViaEmail;
+
+ bool mOriginalHideOnlineStatus;
+ std::string mDirectoryVisibility;
+
};
class LLPanelPreference : public LLPanel
{
public:
+ LLPanelPreference();
/*virtual*/ BOOL postBuild();
virtual void apply();
virtual void cancel();
-
+ void setControlFalse(const LLSD& user_data);
private:
typedef std::map<LLControlVariable*, LLSD> control_values_map_t;
control_values_map_t mSavedValues;
diff --git a/indra/newview/llfloaterproperties.cpp b/indra/newview/llfloaterproperties.cpp
index e94967eba8..5a8afc2277 100644
--- a/indra/newview/llfloaterproperties.cpp
+++ b/indra/newview/llfloaterproperties.cpp
@@ -43,8 +43,8 @@
#include "llagent.h"
#include "llbutton.h"
#include "llcheckboxctrl.h"
-#include "llfloateravatarinfo.h"
#include "llfloatergroupinfo.h"
+#include "llfriendactions.h"
#include "llinventorymodel.h"
#include "lllineeditor.h"
#include "llradiogroup.h"
@@ -605,7 +605,7 @@ void LLFloaterProperties::onClickCreator(void* data)
if(!item) return;
if(!item->getCreatorUUID().isNull())
{
- LLFloaterAvatarInfo::showFromObject(item->getCreatorUUID());
+ LLFriendActions::showProfile(item->getCreatorUUID());
}
}
@@ -622,10 +622,7 @@ void LLFloaterProperties::onClickOwner(void* data)
}
else
{
- if(!item->getPermissions().getOwner().isNull())
- {
- LLFloaterAvatarInfo::showFromObject(item->getPermissions().getOwner());
- }
+ LLFriendActions::showProfile(item->getPermissions().getOwner());
}
}
diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp
index 504760175b..57a3bf9445 100644
--- a/indra/newview/llfloaterregioninfo.cpp
+++ b/indra/newview/llfloaterregioninfo.cpp
@@ -74,6 +74,7 @@
#include "lltrans.h"
#include "llviewercontrol.h"
#include "lluictrlfactory.h"
+#include "llviewerinventory.h"
#include "llviewerimage.h"
#include "llviewerimagelist.h"
#include "llviewerregion.h"
diff --git a/indra/newview/llfloaterreporter.cpp b/indra/newview/llfloaterreporter.cpp
index 8ddc929019..4b175cdc27 100644
--- a/indra/newview/llfloaterreporter.cpp
+++ b/indra/newview/llfloaterreporter.cpp
@@ -188,7 +188,7 @@ BOOL LLFloaterReporter::postBuild()
LLLineEditor* le = getChild<LLLineEditor>("abuser_name_edit");
le->setEnabled( FALSE );
- setPosBox(mPosition.getValue());
+ setPosBox((LLVector3d)mPosition.getValue());
LLButton* pick_btn = getChild<LLButton>("pick_btn");
pick_btn->setImages(std::string("tool_face.tga"),
std::string("tool_face_active.tga") );
diff --git a/indra/newview/llfloatersettingsdebug.cpp b/indra/newview/llfloatersettingsdebug.cpp
index 9b591496f7..8b6102c67f 100644
--- a/indra/newview/llfloatersettingsdebug.cpp
+++ b/indra/newview/llfloatersettingsdebug.cpp
@@ -42,9 +42,13 @@
LLFloaterSettingsDebug::LLFloaterSettingsDebug(const LLSD& key)
-: LLFloater()
+: LLFloater(key)
{
- LLUICtrlFactory::getInstance()->buildFloater(this, "floater_settings_debug.xml");
+ //LLUICtrlFactory::getInstance()->buildFloater(this, "floater_settings_debug.xml");
+ mCommitCallbackRegistrar.add("SettingSelect", boost::bind(&LLFloaterSettingsDebug::onSettingSelect, this,_1));
+ mCommitCallbackRegistrar.add("CommitSettings", boost::bind(&LLFloaterSettingsDebug::onCommitSettings, this));
+ mCommitCallbackRegistrar.add("ClickDefault", boost::bind(&LLFloaterSettingsDebug::onClickDefault, this));
+
}
LLFloaterSettingsDebug::~LLFloaterSettingsDebug()
@@ -67,22 +71,22 @@ BOOL LLFloaterSettingsDebug::postBuild()
}
} func(settings_combo);
- gSavedSettings.applyToAll(&func);
- gSavedPerAccountSettings.applyToAll(&func);
- gSavedSkinSettings.applyToAll(&func);
+ std::string key = getKey().asString();
+ if (key == "all" || key == "base")
+ {
+ gSavedSettings.applyToAll(&func);
+ }
+ if (key == "all" || key == "account")
+ {
+ gSavedPerAccountSettings.applyToAll(&func);
+ }
+ if (key == "all" || key == "skin")
+ {
+ gSavedSkinSettings.applyToAll(&func);
+ }
settings_combo->sortByName();
- settings_combo->setCommitCallback(onSettingSelect, this);
settings_combo->updateSelection();
-
- childSetCommitCallback("val_spinner_1", onCommitSettings, this);
- childSetCommitCallback("val_spinner_2", onCommitSettings, this);
- childSetCommitCallback("val_spinner_3", onCommitSettings, this);
- childSetCommitCallback("val_spinner_4", onCommitSettings, this);
- childSetCommitCallback("val_text", onCommitSettings, this);
- childSetCommitCallback("boolean_combo", onCommitSettings, this);
- childSetCommitCallback("color_swatch", onCommitSettings, this);
- childSetAction("default_btn", onClickDefault, this);
mComment = getChild<LLTextEditor>("comment_text");
return TRUE;
}
@@ -97,21 +101,17 @@ void LLFloaterSettingsDebug::draw()
}
//static
-void LLFloaterSettingsDebug::onSettingSelect(LLUICtrl* ctrl, void* user_data)
+void LLFloaterSettingsDebug::onSettingSelect(LLUICtrl* ctrl)
{
- LLFloaterSettingsDebug* floaterp = (LLFloaterSettingsDebug*)user_data;
LLComboBox* combo_box = (LLComboBox*)ctrl;
LLControlVariable* controlp = (LLControlVariable*)combo_box->getCurrentUserdata();
- floaterp->updateControl(controlp);
+ updateControl(controlp);
}
-//static
-void LLFloaterSettingsDebug::onCommitSettings(LLUICtrl* ctrl, void* user_data)
+void LLFloaterSettingsDebug::onCommitSettings()
{
- LLFloaterSettingsDebug* floaterp = (LLFloaterSettingsDebug*)user_data;
-
- LLComboBox* settings_combo = floaterp->getChild<LLComboBox>("settings_combo");
+ LLComboBox* settings_combo = getChild<LLComboBox>("settings_combo");
LLControlVariable* controlp = (LLControlVariable*)settings_combo->getCurrentUserdata();
LLVector3 vector;
@@ -125,46 +125,46 @@ void LLFloaterSettingsDebug::onCommitSettings(LLUICtrl* ctrl, void* user_data)
switch(controlp->type())
{
case TYPE_U32:
- controlp->set(floaterp->childGetValue("val_spinner_1"));
+ controlp->set(childGetValue("val_spinner_1"));
break;
case TYPE_S32:
- controlp->set(floaterp->childGetValue("val_spinner_1"));
+ controlp->set(childGetValue("val_spinner_1"));
break;
case TYPE_F32:
- controlp->set(LLSD(floaterp->childGetValue("val_spinner_1").asReal()));
+ controlp->set(LLSD(childGetValue("val_spinner_1").asReal()));
break;
case TYPE_BOOLEAN:
- controlp->set(floaterp->childGetValue("boolean_combo"));
+ controlp->set(childGetValue("boolean_combo"));
break;
case TYPE_STRING:
- controlp->set(LLSD(floaterp->childGetValue("val_text").asString()));
+ controlp->set(LLSD(childGetValue("val_text").asString()));
break;
case TYPE_VEC3:
- vector.mV[VX] = (F32)floaterp->childGetValue("val_spinner_1").asReal();
- vector.mV[VY] = (F32)floaterp->childGetValue("val_spinner_2").asReal();
- vector.mV[VZ] = (F32)floaterp->childGetValue("val_spinner_3").asReal();
+ vector.mV[VX] = (F32)childGetValue("val_spinner_1").asReal();
+ vector.mV[VY] = (F32)childGetValue("val_spinner_2").asReal();
+ vector.mV[VZ] = (F32)childGetValue("val_spinner_3").asReal();
controlp->set(vector.getValue());
break;
case TYPE_VEC3D:
- vectord.mdV[VX] = floaterp->childGetValue("val_spinner_1").asReal();
- vectord.mdV[VY] = floaterp->childGetValue("val_spinner_2").asReal();
- vectord.mdV[VZ] = floaterp->childGetValue("val_spinner_3").asReal();
+ vectord.mdV[VX] = childGetValue("val_spinner_1").asReal();
+ vectord.mdV[VY] = childGetValue("val_spinner_2").asReal();
+ vectord.mdV[VZ] = childGetValue("val_spinner_3").asReal();
controlp->set(vectord.getValue());
break;
case TYPE_RECT:
- rect.mLeft = floaterp->childGetValue("val_spinner_1").asInteger();
- rect.mRight = floaterp->childGetValue("val_spinner_2").asInteger();
- rect.mBottom = floaterp->childGetValue("val_spinner_3").asInteger();
- rect.mTop = floaterp->childGetValue("val_spinner_4").asInteger();
+ rect.mLeft = childGetValue("val_spinner_1").asInteger();
+ rect.mRight = childGetValue("val_spinner_2").asInteger();
+ rect.mBottom = childGetValue("val_spinner_3").asInteger();
+ rect.mTop = childGetValue("val_spinner_4").asInteger();
controlp->set(rect.getValue());
break;
case TYPE_COL4:
- col3.setValue(floaterp->childGetValue("color_swatch"));
- col4 = LLColor4(col3, (F32)floaterp->childGetValue("val_spinner_4").asReal());
+ col3.setValue(childGetValue("val_color_swatch"));
+ col4 = LLColor4(col3, (F32)childGetValue("val_spinner_4").asReal());
controlp->set(col4.getValue());
break;
case TYPE_COL3:
- controlp->set(floaterp->childGetValue("color_swatch"));
+ controlp->set(childGetValue("val_color_swatch"));
//col3.mV[VRED] = (F32)floaterp->childGetValue("val_spinner_1").asC();
//col3.mV[VGREEN] = (F32)floaterp->childGetValue("val_spinner_2").asReal();
//col3.mV[VBLUE] = (F32)floaterp->childGetValue("val_spinner_3").asReal();
@@ -176,16 +176,15 @@ void LLFloaterSettingsDebug::onCommitSettings(LLUICtrl* ctrl, void* user_data)
}
// static
-void LLFloaterSettingsDebug::onClickDefault(void* user_data)
+void LLFloaterSettingsDebug::onClickDefault()
{
- LLFloaterSettingsDebug* floaterp = (LLFloaterSettingsDebug*)user_data;
- LLComboBox* settings_combo = floaterp->getChild<LLComboBox>("settings_combo");
+ LLComboBox* settings_combo = getChild<LLComboBox>("settings_combo");
LLControlVariable* controlp = (LLControlVariable*)settings_combo->getCurrentUserdata();
if (controlp)
{
controlp->resetToDefault();
- floaterp->updateControl(controlp);
+ updateControl(controlp);
}
}
@@ -196,7 +195,7 @@ void LLFloaterSettingsDebug::updateControl(LLControlVariable* controlp)
LLSpinCtrl* spinner2 = getChild<LLSpinCtrl>("val_spinner_2");
LLSpinCtrl* spinner3 = getChild<LLSpinCtrl>("val_spinner_3");
LLSpinCtrl* spinner4 = getChild<LLSpinCtrl>("val_spinner_4");
- LLColorSwatchCtrl* color_swatch = getChild<LLColorSwatchCtrl>("color_swatch");
+ LLColorSwatchCtrl* color_swatch = getChild<LLColorSwatchCtrl>("val_color_swatch");
if (!spinner1 || !spinner2 || !spinner3 || !spinner4 || !color_swatch)
{
diff --git a/indra/newview/llfloatersettingsdebug.h b/indra/newview/llfloatersettingsdebug.h
index 1190e8038f..87833793af 100644
--- a/indra/newview/llfloatersettingsdebug.h
+++ b/indra/newview/llfloatersettingsdebug.h
@@ -42,6 +42,8 @@ class LLFloaterSettingsDebug
public LLFloaterSingleton<LLFloaterSettingsDebug>
{
public:
+ // key - selects which settings to show, one of:
+ // "all", "base", "account", "skin"
LLFloaterSettingsDebug(const LLSD& key);
virtual ~LLFloaterSettingsDebug();
@@ -50,9 +52,9 @@ public:
void updateControl(LLControlVariable* control);
- static void onSettingSelect(LLUICtrl* ctrl, void* user_data);
- static void onCommitSettings(LLUICtrl* ctrl, void* user_data);
- static void onClickDefault(void* user_data);
+ void onSettingSelect(LLUICtrl* ctrl);
+ void onCommitSettings();
+ void onClickDefault();
protected:
LLTextEditor* mComment;
diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp
index 74b7ee1106..cb4f2a6711 100644
--- a/indra/newview/llfloatersnapshot.cpp
+++ b/indra/newview/llfloatersnapshot.cpp
@@ -249,7 +249,7 @@ LLSnapshotLivePreview::LLSnapshotLivePreview (const LLSnapshotLivePreview::Param
mImageScaled[0] = FALSE;
mImageScaled[1] = FALSE;
- mMaxImageSize = MAX_IMAGE_SIZE ;
+ mMaxImageSize = MAX_SNAPSHOT_IMAGE_SIZE ;
mKeepAspectRatio = gSavedSettings.getBOOL("KeepAspectForSnapshot") ;
mThumbnailUpdateLock = FALSE ;
mThumbnailUpToDate = FALSE ;
@@ -268,13 +268,13 @@ LLSnapshotLivePreview::~LLSnapshotLivePreview()
void LLSnapshotLivePreview::setMaxImageSize(S32 size)
{
- if(size < MAX_IMAGE_SIZE)
+ if(size < MAX_SNAPSHOT_IMAGE_SIZE)
{
mMaxImageSize = size;
}
else
{
- mMaxImageSize = MAX_IMAGE_SIZE ;
+ mMaxImageSize = MAX_SNAPSHOT_IMAGE_SIZE ;
}
}
@@ -968,7 +968,7 @@ void LLSnapshotLivePreview::saveTexture()
{
LLVFile::writeFile(formatted->getData(), formatted->getDataSize(), gVFS, new_asset_id, LLAssetType::AT_TEXTURE);
std::string pos_string;
- gAgent.buildLocationString(pos_string);
+ gAgent.buildLocationString(pos_string, LLAgent::LOCATION_FORMAT_FULL);
std::string who_took_it;
gAgent.buildFullname(who_took_it);
LLAssetStorage::LLStoreAssetCallback callback = NULL;
diff --git a/indra/newview/llfloatertools.cpp b/indra/newview/llfloatertools.cpp
index 62a8c0d27e..4bcf470317 100644
--- a/indra/newview/llfloatertools.cpp
+++ b/indra/newview/llfloatertools.cpp
@@ -45,6 +45,7 @@
#include "lldraghandle.h"
#include "llfloaterbuildoptions.h"
#include "llfloateropenobject.h"
+#include "llfloaterreg.h"
#include "llfocusmgr.h"
#include "llmenugl.h"
#include "llpanelcontents.h"
@@ -952,7 +953,7 @@ void LLFloaterTools::setObjectType( LLPCode pcode )
void LLFloaterTools::onClickGridOptions(void* data)
{
//LLFloaterTools* floaterp = (LLFloaterTools*)data;
- LLFloaterBuildOptions::showInstance();
+ LLFloaterReg::showInstance("build_options");
// RN: this makes grid options dependent on build tools window
//floaterp->addDependentFloater(LLFloaterBuildOptions::getInstance(), FALSE);
}
diff --git a/indra/newview/llfloateruipreview.cpp b/indra/newview/llfloateruipreview.cpp
index ec8eb2e2cf..34db895b52 100644
--- a/indra/newview/llfloateruipreview.cpp
+++ b/indra/newview/llfloateruipreview.cpp
@@ -56,6 +56,7 @@
#include "llfilepicker.h"
#include "lldraghandle.h"
#include "lllayoutstack.h"
+#include "llviewermenu.h"
// Boost (for linux/unix command-line execv)
#include <boost/tokenizer.hpp>
@@ -120,7 +121,7 @@ LLGUIPreviewLiveFile::~LLGUIPreviewLiveFile()
}
// Live file load
-void LLGUIPreviewLiveFile::loadFile()
+bool LLGUIPreviewLiveFile::loadFile()
{
mParent->displayFloater(FALSE,1); // redisplay the floater
if(mFirstFade) // only fade if it wasn't just clicked on; can't use "clicked" BOOL below because of an oddity with setting LLLiveFile initial state
@@ -135,6 +136,7 @@ void LLGUIPreviewLiveFile::loadFile()
}
mFadeTimer = new LLFadeEventTimer(0.05f,this);
}
+ return true;
}
// Initialize fade event timer
@@ -191,7 +193,7 @@ void* create_overlap_panel(void* data)
// Constructor
LLFloaterUIPreview::LLFloaterUIPreview(const LLSD& key)
- : LLFloater(),
+ : LLFloater(key),
mDisplayedFloater(NULL),
mDisplayedFloater_2(NULL),
mLiveFile(NULL),
@@ -203,7 +205,7 @@ LLFloaterUIPreview::LLFloaterUIPreview(const LLSD& key)
{
sInstance = this;
mFactoryMap["overlap_panel"] = LLCallbackMap(create_overlap_panel, NULL);
- LLUICtrlFactory::getInstance()->buildFloater(this, "floater_ui_preview.xml");
+ // called from floater reg: LLUICtrlFactory::getInstance()->buildFloater(this, "floater_ui_preview.xml");
}
// Destructor
@@ -260,6 +262,7 @@ BOOL LLFloaterUIPreview::postBuild()
mToggleHighlightButton = vlt_panel_tmp->getChild<LLButton>("toggle_vlt_diff_highlight");
mToggleHighlightButton->setClickedCallback(onClickToggleDiffHighlighting, NULL);
main_panel_tmp->getChild<LLButton>("save_floater")->setClickedCallback(onClickSaveFloater, (void*)&PRIMARY_FLOATER);
+ main_panel_tmp->getChild<LLButton>("save_all_floaters")->setClickedCallback(onClickSaveAll, (void*)&PRIMARY_FLOATER);
// get pointers to text fields
mEditorPathTextBox = editor_panel_tmp->getChild<LLLineEditor>("executable_path_field");
@@ -278,7 +281,7 @@ BOOL LLFloaterUIPreview::postBuild()
mDelim = gDirUtilp->getDirDelimiter(); // initialize delimiter to dir sep slash
- // refresh list of available languages (EN-US will still be default)
+ // refresh list of available languages (EN will still be default)
BOOL found = TRUE;
BOOL found_en_us = FALSE;
std::string language_directory;
@@ -296,7 +299,7 @@ BOOL LLFloaterUIPreview::postBuild()
if(strncmp("template",language_directory.c_str(),8) && -1 == language_directory.find(".")) // if it's not the template directory or a hidden directory
{
- if(!strncmp("en-us",language_directory.c_str(),5)) // remember if we've seen en-us, so we can make it default
+ if(!strncmp("en",language_directory.c_str(),5)) // remember if we've seen en, so we can make it default
{
found_en_us = TRUE;
}
@@ -310,12 +313,12 @@ BOOL LLFloaterUIPreview::postBuild()
}
if(found_en_us)
{
- mLanguageSelection->add(std::string("en-us"),ADD_TOP); // make en-us first item if we found it
- mLanguageSelection_2->add(std::string("en-us"),ADD_TOP);
+ mLanguageSelection->add(std::string("en"),ADD_TOP); // make en first item if we found it
+ mLanguageSelection_2->add(std::string("en"),ADD_TOP);
}
else
{
- std::string warning = std::string("No EN-US localization found; check your XUI directories!");
+ std::string warning = std::string("No EN localization found; check your XUI directories!");
popupAndPrintWarning(warning);
}
mLanguageSelection->selectFirstItem(); // select the first item
@@ -390,7 +393,7 @@ std::string LLFloaterUIPreview::getLocStr(S32 ID)
// Get localized directory (build path from data directory to XUI files, substituting localization string in for language)
std::string LLFloaterUIPreview::getLocalizedDirectory()
{
- return get_xui_dir() + (sInstance ? getLocStr(1) : "en-us") + mDelim; // e.g. "C:/Code/guipreview/indra/newview/skins/xui/en-us/";
+ return get_xui_dir() + (sInstance ? getLocStr(1) : "en") + mDelim; // e.g. "C:/Code/guipreview/indra/newview/skins/xui/en/";
}
// Refresh the list of floaters by doing a directory traverse for XML XUI floater files
@@ -409,6 +412,14 @@ void LLFloaterUIPreview::refreshList()
}
}
found = TRUE;
+ while(found) // for every menu file that matches the pattern
+ {
+ if((found = gDirUtilp->getNextFileInDir(getLocalizedDirectory(), "menu_*.xml", name, FALSE))) // get next file matching pattern
+ {
+ addFloaterEntry(name.c_str()); // and add it to the list (file name only; localization code takes care of rest of path)
+ }
+ }
+ found = TRUE;
while(found) // for every panel file that matches the pattern
{
if((found = gDirUtilp->getNextFileInDir(getLocalizedDirectory(), "panel_*.xml", name, FALSE))) // get next file matching pattern
@@ -504,7 +515,7 @@ void LLFloaterUIPreview::onClickDisplayFloater(void* data)
}
}
-// Respond to button click to display/refresh currently-selected floater
+// Saves the current floater/panel
void LLFloaterUIPreview::onClickSaveFloater(void* data)
{
S32 caller_id = *((S32*)data);
@@ -515,12 +526,24 @@ void LLFloaterUIPreview::onClickSaveFloater(void* data)
}
}
+// Saves all floater/panels
+void LLFloaterUIPreview::onClickSaveAll(void* data)
+{
+ S32 caller_id = *((S32*)data);
+ int listSize = sInstance->mFileList->getItemCount();
+
+ for (int index = 0; index < listSize; index++)
+ {
+ sInstance->mFileList->selectNthItem(index);
+ displayFloater(TRUE, caller_id, true);
+ }
+}
// Given path to floater or panel XML file "filename.xml",
// returns "filename_new.xml"
static std::string append_new_to_xml_filename(const std::string& path)
{
- std::string full_filename = gDirUtilp->findSkinnedFilename(LLUI::getSkinPath(), path);
+ std::string full_filename = gDirUtilp->findSkinnedFilename(LLUI::getLocalizedSkinPath(), path);
std::string::size_type extension_pos = full_filename.rfind(".xml");
full_filename.resize(extension_pos);
full_filename += "_new.xml";
@@ -564,18 +587,21 @@ void LLFloaterUIPreview::displayFloater(BOOL click, S32 ID, bool save)
*floaterp = new LLPreviewedFloater();
- if(strncmp(path.c_str(),"panel_",6)) // if it's not a panel
+ if(!strncmp(path.c_str(),"floater_",8)) // if it's a floater
{
if (save)
{
LLXMLNodePtr floater_write = new LLXMLNode();
LLUICtrlFactory::getInstance()->buildFloater(*floaterp, path, FALSE, floater_write); // just build it
-
- std::string full_filename = append_new_to_xml_filename(path);
- LLFILE* floater_temp = LLFile::fopen(full_filename.c_str(), "w");
- LLXMLNode::writeHeaderToFile(floater_temp);
- floater_write->writeToFile(floater_temp, " ");
- fclose(floater_temp);
+
+ if (!floater_write->isNull())
+ {
+ std::string full_filename = append_new_to_xml_filename(path);
+ LLFILE* floater_temp = LLFile::fopen(full_filename.c_str(), "w");
+ LLXMLNode::writeHeaderToFile(floater_temp);
+ floater_write->writeToFile(floater_temp);
+ fclose(floater_temp);
+ }
}
else
{
@@ -583,6 +609,25 @@ void LLFloaterUIPreview::displayFloater(BOOL click, S32 ID, bool save)
}
}
+ else if (!strncmp(path.c_str(),"menu_",5)) // if it's a menu
+ {
+ if (save)
+ {
+ LLXMLNodePtr menu_write = new LLXMLNode();
+ LLMenuGL* menu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>(path, gMenuHolder, menu_write);
+
+ if (!menu_write->isNull())
+ {
+ std::string full_filename = append_new_to_xml_filename(path);
+ LLFILE* menu_temp = LLFile::fopen(full_filename.c_str(), "w");
+ LLXMLNode::writeHeaderToFile(menu_temp);
+ menu_write->writeToFile(menu_temp);
+ fclose(menu_temp);
+ }
+
+ delete menu;
+ }
+ }
else // if it is a panel...
{
static LLUICachedControl<S32> floater_header_size ("UIFloaterHeaderSize", 0);
@@ -594,21 +639,19 @@ void LLFloaterUIPreview::displayFloater(BOOL click, S32 ID, bool save)
{
LLXMLNodePtr panel_write = new LLXMLNode();
LLUICtrlFactory::getInstance()->buildPanel(panel, path, panel_write); // build it
-
- std::string full_filename = append_new_to_xml_filename(path);
- LLFILE* panel_temp = LLFile::fopen(full_filename.c_str(), "w");
- LLXMLNode::writeHeaderToFile(panel_temp);
- panel_write->writeToFile(panel_temp, " ");
- fclose(panel_temp);
+
+ if (!panel_write->isNull())
+ {
+ std::string full_filename = append_new_to_xml_filename(path);
+ LLFILE* panel_temp = LLFile::fopen(full_filename.c_str(), "w");
+ LLXMLNode::writeHeaderToFile(panel_temp);
+ panel_write->writeToFile(panel_temp);
+ fclose(panel_temp);
+ }
}
else
{
LLUICtrlFactory::getInstance()->buildPanel(panel, path); // build it
-
- }
-
- if (!save)
- {
LLRect new_size = panel->getRect(); // get its rectangle
panel->setOrigin(0,0); // reset its origin point so it's not offset by -left or other XUI attributes
(*floaterp)->setTitle(path); // use the file name as its title, since panels have no guaranteed meaningful name attribute
@@ -649,9 +692,9 @@ void LLFloaterUIPreview::displayFloater(BOOL click, S32 ID, bool save)
sInstance->mDisplayedFloater->addDependentFloater(sInstance->mDisplayedFloater_2);
}
- // Add localization to title so user knows whether it's localized or defaulted to en-us
+ // Add localization to title so user knows whether it's localized or defaulted to en
std::string full_path = sInstance->getLocalizedDirectory() + path;
- std::string floater_lang = "EN-US";
+ std::string floater_lang = "EN";
llstat dummy;
if(!LLFile::stat(full_path.c_str(), &dummy)) // if the file does not exist
{
@@ -723,10 +766,10 @@ void LLFloaterUIPreview::onClickEditFloater(void*)
llstat dummy;
if(LLFile::stat(path.c_str(), &dummy)) // if the file does not exist
{
- std::string warning = "No file for this floater exists in the selected localization. Opening the EN-US version instead.";
+ std::string warning = "No file for this floater exists in the selected localization. Opening the EN version instead.";
popupAndPrintWarning(warning);
- path = get_xui_dir() + sInstance->mDelim + "en-us" + sInstance->mDelim + file_name; // open the en-us version instead, by default
+ path = get_xui_dir() + sInstance->mDelim + "en" + sInstance->mDelim + file_name; // open the en version instead, by default
}
// get executable path
diff --git a/indra/newview/llfloateruipreview.h b/indra/newview/llfloateruipreview.h
index 28fbb52013..b0af841e11 100644
--- a/indra/newview/llfloateruipreview.h
+++ b/indra/newview/llfloateruipreview.h
@@ -79,7 +79,7 @@ public:
BOOL mFirstFade; // setting this avoids showing the fade reload warning on first load
std::string mFileName;
protected:
- void loadFile();
+ bool loadFile();
};
// Implementation of graphical fade in/out (on timer) for when XUI files are updated
@@ -127,7 +127,7 @@ public:
int mOriginalWidth, mOriginalHeight, mSpacing;
};
-class LLFloaterUIPreview : public LLFloater, public LLFloaterSingleton<LLFloaterUIPreview>
+class LLFloaterUIPreview : public LLFloater
{
public:
// Setup
@@ -203,6 +203,7 @@ private:
// Button/drop-down action listeners (self explanatory)
static void onClickDisplayFloater(void*);
static void onClickSaveFloater(void*);
+ static void onClickSaveAll(void*);
static void onClickEditFloater(void*);
static void onClickBrowseForEditor(void*);
static void onClickBrowseForDiffs(void*);
diff --git a/indra/newview/llfloatervoicedevicesettings.cpp b/indra/newview/llfloatervoicedevicesettings.cpp
index 5e5ea2e2f1..12d12f37f2 100644
--- a/indra/newview/llfloatervoicedevicesettings.cpp
+++ b/indra/newview/llfloatervoicedevicesettings.cpp
@@ -41,7 +41,6 @@
#include "llcombobox.h"
#include "llfocusmgr.h"
#include "lliconctrl.h"
-#include "llprefsvoice.h"
#include "llsliderctrl.h"
#include "llviewercontrol.h"
#include "llvoiceclient.h"
@@ -290,11 +289,14 @@ LLFloaterVoiceDeviceSettings::LLFloaterVoiceDeviceSettings(const LLSD& seed)
{
mFactoryMap["device_settings"] = LLCallbackMap(createPanelVoiceDeviceSettings, this);
// do not automatically open singleton floaters (as result of getInstance())
- BOOL no_open = FALSE;
- LLUICtrlFactory::getInstance()->buildFloater(this, "floater_device_settings.xml", no_open);
+// BOOL no_open = FALSE;
+// Called from floater reg: LLUICtrlFactory::getInstance()->buildFloater(this, "floater_device_settings.xml", no_open);
+}
+BOOL LLFloaterVoiceDeviceSettings::postBuild()
+{
center();
+ return TRUE;
}
-
void LLFloaterVoiceDeviceSettings::onOpen(const LLSD& key)
{
if(mDevicePanel)
diff --git a/indra/newview/llfloatervoicedevicesettings.h b/indra/newview/llfloatervoicedevicesettings.h
index addc674ae3..47f41d6d7e 100644
--- a/indra/newview/llfloatervoicedevicesettings.h
+++ b/indra/newview/llfloatervoicedevicesettings.h
@@ -36,8 +36,6 @@
#include "llfloater.h"
-class LLPrefsVoiceLogic;
-
class LLPanelVoiceDeviceSettings : public LLPanel
{
public:
@@ -68,6 +66,7 @@ class LLFloaterVoiceDeviceSettings : public LLFloater, public LLFloaterSingleton
{
public:
LLFloaterVoiceDeviceSettings(const LLSD& seed);
+ virtual BOOL postBuild();
/*virtual*/ void onOpen(const LLSD& key);
/*virtual*/ void onClose(bool app_quitting);
/*virtual*/ void draw();
diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp
index 75c7467442..fd8c22b8e5 100644
--- a/indra/newview/llfolderview.cpp
+++ b/indra/newview/llfolderview.cpp
@@ -45,6 +45,7 @@
#include "llinventory.h"
#include "llcallbacklist.h"
+#include "llinventorybridge.h"
#include "llinventoryclipboard.h" // *TODO: remove this once hack below gone.
#include "llinventoryview.h"// hacked in for the bonus context menu items.
#include "llkeyboard.h"
@@ -81,7 +82,7 @@ const S32 ICON_WIDTH = 16;
const S32 TEXT_PAD = 1;
const S32 ARROW_SIZE = 12;
const S32 RENAME_WIDTH_PAD = 4;
-const S32 RENAME_HEIGHT_PAD = 6;
+const S32 RENAME_HEIGHT_PAD = 2;
const S32 AUTO_OPEN_STACK_DEPTH = 16;
const S32 MIN_ITEM_WIDTH_VISIBLE = ICON_WIDTH + ICON_PAD + ARROW_SIZE + TEXT_PAD + /*first few characters*/ 40;
const S32 MINIMUM_RENAMER_WIDTH = 80;
@@ -135,8 +136,9 @@ void LLFolderViewItem::cleanupClass()
// Default constructor
LLFolderViewItem::LLFolderViewItem(LLFolderViewItem::Params p)
-: LLUICtrl(p),
+: LLView(p),
mLabelWidth(0),
+ mLabelWidthDirty(false),
mParentFolder( NULL ),
mIsSelected( FALSE ),
mIsCurSelection( FALSE ),
@@ -302,20 +304,15 @@ void LLFolderViewItem::refresh()
{
mSearchableLabel.assign(searchable_label);
dirtyFilter();
- // some part of label has changed, so overall width has potentially changed
+ // some part of label has changed, so overall width has potentially changed, and sort order too
if (mParentFolder)
{
+ mParentFolder->requestSort();
mParentFolder->requestArrange();
}
}
- S32 label_width = sFont->getWidth(mLabel);
- if( mLabelSuffix.size() )
- {
- label_width += sFont->getWidth( mLabelSuffix );
- }
-
- mLabelWidth = ARROW_SIZE + TEXT_PAD + ICON_WIDTH + ICON_PAD + label_width;
+ mLabelWidthDirty = true;
}
void LLFolderViewItem::applyListenerFunctorRecursively(LLFolderViewListenerFunctor& functor)
@@ -392,6 +389,12 @@ BOOL LLFolderViewItem::addToFolder(LLFolderViewFolder* folder, LLFolderView* roo
S32 LLFolderViewItem::arrange( S32* width, S32* height, S32 filter_generation)
{
mIndentation = mParentFolder ? mParentFolder->getIndentation() + LEFT_INDENTATION : 0;
+ if (mLabelWidthDirty)
+ {
+ mLabelWidth = ARROW_SIZE + TEXT_PAD + ICON_WIDTH + ICON_PAD + sFont->getWidth(mSearchableLabel);
+ mLabelWidthDirty = false;
+ }
+
*width = llmax(*width, mLabelWidth + mIndentation);
*height = getItemHeight();
return *height;
@@ -569,14 +572,13 @@ void LLFolderViewItem::rename(const std::string& new_name)
{
if( !new_name.empty() )
{
- mLabel = new_name;
if( mListener )
{
mListener->renameItem(new_name);
if(mParentFolder)
{
- mParentFolder->resort(this);
+ mParentFolder->requestSort();
}
}
}
@@ -819,7 +821,7 @@ void LLFolderViewItem::draw()
// If we have keyboard focus, draw selection filled
BOOL show_context = getRoot()->getShowSelectionContext();
- BOOL filled = show_context || (gFocusMgr.getKeyboardFocus() == getRoot());
+ BOOL filled = show_context || (getRoot()->getParentPanel()->hasFocus());
// always render "current" item, only render other selected items if
// mShowSingleSelection is FALSE
@@ -999,10 +1001,9 @@ LLFolderViewFolder::LLFolderViewFolder( const LLFolderViewItem::Params& p ):
mLastArrangeGeneration( -1 ),
mLastCalculatedWidth(0),
mCompletedFilterGeneration(-1),
- mMostFilteredDescendantGeneration(-1)
-{
- mType = std::string("(folder)");
-}
+ mMostFilteredDescendantGeneration(-1),
+ mNeedsSort(false)
+{}
// Destroys the object
LLFolderViewFolder::~LLFolderViewFolder( void )
@@ -1028,6 +1029,14 @@ BOOL LLFolderViewFolder::addToFolder(LLFolderViewFolder* folder, LLFolderView* r
// makes sure that this view and it's children are the right size.
S32 LLFolderViewFolder::arrange( S32* width, S32* height, S32 filter_generation)
{
+ // sort before laying out contents
+ if (mNeedsSort)
+ {
+ mFolders.sort(mSortFunction);
+ mItems.sort(mSortFunction);
+ mNeedsSort = false;
+ }
+
mHasVisibleChildren = hasFilteredDescendants(filter_generation);
LLInventoryFilter::EFolderShow show_folder_state = getRoot()->getShowFolderState();
@@ -1172,6 +1181,13 @@ BOOL LLFolderViewFolder::needsArrange()
return mLastArrangeGeneration < getRoot()->getArrangeGeneration();
}
+void LLFolderViewFolder::requestSort()
+{
+ mNeedsSort = true;
+ // whenever item order changes, we need to lay things out again
+ requestArrange();
+}
+
void LLFolderViewFolder::setCompletedFilterGeneration(S32 generation, BOOL recurse_up)
{
mMostFilteredDescendantGeneration = llmin(mMostFilteredDescendantGeneration, generation);
@@ -1708,14 +1724,6 @@ void LLFolderViewFolder::extractItem( LLFolderViewItem* item )
removeChild(item);
}
-// This function is called by a child that needs to be resorted.
-// This is only called for renaming an object because it won't work for date
-void LLFolderViewFolder::resort(LLFolderViewItem* item)
-{
- mItems.sort(mSortFunction);
- mFolders.sort(mSortFunction);
-}
-
bool LLFolderViewFolder::isTrash() const
{
if (mAmTrash == LLFolderViewFolder::UNKNOWN)
@@ -1869,30 +1877,20 @@ BOOL LLFolderViewFolder::isRemovable()
// this is an internal method used for adding items to folders.
BOOL LLFolderViewFolder::addItem(LLFolderViewItem* item)
{
-
- items_t::iterator it = std::lower_bound(
- mItems.begin(),
- mItems.end(),
- item,
- mSortFunction);
- mItems.insert(it,item);
+ mItems.push_back(item);
item->setRect(LLRect(0, 0, getRect().getWidth(), 0));
item->setVisible(FALSE);
addChild( item );
item->dirtyFilter();
requestArrange();
+ requestSort();
return TRUE;
}
// this is an internal method used for adding items to folders.
BOOL LLFolderViewFolder::addFolder(LLFolderViewFolder* folder)
{
- folders_t::iterator it = std::lower_bound(
- mFolders.begin(),
- mFolders.end(),
- folder,
- mSortFunction);
- mFolders.insert(it,folder);
+ mFolders.push_back(folder);
folder->setOrigin(0, 0);
folder->reshape(getRect().getWidth(), 0);
folder->setVisible(FALSE);
@@ -1900,6 +1898,7 @@ BOOL LLFolderViewFolder::addFolder(LLFolderViewFolder* folder)
folder->dirtyFilter();
// rearrange all descendants too, as our indentation level might have changed
folder->requestArrange(TRUE);
+ requestSort();
return TRUE;
}
@@ -2522,7 +2521,9 @@ LLFolderView::LLFolderView(const Params& p)
mSignalSelectCallback(0),
mMinWidth(0),
mDragAndDropThisFrame(FALSE),
- mCallbackRegistrar(NULL)
+ mCallbackRegistrar(NULL),
+ mParentPanel(p.parent_panel)
+
{
LLRect rect = p.rect;
LLRect new_rect(rect.mLeft, rect.mBottom + getRect().getHeight(), rect.mLeft + getRect().getWidth(), rect.mBottom);
@@ -2556,15 +2557,14 @@ LLFolderView::LLFolderView(const Params& p)
addChild(mRenamer);
// make the popup menu available
- LLMenuGL* menu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_inventory.xml", p.parent_panel);
+ LLMenuGL* menu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_inventory.xml", gMenuHolder);
if (!menu)
{
- menu = LLUICtrlFactory::createDummyWidget<LLMenuGL>("inventory_menu");
+ menu = LLUICtrlFactory::getDefaultWidget<LLMenuGL>("inventory_menu");
}
menu->setBackgroundColor(gSavedSkinSettings.getColor("MenuPopupBgColor"));
mPopupMenuHandle = menu->getHandle();
- setTabStop(TRUE);
}
// Destroys the object
@@ -2578,7 +2578,6 @@ LLFolderView::~LLFolderView( void )
mScrollContainer = NULL;
mRenameItem = NULL;
mRenamer = NULL;
- gFocusMgr.releaseFocusIfNeeded( this );
if( gEditMenuHandler == this )
{
@@ -2668,6 +2667,7 @@ void LLFolderView::closeAllFolders()
{
// Close all the folders
setOpenArrangeRecursively(FALSE, LLFolderViewFolder::RECURSE_DOWN);
+ arrangeAll();
}
void LLFolderView::openFolder(const std::string& foldername)
@@ -2772,6 +2772,9 @@ S32 LLFolderView::arrange( S32* unused_width, S32* unused_height, S32 filter_gen
reshape( llmax(min_width, total_width), running_height );
}
+ // move item renamer text field to item's new position
+ updateRenamerPosition();
+
mTargetHeight = (F32)target_height;
return llround(mTargetHeight);
}
@@ -2805,6 +2808,8 @@ void LLFolderView::reshape(S32 width, S32 height, BOOL called_from_parent)
}
width = llmax(mMinWidth, min_width);
LLView::reshape(width, height, called_from_parent);
+
+ mReshapeSignal(mSelectedItems, FALSE);
}
void LLFolderView::addToSelectionList(LLFolderViewItem* item)
@@ -2869,7 +2874,7 @@ BOOL LLFolderView::setSelection(LLFolderViewItem* selection, BOOL openitem,
if( selection && take_keyboard_focus)
{
- setFocus(TRUE);
+ mParentPanel->setFocus(TRUE);
}
// clear selection down here because change of keyboard focus can potentially
@@ -2894,6 +2899,30 @@ BOOL LLFolderView::setSelection(LLFolderViewItem* selection, BOOL openitem,
return rv;
}
+void LLFolderView::setSelectionByID(const LLUUID& obj_id, BOOL take_keyboard_focus)
+{
+ LLFolderViewItem* itemp = getItemByID(obj_id);
+ if(itemp && itemp->getListener())
+ {
+ itemp->getListener()->arrangeAndSet(itemp, TRUE, take_keyboard_focus);
+ mSelectThisID.setNull();
+ return;
+ }
+ else
+ {
+ // save the desired item to be selected later (if/when ready)
+ mSelectThisID = obj_id;
+ }
+}
+
+void LLFolderView::updateSelection()
+{
+ if (mSelectThisID.notNull())
+ {
+ setSelectionByID(mSelectThisID, false);
+ }
+}
+
BOOL LLFolderView::changeSelection(LLFolderViewItem* selection, BOOL selected)
{
BOOL rv = FALSE;
@@ -3075,6 +3104,7 @@ void LLFolderView::clearSelection()
recursiveDeselect(FALSE);
mSelectedItems.clear();
}
+ mSelectThisID.setNull();
}
BOOL LLFolderView::getSelectionList(std::set<LLUUID> &selection)
@@ -3134,10 +3164,6 @@ void LLFolderView::draw()
{
closeAutoOpenedFolders();
}
- if(this == gFocusMgr.getKeyboardFocus() && !getVisible())
- {
- gFocusMgr.setKeyboardFocus( NULL );
- }
// while dragging, update selection rendering to reflect single/multi drag status
if (LLToolDragAndDrop::getInstance()->hasMouseCapture())
@@ -3275,11 +3301,11 @@ void LLFolderView::removeSelectedItems( void )
// change selection on successful delete
if (new_selection)
{
- setSelectionFromRoot(new_selection, new_selection->isOpen(), gFocusMgr.childHasKeyboardFocus(this));
+ setSelectionFromRoot(new_selection, new_selection->isOpen(), mParentPanel->hasFocus());
}
else
{
- setSelectionFromRoot(NULL, gFocusMgr.childHasKeyboardFocus(this));
+ setSelectionFromRoot(NULL, mParentPanel->hasFocus());
}
}
}
@@ -3305,11 +3331,11 @@ void LLFolderView::removeSelectedItems( void )
}
if (new_selection)
{
- setSelectionFromRoot(new_selection, new_selection->isOpen(), gFocusMgr.childHasKeyboardFocus(this));
+ setSelectionFromRoot(new_selection, new_selection->isOpen(), mParentPanel->hasFocus());
}
else
{
- setSelectionFromRoot(NULL, gFocusMgr.childHasKeyboardFocus(this));
+ setSelectionFromRoot(NULL, mParentPanel->hasFocus());
}
for(S32 i = 0; i < count; ++i)
@@ -3597,23 +3623,8 @@ void LLFolderView::startRenamingSelectedItem( void )
{
mRenameItem = item;
- S32 x = ARROW_SIZE + TEXT_PAD + ICON_WIDTH + ICON_PAD - 1 + item->getIndentation();
- S32 y = llfloor(item->getRect().getHeight()-sFont->getLineHeight()-2);
- item->localPointToScreen( x, y, &x, &y );
- screenPointToLocal( x, y, &x, &y );
- mRenamer->setOrigin( x, y );
-
- S32 scroller_height = 0;
- S32 scroller_width = gViewerWindow->getWindowWidth();
- BOOL dummy_bool;
- if (mScrollContainer)
- {
- mScrollContainer->calcVisibleSize( &scroller_width, &scroller_height, &dummy_bool, &dummy_bool);
- }
+ updateRenamerPosition();
- S32 width = llmax(llmin(item->getRect().getWidth() - x, scroller_width - x - getRect().mLeft), MINIMUM_RENAMER_WIDTH);
- S32 height = llfloor(sFont->getLineHeight() + RENAME_HEIGHT_PAD);
- mRenamer->reshape( width, height, TRUE );
mRenamer->setText(item->getName());
mRenamer->selectAll();
@@ -3625,19 +3636,6 @@ void LLFolderView::startRenamingSelectedItem( void )
}
}
-void LLFolderView::setFocus(BOOL focus)
-{
- if (focus)
- {
- if(!hasFocus())
- {
- gEditMenuHandler = this;
- }
- }
-
- LLFolderViewFolder::setFocus(focus);
-}
-
BOOL LLFolderView::handleKeyHere( KEY key, MASK mask )
{
BOOL handled = FALSE;
@@ -3840,7 +3838,7 @@ BOOL LLFolderView::handleKeyHere( KEY key, MASK mask )
break;
}
- if (!handled && hasFocus())
+ if (!handled && mParentPanel->hasFocus())
{
if (key == KEY_BACKSPACE)
{
@@ -3929,20 +3927,11 @@ BOOL LLFolderView::handleMouseDown( S32 x, S32 y, MASK mask )
mKeyboardSelection = FALSE;
mSearchString.clear();
- setFocus(TRUE);
+ mParentPanel->setFocus(TRUE);
return LLView::handleMouseDown( x, y, mask );
}
-void LLFolderView::onFocusLost( )
-{
- if( gEditMenuHandler == this )
- {
- gEditMenuHandler = NULL;
- }
- LLUICtrl::onFocusLost();
-}
-
BOOL LLFolderView::search(LLFolderViewItem* first_item, const std::string &search_string, BOOL backward)
{
// get first selected item
@@ -4019,7 +4008,7 @@ BOOL LLFolderView::handleRightMouseDown( S32 x, S32 y, MASK mask )
{
// all user operations move keyboard focus to inventory
// this way, we know when to stop auto-updating a search
- setFocus(TRUE);
+ mParentPanel->setFocus(TRUE);
BOOL handled = childrenHandleRightMouseDown(x, y, mask) != NULL;
S32 count = mSelectedItems.size();
@@ -4224,6 +4213,72 @@ LLFolderViewItem* LLFolderView::getItemByID(const LLUUID& id)
return NULL;
}
+bool LLFolderView::doToSelected(LLInventoryModel* model, const LLSD& userdata)
+{
+ std::string action = userdata.asString();
+
+ if ("rename" == action)
+ {
+ startRenamingSelectedItem();
+ return true;
+ }
+ if ("delete" == action)
+ {
+ removeSelectedItems();
+ return true;
+ }
+
+ if ("copy" == action)
+ {
+ LLInventoryClipboard::instance().reset();
+ }
+
+ std::set<LLUUID> selected_items;
+ getSelectionList(selected_items);
+
+ LLMultiPreview* multi_previewp = NULL;
+ LLMultiProperties* multi_propertiesp = NULL;
+
+ if (("task_open" == action || "open" == action) && selected_items.size() > 1)
+ {
+ multi_previewp = new LLMultiPreview();
+ gFloaterView->addChild(multi_previewp);
+
+ LLFloater::setFloaterHost(multi_previewp);
+
+ }
+ else if (("task_properties" == action || "properties" == action) && selected_items.size() > 1)
+ {
+ multi_propertiesp = new LLMultiProperties();
+ gFloaterView->addChild(multi_propertiesp);
+
+ LLFloater::setFloaterHost(multi_propertiesp);
+ }
+
+ std::set<LLUUID>::iterator set_iter;
+
+ for (set_iter = selected_items.begin(); set_iter != selected_items.end(); ++set_iter)
+ {
+ LLFolderViewItem* folder_item = getItemByID(*set_iter);
+ if(!folder_item) continue;
+ LLInvFVBridge* bridge = (LLInvFVBridge*)folder_item->getListener();
+ if(!bridge) continue;
+
+ bridge->performAction(this, model, action);
+ }
+
+ LLFloater::setFloaterHost(NULL);
+ if (multi_previewp)
+ {
+ multi_previewp->openFloater(LLSD());
+ }
+ else if (multi_propertiesp)
+ {
+ multi_propertiesp->openFloater(LLSD());
+ }
+
+ return true;
+}
// Main idle routine
void LLFolderView::doIdle()
@@ -4307,7 +4362,6 @@ void LLFolderView::idle(void* user_data)
}
}
-
void LLFolderView::dumpSelectionInformation()
{
llinfos << "LLFolderView::dumpSelectionInformation()" << llendl;
@@ -4320,6 +4374,31 @@ void LLFolderView::dumpSelectionInformation()
llinfos << "****************************************" << llendl;
}
+void LLFolderView::updateRenamerPosition()
+{
+ if(mRenameItem)
+ {
+ S32 x = ARROW_SIZE + TEXT_PAD + ICON_WIDTH + ICON_PAD - 1 + mRenameItem->getIndentation();
+ S32 y = llfloor(mRenameItem->getRect().getHeight()-sFont->getLineHeight()-2);
+ mRenameItem->localPointToScreen( x, y, &x, &y );
+ screenPointToLocal( x, y, &x, &y );
+ mRenamer->setOrigin( x, y );
+
+ S32 scroller_height = 0;
+ S32 scroller_width = gViewerWindow->getWindowWidth();
+ BOOL dummy_bool;
+ if (mScrollContainer)
+ {
+ mScrollContainer->calcVisibleSize( &scroller_width, &scroller_height, &dummy_bool, &dummy_bool);
+ }
+
+ S32 width = llmax(llmin(mRenameItem->getRect().getWidth() - x, scroller_width - x - getRect().mLeft), MINIMUM_RENAMER_WIDTH);
+ S32 height = llfloor(sFont->getLineHeight() + RENAME_HEIGHT_PAD);
+ mRenamer->reshape( width, height, TRUE );
+ }
+}
+
+
///----------------------------------------------------------------------------
/// Local function definitions
///----------------------------------------------------------------------------
diff --git a/indra/newview/llfolderview.h b/indra/newview/llfolderview.h
index d8eb9008f0..9d91f0d64e 100644
--- a/indra/newview/llfolderview.h
+++ b/indra/newview/llfolderview.h
@@ -44,6 +44,8 @@
#include <vector>
#include <map>
#include <deque>
+#include <boost/function.hpp>
+#include <boost/signals2.hpp>
#include "lluictrl.h"
#include "v4color.h"
@@ -315,7 +317,7 @@ class LLFontGL;
class LLFolderViewFolder;
class LLFolderView;
-class LLFolderViewItem : public LLUICtrl
+class LLFolderViewItem : public LLView
{
public:
static void initClass();
@@ -352,9 +354,9 @@ protected:
static LLUIImagePtr sBoxImage;
std::string mLabel;
std::string mSearchableLabel;
- std::string mType;
S32 mLabelWidth;
- time_t mCreationDate;
+ bool mLabelWidthDirty;
+ time_t mCreationDate;
LLFolderViewFolder* mParentFolder;
LLFolderViewEventListener* mListener;
BOOL mIsSelected;
@@ -585,6 +587,7 @@ protected:
S32 mLastCalculatedWidth;
S32 mCompletedFilterGeneration;
S32 mMostFilteredDescendantGeneration;
+ bool mNeedsSort;
public:
typedef enum e_recurse_type
{
@@ -610,6 +613,7 @@ public:
virtual S32 arrange( S32* width, S32* height, S32 filter_generation );
BOOL needsArrange();
+ void requestSort();
// Returns the sort group (system, trash, folder) for this folder.
virtual EInventorySortGroup getSortGroup() const;
@@ -709,7 +713,7 @@ public:
virtual void applyListenerFunctorRecursively(LLFolderViewListenerFunctor& functor);
virtual void openItem( void );
- virtual BOOL addItem(LLFolderViewItem* item);
+ virtual BOOL addItem(LLFolderViewItem* item);
virtual BOOL addFolder( LLFolderViewFolder* folder);
// LLView functionality
@@ -739,7 +743,7 @@ public:
class LLUICtrl;
class LLLineEditor;
-class LLFolderView : public LLFolderViewFolder, LLEditMenuHandler
+class LLFolderView : public LLFolderViewFolder, public LLEditMenuHandler
{
public:
struct Params : public LLInitParam::Block<Params, LLFolderViewFolder::Params>
@@ -763,8 +767,9 @@ public:
void setFilterPermMask(PermissionMask filter_perm_mask) { mFilter.setFilterPermissions(filter_perm_mask); }
void setAllowMultiSelect(BOOL allow) { mAllowMultiSelect = allow; }
- typedef boost::signals2::signal<void (const std::deque<LLFolderViewItem*>& items, BOOL user_action)> signal_t;
+ typedef boost::signals2::signal<void (const std::deque<LLFolderViewItem*>& items, BOOL user_action)> signal_t;
void setSelectCallback(const signal_t::slot_type& cb) { mSelectSignal.connect(cb); }
+ void setReshapeCallback(const signal_t::slot_type& cb) { mReshapeSignal.connect(cb); }
LLInventoryFilter* getFilter() { return &mFilter; }
const std::string getFilterSubString(BOOL trim = FALSE);
@@ -799,7 +804,13 @@ public:
// Record the selected item and pass it down the hierachy.
virtual BOOL setSelection(LLFolderViewItem* selection, BOOL openitem,
BOOL take_keyboard_focus);
-
+
+ // Used by menu callbacks
+ void setSelectionByID(const LLUUID& obj_id, BOOL take_keyboard_focus);
+
+ // Called once a frame to update the selection if mSelectThisID has been set
+ void updateSelection();
+
// This method is used to toggle the selection of an item. Walks
// children, and keeps track of selected objects.
virtual BOOL changeSelection(LLFolderViewItem* selection, BOOL selected);
@@ -852,9 +863,6 @@ public:
//void dragItemIntoFolder( LLFolderViewItem* moving_item, LLFolderViewFolder* dst_folder, BOOL drop, BOOL* accept );
//void dragFolderIntoFolder( LLFolderViewFolder* moving_folder, LLFolderViewFolder* dst_folder, BOOL drop, BOOL* accept );
- // LLUICtrl Functionality
- /*virtual*/ void setFocus(BOOL focus);
-
// LLView functionality
///*virtual*/ BOOL handleKey( KEY key, MASK mask, BOOL called_from_parent );
/*virtual*/ BOOL handleKeyHere( KEY key, MASK mask );
@@ -869,7 +877,6 @@ public:
EAcceptance* accept,
std::string& tooltip_msg);
/*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);
- /*virtual*/ void onFocusLost();
virtual BOOL handleScrollWheel(S32 x, S32 y, S32 clicks);
virtual void draw();
virtual void deleteAllChildren();
@@ -889,7 +896,9 @@ public:
void addItemID(const LLUUID& id, LLFolderViewItem* itemp);
void removeItemID(const LLUUID& id);
LLFolderViewItem* getItemByID(const LLUUID& id);
-
+
+ bool doToSelected(LLInventoryModel* model, const LLSD& userdata);
+
void doIdle(); // Real idle routine
static void idle(void* user_data); // static glue to doIdle()
@@ -901,9 +910,13 @@ public:
BOOL getDebugFilters() { return mDebugFilters; }
+ LLPanel* getParentPanel() { return mParentPanel; }
// DEBUG only
void dumpSelectionInformation();
+private:
+ void updateRenamerPosition();
+
protected:
LLScrollContainer* mScrollContainer; // NULL if this is not a child of a scroll container.
@@ -948,10 +961,15 @@ protected:
S32 mArrangeGeneration;
signal_t mSelectSignal;
+ signal_t mReshapeSignal;
S32 mSignalSelectCallback;
S32 mMinWidth;
std::map<LLUUID, LLFolderViewItem*> mItemMap;
BOOL mDragAndDropThisFrame;
+
+ LLUUID mSelectThisID; // if non null, select this item
+
+ LLPanel* mParentPanel;
LLUICtrl::CommitCallbackRegistry::ScopedRegistrar* mCallbackRegistrar;
diff --git a/indra/newview/llgesturemgr.cpp b/indra/newview/llgesturemgr.cpp
index 2dbff92ba0..0f2951d9df 100644
--- a/indra/newview/llgesturemgr.cpp
+++ b/indra/newview/llgesturemgr.cpp
@@ -55,8 +55,9 @@
#include "llinventorymodel.h"
#include "llnotify.h"
#include "llviewermessage.h"
-#include "llvoavatar.h"
+#include "llvoavatarself.h"
#include "llviewerstats.h"
+#include "llbottomtray.h"
LLGestureManager gGestureManager;
@@ -868,9 +869,11 @@ void LLGestureManager::runStep(LLMultiGesture* gesture, LLGestureStep* step)
std::string chat_text = chat_step->mChatText;
// Don't animate the nodding, as this might not blend with
// other playing animations.
+
const BOOL animate = FALSE;
- gChatBar->sendChatFromViewer(chat_text, CHAT_TYPE_NORMAL, animate);
+ LLBottomTray::getInstance()->sendChatFromViewer(chat_text, CHAT_TYPE_NORMAL, animate);
+
gesture->mCurrentStep++;
break;
}
diff --git a/indra/newview/llglsandbox.cpp b/indra/newview/llglsandbox.cpp
index b0ccc0f141..3b3ada46a8 100644
--- a/indra/newview/llglsandbox.cpp
+++ b/indra/newview/llglsandbox.cpp
@@ -49,7 +49,7 @@
#include "lltextureentry.h"
#include "llviewercamera.h"
-#include "llvoavatar.h"
+#include "llvoavatarself.h"
#include "llagent.h"
#include "lltoolmgr.h"
#include "llselectmgr.h"
diff --git a/indra/newview/llgroupactions.cpp b/indra/newview/llgroupactions.cpp
new file mode 100644
index 0000000000..cda30d8900
--- /dev/null
+++ b/indra/newview/llgroupactions.cpp
@@ -0,0 +1,141 @@
+/**
+ * @file llgroupactions.cpp
+ * @brief Group-related actions (join, leave, new, delete, etc)
+ *
+ * $LicenseInfo:firstyear=2009&license=viewergpl$
+ *
+ * Copyright (c) 2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llgroupactions.h"
+
+#include "llagent.h"
+#include "llfloatergroupinfo.h"
+#include "llfloaterreg.h"
+#include "llimview.h" // for gIMMgr
+
+// static
+void LLGroupActions::search()
+{
+ LLFloaterReg::showInstance("search", LLSD().insert("panel", "group"));
+}
+
+// static
+void LLGroupActions::create()
+{
+ LLFloaterGroupInfo::showCreateGroup(NULL);
+}
+
+// static
+void LLGroupActions::leave(const LLUUID& group_id)
+{
+ if (group_id.isNull())
+ return;
+
+ S32 count = gAgent.mGroups.count();
+ S32 i;
+ for (i = 0; i < count; ++i)
+ {
+ if(gAgent.mGroups.get(i).mID == group_id)
+ break;
+ }
+ if (i < count)
+ {
+ LLSD args;
+ args["GROUP"] = gAgent.mGroups.get(i).mName;
+ LLSD payload;
+ payload["group_id"] = group_id;
+ LLNotifications::instance().add("GroupLeaveConfirmMember", args, payload, onLeaveGroup);
+ }
+}
+
+// static
+void LLGroupActions::activate(const LLUUID& group_id)
+{
+ LLMessageSystem* msg = gMessageSystem;
+ msg->newMessageFast(_PREHASH_ActivateGroup);
+ msg->nextBlockFast(_PREHASH_AgentData);
+ msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
+ msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
+ msg->addUUIDFast(_PREHASH_GroupID, group_id);
+ gAgent.sendReliableMessage();
+}
+
+// static
+void LLGroupActions::info(const LLUUID& group_id)
+{
+ if (group_id.isNull())
+ return;
+
+ LLFloaterGroupInfo::showFromUUID(group_id);
+}
+
+// static
+void LLGroupActions::startChat(const LLUUID& group_id)
+{
+ if (group_id.isNull())
+ return;
+
+ LLGroupData group_data;
+ if (gAgent.getGroupData(group_id, group_data))
+ {
+ gIMMgr->addSession(
+ group_data.mName,
+ IM_SESSION_GROUP_START,
+ group_id);
+ make_ui_sound("UISndStartIM");
+ }
+ else
+ {
+ // this should never happen, as starting a group IM session
+ // relies on you belonging to the group and hence having the group data
+ make_ui_sound("UISndInvalidOp");
+ }
+}
+
+//-- Private methods ----------------------------------------------------------
+
+// static
+bool LLGroupActions::onLeaveGroup(const LLSD& notification, const LLSD& response)
+{
+ S32 option = LLNotification::getSelectedOption(notification, response);
+ LLUUID group_id = notification["payload"]["group_id"].asUUID();
+ if(option == 0)
+ {
+ LLMessageSystem* msg = gMessageSystem;
+ msg->newMessageFast(_PREHASH_LeaveGroupRequest);
+ msg->nextBlockFast(_PREHASH_AgentData);
+ msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
+ msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
+ msg->nextBlockFast(_PREHASH_GroupData);
+ msg->addUUIDFast(_PREHASH_GroupID, group_id);
+ gAgent.sendReliableMessage();
+ }
+ return false;
+}
diff --git a/indra/newview/llgroupactions.h b/indra/newview/llgroupactions.h
new file mode 100644
index 0000000000..1e6caea17c
--- /dev/null
+++ b/indra/newview/llgroupactions.h
@@ -0,0 +1,79 @@
+/**
+ * @file llgroupactions.h
+ * @brief Group-related actions (join, leave, new, delete, etc)
+ *
+ * $LicenseInfo:firstyear=2009&license=viewergpl$
+ *
+ * Copyright (c) 2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#ifndef LL_LLGROUPACTIONS_H
+#define LL_LLGROUPACTIONS_H
+
+#include "llsd.h"
+#include "lluuid.h"
+
+/**
+ * Group-related actions (join, leave, new, delete, etc)
+ */
+class LLGroupActions
+{
+public:
+ /**
+ * Invokes group search floater.
+ */
+ static void search();
+
+ /**
+ * Invokes group creation floater.
+ */
+ static void create();
+
+ /**
+ * Invokes "Leave Group" floater.
+ */
+ static void leave(const LLUUID& group_id);
+
+ /**
+ * Activate group.
+ */
+ static void activate(const LLUUID& group_id);
+
+ /**
+ * Show group information dialog.
+ */
+ static void info(const LLUUID& group_id);
+
+ /**
+ * Start group instant messaging session.
+ */
+ static void startChat(const LLUUID& group_id);
+
+private:
+ static bool onLeaveGroup(const LLSD& notification, const LLSD& response);
+};
+
+#endif // LL_LLGROUPACTIONS_H
diff --git a/indra/newview/llgrouplist.cpp b/indra/newview/llgrouplist.cpp
new file mode 100644
index 0000000000..5d0bcab07a
--- /dev/null
+++ b/indra/newview/llgrouplist.cpp
@@ -0,0 +1,70 @@
+/**
+ * @file llgrouplist.cpp
+ * @brief List of the groups the agent belongs to.
+ *
+ * $LicenseInfo:firstyear=2009&license=viewergpl$
+ *
+ * Copyright (c) 2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llgrouplist.h"
+
+// newview
+#include "llagent.h"
+
+static LLDefaultWidgetRegistry::Register<LLGroupList> r("group_list");
+
+LLGroupList::LLGroupList(const Params& p)
+: LLAvatarList(p)
+{
+}
+
+BOOL LLGroupList::updateList()
+{
+ LLCtrlListInterface *group_list = getListInterface();
+ const LLUUID& highlight_id = gAgent.getGroupID();
+ S32 count = gAgent.mGroups.count();
+ LLUUID id;
+
+ group_list->operateOnAll(LLCtrlListInterface::OP_DELETE);
+
+ for(S32 i = 0; i < count; ++i)
+ {
+ // *TODO: check powers mask?
+ id = gAgent.mGroups.get(i).mID;
+ const LLGroupData& group_data = gAgent.mGroups.get(i);
+ addItem(id, group_data.mName, highlight_id == id, ADD_BOTTOM);
+ }
+
+ // add "none" to list at top
+ //name = LLTrans::getString("GroupsNone")
+ addItem(LLUUID::null, std::string("none"), highlight_id.isNull(), ADD_TOP); // *TODO: localize
+
+ group_list->selectByValue(highlight_id);
+ return TRUE;
+}
diff --git a/indra/newview/llgrouplist.h b/indra/newview/llgrouplist.h
new file mode 100644
index 0000000000..ce26977fdb
--- /dev/null
+++ b/indra/newview/llgrouplist.h
@@ -0,0 +1,53 @@
+/**
+ * @file llgrouplist.h
+ * @brief List of the groups the agent belongs to.
+ *
+ * $LicenseInfo:firstyear=2009&license=viewergpl$
+ *
+ * Copyright (c) 2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#ifndef LL_LLGROUPLIST_H
+#define LL_LLGROUPLIST_H
+
+#include <llscrolllistctrl.h>
+
+#include "llavatarlist.h"
+
+// *TODO: derive from ListView when it's ready.
+class LLGroupList: public LLAvatarList
+{
+ LOG_CLASS(LLGroupList);
+public:
+ struct Params : public LLInitParam::Block<Params, LLAvatarList::Params>
+ {
+ };
+
+ LLGroupList(const Params&);
+ BOOL updateList();
+};
+
+#endif // LL_LLGROUPLIST_H
diff --git a/indra/newview/llhudrender.cpp b/indra/newview/llhudrender.cpp
index c00edfaa5c..fe65a12c47 100644
--- a/indra/newview/llhudrender.cpp
+++ b/indra/newview/llhudrender.cpp
@@ -77,8 +77,8 @@ void hud_render_text(const LLWString &wstr, const LLVector3 &pos_agent,
LLVector3 up_axis;
if (orthographic)
{
- right_axis.setVec(0.f, -1.f / gViewerWindow->getWindowHeight(), 0.f);
- up_axis.setVec(0.f, 0.f, 1.f / gViewerWindow->getWindowHeight());
+ right_axis.setVec(0.f, -1.f / gViewerWindow->getWorldViewWidth(), 0.f);
+ up_axis.setVec(0.f, 0.f, 1.f / gViewerWindow->getWorldViewHeight());
}
else
{
@@ -106,19 +106,29 @@ void hud_render_text(const LLWString &wstr, const LLVector3 &pos_agent,
//get the render_pos in screen space
F64 winX, winY, winZ;
+ LLRect world_view_rect = gViewerWindow->getWorldViewRect();
+ S32 viewport[4];
+ viewport[0] = world_view_rect.mLeft;
+ viewport[1] = world_view_rect.mBottom;
+ viewport[2] = world_view_rect.getWidth();
+ viewport[3] = world_view_rect.getHeight();
gluProject(render_pos.mV[0], render_pos.mV[1], render_pos.mV[2],
- gGLModelView, gGLProjection, (GLint*) gGLViewport,
+ gGLModelView, gGLProjection, (GLint*) viewport,
&winX, &winY, &winZ);
- //fonts all render orthographically, set up projection
+ //fonts all render orthographically, set up projection``
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glMatrixMode(GL_MODELVIEW);
LLUI::pushMatrix();
- gViewerWindow->setup2DRender();
+ gl_state_for_2d(world_view_rect.getWidth(), world_view_rect.getHeight());
+ gViewerWindow->setup3DViewport();
+ //gViewerWindow->setup2DRender();
+ winX -= world_view_rect.mLeft;
+ winY -= world_view_rect.mBottom;
LLUI::loadIdentity();
LLUI::translate((F32) winX*1.0f/LLFontGL::sScaleX, (F32) winY*1.0f/(LLFontGL::sScaleY), -(((F32) winZ*2.f)-1.f));
//glRotatef(angle * RAD_TO_DEG, axis.mV[VX], axis.mV[VY], axis.mV[VZ]);
diff --git a/indra/newview/llhudtext.cpp b/indra/newview/llhudtext.cpp
index 25f513e5c1..efeac9c197 100644
--- a/indra/newview/llhudtext.cpp
+++ b/indra/newview/llhudtext.cpp
@@ -318,8 +318,8 @@ void LLHUDText::renderText(BOOL for_select)
if (mOnHUDAttachment)
{
- x_pixel_vec = LLVector3::y_axis / (F32)gViewerWindow->getWindowWidth();
- y_pixel_vec = LLVector3::z_axis / (F32)gViewerWindow->getWindowHeight();
+ x_pixel_vec = LLVector3::y_axis / (F32)gViewerWindow->getWorldViewWidth();
+ y_pixel_vec = LLVector3::z_axis / (F32)gViewerWindow->getWorldViewHeight();
}
else
{
@@ -797,44 +797,26 @@ LLVector2 LLHUDText::updateScreenPos(LLVector2 &offset)
if (!LLViewerCamera::getInstance()->projectPosAgentToScreen(world_pos, screen_pos, FALSE) && mVisibleOffScreen)
{
// bubble off-screen, so find a spot for it along screen edge
- LLVector2 window_center(gViewerWindow->getWindowDisplayWidth() * 0.5f, gViewerWindow->getWindowDisplayHeight() * 0.5f);
- LLVector2 delta_from_center(screen_pos.mX - window_center.mV[VX],
- screen_pos.mY - window_center.mV[VY]);
- delta_from_center.normVec();
-
- F32 camera_aspect = LLViewerCamera::getInstance()->getAspect();
- F32 delta_aspect = llabs(delta_from_center.mV[VX] / delta_from_center.mV[VY]);
- if (camera_aspect / llmax(delta_aspect, 0.001f) > 1.f)
- {
- // camera has wider aspect ratio than offset vector, so clamp to height
- delta_from_center *= llabs(window_center.mV[VY] / delta_from_center.mV[VY]);
- }
- else
- {
- // camera has narrower aspect ratio than offset vector, so clamp to width
- delta_from_center *= llabs(window_center.mV[VX] / delta_from_center.mV[VX]);
- }
-
- screen_pos_vec = window_center + delta_from_center;
- }
- else
- {
- screen_pos_vec.setVec((F32)screen_pos.mX, (F32)screen_pos.mY);
+ LLViewerCamera::getInstance()->projectPosAgentToScreenEdge(world_pos, screen_pos);
}
- S32 bottom = STATUS_BAR_HEIGHT;
- if (gChatBar->getVisible())
+
+ screen_pos_vec.setVec((F32)screen_pos.mX, (F32)screen_pos.mY);
+
+ LLRect world_rect = gViewerWindow->getVirtualWorldViewRect();
+ S32 bottom = world_rect.mBottom + STATUS_BAR_HEIGHT;
+ if (gChatBar && gChatBar->getVisible())
{
bottom += CHAT_BAR_HEIGHT;
}
LLVector2 screen_center;
- screen_center.mV[VX] = llclamp((F32)screen_pos_vec.mV[VX], mWidth * 0.5f, (F32)gViewerWindow->getWindowDisplayWidth() - mWidth * 0.5f);
+ screen_center.mV[VX] = llclamp((F32)screen_pos_vec.mV[VX], (F32)world_rect.mLeft + mWidth * 0.5f, (F32)world_rect.mRight - mWidth * 0.5f);
if(mVertAlignment == ALIGN_VERT_TOP)
{
screen_center.mV[VY] = llclamp((F32)screen_pos_vec.mV[VY],
(F32)bottom,
- (F32)gViewerWindow->getWindowDisplayHeight() - mHeight - (F32)MENU_BAR_HEIGHT);
+ (F32)world_rect.mTop - mHeight - (F32)MENU_BAR_HEIGHT);
mSoftScreenRect.setLeftTopAndSize(screen_center.mV[VX] - (mWidth + BUFFER_SIZE) * 0.5f,
screen_center.mV[VY] + (mHeight + BUFFER_SIZE), mWidth + BUFFER_SIZE, mHeight + BUFFER_SIZE);
}
@@ -842,7 +824,7 @@ LLVector2 LLHUDText::updateScreenPos(LLVector2 &offset)
{
screen_center.mV[VY] = llclamp((F32)screen_pos_vec.mV[VY],
(F32)bottom + mHeight * 0.5f,
- (F32)gViewerWindow->getWindowDisplayHeight() - mHeight * 0.5f - (F32)MENU_BAR_HEIGHT);
+ (F32)world_rect.mTop - mHeight * 0.5f - (F32)MENU_BAR_HEIGHT);
mSoftScreenRect.setCenterAndSize(screen_center.mV[VX], screen_center.mV[VY], mWidth + BUFFER_SIZE, mHeight + BUFFER_SIZE);
}
diff --git a/indra/newview/llimpanel.cpp b/indra/newview/llimpanel.cpp
index 15475be951..6acd174fc3 100644
--- a/indra/newview/llimpanel.cpp
+++ b/indra/newview/llimpanel.cpp
@@ -51,16 +51,17 @@
#include "llfloater.h"
#include "llfloatercall.h"
#include "llfloatergroupinfo.h"
+#include "llfriendactions.h"
#include "llimview.h"
#include "llinventory.h"
#include "llinventorymodel.h"
#include "llinventoryview.h"
#include "llfloateractivespeakers.h"
-#include "llfloateravatarinfo.h"
#include "llfloaterchat.h"
#include "llkeyboard.h"
#include "lllineeditor.h"
#include "llnotify.h"
+#include "llrecentpeople.h"
#include "llresmgr.h"
#include "lltrans.h"
#include "lltabcontainer.h"
@@ -705,6 +706,15 @@ void LLVoiceChannelGroup::activate()
LLVoiceClient::getInstance()->setNonSpatialChannel(
mURI,
mCredentials);
+
+#if 0 // *TODO
+ if (!gAgent.isInGroup(mSessionID)) // ad-hoc channel
+ {
+ // Add the party to the list of people with which we've recently interacted.
+ for (/*people in the chat*/)
+ LLRecentPeople::instance().add(buddy_id);
+ }
+#endif
}
}
@@ -1014,6 +1024,9 @@ void LLVoiceChannelP2P::activate()
// using the session handle invalidates it. Clear it out here so we can't reuse it by accident.
mSessionHandle.clear();
}
+
+ // Add the party to the list of people with which we've recently interacted.
+ LLRecentPeople::instance().add(mOtherUserID);
}
}
@@ -1168,6 +1181,8 @@ LLFloaterIMPanel::LLFloaterIMPanel(const std::string& session_label,
}
mSpeakers = new LLIMSpeakerMgr(mVoiceChannel);
+ // All participants will be added to the list of people we've recently interacted with.
+ mSpeakers->addListener(&LLRecentPeople::instance(), "add");
LLUICtrlFactory::getInstance()->buildFloater(this, xml_filename, FALSE);
@@ -1735,9 +1750,9 @@ void LLFloaterIMPanel::onClickProfile( void* userdata )
// Bring up the Profile window
LLFloaterIMPanel* self = (LLFloaterIMPanel*) userdata;
- if (self->mOtherParticipantUUID.notNull())
+ if (self->getOtherParticipantID().notNull())
{
- LLFloaterAvatarInfo::showFromDirectory(self->getOtherParticipantID());
+ LLFriendActions::showProfile(self->getOtherParticipantID());
}
}
@@ -1937,6 +1952,9 @@ void deliver_message(const std::string& utf8_text,
default: ; // do nothing
}
}
+
+ // Add the recipient to the recent people list.
+ LLRecentPeople::instance().add(other_participant_id);
}
void LLFloaterIMPanel::sendMsg()
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index 9e3bc76c9c..cb67fd34e5 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -725,6 +725,8 @@ void LLIMMgr::addMessage(
dialog,
FALSE);
+ notifyObserverSessionAdded(floater->getSessionID(), name, other_participant_id);
+
// When we get a new IM, and if you are a god, display a bit
// of information about the source. This is to help liaisons
// when answering questions.
@@ -897,6 +899,7 @@ LLUUID LLIMMgr::addSession(
}
//mTabContainer->selectTabPanel(panel);
floater->setInputFocus(TRUE);
+ notifyObserverSessionAdded(floater->getSessionID(), name, other_participant_id);
return floater->getSessionID();
}
@@ -947,6 +950,7 @@ LLUUID LLIMMgr::addSession(
}
//mTabContainer->selectTabPanel(panel);
floater->setInputFocus(TRUE);
+ notifyObserverSessionAdded(floater->getSessionID(), name, other_participant_id);
return floater->getSessionID();
}
@@ -964,6 +968,7 @@ void LLIMMgr::removeSession(const LLUUID& session_id)
clearPendingInvitation(session_id);
clearPendingAgentListUpdates(session_id);
}
+ notifyObserverSessionRemoved(session_id);
}
void LLIMMgr::inviteToSession(
@@ -1238,6 +1243,32 @@ void LLIMMgr::clearPendingAgentListUpdates(const LLUUID& session_id)
}
}
+void LLIMMgr::notifyObserverSessionAdded(const LLUUID& session_id, const std::string& name, const LLUUID& other_participant_id)
+{
+ for (session_observers_list_t::iterator it = mSessionObservers.begin(); it != mSessionObservers.end(); it++)
+ {
+ (*it)->sessionAdded(session_id, name, other_participant_id);
+ }
+}
+
+void LLIMMgr::notifyObserverSessionRemoved(const LLUUID& session_id)
+{
+ for (session_observers_list_t::iterator it = mSessionObservers.begin(); it != mSessionObservers.end(); it++)
+ {
+ (*it)->sessionRemoved(session_id);
+ }
+}
+
+void LLIMMgr::addSessionObserver(LLIMSessionObserver *observer)
+{
+ mSessionObservers.push_back(observer);
+}
+
+void LLIMMgr::removeSessionObserver(LLIMSessionObserver *observer)
+{
+ mSessionObservers.remove(observer);
+}
+
// create a floater and update internal representation for
// consistency. Returns the pointer, caller (the class instance since
// it is a private method) is not responsible for deleting the
diff --git a/indra/newview/llimview.h b/indra/newview/llimview.h
index 38a57a4025..469f6ec21d 100644
--- a/indra/newview/llimview.h
+++ b/indra/newview/llimview.h
@@ -44,6 +44,14 @@ class LLFloaterIMPanel;
class LLFriendObserver;
class LLFloaterIM;
+class LLIMSessionObserver
+{
+public:
+ virtual ~LLIMSessionObserver() {}
+ virtual void sessionAdded(const LLUUID& session_id, const std::string& name, const LLUUID& other_participant_id) = 0;
+ virtual void sessionRemoved(const LLUUID& session_id) = 0;
+};
+
class LLIMMgr : public LLSingleton<LLIMMgr>
{
public:
@@ -165,6 +173,9 @@ public:
//HACK: need a better way of enumerating existing session, or listening to session create/destroy events
const std::set<LLHandle<LLFloater> >& getIMFloaterHandles() { return mFloaters; }
+ void addSessionObserver(LLIMSessionObserver *);
+ void removeSessionObserver(LLIMSessionObserver *);
+
private:
// create a panel and update internal representation for
// consistency. Returns the pointer, caller (the class instance
@@ -194,10 +205,16 @@ private:
static void onInviteNameLookup(LLSD payload, const LLUUID& id, const std::string& first, const std::string& last, BOOL is_group);
+ void notifyObserverSessionAdded(const LLUUID& session_id, const std::string& name, const LLUUID& other_participant_id);
+ void notifyObserverSessionRemoved(const LLUUID& session_id);
+
private:
std::set<LLHandle<LLFloater> > mFloaters;
LLFriendObserver* mFriendObserver;
+ typedef std::list <LLIMSessionObserver *> session_observers_list_t;
+ session_observers_list_t mSessionObservers;
+
// An IM has been received that you haven't seen yet.
BOOL mIMReceived;
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index 89f9242b06..540cefbc46 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -40,6 +40,7 @@
#include "message.h"
#include "llagent.h"
+#include "llagentwearables.h"
#include "llcallingcard.h"
#include "llcheckboxctrl.h" // for radio buttons
#include "llfloaterreg.h"
@@ -50,13 +51,13 @@
#include "llviewercontrol.h"
#include "llfirstuse.h"
-#include "llfloateravatarinfo.h"
#include "llfloaterchat.h"
#include "llfloatercustomize.h"
#include "llfloaterproperties.h"
#include "llfloaterworldmap.h"
#include "llfocusmgr.h"
#include "llfolderview.h"
+#include "llfriendactions.h"
#include "llgesturemgr.h"
#include "lliconctrl.h"
#include "llinventorymodel.h"
@@ -83,6 +84,7 @@
#include "llwearablelist.h"
#include "llviewermessage.h"
#include "llviewerregion.h"
+#include "llvoavatarself.h"
#include "lltabcontainer.h"
#include "lluictrlfactory.h"
#include "llselectmgr.h"
@@ -108,6 +110,7 @@ void dec_busy_count()
// Function declarations
struct LLWearableHoldingPattern;
+void wear_add_inventory_item_on_avatar(LLInventoryItem* item);
void wear_inventory_category_on_avatar(LLInventoryCategory* category, BOOL append);
void wear_inventory_category_on_avatar_step2( BOOL proceed, LLUUID category, BOOL append);
void wear_inventory_category_on_avatar_loop(LLWearable* wearable, void*);
@@ -146,6 +149,8 @@ std::string ICON_NAME[ICON_NAME_COUNT] =
"inv_item_undershirt.tga",
"inv_item_underpants.tga",
"inv_item_skirt.tga",
+ "inv_item_alpha.tga",
+ "inv_item_tattoo.tga",
"inv_item_animation.tga",
"inv_item_gesture.tga",
@@ -377,8 +382,8 @@ BOOL LLInvFVBridge::isClipboardPasteable() const
}
void hideContextEntries(LLMenuGL& menu,
- const std::vector<std::string> &entries_to_show,
- const std::vector<std::string> &disabled_entries)
+ const std::vector<std::string> &entries_to_show,
+ const std::vector<std::string> &disabled_entries)
{
const LLView::child_list_t *list = menu.getChildList();
@@ -422,8 +427,9 @@ void hideContextEntries(LLMenuGL& menu,
}
// Helper for commonly-used entries
-void LLInvFVBridge::getClipboardEntries(bool show_asset_id, std::vector<std::string> &items,
- std::vector<std::string> &disabled_items, U32 flags)
+void LLInvFVBridge::getClipboardEntries(bool show_asset_id,
+ std::vector<std::string> &items,
+ std::vector<std::string> &disabled_items, U32 flags)
{
items.push_back(std::string("Rename"));
if (!isItemRenameable() || (flags & FIRST_SELECTED_ITEM) == 0)
@@ -602,22 +608,21 @@ void LLInvFVBridge::changeCategoryParent(LLInventoryModel* model,
}
-const char* safe_inv_type_lookup(LLInventoryType::EType inv_type)
+const std::string safe_inv_type_lookup(LLInventoryType::EType inv_type)
{
- const char* rv = LLInventoryType::lookup(inv_type);
- if(!rv)
+ const std::string rv= LLInventoryType::lookup(inv_type);
+ if(rv.empty())
{
- const char* INVALID_TYPE = "<invalid>";
- rv = INVALID_TYPE;
+ return std::string("<invalid>");
}
return rv;
}
LLInvFVBridge* LLInvFVBridge::createBridge(LLAssetType::EType asset_type,
- LLInventoryType::EType inv_type,
- LLInventoryPanel* inventory,
- const LLUUID& uuid,
- U32 flags)
+ LLInventoryType::EType inv_type,
+ LLInventoryPanel* inventory,
+ const LLUUID& uuid,
+ U32 flags)
{
LLInvFVBridge* new_listener = NULL;
switch(asset_type)
@@ -910,6 +915,11 @@ void LLItemBridge::buildDisplayName(LLInventoryItem* item, std::string& name)
std::string LLItemBridge::getLabelSuffix() const
{
+ // assume that this won't be called before string table is loaded
+ static const char* NO_COPY =LLTrans::getString("NO_COPY").c_str();
+ static const char* NO_MOD = LLTrans::getString("NO_MOD").c_str();
+ static const char* NO_XFER = LLTrans::getString("NO_XFER").c_str();
+
std::string suffix;
LLInventoryItem* item = getItem();
if(item)
@@ -924,9 +934,6 @@ std::string LLItemBridge::getLabelSuffix() const
gAgent.getID());
const char* EMPTY = "";
- const char* NO_COPY =LLTrans::getString("NO_COPY").c_str();
- const char* NO_MOD = LLTrans::getString("NO_MOD").c_str();
- const char* NO_XFER = LLTrans::getString("NO_XFER").c_str();
const char* scopy;
if(copy) scopy = EMPTY;
else scopy = NO_COPY;
@@ -1021,7 +1028,7 @@ BOOL LLItemBridge::isItemCopyable() const
if (item)
{
// can't copy worn objects. DEV-15183
- LLVOAvatar *avatarp = gAgent.getAvatarObject();
+ LLVOAvatarSelf *avatarp = gAgent.getAvatarObject();
if( !avatarp )
{
return FALSE;
@@ -1108,7 +1115,7 @@ BOOL LLFolderBridge::isItemRemovable()
return FALSE;
}
- LLVOAvatar* avatar = gAgent.getAvatarObject();
+ LLVOAvatarSelf* avatar = gAgent.getAvatarObject();
if( !avatar )
{
return FALSE;
@@ -1145,7 +1152,7 @@ BOOL LLFolderBridge::isItemRemovable()
if( (item->getType() == LLAssetType::AT_CLOTHING) ||
(item->getType() == LLAssetType::AT_BODYPART) )
{
- if( gAgent.isWearingItem( item->getUUID() ) )
+ if( gAgentWearables.isWearingItem( item->getUUID() ) )
{
return FALSE;
}
@@ -1186,7 +1193,7 @@ BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat,
LLInventoryModel* model = getInventoryModel();
if(!model) return FALSE;
- LLVOAvatar* avatar = gAgent.getAvatarObject();
+ LLVOAvatarSelf* avatar = gAgent.getAvatarObject();
if(!avatar) return FALSE;
// cannot drag into library
@@ -1239,7 +1246,7 @@ BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat,
if( (item->getType() == LLAssetType::AT_CLOTHING) ||
(item->getType() == LLAssetType::AT_BODYPART) )
{
- if( gAgent.isWearingItem( item->getUUID() ) )
+ if( gAgentWearables.isWearingItem( item->getUUID() ) )
{
is_movable = FALSE; // It's generally movable, but not into the trash!
break;
@@ -2188,7 +2195,7 @@ void LLFolderBridge::createWearable(LLFolderBridge* bridge, EWearableType type)
// static
void LLFolderBridge::createWearable(LLUUID parent_id, EWearableType type)
{
- LLWearable* wearable = gWearableList.createNewWearable(type);
+ LLWearable* wearable = LLWearableList::instance().createNewWearable(type);
LLAssetType::EType asset_type = wearable->getAssetType();
LLInventoryType::EType inv_type = LLInventoryType::IT_WEARABLE;
create_inventory_item(gAgent.getID(), gAgent.getSessionID(),
@@ -2260,7 +2267,7 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,
return FALSE;
}
- LLVOAvatar* avatar = gAgent.getAvatarObject();
+ LLVOAvatarSelf* avatar = gAgent.getAvatarObject();
if(!avatar) return FALSE;
LLToolDragAndDrop::ESource source = LLToolDragAndDrop::getInstance()->getSource();
@@ -2291,7 +2298,7 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,
{
case LLAssetType::AT_CLOTHING:
case LLAssetType::AT_BODYPART:
- is_movable = !gAgent.isWearingItem(inv_item->getUUID());
+ is_movable = !gAgentWearables.isWearingItem(inv_item->getUUID());
break;
case LLAssetType::AT_OBJECT:
@@ -2577,7 +2584,7 @@ void LLLandmarkBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
}
// Convenience function for the two functions below.
-static void teleport_via_landmark(const LLUUID& asset_id)
+void teleport_via_landmark(const LLUUID& asset_id)
{
gAgent.teleportViaLandmark( asset_id );
@@ -2706,7 +2713,7 @@ void LLCallingCardBridge::performAction(LLFolderView* folder, LLInventoryModel*
if (item && (item->getCreatorUUID() != gAgent.getID()) &&
(!item->getCreatorUUID().isNull()))
{
- handle_lure(item->getCreatorUUID());
+ LLFriendActions::offerTeleport(item->getCreatorUUID());
}
}
else LLItemBridge::performAction(folder, model, action);
@@ -2748,9 +2755,7 @@ void LLCallingCardBridge::openItem()
LLViewerInventoryItem* item = getItem();
if(item && !item->getCreatorUUID().isNull())
{
- BOOL online;
- online = LLAvatarTracker::instance().isBuddyOnline(item->getCreatorUUID());
- LLFloaterAvatarInfo::showFromFriend(item->getCreatorUUID(), online);
+ LLFriendActions::showProfile(item->getCreatorUUID());
}
*/
}
@@ -3109,7 +3114,7 @@ LLUUID LLObjectBridge::sContextMenuItemID;
BOOL LLObjectBridge::isItemRemovable()
{
- LLVOAvatar* avatar = gAgent.getAvatarObject();
+ LLVOAvatarSelf* avatar = gAgent.getAvatarObject();
if(!avatar) return FALSE;
if(avatar->isWearingAttachment(mUUID)) return FALSE;
return LLInvFVBridge::isItemRemovable();
@@ -3120,8 +3125,6 @@ LLUIImagePtr LLObjectBridge::getIcon() const
return get_item_icon(LLAssetType::AT_OBJECT, mInvType, mAttachPt, mIsMultiObject );
}
-void rez_attachment(LLViewerInventoryItem* item, LLViewerJointAttachment* attachment);
-
// virtual
void LLObjectBridge::performAction(LLFolderView* folder, LLInventoryModel* model, std::string action)
{
@@ -3191,7 +3194,7 @@ void LLObjectBridge::openItem()
LLFontGL::StyleFlags LLObjectBridge::getLabelStyle() const
{
- LLVOAvatar* avatar = gAgent.getAvatarObject();
+ LLVOAvatarSelf* avatar = gAgent.getAvatarObject();
if( avatar && avatar->isWearingAttachment( mUUID ) )
{
return LLFontGL::BOLD;
@@ -3204,7 +3207,7 @@ LLFontGL::StyleFlags LLObjectBridge::getLabelStyle() const
std::string LLObjectBridge::getLabelSuffix() const
{
- LLVOAvatar* avatar = gAgent.getAvatarObject();
+ LLVOAvatarSelf* avatar = gAgent.getAvatarObject();
if( avatar && avatar->isWearingAttachment( mUUID ) )
{
std::string attachment_point_name = avatar->getAttachedPointName(mUUID);
@@ -3301,7 +3304,7 @@ void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
LLInventoryItem* item = getItem();
if(item)
{
- LLVOAvatar *avatarp = gAgent.getAvatarObject();
+ LLVOAvatarSelf* avatarp = gAgent.getAvatarObject();
if( !avatarp )
{
return;
@@ -3318,7 +3321,8 @@ void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
items.push_back(std::string("Object Wear"));
items.push_back(std::string("Attach To"));
items.push_back(std::string("Attach To HUD"));
- items.push_back(std::string("Restore to Last Position"));
+ // commented out for DEV-32347
+ //items.push_back(std::string("Restore to Last Position"));
LLMenuGL* attach_menu = menu.getChildMenuByName("Attach To", TRUE);
LLMenuGL* attach_hud_menu = menu.getChildMenuByName("Attach To HUD", TRUE);
@@ -3379,7 +3383,7 @@ BOOL LLObjectBridge::renameItem(const std::string& new_name)
model->updateItem(new_item);
model->notifyObservers();
- LLVOAvatar* avatar = gAgent.getAvatarObject();
+ LLVOAvatarSelf* avatar = gAgent.getAvatarObject();
if( avatar )
{
LLViewerObject* obj = avatar->getWornAttachment( item->getUUID() );
@@ -3435,7 +3439,7 @@ void wear_inventory_item_on_avatar( LLInventoryItem* item )
lldebugs << "wear_inventory_item_on_avatar( " << item->getName()
<< " )" << llendl;
- gWearableList.getAsset(item->getAssetUUID(),
+ LLWearableList::instance().getAsset(item->getAssetUUID(),
item->getName(),
item->getType(),
LLWearableBridge::onWearOnAvatarArrived,
@@ -3443,6 +3447,22 @@ void wear_inventory_item_on_avatar( LLInventoryItem* item )
}
}
+void wear_add_inventory_item_on_avatar( LLInventoryItem* item )
+{
+ if(item)
+ {
+ lldebugs << "wear_add_inventory_item_on_avatar( " << item->getName()
+ << " )" << llendl;
+
+ LLWearableList::instance().getAsset(item->getAssetUUID(),
+ item->getName(),
+ item->getType(),
+ LLWearableBridge::onWearAddOnAvatarArrived,
+ new LLUUID(item->getUUID()));
+ }
+}
+
+
struct LLFoundData
{
LLFoundData(const LLUUID& item_id,
@@ -3856,7 +3876,7 @@ void wear_inventory_category_on_avatar_step2( BOOL proceed, LLUUID category, BOO
gAddToOutfit = append;
found = found_container.get(i);
- gWearableList.getAsset(found->mAssetID,
+ LLWearableList::instance().getAsset(found->mAssetID,
found->mName,
found->mAssetType,
wear_inventory_category_on_avatar_loop,
@@ -3869,7 +3889,7 @@ void wear_inventory_category_on_avatar_step2( BOOL proceed, LLUUID category, BOO
if (!append
&& !(wearable_count == 0 && obj_count == 0 && gest_count > 0) )
{
- LLAgent::userRemoveAllAttachments(NULL);
+ LLAgentWearables::userRemoveAllAttachments(NULL);
}
if( obj_count > 0 )
@@ -3976,18 +3996,6 @@ void wear_inventory_category_on_avatar_step3(LLWearableHoldingPattern* holder, B
item = (LLViewerInventoryItem*)gInventory.getItem(data->mItemID);
if( item && (item->getAssetUUID() == wearable->getID()) )
{
- //RN: after discussing with Brashears, I disabled this code
- //Metadata should reside in the item, not the asset
- //And this code does not handle failed asset uploads properly
-// if(!wearable->isMatchedToInventoryItem(item ))
-// {
-// wearable = gWearableList.createWearableMatchedToInventoryItem( wearable, item );
-// // Now that we have an asset that matches the
-// // item, update the item to point to the new
-// // asset.
-// item->setAssetUUID(wearable->getID());
-// item->updateAssetOnServer();
-// }
items.put(item);
wearables.put(wearable);
}
@@ -3998,7 +4006,7 @@ void wear_inventory_category_on_avatar_step3(LLWearableHoldingPattern* holder, B
if(wearables.count() > 0)
{
- gAgent.setWearableOutfit(items, wearables, !append);
+ gAgentWearables.setWearableOutfit(items, wearables, !append);
gInventory.notifyObservers();
}
@@ -4069,9 +4077,9 @@ void remove_inventory_category_from_avatar_step2( BOOL proceed, LLUUID category_
{
for(i = 0; i < wearable_count; ++i)
{
- if( gAgent.isWearingItem (item_array.get(i)->getUUID()) )
+ if( gAgentWearables.isWearingItem (item_array.get(i)->getUUID()) )
{
- gWearableList.getAsset(item_array.get(i)->getAssetUUID(),
+ LLWearableList::instance().getAsset(item_array.get(i)->getAssetUUID(),
item_array.get(i)->getName(),
item_array.get(i)->getType(),
LLWearableBridge::onRemoveFromAvatarArrived,
@@ -4124,22 +4132,22 @@ void remove_inventory_category_from_avatar_step2( BOOL proceed, LLUUID category_
BOOL LLWearableBridge::renameItem(const std::string& new_name)
{
- if( gAgent.isWearingItem( mUUID ) )
+ if( gAgentWearables.isWearingItem( mUUID ) )
{
- gAgent.setWearableName( mUUID, new_name );
+ gAgentWearables.setWearableName( mUUID, new_name );
}
return LLItemBridge::renameItem(new_name);
}
BOOL LLWearableBridge::isItemRemovable()
{
- if(gAgent.isWearingItem(mUUID)) return FALSE;
+ if(gAgentWearables.isWearingItem(mUUID)) return FALSE;
return LLInvFVBridge::isItemRemovable();
}
LLFontGL::StyleFlags LLWearableBridge::getLabelStyle() const
{
- if( gAgent.isWearingItem( mUUID ) )
+ if( gAgentWearables.isWearingItem( mUUID ) )
{
// llinfos << "BOLD" << llendl;
return LLFontGL::BOLD;
@@ -4152,7 +4160,7 @@ LLFontGL::StyleFlags LLWearableBridge::getLabelStyle() const
std::string LLWearableBridge::getLabelSuffix() const
{
- if( gAgent.isWearingItem( mUUID ) )
+ if( gAgentWearables.isWearingItem( mUUID ) )
{
return LLItemBridge::getLabelSuffix() + " (worn)";
}
@@ -4174,6 +4182,10 @@ void LLWearableBridge::performAction(LLFolderView* folder, LLInventoryModel* mod
{
wearOnAvatar();
}
+ else if ("wear_add" == action)
+ {
+ wearAddOnAvatar();
+ }
else if ("edit" == action)
{
editOnAvatar();
@@ -4181,12 +4193,12 @@ void LLWearableBridge::performAction(LLFolderView* folder, LLInventoryModel* mod
}
else if ("take_off" == action)
{
- if(gAgent.isWearingItem(mUUID))
+ if(gAgentWearables.isWearingItem(mUUID))
{
LLViewerInventoryItem* item = getItem();
if (item)
{
- gWearableList.getAsset(item->getAssetUUID(),
+ LLWearableList::instance().getAsset(item->getAssetUUID(),
item->getName(),
item->getType(),
LLWearableBridge::onRemoveFromAvatarArrived,
@@ -4212,7 +4224,7 @@ void LLWearableBridge::openItem()
}
else if(isAgentInventory())
{
- if( !gAgent.isWearingItem( mUUID ) )
+ if( !gAgentWearables.isWearingItem( mUUID ) )
{
wearOnAvatar();
}
@@ -4281,6 +4293,7 @@ void LLWearableBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
items.push_back(std::string("Wearable Separator"));
items.push_back(std::string("Wearable Wear"));
+ items.push_back(std::string("Wearable Add"));
items.push_back(std::string("Wearable Edit"));
if ((flags & FIRST_SELECTED_ITEM) == 0)
@@ -4307,7 +4320,7 @@ BOOL LLWearableBridge::canWearOnAvatar(void* user_data)
LLViewerInventoryItem* item = (LLViewerInventoryItem*)self->getItem();
if(!item || !item->isComplete()) return FALSE;
}
- return (!gAgent.isWearingItem(self->mUUID));
+ return (!gAgentWearables.isWearingItem(self->mUUID));
}
// Called from menus
@@ -4323,7 +4336,7 @@ void LLWearableBridge::wearOnAvatar()
{
// Don't wear anything until initial wearables are loaded, can
// destroy clothing items.
- if (!gAgent.areWearablesLoaded())
+ if (!gAgentWearables.areWearablesLoaded())
{
LLNotifications::instance().add("CanNotChangeAppearanceUntilLoaded");
return;
@@ -4350,6 +4363,37 @@ void LLWearableBridge::wearOnAvatar()
}
}
+void LLWearableBridge::wearAddOnAvatar()
+{
+ // Don't wear anything until initial wearables are loaded, can
+ // destroy clothing items.
+ if (!gAgentWearables.areWearablesLoaded())
+ {
+ LLNotifications::instance().add("CanNotChangeAppearanceUntilLoaded");
+ return;
+ }
+
+ LLViewerInventoryItem* item = getItem();
+ if(item)
+ {
+ if(!isAgentInventory())
+ {
+ LLPointer<LLInventoryCallback> cb = new WearOnAvatarCallback();
+ copy_inventory_item(
+ gAgent.getID(),
+ item->getPermissions().getOwner(),
+ item->getUUID(),
+ LLUUID::null,
+ std::string(),
+ cb);
+ }
+ else
+ {
+ wear_add_inventory_item_on_avatar(item);
+ }
+ }
+}
+
// static
void LLWearableBridge::onWearOnAvatarArrived( LLWearable* wearable, void* userdata )
{
@@ -4362,22 +4406,33 @@ void LLWearableBridge::onWearOnAvatarArrived( LLWearable* wearable, void* userda
{
if(item->getAssetUUID() == wearable->getID())
{
- //RN: after discussing with Brashears, I disabled this code
- //Metadata should reside in the item, not the asset
- //And this code does not handle failed asset uploads properly
+ gAgentWearables.setWearable(item, wearable);
+ gInventory.notifyObservers();
+ //self->getFolderItem()->refreshFromRoot();
+ }
+ else
+ {
+ llinfos << "By the time wearable asset arrived, its inv item already pointed to a different asset." << llendl;
+ }
+ }
+ }
+ delete item_id;
+}
-// if(!wearable->isMatchedToInventoryItem(item))
-// {
-// LLWearable* new_wearable = gWearableList.createWearableMatchedToInventoryItem( wearable, item );
-//
-// // Now that we have an asset that matches the
-// // item, update the item to point to the new
-// // asset.
-// item->setAssetUUID(new_wearable->getID());
-// item->updateAssetOnServer();
-// wearable = new_wearable;
-// }
- gAgent.setWearable(item, wearable);
+// static
+void LLWearableBridge::onWearAddOnAvatarArrived( LLWearable* wearable, void* userdata )
+{
+ LLUUID* item_id = (LLUUID*) userdata;
+ if(wearable)
+ {
+ LLViewerInventoryItem* item = NULL;
+ item = (LLViewerInventoryItem*)gInventory.getItem(*item_id);
+ if(item)
+ {
+ if(item->getAssetUUID() == wearable->getID())
+ {
+ bool do_append = true;
+ gAgentWearables.setWearable(item, wearable, do_append);
gInventory.notifyObservers();
//self->getFolderItem()->refreshFromRoot();
}
@@ -4396,7 +4451,7 @@ BOOL LLWearableBridge::canEditOnAvatar(void* user_data)
LLWearableBridge* self = (LLWearableBridge*)user_data;
if(!self) return FALSE;
- return (gAgent.isWearingItem(self->mUUID));
+ return (gAgentWearables.isWearingItem(self->mUUID));
}
// static
@@ -4411,7 +4466,7 @@ void LLWearableBridge::onEditOnAvatar(void* user_data)
void LLWearableBridge::editOnAvatar()
{
- LLWearable* wearable = gAgent.getWearableFromWearableItem(mUUID);
+ LLWearable* wearable = gAgentWearables.getWearableFromWearableItem(mUUID);
if( wearable )
{
// Set the tab to the right wearable.
@@ -4432,7 +4487,7 @@ BOOL LLWearableBridge::canRemoveFromAvatar(void* user_data)
LLWearableBridge* self = (LLWearableBridge*)user_data;
if( self && (LLAssetType::AT_BODYPART != self->mAssetType) )
{
- return gAgent.isWearingItem( self->mUUID );
+ return gAgentWearables.isWearingItem( self->mUUID );
}
return FALSE;
}
@@ -4442,12 +4497,12 @@ void LLWearableBridge::onRemoveFromAvatar(void* user_data)
{
LLWearableBridge* self = (LLWearableBridge*)user_data;
if(!self) return;
- if(gAgent.isWearingItem(self->mUUID))
+ if(gAgentWearables.isWearingItem(self->mUUID))
{
LLViewerInventoryItem* item = self->getItem();
if (item)
{
- gWearableList.getAsset(item->getAssetUUID(),
+ LLWearableList::instance().getAsset(item->getAssetUUID(),
item->getName(),
item->getType(),
onRemoveFromAvatarArrived,
@@ -4463,14 +4518,16 @@ void LLWearableBridge::onRemoveFromAvatarArrived(LLWearable* wearable,
LLUUID* item_id = (LLUUID*) userdata;
if(wearable)
{
- if( gAgent.isWearingItem( *item_id ) )
+ if( gAgentWearables.isWearingItem( *item_id ) )
{
EWearableType type = wearable->getType();
if( !(type==WT_SHAPE || type==WT_SKIN || type==WT_HAIR || type==WT_EYES ) ) //&&
//!((!gAgent.isTeen()) && ( type==WT_UNDERPANTS || type==WT_UNDERSHIRT )) )
{
- gAgent.removeWearable( type );
+ // MULTI_WEARABLE: FIXME HACK - always remove all
+ bool do_remove_all = false;
+ gAgentWearables.removeWearable( type, do_remove_all, 0 );
}
}
}
@@ -4533,9 +4590,21 @@ LLInvFVBridgeAction* LLInvFVBridgeAction::createAction(LLAssetType::EType asset_
}
//static
-void LLInvFVBridgeAction::doAction(LLAssetType::EType asset_type,
- const LLUUID& uuid,LLInventoryModel* model)
+void LLInvFVBridgeAction::doAction(LLAssetType::EType asset_type,
+ const LLUUID& uuid,LLInventoryModel* model)
+{
+ LLInvFVBridgeAction* action = createAction(asset_type,uuid,model);
+ if(action)
+ {
+ action->doIt();
+ delete action;
+ }
+}
+
+//static
+void LLInvFVBridgeAction::doAction(const LLUUID& uuid, LLInventoryModel* model)
{
+ LLAssetType::EType asset_type = model->getItem(uuid)->getType();
LLInvFVBridgeAction* action = createAction(asset_type,uuid,model);
if(action)
{
@@ -4596,11 +4665,9 @@ void LLLandmarkBridgeAction::doIt()
void LLCallingCardBridgeAction::doIt()
{
LLViewerInventoryItem* item = getItem();
- if(item && !item->getCreatorUUID().isNull())
+ if(item && item->getCreatorUUID().notNull())
{
- BOOL online;
- online = LLAvatarTracker::instance().isBuddyOnline(item->getCreatorUUID());
- LLFloaterAvatarInfo::showFromFriend(item->getCreatorUUID(), online);
+ LLFriendActions::showProfile(item->getCreatorUUID());
}
LLInvFVBridgeAction::doIt();
@@ -4685,7 +4752,7 @@ void LLWearableBridgeAction::wearOnAvatar()
{
// Don't wear anything until initial wearables are loaded, can
// destroy clothing items.
- if (!gAgent.areWearablesLoaded())
+ if (!gAgentWearables.areWearablesLoaded())
{
LLNotifications::instance().add("CanNotChangeAppearanceUntilLoaded");
return;
@@ -4721,7 +4788,7 @@ void LLWearableBridgeAction::doIt()
}
else if(isAgentInventory())
{
- if( !gAgent.isWearingItem( mUUID ) )
+ if( !gAgentWearables.isWearingItem( mUUID ) )
{
wearOnAvatar();
}
diff --git a/indra/newview/llinventorybridge.h b/indra/newview/llinventorybridge.h
index b66228c75a..b55a6a658b 100644
--- a/indra/newview/llinventorybridge.h
+++ b/indra/newview/llinventorybridge.h
@@ -30,6 +30,9 @@
* $/LicenseInfo$
*/
+#ifndef LL_LLINVENTORYBRIDGE_H
+#define LL_LLINVENTORYBRIDGE_H
+
#include "llfloaterproperties.h"
#include "llwearable.h"
#include "llviewercontrol.h"
@@ -66,6 +69,8 @@ enum EInventoryIcon
CLOTHING_UNDERSHIRT_ICON_NAME,
CLOTHING_UNDERPANTS_ICON_NAME,
CLOTHING_SKIRT_ICON_NAME,
+ CLOTHING_ALPHA_ICON_NAME,
+ CLOTHING_TATTOO_ICON_NAME,
ANIMATION_ICON_NAME,
GESTURE_ICON_NAME,
@@ -532,6 +537,9 @@ public:
static void onWearOnAvatarArrived( LLWearable* wearable, void* userdata );
void wearOnAvatar();
+ static void onWearAddOnAvatarArrived( LLWearable* wearable, void* userdata );
+ void wearAddOnAvatar();
+
static BOOL canEditOnAvatar( void* userdata ); // Access to editOnAvatar() from menu
static void onEditOnAvatar( void* userdata );
void editOnAvatar();
@@ -712,3 +720,183 @@ protected:
void wearOnAvatar();
};
+
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+// Class LLInvFVBridgeAction (& it's derived classes)
+//
+// This is an implementation class to be able to
+// perform action to view inventory items.
+//
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+class LLInvFVBridgeAction
+{
+public:
+ // This method is a convenience function which creates the correct
+ // type of bridge action based on some basic information
+ static LLInvFVBridgeAction* createAction(LLAssetType::EType asset_type,
+ const LLUUID& uuid,LLInventoryModel* model);
+
+ static void doAction(LLAssetType::EType asset_type,
+ const LLUUID& uuid, LLInventoryModel* model);
+ static void doAction(const LLUUID& uuid, LLInventoryModel* model);
+
+ virtual void doIt() { };
+ virtual ~LLInvFVBridgeAction(){}//need this because of warning on OSX
+protected:
+ LLInvFVBridgeAction(const LLUUID& id,LLInventoryModel* model):mUUID(id),mModel(model){}
+
+ LLViewerInventoryItem* getItem() const;
+protected:
+ const LLUUID& mUUID; // item id
+ LLInventoryModel* mModel;
+
+};
+
+
+
+class LLTextureBridgeAction: public LLInvFVBridgeAction
+{
+ friend class LLInvFVBridgeAction;
+public:
+ virtual void doIt() ;
+ virtual ~LLTextureBridgeAction(){}
+protected:
+ LLTextureBridgeAction(const LLUUID& id,LLInventoryModel* model):LLInvFVBridgeAction(id,model){}
+
+};
+
+
+class LLSoundBridgeAction: public LLInvFVBridgeAction
+{
+ friend class LLInvFVBridgeAction;
+public:
+ virtual void doIt() ;
+ virtual ~LLSoundBridgeAction(){}
+protected:
+ LLSoundBridgeAction(const LLUUID& id,LLInventoryModel* model):LLInvFVBridgeAction(id,model){}
+
+};
+
+
+class LLLandmarkBridgeAction: public LLInvFVBridgeAction
+{
+ friend class LLInvFVBridgeAction;
+public:
+ virtual void doIt() ;
+ virtual ~LLLandmarkBridgeAction(){}
+protected:
+ LLLandmarkBridgeAction(const LLUUID& id,LLInventoryModel* model):LLInvFVBridgeAction(id,model){}
+
+};
+
+
+class LLCallingCardBridgeAction: public LLInvFVBridgeAction
+{
+ friend class LLInvFVBridgeAction;
+public:
+ virtual void doIt() ;
+ virtual ~LLCallingCardBridgeAction(){}
+protected:
+ LLCallingCardBridgeAction(const LLUUID& id,LLInventoryModel* model):LLInvFVBridgeAction(id,model){}
+
+};
+
+
+class LLNotecardBridgeAction: public LLInvFVBridgeAction
+{
+ friend class LLInvFVBridgeAction;
+public:
+ virtual void doIt() ;
+ virtual ~LLNotecardBridgeAction(){}
+protected:
+ LLNotecardBridgeAction(const LLUUID& id,LLInventoryModel* model):LLInvFVBridgeAction(id,model){}
+
+};
+
+
+class LLGestureBridgeAction: public LLInvFVBridgeAction
+{
+ friend class LLInvFVBridgeAction;
+public:
+ virtual void doIt() ;
+ virtual ~LLGestureBridgeAction(){}
+protected:
+ LLGestureBridgeAction(const LLUUID& id,LLInventoryModel* model):LLInvFVBridgeAction(id,model){}
+
+};
+
+
+class LLAnimationBridgeAction: public LLInvFVBridgeAction
+{
+ friend class LLInvFVBridgeAction;
+public:
+ virtual void doIt() ;
+ virtual ~LLAnimationBridgeAction(){}
+protected:
+ LLAnimationBridgeAction(const LLUUID& id,LLInventoryModel* model):LLInvFVBridgeAction(id,model){}
+
+};
+
+
+class LLObjectBridgeAction: public LLInvFVBridgeAction
+{
+ friend class LLInvFVBridgeAction;
+public:
+ virtual void doIt() ;
+ virtual ~LLObjectBridgeAction(){}
+protected:
+ LLObjectBridgeAction(const LLUUID& id,LLInventoryModel* model):LLInvFVBridgeAction(id,model){}
+
+};
+
+
+class LLLSLTextBridgeAction: public LLInvFVBridgeAction
+{
+ friend class LLInvFVBridgeAction;
+public:
+ virtual void doIt() ;
+ virtual ~LLLSLTextBridgeAction(){}
+protected:
+ LLLSLTextBridgeAction(const LLUUID& id,LLInventoryModel* model):LLInvFVBridgeAction(id,model){}
+
+};
+
+
+class LLWearableBridgeAction: public LLInvFVBridgeAction
+{
+ friend class LLInvFVBridgeAction;
+public:
+ virtual void doIt();
+ virtual ~LLWearableBridgeAction(){}
+protected:
+ LLWearableBridgeAction(const LLUUID& id,LLInventoryModel* model):LLInvFVBridgeAction(id,model){}
+
+
+ BOOL isInTrash() const;
+ // return true if the item is in agent inventory. if false, it
+ // must be lost or in the inventory library.
+ BOOL isAgentInventory() const;
+
+ void wearOnAvatar();
+
+};
+
+void wear_inventory_item_on_avatar(LLInventoryItem* item);
+void wear_outfit_by_name(const std::string& name);
+void wear_inventory_category(LLInventoryCategory* category, bool copy, bool append);
+
+void rez_attachment(LLViewerInventoryItem* item, LLViewerJointAttachment* attachment);
+
+// Move items from an in-world object's "Contents" folder to a specified
+// folder in agent inventory.
+BOOL move_inv_category_world_to_agent(const LLUUID& object_id,
+ const LLUUID& category_id,
+ BOOL drop,
+ void (*callback)(S32, void*) = NULL,
+ void* user_data = NULL);
+
+
+
+void teleport_via_landmark(const LLUUID& asset_id);
+
+#endif // LL_LLINVENTORYBRIDGE_H
diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp
index 4e2bb3e2e9..9177d51d5c 100644
--- a/indra/newview/llinventorymodel.cpp
+++ b/indra/newview/llinventorymodel.cpp
@@ -42,8 +42,10 @@
#include "message.h"
#include "llagent.h"
+#include "llagentwearables.h"
#include "llfloater.h"
#include "llfocusmgr.h"
+#include "llinventorybridge.h"
#include "llinventoryview.h"
#include "llviewerinventory.h"
#include "llviewermessage.h"
@@ -53,11 +55,11 @@
#include "lldbstrings.h"
#include "llviewerstats.h"
#include "llmutelist.h"
-#include "llnotify.h"
+#include "llnotifications.h"
#include "llcallbacklist.h"
#include "llpreview.h"
#include "llviewercontrol.h"
-#include "llvoavatar.h"
+#include "llvoavatarself.h"
#include "llsdutil.h"
#include <deque>
@@ -87,34 +89,6 @@ static std::deque<LLUUID> sFetchQueue;
const F32 MAX_TIME_FOR_SINGLE_FETCH = 10.f;
const S32 MAX_FETCH_RETRIES = 10;
const char CACHE_FORMAT_STRING[] = "%s.inv";
-const char* NEW_CATEGORY_NAME = "New Folder";
-const char* NEW_CATEGORY_NAMES[LLAssetType::AT_COUNT] =
-{
- "Textures", // AT_TEXTURE
- "Sounds", // AT_SOUND
- "Calling Cards", // AT_CALLINGCARD
- "Landmarks", // AT_LANDMARK
- "Scripts", // AT_SCRIPT (deprecated?)
- "Clothing", // AT_CLOTHING
- "Objects", // AT_OBJECT
- "Notecards", // AT_NOTECARD
- "New Folder", // AT_CATEGORY
- "Inventory", // AT_ROOT_CATEGORY
- "Scripts", // AT_LSL_TEXT
- "Scripts", // AT_LSL_BYTECODE
- "Uncompressed Images", // AT_TEXTURE_TGA
- "Body Parts", // AT_BODYPART
- "Trash", // AT_TRASH
- "Photo Album", // AT_SNAPSHOT_CATEGORY
- "Lost And Found", // AT_LOST_AND_FOUND
- "Uncompressed Sounds", // AT_SOUND_WAV
- "Uncompressed Images", // AT_IMAGE_TGA
- "Uncompressed Images", // AT_IMAGE_JPEG
- "Animations", // AT_ANIMATION
- "Gestures", // AT_GESTURE
- "New Folder", // AT_SIMSTATE
- "My Favorites" //AT_FAVORITE
-};
struct InventoryIDPtrLess
{
@@ -389,15 +363,9 @@ LLUUID LLInventoryModel::createNewCategory(const LLUUID& parent_id,
{
name.assign(pname);
}
- else if((preferred_type >= LLAssetType::AT_TEXTURE) &&
- //why < LLAssetType::AT_SIMSTATE??? if preferred_type == LLAssetType::AT_SIMSTATE that will be handled above
- (preferred_type < LLAssetType::AT_COUNT))
- {
- name.assign(NEW_CATEGORY_NAMES[preferred_type]);
- }
else
{
- name.assign(NEW_CATEGORY_NAME);
+ name.assign(LLAssetType::lookupCategoryName(preferred_type));
}
// Add the category to the internal representation
@@ -547,7 +515,7 @@ U32 LLInventoryModel::updateItem(const LLViewerInventoryItem* item)
LLViewerInventoryItem* old_item = getItem(item->getUUID());
if(old_item)
{
- // We already have an old item, modify it's values
+ // We already have an old item, modify its values
LLUUID old_parent_id = old_item->getParentUUID();
LLUUID new_parent_id = item->getParentUUID();
if(old_parent_id != new_parent_id)
@@ -1044,7 +1012,7 @@ void LLInventoryModel::mock(const LLUUID& root_id)
root_id,
LLUUID::null,
LLAssetType::AT_CATEGORY,
- NEW_CATEGORY_NAMES[LLAssetType::AT_ROOT_CATEGORY],
+ LLAssetType::lookupCategoryName(LLAssetType::AT_ROOT_CATEGORY),
gAgent.getID());
addCategory(cat);
gInventory.buildParentChildMap();
@@ -1876,56 +1844,63 @@ bool LLInventoryModel::isCategoryComplete(const LLUUID& cat_id) const
}
bool LLInventoryModel::loadSkeleton(
- const LLSD& options,
+ const LLInventoryModel::options_t& options,
const LLUUID& owner_id)
{
lldebugs << "importing inventory skeleton for " << owner_id << llendl;
typedef std::set<LLPointer<LLViewerInventoryCategory>, InventoryIDPtrLess> cat_set_t;
cat_set_t temp_cats;
- bool rv = true;
- for(LLSD::array_const_iterator it = options.beginArray(),
- end = options.endArray(); it != end; ++it)
- {
- LLSD name = (*it)["name"];
- LLSD folder_id = (*it)["folder_id"];
- LLSD parent_id = (*it)["parent_id"];
- LLSD version = (*it)["version"];
- if(name.isDefined()
- && folder_id.isDefined()
- && parent_id.isDefined()
- && version.isDefined()
- && folder_id.asUUID().notNull() // if an id is null, it locks the viewer.
- )
- {
- LLPointer<LLViewerInventoryCategory> cat = new LLViewerInventoryCategory(owner_id);
- cat->rename(name.asString());
- cat->setUUID(folder_id.asUUID());
- cat->setParent(parent_id.asUUID());
+ update_map_t child_counts;
- LLAssetType::EType preferred_type = LLAssetType::AT_NONE;
- LLSD type_default = (*it)["type_default"];
- if(type_default.isDefined())
- {
- preferred_type = (LLAssetType::EType)type_default.asInteger();
- }
- cat->setPreferredType(preferred_type);
- cat->setVersion(version.asInteger());
- temp_cats.insert(cat);
+ LLUUID id;
+ LLAssetType::EType preferred_type;
+ bool rv = true;
+ for(options_t::const_iterator it = options.begin(); it < options.end(); ++it)
+ {
+ LLPointer<LLViewerInventoryCategory> cat = new LLViewerInventoryCategory(owner_id);
+ response_t::const_iterator no_response = (*it).end();
+ response_t::const_iterator skel;
+ skel = (*it).find("name");
+ if(skel == no_response) goto clean_cat;
+ cat->rename(std::string((*skel).second));
+ skel = (*it).find("folder_id");
+ if(skel == no_response) goto clean_cat;
+ id.set((*skel).second);
+ // if an id is null, it locks the viewer.
+ if(id.isNull()) goto clean_cat;
+ cat->setUUID(id);
+ skel = (*it).find("parent_id");
+ if(skel == no_response) goto clean_cat;
+ id.set((*skel).second);
+ cat->setParent(id);
+ skel = (*it).find("type_default");
+ if(skel == no_response)
+ {
+ preferred_type = LLAssetType::AT_NONE;
}
else
{
- llwarns << "Unable to import near " << name.asString() << llendl;
- rv = false;
+ S32 t = atoi((*skel).second.c_str());
+ preferred_type = (LLAssetType::EType)t;
}
+ cat->setPreferredType(preferred_type);
+ skel = (*it).find("version");
+ if(skel == no_response) goto clean_cat;
+ cat->setVersion(atoi((*skel).second.c_str()));
+ temp_cats.insert(cat);
+ continue;
+ clean_cat:
+ llwarns << "Unable to import near " << cat->getName() << llendl;
+ rv = false;
+ //delete cat; // automatic when cat is reasigned or destroyed
}
S32 cached_category_count = 0;
S32 cached_item_count = 0;
if(!temp_cats.empty())
{
- update_map_t child_counts;
cat_array_t categories;
item_array_t items;
std::string owner_id_str;
@@ -1954,7 +1929,6 @@ bool LLInventoryModel::loadSkeleton(
llinfos << "Unable to gunzip " << gzip_filename << llendl;
}
}
-
if(loadFromFile(inventory_filename, categories, items))
{
// We were able to find a cache of files. So, use what we
@@ -2079,84 +2053,85 @@ bool LLInventoryModel::loadSkeleton(
return rv;
}
-bool LLInventoryModel::loadMeat(const LLSD& options, const LLUUID& owner_id)
+bool LLInventoryModel::loadMeat(
+ const LLInventoryModel::options_t& options, const LLUUID& owner_id)
{
llinfos << "importing inventory for " << owner_id << llendl;
+ LLPermissions default_perm;
+ default_perm.init(LLUUID::null, owner_id, LLUUID::null, LLUUID::null);
+ LLPointer<LLViewerInventoryItem> item;
+ LLUUID id;
+ LLAssetType::EType type;
+ LLInventoryType::EType inv_type;
bool rv = true;
- for(LLSD::array_const_iterator it = options.beginArray(),
- end = options.endArray(); it != end; ++it)
- {
- LLSD name = (*it)["name"];
- LLSD item_id = (*it)["item_id"];
- LLSD parent_id = (*it)["parent_id"];
- LLSD asset_type = (*it)["type"];
- LLSD data_id = (*it)["data_id"];
- if(name.isDefined()
- && item_id.isDefined()
- && parent_id.isDefined()
- && asset_type.isDefined()
- && data_id.isDefined())
+ for(options_t::const_iterator it = options.begin(); it < options.end(); ++it)
+ {
+ item = new LLViewerInventoryItem;
+ response_t::const_iterator no_response = (*it).end();
+ response_t::const_iterator meat;
+ meat = (*it).find("name");
+ if(meat == no_response) goto clean_item;
+ item->rename(std::string((*meat).second));
+ meat = (*it).find("item_id");
+ if(meat == no_response) goto clean_item;
+ id.set((*meat).second);
+ item->setUUID(id);
+ meat = (*it).find("parent_id");
+ if(meat == no_response) goto clean_item;
+ id.set((*meat).second);
+ item->setParent(id);
+ meat = (*it).find("type");
+ if(meat == no_response) goto clean_item;
+ type = (LLAssetType::EType)atoi((*meat).second.c_str());
+ item->setType(type);
+ meat = (*it).find("inv_type");
+ if(meat != no_response)
+ {
+ inv_type = (LLInventoryType::EType)atoi((*meat).second.c_str());
+ item->setInventoryType(inv_type);
+ }
+ meat = (*it).find("data_id");
+ if(meat == no_response) goto clean_item;
+ id.set((*meat).second);
+ if(LLAssetType::AT_CALLINGCARD == type)
+ {
+ LLPermissions perm;
+ perm.init(id, owner_id, LLUUID::null, LLUUID::null);
+ item->setPermissions(perm);
+ }
+ else
{
- LLPointer<LLViewerInventoryItem> item = new LLViewerInventoryItem;
- item->rename(name.asString());
- item->setUUID(item_id.asUUID());
- item->setParent(parent_id.asUUID());
- LLAssetType::EType type = (LLAssetType::EType)asset_type.asInteger();
- item->setType(type);
-
- LLSD llsd_inv_type = (*it)["inv_type"];
- if(llsd_inv_type.isDefined())
- {
- LLInventoryType::EType inv_type = (LLInventoryType::EType)llsd_inv_type.asInteger();
- item->setInventoryType(inv_type);
- }
-
- if(LLAssetType::AT_CALLINGCARD == type)
+ meat = (*it).find("perm_mask");
+ if(meat != no_response)
{
- LLPermissions perm;
- perm.init(data_id.asUUID(), owner_id, LLUUID::null, LLUUID::null);
- item->setPermissions(perm);
+ PermissionMask perm_mask = atoi((*meat).second.c_str());
+ default_perm.initMasks(
+ perm_mask, perm_mask, perm_mask, perm_mask, perm_mask);
}
else
{
- LLPermissions default_perm;
- default_perm.init(LLUUID::null, owner_id, LLUUID::null, LLUUID::null);
- LLSD llsd_perm_mask = (*it)["perm_mask"];
- if(llsd_perm_mask.isDefined())
- {
- PermissionMask perm_mask = llsd_perm_mask.asInteger();
- default_perm.initMasks(
- perm_mask, perm_mask, perm_mask, perm_mask, perm_mask);
- }
- else
- {
- default_perm.initMasks(
- PERM_NONE, PERM_NONE, PERM_NONE, PERM_NONE, PERM_NONE);
- }
- item->setPermissions(default_perm);
- item->setAssetUUID(data_id.asUUID());
+ default_perm.initMasks(
+ PERM_NONE, PERM_NONE, PERM_NONE, PERM_NONE, PERM_NONE);
}
-
- LLSD flags = (*it)["flags"];
- if(flags.isDefined())
- {
- // Not sure how well LLSD.asInteger() maps to
- // unsigned long - using strtoul()
- item->setFlags(strtoul(flags.asString().c_str(), NULL, 0));
- }
-
- LLSD time = (*it)["time"];
- if(time.isDefined())
- {
- item->setCreationDate(time.asInteger());
- }
- addItem(item);
+ item->setPermissions(default_perm);
+ item->setAssetUUID(id);
}
- else
+ meat = (*it).find("flags");
+ if(meat != no_response)
+ {
+ item->setFlags(strtoul((*meat).second.c_str(), NULL, 0));
+ }
+ meat = (*it).find("time");
+ if(meat != no_response)
{
- llwarns << "Unable to import near " << name.asString() << llendl;
- rv = false;
+ item->setCreationDate(atoi((*meat).second.c_str()));
}
+ addItem(item);
+ continue;
+ clean_item:
+ llwarns << "Unable to import near " << item->getName() << llendl;
+ rv = false;
+ //delete item; // automatic when item is reassigned or destroyed
}
return rv;
}
@@ -3153,6 +3128,63 @@ void LLInventoryModel::processMoveInventoryItem(LLMessageSystem* msg, void**)
}
}
+//----------------------------------------------------------------------------
+
+// Trash: LLAssetType::AT_TRASH, "ConfirmEmptyTrash"
+// Lost&Found: LLAssetType::AT_LOST_AND_FOUND, "ConfirmEmptyLostAndFound"
+
+bool LLInventoryModel::callbackEmptyFolderType(const LLSD& notification, const LLSD& response, LLAssetType::EType folder_type)
+{
+ S32 option = LLNotification::getSelectedOption(notification, response);
+ if (option == 0) // YES
+ {
+ LLUUID folder_id = findCategoryUUIDForType(folder_type);
+ purgeDescendentsOf(folder_id);
+ notifyObservers();
+ }
+ return false;
+}
+
+void LLInventoryModel::emptyFolderType(const std::string notification, LLAssetType::EType folder_type)
+{
+ if (!notification.empty())
+ {
+ LLNotifications::instance().add(notification, LLSD(), LLSD(),
+ boost::bind(&LLInventoryModel::callbackEmptyFolderType, this, _1, _2, folder_type));
+ }
+ else
+ {
+ LLUUID folder_id = findCategoryUUIDForType(folder_type);
+ purgeDescendentsOf(folder_id);
+ notifyObservers();
+ }
+}
+
+//----------------------------------------------------------------------------
+
+void LLInventoryModel::removeItem(const LLUUID& item_id)
+{
+ LLViewerInventoryItem* item = getItem(item_id);
+ const LLUUID& new_parent = findCategoryUUIDForType(LLAssetType::AT_TRASH);
+ if (item && item->getParentUUID() != new_parent)
+ {
+ LLInventoryModel::update_list_t update;
+ LLInventoryModel::LLCategoryUpdate old_folder(item->getParentUUID(),-1);
+ update.push_back(old_folder);
+ LLInventoryModel::LLCategoryUpdate new_folder(new_parent, 1);
+ update.push_back(new_folder);
+ accountForUpdate(update);
+
+ LLPointer<LLViewerInventoryItem> new_item = new LLViewerInventoryItem(item);
+ new_item->setParent(new_parent);
+ new_item->updateParentOnServer(TRUE);
+ updateItem(new_item);
+ notifyObservers();
+ }
+}
+
+//----------------------------------------------------------------------------
+
// *NOTE: DEBUG functionality
void LLInventoryModel::dumpInventory()
{
@@ -3200,7 +3232,7 @@ bool LLInventoryCollectFunctor::itemTransferCommonlyAllowed(LLInventoryItem* ite
return false;
bool allowed = false;
- LLVOAvatar* my_avatar = NULL;
+ LLVOAvatarSelf* my_avatar = NULL;
switch(item->getType())
{
@@ -3218,7 +3250,7 @@ bool LLInventoryCollectFunctor::itemTransferCommonlyAllowed(LLInventoryItem* ite
case LLAssetType::AT_BODYPART:
case LLAssetType::AT_CLOTHING:
- if(!gAgent.isWearingItem(item->getUUID()))
+ if(!gAgentWearables.isWearingItem(item->getUUID()))
{
allowed = true;
}
diff --git a/indra/newview/llinventorymodel.h b/indra/newview/llinventorymodel.h
index fcb3cc737a..0ba64d20e4 100644
--- a/indra/newview/llinventorymodel.h
+++ b/indra/newview/llinventorymodel.h
@@ -363,7 +363,15 @@ public:
// returns true iff category version is known and theoretical
// descendents == actual descendents.
bool isCategoryComplete(const LLUUID& cat_id) const;
+
+ // callbacks
+ // Trigger a notification and empty the folder type (AT_TRASH or AT_LOST_AND_FOUND) if confirmed
+ void emptyFolderType(const std::string notification, LLAssetType::EType folder_type);
+ bool callbackEmptyFolderType(const LLSD& notification, const LLSD& response, LLAssetType::EType folder_type);
+ // Utility Functions
+ void removeItem(const LLUUID& item_id);
+
// start and stop background breadth-first fetching of inventory contents
// this gets triggered when performing a filter-search
static void startBackgroundFetch(const LLUUID& cat_id = LLUUID::null); // start fetch process
diff --git a/indra/newview/lljoystickbutton.cpp b/indra/newview/lljoystickbutton.cpp
index 539d889c51..8e6889a379 100644
--- a/indra/newview/lljoystickbutton.cpp
+++ b/indra/newview/lljoystickbutton.cpp
@@ -49,11 +49,11 @@
#include "llglheaders.h"
-static LLRegisterWidget<LLJoystickAgentSlide> r1("joystick_slide");
-static LLRegisterWidget<LLJoystickAgentTurn> r2("joystick_turn");
-static LLRegisterWidget<LLJoystickCameraRotate> r3("joystick_rotate");
-static LLRegisterWidget<LLJoystickCameraZoom> r4("joystick_zoom");
-static LLRegisterWidget<LLJoystickCameraTrack> r5("joystick_track");
+static LLDefaultWidgetRegistry::Register<LLJoystickAgentSlide> r1("joystick_slide");
+static LLDefaultWidgetRegistry::Register<LLJoystickAgentTurn> r2("joystick_turn");
+static LLDefaultWidgetRegistry::Register<LLJoystickCameraRotate> r3("joystick_rotate");
+static LLDefaultWidgetRegistry::Register<LLJoystickCameraZoom> r4("joystick_zoom");
+static LLDefaultWidgetRegistry::Register<LLJoystickCameraTrack> r5("joystick_track");
diff --git a/indra/newview/lllandmarklist.cpp b/indra/newview/lllandmarklist.cpp
index 2f43b41042..318344f9ef 100644
--- a/indra/newview/lllandmarklist.cpp
+++ b/indra/newview/lllandmarklist.cpp
@@ -54,7 +54,7 @@ LLLandmarkList::~LLLandmarkList()
std::for_each(mList.begin(), mList.end(), DeletePairedPointer());
}
-LLLandmark* LLLandmarkList::getAsset( const LLUUID& asset_uuid )
+LLLandmark* LLLandmarkList::getAsset(const LLUUID& asset_uuid, loaded_callback_t cb)
{
LLLandmark* landmark = get_ptr_in_map(mList, asset_uuid);
if(landmark)
@@ -65,6 +65,12 @@ LLLandmark* LLLandmarkList::getAsset( const LLUUID& asset_uuid )
{
if ( gLandmarkList.mBadList.find(asset_uuid) == gLandmarkList.mBadList.end() )
{
+ if (cb)
+ {
+ loaded_callback_map_t::value_type vt(asset_uuid, cb);
+ mLoadedCallbackMap.insert(vt);
+ }
+
gAssetStorage->getAssetData(
asset_uuid,
LLAssetType::AT_LANDMARK,
@@ -96,6 +102,8 @@ void LLLandmarkList::processGetAssetReply(
LLLandmark* landmark = LLLandmark::constructFromString(&buffer[0]);
if (landmark)
{
+ gLandmarkList.mList[ uuid ] = landmark;
+
LLVector3d pos;
if(!landmark->getGlobalPos(pos))
{
@@ -106,10 +114,15 @@ void LLLandmarkList::processGetAssetReply(
gMessageSystem,
gAgent.getRegionHost(),
region_id,
- NULL);
+ boost::bind(&LLLandmarkList::onRegionHandle, &gLandmarkList, uuid));
}
+
+ // the callback will be called when we get the region handle.
+ }
+ else
+ {
+ gLandmarkList.makeCallbacks(uuid);
}
- gLandmarkList.mList[ uuid ] = landmark;
}
}
else
@@ -134,3 +147,45 @@ BOOL LLLandmarkList::assetExists(const LLUUID& asset_uuid)
{
return mList.count(asset_uuid) != 0 || mBadList.count(asset_uuid) != 0;
}
+
+void LLLandmarkList::onRegionHandle(const LLUUID& landmark_id)
+{
+ LLLandmark* landmark = getAsset(landmark_id);
+
+ if (!landmark)
+ {
+ llwarns << "Got region handle but the landmark not found." << llendl;
+ return;
+ }
+
+ // Calculate landmark global position.
+ // This should succeed since the region handle is available.
+ LLVector3d pos;
+ if (!landmark->getGlobalPos(pos))
+ {
+ llwarns << "Got region handle but the landmark global position is still unknown." << llendl;
+ return;
+ }
+
+ makeCallbacks(landmark_id);
+}
+
+void LLLandmarkList::makeCallbacks(const LLUUID& landmark_id)
+{
+ LLLandmark* landmark = getAsset(landmark_id);
+
+ if (!landmark)
+ {
+ llwarns << "Landmark to make callbacks for not found." << llendl;
+ }
+
+ // make all the callbacks here.
+ loaded_callback_map_t::iterator it;
+ while((it = mLoadedCallbackMap.find(landmark_id)) != mLoadedCallbackMap.end())
+ {
+ if (landmark)
+ (*it).second(landmark);
+
+ mLoadedCallbackMap.erase(it);
+ }
+}
diff --git a/indra/newview/lllandmarklist.h b/indra/newview/lllandmarklist.h
index c41ba7a0f0..ebf1b65e97 100644
--- a/indra/newview/lllandmarklist.h
+++ b/indra/newview/lllandmarklist.h
@@ -33,6 +33,7 @@
#ifndef LL_LLLANDMARKLIST_H
#define LL_LLLANDMARKLIST_H
+#include <boost/function.hpp>
#include <map>
#include "lllandmark.h"
#include "lluuid.h"
@@ -45,6 +46,8 @@ class LLInventoryItem;
class LLLandmarkList
{
public:
+ typedef boost::function<void(LLLandmark*)> loaded_callback_t;
+
LLLandmarkList() {}
~LLLandmarkList();
@@ -53,7 +56,7 @@ public:
//const LLLandmark* getNext() { return mList.getNextData(); }
BOOL assetExists(const LLUUID& asset_uuid);
- LLLandmark* getAsset(const LLUUID& asset_uuid);
+ LLLandmark* getAsset(const LLUUID& asset_uuid, loaded_callback_t cb = NULL);
static void processGetAssetReply(
LLVFS *vfs,
const LLUUID& uuid,
@@ -63,11 +66,19 @@ public:
LLExtStat ext_status );
protected:
+ void onRegionHandle(const LLUUID& landmark_id);
+ void makeCallbacks(const LLUUID& landmark_id);
+
typedef std::map<LLUUID, LLLandmark*> landmark_list_t;
landmark_list_t mList;
typedef std::set<LLUUID> landmark_bad_list_t;
landmark_bad_list_t mBadList;
+
+ // *TODO: make the callback multimap a template class and make use of it
+ // here and in LLLandmark.
+ typedef std::multimap<LLUUID, loaded_callback_t> loaded_callback_map_t;
+ loaded_callback_map_t mLoadedCallbackMap;
};
diff --git a/indra/newview/lllocationhistory.cpp b/indra/newview/lllocationhistory.cpp
index ab3256a186..179eca2532 100644
--- a/indra/newview/lllocationhistory.cpp
+++ b/indra/newview/lllocationhistory.cpp
@@ -36,6 +36,8 @@
#include <iomanip> // for std::setw()
+#include "llui.h"
+
LLLocationHistory::LLLocationHistory() :
mFilename("typed_locations.txt"),
mLoadedCallback(NULL)
@@ -44,11 +46,13 @@ LLLocationHistory::LLLocationHistory() :
void LLLocationHistory::addItem(std::string item)
{
+ static LLUICachedControl<S32> max_items("LocationHistoryMaxSize", 100);
+
mItems.push_back(item);
// If the vector size exceeds the maximum, purge the oldest items.
- if (mItems.size() > MAX_ITEMS)
- mItems.erase(mItems.begin(), mItems.end()-MAX_ITEMS);
+ if ((S32)mItems.size() > max_items)
+ mItems.erase(mItems.begin(), mItems.end()-max_items);
}
diff --git a/indra/newview/lllocationhistory.h b/indra/newview/lllocationhistory.h
index ea27d755fa..d2a959ae62 100644
--- a/indra/newview/lllocationhistory.h
+++ b/indra/newview/lllocationhistory.h
@@ -60,7 +60,6 @@ public:
void dump() const;
private:
- static const size_t MAX_ITEMS = 10;
std::vector<std::string> mItems;
std::string mFilename; /// File to store the history to.
loaded_callback_t mLoadedCallback;
diff --git a/indra/newview/lllocationinputctrl.cpp b/indra/newview/lllocationinputctrl.cpp
index 67bf2d7265..fac0de0f33 100644
--- a/indra/newview/lllocationinputctrl.cpp
+++ b/indra/newview/lllocationinputctrl.cpp
@@ -1,5 +1,5 @@
-/**
- * @file lllocationinputmonitorctrl.cpp
+/**
+ * @file lllocationinputctrl.cpp
* @brief Combobox-like location input control
*
* $LicenseInfo:firstyear=2009&license=viewergpl$
@@ -36,1091 +36,482 @@
#include "lllocationinputctrl.h"
// common includes
-#include <llstring.h>
-#include <llcombobox.h>
-
-// newview includes
#include "llbutton.h"
-#include "llkeyboard.h"
-#include "llscrolllistctrl.h"
-#include "llwindow.h"
-#include "llfloater.h"
-#include "llscrollbar.h"
-#include "llscrolllistcell.h"
-#include "llscrolllistitem.h"
-#include "llcontrol.h"
+#include "llfloaterreg.h"
#include "llfocusmgr.h"
-#include "lllineeditor.h"
-#include "v2math.h"
+#include "llkeyboard.h"
+#include "llstring.h"
#include "lluictrlfactory.h"
+#include "v2math.h"
-// Globals
-static S32 MAX_COMBO_WIDTH = 500;
-
-static LLRegisterWidget<LLLocationInputCtrl> r("location_input");
-
-LLLocationInputCtrl::LLLocationInputCtrl(const LLLocationInputCtrl::Params& p)
-: LLUICtrl(p),
- mTextEntry(NULL),
- mTextEntryTentative(TRUE),
- mListPosition(BELOW),
- mAllowTextEntry(p.allow_text_entry),
- mSelectOnFocus(p.select_on_focus),
- mHasAutocompletedText(false),
- mMaxChars(p.max_chars),
- mPrearrangeCallback(p.prearrange_callback()),
- mTextEntryCallback(p.text_entry_callback()),
- mSelectionCallback(p.selection_callback()),
- mArrowImage(p.arrow_image)
-{
- // Text label button
-
- LLButton::Params button_params;
- button_params.name(p.label);
- button_params.image_unselected.name("square_btn_32x128.tga");
- button_params.image_selected.name("square_btn_selected_32x128.tga");
- button_params.image_disabled.name("square_btn_32x128.tga");
- button_params.image_disabled_selected.name("square_btn_selected_32x128.tga");
- button_params.image_overlay.name("combobox_arrow.tga");
- button_params.image_overlay_alignment("right");
- button_params.scale_image(true);
- button_params.mouse_down_callback.function(boost::bind(&LLLocationInputCtrl::onButtonDown, this));
- button_params.font(LLFontGL::getFontSansSerifSmall());
- button_params.follows.flags(FOLLOWS_LEFT|FOLLOWS_BOTTOM|FOLLOWS_RIGHT);
- button_params.font_halign(LLFontGL::LEFT);
- button_params.rect(p.rect);
- button_params.pad_right(2);
-
- mButton = LLUICtrlFactory::create<LLButton>(button_params);
- mButton->setRightHPad(2); //redo to compensate for button hack that leaves space for a character
- addChild(mButton);
-
- LLScrollListCtrl::Params params;
- params.name ("LocationInput");
- params.commit_callback.function(boost::bind(&LLLocationInputCtrl::onItemSelected, this, _2));
- params.visible(false);
- params.bg_writeable_color(LLColor4::white);
- params.commit_on_keyboard_movement(false);
-
- mList = LLUICtrlFactory::create<LLScrollListCtrl>(params);
- addChild(mList);
-
- for (LLInitParam::ParamIterator<LLScrollListItem::Params>::const_iterator it = p.items().begin();
- it != p.items().end();
- ++it)
- {
- mList->addRow(*it);
- }
-
- setTopLostCallback(boost::bind(&LLLocationInputCtrl::hideList, this));
-}
-
-LLLocationInputCtrl::~LLLocationInputCtrl()
-{
- // children automatically deleted, including mMenu, mButton
-}
-
-void LLLocationInputCtrl::setEnabled(BOOL enabled)
-{
- LLView::setEnabled(enabled);
- mButton->setEnabled(enabled);
-}
-
-void LLLocationInputCtrl::clear()
-{
- if (mTextEntry)
- {
- mTextEntry->setText(LLStringUtil::null);
- }
- mButton->setLabelSelected(LLStringUtil::null);
- mButton->setLabelUnselected(LLStringUtil::null);
- mButton->setDisabledLabel(LLStringUtil::null);
- mButton->setDisabledSelectedLabel(LLStringUtil::null);
- mList->deselectAllItems();
-}
-
-void LLLocationInputCtrl::onCommit()
-{
- if (mAllowTextEntry && getCurrentIndex() != -1)
- {
- // we have selected an existing item, blitz the manual text entry with
- // the properly capitalized item
- mTextEntry->setValue(getSimple());
- mTextEntry->setTentative(FALSE);
- }
- LLUICtrl::onCommit();
-}
-
-// virtual
-BOOL LLLocationInputCtrl::isDirty() const
-{
- BOOL grubby = FALSE;
- if ( mList )
- {
- grubby = mList->isDirty();
- }
- return grubby;
-}
-
-// virtual Clear dirty state
-void LLLocationInputCtrl::resetDirty()
-{
- if ( mList )
- {
- mList->resetDirty();
- }
-}
+// newview includes
+#include "llagent.h"
+#include "llfloaterland.h"
+#include "llinventorymodel.h"
+#include "lllandmarklist.h"
+#include "lllocationhistory.h"
+#include "llpanelplaces.h"
+#include "llsidetray.h"
+#include "llviewerinventory.h"
+#include "llviewerparcelmgr.h"
+//============================================================================
+/*
+ * "ADD LANDMARK" BUTTON UPDATING LOGIC
+ *
+ * If the current parcel has been landmarked, we should draw
+ * a special image on the button.
+ *
+ * To avoid determining the appropriate image on every draw() we do that
+ * only in the following cases:
+ * 1) Navbar is shown for the first time after login.
+ * 2) Agent moves to another parcel.
+ * 3) A landmark is created or removed.
+ *
+ * The first case is handled by the handleLoginComplete() method.
+ *
+ * The second case is handled by setting the "agent parcel changed" callback
+ * on LLViewerParcelMgr.
+ *
+ * The third case is the most complex one. We have two inventory observers for that:
+ * one is designated to handle adding landmarks, the other handles removal.
+ * Let's see how the former works.
+ *
+ * When we get notified about landmark addition, the landmark position is unknown yet. What we can
+ * do at that point is initiate loading the landmark data by LLLandmarkList and set the
+ * "loading finished" callback on it. Finally, when the callback is triggered,
+ * we can determine whether the landmark refers to a point within the current parcel
+ * and choose the appropriate image for the "Add landmark" button.
+ */
-// add item "name" to menu
-LLScrollListItem* LLLocationInputCtrl::add(const std::string& name, EAddPosition pos, BOOL enabled)
+// Returns true if the given inventory item is a landmark pointing to the current parcel.
+// Used to filter inventory items.
+class LLIsAgentParcelLandmark : public LLInventoryCollectFunctor
{
- LLScrollListItem* item = mList->addSimpleElement(name, pos);
- item->setEnabled(enabled);
- if (!mAllowTextEntry && mLabel.empty())
+public:
+ /*virtual*/ bool operator()(LLInventoryCategory* cat, LLInventoryItem* item)
{
- selectFirstItem();
- }
- return item;
-}
+ if (!item || item->getType() != LLAssetType::AT_LANDMARK)
+ return false;
-// add item "name" with a unique id to menu
-LLScrollListItem* LLLocationInputCtrl::add(const std::string& name, const LLUUID& id, EAddPosition pos, BOOL enabled )
-{
- LLScrollListItem* item = mList->addSimpleElement(name, pos, id);
- item->setEnabled(enabled);
- if (!mAllowTextEntry && mLabel.empty())
- {
- selectFirstItem();
- }
- return item;
-}
+ LLLandmark* landmark = gLandmarkList.getAsset(item->getAssetUUID());
+ if (!landmark) // the landmark not been loaded yet
+ return false;
-// add item "name" with attached userdata
-LLScrollListItem* LLLocationInputCtrl::add(const std::string& name, void* userdata, EAddPosition pos, BOOL enabled )
-{
- LLScrollListItem* item = mList->addSimpleElement(name, pos);
- item->setEnabled(enabled);
- item->setUserdata( userdata );
- if (!mAllowTextEntry && mLabel.empty())
- {
- selectFirstItem();
- }
- return item;
-}
+ LLVector3d landmark_global_pos;
+ if (!landmark->getGlobalPos(landmark_global_pos))
+ return false;
-// add item "name" with attached generic data
-LLScrollListItem* LLLocationInputCtrl::add(const std::string& name, LLSD value, EAddPosition pos, BOOL enabled )
-{
- LLScrollListItem* item = mList->addSimpleElement(name, pos, value);
- item->setEnabled(enabled);
- if (!mAllowTextEntry && mLabel.empty())
- {
- selectFirstItem();
+ return LLViewerParcelMgr::getInstance()->inAgentParcel(landmark_global_pos);
}
- return item;
-}
+};
-LLScrollListItem* LLLocationInputCtrl::addSeparator(EAddPosition pos)
-{
- return mList->addSeparator(pos);
-}
-
-void LLLocationInputCtrl::sortByName(BOOL ascending)
-{
- mList->sortOnce(0, ascending);
-}
-
-
-// Choose an item with a given name in the menu.
-// Returns TRUE if the item was found.
-BOOL LLLocationInputCtrl::setSimple(const LLStringExplicit& name)
+/**
+ * Initiates loading the landmarks that have been just added.
+ *
+ * Once the loading is complete we'll be notified
+ * with the callback we set for LLLandmarkList.
+ */
+class LLAddLandmarkObserver : public LLInventoryAddedObserver
{
- BOOL found = mList->selectItemByLabel(name, FALSE);
-
- if (found)
- {
- setLabel(name);
- }
+public:
+ LLAddLandmarkObserver(LLLocationInputCtrl* input) : mInput(input) {}
- return found;
-}
-
-// virtual
-void LLLocationInputCtrl::setValue(const LLSD& value)
-{
- BOOL found = mList->selectByValue(value);
- if (found)
+private:
+ /*virtual*/ void done()
{
- LLScrollListItem* item = mList->getFirstSelected();
- if (item)
+ std::vector<LLUUID>::const_iterator it = mAdded.begin(), end = mAdded.end();
+ for(; it != end; ++it)
{
- setLabel( mList->getSelectedItemLabel() );
+ LLInventoryItem* item = gInventory.getItem(*it);
+ if (!item || item->getType() != LLAssetType::AT_LANDMARK)
+ continue;
+
+ // Start loading the landmark.
+ LLLandmark* lm = gLandmarkList.getAsset(
+ item->getAssetUUID(),
+ boost::bind(&LLLocationInputCtrl::onLandmarkLoaded, mInput, _1));
+ if (lm)
+ {
+ // Already loaded? Great, handle it immediately (the callback won't be called).
+ mInput->onLandmarkLoaded(lm);
+ }
}
- }
-}
-const std::string LLLocationInputCtrl::getSimple() const
-{
- const std::string res = mList->getSelectedItemLabel();
- if (res.empty() && mAllowTextEntry)
- {
- return mTextEntry->getText();
- }
- else
- {
- return res;
+ mAdded.clear();
}
-}
-const std::string LLLocationInputCtrl::getSelectedItemLabel(S32 column) const
-{
- return mList->getSelectedItemLabel(column);
-}
+ LLLocationInputCtrl* mInput;
+};
-// virtual
-LLSD LLLocationInputCtrl::getValue() const
+/**
+ * Updates the "Add landmark" button once a landmark gets removed.
+ */
+class LLRemoveLandmarkObserver : public LLInventoryObserver
{
- LLScrollListItem* item = mList->getFirstSelected();
- if( item )
- {
- return item->getValue();
- }
- else if (mAllowTextEntry)
- {
- return mTextEntry->getValue();
- }
- else
- {
- return LLSD();
- }
-}
+public:
+ LLRemoveLandmarkObserver(LLLocationInputCtrl* input) : mInput(input) {}
-void LLLocationInputCtrl::setLabel(const LLStringExplicit& name)
-{
- if ( mTextEntry )
+private:
+ /*virtual*/ void changed(U32 mask)
{
- mTextEntry->setText(name);
- if (mList->selectItemByLabel(name, FALSE))
+ if (mask & (~(LLInventoryObserver::LABEL|LLInventoryObserver::INTERNAL|LLInventoryObserver::ADD)))
{
- mTextEntry->setTentative(FALSE);
- }
- else
- {
- mTextEntry->setTentative(mTextEntryTentative);
+ mInput->updateAddLandmarkButton();
}
}
-
- if (!mAllowTextEntry)
- {
- mButton->setLabelUnselected(name);
- mButton->setLabelSelected(name);
- mButton->setDisabledLabel(name);
- mButton->setDisabledSelectedLabel(name);
- }
-}
+ LLLocationInputCtrl* mInput;
+};
-BOOL LLLocationInputCtrl::remove(const std::string& name)
-{
- BOOL found = mList->selectItemByLabel(name);
-
- if (found)
- {
- LLScrollListItem* item = mList->getFirstSelected();
- if (item)
- {
- mList->deleteSingleItem(mList->getItemIndex(item));
- }
- }
+//============================================================================
- return found;
-}
-BOOL LLLocationInputCtrl::remove(S32 index)
-{
- if (index < mList->getItemCount())
- {
- mList->deleteSingleItem(index);
- return TRUE;
- }
- return FALSE;
-}
+static LLDefaultWidgetRegistry::Register<LLLocationInputCtrl> r("location_input");
-// Keyboard focus lost.
-void LLLocationInputCtrl::onFocusLost()
+LLLocationInputCtrl::Params::Params()
+: add_landmark_image_enabled("add_landmark_image_enabled"),
+ add_landmark_image_disabled("add_landmark_image_disabled"),
+ add_landmark_button("add_landmark_button"),
+ add_landmark_hpad("add_landmark_hpad", 0),
+ info_button("info_button"),
+ background("background")
{
- hideList();
- // if valid selection
- if (mAllowTextEntry && getCurrentIndex() != -1)
- {
- mTextEntry->selectAll();
- }
- LLUICtrl::onFocusLost();
}
-void LLLocationInputCtrl::setButtonVisible(BOOL visible)
-{
- static LLUICachedControl<S32> drop_shadow_button ("DropShadowButton", 0);
-
- mButton->setVisible(visible);
- if (mTextEntry)
+LLLocationInputCtrl::LLLocationInputCtrl(const LLLocationInputCtrl::Params& p)
+: LLComboBox(p),
+ mAddLandmarkHPad(p.add_landmark_hpad),
+ mInfoBtn(NULL),
+ mAddLandmarkBtn(NULL)
+{
+ // Background image.
+ LLButton::Params bg_params = p.background;
+ mBackground = LLUICtrlFactory::create<LLButton>(bg_params);
+ addChildInBack(mBackground);
+
+ // "Place information" button.
+ LLButton::Params info_params = p.info_button;
+ mInfoBtn = LLUICtrlFactory::create<LLButton>(info_params);
+ mInfoBtn->setClickedCallback(boost::bind(&LLLocationInputCtrl::onInfoButtonClicked, this));
+ addChild(mInfoBtn);
+
+ // "Add landmark" button.
+ LLButton::Params al_params = p.add_landmark_button;
+ if (p.add_landmark_image_enabled())
{
- LLRect text_entry_rect(0, getRect().getHeight(), getRect().getWidth(), 0);
- if (visible)
- {
- text_entry_rect.mRight -= llmax(8,mArrowImage->getWidth()) + 2 * drop_shadow_button;
- }
- //mTextEntry->setRect(text_entry_rect);
- mTextEntry->reshape(text_entry_rect.getWidth(), text_entry_rect.getHeight(), TRUE);
+ al_params.image_unselected = p.add_landmark_image_enabled;
+ al_params.image_selected = p.add_landmark_image_enabled;
}
-}
-
-/*virtual*/
-BOOL LLLocationInputCtrl::postBuild()
-{
- // If providing user text entry or descriptive label don't select an item under the hood
- if (!acceptsTextInput() && mLabel.empty())
+ if (p.add_landmark_image_disabled())
{
- selectFirstItem();
+ al_params.image_disabled = p.add_landmark_image_disabled;
+ al_params.image_disabled_selected = p.add_landmark_image_disabled;
}
- updateLayout();
- return TRUE;
-}
+ al_params.click_callback.function(boost::bind(&LLLocationInputCtrl::onAddLandmarkButtonClicked, this));
+ mAddLandmarkBtn = LLUICtrlFactory::create<LLButton>(al_params);
+ enableAddLandmarkButton(true);
+ addChild(mAddLandmarkBtn);
+
+ setFocusReceivedCallback(boost::bind(&LLLocationInputCtrl::onFocusReceived, this));
+ setFocusLostCallback(boost::bind(&LLLocationInputCtrl::onFocusLost, this));
+ setPrearrangeCallback(boost::bind(&LLLocationInputCtrl::onLocationPrearrange, this, _2));
-void LLLocationInputCtrl::draw()
-{
- mButton->setEnabled(getEnabled() /*&& !mList->isEmpty()*/);
+ updateWidgetlayout();
- // Draw children normally
- LLUICtrl::draw();
-}
+ // - Make the "Add landmark" button updated when either current parcel gets changed
+ // or a landmark gets created or removed from the inventory.
+ // - Update the location string on parcel change.
+ LLViewerParcelMgr::getInstance()->setAgentParcelChangedCallback(
+ boost::bind(&LLLocationInputCtrl::onAgentParcelChange, this));
-BOOL LLLocationInputCtrl::setCurrentByIndex( S32 index )
-{
- BOOL found = mList->selectNthItem( index );
- if (found)
- {
- setLabel(mList->getSelectedItemLabel());
- }
- return found;
-}
+ LLLocationHistory::getInstance()->setLoadedCallback(
+ boost::bind(&LLLocationInputCtrl::onLocationHistoryLoaded, this));
-S32 LLLocationInputCtrl::getCurrentIndex() const
-{
- LLScrollListItem* item = mList->getFirstSelected();
- if( item )
- {
- return mList->getItemIndex( item );
- }
- return -1;
+ mRemoveLandmarkObserver = new LLRemoveLandmarkObserver(this);
+ mAddLandmarkObserver = new LLAddLandmarkObserver(this);
+ gInventory.addObserver(mRemoveLandmarkObserver);
+ gInventory.addObserver(mAddLandmarkObserver);
}
-
-void LLLocationInputCtrl::updateLayout()
+LLLocationInputCtrl::~LLLocationInputCtrl()
{
- static LLUICachedControl<S32> drop_shadow_button ("DropShadowButton", 0);
- LLRect rect = getLocalRect();
- if (mAllowTextEntry)
- {
- S32 shadow_size = drop_shadow_button;
- mButton->setRect(LLRect( getRect().getWidth() - llmax(8,mArrowImage->getWidth()) - 2 * shadow_size,
- rect.mTop, rect.mRight, rect.mBottom));
- mButton->setTabStop(FALSE);
- mButton->setHAlign(LLFontGL::HCENTER);
-
- if (!mTextEntry)
- {
- LLRect text_entry_rect(0, getRect().getHeight(), getRect().getWidth(), 0);
- text_entry_rect.mRight -= llmax(8,mArrowImage->getWidth()) + 2 * drop_shadow_button;
- // clear label on button
- std::string cur_label = mButton->getLabelSelected();
- LLLineEditor::Params params;
- params.name ("combo_text_entry");
- params.rect (text_entry_rect);
- params.default_text (LLStringUtil::null);
- params.font (LLFontGL::getFontSansSerifSmall());
- params.max_length_bytes (mMaxChars);
- params.commit_callback.function(boost::bind(&LLLocationInputCtrl::onTextCommit, this, _2));
- params.keystroke_callback (boost::bind(&LLLocationInputCtrl::onTextEntry, this, _1));
- params.focus_lost_callback (NULL);
- params.select_on_focus (mSelectOnFocus);
- params.handle_edit_keys_directly (true);
- params.commit_on_focus_lost (false);
- params.follows.flags (FOLLOWS_ALL);
- mTextEntry = LLUICtrlFactory::create<LLLineEditor> (params);
- mTextEntry->setText(cur_label);
- mTextEntry->setIgnoreTab(TRUE);
- mTextEntry->setRevertOnEsc(FALSE);
- //mTextEntry->setFocusReceivedCallback(boost::bind(&LLLocationInputCtrl::hideList, this));
- addChild(mTextEntry);
- }
- else
- {
- mTextEntry->setVisible(TRUE);
- mTextEntry->setMaxTextLength(mMaxChars);
- }
-
- // clear label on button
- setLabel(LLStringUtil::null);
-
- mButton->setFollows(FOLLOWS_BOTTOM | FOLLOWS_TOP | FOLLOWS_RIGHT);
- }
- else if (!mAllowTextEntry)
- {
- mButton->setRect(rect);
- mButton->setTabStop(TRUE);
- mButton->setHAlign(LLFontGL::LEFT);
-
- if (mTextEntry)
- {
- mTextEntry->setVisible(FALSE);
- }
- mButton->setFollowsAll();
- }
+ gInventory.removeObserver(mRemoveLandmarkObserver);
+ gInventory.removeObserver(mAddLandmarkObserver);
+ delete mRemoveLandmarkObserver;
+ delete mAddLandmarkObserver;
}
-void* LLLocationInputCtrl::getCurrentUserdata()
+void LLLocationInputCtrl::setEnabled(BOOL enabled)
{
- LLScrollListItem* item = mList->getFirstSelected();
- if( item )
- {
- return item->getUserdata();
- }
- return NULL;
+ LLComboBox::setEnabled(enabled);
+ mAddLandmarkBtn->setEnabled(enabled);
}
-
-void LLLocationInputCtrl::showList()
+void LLLocationInputCtrl::hideList()
{
- // Make sure we don't go off top of screen.
- LLCoordWindow window_size;
- getWindow()->getSize(&window_size);
- //HACK: shouldn't have to know about scale here
- mList->fitContents( 192, llfloor((F32)window_size.mY / LLUI::sGLScaleFactor.mV[VY]) - 50 );
-
- // Make sure that we can see the whole list
- LLRect root_view_local;
- LLView* root_view = getRootView();
- root_view->localRectToOtherView(root_view->getLocalRect(), &root_view_local, this);
-
- LLRect rect = mList->getRect();
-
- S32 min_width = getRect().getWidth();
- S32 max_width = llmax(min_width, MAX_COMBO_WIDTH);
- // make sure we have up to date content width metrics
- mList->calcColumnWidths();
- S32 list_width = llclamp(mList->getMaxContentWidth(), min_width, max_width);
-
- if (mListPosition == BELOW)
- {
- if (rect.getHeight() <= -root_view_local.mBottom)
- {
- // Move rect so it hangs off the bottom of this view
- rect.setLeftTopAndSize(0, 0, list_width, rect.getHeight() );
- }
- else
- {
- // stack on top or bottom, depending on which has more room
- if (-root_view_local.mBottom > root_view_local.mTop - getRect().getHeight())
- {
- // Move rect so it hangs off the bottom of this view
- rect.setLeftTopAndSize(0, 0, list_width, llmin(-root_view_local.mBottom, rect.getHeight()));
- }
- else
- {
- // move rect so it stacks on top of this view (clipped to size of screen)
- rect.setOriginAndSize(0, getRect().getHeight(), list_width, llmin(root_view_local.mTop - getRect().getHeight(), rect.getHeight()));
- }
- }
- }
- else // ABOVE
- {
- if (rect.getHeight() <= root_view_local.mTop - getRect().getHeight())
- {
- // move rect so it stacks on top of this view (clipped to size of screen)
- rect.setOriginAndSize(0, getRect().getHeight(), list_width, llmin(root_view_local.mTop - getRect().getHeight(), rect.getHeight()));
- }
- else
- {
- // stack on top or bottom, depending on which has more room
- if (-root_view_local.mBottom > root_view_local.mTop - getRect().getHeight())
- {
- // Move rect so it hangs off the bottom of this view
- rect.setLeftTopAndSize(0, 0, list_width, llmin(-root_view_local.mBottom, rect.getHeight()));
- }
- else
- {
- // move rect so it stacks on top of this view (clipped to size of screen)
- rect.setOriginAndSize(0, getRect().getHeight(), list_width, llmin(root_view_local.mTop - getRect().getHeight(), rect.getHeight()));
- }
- }
-
- }
- mList->setOrigin(rect.mLeft, rect.mBottom);
- mList->reshape(rect.getWidth(), rect.getHeight());
- mList->translateIntoRect(root_view_local, FALSE);
-
- // Make sure we didn't go off bottom of screen
- S32 x, y;
- mList->localPointToScreen(0, 0, &x, &y);
-
- if (y < 0)
- {
- mList->translate(0, -y);
- }
-
- // NB: this call will trigger the focuslost callback which will hide the list, so do it first
- // before finally showing the list
-
- mList->setFocus(TRUE);
-
- // register ourselves as a "top" control
- // effectively putting us into a special draw layer
- // and not affecting the bounding rectangle calculation
- gFocusMgr.setTopCtrl(this);
-
- // Show the list and push the button down
- mButton->setToggleState(TRUE);
- mList->setVisible(TRUE);
-
- setUseBoundingRect(TRUE);
+ LLComboBox::hideList();
+ if (mTextEntry && hasFocus())
+ focusTextEntry();
}
-void LLLocationInputCtrl::hideList()
+BOOL LLLocationInputCtrl::handleToolTip(S32 x, S32 y, std::string& msg, LLRect* sticky_rect_screen)
{
- //*HACK: store the original value explicitly somewhere, not just in label
- std::string orig_selection = mAllowTextEntry ? mTextEntry->getText() : mButton->getLabelSelected();
-
- // assert selection in list
- mList->selectItemByLabel(orig_selection, FALSE);
-
- mButton->setToggleState(FALSE);
- mList->setVisible(FALSE);
- mList->mouseOverHighlightNthItem(-1);
-
- setUseBoundingRect(FALSE);
-
- if( gFocusMgr.getTopCtrl() == this )
+ // Let the buttons show their tooltips.
+ if (LLUICtrl::handleToolTip(x, y, msg, sticky_rect_screen) && !msg.empty())
{
- gFocusMgr.setTopCtrl(NULL);
+ return TRUE;
}
-}
-void LLLocationInputCtrl::onButtonDown()
-{
- if (!mList->getVisible())
+ // Cursor is above the text entry.
+ msg = LLUI::sShowXUINames ? getShowNamesToolTip() : gAgent.getSLURL();
+ if (mTextEntry && sticky_rect_screen)
{
-#if 0 // XXX VS
- LLScrollListItem* last_selected_item = mList->getLastSelectedItem();
- if (last_selected_item)
- {
- // highlight the original selection before potentially selecting a new item
- mList->mouseOverHighlightNthItem(mList->getItemIndex(last_selected_item));
- }
-#endif
-
- prearrangeList();
-
- if (mList->getItemCount() != 0)
- {
- showList();
- }
-
- setFocus( TRUE );
-
- // pass mouse capture on to list if button is depressed
- if (mButton->hasMouseCapture())
- {
- gFocusMgr.setMouseCapture(mList);
- }
+ *sticky_rect_screen = mTextEntry->calcScreenRect();
}
- else
- {
- hideList();
- // XXX VS
- mTextEntry->setFocus(TRUE);
- }
+ return TRUE;
}
-
-//------------------------------------------------------------------
-// static functions
-//------------------------------------------------------------------
-
-void LLLocationInputCtrl::onItemSelected(const LLSD& data)
+BOOL LLLocationInputCtrl::handleKeyHere(KEY key, MASK mask)
{
- const std::string name = mList->getSelectedItemLabel();
+ BOOL result = LLComboBox::handleKeyHere(key, mask);
- S32 cur_id = getCurrentIndex();
- if (cur_id != -1)
+ if (key == KEY_DOWN && hasFocus() && mList->getItemCount() != 0)
{
- setLabel(name);
-
- if (mAllowTextEntry)
- {
- gFocusMgr.setKeyboardFocus(mTextEntry);
- mTextEntry->selectAll();
- }
+ showList();
}
- // hiding the list reasserts the old value stored in the text editor/dropdown button
- hideList();
-
- // commit does the reverse, asserting the value in the list
- onCommit();
-
- // call the callback if it exists
- if(mSelectionCallback)
- {
- mSelectionCallback(this, data);
- }
+ return result;
}
-BOOL LLLocationInputCtrl::handleToolTip(S32 x, S32 y, std::string& msg, LLRect* sticky_rect_screen)
+void LLLocationInputCtrl::onTextEntry(LLLineEditor* line_editor)
{
- std::string tool_tip;
+ KEY key = gKeyboard->currentKey();
- if(LLUICtrl::handleToolTip(x, y, msg, sticky_rect_screen))
- {
- return TRUE;
- }
-
- if (LLUI::sShowXUINames)
- {
- tool_tip = getShowNamesToolTip();
- }
- else
+ if (line_editor->getText().empty())
{
- tool_tip = getToolTip();
- if (tool_tip.empty())
- {
- tool_tip = getSelectedItemLabel();
- }
- }
-
- if( !tool_tip.empty() )
- {
- msg = tool_tip;
-
- // Convert rect local to screen coordinates
- localPointToScreen(
- 0, 0,
- &(sticky_rect_screen->mLeft), &(sticky_rect_screen->mBottom) );
- localPointToScreen(
- getRect().getWidth(), getRect().getHeight(),
- &(sticky_rect_screen->mRight), &(sticky_rect_screen->mTop) );
+ prearrangeList(); // resets filter
+ hideList();
}
- return TRUE;
-}
-
-BOOL LLLocationInputCtrl::handleKeyHere(KEY key, MASK mask)
-{
- BOOL result = FALSE;
- if (hasFocus())
+ // Typing? (moving cursor should not affect showing the list)
+ else if (key != KEY_LEFT && key != KEY_RIGHT && key != KEY_HOME && key != KEY_END)
{
- if (mList->getVisible()
- && key == KEY_ESCAPE && mask == MASK_NONE)
- {
- hideList();
- // XXX VS
- mTextEntry->setFocus(TRUE);
- return TRUE;
- }
- //give list a chance to pop up and handle key
- LLScrollListItem* last_selected_item = mList->getLastSelectedItem();
- if (last_selected_item)
- {
- // highlight the original selection before potentially selecting a new item
- mList->mouseOverHighlightNthItem(mList->getItemIndex(last_selected_item));
- }
- result = mList->handleKeyHere(key, mask);
-
- // will only see return key if it is originating from line editor
- // since the dropdown button eats the key
- if (key == KEY_RETURN)
- {
- // don't show list and don't eat key input when committing
- // free-form text entry with RETURN since user already knows
- // what they are trying to select
- return FALSE;
- }
- // if selection has changed, pop open list
- // XXX VS
-#if 1
- else if(key == KEY_DOWN && mList->getItemCount() != 0)
-#else
- else if (mList->getLastSelectedItem() != last_selected_item)
-#endif
+ prearrangeList(line_editor->getText());
+ if (mList->getItemCount() != 0)
{
showList();
+ focusTextEntry();
}
-
- }
- return result;
-}
-
-BOOL LLLocationInputCtrl::handleUnicodeCharHere(llwchar uni_char)
-{
- BOOL result = FALSE;
- if (gFocusMgr.childHasKeyboardFocus(this))
- {
- // space bar just shows the list
- if (' ' != uni_char )
+ else
{
- LLScrollListItem* last_selected_item = mList->getLastSelectedItem();
- if (last_selected_item)
- {
- // highlight the original selection before potentially selecting a new item
- mList->mouseOverHighlightNthItem(mList->getItemIndex(last_selected_item));
- }
- result = mList->handleUnicodeCharHere(uni_char);
- if (mList->getLastSelectedItem() != last_selected_item)
- {
- showList();
- }
+ // Hide the list if it's empty.
+ hideList();
}
}
- return result;
-}
-
-void LLLocationInputCtrl::setTextEntry(const LLStringExplicit& text)
-{
- if (mTextEntry)
- {
- setText(text);
- updateSelection();
- }
+
+ LLComboBox::onTextEntry(line_editor);
}
/**
* Useful if we want to just set the text entry value, no matter what the list contains.
- *
+ *
* This is faster than setTextEntry().
*/
void LLLocationInputCtrl::setText(const LLStringExplicit& text)
{
if (mTextEntry)
- mTextEntry->setText(text);
-}
-
-void LLLocationInputCtrl::onTextEntry(LLLineEditor* line_editor)
-{
- if (mTextEntryCallback != NULL)
- {
- (mTextEntryCallback)(line_editor, LLSD());
- }
-
- KEY key = gKeyboard->currentKey();
-
- // XXX VS
- {
- if (line_editor->getText().empty())
- {
- prearrangeList(); // resets filter
- hideList();
- }
- // Moving cursor should not affect showing the list.
- else if (key != KEY_LEFT && key != KEY_RIGHT && key != KEY_HOME && key != KEY_END)
- {
- prearrangeList(line_editor->getText());
- if (mList->getItemCount() != 0)
- {
- showList();
- }
- else
- {
- // Hide the list if it's empty.
- hideList();
- }
-
- mTextEntry->setFocus(TRUE);
- }
- }
-
- if (key == KEY_BACKSPACE ||
- key == KEY_DELETE)
- {
- if (mList->selectItemByLabel(line_editor->getText(), FALSE))
- {
- line_editor->setTentative(FALSE);
- }
- else
- {
- line_editor->setTentative(mTextEntryTentative);
- mList->deselectAllItems();
- }
- return;
- }
-
- if (key == KEY_LEFT ||
- key == KEY_RIGHT)
- {
- return;
- }
-
- if (key == KEY_DOWN)
{
- setCurrentByIndex(llmin(getItemCount() - 1, getCurrentIndex() + 1));
- if (!mList->getVisible())
- {
- prearrangeList();
-
- if (mList->getItemCount() != 0)
- {
- showList();
- }
- }
- line_editor->selectAll();
- line_editor->setTentative(FALSE);
- }
- else
- {
- // RN: presumably text entry
- updateSelection();
+ mTextEntry->setText(text);
+ mHasAutocompletedText = FALSE;
}
}
-void LLLocationInputCtrl::updateSelection()
+void LLLocationInputCtrl::setFocus(BOOL b)
{
- LLWString left_wstring = mTextEntry->getWText().substr(0, mTextEntry->getCursor());
- // user-entered portion of string, based on assumption that any selected
- // text was a result of auto-completion
- LLWString user_wstring = mHasAutocompletedText ? left_wstring : mTextEntry->getWText();
- std::string full_string = mTextEntry->getText();
-
- // go ahead and arrange drop down list on first typed character, even
- // though we aren't showing it... some code relies on prearrange
- // callback to populate content
- if( mTextEntry->getWText().size() == 1 )
- {
- prearrangeList(mTextEntry->getText());
- }
+ LLComboBox::setFocus(b);
- if (mList->selectItemByLabel(full_string, FALSE))
- {
- mTextEntry->setTentative(FALSE);
- }
- else if (mList->selectItemByPrefix(left_wstring, FALSE))
- {
- LLWString selected_item = utf8str_to_wstring(mList->getSelectedItemLabel());
- LLWString wtext = left_wstring + selected_item.substr(left_wstring.size(), selected_item.size());
- mTextEntry->setText(wstring_to_utf8str(wtext));
- mTextEntry->setSelection(left_wstring.size(), mTextEntry->getWText().size());
- mTextEntry->endSelection();
- mTextEntry->setTentative(FALSE);
- mHasAutocompletedText = TRUE;
- }
- else // no matching items found
- {
- mList->deselectAllItems();
- mTextEntry->setText(wstring_to_utf8str(user_wstring)); // removes text added by autocompletion
- mTextEntry->setTentative(mTextEntryTentative);
- mHasAutocompletedText = FALSE;
- }
+ if (mTextEntry && b && !mList->getVisible())
+ mTextEntry->setFocus(TRUE);
}
-void LLLocationInputCtrl::onTextCommit(const LLSD& data)
+void LLLocationInputCtrl::handleLoginComplete()
{
- std::string text = mTextEntry->getText();
- setSimple(text);
- onCommit();
- mTextEntry->selectAll();
+ // An agent parcel update hasn't occurred yet, so we have to
+ // manually set location and the appropriate "Add landmark" icon.
+ refresh();
}
-void LLLocationInputCtrl::setFocus(BOOL b)
-{
- LLUICtrl::setFocus(b);
+//== private methods =========================================================
- if (b)
- {
- mList->clearSearchString();
- if (mList->getVisible())
- {
- mList->setFocus(TRUE);
- }
- else
- {
- mTextEntry->setFocus(TRUE);
- }
- }
+void LLLocationInputCtrl::onFocusReceived()
+{
+ prearrangeList();
+ setText(gAgent.getSLURL());
+ if (mTextEntry)
+ mTextEntry->endSelection(); // we don't want handleMouseUp() to "finish" the selection
}
-//============================================================================
-// LLCtrlListInterface functions
-
-S32 LLLocationInputCtrl::getItemCount() const
+void LLLocationInputCtrl::onFocusLost()
{
- return mList->getItemCount();
+ refreshLocation();
}
-void LLLocationInputCtrl::addColumn(const LLSD& column, EAddPosition pos)
+void LLLocationInputCtrl::onInfoButtonClicked()
{
- mList->clearColumns();
- mList->addColumn(column, pos);
+ LLSD key;
+ key["type"] = LLPanelPlaces::AGENT;
+
+ LLSideTray::getInstance()->showPanel("panel_places", key);
}
-void LLLocationInputCtrl::clearColumns()
+void LLLocationInputCtrl::onAddLandmarkButtonClicked()
{
- mList->clearColumns();
+ LLFloaterReg::showInstance("add_landmark");
}
-void LLLocationInputCtrl::setColumnLabel(const std::string& column, const std::string& label)
+void LLLocationInputCtrl::onAgentParcelChange()
{
- mList->setColumnLabel(column, label);
+ refresh();
}
-LLScrollListItem* LLLocationInputCtrl::addElement(const LLSD& value, EAddPosition pos, void* userdata)
+void LLLocationInputCtrl::onLandmarkLoaded(LLLandmark* lm)
{
- return mList->addElement(value, pos, userdata);
+ (void) lm;
+ updateAddLandmarkButton();
}
-LLScrollListItem* LLLocationInputCtrl::addSimpleElement(const std::string& value, EAddPosition pos, const LLSD& id)
+void LLLocationInputCtrl::onLocationHistoryLoaded()
{
- return mList->addSimpleElement(value, pos, id);
+ rebuildLocationHistory();
}
-void LLLocationInputCtrl::clearRows()
+void LLLocationInputCtrl::onLocationPrearrange(const LLSD& data)
{
- mList->clearRows();
+ std::string filter = data.asString();
+ rebuildLocationHistory(filter);
+ mList->mouseOverHighlightNthItem(-1); // Clear highlight on the last selected item.
}
-void LLLocationInputCtrl::sortByColumn(const std::string& name, BOOL ascending)
+void LLLocationInputCtrl::refresh()
{
- mList->sortByColumn(name, ascending);
+ refreshLocation(); // update location string
+ updateAddLandmarkButton(); // indicate whether current parcel has been landmarked
}
-//============================================================================
-//LLCtrlSelectionInterface functions
-
-BOOL LLLocationInputCtrl::setCurrentByID(const LLUUID& id)
+void LLLocationInputCtrl::refreshLocation()
{
- BOOL found = mList->selectByID( id );
+ // Is one of our children focused?
+ if (LLUICtrl::hasFocus() || mButton->hasFocus() || mList->hasFocus() ||
+ (mTextEntry && mTextEntry->hasFocus()) || (mAddLandmarkBtn->hasFocus()))
- if (found)
{
- setLabel(mList->getSelectedItemLabel());
+ llwarns << "Location input should not be refreshed when having focus" << llendl;
+ return;
}
- return found;
-}
+ // Update location field.
+ std::string location_name;
-LLUUID LLLocationInputCtrl::getCurrentID() const
-{
- return mList->getStringUUIDSelectedItem();
-}
-BOOL LLLocationInputCtrl::setSelectedByValue(const LLSD& value, BOOL selected)
-{
- BOOL found = mList->setSelectedByValue(value, selected);
- if (found)
- {
- setLabel(mList->getSelectedItemLabel());
- }
- return found;
-}
-
-LLSD LLLocationInputCtrl::getSelectedValue()
-{
- return mList->getSelectedValue();
-}
+ if (!gAgent.buildLocationString(location_name, LLAgent::LOCATION_FORMAT_NORMAL))
+ location_name = "Unknown";
-BOOL LLLocationInputCtrl::isSelected(const LLSD& value) const
-{
- return mList->isSelected(value);
+ setText(location_name);
}
-BOOL LLLocationInputCtrl::operateOnSelection(EOperation op)
+void LLLocationInputCtrl::rebuildLocationHistory(std::string filter)
{
- if (op == OP_DELETE)
+ LLLocationHistory::location_list_t filtered_items;
+ const LLLocationHistory::location_list_t* itemsp = NULL;
+ LLLocationHistory* lh = LLLocationHistory::getInstance();
+
+ if (filter.empty())
{
- mList->deleteSelectedItems();
- return TRUE;
+ itemsp = &lh->getItems();
}
- return FALSE;
-}
-
-BOOL LLLocationInputCtrl::operateOnAll(EOperation op)
-{
- if (op == OP_DELETE)
+ else
{
- clearRows();
- return TRUE;
+ lh->getMatchingItems(filter, filtered_items);
+ itemsp = &filtered_items;
}
- return FALSE;
-}
-
-BOOL LLLocationInputCtrl::selectItemRange( S32 first, S32 last )
-{
- return mList->selectItemRange(first, last);
-}
-
-void LLLocationInputCtrl::prearrangeList(std::string filter)
-{
- if (mPrearrangeCallback)
+
+ removeall();
+ for (LLLocationHistory::location_list_t::const_reverse_iterator it = itemsp->rbegin(); it != itemsp->rend(); it++)
{
- mPrearrangeCallback(this, LLSD(filter));
+ add(*it);
}
}
-//===========================================================================
-
-BOOL LLLocationInputCtrl::childHasFocus() const
+void LLLocationInputCtrl::focusTextEntry()
{
- return LLUICtrl::hasFocus() || mButton->hasFocus() || mList->hasFocus() || mTextEntry->hasFocus();
+ // We can't use "mTextEntry->setFocus(TRUE)" instead because
+ // if the "select_on_focus" parameter is true it places the cursor
+ // at the beginning (after selecting text), thus screwing up updateSelection().
+ if (mTextEntry)
+ gFocusMgr.setKeyboardFocus(mTextEntry);
}
-BOOL LLLocationInputCtrl::canCut() const
+void LLLocationInputCtrl::enableAddLandmarkButton(bool val)
{
- return mTextEntry ? mTextEntry->canCut() : false;
+ // Enable/disable the button.
+ mAddLandmarkBtn->setEnabled(val);
}
-BOOL LLLocationInputCtrl::canCopy() const
+// Change the "Add landmark" button image
+// depending on whether current parcel has been landmarked.
+void LLLocationInputCtrl::updateAddLandmarkButton()
{
- return mTextEntry ? mTextEntry->canCopy() : false;
-}
+ bool cur_parcel_landmarked = false;
-BOOL LLLocationInputCtrl::canPaste() const
-{
- return mTextEntry ? mTextEntry->canPaste() : false;
-}
+ // Determine whether there are landmarks pointing to the current parcel.
+ LLInventoryModel::cat_array_t cats;
+ LLInventoryModel::item_array_t items;
+ LLIsAgentParcelLandmark is_current_parcel_landmark;
+ gInventory.collectDescendentsIf(gAgent.getInventoryRootID(),
+ cats,
+ items,
+ LLInventoryModel::EXCLUDE_TRASH,
+ is_current_parcel_landmark);
+ cur_parcel_landmarked = !items.empty();
-BOOL LLLocationInputCtrl::canDeselect() const
-{
- return mTextEntry ? mTextEntry->canDeselect() : false;
+ enableAddLandmarkButton(!cur_parcel_landmarked);
}
-BOOL LLLocationInputCtrl::canSelectAll() const
+void LLLocationInputCtrl::updateWidgetlayout()
{
- return mTextEntry ? mTextEntry->canSelectAll() : false;
-}
+ const LLRect& rect = getLocalRect();
+ const LLRect& hist_btn_rect = mButton->getRect();
+ LLRect info_btn_rect = mButton->getRect();
-void LLLocationInputCtrl::cut()
-{
- if (mTextEntry)
- mTextEntry->cut();
-}
+ // info button
+ info_btn_rect.setOriginAndSize(
+ 0, (rect.getHeight() - info_btn_rect.getHeight()) / 2,
+ info_btn_rect.getWidth(), info_btn_rect.getHeight());
+ mInfoBtn->setRect(info_btn_rect);
-void LLLocationInputCtrl::copy()
-{
- if (mTextEntry)
- mTextEntry->copy();
-}
+ // background
+ mBackground->setRect(LLRect(info_btn_rect.getWidth(), rect.mTop,
+ rect.mRight - hist_btn_rect.getWidth(), rect.mBottom));
-void LLLocationInputCtrl::paste()
-{
- if (mTextEntry)
- mTextEntry->paste();
-}
+ // history button
+ mButton->setRightHPad(0);
-void LLLocationInputCtrl::deleteSelection()
-{
- if (mTextEntry)
- mTextEntry->deleteSelection();
-}
+ // "Add Landmark" button
+ {
+ LLRect al_btn_rect = mAddLandmarkBtn->getRect();
+ al_btn_rect.translate(
+ hist_btn_rect.mLeft - mAddLandmarkHPad - al_btn_rect.getWidth(),
+ (rect.getHeight() - al_btn_rect.getHeight()) / 2);
+ mAddLandmarkBtn->setRect(al_btn_rect);
+ }
-void LLLocationInputCtrl::selectAll()
-{
+ // text entry
if (mTextEntry)
- mTextEntry->selectAll();
+ {
+ LLRect text_entry_rect(rect);
+ text_entry_rect.mLeft = info_btn_rect.getWidth();
+ text_entry_rect.mRight = mAddLandmarkBtn->getRect().mLeft;
+ text_entry_rect.stretch(0, -1); // make space for border
+ mTextEntry->setRect(text_entry_rect);
+ }
}
diff --git a/indra/newview/lllocationinputctrl.h b/indra/newview/lllocationinputctrl.h
index 07aa30295c..1732853263 100644
--- a/indra/newview/lllocationinputctrl.h
+++ b/indra/newview/lllocationinputctrl.h
@@ -1,5 +1,5 @@
/**
- * @file lllocationinputmonitorctrl.h
+ * @file lllocationinputctrl.h
* @brief Combobox-like location input control
*
* $LicenseInfo:firstyear=2009&license=viewergpl$
@@ -33,216 +33,87 @@
#ifndef LL_LLLOCATIONINPUTCTRL_H
#define LL_LLLOCATIONINPUTCTRL_H
-#include "llbutton.h"
-#include "lluictrl.h"
-#include "llctrlselectioninterface.h"
-#include "llimagegl.h"
-#include "llrect.h"
-#include "llscrolllistitem.h"
-#include <boost/function.hpp>
-
-// Classes
-class LLButton;
-class LLFontGL;
-class LLLineEditor;
-class LLScrollListCtrl;
-class LLSquareButton;
-class LLUICtrlFactory;
-class LLViewBorder;
+#include <llcombobox.h>
+
+class LLLandmark;
+
+// internals
+class LLAddLandmarkObserver;
+class LLRemoveLandmarkObserver;
/**
* Location input control.
*
- * This is currently just a copy of LLComboBox (which is not exactly what the nav bar needs).
- * The only major difference so far is the way auto-completion works.
- *
* @see LLNavigationBar
*/
class LLLocationInputCtrl
-: public LLUICtrl, public LLCtrlListInterface
+: public LLComboBox
{
LOG_CLASS(LLLocationInputCtrl);
-
+ friend class LLAddLandmarkObserver;
+ friend class LLRemoveLandmarkObserver;
+
public:
struct Params
- : public LLInitParam::Block<Params, LLUICtrl::Params>
+ : public LLInitParam::Block<Params, LLComboBox::Params>
{
- Optional<bool> allow_text_entry, select_on_focus;
- Optional<S32> max_chars;
- Optional<commit_callback_t> prearrange_callback;
- Optional<commit_callback_t> text_entry_callback;
- Optional<commit_callback_t > selection_callback;
- Optional<LLUIImage*> arrow_image;
-Multiple<LLScrollListItem::Params> items;
-
- Params()
- : allow_text_entry("allow_text_entry", false),
- select_on_focus("select_on_focus", true),
- max_chars("max_chars", 20),
- arrow_image("arrow_image", LLUI::getUIImage("combobox_arrow.tga")),
- items("item")
- {
- addSynonym(items, "combo_item");
- }
+ Optional<LLUIImage*> add_landmark_image_enabled,
+ add_landmark_image_disabled;
+ Optional<S32> add_landmark_hpad;
+ Optional<LLButton::Params> add_landmark_button,
+ info_button,
+ background;
+ Params();
};
- typedef enum e_preferred_position
- {
- ABOVE,
- BELOW
- } EPreferredPosition;
-
- virtual ~LLLocationInputCtrl();
-protected:
- friend class LLUICtrlFactory;
- LLLocationInputCtrl(const Params&);
-public:
// LLView interface
-
- virtual BOOL postBuild();
- virtual void draw();
- virtual void onFocusLost();
-
- virtual void setEnabled(BOOL enabled);
-
- virtual BOOL handleToolTip(S32 x, S32 y, std::string& msg, LLRect* sticky_rect);
- virtual BOOL handleKeyHere(KEY key, MASK mask);
- virtual BOOL handleUnicodeCharHere(llwchar uni_char);
+ /*virtual*/ void setEnabled(BOOL enabled);
+ /*virtual*/ BOOL handleToolTip(S32 x, S32 y, std::string& msg, LLRect* sticky_rect);
+ /*virtual*/ BOOL handleKeyHere(KEY key, MASK mask);
+ //========================================================================
// LLUICtrl interface
- virtual void clear(); // select nothing
- virtual void onCommit();
- virtual BOOL acceptsTextInput() const { return mAllowTextEntry; }
- virtual BOOL isDirty() const; // Returns TRUE if the user has modified this control.
- virtual void resetDirty(); // Clear dirty state
-
- virtual void setFocus(BOOL b);
-
- // Selects item by underlying LLSD value, using LLSD::asString() matching.
- // For simple items, this is just the name of the label.
- virtual void setValue(const LLSD& value );
-
- // Gets underlying LLSD value for currently selected items. For simple
- // items, this is just the label.
- virtual LLSD getValue() const;
-
- void setTextEntry(const LLStringExplicit& text);
- void setText(const LLStringExplicit& text);
-
- LLScrollListItem* add(const std::string& name, EAddPosition pos = ADD_BOTTOM, BOOL enabled = TRUE); // add item "name" to menu
- LLScrollListItem* add(const std::string& name, const LLUUID& id, EAddPosition pos = ADD_BOTTOM, BOOL enabled = TRUE);
- LLScrollListItem* add(const std::string& name, void* userdata, EAddPosition pos = ADD_BOTTOM, BOOL enabled = TRUE);
- LLScrollListItem* add(const std::string& name, LLSD value, EAddPosition pos = ADD_BOTTOM, BOOL enabled = TRUE);
- LLScrollListItem* addSeparator(EAddPosition pos = ADD_BOTTOM);
- BOOL remove( S32 index ); // remove item by index, return TRUE if found and removed
- void removeall() { clearRows(); }
-
- void sortByName(BOOL ascending = TRUE); // Sort the entries in the combobox by name
-
- // Select current item by name using selectItemByLabel. Returns FALSE if not found.
- BOOL setSimple(const LLStringExplicit& name);
- // Get name of current item. Returns an empty string if not found.
- const std::string getSimple() const;
- // Get contents of column x of selected row
- const std::string getSelectedItemLabel(S32 column = 0) const;
-
- // Sets the label, which doesn't have to exist in the label.
- // This is probably a UI abuse.
- void setLabel(const LLStringExplicit& name);
-
- BOOL remove(const std::string& name); // remove item "name", return TRUE if found and removed
-
- BOOL setCurrentByIndex( S32 index );
- S32 getCurrentIndex() const;
-
- virtual void updateLayout();
-
+ /*virtual*/ void setFocus(BOOL b);
//========================================================================
- LLCtrlSelectionInterface* getSelectionInterface() { return (LLCtrlSelectionInterface*)this; };
- LLCtrlListInterface* getListInterface() { return (LLCtrlListInterface*)this; };
-
- // LLCtrlListInterface functions
- // See llscrolllistctrl.h
- virtual S32 getItemCount() const;
- // Overwrites the default column (See LLScrollListCtrl for format)
- virtual void addColumn(const LLSD& column, EAddPosition pos = ADD_BOTTOM);
- virtual void clearColumns();
- virtual void setColumnLabel(const std::string& column, const std::string& label);
- virtual LLScrollListItem* addElement(const LLSD& value, EAddPosition pos = ADD_BOTTOM, void* userdata = NULL);
- virtual LLScrollListItem* addSimpleElement(const std::string& value, EAddPosition pos = ADD_BOTTOM, const LLSD& id = LLSD());
- virtual void clearRows();
- virtual void sortByColumn(const std::string& name, BOOL ascending);
-
- // LLCtrlSelectionInterface functions
- virtual BOOL getCanSelect() const { return TRUE; }
- virtual BOOL selectFirstItem() { return setCurrentByIndex(0); }
- virtual BOOL selectNthItem( S32 index ) { return setCurrentByIndex(index); }
- virtual BOOL selectItemRange( S32 first, S32 last );
- virtual S32 getFirstSelectedIndex() const { return getCurrentIndex(); }
- virtual BOOL setCurrentByID( const LLUUID& id );
- virtual LLUUID getCurrentID() const; // LLUUID::null if no items in menu
- virtual BOOL setSelectedByValue(const LLSD& value, BOOL selected);
- virtual LLSD getSelectedValue();
- virtual BOOL isSelected(const LLSD& value) const;
- virtual BOOL operateOnSelection(EOperation op);
- virtual BOOL operateOnAll(EOperation op);
+ // LLComboBox interface
+ void hideList();
+ void onTextEntry(LLLineEditor* line_editor);
//========================================================================
-
- void* getCurrentUserdata();
-
- void setPrearrangeCallback( commit_callback_t cb ) { mPrearrangeCallback = cb; }
- void setTextEntryCallback( commit_callback_t cb ) { mTextEntryCallback = cb; }
- void setSelectionCallback( commit_callback_t cb ) { mSelectionCallback = cb; }
- void setButtonVisible(BOOL visible);
+ LLLineEditor* getTextEntry() const { return mTextEntry; }
+ void handleLoginComplete();
- void onButtonDown();
- void onItemSelected(const LLSD& data);
- void onTextCommit(const LLSD& data);
-
- virtual void updateSelection();
- virtual void showList();
- virtual void hideList();
-
- //========================================================================
- BOOL childHasFocus() const; /// Is one of our children focused?
-
- BOOL canCut() const;
- BOOL canCopy() const;
- BOOL canPaste() const;
- BOOL canDeselect() const;
- BOOL canSelectAll() const;
-
- void cut();
- void copy();
- void paste();
- void deleteSelection();
- void selectAll();
- //========================================================================
-
- void onTextEntry(LLLineEditor* line_editor);
-
-protected:
-
- void prearrangeList(std::string filter = "");
-
-
- LLButton* mButton;
- LLScrollListCtrl* mList;
- EPreferredPosition mListPosition;
- LLPointer<LLUIImage> mArrowImage;
- std::string mLabel;
- S32 mButtonPadding;
- LLLineEditor* mTextEntry;
- BOOL mAllowTextEntry;
- BOOL mSelectOnFocus;
- BOOL mHasAutocompletedText;
- S32 mMaxChars;
- BOOL mTextEntryTentative;
- commit_callback_t mPrearrangeCallback;
- commit_callback_t mTextEntryCallback;
- commit_callback_t mSelectionCallback;
+private:
+ friend class LLUICtrlFactory;
+ LLLocationInputCtrl(const Params&);
+ virtual ~LLLocationInputCtrl();
+
+ void focusTextEntry();
+ void enableAddLandmarkButton(bool val);
+ void refresh();
+ void refreshLocation();
+ void rebuildLocationHistory(std::string filter = "");
+ void setText(const LLStringExplicit& text);
+ void updateAddLandmarkButton();
+ void updateWidgetlayout();
+
+ void onFocusReceived();
+ void onFocusLost();
+ void onInfoButtonClicked();
+ void onLocationHistoryLoaded();
+ void onLocationPrearrange(const LLSD& data);
+ void onLandmarkLoaded(LLLandmark* lm);
+ void onAddLandmarkButtonClicked();
+ void onAgentParcelChange();
+
+ LLButton* mBackground;
+ LLButton* mAddLandmarkBtn;
+ LLButton* mInfoBtn;
+ S32 mAddLandmarkHPad;
+
+ LLAddLandmarkObserver* mAddLandmarkObserver;
+ LLRemoveLandmarkObserver* mRemoveLandmarkObserver;
};
#endif
diff --git a/indra/newview/lllogchat.cpp b/indra/newview/lllogchat.cpp
index 29cf996f7c..69214b5cab 100644
--- a/indra/newview/lllogchat.cpp
+++ b/indra/newview/lllogchat.cpp
@@ -71,11 +71,16 @@ std::string LLLogChat::timestamp(bool withdate)
if (withdate)
{
- timeStr = LLTrans::getString ("LogChatDateTime");
+ timeStr = "["+LLTrans::getString ("TimeYear")+"]/["
+ +LLTrans::getString ("TimeMonth")+"]/["
+ +LLTrans::getString ("TimeDay")+"] ["
+ +LLTrans::getString ("TimeHour")+"]:["
+ +LLTrans::getString ("TimeMin")+"] ";
}
else
{
- timeStr = LLTrans::getString ("LogChatTime");
+ timeStr = "[" + LLTrans::getString("TimeHour") + "]:["
+ + LLTrans::getString ("TimeMin")+"] ";
}
LLStringUtil::format (timeStr, substitution);
diff --git a/indra/newview/llmanip.cpp b/indra/newview/llmanip.cpp
index 2d852dea40..7039776585 100644
--- a/indra/newview/llmanip.cpp
+++ b/indra/newview/llmanip.cpp
@@ -499,9 +499,9 @@ void LLManip::renderTickText(const LLVector3& pos, const std::string& text, cons
// render shadow first
LLColor4 shadow_color = LLColor4::black;
shadow_color.mV[VALPHA] = color.mV[VALPHA] * 0.5f;
- gViewerWindow->setupViewport(1, -1);
+ gViewerWindow->setup3DViewport(1, -1);
hud_render_utf8text(text, render_pos, *big_fontp, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, -0.5f * big_fontp->getWidthF32(text), 3.f, shadow_color, mObjectSelection->getSelectType() == SELECT_TYPE_HUD);
- gViewerWindow->setupViewport();
+ gViewerWindow->setup3DViewport();
hud_render_utf8text(text, render_pos, *big_fontp, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, -0.5f * big_fontp->getWidthF32(text), 3.f, color, mObjectSelection->getSelectType() == SELECT_TYPE_HUD);
glPopMatrix();
@@ -561,19 +561,19 @@ void LLManip::renderTickValue(const LLVector3& pos, F32 value, const std::string
{
fraction_string = llformat("%c%02d%s", LLResMgr::getInstance()->getDecimalPoint(), fractional_portion, suffix.c_str());
- gViewerWindow->setupViewport(1, -1);
+ 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);
- gViewerWindow->setupViewport();
+ 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->setupViewport(1, -1);
+ 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->setupViewport();
+ 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);
}
glPopMatrix();
@@ -592,14 +592,14 @@ LLColor4 LLManip::setupSnapGuideRenderPass(S32 pass)
{
case 0:
// shadow
- gViewerWindow->setupViewport(1, -1);
+ gViewerWindow->setup3DViewport(1, -1);
line_color = grid_color_shadow;
line_color.mV[VALPHA] *= line_alpha;
LLUI::setLineWidth(2.f);
break;
case 1:
// hidden lines
- gViewerWindow->setupViewport();
+ gViewerWindow->setup3DViewport();
line_color = grid_color_bg;
line_color.mV[VALPHA] *= line_alpha;
LLUI::setLineWidth(1.f);
diff --git a/indra/newview/llmaniptranslate.cpp b/indra/newview/llmaniptranslate.cpp
index 8a12f75536..b8c2a3d64b 100644
--- a/indra/newview/llmaniptranslate.cpp
+++ b/indra/newview/llmaniptranslate.cpp
@@ -61,7 +61,7 @@
#include "llviewerjoint.h"
#include "llviewerobject.h"
#include "llviewerwindow.h"
-#include "llvoavatar.h"
+#include "llvoavatarself.h"
#include "llworld.h"
#include "llui.h"
#include "pipeline.h"
diff --git a/indra/newview/llmemoryview.cpp b/indra/newview/llmemoryview.cpp
index c763da34d5..ab5db93027 100644
--- a/indra/newview/llmemoryview.cpp
+++ b/indra/newview/llmemoryview.cpp
@@ -35,33 +35,20 @@
#include "indra_constants.h"
#include "llmemoryview.h"
-#include "llrect.h"
-#include "llerror.h"
-#include "llgl.h"
-#include "llmath.h"
-#include "llfontgl.h"
-#include "llmemtype.h"
-
-#include "llcharacter.h"
-#include "llui.h"
+#include "llappviewer.h"
+#include "llallocator_heap_profile.h"
+#include "llviewerwindow.h"
#include "llviewercontrol.h"
-#include "llstat.h"
-
-#include "llfasttimer.h"
+#include <sstream>
+#include <boost/algorithm/string/split.hpp>
LLMemoryView::LLMemoryView(const LLMemoryView::Params& p)
: LLView(p),
- mDelay(120)
+ //mDelay(120),
+ mAlloc(NULL)
{
- mDumpTimer.reset();
-
-#ifdef MEM_DUMP_DATA
- // clear out file.
- LLFILE *dump = LLFile::fopen("memusagedump.txt", "w");
- fclose(dump);
-#endif
}
LLMemoryView::~LLMemoryView()
@@ -93,62 +80,101 @@ BOOL LLMemoryView::handleHover(S32 x, S32 y, MASK mask)
return FALSE;
}
-//////////////////////////////////////////////////////////////////////////////
-
-struct mtv_display_info {
- S32 memtype;
- const char *desc;
- const LLColor4 *color;
-};
-
-static const LLColor4 red0(0.5f, 0.0f, 0.0f, 1.0f);
-
-static const struct mtv_display_info mtv_display_table[] =
+void LLMemoryView::refreshProfile()
{
- { LLMemType::MTYPE_INIT, "Init", &LLColor4::white },
- { LLMemType::MTYPE_STARTUP, "Startup", &LLColor4::cyan1 },
- { LLMemType::MTYPE_MAIN, "Main", &LLColor4::cyan2 },
- { LLMemType::MTYPE_IMAGEBASE, "ImageBase", &LLColor4::yellow1 },
- { LLMemType::MTYPE_IMAGERAW, "ImageRaw", &LLColor4::yellow2 },
- { LLMemType::MTYPE_IMAGEFORMATTED, "ImageFmtd", &LLColor4::yellow3 },
- { LLMemType::MTYPE_APPFMTIMAGE, "ViewerImageFmt", &LLColor4::orange1 },
- { LLMemType::MTYPE_APPRAWIMAGE, "ViewerImageRaw", &LLColor4::orange2 },
- { LLMemType::MTYPE_APPAUXRAWIMAGE, "ViewerImageAux", &LLColor4::orange3 },
- { LLMemType::MTYPE_DRAWABLE, "Drawable", &LLColor4::green1 },
- { LLMemType::MTYPE_OBJECT, "ViewerObject", &LLColor4::green2 },
- { LLMemType::MTYPE_PIPELINE, "Pipeline", &LLColor4::green3 },
- { LLMemType::MTYPE_PARTICLES, "Particles", &LLColor4::green4 },
- { LLMemType::MTYPE_SPACE_PARTITION, "Space Partition", &LLColor4::blue2 },
- { LLMemType::MTYPE_VERTEX_DATA, "Vertex Buffer", &LLColor4::blue3 },
- { LLMemType::MTYPE_AVATAR, "Avatar", &LLColor4::purple1 },
- { LLMemType::MTYPE_AVATAR_MESH, "Avatar Mesh", &LLColor4::purple2 },
- { LLMemType::MTYPE_ANIMATION, "Animation", &LLColor4::purple3 },
- { LLMemType::MTYPE_REGIONS, "Regions", &LLColor4::blue1 },
- { LLMemType::MTYPE_VOLUME, "Volume", &LLColor4::pink1 },
- { LLMemType::MTYPE_PRIMITIVE, "Profile", &LLColor4::pink2 },
- { LLMemType::MTYPE_TEMP1, "Temp1", &LLColor4::red1 },
- { LLMemType::MTYPE_TEMP2, "Temp2", &LLColor4::magenta1 },
- { LLMemType::MTYPE_TEMP3, "Temp3", &LLColor4::red2 },
- { LLMemType::MTYPE_TEMP4, "Temp4", &LLColor4::magenta2 },
- { LLMemType::MTYPE_TEMP5, "Temp5", &LLColor4::red3 },
- { LLMemType::MTYPE_TEMP6, "Temp6", &LLColor4::magenta3 },
- { LLMemType::MTYPE_TEMP7, "Temp7", &LLColor4::red4 },
- { LLMemType::MTYPE_TEMP8, "Temp8", &LLColor4::magenta4 },
-
- { LLMemType::MTYPE_OTHER, "Other", &red0 },
-};
-static const int MTV_DISPLAY_NUM = LL_ARRAY_SIZE(mtv_display_table);
+ /*
+ LLAllocator & alloc = LLAppViewer::instance()->getAllocator();
+ if(alloc.isProfiling()) {
+ std::string profile_text = alloc.getRawProfile();
+
+ boost::algorithm::split(mLines, profile_text, boost::bind(std::equal_to<llwchar>(), '\n', _1));
+ } else {
+ mLines.clear();
+ }
+ */
+ if (mAlloc == NULL) {
+ mAlloc = &LLAppViewer::instance()->getAllocator();
+ }
+
+ mLines.clear();
+
+ if(mAlloc->isProfiling())
+ {
+ const LLAllocatorHeapProfile &prof = mAlloc->getProfile();
+ for(size_t i = 0; i < prof.mLines.size(); ++i)
+ {
+ std::stringstream ss;
+ ss << "Unfreed Mem: " << (prof.mLines[i].mLiveSize >> 20) << " M Trace: ";
+ for(size_t k = 0; k < prof.mLines[i].mTrace.size(); ++k)
+ {
+ ss << LLMemType::getNameFromID(prof.mLines[i].mTrace[k]) << " ";
+ }
+ mLines.push_back(utf8string_to_wstring(ss.str()));
+ }
+ }
+}
void LLMemoryView::draw()
{
- std::string tdesc;
- S32 width = getRect().getWidth();
- S32 height = getRect().getHeight();
+ const S32 UPDATE_INTERVAL = 60;
+ const S32 MARGIN_AMT = 10;
+ static S32 curUpdate = UPDATE_INTERVAL;
+ static LLCachedControl<LLColor4> s_console_color(gSavedSkinSettings, "ConsoleBackground", LLColor4U::black);
+
+ // setup update interval
+ if (curUpdate >= UPDATE_INTERVAL)
+ {
+ refreshProfile();
+ curUpdate = 0;
+ }
+ curUpdate++;
+
+ // setup window properly
+ S32 height = (S32) (gViewerWindow->getVirtualWindowRect().getHeight()*0.75f);
+ S32 width = (S32) (gViewerWindow->getVirtualWindowRect().getWidth() * 0.9f);
+ setRect(LLRect().setLeftTopAndSize(getRect().mLeft, getRect().mTop, width, height));
+ // setup window color
+ F32 console_opacity = llclamp(gSavedSettings.getF32("ConsoleBackgroundOpacity"), 0.f, 1.f);
+ LLColor4 color = s_console_color;
+ color.mV[VALPHA] *= console_opacity;
+
LLGLSUIDefault gls_ui;
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
- gl_rect_2d(0, height, width, 0, LLColor4(0.f, 0.f, 0.f, 0.25f));
+ gl_rect_2d(0, height, width, 0, color);
+ LLFontGL * font = LLFontGL::getFontSansSerifSmall();
+
+ // draw remaining lines
+ F32 y_pos = 0.f;
+ F32 y_off = 0.f;
+
+ F32 line_height = font->getLineHeight();
+ S32 target_width = width - 2 * MARGIN_AMT;
+
+ // cut off lines on bottom
+ U32 max_lines = U32((height - 2 * line_height) / line_height);
+ std::vector<LLWString>::const_iterator end = mLines.end();
+ if(mLines.size() > max_lines) {
+ end = mLines.begin() + max_lines;
+ }
+
+ y_pos = height - MARGIN_AMT - line_height;
+ y_off = 0.f;
+ for (std::vector<LLWString>::const_iterator i = mLines.begin(); i != end; ++i)
+ {
+ font->render(*i, 0, MARGIN_AMT, y_pos - y_off,
+ LLColor4::white,
+ LLFontGL::LEFT,
+ LLFontGL::BASELINE,
+ LLFontGL::NORMAL,
+ LLFontGL::DROP_SHADOW,
+ S32_MAX,
+ target_width
+ );
+ y_off += line_height;
+ }
+
#if MEM_TRACK_TYPE
S32 left, top, right, bottom;
@@ -266,40 +292,3 @@ void LLMemoryView::draw()
LLView::draw();
}
-
-void LLMemoryView::setDataDumpInterval(float delay)
-{
- mDelay = delay;
-}
-
-void LLMemoryView::dumpData()
-{
-#if MEM_TRACK_TYPE && MEM_DUMP_DATA
- if (mDelay && (mDumpTimer.getElapsedTimeF32() > mDelay ))
- {
- // reset timer
- mDumpTimer.reset();
- // append dump info to text file
- LLFILE *dump = LLFile::fopen("memusagedump.txt", "a");
-
- if (dump)
- {
- // write out total memory usage
- fprintf (dump, "Total memory in use = %09d (%03d MB)\n", LLMemType::sTotalMem, LLMemType::sTotalMem>>20);
- fprintf (dump, "High Water Mark = %09d (%03d MB)\n\n", LLMemType::sMaxTotalMem, LLMemType::sMaxTotalMem>>20);
- // dump out usage of 'new' for each memory type
- for (S32 i=0; i<LLMemType::MTYPE_NUM_TYPES; i++)
- {
- if (LLMemType::sMemCount[i])
- {
- std::string outData = llformat("MEM: % 20s %09d %03d MB (%09d %03d MB) in %06d News", LLMemType::sTypeDesc[i], LLMemType::sMemCount[i], LLMemType::sMemCount[i]>>20, LLMemType::sMaxMemCount[i], LLMemType::sMaxMemCount[i]>>20, LLMemType::sNewCount[i]);
- fprintf (dump, "%s\n", outData.c_str());
- }
- }
- fprintf (dump, "\n\n");
-
- fclose(dump);
- }
- }
-#endif
-}
diff --git a/indra/newview/llmemoryview.h b/indra/newview/llmemoryview.h
index e5b019bb47..774a52b88b 100644
--- a/indra/newview/llmemoryview.h
+++ b/indra/newview/llmemoryview.h
@@ -35,6 +35,8 @@
#include "llview.h"
+class LLAllocator;
+
class LLMemoryView : public LLView
{
public:
@@ -54,14 +56,12 @@ public:
virtual BOOL handleHover(S32 x, S32 y, MASK mask);
virtual void draw();
-private:
- void setDataDumpInterval(float delay);
- void dumpData();
-
- float mDelay;
- LLFrameTimer mDumpTimer;
+ void refreshProfile();
private:
+ std::vector<LLWString> mLines;
+ LLAllocator* mAlloc;
+
};
#endif
diff --git a/indra/newview/llmenucommands.cpp b/indra/newview/llmenucommands.cpp
index 502302868e..d76ddbf4d4 100644
--- a/indra/newview/llmenucommands.cpp
+++ b/indra/newview/llmenucommands.cpp
@@ -67,7 +67,7 @@
#include "llworld.h"
#include "llworldmap.h"
#include "llfocusmgr.h"
-
+#include "llbottomtray.h"
void handle_pay_by_id(const LLUUID& agent_id)
{
const BOOL is_group = FALSE;
@@ -83,7 +83,8 @@ void handle_mouselook(void*)
void handle_chat(void*)
{
// give focus to chatbar if it's open but not focused
- if (gSavedSettings.getBOOL("ChatVisible") && gFocusMgr.childHasKeyboardFocus(gChatBar))
+ if (gSavedSettings.getBOOL("ChatVisible") && gFocusMgr.childHasKeyboardFocus(
+ LLBottomTray::getInstance()->getChatBox()))
{
LLChatBar::stopChat();
}
diff --git a/indra/newview/llmetricperformancetester.cpp b/indra/newview/llmetricperformancetester.cpp
new file mode 100644
index 0000000000..93288c98d7
--- /dev/null
+++ b/indra/newview/llmetricperformancetester.cpp
@@ -0,0 +1,258 @@
+/**
+ * @file llmetricperformancetester.cpp
+ * @brief LLMetricPerformanceTester class implementation
+ *
+ * $LicenseInfo:firstyear=2004&license=viewergpl$
+ *
+ * Copyright (c) 2004-2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+
+#include "indra_constants.h"
+#include "llerror.h"
+#include "llmath.h"
+#include "llfontgl.h"
+#include "llsdserialize.h"
+#include "llstat.h"
+#include "lltreeiterators.h"
+#include "llmetricperformancetester.h"
+
+LLMetricPerformanceTester::name_tester_map_t LLMetricPerformanceTester::sTesterMap ;
+
+//static
+void LLMetricPerformanceTester::initClass()
+{
+}
+//static
+void LLMetricPerformanceTester::cleanClass()
+{
+ for(name_tester_map_t::iterator iter = sTesterMap.begin() ; iter != sTesterMap.end() ; ++iter)
+ {
+ delete iter->second ;
+ }
+ sTesterMap.clear() ;
+}
+
+//static
+void LLMetricPerformanceTester::addTester(LLMetricPerformanceTester* tester)
+{
+ if(!tester)
+ {
+ llerrs << "invalid tester!" << llendl ;
+ return ;
+ }
+
+ std::string name = tester->getName() ;
+ if(getTester(name))
+ {
+ llerrs << "Tester name is used by some other tester: " << name << llendl ;
+ return ;
+ }
+
+ sTesterMap.insert(std::make_pair(name, tester));
+
+ return ;
+}
+
+//static
+LLMetricPerformanceTester* LLMetricPerformanceTester::getTester(std::string label)
+{
+ name_tester_map_t::iterator found_it = sTesterMap.find(label) ;
+ if(found_it != sTesterMap.end())
+ {
+ return found_it->second ;
+ }
+
+ return NULL ;
+}
+
+LLMetricPerformanceTester::LLMetricPerformanceTester(std::string name, BOOL use_default_performance_analysis)
+ : mName(name),
+ mBaseSessionp(NULL),
+ mCurrentSessionp(NULL),
+ mCount(0),
+ mUseDefaultPerformanceAnalysis(use_default_performance_analysis)
+{
+ if(mName == std::string())
+ {
+ llerrs << "invalid name." << llendl ;
+ }
+
+ LLMetricPerformanceTester::addTester(this) ;
+}
+
+/*virtual*/
+LLMetricPerformanceTester::~LLMetricPerformanceTester()
+{
+ if(mBaseSessionp)
+ {
+ delete mBaseSessionp ;
+ mBaseSessionp = NULL ;
+ }
+ if(mCurrentSessionp)
+ {
+ delete mCurrentSessionp ;
+ mCurrentSessionp = NULL ;
+ }
+}
+
+void LLMetricPerformanceTester::incLabel()
+{
+ mCurLabel = llformat("%s-%d", mName.c_str(), mCount++) ;
+}
+void LLMetricPerformanceTester::preOutputTestResults(LLSD* sd)
+{
+ incLabel() ;
+ (*sd)[mCurLabel]["Name"] = mName ;
+}
+void LLMetricPerformanceTester::postOutputTestResults(LLSD* sd)
+{
+ LLMutexLock lock(LLFastTimer::sLogLock);
+ LLFastTimer::sLogQueue.push((*sd));
+}
+
+void LLMetricPerformanceTester::outputTestResults()
+{
+ LLSD sd ;
+ preOutputTestResults(&sd) ;
+
+ outputTestRecord(&sd) ;
+
+ postOutputTestResults(&sd) ;
+}
+
+void LLMetricPerformanceTester::addMetricString(std::string str)
+{
+ mMetricStrings.push_back(str) ;
+}
+
+const std::string& LLMetricPerformanceTester::getMetricString(U32 index) const
+{
+ return mMetricStrings[index] ;
+}
+
+void LLMetricPerformanceTester::prePerformanceAnalysis()
+{
+ mCount = 0 ;
+ incLabel() ;
+}
+
+//
+//default analyzing the performance
+//
+/*virtual*/
+void LLMetricPerformanceTester::analyzePerformance(std::ofstream* os, LLSD* base, LLSD* current)
+{
+ if(mUseDefaultPerformanceAnalysis)//use default performance analysis
+ {
+ prePerformanceAnalysis() ;
+
+ BOOL in_base = (*base).has(mCurLabel) ;
+ BOOL in_current = (*current).has(mCurLabel) ;
+
+ while(in_base || in_current)
+ {
+ LLSD::String label = mCurLabel ;
+
+ if(in_base && in_current)
+ {
+ *os << llformat("%s\n", label.c_str()) ;
+
+ for(U32 index = 0 ; index < mMetricStrings.size() ; index++)
+ {
+ switch((*current)[label][ mMetricStrings[index] ].type())
+ {
+ case LLSD::TypeInteger:
+ compareTestResults(os, mMetricStrings[index],
+ (S32)((*base)[label][ mMetricStrings[index] ].asInteger()), (S32)((*current)[label][ mMetricStrings[index] ].asInteger())) ;
+ break ;
+ case LLSD::TypeReal:
+ compareTestResults(os, mMetricStrings[index],
+ (F32)((*base)[label][ mMetricStrings[index] ].asReal()), (F32)((*current)[label][ mMetricStrings[index] ].asReal())) ;
+ break;
+ default:
+ llerrs << "unsupported metric " << mMetricStrings[index] << " LLSD type: " << (S32)(*current)[label][ mMetricStrings[index] ].type() << llendl ;
+ }
+ }
+ }
+
+ incLabel() ;
+ in_base = (*base).has(mCurLabel) ;
+ in_current = (*current).has(mCurLabel) ;
+ }
+ }//end of default
+ else
+ {
+ //load the base session
+ prePerformanceAnalysis() ;
+ mBaseSessionp = loadTestSession(base) ;
+
+ //load the current session
+ prePerformanceAnalysis() ;
+ mCurrentSessionp = loadTestSession(current) ;
+
+ if(!mBaseSessionp || !mCurrentSessionp)
+ {
+ llerrs << "memory error during loading test sessions." << llendl ;
+ }
+
+ //compare
+ compareTestSessions(os) ;
+
+ //release memory
+ if(mBaseSessionp)
+ {
+ delete mBaseSessionp ;
+ mBaseSessionp = NULL ;
+ }
+ if(mCurrentSessionp)
+ {
+ delete mCurrentSessionp ;
+ mCurrentSessionp = NULL ;
+ }
+ }
+}
+
+//virtual
+void LLMetricPerformanceTester::compareTestResults(std::ofstream* os, std::string metric_string, S32 v_base, S32 v_current)
+{
+ *os << llformat(" ,%s, %d, %d, %d, %.4f\n", metric_string.c_str(), v_base, v_current,
+ v_current - v_base, (v_base != 0) ? 100.f * v_current / v_base : 0) ;
+}
+
+//virtual
+void LLMetricPerformanceTester::compareTestResults(std::ofstream* os, std::string metric_string, F32 v_base, F32 v_current)
+{
+ *os << llformat(" ,%s, %.4f, %.4f, %.4f, %.4f\n", metric_string.c_str(), v_base, v_current,
+ v_current - v_base, (fabs(v_base) > 0.0001f) ? 100.f * v_current / v_base : 0.f ) ;
+}
+
+//virtual
+LLMetricPerformanceTester::LLTestSession::~LLTestSession()
+{
+}
+
diff --git a/indra/newview/llmetricperformancetester.h b/indra/newview/llmetricperformancetester.h
new file mode 100644
index 0000000000..ab5ccaeb8e
--- /dev/null
+++ b/indra/newview/llmetricperformancetester.h
@@ -0,0 +1,159 @@
+/**
+ * @file LLMetricPerformanceTester.h
+ * @brief LLMetricPerformanceTester class definition
+ *
+ * $LicenseInfo:firstyear=2004&license=viewergpl$
+ *
+ * Copyright (c) 2004-2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#ifndef LL_METRICPERFORMANCETESTER_H
+#define LL_METRICPERFORMANCETESTER_H
+
+class LLMetricPerformanceTester
+{
+public:
+ //
+ //name passed to the constructor is a unique string for each tester.
+ //an error is reported if the name is already used by some other tester.
+ //
+ LLMetricPerformanceTester(std::string name, BOOL use_default_performance_analysis) ;
+ virtual ~LLMetricPerformanceTester();
+
+ //
+ //return the name of the tester
+ //
+ std::string getName() const { return mName ;}
+ //
+ //return the number of the test metrics in this tester
+ //
+ S32 getNumOfMetricStrings() const { return mMetricStrings.size() ;}
+ //
+ //return the metric string at the index
+ //
+ const std::string& getMetricString(U32 index) const ;
+
+ //
+ //this function to compare the test results.
+ //by default, it compares the test results against the baseline one by one, item by item,
+ //in the increasing order of the LLSD label counter, starting from the first one.
+ //you can define your own way to analyze performance by passing FALSE to "use_default_performance_analysis",
+ //and implement two abstract virtual functions below: loadTestSession(...) and compareTestSessions(...).
+ //
+ void analyzePerformance(std::ofstream* os, LLSD* base, LLSD* current) ;
+
+protected:
+ //
+ //insert metric strings used in the tester.
+ //
+ void addMetricString(std::string str) ;
+
+ //
+ //increase LLSD label by 1
+ //
+ void incLabel() ;
+
+ //
+ //the function to write a set of test results to the log LLSD.
+ //
+ void outputTestResults() ;
+
+ //
+ //compare the test results.
+ //you can write your own to overwrite the default one.
+ //
+ virtual void compareTestResults(std::ofstream* os, std::string metric_string, S32 v_base, S32 v_current) ;
+ virtual void compareTestResults(std::ofstream* os, std::string metric_string, F32 v_base, F32 v_current) ;
+
+ //
+ //for performance analysis use
+ //it defines an interface for the two abstract virtual functions loadTestSession(...) and compareTestSessions(...).
+ //please make your own test session class derived from it.
+ //
+ class LLTestSession
+ {
+ public:
+ virtual ~LLTestSession() ;
+ };
+
+ //
+ //load a test session for log LLSD
+ //you need to implement it only when you define your own way to analyze performance.
+ //otherwise leave it empty.
+ //
+ virtual LLMetricPerformanceTester::LLTestSession* loadTestSession(LLSD* log) = 0 ;
+ //
+ //compare the base session and the target session
+ //you need to implement it only when you define your own way to analyze performance.
+ //otherwise leave it empty.
+ //
+ virtual void compareTestSessions(std::ofstream* os) = 0 ;
+ //
+ //the function to write a set of test results to the log LLSD.
+ //you have to write you own version of this function.
+ //
+ virtual void outputTestRecord(LLSD* sd) = 0 ;
+
+private:
+ void preOutputTestResults(LLSD* sd) ;
+ void postOutputTestResults(LLSD* sd) ;
+ void prePerformanceAnalysis() ;
+
+protected:
+ //
+ //the unique name string of the tester
+ //
+ std::string mName ;
+ //
+ //the current label counter for the log LLSD
+ //
+ std::string mCurLabel ;
+ S32 mCount ;
+
+ BOOL mUseDefaultPerformanceAnalysis ;
+ LLTestSession* mBaseSessionp ;
+ LLTestSession* mCurrentSessionp ;
+
+ //metrics strings
+ std::vector< std::string > mMetricStrings ;
+
+//static members
+private:
+ static void addTester(LLMetricPerformanceTester* tester) ;
+
+public:
+ typedef std::map< std::string, LLMetricPerformanceTester* > name_tester_map_t;
+ static name_tester_map_t sTesterMap ;
+
+ static LLMetricPerformanceTester* getTester(std::string label) ;
+ static BOOL hasMetricPerformanceTesters() {return !sTesterMap.empty() ;}
+
+ static void initClass() ;
+ static void cleanClass() ;
+};
+
+#endif
+
diff --git a/indra/newview/llmorphview.cpp b/indra/newview/llmorphview.cpp
index 0e49ecd9b5..f562e45770 100644
--- a/indra/newview/llmorphview.cpp
+++ b/indra/newview/llmorphview.cpp
@@ -47,7 +47,7 @@
#include "lltoolmgr.h"
#include "lltoolmorph.h"
#include "llviewercamera.h"
-#include "llvoavatar.h"
+#include "llvoavatarself.h"
#include "llviewerwindow.h"
#include "pipeline.h"
@@ -108,7 +108,7 @@ void LLMorphView::initialize()
//-----------------------------------------------------------------------------
void LLMorphView::shutdown()
{
- LLVOAvatar::onCustomizeEnd();
+ LLVOAvatarSelf::onCustomizeEnd();
LLVOAvatar *avatarp = gAgent.getAvatarObject();
if(avatarp && !avatarp->isDead())
diff --git a/indra/newview/llmutelist.cpp b/indra/newview/llmutelist.cpp
index 4ec2faf957..b47d6f4214 100644
--- a/indra/newview/llmutelist.cpp
+++ b/indra/newview/llmutelist.cpp
@@ -67,7 +67,6 @@
#include "llfloaterchat.h"
#include "llimpanel.h"
#include "llimview.h"
-#include "lltrans.h"
#include "llnotifications.h"
#include "lluistring.h"
#include "llviewerobject.h"
@@ -500,35 +499,42 @@ void LLMuteList::updateRemove(const LLMute& mute)
void notify_automute_callback(const LLUUID& agent_id, const std::string& first_name, const std::string& last_name, BOOL is_group, LLMuteList::EAutoReason reason)
{
- std::string auto_message;
+ std::string notif_name;
switch (reason)
{
default:
case LLMuteList::AR_IM:
- auto_message = LLTrans::getString("AutoUnmuteByIM");
+ notif_name = "AutoUnmuteByIM";
break;
case LLMuteList::AR_INVENTORY:
- auto_message = LLTrans::getString("AutoUnmuteByInventory");
+ notif_name = "AutoUnmuteByInventory";
break;
case LLMuteList::AR_MONEY:
- auto_message = LLTrans::getString("AutoUnmuteByMoney");
+ notif_name = "AutoUnmuteByMoney";
break;
}
- std::string message = auto_message;
- LLStringUtil::format(message, LLSD().insert("FIRST", first_name).insert("LAST", last_name));
-
- if (reason == LLMuteList::AR_IM)
+ LLSD args;
+ args["FIRST"] = first_name;
+ args["LAST"] = last_name;
+
+ LLNotificationPtr notif_ptr = LLNotifications::instance().add(notif_name, args);
+ if (notif_ptr)
{
- LLFloaterIMPanel *timp = gIMMgr->findFloaterBySession(agent_id);
- if (timp)
+ std::string message = notif_ptr->getMessage();
+
+ if (reason == LLMuteList::AR_IM)
{
- timp->addHistoryLine(message);
+ LLFloaterIMPanel *timp = gIMMgr->findFloaterBySession(agent_id);
+ if (timp)
+ {
+ timp->addHistoryLine(message);
+ }
}
- }
- LLChat auto_chat(message);
- LLFloaterChat::addChat(auto_chat, FALSE, FALSE);
+ LLChat auto_chat(message);
+ LLFloaterChat::addChat(auto_chat, FALSE, FALSE);
+ }
}
diff --git a/indra/newview/llnamebox.cpp b/indra/newview/llnamebox.cpp
index 883ddc7b53..b85c1c759d 100644
--- a/indra/newview/llnamebox.cpp
+++ b/indra/newview/llnamebox.cpp
@@ -46,7 +46,7 @@
// statics
std::set<LLNameBox*> LLNameBox::sInstances;
-static LLRegisterWidget<LLNameBox> r("name_box");
+static LLDefaultWidgetRegistry::Register<LLNameBox> r("name_box");
LLNameBox::LLNameBox(const Params& p)
diff --git a/indra/newview/llnameeditor.cpp b/indra/newview/llnameeditor.cpp
index d706daf044..7f9ba8ba5a 100644
--- a/indra/newview/llnameeditor.cpp
+++ b/indra/newview/llnameeditor.cpp
@@ -43,7 +43,7 @@
#include "llstring.h"
#include "llui.h"
-static LLRegisterWidget<LLNameEditor> r("name_editor");
+static LLDefaultWidgetRegistry::Register<LLNameEditor> r("name_editor");
// statics
std::set<LLNameEditor*> LLNameEditor::sInstances;
diff --git a/indra/newview/llnamelistctrl.cpp b/indra/newview/llnamelistctrl.cpp
index 95d787840f..722113928b 100644
--- a/indra/newview/llnamelistctrl.cpp
+++ b/indra/newview/llnamelistctrl.cpp
@@ -44,7 +44,7 @@
#include "llscrolllistcolumn.h"
#include "llsdparam.h"
-static LLRegisterWidget<LLNameListCtrl> r("name_list");
+static LLDefaultWidgetRegistry::Register<LLNameListCtrl> r("name_list");
void LLNameListCtrl::NameTypeNames::declareValues()
{
@@ -266,7 +266,7 @@ void LLNameListCtrl::refreshAll(const LLUUID& id, const std::string& first,
const std::string& last, BOOL is_group)
{
LLInstanceTracker<LLNameListCtrl>::instance_iter it;
- for (it = instancesBegin(); it != instancesEnd(); ++it)
+ for (it = beginInstances(); it != endInstances(); ++it)
{
LLNameListCtrl* ctrl = *it;
ctrl->refresh(id, first, last, is_group);
diff --git a/indra/newview/llnamelistctrl.h b/indra/newview/llnamelistctrl.h
index 379cd48a6a..6f64aa68ad 100644
--- a/indra/newview/llnamelistctrl.h
+++ b/indra/newview/llnamelistctrl.h
@@ -68,8 +68,8 @@ public:
struct NameColumn : public LLInitParam::Choice<NameColumn>
{
- Option<S32> column_index;
- Option<std::string> column_name;
+ Alternative<S32> column_index;
+ Alternative<std::string> column_name;
NameColumn()
: column_name("name_column"),
column_index("name_column_index", 0)
diff --git a/indra/newview/llnavigationbar.cpp b/indra/newview/llnavigationbar.cpp
index 4a9dadfc7a..cf1d9a5d86 100644
--- a/indra/newview/llnavigationbar.cpp
+++ b/indra/newview/llnavigationbar.cpp
@@ -34,31 +34,127 @@
#include "llnavigationbar.h"
-#include "llfocusmgr.h"
-#include "llmenugl.h"
-#include "llparcel.h"
-#include "llregistry.h"
-#include "llwindow.h"
+#include <llfloaterreg.h>
+#include <llfocusmgr.h>
+#include <lliconctrl.h>
+#include <llmenugl.h>
+#include <llwindow.h>
#include "llagent.h"
#include "llfloaterhtmlhelp.h"
-#include "llfloaterreg.h"
#include "lllocationhistory.h"
#include "lllocationinputctrl.h"
#include "llteleporthistory.h"
#include "llslurl.h"
#include "llurlsimstring.h"
+#include "llviewerinventory.h"
+#include "llviewermenu.h"
#include "llviewerparcelmgr.h"
-#include "llviewerregion.h"
#include "llworldmap.h"
+//-- LLTeleportHistoryMenuItem -----------------------------------------------
+
+/**
+ * Item look varies depending on the type (backward/current/forward).
+ */
+class LLTeleportHistoryMenuItem : public LLMenuItemCallGL
+{
+public:
+ typedef enum e_item_type
+ {
+ TYPE_BACKWARD,
+ TYPE_CURRENT,
+ TYPE_FORWARD,
+ } EType;
+
+ struct Params : public LLInitParam::Block<Params, LLMenuItemCallGL::Params>
+ {
+ Mandatory<EType> item_type;
+
+ Params() {}
+ Params(EType type, std::string title);
+ };
+
+ /*virtual*/ void draw();
+ /*virtual*/ void onMouseEnter(S32 x, S32 y, MASK mask);
+ /*virtual*/ void onMouseLeave(S32 x, S32 y, MASK mask);
+
+private:
+ LLTeleportHistoryMenuItem(const Params&);
+ friend class LLUICtrlFactory;
+
+ static const S32 ICON_WIDTH = 16;
+ static const S32 ICON_HEIGHT = 16;
+ static const std::string ICON_IMG_BACKWARD;
+ static const std::string ICON_IMG_FORWARD;
+
+ LLIconCtrl* mArrowIcon;
+};
+
+const std::string LLTeleportHistoryMenuItem::ICON_IMG_BACKWARD("teleport_history_backward.tga");
+const std::string LLTeleportHistoryMenuItem::ICON_IMG_FORWARD("teleport_history_forward.tga");
+
+LLTeleportHistoryMenuItem::Params::Params(EType type, std::string title)
+{
+ item_type(type);
+ font.name("SansSerif");
+
+ if (type == TYPE_CURRENT)
+ font.style("BOLD");
+ else
+ title = " " + title;
+
+ name(title);
+ label(title);
+}
+
+LLTeleportHistoryMenuItem::LLTeleportHistoryMenuItem(const Params& p)
+: LLMenuItemCallGL(p),
+ mArrowIcon(NULL)
+{
+ LLIconCtrl::Params icon_params;
+ icon_params.name("icon");
+ icon_params.rect(LLRect(0, ICON_HEIGHT, ICON_WIDTH, 0));
+ icon_params.mouse_opaque(false);
+ icon_params.follows.flags(FOLLOWS_LEFT | FOLLOWS_TOP);
+ icon_params.tab_stop(false);
+ icon_params.visible(false);
+
+ mArrowIcon = LLUICtrlFactory::create<LLIconCtrl> (icon_params);
+
+ // no image for the current item
+ if (p.item_type == TYPE_BACKWARD)
+ mArrowIcon->setValue(ICON_IMG_BACKWARD);
+ else if (p.item_type == TYPE_FORWARD)
+ mArrowIcon->setValue(ICON_IMG_FORWARD);
+
+ addChild(mArrowIcon);
+}
+
+void LLTeleportHistoryMenuItem::draw()
+{
+ // Draw menu item itself.
+ LLMenuItemCallGL::draw();
+
+ // Draw children if any. *TODO: move this to LLMenuItemGL?
+ LLUICtrl::draw();
+}
+
+void LLTeleportHistoryMenuItem::onMouseEnter(S32 x, S32 y, MASK mask)
+{
+ mArrowIcon->setVisible(TRUE);
+}
+
+void LLTeleportHistoryMenuItem::onMouseLeave(S32 x, S32 y, MASK mask)
+{
+ mArrowIcon->setVisible(FALSE);
+}
+
+//-- LNavigationBar ----------------------------------------------------------
/*
TODO:
- Load navbar height from saved settings (as it's done for status bar) or think of a better way.
-- Share location info formatting code with LLStatusBar.
-- Fix notifications appearing below navbar.
-- Navbar should not be visible in mouselook mode.
*/
S32 NAVIGATION_BAR_HEIGHT = 60; // *HACK
@@ -78,18 +174,20 @@ LLNavigationBar::LLNavigationBar()
mBtnBack(NULL),
mBtnForward(NULL),
mBtnHome(NULL),
- mBtnInfo(NULL),
mBtnHelp(NULL),
mCmbLocation(NULL),
mLeSearch(NULL)
{
setIsChrome(TRUE);
-
+
+ // Register callbacks and load the location field context menu (NB: the order matters).
+ mCommitCallbackRegistrar.add("Navbar.Action", boost::bind(&LLNavigationBar::onLocationContextMenuItemClicked, this, _2));
+ mEnableCallbackRegistrar.add("Navbar.EnableMenuItem", boost::bind(&LLNavigationBar::onLocationContextMenuItemEnabled, this, _2));
+
LLUICtrlFactory::getInstance()->buildPanel(this, "panel_navigation_bar.xml");
// navigation bar can never get a tab
setFocusRoot(FALSE);
-
}
LLNavigationBar::~LLNavigationBar()
@@ -102,14 +200,15 @@ BOOL LLNavigationBar::postBuild()
mBtnBack = getChild<LLButton>("back_btn");
mBtnForward = getChild<LLButton>("forward_btn");
mBtnHome = getChild<LLButton>("home_btn");
- mBtnInfo = getChild<LLButton>("info_btn");
mBtnHelp = getChild<LLButton>("help_btn");
mCmbLocation= getChild<LLLocationInputCtrl>("location_combo");
mLeSearch = getChild<LLLineEditor>("search_input");
- if (!mBtnBack || !mBtnForward || !mBtnHome || !mBtnInfo || !mBtnHelp ||
- !mCmbLocation || !mLeSearch)
+ LLButton* search_btn = getChild<LLButton>("search_btn");
+
+ if (!mBtnBack || !mBtnForward || !mBtnHome || !mBtnHelp ||
+ !mCmbLocation || !mLeSearch || !search_btn)
{
llwarns << "Malformed navigation bar" << llendl;
return FALSE;
@@ -124,23 +223,15 @@ BOOL LLNavigationBar::postBuild()
mBtnForward->setHeldDownCallback(boost::bind(&LLNavigationBar::onBackOrForwardButtonHeldDown, this, _2));
mBtnHome->setClickedCallback(boost::bind(&LLNavigationBar::onHomeButtonClicked, this));
- mBtnInfo->setClickedCallback(boost::bind(&LLNavigationBar::onInfoButtonClicked, this));
mBtnHelp->setClickedCallback(boost::bind(&LLNavigationBar::onHelpButtonClicked, this));
- mCmbLocation->setFocusReceivedCallback(boost::bind(&LLNavigationBar::onLocationFocusReceived, this));
- mCmbLocation->setFocusLostCallback(boost::bind(&LLNavigationBar::onLocationFocusLost, this));
- mCmbLocation->setTextEntryCallback(boost::bind(&LLNavigationBar::onLocationTextEntry, this, _1));
- mCmbLocation->setPrearrangeCallback(boost::bind(&LLNavigationBar::onLocationPrearrange, this, _2));
mCmbLocation->setSelectionCallback(boost::bind(&LLNavigationBar::onLocationSelection, this));
mLeSearch->setCommitCallback(boost::bind(&LLNavigationBar::onSearchCommit, this));
+ search_btn->setClickedCallback(boost::bind(&LLNavigationBar::onSearchCommit, this));
- // Register callbacks and load the location field context menu (NB: the order matters).
- LLUICtrl::CommitCallbackRegistry::ScopedRegistrar commit_registrar;
- LLMenuItemGL::EnableCallbackRegistry::ScopedRegistrar enable_registrar;
- commit_registrar.add("Navbar.Action", boost::bind(&LLNavigationBar::onLocationContextMenuItemClicked, this, _2));
- enable_registrar.add("Navbar.EnableMenuItem", boost::bind(&LLNavigationBar::onLocationContextMenuItemEnabled, this, _2));
- mLocationContextMenu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_navbar.xml", this);
+ // Load the location field context menu
+ mLocationContextMenu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_navbar.xml", gMenuHolder);
if (!mLocationContextMenu)
{
llwarns << "Error loading navigation bar context menu" << llendl;
@@ -150,49 +241,34 @@ BOOL LLNavigationBar::postBuild()
// we'll be notified on teleport history changes
LLTeleportHistory::getInstance()->setHistoryChangedCallback(
boost::bind(&LLNavigationBar::onTeleportHistoryChanged, this));
-
- LLLocationHistory::getInstance()->setLoadedCallback(
- boost::bind(&LLNavigationBar::onLocationHistoryLoaded, this));
-
- LLLocationHistory::getInstance()->load(); // *TODO: temporary, remove this after debugging
- LLTeleportHistory::getInstance()->load(); // *TODO: temporary, remove this after debugging
-
+
return TRUE;
}
void LLNavigationBar::draw()
{
- // *TODO: It doesn't look very optimal to refresh location every frame.
- refreshLocation();
LLPanel::draw();
}
BOOL LLNavigationBar::handleRightMouseDown(S32 x, S32 y, MASK mask)
{
+ // *HACK. We should use mCmbLocation's right click callback instead.
+
// If the location field is clicked then show its context menu.
if (mCmbLocation->getRect().pointInRect(x, y))
{
-
- // Pass the focus to the line editor when it is righ-clicked
+ // Pass the focus to the line editor when it is right-clicked
mCmbLocation->setFocus(TRUE);
- // IAN BUG why do the individual items need to be enabled individually here?
- // where are they disabled?
-
if (mLocationContextMenu)
{
- mLocationContextMenu->setItemEnabled("Cut", mCmbLocation->canCut());
- mLocationContextMenu->setItemEnabled("Copy", mCmbLocation->canCopy());
- mLocationContextMenu->setItemEnabled("Paste", mCmbLocation->canPaste());
- mLocationContextMenu->setItemEnabled("Delete", mCmbLocation->canDeselect());
- mLocationContextMenu->setItemEnabled("Select All", mCmbLocation->canSelectAll());
-
mLocationContextMenu->buildDrawLabels();
mLocationContextMenu->updateParent(LLMenuGL::sMenuContainer);
LLMenuGL::showPopup(this, mLocationContextMenu, x, y);
}
+ return TRUE;
}
- return TRUE;
+ return LLPanel:: handleRightMouseDown(x, y, mask);
}
void LLNavigationBar::onBackButtonClicked()
@@ -216,13 +292,6 @@ void LLNavigationBar::onHomeButtonClicked()
gAgent.teleportHome();
}
-void LLNavigationBar::onInfoButtonClicked()
-{
- // XXX temporary
- LLTeleportHistory::getInstance()->dump();
- LLLocationHistory::getInstance()->dump();
-}
-
void LLNavigationBar::onHelpButtonClicked()
{
gViewerHtmlHelp.show();
@@ -230,17 +299,7 @@ void LLNavigationBar::onHelpButtonClicked()
void LLNavigationBar::onSearchCommit()
{
- std::string search_text = mLeSearch->getText();
- LLFloaterReg::showInstance("search", LLSD().insert("panel", "all").insert("id", LLSD(search_text)));
-}
-
-void LLNavigationBar::onLocationFocusReceived()
-{
- mCmbLocation->setTextEntry(gAgent.getSLURL());
-}
-
-void LLNavigationBar::onLocationFocusLost()
-{
+ invokeSearch(mLeSearch->getText());
}
void LLNavigationBar::onTeleportHistoryMenuItemClicked(const LLSD& userdata)
@@ -253,51 +312,37 @@ void LLNavigationBar::onTeleportHistoryMenuItemClicked(const LLSD& userdata)
// or selects a location from the typed locations dropdown.
void LLNavigationBar::onLocationSelection()
{
- std::string loc_str = mCmbLocation->getSimple();
+ std::string typed_location = mCmbLocation->getSimple();
// Will not teleport to empty location.
- if (loc_str.empty())
+ if (typed_location.empty())
return;
-
- // *TODO: validate location before adding it to the history.
- S32 selected_item = mCmbLocation->getCurrentIndex();
- if (selected_item == -1) // user has typed text
+
+ std::string region_name;
+ LLVector3 local_coords(128, 128, 0);
+
+ // Is the typed location a SLURL?
+ if (LLSLURL::isSLURL(typed_location))
{
- LLLocationHistory* lh = LLLocationHistory::getInstance();
- mCmbLocation->add(loc_str);
- lh->addItem(loc_str);
- lh->save();
+ // Yes. Extract region name and local coordinates from it.
+ S32 x = 0, y = 0, z = 0;
+ if (LLURLSimString::parse(LLSLURL::stripProtocol(typed_location), &region_name, &x, &y, &z))
+ local_coords.set(x, y, z);
+ else
+ return;
}
-
- // If the input is not a SLURL treat it as a region name.
- if (!LLSLURL::isSLURL(loc_str))
+ else
{
- loc_str = LLSLURL::buildSLURL(loc_str, 128, 128, 0);
+ // Treat it as region name.
+ region_name = typed_location;
}
-
- teleport(loc_str);
-}
-void LLNavigationBar::onLocationTextEntry(LLUICtrl* ctrl)
-{
- LLLineEditor* editor = dynamic_cast<LLLineEditor*>(ctrl);
- if (!editor)
- return;
-
- // *TODO: decide whether to populate the list here on in LLLocationInputCtrl.
- std::string text = editor->getText();
- //rebuildLocationHistory(text);
-}
-
-void LLNavigationBar::onLocationPrearrange(const LLSD& data)
-{
- std::string filter = data.asString();
- rebuildLocationHistory(filter);
-}
-
-void LLNavigationBar::onLocationHistoryLoaded()
-{
- rebuildLocationHistory();
+ // Resolve the region name to its global coordinates.
+ // If resolution succeeds we'll teleport.
+ LLWorldMap::url_callback_t cb = boost::bind(
+ &LLNavigationBar::onRegionNameResponse, this,
+ typed_location, region_name, local_coords, _1, _2, _3, _4);
+ LLWorldMap::getInstance()->sendNamedRegionRequest(region_name, cb, std::string("unused"), false);
}
void LLNavigationBar::onTeleportHistoryChanged()
@@ -309,57 +354,13 @@ void LLNavigationBar::onTeleportHistoryChanged()
mBtnForward->setEnabled(cur_item < ((int)h->getItems().size() - 1));
}
-void LLNavigationBar::refreshLocation()
-{
- // Update location field.
- if (mCmbLocation && !mCmbLocation->childHasFocus())
- {
- std::string location_name;
-
- if (!gAgent.buildLocationString(location_name, LLAgent::LOCATION_FORMAT_FULL))
- location_name = "Unknown";
-
- mCmbLocation->setText(location_name);
- }
-}
-
-void LLNavigationBar::rebuildLocationHistory(std::string filter)
-{
- if (!mCmbLocation)
- {
- llwarns << "Cannot find location history control" << llendl;
- return;
- }
-
- LLLocationHistory::location_list_t filtered_items;
- const LLLocationHistory::location_list_t* itemsp = NULL;
- LLLocationHistory* lh = LLLocationHistory::getInstance();
-
- if (filter.empty())
- itemsp = &lh->getItems();
- else
- {
- lh->getMatchingItems(filter, filtered_items);
- itemsp = &filtered_items;
- }
-
- mCmbLocation->removeall();
- for (LLLocationHistory::location_list_t::const_reverse_iterator it = itemsp->rbegin(); it != itemsp->rend(); it++)
- mCmbLocation->add(*it);
-}
-
void LLNavigationBar::rebuildTeleportHistoryMenu()
{
// Has the pop-up menu been built?
if (mTeleportHistoryMenu)
{
// Clear it.
- // *TODO: LLMenuGL should have a method for removing all items.
- while (mTeleportHistoryMenu->getItemCount())
- {
- LLMenuItemGL* itemp = mTeleportHistoryMenu->getItem(0);
- mTeleportHistoryMenu->removeChild(itemp);
- }
+ mTeleportHistoryMenu->empty();
}
else
{
@@ -369,6 +370,7 @@ void LLNavigationBar::rebuildTeleportHistoryMenu()
menu_p.can_tear_off(false);
menu_p.visible(false);
menu_p.bg_visible(true);
+ menu_p.scrollable(true);
mTeleportHistoryMenu = LLUICtrlFactory::create<LLMenuGL>(menu_p);
addChild(mTeleportHistoryMenu);
@@ -382,26 +384,44 @@ void LLNavigationBar::rebuildTeleportHistoryMenu()
// Items will be shown in the reverse order, just like in Firefox.
for (int i = (int)hist_items.size()-1; i >= 0; i--)
{
- LLMenuItemCallGL::Params item_params;
- std::string title = hist_items[i].mTitle;
-
- if (i == cur_item)
- item_params.font.style("BOLD");
+ LLTeleportHistoryMenuItem::EType type;
+ if (i < cur_item)
+ type = LLTeleportHistoryMenuItem::TYPE_BACKWARD;
+ else if (i > cur_item)
+ type = LLTeleportHistoryMenuItem::TYPE_FORWARD;
else
- title = " " + title;
+ type = LLTeleportHistoryMenuItem::TYPE_CURRENT;
- item_params.name(title);
- item_params.label(title);
+ LLTeleportHistoryMenuItem::Params item_params(type, hist_items[i].mTitle);
item_params.on_click.function(boost::bind(&LLNavigationBar::onTeleportHistoryMenuItemClicked, this, i));
- mTeleportHistoryMenu->addChild(LLUICtrlFactory::create<LLMenuItemCallGL>(item_params));
+ mTeleportHistoryMenu->addChild(LLUICtrlFactory::create<LLTeleportHistoryMenuItem>(item_params));
}
}
-// static
void LLNavigationBar::onRegionNameResponse(
+ std::string typed_location,
+ std::string region_name,
LLVector3 local_coords,
U64 region_handle, const std::string& url, const LLUUID& snapshot_id, bool teleport)
{
+ // Invalid location?
+ if (!region_handle)
+ {
+ invokeSearch(typed_location);
+ return;
+ }
+
+ // Location is valid. Add it to the typed locations history.
+ S32 selected_item = mCmbLocation->getCurrentIndex();
+ if (selected_item == -1) // user has typed text
+ {
+ LLLocationHistory* lh = LLLocationHistory::getInstance();
+ mCmbLocation->add(typed_location);
+ lh->addItem(typed_location);
+ lh->save();
+ }
+
+ // Teleport to the location.
LLVector3d region_pos = from_region_handle(region_handle);
LLVector3d global_pos = region_pos + (LLVector3d) local_coords;
@@ -409,25 +429,6 @@ void LLNavigationBar::onRegionNameResponse(
gAgent.teleportViaLocation(global_pos);
}
-// static
-void LLNavigationBar::teleport(std::string slurl)
-{
- std::string sim_string = LLSLURL::stripProtocol(slurl);
- std::string region_name;
- S32 x = 128;
- S32 y = 128;
- S32 z = 0;
-
- LLURLSimString::parse(sim_string, &region_name, &x, &y, &z);
-
- // Resolve region name to global coords.
- LLVector3 local_coords(x, y, z);
- LLWorldMap::getInstance()->sendNamedRegionRequest(region_name,
- boost::bind(&LLNavigationBar::onRegionNameResponse, local_coords, _1, _2, _3, _4),
- slurl,
- false); // don't teleport
-}
-
void LLNavigationBar::showTeleportHistoryMenu()
{
// Don't show the popup if teleport history is empty.
@@ -449,75 +450,84 @@ void LLNavigationBar::showTeleportHistoryMenu()
LLMenuGL::showPopup(this, mTeleportHistoryMenu, btnBackRect.mLeft, btnBackRect.mBottom);
// *HACK pass the mouse capturing to the drop-down menu
- gFocusMgr.setMouseCapture( mTeleportHistoryMenu );
+ gFocusMgr.setMouseCapture( NULL );
}
void LLNavigationBar::onLocationContextMenuItemClicked(const LLSD& userdata)
{
- std::string level = userdata.asString();
+ std::string item = userdata.asString();
+ LLLineEditor* location_entry = mCmbLocation->getTextEntry();
- if (level == std::string("copy_url"))
+ if (item == std::string("copy_url"))
{
- LLUIString url(gAgent.getSLURL());
- LLView::getWindow()->copyTextToClipboard(url.getWString());
- lldebugs << "Copy SLURL" << llendl;
+ std::string sl_url = gAgent.getSLURL();
+ LLView::getWindow()->copyTextToClipboard(utf8str_to_wstring(sl_url));
+
+ LLSD args;
+ args["SLURL"] = sl_url;
+ LLNotifications::instance().add("CopySLURL", args);
}
- else if (level == std::string("landmark"))
+ else if (item == std::string("landmark"))
{
- // *TODO To be implemented
- lldebugs << "Add Landmark" << llendl;
+ LLFloaterReg::showInstance("add_landmark");
}
- else if (level == std::string("cut"))
+ else if (item == std::string("cut"))
{
- mCmbLocation->cut();
- lldebugs << "Cut" << llendl;
+ location_entry->cut();
}
- else if (level == std::string("copy"))
+ else if (item == std::string("copy"))
{
- mCmbLocation->copy();
- lldebugs << "Copy" << llendl;
+ location_entry->copy();
}
- else if (level == std::string("paste"))
+ else if (item == std::string("paste"))
{
- mCmbLocation->paste();
- lldebugs << "Paste" << llendl;
+ location_entry->paste();
}
- else if (level == std::string("delete"))
+ else if (item == std::string("delete"))
{
- mCmbLocation->deleteSelection();
- lldebugs << "Delete" << llendl;
+ location_entry->deleteSelection();
}
- else if (level == std::string("select_all"))
+ else if (item == std::string("select_all"))
{
- mCmbLocation->selectAll();
- lldebugs << "Select All" << llendl;
+ location_entry->selectAll();
}
}
bool LLNavigationBar::onLocationContextMenuItemEnabled(const LLSD& userdata)
{
- std::string level = userdata.asString();
+ std::string item = userdata.asString();
+ const LLLineEditor* location_entry = mCmbLocation->getTextEntry();
- if (level == std::string("can_cut"))
+ if (item == std::string("can_cut"))
{
- return mCmbLocation->canCut();
+ return location_entry->canCut();
}
- else if (level == std::string("can_copy"))
+ else if (item == std::string("can_copy"))
{
- return mCmbLocation->canCopy();
+ return location_entry->canCopy();
}
- else if (level == std::string("can_paste"))
+ else if (item == std::string("can_paste"))
{
- return mCmbLocation->canPaste();
+ return location_entry->canPaste();
}
- else if (level == std::string("can_delete"))
+ else if (item == std::string("can_delete"))
{
- return mCmbLocation->canDeselect();
+ return location_entry->canDeselect();
}
- else if (level == std::string("can_select_all"))
+ else if (item == std::string("can_select_all"))
{
- return mCmbLocation->canSelectAll();
+ return location_entry->canSelectAll();
}
return false;
}
+
+void LLNavigationBar::handleLoginComplete()
+{
+ mCmbLocation->handleLoginComplete();
+}
+
+void LLNavigationBar::invokeSearch(std::string search_text)
+{
+ LLFloaterReg::showInstance("search", LLSD().insert("panel", "all").insert("id", LLSD(search_text)));
+}
diff --git a/indra/newview/llnavigationbar.h b/indra/newview/llnavigationbar.h
index 4ef3039eb7..4c8375839e 100644
--- a/indra/newview/llnavigationbar.h
+++ b/indra/newview/llnavigationbar.h
@@ -58,13 +58,14 @@ public:
/*virtual*/ BOOL postBuild();
/*virtual*/ BOOL handleRightMouseDown(S32 x, S32 y, MASK mask);
+ void handleLoginComplete();
+
private:
LLNavigationBar();
- void refreshLocation();
- void rebuildLocationHistory(std::string filter = "");
void rebuildTeleportHistoryMenu();
void showTeleportHistoryMenu();
+ void invokeSearch(std::string search_text);
// callbacks
bool onLocationContextMenuItemEnabled(const LLSD& userdata);
@@ -75,21 +76,18 @@ private:
void onBackOrForwardButtonHeldDown(const LLSD& param);
void onForwardButtonClicked();
void onHomeButtonClicked();
- void onInfoButtonClicked();
void onHelpButtonClicked();
- void onLocationFocusReceived();
- void onLocationFocusLost();
void onLocationSelection();
- void onLocationTextEntry(LLUICtrl* ctrl);
void onLocationPrearrange(const LLSD& data);
void onLocationHistoryLoaded();
void onSearchCommit();
- static void onRegionNameResponse(
- LLVector3 local_coords, U64 region_handle, const std::string& url,
+ void onRegionNameResponse(
+ std::string typed_location,
+ std::string region_name,
+ LLVector3 local_coords,
+ U64 region_handle, const std::string& url,
const LLUUID& snapshot_id, bool teleport);
- static void teleport(std::string slurl);
-
static LLNavigationBar *sInstance;
LLMenuGL* mLocationContextMenu;
@@ -97,7 +95,6 @@ private:
LLButton* mBtnBack;
LLButton* mBtnForward;
LLButton* mBtnHome;
- LLButton* mBtnInfo;
LLButton* mBtnHelp;
LLLineEditor* mLeSearch;
LLLocationInputCtrl* mCmbLocation;
diff --git a/indra/newview/llnetmap.cpp b/indra/newview/llnetmap.cpp
index 53c7484e72..b40af37f7e 100644
--- a/indra/newview/llnetmap.cpp
+++ b/indra/newview/llnetmap.cpp
@@ -56,9 +56,7 @@
#include "llworld.h"
#include "llworldmapview.h" // shared draw code
-static LLRegisterWidget<LLNetMap> r1("net_map");
-
-using namespace LLOldEvents;
+static LLDefaultWidgetRegistry::Register<LLNetMap> r1("net_map");
const F32 MAP_SCALE_MIN = 64;
const F32 MAP_SCALE_MID = 172;
diff --git a/indra/newview/lloutputmonitorctrl.cpp b/indra/newview/lloutputmonitorctrl.cpp
index 4ab4266221..ff26707a56 100644
--- a/indra/newview/lloutputmonitorctrl.cpp
+++ b/indra/newview/lloutputmonitorctrl.cpp
@@ -39,7 +39,7 @@
// viewer includes
#include "llvoiceclient.h"
-static LLRegisterWidget<LLOutputMonitorCtrl> r("output_monitor");
+static LLDefaultWidgetRegistry::Register<LLOutputMonitorCtrl> r("output_monitor");
// The defaults will be initialized in the constructor.
LLColor4 LLOutputMonitorCtrl::sColorMuted;
@@ -74,6 +74,8 @@ LLOutputMonitorCtrl::LLOutputMonitorCtrl(const LLOutputMonitorCtrl::Params& p)
sRectsNumber = output_monitor_rects_number;
sRectWidthRatio = output_monitor_rect_width_ratio;
sRectHeightRatio = output_monitor_rect_height_ratio;
+
+ mBorder = p.draw_border;
}
LLOutputMonitorCtrl::~LLOutputMonitorCtrl()
@@ -96,10 +98,14 @@ void LLOutputMonitorCtrl::draw()
//
const int monh = getRect().getHeight();
const int monw = getRect().getWidth();
- const int maxrects = sRectsNumber;
- const int period = monw / maxrects;
- const int rectw = llfloor(period * sRectWidthRatio);
+ int maxrects = sRectsNumber;
+ const int period = llmax(1, monw / maxrects, 0, 0); // "1" - min value for the period
+ const int rectw = llmax(1, llfloor(period * sRectWidthRatio), 0, 0); // "1" - min value for the rect's width
const int recth = llfloor(monh * sRectHeightRatio);
+
+ if(period == 1 && rectw == 1) //if we have so small control, then "maxrects = monitor's_width - 2*monitor_border's_width
+ maxrects = monw-2;
+
const int nrects = mIsMuted ? maxrects : llfloor(mPower * maxrects); // how many rects to draw?
const int rectbtm = (monh - recth) / 2;
const int recttop = rectbtm + recth;
@@ -130,5 +136,6 @@ void LLOutputMonitorCtrl::draw()
//
// Draw bounding box.
//
- gl_rect_2d(0, monh, monw, 0, sColorBound, FALSE);
+ if(mBorder)
+ gl_rect_2d(0, monh, monw, 0, sColorBound, FALSE);
}
diff --git a/indra/newview/lloutputmonitorctrl.h b/indra/newview/lloutputmonitorctrl.h
index d5ab8e75ce..881ad0f010 100644
--- a/indra/newview/lloutputmonitorctrl.h
+++ b/indra/newview/lloutputmonitorctrl.h
@@ -49,14 +49,18 @@ class LLOutputMonitorCtrl
public:
struct Params : public LLInitParam::Block<Params, LLView::Params>
{
+ Optional<bool> draw_border;
+
Params()
{
+ draw_border = true;
name = "output_monitor";
follows.flags(FOLLOWS_LEFT|FOLLOWS_TOP);
mouse_opaque = false;
- }
+ };
};
protected:
+ bool mBorder;
LLOutputMonitorCtrl(const Params&);
friend class LLUICtrlFactory;
diff --git a/indra/newview/lloverlaybar.cpp b/indra/newview/lloverlaybar.cpp
index e6ee91cdd3..2ccd729e0a 100644
--- a/indra/newview/lloverlaybar.cpp
+++ b/indra/newview/lloverlaybar.cpp
@@ -45,7 +45,6 @@
#include "llfocusmgr.h"
#include "llimview.h"
#include "llmediaremotectrl.h"
-#include "llpanelaudiovolume.h"
#include "llparcel.h"
#include "lltextbox.h"
#include "llui.h"
@@ -60,7 +59,7 @@
#include "lluictrlfactory.h"
#include "llviewerwindow.h"
#include "llvoiceclient.h"
-#include "llvoavatar.h"
+#include "llvoavatarself.h"
#include "llvoiceremotectrl.h"
#include "llwebbrowserctrl.h"
#include "llselectmgr.h"
@@ -169,8 +168,9 @@ void LLOverlayBar::layoutButtons()
// calculate button widths
const S32 MAX_BUTTON_WIDTH = 150;
+ const S32 STATUS_BAR_PAD = 10;
S32 segment_width = llclamp(lltrunc((F32)(bar_width) / (F32)button_list.size()), 0, MAX_BUTTON_WIDTH);
- S32 btn_width = segment_width - gSavedSettings.getS32("StatusBarPad");
+ S32 btn_width = segment_width - STATUS_BAR_PAD;
// Evenly space all buttons, starting from left
S32 left = 0;
diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp
index d0816ad4d8..d7929cc5c2 100644
--- a/indra/newview/llpanelavatar.cpp
+++ b/indra/newview/llpanelavatar.cpp
@@ -34,60 +34,17 @@
#include "llpanelavatar.h"
-#include "llclassifiedflags.h"
-#include "llfloaterreg.h"
-#include "llfontgl.h"
-#include "llcachename.h"
-
-#include "llavatarconstants.h"
-#include "lluiconstants.h"
-#include "lltextbox.h"
-#include "llviewertexteditor.h"
-#include "lltexturectrl.h"
#include "llagent.h"
-#include "llviewerwindow.h"
-#include "llbutton.h"
+#include "llavatarconstants.h"
#include "llcallingcard.h"
-#include "llcheckboxctrl.h"
-#include "llfloater.h"
-
-#include "llfloaterfriends.h"
-#include "llfloatergroupinfo.h"
-#include "llfloaterworldmap.h"
-#include "llfloatermute.h"
-#include "llfloateravatarinfo.h"
-#include "lliconctrl.h"
-#include "llinventoryview.h"
-#include "lllineeditor.h"
-#include "llnameeditor.h"
-#include "llmutelist.h"
-#include "llpanelclassified.h"
-#include "llpanelpick.h"
-#include "llscrolllistctrl.h"
-#include "llscrolllistitem.h"
-#include "llstatusbar.h"
-#include "lltabcontainer.h"
+#include "llcombobox.h"
+#include "llfriendactions.h"
#include "llimview.h"
+#include "lltexteditor.h"
+#include "lltexturectrl.h"
#include "lltooldraganddrop.h"
-#include "lluiconstants.h"
-#include "llvoavatar.h"
-#include "llviewercontrol.h"
#include "llviewermenu.h" // *FIX: for is_agent_friend()
-#include "llviewergenericmessage.h" // send_generic_message
-#include "llviewerobjectlist.h"
-#include "llviewerregion.h"
-#include "llweb.h"
-#include "llinventorymodel.h"
-#include "roles_constants.h"
-#include "lltrans.h"
-#include "lluictrlfactory.h"
-
-// Statics
-std::list<LLPanelAvatar*> LLPanelAvatar::sAllPanels;
-BOOL LLPanelAvatar::sAllowFirstLife = FALSE;
-
-extern void handle_lure(const LLUUID& invitee);
-extern void handle_pay_by_id(const LLUUID& payee);
+#include "llscrollcontainer.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Class LLDropTarget
@@ -157,1506 +114,248 @@ BOOL LLDropTarget::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
return FALSE;
}
-static LLRegisterWidget<LLDropTarget> r("drop_target");
-
+static LLDefaultWidgetRegistry::Register<LLDropTarget> r("drop_target");
+//////////////////////////////////////////////////////////////////////////
//-----------------------------------------------------------------------------
-// LLPanelAvatarTab()
+// LLPanelProfileTab()
//-----------------------------------------------------------------------------
-LLPanelAvatarTab::LLPanelAvatarTab(LLPanelAvatar* panel_avatar)
-: LLPanel(),
- mPanelAvatar(panel_avatar),
- mDataRequested(false)
-{ }
-
-// virtual
-void LLPanelAvatarTab::draw()
+//////////////////////////////////////////////////////////////////////////
+LLPanelProfileTab::LLPanelProfileTab(const LLUUID& avatar_id)
+ : LLPanel()
+ , mAvatarId(LLUUID::null)
+ , mProfileType(PT_UNKNOWN)
{
- refresh();
-
- LLPanel::draw();
-}
-
-void LLPanelAvatarTab::sendAvatarProfileRequestIfNeeded(const std::string& method)
-{
- if (!mDataRequested)
- {
- std::vector<std::string> strings;
- strings.push_back( mPanelAvatar->getAvatarID().asString() );
- send_generic_message(method, strings);
- mDataRequested = true;
- }
+ setAvatarId(avatar_id);
}
-//-----------------------------------------------------------------------------
-// LLPanelAvatarSecondLife()
-//-----------------------------------------------------------------------------
-LLPanelAvatarSecondLife::LLPanelAvatarSecondLife(LLPanelAvatar* panel_avatar )
-: LLPanelAvatarTab(panel_avatar),
- mPartnerID()
+LLPanelProfileTab::LLPanelProfileTab(const Params& params )
+ : LLPanel()
+ , mAvatarId(LLUUID::null)
+ , mProfileType(PT_UNKNOWN)
{
-}
-void LLPanelAvatarSecondLife::refresh()
-{
- updatePartnerName();
}
-void LLPanelAvatarSecondLife::updatePartnerName()
+LLPanelProfileTab::~LLPanelProfileTab()
{
- if (mPartnerID.notNull())
+ // *TODO Vadim: use notNull() instead. (there are several similar cases below)
+ if(mAvatarId.notNull())
{
- std::string first, last;
- BOOL found = gCacheName->getName(mPartnerID, first, last);
- if (found)
- {
- childSetTextArg("partner_edit", "[FIRST]", first);
- childSetTextArg("partner_edit", "[LAST]", last);
- }
- childSetEnabled("partner_info", TRUE);
+ LLAvatarPropertiesProcessor::getInstance()->removeObserver(getAvatarId(),this);
}
}
-//-----------------------------------------------------------------------------
-// clearControls()
-// Empty the data out of the controls, since we have to wait for new
-// data off the network.
-//-----------------------------------------------------------------------------
-void LLPanelAvatarSecondLife::clearControls()
+void LLPanelProfileTab::setAvatarId(const LLUUID& avatar_id)
{
- LLTextureCtrl* image_ctrl = getChild<LLTextureCtrl>("img");
- if(image_ctrl)
- {
- image_ctrl->setImageAssetID(LLUUID::null);
- }
- childSetValue("about", "");
- childSetValue("born", "");
- childSetValue("acct", "");
-
- childSetTextArg("partner_edit", "[FIRST]", LLStringUtil::null);
- childSetTextArg("partner_edit", "[LAST]", LLStringUtil::null);
-
- mPartnerID = LLUUID::null;
-
- LLScrollListCtrl* group_list = getChild<LLScrollListCtrl>("groups");
- if(group_list)
- {
- group_list->deleteAllItems();
- }
- LLScrollListCtrl* ratings_list = getChild<LLScrollListCtrl>("ratings");
- if(ratings_list)
- {
- ratings_list->deleteAllItems();
- }
-
-}
-
-
-//-----------------------------------------------------------------------------
-// enableControls()
-//-----------------------------------------------------------------------------
-void LLPanelAvatarSecondLife::enableControls(BOOL self)
-{
- childSetEnabled("img", self);
- childSetEnabled("about", self);
- childSetVisible("allow_publish", self);
- childSetEnabled("allow_publish", self);
- childSetVisible("?", self);
- childSetEnabled("?", self);
-}
-
-
-// static
-void LLPanelAvatarSecondLife::onClickImage(void *)
-{ }
-
-// static
-void LLPanelAvatarSecondLife::onDoubleClickGroup(void* data)
-{
- LLPanelAvatarSecondLife* self = (LLPanelAvatarSecondLife*)data;
-
-
- LLScrollListCtrl* group_list = self->getChild<LLScrollListCtrl>("groups");
- if(group_list)
+ if(avatar_id.notNull())
{
- LLScrollListItem* item = group_list->getFirstSelected();
-
- if(item && item->getUUID().notNull())
+ if(mAvatarId.notNull())
{
- llinfos << "Show group info " << item->getUUID() << llendl;
-
- LLFloaterGroupInfo::showFromUUID(item->getUUID());
+ LLAvatarPropertiesProcessor::getInstance()->removeObserver(mAvatarId,this);
}
+ mAvatarId = avatar_id;
+ LLAvatarPropertiesProcessor::getInstance()->addObserver(getAvatarId(),this);
+ setProfileType();
}
}
-// static
-void LLPanelAvatarSecondLife::onClickPublishHelp(void *)
+void LLPanelProfileTab::setProfileType()
{
- LLNotifications::instance().add("ClickPublishHelpAvatar");
+ mProfileType = (gAgentID == mAvatarId) ? PT_OWN : PT_OTHER;
}
-// static
-void LLPanelAvatarSecondLife::onClickPartnerHelp(void *)
+void LLPanelProfileTab::onActivate(const LLUUID& id)
{
- LLNotifications::instance().add("ClickPartnerHelpAvatar", LLSD(), LLSD(), onClickPartnerHelpLoadURL);
+ setAvatarId(id);
+ updateData();
}
-// static
-bool LLPanelAvatarSecondLife::onClickPartnerHelpLoadURL(const LLSD& notification, const LLSD& response)
+void LLPanelProfileTab::onAddFriend()
{
- S32 option = LLNotification::getSelectedOption(notification, response);
- if (option == 0)
+ if (getAvatarId().notNull())
{
- LLWeb::loadURL("http://secondlife.com/partner");
+ std::string name;
+ gCacheName->getFullName(getAvatarId(),name);
+ LLFriendActions::requestFriendshipDialog(getAvatarId(), name);
}
- return false;
}
-// static
-void LLPanelAvatarSecondLife::onClickPartnerInfo(void *data)
+void LLPanelProfileTab::onIM()
{
- LLPanelAvatarSecondLife* self = (LLPanelAvatarSecondLife*) data;
- if (self->mPartnerID.notNull())
+ if (getAvatarId().notNull())
{
- LLFloaterAvatarInfo::showFromProfile(self->mPartnerID,
- self->calcScreenRect());
+ std::string name;
+ gCacheName->getFullName(getAvatarId(), name);
+ gIMMgr->addSession(name, IM_NOTHING_SPECIAL, getAvatarId());
}
}
-//-----------------------------------------------------------------------------
-// LLPanelAvatarFirstLife()
-//-----------------------------------------------------------------------------
-LLPanelAvatarFirstLife::LLPanelAvatarFirstLife(LLPanelAvatar* panel_avatar )
-: LLPanelAvatarTab(panel_avatar)
-{
-}
-
-void LLPanelAvatarFirstLife::enableControls(BOOL self)
-{
- childSetEnabled("img", self);
- childSetEnabled("about", self);
-}
-
-//-----------------------------------------------------------------------------
-// postBuild
-//-----------------------------------------------------------------------------
-
-BOOL LLPanelAvatarSecondLife::postBuild(void)
-{
- childSetEnabled("born", FALSE);
- childSetEnabled("partner_edit", FALSE);
- childSetAction("partner_help",onClickPartnerHelp,this);
- childSetAction("partner_info", onClickPartnerInfo, this);
- childSetEnabled("partner_info", mPartnerID.notNull());
-
- childSetAction("?",onClickPublishHelp,this);
- BOOL own_avatar = (getPanelAvatar()->getAvatarID() == gAgent.getID() );
- enableControls(own_avatar);
-
- childSetVisible("About:",LLPanelAvatar::sAllowFirstLife);
- childSetVisible("(500 chars)",LLPanelAvatar::sAllowFirstLife);
- childSetVisible("about",LLPanelAvatar::sAllowFirstLife);
-
- childSetVisible("allow_publish",LLPanelAvatar::sAllowFirstLife);
- childSetVisible("?",LLPanelAvatar::sAllowFirstLife);
-
- childSetVisible("online_yes",FALSE);
-
- // These are cruft but may still exist in some xml files
- // TODO: remove the following 2 lines once translators grab these changes
- childSetVisible("online_unknown",FALSE);
- childSetVisible("online_no",FALSE);
-
- childSetAction("Find on Map", LLPanelAvatar::onClickTrack, getPanelAvatar());
- childSetAction("Instant Message...", LLPanelAvatar::onClickIM, getPanelAvatar());
-
- childSetAction("Add Friend...", LLPanelAvatar::onClickAddFriend, getPanelAvatar());
- childSetAction("Pay...", LLPanelAvatar::onClickPay, getPanelAvatar());
- childSetAction("Mute", LLPanelAvatar::onClickMute, getPanelAvatar() );
-
- childSetAction("Offer Teleport...", LLPanelAvatar::onClickOfferTeleport,
- getPanelAvatar() );
-
- getChild<LLScrollListCtrl>("groups")->setDoubleClickCallback(onDoubleClickGroup, this );
-
- getChild<LLTextureCtrl>("img")->setFallbackImageName("default_profile_picture.j2c");
-
- return TRUE;
-}
-
-BOOL LLPanelAvatarFirstLife::postBuild(void)
-{
- BOOL own_avatar = (getPanelAvatar()->getAvatarID() == gAgent.getID() );
- enableControls(own_avatar);
-
- getChild<LLTextureCtrl>("img")->setFallbackImageName("default_profile_picture.j2c");
-
- return TRUE;
-}
-
-BOOL LLPanelAvatarNotes::postBuild(void)
-{
- childSetCommitCallback("notes edit",onCommitNotes,this);
-
- LLTextEditor* te = getChild<LLTextEditor>("notes edit");
- if(te) te->setCommitOnFocusLost(TRUE);
- return TRUE;
-}
-
-BOOL LLPanelAvatarWeb::postBuild(void)
-{
- getChild<LLLineEditor>("url_edit")->setKeystrokeCallback(onURLKeystroke, this);
- childSetCommitCallback("load", onCommitLoad, this);
-
- childSetAction("web_profile_help",onClickWebProfileHelp,this);
-
- childSetCommitCallback("url_edit",onCommitURL,this);
-
- childSetControlName("auto_load","AutoLoadWebProfiles");
-
- mWebBrowser = getChild<LLWebBrowserCtrl>("profile_html");
-
- // links open in internally
- mWebBrowser->setOpenInExternalBrowser( false );
-
- // observe browser events
- mWebBrowser->addObserver( this );
-
- return TRUE;
-}
-
-BOOL LLPanelAvatarClassified::postBuild(void)
-{
- childSetAction("New...",onClickNew,this);
- childSetAction("Delete...",onClickDelete,this);
- return TRUE;
-}
-
-BOOL LLPanelAvatarPicks::postBuild(void)
+void LLPanelProfileTab::onTeleport()
{
- childSetAction("New...",onClickNew,this);
- childSetAction("Delete...",onClickDelete,this);
- return TRUE;
-}
-
-BOOL LLPanelAvatarAdvanced::postBuild()
-{
- for(size_t ii = 0; ii < LL_ARRAY_SIZE(mWantToCheck); ++ii)
- mWantToCheck[ii] = NULL;
- for(size_t ii = 0; ii < LL_ARRAY_SIZE(mSkillsCheck); ++ii)
- mSkillsCheck[ii] = NULL;
- mWantToCount = (8>LL_ARRAY_SIZE(mWantToCheck))?LL_ARRAY_SIZE(mWantToCheck):8;
- for(S32 tt=0; tt < mWantToCount; ++tt)
- {
- std::string ctlname = llformat("chk%d", tt);
- mWantToCheck[tt] = getChild<LLCheckBoxCtrl>(ctlname);
- }
- mSkillsCount = (6>LL_ARRAY_SIZE(mSkillsCheck))?LL_ARRAY_SIZE(mSkillsCheck):6;
-
- for(S32 tt=0; tt < mSkillsCount; ++tt)
+ if(getAvatarId().notNull())
{
- //Find the Skills checkboxes and save off thier controls
- std::string ctlname = llformat("schk%d",tt);
- mSkillsCheck[tt] = getChild<LLCheckBoxCtrl>(ctlname);
+ LLFriendActions::offerTeleport(getAvatarId());
}
-
- mWantToEdit = getChild<LLLineEditor>("want_to_edit");
- mSkillsEdit = getChild<LLLineEditor>("skills_edit");
- childSetVisible("skills_edit",LLPanelAvatar::sAllowFirstLife);
- childSetVisible("want_to_edit",LLPanelAvatar::sAllowFirstLife);
-
- return TRUE;
}
+//////////////////////////////////////////////////////////////////////////
//-----------------------------------------------------------------------------
-// LLPanelAvatarWeb
+// LLPanelAvatarProfile()
//-----------------------------------------------------------------------------
-LLPanelAvatarWeb::LLPanelAvatarWeb(LLPanelAvatar* panel_avatar)
-: LLPanelAvatarTab(panel_avatar),
- mWebBrowser(NULL)
+//////////////////////////////////////////////////////////////////////////
+LLPanelAvatarProfile::LLPanelAvatarProfile(const LLUUID& avatar_id /* = LLUUID::null */)
+ : LLPanelProfileTab(avatar_id), mUpdated(false), mEditMode(false), mStatusCombobox(NULL), mStatusMessage(NULL)
{
+ updateData();
}
-LLPanelAvatarWeb::~LLPanelAvatarWeb()
+LLPanelAvatarProfile::LLPanelAvatarProfile(const Params& params )
+ : LLPanelProfileTab(params), mUpdated(false), mEditMode(false), mStatusCombobox(NULL), mStatusMessage(NULL)
{
- // stop observing browser events
- if ( mWebBrowser )
- {
- mWebBrowser->remObserver( this );
- };
}
-void LLPanelAvatarWeb::refresh()
+LLPanelAvatarProfile::~LLPanelAvatarProfile()
{
- if (mNavigateTo != "")
+ if(getAvatarId().notNull())
{
- llinfos << "Loading " << mNavigateTo << llendl;
- mWebBrowser->navigateTo( mNavigateTo );
- mNavigateTo = "";
+ LLAvatarPropertiesProcessor::getInstance()->removeObserver(getAvatarId(),this);
}
}
-
-void LLPanelAvatarWeb::enableControls(BOOL self)
-{
- childSetEnabled("url_edit",self);
-}
-
-void LLPanelAvatarWeb::setWebURL(std::string url)
+void* LLPanelAvatarProfile::create(void* data /* = NULL */)
{
- bool changed_url = (mHome != url);
-
- mHome = url;
- bool have_url = !mHome.empty();
-
- childSetText("url_edit", mHome);
- childSetEnabled("load", mHome.length() > 0);
-
- if (have_url
- && gSavedSettings.getBOOL("AutoLoadWebProfiles"))
+ LLSD* id = NULL;
+ if(data)
{
- if (changed_url)
- {
- load(mHome);
- }
- }
- else
- {
- childSetVisible("profile_html",false);
- childSetVisible("status_text", false);
+ id = static_cast<LLSD*>(data);
+ return new LLPanelAvatarProfile(LLUUID(id->asUUID()));
}
+ return new LLPanelAvatarProfile();
}
-// static
-void LLPanelAvatarWeb::onCommitURL(LLUICtrl* ctrl, void* data)
+void LLPanelAvatarProfile::updateData()
{
- LLPanelAvatarWeb* self = (LLPanelAvatarWeb*)data;
-
- if (!self) return;
-
- self->load( self->childGetText("url_edit") );
-}
-
-// static
-void LLPanelAvatarWeb::onClickWebProfileHelp(void *)
-{
- LLNotifications::instance().add("ClickWebProfileHelpAvatar");
-}
-
-void LLPanelAvatarWeb::load(std::string url)
-{
- bool have_url = (!url.empty());
-
-
- childSetVisible("profile_html", have_url);
- childSetVisible("status_text", have_url);
- childSetText("status_text", LLStringUtil::null);
-
- if (have_url)
+ if (getAvatarId().notNull())
{
- mNavigateTo = url;
+ LLAvatarPropertiesProcessor::getInstance()->sendDataRequest(getAvatarId(),APT_PROPERTIES);
+ LLAvatarPropertiesProcessor::getInstance()->sendDataRequest(getAvatarId(),APT_GROUPS);
}
}
-//static
-void LLPanelAvatarWeb::onURLKeystroke(LLLineEditor* editor, void* data)
+void LLPanelAvatarProfile::processProperties(void* data, EAvatarProcessorType type)
{
- LLPanelAvatarWeb* self = (LLPanelAvatarWeb*)data;
- if (!self) return;
- LLSD::String url = editor->getText();
- self->childSetEnabled("load", url.length() > 0);
- return;
-}
-
-// static
-void LLPanelAvatarWeb::onCommitLoad(LLUICtrl* ctrl, void* data)
-{
- LLPanelAvatarWeb* self = (LLPanelAvatarWeb*)data;
-
- if (!self) return;
-
- LLSD::String valstr = ctrl->getValue().asString();
- LLSD::String urlstr = self->childGetText("url_edit");
- if (valstr == "") // load url string into browser panel
- {
- self->load(urlstr);
- }
- else if (valstr == "open") // open in user's external browser
+ if(APT_PROPERTIES == type)
{
- if (!urlstr.empty())
+ const LLAvatarData* avatar_data = static_cast<const LLAvatarData*>(data);
+ if(avatar_data && getAvatarId() == avatar_data->avatar_id)
{
- LLWeb::loadURLExternal(urlstr);
- }
- }
- else if (valstr == "home") // reload profile owner's home page
- {
- if (!self->mHome.empty())
- {
- self->load(self->mHome);
- }
- }
-}
-
-void LLPanelAvatarWeb::onStatusTextChange( const EventType& eventIn )
-{
- childSetText("status_text", eventIn.getStringValue() );
-}
-
-void LLPanelAvatarWeb::onLocationChange( const EventType& eventIn )
-{
- childSetText("url_edit", eventIn.getStringValue() );
-}
-
-
-//-----------------------------------------------------------------------------
-// LLPanelAvatarAdvanced
-//-----------------------------------------------------------------------------
-LLPanelAvatarAdvanced::LLPanelAvatarAdvanced(LLPanelAvatar* panel_avatar)
-: LLPanelAvatarTab(panel_avatar),
- mWantToCount(0),
- mSkillsCount(0),
- mWantToEdit( NULL ),
- mSkillsEdit( NULL )
-{
-}
+ childSetValue("register_date", avatar_data->born_on);
+ childSetValue("sl_description_edit", avatar_data->about_text);
+ childSetValue("fl_description_edit",avatar_data->fl_about_text);
+ childSetValue("2nd_life_pic", avatar_data->image_id);
+ childSetValue("1st_life_pic", avatar_data->fl_image_id);
+ childSetValue("homepage_edit", avatar_data->profile_url);
-void LLPanelAvatarAdvanced::enableControls(BOOL self)
-{
- S32 t;
- for(t=0;t<mWantToCount;t++)
- {
- if(mWantToCheck[t])mWantToCheck[t]->setEnabled(self);
- }
- for(t=0;t<mSkillsCount;t++)
- {
- if(mSkillsCheck[t])mSkillsCheck[t]->setEnabled(self);
- }
-
- if (mWantToEdit) mWantToEdit->setEnabled(self);
- if (mSkillsEdit) mSkillsEdit->setEnabled(self);
- childSetEnabled("languages_edit",self);
-}
-
-void LLPanelAvatarAdvanced::setWantSkills(U32 want_to_mask, const std::string& want_to_text,
- U32 skills_mask, const std::string& skills_text,
- const std::string& languages_text)
-{
- for(int id =0;id<mWantToCount;id++)
- {
- mWantToCheck[id]->set( want_to_mask & 1<<id );
- }
- for(int id =0;id<mSkillsCount;id++)
- {
- mSkillsCheck[id]->set( skills_mask & 1<<id );
- }
- if (mWantToEdit && mSkillsEdit)
- {
- mWantToEdit->setText( want_to_text );
- mSkillsEdit->setText( skills_text );
- }
-
- childSetText("languages_edit",languages_text);
-}
-
-void LLPanelAvatarAdvanced::getWantSkills(U32* want_to_mask, std::string& want_to_text,
- U32* skills_mask, std::string& skills_text,
- std::string& languages_text)
-{
- if (want_to_mask)
- {
- *want_to_mask = 0;
- for(int t=0;t<mWantToCount;t++)
- {
- if(mWantToCheck[t]->get())
- *want_to_mask |= 1<<t;
- }
- }
- if (skills_mask)
- {
- *skills_mask = 0;
- for(int t=0;t<mSkillsCount;t++)
- {
- if(mSkillsCheck[t]->get())
- *skills_mask |= 1<<t;
- }
- }
- if (mWantToEdit)
- {
- want_to_text = mWantToEdit->getText();
- }
-
- if (mSkillsEdit)
- {
- skills_text = mSkillsEdit->getText();
- }
-
- languages_text = childGetText("languages_edit");
-}
-
-//-----------------------------------------------------------------------------
-// LLPanelAvatarNotes()
-//-----------------------------------------------------------------------------
-LLPanelAvatarNotes::LLPanelAvatarNotes(LLPanelAvatar* panel_avatar)
-: LLPanelAvatarTab(panel_avatar)
-{
-}
-
-void LLPanelAvatarNotes::refresh()
-{
- sendAvatarProfileRequestIfNeeded("avatarnotesrequest");
-}
-
-void LLPanelAvatarNotes::clearControls()
-{
- childSetText("notes edit", getString("Loading"));
- childSetEnabled("notes edit", false);
-}
-
-// static
-void LLPanelAvatarNotes::onCommitNotes(LLUICtrl*, void* userdata)
-{
- LLPanelAvatarNotes* self = (LLPanelAvatarNotes*)userdata;
-
- self->getPanelAvatar()->sendAvatarNotesUpdate();
-}
-
-
-//-----------------------------------------------------------------------------
-// LLPanelAvatarClassified()
-//-----------------------------------------------------------------------------
-LLPanelAvatarClassified::LLPanelAvatarClassified(LLPanelAvatar* panel_avatar)
-: LLPanelAvatarTab(panel_avatar)
-{
-}
-
-
-void LLPanelAvatarClassified::refresh()
-{
- BOOL self = (gAgent.getID() == getPanelAvatar()->getAvatarID());
-
- LLTabContainer* tabs = getChild<LLTabContainer>("classified tab");
-
- S32 tab_count = tabs ? tabs->getTabCount() : 0;
-
- bool allow_new = tab_count < MAX_CLASSIFIEDS;
- bool allow_delete = (tab_count > 0);
- bool show_help = (tab_count == 0);
-
- // *HACK: Don't allow making new classifieds from inside the directory.
- // The logic for save/don't save when closing is too hairy, and the
- // directory is conceptually read-only. JC
- bool in_directory = false;
- LLView* view = this;
- while (view)
- {
- if (view->getName() == "directory")
- {
- in_directory = true;
- break;
- }
- view = view->getParent();
- }
- childSetEnabled("New...", self && !in_directory && allow_new);
- childSetVisible("New...", !in_directory);
- childSetEnabled("Delete...", self && !in_directory && allow_delete);
- childSetVisible("Delete...", !in_directory);
- childSetVisible("classified tab",!show_help);
-
- sendAvatarProfileRequestIfNeeded("avatarclassifiedsrequest");
-}
-
-
-BOOL LLPanelAvatarClassified::canClose()
-{
- LLTabContainer* tabs = getChild<LLTabContainer>("classified tab");
- for (S32 i = 0; i < tabs->getTabCount(); i++)
- {
- LLPanelClassified* panel = (LLPanelClassified*)tabs->getPanelByIndex(i);
- if (!panel->canClose())
- {
- return FALSE;
- }
- }
- return TRUE;
-}
-
-BOOL LLPanelAvatarClassified::titleIsValid()
-{
- LLTabContainer* tabs = getChild<LLTabContainer>("classified tab");
- if ( tabs )
- {
- LLPanelClassified* panel = (LLPanelClassified*)tabs->getCurrentPanel();
- if ( panel )
- {
- if ( ! panel->titleIsValid() )
+ if (!isEditMode())
{
- return FALSE;
- };
- };
- };
-
- return TRUE;
-}
-
-void LLPanelAvatarClassified::apply()
-{
- LLTabContainer* tabs = getChild<LLTabContainer>("classified tab");
- for (S32 i = 0; i < tabs->getTabCount(); i++)
- {
- LLPanelClassified* panel = (LLPanelClassified*)tabs->getPanelByIndex(i);
- panel->apply();
- }
-}
-
-
-void LLPanelAvatarClassified::deleteClassifiedPanels()
-{
- LLTabContainer* tabs = getChild<LLTabContainer>("classified tab");
- if (tabs)
- {
- tabs->deleteAllTabs();
- }
-
- childSetVisible("New...", false);
- childSetVisible("Delete...", false);
- childSetVisible("loading_text", true);
-}
-
-
-void LLPanelAvatarClassified::processAvatarClassifiedReply(LLMessageSystem* msg, void**)
-{
- S32 block = 0;
- S32 block_count = 0;
- LLUUID classified_id;
- std::string classified_name;
- LLPanelClassified* panel_classified = NULL;
-
- LLTabContainer* tabs = getChild<LLTabContainer>("classified tab");
-
- // Don't remove old panels. We need to be able to process multiple
- // packets for people who have lots of classifieds. JC
-
- block_count = msg->getNumberOfBlocksFast(_PREHASH_Data);
- for (block = 0; block < block_count; block++)
- {
- msg->getUUIDFast(_PREHASH_Data, _PREHASH_ClassifiedID, classified_id, block);
- msg->getStringFast(_PREHASH_Data, _PREHASH_Name, classified_name, block);
-
- panel_classified = new LLPanelClassified(false, false);
-
- panel_classified->setClassifiedID(classified_id);
-
- // This will request data from the server when the pick is first drawn.
- panel_classified->markForServerRequest();
-
- // The button should automatically truncate long names for us
- tabs->addTabPanel(LLTabContainer::TabPanelParams().panel(panel_classified).label(classified_name));
- }
-
- // Make sure somebody is highlighted. This works even if there
- // are no tabs in the container.
- tabs->selectFirstTab();
-
- childSetVisible("New...", true);
- childSetVisible("Delete...", true);
- childSetVisible("loading_text", false);
-}
-
-
-// Create a new classified panel. It will automatically handle generating
-// its own id when it's time to save.
-// static
-void LLPanelAvatarClassified::onClickNew(void* data)
-{
- LLPanelAvatarClassified* self = (LLPanelAvatarClassified*)data;
-
- LLNotifications::instance().add("AddClassified", LLSD(), LLSD(), boost::bind(&LLPanelAvatarClassified::callbackNew, self, _1, _2));
-
-}
-
-bool LLPanelAvatarClassified::callbackNew(const LLSD& notification, const LLSD& response)
-{
- S32 option = LLNotification::getSelectedOption(notification, response);
- if (0 == option)
- {
- LLPanelClassified* panel_classified = new LLPanelClassified(false, false);
- panel_classified->initNewClassified();
- LLTabContainer* tabs = getChild<LLTabContainer>("classified tab");
- tabs->addTabPanel(LLTabContainer::TabPanelParams().panel(panel_classified).label(panel_classified->getClassifiedName()));
- tabs->selectLastTab();
- }
- return false;
-}
-
-
-// static
-void LLPanelAvatarClassified::onClickDelete(void* data)
-{
- LLPanelAvatarClassified* self = (LLPanelAvatarClassified*)data;
-
- LLTabContainer* tabs = self->getChild<LLTabContainer>("classified tab");
- LLPanelClassified* panel_classified = NULL;
- if(tabs)
- {
- panel_classified = (LLPanelClassified*)tabs->getCurrentPanel();
- }
- if (!panel_classified) return;
-
- LLSD args;
- args["NAME"] = panel_classified->getClassifiedName();
- LLNotifications::instance().add("DeleteClassified", args, LLSD(), boost::bind(&LLPanelAvatarClassified::callbackDelete, self, _1, _2));
-
-}
-
-
-bool LLPanelAvatarClassified::callbackDelete(const LLSD& notification, const LLSD& response)
-{
- S32 option = LLNotification::getSelectedOption(notification, response);
- LLTabContainer* tabs = getChild<LLTabContainer>("classified tab");
- LLPanelClassified* panel_classified=NULL;
- if(tabs)
- {
- panel_classified = (LLPanelClassified*)tabs->getCurrentPanel();
- }
-
- LLMessageSystem* msg = gMessageSystem;
-
- if (!panel_classified) return false;
-
- if (0 == option)
- {
- msg->newMessageFast(_PREHASH_ClassifiedDelete);
- msg->nextBlockFast(_PREHASH_AgentData);
- msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
- msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
- msg->nextBlockFast(_PREHASH_Data);
- msg->addUUIDFast(_PREHASH_ClassifiedID, panel_classified->getClassifiedID());
- gAgent.sendReliableMessage();
-
- if(tabs)
- {
- tabs->removeTabPanel(panel_classified);
- }
- delete panel_classified;
- panel_classified = NULL;
- }
- return false;
-}
-
-
-//-----------------------------------------------------------------------------
-// LLPanelAvatarPicks()
-//-----------------------------------------------------------------------------
-LLPanelAvatarPicks::LLPanelAvatarPicks(LLPanelAvatar* panel_avatar)
-: LLPanelAvatarTab(panel_avatar)
-{
-}
-
-
-void LLPanelAvatarPicks::refresh()
-{
- BOOL self = (gAgent.getID() == getPanelAvatar()->getAvatarID());
- LLTabContainer* tabs = getChild<LLTabContainer>("picks tab");
- S32 tab_count = tabs ? tabs->getTabCount() : 0;
- childSetEnabled("New...", self && tab_count < MAX_AVATAR_PICKS);
- childSetEnabled("Delete...", self && tab_count > 0);
- childSetVisible("New...", self && getPanelAvatar()->isEditable());
- childSetVisible("Delete...", self && getPanelAvatar()->isEditable());
-
- sendAvatarProfileRequestIfNeeded("avatarpicksrequest");
-}
-
-
-void LLPanelAvatarPicks::deletePickPanels()
-{
- LLTabContainer* tabs = getChild<LLTabContainer>("picks tab");
- if(tabs)
- {
- tabs->deleteAllTabs();
- }
-
- childSetVisible("New...", false);
- childSetVisible("Delete...", false);
- childSetVisible("loading_text", true);
-}
-
-void LLPanelAvatarPicks::processAvatarPicksReply(LLMessageSystem* msg, void**)
-{
- S32 block = 0;
- S32 block_count = 0;
- LLUUID pick_id;
- std::string pick_name;
- LLPanelPick* panel_pick = NULL;
-
- LLTabContainer* tabs = getChild<LLTabContainer>("picks tab");
-
- // Clear out all the old panels. We'll replace them with the correct
- // number of new panels.
- deletePickPanels();
-
- // The database needs to know for which user to look up picks.
- LLUUID avatar_id = getPanelAvatar()->getAvatarID();
-
- block_count = msg->getNumberOfBlocks("Data");
- for (block = 0; block < block_count; block++)
- {
- msg->getUUID("Data", "PickID", pick_id, block);
- msg->getString("Data", "PickName", pick_name, block);
-
- panel_pick = new LLPanelPick();
-
- panel_pick->setPickID(pick_id, avatar_id);
-
- // This will request data from the server when the pick is first
- // drawn.
- panel_pick->markForServerRequest();
-
- // The button should automatically truncate long names for us
- tabs->addTabPanel(LLTabContainer::TabPanelParams().panel(panel_pick).label(pick_name));
- }
-
- // Make sure somebody is highlighted. This works even if there
- // are no tabs in the container.
- tabs->selectFirstTab();
-
- childSetVisible("New...", true);
- childSetVisible("Delete...", true);
- childSetVisible("loading_text", false);
-}
-
-
-// Create a new pick panel. It will automatically handle generating
-// its own id when it's time to save.
-// static
-void LLPanelAvatarPicks::onClickNew(void* data)
-{
- LLPanelAvatarPicks* self = (LLPanelAvatarPicks*)data;
- LLPanelPick* panel_pick = new LLPanelPick();
- LLTabContainer* tabs = self->getChild<LLTabContainer>("picks tab");
-
- panel_pick->initNewPick();
- tabs->addTabPanel(LLTabContainer::TabPanelParams().panel(panel_pick).label(panel_pick->getPickName()));
- tabs->selectLastTab();
-}
-
-
-// static
-void LLPanelAvatarPicks::onClickDelete(void* data)
-{
- LLPanelAvatarPicks* self = (LLPanelAvatarPicks*)data;
- LLTabContainer* tabs = self->getChild<LLTabContainer>("picks tab");
- LLPanelPick* panel_pick = tabs?(LLPanelPick*)tabs->getCurrentPanel():NULL;
-
- if (!panel_pick) return;
-
- LLSD args;
- args["PICK"] = panel_pick->getPickName();
-
- LLNotifications::instance().add("DeleteAvatarPick", args, LLSD(),
- boost::bind(&LLPanelAvatarPicks::callbackDelete, self, _1, _2));
-}
-
-
-// static
-bool LLPanelAvatarPicks::callbackDelete(const LLSD& notification, const LLSD& response)
-{
- S32 option = LLNotification::getSelectedOption(notification, response);
- LLTabContainer* tabs = getChild<LLTabContainer>("picks tab");
- LLPanelPick* panel_pick = tabs ? (LLPanelPick*)tabs->getCurrentPanel() : NULL;
- LLMessageSystem* msg = gMessageSystem;
-
- if (!panel_pick) return false;
-
- if (0 == option)
- {
- // If the viewer has a hacked god-mode, then this call will
- // fail.
- if(gAgent.isGodlike())
- {
- msg->newMessage("PickGodDelete");
- msg->nextBlock("AgentData");
- msg->addUUID("AgentID", gAgent.getID());
- msg->addUUID("SessionID", gAgent.getSessionID());
- msg->nextBlock("Data");
- msg->addUUID("PickID", panel_pick->getPickID());
- // *HACK: We need to send the pick's creator id to accomplish
- // the delete, and we don't use the query id for anything. JC
- msg->addUUID( "QueryID", panel_pick->getPickCreatorID() );
- }
- else
- {
- msg->newMessage("PickDelete");
- msg->nextBlock("AgentData");
- msg->addUUID("AgentID", gAgent.getID());
- msg->addUUID("SessionID", gAgent.getSessionID());
- msg->nextBlock("Data");
- msg->addUUID("PickID", panel_pick->getPickID());
- }
- gAgent.sendReliableMessage();
-
- if(tabs)
- {
- tabs->removeTabPanel(panel_pick);
- }
- delete panel_pick;
- panel_pick = NULL;
- }
- return false;
-}
-
-
-//-----------------------------------------------------------------------------
-// LLPanelAvatar
-//-----------------------------------------------------------------------------
-LLPanelAvatar::LLPanelAvatar(BOOL allow_edit)
-: LLPanel(),
- mPanelSecondLife(NULL),
- mPanelAdvanced(NULL),
- mPanelClassified(NULL),
- mPanelPicks(NULL),
- mPanelNotes(NULL),
- mPanelFirstLife(NULL),
- mPanelWeb(NULL),
- mDropTarget(NULL),
- mAvatarID( LLUUID::null ), // mAvatarID is set with 'setAvatar' or 'setAvatarID'
- mHaveProperties(FALSE),
- mHaveStatistics(FALSE),
- mHaveNotes(false),
- mLastNotes(),
- mAllowEdit(allow_edit)
-{
-
- sAllPanels.push_back(this);
-
- mFactoryMap["2nd Life"] = LLCallbackMap(createPanelAvatarSecondLife, this);
- mFactoryMap["WebProfile"] = LLCallbackMap(createPanelAvatarWeb, this);
- mFactoryMap["Interests"] = LLCallbackMap(createPanelAvatarInterests, this);
- mFactoryMap["Picks"] = LLCallbackMap(createPanelAvatarPicks, this);
- mFactoryMap["Classified"] = LLCallbackMap(createPanelAvatarClassified, this);
- mFactoryMap["1st Life"] = LLCallbackMap(createPanelAvatarFirstLife, this);
- mFactoryMap["My Notes"] = LLCallbackMap(createPanelAvatarNotes, this);
-
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_avatar.xml");
-
- selectTab(0);
-}
-
-BOOL LLPanelAvatar::postBuild(void)
-{
- mTab = getChild<LLTabContainer>("tab");
- childSetAction("Kick",onClickKick,this);
- childSetAction("Freeze",onClickFreeze, this);
- childSetAction("Unfreeze", onClickUnfreeze, this);
- childSetAction("csr_btn", onClickCSR, this);
- childSetAction("OK", onClickOK, this);
- childSetAction("Cancel", onClickCancel, this);
-
- if(mTab && !sAllowFirstLife)
- {
- LLPanel* panel = mTab->getPanelByName("1st Life");
- if (panel) mTab->removeTabPanel(panel);
-
- panel = mTab->getPanelByName("WebProfile");
- if (panel) mTab->removeTabPanel(panel);
- }
- childSetVisible("Kick",FALSE);
- childSetEnabled("Kick",FALSE);
- childSetVisible("Freeze",FALSE);
- childSetEnabled("Freeze",FALSE);
- childSetVisible("Unfreeze",FALSE);
- childSetEnabled("Unfreeze",FALSE);
- childSetVisible("csr_btn", FALSE);
- childSetEnabled("csr_btn", FALSE);
-
- return TRUE;
-}
-
-
-LLPanelAvatar::~LLPanelAvatar()
-{
- sAllPanels.remove(this);
- if (mAvatarID.notNull())
- {
- LLAvatarPropertiesProcessor::getInstance()->removeObserver(mAvatarID, this);
- }
-}
-
-
-BOOL LLPanelAvatar::canClose()
-{
- return mPanelClassified && mPanelClassified->canClose();
-}
-
-void LLPanelAvatar::setAvatar(LLViewerObject *avatarp)
-{
- // find the avatar and grab the name
- LLNameValue *firstname = avatarp->getNVPair("FirstName");
- LLNameValue *lastname = avatarp->getNVPair("LastName");
-
- std::string name;
- if (firstname && lastname)
- {
- name.assign( firstname->getString() );
- name.append(" ");
- name.append( lastname->getString() );
- }
- else
- {
- name.assign("");
- }
-
- // If we have an avatar pointer, they must be online.
- setAvatarID(avatarp->getID(), name, ONLINE_STATUS_YES);
-}
-
-void LLPanelAvatar::setOnlineStatus(EOnlineStatus online_status)
-{
- // Online status NO could be because they are hidden
- // If they are a friend, we may know the truth!
- if ((ONLINE_STATUS_YES != online_status)
- && mIsFriend
- && (LLAvatarTracker::instance().isBuddyOnline( mAvatarID )))
- {
- online_status = ONLINE_STATUS_YES;
- }
-
- mPanelSecondLife->childSetVisible("online_yes", (online_status == ONLINE_STATUS_YES));
-
- // Since setOnlineStatus gets called after setAvatarID
- // need to make sure that "Offer Teleport" doesn't get set
- // to TRUE again for yourself
- if (mAvatarID != gAgent.getID())
- {
- childSetVisible("Offer Teleport...",TRUE);
- }
-
- BOOL in_prelude = gAgent.inPrelude();
- if(gAgent.isGodlike())
- {
- childSetEnabled("Offer Teleport...", TRUE);
- childSetToolTip("Offer Teleport...", childGetValue("TeleportGod").asString());
- }
- else if (in_prelude)
- {
- childSetEnabled("Offer Teleport...",FALSE);
- childSetToolTip("Offer Teleport...",childGetValue("TeleportPrelude").asString());
- }
- else
- {
- childSetEnabled("Offer Teleport...", (online_status == ONLINE_STATUS_YES));
- childSetToolTip("Offer Teleport...", childGetValue("TeleportNormal").asString());
- }
-}
-
-void LLPanelAvatar::setAvatarID(const LLUUID &avatar_id, const std::string &name,
- EOnlineStatus online_status)
-{
- if (avatar_id.isNull()) return;
-
- BOOL avatar_changed = FALSE;
- if (avatar_id != mAvatarID)
- {
- avatar_changed = TRUE;
-
- if (mAvatarID.notNull())
- {
- LLAvatarPropertiesProcessor::getInstance()->removeObserver(mAvatarID, this);
- }
-
- LLAvatarPropertiesProcessor::getInstance()->addObserver(avatar_id, this);
- }
- mAvatarID = avatar_id;
-
- // Determine if we have their calling card.
- mIsFriend = is_agent_friend(mAvatarID);
-
- // setOnlineStatus uses mIsFriend
- setOnlineStatus(online_status);
-
- BOOL own_avatar = (mAvatarID == gAgent.getID() );
- BOOL avatar_is_friend = LLAvatarTracker::instance().getBuddyInfo(mAvatarID) != NULL;
-
- mPanelSecondLife->enableControls(own_avatar && mAllowEdit);
- mPanelWeb->enableControls(own_avatar && mAllowEdit);
- mPanelAdvanced->enableControls(own_avatar && mAllowEdit);
- // Teens don't have this.
- if (mPanelFirstLife) mPanelFirstLife->enableControls(own_avatar && mAllowEdit);
-
- mDropTarget = getChild<LLDropTarget> ("Drop Target");
- mDropTarget->setAgentID(mAvatarID);
-
- LLNameEditor* name_edit = getChild<LLNameEditor>("name");
- if(name_edit)
- {
- if (name.empty())
- {
- name_edit->setNameID(avatar_id, FALSE);
- }
- else
- {
- name_edit->setText(name);
- }
- }
-// if (avatar_changed)
- {
- // While we're waiting for data off the network, clear out the
- // old data.
- mPanelSecondLife->clearControls();
-
- mPanelPicks->deletePickPanels();
- mPanelPicks->setDataRequested(false);
-
- mPanelClassified->deleteClassifiedPanels();
- mPanelClassified->setDataRequested(false);
-
- mPanelNotes->clearControls();
- mPanelNotes->setDataRequested(false);
- mHaveNotes = false;
- mLastNotes.clear();
-
- // Request just the first two pages of data. The picks,
- // classifieds, and notes will be requested when that panel
- // is made visible. JC
- LLAvatarPropertiesProcessor::getInstance()->sendAvatarPropertiesRequest(mAvatarID);
+ setCaptionText(avatar_data);
+ }
+ childSetValue("show_in_search_checkbox", (BOOL)(avatar_data->flags & AVATAR_ALLOW_PUBLISH));
- if (own_avatar)
- {
- if (mAllowEdit)
+ if (avatar_data->partner_id.notNull())
{
- // OK button disabled until properties data arrives
- childSetVisible("OK", true);
- childSetEnabled("OK", false);
- childSetVisible("Cancel",TRUE);
- childSetEnabled("Cancel",TRUE);
+ std::string first, last;
+ BOOL found = gCacheName->getName(avatar_data->partner_id, first, last);
+ if (found)
+ {
+ childSetTextArg("partner_text", "[FIRST]", first);
+ childSetTextArg("partner_text", "[LAST]", last);
+ }
}
- else
+ //http://secondlife.com/partner
+
+ bool online = avatar_data->flags & AVATAR_ONLINE;
+ if(is_agent_friend(avatar_data->avatar_id))
{
- childSetVisible("OK",FALSE);
- childSetEnabled("OK",FALSE);
- childSetVisible("Cancel",FALSE);
- childSetEnabled("Cancel",FALSE);
+ // Online status NO could be because they are hidden
+ // If they are a friend, we may know the truth!
+ online = LLAvatarTracker::instance().isBuddyOnline(avatar_data->avatar_id);
}
- childSetVisible("Instant Message...",FALSE);
- childSetEnabled("Instant Message...",FALSE);
- childSetVisible("Mute",FALSE);
- childSetEnabled("Mute",FALSE);
- childSetVisible("Offer Teleport...",FALSE);
- childSetEnabled("Offer Teleport...",FALSE);
- childSetVisible("drop target",FALSE);
- childSetEnabled("drop target",FALSE);
- childSetVisible("Find on Map",FALSE);
- childSetEnabled("Find on Map",FALSE);
- childSetVisible("Add Friend...",FALSE);
- childSetEnabled("Add Friend...",FALSE);
- childSetVisible("Pay...",FALSE);
- childSetEnabled("Pay...",FALSE);
+ childSetValue("online_status", online ?
+ "Online" : "Offline");
+ childSetColor("online_status", online ?
+ LLColor4::green : LLColor4::red);
+
+ LLAvatarPropertiesProcessor::getInstance()->removeObserver(getAvatarId(),this);
}
- else
+ if (isOwnProfile() && NULL != mStatusCombobox)
{
- childSetVisible("OK",FALSE);
- childSetEnabled("OK",FALSE);
-
- childSetVisible("Cancel",FALSE);
- childSetEnabled("Cancel",FALSE);
-
- childSetVisible("Instant Message...",TRUE);
- childSetEnabled("Instant Message...",FALSE);
- childSetVisible("Mute",TRUE);
- childSetEnabled("Mute",FALSE);
-
- childSetVisible("drop target",TRUE);
- childSetEnabled("drop target",FALSE);
-
- childSetVisible("Find on Map",TRUE);
- // Note: we don't always know online status, so always allow gods to try to track
- BOOL enable_track = gAgent.isGodlike() || is_agent_mappable(mAvatarID);
- childSetEnabled("Find on Map",enable_track);
- if (!mIsFriend)
+ std::string status;
+ if (gAgent.getAFK())
{
- childSetToolTip("Find on Map",childGetValue("ShowOnMapNonFriend").asString());
+ status = "away";
}
- else if (ONLINE_STATUS_YES != online_status)
+ else if (gAgent.getBusy())
{
- childSetToolTip("Find on Map",childGetValue("ShowOnMapFriendOffline").asString());
+ status = "busy";
}
else
{
- childSetToolTip("Find on Map",childGetValue("ShowOnMapFriendOnline").asString());
+ status = "online";
}
- childSetVisible("Add Friend...", true);
- childSetEnabled("Add Friend...", !avatar_is_friend);
- childSetVisible("Pay...",TRUE);
- childSetEnabled("Pay...",FALSE);
+ mStatusCombobox->setValue(status);
}
}
-
- BOOL is_god = FALSE;
- if (gAgent.isGodlike()) is_god = TRUE;
-
- childSetVisible("Kick", is_god);
- childSetEnabled("Kick", is_god);
- childSetVisible("Freeze", is_god);
- childSetEnabled("Freeze", is_god);
- childSetVisible("Unfreeze", is_god);
- childSetEnabled("Unfreeze", is_god);
- childSetVisible("csr_btn", is_god);
- childSetEnabled("csr_btn", is_god);
-}
-
-
-void LLPanelAvatar::resetGroupList()
-{
- // only get these updates asynchronously via the group floater, which works on the agent only
- if (mAvatarID != gAgent.getID())
+ else if(APT_GROUPS == type)
{
- return;
- }
-
- if (mPanelSecondLife)
- {
- LLScrollListCtrl* group_list = mPanelSecondLife->getChild<LLScrollListCtrl>("groups");
- if (group_list)
+ LLAvatarGroups* avatar_groups = static_cast<LLAvatarGroups*>(data);
+ if(avatar_groups)
{
- group_list->deleteAllItems();
-
- S32 count = gAgent.mGroups.count();
- LLUUID id;
-
- for(S32 i = 0; i < count; ++i)
+ std::string groups;
+ LLAvatarGroups::group_list_t::const_iterator it = avatar_groups->group_list.begin();
+ for(; avatar_groups->group_list.end() != it; ++it)
{
- LLGroupData group_data = gAgent.mGroups.get(i);
- id = group_data.mID;
- std::string group_string;
- /* Show group title? DUMMY_POWER for Don Grep
- if(group_data.mOfficer)
- {
- group_string = "Officer of ";
- }
- else
- {
- group_string = "Member of ";
- }
- */
-
- group_string += group_data.mName;
-
- LLSD row;
-
- row["id"] = id ;
- row["columns"][0]["value"] = group_string;
- row["columns"][0]["font"] = "SANSSERIF_SMALL";
- row["columns"][0]["width"] = 0;
- group_list->addElement(row);
+ LLAvatarGroups::LLGroupData group_data = *it;
+ groups += group_data.group_name;
+ groups += ", ";
}
- group_list->sortByColumnIndex(0, TRUE);
+ childSetValue("sl_groups",groups);
}
}
}
-// static
-//-----------------------------------------------------------------------------
-// onClickIM()
-//-----------------------------------------------------------------------------
-void LLPanelAvatar::onClickIM(void* userdata)
+void LLPanelAvatarProfile::clear()
{
- LLPanelAvatar* self = (LLPanelAvatar*) userdata;
-
- std::string name;
- LLNameEditor* nameedit = self->mPanelSecondLife->getChild<LLNameEditor>("name");
- if (nameedit) name = nameedit->getText();
- gIMMgr->addSession(name, IM_NOTHING_SPECIAL, self->mAvatarID);
+ clearControls();
}
-
-// static
-//-----------------------------------------------------------------------------
-// onClickTrack()
-//-----------------------------------------------------------------------------
-void LLPanelAvatar::onClickTrack(void* userdata)
+void LLPanelAvatarProfile::clearControls()
{
- LLPanelAvatar* self = (LLPanelAvatar*) userdata;
-
- std::string name;
- LLNameEditor* nameedit = self->mPanelSecondLife->getChild<LLNameEditor>("name");
- if (nameedit) name = nameedit->getText();
- LLFloaterWorldMap::getInstance()->trackAvatar(self->mAvatarID, name);
- LLFloaterReg::showInstance("world_map", "center");
-}
-
-
-// static
-void LLPanelAvatar::onClickAddFriend(void* userdata)
-{
- LLPanelAvatar* self = (LLPanelAvatar*) userdata;
- LLNameEditor* name_edit = self->mPanelSecondLife->getChild<LLNameEditor>("name");
- if (name_edit)
- {
- LLPanelFriends::requestFriendshipDialog(self->getAvatarID(),
- name_edit->getText());
- }
-}
-
-//-----------------------------------------------------------------------------
-// onClickMute()
-//-----------------------------------------------------------------------------
-void LLPanelAvatar::onClickMute(void *userdata)
-{
- LLPanelAvatar* self = (LLPanelAvatar*) userdata;
-
- LLUUID agent_id = self->getAvatarID();
- LLNameEditor* name_edit = self->mPanelSecondLife->getChild<LLNameEditor>("name");
-
- if (name_edit)
- {
- std::string agent_name = name_edit->getText();
- LLFloaterMute::showInstance();
-
- if (LLMuteList::getInstance()->isMuted(agent_id))
- {
- LLFloaterMute::getInstance()->selectMute(agent_id);
- }
- else
- {
- LLMute mute(agent_id, agent_name, LLMute::AGENT);
- LLMuteList::getInstance()->add(mute);
- }
- }
-}
-
-
-// static
-void LLPanelAvatar::onClickOfferTeleport(void *userdata)
-{
- LLPanelAvatar* self = (LLPanelAvatar*) userdata;
-
- handle_lure(self->mAvatarID);
-}
-
-
-// static
-void LLPanelAvatar::onClickPay(void *userdata)
-{
- LLPanelAvatar* self = (LLPanelAvatar*) userdata;
- handle_pay_by_id(self->mAvatarID);
-}
-
-
-// static
-void LLPanelAvatar::onClickOK(void *userdata)
-{
- LLPanelAvatar *self = (LLPanelAvatar *)userdata;
-
- // JC: Only save the data if we actually got the original
- // properties. Otherwise we might save blanks into
- // the database.
- if (self
- && self->mHaveProperties)
- {
- self->sendAvatarPropertiesUpdate();
-
- LLTabContainer* tabs = self->getChild<LLTabContainer>("tab");
- if ( tabs->getCurrentPanel() != self->mPanelClassified )
- {
- self->mPanelClassified->apply();
-
- LLFloaterReg::hideInstance("preview_avatar", self->mAvatarID);
- }
- else
- {
- if ( self->mPanelClassified->titleIsValid() )
- {
- self->mPanelClassified->apply();
- LLFloaterReg::hideInstance("preview_avatar", self->mAvatarID);
- }
- }
- }
+ childSetValue("2nd_life_pic",LLUUID::null);
+ childSetValue("1st_life_pic",LLUUID::null);
+ childSetValue("online_status",LLStringUtil::null);
+ childSetValue("status_message",LLStringUtil::null);
+ childSetValue("sl_description_edit",LLStringUtil::null);
+ childSetValue("fl_description_edit",LLStringUtil::null);
+ childSetValue("sl_groups",LLStringUtil::null);
+ childSetValue("homepage_edit",LLStringUtil::null);
+ childSetValue("register_date",LLStringUtil::null);
+ childSetValue("acc_status_text",LLStringUtil::null);
+ childSetTextArg("partner_text", "[FIRST]", LLStringUtil::null);
+ childSetTextArg("partner_text", "[LAST]", LLStringUtil::null);
}
-// static
-void LLPanelAvatar::onClickCancel(void *userdata)
+void LLPanelAvatarProfile::setCaptionText(const LLAvatarData* avatar_data)
{
- LLPanelAvatar *self = (LLPanelAvatar *)userdata;
-
- if (self)
- {
- if (!LLFloaterReg::hideInstance("preview_avatar", self->mAvatarID))
- {
- // We're in the Search directory and are cancelling an edit
- // to our own profile, so reset.
- self->sendAvatarPropertiesRequest();
- }
- }
-}
-
-
-void LLPanelAvatar::sendAvatarPropertiesRequest()
-{
- LLAvatarPropertiesProcessor::getInstance()->sendAvatarPropertiesRequest(mAvatarID);
-}
-
-void LLPanelAvatar::sendAvatarNotesUpdate()
-{
- std::string notes = mPanelNotes->childGetValue("notes edit").asString();
-
- if (!mHaveNotes
- && (notes.empty() || notes == getString("Loading")))
- {
- // no notes from server and no user updates
- return;
- }
- if (notes == mLastNotes)
- {
- // Avatar notes unchanged
- return;
- }
-
- LLMessageSystem *msg = gMessageSystem;
-
- msg->newMessage("AvatarNotesUpdate");
- msg->nextBlock("AgentData");
- msg->addUUID("AgentID", gAgent.getID());
- msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
- msg->nextBlock("Data");
- msg->addUUID("TargetID", mAvatarID);
- msg->addString("Notes", notes);
-
- gAgent.sendReliableMessage();
-}
-
-void LLPanelAvatar::processAvatarProperties(const LLAvatarData& avatar_data)
-{
- BOOL allow_publish = FALSE;
- BOOL identified = FALSE;
- BOOL transacted = FALSE;
- BOOL age_verified = FALSE;
- BOOL online = FALSE;
- std::string profile_url;
- std::string caption_text;
-
- //llinfos << "properties packet size " << msg->getReceiveSize() << llendl;
-
- childSetEnabled("Instant Message...",TRUE);
- childSetEnabled("Pay...",TRUE);
- childSetEnabled("Mute",TRUE);
-
- childSetEnabled("drop target",TRUE);
-
- mHaveProperties = TRUE;
- enableOKIfReady();
-
- identified = (avatar_data.flags & AVATAR_IDENTIFIED);
- transacted = (avatar_data.flags & AVATAR_TRANSACTED);
- age_verified = (avatar_data.flags & AVATAR_AGEVERIFIED); // Not currently getting set in dataserver/lldataavatar.cpp for privacy considerations
- allow_publish = (avatar_data.flags & AVATAR_ALLOW_PUBLISH);
- online = (avatar_data.flags & AVATAR_ONLINE);
-
- caption_text = avatar_data.caption_text;
-
+ std::string caption_text = avatar_data->caption_text;
if(caption_text.empty())
{
LLStringUtil::format_map_t args;
- caption_text = mPanelSecondLife->getString("CaptionTextAcctInfo");
+ caption_text = getString("CaptionTextAcctInfo");
+ BOOL transacted = (avatar_data->flags & AVATAR_TRANSACTED);
+ BOOL identified = (avatar_data->flags & AVATAR_IDENTIFIED);
+ BOOL age_verified = (avatar_data->flags & AVATAR_AGEVERIFIED); // Not currently getting set in dataserver/lldataavatar.cpp for privacy considerations
const char* ACCT_TYPE[] = {
"AcctTypeResident",
@@ -1664,8 +363,8 @@ void LLPanelAvatar::processAvatarProperties(const LLAvatarData& avatar_data)
"AcctTypeCharterMember",
"AcctTypeEmployee"
};
- U8 caption_index = llclamp(avatar_data.caption_index, (U8)0, (U8)(LL_ARRAY_SIZE(ACCT_TYPE)-1));
- args["[ACCTTYPE]"] = mPanelSecondLife->getString(ACCT_TYPE[caption_index]);
+ U8 caption_index = llclamp(avatar_data->caption_index, (U8)0, (U8)(LL_ARRAY_SIZE(ACCT_TYPE)-1));
+ args["[ACCTTYPE]"] = getString(ACCT_TYPE[caption_index]);
std::string payment_text = " ";
const S32 DEFAULT_CAPTION_LINDEN_INDEX = 3;
@@ -1683,7 +382,8 @@ void LLPanelAvatar::processAvatarProperties(const LLAvatarData& avatar_data)
{
payment_text = "NoPaymentInfoOnFile";
}
- args["[PAYMENTINFO]"] = mPanelSecondLife->getString(payment_text);
+ args["[PAYMENTINFO]"] = getString(payment_text);
+
std::string age_text = age_verified ? "AgeVerified" : "NotAgeVerified";
// Do not display age verification status at this time
//args["[[AGEVERIFICATION]]"] = mPanelSecondLife->getString(age_text);
@@ -1696,510 +396,271 @@ void LLPanelAvatar::processAvatarProperties(const LLAvatarData& avatar_data)
}
LLStringUtil::format(caption_text, args);
}
-
- mPanelSecondLife->childSetValue("acct", caption_text);
- mPanelSecondLife->childSetValue("born", avatar_data.born_on);
-
- EOnlineStatus online_status = (online) ? ONLINE_STATUS_YES : ONLINE_STATUS_NO;
-
- setOnlineStatus(online_status);
-
- mPanelWeb->setWebURL(profile_url);
-
- LLTextureCtrl* image_ctrl = mPanelSecondLife->getChild<LLTextureCtrl>("img");
- if(image_ctrl)
- {
- image_ctrl->setImageAssetID(avatar_data.image_id);
- }
- childSetValue("about", avatar_data.about_text);
-
- mPanelSecondLife->setPartnerID(avatar_data.partner_id);
- mPanelSecondLife->updatePartnerName();
- if (mPanelFirstLife)
- {
- // Teens don't get these
- mPanelFirstLife->childSetValue("about", avatar_data.fl_about_text);
- LLTextureCtrl* image_ctrl = mPanelFirstLife->getChild<LLTextureCtrl>("img");
- if(image_ctrl)
- {
- image_ctrl->setImageAssetID(avatar_data.fl_image_id);
- }
-
- mPanelSecondLife->childSetValue("allow_publish", allow_publish);
-
- }
+ childSetValue("acc_status_text", caption_text);
}
-// static
-void LLPanelAvatar::processAvatarInterestsReply(LLMessageSystem *msg, void**)
+void LLPanelAvatarProfile::onAddFriendButtonClick()
{
- LLUUID agent_id; // your id
- LLUUID avatar_id; // target of this panel
-
- U32 want_to_mask;
- std::string want_to_text;
- U32 skills_mask;
- std::string skills_text;
- std::string languages_text;
-
- //llinfos << "properties packet size " << msg->getReceiveSize() << llendl;
-
- msg->getUUIDFast(_PREHASH_AgentData, _PREHASH_AgentID, agent_id);
- msg->getUUIDFast(_PREHASH_AgentData, _PREHASH_AvatarID, avatar_id );
-
- for (panel_list_t::iterator iter = sAllPanels.begin(); iter != sAllPanels.end(); ++iter)
- {
- LLPanelAvatar* self = *iter;
- if (self->mAvatarID != avatar_id)
- {
- continue;
- }
-
- msg->getU32Fast( _PREHASH_PropertiesData, _PREHASH_WantToMask, want_to_mask );
- msg->getStringFast(_PREHASH_PropertiesData, _PREHASH_WantToText, want_to_text );
- msg->getU32Fast( _PREHASH_PropertiesData, _PREHASH_SkillsMask, skills_mask );
- msg->getStringFast(_PREHASH_PropertiesData, _PREHASH_SkillsText, skills_text );
- msg->getString(_PREHASH_PropertiesData, "LanguagesText", languages_text );
-
- self->mPanelAdvanced->setWantSkills(want_to_mask, want_to_text, skills_mask, skills_text, languages_text);
- }
+ onAddFriend();
}
-// Separate function because the groups list can be very long, almost
-// filling a packet. JC
-// static
-void LLPanelAvatar::processAvatarGroupsReply(LLMessageSystem *msg, void**)
+void LLPanelAvatarProfile::onIMButtonClick()
{
- LLUUID agent_id; // your id
- LLUUID avatar_id; // target of this panel
- U64 group_powers;
- std::string group_title;
- LLUUID group_id;
- std::string group_name;
- LLUUID group_insignia_id;
-
- llinfos << "groups packet size " << msg->getReceiveSize() << llendl;
-
- msg->getUUIDFast(_PREHASH_AgentData, _PREHASH_AgentID, agent_id);
- msg->getUUIDFast(_PREHASH_AgentData, _PREHASH_AvatarID, avatar_id );
+ onIM();
+}
- for (panel_list_t::iterator iter = sAllPanels.begin(); iter != sAllPanels.end(); ++iter)
- {
- LLPanelAvatar* self = *iter;
- if (self->mAvatarID != avatar_id)
- {
- continue;
- }
-
- LLScrollListCtrl* group_list = self->mPanelSecondLife->getChild<LLScrollListCtrl>("groups");
-// if(group_list)
-// {
-// group_list->deleteAllItems();
-// }
-
- S32 group_count = msg->getNumberOfBlocksFast(_PREHASH_GroupData);
- if (0 == group_count)
- {
- if(group_list) group_list->setCommentText(LLTrans::getString("None"));
- }
- else
- {
- for(S32 i = 0; i < group_count; ++i)
- {
- msg->getU64( _PREHASH_GroupData, "GroupPowers", group_powers, i );
- msg->getStringFast(_PREHASH_GroupData, _PREHASH_GroupTitle, group_title, i );
- msg->getUUIDFast( _PREHASH_GroupData, _PREHASH_GroupID, group_id, i);
- msg->getStringFast(_PREHASH_GroupData, _PREHASH_GroupName, group_name, i );
- msg->getUUIDFast( _PREHASH_GroupData, _PREHASH_GroupInsigniaID, group_insignia_id, i );
-
- std::string group_string;
- if (group_id.notNull())
- {
- group_string.assign(group_name);
- }
- else
- {
- group_string.assign("");
- }
+void LLPanelAvatarProfile::onTeleportButtonClick()
+{
+ onTeleport();
+}
- // Is this really necessary? Remove existing entry if it exists.
- // TODO: clear the whole list when a request for data is made
- if (group_list)
- {
- S32 index = group_list->getItemIndex(group_id);
- if ( index >= 0 )
- {
- group_list->deleteSingleItem(index);
- }
- }
+void LLPanelAvatarProfile::onCallButtonClick()
+{
- LLSD row;
- row["id"] = group_id;
- row["columns"][0]["value"] = group_string;
- row["columns"][0]["font"] = "SANSSERIF_SMALL";
- if (group_list)
- {
- group_list->addElement(row);
- }
- }
- }
- if(group_list) group_list->sortByColumnIndex(0, TRUE);
- }
}
-// Don't enable the OK button until you actually have the data.
-// Otherwise you will write blanks back into the database.
-void LLPanelAvatar::enableOKIfReady()
+void LLPanelAvatarProfile::onShareButtonClick()
{
- if(mHaveProperties && childIsVisible("OK"))
- {
- childSetEnabled("OK", TRUE);
- }
- else
- {
- childSetEnabled("OK", FALSE);
- }
+
}
-void LLPanelAvatar::sendAvatarPropertiesUpdate()
+/*virtual*/ BOOL LLPanelAvatarProfile::postBuild(void)
{
- llinfos << "Sending avatarinfo update" << llendl;
- BOOL allow_publish = FALSE;
- BOOL mature = FALSE;
- if (LLPanelAvatar::sAllowFirstLife)
+ mStatusCombobox = getChild<LLComboBox>("status_combo", TRUE, FALSE);
+ if (NULL != mStatusCombobox)
{
- allow_publish = childGetValue("allow_publish");
- //A profile should never be mature.
- mature = FALSE;
+ mStatusCombobox->setCommitCallback(boost::bind(&LLPanelAvatarProfile::onStatusChanged, this));
}
- U32 want_to_mask = 0x0;
- U32 skills_mask = 0x0;
- std::string want_to_text;
- std::string skills_text;
- std::string languages_text;
- mPanelAdvanced->getWantSkills(&want_to_mask, want_to_text, &skills_mask, skills_text, languages_text);
-
- LLUUID first_life_image_id;
- std::string first_life_about_text;
- if (mPanelFirstLife)
+ mStatusMessage = getChild<LLLineEditor>("status_me_message_edit", TRUE, FALSE);
+ if (NULL != mStatusMessage)
{
- first_life_about_text = mPanelFirstLife->childGetValue("about").asString();
- LLTextureCtrl* image_ctrl = mPanelFirstLife->getChild<LLTextureCtrl>("img");
- if(image_ctrl)
- {
- first_life_image_id = image_ctrl->getImageAssetID();
- }
+ mStatusMessage->setCommitCallback(boost::bind(&LLPanelAvatarProfile::onStatusMessageChanged, this));
}
- std::string about_text = mPanelSecondLife->childGetValue("about").asString();
-
- LLMessageSystem *msg = gMessageSystem;
+ childSetCommitCallback("add_friend",(boost::bind(&LLPanelAvatarProfile::onAddFriendButtonClick,this)),NULL);
+ childSetCommitCallback("im",(boost::bind(&LLPanelAvatarProfile::onIMButtonClick,this)),NULL);
+ childSetCommitCallback("call",(boost::bind(&LLPanelAvatarProfile::onCallButtonClick,this)),NULL);
+ childSetCommitCallback("teleport",(boost::bind(&LLPanelAvatarProfile::onTeleportButtonClick,this)),NULL);
+ childSetCommitCallback("share",(boost::bind(&LLPanelAvatarProfile::onShareButtonClick,this)),NULL);
- msg->newMessageFast(_PREHASH_AvatarPropertiesUpdate);
- msg->nextBlockFast(_PREHASH_AgentData);
- msg->addUUIDFast( _PREHASH_AgentID, gAgent.getID() );
- msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID() );
- msg->nextBlockFast(_PREHASH_PropertiesData);
-
- LLTextureCtrl* image_ctrl = mPanelSecondLife->getChild<LLTextureCtrl>("img");
- if(image_ctrl)
+ LLTextureCtrl* pic = getChild<LLTextureCtrl>("2nd_life_pic",TRUE,FALSE);
+ if(pic)
{
- msg->addUUIDFast( _PREHASH_ImageID, image_ctrl->getImageAssetID());
+ pic->setFallbackImageName("default_land_picture.j2c");
}
- else
+ pic = getChild<LLTextureCtrl>("1st_life_pic",TRUE,FALSE);
+ if(pic)
{
- msg->addUUIDFast( _PREHASH_ImageID, LLUUID::null);
+ pic->setFallbackImageName("default_land_picture.j2c");
}
-// msg->addUUIDFast( _PREHASH_ImageID, mPanelSecondLife->mimage_ctrl->getImageAssetID() );
- msg->addUUIDFast( _PREHASH_FLImageID, first_life_image_id);
- msg->addStringFast( _PREHASH_AboutText, about_text);
- msg->addStringFast( _PREHASH_FLAboutText, first_life_about_text);
-
- msg->addBOOL("AllowPublish", allow_publish);
- msg->addBOOL("MaturePublish", mature);
- msg->addString("ProfileURL", mPanelWeb->childGetText("url_edit"));
- gAgent.sendReliableMessage();
-
- msg->newMessage("AvatarInterestsUpdate");
- msg->nextBlockFast(_PREHASH_AgentData);
- msg->addUUIDFast( _PREHASH_AgentID, gAgent.getID() );
- msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID() );
- msg->nextBlockFast(_PREHASH_PropertiesData);
- msg->addU32Fast( _PREHASH_WantToMask, want_to_mask);
- msg->addStringFast( _PREHASH_WantToText, want_to_text);
- msg->addU32Fast( _PREHASH_SkillsMask, skills_mask);
- msg->addStringFast( _PREHASH_SkillsText, skills_text);
- msg->addString( "LanguagesText", languages_text);
- gAgent.sendReliableMessage();
+
+ clearControls();
+ updateChildrenList();
+
+ return TRUE;
+}
+void LLPanelAvatarProfile::onOpen(const LLSD& key)
+{
+ setAvatarId(key);
+ scrollToTop();
+ updateChildrenList();
+ updateData();
}
-void LLPanelAvatar::selectTab(S32 tabnum)
+void LLPanelAvatarProfile::scrollToTop()
{
- if(mTab)
+ LLScrollContainer* scrollContainer = getChild<LLScrollContainer>("profile_scroll", FALSE, FALSE);
+ if (NULL != scrollContainer)
{
- mTab->selectTab(tabnum);
+ scrollContainer->goToTop();
}
}
-void LLPanelAvatar::selectTabByName(std::string tab_name)
+void LLPanelAvatarProfile::updateChildrenList()
{
- if (mTab)
+ if (mUpdated || isEditMode())
{
- if (tab_name.empty())
- {
- mTab->selectFirstTab();
- }
- else
- {
- mTab->selectTabByName(tab_name);
- }
+ return;
}
-}
-
+ switch (mProfileType)
+ {
+ case PT_OWN:
+ childSetVisible("status_panel",FALSE);
+ childSetVisible("profile_buttons_panel",FALSE);
+ childSetVisible("title_groups_text",FALSE);
+ childSetVisible("sl_groups",FALSE);
+ mUpdated = true;
+ childSetVisible("status_me_panel",TRUE);
+ childSetVisible("profile_me_buttons_panel",TRUE);
-void LLPanelAvatar::processAvatarNotesReply(LLMessageSystem *msg, void**)
-{
- // extract the agent id
- LLUUID agent_id;
- msg->getUUID("AgentData", "AgentID", agent_id);
+ break;
+ case PT_OTHER:
+ childSetVisible("status_me_panel",FALSE);
+ childSetVisible("profile_me_buttons_panel",FALSE);
- LLUUID target_id;
- msg->getUUID("Data", "TargetID", target_id);
+ childSetVisible("status_panel",TRUE);
+ childSetVisible("profile_buttons_panel",TRUE);
+ childSetVisible("title_groups_text",TRUE);
+ childSetVisible("sl_groups",TRUE);
- // look up all panels which have this avatar
- for (panel_list_t::iterator iter = sAllPanels.begin(); iter != sAllPanels.end(); ++iter)
- {
- LLPanelAvatar* self = *iter;
- if (self->mAvatarID != target_id)
- {
- continue;
- }
+ // account actions
+ childSetVisible("account_actions_panel", FALSE);
+ childSetVisible("partner_edit_link", FALSE);
- std::string text;
- msg->getString("Data", "Notes", text);
- self->childSetValue("notes edit", text);
- self->childSetEnabled("notes edit", true);
- self->mHaveNotes = true;
- self->mLastNotes = text;
+ mUpdated = true;
+ break;
+ case PT_UNKNOWN: break;//do nothing
+ default:
+ llassert(false);
}
}
-
-
-void LLPanelAvatar::processAvatarClassifiedReply(LLMessageSystem *msg, void** userdata)
+void LLPanelAvatarProfile::onStatusChanged()
{
- LLUUID agent_id;
- LLUUID target_id;
-
- msg->getUUIDFast(_PREHASH_AgentData, _PREHASH_AgentID, agent_id);
- msg->getUUIDFast(_PREHASH_AgentData, _PREHASH_TargetID, target_id);
-
- // look up all panels which have this avatar target
- for (panel_list_t::iterator iter = sAllPanels.begin(); iter != sAllPanels.end(); ++iter)
+ LLSD::String status = mStatusCombobox->getValue().asString();
+
+ if ("online" == status)
{
- LLPanelAvatar* self = *iter;
- if (self->mAvatarID != target_id)
- {
- continue;
- }
-
- self->mPanelClassified->processAvatarClassifiedReply(msg, userdata);
+ gAgent.clearAFK();
+ gAgent.clearBusy();
+ }
+ else if ("away" == status)
+ {
+ gAgent.clearBusy();
+ gAgent.setAFK();
+ }
+ else if ("busy" == status)
+ {
+ gAgent.clearAFK();
+ gAgent.setBusy();
+ LLNotifications::instance().add("BusyModeSet");
}
+ else
+ {
+ }
+
}
-void LLPanelAvatar::processAvatarPicksReply(LLMessageSystem *msg, void** userdata)
+void LLPanelAvatarProfile::onStatusMessageChanged()
{
- LLUUID agent_id;
- LLUUID target_id;
-
- msg->getUUID("AgentData", "AgentID", agent_id);
- msg->getUUID("AgentData", "TargetID", target_id);
+ updateData();
+}
- // look up all panels which have this avatar target
- for (panel_list_t::iterator iter = sAllPanels.begin(); iter != sAllPanels.end(); ++iter)
- {
- LLPanelAvatar* self = *iter;
- if (self->mAvatarID != target_id)
- {
- continue;
- }
- self->mPanelPicks->processAvatarPicksReply(msg, userdata);
- }
+//-----------------------------------------------------------------------------
+// LLPanelAvatarNotes()
+//-----------------------------------------------------------------------------
+LLPanelAvatarNotes::LLPanelAvatarNotes(const LLUUID& id /* = LLUUID::null */)
+:LLPanelProfileTab(id)
+{
+ updateData();
}
-// static
-void LLPanelAvatar::onClickKick(void* userdata)
+LLPanelAvatarNotes::LLPanelAvatarNotes(const Params& params)
+: LLPanelProfileTab(params)
{
- LLPanelAvatar* self = (LLPanelAvatar*) userdata;
- LLSD payload;
- payload["avatar_id"] = self->mAvatarID;
- LLNotifications::instance().add("KickUser", LLSD(), payload, finishKick);
}
-//static
-bool LLPanelAvatar::finishKick(const LLSD& notification, const LLSD& response)
+LLPanelAvatarNotes::~LLPanelAvatarNotes()
{
- S32 option = LLNotification::getSelectedOption(notification, response);
-
- if (option == 0)
+ if(getAvatarId().notNull())
{
- LLUUID avatar_id = notification["payload"]["avatar_id"].asUUID();
- LLMessageSystem* msg = gMessageSystem;
-
- msg->newMessageFast(_PREHASH_GodKickUser);
- msg->nextBlockFast(_PREHASH_UserInfo);
- msg->addUUIDFast(_PREHASH_GodID, gAgent.getID() );
- msg->addUUIDFast(_PREHASH_GodSessionID, gAgent.getSessionID());
- msg->addUUIDFast(_PREHASH_AgentID, avatar_id );
- msg->addU32("KickFlags", KICK_FLAGS_DEFAULT );
- msg->addStringFast(_PREHASH_Reason, response["message"].asString() );
- gAgent.sendReliableMessage();
+ LLAvatarPropertiesProcessor::getInstance()->removeObserver(getAvatarId(),this);
}
- return false;
}
-// static
-void LLPanelAvatar::onClickFreeze(void* userdata)
+void* LLPanelAvatarNotes::create(void* data)
{
- LLPanelAvatar* self = (LLPanelAvatar*) userdata;
- LLSD payload;
- payload["avatar_id"] = self->mAvatarID;
- LLNotifications::instance().add("FreezeUser", LLSD(), payload, LLPanelAvatar::finishFreeze);
-}
-
-// static
-bool LLPanelAvatar::finishFreeze(const LLSD& notification, const LLSD& response)
-{
- S32 option = LLNotification::getSelectedOption(notification, response);
-
- if (option == 0)
+ if(data)
{
- LLUUID avatar_id = notification["payload"]["avatar_id"].asUUID();
- LLMessageSystem* msg = gMessageSystem;
-
- msg->newMessageFast(_PREHASH_GodKickUser);
- msg->nextBlockFast(_PREHASH_UserInfo);
- msg->addUUIDFast(_PREHASH_GodID, gAgent.getID() );
- msg->addUUIDFast(_PREHASH_GodSessionID, gAgent.getSessionID());
- msg->addUUIDFast(_PREHASH_AgentID, avatar_id );
- msg->addU32("KickFlags", KICK_FLAGS_FREEZE );
- msg->addStringFast(_PREHASH_Reason, response["message"].asString() );
- gAgent.sendReliableMessage();
+ LLSD* id = static_cast<LLSD*>(data);
+ return new LLPanelAvatarNotes(LLUUID(id->asUUID()));
}
- return false;
+ return new LLPanelAvatarNotes();
}
-// static
-void LLPanelAvatar::onClickUnfreeze(void* userdata)
+void LLPanelAvatarNotes::updateData()
{
- LLPanelAvatar* self = (LLPanelAvatar*) userdata;
- LLSD payload;
- payload["avatar_id"] = self->mAvatarID;
- LLNotifications::instance().add("UnFreezeUser", LLSD(), payload, LLPanelAvatar::finishUnfreeze);
-}
+ LLAvatarPropertiesProcessor::getInstance()->sendDataRequest(getAvatarId(),APT_NOTES);
-// static
-bool LLPanelAvatar::finishUnfreeze(const LLSD& notification, const LLSD& response)
-{
- S32 option = LLNotification::getSelectedOption(notification, response);
- std::string text = response["message"].asString();
- if (option == 0)
+ const LLRelationship* relation = LLAvatarTracker::instance().getBuddyInfo(getAvatarId());
+ if(relation)
{
- LLUUID avatar_id = notification["payload"]["avatar_id"].asUUID();
- LLMessageSystem* msg = gMessageSystem;
-
- msg->newMessageFast(_PREHASH_GodKickUser);
- msg->nextBlockFast(_PREHASH_UserInfo);
- msg->addUUIDFast(_PREHASH_GodID, gAgent.getID() );
- msg->addUUIDFast(_PREHASH_GodSessionID, gAgent.getSessionID());
- msg->addUUIDFast(_PREHASH_AgentID, avatar_id );
- msg->addU32("KickFlags", KICK_FLAGS_UNFREEZE );
- msg->addStringFast(_PREHASH_Reason, text );
- gAgent.sendReliableMessage();
+ childSetEnabled("status_check",TRUE);
+ childSetEnabled("map_check",TRUE);
+ childSetEnabled("objects_check",TRUE);
+
+ S32 rights = relation->getRightsGrantedTo();
+
+ childSetValue("status_check",LLRelationship::GRANT_ONLINE_STATUS & rights ? TRUE : FALSE);
+ childSetValue("map_check",LLRelationship::GRANT_MAP_LOCATION & rights ? TRUE : FALSE);
+ childSetValue("objects_check",LLRelationship::GRANT_MODIFY_OBJECTS & rights ? TRUE : FALSE);
}
- return false;
}
-// static
-void LLPanelAvatar::onClickCSR(void* userdata)
+BOOL LLPanelAvatarNotes::postBuild()
{
- LLPanelAvatar* self = (LLPanelAvatar*)userdata;
- if (!self) return;
-
- LLNameEditor* name_edit = self->getChild<LLNameEditor>("name");
- if (!name_edit) return;
+ childSetCommitCallback("status_check",boost::bind(&LLPanelAvatarNotes::onCommitRights,this),NULL);
+ childSetCommitCallback("map_check",boost::bind(&LLPanelAvatarNotes::onCommitRights,this),NULL);
+ childSetCommitCallback("objects_check",boost::bind(&LLPanelAvatarNotes::onCommitRights,this),NULL);
- std::string name = name_edit->getText();
- if (name.empty()) return;
-
- std::string url = "http://csr.lindenlab.com/agent/";
-
- // slow and stupid, but it's late
- S32 len = name.length();
- for (S32 i = 0; i < len; i++)
+ childSetCommitCallback("add_friend",(boost::bind(&LLPanelAvatarProfile::onAddFriend,this)),NULL);
+ childSetCommitCallback("im",(boost::bind(&LLPanelAvatarProfile::onIM,this)),NULL);
+// childSetCommitCallback("call",(boost::bind(&LLPanelAvatarProfile::onCallButtonClick,this)));
+ childSetCommitCallback("teleport",(boost::bind(&LLPanelAvatarProfile::onTeleport,this)),NULL);
+// childSetCommitCallback("share",(boost::bind(&LLPanelAvatarProfile::onShareButtonClick,this)));
+
+ LLTextEditor* te = getChild<LLTextEditor>("notes_edit",TRUE,FALSE);
+ if(te)
{
- if (name[i] == ' ')
- {
- url += "%20";
- }
- else
- {
- url += name[i];
- }
+ te->setCommitCallback(boost::bind(&LLPanelAvatarNotes::onCommitNotes,this));
+ te->setCommitOnFocusLost(TRUE);
}
-
- LLWeb::loadURL(url);
-}
-
-void* LLPanelAvatar::createPanelAvatarSecondLife(void* data)
-{
- LLPanelAvatar* self = (LLPanelAvatar*)data;
- self->mPanelSecondLife = new LLPanelAvatarSecondLife(self);
- return self->mPanelSecondLife;
+ return TRUE;
}
-void* LLPanelAvatar::createPanelAvatarWeb(void* data)
+void LLPanelAvatarNotes::onCommitNotes()
{
- LLPanelAvatar* self = (LLPanelAvatar*)data;
- self->mPanelWeb = new LLPanelAvatarWeb(self);
- return self->mPanelWeb;
+ std::string notes = childGetValue("notes_edit").asString();
+ LLAvatarPropertiesProcessor::getInstance()-> sendNotes(getAvatarId(),notes);
}
-void* LLPanelAvatar::createPanelAvatarInterests(void* data)
+void LLPanelAvatarNotes::onCommitRights()
{
- LLPanelAvatar* self = (LLPanelAvatar*)data;
- self->mPanelAdvanced = new LLPanelAvatarAdvanced(self);
- return self->mPanelAdvanced;
-}
+ S32 rights = 0;
+ if(childGetValue("status_check").asBoolean())
+ rights |= LLRelationship::GRANT_ONLINE_STATUS;
+ if(childGetValue("map_check").asBoolean())
+ rights |= LLRelationship::GRANT_MAP_LOCATION;
+ if(childGetValue("objects_check").asBoolean())
+ rights |= LLRelationship::GRANT_MODIFY_OBJECTS;
-void* LLPanelAvatar::createPanelAvatarPicks(void* data)
-{
- LLPanelAvatar* self = (LLPanelAvatar*)data;
- self->mPanelPicks = new LLPanelAvatarPicks(self);
- return self->mPanelPicks;
+ LLAvatarPropertiesProcessor::getInstance()->sendFriendRights(getAvatarId(),rights);
}
-void* LLPanelAvatar::createPanelAvatarClassified(void* data)
+void LLPanelAvatarNotes::clear()
{
- LLPanelAvatar* self = (LLPanelAvatar*)data;
- self->mPanelClassified = new LLPanelAvatarClassified(self);
- return self->mPanelClassified;
-}
+ childSetValue("notes_edit",LLStringUtil::null);
-void* LLPanelAvatar::createPanelAvatarFirstLife(void* data)
-{
- LLPanelAvatar* self = (LLPanelAvatar*)data;
- self->mPanelFirstLife = new LLPanelAvatarFirstLife(self);
- return self->mPanelFirstLife;
+ childSetEnabled("status_check",FALSE);
+ childSetEnabled("map_check",FALSE);
+ childSetEnabled("objects_check",FALSE);
}
-void* LLPanelAvatar::createPanelAvatarNotes(void* data)
+void LLPanelAvatarNotes::processProperties(void* data, EAvatarProcessorType type)
{
- LLPanelAvatar* self = (LLPanelAvatar*)data;
- self->mPanelNotes = new LLPanelAvatarNotes(self);
- return self->mPanelNotes;
+ if(APT_NOTES == type)
+ {
+ LLAvatarNotes* avatar_notes = static_cast<LLAvatarNotes*>(data);
+ if(avatar_notes && getAvatarId() == avatar_notes->target_id)
+ {
+ childSetValue("notes_edit",avatar_notes->notes);
+ childSetEnabled("notes edit", true);
+
+ LLAvatarPropertiesProcessor::getInstance()->removeObserver(getAvatarId(),this);
+ }
+ }
}
diff --git a/indra/newview/llpanelavatar.h b/indra/newview/llpanelavatar.h
index 8c7112197f..f72eb1990d 100644
--- a/indra/newview/llpanelavatar.h
+++ b/indra/newview/llpanelavatar.h
@@ -37,10 +37,12 @@
#include "v3dmath.h"
#include "lluuid.h"
#include "llwebbrowserctrl.h"
+
#include "llavatarpropertiesprocessor.h"
class LLButton;
class LLCheckBoxCtrl;
+class LLComboBox;
class LLDropTarget;
class LLInventoryItem;
class LLLineEditor;
@@ -57,6 +59,12 @@ class LLViewerObject;
class LLMessageSystem;
class LLIconCtrl;
class LLWebBrowserCtrl;
+class LLVector3d;
+class LLFloaterReg;
+
+class LLPanelMeProfile;
+class LLPanelPick;
+class LLAgent;
enum EOnlineStatus
{
@@ -64,322 +72,127 @@ enum EOnlineStatus
ONLINE_STATUS_YES = 1
};
-// Base class for all sub-tabs inside the avatar profile. Many of these
-// panels need to keep track of the parent panel (to get the avatar id)
-// and only request data from the database when they are first drawn. JC
-class LLPanelAvatarTab : public LLPanel
-{
-public:
- LLPanelAvatarTab(LLPanelAvatar* panel_avatar);
-
- // Calls refresh() once per frame when panel is visible
- /*virtual*/ void draw();
-
- LLPanelAvatar* getPanelAvatar() const { return mPanelAvatar; }
-
- void setDataRequested(bool requested) { mDataRequested = requested; }
- bool isDataRequested() const { return mDataRequested; }
-
- // If the data for this tab has not yet been requested,
- // send the request. Used by tabs that are filled in only
- // when they are first displayed.
- // type is one of "avatarnotesrequest", "avatarpicksrequest",
- // or "avatarclassifiedsrequest"
- void sendAvatarProfileRequestIfNeeded(const std::string& method);
-
-private:
- LLPanelAvatar* mPanelAvatar;
- bool mDataRequested;
-};
-
-class LLPanelAvatarFirstLife : public LLPanelAvatarTab
+class LLPanelProfileTab
+ : public LLPanel
+ , public LLAvatarPropertiesObserver
{
public:
- LLPanelAvatarFirstLife(LLPanelAvatar* panel_avatar);
-
- /*virtual*/ BOOL postBuild(void);
-
- void enableControls(BOOL own_avatar);
-};
-
-
-class LLPanelAvatarSecondLife
-: public LLPanelAvatarTab
-{
-public:
- LLPanelAvatarSecondLife(LLPanelAvatar* panel_avatar );
-
- /*virtual*/ BOOL postBuild(void);
- /*virtual*/ void refresh();
-
- static void onClickImage( void *userdata);
- static void onClickFriends( void *userdata);
- static void onDoubleClickGroup(void* userdata);
- static void onClickPublishHelp(void *userdata);
- static void onClickPartnerHelp(void *userdata);
- static bool onClickPartnerHelpLoadURL(const LLSD& notification, const LLSD& response);
- static void onClickPartnerInfo(void *userdata);
-
- // Clear out the controls anticipating new network data.
- void clearControls();
- void enableControls(BOOL own_avatar);
- void updateOnlineText(BOOL online, BOOL have_calling_card);
- void updatePartnerName();
-
- void setPartnerID(LLUUID id) { mPartnerID = id; }
-private:
- LLUUID mPartnerID;
-};
-
+ LLPanelProfileTab(const LLUUID& avatar_id);
+ LLPanelProfileTab(const Params& params );
-// WARNING! The order of the inheritance here matters!! Do not change. - KLW
-class LLPanelAvatarWeb :
- public LLPanelAvatarTab
- , public LLWebBrowserCtrlObserver
-{
-public:
- LLPanelAvatarWeb(LLPanelAvatar* panel_avatar);
- /*virtual*/ ~LLPanelAvatarWeb();
- /*virtual*/ BOOL postBuild(void);
+ void setAvatarId(const LLUUID& avatar_id);
- /*virtual*/ void refresh();
+ const LLUUID& getAvatarId(){return mAvatarId;}
- void enableControls(BOOL own_avatar);
-
- void setWebURL(std::string url);
-
- void load(std::string url);
- static void onURLKeystroke(LLLineEditor* editor, void* data);
- static void onCommitLoad(LLUICtrl* ctrl, void* data);
- static void onCommitURL(LLUICtrl* ctrl, void* data);
- static void onClickWebProfileHelp(void *);
+ virtual void updateData() = 0;
+
+ virtual void onActivate(const LLUUID& id);
- // browser observer impls
- virtual void onStatusTextChange( const EventType& eventIn );
- virtual void onLocationChange( const EventType& eventIn );
+ typedef enum e_profile_type
+ {
+ PT_UNKNOWN,
+ PT_OWN,
+ PT_OTHER
+ } EProfileType;
-private:
- std::string mHome;
- std::string mNavigateTo;
- LLWebBrowserCtrl* mWebBrowser;
-};
+ virtual void onAddFriend();
+ virtual void onIM();
-class LLPanelAvatarAdvanced : public LLPanelAvatarTab
-{
-public:
- LLPanelAvatarAdvanced(LLPanelAvatar* panel_avatar);
+ virtual void onTeleport();
- /*virtual*/ BOOL postBuild(void);
+ virtual void clear(){};
- void enableControls(BOOL own_avatar);
- void setWantSkills(U32 want_to_mask, const std::string& want_to_text,
- U32 skills_mask, const std::string& skills_text,
- const std::string& languages_text);
- void getWantSkills(U32* want_to_mask, std::string& want_to_text,
- U32* skills_mask, std::string& skills_text,
- std::string& languages_text);
+protected:
+ virtual ~LLPanelProfileTab();
+ void setProfileType();
-private:
- S32 mWantToCount;
- S32 mSkillsCount;
- LLCheckBoxCtrl *mWantToCheck[8];
- LLLineEditor *mWantToEdit;
- LLCheckBoxCtrl *mSkillsCheck[8];
- LLLineEditor *mSkillsEdit;
+protected:
+ e_profile_type mProfileType;
+ LLUUID mAvatarId;
};
-
-class LLPanelAvatarNotes : public LLPanelAvatarTab
+class LLPanelAvatarProfile
+ : public LLPanelProfileTab
{
public:
- LLPanelAvatarNotes(LLPanelAvatar* panel_avatar);
+ LLPanelAvatarProfile(const LLUUID& avatar_id = LLUUID::null);
+ LLPanelAvatarProfile(const Params& params );
+ ~LLPanelAvatarProfile();
+
+ static void* create(void* data);
- /*virtual*/ BOOL postBuild(void);
+ /*virtual*/ void processProperties(void* data, EAvatarProcessorType type);
- /*virtual*/ void refresh();
+ void updateData();
- void clearControls();
+ void clear();
- static void onCommitNotes(LLUICtrl* field, void* userdata);
-};
-
-
-class LLPanelAvatarClassified : public LLPanelAvatarTab
-{
-public:
- LLPanelAvatarClassified(LLPanelAvatar* panel_avatar);
+ virtual void clearControls();
/*virtual*/ BOOL postBuild(void);
+ void onOpen(const LLSD& key);
- /*virtual*/ void refresh();
+ void onAddFriendButtonClick();
- // If can close, return TRUE. If cannot close, pop save/discard dialog
- // and return FALSE.
- BOOL canClose();
+ void onIMButtonClick();
- void apply();
+ void onCallButtonClick();
- BOOL titleIsValid();
+ void onTeleportButtonClick();
- // Delete all the classified sub-panels from the tab container
- void deleteClassifiedPanels();
-
- // Unpack the outline of classified for this avatar (count, names, but not
- // actual data).
- void processAvatarClassifiedReply(LLMessageSystem* msg, void**);
+ void onShareButtonClick();
private:
- static void onClickNew(void* data);
- static void onClickDelete(void* data);
-
- bool callbackDelete(const LLSD& notification, const LLSD& response);
- bool callbackNew(const LLSD& notification, const LLSD& response);
-};
-
-
-class LLPanelAvatarPicks : public LLPanelAvatarTab
-{
-public:
- LLPanelAvatarPicks(LLPanelAvatar* panel_avatar);
+ bool isOwnProfile(){return PT_OWN == mProfileType;}
+ bool isEditMode(){return mEditMode;}
+ void updateChildrenList();
+ void onStatusChanged();
+ void onStatusMessageChanged();
+ void setCaptionText(const LLAvatarData* avatar_data);
+ void scrollToTop();
- /*virtual*/ BOOL postBuild(void);
- /*virtual*/ void refresh();
-
- // Delete all the pick sub-panels from the tab container
- void deletePickPanels();
-
- // Unpack the outline of picks for this avatar (count, names, but not
- // actual data).
- void processAvatarPicksReply(LLMessageSystem* msg, void**);
- void processAvatarClassifiedReply(LLMessageSystem* msg, void**);
+protected:
+ bool mEditMode;
private:
- static void onClickNew(void* data);
- static void onClickDelete(void* data);
-
- bool callbackDelete(const LLSD& notification, const LLSD& response);
+ bool mUpdated;
+ LLComboBox * mStatusCombobox;
+ LLLineEditor * mStatusMessage;
};
-class LLPanelAvatar : public LLPanel, public LLAvatarPropertiesObserver
+class LLPanelAvatarNotes
+ : public LLPanelProfileTab
{
public:
- LLPanelAvatar(BOOL allow_edit);
- /*virtual*/ ~LLPanelAvatar();
+ LLPanelAvatarNotes(const LLUUID& id = LLUUID::null);
+ LLPanelAvatarNotes(const Params& params );
+ ~LLPanelAvatarNotes();
- /*virtual*/ BOOL postBuild(void);
+ static void* create(void* data);
- // If can close, return TRUE. If cannot close, pop save/discard dialog
- // and return FALSE.
- BOOL canClose();
+ BOOL postBuild(void);
- void setAvatar(LLViewerObject *avatarp);
+ void onCommitRights();
- // Fill in the avatar ID and handle some field fill-in, as well as
- // button enablement.
- // Pass one of the ONLINE_STATUS_foo constants above.
- void setAvatarID(const LLUUID &avatar_id, const std::string &name, EOnlineStatus online_status);
+ void onCommitNotes();
- void setOnlineStatus(EOnlineStatus online_status);
+ void clear();
- const LLUUID& getAvatarID() const { return mAvatarID; }
-
- void resetGroupList();
+ void processProperties(void* data, EAvatarProcessorType type);
- void sendAvatarStatisticsRequest();
+ void updateData();
- void sendAvatarPropertiesRequest();
- void sendAvatarPropertiesUpdate();
-
- void sendAvatarNotesRequest();
- void sendAvatarNotesUpdate();
-
- void sendAvatarPicksRequest();
-
- void selectTab(S32 tabnum);
- void selectTabByName(std::string tab_name);
-
- BOOL haveData() { return mHaveProperties && mHaveStatistics; }
- BOOL isEditable() const { return mAllowEdit; }
-
- // LLAvatarPropertiesProcessor observer trigger
- virtual void processAvatarProperties(const LLAvatarData& avatar_data);
-
- static void processAvatarInterestsReply(LLMessageSystem *msg, void **);
- static void processAvatarGroupsReply(LLMessageSystem* msg, void**);
- static void processAvatarNotesReply(LLMessageSystem *msg, void **);
- static void processAvatarPicksReply(LLMessageSystem *msg, void **);
- static void processAvatarClassifiedReply(LLMessageSystem *msg, void **);
-
- static void onClickTrack( void *userdata);
- static void onClickIM( void *userdata);
- static void onClickOfferTeleport( void *userdata);
- static void onClickPay( void *userdata);
- static void onClickAddFriend(void* userdata);
- static void onClickOK( void *userdata);
- static void onClickCancel( void *userdata);
- static void onClickKick( void *userdata);
- static void onClickFreeze( void *userdata);
- static void onClickUnfreeze(void *userdata);
- static void onClickCSR( void *userdata);
- static void onClickMute( void *userdata);
-
-private:
- void enableOKIfReady();
-
- static bool finishKick(const LLSD& notification, const LLSD& response);
- static bool finishFreeze(const LLSD& notification, const LLSD& response);
- static bool finishUnfreeze(const LLSD& notification, const LLSD& response);
-
- static void showProfileCallback(S32 option, void *userdata);
+protected:
+};
- static void* createPanelAvatar(void* data);
- static void* createFloaterAvatarInfo(void* data);
- static void* createPanelAvatarSecondLife(void* data);
- static void* createPanelAvatarWeb(void* data);
- static void* createPanelAvatarInterests(void* data);
- static void* createPanelAvatarPicks(void* data);
- static void* createPanelAvatarClassified(void* data);
- static void* createPanelAvatarFirstLife(void* data);
- static void* createPanelAvatarNotes(void* data);
-public:
- LLPanelAvatarSecondLife* mPanelSecondLife;
- LLPanelAvatarAdvanced* mPanelAdvanced;
- LLPanelAvatarClassified* mPanelClassified;
- LLPanelAvatarPicks* mPanelPicks;
- LLPanelAvatarNotes* mPanelNotes;
- LLPanelAvatarFirstLife* mPanelFirstLife;
- LLPanelAvatarWeb* mPanelWeb;
-
- LLDropTarget* mDropTarget;
-
- // Teen users are not allowed to see or enter data into the first life page,
- // or their own about/interests text entry fields.
- static BOOL sAllowFirstLife;
-
-private:
- LLUUID mAvatarID; // for which avatar is this window?
- BOOL mIsFriend; // Are we friends?
- BOOL mHaveProperties;
- BOOL mHaveStatistics;
- // only update note if data received from database and
- // note is changed from database version
- bool mHaveNotes;
- std::string mLastNotes;
- LLTabContainer* mTab;
- BOOL mAllowEdit;
-
- typedef std::list<LLPanelAvatar*> panel_list_t;
- static panel_list_t sAllPanels;
-};
// helper funcs
void add_left_label(LLPanel *panel, const std::string& name, S32 y);
-
#endif // LL_LLPANELAVATAR_H
diff --git a/indra/newview/llpanelclassified.cpp b/indra/newview/llpanelclassified.cpp
index b606aef06d..c328bcb7f9 100644
--- a/indra/newview/llpanelclassified.cpp
+++ b/indra/newview/llpanelclassified.cpp
@@ -748,22 +748,18 @@ void LLPanelClassified::refresh()
mDescEditor->setEnabled(is_self);
//mPriceEditor->setEnabled(is_self);
mCategoryCombo->setEnabled(is_self);
+ mMatureCombo->setEnabled(is_self);
if( is_self )
{
if( mMatureCombo->getCurrentIndex() == 0 )
{
// It's a new panel.
- // PG regions must have PG classifieds. AO must have mature.
- // Only Mature can be PG or Mature.
+ // PG regions should have PG classifieds. AO should have mature.
- constrainAccessCombo();
+ setDefaultAccessCombo();
}
}
- else
- {
- mMatureCombo->setEnabled( FALSE );
- }
if (mAutoRenewCheck)
{
@@ -1001,7 +997,7 @@ void LLPanelClassified::onClickSet(void* data)
self->mLocationEditor->setText(location_text);
self->mLocationChanged = true;
- self->constrainAccessCombo();
+ self->setDefaultAccessCombo();
// Set this to null so it updates on the next save.
self->mParcelID.setNull();
@@ -1131,35 +1127,22 @@ void LLFloaterPriceForListing::buttonCore(S32 button, void* data)
}
}
-void LLPanelClassified::constrainAccessCombo()
+void LLPanelClassified::setDefaultAccessCombo()
{
- // Location changed.
- // PG regions must have PG classifieds. AO must have mature.
- // Only Mature can be PG or Mature.
-
- bool pref_visible = TRUE;
+ // PG regions should have PG classifieds. AO should have mature.
- S32 force_access = MATURE_UNDEFINED;
LLViewerRegion *regionp = gAgent.getRegion();
switch( regionp->getSimAccess() )
{
case SIM_ACCESS_PG:
- force_access = PG_CONTENT;
+ mMatureCombo->setCurrentByIndex(PG_CONTENT);
break;
case SIM_ACCESS_ADULT:
- force_access = MATURE_CONTENT;
+ mMatureCombo->setCurrentByIndex(MATURE_CONTENT);
break;
default:
// You are free to move about the cabin.
break;
}
-
- if ( force_access != MATURE_UNDEFINED )
- {
- pref_visible = FALSE;
- mMatureCombo->setCurrentByIndex(force_access);
- }
-
- mMatureCombo->setEnabled(pref_visible);
}
diff --git a/indra/newview/llpanelclassified.h b/indra/newview/llpanelclassified.h
index 68a5a33321..417eddf460 100644
--- a/indra/newview/llpanelclassified.h
+++ b/indra/newview/llpanelclassified.h
@@ -120,7 +120,7 @@ protected:
static void focusReceived(LLFocusableElement* ctrl, void* data);
static void onCommitAny(LLUICtrl* ctrl, void* data);
- void constrainAccessCombo(); // Force AO and PG regions to proper classified access
+ void setDefaultAccessCombo(); // Default AO and PG regions to proper classified access
BOOL checkDirty(); // Update and return mDirty
diff --git a/indra/newview/llpanelgroupgeneral.cpp b/indra/newview/llpanelgroupgeneral.cpp
index da87b4d1a0..d495373cc4 100644
--- a/indra/newview/llpanelgroupgeneral.cpp
+++ b/indra/newview/llpanelgroupgeneral.cpp
@@ -37,7 +37,6 @@
#include "lluictrlfactory.h"
#include "llagent.h"
#include "roles_constants.h"
-#include "llfloateravatarinfo.h"
#include "llfloatergroupinfo.h"
// UI elements
@@ -45,6 +44,7 @@
#include "llcheckboxctrl.h"
#include "llcombobox.h"
#include "lldbstrings.h"
+#include "llfriendactions.h"
#include "lllineeditor.h"
#include "llnamebox.h"
#include "llnamelistctrl.h"
@@ -375,7 +375,7 @@ void LLPanelGroupGeneral::openProfile(void* data)
LLScrollListItem* selected = self->mListVisibleMembers->getFirstSelected();
if (selected)
{
- LLFloaterAvatarInfo::showFromDirectory( selected->getUUID() );
+ LLFriendActions::showProfile(selected->getUUID());
}
}
}
diff --git a/indra/newview/llpanelgrouplandmoney.cpp b/indra/newview/llpanelgrouplandmoney.cpp
index afc5873415..ea092645e7 100644
--- a/indra/newview/llpanelgrouplandmoney.cpp
+++ b/indra/newview/llpanelgrouplandmoney.cpp
@@ -402,12 +402,6 @@ void LLPanelGroupLandMoney::impl::processGroupLand(LLMessageSystem* msg)
//if ( !gAgent.hasPowerInGroup(mGroupID, GP_LAND_VIEW_OWNED) ) return;
if (!gAgent.isInGroup(mGroupID)) return;
- //we updated more than just the available area special block
- if ( count > 1)
- {
- mMapButtonp->setEnabled(TRUE);
- }
-
std::string name;
std::string desc;
S32 actual_area;
@@ -555,6 +549,7 @@ void LLPanelGroupLandMoney::activate()
mImplementationp->setYourMaxContributionTextBox(max_avail);
}
+ mImplementationp->mMapButtonp->setEnabled(false);
update(GC_ALL);
}
@@ -645,6 +640,12 @@ BOOL LLPanelGroupLandMoney::postBuild()
mImplementationp->mGroupParcelsp =
getChild<LLScrollListCtrl>("group_parcel_list");
+ if ( mImplementationp->mGroupParcelsp )
+ {
+ mImplementationp->mGroupParcelsp->setCommitCallback(boost::bind(&LLButton::setEnabled, mImplementationp->mMapButtonp, true));
+ mImplementationp->mGroupParcelsp->setCommitOnSelectionChange(true);
+ }
+
mImplementationp->mCantViewParcelsText = getString("cant_view_group_land_text");
mImplementationp->mCantViewAccountsText = getString("cant_view_group_accounting_text");
@@ -663,11 +664,6 @@ BOOL LLPanelGroupLandMoney::postBuild()
mImplementationp->mGroupOverLimitIconp->setVisible(FALSE);
}
- if ( mImplementationp->mMapButtonp )
- {
- mImplementationp->mMapButtonp->setEnabled(FALSE);
- }
-
if ( !can_view )
{
if ( mImplementationp->mGroupParcelsp )
diff --git a/indra/newview/llpanelgroupnotices.cpp b/indra/newview/llpanelgroupnotices.cpp
index acf6bc0dd0..201cf5a023 100644
--- a/indra/newview/llpanelgroupnotices.cpp
+++ b/indra/newview/llpanelgroupnotices.cpp
@@ -73,8 +73,10 @@ class LLGroupDropTarget : public LLView
public:
struct Params : public LLInitParam::Block<Params, LLView::Params>
{
- Mandatory<LLPanelGroupNotices*> panel;
- Mandatory<LLUUID> group_id;
+ // *NOTE: These parameters logically Mandatory, but are not
+ // specified in XML files, hence Optional
+ Optional<LLPanelGroupNotices*> panel;
+ Optional<LLUUID> group_id;
Params()
: panel("panel"),
group_id("group_id")
@@ -103,7 +105,7 @@ protected:
LLUUID mGroupID;
};
-static LLRegisterWidget<LLGroupDropTarget> r("group_drop_target");
+static LLDefaultWidgetRegistry::Register<LLGroupDropTarget> r("group_drop_target");
LLGroupDropTarget::LLGroupDropTarget(const LLGroupDropTarget::Params& p)
: LLView(p),
@@ -196,8 +198,9 @@ std::string build_notice_date(const U32& the_time)
time(&t);
}
-
- std::string dateStr = LLTrans::getString("GroupNotifyDateStr");
+ std::string dateStr = "["+LLTrans::getString("LTimeMthNum")+"]/["
+ +LLTrans::getString("LTimeDay")+"]/["
+ +LLTrans::getString("LTimeYear")+"]";
LLSD substitution;
substitution["datetime"] = (S32) t;
LLStringUtil::format (dateStr, substitution);
diff --git a/indra/newview/llpanelgrouproles.cpp b/indra/newview/llpanelgrouproles.cpp
index 1f50d2ef04..9e537be425 100644
--- a/indra/newview/llpanelgrouproles.cpp
+++ b/indra/newview/llpanelgrouproles.cpp
@@ -36,8 +36,8 @@
#include "llagent.h"
#include "llbutton.h"
-#include "llfloateravatarinfo.h"
#include "llfloatergroupinvite.h"
+#include "llfriendactions.h"
#include "lliconctrl.h"
#include "lllineeditor.h"
#include "llnamelistctrl.h"
@@ -1289,7 +1289,7 @@ void LLPanelGroupMembersSubTab::handleMemberDoubleClick()
LLScrollListItem* selected = mMembersList->getFirstSelected();
if (selected)
{
- LLFloaterAvatarInfo::showFromDirectory( selected->getUUID() );
+ LLFriendActions::showProfile(selected->getUUID());
}
}
diff --git a/indra/newview/llpanelgrouproles.h b/indra/newview/llpanelgrouproles.h
index 8290a81ff4..3ceaae1313 100644
--- a/indra/newview/llpanelgrouproles.h
+++ b/indra/newview/llpanelgrouproles.h
@@ -42,6 +42,7 @@ class LLPanelGroupRolesSubTab;
class LLPanelGroupActionsSubTab;
class LLScrollListCtrl;
class LLScrollListItem;
+class LLTextEditor;
// Forward declare for friend usage.
//virtual BOOL LLPanelGroupSubTab::postBuildSubTab(LLView*);
diff --git a/indra/newview/llpanellandmarks.cpp b/indra/newview/llpanellandmarks.cpp
new file mode 100644
index 0000000000..24b4082630
--- /dev/null
+++ b/indra/newview/llpanellandmarks.cpp
@@ -0,0 +1,252 @@
+/**
+ * @file llpanellandmarks.cpp
+ * @brief Landmarks tab for Side Bar "Places" panel
+ *
+ * $LicenseInfo:firstyear=2009&license=viewergpl$
+ *
+ * Copyright (c) 2001-2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llfloaterreg.h"
+#include "lllandmark.h"
+
+#include "llfloaterworldmap.h"
+#include "lllandmarklist.h"
+#include "llpanellandmarks.h"
+#include "llsidetray.h"
+#include "lltabcontainer.h"
+#include "llworldmap.h"
+
+// Not yet implemented; need to remove buildPanel() from constructor when we switch
+//static LLRegisterPanelClassWrapper<LLLandmarksPanel> t_landmarks("panel_landmarks");
+
+LLLandmarksPanel::LLLandmarksPanel()
+ : LLPanelPlacesTab(),
+ mInventoryPanel(NULL)
+{
+ mSavedFolderState = new LLSaveFolderState();
+ mSavedFolderState->setApply(FALSE);
+
+ LLUICtrlFactory::getInstance()->buildPanel(this, "panel_landmarks.xml");
+}
+
+LLLandmarksPanel::~LLLandmarksPanel()
+{
+ delete mSavedFolderState;
+}
+
+BOOL LLLandmarksPanel::postBuild()
+{
+ if (!gInventory.isInventoryUsable())
+ return FALSE;
+
+ mInventoryPanel = getChild<LLInventoryPanel>("landmarks_list");
+ mInventoryPanel->setFilterTypes(0x1 << LLInventoryType::IT_LANDMARK);
+ mInventoryPanel->setShowFolderState(LLInventoryFilter::SHOW_NON_EMPTY_FOLDERS);
+ mInventoryPanel->openDefaultFolderForType(LLAssetType::AT_LANDMARK);
+ mInventoryPanel->setSelectCallback(boost::bind(&LLLandmarksPanel::onSelectionChange, this, _1, _2));
+
+ LLFolderView* root_folder = mInventoryPanel->getRootFolder();
+ root_folder->setReshapeCallback(boost::bind(&LLLandmarksPanel::onSelectionChange, this, _1, _2));
+
+ mActionBtn = getChild<LLButton>("selector");
+ root_folder->addChild(mActionBtn);
+ mActionBtn->setEnabled(TRUE);
+ childSetAction("selector", boost::bind(&LLLandmarksPanel::onSelectorButtonClicked, this), this);
+
+ return TRUE;
+}
+
+// virtual
+void LLLandmarksPanel::onSearchEdit(const std::string& string)
+{
+ if (string == "")
+ {
+ mInventoryPanel->setFilterSubString(LLStringUtil::null);
+
+ // re-open folders that were initially open
+ mSavedFolderState->setApply(TRUE);
+ mInventoryPanel->getRootFolder()->applyFunctorRecursively(*mSavedFolderState);
+ LLOpenFoldersWithSelection opener;
+ mInventoryPanel->getRootFolder()->applyFunctorRecursively(opener);
+ mInventoryPanel->getRootFolder()->scrollToShowSelection();
+ }
+
+ gInventory.startBackgroundFetch();
+
+ if (mInventoryPanel->getFilterSubString().empty() && string.empty())
+ {
+ // current filter and new filter empty, do nothing
+ return;
+ }
+
+ // save current folder open state if no filter currently applied
+ if (mInventoryPanel->getRootFolder()->getFilterSubString().empty())
+ {
+ mSavedFolderState->setApply(FALSE);
+ mInventoryPanel->getRootFolder()->applyFunctorRecursively(*mSavedFolderState);
+ }
+
+ // set new filter string
+ mInventoryPanel->setFilterSubString(string);
+}
+
+// virtual
+void LLLandmarksPanel::onShowOnMap()
+{
+ LLFolderViewItem* current_item = mInventoryPanel->getRootFolder()->getCurSelectedItem();
+ if (!current_item)
+ return;
+
+ LLFolderViewEventListener* listenerp = current_item->getListener();
+ if (listenerp->getInventoryType() != LLInventoryType::IT_LANDMARK)
+ return;
+
+ LLInventoryItem* inventory_item = gInventory.getItem(listenerp->getUUID());
+ if (!inventory_item)
+ return;
+
+ LLLandmark* landmark = gLandmarkList.getAsset(inventory_item->getAssetUUID());
+ if (!landmark)
+ return;
+
+ LLVector3d landmark_global_pos;
+ if (!landmark->getGlobalPos(landmark_global_pos))
+ return;
+
+ if (!landmark_global_pos.isExactlyZero())
+ {
+ LLFloaterWorldMap::getInstance()->trackLocation(landmark_global_pos);
+ LLFloaterReg::showInstance("world_map", "center");
+ }
+}
+
+// virtual
+void LLLandmarksPanel::onTeleport()
+{
+ LLFolderViewItem* current_item = mInventoryPanel->getRootFolder()->getCurSelectedItem();
+ if (!current_item)
+ return;
+
+ LLFolderViewEventListener* listenerp = current_item->getListener();
+ if (listenerp->getInventoryType() == LLInventoryType::IT_LANDMARK)
+ {
+ listenerp->openItem();
+ }
+
+ togglePanelPlacesButtons(TRUE);
+}
+
+/*
+// virtual
+void LLLandmarksPanel::onCopySLURL()
+{
+ LLFolderViewItem* current_item = mInventoryPanel->getRootFolder()->getCurSelectedItem();
+ if (!current_item)
+ return;
+
+ LLFolderViewEventListener* listenerp = current_item->getListener();
+ if (listenerp->getInventoryType() != LLInventoryType::IT_LANDMARK)
+ return;
+
+ LLInventoryItem* inventory_item = gInventory.getItem(listenerp->getUUID());
+ if (!inventory_item)
+ return;
+
+ LLLandmark* landmark = gLandmarkList.getAsset(inventory_item->getAssetUUID());
+ if (!landmark)
+ return;
+
+ LLVector3d landmark_global_pos;
+ if (!landmark->getGlobalPos(landmark_global_pos))
+ return;
+
+ U64 new_region_handle = to_region_handle(landmark_global_pos);
+
+ LLWorldMap::url_callback_t cb = boost::bind(
+ &LLPanelPlacesTab::onRegionResponse, this,
+ landmark_global_pos, _1, _2, _3, _4);
+
+ LLWorldMap::getInstance()->sendHandleRegionRequest(new_region_handle, cb, std::string("unused"), false);
+}
+*/
+
+void LLLandmarksPanel::onSelectionChange(const std::deque<LLFolderViewItem*> &items, BOOL user_action)
+{
+ LLFolderViewItem* current_item = mInventoryPanel->getRootFolder()->getCurSelectedItem();
+ if (!current_item)
+ return;
+
+ LLFolderViewEventListener* listenerp = current_item->getListener();
+ if (listenerp->getInventoryType() == LLInventoryType::IT_LANDMARK)
+ {
+ S32 bottom = 0;
+ LLFolderViewItem* folder = current_item->getParentFolder();
+
+ while ( folder->getParentFolder() != NULL )
+ {
+ bottom += folder->getRect().mBottom;
+ folder = folder->getParentFolder();
+ }
+
+ LLRect rect = current_item->getRect();
+ LLRect btn_rect(
+ rect.mRight - mActionBtn->getRect().getWidth(),
+ bottom + rect.mTop,
+ rect.mRight,
+ bottom + rect.mBottom);
+
+ mActionBtn->setRect(btn_rect);
+
+ if (!mActionBtn->getVisible())
+ mActionBtn->setVisible(TRUE);
+
+ togglePanelPlacesButtons(TRUE);
+ }
+ else
+ {
+ if (mActionBtn->getVisible())
+ mActionBtn->setVisible(FALSE);
+
+ togglePanelPlacesButtons(FALSE);
+ }
+}
+
+void LLLandmarksPanel::onSelectorButtonClicked()
+{
+ LLFolderViewItem* cur_item = mInventoryPanel->getRootFolder()->getCurSelectedItem();
+
+ LLFolderViewEventListener* listenerp = cur_item->getListener();
+ if (listenerp->getInventoryType() == LLInventoryType::IT_LANDMARK)
+ {
+ LLSD key;
+ key["type"] = LLPanelPlaces::LANDMARK;
+ key["id"] = listenerp->getUUID();
+
+ LLSideTray::getInstance()->showPanel("panel_places", key);
+ }
+}
diff --git a/indra/newview/llpanellandmarks.h b/indra/newview/llpanellandmarks.h
new file mode 100644
index 0000000000..0f400a722e
--- /dev/null
+++ b/indra/newview/llpanellandmarks.h
@@ -0,0 +1,61 @@
+/**
+ * @file llpanellandmarks.h
+ * @brief Landmarks tab for Side Bar "Places" panel
+ * class definition
+ *
+ * $LicenseInfo:firstyear=2009&license=viewergpl$
+ *
+ * Copyright (c) 2001-2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#ifndef LL_LLPANELLANDMARKS_H
+#define LL_LLPANELLANDMARKS_H
+
+#include "llinventoryview.h"
+#include "llinventorymodel.h"
+#include "llpanelplacestab.h"
+
+class LLLandmarksPanel : public LLPanelPlacesTab
+{
+public:
+ LLLandmarksPanel();
+ virtual ~LLLandmarksPanel();
+
+ /*virtual*/ BOOL postBuild();
+ /*virtual*/ void onSearchEdit(const std::string& string);
+ /*virtual*/ void onShowOnMap();
+ /*virtual*/ void onTeleport();
+ ///*virtual*/ void onCopySLURL();
+
+ void onSelectionChange(const std::deque<LLFolderViewItem*> &items, BOOL user_action);
+ void onSelectorButtonClicked();
+
+private:
+ LLInventoryPanel* mInventoryPanel;
+ LLSaveFolderState* mSavedFolderState;
+ LLButton* mActionBtn;
+};
+
+#endif //LL_LLPANELLANDMARKS_H
diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp
index 06c78a93da..75df49e5e3 100644
--- a/indra/newview/llpanellogin.cpp
+++ b/indra/newview/llpanellogin.cpp
@@ -34,9 +34,8 @@
#include "llpanellogin.h"
-#include "llpanelgeneral.h"
-
#include "indra_constants.h" // for key and mask constants
+#include "llfloaterreg.h"
#include "llfontgl.h"
#include "llmd5.h"
#include "llsecondlifeurls.h"
@@ -49,7 +48,6 @@
#include "llcombobox.h"
#include "llcurl.h"
#include "llviewercontrol.h"
-#include "llfloaterabout.h"
#include "llfloaterpreference.h"
#include "llfocusmgr.h"
#include "lllineeditor.h"
@@ -69,8 +67,8 @@
#include "llhttpclient.h"
#include "llweb.h"
#include "llwebbrowserctrl.h"
-#include "llfloateruipreview.h"
#include "llfloaterhtml.h"
+#include "llrootview.h"
#include "llfloaterhtmlhelp.h"
#include "llfloatertos.h"
@@ -418,7 +416,7 @@ BOOL LLPanelLogin::handleKeyHere(KEY key, MASK mask)
{ // previously was "Test Floater"
if(gSavedSettings.getBOOL("QAMode"))
{
- LLFloaterUIPreview::showInstance();
+ LLFloaterReg::showInstance("ui_preview", LLSD(), TRUE);
return TRUE;
}
}
@@ -434,7 +432,7 @@ BOOL LLPanelLogin::handleKeyHere(KEY key, MASK mask)
if ( KEY_F2 == key )
{
llinfos << "Spawning floater TOS window" << llendl;
- LLFloaterTOS* tos_dialog = LLFloaterTOS::show(LLFloaterTOS::TOS_TOS,"", NULL);
+ LLFloaterTOS* tos_dialog = LLFloaterTOS::show(LLFloaterTOS::TOS_TOS,"");
tos_dialog->startModal();
return TRUE;
}
@@ -907,7 +905,7 @@ void LLPanelLogin::onClickQuit(void*)
// static
void LLPanelLogin::onClickVersion(void*)
{
- LLFloaterAbout::showInstance();
+ LLFloaterReg::showInstance("sl_about");
}
//static
diff --git a/indra/newview/llpanelpeople.cpp b/indra/newview/llpanelpeople.cpp
new file mode 100644
index 0000000000..1d7a2748cc
--- /dev/null
+++ b/indra/newview/llpanelpeople.cpp
@@ -0,0 +1,729 @@
+/**
+ * @file llpanelpeople.cpp
+ * @brief Side tray "People" panel
+ *
+ * $LicenseInfo:firstyear=2009&license=viewergpl$
+ *
+ * Copyright (c) 2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+
+// libs
+#include "llfloaterreg.h"
+#include "llmenugl.h"
+#include "llsearcheditor.h"
+#include "lltabcontainer.h"
+#include "lluictrlfactory.h"
+
+#include "llpanelpeople.h"
+
+// newview
+#include "llagent.h"
+#include "llavatarlist.h"
+#include "llcallingcard.h" // for LLAvatarTracker
+#include "llfloateravatarpicker.h"
+#include "llfloaterminiinspector.h"
+#include "llfriendactions.h"
+#include "llgroupactions.h"
+#include "llgrouplist.h"
+#include "llrecentpeople.h"
+#include "llviewercontrol.h" // for gSavedSettings
+#include "llviewermenu.h" // for gMenuHolder
+#include "llvoiceclient.h"
+#include "llworld.h"
+
+using namespace LLOldEvents;
+
+#define FRIEND_LIST_UPDATE_TIMEOUT 0.5
+#define NEARBY_LIST_UPDATE_INTERVAL 1
+#define RECENT_LIST_UPDATE_DELAY 1
+
+static LLRegisterPanelClassWrapper<LLPanelPeople> t_people("panel_people");
+
+//=============================================================================
+
+class LLPanelPeople::Updater
+{
+public:
+ typedef boost::function<bool(U32)> callback_t;
+ Updater(callback_t cb)
+ : mCallback(cb)
+ {
+ }
+ virtual ~Updater()
+ {
+ }
+ virtual void setActive(bool) {}
+protected:
+ bool updateList(U32 mask = 0)
+ {
+ return mCallback(mask);
+ }
+ callback_t mCallback;
+};
+
+class LLAvatarListUpdater : public LLPanelPeople::Updater, public LLEventTimer
+{
+public:
+ LLAvatarListUpdater(callback_t cb, F32 period)
+ : LLEventTimer(period),
+ LLPanelPeople::Updater(cb)
+ {
+ mEventTimer.stop();
+ }
+};
+
+/**
+ * Updates the friends list.
+ */
+class LLFriendListUpdater : public LLAvatarListUpdater, public LLFriendObserver
+{
+ LOG_CLASS(LLFriendListUpdater);
+public:
+ LLFriendListUpdater(callback_t cb)
+ : LLAvatarListUpdater(cb, FRIEND_LIST_UPDATE_TIMEOUT)
+ {
+ LLAvatarTracker::instance().addObserver(this);
+ // For notification when SIP online status changes.
+ LLVoiceClient::getInstance()->addObserver(this);
+ }
+ ~LLFriendListUpdater()
+ {
+ LLVoiceClient::getInstance()->removeObserver(this);
+ LLAvatarTracker::instance().removeObserver(this);
+ }
+ /*virtual*/ void setActive(bool val)
+ {
+ if (!val)
+ return;
+
+ // Perform updates until all names are loaded.
+ if (!updateList(LLFriendObserver::ADD))
+ changed(LLFriendObserver::ADD);
+ }
+ /*virtual*/ void changed(U32 mask)
+ {
+ // events can arrive quickly in bulk - we need not process EVERY one of them -
+ // so we wait a short while to let others pile-in, and process them in aggregate.
+ mEventTimer.start();
+
+ // save-up all the mask-bits which have come-in
+ mMask |= mask;
+ }
+ /*virtual*/ BOOL tick()
+ {
+ if (updateList(mMask))
+ {
+ // Got all names, stop updates.
+ mEventTimer.stop();
+ mMask = 0;
+ }
+
+ return FALSE;
+ }
+private:
+ U32 mMask;
+};
+
+/**
+ * Periodically updates the nearby people list while the Nearby tab is active.
+ */
+class LLNearbyListUpdater : public LLAvatarListUpdater
+{
+ LOG_CLASS(LLNearbyListUpdater);
+public:
+ LLNearbyListUpdater(callback_t cb)
+ : LLAvatarListUpdater(cb, NEARBY_LIST_UPDATE_INTERVAL)
+ {
+ setActive(false);
+ }
+ /*virtual*/ BOOL tick()
+ {
+ updateList();
+ return FALSE;
+ }
+ /*virtual*/ void setActive(bool val)
+ {
+ if (val)
+ {
+ // update immediately and start regular updates
+ tick();
+ mEventTimer.start();
+ }
+ else
+ {
+ // stop regular updates
+ mEventTimer.stop();
+ }
+ }
+private:
+};
+
+/**
+ * Updates the recent people list (those the agent has recently interacted with).
+ */
+class LLRecentListUpdater : public LLAvatarListUpdater
+{
+ LOG_CLASS(LLRecentListUpdater);
+public:
+ LLRecentListUpdater(callback_t cb)
+ : LLAvatarListUpdater(cb, RECENT_LIST_UPDATE_DELAY)
+ {
+ LLRecentPeople::instance().setChangedCallback(boost::bind(&LLRecentListUpdater::onRecentPeopleChanged, this));
+ }
+private:
+ /*virtual*/ BOOL tick()
+ {
+ // Update the list until we get all the names.
+ if (updateList())
+ {
+ // Got all names, stop updates.
+ mEventTimer.stop();
+ }
+
+ return FALSE;
+ }
+ void onRecentPeopleChanged()
+ {
+ if (!updateList())
+ {
+ // Some names are incomplete, schedule another update.
+ mEventTimer.start();
+ }
+ }
+};
+
+/**
+ * Updates the group list on events from LLAgent.
+ */
+class LLGroupListUpdater : public LLPanelPeople::Updater, public LLSimpleListener
+{
+ LOG_CLASS(LLGroupListUpdater);
+public:
+ LLGroupListUpdater(callback_t cb)
+ : LLPanelPeople::Updater(cb)
+ {
+ gAgent.addListener(this, "new group");
+ }
+ ~LLGroupListUpdater()
+ {
+ gAgent.removeListener(this);
+ }
+ /*virtual*/ bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+ {
+ // Why is "new group" sufficient?
+ if (event->desc() == "new group")
+ {
+ updateList();
+ return true;
+ }
+
+ return false;
+ }
+};
+
+//=============================================================================
+
+LLPanelPeople::LLPanelPeople()
+ : LLPanel(),
+ mFilterSubString(LLStringUtil::null),
+ mSearchEditor(NULL),
+ mTabContainer(NULL),
+ mFriendList(NULL),
+ mNearbyList(NULL),
+ mRecentList(NULL)
+{
+ mFriendListUpdater = new LLFriendListUpdater(boost::bind(&LLPanelPeople::onFriendListUpdate,this, _1));
+ mNearbyListUpdater = new LLNearbyListUpdater(boost::bind(&LLPanelPeople::updateNearbyList, this));
+ mRecentListUpdater = new LLRecentListUpdater(boost::bind(&LLPanelPeople::updateRecentList, this));
+ mGroupListUpdater = new LLGroupListUpdater (boost::bind(&LLPanelPeople::updateGroupList, this));
+}
+
+LLPanelPeople::~LLPanelPeople()
+{
+ delete mNearbyListUpdater;
+ delete mFriendListUpdater;
+ delete mRecentListUpdater;
+ delete mGroupListUpdater;
+
+ LLView::deleteViewByHandle(mGroupPlusMenuHandle);
+ LLView::deleteViewByHandle(mGroupMinusMenuHandle);
+}
+
+BOOL LLPanelPeople::postBuild()
+{
+ mSearchEditor = getChild<LLSearchEditor>("filter_input");
+
+ mTabContainer = getChild<LLTabContainer>("tabs");
+ mTabContainer->setCommitCallback(boost::bind(&LLPanelPeople::onTabSelected, this, _2));
+ mTabContainer->selectTabByName("friends_panel"); // must go after setting commit callback
+
+ mFriendList = getChild<LLPanel>("friends_panel")->getChild<LLAvatarList>("avatar_list");
+ mNearbyList = getChild<LLPanel>("nearby_panel")->getChild<LLAvatarList>("avatar_list");
+ mRecentList = getChild<LLPanel>("recent_panel")->getChild<LLAvatarList>("avatar_list");
+ mGroupList = getChild<LLGroupList>("group_list");
+
+ LLPanel* groups_panel = getChild<LLPanel>("groups_panel");
+ groups_panel->childSetAction("activate_btn", boost::bind(&LLPanelPeople::onActivateButtonClicked, this));
+ groups_panel->childSetAction("plus_btn", boost::bind(&LLPanelPeople::onGroupPlusButtonClicked, this));
+ groups_panel->childSetAction("minus_btn", boost::bind(&LLPanelPeople::onGroupMinusButtonClicked, this));
+
+ LLPanel* friends_panel = getChild<LLPanel>("friends_panel");
+ friends_panel->childSetAction("add_btn", boost::bind(&LLPanelPeople::onAddFriendWizButtonClicked, this));
+ friends_panel->childSetAction("del_btn", boost::bind(&LLPanelPeople::onDeleteFriendButtonClicked, this));
+
+ mFriendList->setDoubleClickCallback(boost::bind(&LLPanelPeople::onAvatarListDoubleClicked, this, mFriendList));
+ mNearbyList->setDoubleClickCallback(boost::bind(&LLPanelPeople::onAvatarListDoubleClicked, this, mNearbyList));
+ mRecentList->setDoubleClickCallback(boost::bind(&LLPanelPeople::onAvatarListDoubleClicked, this, mRecentList));
+ mFriendList->setCommitCallback(boost::bind(&LLPanelPeople::onAvatarListCommitted, this, mFriendList));
+ mNearbyList->setCommitCallback(boost::bind(&LLPanelPeople::onAvatarListCommitted, this, mNearbyList));
+ mRecentList->setCommitCallback(boost::bind(&LLPanelPeople::onAvatarListCommitted, this, mRecentList));
+
+ mGroupList->setDoubleClickCallback(boost::bind(&LLPanelPeople::onGroupInfoButtonClicked, this));
+ mGroupList->setCommitCallback(boost::bind(&LLPanelPeople::updateButtons, this));
+
+ buttonSetAction("view_profile_btn", boost::bind(&LLPanelPeople::onViewProfileButtonClicked, this));
+ buttonSetAction("add_friend_btn", boost::bind(&LLPanelPeople::onAddFriendButtonClicked, this));
+ buttonSetAction("group_info_btn", boost::bind(&LLPanelPeople::onGroupInfoButtonClicked, this));
+ buttonSetAction("chat_btn", boost::bind(&LLPanelPeople::onChatButtonClicked, this));
+ buttonSetAction("im_btn", boost::bind(&LLPanelPeople::onImButtonClicked, this));
+ buttonSetAction("call_btn", boost::bind(&LLPanelPeople::onCallButtonClicked, this));
+ buttonSetAction("teleport_btn", boost::bind(&LLPanelPeople::onTeleportButtonClicked, this));
+ buttonSetAction("share_btn", boost::bind(&LLPanelPeople::onShareButtonClicked, this));
+ buttonSetAction("more_btn", boost::bind(&LLPanelPeople::onMoreButtonClicked, this));
+
+ // Create menus.
+ LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar;
+ registrar.add("People.Group.Plus.Action", boost::bind(&LLPanelPeople::onGroupPlusMenuItemClicked, this, _2));
+ LLMenuGL* plus_menu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_group_plus.xml", gMenuHolder);
+ mGroupPlusMenuHandle = plus_menu->getHandle();
+ registrar.add("People.Group.Minus.Action", boost::bind(&LLPanelPeople::onGroupMinusMenuItemClicked, this, _2));
+ LLMenuGL* minus_menu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_group_minus.xml", gMenuHolder);
+ mGroupMinusMenuHandle = minus_menu->getHandle();
+
+ // Perform initial update.
+ mFriendListUpdater->setActive(true);
+ updateGroupList();
+ updateRecentList();
+
+ return TRUE;
+}
+
+bool LLPanelPeople::refreshFriendNames(U32 changed_mask)
+{
+ // get all buddies we know about
+ LLAvatarTracker::buddy_map_t all_buddies;
+ LLAvatarTracker::instance().copyBuddyList(all_buddies);
+
+ bool have_names = true;
+
+ if (changed_mask & (LLFriendObserver::ADD | LLFriendObserver::REMOVE | LLFriendObserver::ONLINE))
+ {
+ // *TODO: it's suboptimal to rebuild the whole list on online status change.
+
+ // convert the buddy map to vector
+ std::vector<LLUUID> avatar_ids;
+ LLAvatarTracker::buddy_map_t::const_iterator buddy_it = all_buddies.begin();
+ for (; buddy_it != all_buddies.end(); ++buddy_it)
+ avatar_ids.push_back(buddy_it->first);
+
+ // do refresh the friend list
+ if (avatar_ids.size() > 0)
+ have_names = mFriendList->updateList(avatar_ids);
+ else
+ mFriendList->setCommentText(getString("no_friends"));
+ }
+
+ return have_names;
+}
+
+bool LLPanelPeople::updateFriendList(U32 changed_mask)
+{
+ // Refresh names.
+ if (changed_mask & (LLFriendObserver::ADD | LLFriendObserver::REMOVE | LLFriendObserver::ONLINE))
+ {
+ return refreshFriendNames(changed_mask);
+ }
+
+ return true;
+}
+
+bool LLPanelPeople::updateNearbyList()
+{
+ std::vector<LLUUID> avatar_ids;
+
+ LLWorld::getInstance()->getAvatars(&avatar_ids, NULL, gAgent.getPositionGlobal(), gSavedSettings.getF32("NearMeRange"));
+
+ mNearbyList->updateList(avatar_ids);
+
+ if (avatar_ids.size() == 0)
+ mNearbyList->setCommentText(getString("no_one_near"));
+
+ return true;
+}
+
+bool LLPanelPeople::updateRecentList()
+{
+ std::vector<LLUUID> avatar_ids;
+
+ LLRecentPeople::instance().get(avatar_ids);
+
+ if (avatar_ids.size() > 0)
+ return mRecentList->updateList(avatar_ids);
+
+ mRecentList->setCommentText(getString("no_people"));
+ return true;
+}
+
+bool LLPanelPeople::updateGroupList()
+{
+ return mGroupList->updateList();
+}
+
+void LLPanelPeople::buttonSetVisible(std::string btn_name, BOOL visible)
+{
+ // Currently all bottom buttons are wrapped with layout panels.
+ // Hiding a button has no effect: the panel still occupies its space.
+ // So we have to hide the whole panel (along with its button)
+ // to free some space up.
+ LLButton* btn = getChild<LLView>("button_bar")->getChild<LLButton>(btn_name);
+ LLPanel* btn_parent = dynamic_cast<LLPanel*>(btn->getParent());
+ if (btn_parent)
+ btn_parent->setVisible(visible);
+}
+
+void LLPanelPeople::buttonSetEnabled(const std::string& btn_name, bool enabled)
+{
+ // To make sure we're referencing the right widget (a child of the button bar).
+ LLButton* button = getChild<LLView>("button_bar")->getChild<LLButton>(btn_name);
+ button->setEnabled(enabled);
+}
+
+void LLPanelPeople::buttonSetAction(const std::string& btn_name, const commit_signal_t::slot_type& cb)
+{
+ // To make sure we're referencing the right widget (a child of the button bar).
+ LLButton* button = getChild<LLView>("button_bar")->getChild<LLButton>(btn_name);
+ button->setClickedCallback(cb);
+}
+
+void LLPanelPeople::updateButtons()
+{
+ std::string cur_tab = mTabContainer->getCurrentPanel()->getName();
+ bool nearby_tab_active = (cur_tab == "nearby_panel");
+ bool friends_tab_active = (cur_tab == "friends_panel");
+ bool group_tab_active = (cur_tab == "groups_panel");
+ bool recent_tab_active = (cur_tab == "recent_panel");
+ LLUUID selected_id;
+
+ buttonSetVisible("group_info_btn", group_tab_active);
+ buttonSetVisible("chat_btn", group_tab_active);
+ buttonSetVisible("add_friend_btn", nearby_tab_active || recent_tab_active);
+ buttonSetVisible("view_profile_btn", !group_tab_active);
+ buttonSetVisible("im_btn", !group_tab_active);
+ buttonSetVisible("teleport_btn", friends_tab_active || group_tab_active);
+ buttonSetVisible("share_btn", !recent_tab_active && false); // not implemented yet
+
+ if (group_tab_active)
+ {
+ bool cur_group_active = true;
+
+ selected_id = mGroupList->getCurrentID();
+ if (selected_id.notNull())
+ cur_group_active = (gAgent.getGroupID() == selected_id);
+
+ bool item_selected = selected_id.notNull();
+ LLPanel* groups_panel = mTabContainer->getCurrentPanel();
+ groups_panel->childSetEnabled("activate_btn", !item_selected || !cur_group_active); // "none" or a non-active group selected
+ groups_panel->childSetEnabled("plus_btn", item_selected);
+ groups_panel->childSetEnabled("minus_btn", item_selected);
+ }
+ else
+ {
+ bool is_friend = true;
+ LLAvatarList* list;
+
+ // Check whether selected avatar is our friend.
+ if ((list = getActiveAvatarList()) && (selected_id = list->getCurrentID()).notNull())
+ {
+ is_friend = LLAvatarTracker::instance().getBuddyInfo(selected_id) != NULL;
+ }
+
+ childSetEnabled("add_friend_btn", !is_friend);
+ }
+
+ bool item_selected = selected_id.notNull();
+ buttonSetEnabled("teleport_btn", friends_tab_active && item_selected);
+ buttonSetEnabled("view_profile_btn", item_selected);
+ buttonSetEnabled("im_btn", item_selected);
+ buttonSetEnabled("call_btn", item_selected && false); // not implemented yet
+ buttonSetEnabled("share_btn", item_selected && false); // not implemented yet
+ buttonSetEnabled("group_info_btn", item_selected);
+ buttonSetEnabled("chat_btn", item_selected);
+}
+
+LLAvatarList* LLPanelPeople::getActiveAvatarList() const
+{
+ std::string cur_tab = mTabContainer->getCurrentPanel()->getName();
+
+ if (cur_tab == "friends_panel")
+ return mFriendList;
+ if (cur_tab == "nearby_panel")
+ return mNearbyList;
+ if (cur_tab == "recent_panel")
+ return mRecentList;
+
+ return NULL;
+}
+
+LLUUID LLPanelPeople::getCurrentItemID() const
+{
+ LLAvatarList* alist = getActiveAvatarList();
+ if (alist)
+ return alist->getCurrentID();
+ return mGroupList->getCurrentID();
+}
+
+void LLPanelPeople::showGroupMenu(LLMenuGL* menu)
+{
+ // Shows the menu at the top of the button bar.
+
+ // Calculate its coordinates.
+ // (assumes that groups panel is the current tab)
+ LLPanel* bottom_panel = mTabContainer->getCurrentPanel()->getChild<LLPanel>("bottom_panel");
+ LLPanel* parent_panel = mTabContainer->getCurrentPanel();
+ menu->arrangeAndClear();
+ S32 menu_height = menu->getRect().getHeight();
+ S32 menu_x = -2; // *HACK: compensates HPAD in showPopup()
+ S32 menu_y = bottom_panel->getRect().mTop + menu_height;
+
+ // Actually show the menu.
+ menu->buildDrawLabels();
+ menu->updateParent(LLMenuGL::sMenuContainer);
+ LLMenuGL::showPopup(parent_panel, menu, menu_x, menu_y);
+}
+
+void LLPanelPeople::onVisibilityChange(BOOL new_visibility)
+{
+ if (new_visibility == FALSE)
+ {
+ // Don't update anything while we're invisible.
+ mNearbyListUpdater->setActive(FALSE);
+ }
+ else
+ {
+ // Make the tab-container re-select current tab
+ // for onTabSelected() callback to get called.
+ // (currently this is needed to reactivate nearby list updates
+ // when we get visible)
+ mTabContainer->selectTab(mTabContainer->getCurrentPanelIndex());
+ }
+}
+
+void LLPanelPeople::onSearchEdit(const std::string& search_string)
+{
+ if (mFilterSubString == search_string)
+ return;
+
+ mFilterSubString = search_string;
+
+ LLStringUtil::toUpper(mFilterSubString);
+ LLStringUtil::trimHead(mFilterSubString);
+ mSearchEditor->setText(mFilterSubString);
+}
+
+void LLPanelPeople::onTabSelected(const LLSD& param)
+{
+ std::string tab_name = getChild<LLPanel>(param.asString())->getName();
+ mNearbyListUpdater->setActive(tab_name == "nearby_panel");
+ updateButtons();
+}
+
+void LLPanelPeople::onAvatarListDoubleClicked(LLAvatarList* list)
+{
+ LLUUID clicked_id = list->getCurrentID();
+
+ if (clicked_id.isNull())
+ return;
+
+ // Open mini-inspector for the avatar being clicked
+ LLFloaterReg::showInstance("mini_inspector", clicked_id);
+ // inspector will delete itself on close
+}
+
+void LLPanelPeople::onAvatarListCommitted(LLAvatarList* list)
+{
+ (void) list;
+ updateButtons();
+}
+
+void LLPanelPeople::onViewProfileButtonClicked()
+{
+ LLUUID id = getCurrentItemID();
+ LLFriendActions::showProfile(id);
+}
+
+void LLPanelPeople::onAddFriendButtonClicked()
+{
+ LLUUID id = getCurrentItemID();
+ if (id.notNull())
+ {
+ std::string name;
+ gCacheName->getFullName(id, name);
+ LLFriendActions::requestFriendshipDialog(id, name);
+ }
+}
+
+void LLPanelPeople::onAddFriendWizButtonClicked()
+{
+ // Show add friend wizard.
+ LLFloaterAvatarPicker* picker = LLFloaterAvatarPicker::show(onAvatarPicked, NULL, FALSE, TRUE);
+ LLFloater* root_floater = gFloaterView->getParentFloater(this);
+ if (root_floater)
+ {
+ root_floater->addDependentFloater(picker);
+ }
+}
+
+void LLPanelPeople::onDeleteFriendButtonClicked()
+{
+ LLFriendActions::removeFriendDialog(getCurrentItemID());
+}
+
+void LLPanelPeople::onGroupInfoButtonClicked()
+{
+ LLUUID group_id = getCurrentItemID();
+ if (group_id.notNull())
+ LLGroupActions::info(group_id);
+}
+
+void LLPanelPeople::onChatButtonClicked()
+{
+ LLUUID group_id = getCurrentItemID();
+ if (group_id.notNull())
+ LLGroupActions::startChat(group_id);
+}
+
+void LLPanelPeople::onImButtonClicked()
+{
+ LLUUID id = getCurrentItemID();
+ if (id.notNull())
+ {
+ LLFriendActions::startIM(id);
+ }
+}
+
+void LLPanelPeople::onActivateButtonClicked()
+{
+ LLGroupActions::activate(mGroupList->getCurrentID());
+}
+
+// static
+void LLPanelPeople::onAvatarPicked(
+ const std::vector<std::string>& names,
+ const std::vector<LLUUID>& ids,
+ void*)
+{
+ if (!names.empty() && !ids.empty())
+ LLFriendActions::requestFriendshipDialog(ids[0], names[0]);
+}
+
+bool LLPanelPeople::onFriendListUpdate(U32 changed_mask)
+{
+ bool have_names = updateFriendList(changed_mask);
+
+ // Update online status in the Recent tab.
+ // *TODO: isn't it too much to update the whole list?
+ updateRecentList();
+
+ return have_names;
+}
+
+void LLPanelPeople::onGroupPlusButtonClicked()
+{
+ LLMenuGL* plus_menu = (LLMenuGL*)mGroupPlusMenuHandle.get();
+ if (!plus_menu)
+ return;
+
+ showGroupMenu(plus_menu);
+}
+
+void LLPanelPeople::onGroupMinusButtonClicked()
+{
+ LLMenuGL* minus_menu = (LLMenuGL*)mGroupMinusMenuHandle.get();
+ if (!minus_menu)
+ return;
+
+ showGroupMenu(minus_menu);
+}
+
+void LLPanelPeople::onGroupPlusMenuItemClicked(const LLSD& userdata)
+{
+ std::string chosen_item = userdata.asString();
+
+ if (chosen_item == "join_group")
+ LLGroupActions::search();
+ else if (chosen_item == "new_group")
+ LLGroupActions::create();
+}
+
+void LLPanelPeople::onGroupMinusMenuItemClicked(const LLSD& userdata)
+{
+ std::string chosen_item = userdata.asString();
+
+ LLUUID group_id = getCurrentItemID();
+ if (chosen_item == "leave_group")
+ LLGroupActions::leave(group_id);
+ /*
+ else if (chosen_item == "delete_group")
+ ; // *TODO: how to delete a group?
+ */
+}
+
+void LLPanelPeople::onCallButtonClicked()
+{
+ // *TODO: not implemented yet
+}
+
+void LLPanelPeople::onTeleportButtonClicked()
+{
+ LLFriendActions::offerTeleport(getCurrentItemID());
+}
+
+void LLPanelPeople::onShareButtonClicked()
+{
+ // *TODO: not implemented yet
+}
+
+void LLPanelPeople::onMoreButtonClicked()
+{
+ // *TODO: not implemented yet
+}
+
+void LLPanelPeople::onOpen(const LLSD& key)
+{
+ mTabContainer->selectTab(key.asInteger());
+}
diff --git a/indra/newview/llpanelpeople.h b/indra/newview/llpanelpeople.h
new file mode 100644
index 0000000000..4d535f287c
--- /dev/null
+++ b/indra/newview/llpanelpeople.h
@@ -0,0 +1,122 @@
+/**
+ * @file llpanelpeople.h
+ * @brief Side tray "People" panel
+ *
+ * $LicenseInfo:firstyear=2009&license=viewergpl$
+ *
+ * Copyright (c) 2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#ifndef LL_LLPANELPEOPLE_H
+#define LL_LLPANELPEOPLE_H
+
+#include <llpanel.h>
+
+#include "llcallingcard.h" // for avatar tracker
+
+class LLSearchEditor;
+class LLTabContainer;
+class LLAvatarList;
+class LLGroupList;
+
+class LLPanelPeople : public LLPanel
+{
+ LOG_CLASS(LLPanelPeople);
+public:
+ LLPanelPeople();
+ virtual ~LLPanelPeople();
+
+ /*virtual*/ BOOL postBuild();
+
+ virtual void onOpen(const LLSD& key);
+
+ // internals
+ class Updater;
+
+private:
+ bool updateFriendList(U32 changed_mask);
+ bool updateNearbyList();
+ bool updateRecentList();
+ bool updateGroupList();
+ void updateButtons();
+ bool refreshFriendNames(U32 changed_mask);
+ LLAvatarList* getActiveAvatarList() const;
+ LLUUID getCurrentItemID() const;
+ void buttonSetVisible(std::string btn_name, BOOL visible);
+ void buttonSetEnabled(const std::string& btn_name, bool enabled);
+ void buttonSetAction(const std::string& btn_name, const commit_signal_t::slot_type& cb);
+ void showGroupMenu(LLMenuGL* menu);
+
+ /*virtual*/ void onVisibilityChange(BOOL new_visibility);
+
+ // UI callbacks
+ void onSearchEdit(const std::string& search_string);
+ void onTabSelected(const LLSD& param);
+ void onViewProfileButtonClicked();
+ void onAddFriendButtonClicked();
+ void onAddFriendWizButtonClicked();
+ void onDeleteFriendButtonClicked();
+ void onGroupInfoButtonClicked();
+ void onChatButtonClicked();
+ void onImButtonClicked();
+ void onCallButtonClicked();
+ void onTeleportButtonClicked();
+ void onShareButtonClicked();
+ void onMoreButtonClicked();
+ void onActivateButtonClicked();
+ void onAvatarListDoubleClicked(LLAvatarList* list);
+ void onAvatarListCommitted(LLAvatarList* list);
+ void onGroupPlusButtonClicked();
+ void onGroupMinusButtonClicked();
+ void onGroupPlusMenuItemClicked(const LLSD& userdata);
+ void onGroupMinusMenuItemClicked(const LLSD& userdata);
+
+ // misc callbacks
+ bool onFriendListUpdate(U32 changed_mask);
+ static void onAvatarPicked(
+ const std::vector<std::string>& names,
+ const std::vector<LLUUID>& ids,
+ void*);
+
+ LLSearchEditor* mSearchEditor;
+ LLTabContainer* mTabContainer;
+ LLAvatarList* mFriendList;
+ LLAvatarList* mNearbyList;
+ LLAvatarList* mRecentList;
+ LLGroupList* mGroupList;
+
+ LLHandle<LLView> mGroupPlusMenuHandle;
+ LLHandle<LLView> mGroupMinusMenuHandle;
+
+ Updater* mFriendListUpdater;
+ Updater* mNearbyListUpdater;
+ Updater* mRecentListUpdater;
+ Updater* mGroupListUpdater;
+
+ std::string mFilterSubString;
+};
+
+#endif //LL_LLPANELPEOPLE_H
diff --git a/indra/newview/llpanelpermissions.cpp b/indra/newview/llpanelpermissions.cpp
index b4e33fec76..9fdde9e757 100644
--- a/indra/newview/llpanelpermissions.cpp
+++ b/indra/newview/llpanelpermissions.cpp
@@ -55,11 +55,11 @@
#include "lllineeditor.h"
#include "llradiogroup.h"
#include "llcombobox.h"
-#include "llfloateravatarinfo.h"
#include "lluiconstants.h"
#include "lldbstrings.h"
#include "llfloatergroupinfo.h"
#include "llfloatergroups.h"
+#include "llfriendactions.h"
#include "llnamebox.h"
#include "llviewercontrol.h"
#include "lluictrlfactory.h"
@@ -811,7 +811,7 @@ void LLPanelPermissions::onClickCreator(void *data)
{
LLPanelPermissions *self = (LLPanelPermissions *)data;
- LLFloaterAvatarInfo::showFromObject(self->mCreatorID);
+ LLFriendActions::showProfile(self->mCreatorID);
}
// static
@@ -827,7 +827,7 @@ void LLPanelPermissions::onClickOwner(void *data)
}
else
{
- LLFloaterAvatarInfo::showFromObject(self->mOwnerID);
+ LLFriendActions::showProfile(self->mOwnerID);
}
}
diff --git a/indra/newview/llpanelpick.cpp b/indra/newview/llpanelpick.cpp
index 905c42861a..65be4718ef 100644
--- a/indra/newview/llpanelpick.cpp
+++ b/indra/newview/llpanelpick.cpp
@@ -35,444 +35,358 @@
// profile.
#include "llviewerprecompiledheaders.h"
-
-#include "llpanelpick.h"
-
-#include "lldir.h"
-#include "llfloaterreg.h"
-#include "llparcel.h"
+#include "llpanel.h"
#include "message.h"
-
#include "llagent.h"
-#include "llbutton.h"
-#include "llcheckboxctrl.h"
-#include "llviewercontrol.h"
-#include "lllineeditor.h"
-#include "lltabcontainer.h"
-#include "lltextbox.h"
-#include "llviewertexteditor.h"
+#include "llparcel.h"
+#include "llviewerparcelmgr.h"
#include "lltexturectrl.h"
#include "lluiconstants.h"
-#include "llviewergenericmessage.h"
-#include "lluictrlfactory.h"
-#include "llviewerparcelmgr.h"
-#include "llworldmap.h"
-#include "llfloaterworldmap.h"
-#include "llviewerregion.h"
-#include "llviewerwindow.h"
+#include "llavatarpropertiesprocessor.h"
+#include "llpanelpick.h"
+#include "llpanelmeprofile.h"
-//static
-std::list<LLPanelPick*> LLPanelPick::sAllPanels;
-
-LLPanelPick::LLPanelPick()
-: LLPanel(),
- mPickID(),
- mCreatorID(),
- mParcelID(),
- mDataRequested(FALSE),
- mDataReceived(FALSE),
- mPosGlobal(),
- mSnapshotCtrl(NULL),
- mNameEditor(NULL),
- mDescEditor(NULL),
- mLocationEditor(NULL),
- mTeleportBtn(NULL),
- mMapBtn(NULL),
- //mLandmarkBtn(NULL),
- mSortOrderText(NULL),
- mSortOrderEditor(NULL),
- mEnabledCheck(NULL),
- mSetBtn(NULL)
+
+#define XML_PANEL_EDIT_PICK "panel_edit_pick.xml"
+#define XML_PANEL_PICK_INFO "panel_pick_info.xml"
+
+#define XML_NAME "pick_name"
+#define XML_DESC "pick_desc"
+#define XML_SNAPSHOT "pick_snapshot"
+#define XML_LOCATION "pick_location"
+
+
+LLPanelPick::LLPanelPick(BOOL edit_mode/* = FALSE */)
+: LLPanel(), LLAvatarPropertiesObserver(),
+ mEditMode(edit_mode),
+ mSnapshotCtrl(NULL),
+ mPickId(LLUUID::null),
+ mCreatorId(LLUUID::null),
+ mDataReceived(FALSE)
{
- sAllPanels.push_back(this);
+ if (edit_mode)
+ {
+ LLUICtrlFactory::getInstance()->buildPanel(this, XML_PANEL_EDIT_PICK);
+ LLAvatarPropertiesProcessor::instance().addObserver(gAgentID, this);
+ }
+ else
+ {
+ LLUICtrlFactory::getInstance()->buildPanel(this, XML_PANEL_PICK_INFO);
+ }
- std::string pick_def_file;
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_avatar_pick.xml");
-
}
-
LLPanelPick::~LLPanelPick()
{
- sAllPanels.remove(this);
+ if (!mCreatorId.isNull()) LLAvatarPropertiesProcessor::instance().removeObserver(mCreatorId, this);
}
-
void LLPanelPick::reset()
{
- mPickID.setNull();
- mCreatorID.setNull();
- mParcelID.setNull();
-
- // Don't request data, this isn't valid
- mDataRequested = TRUE;
+ mPickId.setNull();
+ mCreatorId.setNull();
+ mParcelId.setNull();
+
mDataReceived = FALSE;
mPosGlobal.clearVec();
-
- clearCtrls();
}
-
BOOL LLPanelPick::postBuild()
{
- mSnapshotCtrl = getChild<LLTextureCtrl>("snapshot_ctrl");
- mSnapshotCtrl->setCommitCallback(onCommitAny, this);
+ mSnapshotCtrl = getChild<LLTextureCtrl>(XML_SNAPSHOT);
- mNameEditor = getChild<LLLineEditor>("given_name_editor");
- mNameEditor->setCommitOnFocusLost(TRUE);
- mNameEditor->setCommitCallback(onCommitAny, this);
-
- mDescEditor = getChild<LLTextEditor>("desc_editor");
- mDescEditor->setCommitOnFocusLost(TRUE);
- mDescEditor->setCommitCallback(onCommitAny, this);
- mDescEditor->setTabsToNextField(TRUE);
-
- mLocationEditor = getChild<LLLineEditor>("location_editor");
+ if (mEditMode)
+ {
+ childSetAction("cancel_btn", onClickCancel, this);
+ childSetAction("set_to_curr_location_btn", onClickSet, this);
+ childSetAction("save_changes_btn", onClickSave, this);
+ }
+ else
+ {
+ childSetAction("edit_btn", onClickEdit, this);
+ childSetAction("teleport_btn", onClickTeleport, this);
+ childSetAction("show_on_map_btn", onClickMap, this);
+ childSetAction("back_btn", onClickBack, this);
+ //*TODO set on menu
+ }
- mSetBtn = getChild<LLButton>( "set_location_btn");
- mSetBtn->setClickedCallback(onClickSet, this);
+ return TRUE;
+}
- mTeleportBtn = getChild<LLButton>( "pick_teleport_btn");
- mTeleportBtn->setClickedCallback(onClickTeleport, this);
+void LLPanelPick::init(LLUUID creator_id, LLUUID pick_id)
+{
+ mCreatorId = creator_id;
+ mPickId = pick_id;
- mMapBtn = getChild<LLButton>( "pick_map_btn");
- mMapBtn->setClickedCallback(onClickMap, this);
+ // on Pick Info panel (for non-Agent picks) edit_btn should be invisible
+ if (!mEditMode)
+ {
+ if (mCreatorId != gAgentID)
+ {
+ childSetEnabled("edit_btn", FALSE);
+ childSetVisible("edit_btn", FALSE);
+ }
+ else
+ {
+ childSetEnabled("edit_btn", TRUE);
+ childSetVisible("edit_btn", TRUE);
+ }
+ }
- mSortOrderText = getChild<LLTextBox>("sort_order_text");
+ LLAvatarPropertiesProcessor::instance().addObserver(mCreatorId, this);
+ LLAvatarPropertiesProcessor::instance().sendDataRequest(mCreatorId, APT_PICK_INFO, &mPickId);
+}
- mSortOrderEditor = getChild<LLLineEditor>("sort_order_editor");
- mSortOrderEditor->setPrevalidate(LLLineEditor::prevalidateInt);
- mSortOrderEditor->setCommitOnFocusLost(TRUE);
- mSortOrderEditor->setCommitCallback(onCommitAny, this);
+void LLPanelPick::init(LLPickData *pick_data)
+{
+ mPickId = pick_data->pick_id;
+ mCreatorId = pick_data->creator_id;
- mEnabledCheck = getChild<LLCheckBoxCtrl>( "enabled_check");
- mEnabledCheck->setCommitCallback(onCommitAny, this);
+ setName(pick_data->name);
+ setDesc(pick_data->desc);
+ setLocation(pick_data->location_text);
+ mSnapshotCtrl->setImageAssetID(pick_data->snapshot_id);
- return TRUE;
+ mPosGlobal = pick_data->pos_global;
+ mSimName = pick_data->sim_name;
+ mParcelId = pick_data->parcel_id;
}
-
// Fill in some reasonable defaults for a new pick.
-void LLPanelPick::initNewPick()
+void LLPanelPick::createNewPick()
{
- mPickID.generate();
-
- mCreatorID = gAgent.getID();
-
+ mPickId.generate();
+ mCreatorId = gAgent.getID();
mPosGlobal = gAgent.getPositionGlobal();
// Try to fill in the current parcel
LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
if (parcel)
{
- mNameEditor->setText(parcel->getName());
- mDescEditor->setText(parcel->getDesc());
+ setName(parcel->getName());
+ setDesc(parcel->getDesc());
mSnapshotCtrl->setImageAssetID(parcel->getSnapshotID());
}
- // Commit to the database, since we've got "new" values.
- sendPickInfoUpdate();
+ sendUpdate();
}
-
-void LLPanelPick::setPickID(const LLUUID& pick_id, const LLUUID& creator_id)
+/*virtual*/ void LLPanelPick::processProperties(void* data, EAvatarProcessorType type)
{
- mPickID = pick_id;
- mCreatorID = creator_id;
-}
+ if (APT_PICK_INFO != type) return;
+ if (!data) return;
+ LLPickData* pick_data = static_cast<LLPickData *>(data);
+ if (!pick_data) return;
+ if (mPickId != pick_data->pick_id) return;
-// Schedules the panel to request data
-// from the server next time it is drawn.
-void LLPanelPick::markForServerRequest()
-{
- mDataRequested = FALSE;
- mDataReceived = FALSE;
+ init(pick_data);
+ mDataReceived = TRUE;
+ LLAvatarPropertiesProcessor::instance().removeObserver(gAgentID, this);
}
-std::string LLPanelPick::getPickName()
+void LLPanelPick::setEditMode( BOOL edit_mode )
{
- return mNameEditor->getText();
-}
+ if (mEditMode == edit_mode) return;
+ mEditMode = edit_mode;
+ if (edit_mode)
+ {
+ // preserve data before killing controls
+ std::string name = getName();
+ std::string desc = getDesc();
+ std::string location = getLocation();
+ LLUUID snapshot_id = mSnapshotCtrl->getImageAssetID();
+ LLRect old_rect = getRect();
+
+ deleteAllChildren();
+
+ LLUICtrlFactory::getInstance()->buildPanel(this, XML_PANEL_EDIT_PICK);
+
+ //*NOTE this code is from LLPanelMeProfile.togglePanel()... doubt this is a right way to do things
+ reshape(old_rect.getWidth(), old_rect.getHeight());
+ old_rect.setLeftTopAndSize(0, old_rect.getHeight(), old_rect.getWidth(), old_rect.getHeight());
+ setRect(old_rect);
+
+ // time to restore data
+ setName(name);
+ setDesc(desc);
+ setLocation(location);
+ mSnapshotCtrl->setImageAssetID(snapshot_id);
+ }
+ else
+ {
+ // returning to VIEW mode - need to perform cleanup
+ // this is the case when that panel is reused between viewing/editing different picks
+ deleteAllChildren();
+ reset();
+ LLUICtrlFactory::getInstance()->buildPanel(this, XML_PANEL_PICK_INFO);
+ }
+}
-void LLPanelPick::sendPickInfoRequest()
+//*HACK need to be redone - control panel toggling from parent (Me Panel/Avatar Profile Panel)
+void LLPanelPick::setPanelMeProfile(LLPanelMeProfile* meProfilePanel)
{
- // Must ask for a pick based on the creator id because
- // the pick database is distributed to the inventory cluster. JC
- std::vector<std::string> strings;
- strings.push_back( mCreatorID.asString() );
- strings.push_back( mPickID.asString() );
- send_generic_message("pickinforequest", strings);
-
- mDataRequested = TRUE;
+ mMeProfilePanel = meProfilePanel;
}
-
-void LLPanelPick::sendPickInfoUpdate()
+void LLPanelPick::setName(std::string name)
{
- // If we don't have a pick id yet, we'll need to generate one,
- // otherwise we'll keep overwriting pick_id 00000 in the database.
- if (mPickID.isNull())
+ if (mEditMode)
{
- mPickID.generate();
+ childSetValue(XML_NAME, name);
+ }
+ else
+ {
+ childSetWrappedText(XML_NAME, name);
}
-
- LLMessageSystem* msg = gMessageSystem;
-
- msg->newMessage("PickInfoUpdate");
- msg->nextBlock("AgentData");
- msg->addUUID("AgentID", gAgent.getID());
- msg->addUUID("SessionID", gAgent.getSessionID());
- msg->nextBlock("Data");
- msg->addUUID("PickID", mPickID);
- msg->addUUID("CreatorID", mCreatorID);
- msg->addBOOL("TopPick", FALSE); //legacy var need to be deleted -angela
- // fills in on simulator if null
- msg->addUUID("ParcelID", mParcelID);
- msg->addString("Name", mNameEditor->getText());
- msg->addString("Desc", mDescEditor->getText());
- msg->addUUID("SnapshotID", mSnapshotCtrl->getImageAssetID());
- msg->addVector3d("PosGlobal", mPosGlobal);
-
- // Only top picks have a sort order
- S32 sort_order;
- sort_order = 0;
-
- msg->addS32("SortOrder", sort_order);
- msg->addBOOL("Enabled", mEnabledCheck->get());
- gAgent.sendReliableMessage();
}
-
-//static
-void LLPanelPick::processPickInfoReply(LLMessageSystem *msg, void **)
+void LLPanelPick::setDesc(std::string desc)
{
- // Extract the agent id and verify the message is for this
- // client.
- LLUUID agent_id;
- msg->getUUID("AgentData", "AgentID", agent_id );
- if (agent_id != gAgent.getID())
- {
- llwarns << "Agent ID mismatch in processPickInfoReply"
- << llendl;
- return;
- }
-
- LLUUID pick_id;
- msg->getUUID("Data", "PickID", pick_id);
-
- LLUUID creator_id;
- msg->getUUID("Data", "CreatorID", creator_id);
-
- // ** top_pick should be deleted, not being used anymore - angela
- BOOL top_pick;
- msg->getBOOL("Data", "TopPick", top_pick);
-
- LLUUID parcel_id;
- msg->getUUID("Data", "ParcelID", parcel_id);
-
- std::string name;
- msg->getString("Data", "Name", name);
-
- std::string desc;
- msg->getString("Data", "Desc", desc);
-
- LLUUID snapshot_id;
- msg->getUUID("Data", "SnapshotID", snapshot_id);
-
- // "Location text" is actually the owner name, the original
- // name that owner gave the parcel, and the location.
- std::string location_text;
- msg->getString("Data", "User", location_text);
- location_text.append(", ");
-
- std::string original_name;
- msg->getString("Data", "OriginalName", original_name);
- if (!original_name.empty())
+ if (mEditMode)
{
- location_text.append(original_name);
- location_text.append(", ");
+ childSetValue(XML_DESC, desc);
}
-
- std::string sim_name;
- msg->getString("Data", "SimName", sim_name);
- location_text.append(sim_name);
- location_text.append(" ");
-
- LLVector3d pos_global;
- msg->getVector3d("Data", "PosGlobal", pos_global);
-
- S32 region_x = llround((F32)pos_global.mdV[VX]) % REGION_WIDTH_UNITS;
- S32 region_y = llround((F32)pos_global.mdV[VY]) % REGION_WIDTH_UNITS;
- S32 region_z = llround((F32)pos_global.mdV[VZ]);
-
- location_text.append(llformat("(%d, %d, %d)", region_x, region_y, region_z));
-
- S32 sort_order;
- msg->getS32("Data", "SortOrder", sort_order);
-
- BOOL enabled;
- msg->getBOOL("Data", "Enabled", enabled);
-
- // Look up the panel to fill in
- for (panel_list_t::iterator iter = sAllPanels.begin(); iter != sAllPanels.end(); ++iter)
+ else
{
- LLPanelPick* self = *iter;
- // For top picks, must match pick id
- if (self->mPickID != pick_id)
- {
- continue;
- }
-
- self->mDataReceived = TRUE;
-
- // Found the panel, now fill in the information
- self->mPickID = pick_id;
- self->mCreatorID = creator_id;
- self->mParcelID = parcel_id;
- self->mSimName.assign(sim_name);
- self->mPosGlobal = pos_global;
-
- // Update UI controls
- self->mNameEditor->setText(std::string(name));
- self->mDescEditor->setText(std::string(desc));
- self->mSnapshotCtrl->setImageAssetID(snapshot_id);
- self->mLocationEditor->setText(location_text);
- self->mEnabledCheck->set(enabled);
-
- self->mSortOrderEditor->setText(llformat("%d", sort_order));
- }
+ childSetWrappedText(XML_DESC, desc);
+ }
}
-void LLPanelPick::draw()
+void LLPanelPick::setLocation(std::string location)
{
- refresh();
-
- LLPanel::draw();
+ childSetWrappedText(XML_LOCATION, location);
}
-
-void LLPanelPick::refresh()
+std::string LLPanelPick::getName()
{
- if (!mDataRequested)
- {
- sendPickInfoRequest();
- }
+ return childGetValue(XML_NAME).asString();
+}
- // Check for god mode
- //BOOL godlike = gAgent.isGodlike();
- BOOL is_self = (gAgent.getID() == mCreatorID);
+std::string LLPanelPick::getDesc()
+{
+ return childGetValue(XML_DESC).asString();
+}
- // Set button visibility/enablement appropriately
+std::string LLPanelPick::getLocation()
+{
+ return childGetValue(XML_LOCATION).asString();
+}
- mSnapshotCtrl->setEnabled(is_self);
- mNameEditor->setEnabled(is_self);
- mDescEditor->setEnabled(is_self);
+void LLPanelPick::sendUpdate()
+{
+ LLPickData pick_data;
- mSortOrderText->setVisible(FALSE);
+ // If we don't have a pick id yet, we'll need to generate one,
+ // otherwise we'll keep overwriting pick_id 00000 in the database.
+ if (mPickId.isNull()) mPickId.generate();
+
+ pick_data.agent_id = gAgent.getID();
+ pick_data.session_id = gAgent.getSessionID();
+ pick_data.pick_id = mPickId;
+ pick_data.creator_id = gAgentID;
+
+ //legacy var need to be deleted
+ pick_data.top_pick = FALSE;
+ pick_data.parcel_id = mParcelId;
+ pick_data.name = getName();
+ pick_data.desc = getDesc();
+ pick_data.snapshot_id = mSnapshotCtrl->getImageAssetID();
+ pick_data.pos_global = mPosGlobal;
+ pick_data.sort_order = 0;
+ pick_data.enabled = TRUE;
+
+ LLAvatarPropertiesProcessor::instance().sendDataUpdate(&pick_data, APT_PICK_INFO);
+}
- mSortOrderEditor->setVisible(FALSE);
- mSortOrderEditor->setEnabled(FALSE);
- mEnabledCheck->setVisible(FALSE);
- mEnabledCheck->setEnabled(FALSE);
+//-----------------------------------------
+// "PICK INFO" (VIEW MODE) BUTTON HANDLERS
+//-----------------------------------------
- mSetBtn->setVisible(is_self);
- mSetBtn->setEnabled(is_self);
+//static
+void LLPanelPick::onClickEdit(void* data)
+{
+ LLPanelPick* self = (LLPanelPick*)data;
+ if (!self) return;
+ if (self->mEditMode) return;
+ if (!self->mDataReceived) return;
+ self->setEditMode(TRUE);
}
-
-// static
+//static
void LLPanelPick::onClickTeleport(void* data)
{
- LLPanelPick* self = (LLPanelPick*)data;
-
- if (!self->mPosGlobal.isExactlyZero())
- {
- gAgent.teleportViaLocation(self->mPosGlobal);
- LLFloaterWorldMap::getInstance()->trackLocation(self->mPosGlobal);
- }
+ //LLPanelPick* self = (LLPanelPick*)data;
+ //*TODO implement
}
-
-// static
+//static
void LLPanelPick::onClickMap(void* data)
{
+ //LLPanelPick* self = (LLPanelPick*)data;
+ //*TODO implement
+}
+
+//*HACK need to move panel toggling to parent panels
+//static
+void LLPanelPick::onClickBack(void* data)
+{
LLPanelPick* self = (LLPanelPick*)data;
- LLFloaterWorldMap::getInstance()->trackLocation(self->mPosGlobal);
- LLFloaterReg::showInstance("world_map", "center");
+ if (!self) return;
+ self->mMeProfilePanel->togglePanel(self);
}
-// static
-/*
-void LLPanelPick::onClickLandmark(void* data)
+
+
+//-----------------------------------------
+// "EDIT PICK" (EDIT MODE) BUTTON HANDLERS
+//-----------------------------------------
+
+//static
+void LLPanelPick::onClickCancel(void* data)
{
- LLPanelPick* self = (LLPanelPick*)data;
- create_landmark(self->mNameEditor->getText(), "", self->mPosGlobal);
+ LLPanelPick* self = (LLPanelPick*) data;
+ if (!self) return;
+ if (!self->mEditMode) return;
+ self->mMeProfilePanel->togglePanel(self);
}
-*/
// static
void LLPanelPick::onClickSet(void* data)
{
- LLPanelPick* self = (LLPanelPick*)data;
+ //TODO check whether pick data was received before
+
+ LLPanelPick* self = (LLPanelPick*) data;
+ if (!self) return;
+ if (!self->mEditMode) return;
// Save location for later.
self->mPosGlobal = gAgent.getPositionGlobal();
- std::string location_text;
- location_text.assign("(will update after save)");
- location_text.append(", ");
-
- S32 region_x = llround((F32)self->mPosGlobal.mdV[VX]) % REGION_WIDTH_UNITS;
- S32 region_y = llround((F32)self->mPosGlobal.mdV[VY]) % REGION_WIDTH_UNITS;
+ S32 region_x = llround((F32)self->mPosGlobal.mdV[VX]) % REGION_WIDTH_UNITS;
+ S32 region_y = llround((F32)self->mPosGlobal.mdV[VY]) % REGION_WIDTH_UNITS;
S32 region_z = llround((F32)self->mPosGlobal.mdV[VZ]);
+ std::string location_text = "(will update after save), ";
location_text.append(self->mSimName);
- location_text.append(llformat(" (%d, %d, %d)", region_x, region_y, region_z));
+ location_text.append(llformat(" (%d, %d, %d)", region_x, region_y, region_z));
- // if sim name in pick is different from current sim name
- // make sure it's clear that all that's being changed
- // is the location and nothing else
- if ( gAgent.getRegion ()->getName () != self->mSimName )
- {
- LLNotifications::instance().add("SetPickLocation");
- };
-
- self->mLocationEditor->setText(location_text);
-
- onCommitAny(NULL, data);
+ self->setLocation(location_text);
}
-
// static
-void LLPanelPick::onCommitAny(LLUICtrl* ctrl, void* data)
+void LLPanelPick::onClickSave(void* data)
{
LLPanelPick* self = (LLPanelPick*)data;
+ if (!self->mEditMode) return;
+ if (!self->mDataReceived) return;
- // have we received up to date data for this pick?
- if (self->mDataReceived)
- {
- self->sendPickInfoUpdate();
-
- // Big hack - assume that top picks are always in a browser,
- // and non-top-picks are always in a tab container.
- /*if (self->mTopPick)
- {
- LLPanelDirPicks* panel = (LLPanelDirPicks*)self->getParent();
- panel->renamePick(self->mPickID, self->mNameEditor->getText());
- }
- else
- {*/
- LLTabContainer* tab = (LLTabContainer*)self->getParent();
- if (tab)
- {
- if(tab) tab->setCurrentTabName(self->mNameEditor->getText());
- }
- //}
- }
+ //*TODO check if data was received before
+ self->sendUpdate();
+ self->mMeProfilePanel->togglePanel(self);
}
diff --git a/indra/newview/llpanelpick.h b/indra/newview/llpanelpick.h
index 641e1bdf64..8ada1a39fb 100644
--- a/indra/newview/llpanelpick.h
+++ b/indra/newview/llpanelpick.h
@@ -38,89 +38,78 @@
#define LL_LLPANELPICK_H
#include "llpanel.h"
-#include "v3dmath.h"
-#include "lluuid.h"
-
-class LLButton;
-class LLCheckBoxCtrl;
-class LLIconCtrl;
-class LLLineEditor;
-class LLTextBox;
-class LLTextEditor;
+
class LLTextureCtrl;
-class LLUICtrl;
class LLMessageSystem;
+class LLPanelMeProfile;
+class LLAvatarPropertiesObserver;
-class LLPanelPick : public LLPanel
+class LLPanelPick : public LLPanel, public LLAvatarPropertiesObserver
{
+ LOG_CLASS(LLPanelPick);
public:
- LLPanelPick();
- /*virtual*/ ~LLPanelPick();
+ LLPanelPick(BOOL edit_mode = FALSE);
+ /*virtual*/ ~LLPanelPick();
void reset();
- /*virtual*/ BOOL postBuild();
+ /*virtual*/ BOOL postBuild();
- /*virtual*/ void draw();
+ // Create a new pick, including creating an id, giving a sane
+ // initial position, etc.
+ void createNewPick();
- /*virtual*/ void refresh();
+ void init(LLUUID creator_id, LLUUID pick_id);
- // Setup a new pick, including creating an id, giving a sane
- // initial position, etc.
- void initNewPick();
+ /*virtual*/ void processProperties(void* data, EAvatarProcessorType type);
- // We need to know the creator id so the database knows which partition
- // to query for the pick data.
- void setPickID(const LLUUID& pick_id, const LLUUID& creator_id);
+ void setEditMode(BOOL edit_mode);
- // Schedules the panel to request data
- // from the server next time it is drawn.
- void markForServerRequest();
+ //TODO redo panel toggling
+ void setPanelMeProfile(LLPanelMeProfile* meProfilePanel);
- std::string getPickName();
- const LLUUID& getPickID() const { return mPickID; }
- const LLUUID& getPickCreatorID() const { return mCreatorID; }
+protected:
- void sendPickInfoRequest();
- void sendPickInfoUpdate();
+ void setName(std::string name);
+ void setDesc(std::string desc);
+ void setLocation(std::string location);
- static void processPickInfoReply(LLMessageSystem* msg, void**);
+ std::string getName();
+ std::string getDesc();
+ std::string getLocation();
-protected:
- static void onClickTeleport(void* data);
- static void onClickMap(void* data);
- //static void onClickLandmark(void* data);
- static void onClickSet(void* data);
+ void sendUpdate();
+ void init(LLPickData *pick_data);
- static void onCommitAny(LLUICtrl* ctrl, void* data);
+ //-----------------------------------------
+ // "PICK INFO" (VIEW MODE) BUTTON HANDLERS
+ //-----------------------------------------
+ static void onClickEdit(void* data);
+ static void onClickTeleport(void* data);
+ static void onClickMap(void* data);
+ static void onClickBack(void* data);
-protected:
- LLUUID mPickID;
- LLUUID mCreatorID;
- LLUUID mParcelID;
+ //-----------------------------------------
+ // "EDIT PICK" (EDIT MODE) BUTTON HANDLERS
+ //-----------------------------------------
+ static void onClickSet(void* data);
+ static void onClickSave(void* data);
+ static void onClickCancel(void* data);
- // Data will be requested on first draw
+protected:
+ BOOL mEditMode;
+ LLTextureCtrl* mSnapshotCtrl;
BOOL mDataRequested;
BOOL mDataReceived;
+ LLUUID mPickId;
+ LLUUID mCreatorId;
+ LLVector3d mPosGlobal;
+ LLUUID mParcelId;
std::string mSimName;
- LLVector3d mPosGlobal;
-
- LLTextureCtrl* mSnapshotCtrl;
- LLLineEditor* mNameEditor;
- LLTextEditor* mDescEditor;
- LLLineEditor* mLocationEditor;
-
- LLButton* mTeleportBtn;
- LLButton* mMapBtn;
-
- LLTextBox* mSortOrderText;
- LLLineEditor* mSortOrderEditor;
- LLCheckBoxCtrl* mEnabledCheck;
- LLButton* mSetBtn;
- typedef std::list<LLPanelPick*> panel_list_t;
- static panel_list_t sAllPanels;
+ //TODO redo panel toggling
+ LLPanelMeProfile* mMeProfilePanel;
};
#endif // LL_LLPANELPICK_H
diff --git a/indra/newview/llpanelpicks.cpp b/indra/newview/llpanelpicks.cpp
new file mode 100644
index 0000000000..1a3aa8a33a
--- /dev/null
+++ b/indra/newview/llpanelpicks.cpp
@@ -0,0 +1,469 @@
+/**
+ * @file llpanelpicks.cpp
+ * @brief LLPanelPicks and related class implementations
+ *
+ * $LicenseInfo:firstyear=2009&license=viewergpl$
+ *
+ * Copyright (c) 2004-2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llagent.h"
+#include "llavatarconstants.h"
+#include "lltexturectrl.h"
+#include "llviewergenericmessage.h" // send_generic_message
+#include "llworldmap.h"
+#include "llfloaterworldmap.h"
+#include "llpanelmeprofile.h"
+#include "llfloaterreg.h"
+#include "llpanelpicks.h"
+#include "llavatarpropertiesprocessor.h"
+#include "llpanelpick.h"
+
+#define XML_BTN_NEW "new_btn"
+#define XML_BTN_DELETE "trash_btn"
+#define XML_BTN_INFO "info_btn"
+
+
+//-----------------------------------------------------------------------------
+// LLPanelPicks
+//-----------------------------------------------------------------------------
+LLPanelPicks::LLPanelPicks(const LLUUID& avatar_id /* = LLUUID::null */)
+:LLPanelProfileTab(avatar_id), mMeProfilePanel(NULL)
+{
+ updateData();
+}
+
+LLPanelPicks::LLPanelPicks(const Params& params)
+:LLPanelProfileTab(params), mMeProfilePanel(NULL)
+{
+
+}
+
+LLPanelPicks::~LLPanelPicks()
+{
+ if(!getAvatarId().isNull())
+ {
+ LLAvatarPropertiesProcessor::getInstance()->removeObserver(getAvatarId(),this);
+ }
+}
+
+void* LLPanelPicks::create(void* data /* = NULL */)
+{
+ LLSD* id = NULL;
+ if(data)
+ {
+ id = static_cast<LLSD*>(data);
+ return new LLPanelPicks(LLUUID(id->asUUID()));
+ }
+ return new LLPanelPicks();
+}
+
+void LLPanelPicks::updateData()
+{
+ LLAvatarPropertiesProcessor::getInstance()->sendDataRequest(getAvatarId(),APT_PICKS);
+}
+
+void LLPanelPicks::processProperties(void* data, EAvatarProcessorType type)
+{
+ if(APT_PICKS == type)
+ {
+ LLAvatarPicks* avatar_picks = static_cast<LLAvatarPicks*>(data);
+ if(avatar_picks && getAvatarId() == avatar_picks->target_id)
+ {
+ std::string name, second_name;
+ gCacheName->getName(getAvatarId(),name,second_name);
+ childSetTextArg("pick_title", "[NAME]",name);
+
+ LLView* picks_list = getChild<LLView>("back_panel",TRUE,FALSE);
+ if(!picks_list) return;
+ clear();
+
+ //*TODO move it somewhere else?
+ picks_list->setEnabled(FALSE);
+ childSetEnabled(XML_BTN_NEW, false);
+ childSetEnabled(XML_BTN_DELETE, false);
+ childSetEnabled(XML_BTN_INFO, false);
+
+ S32 height = avatar_picks->picks_list.size() * 85;
+ LLRect rc = picks_list->getRect();
+ rc.setLeftTopAndSize(rc.mLeft,rc.mTop,rc.getWidth(),height);
+ picks_list->setRect(rc);
+ picks_list->reshape(rc.getWidth(),rc.getHeight());
+
+ LLAvatarPicks::picks_list_t::const_iterator it = avatar_picks->picks_list.begin();
+ for(; avatar_picks->picks_list.end() != it; ++it)
+ {
+ LLUUID pick_id = it->first;
+ std::string pick_name = it->second;
+
+ LLPickItem* picture = LLPickItem::create();
+ picks_list->addChild(picture);
+
+ picture->setPictureName(pick_name);
+ picture->setPictureId(pick_id);
+ picture->setCreatorId(getAvatarId());
+
+ S32 last_bottom = picks_list->getRect().getHeight();
+ if(mPickItemList.size() > 0)
+ {
+ last_bottom = mPickItemList[mPickItemList.size()-1]->getRect().mBottom;
+ last_bottom -= 5;
+ }
+ LLRect rc = picture->getRect();
+ rc.mBottom = last_bottom - rc.getHeight();
+ rc.mTop = last_bottom;
+ picture->reshape(rc.getWidth(),rc.getHeight());
+ picture->setRect(rc);
+
+
+ LLAvatarPropertiesProcessor::instance().addObserver(mAvatarId, picture);
+ picture->update();
+ mPickItemList.push_back(picture);
+ }
+ LLAvatarPropertiesProcessor::getInstance()->removeObserver(getAvatarId(),this);
+
+ updateButtons();
+ picks_list->setEnabled(TRUE);
+
+ }
+ }
+}
+
+void LLPanelPicks::clear()
+{
+ LLView* scroll = getChild<LLView>("back_panel",TRUE,FALSE);
+ if(scroll)
+ {
+ picture_list_t::const_iterator it = mPickItemList.begin();
+ for(; mPickItemList.end() != it; ++it)
+ {
+ scroll->removeChild(*it);
+ delete *it;
+ }
+ }
+ mPickItemList.clear();
+}
+
+BOOL LLPanelPicks::postBuild(void)
+{
+ childSetAction(XML_BTN_INFO, onClickInfo, this);
+ childSetAction(XML_BTN_NEW, onClickNew, this);
+ childSetAction(XML_BTN_DELETE, onClickDelete, this);
+
+ childSetAction("teleport_btn", onClickTeleport, this);
+ childSetAction("show_on_map_btn", onClickMap, this);
+ return TRUE;
+}
+
+void LLPanelPicks::onActivate(const LLUUID& id)
+{
+ BOOL self = (gAgent.getID() == id);
+
+ // only agent can edit her picks
+ childSetEnabled("edit_panel", self);
+ childSetVisible("edit_panel", self);
+
+ // and see a special title - set as invisible by default in xml file
+ if (self)
+ {
+ childSetVisible("pick_title", !self);
+ childSetVisible("pick_title_agent", self);
+ }
+
+ LLPanelProfileTab::onActivate(id);
+}
+
+
+//static
+void LLPanelPicks::onClickInfo(void *data)
+{
+ LLPanelPicks* self = (LLPanelPicks*) data;
+ if (self)
+ {
+ LLPanelPick* panel_pick_info = new LLPanelPick();
+
+ //*TODO redo, use the selected pick from List View, but not the first (last) one
+ LLView* scroll = self->getChild<LLView>("back_panel", TRUE, FALSE);
+ LLPickItem* pick = static_cast<LLPickItem*>(scroll->getFirstChild());
+ if (!pick) return;
+
+ panel_pick_info->init(pick->getCreatorId(), pick->getPickId());
+
+ //*HACK redo toggling of panels (should work on both "profiles")
+ if (self->mMeProfilePanel)
+ {
+ panel_pick_info->setPanelMeProfile(self->mMeProfilePanel);
+ //self->mMeProfilePanel->addChildInBack(panel_pick_info);
+ self->mMeProfilePanel->togglePanel(panel_pick_info);
+ }
+ }
+}
+
+//static
+void LLPanelPicks::onClickNew(void *data)
+{
+ LLPanelPicks* self = (LLPanelPicks*) data;
+ if(self && self->mMeProfilePanel)
+ {
+ if (self->mPickItemList.size() >= MAX_AVATAR_PICKS)
+ {
+ //*TODO show warning message
+ return;
+ }
+
+ //in edit mode
+ LLPanelPick* panel_edit_pick = new LLPanelPick(TRUE);
+ panel_edit_pick->createNewPick();
+
+ //*HACK redo toggling of panels
+ panel_edit_pick->setPanelMeProfile(self->mMeProfilePanel);
+ self->mMeProfilePanel->togglePanel(panel_edit_pick);
+ }
+}
+
+//static
+void LLPanelPicks::onClickDelete(void *data)
+{
+ LLPanelPicks* self = (LLPanelPicks*) data;
+ if(self && self->mMeProfilePanel)
+ {
+ //*TODO redo, use the selected pick from List View, but not the first (last) one
+ LLView* scroll = self->getChild<LLView>("back_panel", TRUE, FALSE);
+ LLPickItem* first_pick = static_cast<LLPickItem*>(scroll->getFirstChild());
+ if (!first_pick) return;
+
+ LLSD args;
+ args["PICK"] = first_pick->getPickName();
+ LLNotifications::instance().add("DeleteAvatarPick", args, LLSD(), boost::bind(&LLPanelPicks::callbackDelete, self, _1, _2));
+ }
+}
+
+bool LLPanelPicks::callbackDelete(const LLSD& notification, const LLSD& response)
+{
+ S32 option = LLNotification::getSelectedOption(notification, response);
+
+ //*TODO redo, use the selected pick from List View, but not the first (last) one
+ LLView* scroll = getChild<LLView>("back_panel",TRUE,FALSE);
+ LLPickItem* first_pick = static_cast<LLPickItem*>(scroll->getFirstChild());
+ if (!first_pick) return false;
+
+ if (0 == option)
+ {
+ LLAvatarPropertiesProcessor::instance().sendPickDelete(first_pick->getPickId());
+
+ scroll->removeChild(first_pick);
+ mPickItemList.pop_back();
+ first_pick = NULL;
+ }
+ updateButtons();
+ return false;
+}
+
+void LLPanelPicks::setPanelMeProfile(LLPanelMeProfile* meProfilePanel)
+{
+ mMeProfilePanel = meProfilePanel;
+}
+
+//static
+void LLPanelPicks::teleport(const LLVector3d& position)
+{
+ if (!position.isExactlyZero())
+ {
+ gAgent.teleportViaLocation(position);
+ LLFloaterWorldMap::getInstance()->trackLocation(position);
+ }
+}
+
+//static
+void LLPanelPicks::onClickTeleport(void* data)
+{
+ LLPanelPicks* self = (LLPanelPicks*)data;
+
+ if (!self->mPickItemList.size()) return;
+
+ //*TODO use the selected Pick instead of the last one in the list of Picks
+ LLPickItem* last_pick = self->mPickItemList.back();
+ if (!last_pick) return;
+
+ teleport(last_pick->getPosGlobal());
+}
+
+//static
+void LLPanelPicks::onClickMap(void* data)
+{
+ LLPanelPicks* self = (LLPanelPicks*)data;
+
+ if (!self->mPickItemList.size()) return;
+
+ //*TODO use the selected Pick instead of the last one in the list of Picks
+ LLPickItem* last_pick = self->mPickItemList.back();
+ if (!last_pick) return;
+
+ showOnMap(last_pick->getPosGlobal());
+
+}
+
+//static
+void LLPanelPicks::showOnMap(const LLVector3d& position)
+{
+ LLFloaterWorldMap::getInstance()->trackLocation(position);
+ LLFloaterReg::showInstance("world_map", "center");
+}
+
+void LLPanelPicks::updateButtons()
+{
+ int picks_num = mPickItemList.size();
+ childSetEnabled(XML_BTN_INFO, picks_num > 0);
+
+ if (mAvatarId == gAgentID)
+ {
+ childSetEnabled(XML_BTN_NEW, picks_num < MAX_AVATAR_PICKS);
+ childSetEnabled(XML_BTN_DELETE, picks_num > 0);
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+// LLPanelPicks
+//-----------------------------------------------------------------------------
+LLPickItem::LLPickItem()
+: LLPanel()
+, mPicID(LLUUID::null)
+, mCreatorID(LLUUID::null)
+, mParcelID(LLUUID::null)
+, mSnapshotID(LLUUID::null)
+, mNeedData(true)
+{
+ LLUICtrlFactory::getInstance()->buildPanel(this,"panel_pic_list_item.xml");
+}
+
+LLPickItem::~LLPickItem()
+{
+ if (!mCreatorID.isNull())
+ {
+ LLAvatarPropertiesProcessor::instance().removeObserver(mCreatorID, this);
+ }
+
+}
+
+LLPickItem* LLPickItem::create()
+{
+ return new LLPickItem();
+}
+
+void LLPickItem::init(LLPickData* pick_data)
+{
+ setPictureDescription(pick_data->desc);
+ setSnapshotId(pick_data->snapshot_id);
+ mPosGlobal = pick_data->pos_global;
+ mLocation = pick_data->location_text;
+
+ LLTextureCtrl* picture = getChild<LLTextureCtrl>("picture", TRUE, FALSE);
+ if (picture)
+ {
+ picture->setImageAssetID(pick_data->snapshot_id);
+ }
+}
+
+void LLPickItem::setPicture()
+{
+
+}
+
+void LLPickItem::setPictureName(const std::string& name)
+{
+ mPickName = name;
+ childSetValue("picture_name",name);
+
+}
+
+const std::string& LLPickItem::getPickName()
+{
+ return mPickName;
+}
+
+const LLUUID& LLPickItem::getCreatorId()
+{
+ return mCreatorID;
+}
+
+const LLUUID& LLPickItem::getSnapshotId()
+{
+ return mSnapshotID;
+}
+
+void LLPickItem::setPictureDescription(const std::string& descr)
+{
+ childSetValue("picture_descr",descr);
+}
+
+void LLPickItem::setPictureId(const LLUUID& id)
+{
+ mPicID = id;
+}
+
+const LLUUID& LLPickItem::getPickId()
+{
+ return mPicID;
+}
+
+const LLVector3d& LLPickItem::getPosGlobal()
+{
+ return mPosGlobal;
+}
+
+const std::string& LLPickItem::getLocation()
+{
+ return mLocation;
+}
+
+const std::string LLPickItem::getDescription()
+{
+ return childGetValue("picture_descr").asString();
+}
+
+void LLPickItem::update()
+{
+ mNeedData = true;
+ LLAvatarPropertiesProcessor::instance().sendDataRequest(mCreatorID, APT_PICK_INFO, &mPicID);
+ mNeedData = false;
+}
+
+void LLPickItem::processProperties(void *data, EAvatarProcessorType type)
+{
+ if (APT_PICK_INFO != type) return;
+ if (!data) return;
+
+ LLPickData* pick_data = static_cast<LLPickData *>(data);
+ if (!pick_data) return;
+ if (mPicID != pick_data->pick_id) return;
+
+ init(pick_data);
+ LLAvatarPropertiesProcessor::instance().removeObserver(pick_data->agent_id, this);
+}
+
diff --git a/indra/newview/llpanelpicks.h b/indra/newview/llpanelpicks.h
new file mode 100644
index 0000000000..bb1ee06780
--- /dev/null
+++ b/indra/newview/llpanelpicks.h
@@ -0,0 +1,153 @@
+/**
+ * @file llpanelpicks.h
+ * @brief LLPanelPicks and related class definitions
+ *
+ * $LicenseInfo:firstyear=2009&license=viewergpl$
+ *
+ * Copyright (c) 2004-2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#ifndef LL_LLPANELPICKS_H
+#define LL_LLPANELPICKS_H
+
+#include "llpanel.h"
+#include "v3dmath.h"
+#include "lluuid.h"
+#include "llavatarpropertiesprocessor.h"
+
+class LLMessageSystem;
+class LLVector3d;
+class LLPanelProfileTab;
+class LLPanelMeProfile;
+class LLPanelPick;
+class LLAgent;
+class LLPickItem;
+
+
+class LLPanelPicks
+ : public LLPanelProfileTab
+{
+public:
+ LLPanelPicks(const LLUUID& avatar_id = LLUUID::null);
+ LLPanelPicks(const Params& params );
+ ~LLPanelPicks();
+
+ static void* create(void* data);
+
+ static void teleport(const LLVector3d& position);
+
+ static void showOnMap(const LLVector3d& position);
+
+ /*virtual*/ BOOL postBuild(void);
+
+ /*virtual*/ void onActivate(const LLUUID& id);
+
+ void processProperties(void* data, EAvatarProcessorType type);
+
+ void updateData();
+
+ void setPanelMeProfile(LLPanelMeProfile*);
+
+ void clear();
+
+ //*TODO implement
+ //LLPickItem& getSelectedPick();
+
+private:
+ static void onClickInfo(void* data);
+ static void onClickNew(void* data);
+ static void onClickDelete(void* data);
+ static void onClickTeleport(void* data);
+ static void onClickMap(void* data);
+
+ bool callbackDelete(const LLSD& notification, const LLSD& response);
+
+ void updateButtons();
+
+ typedef std::vector<LLPickItem*> picture_list_t;
+ picture_list_t mPickItemList;
+ LLPanelMeProfile* mMeProfilePanel;
+
+};
+
+class LLPickItem : public LLPanel, public LLAvatarPropertiesObserver
+{
+public:
+
+ LLPickItem();
+
+ static LLPickItem* create();
+
+ void init(LLPickData* pick_data);
+
+ void setPictureName(const std::string& name);
+
+ void setPictureDescription(const std::string& descr);
+
+ void setPicture();
+
+ void setPictureId(const LLUUID& id);
+
+ void setCreatorId(const LLUUID& id) {mCreatorID = id;};
+
+ void setSnapshotId(const LLUUID& id) {mSnapshotID = id;};
+
+ void setNeedData(bool need){mNeedData = need;};
+
+ const LLUUID& getPickId();
+
+ const std::string& getPickName();
+
+ const LLUUID& getCreatorId();
+
+ const LLUUID& getSnapshotId();
+
+ const LLVector3d& getPosGlobal();
+
+ const std::string& getLocation();
+
+ const std::string getDescription();
+
+ /*virtual*/ void processProperties(void* data, EAvatarProcessorType type);
+
+ void update();
+
+ ~LLPickItem();
+
+protected:
+
+ LLUUID mPicID;
+ LLUUID mCreatorID;
+ LLUUID mParcelID;
+ LLUUID mSnapshotID;
+ LLVector3d mPosGlobal;
+ bool mNeedData;
+
+ std::string mPickName;
+ std::string mLocation;
+};
+
+#endif // LL_LLPANELPICKS_H
diff --git a/indra/newview/llpanelplace.cpp b/indra/newview/llpanelplace.cpp
index ee194ee7e8..ad385d8bdf 100644
--- a/indra/newview/llpanelplace.cpp
+++ b/indra/newview/llpanelplace.cpp
@@ -36,10 +36,8 @@
#include "llviewercontrol.h"
#include "llqueryflags.h"
-#include "message.h"
#include "llui.h"
#include "llsecondlifeurls.h"
-#include "llremoteparcelrequest.h"
#include "llfloater.h"
#include "llfloaterreg.h"
@@ -55,15 +53,13 @@
#include "lltrans.h"
#include "llworldmap.h"
#include "llviewerregion.h"
+#include "llvoavatarself.h"
#include "lluictrlfactory.h"
//#include "llviewermenu.h" // create_landmark()
#include "llweb.h"
#include "llsdutil.h"
#include "llsdutil_math.h"
-//static
-std::list<LLPanelPlace*> LLPanelPlace::sAllPanels;
-
LLPanelPlace::LLPanelPlace()
: LLPanel(),
mParcelID(),
@@ -73,17 +69,16 @@ LLPanelPlace::LLPanelPlace()
mPosRegion(),
mAuctionID(0),
mLandmarkAssetID()
-{
- sAllPanels.push_back(this);
-}
-
+{}
LLPanelPlace::~LLPanelPlace()
{
- sAllPanels.remove(this);
+ if (mParcelID.notNull())
+ {
+ LLRemoteParcelInfoProcessor::getInstance()->removeObserver(mParcelID, this);
+ }
}
-
BOOL LLPanelPlace::postBuild()
{
// Since this is only used in the directory browser, always
@@ -179,6 +174,7 @@ void LLPanelPlace::resetName(const std::string& name)
}
}
+//virtual
void LLPanelPlace::setParcelID(const LLUUID& parcel_id)
{
mParcelID = parcel_id;
@@ -190,7 +186,6 @@ void LLPanelPlace::setSnapshot(const LLUUID& snapshot_id)
mSnapshotCtrl->setImageAssetID(snapshot_id);
}
-
void LLPanelPlace::setLocationString(const std::string& location)
{
mLocationDisplay->setText(location);
@@ -203,27 +198,22 @@ void LLPanelPlace::setLandTypeString(const std::string& land_type)
void LLPanelPlace::sendParcelInfoRequest()
{
- LLMessageSystem *msg = gMessageSystem;
-
if (mParcelID != mRequestedID)
{
- msg->newMessage("ParcelInfoRequest");
- msg->nextBlockFast(_PREHASH_AgentData);
- msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID() );
- msg->addUUID("SessionID", gAgent.getSessionID());
- msg->nextBlock("Data");
- msg->addUUID("ParcelID", mParcelID);
- gAgent.sendReliableMessage();
+ LLRemoteParcelInfoProcessor::getInstance()->addObserver(mParcelID, this);
+ LLRemoteParcelInfoProcessor::getInstance()->sendParcelInfoRequest(mParcelID);
+
mRequestedID = mParcelID;
}
}
+//virtual
void LLPanelPlace::setErrorStatus(U32 status, const std::string& reason)
{
// We only really handle 404 and 499 errors
std::string error_text;
if(status == 404)
- {
+ {
error_text = getString("server_error_text");
}
else if(status == 499)
@@ -233,140 +223,91 @@ void LLPanelPlace::setErrorStatus(U32 status, const std::string& reason)
mDescEditor->setText(error_text);
}
-//static
-void LLPanelPlace::processParcelInfoReply(LLMessageSystem *msg, void **)
+//virtual
+void LLPanelPlace::processParcelInfo(const LLParcelData& parcel_data)
{
- LLUUID agent_id;
- LLUUID parcel_id;
- LLUUID owner_id;
- std::string name;
- std::string desc;
- S32 actual_area;
- S32 billable_area;
- U8 flags;
- F32 global_x;
- F32 global_y;
- F32 global_z;
- std::string sim_name;
- LLUUID snapshot_id;
- F32 dwell;
- S32 sale_price;
- S32 auction_id;
-
- msg->getUUID("AgentData", "AgentID", agent_id );
- msg->getUUID("Data", "ParcelID", parcel_id);
-
- // look up all panels which have this avatar
- for (panel_list_t::iterator iter = sAllPanels.begin(); iter != sAllPanels.end(); ++iter)
- {
- LLPanelPlace* self = *iter;
- if (self->mParcelID != parcel_id)
- {
- continue;
- }
+ mAuctionID = parcel_data.auction_id;
- msg->getUUID ("Data", "OwnerID", owner_id);
- msg->getString ("Data", "Name", name);
- msg->getString ("Data", "Desc", desc);
- msg->getS32 ("Data", "ActualArea", actual_area);
- msg->getS32 ("Data", "BillableArea", billable_area);
- msg->getU8 ("Data", "Flags", flags);
- msg->getF32 ("Data", "GlobalX", global_x);
- msg->getF32 ("Data", "GlobalY", global_y);
- msg->getF32 ("Data", "GlobalZ", global_z);
- msg->getString ("Data", "SimName", sim_name);
- msg->getUUID ("Data", "SnapshotID", snapshot_id);
- msg->getF32 ("Data", "Dwell", dwell);
- msg->getS32 ("Data", "SalePrice", sale_price);
- msg->getS32 ("Data", "AuctionID", auction_id);
-
-
- self->mAuctionID = auction_id;
-
- if(snapshot_id.notNull())
- {
- self->mSnapshotCtrl->setImageAssetID(snapshot_id);
- }
-
- // Only assign the name and description if they are not empty and there is not a
- // value present (passed in from a landmark, e.g.)
-
- if( !name.empty()
- && self->mNameEditor && self->mNameEditor->getText().empty())
- {
- self->mNameEditor->setText(name);
- }
+ if(parcel_data.snapshot_id.notNull())
+ {
+ mSnapshotCtrl->setImageAssetID(parcel_data.snapshot_id);
+ }
- if( !desc.empty()
- && self->mDescEditor && self->mDescEditor->getText().empty())
- {
- self->mDescEditor->setText(desc);
- }
+ if( !parcel_data.name.empty()
+ && mNameEditor && mNameEditor->getText().empty())
+ {
+ mNameEditor->setText(parcel_data.name);
+ }
- std::string info_text;
- LLUIString traffic = self->getString("traffic_text");
- traffic.setArg("[TRAFFIC]", llformat("%d ", (int)dwell));
- info_text = traffic;
- LLUIString area = self->getString("area_text");
- area.setArg("[AREA]", llformat("%d", actual_area));
- info_text += area;
- if (flags & DFQ_FOR_SALE)
- {
- LLUIString forsale = self->getString("forsale_text");
- forsale.setArg("[PRICE]", llformat("%d", sale_price));
- info_text += forsale;
- }
- if (auction_id != 0)
- {
- LLUIString auction = self->getString("auction_text");
- auction.setArg("[ID]", llformat("%010d ", auction_id));
- info_text += auction;
- }
- if (self->mInfoEditor)
- {
- self->mInfoEditor->setText(info_text);
- }
+ if( !parcel_data.desc.empty()
+ && mDescEditor && mDescEditor->getText().empty())
+ {
+ mDescEditor->setText(parcel_data.desc);
+ }
- // HACK: Flag 0x2 == adult region,
- // Flag 0x1 == mature region, otherwise assume PG
- std::string rating = LLViewerRegion::accessToString(SIM_ACCESS_PG);
- if (flags & 0x2)
- {
- rating = LLViewerRegion::accessToString(SIM_ACCESS_ADULT);
- }
- else if (flags & 0x1)
- {
- rating = LLViewerRegion::accessToString(SIM_ACCESS_MATURE);
- }
+ std::string info_text;
+ LLUIString traffic = getString("traffic_text");
+ traffic.setArg("[TRAFFIC]", llformat("%d ", (int)parcel_data.dwell));
+ info_text = traffic;
+ LLUIString area = getString("area_text");
+ area.setArg("[AREA]", llformat("%d", parcel_data.actual_area));
+ info_text += area;
+ if (parcel_data.flags & DFQ_FOR_SALE)
+ {
+ LLUIString forsale = getString("forsale_text");
+ forsale.setArg("[PRICE]", llformat("%d", parcel_data.sale_price));
+ info_text += forsale;
+ }
+ if (parcel_data.auction_id != 0)
+ {
+ LLUIString auction = getString("auction_text");
+ auction.setArg("[ID]", llformat("%010d ", parcel_data.auction_id));
+ info_text += auction;
+ }
+ if (mInfoEditor)
+ {
+ mInfoEditor->setText(info_text);
+ }
- // Just use given region position for display
- S32 region_x = llround(self->mPosRegion.mV[0]);
- S32 region_y = llround(self->mPosRegion.mV[1]);
- S32 region_z = llround(self->mPosRegion.mV[2]);
+ // HACK: Flag 0x2 == adult region,
+ // Flag 0x1 == mature region, otherwise assume PG
+ std::string rating = LLViewerRegion::accessToString(SIM_ACCESS_PG);
+ if (parcel_data.flags & 0x2)
+ {
+ rating = LLViewerRegion::accessToString(SIM_ACCESS_ADULT);
+ }
+ else if (parcel_data.flags & 0x1)
+ {
+ rating = LLViewerRegion::accessToString(SIM_ACCESS_MATURE);
+ }
- // If the region position is zero, grab position from the global
- if(self->mPosRegion.isExactlyZero())
- {
- region_x = llround(global_x) % REGION_WIDTH_UNITS;
- region_y = llround(global_y) % REGION_WIDTH_UNITS;
- region_z = llround(global_z);
- }
+ // Just use given region position for display
+ S32 region_x = llround(mPosRegion.mV[0]);
+ S32 region_y = llround(mPosRegion.mV[1]);
+ S32 region_z = llround(mPosRegion.mV[2]);
- if(self->mPosGlobal.isExactlyZero())
- {
- self->mPosGlobal.setVec(global_x, global_y, global_z);
- }
+ // If the region position is zero, grab position from the global
+ if(mPosRegion.isExactlyZero())
+ {
+ region_x = llround(parcel_data.global_x) % REGION_WIDTH_UNITS;
+ region_y = llround(parcel_data.global_y) % REGION_WIDTH_UNITS;
+ region_z = llround(parcel_data.global_z);
+ }
- std::string location = llformat("%s %d, %d, %d (%s)",
- sim_name.c_str(), region_x, region_y, region_z, rating.c_str());
- if (self->mLocationDisplay)
- {
- self->mLocationDisplay->setText(location);
- }
+ if(mPosGlobal.isExactlyZero())
+ {
+ mPosGlobal.setVec(parcel_data.global_x, parcel_data.global_y, parcel_data.global_z);
+ }
- BOOL show_auction = (auction_id > 0);
- self->mAuctionBtn->setVisible(show_auction);
+ std::string location = llformat("%s %d, %d, %d (%s)",
+ parcel_data.sim_name.c_str(), region_x, region_y, region_z, rating.c_str());
+ if (mLocationDisplay)
+ {
+ mLocationDisplay->setText(location);
}
+
+ BOOL show_auction = (parcel_data.auction_id > 0);
+ mAuctionBtn->setVisible(show_auction);
}
@@ -392,7 +333,7 @@ void LLPanelPlace::displayParcelInfo(const LLVector3& pos_region,
U64 region_handle = to_region_handle(pos_global);
body["region_handle"] = ll_sd_from_U64(region_handle);
}
- LLHTTPClient::post(url, body, new LLRemoteParcelRequestResponder(this->getHandle()));
+ LLHTTPClient::post(url, body, new LLRemoteParcelRequestResponder(getObserverHandle()));
}
else
{
@@ -402,7 +343,6 @@ void LLPanelPlace::displayParcelInfo(const LLVector3& pos_region,
mSnapshotCtrl->setFallbackImageName("default_land_picture.j2c");
}
-
// static
void LLPanelPlace::onClickTeleport(void* data)
{
diff --git a/indra/newview/llpanelplace.h b/indra/newview/llpanelplace.h
index b11290493a..f90a1b0567 100644
--- a/indra/newview/llpanelplace.h
+++ b/indra/newview/llpanelplace.h
@@ -38,6 +38,8 @@
#include "v3dmath.h"
#include "lluuid.h"
+#include "llremoteparcelrequest.h"
+
class LLButton;
class LLTextBox;
class LLLineEditor;
@@ -46,7 +48,7 @@ class LLTextureCtrl;
class LLMessageSystem;
class LLInventoryItem;
-class LLPanelPlace : public LLPanel
+class LLPanelPlace : public LLPanel, LLRemoteParcelInfoObserver
{
public:
LLPanelPlace();
@@ -58,7 +60,7 @@ public:
// Ignore all old location information, useful if you are
// recycling an existing dialog and need to clear it.
- void setParcelID(const LLUUID& parcel_id);
+ /*virtual*/ void setParcelID(const LLUUID& parcel_id);
// Sends a request for data about the given parcel, which will
// only update the location if there is none already available.
@@ -67,7 +69,7 @@ public:
void setSnapshot(const LLUUID& snapshot_id);
void setLocationString(const std::string& location);
void setLandTypeString(const std::string& land_type);
- void setErrorStatus(U32 status, const std::string& reason);
+ /*virtual*/ void setErrorStatus(U32 status, const std::string& reason);
void resetName(const std::string& name);
void sendParcelInfoRequest();
@@ -75,7 +77,7 @@ public:
const LLUUID& landmark_asset_id,
const LLUUID& region_id,
const LLVector3d& pos_global);
- static void processParcelInfoReply(LLMessageSystem* msg, void**);
+ /*virtual*/ void processParcelInfo(const LLParcelData& parcel_data);
LLTextureCtrl *getSnapshotCtrl() const { return mSnapshotCtrl; }
@@ -113,9 +115,6 @@ protected:
LLButton* mMapBtn;
//LLButton* mLandmarkBtn;
LLButton* mAuctionBtn;
-
- typedef std::list<LLPanelPlace*> panel_list_t;
- static panel_list_t sAllPanels;
};
#endif // LL_LLPANELPLACE_H
diff --git a/indra/newview/llpanelplaceinfo.cpp b/indra/newview/llpanelplaceinfo.cpp
new file mode 100644
index 0000000000..3ed93e5598
--- /dev/null
+++ b/indra/newview/llpanelplaceinfo.cpp
@@ -0,0 +1,382 @@
+/**
+ * @file llpanelplaceinfo.cpp
+ * @brief Displays place information in Side Tray.
+ *
+ * $LicenseInfo:firstyear=2009&license=viewergpl$
+ *
+ * Copyright (c) 2004-2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llpanelplaceinfo.h"
+
+// *TODO: reorder includes to match the coding standard
+#include "llinventory.h"
+#include "llviewercontrol.h"
+#include "llqueryflags.h"
+#include "llui.h"
+#include "llsecondlifeurls.h"
+#include "llfloater.h"
+#include "llfloaterreg.h"
+
+#include "llagent.h"
+#include "llviewerwindow.h"
+#include "llviewerinventory.h"
+#include "llbutton.h"
+#include "llfloaterworldmap.h"
+#include "lllineeditor.h"
+#include "llinventorymodel.h"
+#include "lluiconstants.h"
+#include "roles_constants.h"
+#include "lltextbox.h"
+#include "llviewertexteditor.h"
+#include "lltexturectrl.h"
+#include "lltrans.h"
+#include "llworldmap.h"
+#include "llviewerregion.h"
+#include "lluictrlfactory.h"
+#include "llweb.h"
+#include "llsdutil.h"
+
+static LLRegisterPanelClassWrapper<LLPanelPlaceInfo> t_places("panel_landmark_info");
+
+LLPanelPlaceInfo::LLPanelPlaceInfo()
+: LLPanel(),
+ mParcelID(),
+ mRequestedID(),
+ mPosRegion(),
+ mLandmarkID()
+{}
+
+LLPanelPlaceInfo::~LLPanelPlaceInfo()
+{
+ if (mParcelID.notNull())
+ {
+ LLRemoteParcelInfoProcessor::getInstance()->removeObserver(mParcelID, this);
+ }
+}
+
+BOOL LLPanelPlaceInfo::postBuild()
+{
+ // Since this is only used in the directory browser, always
+ // disable the snapshot control. Otherwise clicking on it will
+ // open a texture picker.
+ mSnapshotCtrl = getChild<LLTextureCtrl>("logo");
+ mSnapshotCtrl->setEnabled(FALSE);
+
+ mRegionName = getChild<LLTextBox>("region_name");
+ mParcelName = getChild<LLTextBox>("parcel_name");
+ mDescEditor = getChild<LLTextEditor>("description");
+ mRating = getChild<LLIconCtrl>("maturity");
+
+ mOwner = getChild<LLTextBox>("owner");
+ mCreator = getChild<LLTextBox>("creator");
+ mCreated = getChild<LLTextBox>("created");
+
+ mTitleEditor = getChild<LLLineEditor>("title_editor");
+ mTitleEditor->setCommitCallback(boost::bind(&LLPanelPlaceInfo::onCommitTitleOrNote, this, TITLE));
+
+ mNotesEditor = getChild<LLTextEditor>("notes_editor");
+ mNotesEditor->setCommitCallback(boost::bind(&LLPanelPlaceInfo::onCommitTitleOrNote, this, NOTE));
+ mNotesEditor->setCommitOnFocusLost(true);
+
+ mInfoPanel = getChild<LLPanel>("info_panel");
+
+ return TRUE;
+}
+
+void LLPanelPlaceInfo::displayItemInfo(const LLInventoryItem* pItem)
+{
+ if (!pItem)
+ return;
+
+ mLandmarkID = pItem->getUUID();
+
+ if(!gCacheName)
+ return;
+
+ const LLPermissions& perm = pItem->getPermissions();
+
+ //////////////////
+ // CREATOR NAME //
+ //////////////////
+ if (pItem->getCreatorUUID().notNull())
+ {
+ std::string name;
+ LLUUID creator_id = pItem->getCreatorUUID();
+ if (!gCacheName->getFullName(creator_id, name))
+ {
+ gCacheName->get(creator_id, FALSE,
+ boost::bind(&LLPanelPlaceInfo::nameUpdatedCallback, this, mCreator, _2, _3));
+ }
+ mCreator->setText(name);
+ }
+ else
+ {
+ mCreator->setText(getString("unknown"));
+ }
+
+ ////////////////
+ // OWNER NAME //
+ ////////////////
+ if(perm.isOwned())
+ {
+ std::string name;
+ if (perm.isGroupOwned())
+ {
+ LLUUID group_id = perm.getGroup();
+ if (!gCacheName->getGroupName(group_id, name))
+ {
+ gCacheName->get(group_id, TRUE,
+ boost::bind(&LLPanelPlaceInfo::nameUpdatedCallback, this, mOwner, _2, _3));
+ }
+ }
+ else
+ {
+ LLUUID owner_id = perm.getOwner();
+ if (!gCacheName->getFullName(owner_id, name))
+ {
+ gCacheName->get(owner_id, FALSE,
+ boost::bind(&LLPanelPlaceInfo::nameUpdatedCallback, this, mOwner, _2, _3));
+ }
+ }
+ mOwner->setText(name);
+ }
+ else
+ {
+ mOwner->setText(getString("public"));
+ }
+
+ //////////////////
+ // ACQUIRE DATE //
+ //////////////////
+ time_t time_utc = pItem->getCreationDate();
+ if (0 == time_utc)
+ {
+ mCreated->setText(getString("unknown"));
+ }
+ else
+ {
+ std::string timeStr = getString("acquired_date");
+ LLSD substitution;
+ substitution["datetime"] = (S32) time_utc;
+ LLStringUtil::format (timeStr, substitution);
+ mCreated->setText(timeStr);
+ }
+
+ mTitleEditor->setText(pItem->getName());
+ mNotesEditor->setText(pItem->getDescription());
+}
+
+void LLPanelPlaceInfo::nameUpdatedCallback(
+ LLTextBox* text,
+ const std::string& first,
+ const std::string& last)
+{
+ text->setText(first + " " + last);
+}
+
+void LLPanelPlaceInfo::resetLocation()
+{
+ mParcelID.setNull();
+ mRequestedID.setNull();
+ mLandmarkID.setNull();
+ mPosRegion.clearVec();
+ std::string not_available = getString("not_available");
+ mRating->setValue(not_available);
+ mRegionName->setText(not_available);
+ mParcelName->setText(not_available);
+ mDescEditor->setText(not_available);
+ mCreator->setText(not_available);
+ mOwner->setText(not_available);
+ mCreated->setText(not_available);
+ mTitleEditor->setText(LLStringUtil::null);
+ mNotesEditor->setText(LLStringUtil::null);
+}
+
+//virtual
+void LLPanelPlaceInfo::setParcelID(const LLUUID& parcel_id)
+{
+ mParcelID = parcel_id;
+ sendParcelInfoRequest();
+}
+
+void LLPanelPlaceInfo::sendParcelInfoRequest()
+{
+ if (mParcelID != mRequestedID)
+ {
+ LLRemoteParcelInfoProcessor::getInstance()->addObserver(mParcelID, this);
+ LLRemoteParcelInfoProcessor::getInstance()->sendParcelInfoRequest(mParcelID);
+
+ mRequestedID = mParcelID;
+ }
+}
+
+// virtual
+void LLPanelPlaceInfo::setErrorStatus(U32 status, const std::string& reason)
+{
+ // We only really handle 404 and 499 errors
+ std::string error_text;
+ if(status == 404)
+ {
+ error_text = getString("server_error_text");
+ }
+ else if(status == 499)
+ {
+ error_text = getString("server_forbidden_text");
+ }
+ mDescEditor->setText(error_text);
+}
+
+// virtual
+void LLPanelPlaceInfo::processParcelInfo(const LLParcelData& parcel_data)
+{
+ if(parcel_data.snapshot_id.notNull())
+ {
+ mSnapshotCtrl->setImageAssetID(parcel_data.snapshot_id);
+ }
+
+ if( !parcel_data.name.empty())
+ {
+ mParcelName->setText(parcel_data.name);
+ }
+
+ if( !parcel_data.desc.empty())
+ {
+ mDescEditor->setText(parcel_data.desc);
+ }
+
+ // HACK: Flag 0x2 == adult region,
+ // Flag 0x1 == mature region, otherwise assume PG
+ std::string rating = LLViewerRegion::accessToString(SIM_ACCESS_PG);
+ std::string rating_icon = "icon_event.tga";
+ if (parcel_data.flags & 0x2)
+ {
+ rating = LLViewerRegion::accessToString(SIM_ACCESS_ADULT);
+ rating_icon = "icon_event_adult.tga";
+ }
+ else if (parcel_data.flags & 0x1)
+ {
+ rating = LLViewerRegion::accessToString(SIM_ACCESS_MATURE);
+ rating_icon = "icon_event_mature.tga";
+ }
+ mRating->setValue(rating_icon);
+
+ // Just use given region position for display
+ S32 region_x = llround(mPosRegion.mV[0]);
+ S32 region_y = llround(mPosRegion.mV[1]);
+ S32 region_z = llround(mPosRegion.mV[2]);
+
+ // If the region position is zero, grab position from the global
+ if(mPosRegion.isExactlyZero())
+ {
+ region_x = llround(parcel_data.global_x) % REGION_WIDTH_UNITS;
+ region_y = llround(parcel_data.global_y) % REGION_WIDTH_UNITS;
+ region_z = llround(parcel_data.global_z);
+ }
+
+ if (!parcel_data.sim_name.empty())
+ {
+ std::string name = llformat("%s (%d, %d, %d)",
+ parcel_data.sim_name.c_str(), region_x, region_y, region_z);
+ mRegionName->setText(name);
+ }
+}
+
+void LLPanelPlaceInfo::displayParcelInfo(const LLVector3& pos_region,
+ const LLUUID& region_id,
+ const LLVector3d& pos_global)
+{
+ LLSD body;
+ mPosRegion = pos_region;
+ std::string url = gAgent.getRegion()->getCapability("RemoteParcelRequest");
+ if (!url.empty())
+ {
+ body["location"] = ll_sd_from_vector3(pos_region);
+ if (!region_id.isNull())
+ {
+ body["region_id"] = region_id;
+ }
+ if (!pos_global.isExactlyZero())
+ {
+ U64 region_handle = to_region_handle(pos_global);
+ body["region_handle"] = ll_sd_from_U64(region_handle);
+ }
+ LLHTTPClient::post(url, body, new LLRemoteParcelRequestResponder(getObserverHandle()));
+ }
+ else
+ {
+ mDescEditor->setText(getString("server_update_text"));
+ }
+ mSnapshotCtrl->setImageAssetID(LLUUID::null);
+ mSnapshotCtrl->setFallbackImageName("default_land_picture.j2c");
+}
+
+void LLPanelPlaceInfo::onCommitTitleOrNote(LANDMARK_INFO_TYPE type)
+{
+ LLInventoryItem* item = gInventory.getItem(mLandmarkID);
+ if (!item)
+ return;
+
+ std::string current_value;
+ std::string item_value;
+ if (type == TITLE)
+ {
+ if (mTitleEditor)
+ {
+ current_value = mTitleEditor->getText();
+ item_value = item->getName();
+ }
+ }
+ else
+ {
+ if (mNotesEditor)
+ {
+ current_value = mNotesEditor->getText();
+ item_value = item->getDescription();
+ }
+ }
+
+ if (item_value != current_value &&
+ gAgent.allowOperation(PERM_MODIFY, item->getPermissions(), GP_OBJECT_MANIPULATE))
+ {
+ LLPointer<LLViewerInventoryItem> new_item = new LLViewerInventoryItem(item);
+
+ if (type == TITLE)
+ {
+ new_item->rename(current_value);
+ }
+ else
+ {
+ new_item->setDescription(current_value);
+ }
+
+ new_item->updateServer(FALSE);
+ gInventory.updateItem(new_item);
+ gInventory.notifyObservers();
+ }
+}
diff --git a/indra/newview/llpanelplaceinfo.h b/indra/newview/llpanelplaceinfo.h
new file mode 100644
index 0000000000..f88e29bc91
--- /dev/null
+++ b/indra/newview/llpanelplaceinfo.h
@@ -0,0 +1,109 @@
+/**
+ * @file llpanelplace.h
+ * @brief Displays place information in Side Tray.
+ *
+ * $LicenseInfo:firstyear=2009&license=viewergpl$
+ *
+ * Copyright (c) 2004-2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#ifndef LL_LLPANELPLACEINFO_H
+#define LL_LLPANELPLACEINFO_H
+
+#include "llpanel.h"
+
+#include "v3dmath.h"
+#include "lluuid.h"
+
+#include "lliconctrl.h"
+
+#include "llremoteparcelrequest.h"
+
+class LLButton;
+class LLTextBox;
+class LLLineEditor;
+class LLTextEditor;
+class LLTextureCtrl;
+class LLInventoryItem;
+
+class LLPanelPlaceInfo : public LLPanel, LLRemoteParcelInfoObserver
+{
+public:
+ LLPanelPlaceInfo();
+ /*virtual*/ ~LLPanelPlaceInfo();
+
+ /*virtual*/ BOOL postBuild();
+
+ void resetLocation();
+ // Ignore all old location information, useful if you are
+ // recycling an existing dialog and need to clear it.
+
+ /*virtual*/ void setParcelID(const LLUUID& parcel_id);
+ // Sends a request for data about the given parcel, which will
+ // only update the location if there is none already available.
+
+ void displayItemInfo(const LLInventoryItem* pItem);
+ /*virtual*/ void setErrorStatus(U32 status, const std::string& reason);
+
+ void sendParcelInfoRequest();
+ void displayParcelInfo(const LLVector3& pos_region,
+ const LLUUID& region_id,
+ const LLVector3d& pos_global);
+ void nameUpdatedCallback(LLTextBox* text,
+ const std::string& first,
+ const std::string& last);
+
+ /*virtual*/ void processParcelInfo(const LLParcelData& parcel_data);
+
+private:
+ enum LANDMARK_INFO_TYPE
+ {
+ TITLE,
+ NOTE
+ };
+
+ void onCommitTitleOrNote(LANDMARK_INFO_TYPE type);
+
+ LLUUID mParcelID;
+ LLUUID mRequestedID;
+ LLUUID mLandmarkID;
+ LLVector3 mPosRegion;
+
+ LLTextureCtrl* mSnapshotCtrl;
+ LLTextBox* mRegionName;
+ LLTextBox* mParcelName;
+ LLTextEditor* mDescEditor;
+ LLIconCtrl* mRating;
+ LLTextBox* mOwner;
+ LLTextBox* mCreator;
+ LLTextBox* mCreated;
+ LLLineEditor* mTitleEditor;
+ LLTextEditor* mNotesEditor;
+ LLTextBox* mLocationEditor;
+ LLPanel* mInfoPanel;
+};
+
+#endif // LL_LLPANELPLACEINFO_H
diff --git a/indra/newview/llpanelplaces.cpp b/indra/newview/llpanelplaces.cpp
new file mode 100644
index 0000000000..d18cac9f42
--- /dev/null
+++ b/indra/newview/llpanelplaces.cpp
@@ -0,0 +1,293 @@
+/**
+ * @file llpanelplaces.cpp
+ * @brief Side Bar "Places" panel
+ *
+ * $LicenseInfo:firstyear=2009&license=viewergpl$
+ *
+ * Copyright (c) 2004-2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llfloaterreg.h"
+#include "llsearcheditor.h"
+#include "lltabcontainer.h"
+#include "lluictrlfactory.h"
+
+#include "lllandmark.h"
+
+#include "llagent.h"
+#include "lllandmarklist.h"
+#include "llfloaterworldmap.h"
+#include "llpanelplaces.h"
+#include "llpanellandmarks.h"
+#include "llpanelteleporthistory.h"
+#include "llviewerregion.h"
+
+static LLRegisterPanelClassWrapper<LLPanelPlaces> t_places("panel_places");
+
+LLPanelPlaces::LLPanelPlaces()
+ : LLPanel(),
+ mFilterSubString(LLStringUtil::null),
+ mActivePanel(NULL),
+ mSearchEditor(NULL),
+ mPlaceInfo(NULL)
+{
+ gInventory.addObserver(this);
+
+ //LLUICtrlFactory::getInstance()->buildPanel(this, "panel_places.xml"); // Called from LLRegisterPanelClass::defaultPanelClassBuilder()
+}
+
+LLPanelPlaces::~LLPanelPlaces()
+{
+ if (gInventory.containsObserver(this))
+ gInventory.removeObserver(this);
+}
+
+BOOL LLPanelPlaces::postBuild()
+{
+ mTabContainer = getChild<LLTabContainer>("Places Tabs");
+ if (mTabContainer)
+ {
+ mTabContainer->setCommitCallback(boost::bind(&LLPanelPlaces::onTabSelected, this));
+ }
+
+ mSearchEditor = getChild<LLSearchEditor>("Filter");
+ if (mSearchEditor)
+ {
+ mSearchEditor->setSearchCallback(boost::bind(&LLPanelPlaces::onSearchEdit, this, _1));
+ }
+
+ mPlaceInfo = dynamic_cast<LLPanelPlaceInfo*>(getChild<LLPanel>("panel_landmark_info"));
+ if (mPlaceInfo)
+ {
+ LLButton* back_btn = mPlaceInfo->getChild<LLButton>("back_btn");
+ if (back_btn)
+ {
+ back_btn->setClickedCallback(boost::bind(&LLPanelPlaces::onBackButtonClicked, this));
+ }
+ }
+
+ //childSetAction("share_btn", boost::bind(&LLPanelPlaces::onShareButtonClicked, this), this);
+ childSetAction("teleport_btn", boost::bind(&LLPanelPlaces::onTeleportButtonClicked, this), this);
+ childSetAction("map_btn", boost::bind(&LLPanelPlaces::onShowOnMapButtonClicked, this), this);
+
+ return TRUE;
+}
+
+void LLPanelPlaces::draw()
+{
+ LLPanel::draw();
+}
+
+void LLPanelPlaces::onOpen(const LLSD& key)
+{
+ if(key.size() == 0)
+ return;
+
+ togglePlaceInfoPanel(TRUE);
+
+ mPlaceInfoType = key["type"].asInteger();
+
+ if (mPlaceInfoType == AGENT)
+ {
+ // We don't need to teleport to the current location so disable the button
+ getChild<LLButton>("teleport_btn")->setEnabled(FALSE);
+
+ mPlaceInfo->displayParcelInfo(gAgent.getPositionAgent(),
+ gAgent.getRegion()->getRegionID(),
+ gAgent.getPositionGlobal());
+ }
+ else if (mPlaceInfoType == LANDMARK)
+ {
+ LLInventoryItem* item = gInventory.getItem(key["id"].asUUID());
+ if (!item)
+ return;
+
+ mPlaceInfo->displayItemInfo(item);
+
+ LLLandmark* landmark = gLandmarkList.getAsset(item->getAssetUUID());
+ if (!landmark)
+ return;
+
+ LLUUID region_id;
+ landmark->getRegionID(region_id);
+ LLVector3d pos_global;
+ landmark->getGlobalPos(pos_global);
+ mPlaceInfo->displayParcelInfo(landmark->getRegionPos(),
+ region_id,
+ pos_global);
+
+ }
+ else if (mPlaceInfoType == TELEPORT_HISTORY)
+ {
+ S32 index = key["id"].asInteger();
+
+ const LLTeleportHistory::slurl_list_t& hist_items =
+ LLTeleportHistory::getInstance()->getItems();
+
+ LLVector3d pos_global = hist_items[index].mGlobalPos;
+
+ F32 region_x = (F32)fmod( pos_global.mdV[VX], (F64)REGION_WIDTH_METERS );
+ F32 region_y = (F32)fmod( pos_global.mdV[VY], (F64)REGION_WIDTH_METERS );
+
+ LLVector3 pos_local(region_x, region_y, (F32)pos_global.mdV[VZ]);
+
+ mPlaceInfo->displayParcelInfo(pos_local,
+ hist_items[index].mRegionID,
+ pos_global);
+ }
+}
+
+void LLPanelPlaces::onSearchEdit(const std::string& search_string)
+{
+ if (mFilterSubString != search_string)
+ {
+ mFilterSubString = search_string;
+
+ LLStringUtil::toUpper(mFilterSubString);
+ LLStringUtil::trimHead(mFilterSubString);
+
+ mSearchEditor->setText(mFilterSubString);
+
+ mActivePanel->onSearchEdit(mFilterSubString);
+ }
+}
+
+void LLPanelPlaces::onTabSelected()
+{
+ if (!mActivePanel)
+ return;
+
+ mActivePanel = dynamic_cast<LLPanelPlacesTab*>(mTabContainer->getCurrentPanel());
+
+ if (mActivePanel)
+ {
+ mActivePanel->onSearchEdit(mFilterSubString);
+ mActivePanel->onTabSelected();
+ }
+}
+
+void LLPanelPlaces::onShareButtonClicked()
+{
+ // TODO: Launch the "Things" Share wizard
+}
+
+/*
+void LLPanelPlaces::onAddLandmarkButtonClicked()
+{
+ LLFloaterReg::showInstance("add_landmark");
+}
+
+void LLPanelPlaces::onCopySLURLButtonClicked()
+{
+ mActivePanel->onCopySLURL();
+}
+*/
+
+void LLPanelPlaces::onTeleportButtonClicked()
+{
+ mActivePanel->onTeleport();
+}
+
+void LLPanelPlaces::onShowOnMapButtonClicked()
+{
+ if (!mPlaceInfoType)
+ {
+ LLVector3d global_pos = gAgent.getPositionGlobal();
+ if (!global_pos.isExactlyZero())
+ {
+ LLFloaterWorldMap::getInstance()->trackLocation(global_pos);
+ LLFloaterReg::showInstance("world_map", "center");
+ }
+ }
+ else
+ {
+ mActivePanel->onShowOnMap();
+ }
+}
+
+void LLPanelPlaces::onBackButtonClicked()
+{
+ togglePlaceInfoPanel(FALSE);
+}
+
+void LLPanelPlaces::togglePlaceInfoPanel(BOOL visible)
+{
+ if (!mPlaceInfo)
+ return;
+
+ mPlaceInfo->setVisible(visible);
+ mSearchEditor->setVisible(!visible);
+ mTabContainer->setVisible(!visible);
+
+ if (visible)
+ {
+ mPlaceInfo->resetLocation();
+
+ LLRect rect = getRect();
+ LLRect new_rect = LLRect(rect.mLeft, rect.mTop, rect.mRight, mTabContainer->getRect().mBottom);
+ mPlaceInfo->reshape(new_rect.getWidth(),new_rect.getHeight());
+ }
+}
+
+//virtual
+void LLPanelPlaces::changed(U32 mask)
+{
+ if (!(gInventory.isInventoryUsable() && LLTeleportHistory::getInstance()))
+ return;
+
+ LLLandmarksPanel* landmarks_panel = new LLLandmarksPanel();
+ if (landmarks_panel)
+ {
+ landmarks_panel->setPanelPlacesButtons(this);
+
+ mTabContainer->addTabPanel(
+ LLTabContainer::TabPanelParams().
+ panel(landmarks_panel).
+ label("Landmarks").
+ insert_at(LLTabContainer::END));
+ }
+
+ LLTeleportHistoryPanel* teleport_history_panel = new LLTeleportHistoryPanel();
+ if (teleport_history_panel)
+ {
+ teleport_history_panel->setPanelPlacesButtons(this);
+
+ mTabContainer->addTabPanel(
+ LLTabContainer::TabPanelParams().
+ panel(teleport_history_panel).
+ label("Teleport History").
+ insert_at(LLTabContainer::END));
+ }
+
+ mTabContainer->selectFirstTab();
+
+ mActivePanel = dynamic_cast<LLPanelPlacesTab*>(mTabContainer->getCurrentPanel());
+
+ // we don't need to monitor inventory changes anymore,
+ // so remove the observer
+ gInventory.removeObserver(this);
+}
diff --git a/indra/newview/llpanelplaces.h b/indra/newview/llpanelplaces.h
new file mode 100644
index 0000000000..533fb8dd82
--- /dev/null
+++ b/indra/newview/llpanelplaces.h
@@ -0,0 +1,85 @@
+/**
+ * @file llpanelplaces.h
+ * @brief Side Bar "Places" panel
+ *
+ * $LicenseInfo:firstyear=2009&license=viewergpl$
+ *
+ * Copyright (c) 2004-2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#ifndef LL_LLPANELPLACES_H
+#define LL_LLPANELPLACES_H
+
+#include "llpanel.h"
+
+#include "llinventory.h"
+
+#include "llinventorymodel.h"
+#include "llpanelplaceinfo.h"
+
+class LLPanelPlacesTab;
+class LLSearchEditor;
+class LLTabContainer;
+
+class LLPanelPlaces : public LLPanel, LLInventoryObserver
+{
+public:
+ enum PLACE_INFO_TYPE
+ {
+ AGENT,
+ LANDMARK,
+ TELEPORT_HISTORY
+ };
+
+ LLPanelPlaces();
+ virtual ~LLPanelPlaces();
+
+ /*virtual*/ BOOL postBuild();
+ /*virtual*/ void draw();
+ /*virtual*/ void changed(U32 mask);
+ /*virtual*/ void onOpen(const LLSD& key);
+
+ void onSearchEdit(const std::string& search_string);
+ void onTabSelected();
+ //void onAddLandmarkButtonClicked();
+ //void onCopySLURLButtonClicked();
+ void onShareButtonClicked();
+ void onTeleportButtonClicked();
+ void onShowOnMapButtonClicked();
+ void onBackButtonClicked();
+ void togglePlaceInfoPanel(BOOL visible);
+
+private:
+ LLSearchEditor* mSearchEditor;
+ LLPanelPlacesTab* mActivePanel;
+ LLTabContainer* mTabContainer;
+ LLPanelPlaceInfo* mPlaceInfo;
+ std::string mFilterSubString;
+
+ // Place information type currently shown in Information panel
+ S32 mPlaceInfoType;
+};
+
+#endif //LL_LLPANELPLACES_H
diff --git a/indra/newview/llpanelplacestab.cpp b/indra/newview/llpanelplacestab.cpp
new file mode 100644
index 0000000000..2b38aa0890
--- /dev/null
+++ b/indra/newview/llpanelplacestab.cpp
@@ -0,0 +1,98 @@
+/**
+ * @file llpanelplacestab.cpp
+ * @brief Tabs interface for Side Bar "Places" panel
+ *
+ * $LicenseInfo:firstyear=2009&license=viewergpl$
+ *
+ * Copyright (c) 2004-2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llwindow.h"
+
+#include "llnotifications.h"
+
+#include "llslurl.h"
+#include "llpanelplacestab.h"
+#include "llworldmap.h"
+
+void LLPanelPlacesTab::setPanelPlacesButtons(LLPanelPlaces* panel)
+{
+ //mShareBtn = panel->getChild<LLButton>("share_btn");
+ mTeleportBtn = panel->getChild<LLButton>("teleport_btn");
+ mShowOnMapBtn = panel->getChild<LLButton>("map_btn");
+}
+
+void LLPanelPlacesTab::onRegionResponse(const LLVector3d& landmark_global_pos,
+ U64 region_handle,
+ const std::string& url,
+ const LLUUID& snapshot_id,
+ bool teleport)
+{
+ std::string sim_name;
+ bool gotSimName = LLWorldMap::getInstance()->simNameFromPosGlobal( landmark_global_pos, sim_name );
+
+ std::string sl_url;
+ if ( gotSimName )
+ {
+ F32 region_x = (F32)fmod( landmark_global_pos.mdV[VX], (F64)REGION_WIDTH_METERS );
+ F32 region_y = (F32)fmod( landmark_global_pos.mdV[VY], (F64)REGION_WIDTH_METERS );
+
+ sl_url = LLSLURL::buildSLURL(sim_name, llround(region_x), llround(region_y), llround((F32)landmark_global_pos.mdV[VZ]));
+ }
+ else
+ {
+ sl_url = "";
+ }
+
+ LLView::getWindow()->copyTextToClipboard(utf8str_to_wstring(sl_url));
+
+ LLSD args;
+ args["SLURL"] = sl_url;
+
+ LLNotifications::instance().add("CopySLURL", args);
+}
+
+void LLPanelPlacesTab::onTabSelected()
+{
+ togglePanelPlacesButtons(TRUE);
+}
+
+void LLPanelPlacesTab::togglePanelPlacesButtons(BOOL enabled)
+{
+ if (enabled)
+ {
+ //mShareBtn->setEnabled(TRUE);
+ mTeleportBtn->setEnabled(TRUE);
+ mShowOnMapBtn->setEnabled(TRUE);
+ }
+ else
+ {
+ //mShareBtn->setEnabled(FALSE);
+ mTeleportBtn->setEnabled(FALSE);
+ mShowOnMapBtn->setEnabled(FALSE);
+ }
+}
diff --git a/indra/newview/llpanelplacestab.h b/indra/newview/llpanelplacestab.h
new file mode 100644
index 0000000000..5d6b7d1090
--- /dev/null
+++ b/indra/newview/llpanelplacestab.h
@@ -0,0 +1,68 @@
+/**
+ * @file llpanelplacestab.h
+ * @brief Tabs interface for Side Bar "Places" panel
+ *
+ * $LicenseInfo:firstyear=2009&license=viewergpl$
+ *
+ * Copyright (c) 2004-2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#ifndef LL_LLPANELPLACESTAB_H
+#define LL_LLPANELPLACESTAB_H
+
+#include "llpanel.h"
+
+#include "llpanelplaces.h"
+
+class LLPanelPlacesTab : public LLPanel
+{
+public:
+ LLPanelPlacesTab() : LLPanel() {}
+ virtual ~LLPanelPlacesTab() {}
+
+ virtual void onSearchEdit(const std::string& string) = 0;
+ //virtual void onShare() = 0;
+ virtual void onShowOnMap() = 0;
+ virtual void onTeleport() = 0;
+ //virtual void onCopySLURL() = 0;
+
+ void setPanelPlacesButtons(LLPanelPlaces* panel);
+ void onRegionResponse(const LLVector3d& landmark_global_pos,
+ U64 region_handle,
+ const std::string& url,
+ const LLUUID& snapshot_id,
+ bool teleport);
+ void onTabSelected();
+
+protected:
+ void togglePanelPlacesButtons(BOOL enabled);
+
+private:
+ //LLButton* mShareBtn;
+ LLButton* mTeleportBtn;
+ LLButton* mShowOnMapBtn;
+};
+
+#endif //LL_LLPANELPLACESTAB_H
diff --git a/indra/newview/llpanelprofileview.cpp b/indra/newview/llpanelprofileview.cpp
new file mode 100644
index 0000000000..0d25272f88
--- /dev/null
+++ b/indra/newview/llpanelprofileview.cpp
@@ -0,0 +1,112 @@
+/**
+* @file llpanelprofileview.cpp
+* @brief Side tray "Profile View" panel
+*
+* $LicenseInfo:firstyear=2009&license=viewergpl$
+*
+* Copyright (c) 2009, Linden Research, Inc.
+*
+* Second Life Viewer Source Code
+* The source code in this file ("Source Code") is provided by Linden Lab
+* to you under the terms of the GNU General Public License, version 2.0
+* ("GPL"), unless you have obtained a separate licensing agreement
+* ("Other License"), formally executed by you and Linden Lab. Terms of
+* the GPL can be found in doc/GPL-license.txt in this distribution, or
+* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+*
+* There are special exceptions to the terms and conditions of the GPL as
+* it is applied to this Source Code. View the full text of the exception
+* in the file doc/FLOSS-exception.txt in this software distribution, or
+* online at
+* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+*
+* By copying, modifying or distributing this software, you acknowledge
+* that you have read and understood your obligations described above,
+* and agree to abide by those obligations.
+*
+* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+* COMPLETENESS OR PERFORMANCE.
+* $/LicenseInfo$
+*/
+
+#include "llviewerprecompiledheaders.h"
+#include "llpanelprofileview.h"
+#include <llfloaterreg.h>
+#include <lltabcontainer.h>
+#include <lluictrlfactory.h>
+#include "llpanelavatar.h"
+#include "llpanelpicks.h"
+
+static LLRegisterPanelClassWrapper<LLPanelProfileView> t_panel_target_profile("panel_profile_view");
+static LLRegisterPanelClassWrapper<LLPanelAvatarNotes> t_panel_notes("panel_notes");
+
+static std::string PANEL_PROFILE = "panel_profile";
+static std::string PANEL_PICKS = "panel_picks";
+static std::string PANEL_NOTES = "panel_notes";
+
+LLPanelProfileView::LLPanelProfileView()
+: LLPanel()
+{
+}
+
+LLPanelProfileView::~LLPanelProfileView(void)
+{
+}
+
+/*virtual*/
+void LLPanelProfileView::onOpen(const LLSD& key)
+{
+ if (!getVisible())
+ setVisible(TRUE);
+
+ LLUUID id(key.asUUID());
+ if(id.notNull() && mProfileId.notNull() && mProfileId != id)
+ {
+ mTabs[PANEL_PROFILE]->clear();
+ mTabs[PANEL_PICKS]->clear();
+ mTabs[PANEL_NOTES]->clear();
+ }
+
+ mProfileId = id;
+ mTabs[PANEL_PROFILE]->onOpen(mProfileId);
+ mTabs[PANEL_PICKS]->setAvatarId(mProfileId);
+ mTabs[PANEL_PICKS]->updateData();
+ mTabs[PANEL_NOTES]->setAvatarId(mProfileId);
+ mTabs[PANEL_NOTES]->updateData();
+
+ std::string full_name;
+ gCacheName->getFullName(key,full_name);
+ childSetValue("user_name",full_name);
+}
+
+
+BOOL LLPanelProfileView::postBuild()
+{
+ mTabContainer = getChild<LLTabContainer>("profile_tabs");
+ mTabContainer->setCommitCallback(boost::bind(&LLPanelProfileView::onTabSelected, this, _2));
+
+ mTabs[PANEL_PROFILE] = (getChild<LLPanelAvatarProfile>(PANEL_PROFILE));
+ mTabs[PANEL_PICKS] = (getChild<LLPanelPicks>(PANEL_PICKS));
+ mTabs[PANEL_NOTES] = (getChild<LLPanelAvatarNotes>(PANEL_NOTES));
+
+ childSetCommitCallback("back",boost::bind(&LLPanelProfileView::onBackBtnClick,this),NULL);
+
+ return TRUE;
+}
+
+
+//private
+
+void LLPanelProfileView::initTabs(const LLSD& key)
+{
+}
+
+void LLPanelProfileView::onTabSelected(const LLSD& param)
+{
+}
+
+void LLPanelProfileView::onBackBtnClick()
+{
+ setVisible(FALSE);
+}
diff --git a/indra/newview/llpanelprofileview.h b/indra/newview/llpanelprofileview.h
new file mode 100644
index 0000000000..2d89f15fe4
--- /dev/null
+++ b/indra/newview/llpanelprofileview.h
@@ -0,0 +1,69 @@
+/**
+* @file llpanelprofileview.h
+* @brief Side tray "Profile View" panel
+*
+* $LicenseInfo:firstyear=2009&license=viewergpl$
+*
+* Copyright (c) 2009, Linden Research, Inc.
+*
+* Second Life Viewer Source Code
+* The source code in this file ("Source Code") is provided by Linden Lab
+* to you under the terms of the GNU General Public License, version 2.0
+* ("GPL"), unless you have obtained a separate licensing agreement
+* ("Other License"), formally executed by you and Linden Lab. Terms of
+* the GPL can be found in doc/GPL-license.txt in this distribution, or
+* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+*
+* There are special exceptions to the terms and conditions of the GPL as
+* it is applied to this Source Code. View the full text of the exception
+* in the file doc/FLOSS-exception.txt in this software distribution, or
+* online at
+* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+*
+* By copying, modifying or distributing this software, you acknowledge
+* that you have read and understood your obligations described above,
+* and agree to abide by those obligations.
+*
+* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+* COMPLETENESS OR PERFORMANCE.
+* $/LicenseInfo$
+*/
+
+#ifndef LL_LLPANELPROFILEVIEW_H
+#define LL_LLPANELPROFILEVIEW_H
+
+#include <llpanel.h>
+
+class LLPanelProfileTab;
+class LLTabContainer;
+
+class LLPanelProfileView : public LLPanel
+{
+ LOG_CLASS(LLPanelProfileView);
+ friend class LLUICtrlFactory;
+
+public:
+ LLPanelProfileView();
+
+ ~LLPanelProfileView(void);
+
+ void onTabSelected(const LLSD& param);
+
+ void onOpen(const LLSD& key);
+
+ BOOL postBuild();
+
+ void initTabs(const LLSD& key);
+
+ void onBackBtnClick();
+
+private:
+ LLTabContainer* mTabContainer;
+
+ typedef std::map<std::string, LLPanelProfileTab*> profile_tabs_t;
+ profile_tabs_t mTabs;
+ LLUUID mProfileId;
+};
+
+#endif //LL_LLPANELPROFILEVIEW_H
diff --git a/indra/newview/llpanelteleporthistory.cpp b/indra/newview/llpanelteleporthistory.cpp
new file mode 100644
index 0000000000..eb35834dc0
--- /dev/null
+++ b/indra/newview/llpanelteleporthistory.cpp
@@ -0,0 +1,211 @@
+/**
+ * @file llpanelteleporthistory.cpp
+ * @brief Teleport history represented by a scrolling list
+ *
+ * $LicenseInfo:firstyear=2009&license=viewergpl$
+ *
+ * Copyright (c) 2001-2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llfloaterreg.h"
+
+#include "llfloaterworldmap.h"
+#include "llpanelteleporthistory.h"
+#include "llsidetray.h"
+#include "llworldmap.h"
+
+// Not yet implemented; need to remove buildPanel() from constructor when we switch
+//static LLRegisterPanelClassWrapper<LLTeleportHistoryPanel> t_teleport_history("panel_teleport_history");
+
+LLTeleportHistoryPanel::LLTeleportHistoryPanel()
+ : LLPanelPlacesTab(),
+ mFilterSubString(LLStringUtil::null),
+ mTeleportHistory(NULL),
+ mHistoryItems(NULL)
+{
+ LLUICtrlFactory::getInstance()->buildPanel(this, "panel_teleport_history.xml");
+}
+
+LLTeleportHistoryPanel::~LLTeleportHistoryPanel()
+{
+}
+
+BOOL LLTeleportHistoryPanel::postBuild()
+{
+ mTeleportHistory = LLTeleportHistory::getInstance();
+ if (mTeleportHistory)
+ {
+ mTeleportHistory->setHistoryChangedCallback(boost::bind(&LLTeleportHistoryPanel::showTeleportHistory, this));
+ }
+
+ mHistoryItems = getChild<LLScrollListCtrl>("history_items");
+ if (mHistoryItems)
+ {
+ mHistoryItems->setDoubleClickCallback(onDoubleClickItem, this);
+ mHistoryItems->setCommitOnSelectionChange(FALSE);
+ mHistoryItems->setCommitCallback(boost::bind(&LLTeleportHistoryPanel::handleItemSelect, this, _2));
+ }
+
+ return TRUE;
+}
+
+// virtual
+void LLTeleportHistoryPanel::onSearchEdit(const std::string& string)
+{
+ if (mFilterSubString != string)
+ {
+ mFilterSubString = string;
+ showTeleportHistory();
+ }
+}
+
+// virtual
+void LLTeleportHistoryPanel::onShowOnMap()
+{
+ LLScrollListItem* itemp = mHistoryItems->getFirstSelected();
+ if(!itemp)
+ return;
+
+ S32 index = itemp->getColumn(LIST_INDEX)->getValue().asInteger();
+
+ // teleport to existing item in history, so we don't add it again
+ mTeleportHistory->goToItem(index);
+}
+
+// virtual
+void LLTeleportHistoryPanel::onTeleport()
+{
+ LLScrollListItem* itemp = mHistoryItems->getFirstSelected();
+ if(!itemp)
+ return;
+
+ S32 index = itemp->getColumn(LIST_INDEX)->getValue().asInteger();
+
+ mTeleportHistory->goToItem(index);
+}
+
+/*
+// virtual
+void LLTeleportHistoryPanel::onCopySLURL()
+{
+ LLScrollListItem* itemp = mHistoryItems->getFirstSelected();
+ if(!itemp)
+ return;
+
+ S32 index = itemp->getColumn(LIST_INDEX)->getValue().asInteger();
+
+ const LLTeleportHistory::slurl_list_t& hist_items = mTeleportHistory->getItems();
+
+ LLVector3d global_pos = hist_items[index].mGlobalPos;
+
+ U64 new_region_handle = to_region_handle(global_pos);
+
+ LLWorldMap::url_callback_t cb = boost::bind(
+ &LLPanelPlacesTab::onRegionResponse, this,
+ global_pos, _1, _2, _3, _4);
+
+ LLWorldMap::getInstance()->sendHandleRegionRequest(new_region_handle, cb, std::string("unused"), false);
+}
+*/
+
+void LLTeleportHistoryPanel::showTeleportHistory()
+{
+ const LLTeleportHistory::slurl_list_t& hist_items = mTeleportHistory->getItems();
+
+ mHistoryItems->deleteAllItems();
+
+ S32 cur_item = mTeleportHistory->getCurrentItemIndex();
+
+ for (LLTeleportHistory::slurl_list_t::const_iterator iter = hist_items.begin();
+ iter != hist_items.end(); ++iter)
+ {
+ std::string landmark_title = (*iter).mTitle;
+ LLStringUtil::toUpper(landmark_title);
+
+ std::string::size_type match_offset = mFilterSubString.size() ? landmark_title.find(mFilterSubString) : std::string::npos;
+ bool passed = mFilterSubString.size() == 0 || match_offset != std::string::npos;
+
+ if (!passed)
+ continue;
+
+ S32 index = iter - hist_items.begin();
+
+ LLSD row;
+ row["id"] = index;
+
+ LLSD& icon_column = row["columns"][LIST_ICON];
+ icon_column["column"] = "landmark_icon";
+ icon_column["type"] = "icon";
+ icon_column["value"] = "inv_item_landmark.tga";
+
+ LLSD& region_column = row["columns"][LIST_ITEM_TITLE];
+ region_column["column"] = "region";
+ region_column["type"] = "text";
+ region_column["value"] = (*iter).mTitle;
+
+ LLSD& index_column = row["columns"][LIST_INDEX];
+ index_column["column"] = "index";
+ index_column["type"] = "text";
+ index_column["value"] = index;
+
+ mHistoryItems->addElement(row);
+
+ if (cur_item == index)
+ {
+ LLScrollListItem* itemp = mHistoryItems->getItem(index);
+ ((LLScrollListText*)itemp->getColumn(LIST_ITEM_TITLE))->setFontStyle(LLFontGL::BOLD);
+ }
+ }
+
+ togglePanelPlacesButtons(mHistoryItems->getFirstSelected() != NULL);
+}
+
+void LLTeleportHistoryPanel::handleItemSelect(const LLSD& data)
+{
+ LLScrollListItem* itemp = mHistoryItems->getFirstSelected();
+
+ if (!itemp)
+ return;
+
+ togglePanelPlacesButtons(TRUE);
+}
+
+//static
+void LLTeleportHistoryPanel::onDoubleClickItem(void* user_data)
+{
+ LLTeleportHistoryPanel* self = (LLTeleportHistoryPanel*)user_data;
+
+ LLScrollListItem* itemp = self->mHistoryItems->getFirstSelected();
+ if(!itemp)
+ return;
+
+ LLSD key;
+ key["type"] = LLPanelPlaces::TELEPORT_HISTORY;
+ key["id"] = itemp->getColumn(LIST_INDEX)->getValue().asInteger();
+
+ LLSideTray::getInstance()->showPanel("panel_places", key);
+}
diff --git a/indra/newview/llpanelteleporthistory.h b/indra/newview/llpanelteleporthistory.h
new file mode 100644
index 0000000000..6f41c97eec
--- /dev/null
+++ b/indra/newview/llpanelteleporthistory.h
@@ -0,0 +1,72 @@
+/**
+ * @file llpanelteleporthistory.h
+ * @brief Teleport history represented by a scrolling list
+ * class definition
+ *
+ * $LicenseInfo:firstyear=2009&license=viewergpl$
+ *
+ * Copyright (c) 2001-2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#ifndef LL_LLPANELTELEPORTHISTORY_H
+#define LL_LLPANELTELEPORTHISTORY_H
+
+#include "lluictrlfactory.h"
+#include "llscrolllistctrl.h"
+
+#include "llpanelplacestab.h"
+#include "llteleporthistory.h"
+
+class LLTeleportHistoryPanel : public LLPanelPlacesTab
+{
+public:
+ LLTeleportHistoryPanel();
+ virtual ~LLTeleportHistoryPanel();
+
+ /*virtual*/ BOOL postBuild();
+ /*virtual*/ void onSearchEdit(const std::string& string);
+ /*virtual*/ void onShowOnMap();
+ /*virtual*/ void onTeleport();
+ ///*virtual*/ void onCopySLURL();
+
+ void showTeleportHistory();
+ void handleItemSelect(const LLSD& data);
+
+ static void onDoubleClickItem(void* user_data);
+
+private:
+ enum TELEPORT_HISTORY_COLUMN_ORDER
+ {
+ LIST_ICON,
+ LIST_ITEM_TITLE,
+ LIST_INDEX
+ };
+
+ LLTeleportHistory* mTeleportHistory;
+ LLScrollListCtrl* mHistoryItems;
+ std::string mFilterSubString;
+};
+
+#endif //LL_LLPANELTELEPORTHISTORY_H
diff --git a/indra/newview/llpreview.cpp b/indra/newview/llpreview.cpp
index dfc8b783d5..64713108af 100644
--- a/indra/newview/llpreview.cpp
+++ b/indra/newview/llpreview.cpp
@@ -49,7 +49,7 @@
#include "llviewerobjectlist.h"
#include "lldbstrings.h"
#include "llagent.h"
-#include "llvoavatar.h"
+#include "llvoavatarself.h"
#include "llselectmgr.h"
#include "llinventoryview.h"
#include "llviewerinventory.h"
@@ -171,7 +171,7 @@ void LLPreview::onCommit()
// update the object itself.
if( item->getType() == LLAssetType::AT_OBJECT )
{
- LLVOAvatar* avatar = gAgent.getAvatarObject();
+ LLVOAvatarSelf* avatar = gAgent.getAvatarObject();
if( avatar )
{
LLViewerObject* obj = avatar->getWornAttachment( item->getUUID() );
diff --git a/indra/newview/llpreviewanim.cpp b/indra/newview/llpreviewanim.cpp
index efe0d3b752..6857d14fff 100644
--- a/indra/newview/llpreviewanim.cpp
+++ b/indra/newview/llpreviewanim.cpp
@@ -37,7 +37,7 @@
#include "llresmgr.h"
#include "llinventory.h"
#include "llinventoryview.h"
-#include "llvoavatar.h"
+#include "llvoavatarself.h"
#include "llagent.h" // gAgent
#include "llkeyframemotion.h"
#include "llfilepicker.h"
diff --git a/indra/newview/llpreviewgesture.cpp b/indra/newview/llpreviewgesture.cpp
index f973667fbd..dc6ee44936 100644
--- a/indra/newview/llpreviewgesture.cpp
+++ b/indra/newview/llpreviewgesture.cpp
@@ -47,6 +47,7 @@
// newview
#include "llagent.h" // todo: remove
+#include "llanimationstates.h"
#include "llassetuploadresponders.h"
#include "llbutton.h"
#include "llcheckboxctrl.h"
@@ -70,6 +71,7 @@
#include "llviewerregion.h"
#include "llviewerstats.h"
#include "llviewerwindow.h" // busycount
+#include "llvoavatarself.h"
#include "llappviewer.h" // gVFS
#include "llanimstatelabels.h"
#include "llresmgr.h"
diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 025aa25170..9de2f38aff 100644
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -282,7 +282,7 @@ LLScriptEdCore::LLScriptEdCore(
setBorderVisible(FALSE);
- LLUICtrlFactory::getInstance()->buildPanel(this, "floater_script_ed_panel.xml");
+ LLUICtrlFactory::getInstance()->buildPanel(this, "panel_script_ed.xml");
std::vector<std::string> funcs;
std::vector<std::string> tooltips;
diff --git a/indra/newview/llrecentpeople.cpp b/indra/newview/llrecentpeople.cpp
new file mode 100644
index 0000000000..0c16cea004
--- /dev/null
+++ b/indra/newview/llrecentpeople.cpp
@@ -0,0 +1,69 @@
+/**
+ * @file llrecentpeople.cpp
+ * @brief List of people with which the user has recently interacted.
+ *
+ * $LicenseInfo:firstyear=2009&license=viewergpl$
+ *
+ * Copyright (c) 2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llrecentpeople.h"
+
+#include "llagent.h"
+
+using namespace LLOldEvents;
+
+bool LLRecentPeople::add(const LLUUID& id)
+{
+ if (contains(id) || id == gAgent.getID())
+ return false;
+
+ mList.insert(id);
+ mChangedSignal();
+ return true;
+}
+
+bool LLRecentPeople::contains(const LLUUID& id) const
+{
+ return mList.find(id) != mList.end();
+}
+
+void LLRecentPeople::get(std::vector<LLUUID>& result) const
+{
+ result.clear();
+ for (std::set<LLUUID>::const_iterator pos = mList.begin(); pos != mList.end(); ++pos)
+ result.push_back(*pos);
+}
+
+// virtual
+bool LLRecentPeople::handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
+{
+ (void) userdata;
+ add(event->getValue().asUUID());
+ return true;
+}
diff --git a/indra/newview/llrecentpeople.h b/indra/newview/llrecentpeople.h
new file mode 100644
index 0000000000..40ac80e8bc
--- /dev/null
+++ b/indra/newview/llrecentpeople.h
@@ -0,0 +1,101 @@
+/**
+ * @file llrecentpeople.h
+ * @brief List of people with which the user has recently interacted.
+ *
+ * $LicenseInfo:firstyear=2009&license=viewergpl$
+ *
+ * Copyright (c) 2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#ifndef LL_LLRECENTPEOPLE_H
+#define LL_LLRECENTPEOPLE_H
+
+#include "llevent.h"
+#include "llsingleton.h"
+#include "lluuid.h"
+
+#include <vector>
+#include <set>
+#include <boost/signals2.hpp>
+
+/**
+ * List of people the agent recently interacted with.
+ *
+ * Includes: anyone with whom the user IM'd or called
+ * (1:1 and ad-hoc but not SL Group chat),
+ * anyone with whom the user has had a transaction
+ * (inventory offer, friend request, etc),
+ * and anyone that has chatted within chat range of the user in-world.
+ *
+ *TODO: purge least recently added items?
+ */
+class LLRecentPeople: public LLSingleton<LLRecentPeople>, public LLOldEvents::LLSimpleListener
+{
+ LOG_CLASS(LLRecentPeople);
+public:
+ typedef boost::signals2::signal<void ()> signal_t;
+
+ /**
+ * Add specified avatar to the list if it's not there already.
+ *
+ * @param id avatar to add.
+ * @return false if the avatar is in the list already, true otherwisr
+ */
+ bool add(const LLUUID& id);
+
+ /**
+ * @param id avatar to search.
+ * @return true if the avatar is in the list, false otherwise.
+ */
+ bool contains(const LLUUID& id) const;
+
+ /**
+ * Get the whole list.
+ *
+ * @param result where to put the result.
+ */
+ void get(std::vector<LLUUID>& result) const;
+
+ /**
+ * Set callback to be called when the list changed.
+ *
+ * Multiple callbacks can be set.
+ *
+ * @return no connection; use boost::bind + boost::signals2::trackable to disconnect slots.
+ */
+ void setChangedCallback(const signal_t::slot_type& cb) { mChangedSignal.connect(cb); }
+
+ /**
+ * LLSimpleListener interface.
+ */
+ /*virtual*/ bool handleEvent(LLPointer<LLOldEvents::LLEvent> event, const LLSD& userdata);
+
+private:
+ std::set<LLUUID> mList;
+ signal_t mChangedSignal;
+};
+
+#endif // LL_LLRECENTPEOPLE_H
diff --git a/indra/newview/llremoteparcelrequest.cpp b/indra/newview/llremoteparcelrequest.cpp
index 8ff4dea2b1..fe4e8b5d0c 100644
--- a/indra/newview/llremoteparcelrequest.cpp
+++ b/indra/newview/llremoteparcelrequest.cpp
@@ -34,8 +34,7 @@
#include "llviewerprecompiledheaders.h"
-#include "llagent.h"
-#include "llremoteparcelrequest.h"
+#include "message.h"
#include "llpanelplace.h"
#include "llpanel.h"
@@ -43,37 +42,120 @@
#include "llsdserialize.h"
#include "llviewerregion.h"
#include "llview.h"
-#include "message.h"
-LLRemoteParcelRequestResponder::LLRemoteParcelRequestResponder(LLHandle<LLPanel> place_panel_handle)
-{
- mPlacePanelHandle = place_panel_handle;
-}
-/*virtual*/
+#include "llagent.h"
+#include "llremoteparcelrequest.h"
+
+
+LLRemoteParcelRequestResponder::LLRemoteParcelRequestResponder(LLHandle<LLRemoteParcelInfoObserver> observer_handle)
+ : mObserverHandle(observer_handle)
+{}
+
+//If we get back a normal response, handle it here
+//virtual
void LLRemoteParcelRequestResponder::result(const LLSD& content)
{
LLUUID parcel_id = content["parcel_id"];
- LLPanelPlace* place_panelp = (LLPanelPlace*)mPlacePanelHandle.get();
+ mObserverHandle.get()->setParcelID(parcel_id);
+}
+
+//If we get back an error (not found, etc...), handle it here
+//virtual
+void LLRemoteParcelRequestResponder::error(U32 status, const std::string& reason)
+{
+ llinfos << "LLRemoteParcelRequest::error("
+ << status << ": " << reason << ")" << llendl;
+
+ mObserverHandle.get()->setErrorStatus(status, reason);
+}
- if(place_panelp)
+void LLRemoteParcelInfoProcessor::addObserver(const LLUUID& parcel_id, LLRemoteParcelInfoObserver* observer)
+{
+ // Check if the observer is alredy in observsrs list for this UUID
+ observer_multimap_t::iterator it;
+
+ it = mObservers.find(parcel_id);
+ while (it != mObservers.end())
{
- place_panelp->setParcelID(parcel_id);
+ if (it->second == observer)
+ {
+ return;
+ }
+ else
+ {
+ ++it;
+ }
}
+ mObservers.insert(std::pair<LLUUID, LLRemoteParcelInfoObserver*>(parcel_id, observer));
}
-/*virtual*/
-void LLRemoteParcelRequestResponder::error(U32 status, const std::string& reason)
+void LLRemoteParcelInfoProcessor::removeObserver(const LLUUID& parcel_id, LLRemoteParcelInfoObserver* observer)
{
- llinfos << "LLRemoteParcelRequest::error("
- << status << ": " << reason << ")" << llendl;
- LLPanelPlace* place_panelp = (LLPanelPlace*)mPlacePanelHandle.get();
+ if (!observer)
+ {
+ return;
+ }
- if(place_panelp)
+ observer_multimap_t::iterator it;
+
+ it = mObservers.find(parcel_id);
+ while (it != mObservers.end())
{
- place_panelp->setErrorStatus(status, reason);
+ if (it->second == observer)
+ {
+ mObservers.erase(it);
+ break;
+ }
+ else
+ {
+ ++it;
+ }
}
+}
+//static
+void LLRemoteParcelInfoProcessor::processParcelInfoReply(LLMessageSystem* msg, void**)
+{
+ LLParcelData parcel_data;
+
+ msg->getUUID ("Data", "ParcelID", parcel_data.parcel_id);
+ msg->getUUID ("Data", "OwnerID", parcel_data.owner_id);
+ msg->getString ("Data", "Name", parcel_data.name);
+ msg->getString ("Data", "Desc", parcel_data.desc);
+ msg->getS32 ("Data", "ActualArea", parcel_data.actual_area);
+ msg->getS32 ("Data", "BillableArea", parcel_data.billable_area);
+ msg->getU8 ("Data", "Flags", parcel_data.flags);
+ msg->getF32 ("Data", "GlobalX", parcel_data.global_x);
+ msg->getF32 ("Data", "GlobalY", parcel_data.global_y);
+ msg->getF32 ("Data", "GlobalZ", parcel_data.global_z);
+ msg->getString ("Data", "SimName", parcel_data.sim_name);
+ msg->getUUID ("Data", "SnapshotID", parcel_data.snapshot_id);
+ msg->getF32 ("Data", "Dwell", parcel_data.dwell);
+ msg->getS32 ("Data", "SalePrice", parcel_data.sale_price);
+ msg->getS32 ("Data", "AuctionID", parcel_data.auction_id);
+
+ LLRemoteParcelInfoProcessor::observer_multimap_t observers = LLRemoteParcelInfoProcessor::getInstance()->mObservers;
+
+ observer_multimap_t::iterator oi = observers.find(parcel_data.parcel_id);
+ observer_multimap_t::iterator end = observers.upper_bound(parcel_data.parcel_id);
+ for (; oi != end; ++oi)
+ {
+ oi->second->processParcelInfo(parcel_data);
+ LLRemoteParcelInfoProcessor::getInstance()->removeObserver(parcel_data.parcel_id, oi->second);
+ }
}
+void LLRemoteParcelInfoProcessor::sendParcelInfoRequest(const LLUUID& parcel_id)
+{
+ LLMessageSystem *msg = gMessageSystem;
+
+ msg->newMessage("ParcelInfoRequest");
+ msg->nextBlockFast(_PREHASH_AgentData);
+ msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID() );
+ msg->addUUID("SessionID", gAgent.getSessionID());
+ msg->nextBlock("Data");
+ msg->addUUID("ParcelID", parcel_id);
+ gAgent.sendReliableMessage();
+}
diff --git a/indra/newview/llremoteparcelrequest.h b/indra/newview/llremoteparcelrequest.h
index c92ee3ff3a..3a16e25ef6 100644
--- a/indra/newview/llremoteparcelrequest.h
+++ b/indra/newview/llremoteparcelrequest.h
@@ -38,17 +38,73 @@
#include "llhttpclient.h"
#include "llpanel.h"
+class LLRemoteParcelInfoObserver;
+
class LLRemoteParcelRequestResponder : public LLHTTPClient::Responder
{
public:
- LLRemoteParcelRequestResponder(LLHandle<LLPanel> place_panel_handle);
+ LLRemoteParcelRequestResponder(LLHandle<LLRemoteParcelInfoObserver> observer_handle);
+
//If we get back a normal response, handle it here
- virtual void result(const LLSD& content);
+ /*virtual*/ void result(const LLSD& content);
+
//If we get back an error (not found, etc...), handle it here
- virtual void error(U32 status, const std::string& reason);
+ /*virtual*/ void error(U32 status, const std::string& reason);
+
+protected:
+ LLHandle<LLRemoteParcelInfoObserver> mObserverHandle;
+};
+
+struct LLParcelData
+{
+ LLUUID parcel_id;
+ LLUUID owner_id;
+ std::string name;
+ std::string desc;
+ S32 actual_area;
+ S32 billable_area;
+ U8 flags;
+ F32 global_x;
+ F32 global_y;
+ F32 global_z;
+ std::string sim_name;
+ LLUUID snapshot_id;
+ F32 dwell;
+ S32 sale_price;
+ S32 auction_id;
+};
+
+// An interface class for panels which display parcel information
+// like name, description, area, snapshot etc.
+class LLRemoteParcelInfoObserver
+{
+public:
+ LLRemoteParcelInfoObserver() { mObserverHandle.bind(this); }
+ virtual ~LLRemoteParcelInfoObserver() {}
+ virtual void processParcelInfo(const LLParcelData& parcel_data) = 0;
+ virtual void setParcelID(const LLUUID& parcel_id) = 0;
+ virtual void setErrorStatus(U32 status, const std::string& reason) = 0;
+ LLHandle<LLRemoteParcelInfoObserver> getObserverHandle() const { return mObserverHandle; }
protected:
- LLHandle<LLPanel> mPlacePanelHandle;
+ LLRootHandle<LLRemoteParcelInfoObserver> mObserverHandle;
+};
+
+class LLRemoteParcelInfoProcessor : public LLSingleton<LLRemoteParcelInfoProcessor>
+{
+public:
+ virtual ~LLRemoteParcelInfoProcessor() {}
+
+ void addObserver(const LLUUID& parcel_id, LLRemoteParcelInfoObserver* observer);
+ void removeObserver(const LLUUID& parcel_id, LLRemoteParcelInfoObserver* observer);
+
+ void sendParcelInfoRequest(const LLUUID& parcel_id);
+
+ static void processParcelInfoReply(LLMessageSystem* msg, void**);
+
+private:
+ typedef std::multimap<LLUUID, LLRemoteParcelInfoObserver*> observer_multimap_t;
+ observer_multimap_t mObservers;
};
#endif // LL_LLREMOTEPARCELREQUEST_H
diff --git a/indra/newview/llrootview.h b/indra/newview/llrootview.h
new file mode 100644
index 0000000000..af9517f922
--- /dev/null
+++ b/indra/newview/llrootview.h
@@ -0,0 +1,55 @@
+/**
+ * @file llrootview.h
+ * @brief Mother of all Views
+ *
+ * $LicenseInfo:firstyear=2001&license=viewergpl$
+ *
+ * Copyright (c) 2001-2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#ifndef LL_LLROOTVIEW_H
+#define LL_LLROOTVIEW_H
+
+#include "llview.h"
+#include "lluictrlfactory.h"
+
+class LLRootViewRegistry : public LLWidgetRegistry<LLRootViewRegistry>
+{};
+
+class LLRootView : public LLView
+{
+public:
+ LLRootView(const Params& p)
+ : LLView(p)
+ {}
+
+ const widget_registry_t& getChildRegistry() const
+ {
+ // use default widget registry
+ return LLRootViewRegistry::instance();
+ }
+};
+#endif //LL_LLROOTVIEW_H
diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp
index 0cca1ebe71..ed7c7dce12 100644
--- a/indra/newview/llselectmgr.cpp
+++ b/indra/newview/llselectmgr.cpp
@@ -79,7 +79,7 @@
#include "llviewerobjectlist.h"
#include "llviewerregion.h"
#include "llviewerstats.h"
-#include "llvoavatar.h"
+#include "llvoavatarself.h"
#include "llvovolume.h"
#include "pipeline.h"
@@ -5394,6 +5394,11 @@ void dialog_refresh_all()
gPieObject->needsArrange();
+ if( gPieAttachment->getVisible() )
+ {
+ gPieAttachment->arrange();
+ }
+
LLFloaterProperties::dirtyAll();
LLFloaterInspect::dirty();
}
diff --git a/indra/newview/llsidetray.cpp b/indra/newview/llsidetray.cpp
new file mode 100644
index 0000000000..e7008abe60
--- /dev/null
+++ b/indra/newview/llsidetray.cpp
@@ -0,0 +1,746 @@
+/**
+ * @file llsidetray.cpp
+ * @brief SideBar implementation
+ *
+ * $LicenseInfo:firstyear=2009&license=viewergpl$
+ *
+ * Copyright (c) 2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+
+#include "lltextbox.h"
+
+#include "llsidetray.h"
+#include "llviewerwindow.h"
+#include "llaccordionpanel.h"
+#include "llfocusmgr.h"
+#include "llrootview.h"
+
+#include "llcollapsiblectrl.h"
+
+#include "llfloater.h" //for gFloaterView
+#include "lliconctrl.h"//for Home tab icon
+#include "llwindow.h"//for SetCursor
+#include "llbottomtray.h"//for reshape
+
+//#include "llscrollcontainer.h"
+
+using namespace std;
+
+static LLRootViewRegistry::Register<LLSideTray> t1("side_tray");
+static LLDefaultWidgetRegistry::Register<LLSideTrayTab> t2("sidetray_tab");
+
+static const std::string COLLAPSED_NAME = "<<";
+static const std::string EXPANDED_NAME = ">>";
+
+static const std::string TAB_PANEL_CAPTION_NAME = "sidetray_tab_panel";
+static const std::string TAB_PANEL_CAPTION_TITLE_BOX = "sidetray_tab_title";
+
+LLSideTray* LLSideTray::sInstance = 0;
+
+class LLSideTrayInfoPanel: public LLPanel
+{
+protected:
+ LLSideTrayInfoPanel(){}
+public:
+ static LLSideTrayInfoPanel* createInstance(const string& image, const string& name,const string& description)
+ {
+ LLSideTrayInfoPanel* panel = new LLSideTrayInfoPanel();
+ LLUICtrlFactory::getInstance()->buildPanel(panel,"panel_sidetray_tab_info.xml");
+ if(panel)
+ panel->setData(image, name,description);
+ panel->setBorderVisible(true);
+ return panel;
+
+ }
+ void setData(const string& image, const string& name,const string& description)
+ {
+ getChild<LLTextBox>("tab_name",false,false)->setValue(name);
+ getChild<LLTextBox>("tab_description",false,false)->setValue(description);
+ getChild<LLIconCtrl>("tab_icon",false,false)->setValue(image);
+ }
+
+ BOOL handleHover(S32 x, S32 y, MASK mask)
+ {
+ getWindow()->setCursor(UI_CURSOR_HAND);
+ return TRUE;
+ }
+
+ BOOL handleMouseUp(S32 x, S32 y, MASK mask)
+ {
+ onCommit();
+ return LLPanel::handleMouseUp(x,y,mask);
+ }
+
+};
+
+
+LLSideTray* LLSideTray::getInstance()
+{
+ if (!sInstance)
+ {
+ sInstance = LLUICtrlFactory::createFromFile<LLSideTray>("panel_side_tray.xml",gViewerWindow->getRootView());
+ }
+
+ return sInstance;
+}
+
+bool LLSideTray::instanceCreated ()
+{
+ return sInstance!=0;
+}
+
+LLSideTrayTab::LLSideTrayTab(const Params& params):mAccordionPanel(0)
+
+{
+ mImagePath = params.image_path;
+ mTabTitle = params.tab_title;
+ mDescription = params.tab_description;
+}
+LLSideTrayTab::~LLSideTrayTab()
+{
+}
+
+void LLSideTrayTab::addPanel(LLPanel* panel)
+{
+ //addChild(panel,false);
+}
+
+bool LLSideTrayTab::addChild(LLView* view, S32 tab_group)
+{
+ if(mAccordionPanel == 0)
+ {
+ mAccordionPanel = new LLAccordionPanel();
+ mAccordionPanel->setVisible(TRUE);
+ LLPanel::addChild(mAccordionPanel,tab_group);
+ }
+
+
+ bool res = true;
+ if(TAB_PANEL_CAPTION_NAME != view->getName())//skip our caption panel
+ {
+ mAccordionPanel->addCollapsibleCtrl(view);
+ }
+ else
+ res = LLPanel::addChild(view,tab_group);
+
+ return res;
+}
+
+
+
+//virtual
+BOOL LLSideTrayTab::postBuild()
+{
+ LLPanel* title_panel = LLUICtrlFactory::getInstance()->createFromFile<LLPanel>("panel_side_tray_tab_caption.xml",this);
+ string name = title_panel->getName();
+ LLPanel::addChild(title_panel);
+
+ title_panel->getChild<LLTextBox>(TAB_PANEL_CAPTION_TITLE_BOX)->setValue(mTabTitle);
+
+ static LLUICachedControl<LLColor4> default_background_color ("FloaterDefaultBackgroundColor", *(new LLColor4));
+ static LLUICachedControl<LLColor4> focus_background_color ("FloaterFocusBackgroundColor", *(new LLColor4));
+
+ setTransparentColor(default_background_color);
+ setBackgroundColor(focus_background_color);
+
+ return true;
+}
+
+S32 LLSideTrayTab::getMaxSideBarTabWidth()
+{
+ return (mAccordionPanel)?mAccordionPanel->getMaxPanelWidth():0;
+}
+
+static const S32 splitter_margin = 1;
+
+//virtual
+void LLSideTrayTab::arrange(S32 width, S32 height )
+{
+ S32 offset = 0;
+
+ LLView* title_panel = getChildView(TAB_PANEL_CAPTION_NAME, true, false);
+
+ if(title_panel)
+ {
+ title_panel->setOrigin( 0, height - title_panel->getRect().getHeight() );
+ offset = title_panel->getRect().getHeight();
+ }
+
+ LLRect sRect = mAccordionPanel->getRect();
+ sRect.setLeftTopAndSize( splitter_margin, height - offset - splitter_margin, width - 2*splitter_margin, height - offset - 2*splitter_margin);
+ mAccordionPanel->setRect(sRect);
+
+ mAccordionPanel->setMaxWidth(sRect.getWidth());
+ mAccordionPanel->arrange();
+}
+
+void LLSideTrayTab::reshape (S32 width, S32 height, BOOL called_from_parent )
+{
+ if(!mAccordionPanel)
+ return;
+ S32 offset = 0;
+
+ LLView* title_panel = getChildView(TAB_PANEL_CAPTION_NAME, true, false);
+
+ if(title_panel)
+ {
+ title_panel->setOrigin( 0, height - title_panel->getRect().getHeight() );
+ title_panel->reshape(width,title_panel->getRect().getHeight());
+ offset = title_panel->getRect().getHeight();
+ }
+
+
+
+ LLRect sRect = mAccordionPanel->getRect();
+ sRect.setLeftTopAndSize( splitter_margin, height - offset - splitter_margin, width - 2*splitter_margin, height - offset - 2*splitter_margin);
+ mAccordionPanel->setMaxWidth(sRect.getWidth());
+ mAccordionPanel->reshape(sRect.getWidth(), sRect.getHeight());
+
+ mAccordionPanel->setRect(sRect);
+
+}
+
+void LLSideTrayTab::draw()
+{
+ LLPanel::draw();
+
+ //border
+ gl_rect_2d(0,0,getRect().getWidth() - 1,getRect().getHeight() - 1,LLColor4::black,false);
+
+
+}
+
+void LLSideTrayTab::onOpen (const LLSD& key)
+{
+ mAccordionPanel->onOpen(key);
+}
+
+LLSideTrayTab* LLSideTrayTab::createInstance ()
+{
+ LLSideTrayTab::Params tab_params;
+ tab_params.tab_title("Home");
+
+ LLSideTrayTab* tab = LLUICtrlFactory::create<LLSideTrayTab>(tab_params);
+ return tab;
+}
+
+
+//virtual
+LLSideTray::LLSideTray(Params& params)
+ :mActiveTab(0)
+ ,mCollapsed(false)
+ ,mCollapseButton(0)
+ ,mMaxBarWidth(0)
+ ,mHomeTab(0)
+{
+ mCollapsed=params.collapsed;
+}
+
+
+BOOL LLSideTray::postBuild()
+{
+ calcMaxSideBarWidth();
+
+ createButtons();
+
+ createHomeTab();
+
+ arrange();
+ selectTabByName("home_tab");
+
+ if(mCollapsed)
+ collapseSideBar();
+
+ setMouseOpaque(false);
+ return true;
+}
+
+/**
+ * add new panel to tab with tab_name name
+ * @param tab_name - name of sidebar tab to add new panel
+ * @param panel - pointer to panel
+ */
+bool LLSideTray::addPanel ( const std::string& tab_name
+ ,LLPanel* panel )
+{
+ return false;
+}
+/**
+ * Add new tab to side bar
+ * @param tab_name - name of the new tab
+ * @param image - image for new sidebar button
+ * @param title - title for new tab
+ */
+bool LLSideTray::addTab ( const std::string& tab_name
+ ,const std::string& image
+ ,const std::string& title)
+{
+ LLSideTrayTab::Params params;
+ params.image_path = image;
+ params.tab_title = title;
+ LLSideTrayTab* tab = LLUICtrlFactory::create<LLSideTrayTab> (params);
+ addChild(tab,1);
+ return true;
+}
+
+
+LLSideTrayTab* LLSideTray::getTab(const std::string& name)
+{
+ return getChild<LLSideTrayTab>(name,false,false);
+}
+
+
+
+void LLSideTray::toggleTabButton (LLSideTrayTab* tab)
+{
+ if(tab == NULL)
+ return;
+ string name = tab->getName();
+ std::map<std::string,LLButton*>::iterator tIt = mTabButtons.find(name);
+ if(tIt!=mTabButtons.end())
+ tIt->second->setToggleState(!tIt->second->getToggleState());
+}
+
+bool LLSideTray::selectTabByIndex(size_t index)
+{
+ if(index>=mTabs.size())
+ return false;
+
+ LLSideTrayTab* sidebar_tab = dynamic_cast<LLSideTrayTab*>(mTabs[index]);
+ if(sidebar_tab == NULL)
+ return false;
+ return selectTabByName(sidebar_tab->getName());
+}
+
+bool LLSideTray::selectTabByName (const std::string& name)
+{
+ LLSideTrayTab* side_bar = getTab(name);
+ if(side_bar == 0 && name == "home_tab")
+ side_bar = mHomeTab;
+
+ if(side_bar == NULL || side_bar == mActiveTab)
+ return false;
+ //deselect old tab
+ toggleTabButton(mActiveTab);
+ if(mActiveTab)
+ mActiveTab->setVisible(false);
+
+ //select new tab
+ mActiveTab = side_bar;
+ toggleTabButton(mActiveTab);
+ LLSD key;//empty
+ mActiveTab->onOpen(key);
+
+ mActiveTab->setVisible(true);
+
+ //arrange();
+
+ //hide all tabs - show active tab
+ child_vector_const_iter_t child_it;
+ for ( child_it = mTabs.begin(); child_it != mTabs.end(); ++child_it)
+ {
+ LLSideTrayTab* sidebar_tab = dynamic_cast<LLSideTrayTab*>(*child_it);
+ if(sidebar_tab == NULL)
+ continue;
+ sidebar_tab->setVisible(sidebar_tab == mActiveTab);
+ }
+ return true;
+}
+
+LLButton* LLSideTray::createButton (const std::string& name,const std::string& image,LLUICtrl::commit_callback_t callback)
+{
+ static LLSideTray::Params sidetray_params(LLUICtrlFactory::getDefaultParams<LLSideTray::Params>());
+
+ LLButton::Params bparams;
+
+ LLRect rect;
+ rect.setOriginAndSize(0, 0, sidetray_params.default_button_width, sidetray_params.default_button_height);
+
+ bparams.name(name);
+ bparams.follows.flags (FOLLOWS_LEFT | FOLLOWS_BOTTOM);
+ bparams.rect (rect);
+ bparams.tab_stop(false);
+ bparams.image_unselected.name(sidetray_params.tab_btn_image_normal);
+ bparams.image_selected.name(sidetray_params.tab_btn_image_selected);
+ bparams.image_disabled.name(sidetray_params.tab_btn_image_normal);
+ bparams.image_disabled_selected.name(sidetray_params.tab_btn_image_selected);
+
+ LLButton* button = LLUICtrlFactory::create<LLButton> (bparams);
+ button->setLabel(name);
+ button->setClickedCallback(callback);
+
+ if(image.length())
+ {
+ button->setImageOverlay(image);
+ }
+
+ addChildInBack(button);
+
+ return button;
+}
+
+bool LLSideTray::addChild(LLView* view, S32 tab_group)
+{
+ LLSideTrayTab* tab_panel = dynamic_cast<LLSideTrayTab*>(view);
+
+ if (tab_panel)
+ {
+ mTabs.push_back(tab_panel);
+ }
+
+ return LLUICtrl::addChild(view, tab_group);
+}
+
+
+void LLSideTray::createButtons ()
+{
+ //create show/hide button
+ mCollapseButton = createButton(EXPANDED_NAME,"",boost::bind(&LLSideTray::onToggleCollapse, this));
+
+ //create buttons for tabs
+ child_vector_const_iter_t child_it;
+
+ for ( child_it = mTabs.begin(); child_it != mTabs.end(); ++child_it)
+ {
+ LLSideTrayTab* sidebar_tab = dynamic_cast<LLSideTrayTab*>(*child_it);
+ if(sidebar_tab == NULL)
+ continue;
+
+ string name = sidebar_tab->getName();
+
+ LLButton* button = createButton("",sidebar_tab->mImagePath,boost::bind(&LLSideTray::onTabButtonClick, this, sidebar_tab->getName()));
+ mTabButtons[sidebar_tab->getName()] = button;
+ }
+
+}
+
+void LLSideTray::onTabButtonClick(string name)
+{
+
+ selectTabByName (name);
+ if(mCollapsed)
+ expandSideBar();
+}
+
+void LLSideTray::onToggleCollapse()
+{
+ if(mCollapsed)
+ {
+ expandSideBar();
+ selectTabByName("home_tab");
+ }
+ else
+ collapseSideBar();
+}
+
+
+void LLSideTray::reflectCollapseChange()
+{
+ setPanelRect();
+
+ if(mCollapsed)
+ gFloaterView->setSnapOffsetRight(0);
+ else
+ gFloaterView->setSnapOffsetRight(mMaxBarWidth);
+
+ gFloaterView->refresh();
+
+ setFocus( FALSE );
+}
+
+void LLSideTray::arrange ()
+{
+ static LLSideTray::Params sidetray_params(LLUICtrlFactory::getDefaultParams<LLSideTray::Params>());
+
+ calcMaxSideBarWidth();
+
+
+
+ setPanelRect();
+
+ LLRect ctrl_rect;
+ ctrl_rect.setLeftTopAndSize(0,getRect().getHeight()-sidetray_params.default_button_width
+ ,sidetray_params.default_button_width
+ ,sidetray_params.default_button_height);
+
+ mCollapseButton->setRect(ctrl_rect);
+
+ //arrange tab buttons
+ //arrange tab buttons
+ child_vector_const_iter_t child_it;
+ int offset = (sidetray_params.default_button_height+sidetray_params.default_button_margin)*2;
+ for ( child_it = mTabs.begin(); child_it != mTabs.end(); ++child_it)
+ {
+ LLSideTrayTab* sidebar_tab = dynamic_cast<LLSideTrayTab*>(*child_it);
+ if(sidebar_tab == NULL)
+ continue;
+
+ ctrl_rect.setLeftTopAndSize(0,getRect().getHeight()-offset
+ ,sidetray_params.default_button_width
+ ,sidetray_params.default_button_height);
+
+ if(mTabButtons.find(sidebar_tab->getName()) == mTabButtons.end())
+ continue;
+
+ LLButton* btn = mTabButtons[sidebar_tab->getName()];
+
+ btn->setRect(ctrl_rect);
+ offset+=sidetray_params.default_button_height;
+ offset+=sidetray_params.default_button_margin;
+
+ btn->setVisible(ctrl_rect.mBottom > 0);
+ }
+
+ ctrl_rect.setLeftTopAndSize(sidetray_params.default_button_width,getRect().getHeight(),mMaxBarWidth,getRect().getHeight());
+
+ //arrange tabs
+ for ( child_it = mTabs.begin(); child_it != mTabs.end(); ++child_it)
+ {
+ LLSideTrayTab* sidebar_tab = dynamic_cast<LLSideTrayTab*>(*child_it);
+ if(sidebar_tab == NULL)
+ continue;
+
+ sidebar_tab->setRect(ctrl_rect);
+ sidebar_tab->arrange(mMaxBarWidth,getRect().getHeight());
+ }
+
+ mHomeTab->setRect(ctrl_rect);
+ mHomeTab->arrange(mMaxBarWidth,getRect().getHeight());
+
+}
+
+void LLSideTray::collapseSideBar ()
+{
+ mCollapsed = true;
+ mCollapseButton->setLabel(COLLAPSED_NAME);
+ mActiveTab->setVisible(FALSE);
+ reflectCollapseChange();
+ setFocus( FALSE );
+
+}
+void LLSideTray::expandSideBar ()
+{
+ mCollapsed = false;
+ mCollapseButton->setLabel(EXPANDED_NAME);
+ mActiveTab->setVisible(TRUE);
+
+ reflectCollapseChange();
+
+}
+
+void LLSideTray::calcMaxSideBarWidth()
+{
+
+ S32 max_bar_width = 0;
+
+
+ child_vector_const_iter_t child_it;
+ for ( child_it = mTabs.begin(); child_it != mTabs.end(); ++child_it)
+ {
+ LLSideTrayTab* sidebar_tab = dynamic_cast<LLSideTrayTab*>(*child_it);
+ if(sidebar_tab == NULL)
+ continue;
+ max_bar_width = llmax(max_bar_width,sidebar_tab->getMaxSideBarTabWidth());
+ }
+
+ if(max_bar_width > 0)
+ mMaxBarWidth = max_bar_width;
+
+}
+void LLSideTray::highlightFocused()
+{
+ if(!mActiveTab)
+ return;
+ /* uncomment in case something change
+ BOOL dependent_has_focus = gFocusMgr.childHasKeyboardFocus(this);
+ setBackgroundOpaque( dependent_has_focus );
+ mActiveTab->setBackgroundOpaque( dependent_has_focus );
+ */
+ mActiveTab->setBackgroundOpaque( true );
+
+
+}
+//virtual
+BOOL LLSideTray::handleMouseDown (S32 x, S32 y, MASK mask)
+{
+ BOOL ret = LLPanel::handleMouseDown(x,y,mask);
+ if(ret)
+ setFocus(true);
+ return ret;
+}
+void LLSideTray::reshape (S32 width, S32 height, BOOL called_from_parent)
+{
+
+ LLPanel::reshape(width, height, called_from_parent);
+ if(!mActiveTab)
+ return;
+
+ static LLSideTray::Params sidetray_params(LLUICtrlFactory::getDefaultParams<LLSideTray::Params>());
+
+ setPanelRect();
+
+ LLRect ctrl_rect;
+ ctrl_rect.setLeftTopAndSize(0
+ ,getRect().getHeight()-sidetray_params.default_button_width
+ ,sidetray_params.default_button_width
+ ,sidetray_params.default_button_height);
+
+ mCollapseButton->setRect(ctrl_rect);
+
+ //arrange tab buttons
+ child_vector_const_iter_t child_it;
+ int offset = (sidetray_params.default_button_height+sidetray_params.default_button_margin)*2;
+ for ( child_it = mTabs.begin(); child_it != mTabs.end(); ++child_it)
+ {
+ LLSideTrayTab* sidebar_tab = dynamic_cast<LLSideTrayTab*>(*child_it);
+ if(sidebar_tab == NULL)
+ continue;
+
+ ctrl_rect.setLeftTopAndSize(0,getRect().getHeight()-offset
+ ,sidetray_params.default_button_width
+ ,sidetray_params.default_button_height);
+
+ if(mTabButtons.find(sidebar_tab->getName()) == mTabButtons.end())
+ continue;
+
+ LLButton* btn = mTabButtons[sidebar_tab->getName()];
+
+ btn->setRect(ctrl_rect);
+ offset+=sidetray_params.default_button_height;
+ offset+=sidetray_params.default_button_margin;
+
+ btn->setVisible(ctrl_rect.mBottom > 0);
+ }
+
+ //arrange tabs
+
+ for ( child_it = mTabs.begin(); child_it != mTabs.end(); ++child_it)
+ {
+ LLSideTrayTab* sidebar_tab = dynamic_cast<LLSideTrayTab*>(*child_it);
+ if(sidebar_tab == NULL)
+ continue;
+ sidebar_tab->reshape(mMaxBarWidth,getRect().getHeight());
+ ctrl_rect.setLeftTopAndSize(sidetray_params.default_button_width,getRect().getHeight(),mMaxBarWidth,getRect().getHeight());
+ sidebar_tab->setRect(ctrl_rect);
+
+ }
+
+ mHomeTab->reshape(mMaxBarWidth,getRect().getHeight());
+ ctrl_rect.setLeftTopAndSize(sidetray_params.default_button_width,getRect().getHeight(),mMaxBarWidth,getRect().getHeight());
+ mHomeTab->setRect(ctrl_rect);
+
+
+}
+
+/**
+ * Activate tab with "panel_name" panel
+ * if no such tab - return false, otherwise true
+ */
+bool LLSideTray::showPanel (const std::string& panel_name, const LLSD& params)
+{
+ //arrange tabs
+ child_vector_const_iter_t child_it;
+ for ( child_it = mTabs.begin(); child_it != mTabs.end(); ++child_it)
+ {
+ LLView* view = (*child_it)->getChildView(panel_name,true,false);
+ if(view)
+ {
+ onTabButtonClick((*child_it)->getName());
+ LLPanel* panel = dynamic_cast<LLPanel*>(view);
+ if(panel)
+ panel->onOpen(params);
+ return true;
+ }
+ }
+ return false;
+}
+
+void LLSideTray::createHomeTab()
+{
+ mHomeTab = LLSideTrayTab::createInstance();
+ child_vector_iter_t child_it;
+ for ( child_it = mTabs.begin(); child_it != mTabs.end(); ++child_it)
+ {
+ LLSideTrayTab* sidebar_tab = dynamic_cast<LLSideTrayTab*>(*child_it);
+ if(sidebar_tab == NULL)
+ continue;
+
+ LLPanel* panel = LLSideTrayInfoPanel::createInstance(sidebar_tab->mImagePath,sidebar_tab->getTabTitle(),sidebar_tab->getDescription());
+
+ panel->setCommitCallback(boost::bind(&LLSideTray::onTabButtonClick, this, sidebar_tab->getName()));
+
+ LLCollapsibleCtrl::Params panel_params;
+ panel_params.display_children(true);
+ panel_params.collapsible(false);
+ panel_params.header_visible(false);
+ panel_params.can_resize(false);
+ panel_params.min_height(200);
+ panel_params.padding_left(10);
+ panel_params.padding_right(10);
+ panel_params.padding_top(5);
+ panel_params.padding_bottom(5);
+
+ LLCollapsibleCtrl* ctrl = LLUICtrlFactory::create<LLCollapsibleCtrl>(panel_params);
+
+
+ ctrl->setPanel(panel);
+ ctrl->postBuild();
+ mHomeTab->addChild(ctrl,0);
+ }
+
+ mHomeTab->setBackgroundVisible(true);
+ mHomeTab->postBuild();
+
+ LLUICtrl::addChild(mHomeTab, 0);
+}
+static const S32 fake_offset = 132;
+static const S32 fake_top_offset = 78;
+
+void LLSideTray::setPanelRect ()
+{
+ static LLSideTray::Params sidetray_params(LLUICtrlFactory::getDefaultParams<LLSideTray::Params>());
+
+ const LLRect& parent_rect = gViewerWindow->getRootView()->getRect();
+
+ S32 panel_width = sidetray_params.default_button_width+sidetray_params.default_button_margin;
+ if(!mCollapsed)
+ panel_width+=mMaxBarWidth;
+
+ S32 panel_height = parent_rect.getHeight()-fake_top_offset;
+ panel_height -= LLBottomTray::getInstance()->getRect().getHeight();
+
+ LLRect panel_rect;
+ panel_rect.setLeftTopAndSize( parent_rect.mRight-panel_width, parent_rect.mTop-fake_top_offset, panel_width, panel_height);
+ setRect(panel_rect);
+}
+
+S32 LLSideTray::getTrayWidth()
+{
+ static LLSideTray::Params sidetray_params(LLUICtrlFactory::getDefaultParams<LLSideTray::Params>());
+ return getRect().getWidth() - (sidetray_params.default_button_width + sidetray_params.default_button_margin);
+}
diff --git a/indra/newview/llsidetray.h b/indra/newview/llsidetray.h
new file mode 100644
index 0000000000..7d26925753
--- /dev/null
+++ b/indra/newview/llsidetray.h
@@ -0,0 +1,240 @@
+/**
+ * @file LLSideTray.h
+ * @brief SideBar header file
+ *
+ * $LicenseInfo:firstyear=2004&license=viewergpl$
+ *
+ * Copyright (c) 2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#ifndef LL_LLSIDETRAY_H_
+#define LL_LLSIDETRAY_H_
+
+#include "llpanel.h"
+#include "string"
+
+class LLSideTray;
+class LLAccordionPanel;
+
+class LLSideTrayTab: public LLPanel
+{
+ friend class LLUICtrlFactory;
+ friend class LLSideTray;
+public:
+
+ struct Params
+ : public LLInitParam::Block<Params, LLPanel::Params>
+ {
+ // image name
+ Optional<std::string> image_path;
+ Optional<std::string> tab_title;
+ Optional<std::string> tab_description;
+ Params():image_path("image","")
+ ,tab_title("tab_title","no title")
+ ,tab_description("description","no description")
+ {};
+ };
+protected:
+ LLSideTrayTab(const Params& params);
+
+
+ S32 getMaxSideBarTabWidth();
+public:
+ virtual ~LLSideTrayTab();
+
+ void addPanel (LLPanel* panel);
+ /*virtual*/ BOOL postBuild ();
+ /*virtual*/ bool addChild (LLView* view, S32 tab_group);
+
+
+ void arrange (S32 width, S32 height);
+ void reshape (S32 width, S32 height, BOOL called_from_parent = TRUE);
+
+ static LLSideTrayTab* createInstance ();
+
+ const std::string& getDescription () const { return mDescription;}
+ const std::string& getTabTitle() const { return mTabTitle;}
+
+ void draw();
+
+ void onOpen (const LLSD& key);
+
+private:
+ std::string mTabTitle;
+ std::string mImagePath;
+ std::string mDescription;
+
+ LLAccordionPanel* mAccordionPanel;
+};
+
+
+class LLSideTray : public LLPanel
+{
+ friend class LLUICtrlFactory;
+public:
+
+ LOG_CLASS(LLSideTray);
+
+ struct Params
+ : public LLInitParam::Block<Params, LLPanel::Params>
+ {
+ // initial state
+ Optional<bool> collapsed;
+ Optional<std::string> tab_btn_image_normal;
+ Optional<std::string> tab_btn_image_selected;
+
+ Optional<S32> default_button_width;
+ Optional<S32> default_button_height;
+ Optional<S32> default_button_margin;
+
+ Params():
+ collapsed("collapsed",false)
+ ,tab_btn_image_normal("tab_btn_image","sidebar_tab_left.tga")
+ ,tab_btn_image_selected("tab_btn_image_selected","button_enabled_selected_32x128.tga")
+ ,default_button_width("tab_btn_width",32)
+ ,default_button_height("tab_btn_height",32)
+ ,default_button_margin("tab_btn_margin",0)
+ {};
+ };
+
+ static LLSideTray* getInstance ();
+ static bool instanceCreated ();
+protected:
+ LLSideTray(Params& params);
+ typedef std::vector<LLView*> child_vector_t;
+ typedef child_vector_t::iterator child_vector_iter_t;
+ typedef child_vector_t::const_iterator child_vector_const_iter_t;
+ typedef child_vector_t::reverse_iterator child_vector_reverse_iter_t;
+ typedef child_vector_t::const_reverse_iterator child_vector_const_reverse_iter_t;
+
+public:
+
+ // interface functions
+
+ /**
+ * Select tab with specific name and set it active
+ */
+ bool selectTabByName (const std::string& name);
+
+ /**
+ * Select tab with specific index and set it active
+ */
+ bool selectTabByIndex(size_t index);
+
+ /**
+ * add new panel to tab with tab_name name
+ * @param tab_name - name of sidebar tab to add new panel
+ * @param panel - pointer to panel
+ */
+ bool addPanel ( const std::string& tab_name
+ ,LLPanel* panel );
+ /**
+ * Add new tab to side bar
+ * @param tab_name - name of the new tab
+ * @param image - image for new sidebar button
+ * @param title - title for new tab
+ */
+ bool addTab ( const std::string& tab_name
+ ,const std::string& image
+ ,const std::string& title);
+
+ /**
+ * Activate tab with "panel_name" panel
+ * if no such tab - return false, otherwise true
+ */
+ bool showPanel (const std::string& panel_name, const LLSD& params);
+
+ /*
+ * collapse SideBar, hiding visible tab and moving tab buttons
+ * to the right corner of the screen
+ */
+ void collapseSideBar ();
+
+ /*
+ * expand SideBar
+ */
+ void expandSideBar ();
+
+
+ /**
+ *hightlight if focused. manly copypaste from highlightFocusedFloater
+ */
+ void highlightFocused();
+
+ void setVisible(BOOL visible)
+ {
+ LLPanel::setVisible(visible);
+ }
+
+public:
+ virtual ~LLSideTray(){};
+
+ virtual BOOL postBuild();
+
+ void onTabButtonClick(std::string name);
+ void onToggleCollapse();
+
+ bool addChild (LLView* view, S32 tab_group);
+
+ BOOL handleMouseDown (S32 x, S32 y, MASK mask);
+
+ void reshape (S32 width, S32 height, BOOL called_from_parent = TRUE);
+ S32 getTrayWidth();
+
+protected:
+ LLSideTrayTab* getTab (const std::string& name);
+
+ void createButtons ();
+ LLButton* createButton (const std::string& name,const std::string& image,LLUICtrl::commit_callback_t callback);
+ void createHomeTab ();
+ void arrange ();
+ void reflectCollapseChange();
+
+ void toggleTabButton (LLSideTrayTab* tab);
+
+
+ void calcMaxSideBarWidth();
+
+ void setPanelRect ();
+
+
+private:
+
+ std::map<std::string,LLButton*> mTabButtons;
+ child_vector_t mTabs;
+ LLSideTrayTab* mHomeTab;
+ LLSideTrayTab* mActiveTab;
+
+ LLButton* mCollapseButton;
+ bool mCollapsed;
+
+ S32 mMaxBarWidth;
+
+ static LLSideTray* sInstance;
+};
+
+#endif
+
diff --git a/indra/newview/llspatialpartition.h b/indra/newview/llspatialpartition.h
index b6b801866c..8aec5c8377 100644
--- a/indra/newview/llspatialpartition.h
+++ b/indra/newview/llspatialpartition.h
@@ -400,7 +400,7 @@ public:
virtual void updateSpatialExtents();
virtual void updateBinRadius();
virtual void setVisible(LLCamera& camera_in, std::vector<LLDrawable*>* results = NULL, BOOL for_select = FALSE);
- virtual void updateDistance(LLCamera& camera_in);
+ virtual void updateDistance(LLCamera& camera_in, bool force_update);
virtual void makeActive();
virtual void move(LLDrawable *drawablep, LLSpatialGroup *curp, BOOL immediate = FALSE);
virtual BOOL updateMove();
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 41568217c0..d287f25181 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -51,36 +51,37 @@
#endif
#include "llares.h"
+#include "lllandmark.h"
#include "llcachename.h"
-#include "llviewercontrol.h"
#include "lldir.h"
#include "llerrorcontrol.h"
+#include "llfiltersd2xmlrpc.h"
#include "llfloaterreg.h"
#include "llfocusmgr.h"
#include "llhttpsender.h"
-#include "imageids.h"
-#include "lllandmark.h"
#include "lllocationhistory.h"
#include "llloginflags.h"
#include "llmd5.h"
#include "llmemorystream.h"
#include "llmessageconfig.h"
#include "llmoveview.h"
-#include "llteleporthistory.h"
#include "llregionhandle.h"
#include "llsd.h"
#include "llsdserialize.h"
-#include "llsdutil_math.h"
+#include "llsdutil.h"
#include "llsecondlifeurls.h"
#include "llstring.h"
#include "lluserrelations.h"
#include "llversionviewer.h"
+#include "llviewercontrol.h"
#include "llvfs.h"
#include "llxorcipher.h" // saved password, MAC address
+#include "imageids.h"
#include "message.h"
#include "v3math.h"
#include "llagent.h"
+#include "llagentwearables.h"
#include "llagentpilot.h"
#include "llfloateravatarpicker.h"
#include "llcallbacklist.h"
@@ -100,7 +101,9 @@
#include "llfloatergesture.h"
#include "llfloaterhud.h"
#include "llfloaterland.h"
+#include "llfloaterpreference.h"
#include "llfloatertopobjects.h"
+#include "llfloatertos.h"
#include "llfloaterworldmap.h"
#include "llgesturemgr.h"
#include "llgroupmgr.h"
@@ -108,13 +111,12 @@
#include "llhudmanager.h"
#include "llhttpclient.h"
#include "llimagebmp.h"
+#include "llinventorybridge.h"
#include "llinventorymodel.h"
#include "llinventoryview.h"
#include "llkeyboard.h"
#include "llloginhandler.h" // gLoginHandler, SLURL support
-#include "lllogininstance.h" // Host the login module.
#include "llpanellogin.h"
-#include "llprefsim.h"
#include "llmutelist.h"
#include "llnotify.h"
#include "llpanelavatar.h"
@@ -133,6 +135,7 @@
#include "llsecondlifeurls.h"
#include "llselectmgr.h"
#include "llsky.h"
+#include "llsrv.h"
#include "llstatview.h"
#include "lltrans.h"
#include "llstatusbar.h" // sendMoneyBalanceRequest(), owns L$ balance
@@ -145,6 +148,7 @@
#include "llurlsimstring.h"
#include "llurlhistory.h"
#include "llurlwhitelist.h"
+#include "lluserauth.h"
#include "llvieweraudio.h"
#include "llviewerassetstorage.h"
#include "llviewercamera.h"
@@ -164,6 +168,7 @@
#include "llviewerthrottle.h"
#include "llviewerwindow.h"
#include "llvoavatar.h"
+#include "llvoavatarself.h"
#include "llvoclouds.h"
#include "llweb.h"
#include "llworld.h"
@@ -185,8 +190,6 @@
#include "llwearable.h"
#include "llinventorybridge.h"
-#include "lllogin.h"
-
#if LL_LIBXUL_ENABLED
#include "llmozlib.h"
#endif // LL_LIBXUL_ENABLED
@@ -200,12 +203,12 @@
// exported globals
//
bool gAgentMovementCompleted = false;
+std::string gInitialOutfit;
+std::string gInitialOutfitGender;
std::string SCREEN_HOME_FILENAME = "screen_home.bmp";
std::string SCREEN_LAST_FILENAME = "screen_last.bmp";
-LLPointer<LLImageGL> gStartImageGL;
-
//
// Imported globals
//
@@ -215,6 +218,12 @@ extern S32 gStartImageHeight;
//
// local globals
//
+
+LLPointer<LLImageGL> gStartImageGL;
+
+static LLHost gAgentSimHost;
+static BOOL gSkipOptionalUpdate = FALSE;
+
static bool gGotUseCircuitCodeAck = false;
static std::string sInitialOutfit;
static std::string sInitialOutfitGender; // "male" or "female"
@@ -223,17 +232,6 @@ static bool gUseCircuitCallbackCalled = false;
EStartupState LLStartUp::gStartupState = STATE_FIRST;
-// *NOTE:Mani - to reconcile with giab changes...
-static std::string gFirstname;
-static std::string gLastname;
-static std::string gPassword;
-
-static U64 gFirstSimHandle = 0;
-static LLHost gFirstSim;
-static std::string gFirstSimSeedCap;
-static LLVector3 gAgentStartLookAt(1.0f, 0.f, 0.f);
-static std::string gAgentStartLocation = "safe";
-
//
// local function declaration
@@ -246,6 +244,8 @@ void show_first_run_dialog();
bool first_run_dialog_callback(const LLSD& notification, const LLSD& response);
void set_startup_status(const F32 frac, const std::string& string, const std::string& msg);
bool login_alert_status(const LLSD& notification, const LLSD& response);
+void update_app(BOOL mandatory, const std::string& message);
+bool update_dialog_callback(const LLSD& notification, const LLSD& response);
void login_packet_failed(void**, S32 result);
void use_circuit_callback(void**, S32 result);
void register_viewer_callbacks(LLMessageSystem* msg);
@@ -255,7 +255,6 @@ void init_start_screen(S32 location_id);
void release_start_screen();
void reset_login();
void apply_udp_blacklist(const std::string& csv);
-bool process_login_success_response();
void callback_cache_name(const LLUUID& id, const std::string& firstname, const std::string& lastname, BOOL is_group)
{
@@ -312,6 +311,9 @@ void update_texture_fetch()
gImageList.updateImages(0.10f);
}
+static std::vector<std::string> sAuthUris;
+static S32 sAuthUriNum = -1;
+
// Returns false to skip other idle processing. Should only return
// true when all initialization done.
bool idle_startup()
@@ -330,11 +332,23 @@ bool idle_startup()
// auth/transform loop will do.
static F32 progress = 0.10f;
+ static std::string auth_method;
static std::string auth_desc;
static std::string auth_message;
+ static std::string firstname;
+ static std::string lastname;
+ static LLUUID web_login_key;
+ static std::string password;
+ static std::vector<const char*> requested_options;
+
+ static U64 first_sim_handle = 0;
+ static LLHost first_sim;
+ static std::string first_sim_seed_cap;
static LLVector3 initial_sun_direction(1.f, 0.f, 0.f);
static LLVector3 agent_start_position_region(10.f, 10.f, 10.f); // default for when no space server
+ static LLVector3 agent_start_look_at(1.0f, 0.f, 0.f);
+ static std::string agent_start_location = "safe";
// last location by default
static S32 agent_location_id = START_LOCATION_ID_LAST;
@@ -342,7 +356,7 @@ bool idle_startup()
static bool show_connect_box = true;
- //static bool stipend_since_login = false;
+ static bool stipend_since_login = false;
// HACK: These are things from the main loop that usually aren't done
// until initialization is complete, but need to be done here for things
@@ -363,7 +377,12 @@ bool idle_startup()
LLStringUtil::setLocale (LLTrans::getString(system));
- if (!gNoRender)
+ if (gNoRender)
+ {
+ // HACK, skip optional updates if you're running drones
+ gSkipOptionalUpdate = TRUE;
+ }
+ else
{
// Update images?
gImageList.updateImages(0.01f);
@@ -658,23 +677,24 @@ bool idle_startup()
|| !gLoginHandler.getWebLoginKey().isNull() )
{
// We have at least some login information on a SLURL
- gFirstname = gLoginHandler.getFirstName();
- gLastname = gLoginHandler.getLastName();
+ firstname = gLoginHandler.getFirstName();
+ lastname = gLoginHandler.getLastName();
+ web_login_key = gLoginHandler.getWebLoginKey();
// Show the login screen if we don't have everything
show_connect_box =
- gFirstname.empty() || gLastname.empty();
+ firstname.empty() || lastname.empty() || web_login_key.isNull();
}
else if(gSavedSettings.getLLSD("UserLoginInfo").size() == 3)
{
LLSD cmd_line_login = gSavedSettings.getLLSD("UserLoginInfo");
- gFirstname = cmd_line_login[0].asString();
- gLastname = cmd_line_login[1].asString();
+ firstname = cmd_line_login[0].asString();
+ lastname = cmd_line_login[1].asString();
LLMD5 pass((unsigned char*)cmd_line_login[2].asString().c_str());
char md5pass[33]; /* Flawfinder: ignore */
pass.hex_digest(md5pass);
- gPassword = md5pass;
+ password = md5pass;
#ifdef USE_VIEWER_AUTH
show_connect_box = true;
@@ -685,9 +705,9 @@ bool idle_startup()
}
else if (gSavedSettings.getBOOL("AutoLogin"))
{
- gFirstname = gSavedSettings.getString("FirstName");
- gLastname = gSavedSettings.getString("LastName");
- gPassword = LLStartUp::loadPasswordFromDisk();
+ firstname = gSavedSettings.getString("FirstName");
+ lastname = gSavedSettings.getString("LastName");
+ password = LLStartUp::loadPasswordFromDisk();
gSavedSettings.setBOOL("RememberPassword", TRUE);
#ifdef USE_VIEWER_AUTH
@@ -700,9 +720,9 @@ bool idle_startup()
{
// if not automatically logging in, display login dialog
// a valid grid is selected
- gFirstname = gSavedSettings.getString("FirstName");
- gLastname = gSavedSettings.getString("LastName");
- gPassword = LLStartUp::loadPasswordFromDisk();
+ firstname = gSavedSettings.getString("FirstName");
+ lastname = gSavedSettings.getString("LastName");
+ password = LLStartUp::loadPasswordFromDisk();
show_connect_box = true;
}
@@ -739,7 +759,7 @@ bool idle_startup()
// Load all the name information out of the login view
// NOTE: Hits "Attempted getFields with no login view shown" warning, since we don't
// show the login view until login_show() is called below.
- // LLPanelLogin::getFields(gFirstname, gLastname, gPassword);
+ // LLPanelLogin::getFields(firstname, lastname, password);
if (gNoRender)
{
@@ -751,7 +771,7 @@ bool idle_startup()
// Show the login dialog
login_show();
// connect dialog is already shown, so fill in the names
- LLPanelLogin::setFields( gFirstname, gLastname, gPassword);
+ LLPanelLogin::setFields( firstname, lastname, password);
LLPanelLogin::giveFocus();
@@ -808,31 +828,41 @@ bool idle_startup()
if (STATE_LOGIN_CLEANUP == LLStartUp::getStartupState())
{
+ //reset the values that could have come in from a slurl
+ if (!gLoginHandler.getWebLoginKey().isNull())
+ {
+ firstname = gLoginHandler.getFirstName();
+ lastname = gLoginHandler.getLastName();
+ web_login_key = gLoginHandler.getWebLoginKey();
+ }
+
if (show_connect_box)
{
// TODO if not use viewer auth
// Load all the name information out of the login view
- LLPanelLogin::getFields(&gFirstname, &gLastname, &gPassword);
+ LLPanelLogin::getFields(&firstname, &lastname, &password);
// end TODO
// HACK: Try to make not jump on login
gKeyboard->resetKeys();
}
- if (!gFirstname.empty() && !gLastname.empty())
+ if (!firstname.empty() && !lastname.empty())
{
- gSavedSettings.setString("FirstName", gFirstname);
- gSavedSettings.setString("LastName", gLastname);
+ gSavedSettings.setString("FirstName", firstname);
+ gSavedSettings.setString("LastName", lastname);
- LL_INFOS("AppInit") << "Attempting login as: " << gFirstname << " " << gLastname << LL_ENDL;
- gDebugInfo["LoginName"] = gFirstname + " " + gLastname;
+ LL_INFOS("AppInit") << "Attempting login as: " << firstname << " " << lastname << LL_ENDL;
+ gDebugInfo["LoginName"] = firstname + " " + lastname;
}
// create necessary directories
// *FIX: these mkdir's should error check
- gDirUtilp->setLindenUserDir(gFirstname, gLastname);
+ gDirUtilp->setLindenUserDir(firstname, lastname);
LLFile::mkdir(gDirUtilp->getLindenUserDir());
+ LLLocationHistory::getInstance()->load();
+
// Set PerAccountSettingsFile to the default value.
gSavedSettings.setString("PerAccountSettingsFile",
gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT,
@@ -861,7 +891,7 @@ bool idle_startup()
gDirUtilp->setChatLogsDir(gSavedPerAccountSettings.getString("InstantMessageLogPath"));
}
- gDirUtilp->setPerAccountChatLogsDir(gFirstname, gLastname);
+ gDirUtilp->setPerAccountChatLogsDir(firstname, lastname);
LLFile::mkdir(gDirUtilp->getChatLogsDir());
LLFile::mkdir(gDirUtilp->getPerAccountChatLogsDir());
@@ -882,6 +912,13 @@ bool idle_startup()
if (show_connect_box)
{
+ if ( LLPanelLogin::isGridComboDirty() )
+ {
+ // User picked a grid from the popup, so clear the
+ // stored uris and they will be reacquired from the grid choice.
+ sAuthUris.clear();
+ }
+
std::string location;
LLPanelLogin::getLocation( location );
LLURLSimString::setString( location );
@@ -911,7 +948,7 @@ bool idle_startup()
agent_location_id = START_LOCATION_ID_URL;
// doesn't really matter what location_which is, since
- // gAgentStartLookAt will be overwritten when the
+ // agent_start_look_at will be overwritten when the
// UserLoginLocationReply arrives
location_which = START_LOCATION_ID_LAST;
}
@@ -944,115 +981,594 @@ bool idle_startup()
gVFS->pokeFiles();
+ // skipping over STATE_UPDATE_CHECK because that just waits for input
LLStartUp::setStartupState( STATE_LOGIN_AUTH_INIT );
return FALSE;
}
+ if (STATE_UPDATE_CHECK == LLStartUp::getStartupState())
+ {
+ // wait for user to give input via dialog box
+ return FALSE;
+ }
+
if(STATE_LOGIN_AUTH_INIT == LLStartUp::getStartupState())
{
+//#define LL_MINIMIAL_REQUESTED_OPTIONS
gDebugInfo["GridName"] = LLViewerLogin::getInstance()->getGridLabel();
- // Update progress status and the display loop.
+ // *Note: this is where gUserAuth used to be created.
+ requested_options.clear();
+ requested_options.push_back("inventory-root");
+ requested_options.push_back("inventory-skeleton");
+ //requested_options.push_back("inventory-meat");
+ //requested_options.push_back("inventory-skel-targets");
+#if (!defined LL_MINIMIAL_REQUESTED_OPTIONS)
+ if(FALSE == gSavedSettings.getBOOL("NoInventoryLibrary"))
+ {
+ requested_options.push_back("inventory-lib-root");
+ requested_options.push_back("inventory-lib-owner");
+ requested_options.push_back("inventory-skel-lib");
+ // requested_options.push_back("inventory-meat-lib");
+ }
+
+ requested_options.push_back("initial-outfit");
+ requested_options.push_back("gestures");
+ requested_options.push_back("event_categories");
+ requested_options.push_back("event_notifications");
+ requested_options.push_back("classified_categories");
+ //requested_options.push_back("inventory-targets");
+ requested_options.push_back("buddy-list");
+ requested_options.push_back("ui-config");
+#endif
+ requested_options.push_back("tutorial_setting");
+ requested_options.push_back("login-flags");
+ requested_options.push_back("global-textures");
+ if(gSavedSettings.getBOOL("ConnectAsGod"))
+ {
+ gSavedSettings.setBOOL("UseDebugMenus", TRUE);
+ requested_options.push_back("god-connect");
+ }
+ std::vector<std::string> uris;
+ LLViewerLogin::getInstance()->getLoginURIs(uris);
+ std::vector<std::string>::const_iterator iter, end;
+ for (iter = uris.begin(), end = uris.end(); iter != end; ++iter)
+ {
+ std::vector<std::string> rewritten;
+ rewritten = LLSRV::rewriteURI(*iter);
+ sAuthUris.insert(sAuthUris.end(),
+ rewritten.begin(), rewritten.end());
+ }
+ sAuthUriNum = 0;
+ auth_method = "login_to_simulator";
+
auth_desc = LLTrans::getString("LoginInProgress");
+ LLStartUp::setStartupState( STATE_LOGIN_AUTHENTICATE );
+ }
+
+ if (STATE_LOGIN_AUTHENTICATE == LLStartUp::getStartupState())
+ {
+ LL_DEBUGS("AppInit") << "STATE_LOGIN_AUTHENTICATE" << LL_ENDL;
set_startup_status(progress, auth_desc, auth_message);
progress += 0.02f;
display_startup();
-
- // Setting initial values...
- if(gNoRender)
+
+ std::stringstream start;
+ if (LLURLSimString::parse())
{
- // HACK, skip optional updates if you're running drones
- LLLoginInstance::getInstance()->setSkipOptionalUpdate(true);
+ // a startup URL was specified
+ std::stringstream unescaped_start;
+ unescaped_start << "uri:"
+ << LLURLSimString::sInstance.mSimName << "&"
+ << LLURLSimString::sInstance.mX << "&"
+ << LLURLSimString::sInstance.mY << "&"
+ << LLURLSimString::sInstance.mZ;
+ start << xml_escape_string(unescaped_start.str());
+
}
+ else
+ {
+ start << gSavedSettings.getString("LoginLocation");
+ }
+
+ char hashed_mac_string[MD5HEX_STR_SIZE]; /* Flawfinder: ignore */
+ LLMD5 hashed_mac;
+ hashed_mac.update( gMACAddress, MAC_ADDRESS_BYTES );
+ hashed_mac.finalize();
+ hashed_mac.hex_digest(hashed_mac_string);
+
+ // TODO if statement here to use web_login_key
+ sAuthUriNum = llclamp(sAuthUriNum, 0, (S32)sAuthUris.size()-1);
+ LLUserAuth::getInstance()->authenticate(
+ sAuthUris[sAuthUriNum],
+ auth_method,
+ firstname,
+ lastname,
+ password, // web_login_key,
+ start.str(),
+ gSkipOptionalUpdate,
+ gAcceptTOS,
+ gAcceptCriticalMessage,
+ gLastExecEvent,
+ requested_options,
+ hashed_mac_string,
+ LLAppViewer::instance()->getSerialNumber());
+
+ // reset globals
+ gAcceptTOS = FALSE;
+ gAcceptCriticalMessage = FALSE;
+ LLStartUp::setStartupState( STATE_LOGIN_NO_DATA_YET );
+ return FALSE;
+ }
- LLLoginInstance::getInstance()->setUserInteraction(show_connect_box);
-
- // This call to LLLoginInstance::connect() starts the
- // authentication process.
- LLSD credentials;
- credentials["first"] = gFirstname;
- credentials["last"] = gLastname;
- credentials["passwd"] = gPassword;
- LLLoginInstance::getInstance()->connect(credentials);
+ if(STATE_LOGIN_NO_DATA_YET == LLStartUp::getStartupState())
+ {
+ LL_DEBUGS("AppInit") << "STATE_LOGIN_NO_DATA_YET" << LL_ENDL;
+ // If we get here we have gotten past the potential stall
+ // in curl, so take "may appear frozen" out of progress bar. JC
+ auth_desc = LLTrans::getString("LoginInProgressNoFrozen");
+ set_startup_status(progress, auth_desc, auth_message);
+ // Process messages to keep from dropping circuit.
+ LLMessageSystem* msg = gMessageSystem;
+ while (msg->checkAllMessages(gFrameCount, gServicePump))
+ {
+ }
+ msg->processAcks();
+ LLUserAuth::UserAuthcode error = LLUserAuth::getInstance()->authResponse();
+ if(LLUserAuth::E_NO_RESPONSE_YET == error)
+ {
+ LL_DEBUGS("AppInit") << "waiting..." << LL_ENDL;
+ return FALSE;
+ }
+ LLStartUp::setStartupState( STATE_LOGIN_DOWNLOADING );
+ progress += 0.01f;
+ set_startup_status(progress, auth_desc, auth_message);
+ return FALSE;
+ }
+ if(STATE_LOGIN_DOWNLOADING == LLStartUp::getStartupState())
+ {
+ LL_DEBUGS("AppInit") << "STATE_LOGIN_DOWNLOADING" << LL_ENDL;
+ // Process messages to keep from dropping circuit.
+ LLMessageSystem* msg = gMessageSystem;
+ while (msg->checkAllMessages(gFrameCount, gServicePump))
+ {
+ }
+ msg->processAcks();
+ LLUserAuth::UserAuthcode error = LLUserAuth::getInstance()->authResponse();
+ if(LLUserAuth::E_DOWNLOADING == error)
+ {
+ LL_DEBUGS("AppInit") << "downloading..." << LL_ENDL;
+ return FALSE;
+ }
LLStartUp::setStartupState( STATE_LOGIN_PROCESS_RESPONSE );
+ progress += 0.01f;
+ set_startup_status(progress, LLTrans::getString("LoginProcessingResponse"), auth_message);
return FALSE;
}
- if(STATE_LOGIN_PROCESS_RESPONSE == LLStartUp::getStartupState())
+ if(STATE_LOGIN_PROCESS_RESPONSE == LLStartUp::getStartupState())
{
- bool transitionBackToLoginPanel = false;
+ LL_DEBUGS("AppInit") << "STATE_LOGIN_PROCESS_RESPONSE" << LL_ENDL;
std::ostringstream emsg;
- if(LLLoginInstance::getInstance()->authFailure())
- {
- // Still have error conditions that may need some
- // sort of handling.
- emsg << "Login failed.\n";
- std::string reason_response = LLLoginInstance::getInstance()->getResponse("reason");
- std::string message_response = LLLoginInstance::getInstance()->getResponse("message");
-
- if(!message_response.empty())
+ bool quit = false;
+ bool update = false;
+ std::string login_response;
+ std::string reason_response;
+ std::string message_response;
+ bool successful_login = false;
+ LLUserAuth::UserAuthcode error = LLUserAuth::getInstance()->authResponse();
+ // reset globals
+ gAcceptTOS = FALSE;
+ gAcceptCriticalMessage = FALSE;
+ switch(error)
+ {
+ case LLUserAuth::E_OK:
+ login_response = LLUserAuth::getInstance()->getResponse("login");
+ if(login_response == "true")
{
- // XUI: fix translation for strings returned during login
- // We need a generic table for translations
- std::string big_reason = LLAgent::sTeleportErrorMessages[ message_response ];
- if ( big_reason.size() == 0 )
+ // Yay, login!
+ successful_login = true;
+ }
+ else if(login_response == "indeterminate")
+ {
+ LL_INFOS("AppInit") << "Indeterminate login..." << LL_ENDL;
+ sAuthUris = LLSRV::rewriteURI(LLUserAuth::getInstance()->getResponse("next_url"));
+ sAuthUriNum = 0;
+ auth_method = LLUserAuth::getInstance()->getResponse("next_method");
+ auth_message = LLUserAuth::getInstance()->getResponse("message");
+ if(auth_method.substr(0, 5) == "login")
{
- emsg << message_response;
+ auth_desc.assign(LLTrans::getString("LoginAuthenticating"));
}
else
{
- emsg << big_reason;
+ auth_desc.assign(LLTrans::getString("LoginMaintenance"));
}
+ // ignoring the duration & options array for now.
+ // Go back to authenticate.
+ LLStartUp::setStartupState( STATE_LOGIN_AUTHENTICATE );
+ return FALSE;
}
+ else
+ {
+ emsg << "Login failed.\n";
+ reason_response = LLUserAuth::getInstance()->getResponse("reason");
+ message_response = LLUserAuth::getInstance()->getResponse("message");
- if(reason_response == "key")
+ if (!message_response.empty())
+ {
+ // XUI: fix translation for strings returned during login
+ // We need a generic table for translations
+ std::string big_reason = LLAgent::sTeleportErrorMessages[ message_response ];
+ if ( big_reason.size() == 0 )
+ {
+ emsg << message_response;
+ }
+ else
+ {
+ emsg << big_reason;
+ }
+ }
+
+ if(reason_response == "tos")
+ {
+ if (show_connect_box)
+ {
+ LL_DEBUGS("AppInit") << "Need tos agreement" << LL_ENDL;
+ LLStartUp::setStartupState( STATE_UPDATE_CHECK );
+ LLFloaterTOS* tos_dialog = LLFloaterTOS::show(LLFloaterTOS::TOS_TOS,
+ message_response);
+ tos_dialog->startModal();
+ // LLFloaterTOS deletes itself.
+ return false;
+ }
+ else
+ {
+ quit = true;
+ }
+ }
+ if(reason_response == "critical")
+ {
+ if (show_connect_box)
+ {
+ LL_DEBUGS("AppInit") << "Need critical message" << LL_ENDL;
+ LLStartUp::setStartupState( STATE_UPDATE_CHECK );
+ LLFloaterTOS* tos_dialog = LLFloaterTOS::show(LLFloaterTOS::TOS_CRITICAL_MESSAGE,
+ message_response);
+ tos_dialog->startModal();
+ // LLFloaterTOS deletes itself.
+ return false;
+ }
+ else
+ {
+ quit = true;
+ }
+ }
+ if(reason_response == "key")
+ {
+ // Couldn't login because user/password is wrong
+ // Clear the password
+ password = "";
+ }
+ if(reason_response == "update")
+ {
+ auth_message = LLUserAuth::getInstance()->getResponse("message");
+ update = true;
+ }
+ if(reason_response == "optional")
+ {
+ LL_DEBUGS("AppInit") << "Login got optional update" << LL_ENDL;
+ auth_message = LLUserAuth::getInstance()->getResponse("message");
+ if (show_connect_box)
+ {
+ update_app(FALSE, auth_message);
+ LLStartUp::setStartupState( STATE_UPDATE_CHECK );
+ gSkipOptionalUpdate = TRUE;
+ return false;
+ }
+ }
+ }
+ break;
+ case LLUserAuth::E_COULDNT_RESOLVE_HOST:
+ case LLUserAuth::E_SSL_PEER_CERTIFICATE:
+ case LLUserAuth::E_UNHANDLED_ERROR:
+ case LLUserAuth::E_SSL_CACERT:
+ case LLUserAuth::E_SSL_CONNECT_ERROR:
+ default:
+ if (sAuthUriNum >= (int) sAuthUris.size() - 1)
{
- // Couldn't login because user/password is wrong
- // Clear the password
- gPassword = "";
+ emsg << "Unable to connect to " << LLAppViewer::instance()->getSecondLifeTitle() << ".\n";
+ emsg << LLUserAuth::getInstance()->errorMessage();
+ } else {
+ sAuthUriNum++;
+ std::ostringstream s;
+ LLStringUtil::format_map_t args;
+ args["[NUMBER]"] = llformat("%d", sAuthUriNum + 1);
+ auth_desc = LLTrans::getString("LoginAttempt", args);
+ LLStartUp::setStartupState( STATE_LOGIN_AUTHENTICATE );
+ return FALSE;
}
+ break;
+ }
- if(reason_response == "update"
- || reason_response == "optional")
+ if (update || gSavedSettings.getBOOL("ForceMandatoryUpdate"))
+ {
+ gSavedSettings.setBOOL("ForceMandatoryUpdate", FALSE);
+ update_app(TRUE, auth_message);
+ LLStartUp::setStartupState( STATE_UPDATE_CHECK );
+ return false;
+ }
+
+ // Version update and we're not showing the dialog
+ if(quit)
+ {
+ LLUserAuth::getInstance()->reset();
+ LLAppViewer::instance()->forceQuit();
+ return false;
+ }
+
+ if(successful_login)
+ {
+ std::string text;
+ text = LLUserAuth::getInstance()->getResponse("udp_blacklist");
+ if(!text.empty())
{
- // In the case of a needed update, quit.
- // Its either downloading or declined.
- // If optional was skipped this case shouldn't
- // be reached.
- LLLoginInstance::getInstance()->disconnect();
- LLAppViewer::instance()->forceQuit();
+ apply_udp_blacklist(text);
+ }
+
+ // unpack login data needed by the application
+ text = LLUserAuth::getInstance()->getResponse("agent_id");
+ if(!text.empty()) gAgentID.set(text);
+ gDebugInfo["AgentID"] = text;
+
+ text = LLUserAuth::getInstance()->getResponse("session_id");
+ if(!text.empty()) gAgentSessionID.set(text);
+ gDebugInfo["SessionID"] = text;
+
+ text = LLUserAuth::getInstance()->getResponse("secure_session_id");
+ if(!text.empty()) gAgent.mSecureSessionID.set(text);
+
+ text = LLUserAuth::getInstance()->getResponse("first_name");
+ if(!text.empty())
+ {
+ // Remove quotes from string. Login.cgi sends these to force
+ // names that look like numbers into strings.
+ firstname.assign(text);
+ LLStringUtil::replaceChar(firstname, '"', ' ');
+ LLStringUtil::trim(firstname);
+ }
+ text = LLUserAuth::getInstance()->getResponse("last_name");
+ if(!text.empty()) lastname.assign(text);
+ gSavedSettings.setString("FirstName", firstname);
+ gSavedSettings.setString("LastName", lastname);
+
+ if (gSavedSettings.getBOOL("RememberPassword"))
+ {
+ // Successful login means the password is valid, so save it.
+ LLStartUp::savePasswordToDisk(password);
}
else
{
- transitionBackToLoginPanel = true;
+ // Don't leave password from previous session sitting around
+ // during this login session.
+ LLStartUp::deletePasswordFromDisk();
}
- }
- else if(LLLoginInstance::getInstance()->authSuccess())
- {
- if(process_login_success_response())
+
+ // this is their actual ability to access content
+ text = LLUserAuth::getInstance()->getResponse("agent_access_max");
+ if (!text.empty())
+ {
+ // agent_access can be 'A', 'M', and 'PG'.
+ gAgent.setMaturity(text[0]);
+ }
+
+ // this is the value of their preference setting for that content
+ // which will always be <= agent_access_max
+ text = LLUserAuth::getInstance()->getResponse("agent_region_access");
+ if (!text.empty())
+ {
+ int preferredMaturity = LLAgent::convertTextToMaturity(text[0]);
+ gSavedSettings.setU32("PreferredMaturity", preferredMaturity);
+ }
+ // During the AO transition, this flag will be true. Then the flag will
+ // go away. After the AO transition, this code and all the code that
+ // uses it can be deleted.
+ text = LLUserAuth::getInstance()->getResponse("ao_transition");
+ if (!text.empty())
+ {
+ if (text == "1")
+ {
+ gAgent.setAOTransition();
+ }
+ }
+
+ text = LLUserAuth::getInstance()->getResponse("start_location");
+ if(!text.empty()) agent_start_location.assign(text);
+ text = LLUserAuth::getInstance()->getResponse("circuit_code");
+ if(!text.empty())
+ {
+ gMessageSystem->mOurCircuitCode = strtoul(text.c_str(), NULL, 10);
+ }
+ std::string sim_ip_str = LLUserAuth::getInstance()->getResponse("sim_ip");
+ std::string sim_port_str = LLUserAuth::getInstance()->getResponse("sim_port");
+ if(!sim_ip_str.empty() && !sim_port_str.empty())
+ {
+ U32 sim_port = strtoul(sim_port_str.c_str(), NULL, 10);
+ first_sim.set(sim_ip_str, sim_port);
+ if (first_sim.isOk())
+ {
+ gMessageSystem->enableCircuit(first_sim, TRUE);
+ }
+ }
+ std::string region_x_str = LLUserAuth::getInstance()->getResponse("region_x");
+ std::string region_y_str = LLUserAuth::getInstance()->getResponse("region_y");
+ if(!region_x_str.empty() && !region_y_str.empty())
+ {
+ U32 region_x = strtoul(region_x_str.c_str(), NULL, 10);
+ U32 region_y = strtoul(region_y_str.c_str(), NULL, 10);
+ first_sim_handle = to_region_handle(region_x, region_y);
+ }
+
+ const std::string look_at_str = LLUserAuth::getInstance()->getResponse("look_at");
+ if (!look_at_str.empty())
+ {
+ size_t len = look_at_str.size();
+ LLMemoryStream mstr((U8*)look_at_str.c_str(), len);
+ LLSD sd = LLSDSerialize::fromNotation(mstr, len);
+ agent_start_look_at = ll_vector3_from_sd(sd);
+ }
+
+ text = LLUserAuth::getInstance()->getResponse("seed_capability");
+ if (!text.empty()) first_sim_seed_cap = text;
+
+ text = LLUserAuth::getInstance()->getResponse("seconds_since_epoch");
+ if(!text.empty())
+ {
+ U32 server_utc_time = strtoul(text.c_str(), NULL, 10);
+ if(server_utc_time)
+ {
+ time_t now = time(NULL);
+ gUTCOffset = (server_utc_time - now);
+ }
+ }
+
+ std::string home_location = LLUserAuth::getInstance()->getResponse("home");
+ if(!home_location.empty())
{
- // Pass the user information to the voice chat server interface.
- gVoiceClient->userAuthorized(gFirstname, gLastname, gAgentID);
- LLStartUp::setStartupState( STATE_WORLD_INIT);
+ size_t len = home_location.size();
+ LLMemoryStream mstr((U8*)home_location.c_str(), len);
+ LLSD sd = LLSDSerialize::fromNotation(mstr, len);
+ S32 region_x = sd["region_handle"][0].asInteger();
+ S32 region_y = sd["region_handle"][1].asInteger();
+ U64 region_handle = to_region_handle(region_x, region_y);
+ LLVector3 position = ll_vector3_from_sd(sd["position"]);
+ gAgent.setHomePosRegion(region_handle, position);
+ }
+
+ gAgent.mMOTD.assign(LLUserAuth::getInstance()->getResponse("message"));
+ LLUserAuth::options_t options;
+ if(LLUserAuth::getInstance()->getOptions("inventory-root", options))
+ {
+ LLUserAuth::response_t::iterator it;
+ it = options[0].find("folder_id");
+ if(it != options[0].end())
+ {
+ gAgent.getInventoryRootID().set((*it).second);
+ //gInventory.mock(gAgent.getInventoryRootID());
+ }
+ }
+
+ options.clear();
+ if(LLUserAuth::getInstance()->getOptions("login-flags", options))
+ {
+ LLUserAuth::response_t::iterator it;
+ LLUserAuth::response_t::iterator no_flag = options[0].end();
+ it = options[0].find("ever_logged_in");
+ if(it != no_flag)
+ {
+ if((*it).second == "N") gAgent.setFirstLogin(TRUE);
+ else gAgent.setFirstLogin(FALSE);
+ }
+ it = options[0].find("stipend_since_login");
+ if(it != no_flag)
+ {
+ if((*it).second == "Y") stipend_since_login = true;
+ }
+ it = options[0].find("gendered");
+ if(it != no_flag)
+ {
+ if((*it).second == "Y") gAgent.setGenderChosen(TRUE);
+ }
+ it = options[0].find("daylight_savings");
+ if(it != no_flag)
+ {
+ if((*it).second == "Y") gPacificDaylightTime = TRUE;
+ else gPacificDaylightTime = FALSE;
+ }
+
+ //setup map of datetime strings to codes and slt & local time offset from utc
+ LLStringOps::setupDatetimeInfo (gPacificDaylightTime);
+ }
+ options.clear();
+ if (LLUserAuth::getInstance()->getOptions("initial-outfit", options)
+ && !options.empty())
+ {
+ LLUserAuth::response_t::iterator it;
+ LLUserAuth::response_t::iterator it_end = options[0].end();
+ it = options[0].find("folder_name");
+ if(it != it_end)
+ {
+ // Initial outfit is a folder in your inventory,
+ // must be an exact folder-name match.
+ sInitialOutfit = (*it).second;
+ }
+ it = options[0].find("gender");
+ if (it != it_end)
+ {
+ sInitialOutfitGender = (*it).second;
+ }
+ }
+
+ options.clear();
+ if(LLUserAuth::getInstance()->getOptions("global-textures", options))
+ {
+ // Extract sun and moon texture IDs. These are used
+ // in the LLVOSky constructor, but I can't figure out
+ // how to pass them in. JC
+ LLUserAuth::response_t::iterator it;
+ LLUserAuth::response_t::iterator no_texture = options[0].end();
+ it = options[0].find("sun_texture_id");
+ if(it != no_texture)
+ {
+ gSunTextureID.set((*it).second);
+ }
+ it = options[0].find("moon_texture_id");
+ if(it != no_texture)
+ {
+ gMoonTextureID.set((*it).second);
+ }
+ it = options[0].find("cloud_texture_id");
+ if(it != no_texture)
+ {
+ gCloudTextureID.set((*it).second);
+ }
+ }
+
+
+ // JC: gesture loading done below, when we have an asset system
+ // in place. Don't delete/clear user_credentials until then.
+
+ if(gAgentID.notNull()
+ && gAgentSessionID.notNull()
+ && gMessageSystem->mOurCircuitCode
+ && first_sim.isOk()
+ && gAgent.getInventoryRootID().notNull())
+ {
+ LLStartUp::setStartupState( STATE_WORLD_INIT );
}
else
{
- transitionBackToLoginPanel = false;
+ if (gNoRender)
+ {
+ LL_WARNS("AppInit") << "Bad login - missing return values" << LL_ENDL;
+ LL_WARNS("AppInit") << emsg << LL_ENDL;
+ exit(0);
+ }
+ // Bounce back to the login screen.
+ LLSD args;
+ args["ERROR_MESSAGE"] = emsg.str();
+ LLNotifications::instance().add("ErrorMessage", args, LLSD(), login_alert_done);
+ reset_login();
+ gSavedSettings.setBOOL("AutoLogin", FALSE);
+ show_connect_box = true;
}
+
+ // Pass the user information to the voice chat server interface.
+ gVoiceClient->userAuthorized(firstname, lastname, gAgentID);
}
- else
- {
- // Still waiting for response.
- // *TODO:Mani - Actually check for login progress.
- // If we get here we have gotten past the potential stall
- // in curl, so take "may appear frozen" out of progress bar. JC
- auth_desc = LLTrans::getString("LoginInProgressNoFrozen");
- set_startup_status(progress, auth_desc, auth_message);
- }
-
- if(transitionBackToLoginPanel)
+ else // if(successful_login)
{
if (gNoRender)
{
@@ -1060,12 +1576,11 @@ bool idle_startup()
LL_WARNS("AppInit") << emsg << LL_ENDL;
exit(0);
}
-
// Bounce back to the login screen.
LLSD args;
args["ERROR_MESSAGE"] = emsg.str();
LLNotifications::instance().add("ErrorMessage", args, LLSD(), login_alert_done);
- reset_login(); // calls LLStartUp::setStartupState( STATE_LOGIN_SHOW );
+ reset_login();
gSavedSettings.setBOOL("AutoLogin", FALSE);
show_connect_box = true;
}
@@ -1107,7 +1622,6 @@ bool idle_startup()
LLWaterParamManager::initClass();
LLViewerObject::initVOClasses();
- LLWearable::initClass();
// Initialize all our tools. Must be done after saved settings loaded.
// NOTE: This also is where gToolMgr used to be instantiated before being turned into a singleton.
@@ -1129,14 +1643,14 @@ bool idle_startup()
// This is necessary because creating objects before this is set will result in a
// bad mPositionAgent cache.
- gAgent.initOriginGlobal(from_region_handle(gFirstSimHandle));
+ gAgent.initOriginGlobal(from_region_handle(first_sim_handle));
- LLWorld::getInstance()->addRegion(gFirstSimHandle, gFirstSim);
+ LLWorld::getInstance()->addRegion(first_sim_handle, first_sim);
- LLViewerRegion *regionp = LLWorld::getInstance()->getRegionFromHandle(gFirstSimHandle);
+ LLViewerRegion *regionp = LLWorld::getInstance()->getRegionFromHandle(first_sim_handle);
LL_INFOS("AppInit") << "Adding initial simulator " << regionp->getOriginGlobal() << LL_ENDL;
- regionp->setSeedCapability(gFirstSimSeedCap);
+ regionp->setSeedCapability(first_sim_seed_cap);
LL_DEBUGS("AppInit") << "Waiting for seed grant ...." << LL_ENDL;
// Set agent's initial region to be the one we just created.
@@ -1195,10 +1709,6 @@ bool idle_startup()
gLoginMenuBarView->setVisible( FALSE );
gLoginMenuBarView->setEnabled( FALSE );
- // ProductEngine: Should be able to move this code near where we call loadSettingsFromDirectory()
- LLTeleportHistory::getInstance()->load(); // *TODO: find a better place for doing this
- LLLocationHistory::getInstance()->load(); // *TODO: find a better place for doing this
-
LLFloaterReg::showInitialVisibleInstances();
if (gSavedSettings.getBOOL("ShowCameraControls"))
@@ -1289,15 +1799,8 @@ bool idle_startup()
// Make sure agent knows correct aspect ratio
// FOV limits depend upon aspect ratio so this needs to happen before initializing the FOV below
- LLViewerCamera::getInstance()->setViewHeightInPixels(gViewerWindow->getWindowDisplayHeight());
- if (gViewerWindow->mWindow->getFullscreen())
- {
- LLViewerCamera::getInstance()->setAspect(gViewerWindow->getDisplayAspectRatio());
- }
- else
- {
- LLViewerCamera::getInstance()->setAspect( (F32) gViewerWindow->getWindowWidth() / (F32) gViewerWindow->getWindowHeight());
- }
+ LLViewerCamera::getInstance()->setViewHeightInPixels(gViewerWindow->getWorldViewHeight());
+ LLViewerCamera::getInstance()->setAspect(gViewerWindow->getWorldViewAspectRatio());
// Initialize FOV
LLViewerCamera::getInstance()->setDefaultFOV(gSavedSettings.getF32("CameraAngle"));
@@ -1307,7 +1810,7 @@ bool idle_startup()
// the coordinates handed to us to fit in the local region.
gAgent.setPositionAgent(agent_start_position_region);
- gAgent.resetAxes(gAgentStartLookAt);
+ gAgent.resetAxes(agent_start_look_at);
gAgent.stopCameraAnimation();
gAgent.resetCamera();
@@ -1346,18 +1849,18 @@ bool idle_startup()
LL_WARNS("AppInit") << "Attempting to connect to simulator with a zero circuit code!" << LL_ENDL;
}
- gUseCircuitCallbackCalled = false;
+ gUseCircuitCallbackCalled = FALSE;
- msg->enableCircuit(gFirstSim, TRUE);
+ msg->enableCircuit(first_sim, TRUE);
// now, use the circuit info to tell simulator about us!
- LL_INFOS("AppInit") << "viewer: UserLoginLocationReply() Enabling " << gFirstSim << " with code " << msg->mOurCircuitCode << LL_ENDL;
+ LL_INFOS("AppInit") << "viewer: UserLoginLocationReply() Enabling " << first_sim << " with code " << msg->mOurCircuitCode << LL_ENDL;
msg->newMessageFast(_PREHASH_UseCircuitCode);
msg->nextBlockFast(_PREHASH_CircuitCode);
msg->addU32Fast(_PREHASH_Code, msg->mOurCircuitCode);
msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
msg->addUUIDFast(_PREHASH_ID, gAgent.getID());
msg->sendReliable(
- gFirstSim,
+ first_sim,
MAX_TIMEOUT_COUNT,
FALSE,
TIMEOUT_SECONDS,
@@ -1468,113 +1971,105 @@ bool idle_startup()
LLAgentLanguage::update();
// unpack thin inventory
- LLSD response = LLLoginInstance::getInstance()->getResponse();
+ LLUserAuth::options_t options;
+ options.clear();
//bool dump_buffer = false;
-
- LLSD inv_lib_root = response["inventory-lib-root"];
- if(inv_lib_root.isDefined())
+
+ if(LLUserAuth::getInstance()->getOptions("inventory-lib-root", options)
+ && !options.empty())
{
// should only be one
- LLSD id = inv_lib_root[0]["folder_id"];
- if(id.isDefined())
+ LLUserAuth::response_t::iterator it;
+ it = options[0].find("folder_id");
+ if(it != options[0].end())
{
- gInventoryLibraryRoot = id.asUUID();
+ gInventoryLibraryRoot.set((*it).second);
}
}
-
- LLSD inv_lib_owner = response["inventory-lib-owner"];
- if(inv_lib_owner.isDefined())
+ options.clear();
+ if(LLUserAuth::getInstance()->getOptions("inventory-lib-owner", options)
+ && !options.empty())
{
// should only be one
- LLSD id = inv_lib_owner[0]["agent_id"];
- if(id.isDefined())
+ LLUserAuth::response_t::iterator it;
+ it = options[0].find("agent_id");
+ if(it != options[0].end())
{
- gInventoryLibraryOwner = id.asUUID();
+ gInventoryLibraryOwner.set((*it).second);
}
}
-
- LLSD inv_skel_lib = response["inventory-skel-lib"];
- if(inv_skel_lib.isDefined() && gInventoryLibraryOwner.notNull())
+ options.clear();
+ if(LLUserAuth::getInstance()->getOptions("inventory-skel-lib", options)
+ && gInventoryLibraryOwner.notNull())
{
- if(!gInventory.loadSkeleton(inv_skel_lib, gInventoryLibraryOwner))
+ if(!gInventory.loadSkeleton(options, gInventoryLibraryOwner))
{
LL_WARNS("AppInit") << "Problem loading inventory-skel-lib" << LL_ENDL;
}
}
-
- LLSD inv_skeleton = response["inventory-skeleton"];
- if(inv_skeleton.isDefined())
+ options.clear();
+ if(LLUserAuth::getInstance()->getOptions("inventory-skeleton", options))
{
- if(!gInventory.loadSkeleton(inv_skeleton, gAgent.getID()))
+ if(!gInventory.loadSkeleton(options, gAgent.getID()))
{
LL_WARNS("AppInit") << "Problem loading inventory-skel-targets" << LL_ENDL;
}
}
- LLSD buddy_list = response["buddy-list"];
- if(buddy_list.isDefined())
+ options.clear();
+ if(LLUserAuth::getInstance()->getOptions("buddy-list", options))
{
+ LLUserAuth::options_t::iterator it = options.begin();
+ LLUserAuth::options_t::iterator end = options.end();
LLAvatarTracker::buddy_map_t list;
LLUUID agent_id;
S32 has_rights = 0, given_rights = 0;
- for(LLSD::array_const_iterator it = buddy_list.beginArray(),
- end = buddy_list.endArray(); it != end; ++it)
+ for (; it != end; ++it)
{
- LLSD buddy_id = (*it)["buddy_id"];
- if(buddy_id.isDefined())
+ LLUserAuth::response_t::const_iterator option_it;
+ option_it = (*it).find("buddy_id");
+ if(option_it != (*it).end())
{
- agent_id = buddy_id.asUUID();
+ agent_id.set((*option_it).second);
}
-
- LLSD buddy_rights_has = (*it)["buddy_rights_has"];
- if(buddy_rights_has.isDefined())
+ option_it = (*it).find("buddy_rights_has");
+ if(option_it != (*it).end())
{
- has_rights = buddy_rights_has.asInteger();
+ has_rights = atoi((*option_it).second.c_str());
}
-
- LLSD buddy_rights_given = (*it)["buddy_rights_given"];
- if(buddy_rights_given.isDefined())
+ option_it = (*it).find("buddy_rights_given");
+ if(option_it != (*it).end())
{
- given_rights = buddy_rights_given.asInteger();
+ given_rights = atoi((*option_it).second.c_str());
}
-
list[agent_id] = new LLRelationship(given_rights, has_rights, false);
}
LLAvatarTracker::instance().addBuddyList(list);
}
- LLSD ui_config = response["ui-config"];
- if(ui_config.isDefined())
- {
- for(LLSD::array_const_iterator it = ui_config.beginArray(),
- end = ui_config.endArray(); it != end; ++it)
- {
- LLSD allow_first_life = (*it)["allow_first_life"];
- if(allow_first_life.asString() == "Y")
- {
- LLPanelAvatar::sAllowFirstLife = TRUE;
- }
- }
- }
+ options.clear();
bool show_hud = false;
- LLSD tutorial_setting = response["tutorial_setting"];
- if(tutorial_setting.isDefined())
+ if(LLUserAuth::getInstance()->getOptions("tutorial_setting", options))
{
- for(LLSD::array_const_iterator it = tutorial_setting.beginArray(),
- end = tutorial_setting.endArray(); it != end; ++it)
+ LLUserAuth::options_t::iterator it = options.begin();
+ LLUserAuth::options_t::iterator end = options.end();
+ for (; it != end; ++it)
{
- LLSD tutorial_url = (*it)["tutorial_url"];
- if(tutorial_url.isDefined())
+ LLUserAuth::response_t::const_iterator option_it;
+ option_it = (*it).find("tutorial_url");
+ if(option_it != (*it).end())
{
// Tutorial floater will append language code
- gSavedSettings.setString("TutorialURL", tutorial_url.asString());
+ gSavedSettings.setString("TutorialURL", option_it->second);
}
-
- LLSD use_tutorial = (*it)["use_tutorial"];
- if(use_tutorial.asString() == "true")
+ option_it = (*it).find("use_tutorial");
+ if(option_it != (*it).end())
{
- show_hud = true;
+ if (option_it->second == "true")
+ {
+ show_hud = true;
+ }
}
}
}
@@ -1587,22 +2082,19 @@ bool idle_startup()
LLFloaterHUD::showHUD();
}
- LLSD event_categories = response["event_categories"];
- if(event_categories.isDefined())
+ options.clear();
+ if(LLUserAuth::getInstance()->getOptions("event_categories", options))
{
- LLEventInfo::loadCategories(event_categories);
+ LLEventInfo::loadCategories(options);
}
-
- LLSD event_notifications = response["event_notifications"];
- if(event_notifications.isDefined())
+ if(LLUserAuth::getInstance()->getOptions("event_notifications", options))
{
- gEventNotifier.load(event_notifications);
+ gEventNotifier.load(options);
}
-
- LLSD classified_categories = response["classified_categories"];
- if(classified_categories.isDefined())
+ options.clear();
+ if(LLUserAuth::getInstance()->getOptions("classified_categories", options))
{
- LLClassifiedInfo::loadCategories(classified_categories);
+ LLClassifiedInfo::loadCategories(options);
}
@@ -1659,7 +2151,7 @@ bool idle_startup()
// This is actually a pessimistic computation, because TCP may not have enough
// time to ramp up on the (small) default inventory file to truly measure max
// bandwidth. JC
- F64 rate_bps = LLLoginInstance::getInstance()->getLastTransferRateBPS();
+ F64 rate_bps = LLUserAuth::getInstance()->getLastTransferRateBPS();
const F32 FAST_RATE_BPS = 600.f * 1024.f;
const F32 FASTER_RATE_BPS = 750.f * 1024.f;
F32 max_bandwidth = gViewerThrottle.getMaxBandwidth();
@@ -1706,20 +2198,34 @@ bool idle_startup()
// JC: Initialize "active" gestures. This may also trigger
// many gesture downloads, if this is the user's first
// time on this machine or -purge has been run.
- LLSD gesture_options
- = LLLoginInstance::getInstance()->getResponse("gestures");
- if (gesture_options.isDefined())
+ LLUserAuth::options_t gesture_options;
+ if (LLUserAuth::getInstance()->getOptions("gestures", gesture_options))
{
LL_DEBUGS("AppInit") << "Gesture Manager loading " << gesture_options.size()
<< LL_ENDL;
std::vector<LLUUID> item_ids;
- for(LLSD::array_const_iterator resp_it = gesture_options.beginArray(),
- end = gesture_options.endArray(); resp_it != end; ++resp_it)
+ LLUserAuth::options_t::iterator resp_it;
+ for (resp_it = gesture_options.begin();
+ resp_it != gesture_options.end();
+ ++resp_it)
{
- // If the id is not specifed in the LLSD,
- // the LLSD operator[]() will return a null LLUUID.
- LLUUID item_id = (*resp_it)["item_id"];
- LLUUID asset_id = (*resp_it)["asset_id"];
+ const LLUserAuth::response_t& response = *resp_it;
+ LLUUID item_id;
+ LLUUID asset_id;
+ LLUserAuth::response_t::const_iterator option_it;
+
+ option_it = response.find("item_id");
+ if (option_it != response.end())
+ {
+ const std::string& uuid_string = (*option_it).second;
+ item_id.set(uuid_string);
+ }
+ option_it = response.find("asset_id");
+ if (option_it != response.end())
+ {
+ const std::string& uuid_string = (*option_it).second;
+ asset_id.set(uuid_string);
+ }
if (item_id.notNull() && asset_id.notNull())
{
@@ -1775,8 +2281,8 @@ bool idle_startup()
if (!gAgent.isFirstLogin())
{
bool url_ok = LLURLSimString::sInstance.parse();
- if ((url_ok && gAgentStartLocation == "url") ||
- (!url_ok && ((gAgentStartLocation == gSavedSettings.getString("LoginLocation")))))
+ if ((url_ok && agent_start_location == "url") ||
+ (!url_ok && ((agent_start_location == gSavedSettings.getString("LoginLocation")))))
{
// Start location is OK
// Disabled code to restore camera location and focus if logging in to default location
@@ -1818,7 +2324,7 @@ bool idle_startup()
LLInventoryModel::findLostItems();
//DEV-10530. do cleanup. remove at some later date. jan-2009
- LLPrefsIM::cleanupBadSetting();
+ LLFloaterPreference::cleanupBadSetting();
LLStartUp::setStartupState( STATE_PRECACHE );
timeout.reset();
@@ -1926,7 +2432,7 @@ bool idle_startup()
else
{
// OK to just get the wearables
- if ( gAgent.areWearablesLoaded() )
+ if ( gAgentWearables.areWearablesLoaded() )
{
// We have our clothing, proceed.
//llinfos << "wearables loaded" << llendl;
@@ -1970,7 +2476,7 @@ bool idle_startup()
}
// Start automatic replay if the flag is set.
- if (gSavedSettings.getBOOL("StatsAutoRun"))
+ if (gSavedSettings.getBOOL("StatsAutoRun") || LLAgentPilot::sReplaySession)
{
LLUUID id;
LL_DEBUGS("AppInit") << "Starting automatic playback" << LL_ENDL;
@@ -1987,10 +2493,8 @@ bool idle_startup()
// then the data is cached for the viewer's lifetime)
LLProductInfoRequestManager::instance();
- // *FIX:Mani - What do I do here?
- // Need we really clear the Auth response data?
// Clean up the userauth stuff.
- // LLUserAuth::getInstance()->reset();
+ LLUserAuth::getInstance()->reset();
LLStartUp::setStartupState( STATE_STARTED );
@@ -2011,6 +2515,9 @@ bool idle_startup()
LLAppViewer::instance()->handleLoginComplete();
+ // reset timers now that we are running "logged in" logic
+ LLFastTimer::reset();
+
return TRUE;
}
@@ -2275,6 +2782,194 @@ bool login_alert_status(const LLSD& notification, const LLSD& response)
return false;
}
+void update_app(BOOL mandatory, const std::string& auth_msg)
+{
+ // store off config state, as we might quit soon
+ gSavedSettings.saveToFile(gSavedSettings.getString("ClientSettingsFile"), TRUE);
+ gSavedSkinSettings.saveToFile(gSavedSettings.getString("SkinningSettingsFile"), TRUE);
+ std::ostringstream message;
+
+ std::string msg;
+ if (!auth_msg.empty())
+ {
+ msg = "("+ auth_msg + ") \n";
+ }
+
+ LLSD args;
+ args["MESSAGE"] = msg;
+
+ LLSD payload;
+ payload["mandatory"] = mandatory;
+
+/*
+ We're constructing one of the following 6 strings here:
+ "DownloadWindowsMandatory"
+ "DownloadWindowsReleaseForDownload"
+ "DownloadWindows"
+ "DownloadMacMandatory"
+ "DownloadMacReleaseForDownload"
+ "DownloadMac"
+
+ I've called them out explicitly in this comment so that they can be grepped for.
+
+ Also, we assume that if we're not Windows we're Mac. If we ever intend to support
+ Linux with autoupdate, this should be an explicit #elif LL_DARWIN, but
+ we'd rather deliver the wrong message than no message, so until Linux is supported
+ we'll leave it alone.
+ */
+ std::string notification_name = "Download";
+
+#if LL_WINDOWS
+ notification_name += "Windows";
+#else
+ notification_name += "Mac";
+#endif
+
+ if (mandatory)
+ {
+ notification_name += "Mandatory";
+ }
+ else
+ {
+#if LL_RELEASE_FOR_DOWNLOAD
+ notification_name += "ReleaseForDownload";
+#endif
+ }
+
+ LLNotifications::instance().add(notification_name, args, payload, update_dialog_callback);
+
+}
+
+bool update_dialog_callback(const LLSD& notification, const LLSD& response)
+{
+ S32 option = LLNotification::getSelectedOption(notification, response);
+ std::string update_exe_path;
+ bool mandatory = notification["payload"]["mandatory"].asBoolean();
+
+#if !LL_RELEASE_FOR_DOWNLOAD
+ if (option == 2)
+ {
+ LLStartUp::setStartupState( STATE_LOGIN_AUTH_INIT );
+ return false;
+ }
+#endif
+
+ if (option == 1)
+ {
+ // ...user doesn't want to do it
+ if (mandatory)
+ {
+ LLAppViewer::instance()->forceQuit();
+ // Bump them back to the login screen.
+ //reset_login();
+ }
+ else
+ {
+ LLStartUp::setStartupState( STATE_LOGIN_AUTH_INIT );
+ }
+ return false;
+ }
+
+ LLSD query_map = LLSD::emptyMap();
+ // *TODO place os string in a global constant
+#if LL_WINDOWS
+ query_map["os"] = "win";
+#elif LL_DARWIN
+ query_map["os"] = "mac";
+#elif LL_LINUX
+ query_map["os"] = "lnx";
+#elif LL_SOLARIS
+ query_map["os"] = "sol";
+#endif
+ // *TODO change userserver to be grid on both viewer and sim, since
+ // userserver no longer exists.
+ query_map["userserver"] = LLViewerLogin::getInstance()->getGridLabel();
+ query_map["channel"] = gSavedSettings.getString("VersionChannelName");
+ // *TODO constantize this guy
+ // *NOTE: This URL is also used in win_setup/lldownloader.cpp
+ LLURI update_url = LLURI::buildHTTP("secondlife.com", 80, "update.php", query_map);
+
+ if(LLAppViewer::sUpdaterInfo)
+ {
+ delete LLAppViewer::sUpdaterInfo ;
+ }
+ LLAppViewer::sUpdaterInfo = new LLAppViewer::LLUpdaterInfo() ;
+
+#if LL_WINDOWS
+ LLAppViewer::sUpdaterInfo->mUpdateExePath = gDirUtilp->getTempFilename();
+ if (LLAppViewer::sUpdaterInfo->mUpdateExePath.empty())
+ {
+ delete LLAppViewer::sUpdaterInfo ;
+ LLAppViewer::sUpdaterInfo = NULL ;
+
+ // We're hosed, bail
+ LL_WARNS("AppInit") << "LLDir::getTempFilename() failed" << LL_ENDL;
+ LLAppViewer::instance()->forceQuit();
+ return false;
+ }
+
+ LLAppViewer::sUpdaterInfo->mUpdateExePath += ".exe";
+
+ std::string updater_source = gDirUtilp->getAppRODataDir();
+ updater_source += gDirUtilp->getDirDelimiter();
+ updater_source += "updater.exe";
+
+ LL_DEBUGS("AppInit") << "Calling CopyFile source: " << updater_source
+ << " dest: " << LLAppViewer::sUpdaterInfo->mUpdateExePath
+ << LL_ENDL;
+
+
+ if (!CopyFileA(updater_source.c_str(), LLAppViewer::sUpdaterInfo->mUpdateExePath.c_str(), FALSE))
+ {
+ delete LLAppViewer::sUpdaterInfo ;
+ LLAppViewer::sUpdaterInfo = NULL ;
+
+ LL_WARNS("AppInit") << "Unable to copy the updater!" << LL_ENDL;
+ LLAppViewer::instance()->forceQuit();
+ return false;
+ }
+
+ // if a sim name was passed in via command line parameter (typically through a SLURL)
+ if ( LLURLSimString::sInstance.mSimString.length() )
+ {
+ // record the location to start at next time
+ gSavedSettings.setString( "NextLoginLocation", LLURLSimString::sInstance.mSimString );
+ };
+
+ LLAppViewer::sUpdaterInfo->mParams << "-url \"" << update_url.asString() << "\"";
+
+ LL_DEBUGS("AppInit") << "Calling updater: " << LLAppViewer::sUpdaterInfo->mUpdateExePath << " " << LLAppViewer::sUpdaterInfo->mParams.str() << LL_ENDL;
+
+ //Explicitly remove the marker file, otherwise we pass the lock onto the child process and things get weird.
+ LLAppViewer::instance()->removeMarkerFile(); // In case updater fails
+
+#elif LL_DARWIN
+ // if a sim name was passed in via command line parameter (typically through a SLURL)
+ if ( LLURLSimString::sInstance.mSimString.length() )
+ {
+ // record the location to start at next time
+ gSavedSettings.setString( "NextLoginLocation", LLURLSimString::sInstance.mSimString );
+ };
+
+ LLAppViewer::sUpdaterInfo->mUpdateExePath = "'";
+ LLAppViewer::sUpdaterInfo->mUpdateExePath += gDirUtilp->getAppRODataDir();
+ LLAppViewer::sUpdaterInfo->mUpdateExePath += "/mac-updater.app/Contents/MacOS/mac-updater' -url \"";
+ LLAppViewer::sUpdaterInfo->mUpdateExePath += update_url.asString();
+ LLAppViewer::sUpdaterInfo->mUpdateExePath += "\" -name \"";
+ LLAppViewer::sUpdaterInfo->mUpdateExePath += LLAppViewer::instance()->getSecondLifeTitle();
+ LLAppViewer::sUpdaterInfo->mUpdateExePath += "\" &";
+
+ LL_DEBUGS("AppInit") << "Calling updater: " << LLAppViewer::sUpdaterInfo->mUpdateExePath << LL_ENDL;
+
+ // Run the auto-updater.
+ system(LLAppViewer::sUpdaterInfo->mUpdateExePath.c_str()); /* Flawfinder: ignore */
+
+#elif LL_LINUX || LL_SOLARIS
+ OSMessageBox(LLTrans::getString("MBNoAutoUpdate"), LLStringUtil::null, OSMB_OK);
+#endif
+ LLAppViewer::instance()->forceQuit();
+ return false;
+}
void use_circuit_callback(void**, S32 result)
{
@@ -2331,7 +3026,7 @@ void register_viewer_callbacks(LLMessageSystem* msg)
msg->setHandlerFuncFast(_PREHASH_AvatarAnimation, process_avatar_animation);
msg->setHandlerFuncFast(_PREHASH_AvatarAppearance, process_avatar_appearance);
msg->setHandlerFunc("AgentCachedTextureResponse", LLAgent::processAgentCachedTextureResponse);
- msg->setHandlerFunc("RebakeAvatarTextures", LLVOAvatar::processRebakeAvatarTextures);
+ msg->setHandlerFunc("RebakeAvatarTextures", LLVOAvatarSelf::processRebakeAvatarTextures);
msg->setHandlerFuncFast(_PREHASH_CameraConstraint, process_camera_constraint);
msg->setHandlerFuncFast(_PREHASH_AvatarSitResponse, process_avatar_sit_response);
msg->setHandlerFunc("SetFollowCamProperties", process_set_follow_cam_properties);
@@ -2375,20 +3070,20 @@ void register_viewer_callbacks(LLMessageSystem* msg)
LLViewerParcelMgr::processParcelDwellReply);
msg->setHandlerFunc("AvatarPropertiesReply",
- LLAvatarPropertiesProcessor::processAvatarPropertiesReply);
+ &LLAvatarPropertiesProcessor::processAvatarPropertiesReply);
msg->setHandlerFunc("AvatarInterestsReply",
- LLPanelAvatar::processAvatarInterestsReply);
+ &LLAvatarPropertiesProcessor::processAvatarInterestsReply);
msg->setHandlerFunc("AvatarGroupsReply",
- LLPanelAvatar::processAvatarGroupsReply);
+ &LLAvatarPropertiesProcessor::processAvatarGroupsReply);
// ratings deprecated
//msg->setHandlerFuncFast(_PREHASH_AvatarStatisticsReply,
// LLPanelAvatar::processAvatarStatisticsReply);
msg->setHandlerFunc("AvatarNotesReply",
- LLPanelAvatar::processAvatarNotesReply);
+ &LLAvatarPropertiesProcessor::processAvatarNotesReply);
msg->setHandlerFunc("AvatarPicksReply",
- LLPanelAvatar::processAvatarPicksReply);
- msg->setHandlerFunc("AvatarClassifiedReply",
- LLPanelAvatar::processAvatarClassifiedReply);
+ &LLAvatarPropertiesProcessor::processAvatarPicksReply);
+ msg->setHandlerFunc("AvatarClassifiedReply",
+ &LLAvatarPropertiesProcessor::processAvatarClassifiedReply);
msg->setHandlerFuncFast(_PREHASH_CreateGroupReply,
LLGroupMgr::processCreateGroupReply);
@@ -2406,7 +3101,7 @@ void register_viewer_callbacks(LLMessageSystem* msg)
// LLFloaterRate::processReputationIndividualReply);
msg->setHandlerFuncFast(_PREHASH_AgentWearablesUpdate,
- LLAgent::processAgentInitialWearablesUpdate );
+ LLAgentWearables::processAgentInitialWearablesUpdate );
msg->setHandlerFunc("ScriptControlChange",
LLAgent::processScriptControlChange );
@@ -2462,9 +3157,9 @@ void register_viewer_callbacks(LLMessageSystem* msg)
msg->setHandlerFunc("MapItemReply", LLWorldMap::processMapItemReply);
msg->setHandlerFunc("EventInfoReply", LLPanelEvent::processEventInfoReply);
- msg->setHandlerFunc("PickInfoReply", LLPanelPick::processPickInfoReply);
+ msg->setHandlerFunc("PickInfoReply", &LLAvatarPropertiesProcessor::processPickInfoReply);
msg->setHandlerFunc("ClassifiedInfoReply", LLPanelClassified::processClassifiedInfoReply);
- msg->setHandlerFunc("ParcelInfoReply", LLPanelPlace::processParcelInfoReply);
+ msg->setHandlerFunc("ParcelInfoReply", LLRemoteParcelInfoProcessor::processParcelInfoReply);
msg->setHandlerFunc("ScriptDialog", process_script_dialog);
msg->setHandlerFunc("LoadURL", process_load_url);
msg->setHandlerFunc("ScriptTeleportRequest", process_script_teleport_request);
@@ -2545,7 +3240,7 @@ void LLStartUp::loadInitialOutfit( const std::string& outfit_folder_name,
has_name);
if (0 == cat_array.count())
{
- gAgent.createStandardWearables(gender);
+ gAgentWearables.createStandardWearables(gender);
}
else
{
@@ -2631,7 +3326,11 @@ std::string LLStartUp::startupStateToString(EStartupState state)
RTNENUM( STATE_LOGIN_SHOW );
RTNENUM( STATE_LOGIN_WAIT );
RTNENUM( STATE_LOGIN_CLEANUP );
+ RTNENUM( STATE_UPDATE_CHECK );
RTNENUM( STATE_LOGIN_AUTH_INIT );
+ RTNENUM( STATE_LOGIN_AUTHENTICATE );
+ RTNENUM( STATE_LOGIN_NO_DATA_YET );
+ RTNENUM( STATE_LOGIN_DOWNLOADING );
RTNENUM( STATE_LOGIN_PROCESS_RESPONSE );
RTNENUM( STATE_WORLD_INIT );
RTNENUM( STATE_SEED_GRANTED_WAIT );
@@ -2692,7 +3391,7 @@ void LLStartUp::multimediaInit()
{
LL_DEBUGS("AppInit") << "Initializing Multimedia...." << LL_ENDL;
std::string msg = LLTrans::getString("LoginInitializingMultimedia");
- set_startup_status(0.40f, msg.c_str(), gAgent.mMOTD.c_str());
+ set_startup_status(0.42f, msg.c_str(), gAgent.mMOTD.c_str());
display_startup();
LLViewerMedia::initClass();
@@ -2772,252 +3471,3 @@ void apply_udp_blacklist(const std::string& csv)
}
-bool process_login_success_response()
-{
- LLSD response = LLLoginInstance::getInstance()->getResponse();
-
- std::string text(response["udp_blacklist"]);
- if(!text.empty())
- {
- apply_udp_blacklist(text);
- }
-
- // unpack login data needed by the application
- text = response["agent_id"].asString();
- if(!text.empty()) gAgentID.set(text);
- gDebugInfo["AgentID"] = text;
-
- text = response["session_id"].asString();
- if(!text.empty()) gAgentSessionID.set(text);
- gDebugInfo["SessionID"] = text;
-
- text = response["secure_session_id"].asString();
- if(!text.empty()) gAgent.mSecureSessionID.set(text);
-
- text = response["first_name"].asString();
- if(!text.empty())
- {
- // Remove quotes from string. Login.cgi sends these to force
- // names that look like numbers into strings.
- gFirstname.assign(text);
- LLStringUtil::replaceChar(gFirstname, '"', ' ');
- LLStringUtil::trim(gFirstname);
- }
- text = response["last_name"].asString();
- if(!text.empty())
- {
- gLastname.assign(text);
- }
- gSavedSettings.setString("FirstName", gFirstname);
- gSavedSettings.setString("LastName", gLastname);
-
- if (gSavedSettings.getBOOL("RememberPassword"))
- {
- // Successful login means the password is valid, so save it.
- LLStartUp::savePasswordToDisk(gPassword);
- }
- else
- {
- // Don't leave password from previous session sitting around
- // during this login session.
- LLStartUp::deletePasswordFromDisk();
- }
-
- // this is their actual ability to access content
- text = response["agent_access_max"].asString();
- if (!text.empty())
- {
- // agent_access can be 'A', 'M', and 'PG'.
- gAgent.setMaturity(text[0]);
- }
-
- // this is the value of their preference setting for that content
- // which will always be <= agent_access_max
- text = response["agent_region_access"].asString();
- if (!text.empty())
- {
- int preferredMaturity = LLAgent::convertTextToMaturity(text[0]);
- gSavedSettings.setU32("PreferredMaturity", preferredMaturity);
- }
- // During the AO transition, this flag will be true. Then the flag will
- // go away. After the AO transition, this code and all the code that
- // uses it can be deleted.
- text = response["ao_transition"].asString();
- if (!text.empty())
- {
- if (text == "1")
- {
- gAgent.setAOTransition();
- }
- }
-
- text = response["start_location"].asString();
- if(!text.empty())
- {
- gAgentStartLocation.assign(text);
- }
-
- text = response["circuit_code"].asString();
- if(!text.empty())
- {
- gMessageSystem->mOurCircuitCode = strtoul(text.c_str(), NULL, 10);
- }
- std::string sim_ip_str = response["sim_ip"];
- std::string sim_port_str = response["sim_port"];
- if(!sim_ip_str.empty() && !sim_port_str.empty())
- {
- U32 sim_port = strtoul(sim_port_str.c_str(), NULL, 10);
- gFirstSim.set(sim_ip_str, sim_port);
- if (gFirstSim.isOk())
- {
- gMessageSystem->enableCircuit(gFirstSim, TRUE);
- }
- }
- std::string region_x_str = response["region_x"];
- std::string region_y_str = response["region_y"];
- if(!region_x_str.empty() && !region_y_str.empty())
- {
- U32 region_x = strtoul(region_x_str.c_str(), NULL, 10);
- U32 region_y = strtoul(region_y_str.c_str(), NULL, 10);
- gFirstSimHandle = to_region_handle(region_x, region_y);
- }
-
- const std::string look_at_str = response["look_at"];
- if (!look_at_str.empty())
- {
- size_t len = look_at_str.size();
- LLMemoryStream mstr((U8*)look_at_str.c_str(), len);
- LLSD sd = LLSDSerialize::fromNotation(mstr, len);
- gAgentStartLookAt = ll_vector3_from_sd(sd);
- }
-
- text = response["seed_capability"].asString();
- if (!text.empty()) gFirstSimSeedCap = text;
-
- text = response["seconds_since_epoch"].asString();
- if(!text.empty())
- {
- U32 server_utc_time = strtoul(text.c_str(), NULL, 10);
- if(server_utc_time)
- {
- time_t now = time(NULL);
- gUTCOffset = (server_utc_time - now);
- }
- }
-
- std::string home_location = response["home"];
- if(!home_location.empty())
- {
- size_t len = home_location.size();
- LLMemoryStream mstr((U8*)home_location.c_str(), len);
- LLSD sd = LLSDSerialize::fromNotation(mstr, len);
- S32 region_x = sd["region_handle"][0].asInteger();
- S32 region_y = sd["region_handle"][1].asInteger();
- U64 region_handle = to_region_handle(region_x, region_y);
- LLVector3 position = ll_vector3_from_sd(sd["position"]);
- gAgent.setHomePosRegion(region_handle, position);
- }
-
- gAgent.mMOTD.assign(response["message"]);
-
- // Options...
- // Each 'option' is an array of submaps.
- // It appears that we only ever use the first element of the array.
- LLUUID inv_root_folder_id = response["inventory-root"][0]["folder_id"];
- if(inv_root_folder_id.notNull())
- {
- gAgent.mInventoryRootID = inv_root_folder_id;
- //gInventory.mock(gAgent.getInventoryRootID());
- }
-
- LLSD login_flags = response["login-flags"][0];
- if(login_flags.size())
- {
- std::string flag = login_flags["ever_logged_in"];
- if(!flag.empty())
- {
- gAgent.setFirstLogin((flag == "N") ? TRUE : FALSE);
- }
-
- /* Flag is currently ignored by the viewer.
- flag = login_flags["stipend_since_login"];
- if(flag == "Y")
- {
- stipend_since_login = true;
- }
- */
-
- flag = login_flags["gendered"].asString();
- if(flag == "Y")
- {
- gAgent.setGenderChosen(TRUE);
- }
-
- flag = login_flags["daylight_savings"].asString();
- if(flag == "Y")
- {
- gPacificDaylightTime = (flag == "Y") ? TRUE : FALSE;
- }
-
- //setup map of datetime strings to codes and slt & local time offset from utc
- LLStringOps::setupDatetimeInfo (gPacificDaylightTime);
- }
-
- LLSD initial_outfit = response["initial-outfit"][0];
- if(initial_outfit.size())
- {
- std::string flag = initial_outfit["folder_name"];
- if(!flag.empty())
- {
- // Initial outfit is a folder in your inventory,
- // must be an exact folder-name match.
- sInitialOutfit = flag;
- }
-
- flag = initial_outfit["gender"].asString();
- if(!flag.empty())
- {
- sInitialOutfitGender = flag;
- }
- }
-
- LLSD global_textures = response["global-textures"][0];
- if(global_textures.size())
- {
- // Extract sun and moon texture IDs. These are used
- // in the LLVOSky constructor, but I can't figure out
- // how to pass them in. JC
- LLUUID id = global_textures["sun_texture_id"];
- if(id.notNull())
- {
- gSunTextureID = id;
- }
-
- id = global_textures["moon_texture_id"];
- if(id.notNull())
- {
- gMoonTextureID = id;
- }
-
- id = global_textures["cloud_texture_id"];
- if(id.notNull())
- {
- gCloudTextureID = id;
- }
- }
-
-
- bool success = false;
- // JC: gesture loading done below, when we have an asset system
- // in place. Don't delete/clear user_credentials until then.
- if(gAgentID.notNull()
- && gAgentSessionID.notNull()
- && gMessageSystem->mOurCircuitCode
- && gFirstSim.isOk()
- && gAgent.mInventoryRootID.notNull())
- {
- success = true;
- }
-
- return success;
-}
diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp
index 364214b9e7..8c2372ee74 100644
--- a/indra/newview/llstatusbar.cpp
+++ b/indra/newview/llstatusbar.cpp
@@ -61,7 +61,7 @@
#include "llviewerstats.h"
#include "llviewerwindow.h"
#include "llframetimer.h"
-#include "llvoavatar.h"
+#include "llvoavatarself.h"
#include "llresmgr.h"
#include "llworld.h"
#include "llstatgraph.h"
@@ -93,7 +93,7 @@
// Globals
//
LLStatusBar *gStatusBar = NULL;
-S32 STATUS_BAR_HEIGHT = 0;
+S32 STATUS_BAR_HEIGHT = 26;
extern S32 MENU_BAR_HEIGHT;
@@ -109,8 +109,6 @@ const F32 ICON_TIMER_EXPIRY = 3.f; // How long the balance and health icons sho
const F32 ICON_FLASH_FREQUENCY = 2.f;
const S32 TEXT_HEIGHT = 18;
-static void onClickParcelInfo(void*);
-static void onClickBalance(void*);
static void onClickBuyCurrency(void*);
static void onClickHealth(void*);
static void onClickFly(void*);
@@ -153,17 +151,16 @@ LLStatusBar::LLStatusBar(const LLRect& rect)
// build date necessary data (must do after panel built)
setupDate();
- mTextParcelName = getChild<LLTextBox>("ParcelNameText" );
- mTextBalance = getChild<LLTextBox>("BalanceText" );
-
mTextHealth = getChild<LLTextBox>("HealthText" );
mTextTime = getChild<LLTextBox>("TimeText" );
+
+ mBtnBuyCurrency = getChild<LLButton>( "buycurrency" );
+ mBtnBuyCurrency->setClickedCallback( onClickBuyCurrency, this );
childSetAction("scriptout", onClickScriptDebug, this);
childSetAction("health", onClickHealth, this);
childSetAction("no_fly", onClickFly, this);
childSetAction("buyland", onClickBuyLand, this );
- childSetAction("buycurrency", onClickBuyCurrency, this );
childSetAction("no_build", onClickBuild, this );
childSetAction("no_scripts", onClickScripts, this );
childSetAction("restrictpush", onClickPush, this );
@@ -176,9 +173,6 @@ LLStatusBar::LLStatusBar(const LLRect& rect)
childSetVisible("search_btn", gSavedSettings.getBOOL("ShowSearchBar"));
childSetVisible("menubar_search_bevel_bg", gSavedSettings.getBOOL("ShowSearchBar"));
- childSetActionTextbox("ParcelNameText", onClickParcelInfo );
- childSetActionTextbox("BalanceText", onClickBalance );
-
// Adding Net Stat Graph
S32 x = getRect().getWidth() - 2;
S32 y = 0;
@@ -254,13 +248,18 @@ void LLStatusBar::draw()
// Per-frame updates of visibility
void LLStatusBar::refresh()
{
- // Adding Net Stat Meter back in
- F32 bwtotal = gViewerThrottle.getMaxBandwidth() / 1000.f;
- mSGBandwidth->setMin(0.f);
- mSGBandwidth->setMax(bwtotal*1.25f);
- mSGBandwidth->setThreshold(0, bwtotal*0.75f);
- mSGBandwidth->setThreshold(1, bwtotal);
- mSGBandwidth->setThreshold(2, bwtotal);
+ bool net_stats_visible = gSavedSettings.getBOOL("ShowNetStats");
+
+ if (net_stats_visible)
+ {
+ // Adding Net Stat Meter back in
+ F32 bwtotal = gViewerThrottle.getMaxBandwidth() / 1000.f;
+ mSGBandwidth->setMin(0.f);
+ mSGBandwidth->setMax(bwtotal*1.25f);
+ mSGBandwidth->setThreshold(0, bwtotal*0.75f);
+ mSGBandwidth->setThreshold(1, bwtotal);
+ mSGBandwidth->setThreshold(2, bwtotal);
+ }
// Get current UTC time, adjusted for the user's clock
// being off.
@@ -283,8 +282,6 @@ void LLStatusBar::refresh()
S32 x = MENU_RIGHT + MENU_PARCEL_SPACING;
S32 y = 0;
- bool search_visible = gSavedSettings.getBOOL("ShowSearchBar");
-
// reshape menu bar to its content's width
if (MENU_RIGHT != gMenuBarView->getRect().getWidth())
{
@@ -439,171 +436,8 @@ void LLStatusBar::refresh()
x += buttonRect.getWidth();
}
- std::string location_name;
- if (region)
- {
- const LLVector3& agent_pos_region = gAgent.getPositionAgent();
- S32 pos_x = lltrunc( agent_pos_region.mV[VX] );
- S32 pos_y = lltrunc( agent_pos_region.mV[VY] );
- S32 pos_z = lltrunc( agent_pos_region.mV[VZ] );
-
- // Round the numbers based on the velocity
- LLVector3 agent_velocity = gAgent.getVelocity();
- F32 velocity_mag_sq = agent_velocity.magVecSquared();
-
- const F32 FLY_CUTOFF = 6.f; // meters/sec
- const F32 FLY_CUTOFF_SQ = FLY_CUTOFF * FLY_CUTOFF;
- const F32 WALK_CUTOFF = 1.5f; // meters/sec
- const F32 WALK_CUTOFF_SQ = WALK_CUTOFF * WALK_CUTOFF;
-
- if (velocity_mag_sq > FLY_CUTOFF_SQ)
- {
- pos_x -= pos_x % 4;
- pos_y -= pos_y % 4;
- }
- else if (velocity_mag_sq > WALK_CUTOFF_SQ)
- {
- pos_x -= pos_x % 2;
- pos_y -= pos_y % 2;
- }
-
- mRegionDetails.mTime = mTextTime->getText();
- mRegionDetails.mBalance = mBalance;
- mRegionDetails.mAccessString = region->getSimAccessString();
- if (parcel)
- {
- location_name = region->getName()
- + llformat(" %d, %d, %d (%s) - %s",
- pos_x, pos_y, pos_z,
- region->getSimAccessString().c_str(),
- parcel->getName().c_str());
-
- // keep these around for the LCD to use
- mRegionDetails.mRegionName = region->getName();
- mRegionDetails.mParcelName = parcel->getName();
- mRegionDetails.mX = pos_x;
- mRegionDetails.mY = pos_y;
- mRegionDetails.mZ = pos_z;
-
- mRegionDetails.mArea = parcel->getArea();
- mRegionDetails.mForSale = parcel->getForSale();
- mRegionDetails.mTraffic = LLViewerParcelMgr::getInstance()->getDwelling();
-
- if (parcel->isPublic())
- {
- mRegionDetails.mOwner = LLTrans::getString("Public");
- }
- else
- {
- if (parcel->getIsGroupOwned())
- {
- if(!parcel->getGroupID().isNull())
- {
- gCacheName->getGroupName(parcel->getGroupID(), mRegionDetails.mOwner);
- }
- else
- {
- mRegionDetails.mOwner = LLTrans::getString("GroupOwned");
- }
- }
- else
- {
- // Figure out the owner's name
- gCacheName->getFullName(parcel->getOwnerID(), mRegionDetails.mOwner);
- }
- }
- }
- else
- {
- location_name = region->getName()
- + llformat(" %d, %d, %d (%s)",
- pos_x, pos_y, pos_z,
- region->getSimAccessString().c_str());
- // keep these around for the LCD to use
- mRegionDetails.mRegionName = region->getName();
- mRegionDetails.mParcelName = LLTrans::getString("Unknown");
-
- mRegionDetails.mX = pos_x;
- mRegionDetails.mY = pos_y;
- mRegionDetails.mZ = pos_z;
- mRegionDetails.mArea = 0;
- mRegionDetails.mForSale = FALSE;
- mRegionDetails.mOwner = LLTrans::getString("Unknown");
- mRegionDetails.mTraffic = 0.0f;
- }
- }
- else
- {
- // no region
- location_name = LLTrans::getString("Unknown");
- // keep these around for the LCD to use
- mRegionDetails.mRegionName = LLTrans::getString("Unknown");
- mRegionDetails.mParcelName = LLTrans::getString("Unknown");
- mRegionDetails.mAccessString = LLTrans::getString("Unknown");
- mRegionDetails.mX = 0;
- mRegionDetails.mY = 0;
- mRegionDetails.mZ = 0;
- mRegionDetails.mArea = 0;
- mRegionDetails.mForSale = FALSE;
- mRegionDetails.mOwner = LLTrans::getString("Unknown");
- mRegionDetails.mTraffic = 0.0f;
- }
-
- mTextParcelName->setText(location_name);
-
-
-
- // x = right edge
- // loop through: stat graphs, search btn, search text editor, money, buy money, clock
- // adjust rect
- // finally adjust parcel name rect
-
- S32 new_right = getRect().getWidth();
- if (search_visible)
- {
- childGetRect("search_btn", r);
- //r.translate( new_right - r.mRight, 0);
- //childSetRect("search_btn", r);
- new_right -= r.getWidth();
-
- childGetRect("search_editor", r);
- //r.translate( new_right - r.mRight, 0);
- //childSetRect("search_editor", r);
- new_right -= r.getWidth() + 6;
- }
- else
- {
- childGetRect("stat_btn", r);
- r.translate( new_right - r.mRight, 0);
- childSetRect("stat_btn", r);
- new_right -= r.getWidth() + 6;
- }
-
- // Set rects of money, buy money, time
- childGetRect("BalanceText", r);
- r.translate( new_right - r.mRight, 0);
- childSetRect("BalanceText", r);
- new_right -= r.getWidth() - 18;
-
- childGetRect("buycurrency", r);
- r.translate( new_right - r.mRight, 0);
- childSetRect("buycurrency", r);
- new_right -= r.getWidth() + 6;
-
- childGetRect("TimeText", r);
- // mTextTime->getTextPixelWidth();
- r.translate( new_right - r.mRight, 0);
- childSetRect("TimeText", r);
- // new_right -= r.getWidth() + MENU_PARCEL_SPACING;
-
-
- // Adjust region name and parcel name
- x += 8;
-
- const S32 PARCEL_RIGHT = llmin(mTextTime->getRect().mLeft, mTextParcelName->getTextPixelWidth() + x + 5);
- r.set(x+4, getRect().getHeight() - 2, PARCEL_RIGHT, 0);
- mTextParcelName->setRect(r);
-
+ bool search_visible = gSavedSettings.getBOOL("ShowSearchBar");
+
// Set search bar visibility
if (gAgent.getCameraMode() != CAMERA_MODE_MOUSELOOK)
@@ -615,16 +449,15 @@ void LLStatusBar::refresh()
childSetVisible("menubar_search_bevel_bg", search_visible);
}
- mSGBandwidth->setVisible(! search_visible);
- mSGPacketLoss->setVisible(! search_visible);
- childSetEnabled("stat_btn", ! search_visible);
+ mSGBandwidth->setVisible(net_stats_visible);
+ mSGPacketLoss->setVisible(net_stats_visible);
+ childSetEnabled("stat_btn", net_stats_visible);
}
void LLStatusBar::setVisibleForMouselook(bool visible)
{
- mTextBalance->setVisible(visible);
mTextTime->setVisible(visible);
- childSetVisible("buycurrency", visible);
+ mBtnBuyCurrency->setVisible(visible);
childSetVisible("search_editor", visible);
childSetVisible("search_btn", visible);
childSetVisible("menubar_search_bevel_bg", visible);
@@ -648,7 +481,15 @@ void LLStatusBar::setBalance(S32 balance)
std::string money_str = LLResMgr::getInstance()->getMonetaryString( balance );
std::string balance_str = "L$";
balance_str += money_str;
- mTextBalance->setText( balance_str );
+ mBtnBuyCurrency->setLabel( balance_str );
+
+ // Resize the balance button so that the label fits it, and the button expands to the left.
+ // *TODO: LLButton should have an option where to expand.
+ {
+ S32 saved_right = mBtnBuyCurrency->getRect().mRight;
+ mBtnBuyCurrency->autoResize();
+ mBtnBuyCurrency->translate(saved_right - mBtnBuyCurrency->getRect().mRight, 0);
+ }
if (mBalance && (fabs((F32)(mBalance - balance)) > gSavedSettings.getF32("UISndMoneyChangeThreshold")))
{
@@ -752,18 +593,6 @@ S32 LLStatusBar::getSquareMetersLeft() const
return mSquareMetersCredit - mSquareMetersCommitted;
}
-static void onClickParcelInfo(void* data)
-{
- LLViewerParcelMgr::getInstance()->selectParcelAt(gAgent.getPositionGlobal());
-
- LLFloaterLand::showInstance();
-}
-
-static void onClickBalance(void* data)
-{
- onClickBuyCurrency(data);
-}
-
static void onClickBuyCurrency(void* data)
{
LLFloaterBuyCurrency::buyCurrency();
@@ -903,7 +732,7 @@ void LLStatusBar::onClickSearch(void* data)
// static
void LLStatusBar::onClickStatGraph(void* data)
{
- LLFloaterLagMeter::showInstance();
+ LLFloaterReg::showInstance("lagmeter");
}
BOOL can_afford_transaction(S32 cost)
diff --git a/indra/newview/llstatusbar.h b/indra/newview/llstatusbar.h
index 7272441644..84dd761930 100644
--- a/indra/newview/llstatusbar.h
+++ b/indra/newview/llstatusbar.h
@@ -48,38 +48,6 @@ class LLUUID;
class LLFrameTimer;
class LLStatGraph;
-// used by LCD screen
-class LLRegionDetails
-{
-public:
- LLRegionDetails() :
- mRegionName("Unknown"),
- mParcelName("Unknown"),
- mAccessString("Unknown"),
- mX(0),
- mY(0),
- mZ(0),
- mArea (0),
- mForSale(FALSE),
- mOwner("Unknown"),
- mTraffic(0),
- mBalance(0)
- {
- }
- std::string mRegionName;
- std::string mParcelName;
- std::string mAccessString;
- S32 mX;
- S32 mY;
- S32 mZ;
- S32 mArea;
- BOOL mForSale;
- std::string mOwner;
- F32 mTraffic;
- S32 mBalance;
- std::string mTime;
-};
-
class LLStatusBar
: public LLPanel
{
@@ -114,7 +82,6 @@ public:
S32 getSquareMetersCredit() const;
S32 getSquareMetersCommitted() const;
S32 getSquareMetersLeft() const;
- LLRegionDetails mRegionDetails;
private:
// simple method to setup the part that holds the date
@@ -125,12 +92,9 @@ private:
static void onClickStatGraph(void* data);
private:
- LLTextBox *mTextBalance;
LLTextBox *mTextHealth;
LLTextBox *mTextTime;
- LLTextBox* mTextParcelName;
-
LLStatGraph *mSGBandwidth;
LLStatGraph *mSGPacketLoss;
diff --git a/indra/newview/llsurface.cpp b/indra/newview/llsurface.cpp
index 51b946b8c0..27a08e7d7b 100644
--- a/indra/newview/llsurface.cpp
+++ b/indra/newview/llsurface.cpp
@@ -628,6 +628,7 @@ void LLSurface::updatePatchVisibilities(LLAgent &agent)
BOOL LLSurface::idleUpdate(F32 max_update_time)
{
+ LLMemType mt_ius(LLMemType::MTYPE_IDLE_UPDATE_SURFACE);
if (!gPipeline.hasRenderType(LLPipeline::RENDER_TYPE_TERRAIN))
{
return FALSE;
diff --git a/indra/newview/llteleporthistory.cpp b/indra/newview/llteleporthistory.cpp
index 8dd7d2456e..99389017cb 100644
--- a/indra/newview/llteleporthistory.cpp
+++ b/indra/newview/llteleporthistory.cpp
@@ -70,18 +70,19 @@ LLSD LLTeleportHistoryItem::toLLSD() const
LLTeleportHistory::LLTeleportHistory():
mCurrentItem(-1),
- mHistoryTeleportInProgress(false),
- mGotInitialUpdate(false),
- mFilename("teleports.txt"),
- mHistoryChangedCallback(NULL)
+ mRequestedItem(-1),
+ mGotInitialUpdate(false)
{
mTeleportFinishedConn = LLViewerParcelMgr::getInstance()->
setTeleportFinishedCallback(boost::bind(&LLTeleportHistory::updateCurrentLocation, this));
+ mTeleportFailedConn = LLViewerParcelMgr::getInstance()->
+ setTeleportFailedCallback(boost::bind(&LLTeleportHistory::onTeleportFailed, this));
}
LLTeleportHistory::~LLTeleportHistory()
{
mTeleportFinishedConn.disconnect();
+ mTeleportFailedConn.disconnect();
}
void LLTeleportHistory::goToItem(int idx)
@@ -102,18 +103,27 @@ void LLTeleportHistory::goToItem(int idx)
return;
}
- // Make specified item current and teleport to it.
- mCurrentItem = idx;
- mHistoryTeleportInProgress = true;
- onHistoryChanged();
- gAgent.teleportViaLocation(mItems[mCurrentItem].mGlobalPos);
+ // Attempt to teleport to the requested item.
+ gAgent.teleportViaLocation(mItems[idx].mGlobalPos);
+ mRequestedItem = idx;
+}
+
+void LLTeleportHistory::onTeleportFailed()
+{
+ // Are we trying to teleport within the history?
+ if (mRequestedItem != -1)
+ {
+ // Not anymore.
+ mRequestedItem = -1;
+ }
}
void LLTeleportHistory::updateCurrentLocation()
{
- if (mHistoryTeleportInProgress)
+ if (mRequestedItem != -1) // teleport within the history in progress?
{
- mHistoryTeleportInProgress = false;
+ mCurrentItem = mRequestedItem;
+ mRequestedItem = -1;
}
else
{
@@ -131,16 +141,18 @@ void LLTeleportHistory::updateCurrentLocation()
mItems.push_back(LLTeleportHistoryItem("", LLVector3d()));
mCurrentItem++;
}
- }
- // Update current history item.
- if (mCurrentItem < 0 || mCurrentItem >= (int) mItems.size()) // sanity check
- {
- llwarns << "Invalid current item. (this should not happen)" << llendl;
- return;
+ // Update current history item.
+ if (mCurrentItem < 0 || mCurrentItem >= (int) mItems.size()) // sanity check
+ {
+ llwarns << "Invalid current item. (this should not happen)" << llendl;
+ return;
+ }
+ mItems[mCurrentItem].mTitle = getCurrentLocationTitle();
+ mItems[mCurrentItem].mGlobalPos = gAgent.getPositionGlobal();
+ mItems[mCurrentItem].mRegionID = gAgent.getRegion()->getRegionID();
}
- mItems[mCurrentItem].mTitle = getCurrentLocationTitle();
- mItems[mCurrentItem].mGlobalPos = gAgent.getPositionGlobal();
+
dump();
if (!mGotInitialUpdate)
@@ -150,80 +162,14 @@ void LLTeleportHistory::updateCurrentLocation()
onHistoryChanged();
}
-void LLTeleportHistory::save() const
+boost::signals2::connection LLTeleportHistory::setHistoryChangedCallback(history_callback_t cb)
{
- // build filename for each user
- std::string resolvedFilename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, mFilename);
-
- // open the history file for writing
- llofstream file (resolvedFilename);
- if (!file.is_open())
- {
- llwarns << "can't open teleport history file \"" << mFilename << "\" for writing" << llendl;
- return;
- }
-
- for (size_t i=0; i<mItems.size(); i++)
- {
- LLSD s_item = mItems[i].toLLSD();
- s_item["is_current"] = (i == mCurrentItem);
- file << LLSDOStreamer<LLSDNotationFormatter>(s_item) << std::endl;
- }
-
- file.close();
-}
-
-// *TODO: clean this up
-void LLTeleportHistory::load()
-{
- // build filename for each user
- std::string resolved_filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, mFilename);
-
- // open the history file for reading
- llifstream file(resolved_filename);
- if (!file.is_open())
- {
- llwarns << "can't load teleport history from file \"" << mFilename << "\"" << llendl;
- return;
- }
-
- // remove current entries before we load over them
- mItems.clear();
- mCurrentItem = -1;
-
- // the parser's destructor is protected so we cannot create in the stack.
- LLPointer<LLSDParser> parser = new LLSDNotationParser();
- std::string line;
- for (int i = 0; std::getline(file, line); i++)
- {
- LLSD s_item;
- std::istringstream iss(line);
- if (parser->parse(iss, s_item, line.length()) == LLSDParser::PARSE_FAILURE)
- {
- llinfos << "Parsing saved teleport history failed" << llendl;
- break;
- }
-
- mItems.push_back(s_item);
- if (s_item["is_current"].asBoolean() == true)
- mCurrentItem = i;
- }
-
- file.close();
- onHistoryChanged();
-}
-
-void LLTeleportHistory::setHistoryChangedCallback(history_callback_t cb)
-{
- mHistoryChangedCallback = cb;
+ return mHistoryChangedSignal.connect(cb);
}
void LLTeleportHistory::onHistoryChanged()
{
- if (mHistoryChangedCallback)
- {
- mHistoryChangedCallback();
- }
+ mHistoryChangedSignal();
}
// static
@@ -246,6 +192,7 @@ void LLTeleportHistory::dump() const
std::stringstream line;
line << ((i == mCurrentItem) ? " * " : " ");
line << i << ": " << mItems[i].mTitle;
+ line << " REGION_ID: " << mItems[i].mRegionID;
llinfos << line.str() << llendl;
}
}
diff --git a/indra/newview/llteleporthistory.h b/indra/newview/llteleporthistory.h
index fc061075c9..c68aabe9a1 100644
--- a/indra/newview/llteleporthistory.h
+++ b/indra/newview/llteleporthistory.h
@@ -38,7 +38,7 @@
#include <vector>
#include <string>
#include <boost/function.hpp>
-#include <boost/signals2/connection.hpp>
+#include <boost/signals2.hpp>
/**
@@ -61,6 +61,7 @@ public:
std::string mTitle; // human-readable location title
LLVector3d mGlobalPos; // global position
+ LLUUID mRegionID; // region ID for getting the region info
};
/**
@@ -79,6 +80,7 @@ public:
typedef std::vector<LLTeleportHistoryItem> slurl_list_t;
typedef boost::function<void()> history_callback_t;
+ typedef boost::signals2::signal<void()> history_signal_t;
LLTeleportHistory();
~LLTeleportHistory();
@@ -120,18 +122,10 @@ public:
/**
* Set a callback to be called upon history changes.
+ *
+ * Multiple callbacks can be set.
*/
- void setHistoryChangedCallback(history_callback_t cb);
-
- /**
- * Save the history to a file, so that it can be restored upon next logon.
- */
- void save() const;
-
- /**
- * Load previously saved history from a file.
- */
- void load();
+ boost::signals2::connection setHistoryChangedCallback(history_callback_t cb);
/**
* Save history to a file so that we can restore it on startup.
@@ -143,21 +137,32 @@ public:
private:
/**
+ * Called by when a teleport fails.
+ *
+ * Called via callback set on the LLViewerParcelMgr "teleport failed" signal.
+ *
+ * @see mTeleportFailedConn
+ */
+ void onTeleportFailed();
+
+ /**
* Update current location.
*
* Called when a teleport finishes.
+ * Called via callback set on the LLViewerParcelMgr "teleport finished" signal.
*
- * Takes mHistoryTeleportInProgress into consideration: if it's false
+ * Takes mRequestedItem into consideration: if it's not -1
* (i.e. user is teleporting to an arbitrary location, not to a history item)
- * we purge forward items.
+ * we purge forward items and append a new one, making it current. Otherwise
+ * we just modify mCurrentItem.
*
- * @see mHistoryTeleportInProgress
+ * @see mRequestedItem
* @see mGotInitialUpdate
*/
void updateCurrentLocation();
/**
- * Invokes mHistoryChangedCallback.
+ * Invokes the "history changed" callback(s).
*/
void onHistoryChanged();
@@ -174,14 +179,17 @@ private:
int mCurrentItem;
/**
- * Indicates whether teleport back/forward is currently in progress.
+ * Requested position within the history.
*
- * Helps to make sure we don't purge forward items
- * when a teleport within history finishes.
+ * When a teleport succeeds, this is checked by updateCurrentLocation() to tell
+ * if this is a teleport within the history (mRequestedItem >=0) or not (-1).
*
+ * Set by goToItem(); reset by onTeleportFailed() (if teleport fails).
+ *
+ * @see goToItem()
* @see updateCurrentLocation()
- */
- bool mHistoryTeleportInProgress;
+ */
+ int mRequestedItem;
/**
* Have we received the initial location update?
@@ -191,22 +199,26 @@ private:
bool mGotInitialUpdate;
/**
- * File to store the history to.
- */
- std::string mFilename;
-
- /**
- * Callback to be called when the history gets changed.
+ * Signal emitted when the history gets changed.
+ *
+ * Invokes callbacks set with setHistoryChangedCallback().
*/
- history_callback_t mHistoryChangedCallback;
+ history_signal_t mHistoryChangedSignal;
/**
- * Teleport notification connection.
+ * Teleport success notification connection.
*
* Using this connection we get notified when a teleport finishes
* or initial location update occurs.
*/
boost::signals2::connection mTeleportFinishedConn;
+
+ /**
+ * Teleport failure notification connection.
+ *
+ * Using this connection we get notified when a teleport fails.
+ */
+ boost::signals2::connection mTeleportFailedConn;
};
#endif
diff --git a/indra/newview/lltexglobalcolor.cpp b/indra/newview/lltexglobalcolor.cpp
new file mode 100644
index 0000000000..e81c3731f7
--- /dev/null
+++ b/indra/newview/lltexglobalcolor.cpp
@@ -0,0 +1,150 @@
+/**
+ * @file lltexlayerglobalcolor.cpp
+ * @brief SERAPH - ADD IN
+ *
+ * $LicenseInfo:firstyear=2008&license=viewergpl$
+ *
+ * Copyright (c) 2008-2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlife.com/developers/opensource/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at http://secondlife.com/developers/opensource/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+#include "llagent.h"
+#include "lltexlayer.h"
+#include "llvoavatar.h"
+#include "lltexglobalcolor.h"
+
+//-----------------------------------------------------------------------------
+// LLTexGlobalColor
+//-----------------------------------------------------------------------------
+
+LLTexGlobalColor::LLTexGlobalColor(LLVOAvatar* avatar)
+ :
+ mAvatar(avatar),
+ mInfo(NULL)
+{
+}
+
+LLTexGlobalColor::~LLTexGlobalColor()
+{
+ // mParamColorList are LLViewerVisualParam's and get deleted with ~LLCharacter()
+ //std::for_each(mParamColorList.begin(), mParamColorList.end(), DeletePointer());
+}
+
+BOOL LLTexGlobalColor::setInfo(LLTexGlobalColorInfo *info)
+{
+ llassert(mInfo == NULL);
+ mInfo = info;
+ //mID = info->mID; // No ID
+
+ mParamGlobalColorList.reserve(mInfo->mParamColorInfoList.size());
+ for (param_color_info_list_t::iterator iter = mInfo->mParamColorInfoList.begin();
+ iter != mInfo->mParamColorInfoList.end();
+ iter++)
+ {
+ LLTexParamGlobalColor* param_color = new LLTexParamGlobalColor(this);
+ if (!param_color->setInfo(*iter))
+ {
+ mInfo = NULL;
+ return FALSE;
+ }
+ mParamGlobalColorList.push_back(param_color);
+ }
+
+ return TRUE;
+}
+
+LLColor4 LLTexGlobalColor::getColor() const
+{
+ // Sum of color params
+ if (mParamGlobalColorList.empty())
+ return LLColor4(1.f, 1.f, 1.f, 1.f);
+
+ LLColor4 net_color(0.f, 0.f, 0.f, 0.f);
+ LLTexLayer::calculateTexLayerColor(mParamGlobalColorList, net_color);
+ return net_color;
+}
+
+const std::string& LLTexGlobalColor::getName() const
+{
+ return mInfo->mName;
+}
+
+//-----------------------------------------------------------------------------
+// LLTexParamGlobalColor
+//-----------------------------------------------------------------------------
+LLTexParamGlobalColor::LLTexParamGlobalColor(LLTexGlobalColor* tex_global_color) :
+ LLTexLayerParamColor((LLTexLayer*)NULL),
+ mTexGlobalColor(tex_global_color)
+{
+ mAvatar = tex_global_color->getAvatar();
+}
+
+void LLTexParamGlobalColor::onGlobalColorChanged(bool set_by_user)
+{
+ mAvatar->onGlobalColorChanged(mTexGlobalColor, set_by_user);
+}
+
+//-----------------------------------------------------------------------------
+// LLTexGlobalColorInfo
+//-----------------------------------------------------------------------------
+
+LLTexGlobalColorInfo::LLTexGlobalColorInfo()
+{
+}
+
+
+LLTexGlobalColorInfo::~LLTexGlobalColorInfo()
+{
+ for_each(mParamColorInfoList.begin(), mParamColorInfoList.end(), DeletePointer());
+}
+
+BOOL LLTexGlobalColorInfo::parseXml(LLXmlTreeNode* node)
+{
+ // name attribute
+ static LLStdStringHandle name_string = LLXmlTree::addAttributeString("name");
+ if (!node->getFastAttributeString(name_string, mName))
+ {
+ llwarns << "<global_color> element is missing name attribute." << llendl;
+ return FALSE;
+ }
+ // <param> sub-element
+ for (LLXmlTreeNode* child = node->getChildByName("param");
+ child;
+ child = node->getNextNamedChild())
+ {
+ if (child->getChildByName("param_color"))
+ {
+ // <param><param_color/></param>
+ LLTexLayerParamColorInfo* info = new LLTexLayerParamColorInfo();
+ if (!info->parseXml(child))
+ {
+ delete info;
+ return FALSE;
+ }
+ mParamColorInfoList.push_back(info);
+ }
+ }
+ return TRUE;
+}
diff --git a/indra/newview/lltexglobalcolor.h b/indra/newview/lltexglobalcolor.h
new file mode 100644
index 0000000000..154b814392
--- /dev/null
+++ b/indra/newview/lltexglobalcolor.h
@@ -0,0 +1,86 @@
+/**
+ * @file lltexglobalcolor.h
+ * @brief This is global texture color info used by llvoavatar.
+ *
+ * $LicenseInfo:firstyear=2008&license=viewergpl$
+ *
+ * Copyright (c) 2008-2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlife.com/developers/opensource/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at http://secondlife.com/developers/opensource/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#ifndef LL_LLTEXGLOBALCOLOR_H
+#define LL_LLTEXGLOBALCOLOR_H
+
+#include "lltexlayer.h"
+#include "lltexlayerparams.h"
+
+class LLVOAvatar;
+class LLTexGlobalColorInfo;
+
+class LLTexGlobalColor
+{
+public:
+ LLTexGlobalColor( LLVOAvatar* avatar );
+ ~LLTexGlobalColor();
+
+ LLTexGlobalColorInfo* getInfo() const { return mInfo; }
+ // This sets mInfo and calls initialization functions
+ BOOL setInfo(LLTexGlobalColorInfo *info);
+
+ LLVOAvatar* getAvatar() const { return mAvatar; }
+ LLColor4 getColor() const;
+ const std::string& getName() const;
+
+private:
+ param_color_list_t mParamGlobalColorList;
+ LLVOAvatar* mAvatar; // just backlink, don't LLPointer
+ LLTexGlobalColorInfo *mInfo;
+};
+
+// Used by llvoavatar to determine skin/eye/hair color.
+class LLTexGlobalColorInfo
+{
+ friend class LLTexGlobalColor;
+public:
+ LLTexGlobalColorInfo();
+ ~LLTexGlobalColorInfo();
+
+ BOOL parseXml(LLXmlTreeNode* node);
+
+private:
+ param_color_info_list_t mParamColorInfoList;
+ std::string mName;
+};
+
+class LLTexParamGlobalColor : public LLTexLayerParamColor
+{
+public:
+ LLTexParamGlobalColor(LLTexGlobalColor *tex_color);
+protected:
+ /*virtual*/ void onGlobalColorChanged(bool set_by_user);
+private:
+ LLTexGlobalColor* mTexGlobalColor;
+};
+
+#endif
diff --git a/indra/newview/lltexlayer.cpp b/indra/newview/lltexlayer.cpp
index eea4acf053..716ab8eef4 100644
--- a/indra/newview/lltexlayer.cpp
+++ b/indra/newview/lltexlayer.cpp
@@ -31,76 +31,56 @@
*/
#include "llviewerprecompiledheaders.h"
-
-#include "imageids.h"
#include "llagent.h"
-#include "llcrc.h"
-#include "lldir.h"
-#include "llglheaders.h"
-#include "llimagebmp.h"
-#include "llimagej2c.h"
-#include "llimagetga.h"
-#include "llpolymorph.h"
-#include "llquantize.h"
#include "lltexlayer.h"
-#include "llui.h"
-#include "llvfile.h"
-#include "llviewerimagelist.h"
-#include "llviewerimagelist.h"
-#include "llviewerregion.h"
#include "llviewerstats.h"
-#include "llviewerwindow.h"
+#include "llviewerregion.h"
#include "llvoavatar.h"
-#include "llxmltree.h"
+#include "llvoavatarself.h"
#include "pipeline.h"
-#include "v4coloru.h"
-#include "llrender.h"
#include "llassetuploadresponders.h"
+#include "lltexlayerparams.h"
+#include "llui.h"
//#include "../tools/imdebug/imdebug.h"
using namespace LLVOAvatarDefines;
-// static
-S32 LLTexLayerSetBuffer::sGLByteCount = 0;
-S32 LLTexLayerSetBuffer::sGLBumpByteCount = 0;
-
//-----------------------------------------------------------------------------
// LLBakedUploadData()
//-----------------------------------------------------------------------------
-LLBakedUploadData::LLBakedUploadData( LLVOAvatar* avatar, LLTexLayerSetBuffer* layerset_buffer, const LLUUID & id ) :
- mAvatar( avatar ),
- mLayerSetBuffer( layerset_buffer ),
- mID(id)
+LLBakedUploadData::LLBakedUploadData(const LLVOAvatarSelf* avatar,
+ LLTexLayerSet* layerset,
+ const LLUUID& id) :
+ mAvatar(avatar),
+ mTexLayerSet(layerset),
+ mID(id),
+ mStartTime(LLFrameTimer::getTotalTime()) // Record starting time
{
- mStartTime = LLFrameTimer::getTotalTime(); // Record starting time
- for( S32 i = 0; i < WT_COUNT; i++ )
- {
- LLWearable* wearable = gAgent.getWearable( (EWearableType)i);
- if( wearable )
- {
- mWearableAssets[i] = wearable->getID();
- }
- }
}
//-----------------------------------------------------------------------------
// LLTexLayerSetBuffer
// The composite image that a LLTexLayerSet writes to. Each LLTexLayerSet has one.
//-----------------------------------------------------------------------------
-LLTexLayerSetBuffer::LLTexLayerSetBuffer( LLTexLayerSet* owner, S32 width, S32 height, BOOL has_bump )
- :
+
+// static
+S32 LLTexLayerSetBuffer::sGLByteCount = 0;
+S32 LLTexLayerSetBuffer::sGLBumpByteCount = 0;
+
+LLTexLayerSetBuffer::LLTexLayerSetBuffer(LLTexLayerSet* const owner,
+ S32 width, S32 height,
+ BOOL has_bump) :
// ORDER_LAST => must render these after the hints are created.
LLDynamicTexture( width, height, 4, LLDynamicTexture::ORDER_LAST, TRUE ),
mNeedsUpdate( TRUE ),
mNeedsUpload( FALSE ),
mUploadPending( FALSE ), // Not used for any logic here, just to sync sending of updates
- mTexLayerSet( owner )
+ mTexLayerSet(owner),
+ mHasBump(has_bump),
+ mBumpTex(NULL)
{
LLTexLayerSetBuffer::sGLByteCount += getSize();
- mHasBump = has_bump ;
- mBumpTex = NULL ;
-
createBumpTexture() ;
}
@@ -111,10 +91,11 @@ LLTexLayerSetBuffer::~LLTexLayerSetBuffer()
if( mBumpTex.notNull())
{
mBumpTex = NULL ;
- LLImageGL::sGlobalTextureMemory -= mWidth * mHeight * 4;
+ LLImageGL::sGlobalTextureMemoryInBytes -= mWidth * mHeight * 4;
LLTexLayerSetBuffer::sGLBumpByteCount -= mWidth * mHeight * 4;
}
}
+
//virtual
void LLTexLayerSetBuffer::restoreGLTexture()
{
@@ -128,7 +109,7 @@ void LLTexLayerSetBuffer::destroyGLTexture()
if( mBumpTex.notNull() )
{
mBumpTex = NULL ;
- LLImageGL::sGlobalTextureMemory -= mWidth * mHeight * 4;
+ LLImageGL::sGlobalTextureMemoryInBytes -= mWidth * mHeight * 4;
LLTexLayerSetBuffer::sGLBumpByteCount -= mWidth * mHeight * 4;
}
@@ -159,7 +140,7 @@ void LLTexLayerSetBuffer::createBumpTexture()
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
- LLImageGL::sGlobalTextureMemory += mWidth * mHeight * 4;
+ LLImageGL::sGlobalTextureMemoryInBytes += mWidth * mHeight * 4;
LLTexLayerSetBuffer::sGLBumpByteCount += mWidth * mHeight * 4;
}
}
@@ -198,7 +179,7 @@ void LLTexLayerSetBuffer::cancelUpload()
mUploadPending = FALSE;
}
-void LLTexLayerSetBuffer::pushProjection()
+void LLTexLayerSetBuffer::pushProjection() const
{
glMatrixMode(GL_PROJECTION);
gGL.pushMatrix();
@@ -210,7 +191,7 @@ void LLTexLayerSetBuffer::pushProjection()
glLoadIdentity();
}
-void LLTexLayerSetBuffer::popProjection()
+void LLTexLayerSetBuffer::popProjection() const
{
glMatrixMode(GL_PROJECTION);
gGL.popMatrix();
@@ -221,12 +202,12 @@ void LLTexLayerSetBuffer::popProjection()
BOOL LLTexLayerSetBuffer::needsRender()
{
- LLVOAvatar* avatar = mTexLayerSet->getAvatar();
+ const LLVOAvatarSelf* avatar = mTexLayerSet->getAvatar();
BOOL upload_now = mNeedsUpload && mTexLayerSet->isLocalTextureDataFinal();
- BOOL needs_update = gAgent.mNumPendingQueries == 0 && (mNeedsUpdate || upload_now) && !avatar->mAppearanceAnimating;
+ BOOL needs_update = gAgentQueryManager.hasNoPendingQueries() && (mNeedsUpdate || upload_now) && !avatar->mAppearanceAnimating;
if (needs_update)
{
- BOOL invalid_skirt = avatar->getBakedTE(mTexLayerSet) == TEX_SKIRT_BAKED && !avatar->isWearingWearableType(WT_SKIRT);
+ BOOL invalid_skirt = avatar->getBakedTE(mTexLayerSet) == LLVOAvatarDefines::TEX_SKIRT_BAKED && !avatar->isWearingWearableType(WT_SKIRT);
if (invalid_skirt)
{
// we were trying to create a skirt texture
@@ -268,7 +249,7 @@ BOOL LLTexLayerSetBuffer::render()
// do we need to upload, and do we have sufficient data to create an uploadable composite?
// When do we upload the texture if gAgent.mNumPendingQueries is non-zero?
- BOOL upload_now = (gAgent.mNumPendingQueries == 0 && mNeedsUpload && mTexLayerSet->isLocalTextureDataFinal());
+ BOOL upload_now = (gAgentQueryManager.hasNoPendingQueries() && mNeedsUpload && mTexLayerSet->isLocalTextureDataFinal());
BOOL success = TRUE;
// Composite bump
@@ -308,7 +289,6 @@ BOOL LLTexLayerSetBuffer::render()
{
if (!success)
{
- delete [] baked_bump_data;
llinfos << "Failed attempt to bake " << mTexLayerSet->getBodyRegion() << llendl;
mUploadPending = FALSE;
}
@@ -326,6 +306,7 @@ BOOL LLTexLayerSetBuffer::render()
mTexture->setGLTextureCreated(true);
mNeedsUpdate = FALSE;
+ delete [] baked_bump_data;
return success;
}
@@ -349,7 +330,7 @@ BOOL LLTexLayerSetBuffer::updateImmediate()
return result;
}
-void LLTexLayerSetBuffer::readBackAndUpload(U8* baked_bump_data)
+void LLTexLayerSetBuffer::readBackAndUpload(const U8* baked_bump_data)
{
// pointers for storing data to upload
U8* baked_color_data = new U8[ mWidth * mHeight * 4 ];
@@ -371,10 +352,8 @@ void LLTexLayerSetBuffer::readBackAndUpload(U8* baked_bump_data)
LLPointer<LLImageRaw> baked_mask_image = new LLImageRaw(mWidth, mHeight, 1 );
U8* baked_mask_data = baked_mask_image->getData();
-
- mTexLayerSet->gatherAlphaMasks(baked_mask_data, mWidth, mHeight);
-// imdebug("lum b=8 w=%d h=%d %p", mWidth, mHeight, baked_mask_data);
-
+
+ mTexLayerSet->gatherMorphMaskAlpha(baked_mask_data, mWidth, mHeight);
// writes into baked_color_data
const char* comment_text = NULL;
@@ -383,13 +362,11 @@ void LLTexLayerSetBuffer::readBackAndUpload(U8* baked_bump_data)
LLPointer<LLImageRaw> baked_image = new LLImageRaw( mWidth, mHeight, baked_image_components );
U8* baked_image_data = baked_image->getData();
+
if( mBumpTex.notNull() )
{
comment_text = LINDEN_J2C_COMMENT_PREFIX "RGBHM"; // 5 channels: rgb, heightfield/alpha, mask
- // Hide the alpha for the eyelashes in a corner of the bump map
- if (mTexLayerSet->getBodyRegion() == "head")
- {
S32 i = 0;
for( S32 u = 0; u < mWidth; u++ )
{
@@ -411,25 +388,6 @@ void LLTexLayerSetBuffer::readBackAndUpload(U8* baked_bump_data)
{
for( S32 v = 0; v < mHeight; v++ )
{
- baked_image_data[5*i + 0] = baked_color_data[4*i + 0];
- baked_image_data[5*i + 1] = baked_color_data[4*i + 1];
- baked_image_data[5*i + 2] = baked_color_data[4*i + 2];
- baked_image_data[5*i + 3] = 255; // reserve for alpha
- baked_image_data[5*i + 4] = baked_mask_data[i];
- i++;
- }
- }
- }
- }
- else
- {
- if (mTexLayerSet->getBodyRegion() == "skirt" || mTexLayerSet->getBodyRegion() == "hair")
- {
- S32 i = 0;
- for( S32 u = 0; u < mWidth; u++ )
- {
- for( S32 v = 0; v < mHeight; v++ )
- {
baked_image_data[4*i + 0] = baked_color_data[4*i + 0];
baked_image_data[4*i + 1] = baked_color_data[4*i + 1];
baked_image_data[4*i + 2] = baked_color_data[4*i + 2];
@@ -438,22 +396,6 @@ void LLTexLayerSetBuffer::readBackAndUpload(U8* baked_bump_data)
}
}
}
- else
- {
- S32 i = 0;
- for( S32 u = 0; u < mWidth; u++ )
- {
- for( S32 v = 0; v < mHeight; v++ )
- {
- baked_image_data[4*i + 0] = baked_color_data[4*i + 0];
- baked_image_data[4*i + 1] = baked_color_data[4*i + 1];
- baked_image_data[4*i + 2] = baked_color_data[4*i + 2];
- baked_image_data[4*i + 3] = 255; // eyes should have no mask - reserve for alpha
- i++;
- }
- }
- }
- }
LLPointer<LLImageJ2C> compressedImage = new LLImageJ2C;
compressedImage->setRate(0.f);
@@ -485,7 +427,8 @@ void LLTexLayerSetBuffer::readBackAndUpload(U8* baked_bump_data)
if( valid )
{
// baked_upload_data is owned by the responder and deleted after the request completes
- LLBakedUploadData* baked_upload_data = new LLBakedUploadData( gAgent.getAvatarObject(), this, asset_id );
+ LLBakedUploadData* baked_upload_data =
+ new LLBakedUploadData(gAgent.getAvatarObject(), this->mTexLayerSet, asset_id);
mUploadID = asset_id;
// upload the image
@@ -531,62 +474,74 @@ void LLTexLayerSetBuffer::readBackAndUpload(U8* baked_bump_data)
}
delete [] baked_color_data;
- delete [] baked_bump_data;
}
// static
-void LLTexLayerSetBuffer::onTextureUploadComplete(const LLUUID& uuid, void* userdata, S32 result, LLExtStat ext_status) // StoreAssetData callback (not fixed)
+void LLTexLayerSetBuffer::onTextureUploadComplete(const LLUUID& uuid,
+ void* userdata,
+ S32 result,
+ LLExtStat ext_status) // StoreAssetData callback (not fixed)
{
LLBakedUploadData* baked_upload_data = (LLBakedUploadData*)userdata;
- LLVOAvatar* avatar = gAgent.getAvatarObject();
+ LLVOAvatarSelf* avatar = gAgent.getAvatarObject();
- if (0 == result && avatar && !avatar->isDead())
+ if (0 == result &&
+ avatar &&
+ !avatar->isDead() &&
+ baked_upload_data->mAvatar == avatar && // Sanity check: only the user's avatar should be uploading textures.
+ baked_upload_data->mTexLayerSet->hasComposite()
+ )
{
- // Sanity check: only the user's avatar should be uploading textures.
- if( baked_upload_data->mAvatar == avatar )
+ LLTexLayerSetBuffer* layerset_buffer = baked_upload_data->mTexLayerSet->getComposite();
+
+ if (layerset_buffer->mUploadID.isNull())
{
- // Because the avatar is still valid, it's layerset buffers should be valid also.
- LLTexLayerSetBuffer* layerset_buffer = baked_upload_data->mLayerSetBuffer;
+ // The upload got canceled, we should be in the
+ // process of baking a new texture so request an
+ // upload with the new data
+
+ // BAP: does this really belong in this callback, as
+ // opposed to where the cancellation takes place?
+ // suspect this does nothing.
+ layerset_buffer->requestUpload();
+ }
+ else if (baked_upload_data->mID == layerset_buffer->mUploadID)
+ {
+ // This is the upload we're currently waiting for.
+ layerset_buffer->mUploadID.setNull();
layerset_buffer->mUploadPending = FALSE;
-
- if (layerset_buffer->mUploadID.isNull())
- {
- // The upload got canceled, we should be in the process of baking a new texture
- // so request an upload with the new data
- layerset_buffer->requestUpload();
- }
- else if( baked_upload_data->mID == layerset_buffer->mUploadID )
- {
- // This is the upload we're currently waiting for.
- layerset_buffer->mUploadID.setNull();
- if( result >= 0 )
- {
- ETextureIndex baked_te = avatar->getBakedTE( layerset_buffer->mTexLayerSet );
- U64 now = LLFrameTimer::getTotalTime(); // Record starting time
- llinfos << "Baked texture upload took " << (S32)((now - baked_upload_data->mStartTime) / 1000) << " ms" << llendl;
- avatar->setNewBakedTexture( baked_te, uuid );
- }
- else
- {
- llinfos << "Baked upload failed. Reason: " << result << llendl;
- // *FIX: retry upload after n seconds, asset server could be busy
- }
+ if (result >= 0)
+ {
+ LLVOAvatarDefines::ETextureIndex baked_te = avatar->getBakedTE(layerset_buffer->mTexLayerSet);
+ // Update baked texture info with the new UUID
+ U64 now = LLFrameTimer::getTotalTime(); // Record starting time
+ llinfos << "Baked texture upload took " << (S32)((now - baked_upload_data->mStartTime) / 1000) << " ms" << llendl;
+ avatar->setNewBakedTexture(baked_te, uuid);
}
else
- {
- llinfos << "Received baked texture out of date, ignored." << llendl;
+ {
+ // Avatar appearance is changing, ignore the upload results
+ llinfos << "Baked upload failed. Reason: " << result << llendl;
+ // *FIX: retry upload after n seconds, asset server could be busy
}
-
- avatar->dirtyMesh();
}
+ else
+ {
+ llinfos << "Received baked texture out of date, ignored." << llendl;
+ }
+
+ avatar->dirtyMesh();
}
else
{
- // Baked texture failed to upload, but since we didn't set the new baked texture, it means that they'll
- // try and rebake it at some point in the future (after login?)
+ // Baked texture failed to upload (in which case since we
+ // didn't set the new baked texture, it means that they'll try
+ // and rebake it at some point in the future (after login?)),
+ // or this response to upload is out of date, in which case a
+ // current response should be on the way or already processed.
llwarns << "Baked upload failed" << llendl;
}
@@ -619,8 +574,7 @@ void LLTexLayerSetBuffer::bindBumpTexture( U32 stage )
// An ordered set of texture layers that get composited into a single texture.
//-----------------------------------------------------------------------------
-LLTexLayerSetInfo::LLTexLayerSetInfo( )
- :
+LLTexLayerSetInfo::LLTexLayerSetInfo() :
mBodyRegion( "" ),
mWidth( 512 ),
mHeight( 512 ),
@@ -685,6 +639,19 @@ BOOL LLTexLayerSetInfo::parseXml(LLXmlTreeNode* node)
return TRUE;
}
+// creates visual params without generating layersets or layers
+void LLTexLayerSetInfo::createVisualParams(LLVOAvatar *avatar)
+{
+ //layer_info_list_t mLayerInfoList;
+ for (layer_info_list_t::iterator layer_iter = mLayerInfoList.begin();
+ layer_iter != mLayerInfoList.end();
+ layer_iter++)
+ {
+ LLTexLayerInfo *layer_info = *layer_iter;
+ layer_info->createVisualParams(avatar);
+ }
+}
+
//-----------------------------------------------------------------------------
// LLTexLayerSet
// An ordered set of texture layers that get composited into a single texture.
@@ -692,8 +659,7 @@ BOOL LLTexLayerSetInfo::parseXml(LLXmlTreeNode* node)
BOOL LLTexLayerSet::sHasCaches = FALSE;
-LLTexLayerSet::LLTexLayerSet( LLVOAvatar* avatar )
- :
+LLTexLayerSet::LLTexLayerSet(LLVOAvatarSelf* const avatar) :
mComposite( NULL ),
mAvatar( avatar ),
mUpdatesEnabled( FALSE ),
@@ -704,7 +670,9 @@ LLTexLayerSet::LLTexLayerSet( LLVOAvatar* avatar )
LLTexLayerSet::~LLTexLayerSet()
{
+ deleteCaches();
std::for_each(mLayerList.begin(), mLayerList.end(), DeletePointer());
+ std::for_each(mMaskLayerList.begin(), mMaskLayerList.end(), DeletePointer());
delete mComposite;
}
@@ -712,15 +680,16 @@ LLTexLayerSet::~LLTexLayerSet()
// setInfo
//-----------------------------------------------------------------------------
-BOOL LLTexLayerSet::setInfo(LLTexLayerSetInfo *info)
+BOOL LLTexLayerSet::setInfo(const LLTexLayerSetInfo *info)
{
llassert(mInfo == NULL);
mInfo = info;
//mID = info->mID; // No ID
- LLTexLayerSetInfo::layer_info_list_t::iterator iter;
mLayerList.reserve(info->mLayerInfoList.size());
- for (iter = info->mLayerInfoList.begin(); iter != info->mLayerInfoList.end(); iter++)
+ for (LLTexLayerSetInfo::layer_info_list_t::const_iterator iter = info->mLayerInfoList.begin();
+ iter != info->mLayerInfoList.end();
+ iter++)
{
LLTexLayer* layer = new LLTexLayer( this );
if (!layer->setInfo(*iter))
@@ -728,8 +697,15 @@ BOOL LLTexLayerSet::setInfo(LLTexLayerSetInfo *info)
mInfo = NULL;
return FALSE;
}
+ if (!layer->isVisibilityMask())
+ {
mLayerList.push_back( layer );
}
+ else
+ {
+ mMaskLayerList.push_back(layer);
+ }
+ }
requestUpdate();
@@ -768,19 +744,26 @@ void LLTexLayerSet::deleteCaches()
LLTexLayer* layer = *iter;
layer->deleteCaches();
}
+ for (layer_list_t::iterator iter = mMaskLayerList.begin(); iter != mMaskLayerList.end(); iter++)
+ {
+ LLTexLayer* layer = *iter;
+ layer->deleteCaches();
+ }
}
// Returns TRUE if at least one packet of data has been received for each of the textures that this layerset depends on.
-BOOL LLTexLayerSet::isLocalTextureDataAvailable()
+BOOL LLTexLayerSet::isLocalTextureDataAvailable() const
{
- return mAvatar->isLocalTextureDataAvailable( this );
+ if (!mAvatar->isSelf()) return FALSE;
+ return ((LLVOAvatarSelf *)mAvatar)->isLocalTextureDataAvailable(this);
}
// Returns TRUE if all of the data for the textures that this layerset depends on have arrived.
-BOOL LLTexLayerSet::isLocalTextureDataFinal()
+BOOL LLTexLayerSet::isLocalTextureDataFinal() const
{
- return mAvatar->isLocalTextureDataFinal( this );
+ if (!mAvatar->isSelf()) return FALSE;
+ return ((LLVOAvatarSelf *)mAvatar)->isLocalTextureDataFinal(this);
}
@@ -792,62 +775,26 @@ BOOL LLTexLayerSet::render( S32 x, S32 y, S32 width, S32 height )
LLGLDepthTest gls_depth(GL_FALSE, GL_FALSE);
gGL.setColorMask(true, true);
+ BOOL render_morph = mAvatar->morphMaskNeedsUpdate(mBakedTexIndex);
+
// composite color layers
for( layer_list_t::iterator iter = mLayerList.begin(); iter != mLayerList.end(); iter++ )
{
LLTexLayer* layer = *iter;
- if( layer->getRenderPass() == RP_COLOR )
+ if (layer->getRenderPass() == LLTexLayer::RP_COLOR)
{
gGL.flush();
- success &= layer->render( x, y, width, height );
+ success &= layer->render(x, y, width, height, render_morph);
gGL.flush();
- }
- }
-
- // (Optionally) replace alpha with a single component image from a tga file.
- if( !getInfo()->mStaticAlphaFileName.empty() )
- {
- LLGLSNoAlphaTest gls_no_alpha_test;
- gGL.flush();
- gGL.setColorMask(false, true);
- gGL.setSceneBlendType(LLRender::BT_REPLACE);
-
- {
- LLImageGL* image_gl = gTexStaticImageList.getImageGL( getInfo()->mStaticAlphaFileName, TRUE );
- if( image_gl )
+ if (layer->isMorphValid())
{
- LLGLSUIDefault gls_ui;
- gGL.getTexUnit(0)->bind(image_gl);
- gGL.getTexUnit(0)->setTextureBlendType( LLTexUnit::TB_REPLACE );
- gl_rect_2d_simple_tex( width, height );
- }
- else
- {
- success = FALSE;
+ mAvatar->setMorphMasksValid(TRUE, mBakedTexIndex);
}
}
- gGL.flush();
- gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
-
- gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT);
- gGL.setColorMask(true, true);
- gGL.setSceneBlendType(LLRender::BT_ALPHA);
}
- else
- if( getInfo()->mClearAlpha )
- {
- // Set the alpha channel to one (clean up after previous blending)
- LLGLDisable no_alpha(GL_ALPHA_TEST);
- gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
- gGL.color4f( 0.f, 0.f, 0.f, 1.f );
- gGL.flush();
- gGL.setColorMask(false, true);
+
+ renderAlphaMaskTextures(width, height, false);
- gl_rect_2d_simple( width, height );
-
- gGL.flush();
- gGL.setColorMask(true, true);
- }
stop_glerror();
return success;
@@ -865,9 +812,9 @@ BOOL LLTexLayerSet::renderBump( S32 x, S32 y, S32 width, S32 height )
for( layer_list_t::iterator iter = mLayerList.begin(); iter != mLayerList.end(); iter++ )
{
LLTexLayer* layer = *iter;
- if( layer->getRenderPass() == RP_BUMP )
+ if (layer->getRenderPass() == LLTexLayer::RP_BUMP)
{
- success &= layer->render( x, y, width, height );
+// success &= layer->render(x, y, width, height);
}
}
@@ -885,6 +832,16 @@ BOOL LLTexLayerSet::renderBump( S32 x, S32 y, S32 width, S32 height )
return success;
}
+BOOL LLTexLayerSet::isBodyRegion(const std::string& region) const
+{
+ return mInfo->mBodyRegion == region;
+}
+
+const std::string LLTexLayerSet::getBodyRegion() const
+{
+ return mInfo->mBodyRegion;
+}
+
void LLTexLayerSet::requestUpdate()
{
if( mUpdatesEnabled )
@@ -917,8 +874,9 @@ void LLTexLayerSet::createComposite()
// Composite other avatars at reduced resolution
if( !mAvatar->isSelf() )
{
- width /= 2;
- height /= 2;
+ // TODO: replace with sanity check to ensure not called for non-self avatars
+// width /= 2;
+// height /= 2;
}
mComposite = new LLTexLayerSetBuffer( this, width, height, mHasBump );
}
@@ -951,12 +909,14 @@ LLTexLayerSetBuffer* LLTexLayerSet::getComposite()
return mComposite;
}
-void LLTexLayerSet::gatherAlphaMasks(U8 *data, S32 width, S32 height)
+void LLTexLayerSet::gatherMorphMaskAlpha(U8 *data, S32 width, S32 height)
{
S32 size = width * height;
memset(data, 255, width * height);
+ BOOL render_morph = mAvatar->morphMaskNeedsUpdate(mBakedTexIndex);
+
for( layer_list_t::iterator iter = mLayerList.begin(); iter != mLayerList.end(); iter++ )
{
LLTexLayer* layer = *iter;
@@ -965,8 +925,10 @@ void LLTexLayerSet::gatherAlphaMasks(U8 *data, S32 width, S32 height)
{
LLColor4 net_color;
layer->findNetColor( &net_color );
+ // TODO: eliminate need for layer morph mask valid flag
layer->invalidateMorphMasks();
- layer->renderAlphaMasks(mComposite->getOriginX(), mComposite->getOriginY(), width, height, &net_color);
+ mAvatar->invalidateMorphMasks(mBakedTexIndex);
+ layer->renderMorphMasks(mComposite->getOriginX(), mComposite->getOriginY(), width, height, net_color, render_morph);
alphaData = layer->getAlphaData();
}
if (alphaData)
@@ -981,35 +943,111 @@ void LLTexLayerSet::gatherAlphaMasks(U8 *data, S32 width, S32 height)
}
}
}
+
+ // Set alpha back to that of our alpha masks.
+ renderAlphaMaskTextures(width, height, true);
+}
+
+void LLTexLayerSet::renderAlphaMaskTextures(S32 width, S32 height, bool forceClear)
+{
+ const LLTexLayerSetInfo *info = getInfo();
+
+ gGL.setColorMask(false, true);
+ gGL.setSceneBlendType(LLRender::BT_REPLACE);
+ // (Optionally) replace alpha with a single component image from a tga file.
+ if (!info->mStaticAlphaFileName.empty() && mMaskLayerList.empty())
+ {
+ LLGLSNoAlphaTest gls_no_alpha_test;
+ gGL.flush();
+ {
+ LLImageGL* image_gl = LLTexLayerStaticImageList::getInstance()->getImageGL(info->mStaticAlphaFileName, TRUE);
+ if( image_gl )
+ {
+ LLGLSUIDefault gls_ui;
+ gGL.getTexUnit(0)->bind(image_gl);
+ gGL.getTexUnit(0)->setTextureBlendType( LLTexUnit::TB_REPLACE );
+ gl_rect_2d_simple_tex( width, height );
+ }
+ }
+ gGL.flush();
+ }
+ else if (forceClear || info->mClearAlpha || (mMaskLayerList.size() > 0))
+ {
+ // Set the alpha channel to one (clean up after previous blending)
+ gGL.flush();
+ LLGLDisable no_alpha(GL_ALPHA_TEST);
+ gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
+ gGL.color4f( 0.f, 0.f, 0.f, 1.f );
+
+ gl_rect_2d_simple( width, height );
+
+ gGL.flush();
+ }
+
+ // (Optional) Mask out part of the baked texture with alpha masks
+ // will still have an effect even if mClearAlpha is set or the alpha component was replaced
+ if (mMaskLayerList.size() > 0)
+ {
+ gGL.setSceneBlendType(LLRender::BT_MULT_ALPHA);
+ gGL.getTexUnit(0)->setTextureBlendType( LLTexUnit::TB_REPLACE );
+ for (layer_list_t::iterator iter = mMaskLayerList.begin(); iter != mMaskLayerList.end(); iter++)
+ {
+ LLTexLayer* layer = *iter;
+ gGL.flush();
+ layer->blendAlphaTexture(width, height);
+ gGL.flush();
+ }
+
+ }
+
+ gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
+
+ gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT);
+ gGL.setColorMask(true, true);
+ gGL.setSceneBlendType(LLRender::BT_ALPHA);
}
void LLTexLayerSet::applyMorphMask(U8* tex_data, S32 width, S32 height, S32 num_components)
{
+ mAvatar->applyMorphMask(tex_data, width, height, num_components, mBakedTexIndex);
+}
+
+//-----------------------------------------------------------------------------
+// finds a specific layer based on a passed in name
+//-----------------------------------------------------------------------------
+LLTexLayer* LLTexLayerSet::findLayerByName(std::string name)
+{
for( layer_list_t::iterator iter = mLayerList.begin(); iter != mLayerList.end(); iter++ )
{
LLTexLayer* layer = *iter;
- layer->applyMorphMask(tex_data, width, height, num_components);
+
+ if (layer->getName().compare(name) == 0)
+ {
+ return layer;
+ }
}
+ return NULL;
}
+
//-----------------------------------------------------------------------------
// LLTexLayerInfo
//-----------------------------------------------------------------------------
-LLTexLayerInfo::LLTexLayerInfo( )
- :
+LLTexLayerInfo::LLTexLayerInfo() :
mWriteAllChannels( FALSE ),
- mRenderPass( RP_COLOR ),
+ mRenderPass(LLTexLayer::RP_COLOR),
mFixedColor( 0.f, 0.f, 0.f, 0.f ),
mLocalTexture( -1 ),
mStaticImageIsMask( FALSE ),
- mUseLocalTextureAlphaOnly( FALSE )
+ mUseLocalTextureAlphaOnly(FALSE),
+ mIsVisibilityMask(FALSE)
{
}
LLTexLayerInfo::~LLTexLayerInfo( )
{
- std::for_each(mColorInfoList.begin(), mColorInfoList.end(), DeletePointer());
- std::for_each(mAlphaInfoList.begin(), mAlphaInfoList.end(), DeletePointer());
+ std::for_each(mParamColorInfoList.begin(), mParamColorInfoList.end(), DeletePointer());
+ std::for_each(mParamAlphaInfoList.begin(), mParamAlphaInfoList.end(), DeletePointer());
}
BOOL LLTexLayerInfo::parseXml(LLXmlTreeNode* node)
@@ -1032,7 +1070,7 @@ BOOL LLTexLayerInfo::parseXml(LLXmlTreeNode* node)
{
if( render_pass_name == "bump" )
{
- mRenderPass = RP_BUMP;
+ mRenderPass = LLTexLayer::RP_BUMP;
}
}
@@ -1041,6 +1079,14 @@ BOOL LLTexLayerInfo::parseXml(LLXmlTreeNode* node)
static LLStdStringHandle global_color_string = LLXmlTree::addAttributeString("global_color");
node->getFastAttributeString( global_color_string, mGlobalColor );
+ // Visibility mask (optional)
+ BOOL is_visibility;
+ static LLStdStringHandle visibility_mask_string = LLXmlTree::addAttributeString("visibility_mask");
+ if (node->getFastAttributeBOOL(visibility_mask_string, is_visibility))
+ {
+ mIsVisibilityMask = is_visibility;
+ }
+
// color attribute (optional)
LLColor4U color4u;
static LLStdStringHandle fixed_color_string = LLXmlTree::addAttributeString("fixed_color");
@@ -1054,7 +1100,7 @@ BOOL LLTexLayerInfo::parseXml(LLXmlTreeNode* node)
texture_node;
texture_node = node->getNextNamedChild())
{
- std::string local_texture;
+ std::string local_texture_name;
static LLStdStringHandle tga_file_string = LLXmlTree::addAttributeString("tga_file");
static LLStdStringHandle local_texture_string = LLXmlTree::addAttributeString("local_texture");
static LLStdStringHandle file_is_mask_string = LLXmlTree::addAttributeString("file_is_mask");
@@ -1063,73 +1109,27 @@ BOOL LLTexLayerInfo::parseXml(LLXmlTreeNode* node)
{
texture_node->getFastAttributeBOOL( file_is_mask_string, mStaticImageIsMask );
}
- else if( texture_node->getFastAttributeString( local_texture_string, local_texture ) )
+ else if (texture_node->getFastAttributeString(local_texture_string, local_texture_name))
{
texture_node->getFastAttributeBOOL( local_texture_alpha_only_string, mUseLocalTextureAlphaOnly );
- if( "upper_shirt" == local_texture )
- {
- mLocalTexture = TEX_UPPER_SHIRT;
- }
- else if( "upper_bodypaint" == local_texture )
- {
- mLocalTexture = TEX_UPPER_BODYPAINT;
- }
- else if( "lower_pants" == local_texture )
- {
- mLocalTexture = TEX_LOWER_PANTS;
- }
- else if( "lower_bodypaint" == local_texture )
- {
- mLocalTexture = TEX_LOWER_BODYPAINT;
- }
- else if( "lower_shoes" == local_texture )
- {
- mLocalTexture = TEX_LOWER_SHOES;
- }
- else if( "head_bodypaint" == local_texture )
- {
- mLocalTexture = TEX_HEAD_BODYPAINT;
- }
- else if( "lower_socks" == local_texture )
- {
- mLocalTexture = TEX_LOWER_SOCKS;
- }
- else if( "upper_jacket" == local_texture )
- {
- mLocalTexture = TEX_UPPER_JACKET;
- }
- else if( "lower_jacket" == local_texture )
- {
- mLocalTexture = TEX_LOWER_JACKET;
- }
- else if( "upper_gloves" == local_texture )
- {
- mLocalTexture = TEX_UPPER_GLOVES;
- }
- else if( "upper_undershirt" == local_texture )
- {
- mLocalTexture = TEX_UPPER_UNDERSHIRT;
- }
- else if( "lower_underpants" == local_texture )
+ /* if ("upper_shirt" == local_texture_name)
+ mLocalTexture = TEX_UPPER_SHIRT; */
+ mLocalTexture = TEX_NUM_INDICES;
+ for (LLVOAvatarDictionary::Textures::const_iterator iter = LLVOAvatarDictionary::getInstance()->getTextures().begin();
+ iter != LLVOAvatarDictionary::getInstance()->getTextures().end();
+ iter++)
{
- mLocalTexture = TEX_LOWER_UNDERPANTS;
- }
- else if( "eyes_iris" == local_texture )
+ const LLVOAvatarDictionary::TextureEntry *texture_dict = iter->second;
+ if (local_texture_name == texture_dict->mName)
{
- mLocalTexture = TEX_EYES_IRIS;
+ mLocalTexture = iter->first;
+ break;
}
- else if( "skirt" == local_texture )
- {
- mLocalTexture = TEX_SKIRT;
- }
- else if( "hair_grain" == local_texture )
- {
- mLocalTexture = TEX_HAIR;
}
- else
+ if (mLocalTexture == TEX_NUM_INDICES)
{
- llwarns << "<texture> element has invalid local_texure attribute: " << mName << " " << local_texture << llendl;
+ llwarns << "<texture> element has invalid local_texure attribute: " << mName << " " << local_texture_name << llendl;
return FALSE;
}
}
@@ -1163,13 +1163,13 @@ BOOL LLTexLayerInfo::parseXml(LLXmlTreeNode* node)
if( child->getChildByName( "param_color" ) )
{
// <param><param_color/></param>
- LLTexParamColorInfo* info = new LLTexParamColorInfo( );
+ LLTexLayerParamColorInfo* info = new LLTexLayerParamColorInfo();
if (!info->parseXml(child))
{
delete info;
return FALSE;
}
- mColorInfoList.push_back( info );
+ mParamColorInfoList.push_back(info);
}
else if( child->getChildByName( "param_alpha" ) )
{
@@ -1180,13 +1180,47 @@ BOOL LLTexLayerInfo::parseXml(LLXmlTreeNode* node)
delete info;
return FALSE;
}
- mAlphaInfoList.push_back( info );
+ mParamAlphaInfoList.push_back(info);
}
}
return TRUE;
}
+BOOL LLTexLayerInfo::createVisualParams(LLVOAvatar *avatar)
+{
+ BOOL success = TRUE;
+ for (param_color_info_list_t::iterator color_info_iter = mParamColorInfoList.begin();
+ color_info_iter != mParamColorInfoList.end();
+ color_info_iter++)
+ {
+ LLTexLayerParamColorInfo * color_info = *color_info_iter;
+ LLTexLayerParamColor* param_color = new LLTexLayerParamColor(avatar);
+ if (!param_color->setInfo(color_info))
+ {
+ llwarns << "NULL TexLayer Color Param could not be added to visual param list. Deleting." << llendl;
+ delete param_color;
+ success = FALSE;
+ }
+ }
+
+ for (param_alpha_info_list_t::iterator alpha_info_iter = mParamAlphaInfoList.begin();
+ alpha_info_iter != mParamAlphaInfoList.end();
+ alpha_info_iter++)
+ {
+ LLTexLayerParamAlphaInfo * alpha_info = *alpha_info_iter;
+ LLTexLayerParamAlpha* param_alpha = new LLTexLayerParamAlpha(avatar);
+ if (!param_alpha->setInfo(alpha_info))
+ {
+ llwarns << "NULL TexLayer Alpha Param could not be added to visual param list. Deleting." << llendl;
+ delete param_alpha;
+ success = FALSE;
+ }
+ }
+
+ return success;
+}
+
//-----------------------------------------------------------------------------
// LLTexLayer
// A single texture layer, consisting of:
@@ -1200,12 +1234,12 @@ BOOL LLTexLayerInfo::parseXml(LLXmlTreeNode* node)
// * a texture entry index (TE)
// * (optional) one or more alpha parameters (weighted alpha textures)
//-----------------------------------------------------------------------------
-LLTexLayer::LLTexLayer( LLTexLayerSet* layer_set )
- :
+LLTexLayer::LLTexLayer(LLTexLayerSet* layer_set) :
mTexLayerSet( layer_set ),
mMorphMasksValid( FALSE ),
mStaticImageInvalid( FALSE ),
- mInfo( NULL )
+ mInfo(NULL),
+ mHasMorph(FALSE)
{
}
@@ -1222,45 +1256,28 @@ LLTexLayer::~LLTexLayer()
U8* alpha_data = iter->second;
delete [] alpha_data;
}
+
}
//-----------------------------------------------------------------------------
// setInfo
//-----------------------------------------------------------------------------
-BOOL LLTexLayer::setInfo(LLTexLayerInfo* info)
+BOOL LLTexLayer::setInfo(const LLTexLayerInfo* info)
{
llassert(mInfo == NULL);
mInfo = info;
//mID = info->mID; // No ID
- if (info->mRenderPass == RP_BUMP)
+ if (info->mRenderPass == LLTexLayer::RP_BUMP)
mTexLayerSet->setBump(TRUE);
+ mParamColorList.reserve(mInfo->mParamColorInfoList.size());
+ for (param_color_info_list_t::const_iterator iter = mInfo->mParamColorInfoList.begin();
+ iter != mInfo->mParamColorInfoList.end();
+ iter++)
{
- LLTexLayerInfo::morph_name_list_t::iterator iter;
- for (iter = mInfo->mMorphNameList.begin(); iter != mInfo->mMorphNameList.end(); iter++)
- {
- // *FIX: we assume that the referenced visual param is a
- // morph target, need a better way of actually looking
- // this up.
- LLPolyMorphTarget *morph_param;
- std::string *name = &(iter->first);
- morph_param = (LLPolyMorphTarget *)(getTexLayerSet()->getAvatar()->getVisualParam(name->c_str()));
- if (morph_param)
- {
- BOOL invert = iter->second;
- addMaskedMorph(morph_param, invert);
- }
- }
- }
-
- {
- LLTexLayerInfo::color_info_list_t::iterator iter;
- mParamColorList.reserve(mInfo->mColorInfoList.size());
- for (iter = mInfo->mColorInfoList.begin(); iter != mInfo->mColorInfoList.end(); iter++)
- {
- LLTexParamColor* param_color = new LLTexParamColor( this );
+ LLTexLayerParamColor* param_color = new LLTexLayerParamColor(this);
if (!param_color->setInfo(*iter))
{
mInfo = NULL;
@@ -1268,11 +1285,11 @@ BOOL LLTexLayer::setInfo(LLTexLayerInfo* info)
}
mParamColorList.push_back( param_color );
}
- }
- {
- LLTexLayerInfo::alpha_info_list_t::iterator iter;
- mParamAlphaList.reserve(mInfo->mAlphaInfoList.size());
- for (iter = mInfo->mAlphaInfoList.begin(); iter != mInfo->mAlphaInfoList.end(); iter++)
+
+ mParamAlphaList.reserve(mInfo->mParamAlphaInfoList.size());
+ for (param_alpha_info_list_t::const_iterator iter = mInfo->mParamAlphaInfoList.begin();
+ iter != mInfo->mParamAlphaInfoList.end();
+ iter++)
{
LLTexLayerParamAlpha* param_alpha = new LLTexLayerParamAlpha( this );
if (!param_alpha->setInfo(*iter))
@@ -1282,84 +1299,83 @@ BOOL LLTexLayer::setInfo(LLTexLayerInfo* info)
}
mParamAlphaList.push_back( param_alpha );
}
- }
return TRUE;
}
-#if 0 // obsolete
-//-----------------------------------------------------------------------------
-// parseData
-//-----------------------------------------------------------------------------
-BOOL LLTexLayer::parseData( LLXmlTreeNode* node )
+//static
+void LLTexLayer::calculateTexLayerColor(const param_color_list_t &param_list, LLColor4 &net_color)
{
- LLTexLayerInfo *info = new LLTexLayerInfo;
-
- if (!info->parseXml(node))
+ for (param_color_list_t::const_iterator iter = param_list.begin();
+ iter != param_list.end(); iter++)
+{
+ const LLTexLayerParamColor* param = *iter;
+ LLColor4 param_net = param->getNetColor();
+ const LLTexLayerParamColorInfo *info = (LLTexLayerParamColorInfo *)param->getInfo();
+ switch(info->getOperation())
{
- delete info;
- return FALSE;
+ case LLTexLayerParamColor::OP_ADD:
+ net_color += param_net;
+ break;
+ case LLTexLayerParamColor::OP_MULTIPLY:
+ net_color = net_color * param_net;
+ break;
+ case LLTexLayerParamColor::OP_BLEND:
+ net_color = lerp(net_color, param_net, param->getWeight());
+ break;
+ default:
+ llassert(0);
+ break;
}
- if (!setInfo(info))
- {
- delete info;
- return FALSE;
}
- return TRUE;
+ net_color.clamp();
}
-#endif
-
-//-----------------------------------------------------------------------------
-
void LLTexLayer::deleteCaches()
{
- for( alpha_list_t::iterator iter = mParamAlphaList.begin();
+ for (param_alpha_list_t::iterator iter = mParamAlphaList.begin();
iter != mParamAlphaList.end(); iter++ )
{
LLTexLayerParamAlpha* param = *iter;
param->deleteCaches();
}
- mStaticImageRaw = NULL;
}
-BOOL LLTexLayer::render( S32 x, S32 y, S32 width, S32 height )
+BOOL LLTexLayer::render(S32 x, S32 y, S32 width, S32 height, BOOL render_morph)
{
LLGLEnable color_mat(GL_COLOR_MATERIAL);
gPipeline.disableLights();
- BOOL success = TRUE;
-
- BOOL color_specified = FALSE;
- BOOL alpha_mask_specified = FALSE;
-
LLColor4 net_color;
- color_specified = findNetColor( &net_color );
-
+ BOOL color_specified = findNetColor(&net_color);
+
if (mTexLayerSet->getAvatar()->mIsDummy)
{
color_specified = true;
net_color = LLVOAvatar::getDummyColor();
}
+ BOOL success = TRUE;
+
// If you can't see the layer, don't render it.
if( is_approx_zero( net_color.mV[VW] ) )
{
return success;
}
- alpha_list_t::iterator iter = mParamAlphaList.begin();
+ BOOL alpha_mask_specified = FALSE;
+ param_alpha_list_t::const_iterator iter = mParamAlphaList.begin();
if( iter != mParamAlphaList.end() )
{
// If we have alpha masks, but we're skipping all of them, skip the whole layer.
// However, we can't do this optimization if we have morph masks that need updating.
- if( mMaskedMorphs.empty() )
+ if (!mHasMorph)
{
BOOL skip_layer = TRUE;
while( iter != mParamAlphaList.end() )
{
- LLTexLayerParamAlpha* param = *iter;
+ const LLTexLayerParamAlpha* param = *iter;
if( !param->getSkip() )
{
@@ -1376,7 +1392,7 @@ BOOL LLTexLayer::render( S32 x, S32 y, S32 width, S32 height )
}
}
- renderAlphaMasks( x, y, width, height, &net_color );
+ renderMorphMasks(x, y, width, height, net_color, render_morph);
alpha_mask_specified = TRUE;
gGL.flush();
gGL.blendFunc(LLRender::BF_DEST_ALPHA, LLRender::BF_ONE_MINUS_DEST_ALPHA);
@@ -1421,7 +1437,7 @@ BOOL LLTexLayer::render( S32 x, S32 y, S32 width, S32 height )
if( !getInfo()->mStaticImageFileName.empty() )
{
{
- LLImageGL* image_gl = gTexStaticImageList.getImageGL( getInfo()->mStaticImageFileName, getInfo()->mStaticImageIsMask );
+ LLImageGL* image_gl = LLTexLayerStaticImageList::getInstance()->getImageGL(getInfo()->mStaticImageFileName, getInfo()->mStaticImageIsMask);
if( image_gl )
{
gGL.getTexUnit(0)->bind(image_gl);
@@ -1435,14 +1451,14 @@ BOOL LLTexLayer::render( S32 x, S32 y, S32 width, S32 height )
}
}
- if( ((-1 == getInfo()->mLocalTexture) ||
+ if(((-1 == getInfo()->mLocalTexture) ||
getInfo()->mUseLocalTextureAlphaOnly) &&
getInfo()->mStaticImageFileName.empty() &&
color_specified )
{
LLGLDisable no_alpha(GL_ALPHA_TEST);
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
- gGL.color4fv( net_color.mV);
+ gGL.color4fv( net_color.mV );
gl_rect_2d_simple( width, height );
}
@@ -1467,9 +1483,9 @@ U8* LLTexLayer::getAlphaData()
const LLUUID& uuid = mTexLayerSet->getAvatar()->getLocalTextureID((ETextureIndex)getInfo()->mLocalTexture);
alpha_mask_crc.update((U8*)(&uuid.mData), UUID_BYTES);
- for( alpha_list_t::iterator iter = mParamAlphaList.begin(); iter != mParamAlphaList.end(); iter++ )
+ for (param_alpha_list_t::const_iterator iter = mParamAlphaList.begin(); iter != mParamAlphaList.end(); iter++)
{
- LLTexLayerParamAlpha* param = *iter;
+ const LLTexLayerParamAlpha* param = *iter;
F32 param_weight = param->getWeight();
alpha_mask_crc.update((U8*)&param_weight, sizeof(F32));
}
@@ -1480,7 +1496,7 @@ U8* LLTexLayer::getAlphaData()
return (iter2 == mAlphaCache.end()) ? 0 : iter2->second;
}
-BOOL LLTexLayer::findNetColor( LLColor4* net_color )
+BOOL LLTexLayer::findNetColor(LLColor4* net_color) const
{
// Color is either:
// * one or more color parameters (weighted colors) (which may make use of a global color or fixed color)
@@ -1494,8 +1510,7 @@ BOOL LLTexLayer::findNetColor( LLColor4* net_color )
{
net_color->setVec( mTexLayerSet->getAvatar()->getGlobalColor( getInfo()->mGlobalColor ) );
}
- else
- if( getInfo()->mFixedColor.mV[VW] )
+ else if (getInfo()->mFixedColor.mV[VW])
{
net_color->setVec( getInfo()->mFixedColor );
}
@@ -1504,30 +1519,7 @@ BOOL LLTexLayer::findNetColor( LLColor4* net_color )
net_color->setVec( 0.f, 0.f, 0.f, 0.f );
}
- for( color_list_t::iterator iter = mParamColorList.begin();
- iter != mParamColorList.end(); iter++ )
- {
- LLTexParamColor* param = *iter;
- LLColor4 param_net = param->getNetColor();
- switch( param->getOperation() )
- {
- case OP_ADD:
- *net_color += param_net;
- break;
- case OP_MULTIPLY:
- net_color->mV[VX] *= param_net.mV[VX];
- net_color->mV[VY] *= param_net.mV[VY];
- net_color->mV[VZ] *= param_net.mV[VZ];
- net_color->mV[VW] *= param_net.mV[VW];
- break;
- case OP_BLEND:
- net_color->setVec( lerp(*net_color, param_net, param->getWeight()) );
- break;
- default:
- llassert(0);
- break;
- }
- }
+ calculateTexLayerColor(mParamColorList, *net_color);
return TRUE;
}
@@ -1548,8 +1540,51 @@ BOOL LLTexLayer::findNetColor( LLColor4* net_color )
return FALSE; // No need to draw a separate colored polygon
}
+BOOL LLTexLayer::blendAlphaTexture(S32 width, S32 height)
+{
+ BOOL success = TRUE;
+
+ gGL.flush();
+
+ if( !getInfo()->mStaticImageFileName.empty() )
+ {
+ LLImageGL* image_gl = LLTexLayerStaticImageList::getInstance()->getImageGL( getInfo()->mStaticImageFileName, getInfo()->mStaticImageIsMask );
+ if( image_gl )
+ {
+ LLGLSNoAlphaTest gls_no_alpha_test;
+ gGL.getTexUnit(0)->bind(image_gl);
+ gl_rect_2d_simple_tex( width, height );
+ gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
+ }
+ else
+ {
+ success = FALSE;
+ }
+ }
+ else
+ {
+ if (getInfo()->mLocalTexture >=0 && getInfo()->mLocalTexture < TEX_NUM_INDICES)
+ {
+ LLImageGL* image_gl = NULL;
+ if (mTexLayerSet->getAvatar()->getLocalTextureGL((ETextureIndex)getInfo()->mLocalTexture, &image_gl))
+ {
+ if (image_gl)
+ {
+ LLGLSNoAlphaTest gls_no_alpha_test;
+ gGL.getTexUnit(0)->bind(image_gl);
+ gl_rect_2d_simple_tex( width, height );
+ gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
+ success = TRUE;
+ }
+ }
+ }
+ }
+
+ return success;
+}
+
-BOOL LLTexLayer::renderAlphaMasks( S32 x, S32 y, S32 width, S32 height, LLColor4* colorp )
+BOOL LLTexLayer::renderMorphMasks(S32 x, S32 y, S32 width, S32 height, const LLColor4 &layer_color, BOOL render_morph)
{
BOOL success = TRUE;
@@ -1557,9 +1592,7 @@ BOOL LLTexLayer::renderAlphaMasks( S32 x, S32 y, S32 width, S32 height, LLColor4
gGL.setColorMask(false, true);
- alpha_list_t::iterator iter = mParamAlphaList.begin();
- LLTexLayerParamAlpha* first_param = *iter;
-
+ LLTexLayerParamAlpha* first_param = *mParamAlphaList.begin();
// Note: if the first param is a mulitply, multiply against the current buffer's alpha
if( !first_param || !first_param->getMultiplyBlend() )
{
@@ -1577,8 +1610,7 @@ BOOL LLTexLayer::renderAlphaMasks( S32 x, S32 y, S32 width, S32 height, LLColor4
// Accumulate alphas
LLGLSNoAlphaTest gls_no_alpha_test;
gGL.color4f( 1.f, 1.f, 1.f, 1.f );
-
- for( iter = mParamAlphaList.begin(); iter != mParamAlphaList.end(); iter++ )
+ for (param_alpha_list_t::iterator iter = mParamAlphaList.begin(); iter != mParamAlphaList.end(); iter++)
{
LLTexLayerParamAlpha* param = *iter;
success &= param->render( x, y, width, height );
@@ -1586,12 +1618,11 @@ BOOL LLTexLayer::renderAlphaMasks( S32 x, S32 y, S32 width, S32 height, LLColor4
// Approximates a min() function
gGL.flush();
- gGL.blendFunc(LLRender::BF_DEST_ALPHA, LLRender::BF_ZERO);
+ gGL.setSceneBlendType(LLRender::BT_MULT_ALPHA);
// Accumulate the alpha component of the texture
if( getInfo()->mLocalTexture != -1 )
{
- {
LLImageGL* image_gl = NULL;
if( mTexLayerSet->getAvatar()->getLocalTextureGL((ETextureIndex)getInfo()->mLocalTexture, &image_gl ) )
{
@@ -1615,12 +1646,10 @@ BOOL LLTexLayer::renderAlphaMasks( S32 x, S32 y, S32 width, S32 height, LLColor4
success = FALSE;
}
}
- }
if( !getInfo()->mStaticImageFileName.empty() )
{
- {
- LLImageGL* image_gl = gTexStaticImageList.getImageGL( getInfo()->mStaticImageFileName, getInfo()->mStaticImageIsMask );
+ LLImageGL* image_gl = LLTexLayerStaticImageList::getInstance()->getImageGL(getInfo()->mStaticImageFileName, getInfo()->mStaticImageIsMask);
if( image_gl )
{
if( (image_gl->getComponents() == 4) ||
@@ -1637,15 +1666,14 @@ BOOL LLTexLayer::renderAlphaMasks( S32 x, S32 y, S32 width, S32 height, LLColor4
success = FALSE;
}
}
- }
// Draw a rectangle with the layer color to multiply the alpha by that color's alpha.
// Note: we're still using gGL.blendFunc( GL_DST_ALPHA, GL_ZERO );
- if( colorp->mV[VW] != 1.f )
+ if (layer_color.mV[VW] != 1.f)
{
LLGLDisable no_alpha(GL_ALPHA_TEST);
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
- gGL.color4fv( colorp->mV );
+ gGL.color4fv(layer_color.mV);
gl_rect_2d_simple( width, height );
}
@@ -1654,34 +1682,28 @@ BOOL LLTexLayer::renderAlphaMasks( S32 x, S32 y, S32 width, S32 height, LLColor4
gGL.setColorMask(true, true);
- if (!mMorphMasksValid && !mMaskedMorphs.empty())
+ if (render_morph && mHasMorph)
{
LLCRC alpha_mask_crc;
const LLUUID& uuid = mTexLayerSet->getAvatar()->getLocalTextureID((ETextureIndex)getInfo()->mLocalTexture);
alpha_mask_crc.update((U8*)(&uuid.mData), UUID_BYTES);
- for( alpha_list_t::iterator iter = mParamAlphaList.begin(); iter != mParamAlphaList.end(); iter++ )
+ for (param_alpha_list_t::const_iterator iter = mParamAlphaList.begin(); iter != mParamAlphaList.end(); iter++)
{
- LLTexLayerParamAlpha* param = *iter;
+ const LLTexLayerParamAlpha* param = *iter;
F32 param_weight = param->getWeight();
alpha_mask_crc.update((U8*)&param_weight, sizeof(F32));
}
U32 cache_index = alpha_mask_crc.getCRC();
-
- alpha_cache_t::iterator iter2 = mAlphaCache.find(cache_index);
- U8* alpha_data;
- if (iter2 != mAlphaCache.end())
- {
- alpha_data = iter2->second;
- }
- else
+ U8* alpha_data = get_if_there(mAlphaCache,cache_index,(U8*)NULL);
+ if (!alpha_data)
{
// clear out a slot if we have filled our cache
S32 max_cache_entries = getTexLayerSet()->getAvatar()->isSelf() ? 4 : 1;
while ((S32)mAlphaCache.size() >= max_cache_entries)
{
- iter2 = mAlphaCache.begin(); // arbitrarily grab the first entry
+ alpha_cache_t::iterator iter2 = mAlphaCache.begin(); // arbitrarily grab the first entry
alpha_data = iter2->second;
delete [] alpha_data;
mAlphaCache.erase(iter2);
@@ -1694,28 +1716,12 @@ BOOL LLTexLayer::renderAlphaMasks( S32 x, S32 y, S32 width, S32 height, LLColor4
getTexLayerSet()->getAvatar()->dirtyMesh();
mMorphMasksValid = TRUE;
-
- for( morph_list_t::iterator iter3 = mMaskedMorphs.begin();
- iter3 != mMaskedMorphs.end(); iter3++ )
- {
- LLMaskedMorph* maskedMorph = &(*iter3);
- maskedMorph->mMorphTarget->applyMask(alpha_data, width, height, 1, maskedMorph->mInvert);
- }
+ getTexLayerSet()->applyMorphMask(alpha_data, width, height, 1);
}
return success;
}
-void LLTexLayer::applyMorphMask(U8* tex_data, S32 width, S32 height, S32 num_components)
-{
- for( morph_list_t::iterator iter = mMaskedMorphs.begin();
- iter != mMaskedMorphs.end(); iter++ )
- {
- LLMaskedMorph* maskedMorph = &(*iter);
- maskedMorph->mMorphTarget->applyMask(tex_data, width, height, num_components, maskedMorph->mInvert);
- }
-}
-
// Returns TRUE on success.
BOOL LLTexLayer::renderImageRaw( U8* in_data, S32 in_width, S32 in_height, S32 in_components, S32 width, S32 height, BOOL is_mask )
{
@@ -1792,666 +1798,54 @@ void LLTexLayer::requestUpdate()
mTexLayerSet->requestUpdate();
}
-void LLTexLayer::addMaskedMorph(LLPolyMorphTarget* morph_target, BOOL invert)
-{
- mMaskedMorphs.push_front(LLMaskedMorph(morph_target, invert));
-}
-
-void LLTexLayer::invalidateMorphMasks()
-{
- mMorphMasksValid = FALSE;
-}
-
-//-----------------------------------------------------------------------------
-// LLTexLayerParamAlphaInfo
-//-----------------------------------------------------------------------------
-LLTexLayerParamAlphaInfo::LLTexLayerParamAlphaInfo( )
- :
- mMultiplyBlend( FALSE ),
- mSkipIfZeroWeight( FALSE ),
- mDomain( 0.f )
-{
-}
-
-BOOL LLTexLayerParamAlphaInfo::parseXml(LLXmlTreeNode* node)
-{
- llassert( node->hasName( "param" ) && node->getChildByName( "param_alpha" ) );
-
- if( !LLViewerVisualParamInfo::parseXml(node) )
- return FALSE;
-
- LLXmlTreeNode* param_alpha_node = node->getChildByName( "param_alpha" );
- if( !param_alpha_node )
- {
- return FALSE;
- }
-
- static LLStdStringHandle tga_file_string = LLXmlTree::addAttributeString("tga_file");
- if( param_alpha_node->getFastAttributeString( tga_file_string, mStaticImageFileName ) )
- {
- // Don't load the image file until it's actually needed.
- }
-// else
-// {
-// llwarns << "<param_alpha> element is missing tga_file attribute." << llendl;
-// }
-
- static LLStdStringHandle multiply_blend_string = LLXmlTree::addAttributeString("multiply_blend");
- param_alpha_node->getFastAttributeBOOL( multiply_blend_string, mMultiplyBlend );
-
- static LLStdStringHandle skip_if_zero_string = LLXmlTree::addAttributeString("skip_if_zero");
- param_alpha_node->getFastAttributeBOOL( skip_if_zero_string, mSkipIfZeroWeight );
-
- static LLStdStringHandle domain_string = LLXmlTree::addAttributeString("domain");
- param_alpha_node->getFastAttributeF32( domain_string, mDomain );
-
- return TRUE;
-}
-
-//-----------------------------------------------------------------------------
-// LLTexLayerParamAlpha
-//-----------------------------------------------------------------------------
-
-// static
-LLTexLayerParamAlpha::param_alpha_ptr_list_t LLTexLayerParamAlpha::sInstances;
-
-// static
-void LLTexLayerParamAlpha::dumpCacheByteCount()
-{
- S32 gl_bytes = 0;
- getCacheByteCount( &gl_bytes );
- llinfos << "Processed Alpha Texture Cache GL:" << (gl_bytes/1024) << "KB" << llendl;
-}
-
-// static
-void LLTexLayerParamAlpha::getCacheByteCount( S32* gl_bytes )
-{
- *gl_bytes = 0;
-
- for( param_alpha_ptr_list_t::iterator iter = sInstances.begin();
- iter != sInstances.end(); iter++ )
- {
- LLTexLayerParamAlpha* instance = *iter;
- LLImageGL* image_gl = instance->mCachedProcessedImageGL;
- if( image_gl )
- {
- S32 bytes = (S32)image_gl->getWidth() * image_gl->getHeight() * image_gl->getComponents();
-
- if( image_gl->getHasGLTexture() )
- {
- *gl_bytes += bytes;
- }
- }
- }
-}
-
-LLTexLayerParamAlpha::LLTexLayerParamAlpha( LLTexLayer* layer )
- :
- mCachedProcessedImageGL( NULL ),
- mTexLayer( layer ),
- mNeedsCreateTexture( FALSE ),
- mStaticImageInvalid( FALSE ),
- mAvgDistortionVec(1.f, 1.f, 1.f),
- mCachedEffectiveWeight(0.f)
-{
- sInstances.push_front( this );
-}
-
-LLTexLayerParamAlpha::~LLTexLayerParamAlpha()
-{
- deleteCaches();
- sInstances.remove( this );
-}
-
-//-----------------------------------------------------------------------------
-// setInfo()
-//-----------------------------------------------------------------------------
-BOOL LLTexLayerParamAlpha::setInfo(LLTexLayerParamAlphaInfo *info)
-{
- llassert(mInfo == NULL);
- if (info->mID < 0)
- return FALSE;
- mInfo = info;
- mID = info->mID;
-
- mTexLayer->getTexLayerSet()->getAvatar()->addVisualParam( this );
- setWeight(getDefaultWeight(), FALSE );
-
- return TRUE;
-}
-
-//-----------------------------------------------------------------------------
-
-void LLTexLayerParamAlpha::deleteCaches()
-{
- mStaticImageTGA = NULL; // deletes image
- mCachedProcessedImageGL = NULL;
- mStaticImageRaw = NULL;
- mNeedsCreateTexture = FALSE;
-}
-
-void LLTexLayerParamAlpha::setWeight(F32 weight, BOOL set_by_user)
-{
- if (mIsAnimating)
- {
- return;
- }
- F32 min_weight = getMinWeight();
- F32 max_weight = getMaxWeight();
- F32 new_weight = llclamp(weight, min_weight, max_weight);
- U8 cur_u8 = F32_to_U8( mCurWeight, min_weight, max_weight );
- U8 new_u8 = F32_to_U8( new_weight, min_weight, max_weight );
- if( cur_u8 != new_u8)
- {
- mCurWeight = new_weight;
-
- LLVOAvatar* avatar = mTexLayer->getTexLayerSet()->getAvatar();
- if( avatar->getSex() & getSex() )
- {
- if ( gAgent.cameraCustomizeAvatar() )
- {
- set_by_user = FALSE;
- }
- avatar->invalidateComposite( mTexLayer->getTexLayerSet(), set_by_user );
- mTexLayer->invalidateMorphMasks();
- avatar->updateMeshTextures();
- }
- }
-}
-
-void LLTexLayerParamAlpha::setAnimationTarget(F32 target_value, BOOL set_by_user)
+const std::string& LLTexLayer::getName() const
{
- mTargetWeight = target_value;
- setWeight(target_value, set_by_user);
- mIsAnimating = TRUE;
- if (mNext)
- {
- mNext->setAnimationTarget(target_value, set_by_user);
- }
-}
-
-void LLTexLayerParamAlpha::animate(F32 delta, BOOL set_by_user)
-{
- if (mNext)
- {
- mNext->animate(delta, set_by_user);
- }
-}
-
-BOOL LLTexLayerParamAlpha::getSkip()
-{
- LLVOAvatar *avatar = mTexLayer->getTexLayerSet()->getAvatar();
-
- if( getInfo()->mSkipIfZeroWeight )
- {
- F32 effective_weight = ( avatar->getSex() & getSex() ) ? mCurWeight : getDefaultWeight();
- if (is_approx_zero( effective_weight ))
- {
- return TRUE;
- }
- }
-
- EWearableType type = (EWearableType)getWearableType();
- if( (type != WT_INVALID) && !avatar->isWearingWearableType( type ) )
- {
- return TRUE;
- }
-
- return FALSE;
-}
-
-
-BOOL LLTexLayerParamAlpha::render( S32 x, S32 y, S32 width, S32 height )
-{
- BOOL success = TRUE;
-
- F32 effective_weight = ( mTexLayer->getTexLayerSet()->getAvatar()->getSex() & getSex() ) ? mCurWeight : getDefaultWeight();
- BOOL weight_changed = effective_weight != mCachedEffectiveWeight;
- if( getSkip() )
- {
- return success;
- }
-
- gGL.flush();
- if( getInfo()->mMultiplyBlend )
- {
- gGL.blendFunc(LLRender::BF_DEST_ALPHA, LLRender::BF_ZERO); // Multiplication: approximates a min() function
- }
- else
- {
- gGL.setSceneBlendType(LLRender::BT_ADD); // Addition: approximates a max() function
- }
-
- if( !getInfo()->mStaticImageFileName.empty() && !mStaticImageInvalid)
- {
- if( mStaticImageTGA.isNull() )
- {
- // Don't load the image file until we actually need it the first time. Like now.
- mStaticImageTGA = gTexStaticImageList.getImageTGA( getInfo()->mStaticImageFileName );
- // We now have something in one of our caches
- LLTexLayerSet::sHasCaches |= mStaticImageTGA.notNull() ? TRUE : FALSE;
-
- if( mStaticImageTGA.isNull() )
- {
- llwarns << "Unable to load static file: " << getInfo()->mStaticImageFileName << llendl;
- mStaticImageInvalid = TRUE; // don't try again.
- return FALSE;
- }
- }
-
- const S32 image_tga_width = mStaticImageTGA->getWidth();
- const S32 image_tga_height = mStaticImageTGA->getHeight();
- if( !mCachedProcessedImageGL ||
- (mCachedProcessedImageGL->getWidth() != image_tga_width) ||
- (mCachedProcessedImageGL->getHeight() != image_tga_height) ||
- (weight_changed) )
- {
-// llinfos << "Building Cached Alpha: " << mName << ": (" << mStaticImageRaw->getWidth() << ", " << mStaticImageRaw->getHeight() << ") " << effective_weight << llendl;
- mCachedEffectiveWeight = effective_weight;
-
- if( !mCachedProcessedImageGL )
- {
- mCachedProcessedImageGL = new LLImageGL( image_tga_width, image_tga_height, 1, FALSE);
-
- // We now have something in one of our caches
- LLTexLayerSet::sHasCaches |= mCachedProcessedImageGL ? TRUE : FALSE;
-
- mCachedProcessedImageGL->setExplicitFormat( GL_ALPHA8, GL_ALPHA );
- }
-
- // Applies domain and effective weight to data as it is decoded. Also resizes the raw image if needed.
- mStaticImageRaw = NULL;
- mStaticImageRaw = new LLImageRaw;
- mStaticImageTGA->decodeAndProcess( mStaticImageRaw, getInfo()->mDomain, effective_weight );
- mNeedsCreateTexture = TRUE;
- }
-
- if( mCachedProcessedImageGL )
- {
- {
- // Create the GL texture, and then hang onto it for future use.
- if( mNeedsCreateTexture )
- {
- mCachedProcessedImageGL->createGLTexture(0, mStaticImageRaw);
- mNeedsCreateTexture = FALSE;
- gGL.getTexUnit(0)->bind(mCachedProcessedImageGL);
- mCachedProcessedImageGL->setAddressMode(LLTexUnit::TAM_CLAMP);
- }
-
- LLGLSNoAlphaTest gls_no_alpha_test;
- gGL.getTexUnit(0)->bind(mCachedProcessedImageGL);
- gl_rect_2d_simple_tex( width, height );
- gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
- stop_glerror();
- }
- }
-
- // Don't keep the cache for other people's avatars
- // (It's not really a "cache" in that case, but the logic is the same)
- if( !mTexLayer->getTexLayerSet()->getAvatar()->isSelf() )
- {
- mCachedProcessedImageGL = NULL;
- }
- }
- else
- {
- LLGLDisable no_alpha(GL_ALPHA_TEST);
- gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
- gGL.color4f( 0.f, 0.f, 0.f, effective_weight );
- gl_rect_2d_simple( width, height );
- }
-
- return success;
+ return mInfo->mName;
}
-//-----------------------------------------------------------------------------
-// LLTexGlobalColorInfo
-//-----------------------------------------------------------------------------
-
-LLTexGlobalColorInfo::LLTexGlobalColorInfo()
+LLTexLayer::ERenderPass LLTexLayer::getRenderPass() const
{
+ return mInfo->mRenderPass;
}
-
-
-LLTexGlobalColorInfo::~LLTexGlobalColorInfo()
+const std::string& LLTexLayer::getGlobalColor() const
{
- for_each(mColorInfoList.begin(), mColorInfoList.end(), DeletePointer());
+ return mInfo->mGlobalColor;
}
-BOOL LLTexGlobalColorInfo::parseXml(LLXmlTreeNode* node)
-{
- // name attribute
- static LLStdStringHandle name_string = LLXmlTree::addAttributeString("name");
- if( !node->getFastAttributeString( name_string, mName ) )
- {
- llwarns << "<global_color> element is missing name attribute." << llendl;
- return FALSE;
- }
- // <param> sub-element
- for (LLXmlTreeNode* child = node->getChildByName( "param" );
- child;
- child = node->getNextNamedChild())
- {
- if( child->getChildByName( "param_color" ) )
- {
- // <param><param_color/></param>
- LLTexParamColorInfo* info = new LLTexParamColorInfo();
- if (!info->parseXml(child))
- {
- delete info;
- return FALSE;
- }
- mColorInfoList.push_back( info );
- }
- }
- return TRUE;
-}
-
-//-----------------------------------------------------------------------------
-// LLTexGlobalColor
-//-----------------------------------------------------------------------------
-
-LLTexGlobalColor::LLTexGlobalColor( LLVOAvatar* avatar )
- :
- mAvatar( avatar ),
- mInfo( NULL )
-{
-}
-
-
-LLTexGlobalColor::~LLTexGlobalColor()
-{
- // mParamList are LLViewerVisualParam's and get deleted with ~LLCharacter()
- //std::for_each(mParamList.begin(), mParamList.end(), DeletePointer());
-}
-
-BOOL LLTexGlobalColor::setInfo(LLTexGlobalColorInfo *info)
-{
- llassert(mInfo == NULL);
- mInfo = info;
- //mID = info->mID; // No ID
-
- LLTexGlobalColorInfo::color_info_list_t::iterator iter;
- mParamList.reserve(mInfo->mColorInfoList.size());
- for (iter = mInfo->mColorInfoList.begin(); iter != mInfo->mColorInfoList.end(); iter++)
- {
- LLTexParamColor* param_color = new LLTexParamColor( this );
- if (!param_color->setInfo(*iter))
- {
- mInfo = NULL;
- return FALSE;
- }
- mParamList.push_back( param_color );
- }
-
- return TRUE;
-}
-
-//-----------------------------------------------------------------------------
-
-LLColor4 LLTexGlobalColor::getColor()
-{
- // Sum of color params
- if( !mParamList.empty() )
- {
- LLColor4 net_color( 0.f, 0.f, 0.f, 0.f );
-
- for( param_list_t::iterator iter = mParamList.begin();
- iter != mParamList.end(); iter++ )
- {
- LLTexParamColor* param = *iter;
- LLColor4 param_net = param->getNetColor();
- switch( param->getOperation() )
- {
- case OP_ADD:
- net_color += param_net;
- break;
- case OP_MULTIPLY:
- net_color.mV[VX] *= param_net.mV[VX];
- net_color.mV[VY] *= param_net.mV[VY];
- net_color.mV[VZ] *= param_net.mV[VZ];
- net_color.mV[VW] *= param_net.mV[VW];
- break;
- case OP_BLEND:
- net_color = lerp(net_color, param_net, param->getWeight());
- break;
- default:
- llassert(0);
- break;
- }
- }
-
- net_color.mV[VX] = llclampf( net_color.mV[VX] );
- net_color.mV[VY] = llclampf( net_color.mV[VY] );
- net_color.mV[VZ] = llclampf( net_color.mV[VZ] );
- net_color.mV[VW] = llclampf( net_color.mV[VW] );
-
- return net_color;
- }
- return LLColor4( 1.f, 1.f, 1.f, 1.f );
-}
-
-//-----------------------------------------------------------------------------
-// LLTexParamColorInfo
-//-----------------------------------------------------------------------------
-LLTexParamColorInfo::LLTexParamColorInfo()
- :
- mOperation( OP_ADD ),
- mNumColors( 0 )
-{
-}
-
-BOOL LLTexParamColorInfo::parseXml(LLXmlTreeNode *node)
+void LLTexLayer::invalidateMorphMasks()
{
- llassert( node->hasName( "param" ) && node->getChildByName( "param_color" ) );
-
- if (!LLViewerVisualParamInfo::parseXml(node))
- return FALSE;
-
- LLXmlTreeNode* param_color_node = node->getChildByName( "param_color" );
- if( !param_color_node )
- {
- return FALSE;
- }
-
- std::string op_string;
- static LLStdStringHandle operation_string = LLXmlTree::addAttributeString("operation");
- if( param_color_node->getFastAttributeString( operation_string, op_string ) )
- {
- LLStringUtil::toLower(op_string);
- if ( op_string == "add" ) mOperation = OP_ADD;
- else if ( op_string == "multiply" ) mOperation = OP_MULTIPLY;
- else if ( op_string == "blend" ) mOperation = OP_BLEND;
- }
-
- mNumColors = 0;
-
- LLColor4U color4u;
- for (LLXmlTreeNode* child = param_color_node->getChildByName( "value" );
- child;
- child = param_color_node->getNextNamedChild())
- {
- if( (mNumColors < MAX_COLOR_VALUES) )
- {
- static LLStdStringHandle color_string = LLXmlTree::addAttributeString("color");
- if( child->getFastAttributeColor4U( color_string, color4u ) )
- {
- mColors[ mNumColors ].setVec(color4u);
- mNumColors++;
- }
- }
- }
- if( !mNumColors )
- {
- llwarns << "<param_color> is missing <value> sub-elements" << llendl;
- return FALSE;
+ mMorphMasksValid = FALSE;
}
- if( (mOperation == OP_BLEND) && (mNumColors != 1) )
+BOOL LLTexLayer::isVisibilityMask() const
{
- llwarns << "<param_color> with operation\"blend\" must have exactly one <value>" << llendl;
- return FALSE;
- }
-
- return TRUE;
+ return mInfo->mIsVisibilityMask;
}
//-----------------------------------------------------------------------------
-// LLTexParamColor
+// LLTexLayerStaticImageList
//-----------------------------------------------------------------------------
-LLTexParamColor::LLTexParamColor( LLTexGlobalColor* tex_global_color )
- :
- mAvgDistortionVec(1.f, 1.f, 1.f),
- mTexGlobalColor( tex_global_color ),
- mTexLayer( NULL ),
- mAvatar( tex_global_color->getAvatar() )
-{
-}
-LLTexParamColor::LLTexParamColor( LLTexLayer* layer )
- :
- mAvgDistortionVec(1.f, 1.f, 1.f),
- mTexGlobalColor( NULL ),
- mTexLayer( layer ),
- mAvatar( layer->getTexLayerSet()->getAvatar() )
+LLTexLayerStaticImageList::LLTexLayerStaticImageList() :
+ mGLBytes(0),
+ mTGABytes(0),
+ mImageNames(16384)
{
}
-
-LLTexParamColor::~LLTexParamColor()
-{
-}
-
-//-----------------------------------------------------------------------------
-// setInfo()
-//-----------------------------------------------------------------------------
-
-BOOL LLTexParamColor::setInfo(LLTexParamColorInfo *info)
-{
- llassert(mInfo == NULL);
- if (info->mID < 0)
- return FALSE;
- mID = info->mID;
- mInfo = info;
-
- mAvatar->addVisualParam( this );
- setWeight( getDefaultWeight(), FALSE );
-
- return TRUE;
-}
-
-LLColor4 LLTexParamColor::getNetColor()
-{
- llassert( getInfo()->mNumColors >= 1 );
-
- F32 effective_weight = ( mAvatar && (mAvatar->getSex() & getSex()) ) ? mCurWeight : getDefaultWeight();
-
- S32 index_last = getInfo()->mNumColors - 1;
- F32 scaled_weight = effective_weight * index_last;
- S32 index_start = (S32) scaled_weight;
- S32 index_end = index_start + 1;
- if( index_start == index_last )
- {
- return getInfo()->mColors[index_last];
- }
- else
- {
- F32 weight = scaled_weight - index_start;
- const LLColor4 *start = &getInfo()->mColors[ index_start ];
- const LLColor4 *end = &getInfo()->mColors[ index_end ];
- return LLColor4(
- (1.f - weight) * start->mV[VX] + weight * end->mV[VX],
- (1.f - weight) * start->mV[VY] + weight * end->mV[VY],
- (1.f - weight) * start->mV[VZ] + weight * end->mV[VZ],
- (1.f - weight) * start->mV[VW] + weight * end->mV[VW] );
- }
-}
-
-void LLTexParamColor::setWeight(F32 weight, BOOL set_by_user)
-{
- if (mIsAnimating)
- {
- return;
- }
- F32 min_weight = getMinWeight();
- F32 max_weight = getMaxWeight();
- F32 new_weight = llclamp(weight, min_weight, max_weight);
- U8 cur_u8 = F32_to_U8( mCurWeight, min_weight, max_weight );
- U8 new_u8 = F32_to_U8( new_weight, min_weight, max_weight );
- if( cur_u8 != new_u8)
- {
- mCurWeight = new_weight;
-
- if( getInfo()->mNumColors <= 0 )
- {
- // This will happen when we set the default weight the first time.
- return;
- }
-
- if( mAvatar->getSex() & getSex() )
- {
- if( mTexGlobalColor )
- {
- mAvatar->onGlobalColorChanged( mTexGlobalColor, set_by_user );
- }
- else
- if( mTexLayer )
- {
- mAvatar->invalidateComposite( mTexLayer->getTexLayerSet(), set_by_user );
- }
- }
-// llinfos << "param " << mName << " = " << new_weight << llendl;
- }
-}
-
-void LLTexParamColor::setAnimationTarget(F32 target_value, BOOL set_by_user)
-{
- // set value first then set interpolating flag to ignore further updates
- mTargetWeight = target_value;
- setWeight(target_value, set_by_user);
- mIsAnimating = TRUE;
- if (mNext)
- {
- mNext->setAnimationTarget(target_value, set_by_user);
- }
-}
-
-void LLTexParamColor::animate(F32 delta, BOOL set_by_user)
-{
- if (mNext)
- {
- mNext->animate(delta, set_by_user);
- }
-}
-
-
-//-----------------------------------------------------------------------------
-// LLTexStaticImageList
-//-----------------------------------------------------------------------------
-
-// static
-LLTexStaticImageList gTexStaticImageList;
-LLStringTable LLTexStaticImageList::sImageNames(16384);
-
-LLTexStaticImageList::LLTexStaticImageList()
- :
- mGLBytes( 0 ),
- mTGABytes( 0 )
-{}
-
-LLTexStaticImageList::~LLTexStaticImageList()
+LLTexLayerStaticImageList::~LLTexLayerStaticImageList()
{
deleteCachedImages();
}
-void LLTexStaticImageList::dumpByteCount()
+void LLTexLayerStaticImageList::dumpByteCount()
{
llinfos << "Avatar Static Textures " <<
"KB GL:" << (mGLBytes / 1024) <<
"KB TGA:" << (mTGABytes / 1024) << "KB" << llendl;
}
-void LLTexStaticImageList::deleteCachedImages()
+void LLTexLayerStaticImageList::deleteCachedImages()
{
if( mGLBytes || mTGABytes )
{
@@ -2475,10 +1869,10 @@ void LLTexStaticImageList::deleteCachedImages()
// Returns an LLImageTGA that contains the encoded data from a tga file named file_name.
// Caches the result to speed identical subsequent requests.
-LLImageTGA* LLTexStaticImageList::getImageTGA(const std::string& file_name)
+LLImageTGA* LLTexLayerStaticImageList::getImageTGA(const std::string& file_name)
{
- const char *namekey = sImageNames.addString(file_name);
- image_tga_map_t::iterator iter = mStaticImageListTGA.find(namekey);
+ const char *namekey = mImageNames.addString(file_name);
+ image_tga_map_t::const_iterator iter = mStaticImageListTGA.find(namekey);
if( iter != mStaticImageListTGA.end() )
{
return iter->second;
@@ -2501,16 +1895,14 @@ LLImageTGA* LLTexStaticImageList::getImageTGA(const std::string& file_name)
}
}
-
-
// Returns a GL Image (without a backing ImageRaw) that contains the decoded data from a tga file named file_name.
// Caches the result to speed identical subsequent requests.
-LLImageGL* LLTexStaticImageList::getImageGL(const std::string& file_name, BOOL is_mask )
+LLImageGL* LLTexLayerStaticImageList::getImageGL(const std::string& file_name, BOOL is_mask)
{
LLPointer<LLImageGL> image_gl;
- const char *namekey = sImageNames.addString(file_name);
+ const char *namekey = mImageNames.addString(file_name);
- image_gl_map_t::iterator iter = mStaticImageListGL.find(namekey);
+ image_gl_map_t::const_iterator iter = mStaticImageListGL.find(namekey);
if( iter != mStaticImageListGL.end() )
{
image_gl = iter->second;
@@ -2546,7 +1938,7 @@ LLImageGL* LLTexStaticImageList::getImageGL(const std::string& file_name, BOOL i
// Reads a .tga file, decodes it, and puts the decoded data in image_raw.
// Returns TRUE if successful.
-BOOL LLTexStaticImageList::loadImageRaw( const std::string& file_name, LLImageRaw* image_raw )
+BOOL LLTexLayerStaticImageList::loadImageRaw(const std::string& file_name, LLImageRaw* image_raw)
{
BOOL success = FALSE;
std::string path;
@@ -2561,11 +1953,4 @@ BOOL LLTexStaticImageList::loadImageRaw( const std::string& file_name, LLImageRa
return success;
}
-//-----------------------------------------------------------------------------
-// LLMaskedMorph()
-//-----------------------------------------------------------------------------
-LLMaskedMorph::LLMaskedMorph( LLPolyMorphTarget *morph_target, BOOL invert ) : mMorphTarget(morph_target), mInvert(invert)
-{
- morph_target->addPendingMorphMask();
-}
diff --git a/indra/newview/lltexlayer.h b/indra/newview/lltexlayer.h
index 18e6d6b24f..5890440108 100644
--- a/indra/newview/lltexlayer.h
+++ b/indra/newview/lltexlayer.h
@@ -34,136 +34,94 @@
#define LL_LLTEXLAYER_H
#include <deque>
-#include "llassetstorage.h"
#include "lldynamictexture.h"
-#include "llrect.h"
-#include "llstring.h"
-#include "lluuid.h"
-#include "llviewerimage.h"
-#include "llviewervisualparam.h"
#include "llwearable.h"
-#include "v4color.h"
-#include "llfloater.h"
+#include "llvoavatardefines.h"
-class LLTexLayerSetInfo;
-class LLTexLayerSet;
-class LLTexLayerInfo;
-class LLTexLayer;
+class LLVOAvatar;
+class LLVOAvatarSelf;
class LLImageGL;
class LLImageTGA;
-class LLTexGlobalColorInfo;
-class LLTexLayerParamAlphaInfo;
-class LLTexLayerParamAlpha;
-class LLTexParamColorInfo;
-class LLTexParamColor;
-class LLPolyMesh;
-class LLXmlTreeNode;
class LLImageRaw;
+class LLXmlTreeNode;
class LLPolyMorphTarget;
+class LLTexLayerSet;
+class LLTexLayerSetInfo;
+class LLTexLayerInfo;
+class LLTexLayerSetBuffer;
+class LLTexLayerParamColor;
+class LLTexLayerParamColorInfo;
+class LLTexLayerParamAlpha;
+class LLTexLayerParamAlphaInfo;
-class LLTextureCtrl;
-class LLVOAvatar;
-
-
-enum EColorOperation
-{
- OP_ADD = 0,
- OP_MULTIPLY = 1,
- OP_BLEND = 2,
- OP_COUNT = 3 // Number of operations
-};
-
+typedef std::vector<LLTexLayerParamColor *> param_color_list_t;
+typedef std::vector<LLTexLayerParamAlpha *> param_alpha_list_t;
+typedef std::vector<LLTexLayerParamColorInfo *> param_color_info_list_t;
+typedef std::vector<LLTexLayerParamAlphaInfo *> param_alpha_info_list_t;
//-----------------------------------------------------------------------------
-// LLTexLayerParamAlphaInfo
-//-----------------------------------------------------------------------------
-class LLTexLayerParamAlphaInfo : public LLViewerVisualParamInfo
+// LLTexLayer
+// A single texture layer
+// Only exists for llvoavatarself
+
+class LLTexLayer
{
- friend class LLTexLayerParamAlpha;
public:
- LLTexLayerParamAlphaInfo();
- /*virtual*/ ~LLTexLayerParamAlphaInfo() {};
+ enum ERenderPass
+ {
+ RP_COLOR,
+ RP_BUMP,
+ RP_SHINE
+ };
+
+ LLTexLayer(LLTexLayerSet* const layer_set);
+ ~LLTexLayer();
- /*virtual*/ BOOL parseXml(LLXmlTreeNode* node);
+ const LLTexLayerInfo* getInfo() const { return mInfo; }
+ BOOL setInfo(const LLTexLayerInfo *info); // This sets mInfo and calls initialization functions
+ BOOL render(S32 x, S32 y, S32 width, S32 height, BOOL render_morph);
+ void requestUpdate();
+ LLTexLayerSet* const getTexLayerSet() const { return mTexLayerSet; }
-protected:
- std::string mStaticImageFileName;
- BOOL mMultiplyBlend;
- BOOL mSkipIfZeroWeight;
- F32 mDomain;
-};
+ void deleteCaches();
+ U8* getAlphaData();
+ void invalidateMorphMasks();
+ void setHasMorph(BOOL newval) { mHasMorph = newval; }
+ BOOL isMorphValid() { return mMorphMasksValid; }
-//-----------------------------------------------------------------------------
-// LLTexParamColorInfo
-//-----------------------------------------------------------------------------
-class LLTexParamColorInfo : public LLViewerVisualParamInfo
-{
- friend class LLTexParamColor;
+ const std::string& getName() const;
+ ERenderPass getRenderPass() const;
+ const std::string& getGlobalColor() const;
-public:
- LLTexParamColorInfo();
- virtual ~LLTexParamColorInfo() {};
- BOOL parseXml( LLXmlTreeNode* node );
-
-protected:
- enum { MAX_COLOR_VALUES = 20 };
- EColorOperation mOperation;
- LLColor4 mColors[MAX_COLOR_VALUES];
- S32 mNumColors;
-};
+ BOOL findNetColor(LLColor4* color) const;
+ BOOL renderImageRaw(U8* in_data, S32 in_width, S32 in_height, S32 in_components, S32 width, S32 height, BOOL is_mask);
+ BOOL blendAlphaTexture(S32 width, S32 height); // Multiplies a single alpha texture against the frame buffer
+ BOOL renderMorphMasks(S32 x, S32 y, S32 width, S32 height, const LLColor4 &layer_color, BOOL render_morph);
+ BOOL hasAlphaParams() const { return !mParamAlphaList.empty(); }
+ BOOL isVisibilityMask() const;
-//-----------------------------------------------------------------------------
-// LLTexGlobalColorInfo
-//-----------------------------------------------------------------------------
-class LLTexGlobalColorInfo
-{
- friend class LLTexGlobalColor;
-public:
- LLTexGlobalColorInfo();
- ~LLTexGlobalColorInfo();
+ static void calculateTexLayerColor(const param_color_list_t &param_list, LLColor4 &net_color);
- BOOL parseXml(LLXmlTreeNode* node);
-
-protected:
- typedef std::vector<LLTexParamColorInfo *> color_info_list_t;
- color_info_list_t mColorInfoList;
- std::string mName;
-};
+private:
+ LLTexLayerSet* const mTexLayerSet;
-//-----------------------------------------------------------------------------
-// LLTexLayerSetInfo
-// Containes shared layer set data
-//-----------------------------------------------------------------------------
-class LLTexLayerSetInfo
-{
- friend class LLTexLayerSet;
-public:
- LLTexLayerSetInfo();
- ~LLTexLayerSetInfo();
+ // Layers can have either mParamColorList, mGlobalColor, or mFixedColor. They are looked for in that order.
+ param_color_list_t mParamColorList;
+ // mGlobalColor name stored in mInfo
+ // mFixedColor value stored in mInfo
+ param_alpha_list_t mParamAlphaList;
- BOOL parseXml(LLXmlTreeNode* node);
+ BOOL mMorphMasksValid;
+ typedef std::map<U32, U8*> alpha_cache_t;
+ alpha_cache_t mAlphaCache;
+ BOOL mStaticImageInvalid;
-protected:
- std::string mBodyRegion;
- S32 mWidth;
- S32 mHeight;
- std::string mStaticAlphaFileName;
- BOOL mClearAlpha; // Set alpha to 1 for this layerset (if there is no mStaticAlphaFileName)
-
- typedef std::vector<LLTexLayerInfo*> layer_info_list_t;
- layer_info_list_t mLayerInfoList;
-};
+ BOOL mHasMorph;
-//-----------------------------------------------------------------------------
-// LLTexLayerInfo
-//-----------------------------------------------------------------------------
-enum ERenderPass
-{
- RP_COLOR,
- RP_BUMP,
- RP_SHINE
+ const LLTexLayerInfo *mInfo;
};
+// Make private
class LLTexLayerInfo
{
friend class LLTexLayer;
@@ -172,12 +130,13 @@ public:
~LLTexLayerInfo();
BOOL parseXml(LLXmlTreeNode* node);
+ BOOL createVisualParams(LLVOAvatar *avatar);
-protected:
+private:
std::string mName;
- BOOL mWriteAllChannels; // Don't use masking. Just write RGBA into buffer,
- ERenderPass mRenderPass;
+ BOOL mWriteAllChannels; // Don't use masking. Just write RGBA into buffer,
+ LLTexLayer::ERenderPass mRenderPass;
std::string mGlobalColor;
LLColor4 mFixedColor;
@@ -185,369 +144,200 @@ protected:
S32 mLocalTexture;
std::string mStaticImageFileName;
BOOL mStaticImageIsMask;
- BOOL mUseLocalTextureAlphaOnly; // Ignore RGB channels from the input texture. Use alpha as a mask
+ BOOL mUseLocalTextureAlphaOnly; // Ignore RGB channels from the input texture. Use alpha as a mask
+ BOOL mIsVisibilityMask;
- typedef std::vector<std::pair<std::string,BOOL> > morph_name_list_t;
- morph_name_list_t mMorphNameList;
-
- typedef std::vector<LLTexParamColorInfo*> color_info_list_t;
- color_info_list_t mColorInfoList;
-
- typedef std::vector<LLTexLayerParamAlphaInfo*> alpha_info_list_t;
- alpha_info_list_t mAlphaInfoList;
-
+ typedef std::vector< std::pair< std::string,BOOL > > morph_name_list_t;
+ morph_name_list_t mMorphNameList;
+ param_color_info_list_t mParamColorInfoList;
+ param_alpha_info_list_t mParamAlphaInfoList;
};
+//
+// LLTexLayer
//-----------------------------------------------------------------------------
-// LLTexLayerSetBuffer
-// The composite image that a LLTexLayerSet writes to. Each LLTexLayerSet has one.
-//-----------------------------------------------------------------------------
-class LLTexLayerSetBuffer : public LLDynamicTexture
-{
-public:
- LLTexLayerSetBuffer( LLTexLayerSet* owner, S32 width, S32 height, BOOL has_bump );
- virtual ~LLTexLayerSetBuffer();
-
- virtual void preRender(BOOL clear_depth);
- virtual void postRender(BOOL success);
- virtual BOOL render();
- BOOL updateImmediate();
- void bindBumpTexture( U32 stage );
- bool isInitialized(void) const;
- BOOL needsRender();
- void requestUpdate();
- void requestUpload();
- void cancelUpload();
- BOOL uploadPending() { return mUploadPending; }
- BOOL render( S32 x, S32 y, S32 width, S32 height );
- void readBackAndUpload(U8* baked_bump_data);
- void createBumpTexture() ;
-
- static void onTextureUploadComplete( const LLUUID& uuid,
- void* userdata,
- S32 result, LLExtStat ext_status);
- static void dumpTotalByteCount();
-
- virtual void restoreGLTexture() ;
- virtual void destroyGLTexture() ;
-
-private:
- void pushProjection();
- void popProjection();
-
-private:
- BOOL mHasBump ;
- BOOL mNeedsUpdate;
- BOOL mNeedsUpload;
- BOOL mUploadPending;
- LLUUID mUploadID; // Identifys the current upload process (null if none). Used to avoid overlaps (eg, when the user rapidly makes two changes outside of Face Edit)
- LLTexLayerSet* mTexLayerSet;
- LLPointer<LLImageGL> mBumpTex; // zero if none
-
- static S32 sGLByteCount;
- static S32 sGLBumpByteCount;
-};
//-----------------------------------------------------------------------------
// LLTexLayerSet
// An ordered set of texture layers that get composited into a single texture.
-//-----------------------------------------------------------------------------
+// Only exists for llvoavatarself
+
class LLTexLayerSet
{
+ friend class LLTexLayerSetBuffer;
public:
- LLTexLayerSet( LLVOAvatar* avatar );
+ LLTexLayerSet(LLVOAvatarSelf* const avatar);
~LLTexLayerSet();
- //BOOL parseData(LLXmlTreeNode* node);
- LLTexLayerSetInfo* getInfo() const { return mInfo; }
- // This sets mInfo and calls initialization functions
- BOOL setInfo(LLTexLayerSetInfo *info);
-
- BOOL render( S32 x, S32 y, S32 width, S32 height );
- BOOL renderBump( S32 x, S32 y, S32 width,S32 height );
- BOOL isBodyRegion( const std::string& region ) { return mInfo->mBodyRegion == region; }
+ const LLTexLayerSetInfo* getInfo() const { return mInfo; }
+ BOOL setInfo(const LLTexLayerSetInfo *info); // This sets mInfo and calls initialization functions
+
+ BOOL render(S32 x, S32 y, S32 width, S32 height);
+ BOOL renderBump(S32 x, S32 y, S32 width,S32 height);
+
+ BOOL isBodyRegion(const std::string& region) const;
LLTexLayerSetBuffer* getComposite();
void requestUpdate();
void requestUpload();
void cancelUpload();
- LLVOAvatar* getAvatar() { return mAvatar; }
void updateComposite();
- BOOL isLocalTextureDataAvailable();
- BOOL isLocalTextureDataFinal();
+ BOOL isLocalTextureDataAvailable() const;
+ BOOL isLocalTextureDataFinal() const;
void createComposite();
void destroyComposite();
- void setUpdatesEnabled( BOOL b );
- BOOL getUpdatesEnabled() { return mUpdatesEnabled; }
+ void setUpdatesEnabled(BOOL b);
+ BOOL getUpdatesEnabled() const { return mUpdatesEnabled; }
void deleteCaches();
- void gatherAlphaMasks(U8 *data, S32 width, S32 height);
+ void gatherMorphMaskAlpha(U8 *data, S32 width, S32 height);
void applyMorphMask(U8* tex_data, S32 width, S32 height, S32 num_components);
- const std::string getBodyRegion() { return mInfo->mBodyRegion; }
- BOOL hasComposite() { return (mComposite != NULL); }
- void setBump( BOOL b ) { mHasBump = b; }
- BOOL hasBump() { return mHasBump; }
+ void renderAlphaMaskTextures(S32 width, S32 height, bool forceClear = false);
+ LLTexLayer* findLayerByName(std::string name);
+
+ LLVOAvatarSelf* getAvatar() const { return mAvatar; }
+ const std::string getBodyRegion() const;
+ BOOL hasComposite() const { return (mComposite != NULL); }
+ void setBump(BOOL b) { mHasBump = b; }
+ BOOL hasBump() const { return mHasBump; }
+ LLVOAvatarDefines::EBakedTextureIndex getBakedTexIndex() { return mBakedTexIndex; }
+ void setBakedTexIndex( LLVOAvatarDefines::EBakedTextureIndex index) { mBakedTexIndex = index; }
public:
static BOOL sHasCaches;
-protected:
+private:
typedef std::vector<LLTexLayer *> layer_list_t;
layer_list_t mLayerList;
+ layer_list_t mMaskLayerList;
LLTexLayerSetBuffer* mComposite;
- // Backlink only; don't make this an LLPointer.
- LLVOAvatar* mAvatar;
+ LLVOAvatarSelf* const mAvatar; // Backlink only; don't make this an LLPointer.
BOOL mUpdatesEnabled;
BOOL mHasBump;
- LLTexLayerSetInfo *mInfo;
-};
+ LLVOAvatarDefines::EBakedTextureIndex mBakedTexIndex;
-//-----------------------------------------------------------------------------
-// LLMaskedMorph
-//-----------------------------------------------------------------------------
-
-class LLMaskedMorph
-{
-public:
- LLMaskedMorph( LLPolyMorphTarget *morph_target, BOOL invert );
-
-public:
- LLPolyMorphTarget *mMorphTarget;
- BOOL mInvert;
+ const LLTexLayerSetInfo *mInfo;
};
-//-----------------------------------------------------------------------------
-// LLTexLayer
-// A single texture layer
-//-----------------------------------------------------------------------------
-class LLTexLayer
+// Contains shared layer set data
+class LLTexLayerSetInfo
{
+ friend class LLTexLayerSet;
public:
- LLTexLayer( LLTexLayerSet* layer_set );
- ~LLTexLayer();
-
- //BOOL parseData(LLXmlTreeNode* node);
- LLTexLayerInfo* getInfo() const { return mInfo; }
- // This sets mInfo and calls initialization functions
- BOOL setInfo(LLTexLayerInfo *info);
+ LLTexLayerSetInfo();
+ ~LLTexLayerSetInfo();
- BOOL render( S32 x, S32 y, S32 width, S32 height );
- void requestUpdate();
- LLTexLayerSet* getTexLayerSet() { return mTexLayerSet; }
-
- const std::string& getName() { return mInfo->mName; }
-
- void addMaskedMorph(LLPolyMorphTarget* morph_target, BOOL invert);
- void deleteCaches();
- U8* getAlphaData();
- void applyMorphMask(U8* tex_data, S32 width, S32 height, S32 num_components);
-
- void invalidateMorphMasks();
- ERenderPass getRenderPass() { return mInfo->mRenderPass; }
- const std::string& getGlobalColor() { return mInfo->mGlobalColor; }
- BOOL findNetColor( LLColor4* color );
- BOOL renderImageRaw( U8* in_data, S32 in_width, S32 in_height, S32 in_components, S32 width, S32 height, BOOL is_mask );
- BOOL renderAlphaMasks( S32 x, S32 y, S32 width, S32 height, LLColor4* colorp );
- BOOL hasAlphaParams() { return (!mParamAlphaList.empty());}
-
-protected:
- LLTexLayerSet* mTexLayerSet;
- LLPointer<LLImageRaw> mStaticImageRaw;
-
- // Layers can have either mParamColorList, mGlobalColor, or mFixedColor. They are looked for in that order.
- typedef std::vector<LLTexParamColor *> color_list_t;
- color_list_t mParamColorList;
- // mGlobalColor name stored in mInfo
- // mFixedColor value stored in mInfo
+ BOOL parseXml(LLXmlTreeNode* node);
+ void createVisualParams(LLVOAvatar *avatar);
- typedef std::vector<LLTexLayerParamAlpha *> alpha_list_t;
- alpha_list_t mParamAlphaList;
-
+private:
+ std::string mBodyRegion;
+ S32 mWidth;
+ S32 mHeight;
+ std::string mStaticAlphaFileName;
+ BOOL mClearAlpha; // Set alpha to 1 for this layerset (if there is no mStaticAlphaFileName)
- typedef std::deque<LLMaskedMorph> morph_list_t;
- morph_list_t mMaskedMorphs;
- typedef std::map<U32, U8*> alpha_cache_t;
- alpha_cache_t mAlphaCache;
- BOOL mMorphMasksValid;
- BOOL mStaticImageInvalid;
-
- LLTexLayerInfo *mInfo;
+ typedef std::vector<LLTexLayerInfo*> layer_info_list_t;
+ layer_info_list_t mLayerInfoList;
};
-//-----------------------------------------------------------------------------
-// LLTexLayerParamAlpha
-//-----------------------------------------------------------------------------
-class LLTexLayerParamAlpha : public LLViewerVisualParam
+// The composite image that a LLTexLayerSet writes to. Each LLTexLayerSet has one.
+class LLTexLayerSetBuffer : public LLDynamicTexture
{
public:
- LLTexLayerParamAlpha( LLTexLayer* layer );
- /*virtual*/ ~LLTexLayerParamAlpha();
+ LLTexLayerSetBuffer(LLTexLayerSet* const owner, S32 width, S32 height, BOOL has_bump);
+ virtual ~LLTexLayerSetBuffer();
- // Special: These functions are overridden by child classes
- LLTexLayerParamAlphaInfo* getInfo() const { return (LLTexLayerParamAlphaInfo*)mInfo; }
- // This sets mInfo and calls initialization functions
- BOOL setInfo(LLTexLayerParamAlphaInfo *info);
-
- // LLVisualParam Virtual functions
- ///*virtual*/ BOOL parseData(LLXmlTreeNode* node);
- /*virtual*/ void apply( ESex avatar_sex ) {}
- /*virtual*/ void setWeight(F32 weight, BOOL set_by_user);
- /*virtual*/ void setAnimationTarget(F32 target_value, BOOL set_by_user);
- /*virtual*/ void animate(F32 delta, BOOL set_by_user);
-
- // LLViewerVisualParam Virtual functions
- /*virtual*/ F32 getTotalDistortion() { return 1.f; }
- /*virtual*/ const LLVector3& getAvgDistortion() { return mAvgDistortionVec; }
- /*virtual*/ F32 getMaxDistortion() { return 3.f; }
- /*virtual*/ LLVector3 getVertexDistortion(S32 index, LLPolyMesh *poly_mesh) { return LLVector3(1.f, 1.f, 1.f);}
- /*virtual*/ const LLVector3* getFirstDistortion(U32 *index, LLPolyMesh **poly_mesh) { index = 0; poly_mesh = NULL; return &mAvgDistortionVec;};
- /*virtual*/ const LLVector3* getNextDistortion(U32 *index, LLPolyMesh **poly_mesh) { index = 0; poly_mesh = NULL; return NULL;};
-
- // New functions
+ virtual void preRender(BOOL clear_depth);
+ virtual void postRender(BOOL success);
+ virtual BOOL render();
+ BOOL updateImmediate();
+ void bindBumpTexture(U32 stage);
+ bool isInitialized(void) const;
+ BOOL needsRender();
+ void requestUpdate();
+ void requestUpload();
+ void cancelUpload();
+ BOOL uploadPending() { return mUploadPending; }
BOOL render( S32 x, S32 y, S32 width, S32 height );
- BOOL getSkip();
- void deleteCaches();
- LLTexLayer* getTexLayer() { return mTexLayer; }
- BOOL getMultiplyBlend() { return getInfo()->mMultiplyBlend; }
-
-protected:
- LLPointer<LLImageGL> mCachedProcessedImageGL;
- LLTexLayer* mTexLayer;
- LLPointer<LLImageTGA> mStaticImageTGA;
- LLPointer<LLImageRaw> mStaticImageRaw;
- BOOL mNeedsCreateTexture;
- BOOL mStaticImageInvalid;
- LLVector3 mAvgDistortionVec;
- F32 mCachedEffectiveWeight;
-
-public:
- // Global list of instances for gathering statistics
- static void dumpCacheByteCount();
- static void getCacheByteCount( S32* gl_bytes );
+ void readBackAndUpload(const U8* baked_bump_data);
+ void createBumpTexture();
- typedef std::list< LLTexLayerParamAlpha* > param_alpha_ptr_list_t;
- static param_alpha_ptr_list_t sInstances;
-};
+ static void onTextureUploadComplete(const LLUUID& uuid,
+ void* userdata,
+ S32 result, LLExtStat ext_status);
+ static void dumpTotalByteCount();
+ virtual void restoreGLTexture();
+ virtual void destroyGLTexture();
-//-----------------------------------------------------------------------------
-// LLTexGlobalColor
-//-----------------------------------------------------------------------------
-class LLTexGlobalColor
-{
-public:
- LLTexGlobalColor( LLVOAvatar* avatar );
- ~LLTexGlobalColor();
+private:
+ void pushProjection() const;
+ void popProjection() const;
- //BOOL parseData(LLXmlTreeNode* node);
- LLTexGlobalColorInfo* getInfo() const { return mInfo; }
- // This sets mInfo and calls initialization functions
- BOOL setInfo(LLTexGlobalColorInfo *info);
-
- void requstUpdate();
- LLVOAvatar* getAvatar() { return mAvatar; }
- LLColor4 getColor();
- const std::string& getName() { return mInfo->mName; }
+private:
+ const BOOL mHasBump;
+ LLTexLayerSet* const mTexLayerSet;
-protected:
- typedef std::vector<LLTexParamColor *> param_list_t;
- param_list_t mParamList;
- LLVOAvatar* mAvatar; // just backlink, don't LLPointer
+ BOOL mNeedsUpdate;
+ BOOL mNeedsUpload;
+ BOOL mUploadPending;
+ LLUUID mUploadID; // Identifys the current upload process (null if none). Used to avoid overlaps (eg, when the user rapidly makes two changes outside of Face Edit)
+ LLPointer<LLImageGL> mBumpTex; // zero if none
- LLTexGlobalColorInfo *mInfo;
+ static S32 sGLByteCount;
+ static S32 sGLBumpByteCount;
};
-
-//-----------------------------------------------------------------------------
-// LLTexParamColor
+//
+// LLTexLayerSet
//-----------------------------------------------------------------------------
-class LLTexParamColor : public LLViewerVisualParam
-{
-public:
- LLTexParamColor( LLTexGlobalColor* tex_color );
- LLTexParamColor( LLTexLayer* layer );
- /* virtual */ ~LLTexParamColor();
-
- // Special: These functions are overridden by child classes
- LLTexParamColorInfo* getInfo() const { return (LLTexParamColorInfo*)mInfo; }
- // This sets mInfo and calls initialization functions
- BOOL setInfo(LLTexParamColorInfo *info);
-
- // LLVisualParam Virtual functions
- ///*virtual*/ BOOL parseData(LLXmlTreeNode* node);
- /*virtual*/ void apply( ESex avatar_sex ) {}
- /*virtual*/ void setWeight(F32 weight, BOOL set_by_user);
- /*virtual*/ void setAnimationTarget(F32 target_value, BOOL set_by_user);
- /*virtual*/ void animate(F32 delta, BOOL set_by_user);
-
-
- // LLViewerVisualParam Virtual functions
- /*virtual*/ F32 getTotalDistortion() { return 1.f; }
- /*virtual*/ const LLVector3& getAvgDistortion() { return mAvgDistortionVec; }
- /*virtual*/ F32 getMaxDistortion() { return 3.f; }
- /*virtual*/ LLVector3 getVertexDistortion(S32 index, LLPolyMesh *poly_mesh) { return LLVector3(1.f, 1.f, 1.f); }
- /*virtual*/ const LLVector3* getFirstDistortion(U32 *index, LLPolyMesh **poly_mesh) { index = 0; poly_mesh = NULL; return &mAvgDistortionVec;};
- /*virtual*/ const LLVector3* getNextDistortion(U32 *index, LLPolyMesh **poly_mesh) { index = 0; poly_mesh = NULL; return NULL;};
-
- // New functions
- LLColor4 getNetColor();
- EColorOperation getOperation() const { return getInfo()->mOperation; }
-
-
-protected:
- LLVector3 mAvgDistortionVec;
- LLTexGlobalColor* mTexGlobalColor; // either has mTexGlobalColor or mTexLayer as its parent
- LLTexLayer* mTexLayer;
- LLVOAvatar* mAvatar; // redundant, but simplifies the code (don't LLPointer)
-};
//-----------------------------------------------------------------------------
-// LLTexStaticImageList
-//-----------------------------------------------------------------------------
+// LLTexLayerStaticImageList
+//
-class LLTexStaticImageList
+class LLTexLayerStaticImageList : public LLSingleton<LLTexLayerStaticImageList>
{
public:
- LLTexStaticImageList();
- ~LLTexStaticImageList();
+ LLTexLayerStaticImageList();
+ ~LLTexLayerStaticImageList();
- LLImageRaw* getImageRaw( const std::string& file_name );
- LLImageGL* getImageGL( const std::string& file_name, BOOL is_mask );
- LLImageTGA* getImageTGA( const std::string& file_name );
+ LLImageGL* getImageGL(const std::string& file_name, BOOL is_mask);
+ LLImageTGA* getImageTGA(const std::string& file_name);
void deleteCachedImages();
void dumpByteCount();
private:
- BOOL loadImageRaw( const std::string& file_name, LLImageRaw* image_raw );
+ BOOL loadImageRaw(const std::string& file_name, LLImageRaw* image_raw);
private:
- static LLStringTable sImageNames;
+ LLStringTable mImageNames;
- typedef std::map< const char *, LLPointer<LLImageGL> > image_gl_map_t;
- typedef std::map< const char *, LLPointer<LLImageTGA> > image_tga_map_t;
+ typedef std::map< const char*, LLPointer<LLImageGL> > image_gl_map_t;
image_gl_map_t mStaticImageListGL;
+ typedef std::map< const char*, LLPointer<LLImageTGA> > image_tga_map_t;
image_tga_map_t mStaticImageListTGA;
-public:
S32 mGLBytes;
S32 mTGABytes;
};
// Used by LLTexLayerSetBuffer for a callback.
+// Note to anyone merging branches - this supercedes the previous fix
+// for DEV-31590 "Heap corruption and crash after outfit changes",
+// here and in lltexlayer.cpp. Equally correct and a bit simpler.
class LLBakedUploadData
{
public:
- LLBakedUploadData( LLVOAvatar* avatar, LLTexLayerSetBuffer* layerset_buffer, const LLUUID & id);
+ LLBakedUploadData(const LLVOAvatarSelf* avatar, LLTexLayerSet* layerset, const LLUUID& id);
~LLBakedUploadData() {}
- LLUUID mID;
- LLVOAvatar* mAvatar; // just backlink, don't LLPointer
- LLTexLayerSetBuffer* mLayerSetBuffer;
- LLUUID mWearableAssets[WT_COUNT];
- U64 mStartTime; // Used to measure time baked texture upload requires
+ const LLUUID mID;
+ const LLVOAvatarSelf* mAvatar; // just backlink, don't LLPointer
+ LLTexLayerSet* mTexLayerSet;
+ const U64 mStartTime; // Used to measure time baked texture upload requires
};
-extern LLTexStaticImageList gTexStaticImageList;
-
#endif // LL_LLTEXLAYER_H
diff --git a/indra/newview/lltexlayerparams.cpp b/indra/newview/lltexlayerparams.cpp
new file mode 100644
index 0000000000..e00f6aeb04
--- /dev/null
+++ b/indra/newview/lltexlayerparams.cpp
@@ -0,0 +1,541 @@
+/**
+ * @file lltexlayerparams.cpp
+ * @brief SERAPH - ADD IN
+ *
+ * $LicenseInfo:firstyear=2002&license=viewergpl$
+ *
+ * Copyright (c) 2002-2007, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlife.com/developers/opensource/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at http://secondlife.com/developers/opensource/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+#include "llagent.h"
+#include "lltexlayer.h"
+#include "llvoavatarself.h"
+#include "lltexlayerparams.h"
+#include "llui.h"
+
+//-----------------------------------------------------------------------------
+// LLTexLayerParam
+//-----------------------------------------------------------------------------
+LLTexLayerParam::LLTexLayerParam(LLTexLayer *layer) :
+ mTexLayer(layer),
+ mAvatar(NULL)
+{
+ if (mTexLayer != NULL)
+ {
+ mAvatar = mTexLayer->getTexLayerSet()->getAvatar();
+ }
+}
+
+LLTexLayerParam::LLTexLayerParam(LLVOAvatar *avatar) :
+ mTexLayer(NULL)
+{
+ mAvatar = avatar;
+}
+
+
+BOOL LLTexLayerParam::setInfo(LLViewerVisualParamInfo *info)
+{
+ LLViewerVisualParam::setInfo(info);
+ mAvatar->addVisualParam( this);
+ return TRUE;
+}
+
+
+
+//-----------------------------------------------------------------------------
+// LLTexLayerParamAlpha
+//-----------------------------------------------------------------------------
+
+// static
+LLTexLayerParamAlpha::param_alpha_ptr_list_t LLTexLayerParamAlpha::sInstances;
+
+// static
+void LLTexLayerParamAlpha::dumpCacheByteCount()
+{
+ S32 gl_bytes = 0;
+ getCacheByteCount( &gl_bytes);
+ llinfos << "Processed Alpha Texture Cache GL:" << (gl_bytes/1024) << "KB" << llendl;
+}
+
+// static
+void LLTexLayerParamAlpha::getCacheByteCount(S32* gl_bytes)
+{
+ *gl_bytes = 0;
+
+ for (param_alpha_ptr_list_t::iterator iter = sInstances.begin();
+ iter != sInstances.end(); iter++)
+ {
+ LLTexLayerParamAlpha* instance = *iter;
+ LLImageGL* image_gl = instance->mCachedProcessedImageGL;
+ if (image_gl)
+ {
+ S32 bytes = (S32)image_gl->getWidth() * image_gl->getHeight() * image_gl->getComponents();
+
+ if (image_gl->getHasGLTexture())
+ {
+ *gl_bytes += bytes;
+ }
+ }
+ }
+}
+
+LLTexLayerParamAlpha::LLTexLayerParamAlpha(LLTexLayer* layer) :
+ LLTexLayerParam(layer),
+ mCachedProcessedImageGL(NULL),
+ mNeedsCreateTexture(FALSE),
+ mStaticImageInvalid(FALSE),
+ mAvgDistortionVec(1.f, 1.f, 1.f),
+ mCachedEffectiveWeight(0.f)
+{
+ sInstances.push_front(this);
+}
+
+LLTexLayerParamAlpha::LLTexLayerParamAlpha(LLVOAvatar* avatar) :
+ LLTexLayerParam(avatar),
+ mCachedProcessedImageGL(NULL),
+ mNeedsCreateTexture(FALSE),
+ mStaticImageInvalid(FALSE),
+ mAvgDistortionVec(1.f, 1.f, 1.f),
+ mCachedEffectiveWeight(0.f)
+{
+ sInstances.push_front(this);
+}
+
+
+LLTexLayerParamAlpha::~LLTexLayerParamAlpha()
+{
+ deleteCaches();
+ sInstances.remove(this);
+}
+
+void LLTexLayerParamAlpha::deleteCaches()
+{
+ mStaticImageTGA = NULL; // deletes image
+ mCachedProcessedImageGL = NULL;
+ mStaticImageRaw = NULL;
+ mNeedsCreateTexture = FALSE;
+}
+
+BOOL LLTexLayerParamAlpha::getMultiplyBlend() const
+{
+ return ((LLTexLayerParamAlphaInfo *)getInfo())->mMultiplyBlend;
+}
+
+void LLTexLayerParamAlpha::setWeight(F32 weight, BOOL set_by_user)
+{
+ if (mIsAnimating || mTexLayer == NULL)
+ {
+ return;
+ }
+ F32 min_weight = getMinWeight();
+ F32 max_weight = getMaxWeight();
+ F32 new_weight = llclamp(weight, min_weight, max_weight);
+ U8 cur_u8 = F32_to_U8(mCurWeight, min_weight, max_weight);
+ U8 new_u8 = F32_to_U8(new_weight, min_weight, max_weight);
+ if (cur_u8 != new_u8)
+ {
+ mCurWeight = new_weight;
+
+ LLVOAvatar* avatar = mTexLayer->getTexLayerSet()->getAvatar();
+ if (avatar->getSex() & getSex())
+ {
+ if (gAgent.cameraCustomizeAvatar())
+ {
+ set_by_user = FALSE;
+ }
+ avatar->invalidateComposite(mTexLayer->getTexLayerSet(), set_by_user);
+ mTexLayer->invalidateMorphMasks();
+ avatar->updateMeshTextures();
+ }
+ }
+}
+
+void LLTexLayerParamAlpha::setAnimationTarget(F32 target_value, BOOL set_by_user)
+{
+ mTargetWeight = target_value;
+ setWeight(target_value, set_by_user);
+ mIsAnimating = TRUE;
+ if (mNext)
+ {
+ mNext->setAnimationTarget(target_value, set_by_user);
+ }
+}
+
+void LLTexLayerParamAlpha::animate(F32 delta, BOOL set_by_user)
+{
+ if (mNext)
+ {
+ mNext->animate(delta, set_by_user);
+ }
+}
+
+BOOL LLTexLayerParamAlpha::getSkip() const
+{
+ if (!mTexLayer)
+ {
+ return TRUE;
+ }
+
+ const LLVOAvatar *avatar = mTexLayer->getTexLayerSet()->getAvatar();
+
+ if (((LLTexLayerParamAlphaInfo *)getInfo())->mSkipIfZeroWeight)
+ {
+ F32 effective_weight = (avatar->getSex() & getSex()) ? mCurWeight : getDefaultWeight();
+ if (is_approx_zero(effective_weight))
+ {
+ return TRUE;
+ }
+ }
+
+ EWearableType type = (EWearableType)getWearableType();
+ if ((type != WT_INVALID) && !avatar->isWearingWearableType(type))
+ {
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+
+BOOL LLTexLayerParamAlpha::render(S32 x, S32 y, S32 width, S32 height)
+{
+ BOOL success = TRUE;
+
+ if (!mTexLayer)
+ {
+ return success;
+ }
+
+ F32 effective_weight = (mTexLayer->getTexLayerSet()->getAvatar()->getSex() & getSex()) ? mCurWeight : getDefaultWeight();
+ BOOL weight_changed = effective_weight != mCachedEffectiveWeight;
+ if (getSkip())
+ {
+ return success;
+ }
+
+ LLTexLayerParamAlphaInfo *info = (LLTexLayerParamAlphaInfo *)getInfo();
+ gGL.flush();
+ if (info->mMultiplyBlend)
+ {
+ gGL.blendFunc(LLRender::BF_DEST_ALPHA, LLRender::BF_ZERO); // Multiplication: approximates a min() function
+ }
+ else
+ {
+ gGL.setSceneBlendType(LLRender::BT_ADD); // Addition: approximates a max() function
+ }
+
+ if (!info->mStaticImageFileName.empty() && !mStaticImageInvalid)
+ {
+ if (mStaticImageTGA.isNull())
+ {
+ // Don't load the image file until we actually need it the first time. Like now.
+ mStaticImageTGA = LLTexLayerStaticImageList::getInstance()->getImageTGA(info->mStaticImageFileName);
+ // We now have something in one of our caches
+ LLTexLayerSet::sHasCaches |= mStaticImageTGA.notNull() ? TRUE : FALSE;
+
+ if (mStaticImageTGA.isNull())
+ {
+ llwarns << "Unable to load static file: " << info->mStaticImageFileName << llendl;
+ mStaticImageInvalid = TRUE; // don't try again.
+ return FALSE;
+ }
+ }
+
+ const S32 image_tga_width = mStaticImageTGA->getWidth();
+ const S32 image_tga_height = mStaticImageTGA->getHeight();
+ if (!mCachedProcessedImageGL ||
+ (mCachedProcessedImageGL->getWidth() != image_tga_width) ||
+ (mCachedProcessedImageGL->getHeight() != image_tga_height) ||
+ (weight_changed))
+ {
+// llinfos << "Building Cached Alpha: " << mName << ": (" << mStaticImageRaw->getWidth() << ", " << mStaticImageRaw->getHeight() << ") " << effective_weight << llendl;
+ mCachedEffectiveWeight = effective_weight;
+
+ if (!mCachedProcessedImageGL)
+ {
+ mCachedProcessedImageGL = new LLImageGL(image_tga_width, image_tga_height, 1, FALSE);
+
+ // We now have something in one of our caches
+ LLTexLayerSet::sHasCaches |= mCachedProcessedImageGL ? TRUE : FALSE;
+
+ mCachedProcessedImageGL->setExplicitFormat(GL_ALPHA8, GL_ALPHA);
+ }
+
+ // Applies domain and effective weight to data as it is decoded. Also resizes the raw image if needed.
+ mStaticImageRaw = NULL;
+ mStaticImageRaw = new LLImageRaw;
+ mStaticImageTGA->decodeAndProcess(mStaticImageRaw, info->mDomain, effective_weight);
+ mNeedsCreateTexture = TRUE;
+ }
+
+ if (mCachedProcessedImageGL)
+ {
+ {
+ // Create the GL texture, and then hang onto it for future use.
+ if (mNeedsCreateTexture)
+ {
+ mCachedProcessedImageGL->createGLTexture(0, mStaticImageRaw);
+ mNeedsCreateTexture = FALSE;
+ gGL.getTexUnit(0)->bind(mCachedProcessedImageGL);
+ mCachedProcessedImageGL->setAddressMode(LLTexUnit::TAM_CLAMP);
+ }
+
+ LLGLSNoAlphaTest gls_no_alpha_test;
+ gGL.getTexUnit(0)->bind(mCachedProcessedImageGL);
+ gl_rect_2d_simple_tex(width, height);
+ gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
+ stop_glerror();
+ }
+ }
+
+ // Don't keep the cache for other people's avatars
+ // (It's not really a "cache" in that case, but the logic is the same)
+ if (mAvatar->isSelf())
+ {
+ mCachedProcessedImageGL = NULL;
+ }
+ }
+ else
+ {
+ LLGLDisable no_alpha(GL_ALPHA_TEST);
+ gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
+ gGL.color4f(0.f, 0.f, 0.f, effective_weight);
+ gl_rect_2d_simple(width, height);
+ }
+
+ return success;
+}
+
+//-----------------------------------------------------------------------------
+// LLTexLayerParamAlphaInfo
+//-----------------------------------------------------------------------------
+LLTexLayerParamAlphaInfo::LLTexLayerParamAlphaInfo() :
+ mMultiplyBlend(FALSE),
+ mSkipIfZeroWeight(FALSE),
+ mDomain(0.f)
+{
+}
+
+BOOL LLTexLayerParamAlphaInfo::parseXml(LLXmlTreeNode* node)
+{
+ llassert(node->hasName("param") && node->getChildByName("param_alpha"));
+
+ if (!LLViewerVisualParamInfo::parseXml(node))
+ return FALSE;
+
+ LLXmlTreeNode* param_alpha_node = node->getChildByName("param_alpha");
+ if (!param_alpha_node)
+ {
+ return FALSE;
+ }
+
+ static LLStdStringHandle tga_file_string = LLXmlTree::addAttributeString("tga_file");
+ if (param_alpha_node->getFastAttributeString(tga_file_string, mStaticImageFileName))
+ {
+ // Don't load the image file until it's actually needed.
+ }
+// else
+// {
+// llwarns << "<param_alpha> element is missing tga_file attribute." << llendl;
+// }
+
+ static LLStdStringHandle multiply_blend_string = LLXmlTree::addAttributeString("multiply_blend");
+ param_alpha_node->getFastAttributeBOOL(multiply_blend_string, mMultiplyBlend);
+
+ static LLStdStringHandle skip_if_zero_string = LLXmlTree::addAttributeString("skip_if_zero");
+ param_alpha_node->getFastAttributeBOOL(skip_if_zero_string, mSkipIfZeroWeight);
+
+ static LLStdStringHandle domain_string = LLXmlTree::addAttributeString("domain");
+ param_alpha_node->getFastAttributeF32(domain_string, mDomain);
+
+ return TRUE;
+}
+
+
+
+
+LLTexLayerParamColor::LLTexLayerParamColor(LLTexLayer* layer) :
+ LLTexLayerParam(layer),
+ mAvgDistortionVec(1.f, 1.f, 1.f)
+{
+}
+
+LLTexLayerParamColor::LLTexLayerParamColor(LLVOAvatar *avatar) :
+ LLTexLayerParam(avatar),
+ mAvgDistortionVec(1.f, 1.f, 1.f)
+{
+}
+
+LLTexLayerParamColor::~LLTexLayerParamColor()
+{
+}
+
+LLColor4 LLTexLayerParamColor::getNetColor() const
+{
+ const LLTexLayerParamColorInfo *info = (LLTexLayerParamColorInfo *)getInfo();
+
+ llassert(info->mNumColors >= 1);
+
+ F32 effective_weight = (mAvatar && (mAvatar->getSex() & getSex())) ? mCurWeight : getDefaultWeight();
+
+ S32 index_last = info->mNumColors - 1;
+ F32 scaled_weight = effective_weight * index_last;
+ S32 index_start = (S32) scaled_weight;
+ S32 index_end = index_start + 1;
+ if (index_start == index_last)
+ {
+ return info->mColors[index_last];
+ }
+ else
+ {
+ F32 weight = scaled_weight - index_start;
+ const LLColor4 *start = &info->mColors[ index_start ];
+ const LLColor4 *end = &info->mColors[ index_end ];
+ return LLColor4((1.f - weight) * start->mV[VX] + weight * end->mV[VX],
+ (1.f - weight) * start->mV[VY] + weight * end->mV[VY],
+ (1.f - weight) * start->mV[VZ] + weight * end->mV[VZ],
+ (1.f - weight) * start->mV[VW] + weight * end->mV[VW]);
+ }
+}
+
+void LLTexLayerParamColor::setWeight(F32 weight, BOOL set_by_user)
+{
+ if (mIsAnimating)
+ {
+ return;
+ }
+
+ const LLTexLayerParamColorInfo *info = (LLTexLayerParamColorInfo *)getInfo();
+ F32 min_weight = getMinWeight();
+ F32 max_weight = getMaxWeight();
+ F32 new_weight = llclamp(weight, min_weight, max_weight);
+ U8 cur_u8 = F32_to_U8(mCurWeight, min_weight, max_weight);
+ U8 new_u8 = F32_to_U8(new_weight, min_weight, max_weight);
+ if (cur_u8 != new_u8)
+ {
+ mCurWeight = new_weight;
+
+ if (info->mNumColors <= 0)
+ {
+ // This will happen when we set the default weight the first time.
+ return;
+ }
+
+ if (mAvatar->getSex() & getSex())
+ {
+ onGlobalColorChanged(set_by_user);
+ if (mTexLayer)
+ {
+ mAvatar->invalidateComposite(mTexLayer->getTexLayerSet(), set_by_user);
+ }
+ }
+// llinfos << "param " << mName << " = " << new_weight << llendl;
+ }
+}
+
+void LLTexLayerParamColor::setAnimationTarget(F32 target_value, BOOL set_by_user)
+{
+ // set value first then set interpolating flag to ignore further updates
+ mTargetWeight = target_value;
+ setWeight(target_value, set_by_user);
+ mIsAnimating = TRUE;
+ if (mNext)
+ {
+ mNext->setAnimationTarget(target_value, set_by_user);
+ }
+}
+
+void LLTexLayerParamColor::animate(F32 delta, BOOL set_by_user)
+{
+ if (mNext)
+ {
+ mNext->animate(delta, set_by_user);
+ }
+}
+
+//-----------------------------------------------------------------------------
+// LLTexLayerParamColorInfo
+//-----------------------------------------------------------------------------
+LLTexLayerParamColorInfo::LLTexLayerParamColorInfo() :
+ mOperation(LLTexLayerParamColor::OP_ADD),
+ mNumColors(0)
+{
+}
+
+BOOL LLTexLayerParamColorInfo::parseXml(LLXmlTreeNode *node)
+{
+ llassert(node->hasName("param") && node->getChildByName("param_color"));
+
+ if (!LLViewerVisualParamInfo::parseXml(node))
+ return FALSE;
+
+ LLXmlTreeNode* param_color_node = node->getChildByName("param_color");
+ if (!param_color_node)
+ {
+ return FALSE;
+ }
+
+ std::string op_string;
+ static LLStdStringHandle operation_string = LLXmlTree::addAttributeString("operation");
+ if (param_color_node->getFastAttributeString(operation_string, op_string))
+ {
+ LLStringUtil::toLower(op_string);
+ if (op_string == "add") mOperation = LLTexLayerParamColor::OP_ADD;
+ else if (op_string == "multiply") mOperation = LLTexLayerParamColor::OP_MULTIPLY;
+ else if (op_string == "blend") mOperation = LLTexLayerParamColor::OP_BLEND;
+ }
+
+ mNumColors = 0;
+
+ LLColor4U color4u;
+ for (LLXmlTreeNode* child = param_color_node->getChildByName("value");
+ child;
+ child = param_color_node->getNextNamedChild())
+ {
+ if ((mNumColors < MAX_COLOR_VALUES))
+ {
+ static LLStdStringHandle color_string = LLXmlTree::addAttributeString("color");
+ if (child->getFastAttributeColor4U(color_string, color4u))
+ {
+ mColors[ mNumColors ].setVec(color4u);
+ mNumColors++;
+ }
+ }
+ }
+ if (!mNumColors)
+ {
+ llwarns << "<param_color> is missing <value> sub-elements" << llendl;
+ return FALSE;
+ }
+
+ if ((mOperation == LLTexLayerParamColor::OP_BLEND) && (mNumColors != 1))
+ {
+ llwarns << "<param_color> with operation\"blend\" must have exactly one <value>" << llendl;
+ return FALSE;
+ }
+
+ return TRUE;
+}
diff --git a/indra/newview/lltexlayerparams.h b/indra/newview/lltexlayerparams.h
new file mode 100644
index 0000000000..8c01738317
--- /dev/null
+++ b/indra/newview/lltexlayerparams.h
@@ -0,0 +1,180 @@
+/**
+ * @file lltexlayerparams.h
+ * @brief Texture layer parameters, used by lltexlayer.
+ *
+ * $LicenseInfo:firstyear=2002&license=viewergpl$
+ *
+ * Copyright (c) 2002-2007, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlife.com/developers/opensource/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at http://secondlife.com/developers/opensource/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#ifndef LL_LLTEXLAYERPARAMS_H
+#define LL_LLTEXLAYERPARAMS_H
+
+#include "llviewervisualparam.h"
+
+class LLTexLayer;
+class LLVOAvatar;
+
+class LLTexLayerParam : public LLViewerVisualParam
+{
+public:
+ LLTexLayerParam(LLTexLayer *layer);
+ LLTexLayerParam(LLVOAvatar *avatar);
+ /* Virtual */ BOOL setInfo(LLViewerVisualParamInfo *info);
+protected:
+ LLTexLayer* mTexLayer;
+ LLVOAvatar* mAvatar;
+};
+
+//-----------------------------------------------------------------------------
+// LLTexLayerParamAlpha
+//
+class LLTexLayerParamAlpha : public LLTexLayerParam
+{
+public:
+ LLTexLayerParamAlpha( LLTexLayer* layer );
+ LLTexLayerParamAlpha( LLVOAvatar* avatar );
+ /*virtual*/ ~LLTexLayerParamAlpha();
+
+ // LLVisualParam Virtual functions
+ ///*virtual*/ BOOL parseData(LLXmlTreeNode* node);
+ /*virtual*/ void apply( ESex avatar_sex ) {}
+ /*virtual*/ void setWeight(F32 weight, BOOL set_by_user);
+ /*virtual*/ void setAnimationTarget(F32 target_value, BOOL set_by_user);
+ /*virtual*/ void animate(F32 delta, BOOL set_by_user);
+
+ // LLViewerVisualParam Virtual functions
+ /*virtual*/ F32 getTotalDistortion() { return 1.f; }
+ /*virtual*/ const LLVector3& getAvgDistortion() { return mAvgDistortionVec; }
+ /*virtual*/ F32 getMaxDistortion() { return 3.f; }
+ /*virtual*/ LLVector3 getVertexDistortion(S32 index, LLPolyMesh *poly_mesh) { return LLVector3(1.f, 1.f, 1.f);}
+ /*virtual*/ const LLVector3* getFirstDistortion(U32 *index, LLPolyMesh **poly_mesh) { index = 0; poly_mesh = NULL; return &mAvgDistortionVec;};
+ /*virtual*/ const LLVector3* getNextDistortion(U32 *index, LLPolyMesh **poly_mesh) { index = 0; poly_mesh = NULL; return NULL;};
+
+ // New functions
+ BOOL render( S32 x, S32 y, S32 width, S32 height );
+ BOOL getSkip() const;
+ void deleteCaches();
+ BOOL getMultiplyBlend() const;
+
+private:
+ LLPointer<LLImageGL> mCachedProcessedImageGL;
+ LLPointer<LLImageTGA> mStaticImageTGA;
+ LLPointer<LLImageRaw> mStaticImageRaw;
+ BOOL mNeedsCreateTexture;
+ BOOL mStaticImageInvalid;
+ LLVector3 mAvgDistortionVec;
+ F32 mCachedEffectiveWeight;
+
+public:
+ // Global list of instances for gathering statistics
+ static void dumpCacheByteCount();
+ static void getCacheByteCount( S32* gl_bytes );
+
+ typedef std::list< LLTexLayerParamAlpha* > param_alpha_ptr_list_t;
+ static param_alpha_ptr_list_t sInstances;
+};
+class LLTexLayerParamAlphaInfo : public LLViewerVisualParamInfo
+{
+ friend class LLTexLayerParamAlpha;
+public:
+ LLTexLayerParamAlphaInfo();
+ /*virtual*/ ~LLTexLayerParamAlphaInfo() {};
+
+ /*virtual*/ BOOL parseXml(LLXmlTreeNode* node);
+
+private:
+ std::string mStaticImageFileName;
+ BOOL mMultiplyBlend;
+ BOOL mSkipIfZeroWeight;
+ F32 mDomain;
+};
+//
+// LLTexLayerParamAlpha
+//-----------------------------------------------------------------------------
+
+//-----------------------------------------------------------------------------
+// LLTexLayerParamColor
+//
+class LLTexLayerParamColor : public LLTexLayerParam
+{
+public:
+ enum EColorOperation
+ {
+ OP_ADD = 0,
+ OP_MULTIPLY = 1,
+ OP_BLEND = 2,
+ OP_COUNT = 3 // Number of operations
+ };
+
+ LLTexLayerParamColor( LLTexLayer* layer );
+ LLTexLayerParamColor( LLVOAvatar* avatar );
+ /* virtual */ ~LLTexLayerParamColor();
+
+ // LLVisualParam Virtual functions
+ ///*virtual*/ BOOL parseData(LLXmlTreeNode* node);
+ /*virtual*/ void apply( ESex avatar_sex ) {}
+ /*virtual*/ void setWeight(F32 weight, BOOL set_by_user);
+ /*virtual*/ void setAnimationTarget(F32 target_value, BOOL set_by_user);
+ /*virtual*/ void animate(F32 delta, BOOL set_by_user);
+
+
+ // LLViewerVisualParam Virtual functions
+ /*virtual*/ F32 getTotalDistortion() { return 1.f; }
+ /*virtual*/ const LLVector3& getAvgDistortion() { return mAvgDistortionVec; }
+ /*virtual*/ F32 getMaxDistortion() { return 3.f; }
+ /*virtual*/ LLVector3 getVertexDistortion(S32 index, LLPolyMesh *poly_mesh) { return LLVector3(1.f, 1.f, 1.f); }
+ /*virtual*/ const LLVector3* getFirstDistortion(U32 *index, LLPolyMesh **poly_mesh) { index = 0; poly_mesh = NULL; return &mAvgDistortionVec;};
+ /*virtual*/ const LLVector3* getNextDistortion(U32 *index, LLPolyMesh **poly_mesh) { index = 0; poly_mesh = NULL; return NULL;};
+
+ // New functions
+ LLColor4 getNetColor() const;
+protected:
+ virtual void onGlobalColorChanged(bool set_by_user) {}
+private:
+ LLVector3 mAvgDistortionVec;
+};
+
+class LLTexLayerParamColorInfo : public LLViewerVisualParamInfo
+{
+ friend class LLTexLayerParamColor;
+
+public:
+ LLTexLayerParamColorInfo();
+ virtual ~LLTexLayerParamColorInfo() {};
+ BOOL parseXml( LLXmlTreeNode* node );
+ LLTexLayerParamColor::EColorOperation getOperation() const { return mOperation; }
+private:
+ enum { MAX_COLOR_VALUES = 20 };
+ LLTexLayerParamColor::EColorOperation mOperation;
+ LLColor4 mColors[MAX_COLOR_VALUES];
+ S32 mNumColors;
+};
+
+//
+// LLTexLayerParamColor
+//-----------------------------------------------------------------------------
+
+#endif
diff --git a/indra/newview/lltexturectrl.cpp b/indra/newview/lltexturectrl.cpp
index 7a06f0df9e..3c9290acea 100644
--- a/indra/newview/lltexturectrl.cpp
+++ b/indra/newview/lltexturectrl.cpp
@@ -351,7 +351,7 @@ BOOL LLFloaterTexturePicker::handleKeyHere(KEY key, MASK mask)
root_folder->scrollToShowSelection();
// move focus to inventory proper
- root_folder->setFocus(TRUE);
+ mInventoryPanel->setFocus(TRUE);
// treat this as a user selection of the first filtered result
commitIfImmediateSet();
@@ -359,7 +359,7 @@ BOOL LLFloaterTexturePicker::handleKeyHere(KEY key, MASK mask)
return TRUE;
}
- if (root_folder->hasFocus() && key == KEY_UP)
+ if (mInventoryPanel->hasFocus() && key == KEY_UP)
{
mSearchEdit->focusFirstItem(TRUE);
}
@@ -858,7 +858,7 @@ void LLFloaterTexturePicker::onTextureSelect( const LLTextureEntry& te )
///////////////////////////////////////////////////////////////////////
// LLTextureCtrl
-static LLRegisterWidget<LLTextureCtrl> r("texture_picker");
+static LLDefaultWidgetRegistry::Register<LLTextureCtrl> r("texture_picker");
LLTextureCtrl::LLTextureCtrl(const LLTextureCtrl::Params& p)
: LLUICtrl(p),
@@ -1001,6 +1001,9 @@ void LLTextureCtrl::setLabel(const std::string& label)
void LLTextureCtrl::showPicker(BOOL take_focus)
{
+ // show hourglass cursor when loading inventory window
+ // because inventory construction is slooow
+ getWindow()->setCursor(UI_CURSOR_WAIT);
LLFloater* floaterp = mFloaterHandle.get();
// Show the dialog
@@ -1020,7 +1023,9 @@ void LLTextureCtrl::showPicker(BOOL take_focus)
mFloaterHandle = floaterp->getHandle();
- gFloaterView->getParentFloater(this)->addDependentFloater(floaterp);
+ LLFloater* root_floater = gFloaterView->getParentFloater(this);
+ if (root_floater)
+ root_floater->addDependentFloater(floaterp);
floaterp->openFloater();
}
diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp
index e9dd7921cd..be535761fc 100644
--- a/indra/newview/lltexturefetch.cpp
+++ b/indra/newview/lltexturefetch.cpp
@@ -1877,6 +1877,21 @@ bool LLTextureFetch::receiveImagePacket(const LLHost& host, const LLUUID& id, U1
}
//////////////////////////////////////////////////////////////////////////////
+BOOL LLTextureFetch::isFromLocalCache(const LLUUID& id)
+{
+ BOOL from_cache = FALSE ;
+
+ LLMutexLock lock(&mQueueMutex);
+ LLTextureFetchWorker* worker = getWorker(id);
+ if (worker)
+ {
+ worker->lockWorkData();
+ from_cache = worker->mInLocalCache ;
+ worker->unlockWorkData();
+ }
+
+ return from_cache ;
+}
S32 LLTextureFetch::getFetchState(const LLUUID& id, F32& data_progress_p, F32& requested_priority_p,
U32& fetch_priority_p, F32& fetch_dtime_p, F32& request_dtime_p)
diff --git a/indra/newview/lltexturefetch.h b/indra/newview/lltexturefetch.h
index 56650e721c..282fbb6481 100644
--- a/indra/newview/lltexturefetch.h
+++ b/indra/newview/lltexturefetch.h
@@ -67,6 +67,7 @@ public:
bool receiveImagePacket(const LLHost& host, const LLUUID& id, U16 packet_num, U16 data_size, U8* data);
// Debug
+ BOOL isFromLocalCache(const LLUUID& id);
S32 getFetchState(const LLUUID& id, F32& decode_progress_p, F32& requested_priority_p,
U32& fetch_priority_p, F32& fetch_dtime_p, F32& request_dtime_p);
void dump();
diff --git a/indra/newview/lltextureview.cpp b/indra/newview/lltextureview.cpp
index a4fb9c4efc..50b73bfbc7 100644
--- a/indra/newview/lltextureview.cpp
+++ b/indra/newview/lltextureview.cpp
@@ -400,10 +400,10 @@ private:
void LLGLTexMemBar::draw()
{
- S32 bound_mem = (LLViewerImage::sBoundTextureMemory >> 20);
- S32 max_bound_mem = LLViewerImage::sMaxBoundTextureMem;
- S32 total_mem = (LLViewerImage::sTotalTextureMemory >> 20);
- S32 max_total_mem = LLViewerImage::sMaxTotalTextureMem;
+ S32 bound_mem = BYTES_TO_MEGA_BYTES(LLViewerImage::sBoundTextureMemoryInBytes);
+ S32 max_bound_mem = LLViewerImage::sMaxBoundTextureMemInMegaBytes;
+ S32 total_mem = BYTES_TO_MEGA_BYTES(LLViewerImage::sTotalTextureMemoryInBytes);
+ S32 max_total_mem = LLViewerImage::sMaxTotalTextureMemInMegaBytes;
F32 discard_bias = LLViewerImage::sDesiredDiscardBias;
S32 line_height = (S32)(LLFontGL::getFontMonospace()->getLineHeight() + .5f);
diff --git a/indra/newview/lltoolbar.cpp b/indra/newview/lltoolbar.cpp
index 67348b2a05..d27958c2ac 100644
--- a/indra/newview/lltoolbar.cpp
+++ b/indra/newview/lltoolbar.cpp
@@ -43,13 +43,14 @@
#include "llparcel.h"
#include "llagent.h"
+#include "llagentwearables.h"
#include "llbutton.h"
#include "llfocusmgr.h"
#include "llviewercontrol.h"
#include "llmenucommands.h"
#include "llimview.h"
#include "lluiconstants.h"
-#include "llvoavatar.h"
+#include "llvoavatarself.h"
#include "lltooldraganddrop.h"
#include "llinventoryview.h"
#include "llfloaterchatterbox.h"
@@ -94,7 +95,7 @@ F32 LLToolBar::sInventoryAutoOpenTime = 1.f;
//
LLToolBar::LLToolBar()
- : LLPanel()
+: LLPanel()
#if LL_DARWIN
, mResizeHandle(NULL)
#endif // LL_DARWIN
@@ -158,11 +159,14 @@ BOOL LLToolBar::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
LLInventoryView* active_inventory = LLInventoryView::getActiveInventory();
+ LLRect button_screen_rect;
+ inventory_btn->localRectToScreen(inventory_btn->getRect(),&button_screen_rect);
+
if(active_inventory && active_inventory->getVisible())
{
mInventoryAutoOpen = FALSE;
}
- else if (inventory_btn->getRect().pointInRect(x, y))
+ else if (button_screen_rect.pointInRect(x, y))
{
if (mInventoryAutoOpen)
{
@@ -185,7 +189,7 @@ BOOL LLToolBar::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
// static
void LLToolBar::toggle(void*)
{
- BOOL show = gSavedSettings.getBOOL("ShowToolBar");
+ BOOL show = gSavedSettings.getBOOL("ShowToolBar");
gSavedSettings.setBOOL("ShowToolBar", !show);
gToolBar->setVisible(!show);
}
@@ -261,8 +265,8 @@ void LLToolBar::refresh()
{
gSavedSettings.setBOOL("FlyBtnEnabled", sitting ? false : true);
}
-
- // Check to see if we're in build mode
+
+ // Check to see if we're in build mode
bool build_enabled = LLToolMgr::getInstance()->canEdit();
if (build_enabled)
{
@@ -270,17 +274,17 @@ void LLToolBar::refresh()
bool build_mode = LLToolMgr::getInstance()->inEdit();
// HACK: Not in mouselook and not just clicking on a scripted object
if (gAgent.cameraMouselook() || LLToolGrab::getInstance()->getHideBuildHighlight())
- {
- build_mode = FALSE;
- }
- gSavedSettings.setBOOL("BuildBtnState", build_mode);
+ {
+ build_mode = FALSE;
+ }
+ gSavedSettings.setBOOL("BuildBtnState", build_mode);
}
else
{
gSavedSettings.setBOOL("BuildBtnEnabled", false);
gSavedSettings.setBOOL("BuildBtnState", false);
}
-
+
if (isInVisibleChain())
{
updateCommunicateList();
@@ -328,7 +332,7 @@ void LLToolBar::updateCommunicateList()
communicate_button->addSeparator(ADD_TOP);
communicate_button->add(getString("Redock Windows"), LLSD("redock"), ADD_TOP);
communicate_button->addSeparator(ADD_TOP);
- communicate_button->add(LLFloaterMute::getInstance()->getShortTitle(), LLSD("mute list"), ADD_TOP);
+ communicate_button->add(LLFloaterReg::getTypedInstance<LLFloaterMute>("mute")->getShortTitle(), LLSD("mute list"), ADD_TOP);
std::set<LLHandle<LLFloater> >::const_iterator floater_handle_it;
@@ -403,12 +407,12 @@ void LLToolBar::onClickCommunicate(LLUICtrl* ctrl, const LLSD& user_data)
}
else if (selected_option.asString() == "mute list")
{
- LLFloaterMute::showInstance();
+ LLFloaterReg::showInstance("mute");
}
else if (selected_option.isUndefined()) // user just clicked the communicate button, treat as toggle
{
LLFloaterReg::toggleInstance("communicate");
- }
+ }
else // otherwise selection_option is undifined or a specific IM session id
{
LLFloaterReg::showInstance("communicate", selected_option);
diff --git a/indra/newview/lltoolcomp.cpp b/indra/newview/lltoolcomp.cpp
index b95b33439e..cb964082b8 100644
--- a/indra/newview/lltoolcomp.cpp
+++ b/indra/newview/lltoolcomp.cpp
@@ -65,6 +65,9 @@ const S32 HPAD = 4;
extern LLControlGroup gSavedSettings;
+// we use this in various places instead of NULL
+static LLTool* sNullTool = new LLTool(std::string("null"), NULL);
+
//-----------------------------------------------------------------------
// LLToolComposite
@@ -88,7 +91,9 @@ void LLToolComposite::setCurrentTool( LLTool* new_tool )
LLToolComposite::LLToolComposite(const std::string& name)
: LLTool(name),
- mCur(NULL), mDefault(NULL), mSelected(FALSE),
+ mCur(sNullTool),
+ mDefault(sNullTool),
+ mSelected(FALSE),
mMouseDown(FALSE), mManip(NULL), mSelectRect(NULL)
{
}
@@ -637,7 +642,7 @@ LLToolCompGun::LLToolCompGun()
{
mGun = new LLToolGun(this);
mGrab = new LLToolGrab(this);
- mNull = new LLTool(std::string("null"), this);
+ mNull = sNullTool;
setCurrentTool(mGun);
mDefault = mGun;
@@ -652,7 +657,8 @@ LLToolCompGun::~LLToolCompGun()
delete mGrab;
mGrab = NULL;
- delete mNull;
+ // don't delete a static object
+ // delete mNull;
mNull = NULL;
}
diff --git a/indra/newview/lltooldraganddrop.cpp b/indra/newview/lltooldraganddrop.cpp
index 741492a88a..0c0253a76a 100644
--- a/indra/newview/lltooldraganddrop.cpp
+++ b/indra/newview/lltooldraganddrop.cpp
@@ -40,6 +40,7 @@
#include "lldir.h"
#include "llagent.h"
+#include "llagentwearables.h"
#include "llviewercontrol.h"
#include "llfirstuse.h"
#include "llfloater.h"
@@ -48,6 +49,7 @@
#include "llgesturemgr.h"
#include "llhudeffecttrail.h"
#include "llhudmanager.h"
+#include "llinventorybridge.h"
#include "llinventorymodel.h"
#include "llinventoryview.h"
#include "llmutelist.h"
@@ -64,11 +66,12 @@
#include "llviewerregion.h"
#include "llviewerstats.h"
#include "llviewerwindow.h"
-#include "llvoavatar.h"
+#include "llvoavatarself.h"
#include "llvolume.h"
#include "llworld.h"
#include "object_flags.h"
#include "llimview.h"
+#include "llrootview.h"
// MAX ITEMS is based on (sizeof(uuid)+2) * count must be < MTUBYTES
@@ -847,7 +850,7 @@ void LLToolDragAndDrop::dragOrDrop( S32 x, S32 y, MASK mask, BOOL drop,
{
handled = TRUE;
- LLView* root_view = gViewerWindow->getRootView();
+ LLRootView* root_view = gViewerWindow->getRootView();
for (mCurItemIndex = 0; mCurItemIndex < (S32)mCargoIDs.size(); mCurItemIndex++)
{
@@ -1828,7 +1831,7 @@ BOOL LLToolDragAndDrop::isInventoryGiveAcceptable(LLInventoryItem* item)
BOOL copyable = FALSE;
if(item->getPermissions().allowCopyBy(gAgent.getID())) copyable = TRUE;
- LLVOAvatar* my_avatar = gAgent.getAvatarObject();
+ LLVOAvatarSelf* my_avatar = gAgent.getAvatarObject();
if(!my_avatar)
{
return FALSE;
@@ -1848,7 +1851,7 @@ BOOL LLToolDragAndDrop::isInventoryGiveAcceptable(LLInventoryItem* item)
break;
case LLAssetType::AT_BODYPART:
case LLAssetType::AT_CLOTHING:
- if(!copyable && gAgent.isWearingItem(item->getUUID()))
+ if(!copyable && gAgentWearables.isWearingItem(item->getUUID()))
{
acceptable = FALSE;
}
@@ -1878,7 +1881,7 @@ BOOL LLToolDragAndDrop::isInventoryGroupGiveAcceptable(LLInventoryItem* item)
return FALSE;
}
- LLVOAvatar* my_avatar = gAgent.getAvatarObject();
+ LLVOAvatarSelf* my_avatar = gAgent.getAvatarObject();
if(!my_avatar)
{
return FALSE;
@@ -1925,7 +1928,7 @@ EAcceptance LLToolDragAndDrop::willObjectAcceptInventory(LLViewerObject* obj, LL
// gAgent.getGroupID())
// && (obj->mPermModify || obj->mFlagAllowInventoryAdd));
BOOL worn = FALSE;
- LLVOAvatar* my_avatar = NULL;
+ LLVOAvatarSelf* my_avatar = NULL;
switch(item->getType())
{
case LLAssetType::AT_OBJECT:
@@ -1937,7 +1940,7 @@ EAcceptance LLToolDragAndDrop::willObjectAcceptInventory(LLViewerObject* obj, LL
break;
case LLAssetType::AT_BODYPART:
case LLAssetType::AT_CLOTHING:
- if(gAgent.isWearingItem(item->getUUID()))
+ if(gAgentWearables.isWearingItem(item->getUUID()))
{
worn = TRUE;
}
@@ -2081,7 +2084,7 @@ EAcceptance LLToolDragAndDrop::dad3dRezAttachmentFromInv(
}
// must not be already wearing it
- LLVOAvatar* avatar = gAgent.getAvatarObject();
+ LLVOAvatarSelf* avatar = gAgent.getAvatarObject();
if( !avatar || avatar->isWearingAttachment(item->getUUID()) )
{
return ACCEPT_NO;
@@ -2123,7 +2126,7 @@ EAcceptance LLToolDragAndDrop::dad3dRezObjectOnLand(
locateInventory(item, cat);
if(!item || !item->isComplete()) return ACCEPT_NO;
- LLVOAvatar* my_avatar = gAgent.getAvatarObject();
+ LLVOAvatarSelf* my_avatar = gAgent.getAvatarObject();
if( !my_avatar || my_avatar->isWearingAttachment( item->getUUID() ) )
{
return ACCEPT_NO;
@@ -2186,7 +2189,7 @@ EAcceptance LLToolDragAndDrop::dad3dRezObjectOnObject(
LLViewerInventoryCategory* cat;
locateInventory(item, cat);
if(!item || !item->isComplete()) return ACCEPT_NO;
- LLVOAvatar* my_avatar = gAgent.getAvatarObject();
+ LLVOAvatarSelf* my_avatar = gAgent.getAvatarObject();
if( !my_avatar || my_avatar->isWearingAttachment( item->getUUID() ) )
{
return ACCEPT_NO;
@@ -2384,7 +2387,7 @@ EAcceptance LLToolDragAndDrop::dad3dWearItem(
{
// Don't wear anything until initial wearables are loaded, can
// destroy clothing items.
- if (!gAgent.areWearablesLoaded())
+ if (!gAgentWearables.areWearablesLoaded())
{
LLNotifications::instance().add("CanNotChangeAppearanceUntilLoaded");
return ACCEPT_NO;
@@ -2479,7 +2482,7 @@ EAcceptance LLToolDragAndDrop::dad3dWearCategory(
{
// Don't wear anything until initial wearables are loaded, can
// destroy clothing items.
- if (!gAgent.areWearablesLoaded())
+ if (!gAgentWearables.areWearablesLoaded())
{
LLNotifications::instance().add("CanNotChangeAppearanceUntilLoaded");
return ACCEPT_NO;
@@ -2680,7 +2683,7 @@ EAcceptance LLToolDragAndDrop::dad3dGiveInventoryObject(
// cannot give away no-transfer objects
return ACCEPT_NO;
}
- LLVOAvatar* avatar = gAgent.getAvatarObject();
+ LLVOAvatarSelf* avatar = gAgent.getAvatarObject();
if(avatar && avatar->isWearingAttachment( item->getUUID() ) )
{
// You can't give objects that are attached to you
diff --git a/indra/newview/lltoolfocus.cpp b/indra/newview/lltoolfocus.cpp
index 4e8274a6ef..ca78073575 100644
--- a/indra/newview/lltoolfocus.cpp
+++ b/indra/newview/lltoolfocus.cpp
@@ -54,7 +54,7 @@
#include "llviewercamera.h"
#include "llviewerobject.h"
#include "llviewerwindow.h"
-#include "llvoavatar.h"
+#include "llvoavatarself.h"
#include "llmorphview.h"
// Globals
diff --git a/indra/newview/lltoolgrab.cpp b/indra/newview/lltoolgrab.cpp
index d9811dac6c..409549a66b 100644
--- a/indra/newview/lltoolgrab.cpp
+++ b/indra/newview/lltoolgrab.cpp
@@ -61,7 +61,7 @@
#include "llviewerobjectlist.h"
#include "llviewerregion.h"
#include "llviewerwindow.h"
-#include "llvoavatar.h"
+#include "llvoavatarself.h"
#include "llworld.h"
const S32 SLOP_DIST_SQ = 4;
@@ -885,7 +885,7 @@ void LLToolGrab::handleHoverInactive(S32 x, S32 y, MASK mask)
// Look for cursor against the edge of the screen
// Only works in fullscreen
- if (gSavedSettings.getBOOL("FullScreen"))
+ if (!gSavedSettings.getBOOL("NotFullScreen"))
{
if (gAgent.cameraThirdPerson() )
{
diff --git a/indra/newview/lltoolmgr.cpp b/indra/newview/lltoolmgr.cpp
index 5a8dd62f8d..e3ee209030 100644
--- a/indra/newview/lltoolmgr.cpp
+++ b/indra/newview/lltoolmgr.cpp
@@ -83,6 +83,7 @@ LLToolMgr::LLToolMgr()
mSelectedTool( NULL ),
mCurrentToolset( NULL )
{
+ // Not a panel, register these callbacks globally.
LLUICtrl::EnableCallbackRegistry::currentRegistrar().add("Build.Active", boost::bind(&LLToolMgr::inEdit, this));
LLUICtrl::EnableCallbackRegistry::currentRegistrar().add("Build.Enabled", boost::bind(&LLToolMgr::canEdit, this));
LLUICtrl::CommitCallbackRegistry::currentRegistrar().add("Build.Toggle", boost::bind(&LLToolMgr::toggleBuildMode, this));
diff --git a/indra/newview/lltoolmorph.cpp b/indra/newview/lltoolmorph.cpp
index 4577fc7677..af0d784a3e 100644
--- a/indra/newview/lltoolmorph.cpp
+++ b/indra/newview/lltoolmorph.cpp
@@ -61,7 +61,7 @@
#include "llviewerimagelist.h"
#include "llviewerobject.h"
#include "llviewerwindow.h"
-#include "llvoavatar.h"
+#include "llvoavatarself.h"
#include "pipeline.h"
@@ -144,7 +144,7 @@ BOOL LLVisualParamHint::needsRender()
void LLVisualParamHint::preRender(BOOL clear_depth)
{
- LLVOAvatar* avatarp = gAgent.getAvatarObject();
+ LLVOAvatarSelf* avatarp = gAgent.getAvatarObject();
mLastParamWeight = avatarp->getVisualParamWeight(mVisualParam);
avatarp->setVisualParamWeight(mVisualParam, mVisualParamWeight);
@@ -291,7 +291,7 @@ BOOL LLVisualParamReset::render()
{
if (sDirty)
{
- LLVOAvatar* avatarp = gAgent.getAvatarObject();
+ LLVOAvatarSelf* avatarp = gAgent.getAvatarObject();
avatarp->updateComposites();
avatarp->updateVisualParams();
avatarp->updateGeometry(avatarp->mDrawable);
diff --git a/indra/newview/lltoolobjpicker.cpp b/indra/newview/lltoolobjpicker.cpp
index 8a66069584..b2088a8232 100644
--- a/indra/newview/lltoolobjpicker.cpp
+++ b/indra/newview/lltoolobjpicker.cpp
@@ -48,6 +48,7 @@
#include "llviewercamera.h"
#include "llviewerwindow.h"
#include "lldrawable.h"
+#include "llrootview.h"
LLToolObjPicker::LLToolObjPicker()
@@ -62,7 +63,7 @@ LLToolObjPicker::LLToolObjPicker()
// returns TRUE if an object was selected
BOOL LLToolObjPicker::handleMouseDown(S32 x, S32 y, MASK mask)
{
- LLView* viewp = gViewerWindow->getRootView();
+ LLRootView* viewp = gViewerWindow->getRootView();
BOOL handled = viewp->handleMouseDown(x, y, mask);
mHitObjectID.setNull();
diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp
index 171b03bc5f..a6dcebc3b5 100644
--- a/indra/newview/lltoolpie.cpp
+++ b/indra/newview/lltoolpie.cpp
@@ -63,7 +63,7 @@
#include "llviewerparcelmgr.h"
#include "llviewerwindow.h"
#include "llviewermedia.h"
-#include "llvoavatar.h"
+#include "llvoavatarself.h"
#include "llworld.h"
#include "llui.h"
#include "llweb.h"
diff --git a/indra/newview/lltoolpipette.h b/indra/newview/lltoolpipette.h
index 533e8a7c95..3b6ebec67e 100644
--- a/indra/newview/lltoolpipette.h
+++ b/indra/newview/lltoolpipette.h
@@ -58,7 +58,7 @@ public:
virtual BOOL handleHover(S32 x, S32 y, MASK mask);
virtual BOOL handleToolTip(S32 x, S32 y, std::string& msg, LLRect *sticky_rect_screen);
- // Note: Don't return connection; use boost::bind + boost::signal::trackable to disconnect slots
+ // Note: Don't return connection; use boost::bind + boost::signals2::trackable to disconnect slots
typedef boost::signals2::signal<void (const LLTextureEntry& te)> signal_t;
void setToolSelectCallback(const signal_t::slot_type& cb) { mSignal.connect(cb); }
void setResult(BOOL success, const std::string& msg);
diff --git a/indra/newview/lltoolselect.cpp b/indra/newview/lltoolselect.cpp
index 23bb5bdd8b..97e2865179 100644
--- a/indra/newview/lltoolselect.cpp
+++ b/indra/newview/lltoolselect.cpp
@@ -48,7 +48,7 @@
#include "llviewerobjectlist.h"
#include "llviewerregion.h"
#include "llviewerwindow.h"
-#include "llvoavatar.h"
+#include "llvoavatarself.h"
#include "llworld.h"
// Globals
diff --git a/indra/newview/lluploaddialog.cpp b/indra/newview/lluploaddialog.cpp
index 2fddccfb36..f5160fd26c 100644
--- a/indra/newview/lluploaddialog.cpp
+++ b/indra/newview/lluploaddialog.cpp
@@ -41,6 +41,7 @@
#include "llkeyboard.h"
#include "llfocusmgr.h"
#include "llviewercontrol.h"
+#include "llrootview.h"
// static
LLUploadDialog* LLUploadDialog::sDialog = NULL;
diff --git a/indra/newview/llviewercamera.cpp b/indra/newview/llviewercamera.cpp
index a6d4dc1345..3f3c10a7c7 100644
--- a/indra/newview/llviewercamera.cpp
+++ b/indra/newview/llviewercamera.cpp
@@ -111,6 +111,7 @@ LLViewerCamera::LLViewerCamera() : LLCamera()
mScreenPixelArea = 0;
mZoomFactor = 1.f;
mZoomSubregion = 1;
+ gSavedSettings.getControl("CameraAngle")->getCommitSignal()->connect(boost::bind(&LLViewerCamera::updateCameraAngle, this, _2));
}
void LLViewerCamera::updateCameraLocation(const LLVector3 &center,
@@ -457,8 +458,15 @@ BOOL LLViewerCamera::projectPosAgentToScreen(const LLVector3 &pos_agent, LLCoord
}
}
+ LLRect world_view_rect = gViewerWindow->getWorldViewRect();
+ S32 viewport[4];
+ viewport[0] = world_view_rect.mLeft;
+ viewport[1] = world_view_rect.mBottom;
+ viewport[2] = world_view_rect.getWidth();
+ viewport[3] = world_view_rect.getHeight();
+
if (GL_TRUE == gluProject(pos_agent.mV[VX], pos_agent.mV[VY], pos_agent.mV[VZ],
- gGLModelView, gGLProjection, (GLint*)gGLViewport,
+ gGLModelView, gGLProjection, (GLint*)viewport,
&x, &y, &z))
{
// convert screen coordinates to virtual UI coordinates
@@ -466,9 +474,9 @@ BOOL LLViewerCamera::projectPosAgentToScreen(const LLVector3 &pos_agent, LLCoord
y /= gViewerWindow->getDisplayScale().mV[VY];
// should now have the x,y coords of grab_point in screen space
- const LLRect& window_rect = gViewerWindow->getWindowRect();
+ LLRect world_view_rect = gViewerWindow->getVirtualWorldViewRect();
- // ...sanity check
+ // convert to pixel coordinates
S32 int_x = lltrunc(x);
S32 int_y = lltrunc(y);
@@ -476,14 +484,14 @@ BOOL LLViewerCamera::projectPosAgentToScreen(const LLVector3 &pos_agent, LLCoord
if (clamp)
{
- if (int_x < window_rect.mLeft)
+ if (int_x < world_view_rect.mLeft)
{
- out_point.mX = window_rect.mLeft;
+ out_point.mX = world_view_rect.mLeft;
valid = FALSE;
}
- else if (int_x > window_rect.mRight)
+ else if (int_x > world_view_rect.mRight)
{
- out_point.mX = window_rect.mRight;
+ out_point.mX = world_view_rect.mRight;
valid = FALSE;
}
else
@@ -491,14 +499,14 @@ BOOL LLViewerCamera::projectPosAgentToScreen(const LLVector3 &pos_agent, LLCoord
out_point.mX = int_x;
}
- if (int_y < window_rect.mBottom)
+ if (int_y < world_view_rect.mBottom)
{
- out_point.mY = window_rect.mBottom;
+ out_point.mY = world_view_rect.mBottom;
valid = FALSE;
}
- else if (int_y > window_rect.mTop)
+ else if (int_y > world_view_rect.mTop)
{
- out_point.mY = window_rect.mTop;
+ out_point.mY = world_view_rect.mTop;
valid = FALSE;
}
else
@@ -512,19 +520,19 @@ BOOL LLViewerCamera::projectPosAgentToScreen(const LLVector3 &pos_agent, LLCoord
out_point.mX = int_x;
out_point.mY = int_y;
- if (int_x < window_rect.mLeft)
+ if (int_x < world_view_rect.mLeft)
{
valid = FALSE;
}
- else if (int_x > window_rect.mRight)
+ else if (int_x > world_view_rect.mRight)
{
valid = FALSE;
}
- if (int_y < window_rect.mBottom)
+ if (int_y < world_view_rect.mBottom)
{
valid = FALSE;
}
- else if (int_y > window_rect.mTop)
+ else if (int_y > world_view_rect.mTop)
{
valid = FALSE;
}
@@ -553,24 +561,30 @@ BOOL LLViewerCamera::projectPosAgentToScreenEdge(const LLVector3 &pos_agent,
in_front = FALSE;
}
+ LLRect world_view_rect = gViewerWindow->getWorldViewRect();
+ S32 viewport[4];
+ viewport[0] = world_view_rect.mLeft;
+ viewport[1] = world_view_rect.mBottom;
+ viewport[2] = world_view_rect.getWidth();
+ viewport[3] = world_view_rect.getHeight();
GLdouble x, y, z; // object's window coords, GL-style
if (GL_TRUE == gluProject(pos_agent.mV[VX], pos_agent.mV[VY],
pos_agent.mV[VZ], gGLModelView,
- gGLProjection, (GLint*)gGLViewport,
+ gGLProjection, (GLint*)viewport,
&x, &y, &z))
{
x /= gViewerWindow->getDisplayScale().mV[VX];
y /= gViewerWindow->getDisplayScale().mV[VY];
// should now have the x,y coords of grab_point in screen space
- const LLRect& window_rect = gViewerWindow->getVirtualWindowRect();
+ const LLRect& world_rect = gViewerWindow->getVirtualWorldViewRect();
// ...sanity check
S32 int_x = lltrunc(x);
S32 int_y = lltrunc(y);
// find the center
- GLdouble center_x = (GLdouble)(0.5f * (window_rect.mLeft + window_rect.mRight));
- GLdouble center_y = (GLdouble)(0.5f * (window_rect.mBottom + window_rect.mTop));
+ GLdouble center_x = (GLdouble)world_rect.getCenterX();
+ GLdouble center_y = (GLdouble)world_rect.getCenterY();
if (x == center_x && y == center_y)
{
@@ -591,41 +605,41 @@ BOOL LLViewerCamera::projectPosAgentToScreenEdge(const LLVector3 &pos_agent,
// the slope of the line is undefined
if (line_y > 0.f)
{
- int_y = window_rect.mTop;
+ int_y = world_rect.mTop;
}
else
{
- int_y = window_rect.mBottom;
+ int_y = world_rect.mBottom;
}
}
- else if (0 == window_rect.getWidth())
+ else if (0 == world_rect.getWidth())
{
// the diagonal slope of the view is undefined
- if (y < window_rect.mBottom)
+ if (y < world_rect.mBottom)
{
- int_y = window_rect.mBottom;
+ int_y = world_rect.mBottom;
}
- else if ( y > window_rect.mTop)
+ else if ( y > world_rect.mTop)
{
- int_y = window_rect.mTop;
+ int_y = world_rect.mTop;
}
}
else
{
F32 line_slope = (F32)(line_y / line_x);
- F32 rect_slope = ((F32)window_rect.getHeight()) / ((F32)window_rect.getWidth());
+ F32 rect_slope = ((F32)world_rect.getHeight()) / ((F32)world_rect.getWidth());
if (fabs(line_slope) > rect_slope)
{
if (line_y < 0.f)
{
// bottom
- int_y = window_rect.mBottom;
+ int_y = world_rect.mBottom;
}
else
{
// top
- int_y = window_rect.mTop;
+ int_y = world_rect.mTop;
}
int_x = lltrunc(((GLdouble)int_y - center_y) / line_slope + center_x);
}
@@ -634,12 +648,12 @@ BOOL LLViewerCamera::projectPosAgentToScreenEdge(const LLVector3 &pos_agent,
if (line_x < 0.f)
{
// left
- int_x = window_rect.mLeft;
+ int_x = world_rect.mLeft;
}
else
{
// right
- int_x = window_rect.mRight;
+ int_x = world_rect.mRight;
}
int_y = lltrunc(((GLdouble)int_x - center_x) * line_slope + center_y);
}
@@ -648,29 +662,30 @@ BOOL LLViewerCamera::projectPosAgentToScreenEdge(const LLVector3 &pos_agent,
// exactly parallel ==> push to the corners
if (line_x > 0.f)
{
- int_x = window_rect.mRight;
+ int_x = world_rect.mRight;
}
else
{
- int_x = window_rect.mLeft;
+ int_x = world_rect.mLeft;
}
if (line_y > 0.0f)
{
- int_y = window_rect.mTop;
+ int_y = world_rect.mTop;
}
else
{
- int_y = window_rect.mBottom;
+ int_y = world_rect.mBottom;
}
}
}
if (!in_front)
{
- int_x = window_rect.mLeft + window_rect.mRight - int_x;
- int_y = window_rect.mBottom + window_rect.mTop - int_y;
+ int_x = world_rect.mLeft + world_rect.mRight - int_x;
+ int_y = world_rect.mBottom + world_rect.mTop - int_y;
}
- out_point.mX = int_x;
- out_point.mY = int_y;
+
+ out_point.mX = int_x + world_rect.mLeft;
+ out_point.mY = int_y + world_rect.mBottom;
return TRUE;
}
return FALSE;
@@ -777,7 +792,7 @@ BOOL LLViewerCamera::areVertsVisible(LLViewerObject* volumep, BOOL all_verts)
// changes local camera and broadcasts change
/* virtual */ void LLViewerCamera::setView(F32 vertical_fov_rads)
{
- F32 old_fov = LLViewerCamera::getInstance()->getDefaultFOV();
+ F32 old_fov = LLViewerCamera::getInstance()->getView();
// cap the FoV
vertical_fov_rads = llclamp(vertical_fov_rads, getMinView(), getMaxView());
@@ -808,3 +823,11 @@ void LLViewerCamera::setDefaultFOV(F32 vertical_fov_rads) {
mCameraFOVDefault = vertical_fov_rads;
}
+
+// static
+void LLViewerCamera::updateCameraAngle( void* user_data, const LLSD& value)
+{
+ LLViewerCamera* self=(LLViewerCamera*)user_data;
+ self->setDefaultFOV(value.asReal());
+}
+
diff --git a/indra/newview/llviewercamera.h b/indra/newview/llviewercamera.h
index 6a0c42beec..9615d00200 100644
--- a/indra/newview/llviewercamera.h
+++ b/indra/newview/llviewercamera.h
@@ -61,6 +61,7 @@ public:
const LLVector3 &point_of_interest);
static void updateFrustumPlanes(LLCamera& camera, BOOL ortho = FALSE, BOOL zflip = FALSE, BOOL no_hacks = FALSE);
+ static void updateCameraAngle(void* user_data, const LLSD& value);
void setPerspective(BOOL for_selection, S32 x, S32 y_from_bot, S32 width, S32 height, BOOL limit_select_distance, F32 z_near = 0, F32 z_far = 0);
const LLMatrix4 &getProjection() const;
diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp
index ed280073ee..320b950649 100644
--- a/indra/newview/llviewercontrol.cpp
+++ b/indra/newview/llviewercontrol.cpp
@@ -46,14 +46,13 @@
#include "llflexibleobject.h"
#include "llfeaturemanager.h"
#include "llviewershadermgr.h"
-#include "llpanelgeneral.h"
-#include "llpanelinput.h"
+
#include "llsky.h"
#include "llvieweraudio.h"
#include "llviewerimagelist.h"
#include "llviewerthrottle.h"
#include "llviewerwindow.h"
-#include "llvoavatar.h"
+#include "llvoavatarself.h"
#include "llvoiceclient.h"
#include "llvosky.h"
#include "llvotree.h"
@@ -122,7 +121,7 @@ static bool handleSetShaderChanged(const LLSD& newvalue)
static bool handleSetSelfInvisible( const LLSD& newvalue)
{
- LLVOAvatar::onChangeSelfInvisible( newvalue.asBoolean() );
+ LLVOAvatarSelf::onChangeSelfInvisible( newvalue.asBoolean() );
return true;
}
@@ -379,7 +378,7 @@ static bool handleRenderUseImpostorsChanged(const LLSD& newvalue)
static bool handleRenderDebugGLChanged(const LLSD& newvalue)
{
- gDebugGL = newvalue.asBoolean();
+ gDebugGL = newvalue.asBoolean() || gDebugSession;
gGL.clearErrors();
return true;
}
diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp
index e3f70db238..a340514e3b 100644
--- a/indra/newview/llviewerdisplay.cpp
+++ b/indra/newview/llviewerdisplay.cpp
@@ -64,7 +64,7 @@
#include "llviewerobjectlist.h"
#include "llviewerparcelmgr.h"
#include "llviewerwindow.h"
-#include "llvoavatar.h"
+#include "llvoavatarself.h"
#include "llvograss.h"
#include "llworld.h"
#include "pipeline.h"
@@ -164,6 +164,7 @@ void display_startup()
void display_update_camera()
{
+ LLMemType mt_uc(LLMemType::MTYPE_DISPLAY_UPDATE_CAMERA);
llpushcallstacks ;
// TODO: cut draw distance down if customizing avatar?
// TODO: cut draw distance on per-parcel basis?
@@ -210,6 +211,7 @@ void display_stats()
// Paint the display!
void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
{
+ LLMemType mt_render(LLMemType::MTYPE_RENDER);
LLFastTimer t(LLFastTimer::FTM_RENDER);
if (LLPipeline::sRenderFrameTest)
@@ -227,8 +229,12 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
LLGLState::checkStates();
LLGLState::checkTextureChannels();
+ stop_glerror();
+
gPipeline.disableLights();
+ stop_glerror();
+
// Don't draw if the window is hidden or minimized.
// In fact, must explicitly check the minimized state before drawing.
// Attempting to draw into a minimized window causes a GL error. JC
@@ -239,10 +245,14 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
// Clean up memory the pools may have allocated
if (rebuild)
{
+ stop_glerror();
gPipeline.rebuildPools();
+ stop_glerror();
}
+ stop_glerror();
gViewerWindow->returnEmptyPicks();
+ stop_glerror();
return;
}
@@ -503,17 +513,23 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
}
}
- gViewerWindow->setupViewport();
+ gViewerWindow->setup3DViewport();
gPipeline.resetFrameStats(); // Reset per-frame statistics.
if (!gDisconnected)
{
+ LLMemType mt_du(LLMemType::MTYPE_DISPLAY_UPDATE);
LLAppViewer::instance()->pingMainloopTimeout("Display:Update");
if (gPipeline.hasRenderType(LLPipeline::RENDER_TYPE_HUD))
{ //don't draw hud objects in this frame
gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_HUD);
}
-
+
+ if (gPipeline.hasRenderType(LLPipeline::RENDER_TYPE_HUD_PARTICLES))
+ { //don't draw hud particles in this frame
+ gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_HUD_PARTICLES);
+ }
+
//upkeep gl name pools
LLGLNamePool::upkeepPools();
@@ -522,15 +538,21 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
stop_glerror();
// *TODO: merge these two methods
- LLHUDManager::getInstance()->updateEffects();
- LLHUDObject::updateAll();
- stop_glerror();
-
- const F32 max_geom_update_time = 0.005f*10.f*gFrameIntervalSeconds; // 50 ms/second update time
- gPipeline.createObjects(max_geom_update_time);
- gPipeline.updateGeom(max_geom_update_time);
- stop_glerror();
-
+ {
+ LLMemType mt_uh(LLMemType::MTYPE_DISPLAY_UPDATE_HUD);
+ LLHUDManager::getInstance()->updateEffects();
+ LLHUDObject::updateAll();
+ stop_glerror();
+ }
+
+ {
+ LLMemType mt_ug(LLMemType::MTYPE_DISPLAY_UPDATE_GEOM);
+ const F32 max_geom_update_time = 0.005f*10.f*gFrameIntervalSeconds; // 50 ms/second update time
+ gPipeline.createObjects(max_geom_update_time);
+ gPipeline.updateGeom(max_geom_update_time);
+ stop_glerror();
+ }
+
S32 water_clip = 0;
if ((LLViewerShaderMgr::instance()->getVertexShaderLevel(LLViewerShaderMgr::SHADER_ENVIRONMENT) > 1) &&
gPipeline.hasRenderType(LLPipeline::RENDER_TYPE_WATER))
@@ -544,7 +566,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
water_clip = 1;
}
}
-
+
LLAppViewer::instance()->pingMainloopTimeout("Display:Cull");
//Increment drawable frame counter
@@ -593,6 +615,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
LLAppViewer::instance()->pingMainloopTimeout("Display:Swap");
{
+ LLMemType mt_ds(LLMemType::MTYPE_DISPLAY_SWAP);
{
LLFastTimer ftm(LLFastTimer::FTM_CLIENT_COPY);
LLVertexBuffer::clientCopy(0.016);
@@ -635,7 +658,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
glLoadMatrixf(proj.m);
glMatrixMode(GL_MODELVIEW);
glLoadMatrixf(mod.m);
- gViewerWindow->setupViewport();
+ gViewerWindow->setup3DViewport();
LLGLState::checkStates();
LLGLState::checkTextureChannels();
@@ -647,6 +670,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
if (!for_snapshot)
{
+ LLMemType mt_gw(LLMemType::MTYPE_DISPLAY_GEN_REFLECTION);
LLAppViewer::instance()->pingMainloopTimeout("Display:Imagery");
gPipeline.generateWaterReflection(*LLViewerCamera::getInstance());
}
@@ -663,6 +687,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
llpushcallstacks ;
{
+ LLMemType mt_iu(LLMemType::MTYPE_DISPLAY_IMAGE_UPDATE);
LLFastTimer t(LLFastTimer::FTM_IMAGE_UPDATE);
LLViewerImage::updateClass(LLViewerCamera::getInstance()->getVelocityStat()->getMean(),
@@ -685,6 +710,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
//
LLAppViewer::instance()->pingMainloopTimeout("Display:StateSort");
{
+ LLMemType mt_ss(LLMemType::MTYPE_DISPLAY_STATE_SORT);
gPipeline.stateSort(*LLViewerCamera::getInstance(), result);
stop_glerror();
@@ -703,6 +729,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
LLPipeline::sUseOcclusion = occlusion;
{
+ LLMemType mt_ds(LLMemType::MTYPE_DISPLAY_SKY);
LLAppViewer::instance()->pingMainloopTimeout("Display:Sky");
LLFastTimer t(LLFastTimer::FTM_UPDATE_SKY);
gSky.updateSky();
@@ -781,7 +808,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
if (!(LLAppViewer::instance()->logoutRequestSent() && LLAppViewer::instance()->hasSavedFinalSnapshot())
&& !gRestoreGL)
{
-
+ LLMemType mt_rg(LLMemType::MTYPE_DISPLAY_RENDER_GEOM);
gGL.setColorMask(true, false);
if (LLPipeline::sRenderDeferred && !LLPipeline::sUnderWaterRender)
{
@@ -807,6 +834,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
if (to_texture)
{
+ LLMemType mt_rf(LLMemType::MTYPE_DISPLAY_RENDER_FLUSH);
if (LLPipeline::sRenderDeferred && !LLPipeline::sUnderWaterRender)
{
gPipeline.mDeferredScreen.flush();
@@ -857,6 +885,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
void render_hud_attachments()
{
+ LLMemType mt_ra(LLMemType::MTYPE_DISPLAY_RENDER_ATTACHMENTS);
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glMatrixMode(GL_MODELVIEW);
@@ -877,16 +906,26 @@ void render_hud_attachments()
hud_cam.setOrigin(-1.f,0,0);
hud_cam.setAxes(LLVector3(1,0,0), LLVector3(0,1,0), LLVector3(0,0,1));
LLViewerCamera::updateFrustumPlanes(hud_cam, TRUE);
+
+ bool render_particles = gPipeline.hasRenderType(LLPipeline::RENDER_TYPE_PARTICLES) && gSavedSettings.getBOOL("RenderHUDParticles");
//only render hud objects
U32 mask = gPipeline.getRenderTypeMask();
+ // turn off everything
gPipeline.setRenderTypeMask(0);
- if (!gPipeline.hasRenderType(LLPipeline::RENDER_TYPE_HUD))
+ // turn on HUD
+ gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_HUD);
+ // turn on HUD particles
+ gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_HUD_PARTICLES);
+
+ // if particles are off, turn off hud-particles as well
+ if (!render_particles)
{
- gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_HUD);
+ // turn back off HUD particles
+ gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_HUD_PARTICLES);
}
- BOOL has_ui = gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_UI);
+ bool has_ui = gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_UI);
if (has_ui)
{
gPipeline.toggleRenderDebugFeature((void*) LLPipeline::RENDER_DEBUG_FEATURE_UI);
@@ -1005,6 +1044,7 @@ BOOL setup_hud_matrices(const LLRect& screen_region)
void render_ui(F32 zoom_factor, int subfield)
{
+ LLMemType mt_ru(LLMemType::MTYPE_DISPLAY_RENDER_UI);
LLGLState::checkStates();
glPushMatrix();
diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp
index 95fd896138..03c4915e66 100644
--- a/indra/newview/llviewerfloaterreg.cpp
+++ b/indra/newview/llviewerfloaterreg.cpp
@@ -38,18 +38,30 @@
#include "llviewerfloaterreg.h"
#include "llcompilequeue.h"
+#include "llfloaterabout.h"
+#include "llfloaterauction.h"
+#include "llfloateraddlandmark.h"
#include "llfloateravatarinfo.h"
+#include "llfloaterbuildoptions.h"
+#include "llfloaterbump.h"
#include "llfloaterchat.h"
#include "llfloaterchatterbox.h"
#include "llfloaterdirectory.h"
#include "llfloaterjoystick.h"
+#include "llfloaternotificationsconsole.h"
+#include "llfloaterlagmeter.h"
#include "llfloatermap.h"
#include "llfloatermemleak.h"
+#include "llfloatermute.h"
#include "llfloaterpreference.h"
#include "llfloatersnapshot.h"
+#include "llfloatersettingsdebug.h"
#include "llfloatertools.h"
+#include "llfloateruipreview.h"
+#include "llfloatervoicedevicesettings.h"
#include "llfloaterworldmap.h"
#include "llinventoryview.h"
+#include "llnearbychathistory.h"
#include "llpreviewanim.h"
#include "llpreviewgesture.h"
@@ -58,21 +70,38 @@
#include "llpreviewscript.h"
#include "llpreviewsound.h"
#include "llpreviewtexture.h"
+#include "llfloaterminiinspector.h"
void LLViewerFloaterReg::registerFloaters()
{
+ LLFloaterReg::add("mini_inspector", "panel_mini_inspector.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterMiniInspector>);
LLFloaterReg::add("preferences", "floater_preferences.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPreference>);
+ LLFloaterReg::add("sl_about", "floater_about.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterAbout>);
LLFloaterReg::add("snapshot", "floater_snapshot.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSnapshot>);
LLFloaterReg::add("search", "floater_directory.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterDirectory>);
LLFloaterReg::add("build", "floater_tools.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterTools>);
LLFloaterReg::add("world_map", "floater_world_map.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterWorldMap>);
LLFloaterReg::add("mini_map", "floater_map.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterMap>);
LLFloaterReg::add("inventory", "floater_inventory.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLInventoryView>);
+ LLFloaterReg::add("add_landmark", "floater_add_landmark.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterAddLandmark>);
+ LLFloaterReg::add("mute", "floater_mute.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterMute>);
+
+ LLFloaterReg::add("auction", "floater_auction.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterAuction>);
+ LLFloaterReg::add("build_options", "floater_build_options.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterBuildOptions>);
+ LLFloaterReg::add("bumps", "floater_bumps.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterBump>);
+ LLFloaterReg::add("notifications_console", "floater_notifications_console.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterNotificationConsole>);
+ LLFloaterReg::add("settings_debug", "floater_settings_debug.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSettingsDebug>);
+ LLFloaterReg::add("lagmeter", "floater_lagmeter.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterLagMeter>);
+ LLFloaterReg::add("ui_preview", "floater_ui_preview.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterUIPreview>);
+ LLFloaterReg::add("test_widgets", "floater_test_widgets.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloater>);
+
LLFloaterReg::add("pref_joystick", "floater_joystick.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterJoystick>);
+ LLFloaterReg::add("pref_voicedevicesettings", "floater_device_settings.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterVoiceDeviceSettings>);
LLFloaterReg::add("communicate", "floater_chatterbox.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterChatterBox>);
LLFloaterReg::add("chat", "floater_chat_history.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterChat>);
+ LLFloaterReg::add("nearby_chat", "floater_nearby_chat.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLNearbyChatHistory>);
LLFloaterReg::add("contacts", "floater_my_friends.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterMyFriends>);
LLFloaterReg::add("compile_queue", "floater_script_queue.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterCompileQueue>);
@@ -81,6 +110,7 @@ void LLViewerFloaterReg::registerFloaters()
LLFloaterReg::add("stop_queue", "floater_script_queue.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterNotRunQueue>);
LLFloaterReg::add("preview_avatar", "floater_profile.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterAvatarInfo>);
+ LLFloaterReg::add("me_profile", "floater_me.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterAvatarInfo>);
LLFloaterReg::add("preview_anim", "floater_preview_animation.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLPreviewAnim>, "preview");
LLFloaterReg::add("preview_gesture", "floater_preview_gesture.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLPreviewGesture>, "preview");
diff --git a/indra/newview/llviewergesture.cpp b/indra/newview/llviewergesture.cpp
index 168f9af1d1..2fb56fbcb8 100644
--- a/indra/newview/llviewergesture.cpp
+++ b/indra/newview/llviewergesture.cpp
@@ -47,6 +47,7 @@
#include "llviewermessage.h" // send_guid_sound_trigger
#include "llviewernetwork.h"
#include "llagent.h"
+#include "llbottomtray.h"
// Globals
LLViewerGestureList gGestureList;
@@ -136,7 +137,7 @@ void LLViewerGesture::doTrigger( BOOL send_chat )
{
// Don't play nodding animation, since that might not blend
// with the gesture animation.
- gChatBar->sendChatFromViewer(mOutputString, CHAT_TYPE_NORMAL, FALSE);
+ LLBottomTray::getInstance()->sendChatFromViewer(mOutputString, CHAT_TYPE_NORMAL, FALSE);
}
}
diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp
index b1482d5ce4..45d24ee7e8 100644
--- a/indra/newview/llviewerinventory.cpp
+++ b/indra/newview/llviewerinventory.cpp
@@ -44,6 +44,7 @@
#include "llimview.h"
#include "llgesturemgr.h"
+#include "llinventorybridge.h"
#include "llinventoryview.h"
#include "llviewerregion.h"
@@ -308,8 +309,8 @@ bool LLViewerInventoryItem::exportFileLocal(LLFILE* fp) const
fprintf(fp, "\t\tparent_id\t%s\n", uuid_str.c_str());
mPermissions.exportFile(fp);
fprintf(fp, "\t\ttype\t%s\n", LLAssetType::lookup(mType));
- const char* inv_type_str = LLInventoryType::lookup(mInventoryType);
- if(inv_type_str) fprintf(fp, "\t\tinv_type\t%s\n", inv_type_str);
+ const std::string inv_type_str = LLInventoryType::lookup(mInventoryType);
+ if(!inv_type_str.empty()) fprintf(fp, "\t\tinv_type\t%s\n", inv_type_str.c_str());
fprintf(fp, "\t\tname\t%s|\n", mName.c_str());
fprintf(fp, "\t\tcreation_date\t%d\n", (S32) mCreationDate);
fprintf(fp,"\t}\n");
@@ -798,3 +799,187 @@ void copy_inventory_from_notecard(const LLUUID& object_id, const LLUUID& notecar
viewer_region->getCapAPI().post(request);
}
+
+void create_new_item(const std::string& name,
+ const LLUUID& parent_id,
+ LLAssetType::EType asset_type,
+ LLInventoryType::EType inv_type,
+ U32 next_owner_perm)
+{
+ std::string desc;
+ LLAssetType::generateDescriptionFor(asset_type, desc);
+ next_owner_perm = (next_owner_perm) ? next_owner_perm : PERM_MOVE | PERM_TRANSFER;
+
+
+ if (inv_type == LLInventoryType::IT_GESTURE)
+ {
+ LLPointer<LLInventoryCallback> cb = new CreateGestureCallback();
+ create_inventory_item(gAgent.getID(), gAgent.getSessionID(),
+ parent_id, LLTransactionID::tnull, name, desc, asset_type, inv_type,
+ NOT_WEARABLE, next_owner_perm, cb);
+ }
+ else
+ {
+ LLPointer<LLInventoryCallback> cb = NULL;
+ create_inventory_item(gAgent.getID(), gAgent.getSessionID(),
+ parent_id, LLTransactionID::tnull, name, desc, asset_type, inv_type,
+ NOT_WEARABLE, next_owner_perm, cb);
+ }
+
+}
+
+const std::string NEW_LSL_NAME = "New Script"; // *TODO:Translate? (probably not)
+const std::string NEW_NOTECARD_NAME = "New Note"; // *TODO:Translate? (probably not)
+const std::string NEW_GESTURE_NAME = "New Gesture"; // *TODO:Translate? (probably not)
+
+void menu_create_inventory_item(LLFolderView* folder, LLFolderBridge *bridge, const LLSD& userdata)
+{
+ std::string type = userdata.asString();
+
+ if ("category" == type)
+ {
+ LLUUID category;
+ if (bridge)
+ {
+ category = gInventory.createNewCategory(bridge->getUUID(), LLAssetType::AT_NONE, LLStringUtil::null);
+ }
+ else
+ {
+ category = gInventory.createNewCategory(gAgent.getInventoryRootID(), LLAssetType::AT_NONE, LLStringUtil::null);
+ }
+ gInventory.notifyObservers();
+ folder->setSelectionByID(category, TRUE);
+ }
+ else if ("lsl" == type)
+ {
+ LLUUID parent_id = bridge ? bridge->getUUID() : gInventory.findCategoryUUIDForType(LLAssetType::AT_LSL_TEXT);
+ create_new_item(NEW_LSL_NAME,
+ parent_id,
+ LLAssetType::AT_LSL_TEXT,
+ LLInventoryType::IT_LSL,
+ PERM_MOVE | PERM_TRANSFER);
+ }
+ else if ("notecard" == type)
+ {
+ LLUUID parent_id = bridge ? bridge->getUUID() : gInventory.findCategoryUUIDForType(LLAssetType::AT_NOTECARD);
+ create_new_item(NEW_NOTECARD_NAME,
+ parent_id,
+ LLAssetType::AT_NOTECARD,
+ LLInventoryType::IT_NOTECARD,
+ PERM_ALL);
+ }
+ else if ("gesture" == type)
+ {
+ LLUUID parent_id = bridge ? bridge->getUUID() : gInventory.findCategoryUUIDForType(LLAssetType::AT_GESTURE);
+ create_new_item(NEW_GESTURE_NAME,
+ parent_id,
+ LLAssetType::AT_GESTURE,
+ LLInventoryType::IT_GESTURE,
+ PERM_ALL);
+ }
+ else if ("shirt" == type)
+ {
+ LLUUID parent_id = bridge ? bridge->getUUID() : gInventory.findCategoryUUIDForType(LLAssetType::AT_CLOTHING);
+ LLFolderBridge::createWearable(parent_id, WT_SHIRT);
+ }
+ else if ("pants" == type)
+ {
+ LLUUID parent_id = bridge ? bridge->getUUID() : gInventory.findCategoryUUIDForType(LLAssetType::AT_CLOTHING);
+ LLFolderBridge::createWearable(parent_id, WT_PANTS);
+ }
+ else if ("shoes" == type)
+ {
+ LLUUID parent_id = bridge ? bridge->getUUID() : gInventory.findCategoryUUIDForType(LLAssetType::AT_CLOTHING);
+ LLFolderBridge::createWearable(parent_id, WT_SHOES);
+ }
+ else if ("socks" == type)
+ {
+ LLUUID parent_id = bridge ? bridge->getUUID() : gInventory.findCategoryUUIDForType(LLAssetType::AT_CLOTHING);
+ LLFolderBridge::createWearable(parent_id, WT_SOCKS);
+ }
+ else if ("jacket" == type)
+ {
+ LLUUID parent_id = bridge ? bridge->getUUID() : gInventory.findCategoryUUIDForType(LLAssetType::AT_CLOTHING);
+ LLFolderBridge::createWearable(parent_id, WT_JACKET);
+ }
+ else if ("skirt" == type)
+ {
+ LLUUID parent_id = bridge ? bridge->getUUID() : gInventory.findCategoryUUIDForType(LLAssetType::AT_CLOTHING);
+ LLFolderBridge::createWearable(parent_id, WT_SKIRT);
+ }
+ else if ("gloves" == type)
+ {
+ LLUUID parent_id = bridge ? bridge->getUUID() : gInventory.findCategoryUUIDForType(LLAssetType::AT_CLOTHING);
+ LLFolderBridge::createWearable(parent_id, WT_GLOVES);
+ }
+ else if ("undershirt" == type)
+ {
+ LLUUID parent_id = bridge ? bridge->getUUID() : gInventory.findCategoryUUIDForType(LLAssetType::AT_CLOTHING);
+ LLFolderBridge::createWearable(parent_id, WT_UNDERSHIRT);
+ }
+ else if ("underpants" == type)
+ {
+ LLUUID parent_id = bridge ? bridge->getUUID() : gInventory.findCategoryUUIDForType(LLAssetType::AT_CLOTHING);
+ LLFolderBridge::createWearable(parent_id, WT_UNDERPANTS);
+ }
+ else if ("shape" == type)
+ {
+ LLUUID parent_id = bridge ? bridge->getUUID() : gInventory.findCategoryUUIDForType(LLAssetType::AT_BODYPART);
+ LLFolderBridge::createWearable(parent_id, WT_SHAPE);
+ }
+ else if ("skin" == type)
+ {
+ LLUUID parent_id = bridge ? bridge->getUUID() : gInventory.findCategoryUUIDForType(LLAssetType::AT_BODYPART);
+ LLFolderBridge::createWearable(parent_id, WT_SKIN);
+ }
+ else if ("hair" == type)
+ {
+ LLUUID parent_id = bridge ? bridge->getUUID() : gInventory.findCategoryUUIDForType(LLAssetType::AT_BODYPART);
+ LLFolderBridge::createWearable(parent_id, WT_HAIR);
+ }
+ else if ("eyes" == type)
+ {
+ LLUUID parent_id = bridge ? bridge->getUUID() : gInventory.findCategoryUUIDForType(LLAssetType::AT_BODYPART);
+ LLFolderBridge::createWearable(parent_id, WT_EYES);
+ }
+
+ folder->setNeedsAutoRename(TRUE);
+}
+
+LLAssetType::EType LLViewerInventoryItem::getType() const
+{
+ if (mType == LLAssetType::AT_LINK)
+ {
+ LLInventoryItem *linked_item = gInventory.getItem(mAssetUUID);
+ if (linked_item)
+ {
+ return linked_item->getType();
+ }
+ }
+ return LLInventoryItem::getType();
+}
+
+const LLUUID& LLViewerInventoryItem::getAssetUUID() const
+{
+ if (mType == LLAssetType::AT_LINK)
+ {
+ LLInventoryItem *linked_item = gInventory.getItem(mAssetUUID);
+ if (linked_item)
+ {
+ return linked_item->getAssetUUID();
+ }
+ }
+
+ return LLInventoryItem::getAssetUUID();
+}
+
+const std::string& LLViewerInventoryItem::getName() const
+{
+ if (mType == LLAssetType::AT_LINK)
+ {
+ return LLInventoryItem::getName(); //+" link";
+ }
+
+ return LLInventoryItem::getName();
+}
+
diff --git a/indra/newview/llviewerinventory.h b/indra/newview/llviewerinventory.h
index 1ddf8a58f9..8318931dde 100644
--- a/indra/newview/llviewerinventory.h
+++ b/indra/newview/llviewerinventory.h
@@ -37,6 +37,9 @@
#include "llframetimer.h"
#include "llwearable.h"
+class LLFolderView;
+class LLFolderBridge;
+
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Class LLViewerInventoryItem
//
@@ -53,6 +56,10 @@ protected:
~LLViewerInventoryItem( void ); // ref counted
public:
+ virtual LLAssetType::EType getType() const;
+ virtual const LLUUID& getAssetUUID() const;
+ virtual const std::string& getName() const;
+
// construct a complete viewer inventory item
LLViewerInventoryItem(const LLUUID& uuid, const LLUUID& parent_uuid,
const LLPermissions& permissions,
@@ -286,4 +293,8 @@ void copy_inventory_from_notecard(const LLUUID& object_id,
U32 callback_id = 0);
+void menu_create_inventory_item(LLFolderView* folder,
+ LLFolderBridge* bridge,
+ const LLSD& userdata);
+
#endif // LL_LLVIEWERINVENTORY_H
diff --git a/indra/newview/llviewerjointattachment.h b/indra/newview/llviewerjointattachment.h
index 4847ac7a72..c003579684 100644
--- a/indra/newview/llviewerjointattachment.h
+++ b/indra/newview/llviewerjointattachment.h
@@ -71,20 +71,20 @@ public:
void setPieSlice(S32 pie_slice) { mPieSlice = pie_slice; }
void setVisibleInFirstPerson(BOOL visibility) { mVisibleInFirst = visibility; }
- BOOL getVisibleInFirstPerson() { return mVisibleInFirst; }
+ BOOL getVisibleInFirstPerson() const { return mVisibleInFirst; }
void setGroup(S32 group) { mGroup = group; }
void setOriginalPosition(LLVector3 &position);
void setAttachmentVisibility(BOOL visible);
void setIsHUDAttachment(BOOL is_hud) { mIsHUDAttachment = is_hud; }
- BOOL getIsHUDAttachment() { return mIsHUDAttachment; }
+ BOOL getIsHUDAttachment() const { return mIsHUDAttachment; }
- BOOL isAnimatable() { return FALSE; }
+ BOOL isAnimatable() const { return FALSE; }
- S32 getGroup() { return mGroup; }
- S32 getPieSlice() { return mPieSlice; }
- LLViewerObject *getObject() { return mAttachedObject; }
- S32 getNumObjects() { return (mAttachedObject ? 1 : 0); }
- const LLUUID& getItemID() { return mItemID; }
+ S32 getGroup() const { return mGroup; }
+ S32 getPieSlice() const { return mPieSlice; }
+ LLViewerObject *getObject() const { return mAttachedObject; }
+ S32 getNumObjects() const { return (mAttachedObject ? 1 : 0); }
+ const LLUUID& getItemID() const { return mItemID; }
//
// unique methods
diff --git a/indra/newview/llviewerkeyboard.cpp b/indra/newview/llviewerkeyboard.cpp
index bbcb6240b6..ab5cdeba44 100644
--- a/indra/newview/llviewerkeyboard.cpp
+++ b/indra/newview/llviewerkeyboard.cpp
@@ -43,7 +43,7 @@
#include "llmoveview.h"
#include "lltoolfocus.h"
#include "llviewerwindow.h"
-#include "llvoavatar.h"
+#include "llvoavatarself.h"
//
// Constants
@@ -500,7 +500,8 @@ void stop_moving( EKeystate s )
void start_chat( EKeystate s )
{
// start chat
- gChatBar->startChat(NULL);
+ LLChatBar::startChat(NULL);
+// gChatBar->startChat(NULL);
}
void start_gesture( EKeystate s )
@@ -508,16 +509,18 @@ void start_gesture( EKeystate s )
if (KEYSTATE_UP == s &&
!(gFocusMgr.getKeyboardFocus() && gFocusMgr.getKeyboardFocus()->acceptsTextInput()))
{
- if (gChatBar->getCurrentChat().empty())
- {
- // No existing chat in chat editor, insert '/'
- gChatBar->startChat("/");
- }
- else
- {
- // Don't overwrite existing text in chat editor
- gChatBar->startChat(NULL);
- }
+ //TODO* remove DUMMY chatbar
+ LLChatBar::startChat(NULL);
+// if (gChatBar->getCurrentChat().empty())
+// {
+// // No existing chat in chat editor, insert '/'
+// gChatBar->startChat("/");
+// }
+// else
+// {
+// // Don't overwrite existing text in chat editor
+// gChatBar->startChat(NULL);
+// }
}
}
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 5647b6889b..826aca5e64 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -66,7 +66,7 @@
// newview includes
#include "llagent.h"
-
+#include "llagentwearables.h"
#include "llagentpilot.h"
#include "llbox.h"
#include "llcallingcard.h"
@@ -86,7 +86,6 @@
#include "llfloaterbuycurrency.h"
#include "llfloateractivespeakers.h"
#include "llfloateranimpreview.h"
-#include "llfloateravatarinfo.h"
#include "llfloateravatartextures.h"
#include "llfloaterbeacons.h"
#include "llfloaterbuildoptions.h"
@@ -101,7 +100,6 @@
#include "llfloaterdaycycle.h"
#include "llfloaterdirectory.h"
#include "llfloaterchatterbox.h"
-#include "llfloaterfriends.h"
#include "llfloaterfonttest.h"
#include "llfloatergesture.h"
#include "llfloatergodtools.h"
@@ -123,6 +121,7 @@
#include "llfloaterperms.h"
#include "llfloaterpostprocess.h"
#include "llfloaterpreference.h"
+#include "llfloaterreg.h"
#include "llfloaterregioninfo.h"
#include "llfloaterreporter.h"
#include "llfloaterscriptdebug.h"
@@ -134,6 +133,7 @@
#include "llfloaterworldmap.h"
#include "llfloatermemleak.h"
#include "llfasttimerview.h"
+#include "llfriendactions.h"
#include "llmemoryview.h"
#include "llgivemoney.h"
#include "llgroupmgr.h"
@@ -144,6 +144,7 @@
#include "llimagebmp.h"
#include "llimagej2c.h"
#include "llimagetga.h"
+#include "llinventorybridge.h"
#include "llinventorymodel.h"
#include "llinventoryview.h"
#include "llkeyboard.h"
@@ -158,6 +159,7 @@
#include "llparcel.h"
#include "llprimitive.h"
#include "llresmgr.h"
+#include "llrootview.h"
#include "llselectmgr.h"
#include "llsky.h"
#include "llstatusbar.h"
@@ -177,13 +179,14 @@
#include "lltrans.h"
#include "lluictrlfactory.h"
#include "lluploaddialog.h"
+#include "lluserauth.h"
#include "lluuid.h"
#include "llviewercamera.h"
#include "llviewergenericmessage.h"
#include "llviewergesture.h"
#include "llviewerimagelist.h" // gImageList
#include "llviewerinventory.h"
-#include "llviewermenufile.h"// init_menu_file()
+#include "llviewermenufile.h" // init_menu_file()
#include "llviewermessage.h"
#include "llviewernetwork.h"
#include "llviewerobjectlist.h"
@@ -193,6 +196,7 @@
#include "llviewerstats.h"
#include "llviewerwindow.h"
#include "llvoavatar.h"
+#include "llvoavatarself.h"
#include "llvolume.h"
#include "llweb.h"
#include "llworld.h"
@@ -205,11 +209,11 @@
#include "llwlanimator.h"
#include "llwlparammanager.h"
#include "llwaterparammanager.h"
+#include "llfloaternotificationsconsole.h"
#include "lltexlayer.h"
using namespace LLVOAvatarDefines;
-using namespace LLOldEvents;
BOOL enable_land_build(void*);
BOOL enable_object_build(void*);
@@ -276,6 +280,7 @@ void handle_dump_group_info(void *);
void handle_dump_capabilities_info(void *);
void handle_dump_focus(void*);
+// Advanced->Consoles menu
void handle_region_dump_settings(void*);
void handle_region_dump_temp_asset_data(void*);
void handle_region_clear_temp_asset_data(void*);
@@ -524,7 +529,7 @@ void init_menus()
gPieAvatar->setBackgroundColor( context_menu_color );
gPieObject->setBackgroundColor( context_menu_color );
gPieAttachment->setBackgroundColor( context_menu_color );
-
+
gPieLand->setBackgroundColor( context_menu_color );
color = gSavedSkinSettings.getColor( "MenuPopupBgColor" );
@@ -607,6 +612,11 @@ class LLAdvancedToggleConsole : public view_listener_t
toggle_visibility( (void*)gDebugView->mMemoryView );
}
#endif
+ else if ("notifications" == console_type)
+ {
+ //LLFloaterNotificationConsole::showInstance();
+ LLFloaterReg::showInstance("notifications_console");
+ }
return true;
}
};
@@ -1107,7 +1117,7 @@ class LLAdvancedCheckFrameTest : public view_listener_t
};
-//
+ //
/////////////////////////////
//// HIDE SELECTED OBJECTS //
/////////////////////////////
@@ -1121,7 +1131,7 @@ class LLAdvancedCheckFrameTest : public view_listener_t
// return true;
// }
//};
-//
+ //
//class LLAdvancedCheckHideSelectedObjects : public view_listener_t
//{
// bool handleEvent(const LLSD& userdata)
@@ -1192,14 +1202,14 @@ class LLAdvancedCheckDisableTextures : public view_listener_t
//////////////////////////
// DUMP SCRIPTED CAMERA //
//////////////////////////
-
+
class LLAdvancedDumpScriptedCamera : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
{
handle_dump_followcam(NULL);
return true;
- }
+}
};
@@ -1212,7 +1222,7 @@ class LLAdvancedDumpScriptedCamera : public view_listener_t
class LLAdvancedDumpRegionObjectCache : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
- {
+{
handle_dump_region_object_cache(NULL);
return true;
}
@@ -1226,9 +1236,9 @@ class LLAdvancedWebBrowserTest : public view_listener_t
return true;
}
};
-
+
class LLAdvancedBuyCurrencyTest : public view_listener_t
-{
+ {
bool handleEvent(const LLSD& userdata)
{
handle_buy_currency_test(NULL);
@@ -1251,7 +1261,7 @@ class LLAdvancedToggleEditableUI : public view_listener_t
}
};
-
+
/////////////////////
// DUMP SELECT MGR //
/////////////////////
@@ -1287,7 +1297,7 @@ class LLAdvancedDumpInventory : public view_listener_t
///////////////////////
// DUMP FOCUS HOLDER //
///////////////////////
-
+
class LLAdvancedDumpFocusHolder : public view_listener_t
{
@@ -1299,7 +1309,7 @@ class LLAdvancedDumpFocusHolder : public view_listener_t
};
-
+
////////////////////////////////
// PRINT SELECTED OBJECT INFO //
////////////////////////////////
@@ -1459,7 +1469,7 @@ class LLAdvancedToggleDebugKeys : public view_listener_t
return true;
}
};
-
+
class LLAdvancedCheckDebugKeys : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
@@ -1468,7 +1478,7 @@ class LLAdvancedCheckDebugKeys : public view_listener_t
return new_value;
}
};
-
+
///////////////////////
@@ -1486,7 +1496,7 @@ class LLAdvancedToggleDebugWindowProc : public view_listener_t
};
class LLAdvancedCheckDebugWindowProc : public view_listener_t
-{
+ {
bool handleEvent(const LLSD& userdata)
{
bool new_value = gDebugWindowProc;
@@ -1517,7 +1527,7 @@ class LLAdvancedLoadUIFromXML : public view_listener_t
{
handle_load_from_xml(NULL);
return true;
- }
+}
};
@@ -1533,7 +1543,7 @@ class LLAdvancedSaveUIToXML : public view_listener_t
{
handle_save_to_xml(NULL);
return true;
- }
+}
};
@@ -1595,7 +1605,7 @@ class LLAdvancedGrabBakedTexture : public view_listener_t
else if ("hair" == texture_type)
{
handle_grab_texture( (void*)TEX_HAIR_BAKED );
- }
+}
return true;
}
@@ -1604,7 +1614,7 @@ class LLAdvancedGrabBakedTexture : public view_listener_t
class LLAdvancedEnableGrabBakedTexture : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
- {
+{
std::string texture_type = userdata.asString();
bool new_value = false;
@@ -1628,9 +1638,9 @@ class LLAdvancedEnableGrabBakedTexture : public view_listener_t
{
new_value = enable_grab_texture( (void*)TEX_SKIRT_BAKED );
}
-
+
return new_value;
- }
+}
};
///////////////////////
@@ -1660,13 +1670,13 @@ class LLAdvancedToggleCharacterGeometry : public view_listener_t
{
handle_god_request_avatar_geometry(NULL);
return true;
- }
+}
};
class LLEnableGodCustomerService : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
- {
+{
bool new_value = enable_god_customer_service(NULL);
return new_value;
}
@@ -1674,7 +1684,7 @@ class LLEnableGodCustomerService : public view_listener_t
-/////////////////////////////
+ /////////////////////////////
// TEST MALE / TEST FEMALE //
/////////////////////////////
@@ -1881,7 +1891,7 @@ class LLAdvancedToggleDisableLOD : public view_listener_t
return true;
}
};
-
+
class LLAdvancedCheckDisableLOD : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
@@ -1921,7 +1931,7 @@ class LLAdvancedCheckDebugCharacterVis : public view_listener_t
// DUMP ATTACHMENTS //
//////////////////////
-
+
class LLAdvancedDumpAttachments : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
@@ -1932,12 +1942,12 @@ class LLAdvancedDumpAttachments : public view_listener_t
};
-
+
/////////////////////
// REBAKE TEXTURES //
/////////////////////
-
-
+
+
class LLAdvancedRebakeTextures : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
@@ -1946,8 +1956,8 @@ class LLAdvancedRebakeTextures : public view_listener_t
return true;
}
};
-
-
+
+
#ifndef LL_RELEASE_FOR_DOWNLOAD
///////////////////////////
// DEBUG AVATAR TEXTURES //
@@ -1990,7 +2000,7 @@ class LLAdvancedMemoryLeakingSimulation : public view_listener_t
};
#endif
-
+
/////////////////
// MESSAGE LOG //
/////////////////
@@ -2137,7 +2147,8 @@ class LLAdvancedShowDebugSettings : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
{
- LLFloaterSettingsDebug::showInstance(userdata);
+ // LLFloaterSettingsDebug::showInstance(userdata);
+ LLFloaterReg::showInstance("settings_debug",userdata);
return true;
}
};
@@ -2174,10 +2185,10 @@ class LLAdvancedEnableObjectObjectOcclusion: public view_listener_t
{
bool handleEvent(const LLSD& userdata)
{
-
+
bool new_value = gGLManager.mHasOcclusionQuery && LLFeatureManager::getInstance()->isFeatureAvailable(userdata.asString());
return new_value;
- }
+}
};
@@ -2269,7 +2280,7 @@ class LLAdvancedForceErrorDisconnectViewer : public view_listener_t
{
handle_disconnect_viewer(NULL);
return true;
- }
+}
};
@@ -2364,7 +2375,7 @@ class LLAdminHandleObjectAssetIDs: public view_listener_t
{
handle_object_asset_ids(NULL);
return true;
- }
+ }
};
//Admin >Parcel
@@ -2418,7 +2429,7 @@ class LLAdminOnSaveState: public view_listener_t
{
LLPanelRegionTools::onSaveState(NULL);
return true;
- }
+}
};
@@ -2541,15 +2552,18 @@ class LLObjectEnableTouch : public view_listener_t
bool new_value = obj && obj->flagHandleTouch();
// Update label based on the node touch name if available.
+ std::string touch_text;
LLSelectNode* node = LLSelectMgr::getInstance()->getSelection()->getFirstRootNode();
if (node && node->mValid && !node->mTouchName.empty())
{
- gMenuHolder->childSetText("Object Touch", node->mTouchName);
+ touch_text = node->mTouchName;
}
else
{
- gMenuHolder->childSetText("Object Touch", userdata.asString());
+ touch_text = userdata.asString();
}
+ gMenuHolder->childSetText("Object Touch", touch_text);
+ gMenuHolder->childSetText("Attachment Object Touch", touch_text);
return new_value;
}
@@ -2616,7 +2630,7 @@ class LLViewJoystickFlycam : public view_listener_t
class LLViewCheckJoystickFlycam : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
- {
+ {
bool new_value = LLViewerJoystick::getInstance()->getOverrideCamera();
return new_value;
}
@@ -2680,15 +2694,15 @@ class LLObjectEdit : public view_listener_t
{
// zoom in on object center instead of where we clicked, as we need to see the manipulator handles
gAgent.setFocusGlobal(selected_objectp->getPositionGlobal(), selected_objectp->getID());
- gAgent.cameraZoomIn(0.666f);
- gAgent.cameraOrbitOver( 30.f * DEG_TO_RAD );
- gViewerWindow->moveCursorToCenter();
- }
+ gAgent.cameraZoomIn(0.666f);
+ gAgent.cameraOrbitOver( 30.f * DEG_TO_RAD );
+ gViewerWindow->moveCursorToCenter();
}
}
+ }
LLFloaterReg::showInstance("build");
-
+
LLToolMgr::getInstance()->setCurrentToolset(gBasicToolset);
gFloaterTools->setEditTool( LLToolCompTranslate::getInstance() );
@@ -2817,7 +2831,7 @@ class LLSelfRemoveAllAttachments : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
{
- LLAgent::userRemoveAllAttachments(NULL);
+ LLAgentWearables::userRemoveAllAttachments(NULL);
return true;
}
};
@@ -2831,7 +2845,7 @@ class LLSelfEnableRemoveAllAttachments : public view_listener_t
{
LLVOAvatar* avatarp = gAgent.getAvatarObject();
for (LLVOAvatar::attachment_map_t::iterator iter = avatarp->mAttachmentPoints.begin();
- iter != avatarp->mAttachmentPoints.end(); )
+ iter != avatarp->mAttachmentPoints.end(); )
{
LLVOAvatar::attachment_map_t::iterator curiter = iter++;
LLViewerJointAttachment* attachment = curiter->second;
@@ -2893,7 +2907,7 @@ class LLObjectMute : public view_listener_t
{
LLViewerObject* object = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject();
if (!object) return true;
-
+
LLUUID id;
std::string name;
LLMute::EType type;
@@ -2910,7 +2924,7 @@ class LLObjectMute : public view_listener_t
name += " ";
name += lastname->getString();
}
-
+
type = LLMute::AGENT;
}
else
@@ -2923,10 +2937,10 @@ class LLObjectMute : public view_listener_t
{
name = node->mName;
}
-
+
type = LLMute::OBJECT;
}
-
+
LLMute mute(id, name, type);
if (LLMuteList::getInstance()->isMuted(mute.mID, mute.mName))
{
@@ -2935,9 +2949,9 @@ class LLObjectMute : public view_listener_t
else
{
LLMuteList::getInstance()->add(mute);
- LLFloaterMute::showInstance();
+ LLFloaterReg::showInstance("mute");
}
-
+
return true;
}
};
@@ -3086,7 +3100,10 @@ class LLAvatarDebug : public view_listener_t
LLVOAvatar* avatar = find_avatar_from_object( LLSelectMgr::getInstance()->getSelection()->getPrimaryObject() );
if( avatar )
{
- avatar->dumpLocalTextures();
+ if (avatar->isSelf())
+ {
+ ((LLVOAvatarSelf *)avatar)->dumpLocalTextures();
+ }
llinfos << "Dumping temporary asset data to simulator logs for avatar " << avatar->getID() << llendl;
std::vector<std::string> strings;
strings.push_back(avatar->getID().asString());
@@ -3313,7 +3330,7 @@ bool callback_leave_group(const LLSD& notification, const LLSD& response)
msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID() );
msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
msg->nextBlockFast(_PREHASH_GroupData);
- msg->addUUIDFast(_PREHASH_GroupID, gAgent.mGroupID );
+ msg->addUUIDFast(_PREHASH_GroupID, gAgent.getGroupID() );
gAgent.sendReliableMessage();
}
return false;
@@ -3325,17 +3342,17 @@ void append_aggregate(std::string& string, const LLAggregatePermissions& ag_perm
std::string buffer;
switch(val)
{
- case LLAggregatePermissions::AP_NONE:
+ case LLAggregatePermissions::AP_NONE:
buffer = llformat( "* %s None\n", txt);
break;
- case LLAggregatePermissions::AP_SOME:
+ case LLAggregatePermissions::AP_SOME:
buffer = llformat( "* %s Some\n", txt);
break;
- case LLAggregatePermissions::AP_ALL:
+ case LLAggregatePermissions::AP_ALL:
buffer = llformat( "* %s All\n", txt);
break;
- case LLAggregatePermissions::AP_EMPTY:
- default:
+ case LLAggregatePermissions::AP_EMPTY:
+ default:
break;
}
string.append(buffer);
@@ -3343,22 +3360,22 @@ void append_aggregate(std::string& string, const LLAggregatePermissions& ag_perm
BOOL enable_buy(void*)
{
- // In order to buy, there must only be 1 purchaseable object in
- // the selection manger.
+ // In order to buy, there must only be 1 purchaseable object in
+ // the selection manger.
if(LLSelectMgr::getInstance()->getSelection()->getRootObjectCount() != 1) return FALSE;
- LLViewerObject* obj = NULL;
- LLSelectNode* node = LLSelectMgr::getInstance()->getSelection()->getFirstRootNode();
+ LLViewerObject* obj = NULL;
+ LLSelectNode* node = LLSelectMgr::getInstance()->getSelection()->getFirstRootNode();
if(node)
- {
- obj = node->getObject();
- if(!obj) return FALSE;
+ {
+ obj = node->getObject();
+ if(!obj) return FALSE;
if(node->mSaleInfo.isForSale() && node->mPermissions->getMaskOwner() & PERM_TRANSFER &&
(node->mPermissions->getMaskOwner() & PERM_COPY || node->mSaleInfo.getSaleType() != LLSaleInfo::FS_COPY))
{
if(obj->permAnyOwner()) return TRUE;
}
- }
+ }
return FALSE;
}
@@ -3401,7 +3418,7 @@ void handle_buy_object(LLSaleInfo sale_info)
}
S32 price = sale_info.getSalePrice();
-
+
if (price > 0 && price > gStatusBar->getBalance())
{
LLFloaterBuyCurrency::buyCurrency("This object costs", price);
@@ -3451,11 +3468,7 @@ void handle_region_dump_settings(void*)
void handle_dump_group_info(void *)
{
- llinfos << "group " << gAgent.mGroupName << llendl;
- llinfos << "ID " << gAgent.mGroupID << llendl;
- llinfos << "powers " << gAgent.mGroupPowers << llendl;
- llinfos << "title " << gAgent.mGroupTitle << llendl;
- //llinfos << "insig " << gAgent.mGroupInsigniaID << llendl;
+ gAgent.dumpGroupInfo();
}
void handle_dump_capabilities_info(void *)
@@ -3541,13 +3554,13 @@ void set_god_level(U8 god_level)
// inventory in items may change in god mode
gObjectList.dirtyAllObjectInventory();
- if(gViewerWindow)
- {
- gViewerWindow->setMenuBackgroundColor(god_level > GOD_NOT,
- LLViewerLogin::getInstance()->isInProductionGrid());
- }
-
- LLSD args;
+ if(gViewerWindow)
+ {
+ gViewerWindow->setMenuBackgroundColor(god_level > GOD_NOT,
+ LLViewerLogin::getInstance()->isInProductionGrid());
+ }
+
+ LLSD args;
if(god_level > GOD_NOT)
{
args["LEVEL"] = llformat("%d",(S32)god_level);
@@ -3678,7 +3691,7 @@ void request_friendship(const LLUUID& dest_id)
}
if (!fullname.empty())
{
- LLPanelFriends::requestFriendshipDialog(dest_id, fullname);
+ LLFriendActions::requestFriendshipDialog(dest_id, fullname);
}
else
{
@@ -3692,7 +3705,7 @@ class LLEditEnableCustomizeAvatar : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
{
- bool new_value = gAgent.areWearablesLoaded();
+ bool new_value = gAgentWearables.areWearablesLoaded();
return new_value;
}
};
@@ -3759,7 +3772,7 @@ class LLLandSit : public view_listener_t
LLViewerParcelMgr::getInstance()->deselectLand();
LLVector3d posGlobal = LLToolPie::getInstance()->getPick().mPosGlobal;
-
+
LLQuaternion target_rot;
if (gAgent.getAvatarObject())
{
@@ -3774,51 +3787,6 @@ class LLLandSit : public view_listener_t
}
};
-// ---legacy functions for landmark , not using anymore - angela ---
-//void manage_landmarks(void*)
-//{
-// LLFloaterLandmark::showInstance(1);
-//}
-//
-//void create_new_landmark(void*)
-//{
-// // Note this is temporary cut and paste of legacy functionality.
-// // TODO: Make this spawn a floater allowing user customize before creating the inventory object
-//
-// LLViewerRegion* agent_region = gAgent.getRegion();
-// if(!agent_region)
-// {
-// llwarns << "No agent region" << llendl;
-// return;
-// }
-// LLParcel* agent_parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
-// if (!agent_parcel)
-// {
-// llwarns << "No agent parcel" << llendl;
-// return;
-// }
-// if (!agent_parcel->getAllowLandmark()
-// && !LLViewerParcelMgr::isParcelOwnedByAgent(agent_parcel, GP_LAND_ALLOW_LANDMARK))
-// {
-// gViewerWindow->alertXml("CannotCreateLandmarkNotOwner");
-// return;
-// }
-//
-// LLUUID folder_id;
-// folder_id = gInventory.findCategoryUUIDForType(LLAssetType::AT_LANDMARK);
-// std::string pos_string;
-// gAgent.buildLocationString(pos_string);
-//
-// create_inventory_item(gAgent.getID(), gAgent.getSessionID(),
-// folder_id, LLTransactionID::tnull,
-// pos_string, pos_string, // name, desc
-// LLAssetType::AT_LANDMARK,
-// LLInventoryType::IT_LANDMARK,
-// NOT_WEARABLE, PERM_ALL,
-// NULL);
-//}
-
-
//-------------------------------------------------------------------
// Help menu functions
//-------------------------------------------------------------------
@@ -4108,12 +4076,12 @@ void derez_objects(EDeRezDestination dest, const LLUUID& dest_id)
std::string error;
LLDynamicArray<LLViewerObject*> derez_objects;
-
+
// Check conditions that we can't deal with, building a list of
// everything that we'll actually be derezzing.
LLViewerRegion* first_region = NULL;
for (LLObjectSelection::valid_root_iterator iter = LLSelectMgr::getInstance()->getSelection()->valid_root_begin();
- iter != LLSelectMgr::getInstance()->getSelection()->valid_root_end(); iter++)
+ iter != LLSelectMgr::getInstance()->getSelection()->valid_root_end(); iter++)
{
LLSelectNode* node = *iter;
LLViewerObject* object = node->getObject();
@@ -4128,7 +4096,7 @@ void derez_objects(EDeRezDestination dest, const LLUUID& dest_id)
{
// Derez doesn't work at all if the some of the objects
// are in regions besides the first object selected.
-
+
// ...crosses region boundaries
error = "AcquireErrorObjectSpan";
break;
@@ -4172,7 +4140,7 @@ void derez_objects(EDeRezDestination dest, const LLUUID& dest_id)
default:
if((node->mPermissions->allowTransferTo(gAgent.getID())
&& object->permCopy())
- || gAgent.isGodlike())
+ || gAgent.isGodlike())
{
can_derez_current = TRUE;
}
@@ -4271,7 +4239,7 @@ class LLObjectReturn : public view_listener_t
bool handleEvent(const LLSD& userdata)
{
if (LLSelectMgr::getInstance()->getSelection()->isEmpty()) return true;
-
+
mObjectSelection = LLSelectMgr::getInstance()->getEditSelection();
LLNotifications::instance().add("ReturnToOwner", LLSD(), LLSD(), boost::bind(&LLObjectReturn::onReturnToOwner, this, _1, _2));
@@ -4357,13 +4325,13 @@ void handle_take()
{
return;
}
-
+
BOOL you_own_everything = TRUE;
BOOL locked_but_takeable_object = FALSE;
LLUUID category_id;
-
+
for (LLObjectSelection::root_iterator iter = LLSelectMgr::getInstance()->getSelection()->root_begin();
- iter != LLSelectMgr::getInstance()->getSelection()->root_end(); iter++)
+ iter != LLSelectMgr::getInstance()->getSelection()->root_end(); iter++)
{
LLSelectNode* node = *iter;
LLViewerObject* object = node->getObject();
@@ -4405,7 +4373,7 @@ void handle_take()
}
if(category_id.notNull())
{
- // check trash
+ // check trash
LLUUID trash;
trash = gInventory.findCategoryUUIDForType(LLAssetType::AT_TRASH);
if(category_id == trash || gInventory.isObjectDescendentOf(category_id, trash))
@@ -4433,7 +4401,7 @@ void handle_take()
params.functor.function(confirm_take);
if(locked_but_takeable_object ||
- !you_own_everything)
+ !you_own_everything)
{
if(locked_but_takeable_object && you_own_everything)
{
@@ -4477,7 +4445,7 @@ BOOL enable_take()
}
for (LLObjectSelection::valid_root_iterator iter = LLSelectMgr::getInstance()->getSelection()->valid_root_begin();
- iter != LLSelectMgr::getInstance()->getSelection()->valid_root_end(); iter++)
+ iter != LLSelectMgr::getInstance()->getSelection()->valid_root_end(); iter++)
{
LLSelectNode* node = *iter;
LLViewerObject* object = node->getObject();
@@ -4492,14 +4460,14 @@ BOOL enable_take()
#else
# ifdef TOGGLE_HACKED_GODLIKE_VIEWER
if (!LLViewerLogin::getInstance()->isInProductionGrid()
- && gAgent.isGodlike())
+ && gAgent.isGodlike())
{
return TRUE;
}
# endif
if((node->mPermissions->allowTransferTo(gAgent.getID())
&& object->permModify())
- || (node->mPermissions->getOwner() == gAgent.getID()))
+ || (node->mPermissions->getOwner() == gAgent.getID()))
{
return TRUE;
}
@@ -4591,7 +4559,7 @@ class LLToolsEnableBuyOrTake : public view_listener_t
BOOL is_selection_buy_not_take()
{
for (LLObjectSelection::root_iterator iter = LLSelectMgr::getInstance()->getSelection()->root_begin();
- iter != LLSelectMgr::getInstance()->getSelection()->root_end(); iter++)
+ iter != LLSelectMgr::getInstance()->getSelection()->root_end(); iter++)
{
LLSelectNode* node = *iter;
LLViewerObject* obj = node->getObject();
@@ -4609,7 +4577,7 @@ S32 selection_price()
{
S32 total_price = 0;
for (LLObjectSelection::root_iterator iter = LLSelectMgr::getInstance()->getSelection()->root_begin();
- iter != LLSelectMgr::getInstance()->getSelection()->root_end(); iter++)
+ iter != LLSelectMgr::getInstance()->getSelection()->root_end(); iter++)
{
LLSelectNode* node = *iter;
LLViewerObject* obj = node->getObject();
@@ -4745,7 +4713,7 @@ class LLToolsSnapObjectXY : public view_listener_t
F64 snap_size = (F64)gSavedSettings.getF32("GridResolution");
for (LLObjectSelection::root_iterator iter = LLSelectMgr::getInstance()->getSelection()->root_begin();
- iter != LLSelectMgr::getInstance()->getSelection()->root_end(); iter++)
+ iter != LLSelectMgr::getInstance()->getSelection()->root_end(); iter++)
{
LLSelectNode* node = *iter;
LLViewerObject* obj = node->getObject();
@@ -5018,7 +4986,7 @@ class LLObjectEnableDelete : public view_listener_t
#else
# ifdef TOGGLE_HACKED_GODLIKE_VIEWER
(!LLViewerLogin::getInstance()->isInProductionGrid()
- && gAgent.isGodlike()) ||
+ && gAgent.isGodlike()) ||
# endif
LLSelectMgr::getInstance()->canDoDelete();
#endif
@@ -5188,11 +5156,6 @@ void show_debug_menus()
{
BOOL debug = gSavedSettings.getBOOL("UseDebugMenus");
- if(debug)
- {
- LLFirstUse::useDebugMenus();
- }
-
gMenuBarView->setItemVisible("Advanced", debug);
gMenuBarView->setItemEnabled("Advanced", debug);
@@ -5201,18 +5164,28 @@ void show_debug_menus()
gMenuBarView->setItemVisible("Develop", debug);
gMenuBarView->setItemEnabled("Develop", debug);
-
+
// Server ('Admin') menu hidden when not in godmode.
const bool show_server_menu = debug && (gAgent.getGodLevel() > GOD_NOT);
gMenuBarView->setItemVisible("Admin", show_server_menu);
gMenuBarView->setItemEnabled("Admin", show_server_menu);
}
+ if (gLoginMenuBarView)
+ {
+ BOOL debug = gSavedSettings.getBOOL("UseDebugMenus");
+ gLoginMenuBarView->setItemVisible("Debug", debug);
+ gLoginMenuBarView->setItemEnabled("Debug", debug);
+ }
}
void toggle_debug_menus(void*)
{
BOOL visible = ! gSavedSettings.getBOOL("UseDebugMenus");
gSavedSettings.setBOOL("UseDebugMenus", visible);
+ if(visible)
+ {
+ LLFirstUse::useDebugMenus();
+ }
show_debug_menus();
}
@@ -5347,14 +5320,14 @@ class LLWorldSetBusy : public view_listener_t
bool can_create_landmark()
{
BOOL can = FALSE;
-
+
LLParcel* agent_parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
if (agent_parcel)
- {
+{
if (agent_parcel->getAllowLandmark()
|| LLViewerParcelMgr::isParcelOwnedByAgent(agent_parcel, GP_LAND_ALLOW_LANDMARK))
- {
+ {
can = TRUE;
}
}
@@ -5366,24 +5339,7 @@ class LLWorldCreateLandmark : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
{
- if (!can_create_landmark())
- {
- LLNotifications::instance().add("CannotCreateLandmarkNotOwner");
- return true;
- }
-
- LLUUID folder_id;
- folder_id = gInventory.findCategoryUUIDForType(LLAssetType::AT_LANDMARK);
- std::string pos_string;
- gAgent.buildLocationString(pos_string);
-
- create_inventory_item(gAgent.getID(), gAgent.getSessionID(),
- folder_id, LLTransactionID::tnull,
- pos_string, pos_string, // name, desc
- LLAssetType::AT_LANDMARK,
- LLInventoryType::IT_LANDMARK,
- NOT_WEARABLE, PERM_ALL,
- NULL);
+ LLFloaterReg::showInstance("add_landmark");
return true;
}
};
@@ -5429,7 +5385,7 @@ void callback_invite_to_group(LLUUID group_id, LLUUID dest_id)
{
std::vector<LLUUID> agent_ids;
agent_ids.push_back(dest_id);
-
+
LLFloaterGroupInvite::showForGroup(group_id, &agent_ids);
}
@@ -5647,7 +5603,7 @@ class LLShowFloater : public view_listener_t
}
else if (floater_name == "appearance")
{
- if (gAgent.areWearablesLoaded())
+ if (gAgentWearables.areWearablesLoaded())
{
gAgent.changeCameraToCustomizeAvatar();
}
@@ -5658,7 +5614,7 @@ class LLShowFloater : public view_listener_t
}
else if (floater_name == "mute list")
{
- LLFloaterMute::toggleInstance();
+ LLFloaterReg::toggleInstance("mute");
}
else if (floater_name == "camera controls")
{
@@ -5691,12 +5647,12 @@ class LLShowFloater : public view_listener_t
{
LLViewerParcelMgr::getInstance()->selectParcelAt(gAgent.getPositionGlobal());
}
-
+
LLViewerParcelMgr::getInstance()->startBuyLand();
}
else if (floater_name == "grid options")
{
- LLFloaterBuildOptions::showInstance();
+ LLFloaterReg::showInstance("build_options");
}
else if (floater_name == "script errors")
{
@@ -5720,12 +5676,13 @@ class LLShowFloater : public view_listener_t
{
if (!gNoRender)
{
- LLFloaterBump::showInstance();
+ //LLFloaterBump::showInstance();
+ LLFloaterReg::showInstance("bumps");
}
}
else if (floater_name == "lag meter")
{
- LLFloaterLagMeter::showInstance();
+ LLFloaterReg::showInstance("lagmeter");
}
else if (floater_name == "buy currency")
{
@@ -5733,7 +5690,7 @@ class LLShowFloater : public view_listener_t
}
else if (floater_name == "about")
{
- LLFloaterAbout::showInstance();
+ LLFloaterReg::showInstance("sl_about");
}
else if (floater_name == "active speakers")
{
@@ -5767,7 +5724,7 @@ class LLFloaterVisible : public view_listener_t
}
else if (floater_name == "mute list")
{
- new_value = LLFloaterMute::instanceVisible();
+ new_value = LLFloaterReg::instanceVisible("mute");
}
else if (floater_name == "camera controls")
{
@@ -5895,7 +5852,7 @@ class LLShowAgentProfile : public view_listener_t
LLVOAvatar* avatar = find_avatar_from_object(agent_id);
if (avatar)
{
- LLFloaterAvatarInfo::show( avatar->getID() );
+ LLFriendActions::showProfile(avatar->getID());
}
return true;
}
@@ -5984,7 +5941,7 @@ void near_attach_object(BOOL success, void *user_data)
if (success)
{
LLViewerJointAttachment *attachment = (LLViewerJointAttachment *)user_data;
-
+
U8 attachment_id = 0;
if (attachment)
{
@@ -6026,7 +5983,7 @@ void confirm_replace_attachment(S32 option, void* user_data)
}
LLVector3 walkToSpot = selectedObject->getPositionAgent();
-
+
// make sure we stop in front of the object
LLVector3 delta = walkToSpot - gAgent.getPositionAgent();
delta.normVec();
@@ -6088,24 +6045,24 @@ class LLAttachmentDrop : public view_listener_t
class LLAttachmentDetachFromPoint : public view_listener_t
{
bool handleEvent(const LLSD& user_data)
- {
+{
LLViewerJointAttachment *attachment = get_if_there(gAgent.getAvatarObject()->mAttachmentPoints, user_data.asInteger(), (LLViewerJointAttachment*)NULL);
-
+
LLViewerObject* attached_object = attachment ? attachment->getObject() : NULL;
- if (attached_object)
- {
- gMessageSystem->newMessage("ObjectDetach");
- gMessageSystem->nextBlockFast(_PREHASH_AgentData);
- gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID() );
- gMessageSystem->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
+ if (attached_object)
+ {
+ gMessageSystem->newMessage("ObjectDetach");
+ gMessageSystem->nextBlockFast(_PREHASH_AgentData);
+ gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID() );
+ gMessageSystem->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
- gMessageSystem->nextBlockFast(_PREHASH_ObjectData);
- gMessageSystem->addU32Fast(_PREHASH_ObjectLocalID, attached_object->getLocalID());
- gMessageSystem->sendReliable( gAgent.getRegionHost() );
- }
- return true;
+ gMessageSystem->nextBlockFast(_PREHASH_ObjectData);
+ gMessageSystem->addU32Fast(_PREHASH_ObjectLocalID, attached_object->getLocalID());
+ gMessageSystem->sendReliable( gAgent.getRegionHost() );
}
+ return true;
+}
};
static bool onEnableAttachmentLabel(LLUICtrl* ctrl, const LLSD& data)
@@ -6115,20 +6072,20 @@ static bool onEnableAttachmentLabel(LLUICtrl* ctrl, const LLSD& data)
if (menu)
{
LLViewerJointAttachment *attachmentp = get_if_there(gAgent.getAvatarObject()->mAttachmentPoints, data["index"].asInteger(), (LLViewerJointAttachment*)NULL);
- if (attachmentp)
- {
+ if (attachmentp)
+ {
label = data["label"].asString();
- if (attachmentp->getObject())
+ if (attachmentp->getObject())
+ {
+ LLViewerInventoryItem* itemp = gInventory.getItem(attachmentp->getItemID());
+ if (itemp)
{
- LLViewerInventoryItem* itemp = gInventory.getItem(attachmentp->getItemID());
- if (itemp)
- {
- label += std::string(" (") + itemp->getName() + std::string(")");
- }
+ label += std::string(" (") + itemp->getName() + std::string(")");
}
}
- menu->setLabel(label);
}
+ menu->setLabel(label);
+}
return true;
}
@@ -6224,7 +6181,7 @@ class LLAttachmentEnableDrop : public view_listener_t
if ( object )
{
- S32 attachmentID = ATTACHMENT_ID_FROM_STATE(object->getState());
+ S32 attachmentID = ATTACHMENT_ID_FROM_STATE(object->getState());
attachment_pt = get_if_there(gAgent.getAvatarObject()->mAttachmentPoints, attachmentID, (LLViewerJointAttachment*)NULL);
if ( attachment_pt )
@@ -6232,7 +6189,7 @@ class LLAttachmentEnableDrop : public view_listener_t
// make sure item is in your inventory (it could be a delayed attach message being sent from the sim)
// so check to see if the item is in the inventory already
item = gInventory.getItem(attachment_pt->getItemID());
-
+
if ( !item )
{
// Item does not exist, make an observer to enable the pie menu
@@ -6243,13 +6200,13 @@ class LLAttachmentEnableDrop : public view_listener_t
LLInventoryFetchObserver::item_ref_t items; //add item to the inventory item to be fetched
items.push_back(attachment_pt->getItemID());
-
+
wornItemFetched->fetchItems(items);
gInventory.addObserver(wornItemFetched);
}
}
}
-
+
//now check to make sure that the item is actually in the inventory before we enable dropping it
bool new_value = enable_detach() && can_build && item;
@@ -6293,7 +6250,7 @@ BOOL object_selected_and_point_valid(const LLSD&)
{
LLObjectSelectionHandle selection = LLSelectMgr::getInstance()->getSelection();
for (LLObjectSelection::root_iterator iter = selection->root_begin();
- iter != selection->root_end(); iter++)
+ iter != selection->root_end(); iter++)
{
LLSelectNode* node = *iter;
LLViewerObject* object = node->getObject();
@@ -6329,7 +6286,7 @@ BOOL object_is_wearable()
}
LLObjectSelectionHandle selection = LLSelectMgr::getInstance()->getSelection();
for (LLObjectSelection::valid_root_iterator iter = LLSelectMgr::getInstance()->getSelection()->valid_root_begin();
- iter != LLSelectMgr::getInstance()->getSelection()->valid_root_end(); iter++)
+ iter != LLSelectMgr::getInstance()->getSelection()->valid_root_end(); iter++)
{
LLSelectNode* node = *iter;
if (node->mPermissions->getOwner() == gAgent.getID())
@@ -6357,11 +6314,11 @@ class LLAttachmentPointFilled : public view_listener_t
bool enable = false;
LLVOAvatar::attachment_map_t::iterator found_it = gAgent.getAvatarObject()->mAttachmentPoints.find(user_data.asInteger());
if (found_it != gAgent.getAvatarObject()->mAttachmentPoints.end())
- {
+{
enable = found_it->second->getObject() != NULL;
}
return enable;
- }
+}
};
class LLAvatarSendIM : public view_listener_t
@@ -6502,10 +6459,10 @@ class LLToolsSelectedScriptAction : public view_listener_t
void handle_selected_texture_info(void*)
{
for (LLObjectSelection::valid_iterator iter = LLSelectMgr::getInstance()->getSelection()->valid_begin();
- iter != LLSelectMgr::getInstance()->getSelection()->valid_end(); iter++)
+ iter != LLSelectMgr::getInstance()->getSelection()->valid_end(); iter++)
{
LLSelectNode* node = *iter;
-
+
std::string msg;
msg.assign("Texture info for: ");
msg.append(node->mName);
@@ -6579,7 +6536,7 @@ void handle_dump_attachments(void*)
}
for (LLVOAvatar::attachment_map_t::iterator iter = avatar->mAttachmentPoints.begin();
- iter != avatar->mAttachmentPoints.end(); )
+ iter != avatar->mAttachmentPoints.end(); )
{
LLVOAvatar::attachment_map_t::iterator curiter = iter++;
LLViewerJointAttachment* attachment = curiter->second;
@@ -6618,7 +6575,7 @@ class LLCheckControl : public view_listener_t
std::string callback_data = userdata.asString();
bool new_value = gSavedSettings.getBOOL(callback_data);
return new_value;
- }
+}
};
@@ -6638,15 +6595,15 @@ class LLAdvancedHandleAttchedLightParticles: public view_listener_t
{
std::string control_name = userdata.asString();
if (control_name == "RenderAttachedLights")
- {
+{
menu_toggle_attached_lights(NULL);
- }
+}
else if (control_name == "RenderAttachedParticles")
- {
+{
menu_toggle_attached_particles(NULL);
- }
+}
return true;
- }
+}
};
class LLSomethingSelected : public view_listener_t
@@ -6705,26 +6662,26 @@ class LLToolsEnableTakeCopy : public view_listener_t
{
if (!LLSelectMgr::getInstance()->getSelection()->isEmpty())
{
- all_valid = true;
+ all_valid = true;
#ifndef HACKED_GODLIKE_VIEWER
# ifdef TOGGLE_HACKED_GODLIKE_VIEWER
- if (LLViewerLogin::getInstance()->isInProductionGrid()
- || !gAgent.isGodlike())
+ if (LLViewerLogin::getInstance()->isInProductionGrid()
+ || !gAgent.isGodlike())
# endif
+ {
+ struct f : public LLSelectedObjectFunctor
{
- struct f : public LLSelectedObjectFunctor
+ virtual bool apply(LLViewerObject* obj)
{
- virtual bool apply(LLViewerObject* obj)
- {
- return (!obj->permCopy() || obj->isAttachment());
- }
- } func;
- const bool firstonly = true;
- bool any_invalid = LLSelectMgr::getInstance()->getSelection()->applyToRootObjects(&func, firstonly);
- all_valid = !any_invalid;
- }
-#endif // HACKED_GODLIKE_VIEWER
+ return (!obj->permCopy() || obj->isAttachment());
+ }
+ } func;
+ const bool firstonly = true;
+ bool any_invalid = LLSelectMgr::getInstance()->getSelection()->applyToRootObjects(&func, firstonly);
+ all_valid = !any_invalid;
}
+#endif // HACKED_GODLIKE_VIEWER
+ }
}
return all_valid;
@@ -6901,7 +6858,7 @@ BOOL enable_god_basic(void*)
void toggle_show_xui_names(void *)
{
BOOL showXUINames = gSavedSettings.getBOOL("ShowXUINames");
-
+
showXUINames = !showXUINames;
gSavedSettings.setBOOL("ShowXUINames", showXUINames);
}
@@ -6994,11 +6951,7 @@ void reload_vertex_shader(void *)
void handle_dump_avatar_local_textures(void*)
{
- LLVOAvatar* avatar = gAgent.getAvatarObject();
- if( avatar )
- {
- avatar->dumpLocalTextures();
- }
+ gAgent.getAvatarObject()->dumpLocalTextures();
}
void handle_debug_avatar_textures(void*)
@@ -7013,7 +6966,7 @@ void handle_debug_avatar_textures(void*)
void handle_grab_texture(void* data)
{
ETextureIndex index = (ETextureIndex)((intptr_t)data);
- LLVOAvatar* avatar = gAgent.getAvatarObject();
+ const LLVOAvatarSelf* avatar = gAgent.getAvatarObject();
if ( avatar )
{
const LLUUID& asset_id = avatar->grabLocalTexture(index);
@@ -7023,32 +6976,14 @@ void handle_grab_texture(void* data)
LLUUID folder_id(gInventory.findCategoryUUIDForType(asset_type));
if(folder_id.notNull())
{
- std::string name = "Baked ";
- switch (index)
+ std::string name = "Unknown";
+ const LLVOAvatarDictionary::TextureEntry *texture_dict = LLVOAvatarDictionary::getInstance()->getTexture(index);
+ if (texture_dict->mIsBakedTexture)
{
- case TEX_EYES_BAKED:
- name.append("Iris");
- break;
- case TEX_HEAD_BAKED:
- name.append("Head");
- break;
- case TEX_UPPER_BAKED:
- name.append("Upper Body");
- break;
- case TEX_LOWER_BAKED:
- name.append("Lower Body");
- break;
- case TEX_SKIRT_BAKED:
- name.append("Skirt");
- break;
- case TEX_HAIR_BAKED:
- name.append("Hair");
- break;
- default:
- name.append("Unknown");
- break;
+ EBakedTextureIndex baked_index = texture_dict->mBakedTextureIndex;
+ name = "Baked " + LLVOAvatarDictionary::getInstance()->getBakedTexture(baked_index)->mNameCapitalized;
}
- name.append(" Texture");
+ name += " Texture";
LLUUID item_id;
item_id.generate();
@@ -7106,7 +7041,7 @@ void handle_grab_texture(void* data)
BOOL enable_grab_texture(void* data)
{
ETextureIndex index = (ETextureIndex)((intptr_t)data);
- LLVOAvatar* avatar = gAgent.getAvatarObject();
+ const LLVOAvatarSelf* avatar = gAgent.getAvatarObject();
if ( avatar )
{
return avatar->canGrabLocalTexture(index);
@@ -7128,8 +7063,7 @@ LLVOAvatar* find_avatar_from_object( LLViewerObject* object )
}
while( object && !object->isAvatar() );
}
- else
- if( !object->isAvatar() )
+ else if( !object->isAvatar() )
{
object = NULL;
}
@@ -7154,27 +7088,27 @@ void handle_disconnect_viewer(void *)
void force_error_breakpoint(void *)
{
- LLAppViewer::instance()->forceErrorBreakpoint();
+ LLAppViewer::instance()->forceErrorBreakpoint();
}
void force_error_llerror(void *)
{
- LLAppViewer::instance()->forceErrorLLError();
+ LLAppViewer::instance()->forceErrorLLError();
}
void force_error_bad_memory_access(void *)
{
- LLAppViewer::instance()->forceErrorBadMemoryAccess();
+ LLAppViewer::instance()->forceErrorBadMemoryAccess();
}
void force_error_infinite_loop(void *)
{
- LLAppViewer::instance()->forceErrorInifiniteLoop();
+ LLAppViewer::instance()->forceErrorInifiniteLoop();
}
void force_error_software_exception(void *)
{
- LLAppViewer::instance()->forceErrorSoftwareException();
+ LLAppViewer::instance()->forceErrorSoftwareException();
}
void force_error_driver_crash(void *)
@@ -7307,7 +7241,7 @@ void handle_buy_currency_test(void*)
// *TODO: Replace with call to LLUI::getLanguage() after windows-setup
// branch merges in. JC
- std::string language = "en-us";
+ std::string language = "en";
language = gSavedSettings.getString("Language");
if (language.empty() || language == "default")
{
@@ -7319,7 +7253,7 @@ void handle_buy_currency_test(void*)
}
if (language.empty() || language == "default")
{
- language = "en-us";
+ language = "en";
}
replace["[LANGUAGE]"] = language;
@@ -7335,7 +7269,7 @@ void handle_buy_currency_test(void*)
void handle_rebake_textures(void*)
{
- LLVOAvatar* avatar = gAgent.getAvatarObject();
+ LLVOAvatarSelf* avatar = gAgent.getAvatarObject();
if (!avatar) return;
// Slam pending upload count to "unstick" things
@@ -7587,39 +7521,47 @@ class LLEditEnableTakeOff : public view_listener_t
bool new_value = false;
if (clothing == "shirt")
{
- new_value = LLAgent::selfHasWearable((void *)WT_SHIRT);
+ new_value = LLAgentWearables::selfHasWearable((void *)WT_SHIRT);
}
if (clothing == "pants")
{
- new_value = LLAgent::selfHasWearable((void *)WT_PANTS);
+ new_value = LLAgentWearables::selfHasWearable((void *)WT_PANTS);
}
if (clothing == "shoes")
{
- new_value = LLAgent::selfHasWearable((void *)WT_SHOES);
+ new_value = LLAgentWearables::selfHasWearable((void *)WT_SHOES);
}
if (clothing == "socks")
{
- new_value = LLAgent::selfHasWearable((void *)WT_SOCKS);
+ new_value = LLAgentWearables::selfHasWearable((void *)WT_SOCKS);
}
if (clothing == "jacket")
{
- new_value = LLAgent::selfHasWearable((void *)WT_JACKET);
+ new_value = LLAgentWearables::selfHasWearable((void *)WT_JACKET);
}
if (clothing == "gloves")
{
- new_value = LLAgent::selfHasWearable((void *)WT_GLOVES);
+ new_value = LLAgentWearables::selfHasWearable((void *)WT_GLOVES);
}
if (clothing == "undershirt")
{
- new_value = LLAgent::selfHasWearable((void *)WT_UNDERSHIRT);
+ new_value = LLAgentWearables::selfHasWearable((void *)WT_UNDERSHIRT);
}
if (clothing == "underpants")
{
- new_value = LLAgent::selfHasWearable((void *)WT_UNDERPANTS);
+ new_value = LLAgentWearables::selfHasWearable((void *)WT_UNDERPANTS);
}
if (clothing == "skirt")
{
- new_value = LLAgent::selfHasWearable((void *)WT_SKIRT);
+ new_value = LLAgentWearables::selfHasWearable((void *)WT_SKIRT);
+ }
+ if (clothing == "alpha")
+ {
+ new_value = LLAgentWearables::selfHasWearable((void *)WT_ALPHA);
+ }
+ if (clothing == "tattoo")
+ {
+ new_value = LLAgentWearables::selfHasWearable((void *)WT_TATTOO);
}
return new_value;
}
@@ -7632,43 +7574,51 @@ class LLEditTakeOff : public view_listener_t
std::string clothing = userdata.asString();
if (clothing == "shirt")
{
- LLAgent::userRemoveWearable((void*)WT_SHIRT);
+ LLAgentWearables::userRemoveWearable((void*)WT_SHIRT);
}
else if (clothing == "pants")
{
- LLAgent::userRemoveWearable((void*)WT_PANTS);
+ LLAgentWearables::userRemoveWearable((void*)WT_PANTS);
}
else if (clothing == "shoes")
{
- LLAgent::userRemoveWearable((void*)WT_SHOES);
+ LLAgentWearables::userRemoveWearable((void*)WT_SHOES);
}
else if (clothing == "socks")
{
- LLAgent::userRemoveWearable((void*)WT_SOCKS);
+ LLAgentWearables::userRemoveWearable((void*)WT_SOCKS);
}
else if (clothing == "jacket")
{
- LLAgent::userRemoveWearable((void*)WT_JACKET);
+ LLAgentWearables::userRemoveWearable((void*)WT_JACKET);
}
else if (clothing == "gloves")
{
- LLAgent::userRemoveWearable((void*)WT_GLOVES);
+ LLAgentWearables::userRemoveWearable((void*)WT_GLOVES);
}
else if (clothing == "undershirt")
{
- LLAgent::userRemoveWearable((void*)WT_UNDERSHIRT);
+ LLAgentWearables::userRemoveWearable((void*)WT_UNDERSHIRT);
}
else if (clothing == "underpants")
{
- LLAgent::userRemoveWearable((void*)WT_UNDERPANTS);
+ LLAgentWearables::userRemoveWearable((void*)WT_UNDERPANTS);
}
else if (clothing == "skirt")
{
- LLAgent::userRemoveWearable((void*)WT_SKIRT);
+ LLAgentWearables::userRemoveWearable((void*)WT_SKIRT);
+ }
+ else if (clothing == "alpha")
+ {
+ LLAgentWearables::userRemoveWearable((void*)WT_ALPHA);
+ }
+ else if (clothing == "tattoo")
+ {
+ LLAgentWearables::userRemoveWearable((void*)WT_TATTOO);
}
else if (clothing == "all")
{
- LLAgent::userRemoveAllClothes(NULL);
+ LLAgentWearables::userRemoveAllClothes(NULL);
}
return true;
}
@@ -7710,7 +7660,7 @@ class LLWorldEnvSettings : public view_listener_t
{
std::string tod = userdata.asString();
LLVector3 sun_direction;
-
+
if (tod == "editor")
{
// if not there or is hidden, show it
@@ -7726,7 +7676,7 @@ class LLWorldEnvSettings : public view_listener_t
}
return true;
}
-
+
if (tod == "sunrise")
{
// set the value, turn off animation
@@ -7851,7 +7801,7 @@ void initialize_menus()
// Agent
commit.add("Agent.toggleFlying", boost::bind(&LLAgent::toggleFlying));
enable.add("Agent.emableFlying", boost::bind(&LLAgent::enableFlying));
-
+
// File menu
init_menu_file();
@@ -7919,7 +7869,7 @@ void initialize_menus()
view_listener_t::addMenu(new LLWorldEnableBuyLand(), "World.EnableBuyLand");
view_listener_t::addMenu(new LLWorldCheckAlwaysRun(), "World.CheckAlwaysRun");
-
+
view_listener_t::addMenu(new LLWorldEnvSettings(), "World.EnvSettings");
view_listener_t::addMenu(new LLWorldWaterSettings(), "World.WaterSettings");
view_listener_t::addMenu(new LLWorldPostProcess(), "World.PostProcess");
@@ -8131,7 +8081,7 @@ void initialize_menus()
view_listener_t::addMenu(new LLSelfEnableStandUp(), "Self.EnableStandUp");
view_listener_t::addMenu(new LLSelfEnableRemoveAllAttachments(), "Self.EnableRemoveAllAttachments");
- // Avatar pie menu
+ // Avatar pie menu
view_listener_t::addMenu(new LLObjectMute(), "Avatar.Mute");
view_listener_t::addMenu(new LLAvatarAddFriend(), "Avatar.AddFriend");
view_listener_t::addMenu(new LLAvatarFreeze(), "Avatar.Freeze");
diff --git a/indra/newview/llviewermenufile.cpp b/indra/newview/llviewermenufile.cpp
index 1352f2c72f..6576ea81ed 100644
--- a/indra/newview/llviewermenufile.cpp
+++ b/indra/newview/llviewermenufile.cpp
@@ -49,6 +49,7 @@
#include "llviewercontrol.h" // gSavedSettings
#include "llviewerimagelist.h"
#include "lluictrlfactory.h"
+#include "llviewerinventory.h"
#include "llviewermenu.h" // gMenuHolder
#include "llviewerregion.h"
#include "llviewerstats.h"
@@ -71,8 +72,6 @@
// system libraries
#include <boost/tokenizer.hpp>
-using namespace LLOldEvents;
-
class LLFileEnableSaveAs : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index d02e667d19..a05bd30600 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -126,7 +126,7 @@
#include "llviewerthrottle.h"
#include "llviewerwindow.h"
#include "llvlmanager.h"
-#include "llvoavatar.h"
+#include "llvoavatarself.h"
#include "llvotextbubble.h"
#include "llweb.h"
#include "llworld.h"
@@ -137,6 +137,7 @@
#include "llkeythrottle.h"
#include <boost/tokenizer.hpp>
+#include <boost/algorithm/string/split.hpp>
#if LL_WINDOWS // For Windows specific error handler
#include "llwindebug.h" // For the invalid message handler
@@ -892,7 +893,14 @@ void open_offer(const std::vector<LLUUID>& items, const std::string& from_name)
LLFloaterReg::showInstance("preview_notecard", LLSD(id), take_focus);
break;
case LLAssetType::AT_LANDMARK:
- LLFloaterReg::showInstance("preview_landmark", LLSD(id), take_focus);
+ {
+ // *TODO: Embed a link to the Places panel so that user can edit the landmark right away.
+ LLInventoryCategory* parent_folder = gInventory.getCategory(item->getParentUUID());
+ LLSD args;
+ args["LANDMARK_NAME"] = item->getName();
+ args["FOLDER_NAME"] = std::string(parent_folder ? parent_folder->getName() : "unnkown");
+ LLNotifications::instance().add("LandmarkCreated", args);
+ }
break;
case LLAssetType::AT_TEXTURE:
LLFloaterReg::showInstance("preview_texture", LLSD(id), take_focus);
@@ -977,8 +985,8 @@ void inventory_offer_mute_callback(const LLUUID& blocked_id,
LLMute mute(blocked_id, from_name, type);
if (LLMuteList::getInstance()->add(mute))
{
- LLFloaterMute::showInstance();
- LLFloaterMute::getInstance()->selectMute(blocked_id);
+ LLFloaterReg::showInstance("mute");
+ LLFloaterReg::getTypedInstance<LLFloaterMute>("mute")->selectMute(blocked_id);
}
// purge the message queue of any previously queued inventory offers from the same source.
@@ -2405,8 +2413,7 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
// T * * * F Yes Yes
chat.mMuted = is_muted && !is_linden;
-
-
+
if (!visible_in_chat_bubble
&& (is_linden || !is_busy || is_owned_by_me))
{
@@ -2889,12 +2896,45 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**)
{
LLSD payload;
payload["message"] = version_channel;
- LLNotifications::instance().add("ServerVersionChanged", LLSD(), payload);
+ LLNotifications::instance().add("ServerVersionChanged", LLSD(), payload, server_version_changed_callback);
}
gLastVersionChannel = version_channel;
}
+bool server_version_changed_callback(const LLSD& notification, const LLSD& response)
+{
+ if(notification["payload"]["message"].asString() =="")
+ return false;
+ std::string url ="http://wiki.secondlife.com/wiki/Release_Notes/";
+ //parse the msg string
+ std::string server_version = notification["payload"]["message"].asString();
+ std::vector<std::string> s_vect;
+ boost::algorithm::split(s_vect, server_version, isspace);
+ for(U32 i = 0; i < s_vect.size(); i++)
+ {
+ if (i != (s_vect.size() - 1))
+ {
+ if(i != (s_vect.size() - 2))
+ {
+ url += s_vect[i] + "_";
+ }
+ else
+ {
+ url += s_vect[i] + "/";
+ }
+ }
+ else
+ {
+ url += s_vect[i].substr(0,4);
+ }
+ }
+
+ LLWeb::loadURL(url);
+ return false;
+}
+
+
void process_crossed_region(LLMessageSystem* msg, void**)
{
LLUUID agent_id;
@@ -3791,7 +3831,7 @@ void process_avatar_sit_response(LLMessageSystem *mesgsys, void **user_data)
gAgent.setSitCamera(sitObjectID, camera_eye, camera_at);
}
- gAgent.mForceMouselook = force_mouselook;
+ gAgent.setForceMouselook(force_mouselook);
LLViewerObject* object = gObjectList.findObject(sitObjectID);
if (object)
@@ -4355,8 +4395,8 @@ void handle_show_mean_events(void *)
{
return;
}
-
- LLFloaterBump::showInstance();
+ LLFloaterReg::showInstance("bumps");
+ //LLFloaterBump::showInstance();
}
void mean_name_callback(const LLUUID &id, const std::string& first, const std::string& last, BOOL always_false)
@@ -4855,7 +4895,14 @@ void container_inventory_arrived(LLViewerObject* object,
// method to format the time.
std::string formatted_time(const time_t& the_time)
{
- std::string dateStr = LLTrans::getString("ViewerMsgGenericTime");
+ std::string dateStr = "["+LLTrans::getString("LTimeWeek")+"] ["
+ +LLTrans::getString("LTimeMonth")+"] ["
+ +LLTrans::getString("LTimeDay")+"] ["
+ +LLTrans::getString("LTimeHour")+"]:["
+ +LLTrans::getString("LTimeMin")+"]:["
+ +LLTrans::getString("LTimeSec")+"] ["
+ +LLTrans::getString("LTimeYear")+"]";
+
LLSD substitution;
substitution["datetime"] = (S32) the_time;
LLStringUtil::format (dateStr, substitution);
@@ -4927,6 +4974,9 @@ void process_teleport_failed(LLMessageSystem *msg, void**)
LLNotifications::instance().add("CouldNotTeleportReason", args);
+ // Let the interested parties know that teleport failed.
+ LLViewerParcelMgr::getInstance()->onTeleportFailed();
+
if( gAgent.getTeleportState() != LLAgent::TELEPORT_NONE )
{
gAgent.setTeleportState( LLAgent::TELEPORT_NONE );
@@ -4956,6 +5006,9 @@ void process_teleport_local(LLMessageSystem *msg,void**)
gAgent.setTeleportState( LLAgent::TELEPORT_NONE );
}
+ // Let the interested parties know we've teleported.
+ LLViewerParcelMgr::getInstance()->onTeleportFinished();
+
// Sim tells us whether the new position is off the ground
if (teleport_flags & TELEPORT_FLAGS_IS_FLYING)
{
@@ -5083,13 +5136,13 @@ void handle_lure(const LLUUID& invitee)
}
// Prompt for a message to the invited user.
-void handle_lure(std::vector<LLUUID>& ids)
+void handle_lure(const std::vector<LLUUID>& ids)
{
LLSD edit_args;
edit_args["REGION"] = gAgent.getRegion()->getName();
LLSD payload;
- for (LLDynamicArray<LLUUID>::iterator it = ids.begin();
+ for (LLDynamicArray<LLUUID>::const_iterator it = ids.begin();
it != ids.end();
++it)
{
@@ -5256,6 +5309,7 @@ void process_script_dialog(LLMessageSystem* msg, void**)
S32 button_count = msg->getNumberOfBlocks("Buttons");
if (button_count > SCRIPT_DIALOG_MAX_BUTTONS)
{
+ llwarns << "Too many script dialog buttons - omitting some" << llendl;
button_count = SCRIPT_DIALOG_MAX_BUTTONS;
}
@@ -5465,10 +5519,25 @@ void process_covenant_reply(LLMessageSystem* msg, void**)
LLFloaterBuyLand::updateEstateName(estate_name);
// standard message, not from system
- std::string last_modified = LLTrans::getString("last_modified");
- LLSD substitution;
- substitution["datetime"] = (S32) covenant_timestamp;
- LLStringUtil::format (last_modified, substitution);
+ std::string last_modified;
+ if (covenant_timestamp == 0)
+ {
+ last_modified = LLTrans::getString("covenant_last_modified")+LLTrans::getString("never_text");
+ }
+ else
+ {
+ last_modified = LLTrans::getString("covenant_last_modified")+"["
+ +LLTrans::getString("LTimeWeek")+"] ["
+ +LLTrans::getString("LTimeMonth")+"] ["
+ +LLTrans::getString("LTimeDay")+"] ["
+ +LLTrans::getString("LTimeHour")+"]:["
+ +LLTrans::getString("LTimeMin")+"]:["
+ +LLTrans::getString("LTimeSec")+"] ["
+ +LLTrans::getString("LTimeYear")+"]";
+ LLSD substitution;
+ substitution["datetime"] = (S32) covenant_timestamp;
+ LLStringUtil::format (last_modified, substitution);
+ }
LLPanelEstateCovenant::updateLastModified(last_modified);
LLPanelLandCovenant::updateLastModified(last_modified);
diff --git a/indra/newview/llviewermessage.h b/indra/newview/llviewermessage.h
index 40e64f1ebe..90a54e2b9c 100644
--- a/indra/newview/llviewermessage.h
+++ b/indra/newview/llviewermessage.h
@@ -130,6 +130,7 @@ void container_inventory_arrived(LLViewerObject* object,
// agent movement
void send_complete_agent_movement(const LLHost& sim_host);
void process_agent_movement_complete(LLMessageSystem* msg, void**);
+bool server_version_changed_callback(const LLSD& notification, const LLSD& response);
void process_crossed_region(LLMessageSystem* msg, void**);
void process_teleport_start(LLMessageSystem* msg, void**);
void process_teleport_progress(LLMessageSystem* msg, void**);
@@ -151,7 +152,7 @@ void send_group_notice(const LLUUID& group_id,
const LLInventoryItem* item);
void handle_lure(const LLUUID& invitee);
-void handle_lure(std::vector<LLUUID>& ids);
+void handle_lure(const std::vector<LLUUID>& ids);
// always from gAgent and
// routes through the gAgent's current simulator
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp
index f0693c1b79..dc4f2b2990 100644
--- a/indra/newview/llviewerobject.cpp
+++ b/indra/newview/llviewerobject.cpp
@@ -79,6 +79,7 @@
#include "llviewertextureanim.h"
#include "llviewerwindow.h" // For getSpinAxis
#include "llvoavatar.h"
+#include "llvoavatarself.h"
#include "llvoclouds.h"
#include "llvograss.h"
#include "llvoground.h"
@@ -124,7 +125,18 @@ LLViewerObject *LLViewerObject::createObject(const LLUUID &id, const LLPCode pco
case LL_PCODE_VOLUME:
res = new LLVOVolume(id, pcode, regionp); break;
case LL_PCODE_LEGACY_AVATAR:
- res = new LLVOAvatar(id, pcode, regionp); break;
+ {
+ if (id == gAgentID)
+ {
+ res = new LLVOAvatarSelf(id, pcode, regionp);
+ }
+ else
+ {
+ res = new LLVOAvatar(id, pcode, regionp);
+ }
+ static_cast<LLVOAvatar*>(res)->initInstance();
+ break;
+ }
case LL_PCODE_LEGACY_GRASS:
res = new LLVOGrass(id, pcode, regionp); break;
case LL_PCODE_LEGACY_PART_SYS:
@@ -2745,7 +2757,7 @@ void LLViewerObject::setPixelAreaAndAngle(LLAgent &agent)
F32 mid_scale = getMidScale();
F32 min_scale = getMinScale();
- // IW: esitmate - when close to large objects, computing range based on distance from center is no good
+ // IW: estimate - when close to large objects, computing range based on distance from center is no good
// to try to get a min distance from face, subtract min_scale/2 from the range.
// This means we'll load too much detail sometimes, but that's better than not enough
// I don't think there's a better way to do this without calculating distance per-poly
@@ -3730,7 +3742,6 @@ S32 LLViewerObject::setTEColor(const U8 te, const LLColor4& color)
else if (color != tep->getColor())
{
retval = LLPrimitive::setTEColor(te, color);
- //setChanged(TEXTURE);
if (mDrawable.notNull() && retval)
{
// These should only happen on updates which are not the initial update.
@@ -3777,6 +3788,22 @@ S32 LLViewerObject::setTETexGen(const U8 te, const U8 texgen)
return retval;
}
+S32 LLViewerObject::setTEMediaTexGen(const U8 te, const U8 media)
+{
+ S32 retval = 0;
+ const LLTextureEntry *tep = getTE(te);
+ if (!tep)
+ {
+ llwarns << "No texture entry for te " << (S32)te << ", object " << mID << llendl;
+ }
+ else if (media != tep->getMediaTexGen())
+ {
+ retval = LLPrimitive::setTEMediaTexGen(te, media);
+ setChanged(TEXTURE);
+ }
+ return retval;
+}
+
S32 LLViewerObject::setTEShiny(const U8 te, const U8 shiny)
{
S32 retval = 0;
diff --git a/indra/newview/llviewerobject.h b/indra/newview/llviewerobject.h
index 5ef2b960d4..21a99c58d9 100644
--- a/indra/newview/llviewerobject.h
+++ b/indra/newview/llviewerobject.h
@@ -305,6 +305,7 @@ public:
/*virtual*/ S32 setTERotation(const U8 te, const F32 r);
/*virtual*/ S32 setTEBumpmap(const U8 te, const U8 bump );
/*virtual*/ S32 setTETexGen(const U8 te, const U8 texgen );
+ /*virtual*/ S32 setTEMediaTexGen(const U8 te, const U8 media ); // *FIXME: this confusingly acts upon a superset of setTETexGen's flags without absorbing its semantics
/*virtual*/ S32 setTEShiny(const U8 te, const U8 shiny );
/*virtual*/ S32 setTEFullbright(const U8 te, const U8 fullbright );
/*virtual*/ S32 setTEMediaFlags(const U8 te, const U8 media_flags );
diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp
index 926c5040fc..8e9c798aca 100644
--- a/indra/newview/llviewerobjectlist.cpp
+++ b/indra/newview/llviewerobjectlist.cpp
@@ -61,6 +61,7 @@
#include "llresmgr.h"
#include "llviewerregion.h"
#include "llviewerstats.h"
+#include "llvoavatarself.h"
#include "lltoolmgr.h"
#include "lltoolpie.h"
#include "llkeyboard.h"
@@ -211,6 +212,7 @@ void LLViewerObjectList::processUpdateCore(LLViewerObject* objectp,
LLDataPacker* dpp,
BOOL just_created)
{
+ LLMemType mt(LLMemType::MTYPE_OBJECT_PROCESS_UPDATE_CORE);
LLMessageSystem* msg = gMessageSystem;
// ignore returned flags
@@ -261,6 +263,7 @@ void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys,
const EObjectUpdateType update_type,
bool cached, bool compressed)
{
+ LLMemType mt(LLMemType::MTYPE_OBJECT_PROCESS_UPDATE);
LLFastTimer t(LLFastTimer::FTM_PROCESS_OBJECTS);
LLVector3d camera_global = gAgent.getCameraPositionGlobal();
diff --git a/indra/newview/llviewerparcelmgr.cpp b/indra/newview/llviewerparcelmgr.cpp
index 224ccf41b6..bcb3853106 100644
--- a/indra/newview/llviewerparcelmgr.cpp
+++ b/indra/newview/llviewerparcelmgr.cpp
@@ -58,7 +58,6 @@
#include "llparcelselection.h"
#include "llresmgr.h"
#include "llsdutil.h"
-#include "llsdutil_math.h"
#include "llstatusbar.h"
#include "llui.h"
#include "llviewerimage.h"
@@ -2403,6 +2402,11 @@ boost::signals2::connection LLViewerParcelMgr::setTeleportFinishedCallback(parce
return mTeleportFinishedSignal.connect(cb);
}
+boost::signals2::connection LLViewerParcelMgr::setTeleportFailedCallback(parcel_changed_callback_t cb)
+{
+ return mTeleportFailedSignal.connect(cb);
+}
+
/* Ok, we're notified that teleport has been finished.
* We should now propagate the notification via mTeleportFinishedSignal
* to all interested parties.
@@ -2413,3 +2417,8 @@ void LLViewerParcelMgr::onTeleportFinished()
{
mTeleportInProgress = TRUE;
}
+
+void LLViewerParcelMgr::onTeleportFailed()
+{
+ mTeleportFailedSignal();
+}
diff --git a/indra/newview/llviewerparcelmgr.h b/indra/newview/llviewerparcelmgr.h
index 3426fda636..dc6c2a6287 100644
--- a/indra/newview/llviewerparcelmgr.h
+++ b/indra/newview/llviewerparcelmgr.h
@@ -42,7 +42,6 @@
#include <boost/function.hpp>
#include <boost/signals2.hpp>
-#include <boost/signals2/connection.hpp>
class LLUUID;
class LLMessageSystem;
@@ -83,7 +82,7 @@ class LLViewerParcelMgr : public LLSingleton<LLViewerParcelMgr>
{
public:
- typedef boost::function <void()> parcel_changed_callback_t;
+ typedef boost::function<void()> parcel_changed_callback_t;
typedef boost::signals2::signal<void()> parcel_changed_signal_t;
LLViewerParcelMgr();
@@ -265,7 +264,9 @@ public:
boost::signals2::connection setAgentParcelChangedCallback(parcel_changed_callback_t cb);
boost::signals2::connection setTeleportFinishedCallback(parcel_changed_callback_t cb);
+ boost::signals2::connection setTeleportFailedCallback(parcel_changed_callback_t cb);
void onTeleportFinished();
+ void onTeleportFailed();
static BOOL isParcelOwnedByAgent(const LLParcel* parcelp, U64 group_proxy_power);
static BOOL isParcelModifiableByAgent(const LLParcel* parcelp, U64 group_proxy_power);
@@ -316,6 +317,7 @@ private:
BOOL mTeleportInProgress;
parcel_changed_signal_t mTeleportFinishedSignal;
+ parcel_changed_signal_t mTeleportFailedSignal;
parcel_changed_signal_t mAgentParcelChangedSignal;
// Array of pieces of parcel edges to potentially draw
diff --git a/indra/newview/llviewerparceloverlay.cpp b/indra/newview/llviewerparceloverlay.cpp
index d76ec0dedb..5b60ed5a27 100644
--- a/indra/newview/llviewerparceloverlay.cpp
+++ b/indra/newview/llviewerparceloverlay.cpp
@@ -224,7 +224,7 @@ void LLViewerParcelOverlay::updateOverlayTexture()
{
U8 ownership = mOwnership[i];
- U8 r,g,b,a;
+ F32 r,g,b,a;
// Color stored in low three bits
switch( ownership & 0x7 )
@@ -273,10 +273,10 @@ void LLViewerParcelOverlay::updateOverlayTexture()
break;
}
- raw[pixel_index + 0] = r;
- raw[pixel_index + 1] = g;
- raw[pixel_index + 2] = b;
- raw[pixel_index + 3] = a;
+ raw[pixel_index + 0] = (U8)r;
+ raw[pixel_index + 1] = (U8)g;
+ raw[pixel_index + 2] = (U8)b;
+ raw[pixel_index + 3] = (U8)a;
pixel_index += OVERLAY_IMG_COMPONENTS;
}
@@ -712,6 +712,7 @@ void LLViewerParcelOverlay::setDirty()
void LLViewerParcelOverlay::idleUpdate(bool force_update)
{
+ LLMemType mt_iup(LLMemType::MTYPE_IDLE_UPDATE_PARCEL_OVERLAY);
if (gGLManager.mIsDisabled)
{
return;
diff --git a/indra/newview/llviewerprecompiledheaders.h b/indra/newview/llviewerprecompiledheaders.h
index b85edc4f58..0296327378 100644
--- a/indra/newview/llviewerprecompiledheaders.h
+++ b/indra/newview/llviewerprecompiledheaders.h
@@ -69,10 +69,12 @@
// Library headers from llcommon project:
#include "bitpack.h"
+#include "lldeleteutils.h"
#include "imageids.h"
#include "indra_constants.h"
//#include "linden_common.h"
//#include "llpreprocessor.h"
+#include "llallocator.h"
#include "llapp.h"
#include "llapr.h"
#include "llcriticaldamp.h"
@@ -218,9 +220,6 @@
#include "llvolumemgr.h"
#include "material_codes.h"
-// Library includes from llxml
-#include "llxmlnode.h"
-
// Library includes from llvfs
#include "llassettype.h"
#include "lldir.h"
diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp
index 89ebe0cec8..fd3dc16745 100644
--- a/indra/newview/llviewerregion.cpp
+++ b/indra/newview/llviewerregion.cpp
@@ -639,6 +639,7 @@ void LLViewerRegion::dirtyHeights()
BOOL LLViewerRegion::idleUpdate(F32 max_update_time)
{
+ LLMemType mt_ivr(LLMemType::MTYPE_IDLE_UPDATE_VIEWER_REGION);
// did_update returns TRUE if we did at least one significant update
BOOL did_update = mLandp->idleUpdate(max_update_time);
diff --git a/indra/newview/llviewerstats.cpp b/indra/newview/llviewerstats.cpp
index 3382adaec5..c79ded1dce 100644
--- a/indra/newview/llviewerstats.cpp
+++ b/indra/newview/llviewerstats.cpp
@@ -47,6 +47,7 @@
#include "llviewerobjectlist.h"
#include "llviewerimagelist.h"
#include "lltexlayer.h"
+#include "lltexlayerparams.h"
#include "llsurface.h"
#include "llvlmanager.h"
#include "llagent.h"
@@ -57,6 +58,7 @@
#include "llfasttimerview.h"
#include "llviewerregion.h"
#include "llvoavatar.h"
+#include "llvoavatarself.h"
#include "llfloaterhtml.h"
#include "llviewerwindow.h" // *TODO: remove, only used for width/height
#include "llworld.h"
@@ -423,8 +425,8 @@ void output_statistics(void*)
llinfos << "Number of orphans: " << gObjectList.getOrphanCount() << llendl;
llinfos << "Number of dead objects: " << gObjectList.mNumDeadObjects << llendl;
llinfos << "Num images: " << gImageList.getNumImages() << llendl;
- llinfos << "Texture usage: " << LLImageGL::sGlobalTextureMemory << llendl;
- llinfos << "Texture working set: " << LLImageGL::sBoundTextureMemory << llendl;
+ llinfos << "Texture usage: " << LLImageGL::sGlobalTextureMemoryInBytes << llendl;
+ llinfos << "Texture working set: " << LLImageGL::sBoundTextureMemoryInBytes << llendl;
llinfos << "Raw usage: " << LLImageRaw::sGlobalRawMemory << llendl;
llinfos << "Formatted usage: " << LLImageFormatted::sGlobalFormattedMemory << llendl;
llinfos << "Zombie Viewer Objects: " << LLViewerObject::getNumZombieObjects() << llendl;
@@ -507,10 +509,10 @@ void output_statistics(void*)
llinfos << "--------------------------------" << llendl;
llinfos << "Avatar Memory (partly overlaps with above stats):" << llendl;
- gTexStaticImageList.dumpByteCount();
- LLVOAvatar::dumpScratchTextureByteCount();
+ LLTexLayerStaticImageList::getInstance()->dumpByteCount();
+ LLVOAvatarSelf::dumpScratchTextureByteCount();
LLTexLayerSetBuffer::dumpTotalByteCount();
- LLVOAvatar::dumpTotalLocalTextureByteCount();
+ LLVOAvatarSelf::dumpTotalLocalTextureByteCount();
LLTexLayerParamAlpha::dumpCacheByteCount();
LLVOAvatar::dumpBakedStatus();
@@ -592,7 +594,7 @@ void update_statistics(U32 frame_count)
LLViewerStats::getInstance()->setStat(LLViewerStats::ST_SHADER_AVATAR, (F64)gSavedSettings.getBOOL("VertexShaderLevelAvatar"));
LLViewerStats::getInstance()->setStat(LLViewerStats::ST_SHADER_ENVIRONMENT, (F64)gSavedSettings.getBOOL("VertexShaderLevelEnvironment"));
#endif
- LLViewerStats::getInstance()->setStat(LLViewerStats::ST_FRAME_SECS, gDebugView->mFastTimerView->getTime(LLFastTimer::FTM_FRAME));
+ LLViewerStats::getInstance()->setStat(LLViewerStats::ST_FRAME_SECS, gDebugView->mFastTimerView->getTime(LLFastTimer::NamedTimer::getRootNamedTimer().getFrameState()));
F64 idle_secs = gDebugView->mFastTimerView->getTime(LLFastTimer::FTM_IDLE);
F64 network_secs = gDebugView->mFastTimerView->getTime(LLFastTimer::FTM_NETWORK);
LLViewerStats::getInstance()->setStat(LLViewerStats::ST_UPDATE_SECS, idle_secs - network_secs);
diff --git a/indra/newview/llviewertexteditor.cpp b/indra/newview/llviewertexteditor.cpp
index 290e6f50ff..f4989ec4fe 100644
--- a/indra/newview/llviewertexteditor.cpp
+++ b/indra/newview/llviewertexteditor.cpp
@@ -64,7 +64,7 @@
#include "llappviewer.h" // for gPacificDaylightTime
-static LLRegisterWidget<LLViewerTextEditor> r("text_editor");
+static LLDefaultWidgetRegistry::Register<LLViewerTextEditor> r("text_editor");
///----------------------------------------------------------------------------
/// Class LLEmbeddedNotecardOpener
@@ -1212,8 +1212,9 @@ std::string LLViewerTextEditor::appendTime(bool prepend_newline)
{
time_t utc_time;
utc_time = time_corrected();
+ std::string timeStr ="[["+ LLTrans::getString("TimeHour")+"]:["
+ +LLTrans::getString("TimeMin")+"]] ";
- std::string timeStr = LLTrans::getString("TextEditorTimeStr");
LLSD substitution;
substitution["datetime"] = (S32) utc_time;
diff --git a/indra/newview/llviewervisualparam.cpp b/indra/newview/llviewervisualparam.cpp
index 8c7700eb65..7d717ed6dc 100644
--- a/indra/newview/llviewervisualparam.cpp
+++ b/indra/newview/llviewervisualparam.cpp
@@ -76,7 +76,7 @@ BOOL LLViewerVisualParamInfo::parseXml(LLXmlTreeNode *node)
static LLStdStringHandle wearable_string = LLXmlTree::addAttributeString("wearable");
if( node->getFastAttributeString( wearable_string, wearable) )
{
- mWearableType = LLWearable::typeNameToType( wearable );
+ mWearableType = LLWearableDictionary::typeNameToType( wearable );
}
static LLStdStringHandle edit_group_string = LLXmlTree::addAttributeString("edit_group");
@@ -119,12 +119,6 @@ LLViewerVisualParam::LLViewerVisualParam()
{
}
-/*
-//=============================================================================
-// These virtual functions should always be overridden,
-// but are included here for use as templates
-//=============================================================================
-
//-----------------------------------------------------------------------------
// setInfo()
//-----------------------------------------------------------------------------
@@ -140,6 +134,12 @@ BOOL LLViewerVisualParam::setInfo(LLViewerVisualParamInfo *info)
return TRUE;
}
+/*
+//=============================================================================
+// These virtual functions should always be overridden,
+// but are included here for use as templates
+//=============================================================================
+
//-----------------------------------------------------------------------------
// parseData()
//-----------------------------------------------------------------------------
diff --git a/indra/newview/llviewervisualparam.h b/indra/newview/llviewervisualparam.h
index 48d28cebf3..77a95db564 100644
--- a/indra/newview/llviewervisualparam.h
+++ b/indra/newview/llviewervisualparam.h
@@ -90,7 +90,7 @@ public:
virtual const LLVector3* getNextDistortion(U32 *index, LLPolyMesh **mesh) = 0;
// interface methods
- F32 getDisplayOrder() { return getInfo()->mEditGroupDisplayOrder; }
+ F32 getDisplayOrder() const { return getInfo()->mEditGroupDisplayOrder; }
S32 getWearableType() const { return getInfo()->mWearableType; }
const std::string& getEditGroup() const { return getInfo()->mEditGroup; }
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 4a58f7d955..fb501b023f 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -58,6 +58,7 @@
#include "audioengine.h" // mute on minimize
#include "indra_constants.h"
#include "llassetstorage.h"
+#include "llerrorcontrol.h"
#include "llfontgl.h"
#include "llmousehandler.h"
#include "llrect.h"
@@ -128,7 +129,9 @@
#include "llpreviewtexture.h"
#include "llprogressview.h"
#include "llresmgr.h"
+#include "llsidetray.h"
#include "llselectmgr.h"
+#include "llrootview.h"
#include "llrendersphere.h"
#include "llstartup.h"
#include "llstatusbar.h"
@@ -169,7 +172,7 @@
#include "llviewerregion.h"
#include "llviewershadermgr.h"
#include "llviewerstats.h"
-#include "llvoavatar.h"
+#include "llvoavatarself.h"
#include "llvovolume.h"
#include "llworld.h"
#include "llworldmapview.h"
@@ -181,9 +184,12 @@
#include "llviewerjoystick.h"
#include "llviewernetwork.h"
#include "llpostprocess.h"
+#include "llbottomtray.h"
#include "llfloaternotificationsconsole.h"
+#include "llnearbychathistory.h"
+
#if LL_WINDOWS
#include <tchar.h> // For Unicode conversion methods
#endif
@@ -245,23 +251,27 @@ std::string LLViewerWindow::sMovieBaseName;
extern void toggle_debug_menus(void*);
-
-class LLBottomPanel : public LLPanel
+class RecordToChatConsole : public LLError::Recorder, public LLSingleton<RecordToChatConsole>
{
public:
- LLBottomPanel(const LLRect& rect);
- void setFocusIndicator(LLView * indicator);
- LLView * getFocusIndicator() { return mIndicator; }
- /*virtual*/ void draw();
-
- static void* createHUD(void* data);
- static void* createOverlayBar(void* data);
- static void* createToolBar(void* data);
+ virtual void recordMessage(LLError::ELevel level,
+ const std::string& message)
+ {
+ // only log warnings to chat console
+ if (level == LLError::LEVEL_WARN)
+ {
+ LLFloaterChat* chat_floater = LLFloaterReg::findTypedInstance<LLFloaterChat>("chat");
+ if (chat_floater && gSavedSettings.getBOOL("WarningsAsChat"))
+ {
+ LLChat chat;
+ chat.mText = message;
+ chat.mSourceType = CHAT_SOURCE_SYSTEM;
-protected:
- LLView * mIndicator;
+ chat_floater->addChat(chat, FALSE, FALSE);
+ }
+ }
+ }
};
-LLBottomPanel* gBottomPanel = NULL;
////////////////////////////////////////////////////////////////////////////
//
@@ -1235,6 +1245,7 @@ LLViewerWindow::LLViewerWindow(
mShowFullscreenProgress(FALSE),
mWindowRect(0, height, width, 0),
mVirtualWindowRect(0, height, width, 0),
+ mWorldViewRect(0, height, width, 0),
mLeftMouseDown(FALSE),
mMiddleMouseDown(FALSE),
mRightMouseDown(FALSE),
@@ -1340,7 +1351,6 @@ LLViewerWindow::LLViewerWindow(
mInitAlert = "DisplaySettingsNoShaders";
LLFeatureManager::getInstance()->setGraphicsLevel(0, false);
gSavedSettings.setU32("RenderQualityPerformance", 0);
-
}
// Init the image list. Must happen after GL is initialized and before the images that
@@ -1364,7 +1374,7 @@ LLViewerWindow::LLViewerWindow(
rvp.rect(mVirtualWindowRect);
rvp.mouse_opaque(false);
rvp.follows.flags(FOLLOWS_NONE);
- mRootView = LLUICtrlFactory::create<LLView>(rvp);
+ mRootView = LLUICtrlFactory::create<LLRootView>(rvp);
LLUI::setRootView(mRootView);
// Make avatar head look forward at start
@@ -1440,21 +1450,9 @@ void LLViewerWindow::initBase()
// Constrain floaters to inside the menu and status bar regions.
LLRect floater_view_rect = full_window;
- // make space for menu bar if we have one
+ // make space for menu bar
floater_view_rect.mTop -= MENU_BAR_HEIGHT;
- // make space for nav bar
- floater_view_rect.mTop -= NAVIGATION_BAR_HEIGHT;
-
- // TODO: Eliminate magic constants - please used named constants if changing this
- floater_view_rect.mBottom += STATUS_BAR_HEIGHT + 12 + 16 + 2;
-
- // Check for non-first startup
- S32 floater_view_bottom = gSavedSettings.getS32("FloaterViewBottom");
- if (floater_view_bottom >= 0)
- {
- floater_view_rect.mBottom = floater_view_bottom;
- }
LLFloaterView::Params fvparams;
fvparams.name("Floater View");
fvparams.rect(floater_view_rect);
@@ -1475,35 +1473,27 @@ void LLViewerWindow::initBase()
// Console
llassert( !gConsole );
- LLRect console_rect = full_window;
- console_rect.mTop -= 24;
-
- console_rect.mBottom += getChatConsoleBottomPad();
-
- // TODO: Eliminate magic constants - please used named constants if changing this - don't be a programmer hater
- console_rect.mLeft += 24; //gSavedSettings.getS32("StatusBarButtonWidth") + gSavedSettings.getS32("StatusBarPad");
-
- if (gSavedSettings.getBOOL("ChatFullWidth"))
- {
- console_rect.mRight -= 10;
- }
- else
- {
- // Make console rect somewhat narrow so having inventory open is
- // less of a problem.
- console_rect.mRight = console_rect.mLeft + 2 * width / 3;
- }
-
LLConsole::Params cp;
cp.name("console");
cp.max_lines(gSavedSettings.getS32("ConsoleBufferSize"));
- cp.rect(console_rect);
+ cp.rect(getChatConsoleRect());
cp.persist_time(gSavedSettings.getF32("ChatPersistTime"));
cp.font_size_index(gSavedSettings.getS32("ChatFontSize"));
cp.follows.flags(FOLLOWS_LEFT | FOLLOWS_RIGHT | FOLLOWS_BOTTOM);
gConsole = LLUICtrlFactory::create<LLConsole>(cp);
mRootView->addChild(gConsole);
+ // optionally forward warnings to chat console/chat floater
+ // for qa runs and dev builds
+#if !LL_RELEASE_FOR_DOWNLOAD
+ LLError::addRecorder(RecordToChatConsole::getInstance());
+#else
+ if(gSavedSettings.getBOOL("QAMode"))
+ {
+ LLError::addRecorder(RecordToChatConsole::getInstance());
+ }
+#endif
+
// Debug view over the console
LLDebugView::Params debug_p;
debug_p.name("DebugView");
@@ -1519,8 +1509,6 @@ void LLViewerWindow::initBase()
// notify above floaters!
LLRect notify_rect = floater_view_rect;
- //notify_rect.mTop -= 24;
- notify_rect.mBottom += STATUS_BAR_HEIGHT;
LLNotifyBoxView::Params p;
p.name("notify_container");
p.rect(notify_rect);
@@ -1559,87 +1547,115 @@ void LLViewerWindow::initWorldUI()
S32 width = mRootView->getRect().getWidth();
LLRect full_window(0, height, width, 0);
- if ( gBottomPanel == NULL ) // Don't re-enter if objects are alreay created
- {
- // panel containing chatbar, toolbar, and overlay, over floaters
- gBottomPanel = new LLBottomPanel(mRootView->getRect());
- mRootView->addChild(gBottomPanel);
-
- // View for hover information
- LLHoverView::Params hvp;
- hvp.name("gHoverview");
- hvp.rect(full_window);
- gHoverView = LLUICtrlFactory::create<LLHoverView>(hvp);
- mRootView->addChild(gHoverView);
-
- // Pre initialize instance communicate instance;
- // currently needs to happen before initializing chat or IM
- LLFloaterReg::getInstance("communicate");
-
- gIMMgr = LLIMMgr::getInstance();
+ gIMMgr = LLIMMgr::getInstance();
- if ( gSavedPerAccountSettings.getBOOL("LogShowHistory") )
- {
- LLFloaterChat::loadHistory();
- }
+ // new bottom panel
+ LLRect rc = LLBottomTray::getInstance()->getRect();
+ rc.mLeft = 0;
+ rc.mRight = mRootView->getRect().getWidth();
+ mRootView->addChild(LLBottomTray::getInstance());
+ LLBottomTray::getInstance()->reshape(rc.getWidth(),rc.getHeight(),FALSE);
+ LLBottomTray::getInstance()->setRect(rc);
- LLRect morph_view_rect = full_window;
- morph_view_rect.stretch( -STATUS_BAR_HEIGHT );
- morph_view_rect.mTop = full_window.mTop - 32;
- LLMorphView::Params mvp;
- mvp.name("MorphView");
- mvp.rect(morph_view_rect);
- mvp.visible(false);
- gMorphView = LLUICtrlFactory::create<LLMorphView>(mvp);
- mRootView->addChild(gMorphView);
+ // Updating of bottom boundary of gConsole to avoid overlapping
+ if (gConsole)
+ {
+ LLRect cr = gConsole->getRect();
+ cr.mBottom += LLBottomTray::getInstance()->getRect().getHeight();
+ gConsole->setRect(cr);
+ }
- // *Note: this is where gFloaterMute used to be initialized.
+ // View for hover information
+ LLHoverView::Params hvp;
+ hvp.name("gHoverview");
+ hvp.rect(full_window);
+ gHoverView = LLUICtrlFactory::create<LLHoverView>(hvp);
+ mRootView->addChild(gHoverView);
- LLWorldMapView::initClass();
-
- // Force gFloaterWorldMap to initialize
- LLFloaterReg::getInstance("world_map");
- LLFloaterReg::hideInstance("world_map");
-
- // Force gFloaterTools to initialize
- LLFloaterReg::getInstance("build");
- LLFloaterReg::hideInstance("build");
-
- // Status bar
- S32 menu_bar_height = gMenuBarView->getRect().getHeight();
- LLRect root_rect = getRootView()->getRect();
- LLRect status_rect(0, root_rect.getHeight(), root_rect.getWidth(), root_rect.getHeight() - menu_bar_height);
- gStatusBar = new LLStatusBar(status_rect);
- gStatusBar->setFollows(FOLLOWS_LEFT | FOLLOWS_RIGHT | FOLLOWS_TOP);
-
- gStatusBar->reshape(root_rect.getWidth(), gStatusBar->getRect().getHeight(), TRUE);
- gStatusBar->translate(0, root_rect.getHeight() - gStatusBar->getRect().getHeight());
- // sync bg color with menu bar
- gStatusBar->setBackgroundColor( gMenuBarView->getBackgroundColor().get() );
-
- // Navigation bar
-
- LLNavigationBar* navbar = LLNavigationBar::getInstance();
- navbar->reshape(root_rect.getWidth(), navbar->getRect().getHeight(), TRUE); // *TODO: redundant?
- navbar->translate(0, root_rect.getHeight() - menu_bar_height - navbar->getRect().getHeight()); // FIXME
- navbar->setBackgroundColor(gMenuBarView->getBackgroundColor().get());
-
- getRootView()->addChild(gStatusBar);
- getRootView()->addChild(navbar);
+ // Pre initialize instance communicate instance;
+ // currently needs to happen before initializing chat or IM
+ LLFloaterReg::getInstance("communicate");
- // menu holder appears on top to get first pass at all mouse events
- getRootView()->sendChildToFront(gMenuHolder);
+ if ( gSavedPerAccountSettings.getBOOL("LogShowHistory") )
+ {
+ LLFloaterChat::loadHistory();
}
+
+ LLRect morph_view_rect = full_window;
+ morph_view_rect.stretch( -STATUS_BAR_HEIGHT );
+ morph_view_rect.mTop = full_window.mTop - 32;
+ LLMorphView::Params mvp;
+ mvp.name("MorphView");
+ mvp.rect(morph_view_rect);
+ mvp.visible(false);
+ gMorphView = LLUICtrlFactory::create<LLMorphView>(mvp);
+ mRootView->addChild(gMorphView);
+
+ // Make space for nav bar.
+ LLRect floater_view_rect = gFloaterView->getRect();
+ LLRect notify_view_rect = gNotifyBoxView->getRect();
+ floater_view_rect.mTop -= NAVIGATION_BAR_HEIGHT;
+ floater_view_rect.mBottom += LLBottomTray::getInstance()->getRect().getHeight();
+ notify_view_rect.mTop -= NAVIGATION_BAR_HEIGHT;
+ notify_view_rect.mBottom += LLBottomTray::getInstance()->getRect().getHeight();
+ gFloaterView->setRect(floater_view_rect);
+ gNotifyBoxView->setRect(notify_view_rect);
+
+ // *Note: this is where gFloaterMute used to be initialized.
+
+ LLWorldMapView::initClass();
+
+ // Force gFloaterWorldMap to initialize
+ LLFloaterReg::getInstance("world_map");
+ LLFloaterReg::hideInstance("world_map");
+
+ // Force gFloaterTools to initialize
+ LLFloaterReg::getInstance("build");
+ LLFloaterReg::hideInstance("build");
+
+ // Status bar
+ S32 menu_bar_height = gMenuBarView->getRect().getHeight();
+ LLRect root_rect = getRootView()->getRect();
+ LLRect status_rect(0, root_rect.getHeight(), root_rect.getWidth(), root_rect.getHeight() - menu_bar_height);
+ gStatusBar = new LLStatusBar(status_rect);
+ gStatusBar->setFollows(FOLLOWS_LEFT | FOLLOWS_RIGHT | FOLLOWS_TOP);
+
+ gStatusBar->reshape(root_rect.getWidth(), gStatusBar->getRect().getHeight(), TRUE);
+ gStatusBar->translate(0, root_rect.getHeight() - gStatusBar->getRect().getHeight());
+ // sync bg color with menu bar
+ gStatusBar->setBackgroundColor( gMenuBarView->getBackgroundColor().get() );
+
+ // Navigation bar
+
+ LLNavigationBar* navbar = LLNavigationBar::getInstance();
+ navbar->reshape(root_rect.getWidth(), navbar->getRect().getHeight(), TRUE); // *TODO: redundant?
+ navbar->translate(0, root_rect.getHeight() - menu_bar_height - navbar->getRect().getHeight()); // FIXME
+ navbar->setBackgroundColor(gMenuBarView->getBackgroundColor().get());
+
+ getRootView()->addChild(gStatusBar);
+ getRootView()->addChild(navbar);
+
+ // side tray
+ getRootView()->addChild(LLSideTray::getInstance());
+
+ //sidetray
+ //then notify area
+ //then menu
+ getRootView()->sendChildToFront(LLSideTray::getInstance());
+ getRootView()->sendChildToFront(gNotifyBoxView);
+ // menu holder appears on top to get first pass at all mouse events
+ getRootView()->sendChildToFront(gMenuHolder);
}
// Destroy the UI
void LLViewerWindow::shutdownViews()
{
+ // clean up warning logger
+ LLError::removeRecorder(RecordToChatConsole::getInstance());
+
delete mDebugText;
mDebugText = NULL;
- gSavedSettings.setS32("FloaterViewBottom", gFloaterView->getRect().mBottom);
-
// Cleanup global views
if (gMorphView)
{
@@ -1752,8 +1768,8 @@ void LLViewerWindow::sendShapeToSim()
msg->addU32Fast(_PREHASH_CircuitCode, gMessageSystem->mOurCircuitCode);
msg->nextBlockFast(_PREHASH_HeightWidthBlock);
msg->addU32Fast(_PREHASH_GenCounter, 0);
- U16 height16 = (U16) mWindowRect.getHeight();
- U16 width16 = (U16) mWindowRect.getWidth();
+ U16 height16 = (U16) mWorldViewRect.getHeight();
+ U16 width16 = (U16) mWorldViewRect.getWidth();
msg->addU16Fast(_PREHASH_Height, height16);
msg->addU16Fast(_PREHASH_Width, width16);
gAgent.sendReliableMessage();
@@ -1774,25 +1790,18 @@ void LLViewerWindow::reshape(S32 width, S32 height)
return;
}
- glViewport(0, 0, width, height );
+ // update our window rectangle
+ mWindowRect.mRight = mWindowRect.mLeft + width;
+ mWindowRect.mTop = mWindowRect.mBottom + height;
+
+ //glViewport(0, 0, width, height );
if (height > 0)
{
- LLViewerCamera::getInstance()->setViewHeightInPixels( height );
- if (mWindow->getFullscreen())
- {
- // force to 4:3 aspect for odd resolutions
- LLViewerCamera::getInstance()->setAspect( getDisplayAspectRatio() );
- }
- else
- {
- LLViewerCamera::getInstance()->setAspect( width / (F32) height);
- }
+ LLViewerCamera::getInstance()->setViewHeightInPixels( mWorldViewRect.getHeight() );
+ LLViewerCamera::getInstance()->setAspect( getWorldViewAspectRatio() );
}
- // update our window rectangle
- mWindowRect.mRight = mWindowRect.mLeft + width;
- mWindowRect.mTop = mWindowRect.mBottom + height;
calcDisplayScale();
BOOL display_scale_changed = mDisplayScale != LLUI::sGLScaleFactor;
@@ -1802,7 +1811,7 @@ void LLViewerWindow::reshape(S32 width, S32 height)
mVirtualWindowRect.mRight = mVirtualWindowRect.mLeft + llround((F32)width / mDisplayScale.mV[VX]);
mVirtualWindowRect.mTop = mVirtualWindowRect.mBottom + llround((F32)height / mDisplayScale.mV[VY]);
- setupViewport();
+ setup2DViewport();
// Inform lower views of the change
// round up when converting coordinates to make sure there are no gaps at edge of window
@@ -1820,7 +1829,7 @@ void LLViewerWindow::reshape(S32 width, S32 height)
// store the mode the user wants (even if not there yet)
- gSavedSettings.setBOOL("FullScreen", mWantFullscreen);
+ gSavedSettings.setBOOL("NotFullScreen", !mWantFullscreen);
// store new settings for the mode we are in, regardless
if (!mWindow->getFullscreen())
@@ -1840,7 +1849,6 @@ void LLViewerWindow::reshape(S32 width, S32 height)
LLViewerStats::getInstance()->setStat(LLViewerStats::ST_WINDOW_WIDTH, (F64)width);
LLViewerStats::getInstance()->setStat(LLViewerStats::ST_WINDOW_HEIGHT, (F64)height);
- gResizeScreenTexture = TRUE;
}
}
@@ -1848,11 +1856,8 @@ void LLViewerWindow::reshape(S32 width, S32 height)
// Hide normal UI when a logon fails
void LLViewerWindow::setNormalControlsVisible( BOOL visible )
{
- if ( gBottomPanel )
- {
- gBottomPanel->setVisible( visible );
- gBottomPanel->setEnabled( visible );
- }
+ LLBottomTray::getInstance()->setVisible(visible);
+ LLBottomTray::getInstance()->setEnabled(visible);
if ( gMenuBarView )
{
@@ -1908,7 +1913,6 @@ void LLViewerWindow::setMenuBackgroundColor(bool god_mode, bool dev_grid)
{
gStatusBar->setBackgroundColor( new_bg_color );
gStatusBar->getChild<LLTextBox>("HealthText")->setBackgroundColor(new_bg_color);
- gStatusBar->getChild<LLTextBox>("ParcelNameText")->setBackgroundColor(new_bg_color);
}
}
@@ -2120,15 +2124,15 @@ BOOL LLViewerWindow::handleKey(KEY key, MASK mask)
}
}
- // Debugging view for unified notifications: Control-Alt-N because
- // Ctrl-Shift-N maps to Nighttime under windlight.
- // Ctrl-Alt-Shift-N is Show beacons
- if (!(MASK_SHIFT & mask)
- && (MASK_CONTROL & mask)
- && (MASK_ALT & mask)
- && ('N' == key || 'n' == key))
+ // Debugging view for unified notifications: CTRL-SHIFT-5
+ // *FIXME: Having this special-cased right here (just so this can be invoked from the login screen) sucks.
+ if ((MASK_SHIFT & mask)
+ && (!(MASK_ALT & mask))
+ && (MASK_CONTROL & mask)
+ && ('5' == key))
{
- LLFloaterNotificationConsole::showInstance();
+ //LLFloaterNotificationConsole::showInstance();
+ LLFloaterReg::showInstance("notifications_console");
return TRUE;
}
@@ -2369,8 +2373,8 @@ void LLViewerWindow::handleScrollWheel(S32 clicks)
void LLViewerWindow::moveCursorToCenter()
{
- S32 x = mVirtualWindowRect.getWidth() / 2;
- S32 y = mVirtualWindowRect.getHeight() / 2;
+ S32 x = mWorldViewRect.getWidth() / 2;
+ S32 y = mWorldViewRect.getHeight() / 2;
//on a forced move, all deltas get zeroed out to prevent jumping
mCurrentMousePoint.set(x,y);
@@ -2391,6 +2395,8 @@ void LLViewerWindow::updateUI()
{
static std::string last_handle_msg;
+ updateWorldViewRect();
+
LLView::sMouseHandlerMessage.clear();
S32 x = mCurrentMousePoint.mX;
@@ -2423,42 +2429,59 @@ void LLViewerWindow::updateUI()
root_view = mRootView;
}
- for (LLView::tree_iterator_t it = root_view->beginTree();
- it != root_view->endTree();
- ++it)
+ // aggregate visible views that contain mouse cursor in display order
+
+ // while the top_ctrl contains the mouse cursor, only it and its descendants will receive onMouseEnter events
+ if (top_ctrl && top_ctrl->calcScreenBoundingRect().pointInRect(x, y))
{
- LLView* viewp = *it;
- // calculating the screen rect involves traversing the parent, so this is less than optimal
- if (!viewp->getVisible()
- || !viewp->calcScreenBoundingRect().pointInRect(x, y))
+ // iterator over contents of top_ctrl, and throw into mouse_hover_set
+ for (LLView::tree_iterator_t it = top_ctrl->beginTree();
+ it != top_ctrl->endTree();
+ ++it)
{
- // skip this view and all of its children
- it.skipChildren();
- continue;
+ LLView* viewp = *it;
+ if (viewp->getVisible()
+ && viewp->calcScreenBoundingRect().pointInRect(x, y))
+ {
+ // we have a view that contains the mouse, add it to the set
+ mouse_hover_set.insert(viewp->getHandle());
+ }
+ else
+ {
+ // skip this view and all of its children
+ it.skipDescendants();
+ }
}
-
- // we have a view that contains the mouse, add it to the set
- mouse_hover_set.insert(viewp->getHandle());
}
-
- // now do the same aggregation for the "top" ctrl, whose parent does not necessarily contain the mouse
- if (top_ctrl)
+ else
{
- for (LLView::tree_iterator_t it = top_ctrl->beginTree();
- it != root_view->endTree();
+ // walk UI tree in depth-first order
+ LLView::tree_iterator_t end_it;
+ for (LLView::tree_iterator_t it = root_view->beginTree();
+ it != end_it;
++it)
{
LLView* viewp = *it;
- if (!viewp->getVisible()
- || !viewp->calcScreenBoundingRect().pointInRect(x, y))
+ // calculating the screen rect involves traversing the parent, so this is less than optimal
+ if (viewp->getVisible()
+ && viewp->calcScreenBoundingRect().pointInRect(x, y))
+ {
+
+ // if this view is mouse opaque, nothing behind it should be in mouse_hover_set
+ if (viewp->getMouseOpaque())
+ {
+ // constrain further iteration to children of this widget
+ it = viewp->beginTree();
+ }
+
+ // we have a view that contains the mouse, add it to the set
+ mouse_hover_set.insert(viewp->getHandle());
+ }
+ else
{
// skip this view and all of its children
- it.skipChildren();
- continue;
+ it.skipDescendants();
}
-
- // we have a view that contains the mouse, add it to the set
- mouse_hover_set.insert(viewp->getHandle());
}
}
@@ -2750,81 +2773,6 @@ void LLViewerWindow::updateLayout()
}
gMenuBarView->setItemVisible("BuildTools", gFloaterTools->getVisible());
}
-
- if (gToolBar)
- {
- gToolBar->refresh();
- }
-
- if (gChatBar)
- {
- gChatBar->refresh();
- }
-
- if (gOverlayBar)
- {
- gOverlayBar->refresh();
- }
-
- // Update rectangles for the various toolbars
- if (gOverlayBar && gNotifyBoxView && gConsole && gToolBar)
- {
- LLRect bar_rect(-1, STATUS_BAR_HEIGHT, getWindowWidth()+1, -1);
-
- LLRect notify_box_rect = gNotifyBoxView->getRect();
- notify_box_rect.mBottom = bar_rect.mBottom;
- gNotifyBoxView->reshape(notify_box_rect.getWidth(), notify_box_rect.getHeight());
- gNotifyBoxView->setRect(notify_box_rect);
-
- // make sure floaters snap to visible rect by adjusting floater view rect
- LLRect floater_rect = gFloaterView->getRect();
- if (floater_rect.mBottom != bar_rect.mBottom+1)
- {
- floater_rect.mBottom = bar_rect.mBottom+1;
- // Don't bounce the floaters up and down.
- gFloaterView->reshapeFloater(floater_rect.getWidth(), floater_rect.getHeight(),
- TRUE, ADJUST_VERTICAL_NO);
- gFloaterView->setRect(floater_rect);
- }
-
- // snap floaters to top of chat bar/button strip
- LLView* chatbar_and_buttons = gOverlayBar->getChild<LLView>("chatbar_and_buttons", TRUE);
- // find top of chatbar and state buttons, if either are visible
- if (chatbar_and_buttons && !chatbar_and_buttons->getLocalBoundingRect().isNull())
- {
- // convert top/left corner of chatbar/buttons container to gFloaterView-relative coordinates
- S32 top, left;
- chatbar_and_buttons->localPointToOtherView(
- chatbar_and_buttons->getLocalBoundingRect().mLeft,
- chatbar_and_buttons->getLocalBoundingRect().mTop,
- &left,
- &top,
- gFloaterView);
- gFloaterView->setSnapOffsetBottom(top);
- }
- else if (gToolBar->getVisible())
- {
- S32 top, left;
- gToolBar->localPointToOtherView(
- gToolBar->getLocalBoundingRect().mLeft,
- gToolBar->getLocalBoundingRect().mTop,
- &left,
- &top,
- gFloaterView);
- gFloaterView->setSnapOffsetBottom(top);
- }
- else
- {
- gFloaterView->setSnapOffsetBottom(0);
- }
-
- // Always update console
- LLRect console_rect = gConsole->getRect();
- console_rect.mBottom = gHUDView->getRect().mBottom + getChatConsoleBottomPad();
- gConsole->reshape(console_rect.getWidth(), console_rect.getHeight());
- gConsole->setRect(console_rect);
- }
-
}
void LLViewerWindow::updateMouseDelta()
@@ -2939,6 +2887,10 @@ void LLViewerWindow::updateKeyboardFocus()
gFloaterView->syncFloaterTabOrder();
}
+ if(LLSideTray::instanceCreated())//just getInstance will create sidetray. we don't want this
+ LLSideTray::getInstance()->highlightFocused();
+
+
if (gSavedSettings.getBOOL("ChatBarStealsFocus")
&& gChatBar
&& gFocusMgr.getKeyboardFocus() == NULL
@@ -2950,6 +2902,38 @@ void LLViewerWindow::updateKeyboardFocus()
}
+void LLViewerWindow::updateWorldViewRect()
+{
+ if (!LLSideTray::instanceCreated()) return;
+
+ LLRect new_world_rect = mWindowRect;
+
+ // pull in right side of world view based on sidetray
+ LLSideTray* sidetray = LLSideTray::getInstance();
+ if (sidetray->getVisible())
+ {
+ new_world_rect.mRight -= llround((F32)sidetray->getTrayWidth() * mDisplayScale.mV[VX]);
+ }
+
+ // push top of world view below nav bar
+ if (LLNavigationBar::getInstance()->getVisible())
+ {
+ LLNavigationBar* barp = LLNavigationBar::getInstance();
+ LLRect nav_bar_rect;
+ if(barp->localRectToOtherView(barp->getLocalRect(), &nav_bar_rect, mRootView))
+ {
+ new_world_rect.mTop = llround((F32)LLNavigationBar::getInstance()->getRect().mBottom * mDisplayScale.mV[VY]);
+ }
+ }
+
+ if (mWorldViewRect != new_world_rect)
+ {
+ mWorldViewRect = new_world_rect;
+ gResizeScreenTexture = TRUE;
+ LLViewerCamera::getInstance()->setViewHeightInPixels( mWorldViewRect.getHeight() );
+ LLViewerCamera::getInstance()->setAspect( getWorldViewAspectRatio() );
+ }
+}
/* static */
void LLViewerWindow::hoverPickCallback(const LLPickInfo& pick_info)
@@ -3226,10 +3210,10 @@ void LLViewerWindow::pickAsync(S32 x, S32 y_from_bot, MASK mask, void (*callback
{
mPickScreenRegion.setCenterAndSize(x, y_from_bot, PICK_DIAMETER, PICK_DIAMETER);
- if (mPickScreenRegion.mLeft < 0) mPickScreenRegion.translate(-mPickScreenRegion.mLeft, 0);
- if (mPickScreenRegion.mBottom < 0) mPickScreenRegion.translate(0, -mPickScreenRegion.mBottom);
- if (mPickScreenRegion.mRight > mWindowRect.getWidth() ) mPickScreenRegion.translate(mWindowRect.getWidth() - mPickScreenRegion.mRight, 0);
- if (mPickScreenRegion.mTop > mWindowRect.getHeight() ) mPickScreenRegion.translate(0, mWindowRect.getHeight() - mPickScreenRegion.mTop);
+ if (mPickScreenRegion.mLeft < mWorldViewRect.mLeft) mPickScreenRegion.translate(mWorldViewRect.mLeft - mPickScreenRegion.mLeft, 0);
+ if (mPickScreenRegion.mBottom < mWorldViewRect.mBottom) mPickScreenRegion.translate(0, mWorldViewRect.mBottom - mPickScreenRegion.mBottom);
+ if (mPickScreenRegion.mRight > mWorldViewRect.mRight ) mPickScreenRegion.translate(mWorldViewRect.mRight - mPickScreenRegion.mRight, 0);
+ if (mPickScreenRegion.mTop > mWorldViewRect.mTop ) mPickScreenRegion.translate(0, mWorldViewRect.mTop - mPickScreenRegion.mTop);
}
// set frame buffer region for picking results
@@ -3257,77 +3241,6 @@ void LLViewerWindow::schedulePick(LLPickInfo& pick_info)
llassert_always(pick_info.mScreenRegion.notNull());
mPicks.push_back(pick_info);
- /*S32 scaled_x = llround((F32)pick_info.mMousePt.mX * mDisplayScale.mV[VX]);
- S32 scaled_y = llround((F32)pick_info.mMousePt.mY * mDisplayScale.mV[VY]);
-
- // Default to not hitting anything
- LLCamera pick_camera;
- pick_camera.setOrigin(LLViewerCamera::getInstance()->getOrigin());
- pick_camera.setOriginAndLookAt(LLViewerCamera::getInstance()->getOrigin(),
- LLViewerCamera::getInstance()->getUpAxis(),
- LLViewerCamera::getInstance()->getOrigin() + mouseDirectionGlobal(pick_info.mMousePt.mX, pick_info.mMousePt.mY));
- pick_camera.setView(0.5f*DEG_TO_RAD);
- pick_camera.setNear(LLViewerCamera::getInstance()->getNear());
- pick_camera.setFar(LLViewerCamera::getInstance()->getFar());
- pick_camera.setAspect(1.f);
-
- // save our drawing state
- // *TODO: should we be saving using the new method here using
- // glh_get_current_projection/glh_set_current_projection? -brad
- glMatrixMode(GL_MODELVIEW);
- glPushMatrix();
- glLoadIdentity();
-
- glMatrixMode(GL_PROJECTION);
- glPushMatrix();
- glLoadIdentity();
-
- // clear work area
- {
- LLGLState scissor_state(GL_SCISSOR_TEST);
- scissor_state.enable();
- glScissor(pick_info.mScreenRegion.mLeft, pick_info.mScreenRegion.mBottom, pick_info.mScreenRegion.getWidth(), pick_info.mScreenRegion.getHeight());
- glClearColor(0.f, 0.f, 0.f, 0.f);
- glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
- //glClear(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
- }
-
- // build perspective transform and picking viewport
- // Perform pick on a PICK_DIAMETER x PICK_DIAMETER pixel region around cursor point.
- // Don't limit the select distance for this pick.
- LLViewerCamera::getInstance()->setPerspective(FOR_SELECTION, scaled_x - PICK_HALF_WIDTH, scaled_y - PICK_HALF_WIDTH, PICK_DIAMETER, PICK_DIAMETER, FALSE);
-
- // render for object picking
-
- // make viewport big enough to handle antialiased frame buffers
- gGLViewport[0] = pick_info.mScreenRegion.mLeft;
- gGLViewport[1] = pick_info.mScreenRegion.mBottom;
- gGLViewport[2] = pick_info.mScreenRegion.getWidth();
- gGLViewport[3] = pick_info.mScreenRegion.getHeight();
-
- glViewport(gGLViewport[0], gGLViewport[1], gGLViewport[2], gGLViewport[3]);
- LLViewerCamera::updateFrustumPlanes(pick_camera);
- stop_glerror();
-
- // Draw the objects so the user can select them.
- // The starting ID is 1, since land is zero.
- LLRect pick_region;
- pick_region.setOriginAndSize(pick_info.mMousePt.mX - PICK_HALF_WIDTH,
- pick_info.mMousePt.mY - PICK_HALF_WIDTH, PICK_DIAMETER, PICK_DIAMETER);
- gObjectList.renderObjectsForSelect(pick_camera, pick_region, FALSE, pick_info.mPickTransparent);
-
- stop_glerror();
-
- // restore drawing state
- glMatrixMode(GL_PROJECTION);
- glPopMatrix();
- glMatrixMode(GL_MODELVIEW);
- glPopMatrix();
-
- setup3DRender();
- setup2DRender();
- setupViewport();*/
-
// delay further event processing until we receive results of pick
mWindow->delayInputProcessing();
}
@@ -3496,16 +3409,16 @@ LLVector3 LLViewerWindow::mouseDirectionGlobal(const S32 x, const S32 y) const
// find vertical field of view
F32 fov = LLViewerCamera::getInstance()->getView();
- // find screen resolution
- S32 height = getWindowHeight();
- S32 width = getWindowWidth();
+ // find world view center
+ F32 center_x = (F32)getWorldViewRect().getCenterX();
+ F32 center_y = (F32)getWorldViewRect().getCenterY();
// calculate pixel distance to screen
- F32 distance = (height / 2.f) / (tan(fov / 2.f));
+ F32 distance = (getWorldViewHeight() / 2.f) / (tan(fov / 2.f));
// calculate click point relative to middle of screen
- F32 click_x = x - width / 2.f;
- F32 click_y = y - height / 2.f;
+ F32 click_x = x - center_x;
+ F32 click_y = y - center_y;
// compute mouse vector
LLVector3 mouse_vector = distance * LLViewerCamera::getInstance()->getAtAxis()
@@ -3520,12 +3433,15 @@ LLVector3 LLViewerWindow::mouseDirectionGlobal(const S32 x, const S32 y) const
LLVector3 LLViewerWindow::mousePointHUD(const S32 x, const S32 y) const
{
// find screen resolution
- S32 height = getWindowHeight();
- S32 width = getWindowWidth();
+ S32 height = getWorldViewHeight();
+
+ // find world view center
+ F32 center_x = (F32)getWorldViewRect().getCenterX();
+ F32 center_y = (F32)getWorldViewRect().getCenterY();
// remap with uniform scale (1/height) so that top is -0.5, bottom is +0.5
- F32 hud_x = -((F32)x - (F32)width/2.f) / height;
- F32 hud_y = ((F32)y - (F32)height/2.f) / height;
+ F32 hud_x = -((F32)x - center_x) / height;
+ F32 hud_y = ((F32)y - center_y) / height;
return LLVector3(0.f, hud_x/gAgent.mHUDCurZoom, hud_y/gAgent.mHUDCurZoom);
}
@@ -3539,12 +3455,16 @@ LLVector3 LLViewerWindow::mouseDirectionCamera(const S32 x, const S32 y) const
F32 fov_width = fov_height * LLViewerCamera::getInstance()->getAspect();
// find screen resolution
- S32 height = getWindowHeight();
- S32 width = getWindowWidth();
+ S32 height = getWorldViewHeight();
+ S32 width = getWorldViewWidth();
+
+ // find world view center
+ F32 center_x = (F32)getWorldViewRect().getCenterX();
+ F32 center_y = (F32)getWorldViewRect().getCenterY();
// calculate click point relative to middle of screen
- F32 click_x = (((F32)x / (F32)width) - 0.5f) * fov_width * -1.f;
- F32 click_y = (((F32)y / (F32)height) - 0.5f) * fov_height;
+ F32 click_x = (((F32)x - center_x) / (F32)width) * fov_width * -1.f;
+ F32 click_y = (((F32)y - center_y) / (F32)height) * fov_height;
// compute mouse vector
LLVector3 mouse_vector = LLVector3(0.f, 0.f, -1.f);
@@ -3888,7 +3808,6 @@ BOOL LLViewerWindow::thumbnailSnapshot(LLImageRaw *raw, S32 preview_width, S32 p
glClearColor(0.f, 0.f, 0.f, 0.f);
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
setup3DRender();
- setupViewport();
LLFontGL::setFontDisplay(FALSE) ;
LLHUDText::setDisplayText(FALSE) ;
@@ -3949,7 +3868,6 @@ BOOL LLViewerWindow::thumbnailSnapshot(LLImageRaw *raw, S32 preview_width, S32 p
mDisplayScale.setVec(display_scale) ;
mWindowRect = window_rect;
setup3DRender();
- setupViewport();
gDisplaySwapBuffers = FALSE;
gDepthDirty = TRUE;
@@ -4117,7 +4035,6 @@ BOOL LLViewerWindow::rawSnapshot(LLImageRaw *raw, S32 image_width, S32 image_hei
LLViewerCamera::getInstance()->setZoomParameters(scale_factor, subimage_x+(subimage_y*llceil(scale_factor)));
setup3DRender();
- setupViewport();
gObjectList.renderPickList(gViewerWindow->getVirtualWindowRect(), FALSE, FALSE);
}
else
@@ -4268,8 +4185,8 @@ void LLViewerWindow::drawMouselookInstructions()
const S32 INSTRUCTIONS_PAD = 5;
LLRect instructions_rect;
instructions_rect.setLeftTopAndSize(
- INSTRUCTIONS_PAD,
- getWindowHeight() - INSTRUCTIONS_PAD,
+ mWorldViewRect.mLeft + INSTRUCTIONS_PAD,
+ mWorldViewRect.mTop - INSTRUCTIONS_PAD,
font->getWidth( instructions ) + 2 * INSTRUCTIONS_PAD,
llround(font->getLineHeight() + 2 * INSTRUCTIONS_PAD));
@@ -4313,6 +4230,31 @@ void LLViewerWindow::focusClient() const
return mWindow->focusClient();
}
+LLRootView* LLViewerWindow::getRootView() const
+{
+ return mRootView;
+}
+
+LLRect LLViewerWindow::getVirtualWorldViewRect() const
+{
+ LLRect world_view_rect = mWorldViewRect;
+ world_view_rect.mLeft = llround((F32)world_view_rect.mLeft / mDisplayScale.mV[VX]);
+ world_view_rect.mRight = llround((F32)world_view_rect.mRight / mDisplayScale.mV[VX]);
+ world_view_rect.mBottom = llround((F32)world_view_rect.mBottom / mDisplayScale.mV[VY]);
+ world_view_rect.mTop = llround((F32)world_view_rect.mTop / mDisplayScale.mV[VY]);
+ return world_view_rect;
+}
+
+S32 LLViewerWindow::getWorldViewHeight() const
+{
+ return mWorldViewRect.getHeight();
+}
+
+S32 LLViewerWindow::getWorldViewWidth() const
+{
+ return mWorldViewRect.getWidth();
+}
+
S32 LLViewerWindow::getWindowDisplayHeight() const
{
return mWindowRect.getHeight();
@@ -4323,27 +4265,48 @@ S32 LLViewerWindow::getWindowDisplayWidth() const
return mWindowRect.getWidth();
}
-void LLViewerWindow::setupViewport(S32 x_offset, S32 y_offset)
+void LLViewerWindow::setup2DRender()
{
- gGLViewport[0] = x_offset;
- gGLViewport[1] = y_offset;
+ // setup ortho camera
+ gl_state_for_2d(mWindowRect.getWidth(), mWindowRect.getHeight());
+ setup2DViewport();
+}
+
+void LLViewerWindow::setup2DViewport(S32 x_offset, S32 y_offset)
+{
+ gGLViewport[0] = mWindowRect.mLeft + x_offset;
+ gGLViewport[1] = mWindowRect.mBottom + y_offset;
gGLViewport[2] = mWindowRect.getWidth();
gGLViewport[3] = mWindowRect.getHeight();
glViewport(gGLViewport[0], gGLViewport[1], gGLViewport[2], gGLViewport[3]);
}
+
void LLViewerWindow::setup3DRender()
{
- LLViewerCamera::getInstance()->setPerspective(NOT_FOR_SELECTION, 0, 0, mWindowRect.getWidth(), mWindowRect.getHeight(), FALSE, LLViewerCamera::getInstance()->getNear(), MAX_FAR_CLIP*2.f);
+ // setup perspective camera
+ LLViewerCamera::getInstance()->setPerspective(NOT_FOR_SELECTION, mWorldViewRect.mLeft, mWorldViewRect.mBottom, mWorldViewRect.getWidth(), mWorldViewRect.getHeight(), FALSE, LLViewerCamera::getInstance()->getNear(), MAX_FAR_CLIP*2.f);
+ setup3DViewport();
}
-void LLViewerWindow::setup2DRender()
+void LLViewerWindow::setup3DViewport(S32 x_offset, S32 y_offset)
{
- gl_state_for_2d(mWindowRect.getWidth(), mWindowRect.getHeight());
+ if (LLRenderTarget::getCurrentBoundTarget() != NULL)
+ {
+ // don't use translation component of mWorldViewRect, as we are already in a properly sized render target
+ gGLViewport[0] = x_offset;
+ gGLViewport[1] = y_offset;
+ }
+ else
+ {
+ gGLViewport[0] = mWorldViewRect.mLeft + x_offset;
+ gGLViewport[1] = mWorldViewRect.mBottom + y_offset;
+ }
+ gGLViewport[2] = mWorldViewRect.getWidth();
+ gGLViewport[3] = mWorldViewRect.getHeight();
+ glViewport(gGLViewport[0], gGLViewport[1], gGLViewport[2], gGLViewport[3]);
}
-
-
void LLViewerWindow::setShowProgress(const BOOL show)
{
if (mProgressView)
@@ -4357,6 +4320,10 @@ BOOL LLViewerWindow::getShowProgress() const
return (mProgressView && mProgressView->getVisible());
}
+void LLViewerWindow::handleLoginComplete()
+{
+ LLNavigationBar::getInstance()->handleLoginComplete();
+}
void LLViewerWindow::moveProgressViewToFront()
{
@@ -4467,7 +4434,7 @@ void LLViewerWindow::stopGL(BOOL save_state)
gGLManager.mIsDisabled = TRUE;
stop_glerror();
- llinfos << "Remaining allocated texture memory: " << LLImageGL::sGlobalTextureMemory << " bytes" << llendl;
+ llinfos << "Remaining allocated texture memory: " << LLImageGL::sGlobalTextureMemoryInBytes << " bytes" << llendl;
}
}
@@ -4605,7 +4572,7 @@ BOOL LLViewerWindow::checkSettings()
// force aspect ratio
if (mIsFullscreenChecked)
{
- LLViewerCamera::getInstance()->setAspect( getDisplayAspectRatio() );
+ LLViewerCamera::getInstance()->setAspect( getWorldViewAspectRatio() );
}
mResDirty = false;
@@ -4676,9 +4643,9 @@ BOOL LLViewerWindow::changeDisplaySettings(BOOL fullscreen, LLCoordScreen size,
BOOL was_maximized = gSavedSettings.getBOOL("WindowMaximized");
mWantFullscreen = fullscreen;
mShowFullscreenProgress = show_progress_bar;
- gSavedSettings.setBOOL("FullScreen", mWantFullscreen);
+ gSavedSettings.setBOOL("NotFullScreen", !mWantFullscreen);
- gResizeScreenTexture = TRUE;
+ //gResizeScreenTexture = TRUE;
BOOL old_fullscreen = mWindow->getFullscreen();
if (!old_fullscreen && fullscreen && !LLStartUp::canGoFullscreen())
@@ -4824,6 +4791,21 @@ F32 LLViewerWindow::getDisplayAspectRatio() const
}
+F32 LLViewerWindow::getWorldViewAspectRatio() const
+{
+ F32 world_aspect = (F32)mWorldViewRect.getWidth() / (F32)mWorldViewRect.getHeight();
+ //F32 window_aspect = (F32)mWindowRect.getWidth() / (F32)mWindowRect.getHeight();
+ if (mWindow->getFullscreen())
+ {
+ return world_aspect * mWindow->getPixelAspectRatio();
+ }
+ else
+ {
+ llinfos << "World aspect ratio: " << world_aspect << llendl;
+ return world_aspect;
+ }
+}
+
void LLViewerWindow::drawPickBuffer() const
{
mHoverPick.drawPickBuffer();
@@ -4877,6 +4859,33 @@ S32 LLViewerWindow::getChatConsoleBottomPad()
return offset;
}
+LLRect LLViewerWindow::getChatConsoleRect()
+{
+ LLRect full_window(0, getWindowHeight(), getWindowWidth(), 0);
+ LLRect console_rect = full_window;
+
+ const S32 CONSOLE_PADDING_TOP = 24;
+ const S32 CONSOLE_PADDING_LEFT = 24;
+ const S32 CONSOLE_PADDING_RIGHT = 10;
+
+ console_rect.mTop -= CONSOLE_PADDING_TOP;
+ console_rect.mBottom += getChatConsoleBottomPad();
+
+ console_rect.mLeft += CONSOLE_PADDING_LEFT;
+
+ if (gSavedSettings.getBOOL("ChatFullWidth"))
+ {
+ console_rect.mRight -= CONSOLE_PADDING_RIGHT;
+ }
+ else
+ {
+ // Make console rect somewhat narrow so having inventory open is
+ // less of a problem.
+ console_rect.mRight = console_rect.mLeft + 2 * getWindowWidth() / 3;
+ }
+
+ return console_rect;
+}
//----------------------------------------------------------------------------
@@ -4903,64 +4912,6 @@ bool LLViewerWindow::onAlert(const LLSD& notify)
}
////////////////////////////////////////////////////////////////////////////
-
-LLBottomPanel::LLBottomPanel(const LLRect &rect) :
- LLPanel(),
- mIndicator(NULL)
-{
- setRect(rect);
- // bottom panel is focus root, so Tab moves through the toolbar and button bar, and overlay
- setFocusRoot(TRUE);
- // flag this panel as chrome so buttons don't grab keyboard focus
- setIsChrome(TRUE);
-
- mFactoryMap["toolbar"] = LLCallbackMap(createToolBar, NULL);
- mFactoryMap["overlay"] = LLCallbackMap(createOverlayBar, NULL);
- mFactoryMap["hud"] = LLCallbackMap(createHUD, NULL);
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_bars.xml");
-
- setOrigin(rect.mLeft, rect.mBottom);
- reshape(rect.getWidth(), rect.getHeight());
-}
-
-void LLBottomPanel::setFocusIndicator(LLView * indicator)
-{
- mIndicator = indicator;
-}
-
-void LLBottomPanel::draw()
-{
- if(mIndicator)
- {
- BOOL hasFocus = gFocusMgr.childHasKeyboardFocus(this);
- mIndicator->setVisible(hasFocus);
- mIndicator->setEnabled(hasFocus);
- }
- LLPanel::draw();
-}
-
-void* LLBottomPanel::createHUD(void* data)
-{
- delete gHUDView;
- gHUDView = new LLHUDView();
- return gHUDView;
-}
-
-
-void* LLBottomPanel::createOverlayBar(void* data)
-{
- delete gOverlayBar;
- gOverlayBar = new LLOverlayBar();
- return gOverlayBar;
-}
-
-void* LLBottomPanel::createToolBar(void* data)
-{
- delete gToolBar;
- gToolBar = new LLToolBar();
- return gToolBar;
-}
-
//
// LLPickInfo
//
@@ -5032,8 +4983,8 @@ void LLPickInfo::fetchResults()
// find pick region that is fully onscreen
LLCoordGL scaled_pick_point;;
- scaled_pick_point.mX = llclamp(llround((F32)mMousePt.mX * gViewerWindow->getDisplayScale().mV[VX]), PICK_HALF_WIDTH, gViewerWindow->getWindowDisplayWidth() - PICK_HALF_WIDTH);
- scaled_pick_point.mY = llclamp(llround((F32)mMousePt.mY * gViewerWindow->getDisplayScale().mV[VY]), PICK_HALF_WIDTH, gViewerWindow->getWindowDisplayHeight() - PICK_HALF_WIDTH);
+ scaled_pick_point.mX = llclamp(llround((F32)mMousePt.mX * gViewerWindow->getDisplayScale().mV[VX]), PICK_HALF_WIDTH, gViewerWindow->getWorldViewWidth() - PICK_HALF_WIDTH);
+ scaled_pick_point.mY = llclamp(llround((F32)mMousePt.mY * gViewerWindow->getDisplayScale().mV[VY]), PICK_HALF_WIDTH, gViewerWindow->getWorldViewHeight() - PICK_HALF_WIDTH);
//S32 pixel_index = PICK_HALF_WIDTH * PICK_DIAMETER + PICK_HALF_WIDTH;
//S32 pick_id = (U32)mPickBuffer[(pixel_index * 4) + 0] << 16 | (U32)mPickBuffer[(pixel_index * 4) + 1] << 8 | (U32)mPickBuffer[(pixel_index * 4) + 2];
//F32 depth = mPickDepthBuffer[pixel_index];
diff --git a/indra/newview/llviewerwindow.h b/indra/newview/llviewerwindow.h
index 01ef91e7b2..eae1bf0343 100644
--- a/indra/newview/llviewerwindow.h
+++ b/indra/newview/llviewerwindow.h
@@ -61,6 +61,7 @@ class LLTextBox;
class LLImageRaw;
class LLHUDIcon;
class LLWindow;
+class LLRootView;
#define PICK_HALF_WIDTH 5
#define PICK_DIAMETER (2 * PICK_HALF_WIDTH + 1)
@@ -126,7 +127,7 @@ private:
};
-#define MAX_IMAGE_SIZE 6144 //6 * 1024, max snapshot image size 6144 * 6144
+static const U32 MAX_SNAPSHOT_IMAGE_SIZE = 6 * 1024; // max snapshot image size 6144 * 6144
class LLViewerWindow : public LLWindowCallbacks
{
@@ -189,10 +190,15 @@ public:
//
// ACCESSORS
//
- LLView* getRootView() const { return mRootView; }
+ LLRootView* getRootView() const;
// Window in raw pixels as seen on screen.
const LLRect& getWindowRect() const { return mWindowRect; };
+ // portion of window that shows 3d world
+ const LLRect& getWorldViewRect() const { return mWorldViewRect; };
+ LLRect getVirtualWorldViewRect() const;
+ S32 getWorldViewHeight() const;
+ S32 getWorldViewWidth() const;
S32 getWindowDisplayHeight() const;
S32 getWindowDisplayWidth() const;
@@ -224,7 +230,8 @@ public:
const LLPickInfo& getLastPick() const { return mLastPick; }
const LLPickInfo& getHoverPick() const { return mHoverPick; }
- void setupViewport(S32 x_offset = 0, S32 y_offset = 0);
+ void setup2DViewport(S32 x_offset = 0, S32 y_offset = 0);
+ void setup3DViewport(S32 x_offset = 0, S32 y_offset = 0);
void setup3DRender();
void setup2DRender();
@@ -261,6 +268,7 @@ public:
void setProgressMessage(const std::string& msg);
void setProgressCancelButtonVisible( BOOL b, const std::string& label = LLStringUtil::null );
LLProgressView *getProgressView() const;
+ void handleLoginComplete();
void updateObjectUnderCursor();
@@ -270,6 +278,8 @@ public:
void updateKeyboardFocus();
void updatePicking(S32 x, S32 y, MASK mask);
+ void updateWorldViewRect();
+
BOOL handleKey(KEY key, MASK mask);
void handleScrollWheel (S32 clicks);
@@ -362,6 +372,7 @@ public:
BOOL changeDisplaySettings(BOOL fullscreen, LLCoordScreen size, BOOL disable_vsync, BOOL show_progress_bar);
BOOL getIgnoreDestroyWindow() { return mIgnoreActivate; }
F32 getDisplayAspectRatio() const;
+ F32 getWorldViewAspectRatio() const;
const LLVector2& getDisplayScale() const { return mDisplayScale; }
void calcDisplayScale();
@@ -379,6 +390,7 @@ private:
void initFonts(F32 zoom_factor = 1.f);
void schedulePick(LLPickInfo& pick_info);
S32 getChatConsoleBottomPad(); // Vertical padding for child console rect, varied by bottom clutter
+ LLRect getChatConsoleRect(); // Get optimal cosole rect.
public:
LLWindow* mWindow; // graphical window object
@@ -389,7 +401,8 @@ protected:
BOOL mShowFullscreenProgress;
LLRect mWindowRect;
LLRect mVirtualWindowRect;
- LLView* mRootView; // a view of size mWindowRect, containing all child views
+ LLRect mWorldViewRect; // specifies area of screen where we render the 3D world
+ LLRootView* mRootView; // a view of size mWindowRect, containing all child views
LLVector2 mDisplayScale;
LLCoordGL mCurrentMousePoint; // last mouse position in GL coords
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index 0612277b32..176f8fb37b 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -1,5 +1,5 @@
/**
- * @file llvoavatar.cpp
+ * @File llvoavatar.cpp
* @brief Implementation of LLVOAvatar class which is a derivation fo LLViewerObject
*
* $LicenseInfo:firstyear=2001&license=viewergpl$
@@ -41,6 +41,8 @@
#include "noise.h"
#include "llagent.h" // Get state values from here
+#include "llagentwearables.h"
+#include "llanimationstates.h"
#include "llviewercontrol.h"
#include "lldrawpoolavatar.h"
#include "lldriverparam.h"
@@ -63,8 +65,6 @@
#include "llsprite.h"
#include "lltargetingmotion.h"
#include "lltexlayer.h"
-#include "lltoolgrab.h" // for needsRenderBeam
-#include "lltoolmgr.h" // for needsRenderBeam
#include "lltoolmorph.h"
#include "llviewercamera.h"
#include "llviewerimagelist.h"
@@ -72,6 +72,7 @@
#include "llviewerobjectlist.h"
#include "llviewerparcelmgr.h"
#include "llviewerstats.h"
+#include "llvoavatarself.h"
#include "llvovolume.h"
#include "llworld.h"
#include "pipeline.h"
@@ -138,8 +139,7 @@ const S32 MIN_REQUIRED_PIXEL_AREA_PELVIS_FIX = 40;
const S32 TEX_IMAGE_SIZE_SELF = 512;
const S32 TEX_IMAGE_AREA_SELF = TEX_IMAGE_SIZE_SELF * TEX_IMAGE_SIZE_SELF;
-const S32 TEX_IMAGE_SIZE_OTHER = TEX_IMAGE_SIZE_SELF / 4; // The size of local textures for other (!mIsSelf) avatars
-const S32 TEX_IMAGE_AREA_OTHER = TEX_IMAGE_SIZE_OTHER * TEX_IMAGE_SIZE_OTHER;
+const S32 TEX_IMAGE_SIZE_OTHER = 512 / 4; // The size of local textures for other (!isSelf()) avatars
const F32 HEAD_MOVEMENT_AVG_TIME = 0.9f;
@@ -177,25 +177,20 @@ enum ERenderName
//-----------------------------------------------------------------------------
// Callback data
//-----------------------------------------------------------------------------
-struct LLAvatarTexData
-{
- LLAvatarTexData( const LLUUID& id, ETextureIndex index )
- : mAvatarID(id), mIndex(index) {}
- LLUUID mAvatarID;
- ETextureIndex mIndex;
-};
struct LLTextureMaskData
{
- LLTextureMaskData( const LLUUID& id )
- : mAvatarID(id), mLastDiscardLevel(S32_MAX) {}
+ LLTextureMaskData( const LLUUID& id ) :
+ mAvatarID(id),
+ mLastDiscardLevel(S32_MAX)
+ {}
LLUUID mAvatarID;
S32 mLastDiscardLevel;
};
/*********************************************************************************
** **
- ** Begin LLVOAvatar Support classes
+ ** Begin private LLVOAvatar Support classes
**
**/
@@ -251,85 +246,6 @@ private:
bone_info_list_t mBoneInfoList;
};
-
-//------------------------------------------------------------------------
-// LLVOAvatarXmlInfo
-// One instance (in LLVOAvatar) with common data parsed from the XML files
-//------------------------------------------------------------------------
-class LLVOAvatarXmlInfo
-{
- friend class LLVOAvatar;
-public:
- LLVOAvatarXmlInfo();
- ~LLVOAvatarXmlInfo();
-
-private:
- BOOL parseXmlSkeletonNode(LLXmlTreeNode* root);
- BOOL parseXmlMeshNodes(LLXmlTreeNode* root);
- BOOL parseXmlColorNodes(LLXmlTreeNode* root);
- BOOL parseXmlLayerNodes(LLXmlTreeNode* root);
- BOOL parseXmlDriverNodes(LLXmlTreeNode* root);
-
- struct LLVOAvatarMeshInfo
- {
- typedef std::pair<LLPolyMorphTargetInfo*,BOOL> morph_info_pair_t;
- typedef std::vector<morph_info_pair_t> morph_info_list_t;
-
- LLVOAvatarMeshInfo() : mLOD(0), mMinPixelArea(.1f) {}
- ~LLVOAvatarMeshInfo()
- {
- morph_info_list_t::iterator iter;
- for (iter = mPolyMorphTargetInfoList.begin(); iter != mPolyMorphTargetInfoList.end(); iter++)
- {
- delete iter->first;
- }
- mPolyMorphTargetInfoList.clear();
- }
-
- std::string mType;
- S32 mLOD;
- std::string mMeshFileName;
- std::string mReferenceMeshName;
- F32 mMinPixelArea;
- morph_info_list_t mPolyMorphTargetInfoList;
- };
- typedef std::vector<LLVOAvatarMeshInfo*> mesh_info_list_t;
- mesh_info_list_t mMeshInfoList;
-
- typedef std::vector<LLPolySkeletalDistortionInfo*> skeletal_distortion_info_list_t;
- skeletal_distortion_info_list_t mSkeletalDistortionInfoList;
-
- struct LLVOAvatarAttachmentInfo
- {
- LLVOAvatarAttachmentInfo()
- : mGroup(-1), mAttachmentID(-1), mPieMenuSlice(-1), mVisibleFirstPerson(FALSE),
- mIsHUDAttachment(FALSE), mHasPosition(FALSE), mHasRotation(FALSE) {}
- std::string mName;
- std::string mJointName;
- LLVector3 mPosition;
- LLVector3 mRotationEuler;
- S32 mGroup;
- S32 mAttachmentID;
- S32 mPieMenuSlice;
- BOOL mVisibleFirstPerson;
- BOOL mIsHUDAttachment;
- BOOL mHasPosition;
- BOOL mHasRotation;
- };
- typedef std::vector<LLVOAvatarAttachmentInfo*> attachment_info_list_t;
- attachment_info_list_t mAttachmentInfoList;
-
- LLTexGlobalColorInfo *mTexSkinColorInfo;
- LLTexGlobalColorInfo *mTexHairColorInfo;
- LLTexGlobalColorInfo *mTexEyeColorInfo;
-
- typedef std::vector<LLTexLayerSetInfo*> layer_info_list_t;
- layer_info_list_t mLayerInfoList;
-
- typedef std::vector<LLDriverParamInfo*> driver_info_list_t;
- driver_info_list_t mDriverInfoList;
-};
-
//-----------------------------------------------------------------------------
// class LLBodyNoiseMotion
//-----------------------------------------------------------------------------
@@ -494,7 +410,7 @@ public:
virtual LLMotionInitStatus onInitialize(LLCharacter *character)
{
mCharacter = character;
- bool success = true;
+ BOOL success = true;
if ( !mChestState->setJoint( character->getJoint( "mChest" ) ) ) { success = false; }
@@ -654,13 +570,10 @@ private:
LLXmlTree LLVOAvatar::sXMLTree;
LLXmlTree LLVOAvatar::sSkeletonXMLTree;
LLVOAvatarSkeletonInfo* LLVOAvatar::sAvatarSkeletonInfo = NULL;
-LLVOAvatarXmlInfo* LLVOAvatar::sAvatarXmlInfo = NULL;
+LLVOAvatar::LLVOAvatarXmlInfo* LLVOAvatar::sAvatarXmlInfo = NULL;
LLVOAvatarDictionary *LLVOAvatar::sAvatarDictionary = NULL;
S32 LLVOAvatar::sFreezeCounter = 0;
S32 LLVOAvatar::sMaxVisible = 50;
-LLMap< LLGLenum, LLGLuint*> LLVOAvatar::sScratchTexNames;
-LLMap< LLGLenum, F32*> LLVOAvatar::sScratchTexLastBindTime;
-S32 LLVOAvatar::sScratchTexBytes = 0;
F32 LLVOAvatar::sRenderDistance = 256.f;
S32 LLVOAvatar::sNumVisibleAvatars = 0;
S32 LLVOAvatar::sNumLODChangesThisFrame = 0;
@@ -731,8 +644,6 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id,
mNameMute(FALSE),
mRenderGroupTitles(sRenderGroupTitles),
mNameAppearance(FALSE),
- mLastRegionHandle(0),
- mRegionCrossingCount(0),
mFirstTEMessageReceived( FALSE ),
mFirstAppearanceMessageReceived( FALSE ),
mCulled( FALSE ),
@@ -743,37 +654,29 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id,
mNeedsSkin(FALSE),
mUpdatePeriod(1),
mFullyLoadedInitialized(FALSE),
- mHasBakedHair( FALSE ),
- mDebugAvatarRotation (LLCachedControl<bool>(gSavedSettings, "DebugAvatarRotation", FALSE))
-
+ mSupportsAlphaLayers(FALSE)
{
LLMemType mt(LLMemType::MTYPE_AVATAR);
//VTResume(); // VTune
// mVoiceVisualizer is created by the hud effects manager and uses the HUD Effects pipeline
- const bool needsSendToSim = false; // currently, this HUD effect doesn't need to pack and unpack data to do its job
+ const BOOL needsSendToSim = false; // currently, this HUD effect doesn't need to pack and unpack data to do its job
mVoiceVisualizer = ( LLVoiceVisualizer *)LLHUDManager::getInstance()->createViewerEffect( LLHUDObject::LL_HUD_EFFECT_VOICE_VISUALIZER, needsSendToSim );
lldebugs << "LLVOAvatar Constructor (0x" << this << ") id:" << mID << llendl;
mPelvisp = NULL;
- for( S32 i=0; i<TEX_NUM_INDICES; i++ )
- {
- if (isIndexLocalTexture((ETextureIndex)i))
- {
- mLocalTextureData[(ETextureIndex)i] = LocalTextureData();
- }
- }
-
- mBakedTextureData.resize(BAKED_NUM_INDICES);
- for (U32 i = 0; i < mBakedTextureData.size(); i++ )
+ mBakedTextureDatas.resize(BAKED_NUM_INDICES);
+ for (U32 i = 0; i < mBakedTextureDatas.size(); i++ )
{
- mBakedTextureData[i].mLastTextureIndex = IMG_DEFAULT_AVATAR;
- mBakedTextureData[i].mTexLayerSet = NULL;
- mBakedTextureData[i].mIsLoaded = false;
- mBakedTextureData[i].mMaskTexName = 0;
- mBakedTextureData[i].mTextureIndex = getTextureIndex((EBakedTextureIndex)i);
+ mBakedTextureDatas[i].mLastTextureIndex = IMG_DEFAULT_AVATAR;
+ mBakedTextureDatas[i].mTexLayerSet = NULL;
+ mBakedTextureDatas[i].mIsLoaded = false;
+ mBakedTextureDatas[i].mIsUsed = false;
+ mBakedTextureDatas[i].mMaskTexName = 0;
+ mBakedTextureDatas[i].mTextureIndex = LLVOAvatarDictionary::bakedToLocalTextureIndex((EBakedTextureIndex)i);
+ mBakedTextureDatas[i].mMorphMasksValid = FALSE;
}
mDirtyMesh = TRUE; // Dirty geometry, need to regenerate.
@@ -785,7 +688,6 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id,
mNumJoints = 0;
mSkeleton = NULL;
- mScreenp = NULL;
mNumCollisionVolumes = 0;
mCollisionVolumes = NULL;
@@ -794,17 +696,6 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id,
mSpeed = 0.f;
setAnimationData("Speed", &mSpeed);
- if (id == gAgentID)
- {
- mIsSelf = TRUE;
- gAgent.setAvatarObject(this);
- lldebugs << "Marking avatar as self " << id << llendl;
- }
- else
- {
- mIsSelf = FALSE;
- }
-
mNeedsImpostorUpdate = TRUE;
mNeedsAnimUpdate = TRUE;
@@ -839,145 +730,6 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id,
mOohMorph = NULL;
mAahMorph = NULL;
- //-------------------------------------------------------------------------
- // initialize joint, mesh and shape members
- //-------------------------------------------------------------------------
- mRoot.setName( "mRoot" );
-
- for (LLVOAvatarDictionary::mesh_map_t::const_iterator iter = LLVOAvatarDictionary::getInstance()->getMeshes().begin();
- iter != LLVOAvatarDictionary::getInstance()->getMeshes().end();
- iter++)
- {
- const EMeshIndex mesh_index = iter->first;
- const LLVOAvatarDictionary::MeshDictionaryEntry *mesh_dict = iter->second;
-
- LLViewerJoint* joint = new LLViewerJoint();
- joint->setName(mesh_dict->mName);
- joint->setMeshID(mesh_index);
- mMeshLOD.push_back(joint);
-
- /* mHairLOD.setName("mHairLOD");
- mHairMesh0.setName("mHairMesh0");
- mHairMesh0.setMeshID(MESH_ID_HAIR);
- mHairMesh1.setName("mHairMesh1"); */
- for (U32 lod = 0; lod < mesh_dict->mLOD; lod++)
- {
- LLViewerJointMesh* mesh = new LLViewerJointMesh();
- std::string mesh_name = "m" + mesh_dict->mName + boost::lexical_cast<std::string>(lod);
- // We pre-pended an m - need to capitalize first character for camelCase
- mesh_name[1] = toupper(mesh_name[1]);
- mesh->setName(mesh_name);
- mesh->setMeshID(mesh_index);
- mesh->setPickName(mesh_dict->mPickName);
- switch((int)mesh_index)
- {
- case MESH_ID_HAIR:
- mesh->setIsTransparent(TRUE);
- break;
- case MESH_ID_SKIRT:
- mesh->setIsTransparent(TRUE);
- break;
- case MESH_ID_EYEBALL_LEFT:
- case MESH_ID_EYEBALL_RIGHT:
- mesh->setSpecular( LLColor4( 1.0f, 1.0f, 1.0f, 1.0f ), 1.f );
- break;
- }
-
- joint->mMeshParts.push_back(mesh);
- }
- }
-
- //-------------------------------------------------------------------------
- // associate baked textures with meshes
- //-------------------------------------------------------------------------
- for (LLVOAvatarDictionary::mesh_map_t::const_iterator iter = LLVOAvatarDictionary::getInstance()->getMeshes().begin();
- iter != LLVOAvatarDictionary::getInstance()->getMeshes().end();
- iter++)
- {
- const EMeshIndex mesh_index = iter->first;
- const LLVOAvatarDictionary::MeshDictionaryEntry *mesh_dict = iter->second;
- const EBakedTextureIndex baked_texture_index = mesh_dict->mBakedID;
-
- // Skip it if there's no associated baked texture.
- if (baked_texture_index == BAKED_NUM_INDICES) continue;
-
- for (std::vector<LLViewerJointMesh* >::iterator iter = mMeshLOD[mesh_index]->mMeshParts.begin();
- iter != mMeshLOD[mesh_index]->mMeshParts.end(); iter++)
- {
- LLViewerJointMesh* mesh = (LLViewerJointMesh*) *iter;
- mBakedTextureData[(int)baked_texture_index].mMeshes.push_back(mesh);
- }
- }
-
-
- //-------------------------------------------------------------------------
- // register motions
- //-------------------------------------------------------------------------
- if (LLCharacter::sInstances.size() == 1)
- {
- LLKeyframeMotion::setVFS(gStaticVFS);
- registerMotion( ANIM_AGENT_BUSY, LLNullMotion::create );
- registerMotion( ANIM_AGENT_CROUCH, LLKeyframeStandMotion::create );
- registerMotion( ANIM_AGENT_CROUCHWALK, LLKeyframeWalkMotion::create );
- registerMotion( ANIM_AGENT_EXPRESS_AFRAID, LLEmote::create );
- registerMotion( ANIM_AGENT_EXPRESS_ANGER, LLEmote::create );
- registerMotion( ANIM_AGENT_EXPRESS_BORED, LLEmote::create );
- registerMotion( ANIM_AGENT_EXPRESS_CRY, LLEmote::create );
- registerMotion( ANIM_AGENT_EXPRESS_DISDAIN, LLEmote::create );
- registerMotion( ANIM_AGENT_EXPRESS_EMBARRASSED, LLEmote::create );
- registerMotion( ANIM_AGENT_EXPRESS_FROWN, LLEmote::create );
- registerMotion( ANIM_AGENT_EXPRESS_KISS, LLEmote::create );
- registerMotion( ANIM_AGENT_EXPRESS_LAUGH, LLEmote::create );
- registerMotion( ANIM_AGENT_EXPRESS_OPEN_MOUTH, LLEmote::create );
- registerMotion( ANIM_AGENT_EXPRESS_REPULSED, LLEmote::create );
- registerMotion( ANIM_AGENT_EXPRESS_SAD, LLEmote::create );
- registerMotion( ANIM_AGENT_EXPRESS_SHRUG, LLEmote::create );
- registerMotion( ANIM_AGENT_EXPRESS_SMILE, LLEmote::create );
- registerMotion( ANIM_AGENT_EXPRESS_SURPRISE, LLEmote::create );
- registerMotion( ANIM_AGENT_EXPRESS_TONGUE_OUT, LLEmote::create );
- registerMotion( ANIM_AGENT_EXPRESS_TOOTHSMILE, LLEmote::create );
- registerMotion( ANIM_AGENT_EXPRESS_WINK, LLEmote::create );
- registerMotion( ANIM_AGENT_EXPRESS_WORRY, LLEmote::create );
- registerMotion( ANIM_AGENT_RUN, LLKeyframeWalkMotion::create );
- registerMotion( ANIM_AGENT_STAND, LLKeyframeStandMotion::create );
- registerMotion( ANIM_AGENT_STAND_1, LLKeyframeStandMotion::create );
- registerMotion( ANIM_AGENT_STAND_2, LLKeyframeStandMotion::create );
- registerMotion( ANIM_AGENT_STAND_3, LLKeyframeStandMotion::create );
- registerMotion( ANIM_AGENT_STAND_4, LLKeyframeStandMotion::create );
- registerMotion( ANIM_AGENT_STANDUP, LLKeyframeFallMotion::create );
- registerMotion( ANIM_AGENT_TURNLEFT, LLKeyframeWalkMotion::create );
- registerMotion( ANIM_AGENT_TURNRIGHT, LLKeyframeWalkMotion::create );
- registerMotion( ANIM_AGENT_WALK, LLKeyframeWalkMotion::create );
-
- // motions without a start/stop bit
- registerMotion( ANIM_AGENT_BODY_NOISE, LLBodyNoiseMotion::create );
- registerMotion( ANIM_AGENT_BREATHE_ROT, LLBreatheMotionRot::create );
- registerMotion( ANIM_AGENT_EDITING, LLEditingMotion::create );
- registerMotion( ANIM_AGENT_EYE, LLEyeMotion::create );
- registerMotion( ANIM_AGENT_FEMALE_WALK, LLKeyframeWalkMotion::create );
- registerMotion( ANIM_AGENT_FLY_ADJUST, LLFlyAdjustMotion::create );
- registerMotion( ANIM_AGENT_HAND_MOTION, LLHandMotion::create );
- registerMotion( ANIM_AGENT_HEAD_ROT, LLHeadRotMotion::create );
- registerMotion( ANIM_AGENT_PELVIS_FIX, LLPelvisFixMotion::create );
- registerMotion( ANIM_AGENT_SIT_FEMALE, LLKeyframeMotion::create );
- registerMotion( ANIM_AGENT_TARGET, LLTargetingMotion::create );
- registerMotion( ANIM_AGENT_WALK_ADJUST, LLWalkAdjustMotion::create );
-
- }
-
- if (gNoRender)
- {
- return;
- }
- buildCharacter();
-
- // preload specific motions here
- createMotion( ANIM_AGENT_CUSTOMIZE);
- createMotion( ANIM_AGENT_CUSTOMIZE_DONE);
-
- //VTPause(); // VTune
-
- mVoiceVisualizer->setVoiceEnabled( gVoiceClient->getVoiceEnabled( mID ) );
mCurrentGesticulationLevel = 0;
}
@@ -989,46 +741,43 @@ LLVOAvatar::~LLVOAvatar()
{
lldebugs << "LLVOAvatar Destructor (0x" << this << ") id:" << mID << llendl;
- if (mIsSelf)
+ if (isSelf())
{
gAgent.setAvatarObject(NULL);
}
mRoot.removeAllChildren();
- delete [] mSkeleton;
- mSkeleton = NULL;
-
- delete mScreenp;
- mScreenp = NULL;
-
- delete [] mCollisionVolumes;
- mCollisionVolumes = NULL;
-
+ deleteAndClearArray(mSkeleton);
+ deleteAndClearArray(mCollisionVolumes);
mNumJoints = 0;
- for (U32 i = 0; i < mBakedTextureData.size(); i++)
+ for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
{
- delete mBakedTextureData[i].mTexLayerSet;
- mBakedTextureData[i].mTexLayerSet = NULL;
+ deleteAndClear(mBakedTextureDatas[i].mTexLayerSet);
+ mBakedTextureDatas[i].mMeshes.clear();
+
+ for (morph_list_t::iterator iter2 = mBakedTextureDatas[i].mMaskedMorphs.begin();
+ iter2 != mBakedTextureDatas[i].mMaskedMorphs.end(); iter2++)
+ {
+ LLMaskedMorph* masked_morph = (*iter2);
+ delete masked_morph;
+ }
}
std::for_each(mAttachmentPoints.begin(), mAttachmentPoints.end(), DeletePairedPointer());
mAttachmentPoints.clear();
- delete mTexSkinColor;
- mTexSkinColor = NULL;
- delete mTexHairColor;
- mTexHairColor = NULL;
- delete mTexEyeColor;
- mTexEyeColor = NULL;
+ deleteAndClear(mTexSkinColor);
+ deleteAndClear(mTexHairColor);
+ deleteAndClear(mTexEyeColor);
std::for_each(mMeshes.begin(), mMeshes.end(), DeletePairedPointer());
mMeshes.clear();
for (std::vector<LLViewerJoint*>::iterator jointIter = mMeshLOD.begin();
- jointIter != mMeshLOD.end(); jointIter++)
+ jointIter != mMeshLOD.end(); jointIter++)
{
LLViewerJoint* joint = (LLViewerJoint *) *jointIter;
std::for_each(joint->mMeshParts.begin(), joint->mMeshParts.end(), DeletePointer());
@@ -1039,9 +788,6 @@ LLVOAvatar::~LLVOAvatar()
mDead = TRUE;
- // Clean up class data
- LLVOAvatar::cullAvatarsByPixelArea();
-
mAnimationSources.clear();
lldebugs << "LLVOAvatar Destructor end" << llendl;
@@ -1055,10 +801,7 @@ void LLVOAvatar::markDead()
mNameText = NULL;
sNumVisibleChatBubbles--;
}
-
mVoiceVisualizer->markDead();
-
- mBeam = NULL;
LLViewerObject::markDead();
}
@@ -1068,9 +811,9 @@ BOOL LLVOAvatar::isFullyBaked()
if (mIsDummy) return TRUE;
if (getNumTEs() == 0) return FALSE;
- for (U32 i = 0; i < mBakedTextureData.size(); i++)
+ for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
{
- if (!isTextureDefined(mBakedTextureData[i].mTextureIndex)
+ if (!isTextureDefined(mBakedTextureDatas[i].mTextureIndex)
&& ( (i != BAKED_SKIRT) || isWearingWearableType(WT_SKIRT) ) )
{
return FALSE;
@@ -1081,19 +824,21 @@ BOOL LLVOAvatar::isFullyBaked()
void LLVOAvatar::deleteLayerSetCaches(bool clearAll)
{
- for (U32 i = 0; i < mBakedTextureData.size(); i++)
+ for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
{
- if (mBakedTextureData[i].mTexLayerSet)
+ if (mBakedTextureDatas[i].mTexLayerSet)
{
- if ((i != BAKED_HAIR || mIsSelf) && !clearAll) // Backwards compatibility - can be removed after hair baking is mandatory on the grid
+ // ! BACKWARDS COMPATIBILITY !
+ // Can be removed after hair baking is mandatory on the grid
+ if ((i != BAKED_HAIR || isSelf()) && !clearAll)
{
- mBakedTextureData[i].mTexLayerSet->deleteCaches();
+ mBakedTextureDatas[i].mTexLayerSet->deleteCaches();
}
}
- if (mBakedTextureData[i].mMaskTexName)
+ if (mBakedTextureDatas[i].mMaskTexName)
{
- glDeleteTextures(1, (GLuint*)&(mBakedTextureData[i].mMaskTexName));
- mBakedTextureData[i].mMaskTexName = 0 ;
+ glDeleteTextures(1, (GLuint*)&(mBakedTextureDatas[i].mMaskTexName));
+ mBakedTextureDatas[i].mMaskTexName = 0 ;
}
}
}
@@ -1104,20 +849,14 @@ BOOL LLVOAvatar::areAllNearbyInstancesBaked(S32& grey_avatars)
BOOL res = TRUE;
grey_avatars = 0;
for (std::vector<LLCharacter*>::iterator iter = LLCharacter::sInstances.begin();
- iter != LLCharacter::sInstances.end(); ++iter)
+ iter != LLCharacter::sInstances.end(); ++iter)
{
LLVOAvatar* inst = (LLVOAvatar*) *iter;
if( inst->isDead() )
{
continue;
}
-// else
-// if( inst->getPixelArea() < MIN_PIXEL_AREA_FOR_COMPOSITE )
-// {
-// return res; // Assumes sInstances is sorted by pixel area.
-// }
- else
- if( !inst->isFullyBaked() )
+ else if( !inst->isFullyBaked() )
{
res = FALSE;
if (inst->mHasGrey)
@@ -1129,19 +868,13 @@ BOOL LLVOAvatar::areAllNearbyInstancesBaked(S32& grey_avatars)
return res;
}
-// static
-void LLVOAvatar::dumpScratchTextureByteCount()
-{
- llinfos << "Scratch Texture GL: " << (sScratchTexBytes/1024) << "KB" << llendl;
-}
-
// static
void LLVOAvatar::dumpBakedStatus()
{
LLVector3d camera_pos_global = gAgent.getCameraPositionGlobal();
for (std::vector<LLCharacter*>::iterator iter = LLCharacter::sInstances.begin();
- iter != LLCharacter::sInstances.end(); ++iter)
+ iter != LLCharacter::sInstances.end(); ++iter)
{
LLVOAvatar* inst = (LLVOAvatar*) *iter;
llinfos << "Avatar ";
@@ -1193,18 +926,17 @@ void LLVOAvatar::dumpBakedStatus()
{
llcont << " Unbaked (";
- for (LLVOAvatarDictionary::baked_map_t::const_iterator iter = LLVOAvatarDictionary::getInstance()->getBakedTextures().begin();
+ for (LLVOAvatarDictionary::BakedTextures::const_iterator iter = LLVOAvatarDictionary::getInstance()->getBakedTextures().begin();
iter != LLVOAvatarDictionary::getInstance()->getBakedTextures().end();
iter++)
{
- const LLVOAvatarDictionary::BakedDictionaryEntry *baked_dict = iter->second;
+ const LLVOAvatarDictionary::BakedEntry *baked_dict = iter->second;
const ETextureIndex index = baked_dict->mTextureIndex;
if (!inst->isTextureDefined(index))
{
llcont << " " << LLVOAvatarDictionary::getInstance()->getTexture(index)->mName;
}
}
-
llcont << " ) " << inst->getUnbakedPixelAreaRank();
if( inst->isCulled() )
{
@@ -1218,17 +950,15 @@ void LLVOAvatar::dumpBakedStatus()
//static
void LLVOAvatar::restoreGL()
{
- for (std::vector<LLCharacter*>::iterator iter = LLCharacter::sInstances.begin();
- iter != LLCharacter::sInstances.end(); ++iter)
+ LLVOAvatar* self = gAgent.getAvatarObject();
+ if (!self)
+ return;
+ self->setCompositeUpdatesEnabled(TRUE);
+ for (U32 i = 0; i < self->mBakedTextureDatas.size(); i++)
{
- LLVOAvatar* inst = (LLVOAvatar*) *iter;
- inst->setCompositeUpdatesEnabled( TRUE );
- for (U32 i = 0; i < inst->mBakedTextureData.size(); i++)
- {
- inst->invalidateComposite( inst->mBakedTextureData[i].mTexLayerSet, FALSE );
- }
- inst->updateMeshTextures();
+ self->invalidateComposite(self->mBakedTextureDatas[i].mTexLayerSet, FALSE);
}
+ self->updateMeshTextures();
}
//static
@@ -1243,7 +973,7 @@ void LLVOAvatar::destroyGL()
void LLVOAvatar::resetImpostors()
{
for (std::vector<LLCharacter*>::iterator iter = LLCharacter::sInstances.begin();
- iter != LLCharacter::sInstances.end(); ++iter)
+ iter != LLCharacter::sInstances.end(); ++iter)
{
LLVOAvatar* avatar = (LLVOAvatar*) *iter;
avatar->mImpostor.release();
@@ -1257,33 +987,15 @@ void LLVOAvatar::deleteCachedImages(bool clearAll)
{
lldebugs << "Deleting layer set caches" << llendl;
for (std::vector<LLCharacter*>::iterator iter = LLCharacter::sInstances.begin();
- iter != LLCharacter::sInstances.end(); ++iter)
+ iter != LLCharacter::sInstances.end(); ++iter)
{
LLVOAvatar* inst = (LLVOAvatar*) *iter;
inst->deleteLayerSetCaches(clearAll);
}
LLTexLayerSet::sHasCaches = FALSE;
}
-
- for( LLGLuint* namep = sScratchTexNames.getFirstData();
- namep;
- namep = sScratchTexNames.getNextData() )
- {
- LLImageGL::deleteTextures(1, (U32 *)namep );
- stop_glerror();
- }
-
- if( sScratchTexBytes )
- {
- lldebugs << "Clearing Scratch Textures " << (sScratchTexBytes/1024) << "KB" << llendl;
-
- sScratchTexNames.deleteAllData();
- LLVOAvatar::sScratchTexLastBindTime.deleteAllData();
- LLImageGL::sGlobalTextureMemory -= sScratchTexBytes;
- sScratchTexBytes = 0;
- }
-
- gTexStaticImageList.deleteCachedImages();
+ LLVOAvatarSelf::deleteScratchTextures();
+ LLTexLayerStaticImageList::getInstance()->deleteCachedImages();
}
@@ -1385,20 +1097,168 @@ void LLVOAvatar::initClass()
{
llerrs << "Error parsing skeleton node in avatar XML file: " << skeleton_path << llendl;
}
-
+ if (!sAvatarXmlInfo->parseXmlMorphNodes(root))
+ {
+ llerrs << "Error parsing skeleton node in avatar XML file: " << skeleton_path << llendl;
+ }
}
void LLVOAvatar::cleanupClass()
{
- delete sAvatarXmlInfo;
- sAvatarXmlInfo = NULL;
- delete sAvatarSkeletonInfo;
- sAvatarSkeletonInfo = NULL;
+ deleteAndClear(sAvatarXmlInfo);
sSkeletonXMLTree.cleanup();
sXMLTree.cleanup();
}
+void LLVOAvatar::initInstance(void)
+{
+ //-------------------------------------------------------------------------
+ // initialize joint, mesh and shape members
+ //-------------------------------------------------------------------------
+ mRoot.setName( "mRoot" );
+
+ for (LLVOAvatarDictionary::Meshes::const_iterator iter = LLVOAvatarDictionary::getInstance()->getMeshes().begin();
+ iter != LLVOAvatarDictionary::getInstance()->getMeshes().end();
+ iter++)
+ {
+ const EMeshIndex mesh_index = iter->first;
+ const LLVOAvatarDictionary::MeshEntry *mesh_dict = iter->second;
+ LLViewerJoint* joint = new LLViewerJoint();
+ joint->setName(mesh_dict->mName);
+ joint->setMeshID(mesh_index);
+ mMeshLOD.push_back(joint);
+
+ /* mHairLOD.setName("mHairLOD");
+ mHairMesh0.setName("mHairMesh0");
+ mHairMesh0.setMeshID(MESH_ID_HAIR);
+ mHairMesh1.setName("mHairMesh1"); */
+ for (U32 lod = 0; lod < mesh_dict->mLOD; lod++)
+ {
+ LLViewerJointMesh* mesh = new LLViewerJointMesh();
+ std::string mesh_name = "m" + mesh_dict->mName + boost::lexical_cast<std::string>(lod);
+ // We pre-pended an m - need to capitalize first character for camelCase
+ mesh_name[1] = toupper(mesh_name[1]);
+ mesh->setName(mesh_name);
+ mesh->setMeshID(mesh_index);
+ mesh->setPickName(mesh_dict->mPickName);
+ mesh->setIsTransparent(FALSE);
+ switch((int)mesh_index)
+ {
+ case MESH_ID_HAIR:
+ mesh->setIsTransparent(TRUE);
+ break;
+ case MESH_ID_SKIRT:
+ mesh->setIsTransparent(TRUE);
+ break;
+ case MESH_ID_EYEBALL_LEFT:
+ case MESH_ID_EYEBALL_RIGHT:
+ mesh->setSpecular( LLColor4( 1.0f, 1.0f, 1.0f, 1.0f ), 1.f );
+ break;
+ }
+
+ joint->mMeshParts.push_back(mesh);
+ }
+ }
+
+ //-------------------------------------------------------------------------
+ // associate baked textures with meshes
+ //-------------------------------------------------------------------------
+ for (LLVOAvatarDictionary::Meshes::const_iterator iter = LLVOAvatarDictionary::getInstance()->getMeshes().begin();
+ iter != LLVOAvatarDictionary::getInstance()->getMeshes().end();
+ iter++)
+ {
+ const EMeshIndex mesh_index = iter->first;
+ const LLVOAvatarDictionary::MeshEntry *mesh_dict = iter->second;
+ const EBakedTextureIndex baked_texture_index = mesh_dict->mBakedID;
+ // Skip it if there's no associated baked texture.
+ if (baked_texture_index == BAKED_NUM_INDICES) continue;
+
+ for (std::vector<LLViewerJointMesh* >::iterator iter = mMeshLOD[mesh_index]->mMeshParts.begin();
+ iter != mMeshLOD[mesh_index]->mMeshParts.end(); iter++)
+ {
+ LLViewerJointMesh* mesh = (LLViewerJointMesh*) *iter;
+ mBakedTextureDatas[(int)baked_texture_index].mMeshes.push_back(mesh);
+ }
+ }
+
+
+ //-------------------------------------------------------------------------
+ // register motions
+ //-------------------------------------------------------------------------
+ if (LLCharacter::sInstances.size() == 1)
+ {
+ LLKeyframeMotion::setVFS(gStaticVFS);
+ registerMotion( ANIM_AGENT_BUSY, LLNullMotion::create );
+ registerMotion( ANIM_AGENT_CROUCH, LLKeyframeStandMotion::create );
+ registerMotion( ANIM_AGENT_CROUCHWALK, LLKeyframeWalkMotion::create );
+ registerMotion( ANIM_AGENT_EXPRESS_AFRAID, LLEmote::create );
+ registerMotion( ANIM_AGENT_EXPRESS_ANGER, LLEmote::create );
+ registerMotion( ANIM_AGENT_EXPRESS_BORED, LLEmote::create );
+ registerMotion( ANIM_AGENT_EXPRESS_CRY, LLEmote::create );
+ registerMotion( ANIM_AGENT_EXPRESS_DISDAIN, LLEmote::create );
+ registerMotion( ANIM_AGENT_EXPRESS_EMBARRASSED, LLEmote::create );
+ registerMotion( ANIM_AGENT_EXPRESS_FROWN, LLEmote::create );
+ registerMotion( ANIM_AGENT_EXPRESS_KISS, LLEmote::create );
+ registerMotion( ANIM_AGENT_EXPRESS_LAUGH, LLEmote::create );
+ registerMotion( ANIM_AGENT_EXPRESS_OPEN_MOUTH, LLEmote::create );
+ registerMotion( ANIM_AGENT_EXPRESS_REPULSED, LLEmote::create );
+ registerMotion( ANIM_AGENT_EXPRESS_SAD, LLEmote::create );
+ registerMotion( ANIM_AGENT_EXPRESS_SHRUG, LLEmote::create );
+ registerMotion( ANIM_AGENT_EXPRESS_SMILE, LLEmote::create );
+ registerMotion( ANIM_AGENT_EXPRESS_SURPRISE, LLEmote::create );
+ registerMotion( ANIM_AGENT_EXPRESS_TONGUE_OUT, LLEmote::create );
+ registerMotion( ANIM_AGENT_EXPRESS_TOOTHSMILE, LLEmote::create );
+ registerMotion( ANIM_AGENT_EXPRESS_WINK, LLEmote::create );
+ registerMotion( ANIM_AGENT_EXPRESS_WORRY, LLEmote::create );
+ registerMotion( ANIM_AGENT_RUN, LLKeyframeWalkMotion::create );
+ registerMotion( ANIM_AGENT_STAND, LLKeyframeStandMotion::create );
+ registerMotion( ANIM_AGENT_STAND_1, LLKeyframeStandMotion::create );
+ registerMotion( ANIM_AGENT_STAND_2, LLKeyframeStandMotion::create );
+ registerMotion( ANIM_AGENT_STAND_3, LLKeyframeStandMotion::create );
+ registerMotion( ANIM_AGENT_STAND_4, LLKeyframeStandMotion::create );
+ registerMotion( ANIM_AGENT_STANDUP, LLKeyframeFallMotion::create );
+ registerMotion( ANIM_AGENT_TURNLEFT, LLKeyframeWalkMotion::create );
+ registerMotion( ANIM_AGENT_TURNRIGHT, LLKeyframeWalkMotion::create );
+ registerMotion( ANIM_AGENT_WALK, LLKeyframeWalkMotion::create );
+
+ // motions without a start/stop bit
+ registerMotion( ANIM_AGENT_BODY_NOISE, LLBodyNoiseMotion::create );
+ registerMotion( ANIM_AGENT_BREATHE_ROT, LLBreatheMotionRot::create );
+ registerMotion( ANIM_AGENT_EDITING, LLEditingMotion::create );
+ registerMotion( ANIM_AGENT_EYE, LLEyeMotion::create );
+ registerMotion( ANIM_AGENT_FEMALE_WALK, LLKeyframeWalkMotion::create );
+ registerMotion( ANIM_AGENT_FLY_ADJUST, LLFlyAdjustMotion::create );
+ registerMotion( ANIM_AGENT_HAND_MOTION, LLHandMotion::create );
+ registerMotion( ANIM_AGENT_HEAD_ROT, LLHeadRotMotion::create );
+ registerMotion( ANIM_AGENT_PELVIS_FIX, LLPelvisFixMotion::create );
+ registerMotion( ANIM_AGENT_SIT_FEMALE, LLKeyframeMotion::create );
+ registerMotion( ANIM_AGENT_TARGET, LLTargetingMotion::create );
+ registerMotion( ANIM_AGENT_WALK_ADJUST, LLWalkAdjustMotion::create );
+
+ }
+
+ if (gNoRender)
+ {
+ return;
+ }
+
+ buildCharacter();
+
+ if (gNoRender)
+ {
+ return;
+ }
+
+ // preload specific motions here
+ createMotion( ANIM_AGENT_CUSTOMIZE);
+ createMotion( ANIM_AGENT_CUSTOMIZE_DONE);
+
+ //VTPause(); // VTune
+
+ mVoiceVisualizer->setVoiceEnabled( gVoiceClient->getVoiceEnabled( mID ) );
+}
+
const LLVector3 LLVOAvatar::getRenderPosition() const
{
if (mDrawable.isNull() || mDrawable->getGeneration() < 0)
@@ -1455,6 +1315,7 @@ void LLVOAvatar::getSpatialExtents(LLVector3& newMin, LLVector3& newMax)
LLVector3 pos = getRenderPosition();
newMin = pos - buffer;
newMax = pos + buffer;
+ float max_attachment_span = DEFAULT_MAX_PRIM_SCALE * 5.0f;
//stretch bounding box by joint positions
for (polymesh_map_t::iterator i = mMeshes.begin(); i != mMeshes.end(); ++i)
@@ -1463,7 +1324,7 @@ void LLVOAvatar::getSpatialExtents(LLVector3& newMin, LLVector3& newMax)
for (S32 joint_num = 0; joint_num < mesh->mJointRenderData.count(); joint_num++)
{
update_min_max(newMin, newMax,
- mesh->mJointRenderData[joint_num]->mWorldMatrix->getTranslation());
+ mesh->mJointRenderData[joint_num]->mWorldMatrix->getTranslation());
}
}
@@ -1471,8 +1332,8 @@ void LLVOAvatar::getSpatialExtents(LLVector3& newMin, LLVector3& newMax)
//stretch bounding box by attachments
for (attachment_map_t::iterator iter = mAttachmentPoints.begin();
- iter != mAttachmentPoints.end();
- ++iter)
+ iter != mAttachmentPoints.end();
+ ++iter)
{
LLViewerJointAttachment* attachment = iter->second;
@@ -1491,8 +1352,18 @@ void LLVOAvatar::getSpatialExtents(LLVector3& newMin, LLVector3& newMax)
if (bridge)
{
const LLVector3* ext = bridge->getSpatialExtents();
- update_min_max(newMin,newMax,ext[0]);
- update_min_max(newMin,newMax,ext[1]);
+ LLVector3 distance = (ext[1] - ext[0]);
+
+ // Only add the prim to spatial extents calculations if it isn't a megaprim.
+ // max_attachment_span calculated at the start of the function
+ // (currently 5 times our max prim size)
+ if (distance.mV[0] < max_attachment_span
+ && distance.mV[1] < max_attachment_span
+ && distance.mV[2] < max_attachment_span)
+ {
+ update_min_max(newMin,newMax,ext[0]);
+ update_min_max(newMin,newMax,ext[1]);
+ }
}
}
}
@@ -1527,11 +1398,9 @@ BOOL LLVOAvatar::lineSegmentIntersect(const LLVector3& start, const LLVector3& e
LLVector3* intersection,
LLVector2* tex_coord,
LLVector3* normal,
- LLVector3* bi_normal
- )
+ LLVector3* bi_normal)
{
-
- if (mIsSelf && !gAgent.needsRenderAvatar() || !LLPipeline::sPickAvatar)
+ if (isSelf() && !gAgent.needsRenderAvatar() || !LLPipeline::sPickAvatar)
{
return FALSE;
}
@@ -1660,7 +1529,6 @@ BOOL LLVOAvatar::setupBone(const LLVOAvatarBoneInfo* info, LLViewerJoint* parent
return FALSE;
}
joint = (LLViewerJoint*)(&mCollisionVolumes[volume_num]);
-
joint->setName( info->mName );
}
@@ -1671,10 +1539,8 @@ BOOL LLVOAvatar::setupBone(const LLVOAvatarBoneInfo* info, LLViewerJoint* parent
}
joint->setPosition(info->mPos);
-
joint->setRotation(mayaQ(info->mRot.mV[VX], info->mRot.mV[VY],
info->mRot.mV[VZ], LLQuaternion::XYZ));
-
joint->setScale(info->mScale);
@@ -1743,18 +1609,6 @@ BOOL LLVOAvatar::buildSkeleton(const LLVOAvatarSkeletonInfo *info)
}
}
- // add special-purpose "screen" joint
- if (mIsSelf)
- {
- mScreenp = new LLViewerJoint("mScreen", NULL);
- // for now, put screen at origin, as it is only used during special
- // HUD rendering mode
- F32 aspect = LLViewerCamera::getInstance()->getAspect();
- LLVector3 scale(1.f, aspect, 1.f);
- mScreenp->setScale(scale);
- mScreenp->setWorldPosition(LLVector3::zero);
- }
-
return TRUE;
}
@@ -1803,11 +1657,11 @@ void LLVOAvatar::buildCharacter()
// clear mesh data
//-------------------------------------------------------------------------
for (std::vector<LLViewerJoint*>::iterator jointIter = mMeshLOD.begin();
- jointIter != mMeshLOD.end(); jointIter++)
+ jointIter != mMeshLOD.end(); jointIter++)
{
LLViewerJoint* joint = (LLViewerJoint*) *jointIter;
for (std::vector<LLViewerJointMesh*>::iterator meshIter = joint->mMeshParts.begin();
- meshIter != joint->mMeshParts.end(); meshIter++)
+ meshIter != joint->mMeshParts.end(); meshIter++)
{
LLViewerJointMesh * mesh = (LLViewerJointMesh *) *meshIter;
mesh->setMesh(NULL);
@@ -1831,9 +1685,9 @@ void LLVOAvatar::buildCharacter()
// gPrintMessagesThisFrame = TRUE;
lldebugs << "Avatar load took " << timer.getElapsedTimeF32() << " seconds." << llendl;
- if ( ! status )
+ if (!status)
{
- if ( mIsSelf )
+ if (isSelf())
{
llerrs << "Unable to load user's avatar" << llendl;
}
@@ -1870,23 +1724,23 @@ void LLVOAvatar::buildCharacter()
// Make sure "well known" pointers exist
//-------------------------------------------------------------------------
if (!(mPelvisp &&
- mTorsop &&
- mChestp &&
- mNeckp &&
- mHeadp &&
- mSkullp &&
- mHipLeftp &&
- mHipRightp &&
- mKneeLeftp &&
- mKneeRightp &&
- mAnkleLeftp &&
- mAnkleRightp &&
- mFootLeftp &&
- mFootRightp &&
- mWristLeftp &&
- mWristRightp &&
- mEyeLeftp &&
- mEyeRightp))
+ mTorsop &&
+ mChestp &&
+ mNeckp &&
+ mHeadp &&
+ mSkullp &&
+ mHipLeftp &&
+ mHipRightp &&
+ mKneeLeftp &&
+ mKneeRightp &&
+ mAnkleLeftp &&
+ mAnkleRightp &&
+ mFootLeftp &&
+ mFootRightp &&
+ mWristLeftp &&
+ mWristRightp &&
+ mEyeLeftp &&
+ mEyeRightp))
{
llerrs << "Failed to create avatar." << llendl;
return;
@@ -1932,318 +1786,6 @@ void LLVOAvatar::buildCharacter()
mIsBuilt = TRUE;
stop_glerror();
- //-------------------------------------------------------------------------
- // build the attach and detach menus
- //-------------------------------------------------------------------------
- if (mIsSelf)
- {
- gAttachBodyPartPieMenus[0] = NULL;
-
- LLContextMenu::Params params;
- params.label(LLTrans::getString("BodyPartsRightArm") + " >");
- params.name(params.label);
- params.visible(false);
- gAttachBodyPartPieMenus[1] = LLUICtrlFactory::create<LLContextMenu> (params);
-
- params.label(LLTrans::getString("BodyPartsHead") + " >");
- params.name(params.label);
- gAttachBodyPartPieMenus[2] = LLUICtrlFactory::create<LLContextMenu> (params);
-
- params.label(LLTrans::getString("BodyPartsLeftArm") + " >");
- params.name(params.label);
- gAttachBodyPartPieMenus[3] = LLUICtrlFactory::create<LLContextMenu> (params);
-
- gAttachBodyPartPieMenus[4] = NULL;
-
- params.label(LLTrans::getString("BodyPartsLeftLeg") + " >");
- params.name(params.label);
- gAttachBodyPartPieMenus[5] = LLUICtrlFactory::create<LLContextMenu> (params);
-
- params.label(LLTrans::getString("BodyPartsTorso") + " >");
- params.name(params.label);
- gAttachBodyPartPieMenus[6] = LLUICtrlFactory::create<LLContextMenu> (params);
-
- params.label(LLTrans::getString("BodyPartsRightLeg") + " >");
- params.name(params.label);
- gAttachBodyPartPieMenus[7] = LLUICtrlFactory::create<LLContextMenu> (params);
-
- gDetachBodyPartPieMenus[0] = NULL;
-
- params.label(LLTrans::getString("BodyPartsRightArm") + " >");
- params.name(params.label);
- gDetachBodyPartPieMenus[1] = LLUICtrlFactory::create<LLContextMenu> (params);
-
- params.label(LLTrans::getString("BodyPartsHead") + " >");
- params.name(params.label);
- gDetachBodyPartPieMenus[2] = LLUICtrlFactory::create<LLContextMenu> (params);
-
- params.label(LLTrans::getString("BodyPartsLeftArm") + " >");
- params.name(params.label);
- gDetachBodyPartPieMenus[3] = LLUICtrlFactory::create<LLContextMenu> (params);
-
- gDetachBodyPartPieMenus[4] = NULL;
-
- params.label(LLTrans::getString("BodyPartsLeftLeg") + " >");
- params.name(params.label);
- gDetachBodyPartPieMenus[5] = LLUICtrlFactory::create<LLContextMenu> (params);
-
- params.label(LLTrans::getString("BodyPartsTorso") + " >");
- params.name(params.label);
- gDetachBodyPartPieMenus[6] = LLUICtrlFactory::create<LLContextMenu> (params);
-
- params.label(LLTrans::getString("BodyPartsRightLeg") + " >");
- params.name(params.label);
- gDetachBodyPartPieMenus[7] = LLUICtrlFactory::create<LLContextMenu> (params);
-
- for (S32 i = 0; i < 8; i++)
- {
- if (gAttachBodyPartPieMenus[i])
- {
- gAttachPieMenu->appendContextSubMenu( gAttachBodyPartPieMenus[i] );
- }
- else
- {
- BOOL attachment_found = FALSE;
- for (attachment_map_t::iterator iter = mAttachmentPoints.begin();
- iter != mAttachmentPoints.end(); )
- {
- attachment_map_t::iterator curiter = iter++;
- LLViewerJointAttachment* attachment = curiter->second;
- if (attachment->getGroup() == i)
- {
- LLMenuItemCallGL::Params item_params;
-
- std::string sub_piemenu_name = attachment->getName();
- if (LLTrans::getString(sub_piemenu_name) != "")
- {
- item_params.label = LLTrans::getString(sub_piemenu_name);
- }
- else
- {
- item_params.label = sub_piemenu_name;
- }
- item_params.name =(item_params.label );
- item_params.on_click.function_name = "Object.AttachToAvatar";
- item_params.on_click.parameter = curiter->first;
- item_params.on_enable.function_name = "Object.EnableWear";
- item_params.on_enable.parameter = curiter->first;
- LLMenuItemCallGL* item = LLUICtrlFactory::create<LLMenuItemCallGL>(item_params);
-
- gAttachPieMenu->addChild(item);
-
- attachment_found = TRUE;
- break;
-
- }
- }
-
- if (!attachment_found)
- {
- gAttachPieMenu->addSeparator();
- }
- }
-
- if (gDetachBodyPartPieMenus[i])
- {
- gDetachPieMenu->appendContextSubMenu( gDetachBodyPartPieMenus[i] );
- }
- else
- {
- BOOL attachment_found = FALSE;
- for (attachment_map_t::iterator iter = mAttachmentPoints.begin();
- iter != mAttachmentPoints.end(); )
- {
- attachment_map_t::iterator curiter = iter++;
- LLViewerJointAttachment* attachment = curiter->second;
- if (attachment->getGroup() == i)
- {
- LLMenuItemCallGL::Params item_params;
- std::string sub_piemenu_name = attachment->getName();
- if (LLTrans::getString(sub_piemenu_name) != "")
- {
- item_params.label = LLTrans::getString(sub_piemenu_name);
- }
- else
- {
- item_params.label = sub_piemenu_name;
- }
- item_params.name =(item_params.label );
- item_params.on_click.function_name = "Attachment.Detach";
- item_params.on_click.parameter = curiter->first;
- item_params.on_enable.function_name = "Attachment.EnableDetach";
- item_params.on_enable.parameter = curiter->first;
- LLMenuItemCallGL* item = LLUICtrlFactory::create<LLMenuItemCallGL>(item_params);
-
- gDetachPieMenu->addChild(item);
-
- attachment_found = TRUE;
- break;
- }
- }
-
- if (!attachment_found)
- {
- gDetachPieMenu->addSeparator();
- }
- }
- }
-
- // add screen attachments
- for (attachment_map_t::iterator iter = mAttachmentPoints.begin();
- iter != mAttachmentPoints.end(); )
- {
- attachment_map_t::iterator curiter = iter++;
- LLViewerJointAttachment* attachment = curiter->second;
- if (attachment->getGroup() == 8)
- {
- LLMenuItemCallGL::Params item_params;
- std::string sub_piemenu_name = attachment->getName();
- if (LLTrans::getString(sub_piemenu_name) != "")
- {
- item_params.label = LLTrans::getString(sub_piemenu_name);
- }
- else
- {
- item_params.label = sub_piemenu_name;
- }
- item_params.name =(item_params.label );
- item_params.on_click.function_name = "Object.AttachToAvatar";
- item_params.on_click.parameter = curiter->first;
- item_params.on_enable.function_name = "Object.EnableWear";
- item_params.on_enable.parameter = curiter->first;
- LLMenuItemCallGL* item = LLUICtrlFactory::create<LLMenuItemCallGL>(item_params);
- gAttachScreenPieMenu->addChild(item);
-
- item_params.on_click.function_name = "Attachment.DetachFromPoint";
- item_params.on_click.parameter = curiter->first;
- item_params.on_enable.function_name = "Attachment.PointFilled";
- item_params.on_enable.parameter = curiter->first;
- item = LLUICtrlFactory::create<LLMenuItemCallGL>(item_params);
- gDetachScreenPieMenu->addChild(item);
- }
- }
-
- for (S32 pass = 0; pass < 2; pass++)
- {
- // *TODO: Skinning - gAttachSubMenu is an awful, awful hack
- if (!gAttachSubMenu)
- {
- break;
- }
- for (attachment_map_t::iterator iter = mAttachmentPoints.begin();
- iter != mAttachmentPoints.end(); )
- {
- attachment_map_t::iterator curiter = iter++;
- LLViewerJointAttachment* attachment = curiter->second;
- if (attachment->getIsHUDAttachment() != (pass == 1))
- {
- continue;
- }
- LLMenuItemCallGL::Params item_params;
- std::string sub_piemenu_name = attachment->getName();
- if (LLTrans::getString(sub_piemenu_name) != "")
- {
- item_params.label = LLTrans::getString(sub_piemenu_name);
- }
- else
- {
- item_params.label = sub_piemenu_name;
- }
- item_params.name =(item_params.label );
- item_params.on_click.function_name = "Object.AttachToAvatar";
- item_params.on_click.parameter = curiter->first;
- item_params.on_enable.function_name = "Object.EnableWear";
- item_params.on_enable.parameter = curiter->first;
- //* TODO: Skinning:
- //LLSD params;
- //params["index"] = curiter->first;
- //params["label"] = attachment->getName();
- //item->addEventHandler("on_enable", LLMenuItemCallGL::MenuCallback().function_name("Attachment.Label").parameter(params));
-
- LLMenuItemCallGL* item = LLUICtrlFactory::create<LLMenuItemCallGL>(item_params);
- gAttachSubMenu->addChild(item);
-
- item_params.on_click.function_name = "Attachment.DetachFromPoint";
- item_params.on_click.parameter = curiter->first;
- item_params.on_enable.function_name = "Attachment.PointFilled";
- item_params.on_enable.parameter = curiter->first;
- //* TODO: Skinning: item->addEventHandler("on_enable", LLMenuItemCallGL::MenuCallback().function_name("Attachment.Label").parameter(params));
-
- item = LLUICtrlFactory::create<LLMenuItemCallGL>(item_params);
- gDetachSubMenu->addChild(item);
- }
- if (pass == 0)
- {
- // put separator between non-hud and hud attachments
- gAttachSubMenu->addSeparator();
- gDetachSubMenu->addSeparator();
- }
- }
-
- for (S32 group = 0; group < 8; group++)
- {
- // skip over groups that don't have sub menus
- if (!gAttachBodyPartPieMenus[group] || !gDetachBodyPartPieMenus[group])
- {
- continue;
- }
-
- std::multimap<S32, S32> attachment_pie_menu_map;
-
- // gather up all attachment points assigned to this group, and throw into map sorted by pie slice number
- for (attachment_map_t::iterator iter = mAttachmentPoints.begin();
- iter != mAttachmentPoints.end(); )
- {
- attachment_map_t::iterator curiter = iter++;
- LLViewerJointAttachment* attachment = curiter->second;
- if(attachment->getGroup() == group)
- {
- // use multimap to provide a partial order off of the pie slice key
- S32 pie_index = attachment->getPieSlice();
- attachment_pie_menu_map.insert(std::make_pair(pie_index, curiter->first));
- }
- }
-
- // add in requested order to pie menu, inserting separators as necessary
- S32 cur_pie_slice = 0;
- for (std::multimap<S32, S32>::iterator attach_it = attachment_pie_menu_map.begin();
- attach_it != attachment_pie_menu_map.end(); ++attach_it)
- {
- S32 requested_pie_slice = attach_it->first;
- S32 attach_index = attach_it->second;
- while (cur_pie_slice < requested_pie_slice)
- {
- gAttachBodyPartPieMenus[group]->addSeparator();
- gDetachBodyPartPieMenus[group]->addSeparator();
- cur_pie_slice++;
- }
-
- LLViewerJointAttachment* attachment = get_if_there(mAttachmentPoints, attach_index, (LLViewerJointAttachment*)NULL);
- if (attachment)
- {
- LLMenuItemCallGL::Params item_params;
- item_params.name = attachment->getName();
- item_params.label = attachment->getName();
- item_params.on_click.function_name = "Object.AttachToAvatar";
- item_params.on_click.parameter = attach_index;
- item_params.on_enable.function_name = "Object.EnableWear";
- item_params.on_enable.parameter = attach_index;
-
- LLMenuItemCallGL* item = LLUICtrlFactory::create<LLMenuItemCallGL>(item_params);
- gAttachBodyPartPieMenus[group]->addChild(item);
-
- item_params.on_click.function_name = "Attachment.DetachFromPoint";
- item_params.on_click.parameter = attach_index;
- item_params.on_enable.function_name = "Attachment.PointFilled";
- item_params.on_enable.parameter = attach_index;
- item = LLUICtrlFactory::create<LLMenuItemCallGL>(item_params);
- gDetachBodyPartPieMenus[group]->addChild(item);
- cur_pie_slice++;
- }
- }
- }
- }
-
mMeshValid = TRUE;
}
@@ -2264,7 +1806,7 @@ void LLVOAvatar::releaseMeshData()
// cleanup mesh data
for (std::vector<LLViewerJoint*>::iterator iter = mMeshLOD.begin();
- iter != mMeshLOD.end(); iter++)
+ iter != mMeshLOD.end(); iter++)
{
LLViewerJoint* joint = (LLViewerJoint*) *iter;
joint->setValid(FALSE, TRUE);
@@ -2298,29 +1840,24 @@ void LLVOAvatar::releaseMeshData()
//-----------------------------------------------------------------------------
// restoreMeshData()
//-----------------------------------------------------------------------------
+// virtual
void LLVOAvatar::restoreMeshData()
{
+ llassert(!isSelf());
LLMemType mt(LLMemType::MTYPE_AVATAR);
//llinfos << "Restoring" << llendl;
mMeshValid = TRUE;
updateJointLODs();
- if (mIsSelf)
- {
- updateAttachmentVisibility(gAgent.getCameraMode());
- }
- else
+ for (attachment_map_t::iterator iter = mAttachmentPoints.begin();
+ iter != mAttachmentPoints.end(); )
{
- for (attachment_map_t::iterator iter = mAttachmentPoints.begin();
- iter != mAttachmentPoints.end(); )
+ attachment_map_t::iterator curiter = iter++;
+ LLViewerJointAttachment* attachment = curiter->second;
+ if (!attachment->getIsHUDAttachment())
{
- attachment_map_t::iterator curiter = iter++;
- LLViewerJointAttachment* attachment = curiter->second;
- if (!attachment->getIsHUDAttachment())
- {
- attachment->setAttachmentVisibility(TRUE);
- }
+ attachment->setAttachmentVisibility(TRUE);
}
}
@@ -2506,9 +2043,9 @@ void LLVOAvatar::computeBodySize()
// LLVOAvatar::processUpdateMessage()
//------------------------------------------------------------------------
U32 LLVOAvatar::processUpdateMessage(LLMessageSystem *mesgsys,
- void **user_data,
- U32 block_num, const EObjectUpdateType update_type,
- LLDataPacker *dp)
+ void **user_data,
+ U32 block_num, const EObjectUpdateType update_type,
+ LLDataPacker *dp)
{
LLMemType mt(LLMemType::MTYPE_AVATAR);
@@ -2547,9 +2084,6 @@ S32 LLVOAvatar::setTETexture(const U8 te, const LLUUID& uuid)
}
}
-
-// setTEImage
-
//------------------------------------------------------------------------
// idleUpdate()
//------------------------------------------------------------------------
@@ -2604,7 +2138,7 @@ BOOL LLVOAvatar::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
// set alpha flag depending on state
//--------------------------------------------------------------------
- if (mIsSelf)
+ if (isSelf())
{
LLViewerObject::idleUpdate(agent, world, time);
@@ -2628,8 +2162,8 @@ BOOL LLVOAvatar::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
// animate the character
// store off last frame's root position to be consistent with camera position
LLVector3 root_pos_last = mRoot.getWorldPosition();
- bool detailed_update = updateCharacter(agent);
- bool voice_enabled = gVoiceClient->getVoiceEnabled( mID ) && gVoiceClient->inProximalChannel();
+ BOOL detailed_update = updateCharacter(agent);
+ BOOL voice_enabled = gVoiceClient->getVoiceEnabled( mID ) && gVoiceClient->inProximalChannel();
if (gNoRender)
{
@@ -2652,13 +2186,13 @@ BOOL LLVOAvatar::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
void LLVOAvatar::idleUpdateVoiceVisualizer(bool voice_enabled)
{
// disable voice visualizer when in mouselook
- mVoiceVisualizer->setVoiceEnabled( voice_enabled && !(mIsSelf && gAgent.cameraMouselook()) );
+ mVoiceVisualizer->setVoiceEnabled( voice_enabled && !(isSelf() && gAgent.cameraMouselook()) );
if ( voice_enabled )
{
//----------------------------------------------------------------
// Only do gesture triggering for your own avatar, and only when you're in a proximal channel.
//----------------------------------------------------------------
- if( mIsSelf )
+ if( isSelf() )
{
//----------------------------------------------------------------------------------------
// The following takes the voice signal and uses that to trigger gesticulations.
@@ -2684,7 +2218,7 @@ void LLVOAvatar::idleUpdateVoiceVisualizer(bool voice_enabled)
}
}
- } //if( mIsSelf )
+ } //if( isSelf() )
//-----------------------------------------------------------------------------------------------------------------
// If the avatar is speaking, then the voice amplitude signal is passed to the voice visualizer.
@@ -2693,9 +2227,9 @@ void LLVOAvatar::idleUpdateVoiceVisualizer(bool voice_enabled)
// Notice the calls to "gAwayTimer.reset()". This resets the timer that determines how long the avatar has been
// "away", so that the avatar doesn't lapse into away-mode (and slump over) while the user is still talking.
//-----------------------------------------------------------------------------------------------------------------
- if ( gVoiceClient->getIsSpeaking( mID ) )
+ if (gVoiceClient->getIsSpeaking( mID ))
{
- if ( ! mVoiceVisualizer->getCurrentlySpeaking() )
+ if (!mVoiceVisualizer->getCurrentlySpeaking())
{
mVoiceVisualizer->setStartSpeaking();
@@ -2704,7 +2238,7 @@ void LLVOAvatar::idleUpdateVoiceVisualizer(bool voice_enabled)
mVoiceVisualizer->setSpeakingAmplitude( gVoiceClient->getCurrentPower( mID ) );
- if( mIsSelf )
+ if( isSelf() )
{
gAgent.clearAFK();
}
@@ -2767,8 +2301,8 @@ void LLVOAvatar::idleUpdateMisc(bool detailed_update)
LLViewerObject *attached_object = attachment->getObject();
BOOL visibleAttachment = visible || (attached_object &&
- !(attached_object->mDrawable->getSpatialBridge() &&
- attached_object->mDrawable->getSpatialBridge()->getRadius() < 2.0));
+ !(attached_object->mDrawable->getSpatialBridge() &&
+ attached_object->mDrawable->getSpatialBridge()->getRadius() < 2.0));
if (visibleAttachment && attached_object && !attached_object->isDead() && attachment->getValid())
{
@@ -2864,7 +2398,7 @@ void LLVOAvatar::idleUpdateAppearanceAnimation()
}
}
updateVisualParams();
- if (mIsSelf)
+ if (isSelf())
{
gAgent.sendAgentSetAppearance();
}
@@ -3060,16 +2594,16 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last)
BOOL visible_avatar = isVisible() || mNeedsAnimUpdate;
BOOL visible_chat = gSavedSettings.getBOOL("UseChatBubbles") && (mChats.size() || mTyping);
BOOL render_name = visible_chat ||
- (visible_avatar &&
- ((sRenderName == RENDER_NAME_ALWAYS) ||
- (sRenderName == RENDER_NAME_FADE && time_visible < NAME_SHOW_TIME)));
+ (visible_avatar &&
+ ((sRenderName == RENDER_NAME_ALWAYS) ||
+ (sRenderName == RENDER_NAME_FADE && time_visible < NAME_SHOW_TIME)));
// If it's your own avatar, don't draw in mouselook, and don't
// draw if we're specifically hiding our own name.
- if (mIsSelf)
+ if (isSelf())
{
render_name = render_name
- && !gAgent.cameraMouselook()
- && (visible_chat || !gSavedSettings.getBOOL("RenderNameHideSelf"));
+ && !gAgent.cameraMouselook()
+ && (visible_chat || !gSavedSettings.getBOOL("RenderNameHideSelf"));
}
if ( render_name )
@@ -3169,7 +2703,7 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last)
BOOL is_busy = mSignaledAnimations.find(ANIM_AGENT_BUSY) != mSignaledAnimations.end();
BOOL is_appearance = mSignaledAnimations.find(ANIM_AGENT_CUSTOMIZE) != mSignaledAnimations.end();
BOOL is_muted;
- if (mIsSelf)
+ if (isSelf())
{
is_muted = FALSE;
}
@@ -3282,15 +2816,15 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last)
LLFontGL::StyleFlags style;
switch(chat_iter->mChatType)
{
- case CHAT_TYPE_WHISPER:
- style = LLFontGL::ITALIC;
- break;
- case CHAT_TYPE_SHOUT:
- style = LLFontGL::BOLD;
- break;
- default:
- style = LLFontGL::NORMAL;
- break;
+ case CHAT_TYPE_WHISPER:
+ style = LLFontGL::ITALIC;
+ break;
+ case CHAT_TYPE_SHOUT:
+ style = LLFontGL::BOLD;
+ break;
+ default:
+ style = LLFontGL::NORMAL;
+ break;
}
if (chat_fade_amt < 1.f)
{
@@ -3315,15 +2849,15 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last)
S32 dot_count = (llfloor(mTypingTimer.getElapsedTimeF32() * 3.f) + 2) % 3 + 1;
switch(dot_count)
{
- case 1:
- mNameText->addLine(".", new_chat);
- break;
- case 2:
- mNameText->addLine("..", new_chat);
- break;
- case 3:
- mNameText->addLine("...", new_chat);
- break;
+ case 1:
+ mNameText->addLine(".", new_chat);
+ break;
+ case 2:
+ mNameText->addLine("..", new_chat);
+ break;
+ case 3:
+ mNameText->addLine("...", new_chat);
+ break;
}
}
@@ -3357,75 +2891,12 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last)
}
}
+//--------------------------------------------------------------------
+// draw tractor beam when editing objects
+//--------------------------------------------------------------------
+// virtual
void LLVOAvatar::idleUpdateTractorBeam()
{
- //--------------------------------------------------------------------
- // draw tractor beam when editing objects
- //--------------------------------------------------------------------
- if (!mIsSelf)
- {
- return;
- }
-
- // This is only done for yourself (maybe it should be in the agent?)
- if (!needsRenderBeam() || !mIsBuilt)
- {
- mBeam = NULL;
- }
- else if (!mBeam || mBeam->isDead())
- {
- // VEFFECT: Tractor Beam
- mBeam = (LLHUDEffectSpiral *)LLHUDManager::getInstance()->createViewerEffect(LLHUDObject::LL_HUD_EFFECT_BEAM);
- mBeam->setColor(LLColor4U(gAgent.getEffectColor()));
- mBeam->setSourceObject(this);
- mBeamTimer.reset();
- }
-
- if (!mBeam.isNull())
- {
- LLObjectSelectionHandle selection = LLSelectMgr::getInstance()->getSelection();
-
- if (gAgent.mPointAt.notNull())
- {
- // get point from pointat effect
- mBeam->setPositionGlobal(gAgent.mPointAt->getPointAtPosGlobal());
- mBeam->triggerLocal();
- }
- else if (selection->getFirstRootObject() &&
- selection->getSelectType() != SELECT_TYPE_HUD)
- {
- LLViewerObject* objectp = selection->getFirstRootObject();
- mBeam->setTargetObject(objectp);
- }
- else
- {
- mBeam->setTargetObject(NULL);
- LLTool *tool = LLToolMgr::getInstance()->getCurrentTool();
- if (tool->isEditing())
- {
- if (tool->getEditingObject())
- {
- mBeam->setTargetObject(tool->getEditingObject());
- }
- else
- {
- mBeam->setPositionGlobal(tool->getEditingPointGlobal());
- }
- }
- else
- {
- const LLPickInfo& pick = gViewerWindow->getLastPick();
- mBeam->setPositionGlobal(pick.mPosGlobal);
- }
-
- }
- if (mBeamTimer.getElapsedTimeF32() > 0.25f)
- {
- mBeam->setColor(LLColor4U(gAgent.getEffectColor()));
- mBeam->setNeedsSendToSim(TRUE);
- mBeamTimer.reset();
- }
- }
}
void LLVOAvatar::idleUpdateBelowWater()
@@ -3457,16 +2928,6 @@ void LLVOAvatar::slamPosition()
BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
{
LLMemType mt(LLMemType::MTYPE_AVATAR);
- // update screen joint size
-
- if (mScreenp)
- {
- F32 aspect = LLViewerCamera::getInstance()->getAspect();
- LLVector3 scale(1.f, aspect, 1.f);
- mScreenp->setScale(scale);
- mScreenp->updateWorldMatrixChildren();
- resetHUDAttachments();
- }
// clear debug text
mDebugText.clear();
@@ -3499,7 +2960,7 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
if (gNoRender)
{
// Hack if we're running drones...
- if (mIsSelf)
+ if (isSelf())
{
gAgent.setPositionAgent(getPositionAgent());
}
@@ -3528,7 +2989,7 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
// the rest should only be done occasionally for far away avatars
//--------------------------------------------------------------------
- if (visible && !mIsSelf && !mIsDummy && sUseImpostors && !mNeedsAnimUpdate && !sFreezeCounter)
+ if (visible && !isSelf() && !mIsDummy && sUseImpostors && !mNeedsAnimUpdate && !sFreezeCounter)
{
F32 impostor_area = 256.f*512.f*(8.125f - LLVOAvatar::sLODFactor*8.f);
if (LLMuteList::getInstance()->isMuted(getID()))
@@ -3570,7 +3031,7 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
}
// change animation time quanta based on avatar render load
- if (!mIsSelf && !mIsDummy)
+ if (!isSelf() && !mIsDummy)
{
F32 time_quantum = clamp_rescale((F32)sInstances.size(), 10.f, 35.f, 0.f, 0.25f);
F32 pixel_area_scale = clamp_rescale(mPixelArea, 100, 5000, 1.f, 0.f);
@@ -3639,7 +3100,7 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
LLVector3d root_pos;
LLVector3d ground_under_pelvis;
- if (mIsSelf)
+ if (isSelf())
{
gAgent.setPositionAgent(getRenderPosition());
}
@@ -3648,8 +3109,8 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
resolveHeightGlobal(root_pos, ground_under_pelvis, normal);
F32 foot_to_ground = (F32) (root_pos.mdV[VZ] - mPelvisToFoot - ground_under_pelvis.mdV[VZ]);
- BOOL in_air = ( (!LLWorld::getInstance()->getRegionFromPosGlobal(ground_under_pelvis)) ||
- foot_to_ground > FOOT_GROUND_COLLISION_TOLERANCE);
+ BOOL in_air = ((!LLWorld::getInstance()->getRegionFromPosGlobal(ground_under_pelvis)) ||
+ foot_to_ground > FOOT_GROUND_COLLISION_TOLERANCE);
if (in_air && !mInAir)
{
@@ -3684,7 +3145,7 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
// more than 90 from the view, if necessary, flip the velocity vector.
LLVector3 primDir;
- if (mIsSelf)
+ if (isSelf())
{
primDir = agent.getAtAxis() - projected_vec(agent.getAtAxis(), agent.getReferenceUpVector());
primDir.normalize();
@@ -3704,7 +3165,7 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
}
}
LLVector3 fwdDir = lerp(primDir, velDir, clamp_rescale(speed, 0.5f, 2.0f, 0.0f, 1.0f));
- if (mIsSelf && gAgent.cameraMouselook())
+ if (isSelf() && gAgent.cameraMouselook())
{
// make sure fwdDir stays in same general direction as primdir
if (gAgent.getFlying())
@@ -3732,18 +3193,10 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
F32 root_roll, root_pitch, root_yaw;
root_rotation.getEulerAngles(&root_roll, &root_pitch, &root_yaw);
- if (mDebugAvatarRotation)
- {
- llinfos << "root_roll " << RAD_TO_DEG * root_roll
- << " root_pitch " << RAD_TO_DEG * root_pitch
- << " root_yaw " << RAD_TO_DEG * root_yaw
- << llendl;
- }
-
// When moving very slow, the pelvis is allowed to deviate from the
// forward direction to allow it to hold it's position while the torso
// and head turn. Once in motion, it must conform however.
- BOOL self_in_mouselook = mIsSelf && gAgent.cameraMouselook();
+ BOOL self_in_mouselook = isSelf() && gAgent.cameraMouselook();
LLVector3 pelvisDir( mRoot.getWorldMatrix().getFwdRow4().mV );
F32 pelvis_rot_threshold = clamp_rescale(speed, 0.1f, 1.0f, PELVIS_ROT_THRESHOLD_SLOW, PELVIS_ROT_THRESHOLD_FAST);
@@ -3760,7 +3213,7 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
// from the forward direction, but if roll or pitch are off even
// a little bit we need to correct the rotation.
if(root_roll < 1.f * DEG_TO_RAD
- && root_pitch < 5.f * DEG_TO_RAD)
+ && root_pitch < 5.f * DEG_TO_RAD)
{
// smaller correction vector means pelvis follows prim direction more closely
if (!mTurning && angle > pelvis_rot_threshold*0.75f)
@@ -3794,7 +3247,7 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
fwdDir = leftDir % upDir;
LLQuaternion wQv( fwdDir, leftDir, upDir );
- if (mIsSelf && mTurning)
+ if (isSelf() && mTurning)
{
if ((fwdDir % pelvisDir) * upDir > 0.f)
{
@@ -4003,9 +3456,9 @@ void LLVOAvatar::updateVisibility()
visible = FALSE;
}
- if( mIsSelf )
+ if(isSelf())
{
- if( !gAgent.areWearablesLoaded())
+ if (!gAgentWearables.areWearablesLoaded())
{
visible = FALSE;
}
@@ -4110,27 +3563,6 @@ void LLVOAvatar::updateVisibility()
mVisible = visible;
}
-//------------------------------------------------------------------------
-// needsRenderBeam()
-//------------------------------------------------------------------------
-BOOL LLVOAvatar::needsRenderBeam()
-{
- if (gNoRender)
- {
- return FALSE;
- }
- LLTool *tool = LLToolMgr::getInstance()->getCurrentTool();
-
- BOOL is_touching_or_grabbing = (tool == LLToolGrab::getInstance() && LLToolGrab::getInstance()->isEditing());
- if (LLToolGrab::getInstance()->getEditingObject() &&
- LLToolGrab::getInstance()->getEditingObject()->isAttachment())
- {
- // don't render selection beam on hud objects
- is_touching_or_grabbing = FALSE;
- }
- return is_touching_or_grabbing || (mState & AGENT_STATE_EDITING && LLSelectMgr::getInstance()->shouldShowSelection());
-}
-
//-----------------------------------------------------------------------------
// renderSkinned()
//-----------------------------------------------------------------------------
@@ -4164,7 +3596,7 @@ U32 LLVOAvatar::renderSkinned(EAvatarRenderPass pass)
mMeshLOD[MESH_ID_SKIRT]->updateJointGeometry();
}
- if (!mIsSelf || gAgent.needsRenderHead() || LLPipeline::sShadowRender)
+ if (!isSelf() || gAgent.needsRenderHead() || LLPipeline::sShadowRender)
{
mMeshLOD[MESH_ID_EYELASH]->updateJointGeometry();
mMeshLOD[MESH_ID_HEAD]->updateJointGeometry();
@@ -4214,7 +3646,7 @@ U32 LLVOAvatar::renderSkinned(EAvatarRenderPass pass)
return num_indices;
}
- if (mIsSelf && !gAgent.needsRenderAvatar())
+ if (isSelf() && !gAgent.needsRenderAvatar())
{
return num_indices;
}
@@ -4264,13 +3696,10 @@ U32 LLVOAvatar::renderSkinned(EAvatarRenderPass pass)
if (pass == AVATAR_RENDER_PASS_SINGLE)
{
- const bool should_alpha_mask = mHasBakedHair && isTextureDefined(TEX_HEAD_BAKED) && isTextureDefined(TEX_UPPER_BAKED)
- && isTextureDefined(TEX_LOWER_BAKED) && mBakedTextureData[BAKED_HEAD].mIsLoaded
- && mBakedTextureData[BAKED_UPPER].mIsLoaded && mBakedTextureData[BAKED_LOWER].mIsLoaded
- && !LLDrawPoolAlpha::sShowDebugAlpha; // Don't alpha mask if "Highlight Transparent" checked
+ const bool should_alpha_mask = mSupportsAlphaLayers && !LLDrawPoolAlpha::sShowDebugAlpha; // Don't alpha mask if "Highlight Transparent" checked
LLGLState test(GL_ALPHA_TEST, should_alpha_mask);
-
+
if (should_alpha_mask)
{
gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.5f);
@@ -4279,7 +3708,7 @@ U32 LLVOAvatar::renderSkinned(EAvatarRenderPass pass)
BOOL first_pass = TRUE;
if (!LLDrawPoolAvatar::sSkipOpaque)
{
- if (!mIsSelf || gAgent.needsRenderHead() || LLPipeline::sShadowRender)
+ if (!isSelf() || gAgent.needsRenderHead() || LLPipeline::sShadowRender)
{
if (isTextureVisible(TEX_HEAD_BAKED) || mIsDummy)
{
@@ -4304,11 +3733,8 @@ U32 LLVOAvatar::renderSkinned(EAvatarRenderPass pass)
if (!LLDrawPoolAvatar::sSkipTransparent || LLPipeline::sImpostorRender)
{
- if (!mIsDummy)
- {
- LLGLEnable blend(GL_BLEND);
- LLGLEnable test(GL_ALPHA_TEST);
- }
+ LLGLState blend(GL_BLEND, !mIsDummy);
+ LLGLState test(GL_ALPHA_TEST, !mIsDummy);
num_indices += renderTransparent(first_pass);
}
}
@@ -4333,7 +3759,7 @@ U32 LLVOAvatar::renderTransparent(BOOL first_pass)
gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT);
}
- if (!mIsSelf || gAgent.needsRenderHead() || LLPipeline::sShadowRender)
+ if (!isSelf() || gAgent.needsRenderHead() || LLPipeline::sShadowRender)
{
if (LLPipeline::sImpostorRender)
{
@@ -4347,7 +3773,7 @@ U32 LLVOAvatar::renderTransparent(BOOL first_pass)
}
// Can't test for baked hair being defined, since that won't always be the case (not all viewers send baked hair)
// TODO: 1.25 will be able to switch this logic back to calling isTextureVisible();
- if (getTEImage(TEX_HAIR_BAKED)->getID() != IMG_INVISIBLE || LLDrawPoolAlpha::sShowDebugAlpha)
+ if (getImage(TEX_HAIR_BAKED)->getID() != IMG_INVISIBLE || LLDrawPoolAlpha::sShowDebugAlpha)
{
num_indices += mMeshLOD[MESH_ID_HAIR]->render(mAdjustedPixelArea, first_pass, mIsDummy);
first_pass = FALSE;
@@ -4373,7 +3799,7 @@ U32 LLVOAvatar::renderRigid()
return 0;
}
- if (mIsSelf && (!gAgent.needsRenderAvatar() || !gAgent.needsRenderHead()))
+ if (isSelf() && (!gAgent.needsRenderAvatar() || !gAgent.needsRenderHead()))
{
return 0;
}
@@ -4386,7 +3812,8 @@ U32 LLVOAvatar::renderRigid()
if (isTextureVisible(TEX_EYES_BAKED) || mIsDummy)
{
// If the meshes need to be drawn, enable alpha masking but not blending
- bool should_alpha_mask = mHasBakedHair && mBakedTextureData[BAKED_EYES].mIsLoaded;
+ bool should_alpha_mask = mSupportsAlphaLayers && !LLDrawPoolAlpha::sShowDebugAlpha;
+
LLGLState test(GL_ALPHA_TEST, should_alpha_mask);
if (should_alpha_mask)
@@ -4412,7 +3839,7 @@ U32 LLVOAvatar::renderFootShadows()
return 0;
}
- if (mIsSelf && (!gAgent.needsRenderAvatar() || !gAgent.needsRenderHead()))
+ if (isSelf() && (!gAgent.needsRenderAvatar() || !gAgent.needsRenderHead()))
{
return 0;
}
@@ -4424,7 +3851,7 @@ U32 LLVOAvatar::renderFootShadows()
// Don't render foot shadows if your lower body is completely invisible.
// (non-humanoid avatars rule!)
- if (! isTextureVisible(TEX_LOWER_BAKED))
+ if (!isTextureVisible(TEX_LOWER_BAKED))
{
return 0;
}
@@ -4499,7 +3926,7 @@ void LLVOAvatar::updateTextures(LLAgent &agent)
return;
}
- if( mIsSelf )
+ if( isSelf() )
{
render_avatar = TRUE;
}
@@ -4508,66 +3935,32 @@ void LLVOAvatar::updateTextures(LLAgent &agent)
render_avatar = isVisible() && !mCulled;
}
- std::vector<bool> layer_baked;
- for (U32 i = 0; i < mBakedTextureData.size(); i++)
+ std::vector<BOOL> layer_baked;
+ for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
{
- layer_baked.push_back(isTextureDefined(mBakedTextureData[i].mTextureIndex));
+ layer_baked.push_back(isTextureDefined(mBakedTextureDatas[i].mTextureIndex));
// bind the texture so that they'll be decoded slightly
// inefficient, we can short-circuit this if we have to
- if( render_avatar && !gGLManager.mIsDisabled )
- {
- if (layer_baked[i] && !mBakedTextureData[i].mIsLoaded)
- {
- gGL.getTexUnit(0)->bind(getTEImage( mBakedTextureData[i].mTextureIndex ));
- }
- }
- }
-
- /*
- // JAMESDEBUG
- if (mIsSelf)
- {
- S32 null_count = 0;
- S32 default_count = 0;
- for (U32 i = 0; i < getNumTEs(); i++)
+ if (render_avatar && !gGLManager.mIsDisabled)
{
- const LLTextureEntry* te = getTE(i);
- if (te)
+ if (layer_baked[i] && !mBakedTextureDatas[i].mIsLoaded)
{
- if (te->getID() == LLUUID::null)
- {
- null_count++;
- }
- else if (te->getID() == IMG_DEFAULT_AVATAR)
- {
- default_count++;
- }
+ gGL.getTexUnit(0)->bind(getImage(mBakedTextureDatas[i].mTextureIndex));
}
}
- llinfos << "JAMESDEBUG my avatar TE null " << null_count << " default " << default_count << llendl;
}
- */
mMaxPixelArea = 0.f;
mMinPixelArea = 99999999.f;
mHasGrey = FALSE; // debug
for (U32 index = 0; index < getNumTEs(); index++)
{
- LLViewerImage *imagep = getTEImage(index);
+ LLViewerImage *imagep = getImage(index);
if (imagep)
{
- // Debugging code - maybe non-self avatars are downloading textures?
- //llinfos << "avatar self " << mIsSelf << " tex " << i
- // << " decode " << imagep->getDecodePriority()
- // << " boost " << boost_avatar
- // << " size " << imagep->getWidth() << "x" << imagep->getHeight()
- // << " discard " << imagep->getDiscardLevel()
- // << " desired " << imagep->getDesiredDiscardLevel()
- // << llendl;
-
const LLTextureEntry *te = getTE(index);
- F32 texel_area_ratio = fabs(te->mScaleS * te->mScaleT);
- S32 boost_level = mIsSelf ? LLViewerImage::BOOST_AVATAR_BAKED_SELF : LLViewerImage::BOOST_AVATAR_BAKED;
+ const F32 texel_area_ratio = fabs(te->mScaleS * te->mScaleT);
+ const S32 boost_level = getAvatarBakedBoostLevel();
// Spam if this is a baked texture, not set to default image, without valid host info
if (isIndexBakedTexture((ETextureIndex)index)
@@ -4575,15 +3968,15 @@ void LLVOAvatar::updateTextures(LLAgent &agent)
&& !imagep->getTargetHost().isOk())
{
LL_WARNS_ONCE("Texture") << "LLVOAvatar::updateTextures No host for texture "
- << imagep->getID() << " for avatar "
- << (mIsSelf ? "<myself>" : getID().asString())
- << " on host " << getRegion()->getHost() << llendl;
+ << imagep->getID() << " for avatar "
+ << (isSelf() ? "<myself>" : getID().asString())
+ << " on host " << getRegion()->getHost() << llendl;
}
/* switch(index)
case TEX_HEAD_BODYPAINT:
addLocalTextureStats( LOCTEX_HEAD_BODYPAINT, imagep, texel_area_ratio, render_avatar, head_baked ); */
- const LLVOAvatarDictionary::TextureDictionaryEntry *texture_dict = LLVOAvatarDictionary::getInstance()->getTexture((ETextureIndex)index);
+ const LLVOAvatarDictionary::TextureEntry *texture_dict = LLVOAvatarDictionary::getInstance()->getTexture((ETextureIndex)index);
if (texture_dict->mIsUsedByBakedTexture)
{
const EBakedTextureIndex baked_index = texture_dict->mBakedTextureIndex;
@@ -4614,38 +4007,11 @@ void LLVOAvatar::updateTextures(LLAgent &agent)
}
-void LLVOAvatar::addLocalTextureStats( ETextureIndex idx, LLViewerImage* imagep,
- F32 texel_area_ratio, BOOL render_avatar, BOOL covered_by_baked )
+void LLVOAvatar::addLocalTextureStats(ETextureIndex idx, LLViewerImage* imagep,
+ F32 texel_area_ratio, BOOL render_avatar, BOOL covered_by_baked, U32 index)
{
- if (!isIndexLocalTexture(idx)) return;
-
- if (!covered_by_baked && render_avatar) // render_avatar is always true if mIsSelf
- {
- if (getLocalTextureID(idx) != IMG_DEFAULT_AVATAR)
- {
- F32 desired_pixels;
- if( mIsSelf )
- {
- desired_pixels = llmin(mPixelArea, (F32)TEX_IMAGE_AREA_SELF );
- imagep->setBoostLevel(LLViewerImage::BOOST_AVATAR_SELF);
- }
- else
- {
- desired_pixels = llmin(mPixelArea, (F32)TEX_IMAGE_AREA_OTHER );
- imagep->setBoostLevel(LLViewerImage::BOOST_AVATAR);
- }
- imagep->addTextureStats( desired_pixels / texel_area_ratio );
- if (imagep->getDiscardLevel() < 0)
- {
- mHasGrey = TRUE; // for statistics gathering
- }
- }
- else
- {
- // texture asset is missing
- mHasGrey = TRUE; // for statistics gathering
- }
- }
+ // No local texture stats for non-self avatars
+ return;
}
@@ -4657,6 +4023,29 @@ void LLVOAvatar::addBakedTextureStats( LLViewerImage* imagep, F32 pixel_area, F3
imagep->setBoostLevel(boost_level);
}
+//virtual
+void LLVOAvatar::setImage(const U8 te, LLViewerImage *imagep)
+{
+ setTEImage(te, imagep);
+}
+
+//virtual
+LLViewerImage* LLVOAvatar::getImage(const U8 te) const
+{
+ return getTEImage(te);
+}
+//virtual
+const LLTextureEntry* LLVOAvatar::getTexEntry(const U8 te_num) const
+{
+ return getTE(te_num);
+}
+
+//virtual
+void LLVOAvatar::setTexEntry(const U8 index, const LLTextureEntry &te)
+{
+ setTE(index, te);
+}
+
//-----------------------------------------------------------------------------
// resolveHeight()
//-----------------------------------------------------------------------------
@@ -4798,7 +4187,7 @@ void LLVOAvatar::processAnimationStateChanges()
}
// clear source information for animations which have been stopped
- if (mIsSelf)
+ if (isSelf())
{
AnimSourceIterator source_it = mAnimationSources.begin();
@@ -4840,7 +4229,7 @@ BOOL LLVOAvatar::processSingleAnimationStateChange( const LLUUID& anim_id, BOOL
{
// RN: uncomment this to play on typing sound at fixed volume once sound engine is fixed
// to support both spatialized and non-spatialized instances of the same sound
- //if (mIsSelf)
+ //if (isSelf())
//{
// gAudiop->triggerSound(LLUUID(gSavedSettings.getString("UISndTyping")), 1.0f, LLAudioEngine::AUDIO_TYPE_UI);
//}
@@ -4883,7 +4272,7 @@ BOOL LLVOAvatar::processSingleAnimationStateChange( const LLUUID& anim_id, BOOL
//-----------------------------------------------------------------------------
// isAnyAnimationSignaled()
//-----------------------------------------------------------------------------
-BOOL LLVOAvatar::isAnyAnimationSignaled(const LLUUID *anim_array, const S32 num_anims)
+BOOL LLVOAvatar::isAnyAnimationSignaled(const LLUUID *anim_array, const S32 num_anims) const
{
for (S32 i = 0; i < num_anims; i++)
{
@@ -4926,7 +4315,7 @@ BOOL LLVOAvatar::startMotion(const LLUUID& id, F32 time_offset)
}
}
- if (mIsSelf && id == ANIM_AGENT_AWAY)
+ if (isSelf() && id == ANIM_AGENT_AWAY)
{
gAgent.setAFK();
}
@@ -4939,7 +4328,7 @@ BOOL LLVOAvatar::startMotion(const LLUUID& id, F32 time_offset)
//-----------------------------------------------------------------------------
BOOL LLVOAvatar::stopMotion(const LLUUID& id, BOOL stop_immediate)
{
- if (mIsSelf)
+ if (isSelf())
{
gAgent.onAnimStop(id);
}
@@ -4959,25 +4348,9 @@ BOOL LLVOAvatar::stopMotion(const LLUUID& id, BOOL stop_immediate)
//-----------------------------------------------------------------------------
// stopMotionFromSource()
//-----------------------------------------------------------------------------
+// virtual
void LLVOAvatar::stopMotionFromSource(const LLUUID& source_id)
{
- if (!mIsSelf)
- {
- return;
- }
- AnimSourceIterator motion_it;
-
- for(motion_it = mAnimationSources.find(source_id); motion_it != mAnimationSources.end();)
- {
- gAgent.sendAnimationRequest( motion_it->second, ANIM_REQUEST_STOP );
- mAnimationSources.erase(motion_it++);
- }
-
- LLViewerObject* object = gObjectList.findObject(source_id);
- if (object)
- {
- object->mFlags &= ~FLAGS_ANIM_SOURCE;
- }
}
//-----------------------------------------------------------------------------
@@ -5025,7 +4398,7 @@ S32 LLVOAvatar::getCollisionVolumeID(std::string &name)
//-----------------------------------------------------------------------------
// addDebugText()
//-----------------------------------------------------------------------------
- void LLVOAvatar::addDebugText(const std::string& text)
+void LLVOAvatar::addDebugText(const std::string& text)
{
mDebugText.append(1, '\n');
mDebugText.append(text);
@@ -5045,15 +4418,7 @@ const LLUUID& LLVOAvatar::getID()
// RN: avatar joints are multi-rooted to include screen-based attachments
LLJoint *LLVOAvatar::getJoint( const std::string &name )
{
- LLJoint* jointp = NULL;
- if (mScreenp)
- {
- jointp = mScreenp->findJoint(name);
- }
- if (!jointp)
- {
- jointp = mRoot.findJoint(name);
- }
+ LLJoint* jointp = mRoot.findJoint(name);
return jointp;
}
@@ -5183,8 +4548,7 @@ LLVector3 LLVOAvatar::getPosAgentFromGlobal(const LLVector3d &position)
//-----------------------------------------------------------------------------
BOOL LLVOAvatar::allocateCharacterJoints( U32 num )
{
- delete [] mSkeleton;
- mSkeleton = NULL;
+ deleteAndClearArray(mSkeleton);
mNumJoints = 0;
mSkeleton = new LLViewerJoint[num];
@@ -5208,8 +4572,7 @@ BOOL LLVOAvatar::allocateCharacterJoints( U32 num )
//-----------------------------------------------------------------------------
BOOL LLVOAvatar::allocateCollisionVolumes( U32 num )
{
- delete [] mCollisionVolumes;
- mCollisionVolumes = NULL;
+ deleteAndClearArray(mCollisionVolumes);
mNumCollisionVolumes = 0;
mCollisionVolumes = new LLViewerJointCollisionVolume[num];
@@ -5239,14 +4602,10 @@ LLJoint *LLVOAvatar::getCharacterJoint( U32 num )
//-----------------------------------------------------------------------------
// requestStopMotion()
//-----------------------------------------------------------------------------
+// virtual
void LLVOAvatar::requestStopMotion( LLMotion* motion )
{
// Only agent avatars should handle the stop motion notifications.
- if ( mIsSelf )
- {
- // Notify agent that motion has stopped
- gAgent.requestStopMotion( motion );
- }
}
//-----------------------------------------------------------------------------
@@ -5325,62 +4684,55 @@ BOOL LLVOAvatar::loadAvatar()
if (sAvatarXmlInfo->mLayerInfoList.empty())
{
llwarns << "avatar file: missing <layer_set> node" << llendl;
+ return FALSE;
}
- else
+
+ if (sAvatarXmlInfo->mMorphMaskInfoList.empty())
+ {
+ llwarns << "avatar file: missing <morph_masks> node" << llendl;
+ return FALSE;
+ }
+
+ // avatar_lad.xml : <morph_masks>
+ for (LLVOAvatarXmlInfo::morph_info_list_t::iterator iter = sAvatarXmlInfo->mMorphMaskInfoList.begin();
+ iter != sAvatarXmlInfo->mMorphMaskInfoList.end();
+ iter++)
{
- LLVOAvatarXmlInfo::layer_info_list_t::iterator iter;
- for (iter = sAvatarXmlInfo->mLayerInfoList.begin();
- iter != sAvatarXmlInfo->mLayerInfoList.end(); iter++)
+ LLVOAvatarXmlInfo::LLVOAvatarMorphInfo *info = *iter;
+
+ EBakedTextureIndex baked = LLVOAvatarDictionary::findBakedByRegionName(info->mRegion);
+ if (baked != BAKED_NUM_INDICES)
{
- LLTexLayerSetInfo *info = *iter;
- LLTexLayerSet* layer_set = new LLTexLayerSet( this );
- if (!layer_set->setInfo(info))
- {
- stop_glerror();
- delete layer_set;
- llwarns << "avatar file: layer_set->parseData() failed" << llendl;
- return FALSE;
- }
- bool found_baked_entry = false;
- for (LLVOAvatarDictionary::baked_map_t::const_iterator baked_iter = LLVOAvatarDictionary::getInstance()->getBakedTextures().begin();
- baked_iter != LLVOAvatarDictionary::getInstance()->getBakedTextures().end();
- baked_iter++)
- {
- const LLVOAvatarDictionary::BakedDictionaryEntry *baked_dict = baked_iter->second;
- if (layer_set->isBodyRegion(baked_dict->mName))
- {
- mBakedTextureData[baked_iter->first].mTexLayerSet = layer_set;
- found_baked_entry = true;
- break;
- }
- }
- if (!found_baked_entry)
+ LLPolyMorphTarget *morph_param;
+ const std::string *name = &info->mName;
+ morph_param = (LLPolyMorphTarget *)(getVisualParam(name->c_str()));
+ if (morph_param)
{
- llwarns << "<layer_set> has invalid body_region attribute" << llendl;
- delete layer_set;
- return FALSE;
+ BOOL invert = info->mInvert;
+ addMaskedMorph(baked, morph_param, invert, info->mLayer);
}
}
+
}
+
+ loadLayersets();
// avatar_lad.xml : <driver_parameters>
+ for (LLVOAvatarXmlInfo::driver_info_list_t::iterator iter = sAvatarXmlInfo->mDriverInfoList.begin();
+ iter != sAvatarXmlInfo->mDriverInfoList.end();
+ iter++)
{
- LLVOAvatarXmlInfo::driver_info_list_t::iterator iter;
- for (iter = sAvatarXmlInfo->mDriverInfoList.begin();
- iter != sAvatarXmlInfo->mDriverInfoList.end(); iter++)
+ LLDriverParamInfo *info = *iter;
+ LLDriverParam* driver_param = new LLDriverParam( this );
+ if (driver_param->setInfo(info))
{
- LLDriverParamInfo *info = *iter;
- LLDriverParam* driver_param = new LLDriverParam( this );
- if (driver_param->setInfo(info))
- {
- addVisualParam( driver_param );
- }
- else
- {
- delete driver_param;
- llwarns << "avatar file: driver_param->parseData() failed" << llendl;
- return FALSE;
- }
+ addVisualParam( driver_param );
+ }
+ else
+ {
+ delete driver_param;
+ llwarns << "avatar file: driver_param->parseData() failed" << llendl;
+ return FALSE;
}
}
@@ -5395,7 +4747,7 @@ BOOL LLVOAvatar::loadSkeletonNode ()
mRoot.addChild( &mSkeleton[0] );
for (std::vector<LLViewerJoint *>::iterator iter = mMeshLOD.begin();
- iter != mMeshLOD.end(); iter++)
+ iter != mMeshLOD.end(); iter++)
{
LLViewerJoint *joint = (LLViewerJoint *) *iter;
joint->mUpdateXform = FALSE;
@@ -5546,12 +4898,12 @@ BOOL LLVOAvatar::loadMeshNodes()
switch(lod)
case 0:
mesh = &mHairMesh0; */
- for (LLVOAvatarDictionary::mesh_map_t::const_iterator mesh_iter = LLVOAvatarDictionary::getInstance()->getMeshes().begin();
+ for (LLVOAvatarDictionary::Meshes::const_iterator mesh_iter = LLVOAvatarDictionary::getInstance()->getMeshes().begin();
mesh_iter != LLVOAvatarDictionary::getInstance()->getMeshes().end();
mesh_iter++)
{
const EMeshIndex mesh_index = mesh_iter->first;
- const LLVOAvatarDictionary::MeshDictionaryEntry *mesh_dict = mesh_iter->second;
+ const LLVOAvatarDictionary::MeshEntry *mesh_dict = mesh_iter->second;
if (type.compare(mesh_dict->mName) == 0)
{
mesh_id = mesh_index;
@@ -5647,6 +4999,23 @@ BOOL LLVOAvatar::loadMeshNodes()
}
//-----------------------------------------------------------------------------
+// loadLayerSets()
+//-----------------------------------------------------------------------------
+BOOL LLVOAvatar::loadLayersets()
+{
+ BOOL success = TRUE;
+ for (LLVOAvatarXmlInfo::layer_info_list_t::const_iterator layerset_iter = sAvatarXmlInfo->mLayerInfoList.begin();
+ layerset_iter != sAvatarXmlInfo->mLayerInfoList.end();
+ layerset_iter++)
+ {
+ // Construct a layerset for each one specified in avatar_lad.xml and initialize it as such.
+ LLTexLayerSetInfo *layerset_info = *layerset_iter;
+ layerset_info->createVisualParams(this);
+ }
+ return success;
+}
+
+//-----------------------------------------------------------------------------
// updateVisualParams()
//-----------------------------------------------------------------------------
void LLVOAvatar::updateVisualParams()
@@ -5710,9 +5079,9 @@ void LLVOAvatar::setPixelAreaAndAngle(LLAgent &agent)
}
// We always want to look good to ourselves
- if( mIsSelf )
+ if( isSelf() )
{
- mPixelArea = llmax( mPixelArea, F32(TEX_IMAGE_SIZE_SELF / 16) );
+ mPixelArea = llmax( mPixelArea, F32(getTexImageSize() / 16) );
}
}
@@ -5728,7 +5097,7 @@ BOOL LLVOAvatar::updateJointLODs()
F32 area_scale = 0.16f;
{
- if (mIsSelf)
+ if (isSelf())
{
if(gAgent.cameraCustomizeAvatar() || gAgent.cameraMouselook())
{
@@ -5857,7 +5226,7 @@ void LLVOAvatar::updateShadowFaces()
// this only does a ray straight down from the foot, as our client-side ray-tracing is very limited now
// but we make an explicit ray trace call in expectation of future improvements
resolveRayCollisionAgent(gAgent.getPosGlobalFromAgent(joint_world_pos),
- gAgent.getPosGlobalFromAgent(gSky.getSunDirection() + joint_world_pos), shadow_pos, normal);
+ gAgent.getPosGlobalFromAgent(gSky.getSunDirection() + joint_world_pos), shadow_pos, normal);
shadow_pos_agent = gAgent.getPosAgentFromGlobal(shadow_pos);
foot_height = joint_world_pos.mV[VZ] - shadow_pos_agent.mV[VZ];
@@ -5866,7 +5235,7 @@ void LLVOAvatar::updateShadowFaces()
// Render sprite
sprite.setNormal(normal);
- if (mIsSelf && gAgent.getCameraMode() == CAMERA_MODE_MOUSELOOK)
+ if (isSelf() && gAgent.getCameraMode() == CAMERA_MODE_MOUSELOOK)
{
sprite.setColor(0.f, 0.f, 0.f, 0.f);
}
@@ -5890,7 +5259,7 @@ void LLVOAvatar::updateShadowFaces()
// this only does a ray straight down from the foot, as our client-side ray-tracing is very limited now
// but we make an explicit ray trace call in expectation of future improvements
resolveRayCollisionAgent(gAgent.getPosGlobalFromAgent(joint_world_pos),
- gAgent.getPosGlobalFromAgent(gSky.getSunDirection() + joint_world_pos), shadow_pos, normal);
+ gAgent.getPosGlobalFromAgent(gSky.getSunDirection() + joint_world_pos), shadow_pos, normal);
shadow_pos_agent = gAgent.getPosAgentFromGlobal(shadow_pos);
foot_height = joint_world_pos.mV[VZ] - shadow_pos_agent.mV[VZ];
@@ -5899,7 +5268,7 @@ void LLVOAvatar::updateShadowFaces()
// Render sprite
sprite.setNormal(normal);
- if (mIsSelf && gAgent.getCameraMode() == CAMERA_MODE_MOUSELOOK)
+ if (isSelf() && gAgent.getCameraMode() == CAMERA_MODE_MOUSELOOK)
{
sprite.setColor(0.f, 0.f, 0.f, 0.f);
}
@@ -5924,9 +5293,9 @@ void LLVOAvatar::updateShadowFaces()
//-----------------------------------------------------------------------------
void LLVOAvatar::updateSexDependentLayerSets( BOOL set_by_user )
{
- invalidateComposite( mBakedTextureData[BAKED_HEAD].mTexLayerSet, set_by_user );
- invalidateComposite( mBakedTextureData[BAKED_UPPER].mTexLayerSet, set_by_user );
- invalidateComposite( mBakedTextureData[BAKED_LOWER].mTexLayerSet, set_by_user );
+ invalidateComposite( mBakedTextureDatas[BAKED_HEAD].mTexLayerSet, set_by_user );
+ invalidateComposite( mBakedTextureDatas[BAKED_UPPER].mTexLayerSet, set_by_user );
+ invalidateComposite( mBakedTextureDatas[BAKED_LOWER].mTexLayerSet, set_by_user );
updateMeshTextures();
}
@@ -5946,27 +5315,6 @@ void LLVOAvatar::hideSkirt()
mMeshLOD[MESH_ID_SKIRT]->setVisible(FALSE, TRUE);
}
-
-//-----------------------------------------------------------------------------
-// requestLayerSetUpdate()
-//-----------------------------------------------------------------------------
-void LLVOAvatar::requestLayerSetUpdate(ETextureIndex index )
-{
- /* switch(index)
- case LOCTEX_UPPER_BODYPAINT:
- case LOCTEX_UPPER_SHIRT:
- if( mUpperBodyLayerSet )
- mUpperBodyLayerSet->requestUpdate(); */
- const LLVOAvatarDictionary::TextureDictionaryEntry *texture_dict = LLVOAvatarDictionary::getInstance()->getTexture(index);
- if (!texture_dict->mIsLocalTexture || !texture_dict->mIsUsedByBakedTexture)
- return;
- const EBakedTextureIndex baked_index = texture_dict->mBakedTextureIndex;
- if (mBakedTextureData[baked_index].mTexLayerSet)
- {
- mBakedTextureData[baked_index].mTexLayerSet->requestUpdate();
- }
-}
-
void LLVOAvatar::setParent(LLViewerObject* parent)
{
if (parent == NULL)
@@ -6021,13 +5369,13 @@ LLViewerJointAttachment* LLVOAvatar::getTargetAttachmentPoint(LLViewerObject* vi
//-----------------------------------------------------------------------------
// attachObject()
//-----------------------------------------------------------------------------
-BOOL LLVOAvatar::attachObject(LLViewerObject *viewer_object)
+LLViewerJointAttachment *LLVOAvatar::attachObject(LLViewerObject *viewer_object)
{
LLViewerJointAttachment* attachment = getTargetAttachmentPoint(viewer_object);
if (!attachment || !attachment->addObject(viewer_object))
{
- return FALSE;
+ return 0;
}
if (viewer_object->isSelected())
@@ -6036,16 +5384,7 @@ BOOL LLVOAvatar::attachObject(LLViewerObject *viewer_object)
LLSelectMgr::getInstance()->updatePointAt();
}
- if (mIsSelf)
- {
- updateAttachmentVisibility(gAgent.getCameraMode());
-
- // Then make sure the inventory is in sync with the avatar.
- gInventory.addChangedMask( LLInventoryObserver::LABEL, attachment->getItemID() );
- gInventory.notifyObservers();
- }
-
- return TRUE;
+ return attachment;
}
//-----------------------------------------------------------------------------
@@ -6103,7 +5442,7 @@ BOOL LLVOAvatar::detachObject(LLViewerObject *viewer_object)
{
LLUUID item_id = attachment->getItemID();
attachment->removeObject(viewer_object);
- if (mIsSelf)
+ if (isSelf())
{
// the simulator should automatically handle
// permission revocation
@@ -6125,7 +5464,7 @@ BOOL LLVOAvatar::detachObject(LLViewerObject *viewer_object)
}
lldebugs << "Detaching object " << viewer_object->mID << " from " << attachment->getName() << llendl;
- if (mIsSelf)
+ if (isSelf())
{
// Then make sure the inventory is in sync with the avatar.
gInventory.addChangedMask(LLInventoryObserver::LABEL, item_id);
@@ -6135,7 +5474,6 @@ BOOL LLVOAvatar::detachObject(LLViewerObject *viewer_object)
}
}
-
return FALSE;
}
@@ -6165,7 +5503,7 @@ void LLVOAvatar::sitOnObject(LLViewerObject *sit_object)
stopMotion(ANIM_AGENT_BODY_NOISE);
- if (mIsSelf)
+ if (isSelf())
{
// Might be first sit
LLFirstUse::useSit();
@@ -6177,7 +5515,10 @@ void LLVOAvatar::sitOnObject(LLViewerObject *sit_object)
// make sure we are not trying to autopilot
gAgent.stopAutoPilot();
gAgent.setupSitCamera();
- if (gAgent.mForceMouselook) gAgent.changeCameraToMouselook();
+ if (gAgent.getForceMouselook())
+ {
+ gAgent.changeCameraToMouselook();
+ }
}
}
@@ -6227,7 +5568,7 @@ void LLVOAvatar::getOffObject()
startMotion(ANIM_AGENT_BODY_NOISE);
- if (mIsSelf)
+ if (isSelf())
{
LLQuaternion av_rot = gAgent.getFrameAgent().getQuaternion();
LLQuaternion obj_rot = sit_object ? sit_object->getRenderRotation() : LLQuaternion::DEFAULT;
@@ -6268,146 +5609,24 @@ LLVOAvatar* LLVOAvatar::findAvatarFromAttachment( LLViewerObject* obj )
return NULL;
}
-//-----------------------------------------------------------------------------
-// isWearingAttachment()
-//-----------------------------------------------------------------------------
-BOOL LLVOAvatar::isWearingAttachment( const LLUUID& inv_item_id )
-{
- for (attachment_map_t::iterator iter = mAttachmentPoints.begin();
- iter != mAttachmentPoints.end(); )
- {
- attachment_map_t::iterator curiter = iter++;
- LLViewerJointAttachment* attachment = curiter->second;
- if( attachment->getItemID() == inv_item_id )
- {
- return TRUE;
- }
- }
- return FALSE;
-}
-
-//-----------------------------------------------------------------------------
-// getWornAttachment()
-//-----------------------------------------------------------------------------
-LLViewerObject* LLVOAvatar::getWornAttachment( const LLUUID& inv_item_id )
-{
- for (attachment_map_t::iterator iter = mAttachmentPoints.begin();
- iter != mAttachmentPoints.end(); )
- {
- attachment_map_t::iterator curiter = iter++;
- LLViewerJointAttachment* attachment = curiter->second;
- if( attachment->getItemID() == inv_item_id )
- {
- return attachment->getObject();
- }
- }
- return NULL;
-}
-
-const std::string LLVOAvatar::getAttachedPointName(const LLUUID& inv_item_id)
-{
- for (attachment_map_t::iterator iter = mAttachmentPoints.begin();
- iter != mAttachmentPoints.end(); )
- {
- attachment_map_t::iterator curiter = iter++;
- LLViewerJointAttachment* attachment = curiter->second;
- if( attachment->getItemID() == inv_item_id )
- {
- return attachment->getName();
- }
- }
-
- return LLStringUtil::null;
-}
-
-
-//-----------------------------------------------------------------------------
-// static
-// onLocalTextureLoaded()
-//-----------------------------------------------------------------------------
-
-void LLVOAvatar::onLocalTextureLoaded( BOOL success, LLViewerImage *src_vi, LLImageRaw* src_raw, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata )
-{
- //llinfos << "onLocalTextureLoaded: " << src_vi->getID() << llendl;
-
- const LLUUID& src_id = src_vi->getID();
- LLAvatarTexData *data = (LLAvatarTexData *)userdata;
- if (success)
- {
- LLVOAvatar *self = (LLVOAvatar *)gObjectList.findObject(data->mAvatarID);
- if (self)
- {
- ETextureIndex index = data->mIndex;
- if (!self->isIndexLocalTexture(index)) return;
- LocalTextureData &local_tex_data = self->mLocalTextureData[index];
- if(!local_tex_data.mIsBakedReady &&
- local_tex_data.mImage.notNull() &&
- (local_tex_data.mImage->getID() == src_id) &&
- discard_level < local_tex_data.mDiscard)
- {
- local_tex_data.mDiscard = discard_level;
- if ( self->isSelf() && !gAgent.cameraCustomizeAvatar() )
- {
- self->requestLayerSetUpdate( index );
- }
- else if( self->isSelf() && gAgent.cameraCustomizeAvatar() )
- {
- LLVisualParamHint::requestHintUpdates();
- }
- self->updateMeshTextures();
- }
- }
- }
- else if (final)
- {
- LLVOAvatar *self = (LLVOAvatar *)gObjectList.findObject(data->mAvatarID);
- if (self)
- {
- ETextureIndex index = data->mIndex;
- if (!self->isIndexLocalTexture(index)) return;
- LocalTextureData &local_tex_data = self->mLocalTextureData[index];
- // Failed: asset is missing
- if(!local_tex_data.mIsBakedReady &&
- local_tex_data.mImage.notNull() &&
- local_tex_data.mImage->getID() == src_id)
- {
- local_tex_data.mDiscard = 0;
- self->requestLayerSetUpdate( index );
- self->updateMeshTextures();
- }
- }
- }
-
- if( final || !success )
- {
- delete data;
- }
-}
-
-void LLVOAvatar::updateComposites()
+// warning: order(N) not order(1)
+S32 LLVOAvatar::getAttachmentCount()
{
- for (U32 i = 0; i < mBakedTextureData.size(); i++)
- {
- if ( mBakedTextureData[i].mTexLayerSet
- && ((i != BAKED_SKIRT) || isWearingWearableType( WT_SKIRT )) )
- {
- mBakedTextureData[i].mTexLayerSet->updateComposite();
- }
- }
+ S32 count = mAttachmentPoints.size();
+ return count;
}
-LLColor4 LLVOAvatar::getGlobalColor( const std::string& color_name )
+LLColor4 LLVOAvatar::getGlobalColor( const std::string& color_name ) const
{
- if( color_name=="skin_color" && mTexSkinColor )
+ if (color_name=="skin_color" && mTexSkinColor)
{
return mTexSkinColor->getColor();
}
- else
- if( color_name=="hair_color" && mTexHairColor )
+ else if(color_name=="hair_color" && mTexHairColor)
{
return mTexHairColor->getColor();
}
- if( color_name=="eye_color" && mTexEyeColor )
+ if(color_name=="eye_color" && mTexEyeColor)
{
return mTexEyeColor->getColor();
}
@@ -6418,282 +5637,64 @@ LLColor4 LLVOAvatar::getGlobalColor( const std::string& color_name )
}
}
-
+// virtual
void LLVOAvatar::invalidateComposite( LLTexLayerSet* layerset, BOOL set_by_user )
{
- if( !layerset || !layerset->getUpdatesEnabled() )
- {
- return;
- }
-
- /* Debug spam. JC
- const char* layer_name = "";
- if (layerset == mHeadLayerSet)
- {
- layer_name = "head";
- }
- else if (layerset == mUpperBodyLayerSet)
- {
- layer_name = "upperbody";
- }
- else if (layerset == mLowerBodyLayerSet)
- {
- layer_name = "lowerbody";
- }
- else if (layerset == mEyesLayerSet)
- {
- layer_name = "eyes";
- }
- else if (layerset == mHairLayerSet)
- {
- layer_name = "hair";
- }
- else if (layerset == mSkirtLayerSet)
- {
- layer_name = "skirt";
- }
- else
- {
- layer_name = "unknown";
- }
- llinfos << "LLVOAvatar::invalidComposite() " << layer_name << llendl;
- */
-
- layerset->requestUpdate();
-
- if( set_by_user )
- {
- llassert( mIsSelf );
-
- ETextureIndex baked_te = getBakedTE( layerset );
- setTEImage( baked_te, gImageList.getImage(IMG_DEFAULT_AVATAR) );
- layerset->requestUpload();
- }
}
void LLVOAvatar::invalidateAll()
{
- for (U32 i = 0; i < mBakedTextureData.size(); i++)
- {
- invalidateComposite(mBakedTextureData[i].mTexLayerSet, TRUE);
- }
- updateMeshTextures();
}
-void LLVOAvatar::onGlobalColorChanged( LLTexGlobalColor* global_color, BOOL set_by_user )
+// virtual
+void LLVOAvatar::setCompositeUpdatesEnabled( BOOL b )
+{
+}
+
+void LLVOAvatar::onGlobalColorChanged(const LLTexGlobalColor* global_color, BOOL set_by_user )
{
- if( global_color == mTexSkinColor )
+ if (global_color == mTexSkinColor)
{
-// llinfos << "invalidateComposite cause: onGlobalColorChanged( skin color )" << llendl;
- invalidateComposite( mBakedTextureData[BAKED_HEAD].mTexLayerSet, set_by_user );
- invalidateComposite( mBakedTextureData[BAKED_UPPER].mTexLayerSet, set_by_user );
- invalidateComposite( mBakedTextureData[BAKED_LOWER].mTexLayerSet, set_by_user );
+ invalidateComposite( mBakedTextureDatas[BAKED_HEAD].mTexLayerSet, set_by_user );
+ invalidateComposite( mBakedTextureDatas[BAKED_UPPER].mTexLayerSet, set_by_user );
+ invalidateComposite( mBakedTextureDatas[BAKED_LOWER].mTexLayerSet, set_by_user );
}
- else
- if( global_color == mTexHairColor )
+ else if (global_color == mTexHairColor)
{
-// llinfos << "invalidateComposite cause: onGlobalColorChanged( hair color )" << llendl;
- invalidateComposite( mBakedTextureData[BAKED_HEAD].mTexLayerSet, set_by_user );
- invalidateComposite( mBakedTextureData[BAKED_HAIR].mTexLayerSet, set_by_user );
+ invalidateComposite( mBakedTextureDatas[BAKED_HEAD].mTexLayerSet, set_by_user );
+ invalidateComposite( mBakedTextureDatas[BAKED_HAIR].mTexLayerSet, set_by_user );
// ! BACKWARDS COMPATIBILITY !
// Fix for dealing with avatars from viewers that don't bake hair.
- if (!isTextureDefined(mBakedTextureData[BAKED_HAIR].mTextureIndex))
+ if (!isTextureDefined(mBakedTextureDatas[BAKED_HAIR].mTextureIndex))
{
LLColor4 color = mTexHairColor->getColor();
- for (U32 i = 0; i < mBakedTextureData[BAKED_HAIR].mMeshes.size(); i++)
+ for (U32 i = 0; i < mBakedTextureDatas[BAKED_HAIR].mMeshes.size(); i++)
{
- mBakedTextureData[BAKED_HAIR].mMeshes[i]->setColor( color.mV[VX], color.mV[VY], color.mV[VZ], color.mV[VW] );
+ mBakedTextureDatas[BAKED_HAIR].mMeshes[i]->setColor( color.mV[VX], color.mV[VY], color.mV[VZ], color.mV[VW] );
}
}
- }
- else
- if( global_color == mTexEyeColor )
+ }
+ else if (global_color == mTexEyeColor)
{
// llinfos << "invalidateComposite cause: onGlobalColorChanged( eyecolor )" << llendl;
- invalidateComposite( mBakedTextureData[BAKED_EYES].mTexLayerSet, set_by_user );
- }
- updateMeshTextures();
-}
-
-void LLVOAvatar::forceBakeAllTextures(bool slam_for_debug)
-{
- llinfos << "TAT: forced full rebake. " << llendl;
-
- for (U32 i = 0; i < mBakedTextureData.size(); i++)
- {
- ETextureIndex baked_index = mBakedTextureData[i].mTextureIndex;
- LLTexLayerSet* layer_set = getLayerSet(baked_index);
- if (layer_set)
- {
- if (slam_for_debug)
- {
- layer_set->setUpdatesEnabled(TRUE);
- layer_set->cancelUpload();
- }
-
- BOOL set_by_user = TRUE;
- invalidateComposite(layer_set, set_by_user);
- LLViewerStats::getInstance()->incStat(LLViewerStats::ST_TEX_REBAKES);
- }
- else
- {
- llwarns << "TAT: NO LAYER SET FOR " << (S32)baked_index << llendl;
- }
+ invalidateComposite( mBakedTextureDatas[BAKED_EYES].mTexLayerSet, set_by_user );
}
-
- // Don't know if this is needed
updateMeshTextures();
}
-
-// static
-void LLVOAvatar::processRebakeAvatarTextures(LLMessageSystem* msg, void**)
-{
- LLUUID texture_id;
- msg->getUUID("TextureData", "TextureID", texture_id);
-
- LLVOAvatar* self = gAgent.getAvatarObject();
- if (!self) return;
-
- // If this is a texture corresponding to one of our baked entries,
- // just rebake that layer set.
- BOOL found = FALSE;
-
- /* ETextureIndex baked_texture_indices[BAKED_NUM_INDICES] =
- TEX_HEAD_BAKED,
- TEX_UPPER_BAKED, */
- for (LLVOAvatarDictionary::texture_map_t::const_iterator iter = LLVOAvatarDictionary::getInstance()->getTextures().begin();
- iter != LLVOAvatarDictionary::getInstance()->getTextures().end();
- iter++)
- {
- const ETextureIndex index = iter->first;
- const LLVOAvatarDictionary::TextureDictionaryEntry *text_dict = iter->second;
- if (text_dict->mIsBakedTexture)
- {
- if (texture_id == self->getTEImage(index)->getID())
- {
- LLTexLayerSet* layer_set = self->getLayerSet(index);
- if (layer_set)
- {
- llinfos << "TAT: rebake - matched entry " << (S32)index << llendl;
- // Apparently set_by_user == force upload
- BOOL set_by_user = TRUE;
- self->invalidateComposite(layer_set, set_by_user);
- found = TRUE;
- LLViewerStats::getInstance()->incStat(LLViewerStats::ST_TEX_REBAKES);
- }
- }
- }
- }
-
- // If texture not found, rebake all entries.
- if (!found)
- {
- self->forceBakeAllTextures();
- }
- else
- {
- // Not sure if this is necessary, but forceBakeAllTextures() does it.
- self->updateMeshTextures();
- }
-}
-
-
-BOOL LLVOAvatar::getLocalTextureRaw(ETextureIndex index, LLImageRaw* image_raw)
-{
- if (!isIndexLocalTexture(index)) return FALSE;
-
- BOOL success = FALSE;
-
- if (getLocalTextureID(index) == IMG_DEFAULT_AVATAR)
- {
- success = TRUE;
- }
- else
- {
- LocalTextureData &local_tex_data = mLocalTextureData[index];
- if(local_tex_data.mImage->readBackRaw(-1, image_raw, false))
- {
- success = TRUE;
- }
- else
- {
- // No data loaded yet
- setLocalTexture( (ETextureIndex)index, getTEImage( index ), FALSE );
- }
- }
- return success;
-}
-
-BOOL LLVOAvatar::getLocalTextureGL(ETextureIndex index, LLImageGL** image_gl_pp)
-{
- if (!isIndexLocalTexture(index)) return FALSE;
-
- BOOL success = FALSE;
- *image_gl_pp = NULL;
-
- if (getLocalTextureID(index) == IMG_DEFAULT_AVATAR)
- {
- success = TRUE;
- }
- else
- {
- LocalTextureData &local_tex_data = mLocalTextureData[index];
- *image_gl_pp = local_tex_data.mImage;
- success = TRUE;
- }
-
- if( !success )
- {
-// llinfos << "getLocalTextureGL(" << index << ") had no data" << llendl;
- }
- return success;
-}
-
-const LLUUID& LLVOAvatar::getLocalTextureID(ETextureIndex index)
-{
- if (!isIndexLocalTexture(index)) return IMG_DEFAULT_AVATAR;
-
- if (mLocalTextureData[index].mImage.notNull())
- {
- return mLocalTextureData[index].mImage->getID();
- }
- else
- {
- return IMG_DEFAULT_AVATAR;
- }
-}
-
-// static
-void LLVOAvatar::dumpTotalLocalTextureByteCount()
-{
- S32 total_gl_bytes = 0;
- for (std::vector<LLCharacter*>::iterator iter = LLCharacter::sInstances.begin();
- iter != LLCharacter::sInstances.end(); ++iter)
- {
- LLVOAvatar* cur = (LLVOAvatar*) *iter;
- S32 gl_bytes = 0;
- cur->getLocalTextureByteCount(&gl_bytes );
- total_gl_bytes += gl_bytes;
- }
- llinfos << "Total Avatar LocTex GL:" << (total_gl_bytes/1024) << "KB" << llendl;
-}
-
-BOOL LLVOAvatar::isVisible()
+BOOL LLVOAvatar::isVisible() const
{
return mDrawable.notNull()
&& (mDrawable->isVisible() || mIsDummy);
}
-
// call periodically to keep isFullyLoaded up to date.
// returns true if the value has changed.
BOOL LLVOAvatar::updateIsFullyLoaded()
{
// a "heuristic" to determine if we have enough avatar data to render
// (to avoid rendering a "Ruth" - DEV-3168)
-
BOOL loading = FALSE;
// do we have a shape?
@@ -6702,48 +5703,18 @@ BOOL LLVOAvatar::updateIsFullyLoaded()
loading = TRUE;
}
- //
- if (mIsSelf)
- {
- if (!isTextureDefined(TEX_HAIR))
- {
- loading = TRUE;
- }
- }
- else if (!isTextureDefined(TEX_LOWER_BAKED) || !isTextureDefined(TEX_UPPER_BAKED) || !isTextureDefined(TEX_HEAD_BAKED))
+ if (!isTextureDefined(TEX_LOWER_BAKED) ||
+ !isTextureDefined(TEX_UPPER_BAKED) ||
+ !isTextureDefined(TEX_HEAD_BAKED))
{
loading = TRUE;
}
- // special case to keep nudity off orientation island -
- // this is fragilely dependent on the compositing system,
- // which gets available textures in the following order:
- //
- // 1) use the baked texture
- // 2) use the layerset
- // 3) use the previously baked texture
- //
- // on orientation island case (3) can show naked skin.
- // so we test for that here:
- //
- // if we were previously unloaded, and we don't have enough
- // texture info for our shirt/pants, stay unloaded:
- if (!mPreviousFullyLoaded)
- {
- if ((!isLocalTextureDataAvailable(mBakedTextureData[BAKED_LOWER].mTexLayerSet)) &&
- (!isTextureDefined(TEX_LOWER_BAKED)))
- {
- loading = TRUE;
- }
-
- if ((!isLocalTextureDataAvailable(mBakedTextureData[BAKED_UPPER].mTexLayerSet)) &&
- (!isTextureDefined(TEX_UPPER_BAKED)))
- {
- loading = TRUE;
- }
- }
+ return processFullyLoadedChange(loading);
+}
-
+BOOL LLVOAvatar::processFullyLoadedChange(bool loading)
+{
// we wait a little bit before giving the all clear,
// to let textures settle down
const F32 PAUSE = 1.f;
@@ -6767,8 +5738,7 @@ BOOL LLVOAvatar::updateIsFullyLoaded()
return changed;
}
-
-BOOL LLVOAvatar::isFullyLoaded()
+BOOL LLVOAvatar::isFullyLoaded() const
{
if (gSavedSettings.getBOOL("RenderUnloadedAvatar"))
return TRUE;
@@ -6780,177 +5750,11 @@ BOOL LLVOAvatar::isFullyLoaded()
//-----------------------------------------------------------------------------
// findMotion()
//-----------------------------------------------------------------------------
-LLMotion* LLVOAvatar::findMotion(const LLUUID& id)
+LLMotion* LLVOAvatar::findMotion(const LLUUID& id) const
{
return mMotionController.findMotion(id);
}
-// Counts the memory footprint of local textures.
-void LLVOAvatar::getLocalTextureByteCount( S32* gl_bytes )
-{
- *gl_bytes = 0;
- for( S32 i = 0; i < TEX_NUM_INDICES; i++ )
- {
- if (!isIndexLocalTexture((ETextureIndex)i)) continue;
- LLViewerImage* image_gl = mLocalTextureData[(ETextureIndex)i].mImage;
- if( image_gl )
- {
- S32 bytes = (S32)image_gl->getWidth() * image_gl->getHeight() * image_gl->getComponents();
-
- if( image_gl->getHasGLTexture() )
- {
- *gl_bytes += bytes;
- }
- }
- }
-}
-
-
-BOOL LLVOAvatar::bindScratchTexture( LLGLenum format )
-{
- U32 texture_bytes = 0;
- GLuint gl_name = getScratchTexName( format, &texture_bytes );
- if( gl_name )
- {
- gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, gl_name);
- stop_glerror();
-
- F32* last_bind_time = LLVOAvatar::sScratchTexLastBindTime.getIfThere( format );
- if( last_bind_time )
- {
- if( *last_bind_time != LLImageGL::sLastFrameTime )
- {
- *last_bind_time = LLImageGL::sLastFrameTime;
- LLImageGL::updateBoundTexMem(texture_bytes);
- }
- }
- else
- {
- LLImageGL::updateBoundTexMem(texture_bytes);
- LLVOAvatar::sScratchTexLastBindTime.addData( format, new F32(LLImageGL::sLastFrameTime) );
- }
-
-
- return TRUE;
- }
- else
- {
- return FALSE;
- }
-}
-
-
-LLGLuint LLVOAvatar::getScratchTexName( LLGLenum format, U32* texture_bytes )
-{
- S32 components;
- GLenum internal_format;
- switch( format )
- {
- case GL_LUMINANCE: components = 1; internal_format = GL_LUMINANCE8; break;
- case GL_ALPHA: components = 1; internal_format = GL_ALPHA8; break;
- case GL_COLOR_INDEX: components = 1; internal_format = GL_COLOR_INDEX8_EXT; break;
- case GL_LUMINANCE_ALPHA: components = 2; internal_format = GL_LUMINANCE8_ALPHA8; break;
- case GL_RGB: components = 3; internal_format = GL_RGB8; break;
- case GL_RGBA: components = 4; internal_format = GL_RGBA8; break;
- default: llassert(0); components = 4; internal_format = GL_RGBA8; break;
- }
-
- *texture_bytes = components * SCRATCH_TEX_WIDTH * SCRATCH_TEX_HEIGHT;
-
- if( LLVOAvatar::sScratchTexNames.checkData( format ) )
- {
- return *( LLVOAvatar::sScratchTexNames.getData( format ) );
- }
- else
- {
-
- LLGLSUIDefault gls_ui;
-
- U32 name = 0;
- LLImageGL::generateTextures(1, &name );
- stop_glerror();
-
- gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, name);
- stop_glerror();
-
- LLImageGL::setManualImage(
- GL_TEXTURE_2D, 0, internal_format,
- SCRATCH_TEX_WIDTH, SCRATCH_TEX_HEIGHT,
- format, GL_UNSIGNED_BYTE, NULL );
- stop_glerror();
-
- gGL.getTexUnit(0)->setTextureFilteringOption(LLTexUnit::TFO_BILINEAR);
- gGL.getTexUnit(0)->setTextureAddressMode(LLTexUnit::TAM_CLAMP);
- stop_glerror();
-
- gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
- stop_glerror();
-
- LLVOAvatar::sScratchTexNames.addData( format, new LLGLuint( name ) );
-
- LLVOAvatar::sScratchTexBytes += *texture_bytes;
- LLImageGL::sGlobalTextureMemory += *texture_bytes;
- return name;
- }
-}
-
-
-
-//-----------------------------------------------------------------------------
-// setLocalTextureTE()
-//-----------------------------------------------------------------------------
-void LLVOAvatar::setLocTexTE( U8 te, LLViewerImage* image, BOOL set_by_user )
-{
- if( !mIsSelf )
- {
- llassert( 0 );
- return;
- }
-
- if( te >= TEX_NUM_INDICES )
- {
- llassert(0);
- return;
- }
-
- if( getTEImage( te )->getID() == image->getID() )
- {
- return;
- }
-
- if (isIndexBakedTexture((ETextureIndex)te))
- {
- llassert(0);
- return;
- }
-
- LLTexLayerSet* layer_set = getLayerSet((ETextureIndex)te);
- if (layer_set)
- {
- invalidateComposite(layer_set, set_by_user);
- }
-
- setTEImage( te, image );
- updateMeshTextures();
-
- if( gAgent.cameraCustomizeAvatar() )
- {
- LLVisualParamHint::requestHintUpdates();
- }
-}
-
-void LLVOAvatar::setupComposites()
-{
- for (U32 i = 0; i < mBakedTextureData.size(); i++)
- {
- bool layer_baked = isTextureDefined(mBakedTextureData[i].mTextureIndex);
- if (mBakedTextureData[i].mTexLayerSet)
- {
- mBakedTextureData[i].mTexLayerSet->setUpdatesEnabled( !layer_baked );
- }
- }
-}
-
//-----------------------------------------------------------------------------
// updateMeshTextures()
// Uses the current TE values to set the meshes' and layersets' textures.
@@ -6963,25 +5767,25 @@ void LLVOAvatar::updateMeshTextures()
// if user has never specified a texture, assign the default
for (U32 i=0; i < getNumTEs(); i++)
{
- const LLViewerImage* te_image = getTEImage(i);
+ const LLViewerImage* te_image = getImage(i);
if(!te_image || te_image->getID().isNull() || (te_image->getID() == IMG_DEFAULT))
{
- setTEImage(i, gImageList.getImage(i == TEX_HAIR ? IMG_DEFAULT : IMG_DEFAULT_AVATAR)); // IMG_DEFAULT_AVATAR = a special texture that's never rendered.
+ setImage(i, gImageList.getImage(i == TEX_HAIR ? IMG_DEFAULT : IMG_DEFAULT_AVATAR)); // IMG_DEFAULT_AVATAR = a special texture that's never rendered.
}
}
- const BOOL self_customizing = mIsSelf && gAgent.cameraCustomizeAvatar(); // During face edit mode, we don't use baked textures
- const BOOL other_culled = !mIsSelf && mCulled;
+ const BOOL self_customizing = isSelf() && gAgent.cameraCustomizeAvatar(); // During face edit mode, we don't use baked textures
+ const BOOL other_culled = !isSelf() && mCulled;
- std::vector<bool> is_layer_baked;
- is_layer_baked.resize(mBakedTextureData.size(), false);
+ std::vector<BOOL> is_layer_baked;
+ is_layer_baked.resize(mBakedTextureDatas.size(), false);
- std::vector<bool> use_lkg_baked_layer; // lkg = "last known good"
- use_lkg_baked_layer.resize(mBakedTextureData.size(), false);
+ std::vector<BOOL> use_lkg_baked_layer; // lkg = "last known good"
+ use_lkg_baked_layer.resize(mBakedTextureDatas.size(), false);
- for (U32 i=0; i < mBakedTextureData.size(); i++)
+ for (U32 i=0; i < mBakedTextureDatas.size(); i++)
{
- is_layer_baked[i] = isTextureDefined(mBakedTextureData[i].mTextureIndex);
+ is_layer_baked[i] = isTextureDefined(mBakedTextureDatas[i].mTextureIndex);
if (!other_culled)
{
@@ -6989,21 +5793,21 @@ void LLVOAvatar::updateMeshTextures()
// use the last-known good baked texture until it finish the first
// render of the new layerset.
use_lkg_baked_layer[i] = (!is_layer_baked[i]
- && (mBakedTextureData[i].mLastTextureIndex != IMG_DEFAULT_AVATAR)
- && mBakedTextureData[i].mTexLayerSet
- && !mBakedTextureData[i].mTexLayerSet->getComposite()->isInitialized());
+ && (mBakedTextureDatas[i].mLastTextureIndex != IMG_DEFAULT_AVATAR)
+ && mBakedTextureDatas[i].mTexLayerSet
+ && !mBakedTextureDatas[i].mTexLayerSet->getComposite()->isInitialized());
if (use_lkg_baked_layer[i])
{
- mBakedTextureData[i].mTexLayerSet->setUpdatesEnabled(TRUE);
+ mBakedTextureDatas[i].mTexLayerSet->setUpdatesEnabled(TRUE);
}
}
else
{
use_lkg_baked_layer[i] = (!is_layer_baked[i]
- && mBakedTextureData[i].mLastTextureIndex != IMG_DEFAULT_AVATAR);
- if (mBakedTextureData[i].mTexLayerSet)
+ && mBakedTextureDatas[i].mLastTextureIndex != IMG_DEFAULT_AVATAR);
+ if (mBakedTextureDatas[i].mTexLayerSet)
{
- mBakedTextureData[i].mTexLayerSet->destroyComposite();
+ mBakedTextureDatas[i].mTexLayerSet->destroyComposite();
}
}
@@ -7016,27 +5820,28 @@ void LLVOAvatar::updateMeshTextures()
llwarns << "updateMeshTextures: invalid host for object: " << getID() << llendl;
}
- for (U32 i=0; i < mBakedTextureData.size(); i++)
+ for (U32 i=0; i < mBakedTextureDatas.size(); i++)
{
if (use_lkg_baked_layer[i] && !self_customizing )
{
- LLViewerImage* baked_img = gImageList.getImageFromHost( mBakedTextureData[i].mLastTextureIndex, target_host );
- for (U32 k=0; k < mBakedTextureData[i].mMeshes.size(); k++)
+ LLViewerImage* baked_img = gImageList.getImageFromHost( mBakedTextureDatas[i].mLastTextureIndex, target_host );
+ mBakedTextureDatas[i].mIsUsed = TRUE;
+ for (U32 k=0; k < mBakedTextureDatas[i].mMeshes.size(); k++)
{
- mBakedTextureData[i].mMeshes[k]->setTexture( baked_img );
+ mBakedTextureDatas[i].mMeshes[k]->setTexture( baked_img );
}
}
else if (!self_customizing && is_layer_baked[i])
{
- LLViewerImage* baked_img = getTEImage( mBakedTextureData[i].mTextureIndex );
- if( baked_img->getID() == mBakedTextureData[i].mLastTextureIndex )
+ LLViewerImage* baked_img = getImage( mBakedTextureDatas[i].mTextureIndex );
+ if( baked_img->getID() == mBakedTextureDatas[i].mLastTextureIndex )
{
// Even though the file may not be finished loading, we'll consider it loaded and use it (rather than doing compositing).
useBakedTexture( baked_img->getID() );
}
else
{
- mBakedTextureData[i].mIsLoaded = FALSE;
+ mBakedTextureDatas[i].mIsLoaded = FALSE;
if ( (i == BAKED_HEAD) || (i == BAKED_UPPER) || (i == BAKED_LOWER) )
{
baked_img->setLoadedCallback(onBakedTextureMasksLoaded, MORPH_MASK_REQUESTED_DISCARD, TRUE, TRUE, new LLTextureMaskData( mID ));
@@ -7044,136 +5849,63 @@ void LLVOAvatar::updateMeshTextures()
baked_img->setLoadedCallback(onBakedTextureLoaded, SWITCH_TO_BAKED_DISCARD, FALSE, FALSE, new LLUUID( mID ) );
}
}
- else if (mBakedTextureData[i].mTexLayerSet
+ else if (mBakedTextureDatas[i].mTexLayerSet
&& !other_culled
- && (i != BAKED_HAIR || is_layer_baked[i] || mIsSelf)) // ! BACKWARDS COMPATIBILITY ! workaround for old viewers.
+ && (i != BAKED_HAIR || is_layer_baked[i] || isSelf())) // ! BACKWARDS COMPATIBILITY ! workaround for old viewers.
{
- mBakedTextureData[i].mTexLayerSet->createComposite();
- mBakedTextureData[i].mTexLayerSet->setUpdatesEnabled( TRUE );
- for (U32 k=0; k < mBakedTextureData[i].mMeshes.size(); k++)
+ mBakedTextureDatas[i].mTexLayerSet->createComposite();
+ mBakedTextureDatas[i].mTexLayerSet->setUpdatesEnabled( TRUE );
+ mBakedTextureDatas[i].mIsUsed = FALSE;
+ for (U32 k=0; k < mBakedTextureDatas[i].mMeshes.size(); k++)
{
- mBakedTextureData[i].mMeshes[k]->setLayerSet( mBakedTextureData[i].mTexLayerSet );
+ mBakedTextureDatas[i].mMeshes[k]->setLayerSet( mBakedTextureDatas[i].mTexLayerSet );
}
}
}
// ! BACKWARDS COMPATIBILITY !
// Workaround for viewing avatars from old viewers that haven't baked hair textures.
- // if (!isTextureDefined(mBakedTextureData[BAKED_HAIR].mTextureIndex))
- if (!is_layer_baked[BAKED_HAIR])
+ if (!is_layer_baked[BAKED_HAIR] || self_customizing)
{
const LLColor4 color = mTexHairColor ? mTexHairColor->getColor() : LLColor4(1,1,1,1);
- LLViewerImage* hair_img = getTEImage( TEX_HAIR );
- for (U32 i = 0; i < mBakedTextureData[BAKED_HAIR].mMeshes.size(); i++)
+ LLViewerImage* hair_img = getImage( TEX_HAIR );
+ for (U32 i = 0; i < mBakedTextureDatas[BAKED_HAIR].mMeshes.size(); i++)
{
- mBakedTextureData[BAKED_HAIR].mMeshes[i]->setColor( color.mV[VX], color.mV[VY], color.mV[VZ], color.mV[VW] );
- mBakedTextureData[BAKED_HAIR].mMeshes[i]->setTexture( hair_img );
+ mBakedTextureDatas[BAKED_HAIR].mMeshes[i]->setColor( color.mV[VX], color.mV[VY], color.mV[VZ], color.mV[VW] );
+ mBakedTextureDatas[BAKED_HAIR].mMeshes[i]->setTexture( hair_img );
}
- mHasBakedHair = FALSE;
}
- else
- {
- for (U32 i = 0; i < mBakedTextureData[BAKED_HAIR].mMeshes.size(); i++)
- {
- mBakedTextureData[BAKED_HAIR].mMeshes[i]->setColor( 1.f, 1.f, 1.f, 1.f );
- }
- mHasBakedHair = TRUE;
- }
- /* // Head
- BOOL head_baked_ready = (is_layer_baked[BAKED_HEAD] && mBakedTextureData[BAKED_HEAD].mIsLoaded) || other_culled;
- setLocalTexture( TEX_HEAD_BODYPAINT, getTEImage( TEX_HEAD_BODYPAINT ), head_baked_ready ); */
- for (LLVOAvatarDictionary::baked_map_t::const_iterator baked_iter = LLVOAvatarDictionary::getInstance()->getBakedTextures().begin();
+ // Turn on alpha masking correctly for yourself and other avatars on 1.23+
+ mSupportsAlphaLayers = isSelf() || is_layer_baked[BAKED_HAIR];
+
+ for (LLVOAvatarDictionary::BakedTextures::const_iterator baked_iter = LLVOAvatarDictionary::getInstance()->getBakedTextures().begin();
baked_iter != LLVOAvatarDictionary::getInstance()->getBakedTextures().end();
baked_iter++)
{
const EBakedTextureIndex baked_index = baked_iter->first;
- const LLVOAvatarDictionary::BakedDictionaryEntry *baked_dict = baked_iter->second;
+ const LLVOAvatarDictionary::BakedEntry *baked_dict = baked_iter->second;
for (texture_vec_t::const_iterator local_tex_iter = baked_dict->mLocalTextures.begin();
local_tex_iter != baked_dict->mLocalTextures.end();
local_tex_iter++)
{
const ETextureIndex texture_index = *local_tex_iter;
- const BOOL is_baked_ready = (is_layer_baked[baked_index] && mBakedTextureData[baked_index].mIsLoaded) || other_culled;
- setLocalTexture(texture_index, getTEImage(texture_index), is_baked_ready );
+ const BOOL is_baked_ready = (is_layer_baked[baked_index] && mBakedTextureDatas[baked_index].mIsLoaded) || other_culled;
+ setLocalTexture(texture_index, getImage(texture_index), is_baked_ready );
}
}
removeMissingBakedTextures();
}
+// virtual
//-----------------------------------------------------------------------------
// setLocalTexture()
//-----------------------------------------------------------------------------
-void LLVOAvatar::setLocalTexture( ETextureIndex index, LLViewerImage* tex, BOOL baked_version_ready )
-{
- if (!isIndexLocalTexture(index)) return;
-
- S32 desired_discard = mIsSelf ? 0 : 2;
- LocalTextureData &local_tex_data = mLocalTextureData[index];
- if (!baked_version_ready)
- {
- if (tex != local_tex_data.mImage || local_tex_data.mIsBakedReady)
- {
- local_tex_data.mDiscard = MAX_DISCARD_LEVEL+1;
- }
- if (tex->getID() != IMG_DEFAULT_AVATAR)
- {
- if (local_tex_data.mDiscard > desired_discard)
- {
- S32 tex_discard = tex->getDiscardLevel();
- if (tex_discard >= 0 && tex_discard <= desired_discard)
- {
- local_tex_data.mDiscard = tex_discard;
- if( mIsSelf && !gAgent.cameraCustomizeAvatar() )
- {
- requestLayerSetUpdate( index );
- }
- else if( mIsSelf && gAgent.cameraCustomizeAvatar() )
- {
- LLVisualParamHint::requestHintUpdates();
- }
- }
- else
- {
- tex->setLoadedCallback( onLocalTextureLoaded, desired_discard, TRUE, FALSE, new LLAvatarTexData(getID(), index) );
- }
- }
- tex->setMinDiscardLevel(desired_discard);
- }
- }
- local_tex_data.mIsBakedReady = baked_version_ready;
- local_tex_data.mImage = tex;
-}
-
-//-----------------------------------------------------------------------------
-// requestLayerSetUploads()
-//-----------------------------------------------------------------------------
-void LLVOAvatar::requestLayerSetUploads()
-{
- for (U32 i = 0; i < mBakedTextureData.size(); i++)
- {
- bool layer_baked = isTextureDefined(mBakedTextureData[i].mTextureIndex);
- if ( !layer_baked && mBakedTextureData[i].mTexLayerSet )
- {
- mBakedTextureData[i].mTexLayerSet->requestUpload();
- }
- }
-}
-
-
-//-----------------------------------------------------------------------------
-// setCompositeUpdatesEnabled()
-//-----------------------------------------------------------------------------
-void LLVOAvatar::setCompositeUpdatesEnabled( BOOL b )
+void LLVOAvatar::setLocalTexture(ETextureIndex type, LLViewerImage* tex, BOOL baked_version_exists, U32 index)
{
- for (U32 i = 0; i < mBakedTextureData.size(); i++)
- {
- if (mBakedTextureData[i].mTexLayerSet )
- {
- mBakedTextureData[i].mTexLayerSet->setUpdatesEnabled( b );
- }
- }
+ // invalid for anyone but self
+ llassert(0);
}
void LLVOAvatar::addChat(const LLChat& chat)
@@ -7205,184 +5937,85 @@ void LLVOAvatar::clearChat()
mChats.clear();
}
-S32 LLVOAvatar::getLocalDiscardLevel( ETextureIndex index )
+// adds a morph mask to the appropriate baked texture structure
+void LLVOAvatar::addMaskedMorph(EBakedTextureIndex index, LLPolyMorphTarget* morph_target, BOOL invert, std::string layer)
{
- if (!isIndexLocalTexture(index)) return FALSE;
-
- LocalTextureData &local_tex_data = mLocalTextureData[index];
- if (index >= 0
- && getLocalTextureID(index) != IMG_DEFAULT_AVATAR
- && !local_tex_data.mImage->isMissingAsset())
- {
- return local_tex_data.mImage->getDiscardLevel();
- }
- else
+ if (index < BAKED_NUM_INDICES)
{
- // We don't care about this (no image associated with the layer) treat as fully loaded.
- return 0;
+ LLMaskedMorph *morph = new LLMaskedMorph(morph_target, invert, layer);
+ mBakedTextureDatas[index].mMaskedMorphs.push_front(morph);
}
}
-//-----------------------------------------------------------------------------
-// isLocalTextureDataFinal()
-// Returns true if the highest quality discard level exists for every texture
-// in the layerset.
-//-----------------------------------------------------------------------------
-BOOL LLVOAvatar::isLocalTextureDataFinal( LLTexLayerSet* layerset )
+// invalidates morph masks for a given layer. Don't pass a parameter to invalidate all morph masks.
+void LLVOAvatar::invalidateMorphMasks(LLVOAvatarDefines::EBakedTextureIndex index)
{
- for (U32 i = 0; i < mBakedTextureData.size(); i++)
- {
- if (layerset == mBakedTextureData[i].mTexLayerSet)
- {
- const LLVOAvatarDictionary::BakedDictionaryEntry *baked_dict = LLVOAvatarDictionary::getInstance()->getBakedTexture((EBakedTextureIndex)i);
- for (texture_vec_t::const_iterator local_tex_iter = baked_dict->mLocalTextures.begin();
- local_tex_iter != baked_dict->mLocalTextures.end();
- local_tex_iter++)
- {
- if (getLocalDiscardLevel(*local_tex_iter) != 0)
- {
- return FALSE;
- }
- }
- return TRUE;
- }
- }
-
- llassert(0);
- return FALSE;
+ setMorphMasksValid(FALSE, index);
}
-//-----------------------------------------------------------------------------
-// isLocalTextureDataAvailable()
-// Returns true if at least the lowest quality discard level exists for every texture
-// in the layerset.
-//-----------------------------------------------------------------------------
-BOOL LLVOAvatar::isLocalTextureDataAvailable( LLTexLayerSet* layerset )
+// updates morph masks to be a value for a given layer. Don't pass an argument to set value for all morph masks
+void LLVOAvatar::setMorphMasksValid(BOOL new_status, LLVOAvatarDefines::EBakedTextureIndex index)
{
- /* if( layerset == mBakedTextureData[BAKED_HEAD].mTexLayerSet )
- return getLocalDiscardLevel( TEX_HEAD_BODYPAINT ) >= 0; */
- for (LLVOAvatarDictionary::baked_map_t::const_iterator baked_iter = LLVOAvatarDictionary::getInstance()->getBakedTextures().begin();
- baked_iter != LLVOAvatarDictionary::getInstance()->getBakedTextures().end();
- baked_iter++)
+ if (index == BAKED_NUM_INDICES)
{
- const EBakedTextureIndex baked_index = baked_iter->first;
- if (layerset == mBakedTextureData[baked_index].mTexLayerSet)
+ for (U8 tex = 0; tex < (U8)BAKED_NUM_INDICES; tex++)
{
- bool ret = true;
- const LLVOAvatarDictionary::BakedDictionaryEntry *baked_dict = baked_iter->second;
- for (texture_vec_t::const_iterator local_tex_iter = baked_dict->mLocalTextures.begin();
- local_tex_iter != baked_dict->mLocalTextures.end();
- local_tex_iter++)
- {
- ret &= (getLocalDiscardLevel(*local_tex_iter) >= 0);
- }
- return ret;
+ mBakedTextureDatas[tex].mMorphMasksValid = new_status;
}
- }
- llassert(0);
- return FALSE;
-}
-
-
-//-----------------------------------------------------------------------------
-// getBakedTE()
-// Used by the LayerSet. (Layer sets don't in general know what textures depend on them.)
-//-----------------------------------------------------------------------------
-ETextureIndex LLVOAvatar::getBakedTE( LLTexLayerSet* layerset )
-{
- for (U32 i = 0; i < mBakedTextureData.size(); i++)
+ }
+ else if (index < BAKED_NUM_INDICES)
{
- if (layerset == mBakedTextureData[i].mTexLayerSet )
- {
- return mBakedTextureData[i].mTextureIndex;
- }
+ mBakedTextureDatas[index].mMorphMasksValid = new_status;
}
-
- llassert(0);
- return TEX_HEAD_BAKED;
}
-//-----------------------------------------------------------------------------
-// setNewBakedTexture()
-// A new baked texture has been successfully uploaded and we can start using it now.
-//-----------------------------------------------------------------------------
-void LLVOAvatar::setNewBakedTexture( ETextureIndex te, const LLUUID& uuid )
+// returns TRUE if morph masks are present and not valid for a given baked texture, FALSE otherwise
+BOOL LLVOAvatar::morphMaskNeedsUpdate(LLVOAvatarDefines::EBakedTextureIndex index)
{
- // Baked textures live on other sims.
- LLHost target_host = getObjectHost();
- setTEImage( te, gImageList.getImageFromHost( uuid, target_host ) );
- updateMeshTextures();
- dirtyMesh();
-
-
- LLVOAvatar::cullAvatarsByPixelArea();
-
- /* switch(te)
- case TEX_HEAD_BAKED:
- llinfos << "New baked texture: HEAD" << llendl; */
- const LLVOAvatarDictionary::TextureDictionaryEntry *text_dict = LLVOAvatarDictionary::getInstance()->getTexture(te);
- if (text_dict->mIsBakedTexture)
+ if (index >= BAKED_NUM_INDICES)
{
- llinfos << "New baked texture: " << text_dict->mName << " UUID: " << uuid <<llendl;
- mBakedTextureData[text_dict->mBakedTextureIndex].mTexLayerSet->requestUpdate();
- }
- else
- {
- llwarns << "New baked texture: unknown te " << te << llendl;
+ return FALSE;
}
-
- // dumpAvatarTEs( "setNewBakedTexture() send" );
- // RN: throttle uploads
- if (!hasPendingBakedUploads())
+
+ if (!mBakedTextureDatas[index].mMaskedMorphs.empty() && !mBakedTextureDatas[index].mMorphMasksValid)
{
- gAgent.sendAgentSetAppearance();
+ return TRUE;
}
+
+ return FALSE;
}
-bool LLVOAvatar::hasPendingBakedUploads()
+void LLVOAvatar::applyMorphMask(U8* tex_data, S32 width, S32 height, S32 num_components, LLVOAvatarDefines::EBakedTextureIndex index)
{
- for (U32 i = 0; i < mBakedTextureData.size(); i++)
+ if (index >= BAKED_NUM_INDICES)
{
- bool upload_pending = (mBakedTextureData[i].mTexLayerSet && mBakedTextureData[i].mTexLayerSet->getComposite()->uploadPending());
- if (upload_pending)
- {
- return true;
- }
+ llwarns << "invalid baked texture index passed to applyMorphMask" << llendl;
+ return;
}
- return false;
-}
-
-//-----------------------------------------------------------------------------
-// setCachedBakedTexture()
-// A baked texture id was received from a cache query, make it active
-//-----------------------------------------------------------------------------
-void LLVOAvatar::setCachedBakedTexture( ETextureIndex te, const LLUUID& uuid )
-{
- setTETexture( te, uuid );
- /* switch(te)
- case TEX_HEAD_BAKED:
- if( mHeadLayerSet )
- mHeadLayerSet->cancelUpload(); */
- for (U32 i = 0; i < mBakedTextureData.size(); i++)
+ for (morph_list_t::const_iterator iter = mBakedTextureDatas[index].mMaskedMorphs.begin();
+ iter != mBakedTextureDatas[index].mMaskedMorphs.end(); iter++)
{
- if ( mBakedTextureData[i].mTextureIndex == te && mBakedTextureData[i].mTexLayerSet)
- {
- mBakedTextureData[i].mTexLayerSet->cancelUpload();
- }
+ const LLMaskedMorph* maskedMorph = (*iter);
+ maskedMorph->mMorphTarget->applyMask(tex_data, width, height, num_components, maskedMorph->mInvert);
}
}
+
//-----------------------------------------------------------------------------
-// releaseUnneccesaryTextures()
+// releaseComponentTextures()
// release any component texture UUIDs for which we have a baked texture
+// ! BACKWARDS COMPATIBILITY !
+// This is only called for non-self avatars, it can be taken out once component
+// textures aren't communicated by non-self avatars.
//-----------------------------------------------------------------------------
-void LLVOAvatar::releaseUnnecessaryTextures()
+void LLVOAvatar::releaseComponentTextures()
{
- // Backwards Compat: detect if the baked hair texture actually wasn't sent, and if so set to default
- if (isTextureDefined(TEX_HAIR_BAKED) && getTEImage(TEX_HAIR_BAKED)->getID() == getTEImage(TEX_SKIRT_BAKED)->getID())
+ // ! BACKWARDS COMPATIBILITY !
+ // Detect if the baked hair texture actually wasn't sent, and if so set to default
+ if (isTextureDefined(TEX_HAIR_BAKED) && getImage(TEX_HAIR_BAKED)->getID() == getImage(TEX_SKIRT_BAKED)->getID())
{
- if (getTEImage(TEX_HAIR_BAKED)->getID() != IMG_INVISIBLE)
+ if (getImage(TEX_HAIR_BAKED)->getID() != IMG_INVISIBLE)
{
// Regression case of messaging system. Expected 21 textures, received 20. last texture is not valid so set to default
setTETexture(TEX_HAIR_BAKED, IMG_DEFAULT_AVATAR);
@@ -7391,7 +6024,7 @@ void LLVOAvatar::releaseUnnecessaryTextures()
for (U8 baked_index = 0; baked_index < BAKED_NUM_INDICES; baked_index++)
{
- const LLVOAvatarDictionary::BakedDictionaryEntry * bakedDicEntry = LLVOAvatarDictionary::getInstance()->getBakedTexture((EBakedTextureIndex)baked_index);
+ const LLVOAvatarDictionary::BakedEntry * bakedDicEntry = LLVOAvatarDictionary::getInstance()->getBakedTexture((EBakedTextureIndex)baked_index);
// skip if this is a skirt and av is not wearing one, or if we don't have a baked texture UUID
if (!isTextureDefined(bakedDicEntry->mTextureIndex)
&& ( (baked_index != BAKED_SKIRT) || isWearingWearableType(WT_SKIRT) ))
@@ -7407,111 +6040,68 @@ void LLVOAvatar::releaseUnnecessaryTextures()
}
}
-//-----------------------------------------------------------------------------
-// static
-// onCustomizeStart()
-//-----------------------------------------------------------------------------
-void LLVOAvatar::onCustomizeStart()
-{
- // We're no longer doing any baking or invalidating on entering
- // appearance editing mode. Leaving function in place in case
- // further changes require us to do something at this point - Nyx
-}
-
-//-----------------------------------------------------------------------------
-// static
-// onCustomizeEnd()
-//-----------------------------------------------------------------------------
-void LLVOAvatar::onCustomizeEnd()
-{
- LLVOAvatar *avatarp = gAgent.getAvatarObject();
- if (avatarp)
- {
- avatarp->invalidateAll();
- avatarp->requestLayerSetUploads();
- }
-}
-
-void LLVOAvatar::onChangeSelfInvisible(BOOL newvalue)
-{
- LLVOAvatar *avatarp = gAgent.getAvatarObject();
- if (avatarp)
- {
- if (newvalue)
- {
- // we have just requested to set the avatar's baked textures to invisible
- avatarp->setInvisible(TRUE);
- }
- else
- {
- avatarp->setInvisible(FALSE);
- }
- }
-}
-
-
BOOL LLVOAvatar::teToColorParams( ETextureIndex te, const char* param_name[3] )
{
switch( te )
{
- case TEX_UPPER_SHIRT:
- param_name[0] = "shirt_red";
- param_name[1] = "shirt_green";
- param_name[2] = "shirt_blue";
- break;
-
- case TEX_LOWER_PANTS:
- param_name[0] = "pants_red";
- param_name[1] = "pants_green";
- param_name[2] = "pants_blue";
- break;
-
- case TEX_LOWER_SHOES:
- param_name[0] = "shoes_red";
- param_name[1] = "shoes_green";
- param_name[2] = "shoes_blue";
- break;
-
- case TEX_LOWER_SOCKS:
- param_name[0] = "socks_red";
- param_name[1] = "socks_green";
- param_name[2] = "socks_blue";
- break;
-
- case TEX_UPPER_JACKET:
- case TEX_LOWER_JACKET:
- param_name[0] = "jacket_red";
- param_name[1] = "jacket_green";
- param_name[2] = "jacket_blue";
- break;
-
- case TEX_UPPER_GLOVES:
- param_name[0] = "gloves_red";
- param_name[1] = "gloves_green";
- param_name[2] = "gloves_blue";
- break;
-
- case TEX_UPPER_UNDERSHIRT:
- param_name[0] = "undershirt_red";
- param_name[1] = "undershirt_green";
- param_name[2] = "undershirt_blue";
- break;
+ case TEX_UPPER_SHIRT:
+ param_name[0] = "shirt_red";
+ param_name[1] = "shirt_green";
+ param_name[2] = "shirt_blue";
+ break;
+
+ case TEX_LOWER_PANTS:
+ param_name[0] = "pants_red";
+ param_name[1] = "pants_green";
+ param_name[2] = "pants_blue";
+ break;
+
+ case TEX_LOWER_SHOES:
+ param_name[0] = "shoes_red";
+ param_name[1] = "shoes_green";
+ param_name[2] = "shoes_blue";
+ break;
+
+ case TEX_LOWER_SOCKS:
+ param_name[0] = "socks_red";
+ param_name[1] = "socks_green";
+ param_name[2] = "socks_blue";
+ break;
+
+ case TEX_UPPER_JACKET:
+ case TEX_LOWER_JACKET:
+ param_name[0] = "jacket_red";
+ param_name[1] = "jacket_green";
+ param_name[2] = "jacket_blue";
+ break;
+
+ case TEX_UPPER_GLOVES:
+ param_name[0] = "gloves_red";
+ param_name[1] = "gloves_green";
+ param_name[2] = "gloves_blue";
+ break;
+
+ case TEX_UPPER_UNDERSHIRT:
+ param_name[0] = "undershirt_red";
+ param_name[1] = "undershirt_green";
+ param_name[2] = "undershirt_blue";
+ break;
- case TEX_LOWER_UNDERPANTS:
- param_name[0] = "underpants_red";
- param_name[1] = "underpants_green";
- param_name[2] = "underpants_blue";
- break;
-
- case TEX_SKIRT:
- param_name[0] = "skirt_red";
- param_name[1] = "skirt_green";
- param_name[2] = "skirt_blue";
- break;
-
- default:
- llassert(0);
- return FALSE;
+ case TEX_LOWER_UNDERPANTS:
+ param_name[0] = "underpants_red";
+ param_name[1] = "underpants_green";
+ param_name[2] = "underpants_blue";
+ break;
+
+ case TEX_SKIRT:
+ param_name[0] = "skirt_red";
+ param_name[1] = "skirt_green";
+ param_name[2] = "skirt_blue";
+ break;
+
+ default:
+ llassert(0);
+ return FALSE;
}
return TRUE;
@@ -7541,141 +6131,53 @@ LLColor4 LLVOAvatar::getClothesColor( ETextureIndex te )
return color;
}
-
-
+// static
+LLColor4 LLVOAvatar::getDummyColor()
+{
+ return DUMMY_COLOR;
+}
void LLVOAvatar::dumpAvatarTEs( const std::string& context )
{
/* const char* te_name[] = {
"TEX_HEAD_BODYPAINT ",
"TEX_UPPER_SHIRT ", */
- llinfos << (mIsSelf ? "Self: " : "Other: ") << context << llendl;
- for (LLVOAvatarDictionary::texture_map_t::const_iterator iter = LLVOAvatarDictionary::getInstance()->getTextures().begin();
+ llinfos << (isSelf() ? "Self: " : "Other: ") << context << llendl;
+ for (LLVOAvatarDictionary::Textures::const_iterator iter = LLVOAvatarDictionary::getInstance()->getTextures().begin();
iter != LLVOAvatarDictionary::getInstance()->getTextures().end();
iter++)
{
- const LLVOAvatarDictionary::TextureDictionaryEntry *text_dict = iter->second;
- const LLViewerImage* te_image = getTEImage(iter->first);
+ const LLVOAvatarDictionary::TextureEntry *texture_dict = iter->second;
+ const LLViewerImage* te_image = getImage(iter->first);
if( !te_image )
{
- llinfos << " " << text_dict->mName << ": null ptr" << llendl;
+ llinfos << " " << texture_dict->mName << ": null ptr" << llendl;
}
else if( te_image->getID().isNull() )
{
- llinfos << " " << text_dict->mName << ": null UUID" << llendl;
+ llinfos << " " << texture_dict->mName << ": null UUID" << llendl;
}
else if( te_image->getID() == IMG_DEFAULT )
{
- llinfos << " " << text_dict->mName << ": IMG_DEFAULT" << llendl;
+ llinfos << " " << texture_dict->mName << ": IMG_DEFAULT" << llendl;
}
else if( te_image->getID() == IMG_DEFAULT_AVATAR )
{
- llinfos << " " << text_dict->mName << ": IMG_DEFAULT_AVATAR" << llendl;
+ llinfos << " " << texture_dict->mName << ": IMG_DEFAULT_AVATAR" << llendl;
}
else
{
- llinfos << " " << text_dict->mName << ": " << te_image->getID() << llendl;
+ llinfos << " " << texture_dict->mName << ": " << te_image->getID() << llendl;
}
}
}
-//-----------------------------------------------------------------------------
-// updateAttachmentVisibility()
-//-----------------------------------------------------------------------------
-void LLVOAvatar::updateAttachmentVisibility(U32 camera_mode)
-{
- for (attachment_map_t::iterator iter = mAttachmentPoints.begin();
- iter != mAttachmentPoints.end(); )
- {
- attachment_map_t::iterator curiter = iter++;
- LLViewerJointAttachment* attachment = curiter->second;
- if (attachment->getIsHUDAttachment())
- {
- attachment->setAttachmentVisibility(TRUE);
- }
- else
- {
- switch (camera_mode)
- {
- case CAMERA_MODE_MOUSELOOK:
- if (LLVOAvatar::sVisibleInFirstPerson && attachment->getVisibleInFirstPerson())
- {
- attachment->setAttachmentVisibility(TRUE);
- }
- else
- {
- attachment->setAttachmentVisibility(FALSE);
- }
- break;
- default:
- attachment->setAttachmentVisibility(TRUE);
- break;
- }
- }
- }
-}
-
-// Given a texture entry, determine which wearable type owns it.
-
-// static
-LLUUID LLVOAvatar::getDefaultTEImageID(ETextureIndex index )
-{
- /* switch( index )
- case TEX_UPPER_SHIRT: return LLUUID( gSavedSettings.getString("UIImgDefaultShirtUUID") ); */
- const LLVOAvatarDictionary::TextureDictionaryEntry *text_dict = LLVOAvatarDictionary::getInstance()->getTexture(index);
- const std::string &default_image_name = text_dict->mDefaultImageName;
- if (default_image_name == "")
- {
- return IMG_DEFAULT_AVATAR;
- }
- else
- {
- return LLUUID(gSavedSettings.getString(default_image_name));
- }
-}
-
-
-void LLVOAvatar::setInvisible(BOOL newvalue)
-{
- if (newvalue)
- {
- setCompositeUpdatesEnabled(FALSE);
- for (U32 i = 0; i < mBakedTextureData.size(); i++ )
- {
- setNewBakedTexture(mBakedTextureData[i].mTextureIndex, IMG_INVISIBLE);
- }
- gAgent.sendAgentSetAppearance();
- }
- else
- {
- setCompositeUpdatesEnabled(TRUE);
- invalidateAll();
- requestLayerSetUploads();
- gAgent.sendAgentSetAppearance();
- }
-}
-
-LLColor4 LLVOAvatar::getDummyColor()
-{
- return DUMMY_COLOR;
-}
-
-// Given a texture entry, determine which wearable type owns it.
-// static
-EWearableType LLVOAvatar::getTEWearableType(ETextureIndex index )
-{
- /* switch(index)
- case TEX_UPPER_SHIRT:
- return WT_SHIRT; */
- return LLVOAvatarDictionary::getInstance()->getTexture(index)->mWearableType;
-}
-
// Unlike most wearable functions, this works for both self and other.
-BOOL LLVOAvatar::isWearingWearableType( EWearableType type )
+BOOL LLVOAvatar::isWearingWearableType(EWearableType type) const
{
if (mIsDummy) return TRUE;
- switch( type )
+ switch(type)
{
case WT_SHAPE:
case WT_SKIN:
@@ -7689,16 +6191,16 @@ BOOL LLVOAvatar::isWearingWearableType( EWearableType type )
/* switch(type)
case WT_SHIRT:
indicator_te = TEX_UPPER_SHIRT; */
- for (LLVOAvatarDictionary::texture_map_t::const_iterator tex_iter = LLVOAvatarDictionary::getInstance()->getTextures().begin();
+ for (LLVOAvatarDictionary::Textures::const_iterator tex_iter = LLVOAvatarDictionary::getInstance()->getTextures().begin();
tex_iter != LLVOAvatarDictionary::getInstance()->getTextures().end();
tex_iter++)
{
const LLVOAvatarDefines::ETextureIndex index = tex_iter->first;
- const LLVOAvatarDictionary::TextureDictionaryEntry *text_dict = tex_iter->second;
- if (text_dict->mWearableType == type)
+ const LLVOAvatarDictionary::TextureEntry *texture_dict = tex_iter->second;
+ if (texture_dict->mWearableType == type)
{
// If you're checking your own clothing, check the component texture
- if (mIsSelf)
+ if (isSelf())
{
if (isTextureDefined(index))
{
@@ -7715,23 +6217,10 @@ BOOL LLVOAvatar::isWearingWearableType( EWearableType type )
// NOTE: this is a poor substitute if you actually want to know about individual pieces of clothing
// this works for detecting a skirt (most important), but is ineffective at any piece of clothing that
// gets baked into a texture that always exists (upper or lower).
- const std::string name = text_dict->mName;
- for (LLVOAvatarDictionary::baked_map_t::const_iterator iter = LLVOAvatarDictionary::getInstance()->getBakedTextures().begin();
- iter != LLVOAvatarDictionary::getInstance()->getBakedTextures().end();
- iter++)
+ if (texture_dict->mIsUsedByBakedTexture)
{
- const LLVOAvatarDictionary::BakedDictionaryEntry *baked_dict = iter->second;
- if (baked_dict->mName == name)
- {
- if (isTextureDefined(baked_dict->mTextureIndex))
- {
- return TRUE;
- }
- else
- {
- return FALSE;
- }
- }
+ const EBakedTextureIndex baked_index = texture_dict->mBakedTextureIndex;
+ return isTextureDefined(LLVOAvatarDictionary::getInstance()->getBakedTexture(baked_index)->mTextureIndex);
}
return FALSE;
}
@@ -7740,41 +6229,6 @@ BOOL LLVOAvatar::isWearingWearableType( EWearableType type )
}
//-----------------------------------------------------------------------------
-// updatedWearable( EWearableType type )
-// forces an update to any baked textures relevant to type.
-// Should be called only on saving the wearable
-//-----------------------------------------------------------------------------
-void LLVOAvatar::wearableUpdated( EWearableType type )
-{
- for (LLVOAvatarDictionary::wearable_map_t::const_iterator wearable_iter = LLVOAvatarDictionary::getInstance()->getWearables().begin();
- wearable_iter != LLVOAvatarDictionary::getInstance()->getWearables().end();
- wearable_iter++)
- {
- const LLVOAvatarDictionary::WearableDictionaryEntry *wearable_dict = wearable_iter->second;
- const LLVOAvatarDefines::EBakedTextureIndex index = wearable_iter->first;
- if (wearable_dict)
- {
- for (LLVOAvatarDefines::wearables_vec_t::const_iterator type_iter = wearable_dict->mWearablesVec.begin();
- type_iter != wearable_dict->mWearablesVec.end();
- type_iter++)
- {
- const EWearableType comp_type = *type_iter;
- if (comp_type == type)
- {
- if (mBakedTextureData[index].mTexLayerSet)
- {
- mBakedTextureData[index].mTexLayerSet->requestUpdate();
- mBakedTextureData[index].mTexLayerSet->requestUpload();
- }
- break;
- }
- }
- }
- }
-}
-
-
-//-----------------------------------------------------------------------------
// clampAttachmentPositions()
//-----------------------------------------------------------------------------
void LLVOAvatar::clampAttachmentPositions()
@@ -7852,16 +6306,16 @@ void LLVOAvatar::onFirstTEMessageReceived()
{
mFirstTEMessageReceived = TRUE;
- for (U32 i = 0; i < mBakedTextureData.size(); i++)
+ for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
{
- bool layer_baked = isTextureDefined(mBakedTextureData[i].mTextureIndex);
+ const BOOL layer_baked = isTextureDefined(mBakedTextureDatas[i].mTextureIndex);
// Use any baked textures that we have even if they haven't downloaded yet.
// (That is, don't do a transition from unbaked to baked.)
if (layer_baked)
{
- LLViewerImage* image = getTEImage( mBakedTextureData[i].mTextureIndex );
- mBakedTextureData[i].mLastTextureIndex = image->getID();
+ LLViewerImage* image = getImage( mBakedTextureDatas[i].mTextureIndex );
+ mBakedTextureDatas[i].mLastTextureIndex = image->getID();
// If we have more than one texture for the other baked layers, we'll want to call this for them too.
if ( (i == BAKED_HEAD) || (i == BAKED_UPPER) || (i == BAKED_LOWER) )
{
@@ -7887,13 +6341,13 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
}
LLMemType mt(LLMemType::MTYPE_AVATAR);
-
+
// llinfos << "processAvatarAppearance start " << mID << llendl;
BOOL is_first_appearance_message = !mFirstAppearanceMessageReceived;
mFirstAppearanceMessageReceived = TRUE;
- if( mIsSelf )
+ if( isSelf() )
{
llwarns << "Received AvatarAppearance for self" << llendl;
if( mFirstTEMessageReceived )
@@ -7910,19 +6364,23 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
ESex old_sex = getSex();
-// llinfos << "ady LLVOAvatar::processAvatarAppearance()" << llendl;
+// llinfos << "LLVOAvatar::processAvatarAppearance()" << llendl;
// dumpAvatarTEs( "PRE processAvatarAppearance()" );
unpackTEMessage(mesgsys, _PREHASH_ObjectData);
// dumpAvatarTEs( "POST processAvatarAppearance()" );
- //llinfos << "Received AvatarAppearance: " << (mIsSelf ? "(self): " : "(other): ") << std::endl <<
- // (isTextureDefined(TEX_HEAD_BAKED) ? "HEAD " : "head " ) << (getTEImage(TEX_HEAD_BAKED)->getID()) << std::endl <<
- // (isTextureDefined(TEX_UPPER_BAKED) ? "UPPER " : "upper " ) << (getTEImage(TEX_UPPER_BAKED)->getID()) << std::endl <<
- // (isTextureDefined(TEX_LOWER_BAKED) ? "LOWER " : "lower " ) << (getTEImage(TEX_LOWER_BAKED)->getID()) << std::endl <<
- // (isTextureDefined(TEX_SKIRT_BAKED) ? "SKIRT " : "skirt " ) << (getTEImage(TEX_SKIRT_BAKED)->getID()) << std::endl <<
- // (isTextureDefined(TEX_HAIR_BAKED) ? "HAIR" : "hair " ) << (getTEImage(TEX_HAIR_BAKED)->getID()) << std::endl <<
- // (isTextureDefined(TEX_EYES_BAKED) ? "EYES" : "eyes" ) << (getTEImage(TEX_EYES_BAKED)->getID()) << llendl ;
-
+ // prevent the overwriting of valid baked textures with invalid baked textures
+ for (U8 baked_index = 0; baked_index < mBakedTextureDatas.size(); baked_index++)
+ {
+ if (!isTextureDefined(mBakedTextureDatas[baked_index].mTextureIndex)
+ && mBakedTextureDatas[baked_index].mLastTextureIndex != IMG_DEFAULT
+ && baked_index != BAKED_SKIRT)
+ {
+ setTEImage(mBakedTextureDatas[baked_index].mTextureIndex, gImageList.getImage(mBakedTextureDatas[baked_index].mLastTextureIndex));
+ }
+ }
+
+
if( !mFirstTEMessageReceived )
{
onFirstTEMessageReceived();
@@ -7930,9 +6388,11 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
setCompositeUpdatesEnabled( FALSE );
- if (!mIsSelf)
+ // ! BACKWARDS COMPATIBILITY !
+ // Non-self avatars will no longer have component textures
+ if (!isSelf())
{
- releaseUnnecessaryTextures();
+ releaseComponentTextures();
}
updateMeshTextures(); // enables updates for laysets without baked textures.
@@ -8092,39 +6552,32 @@ void LLVOAvatar::onBakedTextureMasksLoaded( BOOL success, LLViewerImage *src_vi,
gGL.getTexUnit(0)->setTextureFilteringOption(LLTexUnit::TFO_BILINEAR);
/* if( id == head_baked->getID() )
- if (self->mBakedTextureData[BAKED_HEAD].mTexLayerSet)
+ if (self->mBakedTextureDatas[BAKED_HEAD].mTexLayerSet)
//llinfos << "onBakedTextureMasksLoaded for head " << id << " discard = " << discard_level << llendl;
- self->mBakedTextureData[BAKED_HEAD].mTexLayerSet->applyMorphMask(aux_src->getData(), aux_src->getWidth(), aux_src->getHeight(), 1);
+ self->mBakedTextureDatas[BAKED_HEAD].mTexLayerSet->applyMorphMask(aux_src->getData(), aux_src->getWidth(), aux_src->getHeight(), 1);
maskData->mLastDiscardLevel = discard_level; */
- bool found_texture_id = false;
- for (LLVOAvatarDictionary::texture_map_t::const_iterator iter = LLVOAvatarDictionary::getInstance()->getTextures().begin();
+ BOOL found_texture_id = false;
+ for (LLVOAvatarDictionary::Textures::const_iterator iter = LLVOAvatarDictionary::getInstance()->getTextures().begin();
iter != LLVOAvatarDictionary::getInstance()->getTextures().end();
iter++)
{
- const LLVOAvatarDictionary::TextureDictionaryEntry *text_dict = iter->second;
- if (text_dict->mIsUsedByBakedTexture)
+ const LLVOAvatarDictionary::TextureEntry *texture_dict = iter->second;
+ if (texture_dict->mIsUsedByBakedTexture)
{
const ETextureIndex texture_index = iter->first;
- const LLViewerImage *baked_img = self->getTEImage(texture_index);
+ const LLViewerImage *baked_img = self->getImage(texture_index);
if (id == baked_img->getID())
{
- const EBakedTextureIndex baked_index = text_dict->mBakedTextureIndex;
- if (self->mBakedTextureData[baked_index].mTexLayerSet)
+ const EBakedTextureIndex baked_index = texture_dict->mBakedTextureIndex;
+ self->applyMorphMask(aux_src->getData(), aux_src->getWidth(), aux_src->getHeight(), 1, baked_index);
+ maskData->mLastDiscardLevel = discard_level;
+ if (self->mBakedTextureDatas[baked_index].mMaskTexName)
{
- //llinfos << "onBakedTextureMasksLoaded for " << text_dict->mName << " " << id << " discard = " << discard_level << llendl;
- self->mBakedTextureData[baked_index].mTexLayerSet->applyMorphMask(aux_src->getData(), aux_src->getWidth(), aux_src->getHeight(), 1);
- maskData->mLastDiscardLevel = discard_level;
- if (self->mBakedTextureData[baked_index].mMaskTexName)
- {
- LLImageGL::deleteTextures(1, &(self->mBakedTextureData[baked_index].mMaskTexName));
- }
- self->mBakedTextureData[baked_index].mMaskTexName = gl_name;
- }
- else
- {
- llwarns << "onBakedTextureMasksLoaded: no LayerSet for " << text_dict->mName << "." << llendl;
+ LLImageGL::deleteTextures(1, &(self->mBakedTextureDatas[baked_index].mMaskTexName));
}
+
+ self->mBakedTextureDatas[baked_index].mMaskTexName = gl_name;
found_texture_id = true;
break;
}
@@ -8199,27 +6652,39 @@ void LLVOAvatar::useBakedTexture( const LLUUID& id )
mLastHeadBakedID = id;
mHeadMesh0.setTexture( head_baked );
mHeadMesh1.setTexture( head_baked ); */
- for (U32 i = 0; i < mBakedTextureData.size(); i++)
+ for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
{
- LLViewerImage* image_baked = getTEImage( mBakedTextureData[i].mTextureIndex );
+ LLViewerImage* image_baked = getImage( mBakedTextureDatas[i].mTextureIndex );
if (id == image_baked->getID())
{
- mBakedTextureData[i].mIsLoaded = true;
- mBakedTextureData[i].mLastTextureIndex = id;
- for (U32 k = 0; k < mBakedTextureData[i].mMeshes.size(); k++)
+ mBakedTextureDatas[i].mIsLoaded = true;
+ mBakedTextureDatas[i].mLastTextureIndex = id;
+ mBakedTextureDatas[i].mIsUsed = true;
+ for (U32 k = 0; k < mBakedTextureDatas[i].mMeshes.size(); k++)
{
- mBakedTextureData[i].mMeshes[k]->setTexture( image_baked );
+ mBakedTextureDatas[i].mMeshes[k]->setTexture( image_baked );
}
- if (mBakedTextureData[i].mTexLayerSet)
+ if (mBakedTextureDatas[i].mTexLayerSet)
{
- mBakedTextureData[i].mTexLayerSet->destroyComposite();
+ mBakedTextureDatas[i].mTexLayerSet->destroyComposite();
}
- const LLVOAvatarDictionary::BakedDictionaryEntry *baked_dict = LLVOAvatarDictionary::getInstance()->getBakedTexture((EBakedTextureIndex)i);
+ const LLVOAvatarDictionary::BakedEntry *baked_dict = LLVOAvatarDictionary::getInstance()->getBakedTexture((EBakedTextureIndex)i);
for (texture_vec_t::const_iterator local_tex_iter = baked_dict->mLocalTextures.begin();
local_tex_iter != baked_dict->mLocalTextures.end();
local_tex_iter++)
{
- setLocalTexture(*local_tex_iter, getTEImage(*local_tex_iter), TRUE);
+ setLocalTexture(*local_tex_iter, getImage(*local_tex_iter), TRUE);
+ }
+
+ // ! BACKWARDS COMPATIBILITY !
+ // Workaround for viewing avatars from old viewers that haven't baked hair textures.
+ // This is paired with similar code in updateMeshTextures that sets hair mesh color.
+ if (i == BAKED_HAIR)
+ {
+ for (U32 i = 0; i < mBakedTextureDatas[BAKED_HAIR].mMeshes.size(); i++)
+ {
+ mBakedTextureDatas[BAKED_HAIR].mMeshes[i]->setColor( 1.f, 1.f, 1.f, 1.f );
+ }
}
}
}
@@ -8234,7 +6699,7 @@ void LLVOAvatar::dumpArchetypeXML( void* )
LLAPRFile outfile ;
outfile.open(gDirUtilp->getExpandedFilename(LL_PATH_CHARACTER,"new archetype.xml"), LL_APR_WB );
apr_file_t* file = outfile.getFileHandle() ;
- if( !file )
+ if (!file)
{
return;
}
@@ -8244,27 +6709,27 @@ void LLVOAvatar::dumpArchetypeXML( void* )
apr_file_printf( file, "\n\t<archetype name=\"???\">\n" );
// only body parts, not clothing.
- for( S32 type = WT_SHAPE; type <= WT_EYES; type++ )
+ for (S32 type = WT_SHAPE; type <= WT_EYES; type++)
{
- const std::string& wearable_name = LLWearable::typeToTypeName( (EWearableType) type );
+ const std::string& wearable_name = LLWearableDictionary::getTypeName((EWearableType)type);
apr_file_printf( file, "\n\t\t<!-- wearable: %s -->\n", wearable_name.c_str() );
- for( LLVisualParam* param = avatar->getFirstVisualParam(); param; param = avatar->getNextVisualParam() )
+ for (LLVisualParam* param = avatar->getFirstVisualParam(); param; param = avatar->getNextVisualParam())
{
LLViewerVisualParam* viewer_param = (LLViewerVisualParam*)param;
if( (viewer_param->getWearableType() == type) &&
(viewer_param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE) )
{
- apr_file_printf( file, "\t\t<param id=\"%d\" name=\"%s\" value=\"%.3f\"/>\n",
- viewer_param->getID(), viewer_param->getName().c_str(), viewer_param->getWeight() );
+ apr_file_printf(file, "\t\t<param id=\"%d\" name=\"%s\" value=\"%.3f\"/>\n",
+ viewer_param->getID(), viewer_param->getName().c_str(), viewer_param->getWeight());
}
}
- for(U8 te = 0; te < TEX_NUM_INDICES; te++)
+ for (U8 te = 0; te < TEX_NUM_INDICES; te++)
{
- if( LLVOAvatar::getTEWearableType((ETextureIndex)te) == type )
+ if (LLVOAvatarDictionary::getTEWearableType((ETextureIndex)te) == type)
{
- LLViewerImage* te_image = avatar->getTEImage((ETextureIndex)te);
+ LLViewerImage* te_image = avatar->getImage((ETextureIndex)te);
if( te_image )
{
std::string uuid_str;
@@ -8279,18 +6744,13 @@ void LLVOAvatar::dumpArchetypeXML( void* )
}
-U32 LLVOAvatar::getVisibilityRank()
-{
- return mVisibilityRank;
-}
-
void LLVOAvatar::setVisibilityRank(U32 rank)
{
if (mDrawable.isNull() || mDrawable->isDead())
- { //do nothing
+ {
+ // do nothing
return;
}
-
mVisibilityRank = rank;
}
@@ -8299,15 +6759,14 @@ S32 LLVOAvatar::getUnbakedPixelAreaRank()
{
S32 rank = 1;
for (std::vector<LLCharacter*>::iterator iter = LLCharacter::sInstances.begin();
- iter != LLCharacter::sInstances.end(); ++iter)
+ iter != LLCharacter::sInstances.end(); ++iter)
{
LLVOAvatar* inst = (LLVOAvatar*) *iter;
- if( inst == this )
+ if (inst == this)
{
return rank;
}
- else
- if( !inst->isDead() && !inst->isFullyBaked() )
+ else if (!inst->isDead() && !inst->isFullyBaked())
{
rank++;
}
@@ -8319,7 +6778,7 @@ S32 LLVOAvatar::getUnbakedPixelAreaRank()
struct CompareScreenAreaGreater
{
- bool operator()(const LLCharacter* const& lhs, const LLCharacter* const& rhs)
+ BOOL operator()(const LLCharacter* const& lhs, const LLCharacter* const& rhs)
{
return lhs->getPixelArea() > rhs->getPixelArea();
}
@@ -8333,7 +6792,7 @@ void LLVOAvatar::cullAvatarsByPixelArea()
// Update the avatars that have changed status
U32 rank = 0;
for (std::vector<LLCharacter*>::iterator iter = LLCharacter::sInstances.begin();
- iter != LLCharacter::sInstances.end(); ++iter)
+ iter != LLCharacter::sInstances.end(); ++iter)
{
LLVOAvatar* inst = (LLVOAvatar*) *iter;
BOOL culled;
@@ -8364,7 +6823,7 @@ void LLVOAvatar::cullAvatarsByPixelArea()
}
S32 grey_avatars = 0;
- if ( LLVOAvatar::areAllNearbyInstancesBaked(grey_avatars) )
+ if (LLVOAvatar::areAllNearbyInstancesBaked(grey_avatars))
{
LLVOAvatar::deleteCachedImages(false);
}
@@ -8386,144 +6845,6 @@ void LLVOAvatar::cullAvatarsByPixelArea()
}
}
-const LLUUID& LLVOAvatar::grabLocalTexture(ETextureIndex index)
-{
- if (canGrabLocalTexture(index))
- {
- return getTEImage( index )->getID();
- }
- return LLUUID::null;
-}
-
-BOOL LLVOAvatar::canGrabLocalTexture(ETextureIndex index)
-{
- // Check if the texture hasn't been baked yet.
- if (!isTextureDefined(index))
- {
- lldebugs << "getTEImage( " << (U32) index << " )->getID() == IMG_DEFAULT_AVATAR" << llendl;
- return FALSE;
- }
-
- if (gAgent.isGodlike())
- return TRUE;
-
- // Check permissions of textures that show up in the
- // baked texture. We don't want people copying people's
- // work via baked textures.
- /* switch(index)
- case TEX_EYES_BAKED:
- textures.push_back(TEX_EYES_IRIS); */
- const LLVOAvatarDictionary::TextureDictionaryEntry *text_dict = LLVOAvatarDictionary::getInstance()->getTexture(index);
- if (!text_dict->mIsUsedByBakedTexture) return FALSE;
-
- const EBakedTextureIndex baked_index = text_dict->mBakedTextureIndex;
- const LLVOAvatarDictionary::BakedDictionaryEntry *baked_dict = LLVOAvatarDictionary::getInstance()->getBakedTexture(baked_index);
- for (texture_vec_t::const_iterator iter = baked_dict->mLocalTextures.begin();
- iter != baked_dict->mLocalTextures.end();
- iter++)
- {
- const ETextureIndex t_index = (*iter);
- lldebugs << "Checking index " << (U32) t_index << llendl;
- const LLUUID& texture_id = getTEImage( t_index )->getID();
- if (texture_id != IMG_DEFAULT_AVATAR)
- {
- // Search inventory for this texture.
- LLViewerInventoryCategory::cat_array_t cats;
- LLViewerInventoryItem::item_array_t items;
- LLAssetIDMatches asset_id_matches(texture_id);
- gInventory.collectDescendentsIf(LLUUID::null,
- cats,
- items,
- LLInventoryModel::INCLUDE_TRASH,
- asset_id_matches);
-
- BOOL can_grab = FALSE;
- lldebugs << "item count for asset " << texture_id << ": " << items.count() << llendl;
- if (items.count())
- {
- // search for full permissions version
- for (S32 i = 0; i < items.count(); i++)
- {
- LLInventoryItem* itemp = items[i];
- LLPermissions item_permissions = itemp->getPermissions();
- if ( item_permissions.allowOperationBy(
- PERM_MODIFY, gAgent.getID(), gAgent.getGroupID()) &&
- item_permissions.allowOperationBy(
- PERM_COPY, gAgent.getID(), gAgent.getGroupID()) &&
- item_permissions.allowOperationBy(
- PERM_TRANSFER, gAgent.getID(), gAgent.getGroupID()) )
- {
- can_grab = TRUE;
- break;
- }
- }
- }
- if (!can_grab) return FALSE;
- }
- }
-
- return TRUE;
-}
-
-void LLVOAvatar::dumpLocalTextures()
-{
- llinfos << "Local Textures:" << llendl;
-
- /* ETextureIndex baked_equiv[] = {
- TEX_UPPER_BAKED,
- if (isTextureDefined(baked_equiv[i])) */
- for (LLVOAvatarDictionary::texture_map_t::const_iterator iter = LLVOAvatarDictionary::getInstance()->getTextures().begin();
- iter != LLVOAvatarDictionary::getInstance()->getTextures().end();
- iter++)
- {
- const LLVOAvatarDictionary::TextureDictionaryEntry *text_dict = iter->second;
- if (!text_dict->mIsLocalTexture || !text_dict->mIsUsedByBakedTexture)
- continue;
-
- const EBakedTextureIndex baked_index = text_dict->mBakedTextureIndex;
- const ETextureIndex baked_equiv = LLVOAvatarDictionary::getInstance()->getBakedTexture(baked_index)->mTextureIndex;
-
- const std::string &name = text_dict->mName;
- const LocalTextureData &local_tex_data = mLocalTextureData[iter->first];
- if (isTextureDefined(baked_equiv))
- {
-#if LL_RELEASE_FOR_DOWNLOAD
- // End users don't get to trivially see avatar texture IDs, makes textures
- // easier to steal. JC
- llinfos << "LocTex " << name << ": Baked " << llendl;
-#else
- llinfos << "LocTex " << name << ": Baked " << getTEImage( baked_equiv )->getID() << llendl;
-#endif
- }
- else if (local_tex_data.mImage.notNull())
- {
- if( local_tex_data.mImage->getID() == IMG_DEFAULT_AVATAR )
- {
- llinfos << "LocTex " << name << ": None" << llendl;
- }
- else
- {
- const LLViewerImage* image = local_tex_data.mImage;
-
- llinfos << "LocTex " << name << ": "
- << "Discard " << image->getDiscardLevel() << ", "
- << "(" << image->getWidth() << ", " << image->getHeight() << ") "
-#if !LL_RELEASE_FOR_DOWNLOAD
- // End users don't get to trivially see avatar texture IDs,
- // makes textures easier to steal
- << image->getID() << " "
-#endif
- << "Priority: " << image->getDecodePriority()
- << llendl;
- }
- }
- else
- {
- llinfos << "LocTex " << name << ": No LLViewerImage" << llendl;
- }
- }
-}
-
void LLVOAvatar::startAppearanceAnimation(BOOL set_by_user, BOOL play_sound)
{
if(!mAppearanceAnimating)
@@ -8535,53 +6856,31 @@ void LLVOAvatar::startAppearanceAnimation(BOOL set_by_user, BOOL play_sound)
}
}
-
+// virtual
void LLVOAvatar::removeMissingBakedTextures()
{
- if (!mIsSelf) return;
-
- BOOL removed = FALSE;
- for (U32 i = 0; i < mBakedTextureData.size(); i++)
- {
- const S32 te = mBakedTextureData[i].mTextureIndex;
- if (getTEImage(te)->isMissingAsset())
- {
- setTEImage(te, gImageList.getImage(IMG_DEFAULT_AVATAR));
- removed = TRUE;
- }
- }
-
- if (removed)
- {
- for(U32 i = 0; i < mBakedTextureData.size(); i++)
- {
- invalidateComposite(mBakedTextureData[i].mTexLayerSet, FALSE);
- }
- updateMeshTextures();
- requestLayerSetUploads();
- }
}
-
//-----------------------------------------------------------------------------
// LLVOAvatarXmlInfo
//-----------------------------------------------------------------------------
-LLVOAvatarXmlInfo::LLVOAvatarXmlInfo()
+LLVOAvatar::LLVOAvatarXmlInfo::LLVOAvatarXmlInfo()
: mTexSkinColorInfo(0), mTexHairColorInfo(0), mTexEyeColorInfo(0)
{
}
-LLVOAvatarXmlInfo::~LLVOAvatarXmlInfo()
+LLVOAvatar::LLVOAvatarXmlInfo::~LLVOAvatarXmlInfo()
{
std::for_each(mMeshInfoList.begin(), mMeshInfoList.end(), DeletePointer());
std::for_each(mSkeletalDistortionInfoList.begin(), mSkeletalDistortionInfoList.end(), DeletePointer());
std::for_each(mAttachmentInfoList.begin(), mAttachmentInfoList.end(), DeletePointer());
- delete mTexSkinColorInfo;
- delete mTexHairColorInfo;
- delete mTexEyeColorInfo;
+ deleteAndClear(mTexSkinColorInfo);
+ deleteAndClear(mTexHairColorInfo);
+ deleteAndClear(mTexEyeColorInfo);
std::for_each(mLayerInfoList.begin(), mLayerInfoList.end(), DeletePointer());
- std::for_each(mDriverInfoList.begin(), mDriverInfoList.end(), DeletePointer());
+ std::for_each(mDriverInfoList.begin(), mDriverInfoList.end(), DeletePointer());
+ std::for_each(mMorphMaskInfoList.begin(), mMorphMaskInfoList.end(), DeletePointer());
}
//-----------------------------------------------------------------------------
@@ -8693,7 +6992,7 @@ BOOL LLVOAvatarSkeletonInfo::parseXml(LLXmlTreeNode* node)
//-----------------------------------------------------------------------------
// parseXmlSkeletonNode(): parses <skeleton> nodes from XML tree
//-----------------------------------------------------------------------------
-BOOL LLVOAvatarXmlInfo::parseXmlSkeletonNode(LLXmlTreeNode* root)
+BOOL LLVOAvatar::LLVOAvatarXmlInfo::parseXmlSkeletonNode(LLXmlTreeNode* root)
{
LLXmlTreeNode* node = root->getChildByName( "skeleton" );
if( !node )
@@ -8799,7 +7098,7 @@ BOOL LLVOAvatarXmlInfo::parseXmlSkeletonNode(LLXmlTreeNode* root)
//-----------------------------------------------------------------------------
// parseXmlMeshNodes(): parses <mesh> nodes from XML tree
//-----------------------------------------------------------------------------
-BOOL LLVOAvatarXmlInfo::parseXmlMeshNodes(LLXmlTreeNode* root)
+BOOL LLVOAvatar::LLVOAvatarXmlInfo::parseXmlMeshNodes(LLXmlTreeNode* root)
{
for (LLXmlTreeNode* node = root->getChildByName( "mesh" );
node;
@@ -8889,7 +7188,7 @@ BOOL LLVOAvatarXmlInfo::parseXmlMeshNodes(LLXmlTreeNode* root)
//-----------------------------------------------------------------------------
// parseXmlColorNodes(): parses <global_color> nodes from XML tree
//-----------------------------------------------------------------------------
-BOOL LLVOAvatarXmlInfo::parseXmlColorNodes(LLXmlTreeNode* root)
+BOOL LLVOAvatar::LLVOAvatarXmlInfo::parseXmlColorNodes(LLXmlTreeNode* root)
{
for (LLXmlTreeNode* color_node = root->getChildByName( "global_color" );
color_node;
@@ -8909,7 +7208,7 @@ BOOL LLVOAvatarXmlInfo::parseXmlColorNodes(LLXmlTreeNode* root)
mTexSkinColorInfo = new LLTexGlobalColorInfo;
if( !mTexSkinColorInfo->parseXml( color_node ) )
{
- delete mTexSkinColorInfo; mTexSkinColorInfo = 0;
+ deleteAndClear(mTexSkinColorInfo);
llwarns << "avatar file: mTexSkinColor->parseXml() failed" << llendl;
return FALSE;
}
@@ -8924,7 +7223,7 @@ BOOL LLVOAvatarXmlInfo::parseXmlColorNodes(LLXmlTreeNode* root)
mTexHairColorInfo = new LLTexGlobalColorInfo;
if( !mTexHairColorInfo->parseXml( color_node ) )
{
- delete mTexHairColorInfo; mTexHairColorInfo = 0;
+ deleteAndClear(mTexHairColorInfo);
llwarns << "avatar file: mTexHairColor->parseXml() failed" << llendl;
return FALSE;
}
@@ -8951,7 +7250,7 @@ BOOL LLVOAvatarXmlInfo::parseXmlColorNodes(LLXmlTreeNode* root)
//-----------------------------------------------------------------------------
// parseXmlLayerNodes(): parses <layer_set> nodes from XML tree
//-----------------------------------------------------------------------------
-BOOL LLVOAvatarXmlInfo::parseXmlLayerNodes(LLXmlTreeNode* root)
+BOOL LLVOAvatar::LLVOAvatarXmlInfo::parseXmlLayerNodes(LLXmlTreeNode* root)
{
for (LLXmlTreeNode* layer_node = root->getChildByName( "layer_set" );
layer_node;
@@ -8975,7 +7274,7 @@ BOOL LLVOAvatarXmlInfo::parseXmlLayerNodes(LLXmlTreeNode* root)
//-----------------------------------------------------------------------------
// parseXmlDriverNodes(): parses <driver_parameters> nodes from XML tree
//-----------------------------------------------------------------------------
-BOOL LLVOAvatarXmlInfo::parseXmlDriverNodes(LLXmlTreeNode* root)
+BOOL LLVOAvatar::LLVOAvatarXmlInfo::parseXmlDriverNodes(LLXmlTreeNode* root)
{
LLXmlTreeNode* driver = root->getChildByName( "driver_parameters" );
if( driver )
@@ -9003,36 +7302,60 @@ BOOL LLVOAvatarXmlInfo::parseXmlDriverNodes(LLXmlTreeNode* root)
return TRUE;
}
-// warning: order(N) not order(1)
-S32 LLVOAvatar::getAttachmentCount()
+//-----------------------------------------------------------------------------
+// parseXmlDriverNodes(): parses <driver_parameters> nodes from XML tree
+//-----------------------------------------------------------------------------
+BOOL LLVOAvatar::LLVOAvatarXmlInfo::parseXmlMorphNodes(LLXmlTreeNode* root)
{
- S32 count = mAttachmentPoints.size();
- return count;
-}
+ LLXmlTreeNode* masks = root->getChildByName( "morph_masks" );
+ if( !masks )
+ {
+ return FALSE;
+ }
-//virtual
-void LLVOAvatar::updateRegion(LLViewerRegion *regionp)
-{
- if (mIsSelf)
+ for (LLXmlTreeNode* grand_child = masks->getChildByName( "mask" );
+ grand_child;
+ grand_child = masks->getNextNamedChild())
{
- if (regionp->getHandle() != mLastRegionHandle)
+ LLVOAvatarMorphInfo* info = new LLVOAvatarMorphInfo();
+
+ static LLStdStringHandle name_string = LLXmlTree::addAttributeString("morph_name");
+ if (!grand_child->getFastAttributeString(name_string, info->mName))
{
- if (mLastRegionHandle != 0)
- {
- ++mRegionCrossingCount;
- F64 delta = (F64)mRegionCrossingTimer.getElapsedTimeF32();
- F64 avg = (mRegionCrossingCount == 1) ? 0 : LLViewerStats::getInstance()->getStat(LLViewerStats::ST_CROSSING_AVG);
- F64 delta_avg = (delta + avg*(mRegionCrossingCount-1)) / mRegionCrossingCount;
- LLViewerStats::getInstance()->setStat(LLViewerStats::ST_CROSSING_AVG, delta_avg);
+ llwarns << "No name supplied for morph mask." << llendl;
+ delete info;
+ continue;
+ }
- F64 max = (mRegionCrossingCount == 1) ? 0 : LLViewerStats::getInstance()->getStat(LLViewerStats::ST_CROSSING_MAX);
- max = llmax(delta, max);
- LLViewerStats::getInstance()->setStat(LLViewerStats::ST_CROSSING_MAX, max);
- }
- mLastRegionHandle = regionp->getHandle();
+ static LLStdStringHandle region_string = LLXmlTree::addAttributeString("body_region");
+ if (!grand_child->getFastAttributeString(region_string, info->mRegion))
+ {
+ llwarns << "No region supplied for morph mask." << llendl;
+ delete info;
+ continue;
+ }
+
+ static LLStdStringHandle layer_string = LLXmlTree::addAttributeString("layer");
+ if (!grand_child->getFastAttributeString(layer_string, info->mLayer))
+ {
+ llwarns << "No layer supplied for morph mask." << llendl;
+ delete info;
+ continue;
}
- mRegionCrossingTimer.reset();
+
+ // optional parameter. don't throw a warning if not present.
+ static LLStdStringHandle invert_string = LLXmlTree::addAttributeString("invert");
+ grand_child->getFastAttributeBOOL(invert_string, info->mInvert);
+
+ mMorphMaskInfoList.push_back(info);
}
+
+ return TRUE;
+}
+
+//virtual
+void LLVOAvatar::updateRegion(LLViewerRegion *regionp)
+{
}
std::string LLVOAvatar::getFullname() const
@@ -9051,21 +7374,6 @@ std::string LLVOAvatar::getFullname() const
return name;
}
-LLTexLayerSet* LLVOAvatar::getLayerSet(ETextureIndex index) const
-{
- /* switch(index)
- case TEX_HEAD_BAKED:
- case TEX_HEAD_BODYPAINT:
- return mHeadLayerSet; */
- const LLVOAvatarDictionary::TextureDictionaryEntry *text_dict = LLVOAvatarDictionary::getInstance()->getTexture(index);
- if (text_dict->mIsUsedByBakedTexture)
- {
- const EBakedTextureIndex baked_index = text_dict->mBakedTextureIndex;
- return mBakedTextureData[baked_index].mTexLayerSet;
- }
- return NULL;
-}
-
LLHost LLVOAvatar::getObjectHost() const
{
LLViewerRegion* region = getRegion();
@@ -9104,7 +7412,7 @@ BOOL LLVOAvatar::updateLOD()
if (facep->mVertexBuffer.isNull() ||
LLVertexBuffer::sEnableVBOs &&
((facep->mVertexBuffer->getUsage() == GL_STATIC_DRAW ? TRUE : FALSE) !=
- (facep->getPool()->getVertexShaderLevel() > 0 ? TRUE : FALSE)))
+ (facep->getPool()->getVertexShaderLevel() > 0 ? TRUE : FALSE)))
{
mDirtyMesh = TRUE;
}
@@ -9123,7 +7431,8 @@ BOOL LLVOAvatar::updateLOD()
}
U32 LLVOAvatar::getPartitionType() const
-{ //avatars merely exist as drawables in the bridge partition
+{
+ // Avatars merely exist as drawables in the bridge partition
return LLViewerRegion::PARTITION_BRIDGE;
}
@@ -9131,10 +7440,9 @@ U32 LLVOAvatar::getPartitionType() const
void LLVOAvatar::updateImpostors()
{
for (std::vector<LLCharacter*>::iterator iter = LLCharacter::sInstances.begin();
- iter != LLCharacter::sInstances.end(); ++iter)
+ iter != LLCharacter::sInstances.end(); ++iter)
{
LLVOAvatar* avatar = (LLVOAvatar*) *iter;
-
if (!avatar->isDead() && avatar->needsImpostorUpdate() && avatar->isVisible() && avatar->isImpostor())
{
gPipeline.generateImpostor(avatar);
@@ -9198,10 +7506,9 @@ void LLVOAvatar::idleUpdateRenderCost()
std::set<LLUUID> textures;
- attachment_map_t::const_iterator iter;
- for (iter = mAttachmentPoints.begin();
- iter != mAttachmentPoints.end();
- ++iter)
+ for (attachment_map_t::const_iterator iter = mAttachmentPoints.begin();
+ iter != mAttachmentPoints.end();
+ ++iter)
{
LLViewerJointAttachment* attachment = iter->second;
LLViewerObject* object = attachment->getObject();
@@ -9246,15 +7553,15 @@ const std::string LLVOAvatar::getBakedStatusForPrintout() const
{
std::string line;
- for (LLVOAvatarDictionary::texture_map_t::const_iterator iter = LLVOAvatarDictionary::getInstance()->getTextures().begin();
+ for (LLVOAvatarDictionary::Textures::const_iterator iter = LLVOAvatarDictionary::getInstance()->getTextures().begin();
iter != LLVOAvatarDictionary::getInstance()->getTextures().end();
iter++)
{
const ETextureIndex index = iter->first;
- const LLVOAvatarDictionary::TextureDictionaryEntry *text_dict = iter->second;
- if (text_dict->mIsBakedTexture)
+ const LLVOAvatarDictionary::TextureEntry *texture_dict = iter->second;
+ if (texture_dict->mIsBakedTexture)
{
- line += text_dict->mName;
+ line += texture_dict->mName;
if (isTextureDefined(index))
{
line += "_baked";
@@ -9370,6 +7677,12 @@ U32 calc_shame(LLVOVolume* volume, std::set<LLUUID> &textures)
return shame;
}
+//virtual
+S32 LLVOAvatar::getTexImageSize() const
+{
+ return TEX_IMAGE_SIZE_OTHER;
+}
+
//-----------------------------------------------------------------------------
// Utility functions
//-----------------------------------------------------------------------------
@@ -9378,3 +7691,16 @@ F32 calc_bouncy_animation(F32 x)
{
return -(cosf(x * F_PI * 2.5f - F_PI_BY_TWO))*(0.4f + x * -0.1f) + x * 1.3f;
}
+
+//virtual
+BOOL LLVOAvatar::isTextureDefined(LLVOAvatarDefines::ETextureIndex te, U32 index ) const
+{
+ if (isIndexLocalTexture(te))
+ {
+ return FALSE;
+ }
+
+ return (getImage(te)->getID() != IMG_DEFAULT_AVATAR &&
+ getImage(te)->getID() != IMG_DEFAULT);
+}
+
diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h
index c48d509f26..301c032b25 100644
--- a/indra/newview/llvoavatar.h
+++ b/indra/newview/llvoavatar.h
@@ -46,9 +46,9 @@
#include "llviewerjointmesh.h"
#include "llviewerjointattachment.h"
#include "llrendertarget.h"
-#include "llwearable.h"
#include "llvoavatardefines.h"
-#include "llcontrol.h"
+#include "lltexglobalcolor.h"
+#include "lldriverparam.h"
extern const LLUUID ANIM_AGENT_BODY_NOISE;
extern const LLUUID ANIM_AGENT_BREATHE_ROT;
@@ -66,10 +66,8 @@ class LLVoiceVisualizer;
class LLHUDText;
class LLHUDEffectSpiral;
class LLTexGlobalColor;
-
class LLVOAvatarBoneInfo;
class LLVOAvatarSkeletonInfo;
-class LLVOAvatarXmlInfo;
//------------------------------------------------------------------------
// LLVOAvatar
@@ -78,686 +76,938 @@ class LLVOAvatar :
public LLViewerObject,
public LLCharacter
{
+public:
+ friend class LLVOAvatarSelf;
protected:
- virtual ~LLVOAvatar();
+ struct LLVOAvatarXmlInfo;
+ struct LLMaskedMorph;
+
+/********************************************************************************
+ ** **
+ ** INITIALIZATION
+ **/
public:
LLVOAvatar(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp);
- /*virtual*/ void markDead();
- void startDefaultMotions();
+ virtual void markDead();
+ static void initClass(); // Initialize data that's only init'd once per class.
+ static void cleanupClass(); // Cleanup data that's only init'd once per class.
+ void initInstance(); // Called after construction to initialize the class.
+protected:
+ virtual ~LLVOAvatar();
+ BOOL loadSkeletonNode();
+ BOOL loadMeshNodes();
+ virtual BOOL loadLayersets();
+
+/** Initialization
+ ** **
+ *******************************************************************************/
+
+/********************************************************************************
+ ** **
+ ** INHERITED
+ **/
+
+ //--------------------------------------------------------------------
+ // LLViewerObject interface and related
+ //--------------------------------------------------------------------
+public:
+ virtual U32 processUpdateMessage(LLMessageSystem *mesgsys,
+ void **user_data,
+ U32 block_num,
+ const EObjectUpdateType update_type,
+ LLDataPacker *dp);
+ virtual BOOL idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time);
+ virtual BOOL updateLOD();
+ BOOL updateJointLODs();
+ virtual BOOL isActive() const; // Whether this object needs to do an idleUpdate.
+ virtual void updateTextures(LLAgent &agent);
+ virtual S32 setTETexture(const U8 te, const LLUUID& uuid); // If setting a baked texture, need to request it from a non-local sim.
+ virtual void onShift(const LLVector3& shift_vector);
+ virtual U32 getPartitionType() const;
+ virtual const LLVector3 getRenderPosition() const;
+ virtual void updateDrawable(BOOL force_damped);
+ virtual LLDrawable* createDrawable(LLPipeline *pipeline);
+ virtual BOOL updateGeometry(LLDrawable *drawable);
+ virtual void setPixelAreaAndAngle(LLAgent &agent);
+ virtual void updateRegion(LLViewerRegion *regionp);
+ virtual void updateSpatialExtents(LLVector3& newMin, LLVector3 &newMax);
+ virtual void getSpatialExtents(LLVector3& newMin, LLVector3& newMax);
+ virtual BOOL lineSegmentIntersect(const LLVector3& start, const LLVector3& end,
+ S32 face = -1, // which face to check, -1 = ALL_SIDES
+ BOOL pick_transparent = FALSE,
+ S32* face_hit = NULL, // which face was hit
+ LLVector3* intersection = NULL, // return the intersection point
+ LLVector2* tex_coord = NULL, // return the texture coordinates of the intersection point
+ LLVector3* normal = NULL, // return the surface normal at the intersection point
+ LLVector3* bi_normal = NULL); // return the surface bi-normal at the intersection point
+
+ //--------------------------------------------------------------------
+ // LLCharacter interface and related
+ //--------------------------------------------------------------------
+public:
+ virtual LLVector3 getCharacterPosition();
+ virtual LLQuaternion getCharacterRotation();
+ virtual LLVector3 getCharacterVelocity();
+ virtual LLVector3 getCharacterAngularVelocity();
+ virtual LLJoint* getCharacterJoint(U32 num);
+ virtual BOOL allocateCharacterJoints(U32 num);
+
+ virtual BOOL startMotion(const LLUUID& id, F32 time_offset = 0.f);
+ virtual BOOL stopMotion(const LLUUID& id, BOOL stop_immediate = FALSE);
+ virtual void stopMotionFromSource(const LLUUID& source_id);
+ virtual void requestStopMotion(LLMotion* motion);
+ LLMotion* findMotion(const LLUUID& id) const;
+ void startDefaultMotions();
+
+ virtual LLJoint* getJoint(const std::string &name);
+ virtual LLJoint* getRootJoint() { return &mRoot; }
+
+ virtual const char* getAnimationPrefix() { return "avatar"; }
+ virtual const LLUUID& getID();
+ virtual LLVector3 getVolumePos(S32 joint_index, LLVector3& volume_offset);
+ virtual LLJoint* findCollisionVolume(U32 volume_id);
+ virtual S32 getCollisionVolumeID(std::string &name);
+ virtual void addDebugText(const std::string& text);
+ virtual F32 getTimeDilation();
+ virtual void getGround(const LLVector3 &inPos, LLVector3 &outPos, LLVector3 &outNorm);
+ virtual F32 getPixelArea() const;
+ virtual LLPolyMesh* getHeadMesh();
+ virtual LLPolyMesh* getUpperBodyMesh();
+ virtual LLVector3d getPosGlobalFromAgent(const LLVector3 &position);
+ virtual LLVector3 getPosAgentFromGlobal(const LLVector3d &position);
+ virtual void updateVisualParams();
+
+
+/** Inherited
+ ** **
+ *******************************************************************************/
+
+/********************************************************************************
+ ** **
+ ** STATE
+ **/
+
+public:
+ virtual bool isSelf() const { return false; } // True if this avatar is for this viewer's agent
+private:
+ BOOL mSupportsAlphaLayers; // For backwards compatibility, TRUE for 1.23+ clients
- static void updateImpostors();
+ //--------------------------------------------------------------------
+ // Updates
+ //--------------------------------------------------------------------
+public:
+ virtual BOOL updateCharacter(LLAgent &agent);
+ void idleUpdateVoiceVisualizer(bool voice_enabled);
+ void idleUpdateMisc(bool detailed_update);
+ void idleUpdateAppearanceAnimation();
+ void idleUpdateLipSync(bool voice_enabled);
+ void idleUpdateLoadingEffect();
+ void idleUpdateWindEffect();
+ void idleUpdateNameTag(const LLVector3& root_pos_last);
+ void idleUpdateRenderCost();
+ void idleUpdateTractorBeam();
+ void idleUpdateBelowWater();
//--------------------------------------------------------------------
- // LLViewerObject interface
- //--------------------------------------------------------------------
-public:
- static void initClass(); // Initialize data that's only init'd once per class.
- static void cleanupClass(); // Cleanup data that's only init'd once per class.
- static BOOL parseSkeletonFile(const std::string& filename);
- virtual U32 processUpdateMessage(LLMessageSystem *mesgsys,
- void **user_data,
- U32 block_num,
- const EObjectUpdateType update_type,
- LLDataPacker *dp);
- /*virtual*/ BOOL idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time);
- void idleUpdateVoiceVisualizer(bool voice_enabled);
- void idleUpdateMisc(bool detailed_update);
- void idleUpdateAppearanceAnimation();
- void idleUpdateLipSync(bool voice_enabled);
- void idleUpdateLoadingEffect();
- void idleUpdateWindEffect();
- void idleUpdateNameTag(const LLVector3& root_pos_last);
- void idleUpdateRenderCost();
- void idleUpdateTractorBeam();
- void idleUpdateBelowWater();
-
-public:
- virtual BOOL updateLOD();
- /*virtual*/ BOOL isActive() const; // Whether this object needs to do an idleUpdate.
-
- // Graphical stuff for objects - maybe broken out into render class later?
- U32 renderFootShadows();
- U32 renderImpostor(LLColor4U color = LLColor4U(255,255,255,255));
- U32 renderRigid();
- U32 renderSkinned(EAvatarRenderPass pass);
- U32 renderTransparent(BOOL first_pass);
- void renderCollisionVolumes();
-
- /*virtual*/ BOOL lineSegmentIntersect(const LLVector3& start, const LLVector3& end,
- S32 face = -1, // which face to check, -1 = ALL_SIDES
- BOOL pick_transparent = FALSE,
- S32* face_hit = NULL, // which face was hit
- LLVector3* intersection = NULL, // return the intersection point
- LLVector2* tex_coord = NULL, // return the texture coordinates of the intersection point
- LLVector3* normal = NULL, // return the surface normal at the intersection point
- LLVector3* bi_normal = NULL // return the surface bi-normal at the intersection point
- );
-
- /*virtual*/ void updateTextures(LLAgent &agent);
- // If setting a baked texture, need to request it from a non-local sim.
- /*virtual*/ S32 setTETexture(const U8 te, const LLUUID& uuid);
- /*virtual*/ void onShift(const LLVector3& shift_vector);
- virtual U32 getPartitionType() const;
+ // Static preferences (controlled by user settings/menus)
+ //--------------------------------------------------------------------
+public:
+ static S32 sRenderName;
+ static BOOL sRenderGroupTitles;
+ static S32 sMaxVisible;
+ static F32 sRenderDistance; //distance at which avatars will render (affected by control "RenderAvatarMaxVisible")
+ static BOOL sShowAnimationDebug; // show animation debug info
+ static BOOL sUseImpostors; //use impostors for far away avatars
+ static BOOL sShowFootPlane; // show foot collision plane reported by server
+ static BOOL sShowCollisionVolumes; // show skeletal collision volumes
+ static BOOL sVisibleInFirstPerson;
+ static S32 sNumLODChangesThisFrame;
+ static S32 sNumVisibleChatBubbles;
+ static BOOL sDebugInvisible;
+ static BOOL sShowAttachmentPoints;
+ static F32 sLODFactor; // user-settable LOD factor
+ static BOOL sJointDebug; // output total number of joints being touched for each avatar
+ static BOOL sDebugAvatarRotation;
+
+ //--------------------------------------------------------------------
+ // Region state
+ //--------------------------------------------------------------------
+public:
+ LLHost getObjectHost() const;
+
+ //--------------------------------------------------------------------
+ // Loading state
+ //--------------------------------------------------------------------
+public:
+ BOOL isFullyLoaded() const;
+ virtual BOOL updateIsFullyLoaded();
+ BOOL processFullyLoadedChange(bool loading);
+private:
+ BOOL mFullyLoaded;
+ BOOL mPreviousFullyLoaded;
+ BOOL mFullyLoadedInitialized;
+ S32 mFullyLoadedFrameCounter;
+ LLFrameTimer mFullyLoadedTimer;
+
+/** State
+ ** **
+ *******************************************************************************/
+
+/********************************************************************************
+ ** **
+ ** SKELETON
+ **/
+
+public:
+ void updateHeadOffset();
+ F32 getPelvisToFoot() const { return mPelvisToFoot; }
+ LLVector3 mHeadOffset; // current head position
+ LLViewerJoint mRoot;
+protected:
+ static BOOL parseSkeletonFile(const std::string& filename);
+ void buildCharacter();
+ BOOL loadAvatar();
+ BOOL setupBone(const LLVOAvatarBoneInfo* info, LLViewerJoint* parent, S32 &current_volume_num, S32 &current_joint_num);
+ BOOL buildSkeleton(const LLVOAvatarSkeletonInfo *info);
+private:
+ BOOL mIsBuilt; // state of deferred character building
+ S32 mNumJoints;
+ LLViewerJoint* mSkeleton;
- void updateVisibility();
- void updateAttachmentVisibility(U32 camera_mode);
- void clampAttachmentPositions();
- S32 getAttachmentCount(); // Warning: order(N) not order(1)
+ //--------------------------------------------------------------------
+ // Pelvis height adjustment members.
+ //--------------------------------------------------------------------
+public:
+ LLVector3 mBodySize;
+ S32 mLastSkeletonSerialNum;
+private:
+ F32 mPelvisToFoot;
- // HUD functions
- BOOL hasHUDAttachment() const;
- LLBBox getHUDBBox() const;
- void rebuildHUD();
+ //--------------------------------------------------------------------
+ // Cached pointers to well known joints
+ //--------------------------------------------------------------------
+public:
+ LLViewerJoint* mPelvisp;
+ LLViewerJoint* mTorsop;
+ LLViewerJoint* mChestp;
+ LLViewerJoint* mNeckp;
+ LLViewerJoint* mHeadp;
+ LLViewerJoint* mSkullp;
+ LLViewerJoint* mEyeLeftp;
+ LLViewerJoint* mEyeRightp;
+ LLViewerJoint* mHipLeftp;
+ LLViewerJoint* mHipRightp;
+ LLViewerJoint* mKneeLeftp;
+ LLViewerJoint* mKneeRightp;
+ LLViewerJoint* mAnkleLeftp;
+ LLViewerJoint* mAnkleRightp;
+ LLViewerJoint* mFootLeftp;
+ LLViewerJoint* mFootRightp;
+ LLViewerJoint* mWristLeftp;
+ LLViewerJoint* mWristRightp;
- /*virtual*/ LLDrawable* createDrawable(LLPipeline *pipeline);
- /*virtual*/ BOOL updateGeometry(LLDrawable *drawable);
+ //--------------------------------------------------------------------
+ // XML parse tree
+ //--------------------------------------------------------------------
+private:
+ static LLXmlTree sXMLTree; // avatar config file
+ static LLXmlTree sSkeletonXMLTree; // avatar skeleton file
+
+/** Skeleton
+ ** **
+ *******************************************************************************/
+
+/********************************************************************************
+ ** **
+ ** RENDERING
+ **/
+
+public:
+ U32 renderFootShadows();
+ U32 renderImpostor(LLColor4U color = LLColor4U(255,255,255,255));
+ U32 renderRigid();
+ U32 renderSkinned(EAvatarRenderPass pass);
+ U32 renderTransparent(BOOL first_pass);
+ void renderCollisionVolumes();
+ static void deleteCachedImages(bool clearAll=true);
+ static void destroyGL();
+ static void restoreGL();
+ BOOL mIsDummy; // for special views
+ S32 mSpecialRenderMode; // special lighting
+private:
+ BOOL mNeedsSkin; // avatar has been animated and verts have not been updated
+ S32 mUpdatePeriod;
+ S32 mNumInitFaces; //number of faces generated when creating the avatar drawable, does not inculde splitted faces due to long vertex buffer.
- /*virtual*/ void setPixelAreaAndAngle(LLAgent &agent);
- BOOL updateJointLODs();
+ //--------------------------------------------------------------------
+ // Morph masks
+ //--------------------------------------------------------------------
+public:
+ void invalidateMorphMasks(LLVOAvatarDefines::EBakedTextureIndex index = LLVOAvatarDefines::BAKED_NUM_INDICES);
+ BOOL morphMaskNeedsUpdate(LLVOAvatarDefines::EBakedTextureIndex index = LLVOAvatarDefines::BAKED_NUM_INDICES);
+ void addMaskedMorph(LLVOAvatarDefines::EBakedTextureIndex index, LLPolyMorphTarget* morph_target, BOOL invert, std::string layer);
+ void setMorphMasksValid(BOOL new_status, LLVOAvatarDefines::EBakedTextureIndex index = LLVOAvatarDefines::BAKED_NUM_INDICES);
+ void applyMorphMask(U8* tex_data, S32 width, S32 height, S32 num_components, LLVOAvatarDefines::EBakedTextureIndex index = LLVOAvatarDefines::BAKED_NUM_INDICES);
- virtual void updateRegion(LLViewerRegion *regionp);
+ //--------------------------------------------------------------------
+ // Visibility
+ //--------------------------------------------------------------------
+protected:
+ void updateVisibility();
+private:
+ U32 mVisibilityRank;
+ BOOL mVisible;
- virtual const LLVector3 getRenderPosition() const;
- virtual void updateDrawable(BOOL force_damped);
- void updateSpatialExtents(LLVector3& newMin, LLVector3 &newMax);
- void getSpatialExtents(LLVector3& newMin, LLVector3& newMax);
- BOOL isImpostor() const;
- BOOL needsImpostorUpdate() const;
+ //--------------------------------------------------------------------
+ // Shadowing
+ //--------------------------------------------------------------------
+public:
+ void updateShadowFaces();
+ LLDrawable* mShadow;
+private:
+ LLFace* mShadow0Facep;
+ LLFace* mShadow1Facep;
+ LLPointer<LLViewerImage> mShadowImagep;
+
+ //--------------------------------------------------------------------
+ // Impostors
+ //--------------------------------------------------------------------
+public:
+ BOOL isImpostor() const;
+ BOOL needsImpostorUpdate() const;
const LLVector3& getImpostorOffset() const;
const LLVector2& getImpostorDim() const;
- void getImpostorValues(LLVector3* extents, LLVector3& angle, F32& distance) const;
- void cacheImpostorValues();
- void setImpostorDim(const LLVector2& dim);
-
- //--------------------------------------------------------------------
- // LLCharacter interface
- //--------------------------------------------------------------------
-public:
- virtual const char *getAnimationPrefix() { return "avatar"; }
- virtual LLJoint *getRootJoint() { return &mRoot; }
- virtual LLVector3 getCharacterPosition();
- virtual LLQuaternion getCharacterRotation();
- virtual LLVector3 getCharacterVelocity();
- virtual LLVector3 getCharacterAngularVelocity();
- virtual F32 getTimeDilation();
- virtual void getGround(const LLVector3 &inPos, LLVector3 &outPos, LLVector3 &outNorm);
- virtual BOOL allocateCharacterJoints( U32 num );
- virtual LLJoint *getCharacterJoint( U32 num );
- virtual void requestStopMotion( LLMotion* motion );
- virtual F32 getPixelArea() const;
- virtual LLPolyMesh* getHeadMesh();
- virtual LLPolyMesh* getUpperBodyMesh();
- virtual LLVector3d getPosGlobalFromAgent(const LLVector3 &position);
- virtual LLVector3 getPosAgentFromGlobal(const LLVector3d &position);
- virtual void updateVisualParams();
- virtual BOOL startMotion(const LLUUID& id, F32 time_offset = 0.f);
- virtual BOOL stopMotion(const LLUUID& id, BOOL stop_immediate = FALSE);
- virtual void stopMotionFromSource(const LLUUID& source_id);
- virtual LLVector3 getVolumePos(S32 joint_index, LLVector3& volume_offset);
- virtual LLJoint* findCollisionVolume(U32 volume_id);
- virtual S32 getCollisionVolumeID(std::string &name);
- virtual void addDebugText(const std::string& text);
- virtual const LLUUID& getID();
- virtual LLJoint *getJoint( const std::string &name );
-
- //--------------------------------------------------------------------
- // Other public functions
- //--------------------------------------------------------------------
-public:
- static void onCustomizeStart();
- static void onCustomizeEnd();
-
-public:
- static void dumpTotalLocalTextureByteCount();
-protected:
- void getLocalTextureByteCount( S32* gl_byte_count );
+ void getImpostorValues(LLVector3* extents, LLVector3& angle, F32& distance) const;
+ void cacheImpostorValues();
+ void setImpostorDim(const LLVector2& dim);
+ static void resetImpostors();
+ static void updateImpostors();
+ LLRenderTarget mImpostor;
+ BOOL mNeedsImpostorUpdate;
+private:
+ LLVector3 mImpostorOffset;
+ LLVector2 mImpostorDim;
+ BOOL mNeedsAnimUpdate;
+ LLVector3 mImpostorExtents[2];
+ LLVector3 mImpostorAngle;
+ F32 mImpostorDistance;
+ F32 mImpostorPixelArea;
+ LLVector3 mLastAnimExtents[2];
+ //--------------------------------------------------------------------
+ // Wind rippling in clothes
+ //--------------------------------------------------------------------
public:
- LLMotion* findMotion(const LLUUID& id);
-
- BOOL isVisible();
- BOOL isSelf() const { return mIsSelf; }
- BOOL isCulled() const { return mCulled; }
+ LLVector4 mWindVec;
+ F32 mRipplePhase;
+ BOOL mBelowWater;
+private:
+ F32 mWindFreq;
+ LLFrameTimer mRippleTimer;
+ F32 mRippleTimeLast;
+ LLVector3 mRippleAccel;
+ LLVector3 mLastVel;
+ //--------------------------------------------------------------------
+ // Culling
+ //--------------------------------------------------------------------
public:
- static void cullAvatarsByPixelArea();
- void setVisibilityRank(U32 rank);
- U32 getVisibilityRank(); // unused
-protected:
- S32 getUnbakedPixelAreaRank();
+ static void cullAvatarsByPixelArea();
+ BOOL isCulled() const { return mCulled; }
+private:
+ BOOL mCulled;
+ //--------------------------------------------------------------------
+ // Freeze counter
+ //--------------------------------------------------------------------
public:
- void dumpLocalTextures();
- const LLUUID& grabLocalTexture(LLVOAvatarDefines::ETextureIndex index);
- BOOL canGrabLocalTexture(LLVOAvatarDefines::ETextureIndex index);
- BOOL isTextureDefined(U8 te) const;
- BOOL isTextureVisible(U8 te) const;
- void startAppearanceAnimation(BOOL set_by_user, BOOL play_sound);
-
- void setCompositeUpdatesEnabled(BOOL b);
-
- void addChat(const LLChat& chat);
- void clearChat();
- void startTyping() { mTyping = TRUE; mTypingTimer.reset(); }
- void stopTyping() { mTyping = FALSE; }
+ static void updateFreezeCounter(S32 counter = 0);
+private:
+ static S32 sFreezeCounter;
- // Returns "FirstName LastName"
- std::string getFullname() const;
+ //--------------------------------------------------------------------
+ // Constants
+ //--------------------------------------------------------------------
+public:
+ virtual LLViewerImage::EBoostLevel getAvatarBoostLevel() const { return LLViewerImage::BOOST_AVATAR; }
+ virtual LLViewerImage::EBoostLevel getAvatarBakedBoostLevel() const { return LLViewerImage::BOOST_AVATAR_BAKED; }
+ virtual S32 getTexImageSize() const;
+ virtual S32 getTexImageArea() const { return getTexImageSize()*getTexImageSize(); }
- BOOL updateCharacter(LLAgent &agent);
- void updateHeadOffset();
+/** Rendering
+ ** **
+ *******************************************************************************/
- F32 getPelvisToFoot() const { return mPelvisToFoot; }
+/********************************************************************************
+ ** **
+ ** TEXTURES
+ **/
+ //--------------------------------------------------------------------
+ // Loading status
+ //--------------------------------------------------------------------
public:
- BOOL isAnyAnimationSignaled(const LLUUID *anim_array, const S32 num_anims);
- void processAnimationStateChanges();
+ virtual BOOL isTextureDefined(LLVOAvatarDefines::ETextureIndex type, U32 index = 0) const;
+ BOOL isTextureVisible(LLVOAvatarDefines::ETextureIndex index) const;
protected:
- BOOL processSingleAnimationStateChange(const LLUUID &anim_id, BOOL start);
- void resetAnimations();
+ BOOL isFullyBaked();
+ static BOOL areAllNearbyInstancesBaked(S32& grey_avatars);
+ //--------------------------------------------------------------------
+ // Baked textures
+ //--------------------------------------------------------------------
public:
- void resolveHeightGlobal(const LLVector3d &inPos, LLVector3d &outPos, LLVector3 &outNorm);
- void resolveHeightAgent(const LLVector3 &inPos, LLVector3 &outPos, LLVector3 &outNorm);
- void resolveRayCollisionAgent(const LLVector3d start_pt, const LLVector3d end_pt, LLVector3d &out_pos, LLVector3 &out_norm);
-
- void slamPosition(); // Slam position to transmitted position (for teleport);
+ void releaseComponentTextures(); // ! BACKWARDS COMPATIBILITY !
+protected:
+ static void onBakedTextureMasksLoaded(BOOL success, LLViewerImage *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata);
+ static void onInitialBakedTextureLoaded(BOOL success, LLViewerImage *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata);
+ static void onBakedTextureLoaded(BOOL success, LLViewerImage *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata);
+ virtual void removeMissingBakedTextures();
+ void useBakedTexture(const LLUUID& id);
- // morph targets and such
- void processAvatarAppearance( LLMessageSystem* mesgsys );
- void onFirstTEMessageReceived();
- void updateSexDependentLayerSets( BOOL set_by_user );
- void dirtyMesh(); // Dirty the avatar mesh
- void hideSkirt();
+ typedef std::deque<LLMaskedMorph *> morph_list_t;
+ struct BakedTextureData
+ {
+ LLUUID mLastTextureIndex;
+ LLTexLayerSet* mTexLayerSet; // Only exists for self
+ bool mIsLoaded;
+ bool mIsUsed;
+ LLVOAvatarDefines::ETextureIndex mTextureIndex;
+ U32 mMaskTexName;
+ // Stores pointers to the joint meshes that this baked texture deals with
+ std::vector< LLViewerJointMesh * > mMeshes; // std::vector<LLViewerJointMesh> mJoints[i]->mMeshParts
+ morph_list_t mMaskedMorphs;
+ BOOL mMorphMasksValid;
+ };
+ typedef std::vector<BakedTextureData> bakedtexturedata_vec_t;
+ bakedtexturedata_vec_t mBakedTextureDatas;
- virtual void setParent(LLViewerObject* parent);
- virtual void addChild(LLViewerObject *childp);
- virtual void removeChild(LLViewerObject *childp);
+ //--------------------------------------------------------------------
+ // Local Textures
+ //--------------------------------------------------------------------
+protected:
+ virtual void setLocalTexture(LLVOAvatarDefines::ETextureIndex type, LLViewerImage* tex, BOOL baked_version_exits, U32 index = 0);
+ virtual void addLocalTextureStats(LLVOAvatarDefines::ETextureIndex type, LLViewerImage* imagep, F32 texel_area_ratio, BOOL rendered, BOOL covered_by_baked, U32 index = 0);
- LLViewerJointAttachment* getTargetAttachmentPoint(LLViewerObject* viewer_object);
- BOOL attachObject(LLViewerObject *viewer_object);
- BOOL detachObject(LLViewerObject *viewer_object);
- void lazyAttach();
-
- void sitOnObject(LLViewerObject *sit_object);
- void getOffObject();
-
- BOOL isWearingAttachment( const LLUUID& inv_item_id );
- LLViewerObject* getWornAttachment( const LLUUID& inv_item_id );
- const std::string getAttachedPointName(const LLUUID& inv_item_id);
-
- static LLVOAvatar* findAvatarFromAttachment( LLViewerObject* obj );
-
- void updateMeshTextures();
-
- //--------------------------------------------------------------------
- // texture compositing (used only by the LLTexLayer series of classes)
- //--------------------------------------------------------------------
-public:
- LLColor4 getGlobalColor( const std::string& color_name );
- BOOL isLocalTextureDataAvailable( LLTexLayerSet* layerset );
- BOOL isLocalTextureDataFinal( LLTexLayerSet* layerset );
- LLVOAvatarDefines::ETextureIndex getBakedTE( LLTexLayerSet* layerset );
- void updateComposites();
- void onGlobalColorChanged( LLTexGlobalColor* global_color, BOOL set_by_user );
- BOOL getLocalTextureRaw( LLVOAvatarDefines::ETextureIndex index, LLImageRaw* image_raw_pp );
- BOOL getLocalTextureGL( LLVOAvatarDefines::ETextureIndex index, LLImageGL** image_gl_pp );
- const LLUUID& getLocalTextureID( LLVOAvatarDefines::ETextureIndex index );
- LLGLuint getScratchTexName( LLGLenum format, U32* texture_bytes );
- BOOL bindScratchTexture( LLGLenum format );
- void invalidateComposite( LLTexLayerSet* layerset, BOOL set_by_user );
- void invalidateAll();
- void forceBakeAllTextures(bool slam_for_debug = false);
- static void processRebakeAvatarTextures(LLMessageSystem* msg, void**);
- void setNewBakedTexture( LLVOAvatarDefines::ETextureIndex i, const LLUUID& uuid );
- void setCachedBakedTexture( LLVOAvatarDefines::ETextureIndex i, const LLUUID& uuid );
- void releaseUnnecessaryTextures();
- void requestLayerSetUploads();
- bool hasPendingBakedUploads();
- static void onLocalTextureLoaded( BOOL succcess, LLViewerImage *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata );
- static void dumpArchetypeXML( void* );
- static void dumpScratchTextureByteCount();
- static void dumpBakedStatus();
- static void deleteCachedImages(bool clearAll=true);
- static void destroyGL();
- static void restoreGL();
- static void resetImpostors();
- static enum EWearableType getTEWearableType(LLVOAvatarDefines::ETextureIndex te );
- static LLUUID getDefaultTEImageID(LLVOAvatarDefines::ETextureIndex te );
- static void onChangeSelfInvisible(BOOL newvalue);
- void setInvisible(BOOL newvalue);
- static LLColor4 getDummyColor();
+ //--------------------------------------------------------------------
+ // Texture accessors
+ //--------------------------------------------------------------------
+private:
+ virtual void setImage(const U8 te, LLViewerImage *imagep);
+ virtual LLViewerImage* getImage(const U8 te) const;
+ virtual const LLTextureEntry* getTexEntry(const U8 te_num) const;
+ virtual void setTexEntry(const U8 index, const LLTextureEntry &te);
//--------------------------------------------------------------------
- // Clothing colors (conventience functions to access visual parameters
+ // Layers
//--------------------------------------------------------------------
-public:
- void setClothesColor( LLVOAvatarDefines::ETextureIndex te, const LLColor4& new_color, BOOL set_by_user );
- LLColor4 getClothesColor( LLVOAvatarDefines::ETextureIndex te );
- BOOL teToColorParams( LLVOAvatarDefines::ETextureIndex te, const char* param_name[3] );
+protected:
+ void deleteLayerSetCaches(bool clearAll = true);
+ void addBakedTextureStats(LLViewerImage* imagep, F32 pixel_area, F32 texel_area_ratio, S32 boost_level);
- BOOL isWearingWearableType( EWearableType type );
- void wearableUpdated( EWearableType type );
+ //--------------------------------------------------------------------
+ // Composites
+ //--------------------------------------------------------------------
+public:
+ virtual void invalidateComposite(LLTexLayerSet* layerset, BOOL set_by_user);
+ virtual void invalidateAll();
+ virtual void setCompositeUpdatesEnabled(BOOL b);
//--------------------------------------------------------------------
- // texture compositing
+ // Static texture/mesh/baked dictionary
//--------------------------------------------------------------------
public:
- void setLocTexTE( U8 te, LLViewerImage* image, BOOL set_by_user );
- void setupComposites();
+ static BOOL isIndexLocalTexture(LLVOAvatarDefines::ETextureIndex i);
+ static BOOL isIndexBakedTexture(LLVOAvatarDefines::ETextureIndex i);
+private:
+ static const LLVOAvatarDefines::LLVOAvatarDictionary *getDictionary() { return sAvatarDictionary; }
+ static LLVOAvatarDefines::LLVOAvatarDictionary* sAvatarDictionary;
+ static LLVOAvatarSkeletonInfo* sAvatarSkeletonInfo;
+ static LLVOAvatarXmlInfo* sAvatarXmlInfo;
//--------------------------------------------------------------------
- // Handling partially loaded avatars (Ruth)
+ // Messaging
//--------------------------------------------------------------------
public:
- BOOL isFullyLoaded();
- BOOL updateIsFullyLoaded();
+ void onFirstTEMessageReceived();
+private:
+ BOOL mFirstTEMessageReceived;
+ BOOL mFirstAppearanceMessageReceived;
+
+/** Textures
+ ** **
+ *******************************************************************************/
+
+/********************************************************************************
+ ** **
+ ** MESHES
+ **/
+
+public:
+ void updateMeshTextures();
+ void updateSexDependentLayerSets(BOOL set_by_user);
+ void dirtyMesh(); // Dirty the avatar mesh
+ void updateMeshData();
+protected:
+ void releaseMeshData();
+ /*virtual*/ void restoreMeshData();
private:
- BOOL mFullyLoaded;
- BOOL mPreviousFullyLoaded;
- BOOL mFullyLoadedInitialized;
- S32 mFullyLoadedFrameCounter;
- LLFrameTimer mFullyLoadedTimer;
+ BOOL mDirtyMesh;
+
+ typedef std::multimap<std::string, LLPolyMesh*> polymesh_map_t;
+ polymesh_map_t mMeshes;
+ std::vector<LLViewerJoint *> mMeshLOD;
+
+ //--------------------------------------------------------------------
+ // Destroy invisible mesh
+ //--------------------------------------------------------------------
+protected:
+ BOOL mMeshValid;
+ LLFrameTimer mMeshInvisibleTime;
- LLCachedControl<bool> mDebugAvatarRotation; // show animation debug info
+/** Meshes
+ ** **
+ *******************************************************************************/
+
+/********************************************************************************
+ ** **
+ ** APPEARANCE
+ **/
+
+public:
+ void processAvatarAppearance(LLMessageSystem* mesgsys);
+ void hideSkirt();
+ void startAppearanceAnimation(BOOL set_by_user, BOOL play_sound);
//--------------------------------------------------------------------
- // Collision Volumes
+ // Appearance morphing
//--------------------------------------------------------------------
public:
- S32 mNumCollisionVolumes;
- LLViewerJointCollisionVolume* mCollisionVolumes;
+ BOOL mAppearanceAnimating;
+private:
+ LLFrameTimer mAppearanceMorphTimer;
+ BOOL mAppearanceAnimSetByUser;
+ F32 mLastAppearanceBlendTime;
//--------------------------------------------------------------------
- // cached pointers to well known joints
+ // Clothing colors (convenience functions to access visual parameters)
//--------------------------------------------------------------------
public:
- LLViewerJoint* mPelvisp;
- LLViewerJoint* mTorsop;
- LLViewerJoint* mChestp;
- LLViewerJoint* mNeckp;
- LLViewerJoint* mHeadp;
- LLViewerJoint* mSkullp;
- LLViewerJoint* mEyeLeftp;
- LLViewerJoint* mEyeRightp;
- LLViewerJoint* mHipLeftp;
- LLViewerJoint* mHipRightp;
- LLViewerJoint* mKneeLeftp;
- LLViewerJoint* mKneeRightp;
- LLViewerJoint* mAnkleLeftp;
- LLViewerJoint* mAnkleRightp;
- LLViewerJoint* mFootLeftp;
- LLViewerJoint* mFootRightp;
- LLViewerJoint* mWristLeftp;
- LLViewerJoint* mWristRightp;
+ void setClothesColor(LLVOAvatarDefines::ETextureIndex te, const LLColor4& new_color, BOOL set_by_user);
+ LLColor4 getClothesColor(LLVOAvatarDefines::ETextureIndex te);
+ BOOL teToColorParams(LLVOAvatarDefines::ETextureIndex te, const char* param_name[3]);
//--------------------------------------------------------------------
- // impostor state
+ // Global colors
//--------------------------------------------------------------------
public:
- LLRenderTarget mImpostor;
- BOOL mNeedsImpostorUpdate;
+ LLColor4 getGlobalColor(const std::string& color_name ) const;
+ void onGlobalColorChanged(const LLTexGlobalColor* global_color, BOOL set_by_user);
private:
- LLVector3 mImpostorOffset;
- LLVector2 mImpostorDim;
- BOOL mNeedsAnimUpdate;
- LLVector3 mImpostorExtents[2];
- LLVector3 mImpostorAngle;
- F32 mImpostorDistance;
- F32 mImpostorPixelArea;
- LLVector3 mLastAnimExtents[2];
+ LLTexGlobalColor* mTexSkinColor;
+ LLTexGlobalColor* mTexHairColor;
+ LLTexGlobalColor* mTexEyeColor;
//--------------------------------------------------------------------
- // Misc Render State
+ // Visibility
//--------------------------------------------------------------------
public:
- BOOL mIsDummy; // For special views
- S32 mSpecialRenderMode; // Special lighting
+ BOOL isVisible() const;
+ void setVisibilityRank(U32 rank);
+ U32 getVisibilityRank() const { return mVisibilityRank; } // unused
+ static S32 sNumVisibleAvatars; // Number of instances of this class
+ static LLColor4 getDummyColor();
+/** Appearance
+ ** **
+ *******************************************************************************/
+
+/********************************************************************************
+ ** **
+ ** WEARABLES
+ **/
+public:
+ BOOL isWearingWearableType(EWearableType type ) const;
+
//--------------------------------------------------------------------
- // animation state data
+ // Attachments
//--------------------------------------------------------------------
public:
- typedef std::map<LLUUID, S32>::iterator AnimIterator;
-
- std::map<LLUUID, S32> mSignaledAnimations; // requested state of Animation name/value
- std::map<LLUUID, S32> mPlayingAnimations; // current state of Animation name/value
-
- typedef std::multimap<LLUUID, LLUUID> AnimationSourceMap;
- typedef AnimationSourceMap::iterator AnimSourceIterator;
- AnimationSourceMap mAnimationSources; // object ids that triggered anim ids
+ void clampAttachmentPositions();
+ virtual LLViewerJointAttachment* attachObject(LLViewerObject *viewer_object);
+ BOOL detachObject(LLViewerObject *viewer_object);
+ static LLVOAvatar* findAvatarFromAttachment(LLViewerObject* obj);
+protected:
+ LLViewerJointAttachment* getTargetAttachmentPoint(LLViewerObject* viewer_object);
+ void lazyAttach();
//--------------------------------------------------------------------
- // Shadowing
+ // Map of attachment points, by ID
//--------------------------------------------------------------------
public:
- void updateShadowFaces();
- LLDrawable* mShadow;
-private:
- LLFace* mShadow0Facep;
- LLFace* mShadow1Facep;
- LLPointer<LLViewerImage> mShadowImagep;
+ S32 getAttachmentCount(); // Warning: order(N) not order(1) // currently used only by -self
+ typedef std::map<S32, LLViewerJointAttachment*> attachment_map_t;
+ attachment_map_t mAttachmentPoints;
+ std::vector<LLPointer<LLViewerObject> > mPendingAttachment;
//--------------------------------------------------------------------
- // Keeps track of foot step state for generating sounds
+ // HUD functions
//--------------------------------------------------------------------
public:
- void setFootPlane(const LLVector4 &plane) { mFootPlane = plane; }
- LLVector4 mFootPlane;
-private:
- BOOL mWasOnGroundLeft;
- BOOL mWasOnGroundRight;
+ BOOL hasHUDAttachment() const;
+ LLBBox getHUDBBox() const;
+ void rebuildHUD();
+ void resetHUDAttachments();
+
+/** Wearables
+ ** **
+ *******************************************************************************/
+
+/********************************************************************************
+ ** **
+ ** ACTIONS
+ **/
//--------------------------------------------------------------------
- // Pelvis height adjustment members.
+ // Animations
//--------------------------------------------------------------------
public:
- LLVector3 mBodySize;
- S32 mLastSkeletonSerialNum;
+ BOOL isAnyAnimationSignaled(const LLUUID *anim_array, const S32 num_anims) const;
+ void processAnimationStateChanges();
+protected:
+ BOOL processSingleAnimationStateChange(const LLUUID &anim_id, BOOL start);
+ void resetAnimations();
private:
- F32 mPelvisToFoot;
+ LLTimer mAnimTimer;
+ F32 mTimeLast;
//--------------------------------------------------------------------
- // Display the name, then optionally fade it out
+ // Animation state data
//--------------------------------------------------------------------
public:
- LLFrameTimer mChatTimer;
- LLPointer<LLHUDText> mNameText;
-private:
- LLFrameTimer mTimeVisible;
- std::deque<LLChat> mChats;
- BOOL mTyping;
- LLFrameTimer mTypingTimer;
+ typedef std::map<LLUUID, S32>::iterator AnimIterator;
+ std::map<LLUUID, S32> mSignaledAnimations; // requested state of Animation name/value
+ std::map<LLUUID, S32> mPlayingAnimations; // current state of Animation name/value
+
+ typedef std::multimap<LLUUID, LLUUID> AnimationSourceMap;
+ typedef AnimationSourceMap::iterator AnimSourceIterator;
+ AnimationSourceMap mAnimationSources; // object ids that triggered anim ids
//--------------------------------------------------------------------
- // wind rippling in clothes
+ // Chat
//--------------------------------------------------------------------
public:
- LLVector4 mWindVec;
- F32 mRipplePhase;
- BOOL mBelowWater;
+ void addChat(const LLChat& chat);
+ void clearChat();
+ void startTyping() { mTyping = TRUE; mTypingTimer.reset(); }
+ void stopTyping() { mTyping = FALSE; }
private:
- F32 mWindFreq;
- LLFrameTimer mRippleTimer;
- F32 mRippleTimeLast;
- LLVector3 mRippleAccel;
- LLVector3 mLastVel;
+ BOOL mVisibleChat;
//--------------------------------------------------------------------
- // appearance morphing
+ // Lip synch morphs
//--------------------------------------------------------------------
-public:
- BOOL mAppearanceAnimating;
private:
- LLFrameTimer mAppearanceMorphTimer;
- BOOL mAppearanceAnimSetByUser;
- F32 mLastAppearanceBlendTime;
+ bool mLipSyncActive; // we're morphing for lip sync
+ LLVisualParam* mOohMorph; // cached pointers morphs for lip sync
+ LLVisualParam* mAahMorph; // cached pointers morphs for lip sync
//--------------------------------------------------------------------
- // Attachments
+ // Flight
//--------------------------------------------------------------------
public:
- // map of attachment points, by ID
- typedef std::map<S32, LLViewerJointAttachment*> attachment_map_t;
- attachment_map_t mAttachmentPoints;
- std::vector<LLPointer<LLViewerObject> > mPendingAttachment;
+ BOOL mInAir;
+ LLFrameTimer mTimeInAir;
+
+/** Actions
+ ** **
+ *******************************************************************************/
+
+/********************************************************************************
+ ** **
+ ** PHYSICS
+ **/
+
+private:
+ F32 mSpeedAccum; // measures speed (for diagnostics mostly).
+ BOOL mTurning; // controls hysteresis on avatar rotation
+ F32 mSpeed; // misc. animation repeated state
//--------------------------------------------------------------------
- // static preferences that are controlled by user settings/menus
+ // Collision volumes
//--------------------------------------------------------------------
public:
- static S32 sRenderName;
- static BOOL sRenderGroupTitles;
- static S32 sMaxVisible;
- static F32 sRenderDistance; //distance at which avatars will render (affected by control "RenderAvatarMaxVisible")
- static BOOL sShowAnimationDebug; // show animation debug info
- static BOOL sUseImpostors; //use impostors for far away avatars
- static BOOL sShowFootPlane; // show foot collision plane reported by server
- static BOOL sVisibleInFirstPerson;
- static S32 sNumLODChangesThisFrame;
- static S32 sNumVisibleChatBubbles;
- static BOOL sDebugInvisible;
- static BOOL sShowAttachmentPoints;
- static F32 sLODFactor; // user-settable LOD factor
- static BOOL sJointDebug; // output total number of joints being touched for each avatar
+ S32 mNumCollisionVolumes;
+ LLViewerJointCollisionVolume* mCollisionVolumes;
+protected:
+ BOOL allocateCollisionVolumes(U32 num);
- static S32 sNumVisibleAvatars; // Number of instances of this class
-
//--------------------------------------------------------------------
- // Miscellaneous public variables.
+ // Dimensions
//--------------------------------------------------------------------
public:
- BOOL mInAir;
- LLFrameTimer mTimeInAir;
- LLVector3 mHeadOffset; // current head position
- LLViewerJoint mRoot; // avatar skeleton
- BOOL mIsSitting; // sitting state
+ void resolveHeightGlobal(const LLVector3d &inPos, LLVector3d &outPos, LLVector3 &outNorm);
+ void resolveHeightAgent(const LLVector3 &inPos, LLVector3 &outPos, LLVector3 &outNorm);
+ void resolveRayCollisionAgent(const LLVector3d start_pt, const LLVector3d end_pt, LLVector3d &out_pos, LLVector3 &out_norm);
+ void slamPosition(); // Slam position to transmitted position (for teleport);
+protected:
+ void computeBodySize();
//--------------------------------------------------------------------
- // Private member variables.
+ // Material being stepped on
//--------------------------------------------------------------------
private:
- BOOL mIsSelf; // True if this avatar is for this viewer's agent
+ BOOL mStepOnLand;
+ U8 mStepMaterial;
+ LLVector3 mStepObjectVelocity;
- LLViewerJoint *mScreenp; // special purpose joint for HUD attachments
- BOOL mIsBuilt; // state of deferred character building
- F32 mSpeedAccum; // measures speed (for diagnostics mostly).
-
-
- // LLFrameTimer mUpdateLODTimer; // controls frequency of LOD change calculations
- BOOL mDirtyMesh;
- BOOL mTurning; // controls hysteresis on avatar rotation
- F32 mSpeed; // misc. animation repeated state
+/** Physics
+ ** **
+ *******************************************************************************/
- // Keep track of the material being stepped on
- BOOL mStepOnLand;
- U8 mStepMaterial;
- LLVector3 mStepObjectVelocity;
+/********************************************************************************
+ ** **
+ ** HIERARCHY
+ **/
- // Destroy mesh data after being invisible for a while
- BOOL mMeshValid;
- BOOL mVisible;
- LLFrameTimer mMeshInvisibleTime;
+public:
+ virtual void setParent(LLViewerObject* parent);
+ virtual void addChild(LLViewerObject *childp);
+ virtual void removeChild(LLViewerObject *childp);
- // Lip synch morph stuff
- bool mLipSyncActive; // we're morphing for lip sync
- LLVisualParam* mOohMorph; // cached pointers morphs for lip sync
- LLVisualParam* mAahMorph; // cached pointers morphs for lip sync
+ //--------------------------------------------------------------------
+ // Sitting
+ //--------------------------------------------------------------------
+public:
+ void sitOnObject(LLViewerObject *sit_object);
+ void getOffObject();
+ BOOL mIsSitting;
- // Skeleton for skinned avatar
- S32 mNumJoints;
- LLViewerJoint* mSkeleton;
+/** Hierarchy
+ ** **
+ *******************************************************************************/
- // Scratch textures used for compositing
- static LLMap< LLGLenum, LLGLuint*> sScratchTexNames;
- static LLMap< LLGLenum, F32*> sScratchTexLastBindTime;
- static S32 sScratchTexBytes;
+/********************************************************************************
+ ** **
+ ** NAME
+ **/
- // Global table of sound ids per material, and the ground
- const static LLUUID sStepSounds[LL_MCODE_END];
- const static LLUUID sStepSoundOnLand;
-
- // Xml parse tree of avatar config file
- static LLXmlTree sXMLTree;
- // Xml parse tree of avatar skeleton file
- static LLXmlTree sSkeletonXMLTree;
+public:
+ std::string getFullname() const; // Returns "FirstName LastName"
+protected:
+ static void getAnimLabels(LLDynamicArray<std::string>* labels);
+ static void getAnimNames(LLDynamicArray<std::string>* names);
+private:
+ LLWString mNameString;
+ std::string mTitle;
+ BOOL mNameAway;
+ BOOL mNameBusy;
+ BOOL mNameMute;
+ BOOL mNameAppearance;
+ BOOL mRenderGroupTitles;
- // Voice Visualizer is responsible for detecting the user's voice signal, and when the
- // user speaks, it puts a voice symbol over the avatar's head, and triggering gesticulations
- LLVoiceVisualizer* mVoiceVisualizer;
- int mCurrentGesticulationLevel;
-
- // Animation timer
- LLTimer mAnimTimer;
- F32 mTimeLast;
-
- LLPointer<LLHUDEffectSpiral> mBeam;
- LLFrameTimer mBeamTimer;
-
- F32 mAdjustedPixelArea;
-
- LLWString mNameString;
- std::string mTitle;
- BOOL mNameAway;
- BOOL mNameBusy;
- BOOL mNameMute;
- BOOL mNameAppearance;
- BOOL mVisibleChat;
- BOOL mRenderGroupTitles;
-
- std::string mDebugText;
- U64 mLastRegionHandle;
- LLFrameTimer mRegionCrossingTimer;
- S32 mRegionCrossingCount;
-
//--------------------------------------------------------------------
- // local textures for compositing.
+ // Display the name (then optionally fade it out)
//--------------------------------------------------------------------
+public:
+ LLFrameTimer mChatTimer;
+ LLPointer<LLHUDText> mNameText;
private:
- LLUUID mSavedTE[ LLVOAvatarDefines::TEX_NUM_INDICES ];
- BOOL mFirstTEMessageReceived;
- BOOL mFirstAppearanceMessageReceived;
- BOOL mHasBakedHair;
-
- BOOL mCulled;
- U32 mVisibilityRank;
- F32 mMinPixelArea; // debug
- F32 mMaxPixelArea; // debug
- BOOL mHasGrey; // debug
-
+ LLFrameTimer mTimeVisible;
+ std::deque<LLChat> mChats;
+ BOOL mTyping;
+ LLFrameTimer mTypingTimer;
+
+/** Name
+ ** **
+ *******************************************************************************/
+
+/********************************************************************************
+ ** **
+ ** SOUNDS
+ **/
+
//--------------------------------------------------------------------
- // Global Colors
+ // Voice visualizer
//--------------------------------------------------------------------
-private:
- LLTexGlobalColor* mTexSkinColor;
- LLTexGlobalColor* mTexHairColor;
- LLTexGlobalColor* mTexEyeColor;
-
- BOOL mNeedsSkin; //if TRUE, avatar has been animated and verts have not been updated
- S32 mUpdatePeriod;
+public:
+ // Responsible for detecting the user's voice signal (and when the
+ // user speaks, it puts a voice symbol over the avatar's head) and gesticulations
+ LLVoiceVisualizer* mVoiceVisualizer;
+ int mCurrentGesticulationLevel;
//--------------------------------------------------------------------
- // Internal functions
+ // Step sound
//--------------------------------------------------------------------
protected:
- void buildCharacter();
- void releaseMeshData();
- void restoreMeshData();
- void updateMeshData();
- void computeBodySize();
- const LLUUID& getStepSound() const;
- BOOL needsRenderBeam();
-
- BOOL allocateCollisionVolumes( U32 num );
- void resetHUDAttachments();
- static void getAnimLabels( LLDynamicArray<std::string>* labels );
- static void getAnimNames( LLDynamicArray<std::string>* names );
+ const LLUUID& getStepSound() const;
+private:
+ // Global table of sound ids per material, and the ground
+ const static LLUUID sStepSounds[LL_MCODE_END];
+ const static LLUUID sStepSoundOnLand;
//--------------------------------------------------------------------
- // Textures and Layers
+ // Foot step state (for generating sounds)
//--------------------------------------------------------------------
-protected:
- BOOL loadSkeletonNode();
- BOOL loadMeshNodes();
- BOOL isFullyBaked();
- void deleteLayerSetCaches(bool clearAll = true);
- static BOOL areAllNearbyInstancesBaked(S32& grey_avatars);
- static void onBakedTextureMasksLoaded(BOOL success, LLViewerImage *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata);
- void setLocalTexture(LLVOAvatarDefines::ETextureIndex i, LLViewerImage* tex, BOOL baked_version_exits);
- void requestLayerSetUpdate(LLVOAvatarDefines::ETextureIndex i);
- void addLocalTextureStats(LLVOAvatarDefines::ETextureIndex i, LLViewerImage* imagep, F32 texel_area_ratio, BOOL rendered, BOOL covered_by_baked);
- void addBakedTextureStats( LLViewerImage* imagep, F32 pixel_area, F32 texel_area_ratio, S32 boost_level);
- static void onInitialBakedTextureLoaded( BOOL success, LLViewerImage *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata );
- static void onBakedTextureLoaded(BOOL success, LLViewerImage *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata);
- void useBakedTexture(const LLUUID& id);
- void dumpAvatarTEs(const std::string& context);
- void removeMissingBakedTextures();
- LLTexLayerSet* getLayerSet(LLVOAvatarDefines::ETextureIndex index) const;
- LLHost getObjectHost() const;
- S32 getLocalDiscardLevel(LLVOAvatarDefines::ETextureIndex index);
public:
- static void updateFreezeCounter(S32 counter = 0 );
+ void setFootPlane(const LLVector4 &plane) { mFootPlane = plane; }
+ LLVector4 mFootPlane;
private:
- static S32 sFreezeCounter;
+ BOOL mWasOnGroundLeft;
+ BOOL mWasOnGroundRight;
+
+/** Sounds
+ ** **
+ *******************************************************************************/
+
+/********************************************************************************
+ ** **
+ ** DIAGNOSTICS
+ **/
- //-----------------------------------------------------------------------------------------------
- // Avatar skeleton setup.
- //-----------------------------------------------------------------------------------------------
-private:
- BOOL loadAvatar();
- BOOL setupBone(const LLVOAvatarBoneInfo* info, LLViewerJoint* parent, S32 &current_volume_num, S32 &current_joint_num);
- BOOL buildSkeleton(const LLVOAvatarSkeletonInfo *info);
-
- //-----------------------------------------------------------------------------------------------
- // Per-avatar information about texture data.
- // To-do: Move this to private implementation class
- //-----------------------------------------------------------------------------------------------
+public:
+ static void dumpArchetypeXML(void*);
+ static void dumpBakedStatus();
+ const std::string getBakedStatusForPrintout() const;
+ void dumpAvatarTEs(const std::string& context);
+
+ static F32 sUnbakedTime; // Total seconds with >=1 unbaked avatars
+ static F32 sUnbakedUpdateTime; // Last time stats were updated (to prevent multiple updates per frame)
+ static F32 sGreyTime; // Total seconds with >=1 grey avatars
+ static F32 sGreyUpdateTime; // Last time stats were updated (to prevent multiple updates per frame)
+protected:
+ S32 getUnbakedPixelAreaRank();
+ BOOL mHasGrey;
private:
- struct BakedTextureData
+ F32 mMinPixelArea;
+ F32 mMaxPixelArea;
+ F32 mAdjustedPixelArea;
+ std::string mDebugText;
+
+/** Diagnostics
+ ** **
+ *******************************************************************************/
+
+/********************************************************************************
+ ** **
+ ** SUPPORT CLASSES
+ **/
+
+protected: // Shared with LLVOAvatarSelf
+
+ struct LLVOAvatarXmlInfo
{
- LLUUID mLastTextureIndex;
- LLTexLayerSet* mTexLayerSet;
- bool mIsLoaded;
- LLVOAvatarDefines::ETextureIndex mTextureIndex;
- U32 mMaskTexName;
- // Stores pointers to the joint meshes that this baked texture deals with
- std::vector< LLViewerJointMesh * > mMeshes; // std::vector<LLViewerJointMesh> mJoints[i]->mMeshParts
+ LLVOAvatarXmlInfo();
+ ~LLVOAvatarXmlInfo();
+
+ BOOL parseXmlSkeletonNode(LLXmlTreeNode* root);
+ BOOL parseXmlMeshNodes(LLXmlTreeNode* root);
+ BOOL parseXmlColorNodes(LLXmlTreeNode* root);
+ BOOL parseXmlLayerNodes(LLXmlTreeNode* root);
+ BOOL parseXmlDriverNodes(LLXmlTreeNode* root);
+ BOOL parseXmlMorphNodes(LLXmlTreeNode* root);
+
+ struct LLVOAvatarMeshInfo
+ {
+ typedef std::pair<LLPolyMorphTargetInfo*,BOOL> morph_info_pair_t;
+ typedef std::vector<morph_info_pair_t> morph_info_list_t;
+
+ LLVOAvatarMeshInfo() : mLOD(0), mMinPixelArea(.1f) {}
+ ~LLVOAvatarMeshInfo()
+ {
+ morph_info_list_t::iterator iter;
+ for (iter = mPolyMorphTargetInfoList.begin(); iter != mPolyMorphTargetInfoList.end(); iter++)
+ {
+ delete iter->first;
+ }
+ mPolyMorphTargetInfoList.clear();
+ }
+
+ std::string mType;
+ S32 mLOD;
+ std::string mMeshFileName;
+ std::string mReferenceMeshName;
+ F32 mMinPixelArea;
+ morph_info_list_t mPolyMorphTargetInfoList;
+ };
+ typedef std::vector<LLVOAvatarMeshInfo*> mesh_info_list_t;
+ mesh_info_list_t mMeshInfoList;
+
+ typedef std::vector<LLPolySkeletalDistortionInfo*> skeletal_distortion_info_list_t;
+ skeletal_distortion_info_list_t mSkeletalDistortionInfoList;
+
+ struct LLVOAvatarAttachmentInfo
+ {
+ LLVOAvatarAttachmentInfo()
+ : mGroup(-1), mAttachmentID(-1), mPieMenuSlice(-1), mVisibleFirstPerson(FALSE),
+ mIsHUDAttachment(FALSE), mHasPosition(FALSE), mHasRotation(FALSE) {}
+ std::string mName;
+ std::string mJointName;
+ LLVector3 mPosition;
+ LLVector3 mRotationEuler;
+ S32 mGroup;
+ S32 mAttachmentID;
+ S32 mPieMenuSlice;
+ BOOL mVisibleFirstPerson;
+ BOOL mIsHUDAttachment;
+ BOOL mHasPosition;
+ BOOL mHasRotation;
+ };
+ typedef std::vector<LLVOAvatarAttachmentInfo*> attachment_info_list_t;
+ attachment_info_list_t mAttachmentInfoList;
+
+ LLTexGlobalColorInfo *mTexSkinColorInfo;
+ LLTexGlobalColorInfo *mTexHairColorInfo;
+ LLTexGlobalColorInfo *mTexEyeColorInfo;
+
+ typedef std::vector<LLTexLayerSetInfo*> layer_info_list_t;
+ layer_info_list_t mLayerInfoList;
+
+ typedef std::vector<LLDriverParamInfo*> driver_info_list_t;
+ driver_info_list_t mDriverInfoList;
+
+ struct LLVOAvatarMorphInfo
+ {
+ LLVOAvatarMorphInfo()
+ : mInvert(FALSE) {}
+ std::string mName;
+ std::string mRegion;
+ std::string mLayer;
+ BOOL mInvert;
+ };
+
+ typedef std::vector<LLVOAvatarMorphInfo*> morph_info_list_t;
+ morph_info_list_t mMorphMaskInfoList;
};
- typedef std::vector<BakedTextureData> bakedtexturedata_vec_t;
- bakedtexturedata_vec_t mBakedTextureData;
- struct LocalTextureData
+ struct LLMaskedMorph
{
- LocalTextureData() : mIsBakedReady(FALSE), mDiscard(MAX_DISCARD_LEVEL+1), mImage(NULL)
- {}
- LLPointer<LLViewerImage> mImage;
- BOOL mIsBakedReady;
- S32 mDiscard;
+ LLMaskedMorph(LLPolyMorphTarget *morph_target, BOOL invert, std::string layer) :
+ mMorphTarget(morph_target),
+ mInvert(invert),
+ mLayer(layer)
+ {
+ morph_target->addPendingMorphMask();
+ }
+
+ LLPolyMorphTarget *mMorphTarget;
+ BOOL mInvert;
+ std::string mLayer;
};
- typedef std::map<LLVOAvatarDefines::ETextureIndex, LocalTextureData> localtexture_map_t;
- localtexture_map_t mLocalTextureData;
-
- typedef std::multimap<std::string, LLPolyMesh*> polymesh_map_t;
- polymesh_map_t mMeshes;
- std::vector<LLViewerJoint *> mMeshLOD;
- S32 mNumInitFaces ; //number of faces generated when creating the avatar drawable, does not inculde splitted faces due to long vertex buffer.
-
- //-----------------------------------------------------------------------------------------------
- // Static texture/mesh/baked dictionary for avatars
- //-----------------------------------------------------------------------------------------------
-public:
- static BOOL isIndexLocalTexture(LLVOAvatarDefines::ETextureIndex i);
- static BOOL isIndexBakedTexture(LLVOAvatarDefines::ETextureIndex i);
-private:
- static const LLVOAvatarDefines::LLVOAvatarDictionary *getDictionary() { return sAvatarDictionary; }
- static LLVOAvatarDefines::LLVOAvatarDictionary *sAvatarDictionary;
- static LLVOAvatarSkeletonInfo* sAvatarSkeletonInfo;
- static LLVOAvatarXmlInfo* sAvatarXmlInfo;
- //-----------------------------------------------------------------------------------------------
- // Diagnostics
- //-----------------------------------------------------------------------------------------------
-public:
- static F32 sUnbakedTime; // Total seconds with >=1 unbaked avatars
- static F32 sUnbakedUpdateTime; // Last time stats were updated (to prevent multiple updates per frame)
- static F32 sGreyTime; // Total seconds with >=1 grey avatars
- static F32 sGreyUpdateTime; // Last time stats were updated (to prevent multiple updates per frame)
+/** Support classes
+ ** **
+ *******************************************************************************/
- const std::string getBakedStatusForPrintout() const;
-};
+}; // LLVOAvatar
-//-----------------------------------------------------------------------------------------------
+//------------------------------------------------------------------------
// Inlines
-//-----------------------------------------------------------------------------------------------
-inline BOOL LLVOAvatar::isTextureDefined(U8 te) const
-{
- return (getTEImage(te)->getID() != IMG_DEFAULT_AVATAR && getTEImage(te)->getID() != IMG_DEFAULT);
-}
-
-inline BOOL LLVOAvatar::isTextureVisible(U8 te) const
+//------------------------------------------------------------------------
+inline BOOL LLVOAvatar::isTextureVisible(LLVOAvatarDefines::ETextureIndex te) const
{
return ((isTextureDefined(te) || isSelf())
&& (getTEImage(te)->getID() != IMG_INVISIBLE
diff --git a/indra/newview/llvoavatardefines.cpp b/indra/newview/llvoavatardefines.cpp
index 371ecbb7ab..978a61972f 100644
--- a/indra/newview/llvoavatardefines.cpp
+++ b/indra/newview/llvoavatardefines.cpp
@@ -32,6 +32,7 @@
#include "llviewerprecompiledheaders.h"
#include "llvoavatardefines.h"
+#include "llviewercontrol.h" // gSavedSettings
const S32 LLVOAvatarDefines::SCRATCH_TEX_WIDTH = 512;
const S32 LLVOAvatarDefines::SCRATCH_TEX_HEIGHT = 512;
@@ -42,56 +43,87 @@ using namespace LLVOAvatarDefines;
/*********************************************************************************
* Edit this function to add/remove/change textures and mesh definitions for avatars.
*/
-void LLVOAvatarDictionary::initData()
+
+LLVOAvatarDictionary::Textures::Textures()
{
- // Textures
- mTextureMap[TEX_HEAD_BODYPAINT] = new TextureDictionaryEntry("head bodypaint", TRUE, BAKED_NUM_INDICES, "", WT_SKIN);
- mTextureMap[TEX_UPPER_SHIRT] = new TextureDictionaryEntry("shirt", TRUE, BAKED_NUM_INDICES, "UIImgDefaultShirtUUID", WT_SHIRT);
- mTextureMap[TEX_LOWER_PANTS] = new TextureDictionaryEntry("pants", TRUE, BAKED_NUM_INDICES, "UIImgDefaultPantsUUID", WT_PANTS);
- mTextureMap[TEX_EYES_IRIS] = new TextureDictionaryEntry("iris", TRUE, BAKED_NUM_INDICES, "UIImgDefaultEyesUUID", WT_EYES);
- mTextureMap[TEX_HAIR] = new TextureDictionaryEntry("hair", TRUE, BAKED_NUM_INDICES, "UIImgDefaultHairUUID", WT_HAIR);
- mTextureMap[TEX_UPPER_BODYPAINT] = new TextureDictionaryEntry("upper bodypaint", TRUE, BAKED_NUM_INDICES, "", WT_SKIN);
- mTextureMap[TEX_LOWER_BODYPAINT] = new TextureDictionaryEntry("lower bodypaint", TRUE, BAKED_NUM_INDICES, "", WT_SKIN);
- mTextureMap[TEX_LOWER_SHOES] = new TextureDictionaryEntry("shoes", TRUE, BAKED_NUM_INDICES, "UIImgDefaultShoesUUID", WT_SHOES);
- mTextureMap[TEX_LOWER_SOCKS] = new TextureDictionaryEntry("socks", TRUE, BAKED_NUM_INDICES, "UIImgDefaultSocksUUID", WT_SOCKS);
- mTextureMap[TEX_UPPER_JACKET] = new TextureDictionaryEntry("upper jacket", TRUE, BAKED_NUM_INDICES, "UIImgDefaultJacketUUID", WT_JACKET);
- mTextureMap[TEX_LOWER_JACKET] = new TextureDictionaryEntry("lower jacket", TRUE, BAKED_NUM_INDICES, "UIImgDefaultJacketUUID", WT_JACKET);
- mTextureMap[TEX_UPPER_GLOVES] = new TextureDictionaryEntry("gloves", TRUE, BAKED_NUM_INDICES, "UIImgDefaultGlovesUUID", WT_GLOVES);
- mTextureMap[TEX_UPPER_UNDERSHIRT] = new TextureDictionaryEntry("undershirt", TRUE, BAKED_NUM_INDICES, "UIImgDefaultUnderwearUUID", WT_UNDERSHIRT);
- mTextureMap[TEX_LOWER_UNDERPANTS] = new TextureDictionaryEntry("underpants", TRUE, BAKED_NUM_INDICES, "UIImgDefaultUnderwearUUID", WT_UNDERPANTS);
- mTextureMap[TEX_SKIRT] = new TextureDictionaryEntry("skirt", TRUE, BAKED_NUM_INDICES, "UIImgDefaultSkirtUUID", WT_SKIRT);
- mTextureMap[TEX_HEAD_BAKED] = new TextureDictionaryEntry("head-baked", FALSE, BAKED_HEAD);
- mTextureMap[TEX_UPPER_BAKED] = new TextureDictionaryEntry("upper-baked", FALSE, BAKED_UPPER);
- mTextureMap[TEX_LOWER_BAKED] = new TextureDictionaryEntry("lower-baked", FALSE, BAKED_LOWER);
- mTextureMap[TEX_EYES_BAKED] = new TextureDictionaryEntry("eyes-baked", FALSE, BAKED_EYES);
- mTextureMap[TEX_HAIR_BAKED] = new TextureDictionaryEntry("hair-baked", FALSE, BAKED_HAIR);
- mTextureMap[TEX_SKIRT_BAKED] = new TextureDictionaryEntry("skirt-baked", FALSE, BAKED_SKIRT);
+ addEntry(TEX_HEAD_BODYPAINT, new TextureEntry("head_bodypaint", TRUE, BAKED_NUM_INDICES, "", WT_SKIN));
+ addEntry(TEX_UPPER_SHIRT, new TextureEntry("upper_shirt", TRUE, BAKED_NUM_INDICES, "UIImgDefaultShirtUUID", WT_SHIRT));
+ addEntry(TEX_LOWER_PANTS, new TextureEntry("lower_pants", TRUE, BAKED_NUM_INDICES, "UIImgDefaultPantsUUID", WT_PANTS));
+ addEntry(TEX_EYES_IRIS, new TextureEntry("eyes_iris", TRUE, BAKED_NUM_INDICES, "UIImgDefaultEyesUUID", WT_EYES));
+ addEntry(TEX_HAIR, new TextureEntry("hair_grain", TRUE, BAKED_NUM_INDICES, "UIImgDefaultHairUUID", WT_HAIR));
+ addEntry(TEX_UPPER_BODYPAINT, new TextureEntry("upper_bodypaint", TRUE, BAKED_NUM_INDICES, "", WT_SKIN));
+ addEntry(TEX_LOWER_BODYPAINT, new TextureEntry("lower_bodypaint", TRUE, BAKED_NUM_INDICES, "", WT_SKIN));
+ addEntry(TEX_LOWER_SHOES, new TextureEntry("lower_shoes", TRUE, BAKED_NUM_INDICES, "UIImgDefaultShoesUUID", WT_SHOES));
+ addEntry(TEX_LOWER_SOCKS, new TextureEntry("lower_socks", TRUE, BAKED_NUM_INDICES, "UIImgDefaultSocksUUID", WT_SOCKS));
+ addEntry(TEX_UPPER_JACKET, new TextureEntry("upper_jacket", TRUE, BAKED_NUM_INDICES, "UIImgDefaultJacketUUID", WT_JACKET));
+ addEntry(TEX_LOWER_JACKET, new TextureEntry("lower_jacket", TRUE, BAKED_NUM_INDICES, "UIImgDefaultJacketUUID", WT_JACKET));
+ addEntry(TEX_UPPER_GLOVES, new TextureEntry("upper_gloves", TRUE, BAKED_NUM_INDICES, "UIImgDefaultGlovesUUID", WT_GLOVES));
+ addEntry(TEX_UPPER_UNDERSHIRT, new TextureEntry("upper_undershirt", TRUE, BAKED_NUM_INDICES, "UIImgDefaultUnderwearUUID", WT_UNDERSHIRT));
+ addEntry(TEX_LOWER_UNDERPANTS, new TextureEntry("lower_underpants", TRUE, BAKED_NUM_INDICES, "UIImgDefaultUnderwearUUID", WT_UNDERPANTS));
+ addEntry(TEX_SKIRT, new TextureEntry("skirt", TRUE, BAKED_NUM_INDICES, "UIImgDefaultSkirtUUID", WT_SKIRT));
+ addEntry(TEX_LOWER_ALPHA, new TextureEntry("lower_alpha", TRUE, BAKED_NUM_INDICES, "UIImgDefaultAlphaUUID", WT_ALPHA));
+ addEntry(TEX_UPPER_ALPHA, new TextureEntry("upper_alpha", TRUE, BAKED_NUM_INDICES, "UIImgDefaultAlphaUUID", WT_ALPHA));
+ addEntry(TEX_HEAD_ALPHA, new TextureEntry("head_alpha", TRUE, BAKED_NUM_INDICES, "UIImgDefaultAlphaUUID", WT_ALPHA));
+ addEntry(TEX_EYES_ALPHA, new TextureEntry("eyes_alpha", TRUE, BAKED_NUM_INDICES, "UIImgDefaultAlphaUUID", WT_ALPHA));
+ addEntry(TEX_HAIR_ALPHA, new TextureEntry("hair_alpha", TRUE, BAKED_NUM_INDICES, "UIImgDefaultAlphaUUID", WT_ALPHA));
+ addEntry(TEX_HEAD_TATTOO, new TextureEntry("head_tattoo", TRUE, BAKED_NUM_INDICES, "UIImgDefaultTattooUUID", WT_TATTOO));
+ addEntry(TEX_UPPER_TATTOO, new TextureEntry("upper_tattoo", TRUE, BAKED_NUM_INDICES, "UIImgDefaultTattooUUID", WT_TATTOO));
+ addEntry(TEX_LOWER_TATTOO, new TextureEntry("lower_tattoo", TRUE, BAKED_NUM_INDICES, "UIImgDefaultTattooUUID", WT_TATTOO));
+ addEntry(TEX_HEAD_BAKED, new TextureEntry("head-baked", FALSE, BAKED_HEAD));
+ addEntry(TEX_UPPER_BAKED, new TextureEntry("upper-baked", FALSE, BAKED_UPPER));
+ addEntry(TEX_LOWER_BAKED, new TextureEntry("lower-baked", FALSE, BAKED_LOWER));
+ addEntry(TEX_EYES_BAKED, new TextureEntry("eyes-baked", FALSE, BAKED_EYES));
+ addEntry(TEX_HAIR_BAKED, new TextureEntry("hair-baked", FALSE, BAKED_HAIR));
+ addEntry(TEX_SKIRT_BAKED, new TextureEntry("skirt-baked", FALSE, BAKED_SKIRT));
+}
+LLVOAvatarDictionary::BakedTextures::BakedTextures()
+{
// Baked textures
- mBakedTextureMap[BAKED_HEAD] = new BakedDictionaryEntry(TEX_HEAD_BAKED, "head", 1, TEX_HEAD_BODYPAINT);
- mBakedTextureMap[BAKED_UPPER] = new BakedDictionaryEntry(TEX_UPPER_BAKED, "upper_body", 5, TEX_UPPER_SHIRT,TEX_UPPER_BODYPAINT,TEX_UPPER_JACKET,TEX_UPPER_GLOVES,TEX_UPPER_UNDERSHIRT);
- mBakedTextureMap[BAKED_LOWER] = new BakedDictionaryEntry(TEX_LOWER_BAKED, "lower_body", 6, TEX_LOWER_PANTS,TEX_LOWER_BODYPAINT,TEX_LOWER_SHOES,TEX_LOWER_SOCKS,TEX_LOWER_JACKET,TEX_LOWER_UNDERPANTS);
- mBakedTextureMap[BAKED_EYES] = new BakedDictionaryEntry(TEX_EYES_BAKED, "eyes", 1, TEX_EYES_IRIS);
- mBakedTextureMap[BAKED_SKIRT] = new BakedDictionaryEntry(TEX_SKIRT_BAKED, "skirt", 1, TEX_SKIRT);
- mBakedTextureMap[BAKED_HAIR] = new BakedDictionaryEntry(TEX_HAIR_BAKED, "hair", 1, TEX_HAIR);
-
+ addEntry(BAKED_HEAD, new BakedEntry(TEX_HEAD_BAKED,
+ "head", "18ded8d6-bcfc-e415-8539-944c0f5ea7a6",
+ 3, TEX_HEAD_BODYPAINT, TEX_HEAD_TATTOO, TEX_HEAD_ALPHA,
+ 5, WT_SHAPE, WT_SKIN, WT_HAIR, WT_TATTOO, WT_ALPHA));
+
+ addEntry(BAKED_UPPER, new BakedEntry(TEX_UPPER_BAKED,
+ "upper_body", "338c29e3-3024-4dbb-998d-7c04cf4fa88f",
+ 7, TEX_UPPER_SHIRT,TEX_UPPER_BODYPAINT, TEX_UPPER_JACKET,
+ TEX_UPPER_GLOVES, TEX_UPPER_UNDERSHIRT, TEX_UPPER_TATTOO, TEX_UPPER_ALPHA,
+ 8, WT_SHAPE, WT_SKIN, WT_SHIRT, WT_JACKET, WT_GLOVES, WT_UNDERSHIRT, WT_TATTOO, WT_ALPHA));
+
+ addEntry(BAKED_LOWER, new BakedEntry(TEX_LOWER_BAKED,
+ "lower_body", "91b4a2c7-1b1a-ba16-9a16-1f8f8dcc1c3f",
+ 8, TEX_LOWER_PANTS,TEX_LOWER_BODYPAINT,TEX_LOWER_SHOES, TEX_LOWER_SOCKS,
+ TEX_LOWER_JACKET, TEX_LOWER_UNDERPANTS, TEX_LOWER_TATTOO, TEX_LOWER_ALPHA,
+ 9, WT_SHAPE, WT_SKIN, WT_PANTS, WT_SHOES, WT_SOCKS, WT_JACKET, WT_UNDERPANTS, WT_TATTOO, WT_ALPHA));
+
+ addEntry(BAKED_EYES, new BakedEntry(TEX_EYES_BAKED,
+ "eyes", "b2cf28af-b840-1071-3c6a-78085d8128b5",
+ 2, TEX_EYES_IRIS, TEX_EYES_ALPHA,
+ 2, WT_EYES, WT_ALPHA));
+
+ addEntry(BAKED_SKIRT, new BakedEntry(TEX_SKIRT_BAKED,
+ "skirt", "ea800387-ea1a-14e0-56cb-24f2022f969a",
+ 1, TEX_SKIRT,
+ 1, WT_SKIRT));
+
+ addEntry(BAKED_HAIR, new BakedEntry(TEX_HAIR_BAKED,
+ "hair", "0af1ef7c-ad24-11dd-8790-001f5bf833e8",
+ 2, TEX_HAIR, TEX_HAIR_ALPHA,
+ 2, WT_HAIR, WT_ALPHA));
+}
+
+LLVOAvatarDictionary::Meshes::Meshes()
+{
// Meshes
- mMeshMap[MESH_ID_HAIR] = new MeshDictionaryEntry(BAKED_HAIR, "hairMesh", 6, LLViewerJoint::PN_4);
- mMeshMap[MESH_ID_HEAD] = new MeshDictionaryEntry(BAKED_HEAD, "headMesh", 5, LLViewerJoint::PN_5);
- mMeshMap[MESH_ID_EYELASH] = new MeshDictionaryEntry(BAKED_HEAD, "eyelashMesh", 1, LLViewerJoint::PN_0); // no baked mesh associated currently
- mMeshMap[MESH_ID_UPPER_BODY] = new MeshDictionaryEntry(BAKED_UPPER, "upperBodyMesh", 5, LLViewerJoint::PN_1);
- mMeshMap[MESH_ID_LOWER_BODY] = new MeshDictionaryEntry(BAKED_LOWER, "lowerBodyMesh", 5, LLViewerJoint::PN_2);
- mMeshMap[MESH_ID_EYEBALL_LEFT] = new MeshDictionaryEntry(BAKED_EYES, "eyeBallLeftMesh", 2, LLViewerJoint::PN_3);
- mMeshMap[MESH_ID_EYEBALL_RIGHT] = new MeshDictionaryEntry(BAKED_EYES, "eyeBallRightMesh", 2, LLViewerJoint::PN_3);
- mMeshMap[MESH_ID_SKIRT] = new MeshDictionaryEntry(BAKED_SKIRT, "skirtMesh", 5, LLViewerJoint::PN_5);
-
- // Wearables
- mWearableMap[BAKED_HEAD] = new WearableDictionaryEntry("18ded8d6-bcfc-e415-8539-944c0f5ea7a6", 3, WT_SHAPE, WT_SKIN, WT_HAIR);
- mWearableMap[BAKED_UPPER] = new WearableDictionaryEntry("338c29e3-3024-4dbb-998d-7c04cf4fa88f", 6, WT_SHAPE, WT_SKIN, WT_SHIRT, WT_JACKET, WT_GLOVES, WT_UNDERSHIRT);
- mWearableMap[BAKED_LOWER] = new WearableDictionaryEntry("91b4a2c7-1b1a-ba16-9a16-1f8f8dcc1c3f", 7, WT_SHAPE, WT_SKIN, WT_PANTS, WT_SHOES, WT_SOCKS, WT_JACKET, WT_UNDERPANTS);
- mWearableMap[BAKED_EYES] = new WearableDictionaryEntry("b2cf28af-b840-1071-3c6a-78085d8128b5", 1, WT_EYES);
- mWearableMap[BAKED_SKIRT] = new WearableDictionaryEntry("ea800387-ea1a-14e0-56cb-24f2022f969a", 1, WT_SKIRT);
- mWearableMap[BAKED_HAIR] = new WearableDictionaryEntry("0af1ef7c-ad24-11dd-8790-001f5bf833e8", 1, WT_HAIR);
+ addEntry(MESH_ID_HAIR, new MeshEntry(BAKED_HAIR, "hairMesh", 6, LLViewerJoint::PN_4));
+ addEntry(MESH_ID_HEAD, new MeshEntry(BAKED_HEAD, "headMesh", 5, LLViewerJoint::PN_5));
+ addEntry(MESH_ID_EYELASH, new MeshEntry(BAKED_HEAD, "eyelashMesh", 1, LLViewerJoint::PN_0)); // no baked mesh associated currently
+ addEntry(MESH_ID_UPPER_BODY, new MeshEntry(BAKED_UPPER, "upperBodyMesh", 5, LLViewerJoint::PN_1));
+ addEntry(MESH_ID_LOWER_BODY, new MeshEntry(BAKED_LOWER, "lowerBodyMesh", 5, LLViewerJoint::PN_2));
+ addEntry(MESH_ID_EYEBALL_LEFT, new MeshEntry(BAKED_EYES, "eyeBallLeftMesh", 2, LLViewerJoint::PN_3));
+ addEntry(MESH_ID_EYEBALL_RIGHT, new MeshEntry(BAKED_EYES, "eyeBallRightMesh", 2, LLViewerJoint::PN_3));
+ addEntry(MESH_ID_SKIRT, new MeshEntry(BAKED_SKIRT, "skirtMesh", 5, LLViewerJoint::PN_5));
}
/*
@@ -100,18 +132,22 @@ void LLVOAvatarDictionary::initData()
LLVOAvatarDictionary::LLVOAvatarDictionary()
{
- initData();
createAssociations();
}
+//virtual
+LLVOAvatarDictionary::~LLVOAvatarDictionary()
+{
+}
+
// Baked textures are composites of textures; for each such composited texture,
// map it to the baked texture.
void LLVOAvatarDictionary::createAssociations()
{
- for (baked_map_t::const_iterator iter = mBakedTextureMap.begin(); iter != mBakedTextureMap.end(); iter++)
+ for (BakedTextures::const_iterator iter = mBakedTextures.begin(); iter != mBakedTextures.end(); iter++)
{
const EBakedTextureIndex baked_index = (iter->first);
- const BakedDictionaryEntry *dict = (iter->second);
+ const BakedEntry *dict = (iter->second);
// For each texture that this baked texture index affects, associate those textures
// with this baked texture index.
@@ -120,19 +156,19 @@ void LLVOAvatarDictionary::createAssociations()
local_texture_iter++)
{
const ETextureIndex local_texture_index = (ETextureIndex) *local_texture_iter;
- mTextureMap[local_texture_index]->mIsUsedByBakedTexture = true;
- mTextureMap[local_texture_index]->mBakedTextureIndex = baked_index;
+ mTextures[local_texture_index]->mIsUsedByBakedTexture = true;
+ mTextures[local_texture_index]->mBakedTextureIndex = baked_index;
}
}
}
-LLVOAvatarDictionary::TextureDictionaryEntry::TextureDictionaryEntry(const std::string &name,
- bool is_local_texture,
- EBakedTextureIndex baked_texture_index,
- const std::string &default_image_name,
- EWearableType wearable_type) :
- mName(name),
+LLVOAvatarDictionary::TextureEntry::TextureEntry(const std::string &name,
+ bool is_local_texture,
+ EBakedTextureIndex baked_texture_index,
+ const std::string &default_image_name,
+ EWearableType wearable_type) :
+ LLDictionaryEntry(name),
mIsLocalTexture(is_local_texture),
mIsBakedTexture(!is_local_texture),
mIsUsedByBakedTexture(baked_texture_index != BAKED_NUM_INDICES),
@@ -142,87 +178,93 @@ LLVOAvatarDictionary::TextureDictionaryEntry::TextureDictionaryEntry(const std::
{
}
-LLVOAvatarDictionary::MeshDictionaryEntry::MeshDictionaryEntry(EBakedTextureIndex baked_index,
- const std::string &name,
- U8 level,
- LLViewerJoint::PickName pick) :
+LLVOAvatarDictionary::MeshEntry::MeshEntry(EBakedTextureIndex baked_index,
+ const std::string &name,
+ U8 level,
+ LLViewerJoint::PickName pick) :
+ LLDictionaryEntry(name),
mBakedID(baked_index),
- mName(name),
mLOD(level),
mPickName(pick)
{
}
-LLVOAvatarDictionary::BakedDictionaryEntry::BakedDictionaryEntry(ETextureIndex tex_index,
- const std::string &name,
- U32 num_local_textures, ... ) :
- mName(name),
+LLVOAvatarDictionary::BakedEntry::BakedEntry(ETextureIndex tex_index,
+ const std::string &name,
+ const std::string &hash_name,
+ U32 num_local_textures,
+ ... ) :
+ LLDictionaryEntry(name),
+ mWearablesHashID(LLUUID(hash_name)),
mTextureIndex(tex_index)
-
{
va_list argp;
+
va_start(argp, num_local_textures);
+
+ // Read in local textures
for (U8 i=0; i < num_local_textures; i++)
{
ETextureIndex t = (ETextureIndex)va_arg(argp,int);
mLocalTextures.push_back(t);
}
-}
-LLVOAvatarDictionary::WearableDictionaryEntry::WearableDictionaryEntry(const std::string &hash_name,
- U32 num_wearables, ... ) :
- mHashID(LLUUID(hash_name))
-{
- va_list argp;
- va_start(argp, num_wearables);
+ // Read in number of wearables
+ const U32 num_wearables = (U32)va_arg(argp,int);
+ // Read in wearables
for (U8 i=0; i < num_wearables; i++)
{
EWearableType t = (EWearableType)va_arg(argp,int);
- mWearablesVec.push_back(t);
+ mWearables.push_back(t);
}
}
-//virtual
-LLVOAvatarDictionary::~LLVOAvatarDictionary()
+// static
+ETextureIndex LLVOAvatarDictionary::bakedToLocalTextureIndex(EBakedTextureIndex index)
{
- for (mesh_map_t::iterator iter = mMeshMap.begin(); iter != mMeshMap.end(); iter++)
- delete (iter->second);
- for (baked_map_t::iterator iter = mBakedTextureMap.begin(); iter != mBakedTextureMap.end(); iter++)
- delete (iter->second);
- for (texture_map_t::iterator iter = mTextureMap.begin(); iter != mTextureMap.end(); iter++)
- delete (iter->second);
-}
-
-const LLVOAvatarDictionary::MeshDictionaryEntry *LLVOAvatarDictionary::getMesh(EMeshIndex index) const
-{
- mesh_map_t::const_iterator mesh_iter = mMeshMap.find(index);
- if (mesh_iter == mMeshMap.end()) return NULL;
- return mesh_iter->second;
+ return LLVOAvatarDictionary::getInstance()->getBakedTexture(index)->mTextureIndex;
}
-const LLVOAvatarDictionary::BakedDictionaryEntry *LLVOAvatarDictionary::getBakedTexture(EBakedTextureIndex index) const
+//static
+EBakedTextureIndex LLVOAvatarDictionary::findBakedByRegionName(std::string name)
{
- baked_map_t::const_iterator baked_iter = mBakedTextureMap.find(index);
- if (baked_iter == mBakedTextureMap.end()) return NULL;
- return baked_iter->second;
+ U8 index = 0;
+ while (index < BAKED_NUM_INDICES)
+ {
+ const BakedEntry *be = LLVOAvatarDictionary::getInstance()->getBakedTexture((EBakedTextureIndex) index);
+ if (be && be->mName.compare(name) == 0)
+ {
+ // baked texture found
+ return (EBakedTextureIndex) index;
+ }
+ index++;
+ }
+ // baked texture could not be found
+ return BAKED_NUM_INDICES;
}
-const LLVOAvatarDictionary::TextureDictionaryEntry *LLVOAvatarDictionary::getTexture(ETextureIndex index) const
+//static
+const LLUUID LLVOAvatarDictionary::getDefaultTextureImageID(ETextureIndex index)
{
- texture_map_t::const_iterator texture_iter = mTextureMap.find(index);
- if (texture_iter == mTextureMap.end()) return NULL;
- return texture_iter->second;
+ /* switch( index )
+ case TEX_UPPER_SHIRT: return LLUUID( gSavedSettings.getString("UIImgDefaultShirtUUID") ); */
+ const TextureEntry *texture_dict = getInstance()->getTexture(index);
+ const std::string &default_image_name = texture_dict->mDefaultImageName;
+ if (default_image_name == "")
+ {
+ return IMG_DEFAULT_AVATAR;
+ }
+ else
+ {
+ return LLUUID(gSavedSettings.getString(default_image_name));
+ }
}
-const LLVOAvatarDictionary::WearableDictionaryEntry *LLVOAvatarDictionary::getWearable(EBakedTextureIndex index) const
+// static
+EWearableType LLVOAvatarDictionary::getTEWearableType(ETextureIndex index )
{
- wearable_map_t::const_iterator wearable_iter = mWearableMap.find(index);
- if (wearable_iter == mWearableMap.end()) return NULL;
- return wearable_iter->second;
+ /* switch(index)
+ case TEX_UPPER_SHIRT:
+ return WT_SHIRT; */
+ return getInstance()->getTexture(index)->mWearableType;
}
-
-
-ETextureIndex LLVOAvatarDefines::getTextureIndex(EBakedTextureIndex index)
-{
- return LLVOAvatarDictionary::getInstance()->getBakedTexture(index)->mTextureIndex;
-}
diff --git a/indra/newview/llvoavatardefines.h b/indra/newview/llvoavatardefines.h
index 1da27b0fe0..cf3d318159 100644
--- a/indra/newview/llvoavatardefines.h
+++ b/indra/newview/llvoavatardefines.h
@@ -37,6 +37,7 @@
#include <vector>
#include "llwearable.h"
#include "llviewerjoint.h"
+#include "lldictionary.h"
namespace LLVOAvatarDefines
{
@@ -46,7 +47,7 @@ extern const S32 SCRATCH_TEX_HEIGHT;
extern const S32 IMPOSTOR_PERIOD;
//--------------------------------------------------------------------
-// texture entry assignment
+// Enums
//--------------------------------------------------------------------
enum ETextureIndex
{
@@ -58,9 +59,9 @@ enum ETextureIndex
TEX_UPPER_BODYPAINT,
TEX_LOWER_BODYPAINT,
TEX_LOWER_SHOES,
- TEX_HEAD_BAKED, // Pre-composited
- TEX_UPPER_BAKED, // Pre-composited
- TEX_LOWER_BAKED, // Pre-composited
+ TEX_HEAD_BAKED, // Pre-composited
+ TEX_UPPER_BAKED, // Pre-composited
+ TEX_LOWER_BAKED, // Pre-composited
TEX_EYES_BAKED, // Pre-composited
TEX_LOWER_SOCKS,
TEX_UPPER_JACKET,
@@ -69,14 +70,19 @@ enum ETextureIndex
TEX_UPPER_UNDERSHIRT,
TEX_LOWER_UNDERPANTS,
TEX_SKIRT,
- TEX_SKIRT_BAKED, // Pre-composited
+ TEX_SKIRT_BAKED, // Pre-composited
TEX_HAIR_BAKED, // Pre-composited
+ TEX_LOWER_ALPHA,
+ TEX_UPPER_ALPHA,
+ TEX_HEAD_ALPHA,
+ TEX_EYES_ALPHA,
+ TEX_HAIR_ALPHA,
+ TEX_HEAD_TATTOO,
+ TEX_UPPER_TATTOO,
+ TEX_LOWER_TATTOO,
TEX_NUM_INDICES
-}; // "Note: if TEX_NUM_ENTRIES changes, update AGENT_TEXTURES in llagentinfo.h, mTextureIndexBaked, and BAKED_TEXTURE_COUNT"
-// Seraph - Above comment about order is probably obsolete.
+};
-typedef std::vector<ETextureIndex> texture_vec_t;
-
enum EBakedTextureIndex
{
BAKED_HEAD = 0,
@@ -87,7 +93,6 @@ enum EBakedTextureIndex
BAKED_HAIR,
BAKED_NUM_INDICES
};
-typedef std::vector<EBakedTextureIndex> bakedtexture_vec_t;
// Reference IDs for each mesh. Used as indices for vector of joints
enum EMeshIndex
@@ -102,19 +107,15 @@ enum EMeshIndex
MESH_ID_SKIRT,
MESH_ID_NUM_INDICES
};
-typedef std::vector<EMeshIndex> mesh_vec_t;
+//--------------------------------------------------------------------
+// Vector Types
+//--------------------------------------------------------------------
+typedef std::vector<ETextureIndex> texture_vec_t;
+typedef std::vector<EBakedTextureIndex> bakedtexture_vec_t;
+typedef std::vector<EMeshIndex> mesh_vec_t;
typedef std::vector<EWearableType> wearables_vec_t;
-//--------------------------------------------------------------------------------
-// Convenience Functions
-//--------------------------------------------------------------------------------
-
-// Convert from baked texture to associated texture; e.g. BAKED_HEAD -> TEX_HEAD_BAKED
-ETextureIndex getTextureIndex(EBakedTextureIndex t);
-
-
-
//------------------------------------------------------------------------
// LLVOAvatarDictionary
//
@@ -125,86 +126,109 @@ ETextureIndex getTextureIndex(EBakedTextureIndex t);
//------------------------------------------------------------------------
class LLVOAvatarDictionary : public LLSingleton<LLVOAvatarDictionary>
{
+ //--------------------------------------------------------------------
+ // Constructors and Destructors
+ //--------------------------------------------------------------------
public:
LLVOAvatarDictionary();
virtual ~LLVOAvatarDictionary();
+private:
+ void createAssociations();
- struct TextureDictionaryEntry
+ //--------------------------------------------------------------------
+ // Local and baked textures
+ //--------------------------------------------------------------------
+public:
+ struct TextureEntry : public LLDictionaryEntry
{
- TextureDictionaryEntry(const std::string &name,
- bool is_local_texture,
- EBakedTextureIndex baked_texture_index = BAKED_NUM_INDICES,
- const std::string &default_image_name = "",
- EWearableType wearable_type = WT_INVALID);
- const std::string mName;
- const std::string mDefaultImageName;
+ TextureEntry(const std::string &name, // this must match the xml name used by LLTexLayerInfo::parseXml
+ bool is_local_texture,
+ EBakedTextureIndex baked_texture_index = BAKED_NUM_INDICES,
+ const std::string& default_image_name = "",
+ EWearableType wearable_type = WT_INVALID);
+ const std::string mDefaultImageName;
const EWearableType mWearableType;
// It's either a local texture xor baked
- BOOL mIsLocalTexture;
- BOOL mIsBakedTexture;
+ BOOL mIsLocalTexture;
+ BOOL mIsBakedTexture;
// If it's a local texture, it may be used by a baked texture
- BOOL mIsUsedByBakedTexture;
- EBakedTextureIndex mBakedTextureIndex;
+ BOOL mIsUsedByBakedTexture;
+ EBakedTextureIndex mBakedTextureIndex;
};
+
+ struct Textures : public LLDictionary<ETextureIndex, TextureEntry>
+ {
+ Textures();
+ } mTextures;
+ const TextureEntry* getTexture(ETextureIndex index) const { return mTextures.lookup(index); }
+ const Textures& getTextures() const { return mTextures; }
- struct MeshDictionaryEntry
+ //--------------------------------------------------------------------
+ // Meshes
+ //--------------------------------------------------------------------
+public:
+ struct MeshEntry : public LLDictionaryEntry
{
- MeshDictionaryEntry(EBakedTextureIndex baked_index,
- const std::string &name,
- U8 level,
- LLViewerJoint::PickName pick);
- const std::string mName; // names of mesh types as they are used in avatar_lad.xml
+ MeshEntry(EBakedTextureIndex baked_index,
+ const std::string &name, // names of mesh types as they are used in avatar_lad.xml
+ U8 level,
+ LLViewerJoint::PickName pick);
// Levels of Detail for each mesh. Must match levels of detail present in avatar_lad.xml
// Otherwise meshes will be unable to be found, or levels of detail will be ignored
- const U8 mLOD;
- const EBakedTextureIndex mBakedID;
- const LLViewerJoint::PickName mPickName;
+ const U8 mLOD;
+ const EBakedTextureIndex mBakedID;
+ const LLViewerJoint::PickName mPickName;
};
- struct BakedDictionaryEntry
+ struct Meshes : public LLDictionary<EMeshIndex, MeshEntry>
{
- BakedDictionaryEntry(ETextureIndex tex_index,
- const std::string &name,
- U32 num_local_textures, ... );
- const ETextureIndex mTextureIndex;
- const std::string mName;
- texture_vec_t mLocalTextures;
- };
-
- struct WearableDictionaryEntry
+ Meshes();
+ } mMeshes;
+ const MeshEntry* getMesh(EMeshIndex index) const { return mMeshes.lookup(index); }
+ const Meshes& getMeshes() const { return mMeshes; }
+
+ //--------------------------------------------------------------------
+ // Baked Textures
+ //--------------------------------------------------------------------
+public:
+ struct BakedEntry : public LLDictionaryEntry
{
- WearableDictionaryEntry(const std::string &hash_name,
- U32 num_wearables, ... );
- const LLUUID mHashID;
- wearables_vec_t mWearablesVec;
+ BakedEntry(ETextureIndex tex_index,
+ const std::string &name, // unused, but necessary for templating.
+ const std::string &hash_name,
+ U32 num_local_textures, ... ); // # local textures, local texture list, # wearables, wearable list
+ // Local Textures
+ const ETextureIndex mTextureIndex;
+ texture_vec_t mLocalTextures;
+ // Wearables
+ const LLUUID mWearablesHashID;
+ wearables_vec_t mWearables;
};
- typedef std::map<EBakedTextureIndex, BakedDictionaryEntry*> baked_map_t;
- typedef std::map<ETextureIndex, TextureDictionaryEntry*> texture_map_t;
- typedef std::map<EMeshIndex, MeshDictionaryEntry*> mesh_map_t;
- typedef std::map<EBakedTextureIndex, WearableDictionaryEntry*> wearable_map_t;
+ struct BakedTextures: public LLDictionary<EBakedTextureIndex, BakedEntry>
+ {
+ BakedTextures();
+ } mBakedTextures;
+ const BakedEntry* getBakedTexture(EBakedTextureIndex index) const { return mBakedTextures.lookup(index); }
+ const BakedTextures& getBakedTextures() const { return mBakedTextures; }
+
+ //--------------------------------------------------------------------
+ // Convenience Functions
+ //--------------------------------------------------------------------
+public:
+ // Convert from baked texture to associated texture; e.g. BAKED_HEAD -> TEX_HEAD_BAKED
+ static ETextureIndex bakedToLocalTextureIndex(EBakedTextureIndex t);
- const MeshDictionaryEntry *getMesh(EMeshIndex index) const;
- const BakedDictionaryEntry *getBakedTexture(EBakedTextureIndex index) const;
- const TextureDictionaryEntry *getTexture(ETextureIndex index) const;
- const WearableDictionaryEntry *getWearable(EBakedTextureIndex index) const;
+ // find a baked texture index based on its name
+ static EBakedTextureIndex findBakedByRegionName(std::string name);
- const texture_map_t &getTextures() const { return mTextureMap; }
- const baked_map_t &getBakedTextures() const { return mBakedTextureMap; }
- const mesh_map_t &getMeshes() const { return mMeshMap; }
- const wearable_map_t &getWearables() const { return mWearableMap; }
-
-private:
- void initData();
- void createAssociations();
+ static const LLUUID getDefaultTextureImageID(ETextureIndex index);
- texture_map_t mTextureMap;
- baked_map_t mBakedTextureMap;
- mesh_map_t mMeshMap;
- wearable_map_t mWearableMap;
+ // Given a texture entry, determine which wearable type owns it.
+ static EWearableType getTEWearableType(ETextureIndex index);
}; // End LLVOAvatarDictionary
} // End namespace LLVOAvatarDefines
-#endif
+#endif //LL_VO_AVATARDEFINES_H
diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp
new file mode 100644
index 0000000000..d629767bbe
--- /dev/null
+++ b/indra/newview/llvoavatarself.cpp
@@ -0,0 +1,2016 @@
+/**
+ * @file llvoavatar.cpp
+ * @brief Implementation of LLVOAvatar class which is a derivation fo LLViewerObject
+ *
+ * $LicenseInfo:firstyear=2001&license=viewergpl$
+ *
+ * Copyright (c) 2001-2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llvoavatarself.h"
+#include "llvoavatar.h"
+
+#include <stdio.h>
+#include <ctype.h>
+
+#include "audioengine.h"
+#include "noise.h"
+
+// TODO: Seraph - Remove unnecessary headers. These are copied from llvoavatar.h.
+#include "llagent.h" // Get state values from here
+#include "llagentwearables.h"
+#include "llviewercontrol.h"
+#include "lldrawpoolavatar.h"
+#include "lldriverparam.h"
+#include "lleditingmotion.h"
+#include "llemote.h"
+#include "llface.h"
+#include "llfirstuse.h"
+#include "llheadrotmotion.h"
+#include "llhudeffecttrail.h"
+#include "llhudmanager.h"
+#include "llinventoryview.h"
+#include "llkeyframefallmotion.h"
+#include "llkeyframestandmotion.h"
+#include "llkeyframewalkmotion.h"
+#include "llmutelist.h"
+#include "llselectmgr.h"
+#include "llsprite.h"
+#include "lltargetingmotion.h"
+#include "lltexlayer.h"
+#include "lltexglobalcolor.h"
+#include "lltoolgrab.h" // for needsRenderBeam
+#include "lltoolmgr.h" // for needsRenderBeam
+#include "lltoolmorph.h"
+#include "lltrans.h"
+#include "llviewercamera.h"
+#include "llviewerimagelist.h"
+#include "llviewermenu.h"
+#include "llviewerobjectlist.h"
+#include "llviewerparcelmgr.h"
+#include "llviewerstats.h"
+#include "llvovolume.h"
+#include "llworld.h"
+#include "pipeline.h"
+#include "llviewershadermgr.h"
+#include "llsky.h"
+#include "llanimstatelabels.h"
+#include "llgesturemgr.h" //needed to trigger the voice gesticulations
+#include "llvoiceclient.h"
+#include "llvoicevisualizer.h" // Ventrella
+
+#include "boost/lexical_cast.hpp"
+
+using namespace LLVOAvatarDefines;
+
+/*********************************************************************************
+ ** **
+ ** Begin private LLVOAvatarSelf Support classes
+ **
+ **/
+
+struct LocalTextureData
+{
+ LocalTextureData() :
+ mIsBakedReady(FALSE),
+ mDiscard(MAX_DISCARD_LEVEL+1),
+ mImage(NULL),
+ mWearableID(IMG_DEFAULT_AVATAR),
+ mTexEntry(NULL)
+ {}
+ LLPointer<LLViewerImage> mImage;
+ BOOL mIsBakedReady;
+ S32 mDiscard;
+ LLUUID mWearableID; // UUID of the wearable that this texture belongs to, not of the image itself
+ LLTextureEntry *mTexEntry;
+};
+
+//-----------------------------------------------------------------------------
+// Callback data
+//-----------------------------------------------------------------------------
+struct LLAvatarTexData
+{
+ LLAvatarTexData(const LLUUID& id, ETextureIndex index) :
+ mAvatarID(id),
+ mIndex(index)
+ {}
+ LLUUID mAvatarID;
+ ETextureIndex mIndex;
+};
+
+/**
+ **
+ ** End LLVOAvatarSelf Support classes
+ ** **
+ *********************************************************************************/
+
+
+//-----------------------------------------------------------------------------
+// Static Data
+//-----------------------------------------------------------------------------
+S32 LLVOAvatarSelf::sScratchTexBytes = 0;
+LLMap< LLGLenum, LLGLuint*> LLVOAvatarSelf::sScratchTexNames;
+LLMap< LLGLenum, F32*> LLVOAvatarSelf::sScratchTexLastBindTime;
+
+
+/*********************************************************************************
+ ** **
+ ** Begin LLVOAvatarSelf Constructor routines
+ **
+ **/
+
+LLVOAvatarSelf::LLVOAvatarSelf(const LLUUID& id,
+ const LLPCode pcode,
+ LLViewerRegion* regionp) :
+ LLVOAvatar(id, pcode, regionp),
+ mScreenp(NULL),
+ mLastRegionHandle(0),
+ mRegionCrossingCount(0)
+{
+ gAgent.setAvatarObject(this);
+ gAgentWearables.setAvatarObject(this);
+
+ lldebugs << "Marking avatar as self " << id << llendl;
+
+ for (U32 i = 0; i < TEX_NUM_INDICES; i++)
+ {
+ mLocalTextureDatas[(ETextureIndex)i].push_back(new LocalTextureData);
+ }
+
+ BOOL status = TRUE;
+ status &= loadAvatarSelf();
+ status &= buildMenus();
+ if (!status)
+ {
+ llerrs << "Unable to load user's avatar" << llendl;
+ return;
+ }
+}
+
+// virtual
+void LLVOAvatarSelf::markDead()
+{
+ mBeam = NULL;
+ LLVOAvatar::markDead();
+}
+
+BOOL LLVOAvatarSelf::loadAvatarSelf()
+{
+ BOOL success = TRUE;
+ // avatar_skeleton.xml
+ if (!buildSkeletonSelf(sAvatarSkeletonInfo))
+ {
+ llwarns << "avatar file: buildSkeleton() failed" << llendl;
+ return FALSE;
+ }
+ // TODO: make loadLayersets() called only by self.
+ //success &= loadLayersets();
+
+ return success;
+}
+
+BOOL LLVOAvatarSelf::buildSkeletonSelf(const LLVOAvatarSkeletonInfo *info)
+{
+ LLMemType mt(LLMemType::MTYPE_AVATAR);
+
+ // add special-purpose "screen" joint
+ mScreenp = new LLViewerJoint("mScreen", NULL);
+ // for now, put screen at origin, as it is only used during special
+ // HUD rendering mode
+ F32 aspect = LLViewerCamera::getInstance()->getAspect();
+ LLVector3 scale(1.f, aspect, 1.f);
+ mScreenp->setScale(scale);
+ mScreenp->setWorldPosition(LLVector3::zero);
+ return TRUE;
+}
+
+BOOL LLVOAvatarSelf::buildMenus()
+{
+ //-------------------------------------------------------------------------
+ // build the attach and detach menus
+ //-------------------------------------------------------------------------
+ gAttachBodyPartPieMenus[0] = NULL;
+
+ LLContextMenu::Params params;
+ params.label(LLTrans::getString("BodyPartsRightArm") + " >");
+ params.name(params.label);
+ params.visible(false);
+ gAttachBodyPartPieMenus[1] = LLUICtrlFactory::create<LLContextMenu> (params);
+
+ params.label(LLTrans::getString("BodyPartsHead") + " >");
+ params.name(params.label);
+ gAttachBodyPartPieMenus[2] = LLUICtrlFactory::create<LLContextMenu> (params);
+
+ params.label(LLTrans::getString("BodyPartsLeftArm") + " >");
+ params.name(params.label);
+ gAttachBodyPartPieMenus[3] = LLUICtrlFactory::create<LLContextMenu> (params);
+
+ gAttachBodyPartPieMenus[4] = NULL;
+
+ params.label(LLTrans::getString("BodyPartsLeftLeg") + " >");
+ params.name(params.label);
+ gAttachBodyPartPieMenus[5] = LLUICtrlFactory::create<LLContextMenu> (params);
+
+ params.label(LLTrans::getString("BodyPartsTorso") + " >");
+ params.name(params.label);
+ gAttachBodyPartPieMenus[6] = LLUICtrlFactory::create<LLContextMenu> (params);
+
+ params.label(LLTrans::getString("BodyPartsRightLeg") + " >");
+ params.name(params.label);
+ gAttachBodyPartPieMenus[7] = LLUICtrlFactory::create<LLContextMenu> (params);
+
+ gDetachBodyPartPieMenus[0] = NULL;
+
+ params.label(LLTrans::getString("BodyPartsRightArm") + " >");
+ params.name(params.label);
+ gDetachBodyPartPieMenus[1] = LLUICtrlFactory::create<LLContextMenu> (params);
+
+ params.label(LLTrans::getString("BodyPartsHead") + " >");
+ params.name(params.label);
+ gDetachBodyPartPieMenus[2] = LLUICtrlFactory::create<LLContextMenu> (params);
+
+ params.label(LLTrans::getString("BodyPartsLeftArm") + " >");
+ params.name(params.label);
+ gDetachBodyPartPieMenus[3] = LLUICtrlFactory::create<LLContextMenu> (params);
+
+ gDetachBodyPartPieMenus[4] = NULL;
+
+ params.label(LLTrans::getString("BodyPartsLeftLeg") + " >");
+ params.name(params.label);
+ gDetachBodyPartPieMenus[5] = LLUICtrlFactory::create<LLContextMenu> (params);
+
+ params.label(LLTrans::getString("BodyPartsTorso") + " >");
+ params.name(params.label);
+ gDetachBodyPartPieMenus[6] = LLUICtrlFactory::create<LLContextMenu> (params);
+
+ params.label(LLTrans::getString("BodyPartsRightLeg") + " >");
+ params.name(params.label);
+ gDetachBodyPartPieMenus[7] = LLUICtrlFactory::create<LLContextMenu> (params);
+
+ for (S32 i = 0; i < 8; i++)
+ {
+ if (gAttachBodyPartPieMenus[i])
+ {
+ gAttachPieMenu->appendContextSubMenu( gAttachBodyPartPieMenus[i] );
+ }
+ else
+ {
+ BOOL attachment_found = FALSE;
+ for (attachment_map_t::iterator iter = mAttachmentPoints.begin();
+ iter != mAttachmentPoints.end(); )
+ {
+ attachment_map_t::iterator curiter = iter++;
+ LLViewerJointAttachment* attachment = curiter->second;
+ if (attachment->getGroup() == i)
+ {
+ LLMenuItemCallGL::Params item_params;
+
+ std::string sub_piemenu_name = attachment->getName();
+ if (LLTrans::getString(sub_piemenu_name) != "")
+ {
+ item_params.label = LLTrans::getString(sub_piemenu_name);
+ }
+ else
+ {
+ item_params.label = sub_piemenu_name;
+ }
+ item_params.name =(item_params.label );
+ item_params.on_click.function_name = "Object.AttachToAvatar";
+ item_params.on_click.parameter = curiter->first;
+ item_params.on_enable.function_name = "Object.EnableWear";
+ item_params.on_enable.parameter = curiter->first;
+ LLMenuItemCallGL* item = LLUICtrlFactory::create<LLMenuItemCallGL>(item_params);
+
+ gAttachPieMenu->addChild(item);
+
+ attachment_found = TRUE;
+ break;
+
+ }
+ }
+
+ if (!attachment_found)
+ {
+ gAttachPieMenu->addSeparator();
+ }
+ }
+
+ if (gDetachBodyPartPieMenus[i])
+ {
+ gDetachPieMenu->appendContextSubMenu( gDetachBodyPartPieMenus[i] );
+ }
+ else
+ {
+ BOOL attachment_found = FALSE;
+ for (attachment_map_t::iterator iter = mAttachmentPoints.begin();
+ iter != mAttachmentPoints.end(); )
+ {
+ attachment_map_t::iterator curiter = iter++;
+ LLViewerJointAttachment* attachment = curiter->second;
+ if (attachment->getGroup() == i)
+ {
+ LLMenuItemCallGL::Params item_params;
+ std::string sub_piemenu_name = attachment->getName();
+ if (LLTrans::getString(sub_piemenu_name) != "")
+ {
+ item_params.label = LLTrans::getString(sub_piemenu_name);
+ }
+ else
+ {
+ item_params.label = sub_piemenu_name;
+ }
+ item_params.name =(item_params.label );
+ item_params.on_click.function_name = "Attachment.Detach";
+ item_params.on_click.parameter = curiter->first;
+ item_params.on_enable.function_name = "Attachment.EnableDetach";
+ item_params.on_enable.parameter = curiter->first;
+ LLMenuItemCallGL* item = LLUICtrlFactory::create<LLMenuItemCallGL>(item_params);
+
+ gDetachPieMenu->addChild(item);
+
+ attachment_found = TRUE;
+ break;
+ }
+ }
+
+ if (!attachment_found)
+ {
+ gDetachPieMenu->addSeparator();
+ }
+ }
+ }
+
+ // add screen attachments
+ for (attachment_map_t::iterator iter = mAttachmentPoints.begin();
+ iter != mAttachmentPoints.end(); )
+ {
+ attachment_map_t::iterator curiter = iter++;
+ LLViewerJointAttachment* attachment = curiter->second;
+ if (attachment->getGroup() == 8)
+ {
+ LLMenuItemCallGL::Params item_params;
+ std::string sub_piemenu_name = attachment->getName();
+ if (LLTrans::getString(sub_piemenu_name) != "")
+ {
+ item_params.label = LLTrans::getString(sub_piemenu_name);
+ }
+ else
+ {
+ item_params.label = sub_piemenu_name;
+ }
+ item_params.name =(item_params.label );
+ item_params.on_click.function_name = "Object.AttachToAvatar";
+ item_params.on_click.parameter = curiter->first;
+ item_params.on_enable.function_name = "Object.EnableWear";
+ item_params.on_enable.parameter = curiter->first;
+ LLMenuItemCallGL* item = LLUICtrlFactory::create<LLMenuItemCallGL>(item_params);
+ gAttachScreenPieMenu->addChild(item);
+
+ item_params.on_click.function_name = "Attachment.DetachFromPoint";
+ item_params.on_click.parameter = curiter->first;
+ item_params.on_enable.function_name = "Attachment.PointFilled";
+ item_params.on_enable.parameter = curiter->first;
+ item = LLUICtrlFactory::create<LLMenuItemCallGL>(item_params);
+ gDetachScreenPieMenu->addChild(item);
+ }
+ }
+
+ for (S32 pass = 0; pass < 2; pass++)
+ {
+ // *TODO: Skinning - gAttachSubMenu is an awful, awful hack
+ if (!gAttachSubMenu)
+ {
+ break;
+ }
+ for (attachment_map_t::iterator iter = mAttachmentPoints.begin();
+ iter != mAttachmentPoints.end(); )
+ {
+ attachment_map_t::iterator curiter = iter++;
+ LLViewerJointAttachment* attachment = curiter->second;
+ if (attachment->getIsHUDAttachment() != (pass == 1))
+ {
+ continue;
+ }
+ LLMenuItemCallGL::Params item_params;
+ std::string sub_piemenu_name = attachment->getName();
+ if (LLTrans::getString(sub_piemenu_name) != "")
+ {
+ item_params.label = LLTrans::getString(sub_piemenu_name);
+ }
+ else
+ {
+ item_params.label = sub_piemenu_name;
+ }
+ item_params.name =(item_params.label );
+ item_params.on_click.function_name = "Object.AttachToAvatar";
+ item_params.on_click.parameter = curiter->first;
+ item_params.on_enable.function_name = "Object.EnableWear";
+ item_params.on_enable.parameter = curiter->first;
+ //* TODO: Skinning:
+ //LLSD params;
+ //params["index"] = curiter->first;
+ //params["label"] = attachment->getName();
+ //item->addEventHandler("on_enable", LLMenuItemCallGL::MenuCallback().function_name("Attachment.Label").parameter(params));
+
+ LLMenuItemCallGL* item = LLUICtrlFactory::create<LLMenuItemCallGL>(item_params);
+ gAttachSubMenu->addChild(item);
+
+ item_params.on_click.function_name = "Attachment.DetachFromPoint";
+ item_params.on_click.parameter = curiter->first;
+ item_params.on_enable.function_name = "Attachment.PointFilled";
+ item_params.on_enable.parameter = curiter->first;
+ //* TODO: Skinning: item->addEventHandler("on_enable", LLMenuItemCallGL::MenuCallback().function_name("Attachment.Label").parameter(params));
+
+ item = LLUICtrlFactory::create<LLMenuItemCallGL>(item_params);
+ gDetachSubMenu->addChild(item);
+ }
+ if (pass == 0)
+ {
+ // put separator between non-hud and hud attachments
+ gAttachSubMenu->addSeparator();
+ gDetachSubMenu->addSeparator();
+ }
+ }
+
+ for (S32 group = 0; group < 8; group++)
+ {
+ // skip over groups that don't have sub menus
+ if (!gAttachBodyPartPieMenus[group] || !gDetachBodyPartPieMenus[group])
+ {
+ continue;
+ }
+
+ std::multimap<S32, S32> attachment_pie_menu_map;
+
+ // gather up all attachment points assigned to this group, and throw into map sorted by pie slice number
+ for (attachment_map_t::iterator iter = mAttachmentPoints.begin();
+ iter != mAttachmentPoints.end(); )
+ {
+ attachment_map_t::iterator curiter = iter++;
+ LLViewerJointAttachment* attachment = curiter->second;
+ if(attachment->getGroup() == group)
+ {
+ // use multimap to provide a partial order off of the pie slice key
+ S32 pie_index = attachment->getPieSlice();
+ attachment_pie_menu_map.insert(std::make_pair(pie_index, curiter->first));
+ }
+ }
+
+ // add in requested order to pie menu, inserting separators as necessary
+ S32 cur_pie_slice = 0;
+ for (std::multimap<S32, S32>::iterator attach_it = attachment_pie_menu_map.begin();
+ attach_it != attachment_pie_menu_map.end(); ++attach_it)
+ {
+ S32 requested_pie_slice = attach_it->first;
+ S32 attach_index = attach_it->second;
+ while (cur_pie_slice < requested_pie_slice)
+ {
+ gAttachBodyPartPieMenus[group]->addSeparator();
+ gDetachBodyPartPieMenus[group]->addSeparator();
+ cur_pie_slice++;
+ }
+
+ LLViewerJointAttachment* attachment = get_if_there(mAttachmentPoints, attach_index, (LLViewerJointAttachment*)NULL);
+ if (attachment)
+ {
+ LLMenuItemCallGL::Params item_params;
+ item_params.name = attachment->getName();
+ item_params.label = attachment->getName();
+ item_params.on_click.function_name = "Object.AttachToAvatar";
+ item_params.on_click.parameter = attach_index;
+ item_params.on_enable.function_name = "Object.EnableWear";
+ item_params.on_enable.parameter = attach_index;
+
+ LLMenuItemCallGL* item = LLUICtrlFactory::create<LLMenuItemCallGL>(item_params);
+ gAttachBodyPartPieMenus[group]->addChild(item);
+
+ item_params.on_click.function_name = "Attachment.DetachFromPoint";
+ item_params.on_click.parameter = attach_index;
+ item_params.on_enable.function_name = "Attachment.PointFilled";
+ item_params.on_enable.parameter = attach_index;
+ item = LLUICtrlFactory::create<LLMenuItemCallGL>(item_params);
+ gDetachBodyPartPieMenus[group]->addChild(item);
+ cur_pie_slice++;
+ }
+ }
+ }
+ return TRUE;
+}
+
+LLVOAvatarSelf::~LLVOAvatarSelf()
+{
+ gAgent.setAvatarObject(NULL);
+ gAgentWearables.setAvatarObject(NULL);
+ delete mScreenp;
+ mScreenp = NULL;
+
+ for (localtexture_map_t::iterator iter = mLocalTextureDatas.begin();
+ iter != mLocalTextureDatas.end();
+ iter++)
+ {
+ localtexture_vec_t &local_textures = iter->second;
+ for (U32 i = 0; i < local_textures.size(); i++)
+ {
+ LocalTextureData* loc_tex_data = local_textures[i];
+ delete loc_tex_data;
+ local_textures[i] = NULL;
+ }
+ }
+}
+
+/**
+ **
+ ** End LLVOAvatarSelf Constructor routines
+ ** **
+ *********************************************************************************/
+
+//virtual
+BOOL LLVOAvatarSelf::loadLayersets()
+{
+ BOOL success = TRUE;
+ for (LLVOAvatarXmlInfo::layer_info_list_t::const_iterator iter = sAvatarXmlInfo->mLayerInfoList.begin();
+ iter != sAvatarXmlInfo->mLayerInfoList.end();
+ iter++)
+ {
+ // Construct a layerset for each one specified in avatar_lad.xml and initialize it as such.
+ const LLTexLayerSetInfo *info = *iter;
+ LLTexLayerSet* layer_set = new LLTexLayerSet( this );
+
+ if (!layer_set->setInfo(info))
+ {
+ stop_glerror();
+ delete layer_set;
+ llwarns << "avatar file: layer_set->parseData() failed" << llendl;
+ return FALSE;
+ }
+
+ // scan baked textures and associate the layerset with the appropriate one
+ EBakedTextureIndex baked_index = BAKED_NUM_INDICES;
+ for (LLVOAvatarDictionary::BakedTextures::const_iterator baked_iter = LLVOAvatarDictionary::getInstance()->getBakedTextures().begin();
+ baked_iter != LLVOAvatarDictionary::getInstance()->getBakedTextures().end();
+ baked_iter++)
+ {
+ const LLVOAvatarDictionary::BakedEntry *baked_dict = baked_iter->second;
+ if (layer_set->isBodyRegion(baked_dict->mName))
+ {
+ baked_index = baked_iter->first;
+ // ensure both structures are aware of each other
+ mBakedTextureDatas[baked_index].mTexLayerSet = layer_set;
+ layer_set->setBakedTexIndex(baked_index);
+ break;
+ }
+ }
+ // if no baked texture was found, warn and cleanup
+ if (baked_index == BAKED_NUM_INDICES)
+ {
+ llwarns << "<layer_set> has invalid body_region attribute" << llendl;
+ delete layer_set;
+ return FALSE;
+ }
+
+ // scan morph masks and let any affected layers know they have an associated morph
+ for (LLVOAvatar::morph_list_t::const_iterator morph_iter = mBakedTextureDatas[baked_index].mMaskedMorphs.begin();
+ morph_iter != mBakedTextureDatas[baked_index].mMaskedMorphs.end();
+ morph_iter++)
+ {
+ LLMaskedMorph *morph = *morph_iter;
+ LLTexLayer * layer = layer_set->findLayerByName(morph->mLayer);
+ if (layer)
+ {
+ layer->setHasMorph(TRUE);
+ }
+ else
+ {
+ llwarns << "Could not find layer named " << morph->mLayer << " to set morph flag" << llendl;
+ success = FALSE;
+ }
+ }
+ }
+ return success;
+}
+// virtual
+BOOL LLVOAvatarSelf::updateCharacter(LLAgent &agent)
+{
+ LLMemType mt(LLMemType::MTYPE_AVATAR);
+
+ // update screen joint size
+ if (mScreenp)
+ {
+ F32 aspect = LLViewerCamera::getInstance()->getAspect();
+ LLVector3 scale(1.f, aspect, 1.f);
+ mScreenp->setScale(scale);
+ mScreenp->updateWorldMatrixChildren();
+ resetHUDAttachments();
+ }
+ return LLVOAvatar::updateCharacter(agent);
+}
+
+// virtual
+LLJoint *LLVOAvatarSelf::getJoint(const std::string &name)
+{
+ if (mScreenp)
+ {
+ LLJoint* jointp = mScreenp->findJoint(name);
+ if (jointp) return jointp;
+ }
+ return LLVOAvatar::getJoint(name);
+}
+
+// virtual
+void LLVOAvatarSelf::requestStopMotion(LLMotion* motion)
+{
+ // Only agent avatars should handle the stop motion notifications.
+
+ // Notify agent that motion has stopped
+ gAgent.requestStopMotion(motion);
+}
+
+// virtual
+void LLVOAvatarSelf::stopMotionFromSource(const LLUUID& source_id)
+{
+ for (AnimSourceIterator motion_it = mAnimationSources.find(source_id); motion_it != mAnimationSources.end(); )
+ {
+ gAgent.sendAnimationRequest(motion_it->second, ANIM_REQUEST_STOP);
+ mAnimationSources.erase(motion_it++);
+ }
+
+ LLViewerObject* object = gObjectList.findObject(source_id);
+ if (object)
+ {
+ object->mFlags &= ~FLAGS_ANIM_SOURCE;
+ }
+}
+
+// virtual
+void LLVOAvatarSelf::setLocalTextureTE(U8 te, LLViewerImage* image, BOOL set_by_user, U32 index)
+{
+ if (te >= TEX_NUM_INDICES)
+ {
+ llassert(0);
+ return;
+ }
+
+ if (getTEImage(te)->getID() == image->getID())
+ {
+ return;
+ }
+
+ if (isIndexBakedTexture((ETextureIndex)te))
+ {
+ llassert(0);
+ return;
+ }
+
+ LLTexLayerSet* layer_set = getLayerSet((ETextureIndex)te);
+ if (layer_set)
+ {
+ invalidateComposite(layer_set, set_by_user);
+ }
+
+ setTEImage(te, image);
+ updateMeshTextures();
+
+ if (gAgent.cameraCustomizeAvatar())
+ {
+ LLVisualParamHint::requestHintUpdates();
+ }
+}
+
+//virtual
+void LLVOAvatarSelf::removeMissingBakedTextures()
+{
+ BOOL removed = FALSE;
+ for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
+ {
+ const S32 te = mBakedTextureDatas[i].mTextureIndex;
+ if (getTEImage(te)->isMissingAsset())
+ {
+ setTEImage(te, gImageList.getImage(IMG_DEFAULT_AVATAR));
+ removed = TRUE;
+ }
+ }
+
+ if (removed)
+ {
+ for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
+ {
+ invalidateComposite(mBakedTextureDatas[i].mTexLayerSet, FALSE);
+ }
+ updateMeshTextures();
+ requestLayerSetUploads();
+ }
+}
+
+//virtual
+void LLVOAvatarSelf::updateRegion(LLViewerRegion *regionp)
+{
+ if (regionp->getHandle() != mLastRegionHandle)
+ {
+ if (mLastRegionHandle != 0)
+ {
+ ++mRegionCrossingCount;
+ F64 delta = (F64)mRegionCrossingTimer.getElapsedTimeF32();
+ F64 avg = (mRegionCrossingCount == 1) ? 0 : LLViewerStats::getInstance()->getStat(LLViewerStats::ST_CROSSING_AVG);
+ F64 delta_avg = (delta + avg*(mRegionCrossingCount-1)) / mRegionCrossingCount;
+ LLViewerStats::getInstance()->setStat(LLViewerStats::ST_CROSSING_AVG, delta_avg);
+
+ F64 max = (mRegionCrossingCount == 1) ? 0 : LLViewerStats::getInstance()->getStat(LLViewerStats::ST_CROSSING_MAX);
+ max = llmax(delta, max);
+ LLViewerStats::getInstance()->setStat(LLViewerStats::ST_CROSSING_MAX, max);
+ }
+ mLastRegionHandle = regionp->getHandle();
+ }
+ mRegionCrossingTimer.reset();
+}
+
+//--------------------------------------------------------------------
+// draw tractor beam when editing objects
+//--------------------------------------------------------------------
+//virtual
+void LLVOAvatarSelf::idleUpdateTractorBeam()
+{
+ // This is only done for yourself (maybe it should be in the agent?)
+ if (!needsRenderBeam() || !mIsBuilt)
+ {
+ mBeam = NULL;
+ }
+ else if (!mBeam || mBeam->isDead())
+ {
+ // VEFFECT: Tractor Beam
+ mBeam = (LLHUDEffectSpiral *)LLHUDManager::getInstance()->createViewerEffect(LLHUDObject::LL_HUD_EFFECT_BEAM);
+ mBeam->setColor(LLColor4U(gAgent.getEffectColor()));
+ mBeam->setSourceObject(this);
+ mBeamTimer.reset();
+ }
+
+ if (!mBeam.isNull())
+ {
+ LLObjectSelectionHandle selection = LLSelectMgr::getInstance()->getSelection();
+
+ if (gAgent.mPointAt.notNull())
+ {
+ // get point from pointat effect
+ mBeam->setPositionGlobal(gAgent.mPointAt->getPointAtPosGlobal());
+ mBeam->triggerLocal();
+ }
+ else if (selection->getFirstRootObject() &&
+ selection->getSelectType() != SELECT_TYPE_HUD)
+ {
+ LLViewerObject* objectp = selection->getFirstRootObject();
+ mBeam->setTargetObject(objectp);
+ }
+ else
+ {
+ mBeam->setTargetObject(NULL);
+ LLTool *tool = LLToolMgr::getInstance()->getCurrentTool();
+ if (tool->isEditing())
+ {
+ if (tool->getEditingObject())
+ {
+ mBeam->setTargetObject(tool->getEditingObject());
+ }
+ else
+ {
+ mBeam->setPositionGlobal(tool->getEditingPointGlobal());
+ }
+ }
+ else
+ {
+ const LLPickInfo& pick = gViewerWindow->getLastPick();
+ mBeam->setPositionGlobal(pick.mPosGlobal);
+ }
+
+ }
+ if (mBeamTimer.getElapsedTimeF32() > 0.25f)
+ {
+ mBeam->setColor(LLColor4U(gAgent.getEffectColor()));
+ mBeam->setNeedsSendToSim(TRUE);
+ mBeamTimer.reset();
+ }
+ }
+}
+
+//-----------------------------------------------------------------------------
+// restoreMeshData()
+//-----------------------------------------------------------------------------
+// virtual
+void LLVOAvatarSelf::restoreMeshData()
+{
+ LLMemType mt(LLMemType::MTYPE_AVATAR);
+
+ //llinfos << "Restoring" << llendl;
+ mMeshValid = TRUE;
+ updateJointLODs();
+ updateAttachmentVisibility(gAgent.getCameraMode());
+
+ // force mesh update as LOD might not have changed to trigger this
+ gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_GEOMETRY, TRUE);
+}
+
+
+
+//-----------------------------------------------------------------------------
+// updateAttachmentVisibility()
+//-----------------------------------------------------------------------------
+void LLVOAvatarSelf::updateAttachmentVisibility(U32 camera_mode)
+{
+ for (attachment_map_t::iterator iter = mAttachmentPoints.begin();
+ iter != mAttachmentPoints.end(); )
+ {
+ attachment_map_t::iterator curiter = iter++;
+ LLViewerJointAttachment* attachment = curiter->second;
+ if (attachment->getIsHUDAttachment())
+ {
+ attachment->setAttachmentVisibility(TRUE);
+ }
+ else
+ {
+ switch (camera_mode)
+ {
+ case CAMERA_MODE_MOUSELOOK:
+ if (LLVOAvatar::sVisibleInFirstPerson && attachment->getVisibleInFirstPerson())
+ {
+ attachment->setAttachmentVisibility(TRUE);
+ }
+ else
+ {
+ attachment->setAttachmentVisibility(FALSE);
+ }
+ break;
+ default:
+ attachment->setAttachmentVisibility(TRUE);
+ break;
+ }
+ }
+ }
+}
+
+//-----------------------------------------------------------------------------
+// updatedWearable( EWearableType type )
+// forces an update to any baked textures relevant to type.
+// Should be called only on saving the wearable
+//-----------------------------------------------------------------------------
+void LLVOAvatarSelf::wearableUpdated( EWearableType type )
+{
+ for (LLVOAvatarDictionary::BakedTextures::const_iterator baked_iter = LLVOAvatarDictionary::getInstance()->getBakedTextures().begin();
+ baked_iter != LLVOAvatarDictionary::getInstance()->getBakedTextures().end();
+ baked_iter++)
+ {
+ const LLVOAvatarDictionary::BakedEntry *baked_dict = baked_iter->second;
+ const LLVOAvatarDefines::EBakedTextureIndex index = baked_iter->first;
+ if (baked_dict)
+ {
+ for (LLVOAvatarDefines::wearables_vec_t::const_iterator type_iter = baked_dict->mWearables.begin();
+ type_iter != baked_dict->mWearables.end();
+ type_iter++)
+ {
+ const EWearableType comp_type = *type_iter;
+ if (comp_type == type)
+ {
+ if (mBakedTextureDatas[index].mTexLayerSet)
+ {
+ mBakedTextureDatas[index].mTexLayerSet->requestUpdate();
+ mBakedTextureDatas[index].mTexLayerSet->requestUpload();
+ }
+ break;
+ }
+ }
+ }
+ }
+}
+
+//-----------------------------------------------------------------------------
+// isWearingAttachment()
+//-----------------------------------------------------------------------------
+BOOL LLVOAvatarSelf::isWearingAttachment( const LLUUID& inv_item_id )
+{
+ for (attachment_map_t::iterator iter = mAttachmentPoints.begin();
+ iter != mAttachmentPoints.end(); )
+ {
+ attachment_map_t::iterator curiter = iter++;
+ LLViewerJointAttachment* attachment = curiter->second;
+ if( attachment->getItemID() == inv_item_id )
+ {
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+//-----------------------------------------------------------------------------
+// getWornAttachment()
+//-----------------------------------------------------------------------------
+LLViewerObject* LLVOAvatarSelf::getWornAttachment( const LLUUID& inv_item_id ) const
+{
+ for (attachment_map_t::const_iterator iter = mAttachmentPoints.begin();
+ iter != mAttachmentPoints.end(); )
+ {
+ attachment_map_t::const_iterator curiter = iter++;
+ const LLViewerJointAttachment* attachment = curiter->second;
+ if( attachment->getItemID() == inv_item_id )
+ {
+ return attachment->getObject();
+ }
+ }
+ return NULL;
+}
+
+const std::string LLVOAvatarSelf::getAttachedPointName(const LLUUID& inv_item_id) const
+{
+ for (attachment_map_t::const_iterator iter = mAttachmentPoints.begin();
+ iter != mAttachmentPoints.end(); )
+ {
+ attachment_map_t::const_iterator curiter = iter++;
+ const LLViewerJointAttachment* attachment = curiter->second;
+ if( attachment->getItemID() == inv_item_id )
+ {
+ return attachment->getName();
+ }
+ }
+
+ return LLStringUtil::null;
+}
+
+//virtual
+LLViewerJointAttachment *LLVOAvatarSelf::attachObject(LLViewerObject *viewer_object)
+{
+ LLViewerJointAttachment *attachment = LLVOAvatar::attachObject(viewer_object);
+ if (!attachment)
+ {
+ return 0;
+ }
+
+ updateAttachmentVisibility(gAgent.getCameraMode());
+
+ // Then make sure the inventory is in sync with the avatar.
+ gInventory.addChangedMask(LLInventoryObserver::LABEL, attachment->getItemID());
+ gInventory.notifyObservers();
+
+ return attachment;
+}
+
+// virtual
+void LLVOAvatarSelf::localTextureLoaded(BOOL success, LLViewerImage *src_vi, LLImageRaw* src_raw, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata)
+{
+ //llinfos << "onLocalTextureLoaded: " << src_vi->getID() << llendl;
+
+ const LLUUID& src_id = src_vi->getID();
+ LLAvatarTexData *data = (LLAvatarTexData *)userdata;
+ if (success)
+ {
+ ETextureIndex index = data->mIndex;
+ if (!isIndexLocalTexture(index)) return;
+ LocalTextureData *local_tex_data = getLocalTextureData(index,0);
+ if (!local_tex_data->mIsBakedReady &&
+ local_tex_data->mImage.notNull() &&
+ (local_tex_data->mImage->getID() == src_id) &&
+ discard_level < local_tex_data->mDiscard)
+ {
+ local_tex_data->mDiscard = discard_level;
+ if (!gAgent.cameraCustomizeAvatar())
+ {
+ requestLayerSetUpdate(index);
+ }
+ else if (gAgent.cameraCustomizeAvatar())
+ {
+ LLVisualParamHint::requestHintUpdates();
+ }
+ updateMeshTextures();
+ }
+ }
+ else if (final)
+ {
+ ETextureIndex index = data->mIndex;
+ if (!isIndexLocalTexture(index)) return;
+ LocalTextureData *local_tex_data = getLocalTextureData(index,0);
+ // Failed: asset is missing
+ if (!local_tex_data->mIsBakedReady &&
+ local_tex_data->mImage.notNull() &&
+ local_tex_data->mImage->getID() == src_id)
+ {
+ local_tex_data->mDiscard = 0;
+ requestLayerSetUpdate(index);
+ updateMeshTextures();
+ }
+ }
+}
+
+// virtual
+/* //unused
+BOOL LLVOAvatarSelf::getLocalTextureRaw(ETextureIndex index, LLImageRaw* image_raw) const
+{
+ if (!isIndexLocalTexture(index)) return FALSE;
+ if (getLocalTextureID(index) == IMG_DEFAULT_AVATAR) return TRUE;
+
+ const LocalTextureData *local_tex_data = getLocalTextureData(index)[0];
+ if (local_tex_data->mImage->readBackRaw(-1, image_raw, false))
+ {
+
+ return TRUE;
+ }
+
+ // No data loaded yet
+ setLocalTexture((ETextureIndex)index, getTEImage(index), FALSE); // <-- non-const, move this elsewhere
+ return FALSE;
+}
+*/
+
+// virtual
+BOOL LLVOAvatarSelf::getLocalTextureGL(ETextureIndex type, LLImageGL** image_gl_pp, U32 index) const
+{
+ *image_gl_pp = NULL;
+
+ if (!isIndexLocalTexture(type)) return FALSE;
+ if (getLocalTextureID(type, index) == IMG_DEFAULT_AVATAR) return TRUE;
+
+ const LocalTextureData *local_tex_data = getLocalTextureData(type, index);
+ if (!local_tex_data)
+ {
+ return FALSE;
+ }
+ *image_gl_pp = local_tex_data->mImage;
+ return TRUE;
+}
+
+const LLUUID& LLVOAvatarSelf::getLocalTextureID(ETextureIndex type, U32 index) const
+{
+ if (!isIndexLocalTexture(type)) return IMG_DEFAULT_AVATAR;
+
+ const LocalTextureData *local_tex_data = getLocalTextureData(type,index);
+ if (local_tex_data && local_tex_data->mImage.notNull())
+ {
+ return local_tex_data->mImage->getID();
+ }
+ return IMG_DEFAULT_AVATAR;
+}
+
+//-----------------------------------------------------------------------------
+// isLocalTextureDataAvailable()
+// Returns true if at least the lowest quality discard level exists for every texture
+// in the layerset.
+//-----------------------------------------------------------------------------
+BOOL LLVOAvatarSelf::isLocalTextureDataAvailable(const LLTexLayerSet* layerset) const
+{
+ /* if (layerset == mBakedTextureDatas[BAKED_HEAD].mTexLayerSet)
+ return getLocalDiscardLevel(TEX_HEAD_BODYPAINT) >= 0; */
+ for (LLVOAvatarDictionary::BakedTextures::const_iterator baked_iter = LLVOAvatarDictionary::getInstance()->getBakedTextures().begin();
+ baked_iter != LLVOAvatarDictionary::getInstance()->getBakedTextures().end();
+ baked_iter++)
+ {
+ const EBakedTextureIndex baked_index = baked_iter->first;
+ if (layerset == mBakedTextureDatas[baked_index].mTexLayerSet)
+ {
+ BOOL ret = true;
+ const LLVOAvatarDictionary::BakedEntry *baked_dict = baked_iter->second;
+ for (texture_vec_t::const_iterator local_tex_iter = baked_dict->mLocalTextures.begin();
+ local_tex_iter != baked_dict->mLocalTextures.end();
+ local_tex_iter++)
+ {
+ const ETextureIndex tex_index = *local_tex_iter;
+ ret &= (getLocalDiscardLevel(tex_index) >= 0);
+ }
+ return ret;
+ }
+ }
+ llassert(0);
+ return FALSE;
+}
+
+//-----------------------------------------------------------------------------
+// virtual
+// isLocalTextureDataFinal()
+// Returns true if the highest quality discard level exists for every texture
+// in the layerset.
+//-----------------------------------------------------------------------------
+BOOL LLVOAvatarSelf::isLocalTextureDataFinal(const LLTexLayerSet* layerset) const
+{
+ for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
+ {
+ if (layerset == mBakedTextureDatas[i].mTexLayerSet)
+ {
+ const LLVOAvatarDictionary::BakedEntry *baked_dict = LLVOAvatarDictionary::getInstance()->getBakedTexture((EBakedTextureIndex)i);
+ for (texture_vec_t::const_iterator local_tex_iter = baked_dict->mLocalTextures.begin();
+ local_tex_iter != baked_dict->mLocalTextures.end();
+ local_tex_iter++)
+ {
+ if (getLocalDiscardLevel(*local_tex_iter) != 0)
+ {
+ return FALSE;
+ }
+ }
+ return TRUE;
+ }
+ }
+ llassert(0);
+ return FALSE;
+}
+
+BOOL LLVOAvatarSelf::isTextureDefined(LLVOAvatarDefines::ETextureIndex type, U32 index) const
+{
+ LLUUID id;
+ if (isIndexLocalTexture(type))
+ {
+ id = getLocalTextureID(type, index);
+ }
+ else
+ {
+ id = getTEImage(type)->getID();
+ }
+
+ return (id != IMG_DEFAULT_AVATAR &&
+ id != IMG_DEFAULT);
+}
+
+//-----------------------------------------------------------------------------
+// virtual
+// requestLayerSetUploads()
+//-----------------------------------------------------------------------------
+void LLVOAvatarSelf::requestLayerSetUploads()
+{
+ for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
+ {
+ BOOL layer_baked = isTextureDefined(mBakedTextureDatas[i].mTextureIndex);
+ if (!layer_baked && mBakedTextureDatas[i].mTexLayerSet)
+ {
+ mBakedTextureDatas[i].mTexLayerSet->requestUpload();
+ }
+ }
+}
+
+bool LLVOAvatarSelf::areTexturesCurrent() const
+{
+ return !hasPendingBakedUploads() && gAgentWearables.areWearablesLoaded();
+}
+
+// virtual
+bool LLVOAvatarSelf::hasPendingBakedUploads() const
+{
+ for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
+ {
+ BOOL upload_pending = (mBakedTextureDatas[i].mTexLayerSet && mBakedTextureDatas[i].mTexLayerSet->getComposite()->uploadPending());
+ if (upload_pending)
+ {
+ return true;
+ }
+ }
+ return false;
+}
+
+void LLVOAvatarSelf::invalidateComposite( LLTexLayerSet* layerset, BOOL set_by_user )
+{
+ if( !layerset || !layerset->getUpdatesEnabled() )
+ {
+ return;
+ }
+ // llinfos << "LLVOAvatar::invalidComposite() " << layerset->getBodyRegion() << llendl;
+
+ invalidateMorphMasks(layerset->getBakedTexIndex());
+ layerset->requestUpdate();
+
+ if( set_by_user )
+ {
+ llassert(isSelf());
+
+ ETextureIndex baked_te = getBakedTE( layerset );
+ setTEImage( baked_te, gImageList.getImage(IMG_DEFAULT_AVATAR) );
+ layerset->requestUpload();
+ }
+}
+
+void LLVOAvatarSelf::invalidateAll()
+{
+ for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
+ {
+ invalidateComposite(mBakedTextureDatas[i].mTexLayerSet, TRUE);
+ }
+ updateMeshTextures();
+}
+
+//-----------------------------------------------------------------------------
+// setCompositeUpdatesEnabled()
+//-----------------------------------------------------------------------------
+void LLVOAvatarSelf::setCompositeUpdatesEnabled( BOOL b )
+{
+ for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
+ {
+ if (mBakedTextureDatas[i].mTexLayerSet )
+ {
+ mBakedTextureDatas[i].mTexLayerSet->setUpdatesEnabled( b );
+ }
+ }
+}
+
+void LLVOAvatarSelf::setupComposites()
+{
+ for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
+ {
+ BOOL layer_baked = isTextureDefined(mBakedTextureDatas[i].mTextureIndex);
+ if (mBakedTextureDatas[i].mTexLayerSet)
+ {
+ mBakedTextureDatas[i].mTexLayerSet->setUpdatesEnabled(!layer_baked);
+ }
+ }
+}
+
+void LLVOAvatarSelf::updateComposites()
+{
+ for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
+ {
+ if (mBakedTextureDatas[i].mTexLayerSet
+ && ((i != BAKED_SKIRT) || isWearingWearableType(WT_SKIRT)))
+ {
+ mBakedTextureDatas[i].mTexLayerSet->updateComposite();
+ }
+ }
+}
+
+// virtual
+S32 LLVOAvatarSelf::getLocalDiscardLevel(ETextureIndex type, U32 index) const
+{
+ if (!isIndexLocalTexture(type)) return FALSE;
+
+ const LocalTextureData *local_tex_data = getLocalTextureData(type,index);
+ if (local_tex_data)
+ {
+ if (type >= 0
+ && getLocalTextureID(type,index) != IMG_DEFAULT_AVATAR
+ && !local_tex_data->mImage->isMissingAsset())
+ {
+ return local_tex_data->mImage->getDiscardLevel();
+ }
+ else
+ {
+ // We don't care about this (no image associated with the layer) treat as fully loaded.
+ return 0;
+ }
+ }
+ return 0;
+}
+
+// virtual
+// Counts the memory footprint of local textures.
+void LLVOAvatarSelf::getLocalTextureByteCount(S32* gl_bytes) const
+{
+ *gl_bytes = 0;
+ for (S32 type = 0; type < TEX_NUM_INDICES; type++)
+ {
+ if (!isIndexLocalTexture((ETextureIndex)type)) continue;
+ const localtexture_vec_t & local_tex_vec = getLocalTextureData((ETextureIndex)type);
+ for (U32 num = 0; num < local_tex_vec.size(); num++)
+ {
+ const LocalTextureData *local_tex_data = local_tex_vec[num];
+ if (local_tex_data)
+ {
+ const LLViewerImage* image_gl = local_tex_data->mImage;
+ if (image_gl)
+ {
+ S32 bytes = (S32)image_gl->getWidth() * image_gl->getHeight() * image_gl->getComponents();
+
+ if (image_gl->getHasGLTexture())
+ {
+ *gl_bytes += bytes;
+ }
+ }
+ }
+ }
+ }
+}
+
+// virtual
+void LLVOAvatarSelf::setLocalTexture(ETextureIndex type, LLViewerImage* tex, BOOL baked_version_ready, U32 index)
+{
+ if (!isIndexLocalTexture(type)) return;
+
+ S32 desired_discard = isSelf() ? 0 : 2;
+ LocalTextureData *local_tex_data = getLocalTextureData(type,index);
+ if (!baked_version_ready)
+ {
+ if (tex != local_tex_data->mImage || local_tex_data->mIsBakedReady)
+ {
+ local_tex_data->mDiscard = MAX_DISCARD_LEVEL+1;
+ }
+ if (tex->getID() != IMG_DEFAULT_AVATAR)
+ {
+ if (local_tex_data->mDiscard > desired_discard)
+ {
+ S32 tex_discard = tex->getDiscardLevel();
+ if (tex_discard >= 0 && tex_discard <= desired_discard)
+ {
+ local_tex_data->mDiscard = tex_discard;
+ if (isSelf() && !gAgent.cameraCustomizeAvatar())
+ {
+ requestLayerSetUpdate(type);
+ }
+ else if (isSelf() && gAgent.cameraCustomizeAvatar())
+ {
+ LLVisualParamHint::requestHintUpdates();
+ }
+ }
+ else
+ {
+ tex->setLoadedCallback(onLocalTextureLoaded, desired_discard, TRUE, FALSE, new LLAvatarTexData(getID(), type));
+ }
+ }
+ tex->setMinDiscardLevel(desired_discard);
+ }
+ }
+ local_tex_data->mIsBakedReady = baked_version_ready;
+ local_tex_data->mImage = tex;
+}
+
+// virtual
+void LLVOAvatarSelf::dumpLocalTextures() const
+{
+ llinfos << "Local Textures:" << llendl;
+
+ /* ETextureIndex baked_equiv[] = {
+ TEX_UPPER_BAKED,
+ if (isTextureDefined(baked_equiv[i])) */
+ for (LLVOAvatarDictionary::Textures::const_iterator iter = LLVOAvatarDictionary::getInstance()->getTextures().begin();
+ iter != LLVOAvatarDictionary::getInstance()->getTextures().end();
+ iter++)
+ {
+ const LLVOAvatarDictionary::TextureEntry *texture_dict = iter->second;
+ if (!texture_dict->mIsLocalTexture || !texture_dict->mIsUsedByBakedTexture)
+ continue;
+
+ const EBakedTextureIndex baked_index = texture_dict->mBakedTextureIndex;
+ const ETextureIndex baked_equiv = LLVOAvatarDictionary::getInstance()->getBakedTexture(baked_index)->mTextureIndex;
+
+ const std::string &name = texture_dict->mName;
+ const LocalTextureData *local_tex_data = getLocalTextureData(iter->first,0);
+ if (isTextureDefined(baked_equiv))
+ {
+#if LL_RELEASE_FOR_DOWNLOAD
+ // End users don't get to trivially see avatar texture IDs, makes textures
+ // easier to steal. JC
+ llinfos << "LocTex " << name << ": Baked " << llendl;
+#else
+ llinfos << "LocTex " << name << ": Baked " << getTEImage(baked_equiv)->getID() << llendl;
+#endif
+ }
+ else if (local_tex_data->mImage.notNull())
+ {
+ if (local_tex_data->mImage->getID() == IMG_DEFAULT_AVATAR)
+ {
+ llinfos << "LocTex " << name << ": None" << llendl;
+ }
+ else
+ {
+ const LLViewerImage* image = local_tex_data->mImage;
+
+ llinfos << "LocTex " << name << ": "
+ << "Discard " << image->getDiscardLevel() << ", "
+ << "(" << image->getWidth() << ", " << image->getHeight() << ") "
+#if !LL_RELEASE_FOR_DOWNLOAD
+ // End users don't get to trivially see avatar texture IDs,
+ // makes textures easier to steal
+ << image->getID() << " "
+#endif
+ << "Priority: " << image->getDecodePriority()
+ << llendl;
+ }
+ }
+ else
+ {
+ llinfos << "LocTex " << name << ": No LLViewerImage" << llendl;
+ }
+ }
+}
+
+//-----------------------------------------------------------------------------
+// static
+// onLocalTextureLoaded()
+//-----------------------------------------------------------------------------
+
+void LLVOAvatarSelf::onLocalTextureLoaded(BOOL success, LLViewerImage *src_vi, LLImageRaw* src_raw, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata)
+{
+ LLAvatarTexData *data = (LLAvatarTexData *)userdata;
+ LLVOAvatarSelf *self = (LLVOAvatarSelf *)gObjectList.findObject(data->mAvatarID);
+ if (self)
+ {
+ // We should only be handling local textures for ourself
+ self->localTextureLoaded(success, src_vi, src_raw, aux_src, discard_level, final, userdata);
+ }
+ // ensure data is cleaned up
+ if (final || !success)
+ {
+ delete data;
+ }
+}
+
+
+const LLVOAvatarSelf::localtexture_vec_t &LLVOAvatarSelf::getLocalTextureData(LLVOAvatarDefines::ETextureIndex type) const
+{
+ localtexture_map_t::const_iterator found_localtexture = mLocalTextureDatas.find(type);
+ if (found_localtexture != mLocalTextureDatas.end())
+ {
+ const localtexture_vec_t &local_tex_data = found_localtexture->second;
+ return local_tex_data;
+ }
+ llassert(0);
+ static localtexture_vec_t ret;
+ return ret;
+}
+
+const LocalTextureData* LLVOAvatarSelf::getLocalTextureData(LLVOAvatarDefines::ETextureIndex type, U32 index ) const
+{
+ const localtexture_vec_t &local_tex_array = getLocalTextureData(type);
+
+ if (index >= local_tex_array.size())
+ {
+ return NULL;
+ }
+
+ return local_tex_array[index];
+}
+
+LLVOAvatarSelf::localtexture_vec_t &LLVOAvatarSelf::getLocalTextureData(LLVOAvatarDefines::ETextureIndex type)
+{
+ localtexture_map_t::iterator found_localtexture = mLocalTextureDatas.find(type);
+ if (found_localtexture != mLocalTextureDatas.end())
+ {
+ localtexture_vec_t &local_tex_data = found_localtexture->second;
+ return local_tex_data;
+ }
+ llassert(0);
+ static localtexture_vec_t ret;
+ return ret;
+}
+
+LocalTextureData* LLVOAvatarSelf::getLocalTextureData(LLVOAvatarDefines::ETextureIndex type, U32 index )
+{
+ localtexture_vec_t &local_tex_array = getLocalTextureData(type);
+
+ if (index >= local_tex_array.size())
+ {
+ return NULL;
+ }
+
+ return local_tex_array[index];
+}
+
+// static
+void LLVOAvatarSelf::dumpTotalLocalTextureByteCount()
+{
+ S32 gl_bytes = 0;
+ gAgent.getAvatarObject()->getLocalTextureByteCount(&gl_bytes);
+ llinfos << "Total Avatar LocTex GL:" << (gl_bytes/1024) << "KB" << llendl;
+}
+
+BOOL LLVOAvatarSelf::updateIsFullyLoaded()
+{
+ BOOL loading = FALSE;
+
+ // do we have a shape?
+ if (visualParamWeightsAreDefault())
+ {
+ loading = TRUE;
+ }
+
+ if (!isTextureDefined(TEX_HAIR))
+ {
+ loading = TRUE;
+ }
+
+ if (!mPreviousFullyLoaded)
+ {
+ if (!isLocalTextureDataAvailable(mBakedTextureDatas[BAKED_LOWER].mTexLayerSet) &&
+ (!isTextureDefined(TEX_LOWER_BAKED)))
+ {
+ loading = TRUE;
+ }
+
+ if (!isLocalTextureDataAvailable(mBakedTextureDatas[BAKED_UPPER].mTexLayerSet) &&
+ (!isTextureDefined(TEX_UPPER_BAKED)))
+ {
+ loading = TRUE;
+ }
+
+ for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
+ {
+ if (i == BAKED_SKIRT && !isWearingWearableType(WT_SKIRT))
+ continue;
+
+ BakedTextureData& texture_data = mBakedTextureDatas[i];
+ if (!isTextureDefined(texture_data.mTextureIndex))
+ continue;
+
+ // Check for the case that texture is defined but not sufficiently loaded to display anything.
+ LLViewerImage* baked_img = getImage( texture_data.mTextureIndex );
+ if (!baked_img || !baked_img->getHasGLTexture())
+ {
+ loading = TRUE;
+ }
+
+ }
+
+ }
+ return processFullyLoadedChange(loading);
+}
+
+const LLUUID& LLVOAvatarSelf::grabLocalTexture(ETextureIndex type, U32 index) const
+{
+ if (canGrabLocalTexture(type, index))
+ {
+ return getTEImage( type )->getID();
+ }
+ return LLUUID::null;
+}
+
+BOOL LLVOAvatarSelf::canGrabLocalTexture(ETextureIndex type, U32 index) const
+{
+ // Check if the texture hasn't been baked yet.
+ if (!isTextureDefined(type))
+ {
+ lldebugs << "getTEImage( " << (U32) type << " )->getID() == IMG_DEFAULT_AVATAR" << llendl;
+ return FALSE;
+ }
+
+ if (gAgent.isGodlike())
+ return TRUE;
+
+ // Check permissions of textures that show up in the
+ // baked texture. We don't want people copying people's
+ // work via baked textures.
+ /* switch(type)
+ case TEX_EYES_BAKED:
+ textures.push_back(TEX_EYES_IRIS); */
+ const LLVOAvatarDictionary::TextureEntry *texture_dict = LLVOAvatarDictionary::getInstance()->getTexture(type);
+ if (!texture_dict->mIsUsedByBakedTexture) return FALSE;
+
+ const EBakedTextureIndex baked_index = texture_dict->mBakedTextureIndex;
+ const LLVOAvatarDictionary::BakedEntry *baked_dict = LLVOAvatarDictionary::getInstance()->getBakedTexture(baked_index);
+ for (texture_vec_t::const_iterator iter = baked_dict->mLocalTextures.begin();
+ iter != baked_dict->mLocalTextures.end();
+ iter++)
+ {
+ const ETextureIndex t_index = (*iter);
+ lldebugs << "Checking index " << (U32) t_index << llendl;
+ const LLUUID& texture_id = getTEImage( t_index )->getID();
+ if (texture_id != IMG_DEFAULT_AVATAR)
+ {
+ // Search inventory for this texture.
+ LLViewerInventoryCategory::cat_array_t cats;
+ LLViewerInventoryItem::item_array_t items;
+ LLAssetIDMatches asset_id_matches(texture_id);
+ gInventory.collectDescendentsIf(LLUUID::null,
+ cats,
+ items,
+ LLInventoryModel::INCLUDE_TRASH,
+ asset_id_matches);
+
+ BOOL can_grab = FALSE;
+ lldebugs << "item count for asset " << texture_id << ": " << items.count() << llendl;
+ if (items.count())
+ {
+ // search for full permissions version
+ for (S32 i = 0; i < items.count(); i++)
+ {
+ LLInventoryItem* itemp = items[i];
+ LLPermissions item_permissions = itemp->getPermissions();
+ if ( item_permissions.allowOperationBy(
+ PERM_MODIFY, gAgent.getID(), gAgent.getGroupID()) &&
+ item_permissions.allowOperationBy(
+ PERM_COPY, gAgent.getID(), gAgent.getGroupID()) &&
+ item_permissions.allowOperationBy(
+ PERM_TRANSFER, gAgent.getID(), gAgent.getGroupID()) )
+ {
+ can_grab = TRUE;
+ break;
+ }
+ }
+ }
+ if (!can_grab) return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
+void LLVOAvatarSelf::addLocalTextureStats( ETextureIndex type, LLViewerImage* imagep,
+ F32 texel_area_ratio, BOOL render_avatar, BOOL covered_by_baked, U32 index )
+{
+ if (!isIndexLocalTexture(type)) return;
+
+ if (!covered_by_baked)
+ {
+ if (getLocalTextureID(type, index) != IMG_DEFAULT_AVATAR)
+ {
+ F32 desired_pixels;
+ desired_pixels = llmin(mPixelArea, (F32)getTexImageArea());
+ imagep->setBoostLevel(getAvatarBoostLevel());
+ imagep->addTextureStats( desired_pixels / texel_area_ratio );
+ if (imagep->getDiscardLevel() < 0)
+ {
+ mHasGrey = TRUE; // for statistics gathering
+ }
+ }
+ else
+ {
+ // texture asset is missing
+ mHasGrey = TRUE; // for statistics gathering
+ }
+ }
+}
+
+//-----------------------------------------------------------------------------
+// getBakedTE()
+// Used by the LayerSet. (Layer sets don't in general know what textures depend on them.)
+//-----------------------------------------------------------------------------
+ETextureIndex LLVOAvatarSelf::getBakedTE( const LLTexLayerSet* layerset ) const
+{
+ for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
+ {
+ if (layerset == mBakedTextureDatas[i].mTexLayerSet )
+ {
+ return mBakedTextureDatas[i].mTextureIndex;
+ }
+ }
+ llassert(0);
+ return TEX_HEAD_BAKED;
+}
+
+
+//-----------------------------------------------------------------------------
+// setNewBakedTexture()
+// A new baked texture has been successfully uploaded and we can start using it now.
+//-----------------------------------------------------------------------------
+void LLVOAvatarSelf::setNewBakedTexture( ETextureIndex te, const LLUUID& uuid )
+{
+ // Baked textures live on other sims.
+ LLHost target_host = getObjectHost();
+ setTEImage( te, gImageList.getImageFromHost( uuid, target_host ) );
+ updateMeshTextures();
+ dirtyMesh();
+
+ LLVOAvatar::cullAvatarsByPixelArea();
+
+ /* switch(te)
+ case TEX_HEAD_BAKED:
+ llinfos << "New baked texture: HEAD" << llendl; */
+ const LLVOAvatarDictionary::TextureEntry *texture_dict = LLVOAvatarDictionary::getInstance()->getTexture(te);
+ if (texture_dict->mIsBakedTexture)
+ {
+ llinfos << "New baked texture: " << texture_dict->mName << " UUID: " << uuid <<llendl;
+ }
+ else
+ {
+ llwarns << "New baked texture: unknown te " << te << llendl;
+ }
+
+ // dumpAvatarTEs( "setNewBakedTexture() send" );
+ // RN: throttle uploads
+ if (!hasPendingBakedUploads())
+ {
+ gAgent.sendAgentSetAppearance();
+ }
+}
+
+//-----------------------------------------------------------------------------
+// setCachedBakedTexture()
+// A baked texture id was received from a cache query, make it active
+//-----------------------------------------------------------------------------
+void LLVOAvatarSelf::setCachedBakedTexture( ETextureIndex te, const LLUUID& uuid )
+{
+ setTETexture( te, uuid );
+
+ /* switch(te)
+ case TEX_HEAD_BAKED:
+ if( mHeadLayerSet )
+ mHeadLayerSet->cancelUpload(); */
+ for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
+ {
+ if ( mBakedTextureDatas[i].mTextureIndex == te && mBakedTextureDatas[i].mTexLayerSet)
+ {
+ mBakedTextureDatas[i].mTexLayerSet->cancelUpload();
+ }
+ }
+}
+
+// static
+void LLVOAvatarSelf::processRebakeAvatarTextures(LLMessageSystem* msg, void**)
+{
+ LLUUID texture_id;
+ msg->getUUID("TextureData", "TextureID", texture_id);
+
+ LLVOAvatarSelf* self = gAgent.getAvatarObject();
+ if (!self) return;
+
+ // If this is a texture corresponding to one of our baked entries,
+ // just rebake that layer set.
+ BOOL found = FALSE;
+
+ /* ETextureIndex baked_texture_indices[BAKED_NUM_INDICES] =
+ TEX_HEAD_BAKED,
+ TEX_UPPER_BAKED, */
+ for (LLVOAvatarDictionary::Textures::const_iterator iter = LLVOAvatarDictionary::getInstance()->getTextures().begin();
+ iter != LLVOAvatarDictionary::getInstance()->getTextures().end();
+ iter++)
+ {
+ const ETextureIndex index = iter->first;
+ const LLVOAvatarDictionary::TextureEntry *texture_dict = iter->second;
+ if (texture_dict->mIsBakedTexture)
+ {
+ if (texture_id == self->getTEImage(index)->getID())
+ {
+ LLTexLayerSet* layer_set = self->getLayerSet(index);
+ if (layer_set)
+ {
+ llinfos << "TAT: rebake - matched entry " << (S32)index << llendl;
+ // Apparently set_by_user == force upload
+ BOOL set_by_user = TRUE;
+ self->invalidateComposite(layer_set, set_by_user);
+ found = TRUE;
+ LLViewerStats::getInstance()->incStat(LLViewerStats::ST_TEX_REBAKES);
+ }
+ }
+ }
+ }
+
+ // If texture not found, rebake all entries.
+ if (!found)
+ {
+ self->forceBakeAllTextures();
+ }
+ else
+ {
+ // Not sure if this is necessary, but forceBakeAllTextures() does it.
+ self->updateMeshTextures();
+ }
+}
+
+void LLVOAvatarSelf::forceBakeAllTextures(bool slam_for_debug)
+{
+ llinfos << "TAT: forced full rebake. " << llendl;
+
+ for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
+ {
+ ETextureIndex baked_index = mBakedTextureDatas[i].mTextureIndex;
+ LLTexLayerSet* layer_set = getLayerSet(baked_index);
+ if (layer_set)
+ {
+ if (slam_for_debug)
+ {
+ layer_set->setUpdatesEnabled(TRUE);
+ layer_set->cancelUpload();
+ }
+
+ BOOL set_by_user = TRUE;
+ invalidateComposite(layer_set, set_by_user);
+ LLViewerStats::getInstance()->incStat(LLViewerStats::ST_TEX_REBAKES);
+ }
+ else
+ {
+ llwarns << "TAT: NO LAYER SET FOR " << (S32)baked_index << llendl;
+ }
+ }
+
+ // Don't know if this is needed
+ updateMeshTextures();
+}
+
+//-----------------------------------------------------------------------------
+// requestLayerSetUpdate()
+//-----------------------------------------------------------------------------
+void LLVOAvatarSelf::requestLayerSetUpdate(ETextureIndex index )
+{
+ /* switch(index)
+ case LOCTEX_UPPER_BODYPAINT:
+ case LOCTEX_UPPER_SHIRT:
+ if( mUpperBodyLayerSet )
+ mUpperBodyLayerSet->requestUpdate(); */
+ const LLVOAvatarDictionary::TextureEntry *texture_dict = LLVOAvatarDictionary::getInstance()->getTexture(index);
+ if (!texture_dict->mIsLocalTexture || !texture_dict->mIsUsedByBakedTexture)
+ return;
+ const EBakedTextureIndex baked_index = texture_dict->mBakedTextureIndex;
+ if (mBakedTextureDatas[baked_index].mTexLayerSet)
+ {
+ mBakedTextureDatas[baked_index].mTexLayerSet->requestUpdate();
+ }
+}
+
+LLTexLayerSet* LLVOAvatarSelf::getLayerSet(ETextureIndex index) const
+{
+ /* switch(index)
+ case TEX_HEAD_BAKED:
+ case TEX_HEAD_BODYPAINT:
+ return mHeadLayerSet; */
+ const LLVOAvatarDictionary::TextureEntry *texture_dict = LLVOAvatarDictionary::getInstance()->getTexture(index);
+ if (texture_dict->mIsUsedByBakedTexture)
+ {
+ const EBakedTextureIndex baked_index = texture_dict->mBakedTextureIndex;
+ return mBakedTextureDatas[baked_index].mTexLayerSet;
+ }
+ return NULL;
+}
+
+// static
+void LLVOAvatarSelf::onCustomizeStart()
+{
+ // We're no longer doing any baking or invalidating on entering
+ // appearance editing mode. Leaving function in place in case
+ // further changes require us to do something at this point - Nyx
+}
+
+// static
+void LLVOAvatarSelf::onCustomizeEnd()
+{
+ LLVOAvatarSelf *avatarp = gAgent.getAvatarObject();
+ if (avatarp)
+ {
+ avatarp->invalidateAll();
+ avatarp->requestLayerSetUploads();
+ }
+}
+
+// static
+void LLVOAvatarSelf::onChangeSelfInvisible(BOOL newvalue)
+{
+ LLVOAvatarSelf *avatarp = gAgent.getAvatarObject();
+ if (avatarp)
+ {
+ if (newvalue)
+ {
+ // we have just requested to set the avatar's baked textures to invisible
+ avatarp->setInvisible(TRUE);
+ }
+ else
+ {
+ avatarp->setInvisible(FALSE);
+ }
+ }
+}
+
+void LLVOAvatarSelf::setInvisible(BOOL newvalue)
+{
+ if (newvalue)
+ {
+ setCompositeUpdatesEnabled(FALSE);
+ for (U32 i = 0; i < mBakedTextureDatas.size(); i++ )
+ {
+ setNewBakedTexture(mBakedTextureDatas[i].mTextureIndex, IMG_INVISIBLE);
+ }
+ gAgent.sendAgentSetAppearance();
+ }
+ else
+ {
+ setCompositeUpdatesEnabled(TRUE);
+ invalidateAll();
+ requestLayerSetUploads();
+ gAgent.sendAgentSetAppearance();
+ }
+}
+
+//------------------------------------------------------------------------
+// needsRenderBeam()
+//------------------------------------------------------------------------
+BOOL LLVOAvatarSelf::needsRenderBeam()
+{
+ if (gNoRender)
+ {
+ return FALSE;
+ }
+ LLTool *tool = LLToolMgr::getInstance()->getCurrentTool();
+
+ BOOL is_touching_or_grabbing = (tool == LLToolGrab::getInstance() && LLToolGrab::getInstance()->isEditing());
+ if (LLToolGrab::getInstance()->getEditingObject() &&
+ LLToolGrab::getInstance()->getEditingObject()->isAttachment())
+ {
+ // don't render selection beam on hud objects
+ is_touching_or_grabbing = FALSE;
+ }
+ return is_touching_or_grabbing || (mState & AGENT_STATE_EDITING && LLSelectMgr::getInstance()->shouldShowSelection());
+}
+
+// static
+void LLVOAvatarSelf::deleteScratchTextures()
+{
+ for( LLGLuint* namep = sScratchTexNames.getFirstData();
+ namep;
+ namep = sScratchTexNames.getNextData() )
+ {
+ LLImageGL::deleteTextures(1, (U32 *)namep );
+ stop_glerror();
+ }
+
+ if( sScratchTexBytes )
+ {
+ lldebugs << "Clearing Scratch Textures " << (sScratchTexBytes/1024) << "KB" << llendl;
+
+ sScratchTexNames.deleteAllData();
+ sScratchTexLastBindTime.deleteAllData();
+ LLImageGL::sGlobalTextureMemoryInBytes -= sScratchTexBytes;
+ sScratchTexBytes = 0;
+ }
+}
+
+BOOL LLVOAvatarSelf::bindScratchTexture( LLGLenum format )
+{
+ U32 texture_bytes = 0;
+ GLuint gl_name = getScratchTexName( format, &texture_bytes );
+ if( gl_name )
+ {
+ gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, gl_name);
+ stop_glerror();
+
+ F32* last_bind_time = sScratchTexLastBindTime.getIfThere( format );
+ if( last_bind_time )
+ {
+ if( *last_bind_time != LLImageGL::sLastFrameTime )
+ {
+ *last_bind_time = LLImageGL::sLastFrameTime;
+ LLImageGL::updateBoundTexMem(texture_bytes);
+ }
+ }
+ else
+ {
+ LLImageGL::updateBoundTexMem(texture_bytes);
+ sScratchTexLastBindTime.addData( format, new F32(LLImageGL::sLastFrameTime) );
+ }
+ return TRUE;
+ }
+ return FALSE;
+}
+
+LLGLuint LLVOAvatarSelf::getScratchTexName( LLGLenum format, U32* texture_bytes )
+{
+ S32 components;
+ GLenum internal_format;
+ switch( format )
+ {
+ case GL_LUMINANCE: components = 1; internal_format = GL_LUMINANCE8; break;
+ case GL_ALPHA: components = 1; internal_format = GL_ALPHA8; break;
+ case GL_COLOR_INDEX: components = 1; internal_format = GL_COLOR_INDEX8_EXT; break;
+ case GL_LUMINANCE_ALPHA: components = 2; internal_format = GL_LUMINANCE8_ALPHA8; break;
+ case GL_RGB: components = 3; internal_format = GL_RGB8; break;
+ case GL_RGBA: components = 4; internal_format = GL_RGBA8; break;
+ default: llassert(0); components = 4; internal_format = GL_RGBA8; break;
+ }
+
+ *texture_bytes = components * SCRATCH_TEX_WIDTH * SCRATCH_TEX_HEIGHT;
+
+ if( sScratchTexNames.checkData( format ) )
+ {
+ return *( sScratchTexNames.getData( format ) );
+ }
+
+ LLGLSUIDefault gls_ui;
+
+ U32 name = 0;
+ LLImageGL::generateTextures(1, &name );
+ stop_glerror();
+
+ gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, name);
+ stop_glerror();
+
+ LLImageGL::setManualImage(
+ GL_TEXTURE_2D, 0, internal_format,
+ SCRATCH_TEX_WIDTH, SCRATCH_TEX_HEIGHT,
+ format, GL_UNSIGNED_BYTE, NULL );
+ stop_glerror();
+
+ gGL.getTexUnit(0)->setTextureFilteringOption(LLTexUnit::TFO_BILINEAR);
+ gGL.getTexUnit(0)->setTextureAddressMode(LLTexUnit::TAM_CLAMP);
+ stop_glerror();
+
+ gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
+ stop_glerror();
+
+ sScratchTexNames.addData( format, new LLGLuint( name ) );
+
+ sScratchTexBytes += *texture_bytes;
+ LLImageGL::sGlobalTextureMemoryInBytes += *texture_bytes;
+ return name;
+}
+
+// static
+void LLVOAvatarSelf::dumpScratchTextureByteCount()
+{
+ llinfos << "Scratch Texture GL: " << (sScratchTexBytes/1024) << "KB" << llendl;
+}
diff --git a/indra/newview/llvoavatarself.h b/indra/newview/llvoavatarself.h
new file mode 100644
index 0000000000..431c814382
--- /dev/null
+++ b/indra/newview/llvoavatarself.h
@@ -0,0 +1,321 @@
+/**
+ * @file llvoavatarself.h
+ * @brief Declaration of LLVOAvatar class which is a derivation fo
+ * LLViewerObject
+ *
+ * $LicenseInfo:firstyear=2001&license=viewergpl$
+ *
+ * Copyright (c) 2001-2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#ifndef LL_LLVOAVATARSELF_H
+#define LL_LLVOAVATARSELF_H
+
+#include "llvoavatar.h"
+
+struct LocalTextureData;
+
+//------------------------------------------------------------------------
+// LLVOAvatarSelf
+//------------------------------------------------------------------------
+class LLVOAvatarSelf :
+ public LLVOAvatar
+{
+
+/********************************************************************************
+ ** **
+ ** INITIALIZATION
+ **/
+
+public:
+ LLVOAvatarSelf(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp);
+ virtual ~LLVOAvatarSelf();
+ virtual void markDead();
+protected:
+ BOOL loadAvatarSelf();
+ BOOL buildSkeletonSelf(const LLVOAvatarSkeletonInfo *info);
+ BOOL buildMenus();
+ /*virtual*/ BOOL loadLayersets();
+
+/** Initialization
+ ** **
+ *******************************************************************************/
+
+/********************************************************************************
+ ** **
+ ** INHERITED
+ **/
+
+ //--------------------------------------------------------------------
+ // LLViewerObject interface and related
+ //--------------------------------------------------------------------
+public:
+ /*virtual*/ void updateRegion(LLViewerRegion *regionp);
+
+ //--------------------------------------------------------------------
+ // LLCharacter interface and related
+ //--------------------------------------------------------------------
+public:
+ /*virtual*/ void stopMotionFromSource(const LLUUID& source_id);
+ /*virtual*/ void requestStopMotion(LLMotion* motion);
+ /*virtual*/ LLJoint* getJoint(const std::string &name);
+
+/** Initialization
+ ** **
+ *******************************************************************************/
+
+/********************************************************************************
+ ** **
+ ** STATE
+ **/
+
+public:
+ /*virtual*/ bool isSelf() const { return true; }
+
+ //--------------------------------------------------------------------
+ // Updates
+ //--------------------------------------------------------------------
+public:
+ /*virtual*/ BOOL updateCharacter(LLAgent &agent);
+ /*virtual*/ void idleUpdateTractorBeam();
+
+ //--------------------------------------------------------------------
+ // Loading state
+ //--------------------------------------------------------------------
+public:
+ /*virtual*/ BOOL updateIsFullyLoaded();
+private:
+ BOOL mIsBaked; // are the stored baked textures up to date?
+
+ //--------------------------------------------------------------------
+ // Region state
+ //--------------------------------------------------------------------
+private:
+ U64 mLastRegionHandle;
+ LLFrameTimer mRegionCrossingTimer;
+ S32 mRegionCrossingCount;
+
+/** State
+ ** **
+ *******************************************************************************/
+
+/********************************************************************************
+ ** **
+ ** RENDERING
+ **/
+
+ //--------------------------------------------------------------------
+ // Render beam
+ //--------------------------------------------------------------------
+protected:
+ BOOL needsRenderBeam();
+private:
+ LLPointer<LLHUDEffectSpiral> mBeam;
+ LLFrameTimer mBeamTimer;
+
+ //--------------------------------------------------------------------
+ // LLVOAvatar Constants
+ //--------------------------------------------------------------------
+public:
+ /*virtual*/ LLViewerImage::EBoostLevel getAvatarBoostLevel() const { return LLViewerImage::BOOST_AVATAR_SELF; }
+ /*virtual*/ LLViewerImage::EBoostLevel getAvatarBakedBoostLevel() const { return LLViewerImage::BOOST_AVATAR_BAKED_SELF; }
+ /*virtual*/ S32 getTexImageSize() const { return LLVOAvatar::getTexImageSize()*4; }
+
+/** Rendering
+ ** **
+ *******************************************************************************/
+
+/********************************************************************************
+ ** **
+ ** TEXTURES
+ **/
+
+ //--------------------------------------------------------------------
+ // Loading status
+ //--------------------------------------------------------------------
+public:
+ /*virtual*/ bool hasPendingBakedUploads() const;
+ S32 getLocalDiscardLevel(LLVOAvatarDefines::ETextureIndex type, U32 index = 0) const;
+ bool areTexturesCurrent() const;
+ BOOL isLocalTextureDataAvailable(const LLTexLayerSet* layerset) const;
+ BOOL isLocalTextureDataFinal(const LLTexLayerSet* layerset) const;
+ /*virtual*/ BOOL isTextureDefined(LLVOAvatarDefines::ETextureIndex type, U32 index = 0) const;
+
+ //--------------------------------------------------------------------
+ // Local Textures
+ //--------------------------------------------------------------------
+public:
+ BOOL getLocalTextureGL(LLVOAvatarDefines::ETextureIndex type, LLImageGL** image_gl_pp, U32 index = 0) const;
+ const LLUUID& getLocalTextureID(LLVOAvatarDefines::ETextureIndex type, U32 index = 0) const;
+ void setLocalTextureTE(U8 te, LLViewerImage* image, BOOL set_by_user, U32 index = 0);
+ const LLUUID& grabLocalTexture(LLVOAvatarDefines::ETextureIndex type, U32 index = 0) const;
+ BOOL canGrabLocalTexture(LLVOAvatarDefines::ETextureIndex type, U32 index = 0) const;
+protected:
+ /*virtual*/ void setLocalTexture(LLVOAvatarDefines::ETextureIndex type, LLViewerImage* tex, BOOL baked_version_exits, U32 index = 0);
+ void localTextureLoaded(BOOL succcess, LLViewerImage *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata);
+ void getLocalTextureByteCount(S32* gl_byte_count) const;
+ /*virtual*/ void addLocalTextureStats(LLVOAvatarDefines::ETextureIndex i, LLViewerImage* imagep, F32 texel_area_ratio, BOOL rendered, BOOL covered_by_baked, U32 index = 0);
+private:
+ static void onLocalTextureLoaded(BOOL succcess, LLViewerImage *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata);
+
+ //--------------------------------------------------------------------
+ // Baked textures
+ //--------------------------------------------------------------------
+public:
+ LLVOAvatarDefines::ETextureIndex getBakedTE(const LLTexLayerSet* layerset ) const;
+ void setNewBakedTexture(LLVOAvatarDefines::ETextureIndex i, const LLUUID& uuid);
+ void setCachedBakedTexture(LLVOAvatarDefines::ETextureIndex i, const LLUUID& uuid);
+ void forceBakeAllTextures(bool slam_for_debug = false);
+ static void processRebakeAvatarTextures(LLMessageSystem* msg, void**);
+protected:
+ /*virtual*/ void removeMissingBakedTextures();
+
+ //--------------------------------------------------------------------
+ // Layers
+ //--------------------------------------------------------------------
+public:
+ void requestLayerSetUploads();
+ void requestLayerSetUpdate(LLVOAvatarDefines::ETextureIndex i);
+protected:
+ LLTexLayerSet* getLayerSet(LLVOAvatarDefines::ETextureIndex index) const;
+
+ //--------------------------------------------------------------------
+ // Composites
+ //--------------------------------------------------------------------
+public:
+ /* virtual */ void invalidateComposite(LLTexLayerSet* layerset, BOOL set_by_user);
+ /* virtual */ void invalidateAll();
+ /* virtual */ void setCompositeUpdatesEnabled(BOOL b); // only works for self
+ void setupComposites();
+ void updateComposites();
+
+ //--------------------------------------------------------------------
+ // Scratch textures (used for compositing)
+ //--------------------------------------------------------------------
+public:
+ BOOL bindScratchTexture(LLGLenum format);
+ static void deleteScratchTextures();
+protected:
+ LLGLuint getScratchTexName(LLGLenum format, U32* texture_bytes);
+private:
+ static S32 sScratchTexBytes;
+ static LLMap< LLGLenum, LLGLuint*> sScratchTexNames;
+ static LLMap< LLGLenum, F32*> sScratchTexLastBindTime;
+
+ //--------------------------------------------------------------------
+ // Texture Data
+ //--------------------------------------------------------------------
+private:
+ typedef std::vector<LocalTextureData*> localtexture_vec_t; // all textures of a certain TE
+ typedef std::map<LLVOAvatarDefines::ETextureIndex, localtexture_vec_t> localtexture_map_t; // texture TE vectors arranged by texture type
+ localtexture_map_t mLocalTextureDatas;
+
+ const localtexture_vec_t& getLocalTextureData(LLVOAvatarDefines::ETextureIndex index) const; // const accessor into mLocalTextureDatas
+ const LocalTextureData* getLocalTextureData(LLVOAvatarDefines::ETextureIndex type, U32 index) const; // const accessor to individual LocalTextureData
+
+ localtexture_vec_t& getLocalTextureData(LLVOAvatarDefines::ETextureIndex index); // accessor into mLocalTextureDatas
+ LocalTextureData* getLocalTextureData(LLVOAvatarDefines::ETextureIndex type, U32 index); // accessor to individual LocalTextureData
+
+/** Textures
+ ** **
+ *******************************************************************************/
+
+/********************************************************************************
+ ** **
+ ** MESHES
+ **/
+protected:
+ /*virtual*/ void restoreMeshData();
+
+/** Meshes
+ ** **
+ *******************************************************************************/
+
+/********************************************************************************
+ ** **
+ ** WEARABLES
+ **/
+
+public:
+ void wearableUpdated(EWearableType type);
+
+ //--------------------------------------------------------------------
+ // Attachments
+ //--------------------------------------------------------------------
+public:
+ void updateAttachmentVisibility(U32 camera_mode);
+ BOOL isWearingAttachment(const LLUUID& inv_item_id);
+ LLViewerObject* getWornAttachment(const LLUUID& inv_item_id ) const;
+ const std::string getAttachedPointName(const LLUUID& inv_item_id) const;
+ /*virtual*/ LLViewerJointAttachment *attachObject(LLViewerObject *viewer_object);
+
+ //--------------------------------------------------------------------
+ // HUDs
+ //--------------------------------------------------------------------
+private:
+ LLViewerJoint* mScreenp; // special purpose joint for HUD attachments
+
+/** Attachments
+ ** **
+ *******************************************************************************/
+
+/********************************************************************************
+ ** **
+ ** APPEARANCE
+ **/
+
+public:
+ static void onCustomizeStart();
+ static void onCustomizeEnd();
+
+ //--------------------------------------------------------------------
+ // Visibility
+ //--------------------------------------------------------------------
+public:
+ static void onChangeSelfInvisible(BOOL newvalue);
+ void setInvisible(BOOL newvalue);
+
+/** Appearance
+ ** **
+ *******************************************************************************/
+
+/********************************************************************************
+ ** **
+ ** DIAGNOSTICS
+ **/
+
+public:
+ static void dumpTotalLocalTextureByteCount();
+ void dumpLocalTextures() const;
+ static void dumpScratchTextureByteCount();
+
+/** Diagnostics
+ ** **
+ *******************************************************************************/
+
+};
+
+#endif // LL_VO_AVATARSELF_H
diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp
index 47487a6da2..082dcb50a2 100644
--- a/indra/newview/llvoiceclient.cpp
+++ b/indra/newview/llvoiceclient.cpp
@@ -62,6 +62,7 @@
#include "llfirstuse.h"
#include "llviewerwindow.h"
#include "llviewercamera.h"
+#include "llvoavatarself.h"
#include "llfloaterfriends.h" //VIVOX, inorder to refresh communicate panel
#include "llfloaterchat.h" // for LLFloaterChat::addChat()
diff --git a/indra/newview/llvopartgroup.cpp b/indra/newview/llvopartgroup.cpp
index 82003daaf4..29036f4947 100644
--- a/indra/newview/llvopartgroup.cpp
+++ b/indra/newview/llvopartgroup.cpp
@@ -365,7 +365,7 @@ LLParticlePartition::LLParticlePartition()
LLHUDParticlePartition::LLHUDParticlePartition() :
LLParticlePartition()
{
- mDrawableType = LLPipeline::RENDER_TYPE_HUD;
+ mDrawableType = LLPipeline::RENDER_TYPE_HUD_PARTICLES;
mPartitionType = LLViewerRegion::PARTITION_HUD_PARTICLE;
}
@@ -509,7 +509,7 @@ LLDrawable* LLVOHUDPartGroup::createDrawable(LLPipeline *pipeline)
{
pipeline->allocDrawable(this);
mDrawable->setLit(FALSE);
- mDrawable->setRenderType(LLPipeline::RENDER_TYPE_HUD);
+ mDrawable->setRenderType(LLPipeline::RENDER_TYPE_HUD_PARTICLES);
return mDrawable;
}
diff --git a/indra/newview/llvosky.cpp b/indra/newview/llvosky.cpp
index e747ab585f..d99758edf8 100644
--- a/indra/newview/llvosky.cpp
+++ b/indra/newview/llvosky.cpp
@@ -1197,8 +1197,6 @@ LLDrawable *LLVOSky::createDrawable(LLPipeline *pipeline)
LLDrawPoolSky *poolp = (LLDrawPoolSky*) gPipeline.getPool(LLDrawPool::POOL_SKY);
poolp->setSkyTex(mSkyTex);
- poolp->setSun(&mSun);
- poolp->setMoon(&mMoon);
mDrawable->setRenderType(LLPipeline::RENDER_TYPE_SKY);
for (S32 i = 0; i < 6; ++i)
@@ -1215,7 +1213,7 @@ LLDrawable *LLVOSky::createDrawable(LLPipeline *pipeline)
//by bao
//fake vertex buffer updating
-//to guaranttee at least updating one VBO buffer every frame
+//to guarantee at least updating one VBO buffer every frame
//to walk around the bug caused by ATI card --> DEV-3855
//
void LLVOSky::createDummyVertexBuffer()
diff --git a/indra/newview/llvotree.cpp b/indra/newview/llvotree.cpp
index fecffd72ad..b602b93025 100644
--- a/indra/newview/llvotree.cpp
+++ b/indra/newview/llvotree.cpp
@@ -329,6 +329,9 @@ U32 LLVOTree::processUpdateMessage(LLMessageSystem *mesgsys,
mBillboardRatio = sSpeciesTable[mSpecies]->mBillboardRatio;
mTrunkAspect = sSpeciesTable[mSpecies]->mTrunkAspect;
mBranchAspect = sSpeciesTable[mSpecies]->mBranchAspect;
+
+ // position change not caused by us, etc. make sure to rebuild.
+ gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_ALL);
return retval;
}
@@ -397,6 +400,31 @@ BOOL LLVOTree::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
{
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_ALL, FALSE);
}
+ else
+ {
+ // we're not animating but we may *still* need to
+ // regenerate the mesh if we moved, since position
+ // and rotation are baked into the mesh.
+ // *TODO: I don't know what's so special about trees
+ // that they don't get REBUILD_POSITION automatically
+ // at a higher level.
+ const LLVector3 &this_position = getPositionAgent();
+ if (this_position != mLastPosition)
+ {
+ gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_POSITION);
+ mLastPosition = this_position;
+ }
+ else
+ {
+ const LLQuaternion &this_rotation = getRotation();
+
+ if (this_rotation != mLastRotation)
+ {
+ gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_POSITION);
+ mLastRotation = this_rotation;
+ }
+ }
+ }
}
mTrunkLOD = trunk_LOD;
diff --git a/indra/newview/llvotree.h b/indra/newview/llvotree.h
index 473f1c340e..42a6d54f62 100644
--- a/indra/newview/llvotree.h
+++ b/indra/newview/llvotree.h
@@ -179,6 +179,11 @@ protected:
F32 mTrunkAspect; // Ratio between width/length of trunk
F32 mBranchAspect; // Ratio between width/length of branch
F32 mRandomLeafRotate; // How much to randomly rotate leaves about arbitrary axis
+
+ // cache last position+rotation so we can detect the need for a
+ // complete rebuild when not animating
+ LLVector3 mLastPosition;
+ LLQuaternion mLastRotation;
U32 mFrameCount;
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index 5f2c67efdf..aff8fe8f1d 100644
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -512,6 +512,7 @@ void LLVOVolume::updateTextures()
mSculptTexture->addTextureStats(2.f * tex_size * tex_size);
mSculptTexture->setBoostLevel(llmax((S32)mSculptTexture->getBoostLevel(),
(S32)LLViewerImage::BOOST_SCULPTED));
+ mSculptTexture->setForSculpt() ;
}
S32 texture_discard = mSculptTexture->getDiscardLevel(); //try to match the texture
@@ -653,7 +654,8 @@ LLDrawable *LLVOVolume::createDrawable(LLPipeline *pipeline)
}
updateRadius();
- mDrawable->updateDistance(*LLViewerCamera::getInstance());
+ bool force_update = true; // avoid non-alpha mDistance update being optimized away
+ mDrawable->updateDistance(*LLViewerCamera::getInstance(), force_update);
return mDrawable;
}
@@ -780,6 +782,11 @@ void LLVOVolume::sculpt()
sculpt_width = 0;
sculpt_height = 0;
sculpt_data = NULL ;
+
+ if(LLViewerImage::sTesterp)
+ {
+ LLViewerImage::sTesterp->updateGrayTextureBinding();
+ }
}
else
{
@@ -788,6 +795,11 @@ void LLVOVolume::sculpt()
<< " < " << sculpt_height << " x " << sculpt_width << " x " <<sculpt_components << llendl;
sculpt_data = raw_image->getData();
+
+ if(LLViewerImage::sTesterp)
+ {
+ mSculptTexture->updateBindStats() ;
+ }
}
getVolume()->sculpt(sculpt_width, sculpt_height, sculpt_components, sculpt_data, discard_level);
}
@@ -1271,15 +1283,28 @@ S32 LLVOVolume::setTEColor(const U8 te, const LLColor3& color)
S32 LLVOVolume::setTEColor(const U8 te, const LLColor4& color)
{
- S32 res = LLViewerObject::setTEColor(te, color);
- if (res && mDrawable.notNull())
+ S32 retval = 0;
+ const LLTextureEntry *tep = getTE(te);
+ if (!tep)
{
- //gPipeline.markTextured(mDrawable);
- mDrawable->setState(LLDrawable::REBUILD_COLOR);
- dirtyMesh();
- //mFaceMappingChanged = TRUE;
+ llwarns << "No texture entry for te " << (S32)te << ", object " << mID << llendl;
}
- return res;
+ else if (color != tep->getColor())
+ {
+ if (color.mV[3] != tep->getColor().mV[3])
+ {
+ gPipeline.markTextured(mDrawable);
+ }
+ retval = LLPrimitive::setTEColor(te, color);
+ if (mDrawable.notNull() && retval)
+ {
+ // These should only happen on updates which are not the initial update.
+ mDrawable->setState(LLDrawable::REBUILD_COLOR);
+ dirtyMesh();
+ }
+ }
+
+ return retval;
}
S32 LLVOVolume::setTEBumpmap(const U8 te, const U8 bumpmap)
@@ -1304,6 +1329,17 @@ S32 LLVOVolume::setTETexGen(const U8 te, const U8 texgen)
return res;
}
+S32 LLVOVolume::setTEMediaTexGen(const U8 te, const U8 media)
+{
+ S32 res = LLViewerObject::setTEMediaTexGen(te, media);
+ if (res)
+ {
+ gPipeline.markTextured(mDrawable);
+ mFaceMappingChanged = TRUE;
+ }
+ return res;
+}
+
S32 LLVOVolume::setTEShiny(const U8 te, const U8 shiny)
{
S32 res = LLViewerObject::setTEShiny(te, shiny);
@@ -1326,6 +1362,17 @@ S32 LLVOVolume::setTEFullbright(const U8 te, const U8 fullbright)
return res;
}
+S32 LLVOVolume::setTEBumpShinyFullbright(const U8 te, const U8 bump)
+{
+ S32 res = LLViewerObject::setTEBumpShinyFullbright(te, bump);
+ if (res)
+ {
+ gPipeline.markTextured(mDrawable);
+ mFaceMappingChanged = TRUE;
+ }
+ return res;
+}
+
S32 LLVOVolume::setTEMediaFlags(const U8 te, const U8 media_flags)
{
S32 res = LLViewerObject::setTEMediaFlags(te, media_flags);
@@ -2811,7 +2858,7 @@ LLHUDPartition::LLHUDPartition()
mPartitionType = LLViewerRegion::PARTITION_HUD;
mDrawableType = LLPipeline::RENDER_TYPE_HUD;
mSlopRatio = 0.f;
- mLODPeriod = 16;
+ mLODPeriod = 1;
}
void LLHUDPartition::shift(const LLVector3 &offset)
diff --git a/indra/newview/llwearable.cpp b/indra/newview/llwearable.cpp
index af2ed1d1ab..1e35a31cb6 100644
--- a/indra/newview/llwearable.cpp
+++ b/indra/newview/llwearable.cpp
@@ -32,82 +32,27 @@
#include "llviewerprecompiledheaders.h"
-#include "imageids.h"
-#include "llassetstorage.h"
-#include "lldbstrings.h"
-#include "lldir.h"
-#include "llquantize.h"
-
#include "llagent.h"
-#include "llassetuploadresponders.h"
-#include "llviewerwindow.h"
+#include "llagentwearables.h"
#include "llfloatercustomize.h"
-#include "llinventorymodel.h"
#include "llviewerimagelist.h"
-#include "llviewerinventory.h"
+#include "llinventorymodel.h"
#include "llviewerregion.h"
#include "llvoavatar.h"
+#include "llvoavatarself.h"
+#include "llvoavatardefines.h"
#include "llwearable.h"
+#include "lldictionary.h"
#include "lltrans.h"
using namespace LLVOAvatarDefines;
// static
S32 LLWearable::sCurrentDefinitionVersion = 1;
-std::string LLWearable::sTypeLabel [WT_COUNT+1];
-
-// static
-const std::string LLWearable::sTypeName[ WT_COUNT+1 ] =
-{
- "shape",
- "skin",
- "hair",
- "eyes",
- "shirt",
- "pants",
- "shoes",
- "socks",
- "jacket",
- "gloves",
- "undershirt",
- "underpants",
- "skirt",
- "invalid"
-};
-
-void LLWearable::initClass ()
-{
- for (int i = 0; i <= WT_COUNT; i++)
- {
- sTypeLabel[i] = LLTrans::getString(sTypeName[i]);
- }
-}
-
-// static
-LLAssetType::EType LLWearable::typeToAssetType(EWearableType wearable_type)
-{
- switch( wearable_type )
- {
- case WT_SHAPE:
- case WT_SKIN:
- case WT_HAIR:
- case WT_EYES:
- return LLAssetType::AT_BODYPART;
- case WT_SHIRT:
- case WT_PANTS:
- case WT_SHOES:
- case WT_SOCKS:
- case WT_JACKET:
- case WT_GLOVES:
- case WT_UNDERSHIRT:
- case WT_UNDERPANTS:
- case WT_SKIRT:
- return LLAssetType::AT_CLOTHING;
- default:
- return LLAssetType::AT_NONE;
- }
-}
+// Private local functions
+static std::string terse_F32_to_string(F32 f);
+static std::string asset_id_to_filename(const LLUUID &asset_id);
LLWearable::LLWearable(const LLTransactionID& transaction_id) :
mDefinitionVersion(LLWearable::sCurrentDefinitionVersion),
@@ -129,56 +74,22 @@ LLWearable::~LLWearable()
{
}
-
-// static
-EWearableType LLWearable::typeNameToType( const std::string& type_name )
+const std::string& LLWearable::getTypeLabel() const
{
- for( S32 i = 0; i < WT_COUNT; i++ )
- {
- if( type_name == LLWearable::sTypeName[ i ] )
- {
- return (EWearableType)i;
- }
- }
- return WT_INVALID;
+ return LLWearableDictionary::getTypeLabel(mType);
}
-
-std::string terse_F32_to_string( F32 f )
+const std::string& LLWearable::getTypeName() const
{
- std::string r = llformat( "%.2f", f );
-
- // "1.20" -> "1.2"
- // "24.00" -> "24."
- S32 len = r.length();
- while( len > 0 && '0' == r[len - 1] )
- {
- r.erase(len-1, 1);
- len--;
- }
-
- if( '.' == r[len - 1] )
- {
- // "24." -> "24"
- r.erase(len-1, 1);
- }
- else
- if( ('-' == r[0]) && ('0' == r[1]) )
- {
- // "-0.59" -> "-.59"
- r.erase(1, 1);
- }
- else
- if( '0' == r[0] )
- {
- // "0.59" -> ".59"
- r.erase(0, 1);
- }
+ return LLWearableDictionary::getTypeName(mType);
+}
- return r;
+LLAssetType::EType LLWearable::getAssetType() const
+{
+ return LLWearableDictionary::getAssetType(mType);
}
-BOOL LLWearable::exportFile( LLFILE* file )
+BOOL LLWearable::exportFile(LLFILE* file) const
{
// header and version
if( fprintf( file, "LLWearable version %d\n", mDefinitionVersion ) < 0 )
@@ -224,7 +135,7 @@ BOOL LLWearable::exportFile( LLFILE* file )
return FALSE;
}
- for (param_map_t::iterator iter = mVisualParamMap.begin();
+ for (param_map_t::const_iterator iter = mVisualParamMap.begin();
iter != mVisualParamMap.end(); ++iter)
{
S32 param_id = iter->first;
@@ -242,22 +153,18 @@ BOOL LLWearable::exportFile( LLFILE* file )
return FALSE;
}
- for (te_map_t::iterator iter = mTEMap.begin();
- iter != mTEMap.end(); ++iter)
+ for (te_map_t::const_iterator iter = mTEMap.begin(); iter != mTEMap.end(); ++iter)
{
S32 te = iter->first;
- LLUUID& image_id = iter->second;
+ const LLUUID& image_id = iter->second;
if( fprintf( file, "%d %s\n", te, image_id.asString().c_str()) < 0 )
{
return FALSE;
}
}
-
return TRUE;
}
-
-
BOOL LLWearable::importFile( LLFILE* file )
{
// *NOTE: changing the type or size of this buffer will require
@@ -453,7 +360,7 @@ BOOL LLWearable::importFile( LLFILE* file )
// Avatar parameter and texture definitions can change over time.
// This function returns true if parameters or textures have been added or removed
// since this wearable was created.
-BOOL LLWearable::isOldVersion()
+BOOL LLWearable::isOldVersion() const
{
LLVOAvatar* avatar = gAgent.getAvatarObject();
llassert( avatar );
@@ -496,7 +403,7 @@ BOOL LLWearable::isOldVersion()
S32 te_count = 0;
for( S32 te = 0; te < TEX_NUM_INDICES; te++ )
{
- if( LLVOAvatar::getTEWearableType((ETextureIndex) te ) == mType )
+ if (LLVOAvatarDictionary::getTEWearableType((ETextureIndex) te) == mType)
{
te_count++;
if( !is_in_map(mTEMap, te ) )
@@ -520,7 +427,7 @@ BOOL LLWearable::isOldVersion()
// * If parameters or textures have been ADDED since the wearable was created,
// they are taken to have default values, so we consider the wearable clean
// only if those values are the same as the defaults.
-BOOL LLWearable::isDirty()
+BOOL LLWearable::isDirty() const
{
LLVOAvatar* avatar = gAgent.getAvatarObject();
llassert( avatar );
@@ -550,7 +457,7 @@ BOOL LLWearable::isDirty()
for( S32 te = 0; te < TEX_NUM_INDICES; te++ )
{
- if( LLVOAvatar::getTEWearableType((ETextureIndex) te ) == mType )
+ if (LLVOAvatarDictionary::getTEWearableType((ETextureIndex) te) == mType)
{
LLViewerImage* avatar_image = avatar->getTEImage( te );
if( !avatar_image )
@@ -558,7 +465,7 @@ BOOL LLWearable::isDirty()
llassert( 0 );
continue;
}
- const LLUUID& image_id = get_if_there(mTEMap, te, LLVOAvatar::getDefaultTEImageID((ETextureIndex) te ) );
+ const LLUUID& image_id = get_if_there(mTEMap, te, LLVOAvatarDictionary::getDefaultTextureImageID((ETextureIndex) te));
if( avatar_image->getID() != image_id )
{
return TRUE;
@@ -602,9 +509,9 @@ void LLWearable::setTexturesToDefaults()
mTEMap.clear();
for( S32 te = 0; te < TEX_NUM_INDICES; te++ )
{
- if( LLVOAvatar::getTEWearableType((ETextureIndex) te ) == mType )
+ if (LLVOAvatarDictionary::getTEWearableType((ETextureIndex) te) == mType)
{
- mTEMap[te] = LLVOAvatar::getDefaultTEImageID((ETextureIndex) te );
+ mTEMap[te] = LLVOAvatarDictionary::getDefaultTextureImageID((ETextureIndex) te);
}
}
}
@@ -612,7 +519,7 @@ void LLWearable::setTexturesToDefaults()
// Updates the user's avatar's appearance
void LLWearable::writeToAvatar( BOOL set_by_user )
{
- LLVOAvatar* avatar = gAgent.getAvatarObject();
+ LLVOAvatarSelf* avatar = gAgent.getAvatarObject();
llassert( avatar );
if( !avatar )
{
@@ -649,11 +556,11 @@ void LLWearable::writeToAvatar( BOOL set_by_user )
// Pull texture entries
for( S32 te = 0; te < TEX_NUM_INDICES; te++ )
{
- if( LLVOAvatar::getTEWearableType((ETextureIndex) te ) == mType )
+ if (LLVOAvatarDictionary::getTEWearableType((ETextureIndex) te) == mType)
{
- const LLUUID& image_id = get_if_there(mTEMap, te, LLVOAvatar::getDefaultTEImageID((ETextureIndex) te ) );
+ const LLUUID& image_id = get_if_there(mTEMap, te, LLVOAvatarDictionary::getDefaultTextureImageID((ETextureIndex) te));
LLViewerImage* image = gImageList.getImage( image_id );
- avatar->setLocTexTE( te, image, set_by_user );
+ avatar->setLocalTextureTE(te, image, set_by_user);
}
}
@@ -662,7 +569,8 @@ void LLWearable::writeToAvatar( BOOL set_by_user )
if( gFloaterCustomize )
{
LLViewerInventoryItem* item;
- item = (LLViewerInventoryItem*)gInventory.getItem(gAgent.getWearableItem(mType));
+ // MULTI_WEARABLE:
+ item = (LLViewerInventoryItem*)gInventory.getItem(gAgentWearables.getWearableItem(mType,0));
U32 perm_mask = PERM_NONE;
BOOL is_complete = FALSE;
if(item)
@@ -696,7 +604,7 @@ void LLWearable::writeToAvatar( BOOL set_by_user )
// static
void LLWearable::removeFromAvatar( EWearableType type, BOOL set_by_user )
{
- LLVOAvatar* avatar = gAgent.getAvatarObject();
+ LLVOAvatarSelf* avatar = gAgent.getAvatarObject();
llassert( avatar );
if( !avatar )
{
@@ -726,9 +634,9 @@ void LLWearable::removeFromAvatar( EWearableType type, BOOL set_by_user )
LLViewerImage* image = gImageList.getImage( IMG_DEFAULT_AVATAR );
for( S32 te = 0; te < TEX_NUM_INDICES; te++ )
{
- if( LLVOAvatar::getTEWearableType((ETextureIndex) te ) == type )
+ if (LLVOAvatarDictionary::getTEWearableType((ETextureIndex) te) == type)
{
- avatar->setLocTexTE( te, image, set_by_user );
+ avatar->setLocalTextureTE(te, image, set_by_user);
}
}
@@ -772,7 +680,7 @@ void LLWearable::readFromAvatar()
mTEMap.clear();
for( S32 te = 0; te < TEX_NUM_INDICES; te++ )
{
- if( LLVOAvatar::getTEWearableType((ETextureIndex) te ) == mType )
+ if (LLVOAvatarDictionary::getTEWearableType((ETextureIndex) te) == mType)
{
LLViewerImage* image = avatar->getTEImage( te );
if( image )
@@ -790,7 +698,7 @@ void LLWearable::readFromAvatar()
// Does not copy mAssetID.
// Definition version is current: removes obsolete enties and creates default values for new ones.
-void LLWearable::copyDataFrom( LLWearable* src )
+void LLWearable::copyDataFrom(const LLWearable* src)
{
LLVOAvatar* avatar = gAgent.getAvatarObject();
llassert( avatar );
@@ -823,9 +731,9 @@ void LLWearable::copyDataFrom( LLWearable* src )
// Deep copy of mTEMap (copies only those tes that are current, filling in defaults where needed)
for( S32 te = 0; te < TEX_NUM_INDICES; te++ )
{
- if( LLVOAvatar::getTEWearableType((ETextureIndex) te ) == mType )
+ if (LLVOAvatarDictionary::getTEWearableType((ETextureIndex) te) == mType)
{
- const LLUUID& image_id = get_if_there(src->mTEMap, te, LLVOAvatar::getDefaultTEImageID((ETextureIndex) te ) );
+ const LLUUID& image_id = get_if_there(src->mTEMap, te, LLVOAvatarDictionary::getDefaultTextureImageID((ETextureIndex) te));
mTEMap[te] = image_id;
}
}
@@ -836,15 +744,12 @@ struct LLWearableSaveData
EWearableType mType;
};
-void LLWearable::saveNewAsset()
+void LLWearable::saveNewAsset() const
{
// llinfos << "LLWearable::saveNewAsset() type: " << getTypeName() << llendl;
//llinfos << *this << llendl;
- std::string new_asset_id_string;
- mAssetID.toString(new_asset_id_string);
- std::string filename;
- filename = gDirUtilp->getExpandedFilename(LL_PATH_CACHE,new_asset_id_string) + ".wbl";
+ const std::string filename = asset_id_to_filename(mAssetID);
LLFILE* fp = LLFile::fopen(filename, "wb"); /* Flawfinder: ignore */
BOOL successful_save = FALSE;
if(fp && exportFile(fp))
@@ -899,7 +804,7 @@ void LLWearable::saveNewAsset()
void LLWearable::onSaveNewAssetComplete(const LLUUID& new_asset_id, void* userdata, S32 status, LLExtStat ext_status) // StoreAssetData callback (fixed)
{
LLWearableSaveData* data = (LLWearableSaveData*)userdata;
- const std::string& type_name = LLWearable::typeToTypeName(data->mType);
+ const std::string& type_name = LLWearableDictionary::getTypeName(data->mType);
if(0 == status)
{
// Success
@@ -915,28 +820,16 @@ void LLWearable::onSaveNewAssetComplete(const LLUUID& new_asset_id, void* userda
}
// Delete temp file
- std::string new_asset_id_string;
- new_asset_id.toString(new_asset_id_string);
- std::string src_filename;
- src_filename = gDirUtilp->getExpandedFilename(LL_PATH_CACHE,new_asset_id_string) + ".wbl";
+ const std::string src_filename = asset_id_to_filename(new_asset_id);
LLFile::remove(src_filename);
// delete the context data
delete data;
}
-BOOL LLWearable::isMatchedToInventoryItem( LLViewerInventoryItem* item )
-{
- return
- ( mName == item->getName() ) &&
- ( mDescription == item->getDescription() ) &&
- ( mPermissions == item->getPermissions() ) &&
- ( mSaleInfo == item->getSaleInfo() );
-}
-
std::ostream& operator<<(std::ostream &s, const LLWearable &w)
{
- s << "wearable " << LLWearable::typeToTypeName( w.mType ) << "\n";
+ s << "wearable " << LLWearableDictionary::getTypeName(w.mType) << "\n";
s << " Name: " << w.mName << "\n";
s << " Desc: " << w.mDescription << "\n";
//w.mPermissions
@@ -963,3 +856,40 @@ std::ostream& operator<<(std::ostream &s, const LLWearable &w)
}
+std::string terse_F32_to_string(F32 f)
+{
+ std::string r = llformat("%.2f", f);
+ S32 len = r.length();
+
+ // "1.20" -> "1.2"
+ // "24.00" -> "24."
+ while (len > 0 && ('0' == r[len - 1]))
+ {
+ r.erase(len-1, 1);
+ len--;
+ }
+ if ('.' == r[len - 1])
+ {
+ // "24." -> "24"
+ r.erase(len-1, 1);
+ }
+ else if (('-' == r[0]) && ('0' == r[1]))
+ {
+ // "-0.59" -> "-.59"
+ r.erase(1, 1);
+ }
+ else if ('0' == r[0])
+ {
+ // "0.59" -> ".59"
+ r.erase(0, 1);
+ }
+ return r;
+}
+
+std::string asset_id_to_filename(const LLUUID &asset_id)
+{
+ std::string asset_id_string;
+ asset_id.toString(asset_id_string);
+ std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_CACHE,asset_id_string) + ".wbl";
+ return filename;
+}
diff --git a/indra/newview/llwearable.h b/indra/newview/llwearable.h
index 8fa609c57b..7ebdd788ce 100644
--- a/indra/newview/llwearable.h
+++ b/indra/newview/llwearable.h
@@ -19,7 +19,7 @@
* in the file doc/FLOSS-exception.txt in this software distribution, or
* online at
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
+ *
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
* and agree to abide by those obligations.
@@ -38,93 +38,69 @@
#include "llpermissions.h"
#include "llsaleinfo.h"
#include "llassetstorage.h"
+#include "llwearabledictionary.h"
class LLViewerInventoryItem;
-enum EWearableType // If you change this, update LLWearable::getTypeName(), getTypeLabel(), and LLVOAvatar::getTEWearableType()
-{
- WT_SHAPE = 0,
- WT_SKIN = 1,
- WT_HAIR = 2,
- WT_EYES = 3,
- WT_SHIRT = 4,
- WT_PANTS = 5,
- WT_SHOES = 6,
- WT_SOCKS = 7,
- WT_JACKET = 8,
- WT_GLOVES = 9,
- WT_UNDERSHIRT = 10,
- WT_UNDERPANTS = 11,
- WT_SKIRT = 12,
- WT_COUNT = 13,
- WT_INVALID = 255
-};
-
class LLWearable
{
friend class LLWearableList;
+
+ //--------------------------------------------------------------------
+ // Constructors and destructors
+ //--------------------------------------------------------------------
+private:
+ // Private constructors used by LLWearableList
+ LLWearable(const LLTransactionID& transactionID);
+ LLWearable(const LLAssetID& assetID);
public:
- ~LLWearable();
+ virtual ~LLWearable();
+ //--------------------------------------------------------------------
+ // Accessors
+ //--------------------------------------------------------------------
+public:
const LLAssetID& getID() const { return mAssetID; }
const LLTransactionID& getTransactionID() const { return mTransactionID; }
+ EWearableType getType() const { return mType; }
+ void setType(EWearableType type) { mType = type; }
+ const std::string& getName() const { return mName; }
+ void setName(const std::string& name) { mName = name; }
+ const std::string& getDescription() const { return mDescription; }
+ void setDescription(const std::string& desc) { mDescription = desc; }
+ const LLPermissions& getPermissions() const { return mPermissions; }
+ void setPermissions(const LLPermissions& p) { mPermissions = p; }
+ const LLSaleInfo& getSaleInfo() const { return mSaleInfo; }
+ void setSaleInfo(const LLSaleInfo& info) { mSaleInfo = info; }
+ const std::string& getTypeLabel() const;
+ const std::string& getTypeName() const;
+ LLAssetType::EType getAssetType() const;
- BOOL isDirty();
- BOOL isOldVersion();
+public:
+ BOOL isDirty() const;
+ BOOL isOldVersion() const;
void writeToAvatar( BOOL set_by_user );
void readFromAvatar();
void removeFromAvatar( BOOL set_by_user ) { LLWearable::removeFromAvatar( mType, set_by_user ); }
static void removeFromAvatar( EWearableType type, BOOL set_by_user );
- BOOL exportFile(LLFILE* file);
+ BOOL exportFile(LLFILE* file) const;
BOOL importFile(LLFILE* file);
-
- static void initClass ();
- EWearableType getType() const { return mType; }
- void setType( EWearableType type ) { mType = type; }
-
- void setName( const std::string& name ) { mName = name; }
- const std::string& getName() const { return mName; }
-
- void setDescription( const std::string& desc ) { mDescription = desc; }
- const std::string& getDescription() const { return mDescription; }
-
- void setPermissions( const LLPermissions& p ) { mPermissions = p; }
- const LLPermissions& getPermissions() const { return mPermissions; }
-
- void setSaleInfo( const LLSaleInfo& info ) { mSaleInfo = info; }
- const LLSaleInfo& getSaleInfo() const { return mSaleInfo; }
-
- const std::string& getTypeLabel() const { return LLWearable::sTypeLabel[ mType ]; }
- const std::string& getTypeName() const { return LLWearable::sTypeName[ mType ]; }
-
+
void setParamsToDefaults();
void setTexturesToDefaults();
- LLAssetType::EType getAssetType() const { return LLWearable::typeToAssetType( mType ); }
-
- static EWearableType typeNameToType( const std::string& type_name );
- static const std::string& typeToTypeName( EWearableType type ) { return LLWearable::sTypeName[llmin(type,WT_COUNT)]; }
- static const std::string& typeToTypeLabel( EWearableType type ) { return LLWearable::sTypeLabel[llmin(type,WT_COUNT)]; }
- static LLAssetType::EType typeToAssetType( EWearableType wearable_type );
-
- void saveNewAsset();
+ void saveNewAsset() const;
static void onSaveNewAssetComplete( const LLUUID& asset_uuid, void* user_data, S32 status, LLExtStat ext_status );
- BOOL isMatchedToInventoryItem( LLViewerInventoryItem* item );
-
- void copyDataFrom( LLWearable* src );
+ void copyDataFrom(const LLWearable* src);
static void setCurrentDefinitionVersion( S32 version ) { LLWearable::sCurrentDefinitionVersion = version; }
friend std::ostream& operator<<(std::ostream &s, const LLWearable &w);
private:
- // Private constructor used by LLWearableList
- LLWearable(const LLTransactionID& transactionID);
- LLWearable(const LLAssetID& assetID);
-
static S32 sCurrentDefinitionVersion; // Depends on the current state of the avatar_lad.xml.
S32 mDefinitionVersion; // Depends on the state of the avatar_lad.xml when this asset was created.
std::string mName;
@@ -139,9 +115,6 @@ private:
param_map_t mVisualParamMap; // maps visual param id to weight
typedef std::map<S32, LLUUID> te_map_t;
te_map_t mTEMap; // maps TE to Image ID
-
- static const std::string sTypeName[ WT_COUNT+1 ];
- static std::string sTypeLabel[ WT_COUNT+1 ];
};
#endif // LL_LLWEARABLE_H
diff --git a/indra/newview/llwearablelist.cpp b/indra/newview/llwearablelist.cpp
index 480c8e42bf..92de94636b 100644
--- a/indra/newview/llwearablelist.cpp
+++ b/indra/newview/llwearablelist.cpp
@@ -39,22 +39,18 @@
#include "llagent.h"
#include "llvoavatar.h"
#include "llviewerinventory.h"
-//#include "llfloaterchat.h"
#include "llviewerstats.h"
#include "llnotify.h"
+#include "llinventorymodel.h"
#include "lltrans.h"
-// Globals
-LLWearableList gWearableList; // Globally constructed; be careful that there's no dependency with gAgent.
-
+// Callback struct
struct LLWearableArrivedData
{
- LLWearableArrivedData(
- LLAssetType::EType asset_type,
+ LLWearableArrivedData(LLAssetType::EType asset_type,
const std::string& wearable_name,
void(*asset_arrived_callback)(LLWearable*, void* userdata),
- void* userdata )
- :
+ void* userdata) :
mAssetType( asset_type ),
mCallback( asset_arrived_callback ),
mUserdata( userdata ),
@@ -69,8 +65,6 @@ struct LLWearableArrivedData
S32 mRetries;
};
-
-
////////////////////////////////////////////////////////////////////////////
// LLWearableList
@@ -80,8 +74,18 @@ LLWearableList::~LLWearableList()
mList.clear();
}
-void LLWearableList::getAsset( const LLAssetID& assetID, const std::string& wearable_name, LLAssetType::EType asset_type, void(*asset_arrived_callback)(LLWearable*, void* userdata), void* userdata )
+void LLWearableList::getAsset(const LLAssetID& _assetID, const std::string& wearable_name, LLAssetType::EType asset_type, void(*asset_arrived_callback)(LLWearable*, void* userdata), void* userdata)
{
+ LLAssetID assetID = _assetID;
+ if (asset_type == LLAssetType::AT_LINK)
+ {
+ LLInventoryItem *linked_item = gInventory.getItem(_assetID);
+ if (linked_item)
+ {
+ assetID = linked_item->getAssetUUID();
+ asset_type = linked_item->getType();
+ }
+ }
llassert( (asset_type == LLAssetType::AT_CLOTHING) || (asset_type == LLAssetType::AT_BODYPART) );
LLWearable* instance = get_if_there(mList, assetID, (LLWearable*)NULL );
if( instance )
@@ -90,8 +94,7 @@ void LLWearableList::getAsset( const LLAssetID& assetID, const std::string& wear
}
else
{
- gAssetStorage->getAssetData(
- assetID,
+ gAssetStorage->getAssetData(assetID,
asset_type,
LLWearableList::processGetAssetReply,
(void*)new LLWearableArrivedData( asset_type, wearable_name, asset_arrived_callback, userdata ),
@@ -110,8 +113,7 @@ void LLWearableList::processGetAssetReply( const char* filename, const LLAssetID
{
LL_WARNS("Wearable") << "Bad Wearable Asset: missing file." << LL_ENDL;
}
- else
- if( status >= 0 )
+ else if (status >= 0)
{
// read the file
LLFILE* fp = LLFile::fopen(std::string(filename), "rb"); /*Flawfinder: ignore*/
@@ -180,7 +182,7 @@ void LLWearableList::processGetAssetReply( const char* filename, const LLAssetID
if (wearable) // success
{
- gWearableList.mList[ uuid ] = wearable;
+ LLWearableList::instance().mList[ uuid ] = wearable;
LL_DEBUGS("Wearable") << "processGetAssetReply()" << LL_ENDL;
LL_DEBUGS("Wearable") << wearable << LL_ENDL;
}
@@ -213,42 +215,13 @@ void LLWearableList::processGetAssetReply( const char* filename, const LLAssetID
}
-// Creates a new wearable just like the old_wearable but with data copied over from item
-LLWearable* LLWearableList::createWearableMatchedToInventoryItem( LLWearable* old_wearable, LLViewerInventoryItem* item )
-{
- lldebugs << "LLWearableList::createWearableMatchedToInventoryItem()" << llendl;
-
- LLTransactionID tid;
- LLAssetID new_asset_id;
- new_asset_id = tid.makeAssetID(gAgent.getSecureSessionID());
-
- LLWearable* wearable = new LLWearable( tid );
- wearable->copyDataFrom( old_wearable );
-
- wearable->setName( item->getName() );
- wearable->setDescription( item->getDescription() );
- wearable->setPermissions( item->getPermissions() );
- wearable->setSaleInfo( item->getSaleInfo() );
-
- mList[ new_asset_id ] = wearable;
-
- // Send to the dataserver
- wearable->saveNewAsset();
-
- return wearable;
-}
-
-LLWearable* LLWearableList::createCopyFromAvatar( LLWearable* old_wearable, const std::string& new_name )
+LLWearable* LLWearableList::createCopyFromAvatar(const LLWearable* old_wearable, const std::string& new_name)
{
lldebugs << "LLWearableList::createCopyFromAvatar()" << llendl;
- LLTransactionID tid;
- LLAssetID new_asset_id;
- tid.generate();
- new_asset_id = tid.makeAssetID(gAgent.getSecureSessionID());
-
- LLWearable* wearable = new LLWearable( tid );
+ LLWearable *wearable = generateNewWearable();
wearable->copyDataFrom( old_wearable );
+
LLPermissions perm(old_wearable->getPermissions());
perm.setOwnerAndGroup(LLUUID::null, gAgent.getID(), LLUUID::null, true);
wearable->setPermissions(perm);
@@ -256,8 +229,6 @@ LLWearable* LLWearableList::createCopyFromAvatar( LLWearable* old_wearable, cons
if (!new_name.empty()) wearable->setName(new_name);
- mList[ new_asset_id ] = wearable;
-
// Send to the dataserver
wearable->saveNewAsset();
@@ -265,21 +236,16 @@ LLWearable* LLWearableList::createCopyFromAvatar( LLWearable* old_wearable, cons
}
-LLWearable* LLWearableList::createCopy( LLWearable* old_wearable )
+LLWearable* LLWearableList::createCopy(const LLWearable* old_wearable)
{
lldebugs << "LLWearableList::createCopy()" << llendl;
- LLTransactionID tid;
- LLAssetID new_asset_id;
- tid.generate();
- new_asset_id = tid.makeAssetID(gAgent.getSecureSessionID());
+ LLWearable *wearable = generateNewWearable();
+ wearable->copyDataFrom(old_wearable);
- LLWearable* wearable = new LLWearable( tid );
- wearable->copyDataFrom( old_wearable );
LLPermissions perm(old_wearable->getPermissions());
perm.setOwnerAndGroup(LLUUID::null, gAgent.getID(), LLUUID::null, true);
wearable->setPermissions(perm);
- mList[ new_asset_id ] = wearable;
// Send to the dataserver
wearable->saveNewAsset();
@@ -291,12 +257,7 @@ LLWearable* LLWearableList::createNewWearable( EWearableType type )
{
lldebugs << "LLWearableList::createNewWearable()" << llendl;
- LLTransactionID tid;
- LLAssetID new_asset_id;
- tid.generate();
- new_asset_id = tid.makeAssetID(gAgent.getSecureSessionID());
-
- LLWearable* wearable = new LLWearable( tid );
+ LLWearable *wearable = generateNewWearable();
wearable->setType( type );
std::string name = "New ";
@@ -313,10 +274,19 @@ LLWearable* LLWearableList::createNewWearable( EWearableType type )
wearable->setParamsToDefaults();
wearable->setTexturesToDefaults();
- mList[ new_asset_id ] = wearable;
-
// Send to the dataserver
wearable->saveNewAsset();
return wearable;
}
+
+LLWearable *LLWearableList::generateNewWearable()
+{
+ LLTransactionID tid;
+ tid.generate();
+ LLAssetID new_asset_id = tid.makeAssetID(gAgent.getSecureSessionID());
+
+ LLWearable* wearable = new LLWearable(tid);
+ mList[new_asset_id] = wearable;
+ return wearable;
+}
diff --git a/indra/newview/llwearablelist.h b/indra/newview/llwearablelist.h
index cda0cb11f9..f844c0f443 100644
--- a/indra/newview/llwearablelist.h
+++ b/indra/newview/llwearablelist.h
@@ -33,37 +33,37 @@
#ifndef LL_LLWEARABLELIST_H
#define LL_LLWEARABLELIST_H
+#include "llmemory.h"
#include "llwearable.h"
#include "lluuid.h"
#include "llassetstorage.h"
-class LLWearableList
+// Globally constructed; be careful that there's no dependency with gAgent.
+class LLWearableList : public LLSingleton<LLWearableList>
{
public:
LLWearableList() {}
~LLWearableList();
- S32 getLength() { return mList.size(); }
+ S32 getLength() const { return mList.size(); }
- void getAsset(
- const LLAssetID& assetID,
- const std::string& wearable_name,
- LLAssetType::EType asset_type,
- void(*asset_arrived_callback)(LLWearable*, void* userdata),
- void* userdata );
+ void getAsset(const LLAssetID& assetID,
+ const std::string& wearable_name,
+ LLAssetType::EType asset_type,
+ void(*asset_arrived_callback)(LLWearable*, void* userdata),
+ void* userdata);
- LLWearable* createWearableMatchedToInventoryItem( LLWearable* old_wearable, LLViewerInventoryItem* item );
- LLWearable* createCopyFromAvatar( LLWearable* old_wearable, const std::string& new_name = std::string() );
- LLWearable* createCopy( LLWearable* old_wearable );
- LLWearable* createNewWearable( EWearableType type );
+ LLWearable* createCopyFromAvatar(const LLWearable* old_wearable, const std::string& new_name = std::string());
+ LLWearable* createCopy(const LLWearable* old_wearable);
+ LLWearable* createNewWearable(EWearableType type);
// Callback
static void processGetAssetReply(const char* filename, const LLAssetID& assetID, void* user_data, S32 status, LLExtStat ext_status);
protected:
- std::map< LLUUID, LLWearable* > mList;
+ LLWearable* generateNewWearable(); // used for the create... functions
+private:
+ std::map<LLUUID, LLWearable*> mList;
};
-extern LLWearableList gWearableList;
-
#endif // LL_LLWEARABLELIST_H
diff --git a/indra/newview/llworld.cpp b/indra/newview/llworld.cpp
index 3fdef29540..692efd2b7a 100644
--- a/indra/newview/llworld.cpp
+++ b/indra/newview/llworld.cpp
@@ -632,6 +632,7 @@ void LLWorld::updateVisibilities()
void LLWorld::updateRegions(F32 max_update_time)
{
+ LLMemType mt_ur(LLMemType::MTYPE_IDLE_UPDATE_REGIONS);
LLTimer update_timer;
BOOL did_one = FALSE;
diff --git a/indra/newview/llworldmap.cpp b/indra/newview/llworldmap.cpp
index 915ff04344..827f12d19e 100644
--- a/indra/newview/llworldmap.cpp
+++ b/indra/newview/llworldmap.cpp
@@ -758,7 +758,9 @@ void LLWorldMap::processMapItemReply(LLMessageSystem* msg, void**)
case MAP_ITEM_MATURE_EVENT:
case MAP_ITEM_ADULT_EVENT:
{
- std::string timeStr = LLTrans::getString ("WorldMapTimeStr");
+ std::string timeStr = "["+ LLTrans::getString ("TimeHour")+"]:["
+ +LLTrans::getString ("TimeMin")+"] ["
+ +LLTrans::getString ("TimeAMPM")+"]";
LLSD substitution;
substitution["datetime"] = (S32) extra;
LLStringUtil::format (timeStr, substitution);
diff --git a/indra/newview/llworldmapview.cpp b/indra/newview/llworldmapview.cpp
index d80cd317c3..9ac758433c 100644
--- a/indra/newview/llworldmapview.cpp
+++ b/indra/newview/llworldmapview.cpp
@@ -177,8 +177,10 @@ LLWorldMapView::LLWorldMapView()
{
sPixelsPerMeter = gMapScale / REGION_WIDTH_METERS;
clearLastClick();
+}
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_worldmap.xml");
+BOOL LLWorldMapView::postBuild()
+{
mTextBoxNorth = getChild<LLTextBox> ("floater_map_north");
mTextBoxEast = getChild<LLTextBox> ("floater_map_east");
mTextBoxWest = getChild<LLTextBox> ("floater_map_west");
@@ -205,6 +207,8 @@ LLWorldMapView::LLWorldMapView()
mTextBoxNorthEast ->reshapeToFitText();
mTextBoxSouthWest->reshapeToFitText();
mTextBoxNorthWest ->reshapeToFitText();
+
+ return true;
}
@@ -294,8 +298,8 @@ void LLWorldMapView::draw()
const S32 width = getRect().getWidth();
const S32 height = getRect().getHeight();
- const S32 half_width = width / 2;
- const S32 half_height = height / 2;
+ const F32 half_width = F32(width) / 2.0f;
+ const F32 half_height = F32(height) / 2.0f;
LLVector3d camera_global = gAgent.getCameraPositionGlobal();
LLLocalClipRect clip(getLocalRect());
@@ -339,8 +343,8 @@ void LLWorldMapView::draw()
// Find x and y position relative to camera's center.
LLVector3d rel_region_pos = origin_global - camera_global;
- S32 relative_x = lltrunc((rel_region_pos.mdV[0] / REGION_WIDTH_METERS) * gMapScale);
- S32 relative_y = lltrunc((rel_region_pos.mdV[1] / REGION_WIDTH_METERS) * gMapScale);
+ F32 relative_x = (rel_region_pos.mdV[0] / REGION_WIDTH_METERS) * gMapScale;
+ F32 relative_y = (rel_region_pos.mdV[1] / REGION_WIDTH_METERS) * gMapScale;
F32 pix_width = gMapScale*(layer->LayerExtents.getWidth() + 1);
F32 pix_height = gMapScale*(layer->LayerExtents.getHeight() + 1);
@@ -445,8 +449,8 @@ void LLWorldMapView::draw()
// Find x and y position relative to camera's center.
LLVector3d rel_region_pos = origin_global - camera_global;
- S32 relative_x = lltrunc((rel_region_pos.mdV[0] / REGION_WIDTH_METERS) * gMapScale);
- S32 relative_y = lltrunc((rel_region_pos.mdV[1] / REGION_WIDTH_METERS) * gMapScale);
+ F32 relative_x = (rel_region_pos.mdV[0] / REGION_WIDTH_METERS) * gMapScale;
+ F32 relative_y = (rel_region_pos.mdV[1] / REGION_WIDTH_METERS) * gMapScale;
// When the view isn't panned, 0,0 = center of rectangle
F32 bottom = sPanY + half_height + relative_y;
diff --git a/indra/newview/llworldmapview.h b/indra/newview/llworldmapview.h
index 5b36e308dd..dd64da1371 100644
--- a/indra/newview/llworldmapview.h
+++ b/indra/newview/llworldmapview.h
@@ -62,7 +62,9 @@ public:
LLWorldMapView();
virtual ~LLWorldMapView();
-
+
+ virtual BOOL postBuild();
+
virtual void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE );
virtual void setVisible(BOOL visible);
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index 49083c5927..25ed853146 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -82,7 +82,7 @@
#include "llviewerparcelmgr.h"
#include "llviewerregion.h" // for audio debugging.
#include "llviewerwindow.h" // For getSpinAxis
-#include "llvoavatar.h"
+#include "llvoavatarself.h"
#include "llvoground.h"
#include "llvosky.h"
#include "llvotree.h"
@@ -316,7 +316,7 @@ LLPipeline::LLPipeline() :
void LLPipeline::init()
{
- LLMemType mt(LLMemType::MTYPE_PIPELINE);
+ LLMemType mt(LLMemType::MTYPE_PIPELINE_INIT);
sDynamicLOD = gSavedSettings.getBOOL("RenderDynamicLOD");
sRenderBump = gSavedSettings.getBOOL("RenderObjectBump");
@@ -465,8 +465,8 @@ void LLPipeline::resizeScreenTexture()
{
if (gPipeline.canUseVertexShaders() && assertInitialized())
{
- GLuint resX = gViewerWindow->getWindowDisplayWidth();
- GLuint resY = gViewerWindow->getWindowDisplayHeight();
+ GLuint resX = gViewerWindow->getWorldViewWidth();
+ GLuint resY = gViewerWindow->getWorldViewHeight();
U32 res_mod = gSavedSettings.getU32("RenderResolutionDivisor");
if (res_mod > 1 && res_mod < resX && res_mod < resY)
@@ -576,6 +576,7 @@ void LLPipeline::releaseGLBuffers()
void LLPipeline::createGLBuffers()
{
+ LLMemType mt_cb(LLMemType::MTYPE_PIPELINE_CREATE_BUFFERS);
assertInitialized();
updateRenderDeferred();
@@ -591,6 +592,9 @@ void LLPipeline::createGLBuffers()
stop_glerror();
+ GLuint resX = gViewerWindow->getWorldViewWidth();
+ GLuint resY = gViewerWindow->getWorldViewHeight();
+
if (LLPipeline::sRenderGlow)
{ //screen space glow buffers
const U32 glow_res = llmax(1,
@@ -600,13 +604,10 @@ void LLPipeline::createGLBuffers()
{
mGlow[i].allocate(512,glow_res,GL_RGBA,FALSE,FALSE);
}
- }
- GLuint resX = gViewerWindow->getWindowDisplayWidth();
- GLuint resY = gViewerWindow->getWindowDisplayHeight();
+ allocateScreenBuffer(resX,resY);
+ }
- allocateScreenBuffer(resX,resY);
-
if (sRenderDeferred)
{
mSunShadow[0].allocate(1024,1024, 0, TRUE, FALSE);
@@ -638,6 +639,7 @@ void LLPipeline::createGLBuffers()
void LLPipeline::restoreGL()
{
+ LLMemType mt_cb(LLMemType::MTYPE_PIPELINE_RESTORE_GL);
assertInitialized();
if (mVertexShadersEnabled)
@@ -692,6 +694,7 @@ BOOL LLPipeline::canUseWindLightShadersOnObjects() const
void LLPipeline::unloadShaders()
{
+ LLMemType mt_us(LLMemType::MTYPE_PIPELINE_UNLOAD_SHADERS);
LLViewerShaderMgr::instance()->unloadShaders();
mVertexShadersLoaded = 0;
@@ -723,6 +726,7 @@ S32 LLPipeline::getMaxLightingDetail() const
S32 LLPipeline::setLightingDetail(S32 level)
{
+ LLMemType mt_ld(LLMemType::MTYPE_PIPELINE_LIGHTING_DETAIL);
assertInitialized();
if (level < 0)
@@ -910,7 +914,7 @@ LLDrawPool* LLPipeline::getPoolFromTE(const LLTextureEntry* te, LLViewerImage* i
//static
U32 LLPipeline::getPoolTypeFromTE(const LLTextureEntry* te, LLViewerImage* imagep)
{
- LLMemType mt(LLMemType::MTYPE_PIPELINE);
+ LLMemType mt_gpt(LLMemType::MTYPE_PIPELINE_GET_POOL_TYPE);
if (!te || !imagep)
{
@@ -940,7 +944,7 @@ U32 LLPipeline::getPoolTypeFromTE(const LLTextureEntry* te, LLViewerImage* image
void LLPipeline::addPool(LLDrawPool *new_poolp)
{
- LLMemType mt(LLMemType::MTYPE_PIPELINE);
+ LLMemType mt_a(LLMemType::MTYPE_PIPELINE_ADD_POOL);
assertInitialized();
mPools.insert(new_poolp);
addToQuickLookup( new_poolp );
@@ -948,7 +952,7 @@ void LLPipeline::addPool(LLDrawPool *new_poolp)
void LLPipeline::allocDrawable(LLViewerObject *vobj)
{
- LLMemType mt(LLMemType::MTYPE_DRAWABLE);
+ LLMemType mt_ad(LLMemType::MTYPE_PIPELINE_ALLOCATE_DRAWABLE);
LLDrawable *drawable = new LLDrawable();
vobj->mDrawable = drawable;
@@ -1009,6 +1013,7 @@ void LLPipeline::unlinkDrawable(LLDrawable *drawable)
U32 LLPipeline::addObject(LLViewerObject *vobj)
{
+ LLMemType mt_ao(LLMemType::MTYPE_PIPELINE_ADD_OBJECT);
if (gNoRender)
{
return 0;
@@ -1029,7 +1034,7 @@ U32 LLPipeline::addObject(LLViewerObject *vobj)
void LLPipeline::createObjects(F32 max_dtime)
{
LLFastTimer ftm(LLFastTimer::FTM_GEO_UPDATE);
- LLMemType mt(LLMemType::MTYPE_DRAWABLE);
+ LLMemType mt(LLMemType::MTYPE_PIPELINE_CREATE_OBJECTS);
LLTimer update_timer;
@@ -1197,7 +1202,7 @@ void LLPipeline::updateMovedList(LLDrawable::drawable_vector_t& moved_list)
void LLPipeline::updateMove()
{
LLFastTimer t(LLFastTimer::FTM_UPDATE_MOVE);
- LLMemType mt(LLMemType::MTYPE_PIPELINE);
+ LLMemType mt_um(LLMemType::MTYPE_PIPELINE_UPDATE_MOVE);
if (gSavedSettings.getBOOL("FreezeTime"))
{
@@ -1351,7 +1356,7 @@ BOOL LLPipeline::getVisibleExtents(LLCamera& camera, LLVector3& min, LLVector3&
void LLPipeline::updateCull(LLCamera& camera, LLCullResult& result, S32 water_clip)
{
LLFastTimer t(LLFastTimer::FTM_CULL);
- LLMemType mt(LLMemType::MTYPE_PIPELINE);
+ LLMemType mt_uc(LLMemType::MTYPE_PIPELINE_UPDATE_CULL);
grabReferences(result);
@@ -1562,7 +1567,7 @@ BOOL LLPipeline::updateDrawableGeom(LLDrawable* drawablep, BOOL priority)
void LLPipeline::updateGeom(F32 max_dtime)
{
LLTimer update_timer;
- LLMemType mt(LLMemType::MTYPE_PIPELINE);
+ LLMemType mt(LLMemType::MTYPE_PIPELINE_UPDATE_GEOM);
LLPointer<LLDrawable> drawablep;
LLFastTimer t(LLFastTimer::FTM_GEO_UPDATE);
@@ -1665,7 +1670,7 @@ void LLPipeline::updateGeom(F32 max_dtime)
void LLPipeline::markVisible(LLDrawable *drawablep, LLCamera& camera)
{
- LLMemType mt(LLMemType::MTYPE_PIPELINE);
+ LLMemType mt(LLMemType::MTYPE_PIPELINE_MARK_VISIBLE);
if(!drawablep || drawablep->isDead())
{
return;
@@ -1685,7 +1690,7 @@ void LLPipeline::markVisible(LLDrawable *drawablep, LLCamera& camera)
void LLPipeline::markMoved(LLDrawable *drawablep, BOOL damped_motion)
{
- LLMemType mt(LLMemType::MTYPE_PIPELINE);
+ LLMemType mt_mm(LLMemType::MTYPE_PIPELINE_MARK_MOVED);
if (!drawablep)
{
@@ -1731,7 +1736,7 @@ void LLPipeline::markMoved(LLDrawable *drawablep, BOOL damped_motion)
void LLPipeline::markShift(LLDrawable *drawablep)
{
- LLMemType mt(LLMemType::MTYPE_PIPELINE);
+ LLMemType mt(LLMemType::MTYPE_PIPELINE_MARK_SHIFT);
if (!drawablep || drawablep->isDead())
{
@@ -1754,7 +1759,7 @@ void LLPipeline::markShift(LLDrawable *drawablep)
void LLPipeline::shiftObjects(const LLVector3 &offset)
{
- LLMemType mt(LLMemType::MTYPE_PIPELINE);
+ LLMemType mt(LLMemType::MTYPE_PIPELINE_SHIFT_OBJECTS);
assertInitialized();
@@ -1794,7 +1799,7 @@ void LLPipeline::shiftObjects(const LLVector3 &offset)
void LLPipeline::markTextured(LLDrawable *drawablep)
{
- LLMemType mt(LLMemType::MTYPE_PIPELINE);
+ LLMemType mt(LLMemType::MTYPE_PIPELINE_MARK_TEXTURED);
if (drawablep && !drawablep->isDead() && assertInitialized())
{
@@ -1804,7 +1809,7 @@ void LLPipeline::markTextured(LLDrawable *drawablep)
void LLPipeline::markRebuild(LLDrawable *drawablep, LLDrawable::EDrawableFlags flag, BOOL priority)
{
- LLMemType mt(LLMemType::MTYPE_PIPELINE);
+ LLMemType mt(LLMemType::MTYPE_PIPELINE_MARK_REBUILD);
if (drawablep && !drawablep->isDead() && assertInitialized())
{
@@ -1850,7 +1855,7 @@ void LLPipeline::stateSort(LLCamera& camera, LLCullResult &result)
}
LLFastTimer ftm(LLFastTimer::FTM_STATESORT);
- LLMemType mt(LLMemType::MTYPE_PIPELINE);
+ LLMemType mt(LLMemType::MTYPE_PIPELINE_STATE_SORT);
//LLVertexBuffer::unbind();
@@ -1927,7 +1932,7 @@ void LLPipeline::stateSort(LLCamera& camera, LLCullResult &result)
void LLPipeline::stateSort(LLSpatialGroup* group, LLCamera& camera)
{
- LLMemType mt(LLMemType::MTYPE_PIPELINE);
+ LLMemType mt(LLMemType::MTYPE_PIPELINE_STATE_SORT);
if (!sSkipUpdate && group->changeLOD())
{
for (LLSpatialGroup::element_iter i = group->getData().begin(); i != group->getData().end(); ++i)
@@ -1941,16 +1946,17 @@ void LLPipeline::stateSort(LLSpatialGroup* group, LLCamera& camera)
void LLPipeline::stateSort(LLSpatialBridge* bridge, LLCamera& camera)
{
- LLMemType mt(LLMemType::MTYPE_PIPELINE);
+ LLMemType mt(LLMemType::MTYPE_PIPELINE_STATE_SORT);
if (!sSkipUpdate && bridge->getSpatialGroup()->changeLOD())
{
- bridge->updateDistance(camera);
+ bool force_update = false;
+ bridge->updateDistance(camera, force_update);
}
}
void LLPipeline::stateSort(LLDrawable* drawablep, LLCamera& camera)
{
- LLMemType mt(LLMemType::MTYPE_PIPELINE);
+ LLMemType mt(LLMemType::MTYPE_PIPELINE_STATE_SORT);
if (!drawablep
|| drawablep->isDead()
@@ -2005,11 +2011,13 @@ void LLPipeline::stateSort(LLDrawable* drawablep, LLCamera& camera)
{
if (!drawablep->isActive())
{
- drawablep->updateDistance(camera);
+ bool force_update = false;
+ drawablep->updateDistance(camera, force_update);
}
else if (drawablep->isAvatar())
{
- drawablep->updateDistance(camera); // calls vobj->updateLOD() which calls LLVOAvatar::updateVisibility()
+ bool force_update = false;
+ drawablep->updateDistance(camera, force_update); // calls vobj->updateLOD() which calls LLVOAvatar::updateVisibility()
}
}
}
@@ -2177,7 +2185,7 @@ void renderSoundHighlights(LLDrawable* drawablep)
void LLPipeline::postSort(LLCamera& camera)
{
- LLMemType mt(LLMemType::MTYPE_PIPELINE);
+ LLMemType mt(LLMemType::MTYPE_PIPELINE_POST_SORT);
LLFastTimer ftm(LLFastTimer::FTM_STATESORT_POSTSORT);
assertInitialized();
@@ -2371,6 +2379,7 @@ void LLPipeline::postSort(LLCamera& camera)
void render_hud_elements()
{
+ LLMemType mt_rhe(LLMemType::MTYPE_PIPELINE_RENDER_HUD_ELS);
LLFastTimer t(LLFastTimer::FTM_RENDER_UI);
gPipeline.disableLights();
@@ -2415,7 +2424,7 @@ void render_hud_elements()
void LLPipeline::renderHighlights()
{
- LLMemType mt(LLMemType::MTYPE_PIPELINE);
+ LLMemType mt(LLMemType::MTYPE_PIPELINE_RENDER_HL);
assertInitialized();
@@ -2483,7 +2492,7 @@ void LLPipeline::renderHighlights()
void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)
{
- LLMemType mt(LLMemType::MTYPE_PIPELINE);
+ LLMemType mt(LLMemType::MTYPE_PIPELINE_RENDER_GEOM);
LLFastTimer t(LLFastTimer::FTM_RENDER_GEOMETRY);
assertInitialized();
@@ -2567,9 +2576,6 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)
stop_glerror();
LLAppViewer::instance()->pingMainloopTimeout("Pipeline:RenderDrawPools");
-
- LLAppViewer::instance()->pingMainloopTimeout("Pipeline:RenderForSelect");
- LLAppViewer::instance()->pingMainloopTimeout("Pipeline:RenderDeferred");
for (pool_set_t::iterator iter = mPools.begin(); iter != mPools.end(); ++iter)
{
LLDrawPool *poolp = *iter;
@@ -2581,6 +2587,7 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)
if (gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_PICKING))
{
+ LLAppViewer::instance()->pingMainloopTimeout("Pipeline:RenderForSelect");
gObjectList.renderObjectsForSelect(camera, gViewerWindow->getVirtualWindowRect());
}
else
@@ -2644,6 +2651,10 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)
glGetIntegerv(GL_MODELVIEW_STACK_DEPTH, &depth);
if (depth > 3)
{
+ if (gDebugSession)
+ {
+ ll_fail("GL matrix stack corrupted.");
+ }
llerrs << "GL matrix stack corrupted!" << llendl;
}
std::string msg = llformat("%s pass %d", gPoolNames[cur_type].c_str(), i);
@@ -2744,6 +2755,9 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)
void LLPipeline::renderGeomDeferred(LLCamera& camera)
{
+ LLAppViewer::instance()->pingMainloopTimeout("Pipeline:RenderGeomDeferred");
+
+ LLMemType mt_rgd(LLMemType::MTYPE_PIPELINE_RENDER_GEOM_DEFFERRED);
LLFastTimer t(LLFastTimer::FTM_RENDER_GEOMETRY);
LLFastTimer t2(LLFastTimer::FTM_POOLS);
@@ -2845,6 +2859,7 @@ void LLPipeline::renderGeomDeferred(LLCamera& camera)
void LLPipeline::renderGeomPostDeferred(LLCamera& camera)
{
+ LLMemType mt_rgpd(LLMemType::MTYPE_PIPELINE_RENDER_GEOM_POST_DEF);
LLFastTimer t(LLFastTimer::FTM_POOLS);
U32 cur_type = 0;
@@ -2956,6 +2971,7 @@ void LLPipeline::renderGeomPostDeferred(LLCamera& camera)
void LLPipeline::renderGeomShadow(LLCamera& camera)
{
+ LLMemType mt_rgs(LLMemType::MTYPE_PIPELINE_RENDER_GEOM_SHADOW);
U32 cur_type = 0;
LLGLEnable cull(GL_CULL_FACE);
@@ -3217,7 +3233,7 @@ void LLPipeline::renderForSelect(std::set<LLViewerObject*>& objects, BOOL render
stateSort((*iter)->mDrawable, *LLViewerCamera::getInstance());
}
- LLMemType mt(LLMemType::MTYPE_PIPELINE);
+ LLMemType mt(LLMemType::MTYPE_PIPELINE_RENDER_SELECT);
@@ -3382,7 +3398,7 @@ void LLPipeline::renderForSelect(std::set<LLViewerObject*>& objects, BOOL render
void LLPipeline::rebuildPools()
{
- LLMemType mt(LLMemType::MTYPE_PIPELINE);
+ LLMemType mt(LLMemType::MTYPE_PIPELINE_REBUILD_POOLS);
assertInitialized();
@@ -3422,7 +3438,7 @@ void LLPipeline::rebuildPools()
void LLPipeline::addToQuickLookup( LLDrawPool* new_poolp )
{
- LLMemType mt(LLMemType::MTYPE_PIPELINE);
+ LLMemType mt(LLMemType::MTYPE_PIPELINE_QUICK_LOOKUP);
assertInitialized();
@@ -4093,18 +4109,21 @@ void LLPipeline::setupHWLights(LLDrawPool* pool)
void LLPipeline::enableLights(U32 mask)
{
assertInitialized();
+
if (mLightingDetail == 0)
{
mask &= 0xf003; // sun and backlight only (and fullbright bit)
}
if (mLightMask != mask)
{
+ stop_glerror();
if (!mLightMask)
{
glEnable(GL_LIGHTING);
}
if (mask)
{
+ stop_glerror();
for (S32 i=0; i<8; i++)
{
if (mask & (1<<i))
@@ -4118,14 +4137,17 @@ void LLPipeline::enableLights(U32 mask)
glLightfv(GL_LIGHT0 + i, GL_DIFFUSE, LLColor4::black.mV);
}
}
+ stop_glerror();
}
else
{
glDisable(GL_LIGHTING);
}
+ stop_glerror();
mLightMask = mask;
LLColor4 ambient = gSky.getTotalAmbientColor();
glLightModelfv(GL_LIGHT_MODEL_AMBIENT,ambient.mV);
+ stop_glerror();
}
}
@@ -4868,6 +4890,7 @@ void LLPipeline::resetVertexBuffers()
void LLPipeline::renderObjects(U32 type, U32 mask, BOOL texture)
{
+ LLMemType mt_ro(LLMemType::MTYPE_PIPELINE_RENDER_OBJECTS);
assertInitialized();
glLoadMatrixd(gGLModelView);
gGLLastMatrix = NULL;
@@ -4956,6 +4979,7 @@ void LLPipeline::bindScreenToTexture()
void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield)
{
+ LLMemType mt_ru(LLMemType::MTYPE_PIPELINE_RENDER_BLOOM);
if (!(gPipeline.canUseVertexShaders() &&
sRenderGlow))
{
@@ -4976,8 +5000,8 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield)
U32 res_mod = gSavedSettings.getU32("RenderResolutionDivisor");
LLVector2 tc1(0,0);
- LLVector2 tc2((F32) gViewerWindow->getWindowDisplayWidth()*2,
- (F32) gViewerWindow->getWindowDisplayHeight()*2);
+ LLVector2 tc2((F32) gViewerWindow->getWorldViewWidth()*2,
+ (F32) gViewerWindow->getWorldViewHeight()*2);
if (res_mod > 1)
{
@@ -5179,7 +5203,11 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield)
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
}
- gViewerWindow->setupViewport();
+ gGLViewport[0] = gViewerWindow->getWorldViewRect().mLeft;
+ gGLViewport[1] = gViewerWindow->getWorldViewRect().mBottom;
+ gGLViewport[2] = gViewerWindow->getWorldViewRect().getWidth();
+ gGLViewport[3] = gViewerWindow->getWorldViewRect().getHeight();
+ glViewport(gGLViewport[0], gGLViewport[1], gGLViewport[2], gGLViewport[3]);
gGL.flush();
@@ -5188,8 +5216,8 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield)
- tc2.setVec((F32) gViewerWindow->getWindowDisplayWidth(),
- (F32) gViewerWindow->getWindowDisplayHeight());
+ tc2.setVec((F32) gViewerWindow->getWorldViewWidth(),
+ (F32) gViewerWindow->getWorldViewHeight());
if (res_mod > 1)
{
@@ -5782,15 +5810,15 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
{
if (LLPipeline::sWaterReflections && assertInitialized() && LLDrawPoolWater::sNeedsReflectionUpdate)
{
- LLVOAvatar* agent = gAgent.getAvatarObject();
+ LLVOAvatarSelf* avatar = gAgent.getAvatarObject();
if (gAgent.getCameraAnimating() || gAgent.getCameraMode() != CAMERA_MODE_MOUSELOOK)
{
- agent = NULL;
+ avatar = NULL;
}
- if (agent)
+ if (avatar)
{
- agent->updateAttachmentVisibility(CAMERA_MODE_THIRD_PERSON);
+ avatar->updateAttachmentVisibility(CAMERA_MODE_THIRD_PERSON);
}
LLVertexBuffer::unbind();
@@ -5980,7 +6008,7 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
}
glClearColor(0.f, 0.f, 0.f, 0.f);
- gViewerWindow->setupViewport();
+ gViewerWindow->setup3DViewport();
mRenderTypeMask = type_mask;
LLDrawPoolWater::sNeedsReflectionUpdate = FALSE;
LLDrawPoolWater::sNeedsDistortionUpdate = FALSE;
@@ -5991,9 +6019,9 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
LLGLState::checkTextureChannels();
LLGLState::checkClientArrays();
- if (agent)
+ if (avatar)
{
- agent->updateAttachmentVisibility(gAgent.getCameraMode());
+ avatar->updateAttachmentVisibility(gAgent.getCameraMode());
}
}
}
@@ -6425,6 +6453,7 @@ void LLPipeline::renderGroups(LLRenderPass* pass, U32 type, U32 mask, BOOL textu
void LLPipeline::generateImpostor(LLVOAvatar* avatar)
{
+ LLMemType mt_gi(LLMemType::MTYPE_PIPELINE_GENERATE_IMPOSTOR);
LLGLState::checkStates();
LLGLState::checkTextureChannels();
LLGLState::checkClientArrays();
@@ -6665,3 +6694,4 @@ LLCullResult::sg_list_t::iterator LLPipeline::endAlphaGroups()
return sCull->endAlphaGroups();
}
+
diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h
index 5e14260a6d..c017e9b64f 100644
--- a/indra/newview/pipeline.h
+++ b/indra/newview/pipeline.h
@@ -322,6 +322,7 @@ public:
RENDER_TYPE_VOLUME,
RENDER_TYPE_PARTICLES,
RENDER_TYPE_CLOUDS,
+ RENDER_TYPE_HUD_PARTICLES
};
enum LLRenderDebugFeatureMask
diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml
index 4c76c73e77..49ea0bc8aa 100644
--- a/indra/newview/skins/default/colors.xml
+++ b/indra/newview/skins/default/colors.xml
@@ -113,22 +113,6 @@
<real>1.0</real>
</array>
</map>
- <key>BalanceTextColor</key>
- <map>
- <key>Comment</key>
- <string>Balance Text Color</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>Color4</string>
- <key>Value</key>
- <array>
- <real>0</real>
- <real>1</real>
- <real>0</real>
- <real>1</real>
- </array>
- </map>
<key>ButtonBorderColor</key>
<map>
<key>Comment</key>
@@ -2372,22 +2356,6 @@
<real>1</real>
</array>
</map>
- <key>ParcelTextColor</key>
- <map>
- <key>Comment</key>
- <string>Parcel Text Color</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>Color4</string>
- <key>Value</key>
- <array>
- <real>0.56</real>
- <real>0.65</real>
- <real>0.82</real>
- <real>1</real>
- </array>
- </map>
<key>PieMenuBgColor</key>
<map>
<key>Comment</key>
diff --git a/indra/newview/skins/default/textures/show_btn.tga b/indra/newview/skins/default/textures/show_btn.tga
new file mode 100644
index 0000000000..5f05f377e3
--- /dev/null
+++ b/indra/newview/skins/default/textures/show_btn.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/show_btn_selected.tga b/indra/newview/skins/default/textures/show_btn_selected.tga
new file mode 100644
index 0000000000..00a2f34a37
--- /dev/null
+++ b/indra/newview/skins/default/textures/show_btn_selected.tga
Binary files differ
diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml
index 19f283e99d..84dd3ffd7a 100644
--- a/indra/newview/skins/default/textures/textures.xml
+++ b/indra/newview/skins/default/textures/textures.xml
@@ -323,10 +323,15 @@
<texture name="cloud-particle.j2c" use_mips="true"/>
<texture name="skin_thumbnail_default.png" preload="true" />
- <texture name="skin_thumbnail_silver.png" preload="true" />
<texture name="default_land_picture.j2c"/>
<texture name="default_profile_picture.j2c"/>
<texture name="locked_image.j2c"/>
<texture name="menu_separator" file_name="menu_separator.png"/>
+
+ <texture name="sidebar_tab_left.tga" preload="true" scale.left="16" scale.top="8" scale.right="112" scale.bottom="9"/>
+ <texture name="sidebar_tab_left_selected.tga" preload="true" scale.left="16" scale.top="8" scale.right="112" scale.bottom="9"/>
+
+ <texture name="teleport_history_backward.tga" preload="true"/>
+ <texture name="teleport_history_forward.tga" preload="true"/>
</textures>
diff --git a/indra/newview/skins/default/xui/da/floater_about_land.xml b/indra/newview/skins/default/xui/da/floater_about_land.xml
index 355e8a1d75..15ebffa302 100644
--- a/indra/newview/skins/default/xui/da/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/da/floater_about_land.xml
@@ -1,80 +1,83 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="floaterland" title="Om land">
<tab_container name="landtab">
<panel label="Generelt" name="land_general_panel">
- <text type="string" length="1" name="Name:">
+ <text length="1" name="Name:" type="string">
Navn:
</text>
- <text type="string" length="1" name="Description:">
+ <text length="1" name="Description:" type="string">
Beskrivelse:
</text>
- <text type="string" length="1" name="Owner:">
+ <text name="LandType">
+ Type:
+ </text>
+ <text name="LandTypeText">
+ Mainland / Homestead
+ </text>
+ <text name="ContentRating">
+ Rating:
+ </text>
+ <text name="ContentRatingText">
+ Adult
+ </text>
+ <text length="1" name="Owner:" type="string">
Ejer:
</text>
- <text type="string" length="1" name="OwnerText">
+ <text length="1" name="OwnerText" type="string">
Leyla Linden
</text>
- <button label="Profil..." label_selected="Profil..." name="Profile..." />
- <text type="string" length="1" name="Group:">
+ <button label="Profil..." label_selected="Profil..." name="Profile..."/>
+ <text length="1" name="Group:" type="string">
Gruppe:
</text>
- <button label="Vælg..." label_selected="Vælg..." name="Set..." />
- <check_box label="Tillad dedikering til gruppe" name="check deed"
- tool_tip="En gruppe administrator kan dedikere denne jord til gruppen, så det vil blive støttet af gruppen&apos;s jord tildeling." />
- <button label="Dedikér..." label_selected="Dedikér..." name="Deed..."
- tool_tip="Du kan kun dedikere jord, hvis du er en administrator i den valgte gruppe." />
- <check_box label="Ejer bidrager ved dedikering" name="check contrib"
- tool_tip="Når land dedikeres til gruppe, kan den tidligere bidrage med nok land til at dække krav." />
- <text type="string" length="1" name="For Sale:">
+ <button label="Vælg..." label_selected="Vælg..." name="Set..."/>
+ <check_box label="Tillad dedikering til gruppe" name="check deed" tool_tip="En gruppe administrator kan dedikere denne jord til gruppen, så det vil blive støttet af gruppen&apos;s jord tildeling."/>
+ <button label="Dedikér..." label_selected="Dedikér..." name="Deed..." tool_tip="Du kan kun dedikere jord, hvis du er en administrator i den valgte gruppe."/>
+ <check_box label="Ejer bidrager ved dedikering" name="check contrib" tool_tip="Når land dedikeres til gruppe, kan den tidligere bidrage med nok land til at dække krav."/>
+ <text length="1" name="For Sale:" type="string">
Til salg:
</text>
- <text type="string" length="1" name="Not for sale.">
+ <text length="1" name="Not for sale." type="string">
Ikke til salg.
</text>
- <text type="string" length="1" name="For Sale: Price L$[PRICE].">
- Pris: L$[PRICE].
+ <text length="1" name="For Sale: Price L$[PRICE]." type="string">
+ Pris: L$[PRICE] (L$[PRICE_PER_SQM]/m²).
</text>
- <button label="Sælg land..." label_selected="Sælg land..." name="Sell Land..." />
- <text type="string" length="1" name="For sale to">
+ <button label="Sælg land..." label_selected="Sælg land..." name="Sell Land..."/>
+ <text length="1" name="For sale to" type="string">
Til salg til: [BUYER]
</text>
- <text type="string" length="1" name="Sell with landowners objects in parcel.">
+ <text length="1" name="Sell with landowners objects in parcel." type="string">
Objekter er inkluderet i salg.
</text>
- <text type="string" length="1" name="Selling with no objects in parcel.">
+ <text length="1" name="Selling with no objects in parcel." type="string">
Objekter er ikke inkluderet i salg.
</text>
- <button label="Annullér salg af land" label_selected="Annullér salg af land"
- name="Cancel Land Sale" />
- <text type="string" length="1" name="Claimed:">
+ <button label="Annullér salg af land" label_selected="Annullér salg af land" name="Cancel Land Sale"/>
+ <text length="1" name="Claimed:" type="string">
Købt:
</text>
- <text type="string" length="1" name="DateClaimText">
+ <text length="1" name="DateClaimText" type="string">
Tue Aug 15 13:47:25 2006
</text>
- <text type="string" length="1" name="PriceLabel">
+ <text length="1" name="PriceLabel" type="string">
Område:
</text>
- <text type="string" length="1" name="PriceText">
+ <text length="1" name="PriceText" type="string">
4048 m²
</text>
- <text type="string" length="1" name="Traffic:">
+ <text length="1" name="Traffic:" type="string">
Trafik:
</text>
- <text type="string" length="1" name="DwellText">
+ <text length="1" name="DwellText" type="string">
0
</text>
- <button label="Køb land..." label_selected="Køb land..." name="Buy Land..." />
- <button label="Køb til gruppe..." label_selected="Køb til gruppe..."
- name="Buy For Group..." />
- <button label="Køb adgang..." label_selected="Køb adgang..." name="Buy Pass..."
- tool_tip="Giver adgang til midlertidig adgang til dette område." />
- <button label="Efterlad land..." label_selected="Efterlad land..."
- name="Abandon Land..." />
- <button label="Kræv tilbage..." label_selected="Kræv tilbage..."
- name="Reclaim Land..." />
- <button label="Linden lalg..." label_selected="Linden lalg..." name="Linden salg..."
- tool_tip="Land skal være ejet og ikke allerede på auktion" />
+ <button label="Køb land..." label_selected="Køb land..." name="Buy Land..."/>
+ <button label="Køb til gruppe..." label_selected="Køb til gruppe..." name="Buy For Group..."/>
+ <button label="Køb adgang..." label_selected="Køb adgang..." name="Buy Pass..." tool_tip="Giver adgang til midlertidig adgang til dette område."/>
+ <button label="Efterlad land..." label_selected="Efterlad land..." name="Abandon Land..."/>
+ <button label="Kræv tilbage..." label_selected="Kræv tilbage..." name="Reclaim Land..."/>
+ <button label="Linden salg..." label_selected="Linden salg..." name="Linden Sale..." tool_tip="Land skal være ejet, indholdsrating sat og ikke allerede på auktion."/>
<string name="new users only">
Kun nye brugere
</string>
@@ -117,36 +120,60 @@ Gå til &apos;Verden&apos; &gt; &apos;Om land&apos; eller vælg en anden parcel
</string>
</panel>
<panel label="Regler" name="land_covenant_panel">
- <text type="string" length="1" name="covenant_timestamp_text">
+ <text name="estate_section_lbl">
+ Estate:
+ </text>
+ <text length="1" name="estate_name_lbl" type="string">
+ Navn:
+ </text>
+ <text length="1" name="estate_name_text" type="string">
+ Hovedland
+ </text>
+ <text length="1" name="estate_owner_lbl" type="string">
+ Ejer:
+ </text>
+ <text length="1" name="estate_owner_text" type="string">
+ (ingen)
+ </text>
+ <text_editor length="1" name="covenant_editor" type="string">
+ Der er ikke angivet specielle regler for denne Estate
+ </text_editor>
+ <text length="1" name="covenant_timestamp_text" type="string">
Sidst rettet Wed Dec 31 16:00:00 1969
</text>
- <text type="string" length="1" name="region_name_lbl">
+ <text name="region_section_lbl">
Region:
</text>
- <text type="string" length="1" name="region_name_text">
+ <text length="1" name="region_name_lbl" type="string">
+ Navn:
+ </text>
+ <text length="1" name="region_name_text" type="string">
leyla
</text>
- <text type="string" length="1" name="estate_name_lbl">
- Estate:
+ <text name="region_landtype_lbl">
+ Type:
</text>
- <text type="string" length="1" name="estate_name_text">
- Hovedland
+ <text name="region_landtype_text">
+ Mainland / Homestead
</text>
- <text type="string" length="1" name="estate_owner_lbl">
- Estate ejer:
+ <text name="region_maturity_lbl">
+ Rating:
</text>
- <text type="string" length="1" name="estate_owner_text">
- (ingen)
+ <text name="region_maturity_text">
+ Adult
</text>
- <text type="string" length="1" name="resellable_clause">
- Købt jord i denne region må ikke videresælges.
+ <text name="resellable_lbl">
+ Videresalg:
</text>
- <text type="string" length="1" name="changeable_clause">
- Købt jord i denne region må gerne samles eller opdeles.
+ <text length="1" name="resellable_clause" type="string">
+ Land i denne region må ikke sælges videre.
+ </text>
+ <text name="changeable_lbl">
+ Opdel:
+ </text>
+ <text length="1" name="changeable_clause" type="string">
+ Land i denne region må ikke samles/opdeles.
</text>
- <text_editor type="string" length="1" name="covenant_editor">
- Der er ikke angivet specielle regler for denne Estate
- </text_editor>
<string name="can_resell">
Købt land i denne region må sælges videre
</string>
@@ -161,13 +188,13 @@ Gå til &apos;Verden&apos; &gt; &apos;Om land&apos; eller vælg en anden parcel
</string>
</panel>
<panel label="Objekter" name="land_objects_panel">
- <text type="string" length="1" name="parcel_object_bonus">
+ <text length="1" name="parcel_object_bonus" type="string">
Region objekt bonus faktor: [BONUS]
</text>
- <text type="string" length="1" name="Simulator primitive usage:">
+ <text length="1" name="Simulator primitive usage:" type="string">
Prims brugt i denne Sim:
</text>
- <text type="string" length="1" name="objects_available">
+ <text length="1" name="objects_available" type="string">
[COUNT] ud af [MAX] ([AVAILABLE] ledige)
</text>
<string name="objects_available_text">
@@ -176,100 +203,142 @@ Gå til &apos;Verden&apos; &gt; &apos;Om land&apos; eller vælg en anden parcel
<string name="objects_deleted_text">
[COUNT] ud af [MAX] ([DELETED] bliver slettet)
</string>
- <text type="string" length="1" name="Primitives parcel supports:">
+ <text length="1" name="Primitives parcel supports:" type="string">
Prims til rådighed:
</text>
- <text type="string" length="1" name="object_contrib_text">
+ <text length="1" name="object_contrib_text" type="string">
[COUNT]
</text>
- <text type="string" length="1" name="Primitives on parcel:">
+ <text length="1" name="Primitives on parcel:" type="string">
Prims brugt på parcel:
</text>
- <text type="string" length="1" name="total_objects_text">
+ <text length="1" name="total_objects_text" type="string">
[COUNT]
</text>
- <text type="string" length="1" name="Owned by parcel owner:">
+ <text length="1" name="Owned by parcel owner:" type="string">
Ejet af Parcel ejer:
</text>
- <text type="string" length="1" name="owner_objects_text">
+ <text length="1" name="owner_objects_text" type="string">
[COUNT]
</text>
- <button label="Vis" label_selected="Vis" name="ShowOwner" />
- <button label="Returnér..." label_selected="Returnér..." name="ReturnOwner..."
- tool_tip="Returnér objekter til deres ejere." />
- <text type="string" length="1" name="Set to group:">
+ <button label="Vis" label_selected="Vis" name="ShowOwner"/>
+ <button label="Returnér..." label_selected="Returnér..." name="ReturnOwner..." tool_tip="Returnér objekter til deres ejere."/>
+ <text length="1" name="Set to group:" type="string">
Sat til gruppe:
</text>
- <text type="string" length="1" name="group_objects_text">
+ <text length="1" name="group_objects_text" type="string">
[COUNT]
</text>
- <button label="Vis" label_selected="Vis" name="ShowGroup" />
- <button label="Returnér..." label_selected="Returnér..." name="ReturnGroup..."
- tool_tip="Returnér objekter til deres ejere." />
- <text type="string" length="1" name="Owned by others:">
+ <button label="Vis" label_selected="Vis" name="ShowGroup"/>
+ <button label="Returnér..." label_selected="Returnér..." name="ReturnGroup..." tool_tip="Returnér objekter til deres ejere."/>
+ <text length="1" name="Owned by others:" type="string">
Ejet af andre:
</text>
- <text type="string" length="1" name="other_objects_text">
+ <text length="1" name="other_objects_text" type="string">
[COUNT]
</text>
- <button label="Vis" label_selected="Vis" name="ShowOther" />
- <button label="Returnér..." label_selected="Returnér..." name="ReturnOther..."
- tool_tip="Returnér objekter til deres ejere." />
- <text type="string" length="1" name="Selected / sat upon:">
+ <button label="Vis" label_selected="Vis" name="ShowOther"/>
+ <button label="Returnér..." label_selected="Returnér..." name="ReturnOther..." tool_tip="Returnér objekter til deres ejere."/>
+ <text length="1" name="Selected / sat upon:" type="string">
Valgt/siddet på:
</text>
- <text type="string" length="1" name="selected_objects_text">
+ <text length="1" name="selected_objects_text" type="string">
[COUNT]
</text>
- <text type="string" length="1" name="Autoreturn">
+ <text length="1" name="Autoreturn" type="string">
Autoreturnér andres objekter efter (minutter, 0 = aldrig):
</text>
- <text type="string" length="1" name="Object Owners:">
+ <text length="1" name="Object Owners:" type="string">
Objekt ejere:
</text>
- <button label="Gentegn liste" label_selected="Gentegn liste" name="Refresh List" />
- <button label="Returnér objekter..." label_selected="Returnér objekter..."
- name="Return objects..." />
+ <button label="Gentegn liste" label_selected="Gentegn liste" name="Refresh List"/>
+ <button label="Returnér objekter..." label_selected="Returnér objekter..." name="Return objects..."/>
<name_list name="owner list">
- <column label="Type" name="type" />
- <column label="Navn" name="name" />
- <column label="Antal" name="count" />
- <column label="Nyeste" name="mostrecent" />
+ <column label="Type" name="type"/>
+ <column label="Navn" name="name"/>
+ <column label="Antal" name="count"/>
+ <column label="Nyeste" name="mostrecent"/>
</name_list>
</panel>
<panel label="Indstillinger" name="land_options_panel">
- <text type="string" length="1" name="allow_label">
+ <text length="1" name="allow_label" type="string">
Tillad andre beboere at:
</text>
- <check_box label="Redigere terræn" name="edit land check"
- tool_tip="Hvis dette er valg, kan enhver redigere dit land. Det er bedst ikke at vælge her, da det altid er muligt for dig som ejer at ændre terræn på dit eget land." />
- <check_box label="Lave landemærker" name="check landmark" />
- <check_box label="Flyve" name="check fly"
- tool_tip="Hvis valgt, kan beboere flyve på dit land. Hvis ikke valgt kan beboere kun flyve ind på dit land og over dit land." />
- <text type="string" length="1" name="allow_label2">
+ <check_box label="Redigere terræn" name="edit land check" tool_tip="Hvis dette er valg, kan enhver redigere dit land. Det er bedst ikke at vælge her, da det altid er muligt for dig som ejer at ændre terræn på dit eget land."/>
+ <check_box label="Lave landemærker" name="check landmark"/>
+ <check_box label="Flyve" name="check fly" tool_tip="Hvis valgt, kan beboere flyve på dit land. Hvis ikke valgt kan beboere kun flyve ind på dit land og over dit land."/>
+ <text length="1" name="allow_label2" type="string" left="194">
Lave objekter:
</text>
- <check_box label="Alle beboere" name="edit objects check" />
- <check_box label="Gruppe" name="edit group objects check" />
- <text type="string" length="1" name="allow_label3">
+ <check_box label="Alle beboere" name="edit objects check"/>
+ <check_box label="Gruppe" name="edit group objects check"/>
+ <text length="1" name="allow_label3" type="string" left="170">
Anbringe objekter:
</text>
- <check_box label="Alle beboere" name="all object entry check" />
- <check_box label="Gruppe" name="group object entry check" />
- <text type="string" length="1" name="allow_label4">
+ <check_box label="Alle beboere" name="all object entry check"/>
+ <check_box label="Gruppe" name="group object entry check"/>
+ <text length="1" name="allow_label4" type="string" left="200">
Køre scripts:
</text>
- <check_box label="Alle beboere" name="check other scripts" />
- <check_box label="Gruppe" name="check group scripts" />
- <text type="string" length="1" name="land_options_label">
+ <check_box label="Alle beboere" name="check other scripts"/>
+ <check_box label="Gruppe" name="check group scripts"/>
+ <text length="1" name="land_options_label" type="string">
Land instillinger:
</text>
- <check_box label="Sikker (ingen skade)" name="check safe"
- tool_tip="Hvis valgt, er det ikke muligt at forårsage skade på andre beboere. Hvis fravalgt er det muligt at få skader (f.eks. ved kamp)." />
- <check_box label="Skub forbudt" name="PushRestrictCheck"
- tool_tip="Forhindrer scripts i at skubbe. Valg af denne mulighed, kan være nyttigt for at forhindre forstyrrende adfærd på dit land." />
- <check_box label="Vis sted i søgning (L$30/uge) i kategorien:" name="ShowDirectoryCheck"
- tool_tip="Lad dit parcel blive vist i søge resultaterne" />
+ <check_box label="Sikker (ingen skade)" name="check safe" tool_tip="Hvis valgt, er det ikke muligt at forårsage skade på andre beboere. Hvis fravalgt er det muligt at få skader (f.eks. ved kamp)."/>
+ <check_box label="Skub forbudt" name="PushRestrictCheck" tool_tip="Forhindrer scripts i at skubbe. Valg af denne mulighed, kan være nyttigt for at forhindre forstyrrende adfærd på dit land."/>
+ <check_box label="Vis sted i søgning (L$30/uge) i kategorien:" name="ShowDirectoryCheck" tool_tip="Lad dit parcel blive vist i søge resultaterne"/>
+ <string name="search_enabled_tooltip">
+ Lad beboere se denne parcel i søgeresultater
+ </string>
+ <string name="search_disabled_small_tooltip">
+ Denne mulighed er ikke til stede da parcellens område er 128 m² eller mindre.
+Kun større parceller kan vises i søgning.
+ </string>
+ <string name="search_disabled_permissions_tooltip">
+ Dette valg er lukket da du ikke kan ændre på denne parcels opsætning.
+ </string>
+ <combo_box name="land category with adult">
+ <combo_item name="AnyCategory">
+ Enhver kategori
+ </combo_item>
+ <combo_item name="LindenLocation">
+ Linden sted
+ </combo_item>
+ <combo_item name="Adult">
+ Adult
+ </combo_item>
+ <combo_item name="Arts&amp;Culture">
+ Kunst &amp; kultur
+ </combo_item>
+ <combo_item name="Business">
+ Business
+ </combo_item>
+ <combo_item name="Educational">
+ Uddannelse
+ </combo_item>
+ <combo_item name="Gaming">
+ Spil
+ </combo_item>
+ <combo_item name="Hangout">
+ Opholdssteder
+ </combo_item>
+ <combo_item name="NewcomerFriendly">
+ Nybegynder venligt
+ </combo_item>
+ <combo_item name="Parks&amp;Nature">
+ Parker &amp; natur
+ </combo_item>
+ <combo_item name="Residential">
+ Beboelse
+ </combo_item>
+ <combo_item name="Shopping">
+ Shopping
+ </combo_item>
+ <combo_item name="Other">
+ Andet
+ </combo_item>
+ </combo_box>
<combo_box name="land category">
<combo_box.item name="AnyCategory" label="Alle kategorier" />
<combo_box.item name="LindenLocation" label="Linden Location" />
@@ -284,23 +353,33 @@ Gå til &apos;Verden&apos; &gt; &apos;Om land&apos; eller vælg en anden parcel
<combo_box.item name="Shopping" label="Indkøb" />
<combo_box.item name="Other" label="Andet" />
</combo_box>
- <button label="?" label_selected="?" name="?" />
- <check_box name="MatureCheck" />
- <text type="string" length="1" name="Snapshot:">
+ <button label="?" label_selected="?" name="?"/>
+ <check_box label="Mature indhold" name="MatureCheck" tool_tip=""/>
+ <string name="mature_check_mature">
+ Mature indhold
+ </string>
+ <string name="mature_check_adult">
+ Adult indhold
+ </string>
+ <string name="mature_check_mature_tooltip">
+ Din parcel information eller indhold anses for at være &apos;adult&apos;.
+ </string>
+ <string name="mature_check_adult_tooltip">
+ Din parcel information eller indhold anses for at være &apos;adult&apos;.
+ </string>
+ <text length="1" name="Snapshot:" type="string">
Foto:
</text>
- <texture_picker label="" name="snapshot_ctrl" tool_tip="Klik for at vælge et billede" />
- <text type="string" length="1" name="landing_point">
+ <texture_picker label="" name="snapshot_ctrl" tool_tip="Klik for at vælge et billede"/>
+ <text length="1" name="landing_point" type="string">
Landingspunkt: [LANDING]
</text>
<string name="landing_point_none">
(ingen)
</string>
- <button label="Vælg" label_selected="Vælg" name="Set"
- tool_tip="Indstiller landingspunkt, hvor de besøgende ankommer. Sættes til din avatars aktuelle placering i denne parcel." />
- <button label="Fjern" label_selected="Fjern" name="Clear"
- tool_tip="Fjerner oplysning om landingspunkt." />
- <text type="string" length="1" name="Teleport Routing: ">
+ <button label="Vælg" label_selected="Vælg" name="Set" tool_tip="Indstiller landingspunkt, hvor de besøgende ankommer. Sættes til din avatars aktuelle placering i denne parcel."/>
+ <button label="Fjern" label_selected="Fjern" name="Clear" tool_tip="Fjerner oplysning om landingspunkt."/>
+ <text length="1" name="Teleport Routing: " type="string">
Teleport valg:
</text>
<combo_box name="landing type" tool_tip="Vælg hvordan du vil håndtere teleporteringer til dit land.">
@@ -316,109 +395,91 @@ Gå til &apos;Verden&apos; &gt; &apos;Om land&apos; eller vælg en anden parcel
</string>
</panel>
<panel label="Medier" name="land_media_panel">
- <text type="string" length="1" name="with media:">
+ <text length="1" name="with media:" type="string" left="4">
Medie type:
</text>
- <combo_box name="media type"
- tool_tip="Specificer om URL-adressen er til en film, hjemmeside eller et andet medie." />
- <text type="string" length="1" name="at URL:">
+ <combo_box name="media type" tool_tip="Specificer om URL-adressen er til en film, hjemmeside eller et andet medie."/>
+ <text length="1" name="at URL:" type="string" left="4">
Medie URL:
</text>
- <button label="Vælg..." label_selected="Vælg..." name="set_media_url" />
- <text type="string" length="1" name="Description:">
+ <button label="Vælg..." label_selected="Vælg..." name="set_media_url"/>
+ <text length="1" name="Description:" type="string" left="4">
Beskrivelse:
</text>
- <line_editor name="url_description" tool_tip="Tekst vist ved siden af Afspil/Hent knappen" />
- <text type="string" length="1" name="Media texture:">
+ <line_editor name="url_description" tool_tip="Tekst vist ved siden af Afspil/Hent knappen"/>
+ <text length="1" name="Media texture:" type="string" left="4">
Erstat tekstur:
</text>
- <texture_picker label="" name="media texture" tool_tip="Klik for at vælge billede" />
- <text type="string" length="1" name="replace_texture_help">
+ <texture_picker label="" name="media texture" tool_tip="Klik for at vælge billede"/>
+ <text length="1" name="replace_texture_help" type="string">
(Objekter der har denne tekstur vil vise filmen eller
web-siden, efter du klikker på play knappen.)
</text>
- <text type="string" length="1" name="Options:">
+ <text length="1" name="Options:" type="string">
Medie valg:
</text>
- <check_box label="Auto skalér" name="media_auto_scale"
- tool_tip="Vælg denne mulighed for at skalere indholdet for dette parcel automatisk. Det kan være lidt langsommere og have lavere kvalitet, men ingen anden tekstur skalering eller tilpasning vil være nødvendigt." />
- <check_box label="Gentag afspil" name="media_loop"
- tool_tip="Gentager automatisk medie, når det er færdigt med at spille starter det automatisk forfra." />
- <check_box label="Skjul medie URL" name="hide_media_url"
- tool_tip="Klik her for at skjule medie adressen så det kun er dig og evt. parcel gruppens ejer/administratorer der kan se den." />
- <check_box label="Skjul musik URL" name="hide_music_url"
- tool_tip="Klik her for at skjule musik adressen så det kun er dig og evt. parcel gruppens ejer/administratorer der kan se den." />
- <text type="string" length="1" name="media_size"
- tool_tip="Størrelse for rendering af Web medie, benyt 0 for standard." width="105">
+ <check_box label="Auto skalér" name="media_auto_scale" tool_tip="Vælg denne mulighed for at skalere indholdet for dette parcel automatisk. Det kan være lidt langsommere og have lavere kvalitet, men ingen anden tekstur skalering eller tilpasning vil være nødvendigt."/>
+ <check_box label="Gentag afspil" name="media_loop" tool_tip="Gentager automatisk medie, når det er færdigt med at spille starter det automatisk forfra."/>
+ <check_box label="Skjul medie URL" name="hide_media_url" tool_tip="Klik her for at skjule medie adressen så det kun er dig og evt. parcel gruppens ejer/administratorer der kan se den."/>
+ <check_box label="Skjul musik URL" name="hide_music_url" tool_tip="Klik her for at skjule musik adressen så det kun er dig og evt. parcel gruppens ejer/administratorer der kan se den."/>
+ <text length="1" name="media_size" tool_tip="Størrelse for rendering af Web medie, benyt 0 for standard." type="string" width="105">
Medie Størrelse:
</text>
- <spinner name="media_size_width" left_delta="89"
- tool_tip="Størrelse for rendering af Web medie, benyt 0 for standard." />
- <spinner name="media_size_height"
- tool_tip="Størrelse for rendering af Web medie, benyt 0 for standard." />
- <text type="string" length="1" name="pixels">
+ <spinner left_delta="89" name="media_size_width" tool_tip="Størrelse for rendering af Web medie, benyt 0 for standard."/>
+ <spinner name="media_size_height" tool_tip="Størrelse for rendering af Web medie, benyt 0 for standard."/>
+ <text length="1" name="pixels" type="string">
pixels
</text>
- <text type="string" length="1" name="MusicURL:">
+ <text length="1" name="MusicURL:" type="string">
Musik URL:
</text>
- <text type="string" length="1" name="Sound:">
+ <text length="1" name="Sound:" type="string">
Lyd:
</text>
- <check_box label="Isolér lyde til denne parcel" name="check sound local" />
- <text type="string" length="1" name="Voice settings:">
+ <check_box label="Begræns lyde fra bevægelser og objekter til denne parcel" name="check sound local"/>
+ <button label="?" label_selected="?" name="?" left="400"/>
+ <text length="1" name="Voice settings:" type="string">
Stemme:
</text>
<radio_group name="parcel_voice_channel">
- <radio_item type="string" length="1" name="Estate">
- Brug Estate kanalen
- </radio_item>
- <radio_item type="string" length="1" name="Private">
- Brug en privat kanal
- </radio_item>
- <radio_item type="string" length="1" name="Disabled">
- Slå stemme chat fra på denne parcel
- </radio_item>
+ <radio_item type="string" length="1" name="Estate" label="Brug Estate kanalen" />
+ <radio_item type="string" length="1" name="Private" label="Brug en privat kanal" />
+ <radio_item type="string" length="1" name="Disabled" label="Slå stemme chat fra på denne parcel" />
</radio_group>
</panel>
<panel label="Adgang" name="land_access_panel">
- <text type="string" length="1" name="Limit access to this parcel to:">
+ <text length="1" name="Limit access to this parcel to:" type="string">
Adgang til denne parcel
</text>
- <check_box label="Tillad offentlig adgang" name="public_access" />
- <text type="string" length="1" name="Only Allow">
+ <check_box label="Tillad offentlig adgang" name="public_access"/>
+ <text length="1" name="Only Allow" type="string">
Blokér adgang for:
</text>
- <check_box label="Beboere der ikke har givet betalings oplysninger til Linden Lab"
- name="limit_payment"
- tool_tip="Blokér beboere der ikke har afgivet identifikationsoplysninger." />
- <check_box label="Beboere der ikke er godkendt som voksne" name="limit_age_verified"
- tool_tip="Blokér beboere der ikke har verificeret deres alder. Se support.secondlife.com for mere information." />
+ <check_box label="Beboere der ikke har givet betalings oplysninger til Linden Lab" name="limit_payment" tool_tip="Blokér beboere der ikke har afgivet identifikationsoplysninger."/>
+ <check_box label="Beboere der ikke er godkendt som voksne" name="limit_age_verified" tool_tip="Blokér beboere der ikke har verificeret deres alder. Se support.secondlife.com for mere information."/>
<string name="estate_override">
En eller flere af disse valg er indstillet på estate niveau
</string>
- <check_box label="Tillad adgang til gruppen: [GROUP]" name="GroupCheck"
- tool_tip="Vælg gruppe under fanen &apos;generelt&apos;." />
- <check_box label="Sælg adgang til:" name="PassCheck"
- tool_tip="Tillader midlertidig adgang til denne parcel" />
+ <check_box label="Tillad adgang til gruppen: [GROUP]" name="GroupCheck" tool_tip="Vælg gruppe under fanen &apos;generelt&apos;."/>
+ <check_box label="Sælg adgang til:" name="PassCheck" tool_tip="Tillader midlertidig adgang til denne parcel"/>
<combo_box name="pass_combo">
<combo_box.item name="Anyone" label="Alle" />
<combo_box.item name="Group" label="Gruppe" />
</combo_box>
- <spinner label="Pris i L$:" name="PriceSpin" />
- <spinner label="Timers adgang:" name="HoursSpin" />
+ <spinner label="Pris i L$:" name="PriceSpin"/>
+ <spinner label="Timers adgang:" name="HoursSpin"/>
<text label="Tillad altid" name="AllowedText">
Altid godkendte beboere
</text>
- <name_list name="AccessList" tool_tip="([LISTED] vist, [MAX] max)" />
- <button label="Tilføj..." label_selected="Tilføj..." name="add_allowed" />
- <button label="Fjern" label_selected="Fjern" name="remove_allowed" />
+ <name_list name="AccessList" tool_tip="([LISTED] vist, [MAX] max)"/>
+ <button label="Tilføj..." label_selected="Tilføj..." name="add_allowed"/>
+ <button label="Fjern" label_selected="Fjern" name="remove_allowed"/>
<text label="Blokér" name="BanCheck">
Blokerede beboere
</text>
- <name_list name="BannedList" tool_tip="([LISTED] vist, [MAX] max)" />
- <button label="Tilføj..." label_selected="Tilføj..." name="add_banned" />
- <button label="Fjern" label_selected="Fjern" name="remove_banned" />
+ <name_list name="BannedList" tool_tip="([LISTED] vist, [MAX] max)"/>
+ <button label="Tilføj..." label_selected="Tilføj..." name="add_banned"/>
+ <button label="Fjern" label_selected="Fjern" name="remove_banned"/>
</panel>
</tab_container>
</floater>
diff --git a/indra/newview/skins/default/xui/da/floater_animation_preview.xml b/indra/newview/skins/default/xui/da/floater_animation_preview.xml
index e60292636d..8cb0eee601 100644
--- a/indra/newview/skins/default/xui/da/floater_animation_preview.xml
+++ b/indra/newview/skins/default/xui/da/floater_animation_preview.xml
@@ -9,15 +9,14 @@
<spinner label="Prioritet" name="priority"
tool_tip="Vælg hvilke andre animationer der har lavere prioritet end denne." />
<check_box label="Gentag" name="loop_check" tool_tip="Gentager animationen konstant." />
- <spinner label="Ind(%)" name="loop_in_point"
- tool_tip="Sætter punktet hvor gentagelsen genstarter fra." />
+ <spinner left="76" label_width="40" width="105" label="Ind(%)" name="loop_in_point" tool_tip="Sætter punktet hvor gentagelsen genstarter fra."/>
<spinner label="Ud (%)" name="loop_out_point"
tool_tip="Sætter punktet i animationen der afslutter gentagelsen." />
<text name="hand_label">
Hånd posering
</text>
<combo_box label="" name="hand_pose_combo"
- tool_tip="Kontrollerer hvad hænderne går i løbet af animationen.">
+ tool_tip="Kontrollerer hvad hænderne går i løbet af animationen." width="140">
<combo_box.item name="Spread" label="Spredt" />
<combo_box.item name="Relaxed" label="Afslappet" />
<combo_box.item name="PointBoth" label="Peg begge" />
@@ -36,7 +35,7 @@
Ansigtsudtryk
</text>
<combo_box label="" name="emote_combo"
- tool_tip="Angiver hvad ansigtet gør under animationen">
+ tool_tip="Angiver hvad ansigtet gør under animationen" width="140">
<combo_box.item name="[None]" label="Intet]" />
<combo_box.item name="Aaaaah" label="Aaaaah" />
<combo_box.item name="Afraid" label="Bange" />
@@ -62,7 +61,7 @@
Vis mens
</text>
<combo_box label="" name="preview_base_anim"
- tool_tip="Se hvordan animation ser ud i forskellige typiske avatar-situationer.">
+ tool_tip="Se hvordan animation ser ud i forskellige typiske avatar-situationer." width="140">
<combo_box.item name="Standing" label="Står" />
<combo_box.item name="Walking" label="Går" />
<combo_box.item name="Sitting" label="Sidder" />
@@ -77,8 +76,8 @@
<slider label="" name="playback_slider" />
<text name="bad_animation_text">
Kan ikke læse animations fil.
-
- Vi anbefaler BVH filer der er exporteret fra Poser 4.
+
+Vi anbefaler BVH filer der er exporteret fra Poser 4.
</text>
<button label="Annullér" name="cancel_btn" />
<button label="Hent (L$[AMOUNT])" name="ok_btn" />
diff --git a/indra/newview/skins/default/xui/da/floater_buy_land.xml b/indra/newview/skins/default/xui/da/floater_buy_land.xml
index 2c5411e26b..1d42ffb45a 100644
--- a/indra/newview/skins/default/xui/da/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/da/floater_buy_land.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="buy land" title="Køb land">
<text name="region_name_label">
Region:
@@ -6,6 +6,12 @@
<text name="region_name_text">
(ukendt)
</text>
+ <text name="region_type_label">
+ Type:
+ </text>
+ <text name="region_type_text">
+ (ukendt)
+ </text>
<text name="estate_name_label">
Estate:
</text>
@@ -22,35 +28,38 @@
Købt land i denne region:
</text>
<text name="resellable_clause">
- Købt land i denne region kan eller kan ikke videresælges.
+ Kan eller kan ikke videresælges.
</text>
<text name="changeable_clause">
- kan eller kan ikke samles eller opdeles.
+ Må eller må ikke samles eller opdeles.
</text>
<text name="covenant_text">
Du skal acceptere Estate reglerne:
</text>
+ <text left="470" name="covenant_timestamp_text"/>
<text_editor name="covenant_editor">
Indlæser...
</text_editor>
- <check_box label="Jeg acceptere betingelserne der er beskrevet." name="agree_covenant" />
+ <check_box label="Jeg acceptere betingelserne der er beskrevet." name="agree_covenant"/>
<text name="info_parcel_label">
Parcel:
</text>
- <text name="info_parcel" left_delta="62">
+ <text left_delta="62" name="info_parcel">
Scotopteryx 138,204
</text>
<text name="info_size_label" width="60">
Størrelse:
</text>
- <text name="info_size" left_delta="62">
+ <text left_delta="62" name="info_size">
1024 m²
</text>
<text name="info_price_label">
Pris:
</text>
- <text name="info_price" left_delta="62">
- L$ 1500, objekter inkluderet
+ <text left_delta="62" name="info_price">
+ L$ 1500
+(L$ 1.1/m²)
+sælges med objekter
</text>
<text name="info_action">
Køb af dette land vil:
@@ -58,7 +67,7 @@
<text name="error_message">
Noget er ikke rigtigt.
</text>
- <button label="Go to website" name="error_web" />
+ <button label="Go to website" name="error_web"/>
<text name="account_action">
Opgrader dig til premium medlemsskab.
</text>
@@ -74,8 +83,8 @@
Forøg dine månedlige arealanvendelse gebyrer til US $ 40/måned.
</text>
<text name="land_use_reason">
- Du har 1.309 kvadratmeter jord.
-Dette parcel er på 512 kvadratmeter jord.
+ You hold 1309 m² of land.
+This parcel is 512 m² of land.
</text>
<text name="purchase_action">
Betal Joe Resident L$ 4000 dette areal
@@ -95,10 +104,9 @@ Dette parcel er på 512 kvadratmeter jord.
<text name="currency_balance">
Du har L$2,100.
</text>
- <check_box label="Fjern [AMOUNT] kvadratmeter af bidrag fra gruppe."
- name="remove_contribution" />
- <button label="K&#248;b" name="buy_btn" />
- <button label="Annullér" name="cancel_btn" />
+ <check_box label="Fjern [AMOUNT] kvadratmeter af bidrag fra gruppe." name="remove_contribution"/>
+ <button label="Køb" name="buy_btn"/>
+ <button label="Annullér" name="cancel_btn"/>
<string name="can_resell">
Kan videresælges.
</string>
@@ -155,7 +163,7 @@ Prøv at vælge et mindre område.
Køb af dette areal vil:
</string>
<string name="buying_for_group">
- Køb jord til gruppe:
+ Køb af dette areal vil:
</string>
<string name="cannot_buy_now">
Kan ikke købe nu:
@@ -173,30 +181,38 @@ Prøv at vælge et mindre område.
Din konto kan eje jord.
</string>
<string name="land_holdings">
- Du har [BUYER] kvadratmeter jord.
+ Du har [BUYER] m² jord.
</string>
<string name="pay_to_for_land">
Betal L$ [AMOUNT] til [SELLER] for dette stykke jord
</string>
<string name="buy_for_US">
- Køb L$ [AMOUNT] for omkring US$ [AMOUNT2] ,
+ Køb L$ [AMOUNT] for ca. US$ [AMOUNT2],
</string>
<string name="parcel_meters">
- Dette parcel er [AMOUNT] kvadratmeter.
+ Denne parcel er [AMOUNT] m².
</string>
<string name="premium_land">
- Dette stykke jord er premium, og vil tælle som [AMOUNT] kvadratmeter.
+ Dette stykke jord er premium, og vil tælle som [AMOUNT] m².
</string>
<string name="discounted_land">
- Dette stykke jord er på tilbud, og vil tælle som [AMOUNT] kvadratmeter.
+ Dette stykke jord er på tilbud, og vil tælle som [AMOUNT] m².
</string>
<string name="meters_supports_object">
[AMOUNT] m²
-indeholder [AMOUNT2] objekter
+kan indeholder [AMOUNT2] objekter
</string>
<string name="sold_with_objects">
solgt med objekter
</string>
+ <string name="sold_without_objects">
+ objekter ikke inkluderet
+ </string>
+ <string name="info_price_string">
+ L$ [PRICE]
+(L$ [PRICE_PER_SQM]/m²)
+[SOLD_WITH_OBJECTS]
+ </string>
<string name="insufficient_land_credits">
Gruppen [GROUP] skal bruge nok tildelt jord brugs
kredit for at dække dette parcel før købet vil blive
diff --git a/indra/newview/skins/default/xui/da/floater_customize.xml b/indra/newview/skins/default/xui/da/floater_customize.xml
index 0f6a59eb4a..aa6b8cb043 100644
--- a/indra/newview/skins/default/xui/da/floater_customize.xml
+++ b/indra/newview/skins/default/xui/da/floater_customize.xml
@@ -1,447 +1,479 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="floater customize" title="Appearance">
- <tab_container name="customize tab container">
- <panel label="Krops Dele" name="body_parts_placeholder" />
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater customize" title="Appearance" width="509">
+ <tab_container name="customize tab container" width="507">
+ <panel label="Krops Dele" name="body_parts_placeholder"/>
<panel label="Kropsbygning" name="Shape">
- <button label="Annullér" label_selected="Annullér" name="Revert" />
- <button label="Krop" label_selected="Krop" name="Body" />
- <button label="Hoved" label_selected="Hoved" name="Head" />
- <button label="Øjne" label_selected="Øjne" name="Eyes" />
- <button label="Ører" label_selected="Ører" name="Ears" />
- <button label="Næse" label_selected="Næse" name="Nose" />
- <button label="Mund" label_selected="Mund" name="Mouth" />
- <button label="Kinder" label_selected="Kinder" name="Chin" />
- <button label="Overkrop" label_selected="Overkrop" name="Torso" />
- <button label="Ben" label_selected="Ben" name="Legs" />
+ <button label="Annullér" label_selected="Annullér" name="Revert"/>
+ <button label="Krop" label_selected="Krop" name="Body"/>
+ <button label="Hoved" label_selected="Hoved" name="Head"/>
+ <button label="Øjne" label_selected="Øjne" name="Eyes"/>
+ <button label="Ører" label_selected="Ører" name="Ears"/>
+ <button label="Næse" label_selected="Næse" name="Nose"/>
+ <button label="Mund" label_selected="Mund" name="Mouth"/>
+ <button label="Kinder" label_selected="Kinder" name="Chin"/>
+ <button label="Overkrop" label_selected="Overkrop" name="Torso"/>
+ <button label="Ben" label_selected="Ben" name="Legs"/>
<radio_group name="sex radio">
- <radio_item type="string" length="1" name="radio">
- Kvinde
- </radio_item>
- <radio_item type="string" length="1" name="radio2">
- Mand
- </radio_item>
+ <radio_item type="string" length="1" name="radio" label="Kvinde" />
+ <radio_item type="string" length="1" name="radio2" label="Mand" />
</radio_group>
- <button label="Tilfældig" label_selected="Tilfældig" name="Randomize" />
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: Kan ikke redigeres
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: indlæser...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: ikke båret
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
Fundet i [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Vælg en ny krop ved at trække en sådan fra din beholdning
-over på din avatar. Du kan også oprette en fra bunden og bagefter &apos;tage den på&apos;.
+over på din avatar. Du kan også oprette en fra bunden
+og bagefter &apos;tage den på&apos;.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Du har ikke rettigheder til at redigere denne del.
</text>
- <button label="Lav ny krop" label_selected="Lav ny krop" name="Create New" />
- <button label="Tag af" label_selected="Tag af" name="Take Off" />
- <button label="Gem" label_selected="Gem" name="Save" />
- <button label="Gem som" label_selected="Gem som" name="Save As" />
+ <text name="Item Action Label">
+ Figur:
+ </text>
+ <button label="Lav ny krop" label_selected="Lav ny krop" name="Create New"/>
+ <button label="Gem" label_selected="Gem" name="Save"/>
+ <button label="Gem som..." label_selected="Gem som..." name="Save As"/>
</panel>
<panel label="Hud" name="Skin">
- <button label="Hudfarve" label_selected="Hudfarve" name="Skin Color" />
- <button label="Detaljer" label_selected="Detaljer" name="Face Detail" />
- <button label="Sminke" label_selected="Sminke" name="Makeup" />
- <button label="Kropsdetaljer" label_selected="Kropsdetaljer" name="Body Detail" />
- <text type="string" length="1" name="title">
+ <button label="Hudfarve" label_selected="Hudfarve" name="Skin Color"/>
+ <button label="Detaljer" label_selected="Detaljer" name="Face Detail"/>
+ <button label="Sminke" label_selected="Sminke" name="Makeup"/>
+ <button label="Kropsdetaljer" label_selected="Kropsdetaljer" name="Body Detail"/>
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: Kan ikke redigeres
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: indlæser...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: ikke båret
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
Fundet i [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Tag en ny hud på ved at trække en sådan fra din beholdning
-over på din avatar. Du kan også oprette en hud fra bunden og bagefter &apos;tage den på&apos;.
+over på din avatar. Du kan også oprette en hud fra bunden
+og bagefter &apos;tage den på&apos;.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Du har ikke rettigheder til at redigere denne del.
</text>
- <texture_picker label="Tatoveringer hoved" name="Head Tattoos" />
- <texture_picker label="Tatoveringer overkrop" name="Upper Tattoos" />
- <texture_picker label="Tatoveringer underkrop" name="Lower Tattoos" />
- <button label="Tilfældig" label_selected="Tilfældig" name="Randomize" />
- <button label="Lav ny hud" label_selected="Lav nyt hud" name="Create New" />
- <button label="Tag af" label_selected="Tag af" name="Take Off" />
- <button label="Gem" label_selected="Gem" name="Save" />
- <button label="Gem som" label_selected="Gem som" name="Save As" />
- <button label="Annullér" label_selected="Annullér" name="Revert" />
+ <text name="Item Action Label">
+ Hud:
+ </text>
+ <texture_picker width="98" label="Tatoveringer hoved" name="Head Tattoos" tool_tip="Klik for at vælge et billede"/>
+ <texture_picker width="98" label="Tatover. overkrop" name="Upper Tattoos" tool_tip="Klik for at vælge et billede"/>
+ <texture_picker width="98" label="Tatover. underkrop" name="Lower Tattoos" tool_tip="Klik for at vælge et billede"/>
+ <button label="Lav ny hud" label_selected="Lav nyt hud" name="Create New"/>
+ <button label="Gem" label_selected="Gem" name="Save"/>
+ <button label="Gem som..." label_selected="Gem som..." name="Save As"/>
+ <button label="Annullér" label_selected="Annullér" name="Revert"/>
</panel>
<panel label="Hår" name="Hair">
- <button label="Farve" label_selected="Farve" name="Color" />
- <button label="Stil" label_selected="Stil" name="Style" />
- <button label="Øjenbryn" label_selected="Øjenbryn" name="Eyebrows" />
- <button label="Skæg" label_selected="Skæg" name="Facial" />
- <text type="string" length="1" name="title">
+ <button label="Farve" label_selected="Farve" name="Color"/>
+ <button label="Stil" label_selected="Stil" name="Style"/>
+ <button label="Øjenbryn" label_selected="Øjenbryn" name="Eyebrows"/>
+ <button label="Skæg" label_selected="Skæg" name="Facial"/>
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: kan ikke redigeres
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: indlæser...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: ikke båret
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
Fundet i [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Tag et ny hår på ved at trække et fra din beholdning
-over på din avatar. Du kan også oprette et nyt hår fra bunden og bagefter &apos;tage det på&apos;.
+over på din avatar. Du kan også oprette et nyt hår fra bunden
+og bagefter &apos;tage det på&apos;.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Du har ikke rettigheder til at redigere denne del.
</text>
- <texture_picker label="Tekstur" name="Texture" />
- <button label="Tilfældig" label_selected="Tilfældig" name="Randomize" />
- <button label="Lav nyt hår" label_selected="Lav nyt hår" name="Create New" />
- <button label="Tag af" label_selected="Tag af" name="Take Off" />
- <button label="Gem" label_selected="Gem" name="Save" />
- <button label="Gem som" label_selected="Gem som" name="Save As" />
- <button label="Annullér" label_selected="Annullér" name="Revert" />
+ <text name="Item Action Label">
+ Hår:
+ </text>
+ <texture_picker label="Tekstur" name="Texture" tool_tip="Klik for at vælge et billede"/>
+ <button label="Lav nyt hår" label_selected="Lav nyt hår" name="Create New"/>
+ <button label="Gem" label_selected="Gem" name="Save"/>
+ <button label="Gem som..." label_selected="Gem som..." name="Save As"/>
+ <button label="Annullér" label_selected="Annullér" name="Revert"/>
</panel>
<panel label="Øjne" name="Eyes">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: Kan ikke redigeres
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: indlæser...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: ikke båret
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
Fundet i [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Tag et ny sæt øjne på ved at trække et sæt fra din beholdning
-over på din avatar. Du kan også oprette et nyt sæt øjne fra bunden og bagefter &apos;tage dem på&apos;.
+over på din avatar. Du kan også oprette et nyt sæt øjne fra bunden
+og bagefter &apos;tage dem på&apos;.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Du har ikke rettigheder til at redigere denne del.
</text>
- <texture_picker label="Iris" name="Iris" />
- <button label="Tilfældig" label_selected="Tilfældig" name="Randomize" />
- <button label="Lav nye øjne" label_selected="Lav nye øjne" name="Create New" />
- <button label="Tag af" label_selected="Tag af" name="Take Off" />
- <button label="Gem" label_selected="Gem" name="Save" />
- <button label="Gem som" label_selected="Gem som" name="Save As" />
- <button label="Annullér" label_selected="Annullér" name="Revert" />
+ <text name="Item Action Label">
+ Øjne:
+ </text>
+ <texture_picker label="Iris" name="Iris" tool_tip="Klik for at vælge et billede"/>
+ <button label="Lav nye øjne" label_selected="Lav nye øjne" name="Create New"/>
+ <button label="Gem" label_selected="Gem" name="Save"/>
+ <button label="Gem som..." label_selected="Gem som..." name="Save As"/>
+ <button label="Annullér" label_selected="Annullér" name="Revert"/>
</panel>
- <panel label="Tøje" name="clothes_placeholder" />
+ <panel label="Tøje" name="clothes_placeholder"/>
<panel label="Trøje" name="Shirt">
- <texture_picker label="Stof" name="Fabric" />
- <color_swatch label="Farve" name="Color/Tint" />
- <button label="Lav ny trøje" label_selected="Lav ny trøje" name="Create New" />
- <button label="Tag af" label_selected="Tag af" name="Take Off" />
- <button label="Gem" label_selected="Gem" name="Save" />
- <button label="Gem som" label_selected="Gem som" name="Save As" />
- <button label="Annullér" label_selected="Annullér" name="Revert" />
- <text type="string" length="1" name="title">
+ <texture_picker label="Stof" name="Fabric" tool_tip="Klik for at vælge et billede"/>
+ <color_swatch label="Farve" name="Color/Tint" tool_tip="Klik for at åbne farvevælger"/>
+ <button label="Lav ny trøje" label_selected="Lav ny trøje" name="Create New"/>
+ <button label="Tag af" label_selected="Tag af" name="Take Off"/>
+ <button label="Gem" label_selected="Gem" name="Save"/>
+ <button label="Gem som..." label_selected="Gem som..." name="Save As"/>
+ <button label="Annullér" label_selected="Annullér" name="Revert"/>
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: Kan ikke redigeres
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: indlæser...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: ikke båret
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
Fundet i [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
- Tag en ny Tøje på ved at trække en fra din beholdning
-over på din avatar.
+ <text length="1" name="not worn instructions" type="string">
+ Tag en ny Tøje på ved at trække en fra din beholdning over på din avatar.
Du kan også oprette en ny Tøje fra bunden og bagefter &apos;tage den på&apos;.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Du har ikke rettigheder til at redigere denne del.
</text>
+ <text name="Item Action Label">
+ Trøje:
+ </text>
</panel>
<panel label="Bukser" name="Pants">
- <texture_picker label="Stof" name="Fabric" />
- <color_swatch label="Farve" name="Color/Tint" />
- <button label="Lav nye bukser" label_selected="Lav nye bukser" name="Create New" />
- <button label="Tag af" label_selected="Tag af" name="Take Off" />
- <button label="Gem" label_selected="Gem" name="Save" />
- <button label="Gem som" label_selected="Gem som" name="Save As" />
- <button label="Annullér" label_selected="Annullér" name="Revert" />
- <text type="string" length="1" name="title">
+ <texture_picker label="Stof" name="Fabric" tool_tip="Klik for at vælge et billede"/>
+ <color_swatch label="Farve" name="Color/Tint" tool_tip="Klik for at åbne farvevælger"/>
+ <button label="Lav nye bukser" label_selected="Lav nye bukser" name="Create New"/>
+ <button label="Tag af" label_selected="Tag af" name="Take Off"/>
+ <button label="Gem" label_selected="Gem" name="Save"/>
+ <button label="Gem som..." label_selected="Gem som..." name="Save As"/>
+ <button label="Annullér" label_selected="Annullér" name="Revert"/>
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: Kan ikke redigeres
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: indlæser...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: ikke båret
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
Fundet i [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
- Tag nyr bukser på ved at trække dem fra din beholdning
-over på din avatar.
-Du kan også oprette ny bukser fra bunden og bagefter &apos;tage dem på&apos;.
+ <text length="1" name="not worn instructions" type="string">
+ Tag nyr bukser på ved at trække dem fra din beholdning over på
+din avatar. Du kan også oprette ny bukser fra bunden og bagefter
+&apos;tage dem på&apos;.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Du har ikke rettigheder til at redigere denne del.
</text>
+ <text name="Item Action Label">
+ Bukser:
+ </text>
</panel>
<panel label="Sko" name="Shoes">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: Kan ikke redigeres
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: indlæser...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: ikke båret
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
Fundet i [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Tag et ny par sko på ved at trække dem fra din beholdning
-over på din avatar. Du kan også oprette et nyt par sko fra bunden og bagefter &apos;tage dem på&apos;.
+over på din avatar. Du kan også oprette et nyt par sko fra bunden
+og bagefter &apos;tage dem på&apos;.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Du har ikke rettigheder til at redigere denne del.
</text>
- <texture_picker label="Stof" name="Fabric" />
- <color_swatch label="Farve" name="Color/Tint" />
- <button label="Lav nye sko" label_selected="Lav nye sko" name="Create New" />
- <button label="Tag af" label_selected="Tag af" name="Take Off" />
- <button label="Gem" label_selected="Gem" name="Save" />
- <button label="Gem som" label_selected="Gem som" name="Save As" />
- <button label="Annullér" label_selected="Annullér" name="Revert" />
+ <text name="Item Action Label">
+ Sko:
+ </text>
+ <texture_picker label="Stof" name="Fabric" tool_tip="Klik for at vælge et billede"/>
+ <color_swatch label="Farve" name="Color/Tint" tool_tip="Klik for at åbne farvevælger"/>
+ <button label="Lav nye sko" label_selected="Lav nye sko" name="Create New"/>
+ <button label="Tag af" label_selected="Tag af" name="Take Off"/>
+ <button label="Gem" label_selected="Gem" name="Save"/>
+ <button label="Gem som..." label_selected="Gem som..." name="Save As"/>
+ <button label="Annullér" label_selected="Annullér" name="Revert"/>
</panel>
<panel label="Strømper" name="Socks">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: Kan ikke redigeres
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: indlæser...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: ikke båret
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
Fundet i [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Tag et ny par Strømper på ved at trække dem fra din beholdning
-over på din avatar. Du kan også oprette et nyt par Strømper fra bunden og bagefter &apos;tage dem på&apos;.
+over på din avatar. Du kan også oprette et nyt par Strømper fra bunden
+og bagefter &apos;tage dem på&apos;.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Du har ikke rettigheder til at redigere denne del.
</text>
- <texture_picker label="Stof" name="Fabric" />
- <color_swatch label="Farve" name="Color/Tint" />
- <button label="Lav nye strømper" label_selected="Lav nye strømper" name="Create New" />
- <button label="Tag af" label_selected="Tag af" name="Take Off" />
- <button label="Gem" label_selected="Gem" name="Save" />
- <button label="Gem som" label_selected="Gem som" name="Save As" />
- <button label="Annullér" label_selected="Annullér" name="Revert" />
+ <text name="Item Action Label">
+ Strømper:
+ </text>
+ <texture_picker label="Stof" name="Fabric" tool_tip="Klik for at vælge et billede"/>
+ <color_swatch label="Farve" name="Color/Tint" tool_tip="Klik for at åbne farvevælger"/>
+ <button label="Lav nye strømper" label_selected="Lav nye strømper" name="Create New"/>
+ <button label="Tag af" label_selected="Tag af" name="Take Off"/>
+ <button label="Gem" label_selected="Gem" name="Save"/>
+ <button label="Gem som..." label_selected="Gem som..." name="Save As"/>
+ <button label="Annullér" label_selected="Annullér" name="Revert"/>
</panel>
<panel label="Jakke" name="Jacket">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: Kan ikke redigeres
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: indlæser...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: ikke båret
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
Fundet i [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
- Tag en ny jakke på ved at trække en fra din beholdning
-over på din avatar.
+ <text length="1" name="not worn instructions" type="string">
+ Tag en ny jakke på ved at trække en fra din beholdning over på din avatar.
Du kan også oprette en ny jakke fra bunden og bagefter &apos;tage den på&apos;.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Du har ikke rettigheder til at redigere denne del.
</text>
- <texture_picker label="Stof øverst" name="Upper Fabric" />
- <texture_picker label="Stof nederst" name="Lower Fabric" />
- <color_swatch label="Farve" name="Color/Tint" />
- <button label="Lav ny jakke" label_selected="Lav ny jakke" name="Create New" />
- <button label="Tag af" label_selected="Tag af" name="Take Off" />
- <button label="Gem" label_selected="Gem" name="Save" />
- <button label="Gem som" label_selected="Gem som" name="Save As" />
- <button label="Annullér" label_selected="Annullér" name="Revert" />
+ <text name="Item Action Label">
+ Jakke:
+ </text>
+ <texture_picker label="Stof øverst" name="Upper Fabric" tool_tip="Klik for at vælge et billede"/>
+ <texture_picker label="Stof nederst" name="Lower Fabric" tool_tip="Klik for at vælge et billede"/>
+ <color_swatch label="Farve" name="Color/Tint" tool_tip="Klik for at åbne farvevælger"/>
+ <button label="Lav ny jakke" label_selected="Lav ny jakke" name="Create New"/>
+ <button label="Tag af" label_selected="Tag af" name="Take Off"/>
+ <button label="Gem" label_selected="Gem" name="Save"/>
+ <button label="Gem som..." label_selected="Gem som..." name="Save As"/>
+ <button label="Annullér" label_selected="Annullér" name="Revert"/>
</panel>
<panel label="Handsker" name="Gloves">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: Kan ikke redigeres
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: indlæser...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: ikke båret
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
Fundet i [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
- Tag nye handsker på ved at trække et par fra din beholdning
-over på din avatar.
-Du kan også oprette nye handsker fra bunden og bagefter &apos;tage dem på&apos;.
+ <text length="1" name="not worn instructions" type="string">
+ Tag nye handsker på ved at trække et par fra din beholdning over på
+din avatar. Du kan også oprette nye handsker fra bunden
+og bagefter &apos;tage dem på&apos;.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Du har ikke rettigheder til at redigere denne del.
</text>
- <texture_picker label="Stof" name="Fabric" />
- <color_swatch label="Farve" name="Color/Tint" />
- <button label="Lav nye handsker" label_selected="Lav nye handsker" name="Create New" />
- <button label="Tag af" label_selected="Tag af" name="Take Off" />
- <button label="Gem" label_selected="Gem" name="Save" />
- <button label="Gem som" label_selected="Gem som" name="Save As" />
- <button label="Annullér" label_selected="Annullér" name="Revert" />
+ <text name="Item Action Label">
+ Handsker:
+ </text>
+ <texture_picker label="Stof" name="Fabric" tool_tip="Klik for at vælge et billede"/>
+ <color_swatch label="Farve" name="Color/Tint" tool_tip="Klik for at åbne farvevælger"/>
+ <button label="Lav nye handsker" label_selected="Lav nye handsker" name="Create New"/>
+ <button label="Tag af" label_selected="Tag af" name="Take Off"/>
+ <button label="Gem" label_selected="Gem" name="Save"/>
+ <button label="Gem som..." label_selected="Gem som..." name="Save As"/>
+ <button label="Annullér" label_selected="Annullér" name="Revert"/>
</panel>
<panel label="Undertrøje" name="Undershirt">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: Kan ikke redigeres
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: indlæser...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: ikke båret
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
Fundet i [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
- Tag en ny undertrøje på ved at trække en fra din beholdning
-over på din avatar.
-Du kan også oprette en ny undertrøje fra bunden og bagefter &apos;tage den på&apos;.
+ <text length="1" name="not worn instructions" type="string">
+ Tag en ny undertrøje på ved at trække en fra din beholdning over på
+din avatar. Du kan også oprette en ny undertrøje fra bunden
+og bagefter &apos;tage den på&apos;.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Du har ikke rettigheder til at redigere denne del.
</text>
- <texture_picker label="Stof" name="Fabric" />
- <color_swatch label="Farve" name="Color/Tint" />
- <button label="Lav ny undertrøje" label_selected="Lav ny undertrøje" name="Create New" />
- <button label="Tag af" label_selected="Tag af" name="Take Off" />
- <button label="Gem" label_selected="Gem" name="Save" />
- <button label="Gem som" label_selected="Gem som" name="Save As" />
- <button label="Annullér" label_selected="Annullér" name="Revert" />
+ <text name="Item Action Label">
+ Undertrøje:
+ </text>
+ <texture_picker label="Stof" name="Fabric" tool_tip="Klik for at vælge et billede"/>
+ <color_swatch label="Farve" name="Color/Tint" tool_tip="Klik for at åbne farvevælger"/>
+ <button label="Lav ny undertrøje" label_selected="Lav ny undertrøje" name="Create New"/>
+ <button label="Tag af" label_selected="Tag af" name="Take Off"/>
+ <button label="Gem" label_selected="Gem" name="Save"/>
+ <button label="Gem som..." label_selected="Gem som..." name="Save As"/>
+ <button label="Annullér" label_selected="Annullér" name="Revert"/>
</panel>
<panel label="Underbukser" name="Underpants">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: Kan ikke redigeres
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: indlæser...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: ikke båret
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
Fundet i [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
- Tag nye underbukser på ved at trække dem fra din beholdning
-over på din avatar.
-Du kan også oprette en par nye underbukser fra bunden og bagefter &apos;tage dem på&apos;.
+ <text length="1" name="not worn instructions" type="string">
+ Tag nye underbukser på ved at trække dem fra din beholdning over på
+din avatar. Du kan også oprette en par nye underbukser fra bunden
+og bagefter &apos;tage dem på&apos;.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Du har ikke rettigheder til at redigere denne del.
</text>
- <texture_picker label="Stof" name="Fabric" />
- <color_swatch label="Farve" name="Color/Tint" />
- <button label="Lav nye underbukser" label_selected="Lav nye underbukser" name="Create New" />
- <button label="Tag af" label_selected="Tag af" name="Take Off" />
- <button label="Gem" label_selected="Gem" name="Save" />
- <button label="Gem som" label_selected="Gem som" name="Save As" />
- <button label="Annullér" label_selected="Annullér" name="Revert" />
+ <text name="Item Action Label">
+ Underbukser:
+ </text>
+ <texture_picker label="Stof" name="Fabric" tool_tip="Klik for at vælge et billede"/>
+ <color_swatch label="Farve" name="Color/Tint" tool_tip="Klik for at åbne farvevælger"/>
+ <button label="Lav nye underbukser" label_selected="Lav nye underbukser" name="Create New"/>
+ <button label="Tag af" label_selected="Tag af" name="Take Off"/>
+ <button label="Gem" label_selected="Gem" name="Save"/>
+ <button label="Gem som..." label_selected="Gem som..." name="Save As"/>
+ <button label="Annullér" label_selected="Annullér" name="Revert"/>
</panel>
<panel label="Nederdel" name="Skirt">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: Kan ikke redigeres
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: indlæser...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: ikke båret
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
Fundet i [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
- Tag en ny nederdel på ved at trække en fra din beholdning
-over på din avatar.
-Du kan også oprette en ny nederdel fra bunden og bagefter &apos;tage den på&apos;.
+ <text length="1" name="not worn instructions" type="string">
+ Tag en ny nederdel på ved at trække en fra din beholdning over på
+din avatar. Du kan også oprette en ny nederdel fra bunden
+og bagefter &apos;tage den på&apos;.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Du har ikke rettigheder til at redigere denne del.
</text>
- <texture_picker label="Stof" name="Fabric" />
- <color_swatch label="Farve" name="Color/Tint" />
- <button label="Lav ny nederdel" label_selected="Lav ny nederdel" name="Create New" />
- <button label="Tag af" label_selected="Tag af" name="Take Off" />
- <button label="Gem" label_selected="Gem" name="Save" />
- <button label="Gem som" label_selected="Gem som" name="Save As" />
- <button label="Annullér" label_selected="Annullér" name="Revert" />
+ <text name="Item Action Label">
+ Nederdel:
+ </text>
+ <texture_picker label="Stof" name="Fabric" tool_tip="Klik for at vælge et billede"/>
+ <color_swatch label="Farve" name="Color/Tint" tool_tip="Klik for at åbne farvevælger"/>
+ <button label="Lav ny nederdel" label_selected="Lav ny nederdel" name="Create New"/>
+ <button label="Tag af" label_selected="Tag af" name="Take Off"/>
+ <button label="Gem" label_selected="Gem" name="Save"/>
+ <button label="Gem som..." label_selected="Gem som..." name="Save As"/>
+ <button label="Annullér" label_selected="Annullér" name="Revert"/>
</panel>
</tab_container>
- <button label="Luk" label_selected="Luk" name="Close" />
- <button label="Gem alt" label_selected="Gem alt" name="Save All" />
- <button label="Opret sæt" label_selected="Opret sæt" name="Make Outfit" />
+ <scroll_container left="212" name="panel_container"/>
+ <button label="Annullér" label_selected="Annullér" name="Cancel"/>
+ <button label="OK" label_selected="OK" name="Ok"/>
+ <button label="Opret sæt..." label_selected="Opret sæt..." name="Make Outfit"/>
</floater>
diff --git a/indra/newview/skins/default/xui/da/floater_env_settings.xml b/indra/newview/skins/default/xui/da/floater_env_settings.xml
index 1a0dea790b..04b804b362 100644
--- a/indra/newview/skins/default/xui/da/floater_env_settings.xml
+++ b/indra/newview/skins/default/xui/da/floater_env_settings.xml
@@ -1,26 +1,26 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="Environment Editor Floater" title="Redigering af omgivelser">
- <text type="string" length="1" name="EnvTimeText">
- Tid på dagen
- </text>
- <text type="string" length="1" name="EnvTimeText2">
- 00:00
- </text>
- <slider label="" name="EnvTimeSlider" />
- <text type="string" length="1" name="EnvCloudText">
- Skydække
- </text>
- <slider label="" name="EnvCloudSlider" />
- <text type="string" length="1" name="EnvWaterColorText">
- Farve på vand
- </text>
- <color_swatch label="" name="EnvWaterColor" tool_tip="Klik for at åbne farvevælger" />
- <text type="string" length="1" name="EnvWaterFogText">
- Tåge på vand
- </text>
- <slider label="" name="EnvWaterFogSlider" />
- <button label="Benyt tid fra estate" name="EnvUseEstateTimeButton" />
- <button label="Avanceret himmel" name="EnvAdvancedSkyButton" />
- <button label="Avanceret vand" name="EnvAdvancedWaterButton" />
- <button label="?" name="EnvSettingsHelpButton" />
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater name="Environment Editor Floater" title="Redigering af omgivelser">
+ <text type="string" length="1" name="EnvTimeText">
+ Tid på dagen
+ </text>
+ <text type="string" length="1" name="EnvTimeText2">
+ 00:00
+ </text>
+ <slider label="" name="EnvTimeSlider" />
+ <text type="string" length="1" name="EnvCloudText">
+ Skydække
+ </text>
+ <slider label="" name="EnvCloudSlider" />
+ <text type="string" length="1" name="EnvWaterColorText">
+ Farve på vand
+ </text>
+ <color_swatch label="" name="EnvWaterColor" tool_tip="Klik for at åbne farvevælger" />
+ <text type="string" length="1" name="EnvWaterFogText">
+ Tåge på vand
+ </text>
+ <slider label="" name="EnvWaterFogSlider" />
+ <button label="Benyt tid fra estate" name="EnvUseEstateTimeButton" />
+ <button label="Avanceret himmel" name="EnvAdvancedSkyButton" />
+ <button label="Avanceret vand" name="EnvAdvancedWaterButton" />
+ <button label="?" name="EnvSettingsHelpButton" />
+</floater>
diff --git a/indra/newview/skins/default/xui/da/floater_gesture.xml b/indra/newview/skins/default/xui/da/floater_gesture.xml
index c8ea010ea9..800693ea8c 100644
--- a/indra/newview/skins/default/xui/da/floater_gesture.xml
+++ b/indra/newview/skins/default/xui/da/floater_gesture.xml
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="gestures" title="Aktive bevægelser">
- <text name="help_label">
- Dobbelt-klik på en bevægelse for at afspille animation og lyd.
- </text>
- <scroll_list name="gesture_list">
- <column label="Genvej" name="trigger" />
- <column label="Taste" name="shortcut" />
- <column label="" name="key" />
- <column label="Navn" name="name" />
- </scroll_list>
- <button label="Ny" name="new_gesture_btn" />
- <button label="Redigér" name="edit_btn" />
- <button label="Afspil" name="play_btn" />
- <button label="Stop" name="stop_btn" />
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater name="gestures" title="Aktive bevægelser">
+ <text name="help_label">
+ Dobbelt-klik på en bevægelse for at afspille animation og lyd.
+ </text>
+ <scroll_list name="gesture_list">
+ <column label="Genvej" name="trigger" />
+ <column label="Taste" name="shortcut" />
+ <column label="" name="key" />
+ <column label="Navn" name="name" />
+ </scroll_list>
+ <button label="Ny" name="new_gesture_btn" />
+ <button label="Redigér" name="edit_btn" />
+ <button label="Afspil" name="play_btn" />
+ <button label="Stop" name="stop_btn" />
+</floater>
diff --git a/indra/newview/skins/default/xui/da/floater_hardware_settings.xml b/indra/newview/skins/default/xui/da/floater_hardware_settings.xml
index 41688ec4f9..488660853f 100644
--- a/indra/newview/skins/default/xui/da/floater_hardware_settings.xml
+++ b/indra/newview/skins/default/xui/da/floater_hardware_settings.xml
@@ -1,30 +1,30 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="Hardware Settings Floater" title="Hardware opsætning">
- <text type="string" length="1" name="Filtering:">
- Filtrering:
- </text>
- <check_box label="Anisotropic filtrering (langsommere når aktiveret)" name="ani" />
- <text type="string" length="1" name="Antialiasing:">
- Antialiasing:
- </text>
- <combo_box label="Antialiasing" name="fsaa">
- <combo_box.item name="FSAADisabled" label="Slået fra"/>
- <combo_box.item name="2x" label="2x"/>
- <combo_box.item name="4x" label="4x"/>
- <combo_box.item name="8x" label="8x"/>
- <combo_box.item name="16x" label="16x"/>
- </combo_box>
- <spinner label="Gamma:" name="gamma" />
- <text type="string" length="1" name="(brightness, lower is brighter)">
- (Lysstyrke, lavere er lysere, 0=benyt standard)
- </text>
- <text type="string" length="1" name="Enable VBO:">
- Aktivér VBO:
- </text>
- <check_box label="Aktivér OpenGL Vertex Buffer objekter" name="vbo"
- tool_tip="Aktivér af dette på nyere hardware giver performance forbedring. På ældre hardware kan aktivering medfø nedbrud." />
- <slider label="Tekstur hukommelse (MB):" name="GrapicsCardTextureMemory"
- tool_tip="Mængde hukommelse der skal allokeres til teksturer (textures). Standardindstilling er hukommelse på grafikkortet. Reduktion kan medfø bedre ydeevne, men kan samtidig gøre teksturer mere udflydende." />
- <spinner label="Tåge: afstandsforhold:" name="fog" />
- <button label="OK" label_selected="OK" name="OK" />
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater name="Hardware Settings Floater" title="Hardware opsætning">
+ <text type="string" length="1" name="Filtering:">
+ Filtrering:
+ </text>
+ <check_box label="Anisotropic filtrering (langsommere når aktiveret)" name="ani" />
+ <text type="string" length="1" name="Antialiasing:">
+ Antialiasing:
+ </text>
+ <combo_box label="Antialiasing" name="fsaa" width="100">
+ <combo_box.item name="FSAADisabled" label="Slået fra"/>
+ <combo_box.item name="2x" label="2x"/>
+ <combo_box.item name="4x" label="4x"/>
+ <combo_box.item name="8x" label="8x"/>
+ <combo_box.item name="16x" label="16x"/>
+ </combo_box>
+ <spinner label="Gamma:" name="gamma" />
+ <text type="string" length="1" name="(brightness, lower is brighter)">
+ (Lysstyrke, lavere er lysere, 0=benyt standard)
+ </text>
+ <text type="string" length="1" name="Enable VBO:">
+ Aktivér VBO:
+ </text>
+ <check_box label="Aktivér OpenGL Vertex Buffer objekter" name="vbo"
+ tool_tip="Aktivér af dette på nyere hardware giver performance forbedring. På ældre hardware kan aktivering medfø nedbrud." />
+ <slider label="Tekstur hukommelse (MB):" name="GrapicsCardTextureMemory"
+ tool_tip="Mængde hukommelse der skal allokeres til teksturer (textures). Standardindstilling er hukommelse på grafikkortet. Reduktion kan medfø bedre ydeevne, men kan samtidig gøre teksturer mere udflydende." />
+ <spinner label="Tåge: afstandsforhold:" name="fog" />
+ <button label="OK" label_selected="OK" name="OK" />
+</floater>
diff --git a/indra/newview/skins/default/xui/da/floater_hud.xml b/indra/newview/skins/default/xui/da/floater_hud.xml
index adf9cae60a..0f11e2346d 100644
--- a/indra/newview/skins/default/xui/da/floater_hud.xml
+++ b/indra/newview/skins/default/xui/da/floater_hud.xml
@@ -1,2 +1,2 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="floater_hud" title="Tutorial" />
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater name="floater_hud" title="Tutorial" />
diff --git a/indra/newview/skins/default/xui/da/floater_im.xml b/indra/newview/skins/default/xui/da/floater_im.xml
index ced5118eef..0b42b78706 100644
--- a/indra/newview/skins/default/xui/da/floater_im.xml
+++ b/indra/newview/skins/default/xui/da/floater_im.xml
@@ -1,45 +1,45 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<multi_floater name="im_floater" title="Personlig samtale (IM)">
- <string name="only_user_message">
- Du er den eneste deltager i denne samtale
- </string>
- <string name="offline_message">
- [FIRST] [LAST] er ikke logget på.
- </string>
- <string name="invite_message">
- Tryk på [BUTTON NAME] knappen for at acceptére/tilslutte til denne stemme chat.
- </string>
- <string name="muted_message">
- Du har blokeret denne beboer. Hvis du starter en samtale vil denne blokering automatisk blive fjernet.
- </string>
- <string name="generic_request_error">
- Kunne ikke etablere forbindelse, prøv igen senere
- </string>
- <string name="insufficient_perms_error">
- Du har ikke de fornødne rettigheder.
- </string>
- <string name="session_does_not_exist_error">
- Denne samtale er lukket ned
- </string>
- <string name="no_ability_error">
- Du har ikke den mulighed.
- </string>
- <string name="not_a_mod_error">
- Du er ikke moderator for denne samtale.
- </string>
- <string name="muted_error">
- Du er blevet &quot;blokeret&quot;.
- </string>
- <string name="add_session_event">
- Ikke muligt at tilføge brugere til samtale med [RECIPIENT].
- </string>
- <string name="message_session_event">
- Ikke muligt at sende din besked til samtalen med [RECIPIENT].
- </string>
- <string name="removed_from_group">
- Du er blevet fjernet fra gruppen.
- </string>
- <string name="close_on_no_ability">
- Du har ikke længere mulighed for at deltage i samtalen
- </string>
-</multi_floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<multi_floater name="im_floater" title="Personlig samtale (IM)">
+ <string name="only_user_message">
+ Du er den eneste deltager i denne samtale
+ </string>
+ <string name="offline_message">
+ [FIRST] [LAST] er ikke logget på.
+ </string>
+ <string name="invite_message">
+ Tryk på [BUTTON NAME] knappen for at acceptére/tilslutte til denne stemme chat.
+ </string>
+ <string name="muted_message">
+ Du har blokeret denne beboer. Hvis du starter en samtale vil denne blokering automatisk blive fjernet.
+ </string>
+ <string name="generic_request_error">
+ Kunne ikke etablere forbindelse, prøv igen senere
+ </string>
+ <string name="insufficient_perms_error">
+ Du har ikke de fornødne rettigheder.
+ </string>
+ <string name="session_does_not_exist_error">
+ Denne samtale er lukket ned
+ </string>
+ <string name="no_ability_error">
+ Du har ikke den mulighed.
+ </string>
+ <string name="not_a_mod_error">
+ Du er ikke moderator for denne samtale.
+ </string>
+ <string name="muted_error">
+ Du er blevet &quot;blokeret&quot;.
+ </string>
+ <string name="add_session_event">
+ Ikke muligt at tilføge brugere til samtale med [RECIPIENT].
+ </string>
+ <string name="message_session_event">
+ Ikke muligt at sende din besked til samtalen med [RECIPIENT].
+ </string>
+ <string name="removed_from_group">
+ Du er blevet fjernet fra gruppen.
+ </string>
+ <string name="close_on_no_ability">
+ Du har ikke længere mulighed for at deltage i samtalen
+ </string>
+</multi_floater>
diff --git a/indra/newview/skins/default/xui/da/floater_image_preview.xml b/indra/newview/skins/default/xui/da/floater_image_preview.xml
index 23218052fc..345c9aa6d1 100644
--- a/indra/newview/skins/default/xui/da/floater_image_preview.xml
+++ b/indra/newview/skins/default/xui/da/floater_image_preview.xml
@@ -1,32 +1,32 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="Image Preview" title="">
- <text name="name_label">
- Navn:
- </text>
- <text name="description_label">
- Beskrivelse:
- </text>
- <text name="preview_label">
- Se billede som:
- </text>
- <combo_box label="Tøj type" name="clothing_type_combo">
- <combo_box.item name="Image" label="Billede"/>
- <combo_box.item name="Hair" label="Hår"/>
- <combo_box.item name="FemaleHead" label="Kvinde - hoved"/>
- <combo_box.item name="FemaleUpperBody" label="Kvinde - overkrop"/>
- <combo_box.item name="FemaleLowerBody" label="Kvinde - underkrop"/>
- <combo_box.item name="MaleHead" label="Mand - hoved"/>
- <combo_box.item name="MaleUpperBody" label="Mand - overkrop"/>
- <combo_box.item name="MaleLowerBody" label="Mand - underkrop"/>
- <combo_box.item name="Skirt" label="Nederdel"/>
- <combo_box.item name="SculptedPrim" label="Sculpted prim"/>
- </combo_box>
- <text name="bad_image_text">
- Kunne ikke læse billede.
-
-Prøv at gemme billede som en 24 bit Targa fil (.tga).
- </text>
- <check_box label="Benyt komprimering uden tab" name="lossless_check" />
- <button label="Annullér" name="cancel_btn" />
- <button label="Hent (L$[AMOUNT])" name="ok_btn" />
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater name="Image Preview" title="">
+ <text name="name_label">
+ Navn:
+ </text>
+ <text name="description_label">
+ Beskrivelse:
+ </text>
+ <text name="preview_label">
+ Se billede som:
+ </text>
+ <combo_box label="Tøj type" name="clothing_type_combo">
+ <combo_box.item name="Image" label="Billede"/>
+ <combo_box.item name="Hair" label="Hår"/>
+ <combo_box.item name="FemaleHead" label="Kvinde - hoved"/>
+ <combo_box.item name="FemaleUpperBody" label="Kvinde - overkrop"/>
+ <combo_box.item name="FemaleLowerBody" label="Kvinde - underkrop"/>
+ <combo_box.item name="MaleHead" label="Mand - hoved"/>
+ <combo_box.item name="MaleUpperBody" label="Mand - overkrop"/>
+ <combo_box.item name="MaleLowerBody" label="Mand - underkrop"/>
+ <combo_box.item name="Skirt" label="Nederdel"/>
+ <combo_box.item name="SculptedPrim" label="Sculpted prim"/>
+ </combo_box>
+ <text name="bad_image_text">
+ Kunne ikke læse billede.
+
+Prøv at gemme billede som en 24 bit Targa fil (.tga).
+ </text>
+ <check_box label="Benyt komprimering uden tab" name="lossless_check" />
+ <button label="Annullér" name="cancel_btn" />
+ <button label="Hent (L$[AMOUNT])" name="ok_btn" />
+</floater>
diff --git a/indra/newview/skins/default/xui/da/floater_inspect.xml b/indra/newview/skins/default/xui/da/floater_inspect.xml
index 68ff50cc74..8361733e23 100644
--- a/indra/newview/skins/default/xui/da/floater_inspect.xml
+++ b/indra/newview/skins/default/xui/da/floater_inspect.xml
@@ -1,13 +1,13 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="inspect" >
- <scroll_list name="object_list" tool_tip="Vælg et objekt fra listen for at markere det">
- <column label="Objekt navn" name="object_name" />
- <column label="Objekt ejer" name="owner_name" />
- <column label="Bygget af" name="creator_name" />
- <column label="Lavet den " name="creation_date" />
- </scroll_list>
- <button label="Se profil for ejer..." label_selected="" name="button owner"
- tool_tip="Se profilen for ejeren af det markerede objekt på listen" />
- <button label="Se profil for bygger..." label_selected="" name="button creator"
- tool_tip="Se profilen for den beboer der har bygget det markerede objekt på listen" />
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater name="inspect" >
+ <scroll_list name="object_list" tool_tip="Vælg et objekt fra listen for at markere det">
+ <column label="Objekt navn" name="object_name" />
+ <column label="Objekt ejer" name="owner_name" />
+ <column label="Bygget af" name="creator_name" />
+ <column label="Lavet den " name="creation_date" />
+ </scroll_list>
+ <button label="Se profil for ejer..." label_selected="" name="button owner"
+ tool_tip="Se profilen for ejeren af det markerede objekt på listen" />
+ <button label="Se profil for bygger..." label_selected="" name="button creator"
+ tool_tip="Se profilen for den beboer der har bygget det markerede objekt på listen" />
+</floater>
diff --git a/indra/newview/skins/default/xui/da/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/da/floater_inventory_item_properties.xml
index 96039c8444..9f28440fb0 100644
--- a/indra/newview/skins/default/xui/da/floater_inventory_item_properties.xml
+++ b/indra/newview/skins/default/xui/da/floater_inventory_item_properties.xml
@@ -60,12 +60,8 @@
</text>
<check_box label="Til salg" name="CheckPurchase" />
<radio_group name="RadioSaleType">
- <radio_item name="radio">
- Original
- </radio_item>
- <radio_item name="radio2">
- Kopi
- </radio_item>
+ <radio_item name="radio" label="Original" />
+ <radio_item name="radio2" label="Kopi" />
</radio_group>
<text name="TextPrice">
Pris: L$
diff --git a/indra/newview/skins/default/xui/da/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/da/floater_inventory_view_finder.xml
index 29d9f7c0c4..8eb39f2f79 100644
--- a/indra/newview/skins/default/xui/da/floater_inventory_view_finder.xml
+++ b/indra/newview/skins/default/xui/da/floater_inventory_view_finder.xml
@@ -1,24 +1,24 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="Inventory Finder" title="inventory_recent_items">
- <check_box label="Animation" name="check_animation" />
- <check_box label="Visitkort" name="check_calling_card" />
- <check_box label="Tøj" name="check_clothing" />
- <check_box label="Bevægelser" name="check_gesture" />
- <check_box label="Landemærke" name="check_landmark" />
- <check_box label="Note" name="check_notecard" />
- <check_box label="Objekter" name="check_object" />
- <check_box label="Scripts" name="check_script" />
- <check_box label="Lyde" name="check_sound" />
- <check_box label="Teksturer" name="check_texture" />
- <check_box label="Foto&apos;s" name="check_snapshot" />
- <button label="Alle" label_selected="Alle" name="All" />
- <button label="Ingen" label_selected="Ingen" name="None" />
- <check_box label="Vis altid mapper" name="check_show_empty" />
- <check_box label="Siden sidste logoff" name="check_since_logoff" />
- <text type="string" length="1" name="- OR -">
- - ELLER -
- </text>
- <spinner label="Timer siden" name="spin_hours_ago" />
- <spinner label="Dage siden" name="spin_days_ago" />
- <button label="Luk" label_selected="Luk" name="Close" />
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater name="Inventory Finder" title="inventory_recent_items">
+ <check_box label="Animation" name="check_animation" />
+ <check_box label="Visitkort" name="check_calling_card" />
+ <check_box label="Tøj" name="check_clothing" />
+ <check_box label="Bevægelser" name="check_gesture" />
+ <check_box label="Landemærke" name="check_landmark" />
+ <check_box label="Note" name="check_notecard" />
+ <check_box label="Objekter" name="check_object" />
+ <check_box label="Scripts" name="check_script" />
+ <check_box label="Lyde" name="check_sound" />
+ <check_box label="Teksturer" name="check_texture" />
+ <check_box label="Foto&apos;s" name="check_snapshot" />
+ <button label="Alle" label_selected="Alle" name="All" />
+ <button label="Ingen" label_selected="Ingen" name="None" />
+ <check_box label="Vis altid mapper" name="check_show_empty" />
+ <check_box label="Siden sidste logoff" name="check_since_logoff" />
+ <text type="string" length="1" name="- OR -">
+ - ELLER -
+ </text>
+ <spinner label="Timer siden" name="spin_hours_ago" />
+ <spinner label="Dage siden" name="spin_days_ago" />
+ <button label="Luk" label_selected="Luk" name="Close" />
+</floater>
diff --git a/indra/newview/skins/default/xui/da/floater_mem_leaking.xml b/indra/newview/skins/default/xui/da/floater_mem_leaking.xml
index 71aaa91996..6d5b5bc0ce 100644
--- a/indra/newview/skins/default/xui/da/floater_mem_leaking.xml
+++ b/indra/newview/skins/default/xui/da/floater_mem_leaking.xml
@@ -1,18 +1,18 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="MemLeak" title="Memory Leaking Simulation">
- <spinner label="Leaking Speed (bytes per frame):" name="leak_speed" />
- <spinner label="Max Leaked Memory (MB):" name="max_leak" />
- <text name="total_leaked_label">
- Current leaked memory: [SIZE] KB
- </text>
- <text name="note_label_1">
- [NOTE1]
- </text>
- <text name="note_label_2">
- [NOTE2]
- </text>
- <button label="Start" name="start_btn" />
- <button label="Stop" name="stop_btn" />
- <button label="Slip" name="release_btn" />
- <button label="Luk" name="close_btn" />
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater name="MemLeak" title="Memory Leaking Simulation">
+ <spinner label="Leaking Speed (bytes per frame):" name="leak_speed" />
+ <spinner label="Max Leaked Memory (MB):" name="max_leak" />
+ <text name="total_leaked_label">
+ Current leaked memory: [SIZE] KB
+ </text>
+ <text name="note_label_1">
+ [NOTE1]
+ </text>
+ <text name="note_label_2">
+ [NOTE2]
+ </text>
+ <button label="Start" name="start_btn" />
+ <button label="Stop" name="stop_btn" />
+ <button label="Slip" name="release_btn" />
+ <button label="Luk" name="close_btn" />
+</floater>
diff --git a/indra/newview/skins/default/xui/da/floater_preview_gesture.xml b/indra/newview/skins/default/xui/da/floater_preview_gesture.xml
index cf3445e1a6..0053cb852f 100644
--- a/indra/newview/skins/default/xui/da/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/da/floater_preview_gesture.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="gesture_preview">
<string name="stop_txt">
Stop
@@ -15,42 +15,42 @@
<text name="trigger_label">
Udløser:
</text>
- <text name="replace_text"
- tool_tip="Replace the trigger word(s) with these words. For example, trigger &apos;hello&apos; replace with &apos;howdy&apos; will turn the chat &apos;I wanted to say hello&apos; into &apos;I wanted to say howdy&apos; as well as playing the gesture!">
+ <text name="replace_text" tool_tip="Replace the trigger word(s) with these words. For example, trigger &apos;hello&apos; replace with &apos;howdy&apos; will turn the chat &apos;I wanted to say hello&apos; into &apos;I wanted to say howdy&apos; as well as playing the gesture!">
Erstat med:
</text>
- <line_editor name="replace_editor"
- tool_tip="Replace the trigger word(s) with these words. For example, trigger &apos;hello&apos; replace with &apos;howdy&apos; will turn the chat &apos;I wanted to say hello&apos; into &apos;I wanted to say howdy&apos; as well as playing the gesture" />
+ <line_editor name="replace_editor" tool_tip="Replace the trigger word(s) with these words. For example, trigger &apos;hello&apos; replace with &apos;howdy&apos; will turn the chat &apos;I wanted to say hello&apos; into &apos;I wanted to say howdy&apos; as well as playing the gesture"/>
<text name="key_label">
Genvejstast:
</text>
- <combo_box label="Ingen" name="modifier_combo" />
- <combo_box label="Ingen" name="key_combo" />
+ <combo_box label="Ingen" name="modifier_combo" width="60"/>
+ <combo_box label="Ingen" name="key_combo" left_delta="70" width="60"/>
<text name="library_label">
Type:
</text>
<text name="steps_label">
Trin:
</text>
- <button label="Tilføj &gt;&gt;" name="add_btn" />
- <button label="Flyt op" name="up_btn" />
- <button label="Flyt ned" name="down_btn" />
- <button label="Fjern" name="delete_btn" />
+ <scroll_list name="library_list">
+ Animation
+Lyd
+Chat
+Vent
+ </scroll_list>
+ <button label="Tilføj &gt;&gt;" name="add_btn"/>
+ <button label="Flyt op" name="up_btn"/>
+ <button label="Flyt ned" name="down_btn"/>
+ <button label="Fjern" name="delete_btn"/>
<text name="help_label">
Alle trin vil ske samtidigt,
medmindre du tilføjer vente trin.
</text>
<radio_group name="animation_trigger_type">
- <radio_item name="start">
- Start
- </radio_item>
- <radio_item name="stop">
- Stop
- </radio_item>
+ <radio_item name="start" label="Start" />
+ <radio_item name="stop" label="Stop" />
</radio_group>
- <check_box label="Indtil animation er færdig" name="wait_anim_check" />
- <check_box label="tid i sekunder" name="wait_time_check" />
- <check_box label="Aktiv" name="active_check" />
- <button label="Vis" name="preview_btn" />
- <button label="Gem" name="save_btn" />
+ <check_box label="Indtil animation er færdig" name="wait_anim_check"/>
+ <check_box label="tid i sekunder" name="wait_time_check"/>
+ <check_box label="Aktiv" name="active_check" tool_tip="Aktive bevægelser kan blive aktiveret ved at skrive deress udløser tekst eller ved at trykke på genvejstaste. Bevægelser vil normalt være inaktive hvis der allerede findes en tilsvarende genvejstaste."/>
+ <button label="Vis" name="preview_btn"/>
+ <button label="Gem" name="save_btn"/>
</floater>
diff --git a/indra/newview/skins/default/xui/da/floater_region_info.xml b/indra/newview/skins/default/xui/da/floater_region_info.xml
index 306d566b02..9f6e326cf3 100644
--- a/indra/newview/skins/default/xui/da/floater_region_info.xml
+++ b/indra/newview/skins/default/xui/da/floater_region_info.xml
@@ -1,2 +1,2 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="regioninfo" title="Region/Estate" />
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater name="regioninfo" title="Region/Estate" />
diff --git a/indra/newview/skins/default/xui/da/floater_report_abuse.xml b/indra/newview/skins/default/xui/da/floater_report_abuse.xml
index 688aa8adc5..804051e62c 100644
--- a/indra/newview/skins/default/xui/da/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/da/floater_report_abuse.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="floater_report_abuse" title="Rapportér misbrug">
- <texture_picker label="" name="screenshot" />
- <check_box label="Inkludér billede" name="screen_check" />
+ <texture_picker label="" name="screenshot"/>
+ <check_box label="Inkludér billede" name="screen_check"/>
<text name="reporter_title">
Anmelder:
</text>
@@ -23,28 +23,26 @@
<text name="select_object_label">
Klik på knappen derefter objektet:
</text>
- <button label="" label_selected="" name="pick_btn"
- tool_tip="Objekt vælger - Identificér et objekt denne rapport omhandler" />
+ <button label="" label_selected="" name="pick_btn" tool_tip="Objekt vælger - Identificér et objekt denne rapport omhandler"/>
<text name="object_name_label">
Navn:
</text>
- <text name="object_name">
+ <text name="object_name" left_delta="64" width="140">
Consetetur Sadipscing
</text>
<text name="owner_name_label">
Ejer:
</text>
- <text name="owner_name">
+ <text name="owner_name" left_delta="64">
Hendrerit Vulputate
</text>
- <combo_box name="category_combo"
- tool_tip="Kategori -- Vælg en kategori der passer bedst på denne rapport">
+ <combo_box name="category_combo" tool_tip="Kategori -- Vælg en kategori der passer bedst på denne rapport">
<combo_box.item name="Select_category" label="Vælg kategori"/>
<combo_box.item name="Age__Age_play" label="Alder &gt; Falsk alder"/>
<combo_box.item name="Age__Adult_resident_on_Teen_Second_Life" label="Alder &gt; Voksen beboer på Teen Second Life"/>
-
-
-
+ <combo_item name="Age__Underage_resident_outside_of_Teen_Second_Life">
+ Alder &gt; Mindreårig beboer udenfor Teen Second Life
+ </combo_item>
<combo_box.item name="Assault__Combat_sandbox___unsafe_area" label="Overfald &gt; Kamp sandkasse / Usikkert område"/>
<combo_box.item name="Assault__Safe_area" label="Overfald &gt; Sikkert område"/>
<combo_box.item name="Assault__Weapons_testing_sandbox" label="Overfald &gt; Sandkasse til våbentest"/>
@@ -68,13 +66,13 @@
<combo_box.item name="Harassment__Solicting_inciting_others_to_violate_ToS" label="Chikane &gt; Opfordrer/kræver at andre overtræder licensbetingelser"/>
<combo_box.item name="Harassment__Verbal_abuse" label="Chikane &gt; Verbalt chikane"/>
<combo_box.item name="Indecency__Broadly_offensive_content_or_conduct" label="Uanstændighed &gt; Meget stødende indhold eller adfærd"/>
-
-
-
<combo_box.item name="Indecency__Inappropriate_avatar_name" label="Uanstændighed &gt; Upassende avatar navn"/>
-
-
-
+ <combo_item name="Indecency__Mature_content_in_PG_region">
+ Usømmelighed &gt; Upassende inhold eller opførsel i en &apos;PG&apos; region
+ </combo_item>
+ <combo_item name="Indecency__Inappropriate_content_in_Mature_region">
+ Usømmelighed &gt; Upassende inhold eller opførsel i en &apos;Mature&apos; region
+ </combo_item>
<combo_box.item name="Intellectual_property_infringement_Content_Removal" label="Krænkelse af intellektuelle ejendomsrettigheder &gt; Indholds fjernelse"/>
<combo_box.item name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit" label="Krænkelse af intellektuelle ejendomsrettigheder &gt; CopyBot eller omgåelse af rettighedsbeskyttelse"/>
<combo_box.item name="Intolerance" label="Intolerance"/>
@@ -88,10 +86,8 @@
<text name="abuser_name_title">
Udøvers navn:
</text>
- <button label="Vælg beboer" label_selected="" name="select_abuser"
- tool_tip="Vælg navnet på udøveren fra denne liste" />
- <check_box label="Kender ikke udøvers navn" name="omit_abuser_name"
- tool_tip="Afkryds her, hvis du ikke kender navn på udøvers" />
+ <button label="Vælg beboer" label_selected="" name="select_abuser" tool_tip="Vælg navnet på udøveren fra denne liste"/>
+ <check_box label="Kender ikke udøvers navn" name="omit_abuser_name" tool_tip="Afkryds her, hvis du ikke kender navn på udøvers"/>
<text name="abuser_name_title2">
Sted for misbrug/overgreb:
</text>
@@ -102,11 +98,12 @@
Detaljer:
</text>
<text name="bug_aviso">
- Vær venligst præcis omkring dato, sted, overgrebets natur, relevant chat/IM og vælg objekt hvis muligt.
+ Vær venligst præcis omkring dato, sted, overgrebets
+natur, relevant chat/IM og vælg objekt hvis muligt.
</text>
<text name="incomplete_title">
Note: Ufuldstændige rapporter vil ikke blive undersøgt.
</text>
- <button label="Annullér" label_selected="Annullér" name="cancel_btn" />
- <button label="Rapporter misbrug" label_selected="Rapporter misbrug" name="send_btn" />
+ <button label="Annullér" label_selected="Annullér" name="cancel_btn"/>
+ <button label="Rapporter misbrug" label_selected="Rapporter misbrug" name="send_btn"/>
</floater>
diff --git a/indra/newview/skins/default/xui/da/floater_sell_land.xml b/indra/newview/skins/default/xui/da/floater_sell_land.xml
index 6793af0d2a..fc88b3d49a 100644
--- a/indra/newview/skins/default/xui/da/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/da/floater_sell_land.xml
@@ -46,12 +46,8 @@
Dine objekter der kan videregives sælges med jorden.
</text>
<radio_group name="sell_objects">
- <radio_item name="no">
- Nej, behold ejerskab til objekterne
- </radio_item>
- <radio_item name="yes">
- Ja, sælg objekter med jorden
- </radio_item>
+ <radio_item name="no" label="Nej, behold ejerskab til objekterne" />
+ <radio_item name="yes" label="Ja, sælg objekter med jorden" />
</radio_group>
<button label="Vis objekter" name="show_objects" />
<text name="nag_message_label">
diff --git a/indra/newview/skins/default/xui/da/floater_snapshot.xml b/indra/newview/skins/default/xui/da/floater_snapshot.xml
index df1a124a9f..ed715bdb39 100644
--- a/indra/newview/skins/default/xui/da/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/da/floater_snapshot.xml
@@ -1,29 +1,30 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="Snapshot" title="Se foto">
<text name="type_label">
Hvor skal foto hen?
</text>
<radio_group label="Snapshot type" name="snapshot_type_radio">
- <radio_item name="postcard">
- Send via e-mail
- </radio_item>
- <radio_item name="texture">
- Gem i din beholdning (L$[AMOUNT])
- </radio_item>
- <radio_item name="local">
- Gem på din computer
- </radio_item>
+ <radio_item name="postcard" label="Send via e-mail" />
+ <radio_item name="texture" label="Gem i din beholdning (L$[AMOUNT])" />
+ <radio_item name="local" label="Gem på din computer" />
</radio_group>
<text name="file_size_label">
Fil størrelse: [SIZE] KB
</text>
- <button label="Tag nyt foto" name="new_snapshot_btn" />
- <button label="Send" name="send_btn" />
- <button label="Gem (L$[AMOUNT])" name="upload_btn" />
- <flyout_button label="Gem" name="save_btn" />
- <button label="Annullér" name="discard_btn" />
- <button label="Mere &gt;&gt;" name="more_btn" />
- <button label="&lt;&lt; Mindre" name="less_btn" />
+ <button label="Tag nyt foto" name="new_snapshot_btn"/>
+ <button label="Send" name="send_btn"/>
+ <button label="Gem (L$[AMOUNT])" name="upload_btn"/>
+ <flyout_button label="Gem" name="save_btn" tool_tip="Gem billede i på din computer">
+ <flyout_button_item name="save_item">
+ Gem
+ </flyout_button_item>
+ <flyout_button_item name="saveas_item">
+ Gem som...
+ </flyout_button_item>
+ </flyout_button>
+ <button label="Annullér" name="discard_btn"/>
+ <button label="Mere &gt;&gt;" name="more_btn" tool_tip="Avancerede valg"/>
+ <button label="&lt;&lt; Mindre" name="less_btn" tool_tip="Avancerede valg"/>
<text name="type_label2">
Størrelse
</text>
@@ -54,15 +55,15 @@
<combo_box.item name="1600x1200" label="1600x1200"/>
<combo_box.item name="Custom" label="Manuelt"/>
</combo_box>
- <combo_box label="Fil-format" name="local_format_combo">
+ <combo_box label="Fil-format" name="local_format_combo" width="76">
<combo_box.item name="PNG" label="PNG"/>
<combo_box.item name="JPEG" label="JPEG"/>
<combo_box.item name="BMP" label="BMP"/>
</combo_box>
- <spinner label="Bredde" name="snapshot_width" />
- <spinner label="Højde" name="snapshot_height" />
- <check_box label="Fasthold proportioner" name="keep_aspect_check" />
- <slider label="Billed-kvalitet" name="image_quality_slider" />
+ <spinner label="Bredde" name="snapshot_width" label_width="41" width="101"/>
+ <spinner label="Højde" name="snapshot_height" label_width="32" width="92" left="117"/>
+ <check_box label="Fasthold proportioner" name="keep_aspect_check"/>
+ <slider label="Billed-kvalitet" name="image_quality_slider"/>
<text name="layer_type_label">
Benyt:
</text>
@@ -71,9 +72,12 @@
<combo_box.item name="Depth" label="Dybde"/>
<combo_box.item name="ObjectMattes" label="Materinger"/>
</combo_box>
- <check_box label="Vis brugerflade på foto" name="ui_check" />
- <check_box label="Vis HUD objekter på foto" name="hud_check" />
- <check_box label="Luk ikke vindue ved gemning" name="keep_open_check" />
- <check_box label="Frys billede og vis" name="freeze_frame_check" />
- <check_box label="Auto-opdater" name="auto_snapshot_check" />
+ <check_box label="Vis brugerflade på foto" name="ui_check"/>
+ <check_box label="Vis HUD objekter på foto" name="hud_check"/>
+ <check_box label="Luk ikke vindue ved gemning" name="keep_open_check"/>
+ <check_box label="Frys billede og vis" name="freeze_frame_check"/>
+ <check_box label="Auto-opdater" name="auto_snapshot_check"/>
+ <string name="unknown">
+ ukendt
+ </string>
</floater>
diff --git a/indra/newview/skins/default/xui/da/floater_tools.xml b/indra/newview/skins/default/xui/da/floater_tools.xml
index 918999eedd..ccb8c67b68 100644
--- a/indra/newview/skins/default/xui/da/floater_tools.xml
+++ b/indra/newview/skins/default/xui/da/floater_tools.xml
@@ -1,21 +1,21 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="toolbox floater" title="">
- <button label="" label_selected="" name="button focus" tool_tip="Fokus" />
- <button label="" label_selected="" name="button move" tool_tip="Flyt" />
- <button label="" label_selected="" name="button edit" tool_tip="Redigér" />
- <button label="" label_selected="" name="button create" tool_tip="Opret" />
- <button label="" label_selected="" name="button land" tool_tip="Land" />
- <check_box label="Zoom" name="radio zoom" />
- <check_box label="Kredsløb (Ctrl)" name="radio orbit" />
- <check_box label="Panorér (Ctrl-Shift)" name="radio pan" />
- <check_box label="Flyt" name="radio move" />
- <check_box label="Løft (Ctrl)" name="radio lift" />
- <check_box label="Spin (Ctrl-Shift)" name="radio spin" />
- <check_box label="Position" name="radio position" />
- <check_box label="Rotér (Ctrl)" name="radio rotate" />
- <check_box label="Stræk (Ctrl-Shift)" name="radio stretch" />
- <check_box label="Vælg tekstur" name="radio select face" />
- <check_box label="Redigér sammenlænkede dele" name="checkbox edit linked parts" />
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="toolbox floater" title="" short_title="Byg">
+ <button label="" label_selected="" name="button focus" tool_tip="Fokus"/>
+ <button label="" label_selected="" name="button move" tool_tip="Flyt"/>
+ <button label="" label_selected="" name="button edit" tool_tip="Redigér"/>
+ <button label="" label_selected="" name="button create" tool_tip="Opret"/>
+ <button label="" label_selected="" name="button land" tool_tip="Land"/>
+ <check_box label="Zoom" name="radio zoom"/>
+ <check_box label="Kredsløb (Ctrl)" name="radio orbit"/>
+ <check_box label="Panorér (Ctrl-Shift)" name="radio pan"/>
+ <check_box label="Flyt" name="radio move"/>
+ <check_box label="Løft (Ctrl)" name="radio lift"/>
+ <check_box label="Spin (Ctrl-Shift)" name="radio spin"/>
+ <check_box label="Position" name="radio position"/>
+ <check_box label="Rotér (Ctrl)" name="radio rotate"/>
+ <check_box label="Stræk (Ctrl-Shift)" name="radio stretch"/>
+ <check_box label="Vælg tekstur" name="radio select face"/>
+ <check_box label="Redigér sammenlænkede dele" name="checkbox edit linked parts"/>
<text name="text ruler mode">
Lineal:
</text>
@@ -24,10 +24,10 @@
<combo_box.item name="Local" label="Lokal"/>
<combo_box.item name="Reference" label="Reference"/>
</combo_box>
- <check_box label="Stræk begge sider" name="checkbox uniform" />
- <check_box label="Stræk teksturer" name="checkbox stretch textures" />
- <check_box label="Benyt gitter" name="checkbox snap to grid" />
- <button label="Valg..." label_selected="Valg..." name="Options..." />
+ <check_box label="Stræk begge sider" name="checkbox uniform"/>
+ <check_box label="Stræk teksturer" name="checkbox stretch textures"/>
+ <check_box label="Benyt gitter" name="checkbox snap to grid"/>
+ <button label="Valg..." label_selected="Valg..." name="Options..." height="18" bottom_delta="-15"/>
<text name="text status">
Træk for at flytte, shift+træk for at kopiere
</text>
@@ -48,28 +48,35 @@
<button label="" label_selected="" name="ToolGrass" tool_tip="Græs" />
<check_box label="Hold værktøjet valgt" name="checkbox sticky" />
<check_box label="Kopiér valgte" name="checkbox copy selection" />
- <check_box label="Centréret kopi" name="checkbox copy centers" />
- <check_box label="Rotér kopi" name="checkbox copy rotates" />
- <check_box label="Vælg land" name="radio select land" />
- <check_box label="Udflad land" name="radio flatten" />
- <check_box label="Hæv land" name="radio raise" />
- <check_box label="Sænk land" name="radio lower" />
- <check_box label="Udjævn land" name="radio smooth" />
- <check_box label="Gør land ujævnt" name="radio noise" />
+ <check_box label="Centreret kopi" name="checkbox copy centers" />
+ <check_box label="Rotér" name="checkbox copy rotates" />
+ <check_box label="Vælg" name="radio select land" />
+ <check_box label="Udflad" name="radio flatten" />
+ <check_box label="Hæv" name="radio raise" />
+ <check_box label="Sænk" name="radio lower" />
+ <check_box label="Udjævn" name="radio smooth" />
+ <check_box label="Gør ujævnt" name="radio noise" />
<check_box label="Tilbagefør" name="radio revert" />
<combo_box name="combobox brush size">
<combo_box.item name="Small" label="Lille"/>
- <combo_box.item name="Medium" label="Mellem"/>
+ <combo_box.item name ="Medium" label="Mellem"/>
<combo_box.item name="Large" label="Stor"/>
</combo_box>
<text type="string" length="1" name="Strength:">
Styrke:
</text>
- <button label="Anvend på valgte" label_selected="Anvend på valgte"
- name="button apply to selection" tool_tip="Redigér valgt land" />
- <check_box label="Vis ejere" name="checkbox show owners" />
- <button label="Mere &gt;&gt;" name="button more" tool_tip="Adancerede valgmuligheder" />
- <button label="&lt;&lt; Mindre" name="button less" tool_tip="Adancerede valgmuligheder" />
+ <text name="Dozer Size:">
+ Størrelse
+ </text>
+ <text length="1" name="Strength:" type="string">
+ Styrke
+ </text>
+ <text name="obj_count">
+ Valgte objekter: [COUNT]
+ </text>
+ <text name="prim_count">
+ prims: [COUNT]
+ </text>
<tab_container name="Object Info Tabs">
<panel label="Generelt" name="General">
<text name="Name:">
@@ -84,65 +91,53 @@
<text name="Creator Name">
Thrax Linden
</text>
- <button label="Profil..." label_selected="Profil..." name="button creator profile" />
+ <button label="Profil..." label_selected="Profil..." name="button creator profile"/>
<text name="Owner:">
Ejer:
</text>
<text name="Owner Name">
Thrax Linden
</text>
- <button label="Profil..." label_selected="Profil..." name="button owner profile" />
+ <button label="Profil..." label_selected="Profil..." name="button owner profile"/>
<text name="Group:">
Gruppe:
</text>
<text name="Group Name Proxy">
The Lindens
</text>
- <button label="Sæt..." label_selected="Sæt..." name="button set group" />
- <text name="prim info">
- 1 Objekt, 1 Prim
- </text>
+ <button label="Sæt..." label_selected="Sæt..." name="button set group"/>
<text name="Permissions:">
Tilladelser:
</text>
<text name="perm_modify">
Du kan redigére dette objekt.
</text>
- <check_box label="Del med gruppe" name="checkbox share with group"
- tool_tip="Tillad gruppemedlemmer at flytte, ændre, kopiere og slette." />
+ <check_box label="Del med gruppe" name="checkbox share with group" tool_tip="Tillad gruppemedlemmer at flytte, ændre, kopiere og slette."/>
<string name="text deed continued">
Deed...
</string>
<string name="text deed">
Deed
</string>
- <button label="Dedikér..." label_selected="Dedikér..." name="button deed"
- tool_tip="Gruppedelte genstande kan dedikeres af en gruppeadministrator." />
- <check_box label="Tillad enhver at flytte" name="checkbox allow everyone move" />
- <check_box label="Tillad enhver at kopiére" name="checkbox allow everyone copy" />
- <check_box label="Vis i søgning" name="search_check"
- tool_tip="Lad folk se dette objekt i søgeresultater" />
- <check_box label="Til salg" name="checkbox for sale" />
+ <button label="Dedikér..." label_selected="Dedikér..." name="button deed" tool_tip="Gruppedelte genstande kan dedikeres af en gruppeadministrator."/>
+ <check_box label="Tillad enhver at flytte" name="checkbox allow everyone move"/>
+ <check_box label="Tillad enhver at kopiére" name="checkbox allow everyone copy"/>
+ <check_box label="Vis i søgning" name="search_check" tool_tip="Lad folk se dette objekt i søgeresultater"/>
+ <check_box label="Til salg" name="checkbox for sale"/>
<text name="Cost">
Pris: L$
</text>
<radio_group name="sale type">
- <radio_item name="Original">
- Original
- </radio_item>
- <radio_item name="Copy">
- Kopi
- </radio_item>
- <radio_item name="Contents">
- Indhold
- </radio_item>
+ <radio_item name="Original" label="Original" />
+ <radio_item name="Copy" label="Kopi" />
+ <radio_item name="Contents" label="Indhold" />
</radio_group>
<text name="Next owner can:">
Næste ejer kan:
</text>
- <check_box label="Redigére" name="checkbox next owner can modify" />
- <check_box label="Kopiére" name="checkbox next owner can copy" />
- <check_box label="Sælge/Give væk" name="checkbox next owner can transfer" />
+ <check_box label="Redigére" name="checkbox next owner can modify"/>
+ <check_box label="Kopiére" name="checkbox next owner can copy" left_delta="80"/>
+ <check_box label="Sælge/Give væk" name="checkbox next owner can transfer" left_delta="67"/>
<text name="label click action">
Når der venstreklikkes:
</text>
@@ -173,6 +168,36 @@
<text name="F:">
F:
</text>
+ <string name="text modify info 1">
+ Du kan redigere dette objekt
+ </string>
+ <string name="text modify info 2">
+ Du kan redigere disse objekter
+ </string>
+ <string name="text modify info 3">
+ Du kan ikke redigere dette objekt.
+ </string>
+ <string name="text modify info 4">
+ Du kan ikke redigere disse objekter.
+ </string>
+ <string name="text modify warning">
+ Du skal vælge hele objektet for at sætte rettigheder.
+ </string>
+ <string name="Cost Default">
+ Pris: L$
+ </string>
+ <string name="Cost Total">
+ Total pris: L$
+ </string>
+ <string name="Cost Per Unit">
+ Pris Pr: L$
+ </string>
+ <string name="Cost Mixed">
+ Blandet pris
+ </string>
+ <string name="Sale Mixed">
+ Blandet salg
+ </string>
</panel>
<panel label="Objekt" name="Object">
<text name="select_single">
@@ -181,32 +206,28 @@
<text name="edit_object">
Ret objektets indstillinger:
</text>
- <check_box label="Låst" name="checkbox locked"
- tool_tip="Forhindrer objektet i at blive flyttet eller slettet. Ofte brugbar under byggeri for at forhindre utilsigtet ændring." />
- <check_box label="Fysisk" name="Physical Checkbox Ctrl"
- tool_tip="Tillader objekter at blive skubbet og at være påvirkelig af tyngdekraften" />
- <check_box label="Temporær" name="Temporary Checkbox Ctrl"
- tool_tip="Medfårer at objekter bliver slettet 1 minut efter de er skabt." />
- <check_box label="Uden masse" name="Phantom Checkbox Ctrl"
- tool_tip="Får objektet til ikke at kollidere med andre objekter eller personer" />
+ <check_box label="Låst" name="checkbox locked" tool_tip="Forhindrer objektet i at blive flyttet eller slettet. Ofte brugbar under byggeri for at forhindre utilsigtet ændring."/>
+ <check_box label="Fysisk" name="Physical Checkbox Ctrl" tool_tip="Tillader objekter at blive skubbet og at være påvirkelig af tyngdekraften"/>
+ <check_box label="Temporær" name="Temporary Checkbox Ctrl" tool_tip="Medfårer at objekter bliver slettet 1 minut efter de er skabt."/>
+ <check_box label="Uden masse" name="Phantom Checkbox Ctrl" tool_tip="Får objektet til ikke at kollidere med andre objekter eller personer"/>
<text name="label position">
Position (meter)
</text>
- <spinner label="X" name="Pos X" />
- <spinner label="Y" name="Pos Y" />
- <spinner label="Z" name="Pos Z" />
+ <spinner label="X" name="Pos X"/>
+ <spinner label="Y" name="Pos Y"/>
+ <spinner label="Z" name="Pos Z"/>
<text name="label size">
Størrelse (meter)
</text>
- <spinner label="X" name="Scale X" />
- <spinner label="Y" name="Scale Y" />
- <spinner label="Z" name="Scale Z" />
+ <spinner label="X" name="Scale X"/>
+ <spinner label="Y" name="Scale Y"/>
+ <spinner label="Z" name="Scale Z"/>
<text name="label rotation">
Rotation (grader)
</text>
- <spinner label="X" name="Rot X" />
- <spinner label="Y" name="Rot Y" />
- <spinner label="Z" name="Rot Z" />
+ <spinner label="X" name="Rot X"/>
+ <spinner label="Y" name="Rot Y"/>
+ <spinner label="Z" name="Rot Z"/>
<text name="label material">
Materiale
</text>
@@ -235,8 +256,8 @@
<text name="text cut">
Snit begynd og slut
</text>
- <spinner label="B" name="cut begin" />
- <spinner label="E" name="cut end" />
+ <spinner label="B" name="cut begin"/>
+ <spinner label="S" name="cut end"/>
<text name="text hollow">
Hul
</text>
@@ -253,48 +274,48 @@
<combo_box.item name="Triangle" label="Trekant"/>
</combo_box>
<text name="text twist">
- Vrid - start og slut
+ Vrid begynd og slut
</text>
- <spinner label="B" name="Twist Begin" />
- <spinner label="E" name="Twist End" />
+ <spinner label="B" name="Twist Begin"/>
+ <spinner label="S" name="Twist End"/>
<text name="scale_taper">
Konus
</text>
<text name="scale_hole">
Hulstørrelse
</text>
- <spinner label="X" name="Taper Scale X" />
- <spinner label="Y" name="Taper Scale Y" />
+ <spinner label="X" name="Taper Scale X"/>
+ <spinner label="Y" name="Taper Scale Y"/>
<text name="text topshear">
Topforskydning
</text>
- <spinner label="X" name="Shear X" />
- <spinner label="Y" name="Shear Y" />
+ <spinner label="X" name="Shear X"/>
+ <spinner label="Y" name="Shear Y"/>
<text name="advanced_cut">
- Profilsnit - begynd og slut
+ Profilsnit begynd og slut
</text>
<text name="advanced_dimple">
- Fordybning - begynd og slut
+ Fordybning begynd og slut
</text>
- <spinner label="B" name="Path Limit Begin" />
- <spinner label="E" name="Path Limit End" />
+ <text name="advanced_slice">
+ Snit begynd og slut
+ </text>
+ <spinner label="B" name="Path Limit Begin"/>
+ <spinner label="S" name="Path Limit End"/>
<text name="text taper2">
Konus
</text>
- <spinner label="X" name="Taper X" />
- <spinner label="Y" name="Taper Y" />
+ <spinner label="X" name="Taper X"/>
+ <spinner label="Y" name="Taper Y"/>
<text name="text radius delta">
Radius
</text>
<text name="text revolutions">
Omdrejninger
</text>
- <texture_picker label="Sculpt tekstur" name="sculpt texture control"
- tool_tip="Klik her for at vælge billede" />
- <check_box label="Spejlet" name="sculpt mirror control"
- tool_tip="Spejler sculpted prim omkring X aksen." />
- <check_box label="Vrangen ud" name="sculpt invert control"
- tool_tip="Vender &apos;vrangen&apos; ud på sculpted prim." />
+ <texture_picker label="Sculpt tekstur" name="sculpt texture control" tool_tip="Klik her for at vælge billede"/>
+ <check_box label="Spejlet" name="sculpt mirror control" tool_tip="Spejler sculpted prim omkring X aksen."/>
+ <check_box label="Vrangen ud" name="sculpt invert control" tool_tip="Vender &apos;vrangen&apos; ud på sculpted prim."/>
<text name="label sculpt type">
Sting type
</text>
@@ -313,36 +334,36 @@
<text name="edit_object">
Redigér objektets egenskaber:
</text>
- <check_box label="Fleksibel/blød" name="Flexible1D Checkbox Ctrl"
- tool_tip="Tillader objektet at ændre form omkring Z-aksen. (Kun på klient-siden)" />
- <spinner label="Blødhed" name="FlexNumSections" />
- <spinner label="Tyngdekraft" name="FlexGravity" />
- <spinner label="Træk" name="FlexFriction" />
- <spinner label="Vind" name="FlexWind" />
- <spinner label="Spændstighed" name="FlexTension" />
- <spinner label="Kraft X" name="FlexForceX" />
- <spinner label="Kraft Y" name="FlexForceY" />
- <spinner label="Kraft Z" name="FlexForceZ" />
- <check_box label="Lys" name="Light Checkbox Ctrl"
- tool_tip="Medfårer at objektet afgiver lys" />
+ <check_box label="Fleksibel/blød" name="Flexible1D Checkbox Ctrl" tool_tip="Tillader objektet at ændre form omkring Z-aksen. (Kun på klient-siden)"/>
+ <spinner label_width="78" width="141" label="Blødhed" name="FlexNumSections"/>
+ <spinner label_width="78" width="141" label="Tyngdekraft" name="FlexGravity"/>
+ <spinner label_width="78" width="141" label="Træk" name="FlexFriction"/>
+ <spinner label_width="78" width="141" label="Vind" name="FlexWind"/>
+ <spinner label_width="78" width="141" label="Spændstighed" name="FlexTension"/>
+ <spinner label_width="78" width="141" label="Kraft X" name="FlexForceX"/>
+ <spinner label_width="78" width="141" label="Kraft Y" name="FlexForceY"/>
+ <spinner label_width="78" width="141" label="Kraft Z" name="FlexForceZ"/>
+ <check_box label="Lys" name="Light Checkbox Ctrl" tool_tip="Medfårer at objektet afgiver lys"/>
<text name="label color">
Farve
</text>
- <color_swatch label="" name="colorswatch" tool_tip="Klik for at åbne farvevælger" />
- <spinner label="Intensitet" name="Light Intensity" />
- <spinner label="Radius" name="Light Radius" />
- <spinner label="Udfasning" name="Light Falloff" />
+ <color_swatch label="" name="colorswatch" tool_tip="Klik for at åbne farvevælger"/>
+ <spinner label="Intensitet" name="Light Intensity"/>
+ <spinner label="Radius" name="Light Radius"/>
+ <spinner label="Udfasning" name="Light Falloff"/>
</panel>
<panel label="Tekstur" name="Texture">
- <texture_picker label="Tekstur" name="texture control" tool_tip="Klik for at vælge billede" />
- <color_swatch label="Farve" name="colorswatch" tool_tip="Klik for at åbne farvevælger" />
- <text name="color trans">
- Gennemsigtighed %
+ <texture_picker label="Tekstur" name="texture control" tool_tip="Klik for at vælge billede"/>
+ <color_swatch label="Farve" name="colorswatch" tool_tip="Klik for at åbne farvevælger"/>
+ <text name="color trans" left="170" width="105">
+ Gennemsigtighed%
</text>
- <text name="glow label">
+ <spinner left="171" name="ColorTrans"/>
+ <text name="glow label" left="170">
Glød
</text>
- <check_box label="Selvlysende" name="checkbox fullbright" />
+ <spinner left="170" name="glow"/>
+ <check_box label="Selvlysende" name="checkbox fullbright" left="170"/>
<text name="tex gen">
Afbildning
</text>
@@ -385,10 +406,10 @@
<text name="tex scale">
Gentagelser pr. overflade
</text>
- <spinner label="Vandret (U)" name="TexScaleU" />
- <check_box label="Vend" name="checkbox flip s" />
- <spinner label="Lodret (V)" name="TexScaleV" />
- <check_box label="Vend" name="checkbox flip t" />
+ <spinner label="Vandret (U)" name="TexScaleU"/>
+ <check_box label="Vend" name="checkbox flip s"/>
+ <spinner label="Lodret (V)" name="TexScaleV"/>
+ <check_box label="Vend" name="checkbox flip t"/>
<text name="tex rotate">
Rotation (grader)
</text>
@@ -401,34 +422,86 @@
<text name="rpt">
Gentagelser pr. meter
</text>
- <button label="Gem" label_selected="Gem" name="button apply" />
+ <spinner left="125" name="TexRot" width="55" />
+ <spinner left="125" name="rptctrl" width="55" />
+ <button label="Gem" label_selected="Gem" name="button apply" left_delta="62"/>
<text name="tex offset">
Offset
</text>
- <spinner label="Vandret (U)" name="TexOffsetU" />
- <spinner label="Lodret (V)" name="TexOffsetV" />
+ <spinner label="Vandret (U)" name="TexOffsetU"/>
+ <spinner label="Lodret (V)" name="TexOffsetV"/>
<text name="textbox autofix">
Rette medie tekstur ind
(skal indlæses først)
</text>
- <button label="Ret ind" label_selected="Ret ind" name="button align" />
+ <button label="Ret ind" label_selected="Ret ind" name="button align" left="160"/>
</panel>
<panel label="Indhold" name="Contents">
- <button label="Nyt script..." label_selected="Nyt script..." name="button new script" />
+ <button label="Nyt script" label_selected="Nyt script..." name="button new script"/>
+ <button label="Rettigheder..." name="button permissions"/>
</panel>
</tab_container>
<panel name="land info panel">
+ <text name="label_parcel_info">
+ Parcel information
+ </text>
<text name="label_area_price">
Pris: L$[PRICE] for [AREA] m².
</text>
<text name="label_area">
Område: [AREA] m².
</text>
- <button label="Køb land..." label_selected="Køb land..." name="button buy land" />
- <button label="Flyt fra land..." label_selected="Flyt fra land..."
- name="button abandon land" />
- <button label="Opdel..." label_selected="Opdel..." name="button subdivide land" />
- <button label="Saml..." label_selected="Saml..." name="button join land" />
- <button label="Om land..." label_selected="Om land..." name="button about land" />
+ <button label="Om land..." label_selected="Om land..." name="button about land"/>
+ <check_box label="Vis ejere" name="checkbox show owners" tool_tip="Farver grunde afhængigt af ejerskab"/>
+ <button label="?" label_selected="?" name="button show owners help"/>
+ <text name="label_parcel_modify">
+ Redigere grund
+ </text>
+ <button label="Opdel..." label_selected="Opdel..." name="button subdivide land"/>
+ <button label="Saml..." label_selected="Saml..." name="button join land"/>
+ <text name="label_parcel_trans">
+ Transaktioner for land
+ </text>
+ <button label="Køb land..." label_selected="Køb land..." name="button buy land"/>
+ <button label="Flyt fra land..." label_selected="Flyt fra land..." name="button abandon land"/>
</panel>
+ <string name="status_rotate">
+ Træk i de farvede bånd for at rotere objekt
+ </string>
+ <string name="status_scale">
+ Klik og træk for at strække valgte side
+ </string>
+ <string name="status_move">
+ Træk for at flytte, hold shift nede for at kopiere
+ </string>
+ <string name="status_modifyland">
+ Klik og hold for at redigere land
+ </string>
+ <string name="status_camera">
+ Klik og træk for at ændre synsvinkel
+ </string>
+ <string name="status_grab">
+ Træk for at flytte objekter, Ctrl for at løfte, Ctrl-Shift for at rotere
+ </string>
+ <string name="status_place">
+ Klik et sted i verden for at bygge
+ </string>
+ <string name="status_selectland">
+ Klik og træk for at vælge land
+ </string>
+ <string name="grid_screen_text">
+ Skærm
+ </string>
+ <string name="grid_local_text">
+ Lokalt
+ </string>
+ <string name="grid_world_text">
+ Verden
+ </string>
+ <string name="grid_reference_text">
+ Reference
+ </string>
+ <string name="grid_attachment_text">
+ Vedhæng
+ </string>
</floater>
diff --git a/indra/newview/skins/default/xui/da/floater_top_objects.xml b/indra/newview/skins/default/xui/da/floater_top_objects.xml
index d5ba563b84..dc4605cc12 100644
--- a/indra/newview/skins/default/xui/da/floater_top_objects.xml
+++ b/indra/newview/skins/default/xui/da/floater_top_objects.xml
@@ -1,55 +1,55 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="top_objects" title="Indlæser...">
- <text name="title_text">
- Henter...
- </text>
- <scroll_list name="objects_list">
- <column label="Point" name="score" />
- <column label="Navn" name="name" />
- <column label="Ejer" name="owner" />
- <column label="Lokation" name="location" />
- <column label="Tid" name="time" />
- <column label="Mono tid" name="mono_time" />
- </scroll_list>
- <text name="id_text">
- Objekt ID:
- </text>
- <button label="Vis pejlelys" name="show_beacon_btn" />
- <text name="obj_name_text">
- Objekt navn:
- </text>
- <button label="Filter" name="filter_object_btn" />
- <text name="owner_name_text">
- Ejers navn:
- </text>
- <button label="Filter" name="filter_owner_btn" />
- <button label="Returnér valgte" name="return_selected_btn" />
- <button label="Returnér alle" name="return_all_btn" />
- <button label="Afbryd valgte" name="disable_selected_btn" />
- <button label="Afbryd alle" name="disable_all_btn" />
- <button label="Genopfrisk" name="refresh_btn" />
- <string name="top_scripts_title">
- Mest krævende scripts
- </string>
- <string name="top_scripts_text">
- [COUNT] scripts bruger ialt [TIME] ms
- </string>
- <string name="scripts_score_label">
- Tid
- </string>
- <string name="scripts_mono_time_label">
- Mono tid
- </string>
- <string name="top_colliders_title">
- Mest kolliderende
- </string>
- <string name="top_colliders_text">
- Top [COUNT] genstande der potentielt har mange kollisioner
- </string>
- <string name="colliders_score_label">
- Point
- </string>
- <string name="none_descriptor">
- Ingen fundet
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater name="top_objects" title="Indlæser...">
+ <text name="title_text">
+ Henter...
+ </text>
+ <scroll_list name="objects_list">
+ <column label="Point" name="score" />
+ <column label="Navn" name="name" />
+ <column label="Ejer" name="owner" />
+ <column label="Lokation" name="location" />
+ <column label="Tid" name="time" />
+ <column label="Mono tid" name="mono_time" />
+ </scroll_list>
+ <text name="id_text">
+ Objekt ID:
+ </text>
+ <button label="Vis pejlelys" name="show_beacon_btn" />
+ <text name="obj_name_text">
+ Objekt navn:
+ </text>
+ <button label="Filter" name="filter_object_btn" />
+ <text name="owner_name_text">
+ Ejers navn:
+ </text>
+ <button label="Filter" name="filter_owner_btn" />
+ <button label="Returnér valgte" name="return_selected_btn" />
+ <button label="Returnér alle" name="return_all_btn" />
+ <button label="Afbryd valgte" name="disable_selected_btn" />
+ <button label="Afbryd alle" name="disable_all_btn" />
+ <button label="Genopfrisk" name="refresh_btn" />
+ <string name="top_scripts_title">
+ Mest krævende scripts
+ </string>
+ <string name="top_scripts_text">
+ [COUNT] scripts bruger ialt [TIME] ms
+ </string>
+ <string name="scripts_score_label">
+ Tid
+ </string>
+ <string name="scripts_mono_time_label">
+ Mono tid
+ </string>
+ <string name="top_colliders_title">
+ Mest kolliderende
+ </string>
+ <string name="top_colliders_text">
+ Top [COUNT] genstande der potentielt har mange kollisioner
+ </string>
+ <string name="colliders_score_label">
+ Point
+ </string>
+ <string name="none_descriptor">
+ Ingen fundet
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/da/floater_url_entry.xml b/indra/newview/skins/default/xui/da/floater_url_entry.xml
index d74c035d3c..30b3b7184b 100644
--- a/indra/newview/skins/default/xui/da/floater_url_entry.xml
+++ b/indra/newview/skins/default/xui/da/floater_url_entry.xml
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="url_entry" title="">
- <text name="media_label">
- Medie URL:
- </text>
- <button label="OK" name="ok_btn" />
- <button label="Annullér" name="cancel_btn" />
- <button label="Ryd" name="clear_btn" />
- <text name="loading_label">
- Indlæser...
- </text>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater name="url_entry" title="">
+ <text name="media_label">
+ Medie URL:
+ </text>
+ <button label="OK" name="ok_btn" />
+ <button label="Annullér" name="cancel_btn" />
+ <button label="Ryd" name="clear_btn" />
+ <text name="loading_label">
+ Indlæser...
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/da/floater_water.xml b/indra/newview/skins/default/xui/da/floater_water.xml
index c28f9b48bc..aa04fd805a 100644
--- a/indra/newview/skins/default/xui/da/floater_water.xml
+++ b/indra/newview/skins/default/xui/da/floater_water.xml
@@ -1,103 +1,103 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="Water Floater" title="Avanceret opsætning af vand">
- <text type="string" length="1" name="KeyFramePresetsText">
- Vand opsætninger:
- </text>
- <button label="Ny" label_selected="Ny" name="WaterNewPreset" />
- <button label="Gem" label_selected="Gem" name="WaterSavePreset" />
- <button label="Slet" label_selected="Slet" name="WaterDeletePreset" />
- <tab_container name="Water Tabs">
- <panel label="Opsætning" name="Settings">
- <text type="string" length="1" name="BHText">
- Vandtåge farve
- </text>
- <button label="?" name="WaterFogColorHelp" />
- <color_swatch label="" name="WaterFogColor" tool_tip="Click to open Color Picker" />
- <text type="string" length="1" name="WaterFogDensText">
- Tåge tæthedskarakteristik
- </text>
- <button label="?" name="WaterFogDensityHelp" />
- <slider label="" name="WaterFogDensity" />
- <text type="string" length="1" name="WaterUnderWaterFogModText">
- Tilretning undervandståge
- </text>
- <button label="?" name="WaterUnderWaterFogModHelp" />
- <slider label="" name="WaterUnderWaterFogMod" />
- <text type="string" length="1" name="BDensText">
- Lille bølge reflektionsskala
- </text>
- <button label="?" name="WaterNormalScaleHelp" />
- <text type="string" length="1" name="BHText2">
- 1
- </text>
- <text type="string" length="1" name="BHText3">
- 2
- </text>
- <text type="string" length="1" name="BHText4">
- 3
- </text>
- <slider label="" name="WaterNormalScaleX" />
- <slider label="" name="WaterNormalScaleY" />
- <slider label="" name="WaterNormalScaleZ" />
- <text type="string" length="1" name="HDText">
- Spredningsskala
- </text>
- <button label="?" name="WaterFresnelScaleHelp" />
- <slider label="" name="WaterFresnelScale" />
- <text type="string" length="1" name="FresnelOffsetText">
- Spredning offset
- </text>
- <button label="?" name="WaterFresnelOffsetHelp" />
- <slider label="" name="WaterFresnelOffset" />
- <text type="string" length="1" name="DensMultText">
- Lysbrydning fra oven
- </text>
- <button label="?" name="WaterScaleAboveHelp" />
- <slider label="" name="WaterScaleAbove" />
- <text type="string" length="1" name="WaterScaleBelowText">
- Lysbrydning fra neden
- </text>
- <button label="?" name="WaterScaleBelowHelp" />
- <slider label="" name="WaterScaleBelow" />
- <text type="string" length="1" name="MaxAltText">
- Udviskning
- </text>
- <button label="?" name="WaterBlurMultiplierHelp" />
- <slider label="" name="WaterBlurMult" />
- </panel>
- <panel label="Billede" name="Waves">
- <text type="string" length="1" name="BHText">
- Retning for store bølger
- </text>
- <button label="?" name="WaterWave1Help" />
- <text type="string" length="1" name="WaterWave1DirXText">
- X
- </text>
- <text type="string" length="1" name="WaterWave1DirYText">
- Y
- </text>
- <slider label="" name="WaterWave1DirX" />
- <slider label="" name="WaterWave1DirY" />
- <text type="string" length="1" name="BHText2">
- Retning for små bølger
- </text>
- <button label="?" name="WaterWave2Help" />
- <text type="string" length="1" name="WaterWave2DirXText">
- X
- </text>
- <text type="string" length="1" name="WaterWave2DirYText">
- Y
- </text>
- <slider label="" name="WaterWave2DirX" />
- <slider label="" name="WaterWave2DirY" />
- <text type="string" length="1" name="BHText3">
- Tekstur map
- </text>
- <button label="?" name="WaterNormalMapHelp" />
- <texture_picker label="" name="WaterNormalMap" />
- </panel>
- </tab_container>
- <string name="WLDefaultWaterNames">
- Default:Glassy:Pond:Murky:Second Plague:SNAKE!!!:Valdez
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater name="Water Floater" title="Avanceret opsætning af vand">
+ <text type="string" length="1" name="KeyFramePresetsText">
+ Vand opsætninger:
+ </text>
+ <button label="Ny" label_selected="Ny" name="WaterNewPreset" />
+ <button label="Gem" label_selected="Gem" name="WaterSavePreset" />
+ <button label="Slet" label_selected="Slet" name="WaterDeletePreset" />
+ <tab_container name="Water Tabs">
+ <panel label="Opsætning" name="Settings">
+ <text type="string" length="1" name="BHText">
+ Vandtåge farve
+ </text>
+ <button label="?" name="WaterFogColorHelp" />
+ <color_swatch label="" name="WaterFogColor" tool_tip="Click to open Color Picker" />
+ <text type="string" length="1" name="WaterFogDensText">
+ Tåge tæthedskarakteristik
+ </text>
+ <button label="?" name="WaterFogDensityHelp" />
+ <slider label="" name="WaterFogDensity" />
+ <text type="string" length="1" name="WaterUnderWaterFogModText">
+ Tilretning undervandståge
+ </text>
+ <button label="?" name="WaterUnderWaterFogModHelp" />
+ <slider label="" name="WaterUnderWaterFogMod" />
+ <text type="string" length="1" name="BDensText">
+ Lille bølge reflektionsskala
+ </text>
+ <button label="?" name="WaterNormalScaleHelp" />
+ <text type="string" length="1" name="BHText2">
+ 1
+ </text>
+ <text type="string" length="1" name="BHText3">
+ 2
+ </text>
+ <text type="string" length="1" name="BHText4">
+ 3
+ </text>
+ <slider label="" name="WaterNormalScaleX" />
+ <slider label="" name="WaterNormalScaleY" />
+ <slider label="" name="WaterNormalScaleZ" />
+ <text type="string" length="1" name="HDText">
+ Spredningsskala
+ </text>
+ <button label="?" name="WaterFresnelScaleHelp" />
+ <slider label="" name="WaterFresnelScale" />
+ <text type="string" length="1" name="FresnelOffsetText">
+ Spredning offset
+ </text>
+ <button label="?" name="WaterFresnelOffsetHelp" />
+ <slider label="" name="WaterFresnelOffset" />
+ <text type="string" length="1" name="DensMultText">
+ Lysbrydning fra oven
+ </text>
+ <button label="?" name="WaterScaleAboveHelp" />
+ <slider label="" name="WaterScaleAbove" />
+ <text type="string" length="1" name="WaterScaleBelowText">
+ Lysbrydning fra neden
+ </text>
+ <button label="?" name="WaterScaleBelowHelp" />
+ <slider label="" name="WaterScaleBelow" />
+ <text type="string" length="1" name="MaxAltText">
+ Udviskning
+ </text>
+ <button label="?" name="WaterBlurMultiplierHelp" />
+ <slider label="" name="WaterBlurMult" />
+ </panel>
+ <panel label="Billede" name="Waves">
+ <text type="string" length="1" name="BHText">
+ Retning for store bølger
+ </text>
+ <button label="?" name="WaterWave1Help" />
+ <text type="string" length="1" name="WaterWave1DirXText">
+ X
+ </text>
+ <text type="string" length="1" name="WaterWave1DirYText">
+ Y
+ </text>
+ <slider label="" name="WaterWave1DirX" />
+ <slider label="" name="WaterWave1DirY" />
+ <text type="string" length="1" name="BHText2">
+ Retning for små bølger
+ </text>
+ <button label="?" name="WaterWave2Help" />
+ <text type="string" length="1" name="WaterWave2DirXText">
+ X
+ </text>
+ <text type="string" length="1" name="WaterWave2DirYText">
+ Y
+ </text>
+ <slider label="" name="WaterWave2DirX" />
+ <slider label="" name="WaterWave2DirY" />
+ <text type="string" length="1" name="BHText3">
+ Tekstur map
+ </text>
+ <button label="?" name="WaterNormalMapHelp" />
+ <texture_picker label="" name="WaterNormalMap" />
+ </panel>
+ </tab_container>
+ <string name="WLDefaultWaterNames">
+ Default:Glassy:Pond:Murky:Second Plague:SNAKE!!!:Valdez
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/da/floater_windlight_options.xml b/indra/newview/skins/default/xui/da/floater_windlight_options.xml
index 9a020be5ed..ecb8b77c52 100644
--- a/indra/newview/skins/default/xui/da/floater_windlight_options.xml
+++ b/indra/newview/skins/default/xui/da/floater_windlight_options.xml
@@ -1,228 +1,228 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="WindLight floater" title="Avanceret opsætning for himmel">
- <text type="string" length="1" name="KeyFramePresetsText">
- Faste indstillinger:
- </text>
- <button label="Ny" label_selected="Ny" name="WLNewPreset" />
- <button label="Gem" label_selected="Gem" name="WLSavePreset" />
- <button label="Slet" label_selected="Slet" name="WLDeletePreset" />
- <button label="Dags cyklus" label_selected="Dags cyklus" name="WLDayCycleMenuButton" />
- <tab_container name="WindLight Tabs">
- <panel label="Atmosfære" name="Atmosphere">
- <text type="string" length="1" name="BHText">
- Blå - horisont
- </text>
- <button label="?" name="WLBlueHorizonHelp" />
- <text type="string" length="1" name="BHText2">
- R
- </text>
- <text type="string" length="1" name="BHText3">
- G
- </text>
- <text type="string" length="1" name="BHText4">
- B
- </text>
- <text type="string" length="1" name="BHText5">
- I
- </text>
- <slider label="" name="WLBlueHorizonR" />
- <slider label="" name="WLBlueHorizonG" />
- <slider label="" name="WLBlueHorizonB" />
- <slider label="" name="WLBlueHorizonI" />
- <text type="string" length="1" name="BDensText">
- Dis - horisont
- </text>
- <button label="?" name="WLHazeHorizonHelp" />
- <slider label="" name="WLHazeHorizon" />
- <text type="string" length="1" name="BDensText2">
- Blå - tæthed
- </text>
- <button label="?" name="WLBlueDensityHelp" />
- <text type="string" length="1" name="BHText6">
- R
- </text>
- <text type="string" length="1" name="BHText7">
- G
- </text>
- <text type="string" length="1" name="BHText8">
- B
- </text>
- <text type="string" length="1" name="BHText9">
- I
- </text>
- <slider label="" name="WLBlueDensityR" />
- <slider label="" name="WLBlueDensityG" />
- <slider label="" name="WLBlueDensityB" />
- <slider label="" name="WLBlueDensityI" />
- <text type="string" length="1" name="HDText">
- Dis - intensitet
- </text>
- <button label="?" name="WLHazeDensityHelp" />
- <slider label="" name="WLHazeDensity" />
- <text type="string" length="1" name="DensMultText">
- Densitet faktor
- </text>
- <button label="?" name="WLDensityMultHelp" />
- <slider label="" name="WLDensityMult" />
- <text type="string" length="1" name="WLDistanceMultText">
- Distance faktor
- </text>
- <button label="?" name="WLDistanceMultHelp" />
- <slider label="" name="WLDistanceMult" />
- <text type="string" length="1" name="MaxAltText">
- Maximum højde
- </text>
- <button label="?" name="WLMaxAltitudeHelp" />
- <slider label="" name="WLMaxAltitude" />
- </panel>
- <panel label="Lys" name="Lighting">
- <text type="string" length="1" name="SLCText">
- Sol/Måne farve
- </text>
- <button label="?" name="WLSunlightColorHelp" />
- <text type="string" length="1" name="BHText">
- R
- </text>
- <text type="string" length="1" name="BHText2">
- G
- </text>
- <text type="string" length="1" name="BHText3">
- B
- </text>
- <text type="string" length="1" name="BHText4">
- I
- </text>
- <slider label="" name="WLSunlightR" />
- <slider label="" name="WLSunlightG" />
- <slider label="" name="WLSunlightB" />
- <slider label="" name="WLSunlightI" />
- <text type="string" length="1" name="TODText">
- Sol/Måne position
- </text>
- <button label="?" name="WLTimeOfDayHelp" />
- <slider label="" name="WLSunAngle" />
- <text type="string" length="1" name="WLAmbientText">
- Omgivende
- </text>
- <button label="?" name="WLAmbientHelp" />
- <text type="string" length="1" name="BHText5">
- R
- </text>
- <text type="string" length="1" name="BHText6">
- G
- </text>
- <text type="string" length="1" name="BHText7">
- B
- </text>
- <text type="string" length="1" name="BHText8">
- I
- </text>
- <slider label="" name="WLAmbientR" />
- <slider label="" name="WLAmbientG" />
- <slider label="" name="WLAmbientB" />
- <slider label="" name="WLAmbientI" />
- <text type="string" length="1" name="WLEastAngleText">
- Øst vinkel
- </text>
- <button label="?" name="WLEastAngleHelp" />
- <slider label="" name="WLEastAngle" />
- <text type="string" length="1" name="SunGlowText">
- Sol glød
- </text>
- <button label="?" name="WLSunGlowHelp" />
- <slider label="Fokus " name="WLGlowB" />
- <slider label="Størr. " name="WLGlowR" />
- <text type="string" length="1" name="SceneGammaText">
- Lysintensitet (gamma)
- </text>
- <button label="?" name="WLSceneGammaHelp" />
- <slider label="" name="WLGamma" />
- <text type="string" length="1" name="WLStarText">
- Stjerne intensitet
- </text>
- <button label="?" name="WLStarBrightnessHelp" />
- <slider label="" name="WLStarAlpha" />
- </panel>
- <panel label="Skyer" name="Clouds">
- <text type="string" length="1" name="WLCloudColorText">
- Farve på skyer
- </text>
- <button label="?" name="WLCloudColorHelp" />
- <text type="string" length="1" name="BHText">
- R
- </text>
- <text type="string" length="1" name="BHText2">
- G
- </text>
- <text type="string" length="1" name="BHText3">
- B
- </text>
- <text type="string" length="1" name="BHText4">
- I
- </text>
- <slider label="" name="WLCloudColorR" />
- <slider label="" name="WLCloudColorG" />
- <slider label="" name="WLCloudColorB" />
- <slider label="" name="WLCloudColorI" />
- <text type="string" length="1" name="WLCloudColorText2">
- Skyer XY/Tæthed
- </text>
- <button label="?" name="WLCloudDensityHelp" />
- <text type="string" length="1" name="BHText5">
- X
- </text>
- <text type="string" length="1" name="BHText6">
- Y
- </text>
- <text type="string" length="1" name="BHText7">
- T
- </text>
- <slider label="" name="WLCloudX" />
- <slider label="" name="WLCloudY" />
- <slider label="" name="WLCloudDensity" />
- <text type="string" length="1" name="WLCloudCoverageText">
- Skydække
- </text>
- <button label="?" name="WLCloudCoverageHelp" />
- <slider label="" name="WLCloudCoverage" />
- <text type="string" length="1" name="WLCloudScaleText">
- Skystørrelse
- </text>
- <button label="?" name="WLCloudScaleHelp" />
- <slider label="" name="WLCloudScale" />
- <text type="string" length="1" name="WLCloudDetailText">
- Sky detaljer(XY/tæthed)
- </text>
- <button label="?" name="WLCloudDetailHelp" />
- <text type="string" length="1" name="BHText8">
- X
- </text>
- <text type="string" length="1" name="BHText9">
- Y
- </text>
- <text type="string" length="1" name="BHText10">
- T
- </text>
- <slider label="" name="WLCloudDetailX" />
- <slider label="" name="WLCloudDetailY" />
- <slider label="" name="WLCloudDetailDensity" />
- <text type="string" length="1" name="WLCloudScrollXText">
- Sky drift X
- </text>
- <button label="?" name="WLCloudScrollXHelp" />
- <check_box label="Lås" name="WLCloudLockX" />
- <slider label="" name="WLCloudScrollX" />
- <text type="string" length="1" name="WLCloudScrollYText">
- Sky drift Y
- </text>
- <button label="?" name="WLCloudScrollYHelp" />
- <check_box label="Lås" name="WLCloudLockY" />
- <slider label="" name="WLCloudScrollY" />
- <check_box label="Benyt simple skyer" name="DrawClassicClouds" />
- <button label="?" name="WLClassicCloudsHelp" />
- </panel>
- </tab_container>
- <string name="WLDefaultSkyNames">
- A-12AM:A-12PM:A-3AM:A-3PM:A-4.30PM:A-6AM:A-6PM:A-9AM:A-9PM:Barcelona:Blizzard:Blue Midday:Coastal Afternoon:Coastal Sunset:Default:Desert Sunset:Fine Day:Fluffy Big Clouds:Foggy:Funky Funky:Funky Funky Funky:Gelatto:Ghost:Incongruent Truths:Midday 1:Midday 2:Midday 3:Midday 4:Night:Pirate:Purple:Sailor&apos;s Delight:Sheer Sensuality
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater name="WindLight floater" title="Avanceret opsætning for himmel">
+ <text type="string" length="1" name="KeyFramePresetsText">
+ Faste indstillinger:
+ </text>
+ <button label="Ny" label_selected="Ny" name="WLNewPreset" />
+ <button label="Gem" label_selected="Gem" name="WLSavePreset" />
+ <button label="Slet" label_selected="Slet" name="WLDeletePreset" />
+ <button label="Dags cyklus" label_selected="Dags cyklus" name="WLDayCycleMenuButton" />
+ <tab_container name="WindLight Tabs">
+ <panel label="Atmosfære" name="Atmosphere">
+ <text type="string" length="1" name="BHText">
+ Blå - horisont
+ </text>
+ <button label="?" name="WLBlueHorizonHelp" />
+ <text type="string" length="1" name="BHText2">
+ R
+ </text>
+ <text type="string" length="1" name="BHText3">
+ G
+ </text>
+ <text type="string" length="1" name="BHText4">
+ B
+ </text>
+ <text type="string" length="1" name="BHText5">
+ I
+ </text>
+ <slider label="" name="WLBlueHorizonR" />
+ <slider label="" name="WLBlueHorizonG" />
+ <slider label="" name="WLBlueHorizonB" />
+ <slider label="" name="WLBlueHorizonI" />
+ <text type="string" length="1" name="BDensText">
+ Dis - horisont
+ </text>
+ <button label="?" name="WLHazeHorizonHelp" />
+ <slider label="" name="WLHazeHorizon" />
+ <text type="string" length="1" name="BDensText2">
+ Blå - tæthed
+ </text>
+ <button label="?" name="WLBlueDensityHelp" />
+ <text type="string" length="1" name="BHText6">
+ R
+ </text>
+ <text type="string" length="1" name="BHText7">
+ G
+ </text>
+ <text type="string" length="1" name="BHText8">
+ B
+ </text>
+ <text type="string" length="1" name="BHText9">
+ I
+ </text>
+ <slider label="" name="WLBlueDensityR" />
+ <slider label="" name="WLBlueDensityG" />
+ <slider label="" name="WLBlueDensityB" />
+ <slider label="" name="WLBlueDensityI" />
+ <text type="string" length="1" name="HDText">
+ Dis - intensitet
+ </text>
+ <button label="?" name="WLHazeDensityHelp" />
+ <slider label="" name="WLHazeDensity" />
+ <text type="string" length="1" name="DensMultText">
+ Densitet faktor
+ </text>
+ <button label="?" name="WLDensityMultHelp" />
+ <slider label="" name="WLDensityMult" />
+ <text type="string" length="1" name="WLDistanceMultText">
+ Distance faktor
+ </text>
+ <button label="?" name="WLDistanceMultHelp" />
+ <slider label="" name="WLDistanceMult" />
+ <text type="string" length="1" name="MaxAltText">
+ Maximum højde
+ </text>
+ <button label="?" name="WLMaxAltitudeHelp" />
+ <slider label="" name="WLMaxAltitude" />
+ </panel>
+ <panel label="Lys" name="Lighting">
+ <text type="string" length="1" name="SLCText">
+ Sol/Måne farve
+ </text>
+ <button label="?" name="WLSunlightColorHelp" />
+ <text type="string" length="1" name="BHText">
+ R
+ </text>
+ <text type="string" length="1" name="BHText2">
+ G
+ </text>
+ <text type="string" length="1" name="BHText3">
+ B
+ </text>
+ <text type="string" length="1" name="BHText4">
+ I
+ </text>
+ <slider label="" name="WLSunlightR" />
+ <slider label="" name="WLSunlightG" />
+ <slider label="" name="WLSunlightB" />
+ <slider label="" name="WLSunlightI" />
+ <text type="string" length="1" name="TODText">
+ Sol/Måne position
+ </text>
+ <button label="?" name="WLTimeOfDayHelp" />
+ <slider label="" name="WLSunAngle" />
+ <text type="string" length="1" name="WLAmbientText">
+ Omgivende
+ </text>
+ <button label="?" name="WLAmbientHelp" />
+ <text type="string" length="1" name="BHText5">
+ R
+ </text>
+ <text type="string" length="1" name="BHText6">
+ G
+ </text>
+ <text type="string" length="1" name="BHText7">
+ B
+ </text>
+ <text type="string" length="1" name="BHText8">
+ I
+ </text>
+ <slider label="" name="WLAmbientR" />
+ <slider label="" name="WLAmbientG" />
+ <slider label="" name="WLAmbientB" />
+ <slider label="" name="WLAmbientI" />
+ <text type="string" length="1" name="WLEastAngleText">
+ Øst vinkel
+ </text>
+ <button label="?" name="WLEastAngleHelp" />
+ <slider label="" name="WLEastAngle" />
+ <text type="string" length="1" name="SunGlowText">
+ Sol glød
+ </text>
+ <button label="?" name="WLSunGlowHelp" />
+ <slider label="Fokus " name="WLGlowB" />
+ <slider label="Størr. " name="WLGlowR" />
+ <text type="string" length="1" name="SceneGammaText">
+ Lysintensitet (gamma)
+ </text>
+ <button label="?" name="WLSceneGammaHelp" />
+ <slider label="" name="WLGamma" />
+ <text type="string" length="1" name="WLStarText">
+ Stjerne intensitet
+ </text>
+ <button label="?" name="WLStarBrightnessHelp" />
+ <slider label="" name="WLStarAlpha" />
+ </panel>
+ <panel label="Skyer" name="Clouds">
+ <text type="string" length="1" name="WLCloudColorText">
+ Farve på skyer
+ </text>
+ <button label="?" name="WLCloudColorHelp" />
+ <text type="string" length="1" name="BHText">
+ R
+ </text>
+ <text type="string" length="1" name="BHText2">
+ G
+ </text>
+ <text type="string" length="1" name="BHText3">
+ B
+ </text>
+ <text type="string" length="1" name="BHText4">
+ I
+ </text>
+ <slider label="" name="WLCloudColorR" />
+ <slider label="" name="WLCloudColorG" />
+ <slider label="" name="WLCloudColorB" />
+ <slider label="" name="WLCloudColorI" />
+ <text type="string" length="1" name="WLCloudColorText2">
+ Skyer XY/Tæthed
+ </text>
+ <button label="?" name="WLCloudDensityHelp" />
+ <text type="string" length="1" name="BHText5">
+ X
+ </text>
+ <text type="string" length="1" name="BHText6">
+ Y
+ </text>
+ <text type="string" length="1" name="BHText7">
+ T
+ </text>
+ <slider label="" name="WLCloudX" />
+ <slider label="" name="WLCloudY" />
+ <slider label="" name="WLCloudDensity" />
+ <text type="string" length="1" name="WLCloudCoverageText">
+ Skydække
+ </text>
+ <button label="?" name="WLCloudCoverageHelp" />
+ <slider label="" name="WLCloudCoverage" />
+ <text type="string" length="1" name="WLCloudScaleText">
+ Skystørrelse
+ </text>
+ <button label="?" name="WLCloudScaleHelp" />
+ <slider label="" name="WLCloudScale" />
+ <text type="string" length="1" name="WLCloudDetailText">
+ Sky detaljer(XY/tæthed)
+ </text>
+ <button label="?" name="WLCloudDetailHelp" />
+ <text type="string" length="1" name="BHText8">
+ X
+ </text>
+ <text type="string" length="1" name="BHText9">
+ Y
+ </text>
+ <text type="string" length="1" name="BHText10">
+ T
+ </text>
+ <slider label="" name="WLCloudDetailX" />
+ <slider label="" name="WLCloudDetailY" />
+ <slider label="" name="WLCloudDetailDensity" />
+ <text type="string" length="1" name="WLCloudScrollXText">
+ Sky drift X
+ </text>
+ <button label="?" name="WLCloudScrollXHelp" />
+ <check_box label="Lås" name="WLCloudLockX" />
+ <slider label="" name="WLCloudScrollX" />
+ <text type="string" length="1" name="WLCloudScrollYText">
+ Sky drift Y
+ </text>
+ <button label="?" name="WLCloudScrollYHelp" />
+ <check_box label="Lås" name="WLCloudLockY" />
+ <slider label="" name="WLCloudScrollY" />
+ <check_box label="Benyt simple skyer" name="DrawClassicClouds" />
+ <button label="?" name="WLClassicCloudsHelp" />
+ </panel>
+ </tab_container>
+ <string name="WLDefaultSkyNames">
+ A-12AM:A-12PM:A-3AM:A-3PM:A-4.30PM:A-6AM:A-6PM:A-9AM:A-9PM:Barcelona:Blizzard:Blue Midday:Coastal Afternoon:Coastal Sunset:Default:Desert Sunset:Fine Day:Fluffy Big Clouds:Foggy:Funky Funky:Funky Funky Funky:Gelatto:Ghost:Incongruent Truths:Midday 1:Midday 2:Midday 3:Midday 4:Night:Pirate:Purple:Sailor&apos;s Delight:Sheer Sensuality
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/da/floater_world_map.xml b/indra/newview/skins/default/xui/da/floater_world_map.xml
index c35fd9b2e6..f058cf0468 100644
--- a/indra/newview/skins/default/xui/da/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/da/floater_world_map.xml
@@ -1,77 +1,57 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="worldmap" title="Verdenskort">
<tab_container name="maptab">
- <panel label="Objekter" name="objects_mapview" />
- <panel label="Terræn" name="terrain_mapview" />
+ <panel label="Objekter" name="objects_mapview"/>
+ <panel label="Terræn" name="terrain_mapview"/>
</tab_container>
- <text name="land_for_sale_label">
- Land til salg
- </text>
- <text name="auction_label">
- Auktion
- </text>
<text name="you_label">
Dig
</text>
<text name="home_label">
Hjem
</text>
- <button label="Tag hjem" label_selected="Tag hjem" name="Go Home"
- tool_tip="Teleporter til dit hjem" />
- <text name="person_label">
- Person
- </text>
- <check_box label=" " name="people_chk" />
- <text name="infohub_label">
- Infohub
- </text>
- <check_box label="" name="infohub_chk" />
- <text name="telehub_label">
- Telehub
+ <text name="auction_label">
+ Auktion
</text>
- <check_box label="" name="telehubchk" />
- <text name="land_for_sale_label2">
+ <text name="land_for_sale_label">
Land til salg
</text>
- <check_box label="" name="land_for_sale_chk" />
+ <button label="Tag hjem" label_selected="Tag hjem" name="Go Home" tool_tip="Teleporter til dit hjem"/>
+ <check_box label="Beboer" name="people_chk"/>
+ <check_box label="Infohub" name="infohub_chk"/>
+ <check_box label="Telehub" name="telehubchk"/>
+ <check_box label="Land til salg" name="land_for_sale_chk"/>
<text name="events_label">
- Events
+ Events:
</text>
- <check_box label="" name="event_chk" />
- <text name="events_mature_label" />
- <check_box label="" name="event_mature_chk" />
- <combo_box label="Venner online" name="friend combo"
- tool_tip="Ven der skal vises på kortet">
+ <check_box label="PG" name="event_chk"/>
+ <check_box label="Mature" name="event_mature_chk"/>
+ <check_box label="Adult" name="event_adult_chk"/>
+ <combo_box label="Venner online" name="friend combo" tool_tip="Ven der skal vises på kortet">
<combo_box.item name="none_selected" label="Venner online" />
</combo_box>
- <combo_box label="Landemærker" name="landmark combo"
- tool_tip="Landemærke der skal vises på kortet">
+ <combo_box label="Landemærker" name="landmark combo" tool_tip="Landemærke der skal vises på kortet">
<combo_box.item name="none_selected" label="Landemærker" />
</combo_box>
- <line_editor label="Søg på region navn" name="location"
- tool_tip="Skriv navnet på en region" />
- <button label="Søg" name="DoSearch" tool_tip="Søg efter en region" />
+ <line_editor label="Søg på region navn" name="location" tool_tip="Skriv navnet på en region"/>
+ <button label="Søg" name="DoSearch" tool_tip="Søg efter en region"/>
<text name="search_label">
Søgeresultater:
</text>
<scroll_list name="search_results">
- <column label="" name="icon" />
- <column label="" name="sim_name" />
+ <column label="" name="icon"/>
+ <column label="" name="sim_name"/>
</scroll_list>
<text name="location_label">
Lokation:
</text>
- <spinner name="spin x" tool_tip="X koordinat for lokation der skal vises på kortet" />
- <spinner name="spin y" tool_tip="Y koordinat for lokation der skal vises på kortet" />
- <spinner name="spin z" tool_tip="Z koordinat for lokation der skal vises på kortet" />
- <button label="Teleport" label_selected="Teleport" name="Teleport"
- tool_tip="Teleportér til den valgte lokation" />
- <button label="Vis destination" label_selected="Vis destination"
- name="Show Destination" tool_tip="Centrér kortet på valgte lokation" />
- <button label="Slet" label_selected="Slet" name="Clear" tool_tip="Stop søg" />
- <button label="Vis min position" label_selected="Vis min position"
- name="Show My Location" tool_tip="Centrer kortet på din avatars lokation" />
- <button label="Kopiér SLURL til udklipsholder" name="copy_slurl"
- tool_tip="Kopierer den nuværende lokation som et SLURL, så det kan bruges på nettet." />
- <slider label="Zoom" name="zoom slider" />
+ <spinner name="spin x" tool_tip="X koordinat for lokation der skal vises på kortet"/>
+ <spinner name="spin y" tool_tip="Y koordinat for lokation der skal vises på kortet"/>
+ <spinner name="spin z" tool_tip="Z koordinat for lokation der skal vises på kortet"/>
+ <button label="Teleport" label_selected="Teleport" name="Teleport" tool_tip="Teleportér til den valgte lokation"/>
+ <button label="Vis destination" label_selected="Vis destination" name="Show Destination" tool_tip="Centrér kortet på valgte lokation"/>
+ <button label="Slet" label_selected="Slet" name="Clear" tool_tip="Stop søg"/>
+ <button label="Vis min position" label_selected="Vis min position" name="Show My Location" tool_tip="Centrer kortet på din avatars lokation"/>
+ <button label="Kopiér SLURL til udklipsholder" name="copy_slurl" tool_tip="Kopierer den nuværende lokation som et SLURL, så det kan bruges på nettet."/>
+ <slider label="Zoom" name="zoom slider"/>
</floater>
diff --git a/indra/newview/skins/default/xui/da/mime_types.xml b/indra/newview/skins/default/xui/da/mime_types.xml
index 8ffee47fb3..0b00a29f07 100644
--- a/indra/newview/skins/default/xui/da/mime_types.xml
+++ b/indra/newview/skins/default/xui/da/mime_types.xml
@@ -1,230 +1,230 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<mimetypes name="default">
- <widgetset name="web">
- <label name="web_label">
- Web indhold
- </label>
- <tooltip name="web_tooltip">
- Dette sted har web-indhold
- </tooltip>
- <playtip name="web_playtip">
- Vis web indhold
- </playtip>
- </widgetset>
- <widgetset name="movie">
- <label name="movie_label">
- Film
- </label>
- <tooltip name="movie_tooltip">
- Der er ingen film til afspilning her
- </tooltip>
- <playtip name="movie_playtip">
- Afspil film
- </playtip>
- </widgetset>
- <widgetset name="none">
- <label name="none_label">
- Intet indhold
- </label>
- <tooltip name="none_tooltip">
- Intet medie
- </tooltip>
- </widgetset>
- <widgetset name="image">
- <label name="image_label">
- Billede
- </label>
- <tooltip name="image_tooltip">
- Dette sted har et billede
- </tooltip>
- <playtip name="image_playtip">
- Vis billedet for dette sted
- </playtip>
- </widgetset>
- <widgetset name="audio">
- <label name="audio_label">
- Lyd
- </label>
- <tooltip name="audio_tooltip">
- Der er ingen lyd til afspilning her
- </tooltip>
- <playtip name="audio_playtip">
- Afspil denne lokations lyd/musik
- </playtip>
- </widgetset>
- <scheme name="rtsp">
- <label name="rtsp_label">
- Realtidsafspilning
- </label>
- </scheme>
- <mimetype name="blank">
- <label name="blank_label">
- - ingen -
- </label>
- </mimetype>
- <mimetype name="none/none">
- <label name="none/none_label">
- - None -
- </label>
- </mimetype>
- <mimetype name="audio/*">
- <label name="audio2_label">
- Lyd
- </label>
- </mimetype>
- <mimetype name="video/*">
- <label name="video2_label">
- Video
- </label>
- </mimetype>
- <mimetype name="image/*">
- <label name="image2_label">
- Billede
- </label>
- </mimetype>
- <mimetype name="video/vnd.secondlife.qt.legacy">
- <label name="vnd.secondlife.qt.legacy_label">
- Film (QuickTime)
- </label>
- </mimetype>
- <mimetype name="application/javascript">
- <label name="application/javascript_label">
- Javascript
- </label>
- </mimetype>
- <mimetype name="application/ogg">
- <label name="application/ogg_label">
- Ogg Lyd/Video
- </label>
- </mimetype>
- <mimetype name="application/pdf">
- <label name="application/pdf_label">
- PDF dokument
- </label>
- </mimetype>
- <mimetype name="application/postscript">
- <label name="application/postscript_label">
- Postscript dokument
- </label>
- </mimetype>
- <mimetype name="application/rtf">
- <label name="application/rtf_label">
- Rich Text (RTF)
- </label>
- </mimetype>
- <mimetype name="application/smil">
- <label name="application/smil_label">
- Synchronized Multimedia Integration Language (SMIL)
- </label>
- </mimetype>
- <mimetype name="application/xhtml+xml">
- <label name="application/xhtml+xml_label">
- Web side (XHTML)
- </label>
- </mimetype>
- <mimetype name="application/x-director">
- <label name="application/x-director_label">
- Macromedia Director
- </label>
- </mimetype>
- <mimetype name="application/x-shockwave-flash">
- <label name="application/x-shockwave-flash_label">
- Flash
- </label>
- </mimetype>
- <mimetype name="audio/mid">
- <label name="audio/mid_label">
- Lyd (MIDI)
- </label>
- </mimetype>
- <mimetype name="audio/mpeg">
- <label name="audio/mpeg_label">
- Lyd (MP3)
- </label>
- </mimetype>
- <mimetype name="audio/x-aiff">
- <label name="audio/x-aiff_label">
- Lyd (AIFF)
- </label>
- </mimetype>
- <mimetype name="audio/x-wav">
- <label name="audio/x-wav_label">
- Lyd (WAV)
- </label>
- </mimetype>
- <mimetype name="image/bmp">
- <label name="image/bmp_label">
- Billed (BMP)
- </label>
- </mimetype>
- <mimetype name="image/gif">
- <label name="image/gif_label">
- Billede (GIF)
- </label>
- </mimetype>
- <mimetype name="image/jpeg">
- <label name="image/jpeg_label">
- Billede (JPEG)
- </label>
- </mimetype>
- <mimetype name="image/png">
- <label name="image/png_label">
- Billed (PNG)
- </label>
- </mimetype>
- <mimetype name="image/svg+xml">
- <label name="image/svg+xml_label">
- Billede (SVG)
- </label>
- </mimetype>
- <mimetype name="image/tiff">
- <label name="image/tiff_label">
- Billede (TIFF)
- </label>
- </mimetype>
- <mimetype name="text/html">
- <label name="text/html_label">
- Web side
- </label>
- </mimetype>
- <mimetype name="text/plain">
- <label name="text/plain_label">
- Tekst
- </label>
- </mimetype>
- <mimetype name="text/xml">
- <label name="text/xml_label">
- XML
- </label>
- </mimetype>
- <mimetype name="video/mpeg">
- <label name="video/mpeg_label">
- Film (MPEG)
- </label>
- </mimetype>
- <mimetype name="video/mp4">
- <label name="video/mp4_label">
- Film (MP4)
- </label>
- </mimetype>
- <mimetype name="video/quicktime">
- <label name="video/quicktime_label">
- Film (QuickTime)
- </label>
- </mimetype>
- <mimetype name="video/x-ms-asf">
- <label name="video/x-ms-asf_label">
- Film (Windows Media ASF)
- </label>
- </mimetype>
- <mimetype name="video/x-ms-wmv">
- <label name="video/x-ms-wmv_label">
- Film (Windows Media WMV)
- </label>
- </mimetype>
- <mimetype name="video/x-msvideo">
- <label name="video/x-msvideo_label">
- Film (AVI)
- </label>
- </mimetype>
-</mimetypes>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<mimetypes name="default">
+ <widgetset name="web">
+ <label name="web_label">
+ Web indhold
+ </label>
+ <tooltip name="web_tooltip">
+ Dette sted har web-indhold
+ </tooltip>
+ <playtip name="web_playtip">
+ Vis web indhold
+ </playtip>
+ </widgetset>
+ <widgetset name="movie">
+ <label name="movie_label">
+ Film
+ </label>
+ <tooltip name="movie_tooltip">
+ Der er ingen film til afspilning her
+ </tooltip>
+ <playtip name="movie_playtip">
+ Afspil film
+ </playtip>
+ </widgetset>
+ <widgetset name="none">
+ <label name="none_label">
+ Intet indhold
+ </label>
+ <tooltip name="none_tooltip">
+ Intet medie
+ </tooltip>
+ </widgetset>
+ <widgetset name="image">
+ <label name="image_label">
+ Billede
+ </label>
+ <tooltip name="image_tooltip">
+ Dette sted har et billede
+ </tooltip>
+ <playtip name="image_playtip">
+ Vis billedet for dette sted
+ </playtip>
+ </widgetset>
+ <widgetset name="audio">
+ <label name="audio_label">
+ Lyd
+ </label>
+ <tooltip name="audio_tooltip">
+ Der er ingen lyd til afspilning her
+ </tooltip>
+ <playtip name="audio_playtip">
+ Afspil denne lokations lyd/musik
+ </playtip>
+ </widgetset>
+ <scheme name="rtsp">
+ <label name="rtsp_label">
+ Realtidsafspilning
+ </label>
+ </scheme>
+ <mimetype name="blank">
+ <label name="blank_label">
+ - ingen -
+ </label>
+ </mimetype>
+ <mimetype name="none/none">
+ <label name="none/none_label">
+ - None -
+ </label>
+ </mimetype>
+ <mimetype name="audio/*">
+ <label name="audio2_label">
+ Lyd
+ </label>
+ </mimetype>
+ <mimetype name="video/*">
+ <label name="video2_label">
+ Video
+ </label>
+ </mimetype>
+ <mimetype name="image/*">
+ <label name="image2_label">
+ Billede
+ </label>
+ </mimetype>
+ <mimetype name="video/vnd.secondlife.qt.legacy">
+ <label name="vnd.secondlife.qt.legacy_label">
+ Film (QuickTime)
+ </label>
+ </mimetype>
+ <mimetype name="application/javascript">
+ <label name="application/javascript_label">
+ Javascript
+ </label>
+ </mimetype>
+ <mimetype name="application/ogg">
+ <label name="application/ogg_label">
+ Ogg Lyd/Video
+ </label>
+ </mimetype>
+ <mimetype name="application/pdf">
+ <label name="application/pdf_label">
+ PDF dokument
+ </label>
+ </mimetype>
+ <mimetype name="application/postscript">
+ <label name="application/postscript_label">
+ Postscript dokument
+ </label>
+ </mimetype>
+ <mimetype name="application/rtf">
+ <label name="application/rtf_label">
+ Rich Text (RTF)
+ </label>
+ </mimetype>
+ <mimetype name="application/smil">
+ <label name="application/smil_label">
+ Synchronized Multimedia Integration Language (SMIL)
+ </label>
+ </mimetype>
+ <mimetype name="application/xhtml+xml">
+ <label name="application/xhtml+xml_label">
+ Web side (XHTML)
+ </label>
+ </mimetype>
+ <mimetype name="application/x-director">
+ <label name="application/x-director_label">
+ Macromedia Director
+ </label>
+ </mimetype>
+ <mimetype name="application/x-shockwave-flash">
+ <label name="application/x-shockwave-flash_label">
+ Flash
+ </label>
+ </mimetype>
+ <mimetype name="audio/mid">
+ <label name="audio/mid_label">
+ Lyd (MIDI)
+ </label>
+ </mimetype>
+ <mimetype name="audio/mpeg">
+ <label name="audio/mpeg_label">
+ Lyd (MP3)
+ </label>
+ </mimetype>
+ <mimetype name="audio/x-aiff">
+ <label name="audio/x-aiff_label">
+ Lyd (AIFF)
+ </label>
+ </mimetype>
+ <mimetype name="audio/x-wav">
+ <label name="audio/x-wav_label">
+ Lyd (WAV)
+ </label>
+ </mimetype>
+ <mimetype name="image/bmp">
+ <label name="image/bmp_label">
+ Billed (BMP)
+ </label>
+ </mimetype>
+ <mimetype name="image/gif">
+ <label name="image/gif_label">
+ Billede (GIF)
+ </label>
+ </mimetype>
+ <mimetype name="image/jpeg">
+ <label name="image/jpeg_label">
+ Billede (JPEG)
+ </label>
+ </mimetype>
+ <mimetype name="image/png">
+ <label name="image/png_label">
+ Billed (PNG)
+ </label>
+ </mimetype>
+ <mimetype name="image/svg+xml">
+ <label name="image/svg+xml_label">
+ Billede (SVG)
+ </label>
+ </mimetype>
+ <mimetype name="image/tiff">
+ <label name="image/tiff_label">
+ Billede (TIFF)
+ </label>
+ </mimetype>
+ <mimetype name="text/html">
+ <label name="text/html_label">
+ Web side
+ </label>
+ </mimetype>
+ <mimetype name="text/plain">
+ <label name="text/plain_label">
+ Tekst
+ </label>
+ </mimetype>
+ <mimetype name="text/xml">
+ <label name="text/xml_label">
+ XML
+ </label>
+ </mimetype>
+ <mimetype name="video/mpeg">
+ <label name="video/mpeg_label">
+ Film (MPEG)
+ </label>
+ </mimetype>
+ <mimetype name="video/mp4">
+ <label name="video/mp4_label">
+ Film (MP4)
+ </label>
+ </mimetype>
+ <mimetype name="video/quicktime">
+ <label name="video/quicktime_label">
+ Film (QuickTime)
+ </label>
+ </mimetype>
+ <mimetype name="video/x-ms-asf">
+ <label name="video/x-ms-asf_label">
+ Film (Windows Media ASF)
+ </label>
+ </mimetype>
+ <mimetype name="video/x-ms-wmv">
+ <label name="video/x-ms-wmv_label">
+ Film (Windows Media WMV)
+ </label>
+ </mimetype>
+ <mimetype name="video/x-msvideo">
+ <label name="video/x-msvideo_label">
+ Film (AVI)
+ </label>
+ </mimetype>
+</mimetypes>
diff --git a/indra/newview/skins/default/xui/da/notifications.xml b/indra/newview/skins/default/xui/da/notifications.xml
index 5e274fc454..eedc588449 100644
--- a/indra/newview/skins/default/xui/da/notifications.xml
+++ b/indra/newview/skins/default/xui/da/notifications.xml
@@ -1,1782 +1,1782 @@
-<?xml version="1.0" ?><notifications>
-
- <global name="skipnexttime">
-
- Vis ikke dette igen
- </global>
-
- <global name="alwayschoose">
-
- Vælg altid dette
- </global>
-
- <template name="okbutton">
- <form>
- <button
- name="OK"
- text="$yestext"/>
- </form>
- </template>
-
- <template name="okignore">
- <form>
- <button
- name="OK"
- text="$yestext"/>
- <ignore text="$ignoretext"/>
- </form>
- </template>
-
- <template name="okcancelbuttons">
- <form>
- <button
- name="OK"
- text="$yestext"/>
- <button
- name="Cancel"
- text="$notext"/>
- </form>
- </template>
-
- <template name="okcancelignore">
- <form>
- <button
- name="OK"
- text="$yestext"/>
- <button
- name="Cancel"
- text="$notext"/>
- <ignore text="$ignoretext"/>
- </form>
- </template>
-
- <template name="okhelpbuttons">
- <form>
- <button
- name="OK"
- text="$yestext"/>
- <button
- name="Help"
- text="$helptext"/>
- </form>
- </template>
-
- <template name="yesnocancelbuttons">
- <form>
- <button
- name="Yes"
- text="$yestext"/>
- <button
- name="No"
- text="$notext"/>
- <button
- name="Cancel"
- text="$canceltext"/>
- </form>
- </template>
-
- <notification
- functor="GenericAcknowledge"
-
- name="MissingAlert"
- >
-&apos;[_NAME]&apos; mangler fra notifications.xml.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="FloaterNotFound"
- >
-Floater error: Kunne ikke finde følgende kontrol:
-
-[CONTROLS]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="TutorialNotFound"
- >
-Der er i øjeblikket ingen tilgængelig guide.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GenericAlert"
- >
-[MESSAGE]
- </notification>
-
- <notification
-
- name="GenericAlertYesCancel"
- >
-[MESSAGE]
- <usetemplate
- name="okcancelbuttons"
- notext="Annullér"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="WearableSave"
- >
-Gem ændringer til nuværende tøj/krops del?
- <usetemplate
- canceltext="Annullér"
- name="yesnocancelbuttons"
- notext="Gem ikke"
- yestext="Gem"/>
- </notification>
-
- <notification
-
- name="CompileQueueSaveText"
- >
-Der var problemer med upload af teksten til et script af følgende årsager: [REASON]. Prøv igen senere.
- </notification>
-
- <notification
-
- name="CompileQueueSaveBytecode"
- >
-Der var problemer med at uploade den kompileret script af følgende årsager: [REASON]. Prøv igen senere.
- </notification>
-
- <notification
-
- name="WriteAnimationFail"
- >
-Der var et problem med skrivning af animations data. Prøv igen senere.
- </notification>
-
- <notification
-
- name="UploadAuctionSnapshotFail"
- >
-Der var problemer med at uploade billedet til auktionen af følgende årsager: [REASON]
- </notification>
-
- <notification
-
- name="UnableToViewContentsMoreThanOne"
- >
-Ude af stand til at se indholdet af mere end ét element ad gangen.
-Vælg kun en genstand, og prøv igen.
- </notification>
-
- <notification
-
- name="SaveClothingBodyChanges"
- >
-Gem alle ændringer til tøj/krops dele?
- <usetemplate
- canceltext="Annullér"
- name="yesnocancelbuttons"
- notext="Gem Ikke"
- yestext="Gem Alt"/>
- </notification>
-
- <notification
-
- name="GrantModifyRights"
- >
-At give redigerings rettigheder til en anden beboer, giver dem mulighed for at ændre, slette eller tage alle genstande, du måtte have i verden. Vær meget forsigtig når uddeler denne tilladelse.
-Ønsker du at ændre rettigheder for [FIRST_NAME] [LAST_NAME]?
- <usetemplate
- name="okcancelbuttons"
- notext="Nej"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="GrantModifyRightsMultiple"
- >
-At give redigerings rettigheder til en anden beboer, giver dem mulighed for at ændre, slette eller tage alle genstande, du måtte have i verden. Vær meget forsigtig når uddeler denne tilladelse.
-Ønsker du at ændre rettigheder for de valgte beboere?
- <usetemplate
- name="okcancelbuttons"
- notext="Nej"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="RevokeModifyRights"
- >
-Vil du tilbagekalde rettighederne for [FIRST_NAME] [LAST_NAME]?
- <usetemplate
- name="okcancelbuttons"
- notext="Nej"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="RevokeModifyRightsMultiple"
- >
-Vil du tilbagekalde rettighederne for de valgte beboere?
- <usetemplate
- name="okcancelbuttons"
- notext="Nej"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="UnableToCreateGroup"
- >
-Kunne ikke oprette gruppe.
-[MESSAGE]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="PanelGroupApply"
- >
-[NEEDS_APPLY_MESSAGE]
-[WANT_APPLY_MESSAGE]
- <usetemplate
- canceltext="Annullér"
- name="yesnocancelbuttons"
- notext="Ignorer Ændringer"
- yestext="Godkend Ændringer"/>
- </notification>
-
- <notification
-
- name="MustSpecifyGroupNoticeSubject"
- >
-Du skal angive et emne for at sende en gruppe besked.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="AddGroupOwnerWarning"
- >
-Du er ved at tilføje medlemmer til rollen som [ROLE_NAME].
-Medlemmer ikke kan fjernes fra denne rolle.
-Medlemmerne skal fratræde sin rolle selv.
-Er du sikker på du vil fortsætte?
- <usetemplate
- ignoretext="Når du tilføjer medlemmer til ejer rollen"
- name="okcancelignore"
- notext="Nej"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="AssignDangerousActionWarning"
- >
-Du er ved at tilføje muligheden for &apos;[ACTION_NAME]&apos; til
-rollen &apos;[ROLE_NAME]&apos;.
-
-*ADVARSEL*
-Ethvert medlem i en rolle med denne evne kan tildele sig selv -- og et andet medlem - roller med flere beføjelser, end de har i øjeblikket, potentielt kan de ophøje sig selv til nær-Ejer magt. Være sikker på, at du ved, hvad du laver, før tildeling af denne evne.
-
-Add this Ability to &apos;[ROLE_NAME]&apos;?
- <usetemplate
- name="okcancelbuttons"
- notext="Nej"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="ClickPublishHelpAvatar"
- >
-Hvis du vælger &quot;Vis i Søgning&quot; Vises:
-- Din profil i søgeresultater
-- Et link til din profile i de offentlige gruppe sider
- </notification>
-
- <notification
-
- name="ClickWebProfileHelpAvatar"
- >
-Hvis en beboer har en hjemmeside adresse kan du:
- * Klikke &apos;Load&apos; for at side deres side her.
- * Klikke Load &gt; &apos;I ekstern browser&apos; for at se siden i din standard browser.
- * Klikke Load &gt; &apos;Hjemme URL&apos; for at returnere til denne beboers side hvis du har navigeret væk.
-
-Når du ser din egen profil, kan du skrive hvilken som helst adresse og klikke ok for at få den vist i din egen profil.
-Andre beboere kan besøge den adresse du har sat, når de besøger din profil.
- </notification>
-
- <notification
-
- name="JoinGroupCannotAfford"
- >
-Tilmelding til denne gruppe koster L$[COST].
-Du har ikke nok L$ til denne tilmelding.
- </notification>
-
- <notification
-
- name="PromptMissingSubjMsg"
- >
-E-mail dette billede med standard emne eller besked?
- <usetemplate
- name="okcancelbuttons"
- notext="Annullér"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ErrorUploadingPostcard"
- >
-Der var et problem med at sende billedet på grund af følgende: [REASON]
- </notification>
-
- <notification
-
- name="MustHaveAccountToLogIn"
- >
-Ups! Noget var tomt.
-Du skal skrive både fornavn og efternavn på din figur.
-
-Du har brug for en konto for at logge ind i [SECOND_LIFE]. Vil du oprette en nu?
- <usetemplate
- name="okcancelbuttons"
- notext="Prøv igen"
- yestext="Lav ny konto"/>
- </notification>
-
- <notification
-
- name="ResetShowNextTimeDialogs"
- >
-Vil du gerne genaktivere alle disse popups, som du tidligere har bedt om ikke at få vist?
- <usetemplate
- name="okcancelbuttons"
- notext="Annullér"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SkipShowNextTimeDialogs"
- >
-Vil du deaktivere alle popups som kan undværes?
- <usetemplate
- name="okcancelbuttons"
- notext="Annullér"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ChangeSkin"
- >
-Det nye udseende vil vises efter du har genstartet [SECOND_LIFE].
- </notification>
-
- <notification
-
- name="UnsupportedHardware"
- >
- <form name="form">
- <ignore name="ignore"
- text="Ved opdagelse af ikke supporteret hardware"/>
- </form>
- </notification>
-
- <notification
-
- name="UnknownGPU"
- >
- <form name="form">
- <ignore name="ignore"
- text="Ved opdagelse af et ukendt grafikkort"/>
- </form>
- </notification>
-
- <notification
-
- name="CannotGiveCategory"
- >
-Du har ikke tilladelse til at videreføre den valgte mappe.
- </notification>
-
- <notification
-
- name="CannotBuyLandNoRegion"
- >
-Ikke i stand til at købe land:
-Kan ikke finde region som dette land er i.
- </notification>
-
- <notification
-
- name="YouHaveBeenLoggedOut"
- >
-Du er blevet logget ud af [SECOND_LIFE]:
- [MESSAGE]
-Du kan stadig se eksiterende PB&apos;er og chat ved at klikke&apos;Se PB &amp; Chat&apos;. Ellers, klik &apos;Afslut&apos; for at afslutte [SECOND_LIFE] nu.
- <usetemplate
- name="okcancelbuttons"
- notext="Quit"
- yestext="Se IM &amp; Chat"/>
- </notification>
-
- <notification
-
- label="Add Friend"
- name="AddFriend"
- >
-Venner kan give tilladelse til at følge hinanden
-på Verdenskortet eller modtage status opdateringer.
-
-Tilbyd venskab til [NAME]?
- <usetemplate
- name="okcancelbuttons"
- notext="Annullér"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Add Friend"
- name="AddFriendWithMessage"
- >
-Venner kan give tilladelse til at følge hinanden
-på Verdenskortet eller modtage status opdateringer.
-
-Tilbyd venskab til [NAME]?
- <form name="form">
- <input name="message" type="text">
-Vil du være min ven?
- </input>
- <button
-
-
- name="Offer"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annullér"/>
- </form>
- </notification>
-
- <notification
-
- name="NotEnoughCurrency"
- >
-[NAME] L$ [PRICE] Du har ikke nok L$ til dette.
- </notification>
-
- <notification
-
- name="HelpReportAbuseEmailLL"
- >
-Brug dette værktøj for at rapportere brud på de almindelige bestemmelser og fællesskabs Standarder. Se:
-
-http://secondlife.com/corporate/tos.php
-http://secondlife.com/corporate/cs.php
-
-Alle rapporterede brud på almindelige bestemmelser og fællesskabs Standarder bliver undersøgt og løst. Du kan følge løsningen på din anmeldselse på:
-
-http://secondlife.com/support/incidentreport.php
- </notification>
-
- <notification
-
- name="HelpReportAbuseContainsCopyright"
- >
-Dear Resident,
-
-Du ser ud til at være ved at rapportere noget vedr. krænkelse af intellektuelle ejendomsrettigheder. Sørg for, at du rapporterer dette korrekt:
-
-(1) Misbrugs processen. Du kan indsende en misbrugs rapport, hvis du mener, at en Beboer udnytter Second Life&apos;s rettigheds system, for eksempel ved hjælp af en CopyBot eller lignende kopierings værktøjer, at de krænker intellektuelle ejendomsrettigheder. Det team vil undersøge og spørgsmål passende disciplinære sanktioner for adfærd, der overtræder Second Life EF-standarderne eller Servicevilkår. Men det team vil ikke håndtere og vil ikke reagere på anmodninger om at fjerne indhold fra Second Life&apos;s verden.
-
-(2) DMCA eller Indholds fjernelses processen. For at anmode om fjernelse af indhold fra Second Life, skal du sende en gyldig anmeldelse af overtrædelsen som beskrevet i vores DMCA-politik på http://secondlife.com/corporate/dmca.php.
-
-Hvis du stadig ønsker at fortsætte med misbrugs processen, luk da venligst dette vindue og færdiggør indsendelsen af din rapport. Du kan være nødt til at vælge den særlige kategori »CopyBot eller Tilladelses Ydnyttelse.
-
-Mange tak,
-
-Linden Lab
- </notification>
-
- <notification
-
- name="ConfirmClearCookies"
- >
-Er du sikker på du vil slette alle cookies?
- </notification>
-
- <notification
-
- name="ChatterBoxSessionStartError"
- >
-Ikke i stand til at start chat med [RECIPIENT].
-[REASON]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="Cannot_Purchase_an_Attachment"
- >
-Ting kan ikke købes imens de er en del af tilbehør.
- </notification>
-
- <notification
-
- name="NewWaterPreset"
- >
- <form name="form">
- <input name="message" type="text">
-Ny forudindstilling
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annullér"/>
- </form>
- </notification>
-
- <notification
-
- name="NewSkyPreset"
- >
- <form name="form">
- <input name="message" type="text">
-Ny forudindstilling
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annullér"/>
- </form>
- </notification>
-
- <notification
-
- name="OfferTeleport"
- >
- <form name="form">
- <input name="message" type="text">
-Mød mig i [REGION]
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annullér"/>
- </form>
- </notification>
-
- <notification
-
- name="SystemMessageTip"
- >
-[MESSAGE]
- </notification>
-
- <notification
-
- name="Cancelled"
- >
-Annulléret
- </notification>
-
- <notification
-
- name="CancelledSit"
- >
-Annulléret sid
- </notification>
-
- <notification
-
- name="CancelledAttach"
- >
-Annulléreret vedhæft
- </notification>
-
- <notification
-
- name="ReplacedMissingWearable"
- >
-Erstattet manglende tøj/kropsdele med standard.
- </notification>
-
- <notification
-
- name="FriendOnline"
- >
-[FIRST] [LAST] er Online
- </notification>
-
- <notification
-
- name="FriendOffline"
- >
-[FIRST] [LAST] er Offline
- </notification>
-
- <notification
-
- name="AddSelfFriend"
- >
-Du kan ikke tilføje dig selv som ven.
- </notification>
-
- <notification
-
- name="UploadingAuctionSnapshot"
- >
-Uploader billeder fra verdenen og www...
-(Tager omkring 5 minutter.)
- </notification>
-
- <notification
-
- name="UploadPayment"
- >
-Du betalte L$[AMOUNT] for at uploade.
- </notification>
-
- <notification
-
- name="UploadWebSnapshotDone"
- >
-Billeder fra www er uploadet.
- </notification>
-
- <notification
-
- name="UploadSnapshotDone"
- >
-Billeder fra verdenen er uploadet
- </notification>
-
- <notification
-
- name="TerrainDownloaded"
- >
-Terrain.raw downloadet
- </notification>
-
- <notification
-
- name="GestureMissing"
- >
-Gestus [NAME] mangler i databasen.
- </notification>
-
- <notification
-
- name="UnableToLoadGesture"
- >
-Ikke muligt at indlæse gestus [NAME].
-Prøv venligst igen.
- </notification>
-
- <notification
-
- name="LandmarkMissing"
- >
-Landmærke mangler i databasen.
- </notification>
-
- <notification
-
- name="UnableToLoadLandmark"
- >
-Ikke muligt at indlæse landmærke. Prøv venligst igen.
- </notification>
-
- <notification
-
- name="CapsKeyOn"
- >
-Du har slået store bogstaver til.
-Da det vil have betydning når du indtaster kodeordet, vil du højest sandsynlig slå dem fra.
- </notification>
-
- <notification
-
- name="NotecardMissing"
- >
-Note mangler i databasen.
- </notification>
-
- <notification
-
- name="NotecardNoPermissions"
- >
-Utilstrækkelige tilladelser til at se note.
- </notification>
-
- <notification
-
- name="RezItemNoPermissions"
- >
-Utilstrækkelige tilladelser til at danne genstanden.
- </notification>
-
- <notification
-
- name="UnableToLoadNotecard"
- >
-Ikke muligt at indlæse note.
-Prøv venligst igen.
- </notification>
-
- <notification
-
- name="ScriptMissing"
- >
-Script mangler i databasen.
- </notification>
-
- <notification
-
- name="ScriptNoPermissions"
- >
-Utilstrækkelige tilladelser til at se script.
- </notification>
-
- <notification
-
- name="UnableToLoadScript"
- >
-Ikke muligt at indlæse script. Prøv venligst igen.
- </notification>
-
- <notification
-
- name="IncompleteInventory"
- >
-Det komplette indhold, du tilbyder, er ikke endnu tilgængelig lokalt. Prøv venligst at tilbyde tingene igen om lidt.
- </notification>
-
- <notification
-
- name="CannotModifyProtectedCategories"
- >
-Du kan ikke ændre beskyttede kategorier.
- </notification>
-
- <notification
-
- name="CannotRemoveProtectedCategories"
- >
-Du kan ikke fjerne beskyttede kategorier.
- </notification>
-
- <notification
-
- name="OfferedCard"
- >
-Du har tilbudt et visitkort til [FIRST] [LAST]
- </notification>
-
- <notification
-
- name="OfferedFriendship"
- >
-Du har tilbudt venskab til [FIRST] [LAST]
- </notification>
-
- <notification
-
- name="UnableToBuyWhileDownloading"
- >
-Ikke muligt at købe, imens genstandens data hentes.
-Prøv venligst igen.
- </notification>
-
- <notification
-
- name="UnableToLinkWhileDownloading"
- >
-Ikke muligt at lænke imens genstandens data hentes.
-Prøv venligst igen.
- </notification>
-
- <notification
-
- name="CannotBuyObjectsFromDifferentOwners"
- >
-Kan ikke købe genstande fra forskellige ejere på samme tid.
-Prøv venligst at vælge en enkelt genstand.
- </notification>
-
- <notification
-
- name="ObjectNotForSale"
- >
-Genstanden ser ikke ud til at være til salg.
- </notification>
-
- <notification
-
- name="EnteringGodMode"
- >
-Starter gud-tilstand, niveau [LEVEL]
- </notification>
-
- <notification
-
- name="LeavingGodMode"
- >
-Stopper gud-tilstand, niveau [LEVEL]
- </notification>
-
- <notification
-
- name="CopyFailed"
- >
-Kopiering lykkedes ikke fordi du ikke har nok tilladelser til at kopiere
- </notification>
-
- <notification
-
- name="InventoryAccepted"
- >
-[NAME] accepterede det du tilbød fra din beholdning.
- </notification>
-
- <notification
-
- name="InventoryDeclined"
- >
-[NAME] afviste det du tilbød fra din beholdning.
- </notification>
-
- <notification
-
- name="ObjectMessage"
- >
-[NAME]: [MESSAGE]
- </notification>
-
- <notification
-
- name="CallingCardAccepted"
- >
-Dit visitkort blev accepteret.
- </notification>
-
- <notification
-
- name="CallingCardDeclined"
- >
-Dit visitkort blev afvist.
- </notification>
-
- <notification
-
- name="TeleportToLandmark"
- >
-Nu hvor du er nået frem til hovedlandet, kan du teleportere til steder som &apos;[NAME]&apos; ved at klikke på Beholdning-knappen i nederste højre side af skærmen hvorefter du vælger Landmærke-mappen.
-Dobbeltklik på landmærket og klik på Teleportér, for at rejse derhen.
- </notification>
-
- <notification
-
- name="TeleportToPerson"
- >
-Nu hvor du har nået frem til hovedlandet, kan du kontakte indbyggere som &apos;[NAME]&apos; ved at klikke på Beholdning-knappen i nederste højre side af skærmen, hvorefter du vælger Visitkort-mappen.
-Dobbeltklik på kortet, klik på IM og skriv beskeden.
- </notification>
-
- <notification
-
- name="CantSelectLandFromMultipleRegions"
- >
-Kan ikke vælge land på tværs af grænser.
-Prøv at vælge mindre stykker land.
- </notification>
-
- <notification
-
- name="GroupVote"
- >
-[NAME] har forslået at stemme for:
-[MESSAGE]
- <form name="form">
- <button
-
- name="VoteNow"
- text="Stem nu"/>
- <button
-
- name="Later"
- text="Senere"/>
- </form>
- </notification>
-
- <notification
-
- name="SystemMessage"
- >
-[MESSAGE]
- </notification>
-
- <notification
-
- name="EventNotification"
- >
-Besked om begivenhed:
-
-[NAME]
-[DATE]
- <form name="form">
- <button
-
- name="Teleport"
- text="Teleportér"/>
- <button
-
- name="Description"
- text="Beskrivelse"/>
- <button
-
- name="Cancel"
- text="Annullér"/>
- </form>
- </notification>
-
- <notification
-
- name="TransferObjectsHighlighted"
- >
-Alle genstande på denne grund, som vil blive overført til køberen af denne grund, er nu oplyst.
-
-* Træer og græs, der vil blive overført, er ikke fremhævet.
- <form name="form">
- <button
-
- name="Done"
- text="Færdig"/>
- </form>
- </notification>
-
- <notification
-
- name="DeactivatedGesturesTrigger"
- >
-Deaktiverede bevægelser med samme udløser: [NAMES]
- </notification>
-
- <notification
-
- name="NoQuickTime"
- >
-Apple&apos;s QuickTime ser ikke ud til at være installeret på computeren.
-Hvis du vil se live transmitteret medie på grunde, der understøtter det, skal du gå ind på QuickTime-siden (http://www.apple.dk/quicktime) og installere QuickTime afspilleren.
- </notification>
-
- <notification
-
- name="OwnedObjectsReturned"
- >
-De genstande du ejer på det valgte stykke land er blevet returneret til din beholdning.
- </notification>
-
- <notification
-
- name="OtherObjectsReturned"
- >
-Genstandene på det valgte stykke land der er ejet af [FIRST] [LAST] er blevet returneret til hans eller hendes beholdning.
- </notification>
-
- <notification
-
- name="OtherObjectsReturned2"
- >
-Genstandene på det valgte stykke land der er ejet af beboeren &apos;[NAME]&apos; er blevet returneret til deres ejere.
- </notification>
-
- <notification
-
- name="GroupObjectsReturned"
- >
-Genstandene på det valgte stykke land, delt med gruppen [GROUPNAME], er blevet returneret til deres ejeres beholdninger.
-Genstande, som er dedikerede og som kan overføres, er blevet returneret til deres forrige ejere.
-Genstande, der ikke kan overføres og som er dedikeret til gruppen, er blevet slettet.
- </notification>
-
- <notification
-
- name="UnOwnedObjectsReturned"
- >
-Genstandene på det valgte stykke land, der IKKE er ejet af dig, er blevet returneret til deres ejere.
- </notification>
-
- <notification
-
- name="NotSafe"
- >
-Dette land har sat skade til (&apos;ikke sikker&apos;).
-Du kan komme til skade her. Hvis du dør, vil du blive teleporteret til din hjem-lokalitet.
- </notification>
-
- <notification
-
- name="NoFly"
- >
-Dette land har slået flyvning fra (&apos;ingen flyvning&apos;).
-Du kan ikke flyve her.
- </notification>
-
- <notification
-
- name="PushRestricted"
- >
-Dette land giver ikke mulighed for at &apos;skubbe&apos; andre, med mindre du ejer landet.
- </notification>
-
- <notification
-
- name="NoVoice"
- >
-Dette land har ikke mulighed for at bruge stemme.
- </notification>
-
- <notification
-
- name="NoBuild"
- >
-Dette land giver ikke mulighed for at bygge (&apos;byggeri forbudt&apos;).
-Du kan ikke skabe genstande her.
- </notification>
-
- <notification
-
- name="ScriptsStopped"
- >
-En administrator har midlertidig stoppet scripts i denne region.
- </notification>
-
- <notification
-
- name="ScriptsNotRunning"
- >
-Denne region kører ikke nogen scripts.
- </notification>
-
- <notification
-
- name="NoOutsideScripts"
- >
-Dette land har eksterne scripts slået fra
-(&apos;ingen eksterne scripts&apos;).
-Ingen scripts vil køre på nær dem, som tilhører ejeren af landet.
- </notification>
-
- <notification
-
- name="ClaimPublicLand"
- >
-Du kan kun gøre krav på offentlig land i den region, du befinder dig i.
- </notification>
-
- <notification
-
- name="ObjectGiveItem"
- >
-En genstand med navnet [OBJECTFROMNAME], ejet af [FIRST] [LAST], har givet dig en/et [OBJECTTYPE] med navnet [OBJECTNAME].
- <form name="form">
- <button
-
- name="Keep"
- text="Behold"/>
- <button
-
- name="Discard"
- text="Smid væk"/>
- <button
-
- name="Mute"
- text="Blokér"/>
- </form>
- </notification>
-
- <notification
-
- name="ObjectGiveItemUnknownUser"
- >
-En genstand med navnet [OBJECTFROMNAME], ejet af (en ukendt bruger), har givet dig en/et [OBJECTTYPE] med navnet [OBJECTNAME].
- <form name="form">
- <button
-
- name="Keep"
- text="Behold"/>
- <button
-
- name="Discard"
- text="Smid væk"/>
- <button
-
- name="Mute"
- text="Blokér"/>
- </form>
- </notification>
-
- <notification
-
- name="UserGiveItem"
- >
-[NAME] har givet dig en/et [OBJECTTYPE] med navnet &apos;[OBJECTNAME]&apos;.
- <form name="form">
- <button
-
- name="Keep"
- text="Behold"/>
- <button
-
- name="Discard"
- text="Smid væk"/>
- <button
-
- name="Mute"
- text="Blokér"/>
- </form>
- </notification>
-
- <notification
-
- name="GodMessage"
- >
-[NAME]
-[MESSAGE]
- </notification>
-
- <notification
-
- name="JoinGroup"
- >
-[MESSAGE]
- <form name="form">
- <button
-
- name="Join"
- text="Indmeld"/>
- <button
-
- name="Decline"
- text="Afvis"/>
- <button
-
- name="Info"
- text="Information"/>
- </form>
- </notification>
-
- <notification
-
- name="TeleportOffered"
- >
-[NAME] har tilbudt at teleportere dig til hans eller hendes lokalitet:
-
-[MESSAGE]
- <form name="form">
- <button
-
- name="Teleport"
- text="Teleportér"/>
- <button
-
- name="Cancel"
- text="Annullér"/>
- </form>
- </notification>
-
- <notification
-
- name="GotoURL"
- >
-[MESSAGE]
-[URL]
- <form name="form">
- <button
-
- name="Later"
- text="Senere"/>
- <button
-
- name="GoNow..."
- text="Gå nu..."/>
- </form>
- </notification>
-
- <notification
-
- name="OfferFriendship"
- >
-[NAME] tilbyder venskab.
-
-Som standard vil du kunne se andres onlinestatus.
- <form name="form">
- <button
-
- name="Accept"
- text="Acceptér"/>
- <button
-
- name="Decline"
- text="Afvis"/>
- </form>
- </notification>
-
- <notification
-
- name="FriendshipAccepted"
- >
-[NAME] accepterede dit tilbud om venskab.
- </notification>
-
- <notification
-
- name="FriendshipDeclined"
- >
-[NAME] afviste dit tilbud om venskab.
- </notification>
-
- <notification
-
- name="OfferCallingCard"
- >
-[FIRST] [LAST] tilbyder vedkommendes visitkort.
-Dette vil tilføje et bogmærke i din beholdning, så du hurtigt kan sende en personlig besked (IM) til denne beboer.
- <form name="form">
- <button
-
- name="Accept"
- text="Acceptér"/>
- <button
-
- name="Decline"
- text="Afvis"/>
- </form>
- </notification>
-
- <notification
-
- name="RegionRestartMinutes"
-
-
- >
-Regionen genstarter om [MINUTES] minutter.
-Hvis du bliver i denne region, vil du blive logget af.
- </notification>
-
- <notification
-
- name="RegionRestartSeconds"
-
-
- >
-Regionen genstarter om [SECONDS] sekunder.
-Hvis du bliver i denne region, vil du blive logget af.
- </notification>
-
- <notification
-
- name="LoadWebPage"
- >
-Indlæs internetside [URL]?
-
-[MESSAGE]
-
-Fra genstand: [OBJECTNAME], ejer: [NAME]?
- <form name="form">
- <button
-
- name="Gotopage"
- text="Gå til side"/>
- <button
-
- name="Cancel"
- text="Afbryd"/>
- </form>
- </notification>
-
- <notification
-
- name="FailedToFindWearableUnnamed"
- >
-Det lykkedes ikke at finde [TYPE] i databasen.
- </notification>
-
- <notification
-
- name="FailedToFindWearable"
- >
-Det lykkedes ikke at finde [TYPE] med navnet [DESC] i databasen.
- </notification>
-
- <notification
-
- name="ScriptQuestion"
- >
-&apos;[OBJECTNAME]&apos;, en genstand, ejet af &apos;[NAME]&apos;, vil gerne:
- [QUESTIONS]
-Er det iorden?
- <form name="form">
- <button
-
- name="Yes"
- text="Ja"/>
- <button
-
- name="No"
- text="Nej"/>
- <button
-
- name="Mute"
- text="Blokér"/>
- </form>
- </notification>
-
- <notification
-
- name="ScriptQuestionCaution"
- >
-&apos;[OBJECTNAME]&apos;, en genstand, ejet af &apos;[NAME]&apos;, vil gerne:
-
-[QUESTIONS]
-Hvis du ikke har tillid til denne genstand og dens skaber, bør du afvise denne forespørgsel. For yderligere information klik på Detaljer-knappen.
-
-Imødekom denne forespørgsel?
- <form name="form">
- <button
-
- name="Grant"
- text="Imødekom"/>
- <button
-
- name="Deny"
- text="Afvis"/>
- <button
-
- name="Details"
- text="Detaljer..."/>
- </form>
- </notification>
-
- <notification
-
- name="ScriptDialog"
- >
-[FIRST] [LAST]&apos;s &apos;[TITLE]&apos;
-[MESSAGE]
- <form name="form">
- <button
-
- name="Ignore"
- text="Ignorér"/>
- </form>
- </notification>
-
- <notification
-
- name="ScriptDialogGroup"
- >
-[GROUPNAME]&apos;s &apos;[TITLE]&apos;
-[MESSAGE]
- <form name="form">
- <button
-
- name="Ignore"
- text="Ignorér"/>
- </form>
- </notification>
-
- <notification
-
- name="FirstBalanceIncrease"
- >
-Du har lige modtaget L$[AMOUNT].
-Genstande og andre brugere kan give dig L$.
-Din saldo er vist i øverste højre hjørne af skærmen.
- </notification>
-
- <notification
-
- name="FirstBalanceDecrease"
- >
-Du har lige modtaget L$[AMOUNT].
-Din saldo er vist i øverste højre hjørne af skærmen.
- </notification>
-
- <notification
-
- name="FirstSit"
- >
-Du sidder.
-Brug piletasterne (eller AWSD) for at ændre hvilken vej du ser.
-Klik på &apos;Stå op&apos;-knappen for at rejse dig op.
- </notification>
-
- <notification
-
- name="FirstMap"
- >
-Klik og træk for at flytte kortvisningen.
-Dobbelt-klik for at teleportere.
-Brug kontrollerne til højre for at finde ting og se forskellige baggrunde.
- </notification>
-
- <notification
-
- name="FirstBuild"
- >
-Du kan bygge nye genstande i nogle områder af [SECOND_LIFE].
-Brug værktøjet øverst til venstre for at bygge, og prøv at holde Ctrl eller Alt nede for hurtigt at skifte imellem værktøjerne.
-Tryk Esc for at stoppe med at bygge.
- </notification>
-
- <notification
-
- name="FirstLeftClickNoHit"
- >
-Venstre-klik interagerer med specielle genstande.
-Hvis musemarkøren ændrer sig til en hånd, kan du interagere med genstanden.
-Højre-klik viser altid en menu med ting du kan gøre.
- </notification>
-
- <notification
-
- name="FirstTeleport"
- >
-Du har lige teleporteret.
-Du er ved info-standen nærmest ved din destination.
-Din destination er markeret med en stor rød lyskegle.
- </notification>
-
- <notification
-
- name="FirstOverrideKeys"
- >
-Dine bevælgelsestaster bliver nu håndteret af et objekt.
-Brug piletasterne eller AWSD for at se, hvad de gør.
-Nogle genstande (som skydevåben) kræver at du går ind i musevisning for at bruge dem.
-Tryk på &apos;M&apos; for at gåre det.
- </notification>
-
- <notification
-
- name="FirstAppearance"
- >
-Du tilretter dit udseende.
-For at rotere og zoome brug piletasterne.
-Når du er færdig, tryk på &apos;Gem alt&apos; for at gemme dit udseende og lukke.
-Du kan rette dit udseende så tit du vil.
- </notification>
-
- <notification
-
- name="FirstInventory"
- >
-Dette er din beholdning, der indeholder objekter, noter, tøj og andre ting du ejer.
-* For at bære et objekt eller en mappe med tøj, træk den over på dig selv.
-* For at få et objekt frem i verdenen, træk den ud på jorden.
-* For at læse en note, dobbeltklik på den.
- </notification>
-
- <notification
-
- name="FirstSandbox"
- >
-Dette er sandkasseområdet.
-Genstande, der er skabt her, vil blive slettet efter du har forladt området. Sandkasser renses jævnligt. Se venligst informationen øverst på skærmen, lige ved siden af områdenavnet.
-
-Sandkasseområder er ikke almindelige. De er mærket med skilte.
- </notification>
-
- <notification
-
- name="FirstFlexible"
- >
-Denne genstand er fleksibel.
-Fleksible genstande er ikke fysiske og man kan gå igennem dem, indtil fleksibel-punktet ikke er afkrydset.
- </notification>
-
- <notification
-
- name="FirstDebugMenus"
- >
-Du har sat avanceret menu til.
-Denne menu indeholder funktioner brugbare for udviklere, der udbedrer fejl i Second Life.
-For at vise denne menu, skal man i Windows trykke Ctrl-Alt-D. På Mac tryk Cmd-Opt-Shift-D.
- </notification>
-
- <notification
-
- name="FirstSculptedPrim"
- >
-Du retter en sculpted prim.
-Sculpted prims kræver et specielt tekstur for at specificere deres form.
-Du kan finde eksempler på sculptede teksturer i din beholdning.
- </notification>
-
- <notification
-
- name="FirstMedia"
- >
-Du er begyndt at afspille medie. Medie kan sættes til automatisk af blive afspillet under Indstillinger, Lyd / Video. Vær opmærksom på, at der kan være en sikkerhedsrisiko for medie-steder, du ikke stoler på.
- </notification>
-
- <notification
-
- name="MaxListSelectMessage"
- >
-Du må kun vælge op til [MAX_SELECT] genstande på denne liste.
- </notification>
-
- <notification
-
- name="VoiceInviteP2P"
- >
-[NAME] inviterer dig til en stemme-chat.
-Klik for at acceptere at koble dig på samtalen eller Afvis for at afvise invitationen. Klik på Slå fra for at blokere denne opkalder.
- <form name="form">
- <button
-
- name="Accept"
- text="Acceptér"/>
- <button
-
- name="Decline"
- text="Afvis"/>
- <button
-
- name="Mute"
- text="Blokér"/>
- </form>
- </notification>
-
- <notification
-
- name="AutoUnmuteByIM"
- >
-[FIRST] [LAST] har fået en personlig besked (IM) og er automatisk ikke blokeret mere.
- </notification>
-
- <notification
-
- name="AutoUnmuteByMoney"
- >
-[FIRST] [LAST] har fået penge og er automatisk ikke blokeret mere.
- </notification>
-
- <notification
-
- name="AutoUnmuteByInventory"
- >
-[FIRST] [LAST] har fået tilbudt genstande og er automatisk ikke blokeret mere.
- </notification>
-
- <notification
-
- name="VoiceInviteGroup"
- >
-[NAME] har tilsluttet sig stemme-chat med gruppen [GROUP].
-Klik Acceptér for at slutte dig til samtalen eller Afvis for at afvise invitationen. Klik Slå fra for at blokere denne opkalder.
- <form name="form">
- <button
-
- name="Accept"
- text="Acceptér"/>
- <button
-
- name="Decline"
- text="Afvis"/>
- <button
-
- name="Mute"
- text="Blokér"/>
- </form>
- </notification>
-
- <notification
-
- name="VoiceInviteAdHoc"
- >
-[NAME] har tilsluttet sig stemme-chat med en konference-chat.
-Klik Acceptér for at slutte dig til samtalen eller Afvis for at afvise invitationen. Klik Slå fra for at blokere denne opkalder.
- <form name="form">
- <button
-
- name="Accept"
- text="Acceptér"/>
- <button
-
- name="Decline"
- text="Afvis"/>
- <button
-
- name="Mute"
- text="Blokér"/>
- </form>
- </notification>
-
- <notification
-
- name="InviteAdHoc"
- >
-[NAME] inviterer dig til en konference-chat.
-Klik Acceptér for at slutte dig til samtalen eller Afvis for at afvise invitationen. Klik Slå fra for at blokere denne opkalder.
- <form name="form">
- <button
-
- name="Accept"
- text="Acceptér"/>
- <button
-
- name="Decline"
- text="Afvis"/>
- <button
-
- name="Mute"
- text="Blokeret"/>
- </form>
- </notification>
-
- <notification
-
- name="VoiceChannelFull"
- >
-Den stemme-chat, du prøver at tilslutte dig, [VOICE_CHANNEL_NAME], har nået maksiumum kapacitet. Prøv venligst igen senere.
- </notification>
-
- <notification
-
- name="ProximalVoiceChannelFull"
- >
-Vi beklager. Dette område har nået sin maksimale kapacitet for stemme-chat. Prøv venligst at benytte stemme i et andet område.
- </notification>
-
- <notification
-
- name="VoiceChannelDisconnected"
- >
-Du er blevet koblet af [VOICE_CHANNEL_NAME]. Du vil nu blive koblet op på en lokal stemme-chat.
- </notification>
-
- <notification
-
- name="VoiceChannelDisconnectedP2P"
- >
-[VOICE_CHANNEL_NAME] har afsluttet opkaldet. Du vil nu blive koblet op på en lokal stemme-chat.
- </notification>
-
- <notification
-
- name="P2PCallDeclined"
- >
-[VOICE_CHANNEL_NAME] har afvist dit opkald. Du vil nu blive koblet op på en lokal stemme-chat.
- </notification>
-
- <notification
-
- name="P2PCallNoAnswer"
- >
-[VOICE_CHANNEL_NAME] har ikke mulighed for at besvare dit opkald. Du vil nu blive koblet op på en lokal chat.
- </notification>
-
- <notification
-
- name="VoiceChannelJoinFailed"
- >
-Det lykkedes ikke at koble op til [VOICE_CHANNEL_NAME]. Prøv venligst igen senere.
- </notification>
-
- <notification
-
- name="VoiceLoginRetry"
- >
-Vi laver en stemmekanal til dig. Det kan tage op til et minut.
- </notification>
-
- <notification
-
- name="Cannot enter parcel: not a group member"
- >
-Du kan ikke komme ind på området. Du er ikke medlem af den nødvendige gruppe.
- </notification>
-
- <notification
-
- name="Cannot enter parcel: banned"
- >
-Du kan ikke komme ind på området. Du er blevet udelukket.
- </notification>
-
- <notification
-
- name="Cannot enter parcel: not on access list"
- >
-Du kan ikke komme ind på området. Du er ikke på adgangslisten.
- </notification>
-
- <notification
-
- name="VoiceNotAllowed"
- >
-Du har ikke tilladelse til at tilslutte dig stemme-chat på [VOICE_CHANNEL_NAME].
- </notification>
-
- <notification
-
- name="VoiceCallGenericError"
- >
-En fejl er opstået under forsøget på at koble sig på stemme chatten [VOICE_CHANNEL_NAME]. Pråv venligst senere.
- </notification>
-
- <notification
-
- name="ServerVersionChanged"
- >
-Det område, du er kommet ind på, kører en anden simulatorversion. Klik på denne besked for detaljer.
- </notification>
-
- <notification
-
- name="UnableToOpenCommandURL"
- >
-Www-adressen, du har klikket på, kan ikke åbnes fra denne internetbrowser.
- </notification>
-</notifications>
-
+<?xml version="1.0" ?><notifications>
+
+ <global name="skipnexttime">
+
+ Vis ikke dette igen
+ </global>
+
+ <global name="alwayschoose">
+
+ Vælg altid dette
+ </global>
+
+ <template name="okbutton">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ </form>
+ </template>
+
+ <template name="okignore">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <ignore text="$ignoretext"/>
+ </form>
+ </template>
+
+ <template name="okcancelbuttons">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <button
+ name="Cancel"
+ text="$notext"/>
+ </form>
+ </template>
+
+ <template name="okcancelignore">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <button
+ name="Cancel"
+ text="$notext"/>
+ <ignore text="$ignoretext"/>
+ </form>
+ </template>
+
+ <template name="okhelpbuttons">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <button
+ name="Help"
+ text="$helptext"/>
+ </form>
+ </template>
+
+ <template name="yesnocancelbuttons">
+ <form>
+ <button
+ name="Yes"
+ text="$yestext"/>
+ <button
+ name="No"
+ text="$notext"/>
+ <button
+ name="Cancel"
+ text="$canceltext"/>
+ </form>
+ </template>
+
+ <notification
+ functor="GenericAcknowledge"
+
+ name="MissingAlert"
+ >
+&apos;[_NAME]&apos; mangler fra notifications.xml.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+
+ name="FloaterNotFound"
+ >
+Floater error: Kunne ikke finde følgende kontrol:
+
+[CONTROLS]
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+
+ name="TutorialNotFound"
+ >
+Der er i øjeblikket ingen tilgængelig guide.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+
+ name="GenericAlert"
+ >
+[MESSAGE]
+ </notification>
+
+ <notification
+
+ name="GenericAlertYesCancel"
+ >
+[MESSAGE]
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Annullér"
+ yestext="Ja"/>
+ </notification>
+
+ <notification
+
+ name="WearableSave"
+ >
+Gem ændringer til nuværende tøj/krops del?
+ <usetemplate
+ canceltext="Annullér"
+ name="yesnocancelbuttons"
+ notext="Gem ikke"
+ yestext="Gem"/>
+ </notification>
+
+ <notification
+
+ name="CompileQueueSaveText"
+ >
+Der var problemer med upload af teksten til et script af følgende årsager: [REASON]. Prøv igen senere.
+ </notification>
+
+ <notification
+
+ name="CompileQueueSaveBytecode"
+ >
+Der var problemer med at uploade den kompileret script af følgende årsager: [REASON]. Prøv igen senere.
+ </notification>
+
+ <notification
+
+ name="WriteAnimationFail"
+ >
+Der var et problem med skrivning af animations data. Prøv igen senere.
+ </notification>
+
+ <notification
+
+ name="UploadAuctionSnapshotFail"
+ >
+Der var problemer med at uploade billedet til auktionen af følgende årsager: [REASON]
+ </notification>
+
+ <notification
+
+ name="UnableToViewContentsMoreThanOne"
+ >
+Ude af stand til at se indholdet af mere end ét element ad gangen.
+Vælg kun en genstand, og prøv igen.
+ </notification>
+
+ <notification
+
+ name="SaveClothingBodyChanges"
+ >
+Gem alle ændringer til tøj/krops dele?
+ <usetemplate
+ canceltext="Annullér"
+ name="yesnocancelbuttons"
+ notext="Gem Ikke"
+ yestext="Gem Alt"/>
+ </notification>
+
+ <notification
+
+ name="GrantModifyRights"
+ >
+At give redigerings rettigheder til en anden beboer, giver dem mulighed for at ændre, slette eller tage alle genstande, du måtte have i verden. Vær meget forsigtig når uddeler denne tilladelse.
+Ønsker du at ændre rettigheder for [FIRST_NAME] [LAST_NAME]?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Nej"
+ yestext="Ja"/>
+ </notification>
+
+ <notification
+
+ name="GrantModifyRightsMultiple"
+ >
+At give redigerings rettigheder til en anden beboer, giver dem mulighed for at ændre, slette eller tage alle genstande, du måtte have i verden. Vær meget forsigtig når uddeler denne tilladelse.
+Ønsker du at ændre rettigheder for de valgte beboere?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Nej"
+ yestext="Ja"/>
+ </notification>
+
+ <notification
+
+ name="RevokeModifyRights"
+ >
+Vil du tilbagekalde rettighederne for [FIRST_NAME] [LAST_NAME]?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Nej"
+ yestext="Ja"/>
+ </notification>
+
+ <notification
+
+ name="RevokeModifyRightsMultiple"
+ >
+Vil du tilbagekalde rettighederne for de valgte beboere?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Nej"
+ yestext="Ja"/>
+ </notification>
+
+ <notification
+
+ name="UnableToCreateGroup"
+ >
+Kunne ikke oprette gruppe.
+[MESSAGE]
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+
+ name="PanelGroupApply"
+ >
+[NEEDS_APPLY_MESSAGE]
+[WANT_APPLY_MESSAGE]
+ <usetemplate
+ canceltext="Annullér"
+ name="yesnocancelbuttons"
+ notext="Ignorer Ændringer"
+ yestext="Godkend Ændringer"/>
+ </notification>
+
+ <notification
+
+ name="MustSpecifyGroupNoticeSubject"
+ >
+Du skal angive et emne for at sende en gruppe besked.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+
+ name="AddGroupOwnerWarning"
+ >
+Du er ved at tilføje medlemmer til rollen som [ROLE_NAME].
+Medlemmer ikke kan fjernes fra denne rolle.
+Medlemmerne skal fratræde sin rolle selv.
+Er du sikker på du vil fortsætte?
+ <usetemplate
+ ignoretext="Når du tilføjer medlemmer til ejer rollen"
+ name="okcancelignore"
+ notext="Nej"
+ yestext="Ja"/>
+ </notification>
+
+ <notification
+
+ name="AssignDangerousActionWarning"
+ >
+Du er ved at tilføje muligheden for &apos;[ACTION_NAME]&apos; til
+rollen &apos;[ROLE_NAME]&apos;.
+
+*ADVARSEL*
+Ethvert medlem i en rolle med denne evne kan tildele sig selv -- og et andet medlem - roller med flere beføjelser, end de har i øjeblikket, potentielt kan de ophøje sig selv til nær-Ejer magt. Være sikker på, at du ved, hvad du laver, før tildeling af denne evne.
+
+Add this Ability to &apos;[ROLE_NAME]&apos;?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Nej"
+ yestext="Ja"/>
+ </notification>
+
+ <notification
+
+ name="ClickPublishHelpAvatar"
+ >
+Hvis du vælger &quot;Vis i Søgning&quot; Vises:
+- Din profil i søgeresultater
+- Et link til din profile i de offentlige gruppe sider
+ </notification>
+
+ <notification
+
+ name="ClickWebProfileHelpAvatar"
+ >
+Hvis en beboer har en hjemmeside adresse kan du:
+ * Klikke &apos;Load&apos; for at side deres side her.
+ * Klikke Load &gt; &apos;I ekstern browser&apos; for at se siden i din standard browser.
+ * Klikke Load &gt; &apos;Hjemme URL&apos; for at returnere til denne beboers side hvis du har navigeret væk.
+
+Når du ser din egen profil, kan du skrive hvilken som helst adresse og klikke ok for at få den vist i din egen profil.
+Andre beboere kan besøge den adresse du har sat, når de besøger din profil.
+ </notification>
+
+ <notification
+
+ name="JoinGroupCannotAfford"
+ >
+Tilmelding til denne gruppe koster L$[COST].
+Du har ikke nok L$ til denne tilmelding.
+ </notification>
+
+ <notification
+
+ name="PromptMissingSubjMsg"
+ >
+E-mail dette billede med standard emne eller besked?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Annullér"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+
+ name="ErrorUploadingPostcard"
+ >
+Der var et problem med at sende billedet på grund af følgende: [REASON]
+ </notification>
+
+ <notification
+
+ name="MustHaveAccountToLogIn"
+ >
+Ups! Noget var tomt.
+Du skal skrive både fornavn og efternavn på din figur.
+
+Du har brug for en konto for at logge ind i [SECOND_LIFE]. Vil du oprette en nu?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Prøv igen"
+ yestext="Lav ny konto"/>
+ </notification>
+
+ <notification
+
+ name="ResetShowNextTimeDialogs"
+ >
+Vil du gerne genaktivere alle disse popups, som du tidligere har bedt om ikke at få vist?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Annullér"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+
+ name="SkipShowNextTimeDialogs"
+ >
+Vil du deaktivere alle popups som kan undværes?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Annullér"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+
+ name="ChangeSkin"
+ >
+Det nye udseende vil vises efter du har genstartet [SECOND_LIFE].
+ </notification>
+
+ <notification
+
+ name="UnsupportedHardware"
+ >
+ <form name="form">
+ <ignore name="ignore"
+ text="Ved opdagelse af ikke supporteret hardware"/>
+ </form>
+ </notification>
+
+ <notification
+
+ name="UnknownGPU"
+ >
+ <form name="form">
+ <ignore name="ignore"
+ text="Ved opdagelse af et ukendt grafikkort"/>
+ </form>
+ </notification>
+
+ <notification
+
+ name="CannotGiveCategory"
+ >
+Du har ikke tilladelse til at videreføre den valgte mappe.
+ </notification>
+
+ <notification
+
+ name="CannotBuyLandNoRegion"
+ >
+Ikke i stand til at købe land:
+Kan ikke finde region som dette land er i.
+ </notification>
+
+ <notification
+
+ name="YouHaveBeenLoggedOut"
+ >
+Du er blevet logget ud af [SECOND_LIFE]:
+ [MESSAGE]
+Du kan stadig se eksiterende PB&apos;er og chat ved at klikke&apos;Se PB &amp; Chat&apos;. Ellers, klik &apos;Afslut&apos; for at afslutte [SECOND_LIFE] nu.
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Quit"
+ yestext="Se IM &amp; Chat"/>
+ </notification>
+
+ <notification
+
+ label="Add Friend"
+ name="AddFriend"
+ >
+Venner kan give tilladelse til at følge hinanden
+på Verdenskortet eller modtage status opdateringer.
+
+Tilbyd venskab til [NAME]?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Annullér"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+
+ label="Add Friend"
+ name="AddFriendWithMessage"
+ >
+Venner kan give tilladelse til at følge hinanden
+på Verdenskortet eller modtage status opdateringer.
+
+Tilbyd venskab til [NAME]?
+ <form name="form">
+ <input name="message" type="text">
+Vil du være min ven?
+ </input>
+ <button
+
+
+ name="Offer"
+ text="OK"/>
+ <button
+
+ name="Cancel"
+ text="Annullér"/>
+ </form>
+ </notification>
+
+ <notification
+
+ name="NotEnoughCurrency"
+ >
+[NAME] L$ [PRICE] Du har ikke nok L$ til dette.
+ </notification>
+
+ <notification
+
+ name="HelpReportAbuseEmailLL"
+ >
+Brug dette værktøj for at rapportere brud på de almindelige bestemmelser og fællesskabs Standarder. Se:
+
+http://secondlife.com/corporate/tos.php
+http://secondlife.com/corporate/cs.php
+
+Alle rapporterede brud på almindelige bestemmelser og fællesskabs Standarder bliver undersøgt og løst. Du kan følge løsningen på din anmeldselse på:
+
+http://secondlife.com/support/incidentreport.php
+ </notification>
+
+ <notification
+
+ name="HelpReportAbuseContainsCopyright"
+ >
+Dear Resident,
+
+Du ser ud til at være ved at rapportere noget vedr. krænkelse af intellektuelle ejendomsrettigheder. Sørg for, at du rapporterer dette korrekt:
+
+(1) Misbrugs processen. Du kan indsende en misbrugs rapport, hvis du mener, at en Beboer udnytter Second Life&apos;s rettigheds system, for eksempel ved hjælp af en CopyBot eller lignende kopierings værktøjer, at de krænker intellektuelle ejendomsrettigheder. Det team vil undersøge og spørgsmål passende disciplinære sanktioner for adfærd, der overtræder Second Life EF-standarderne eller Servicevilkår. Men det team vil ikke håndtere og vil ikke reagere på anmodninger om at fjerne indhold fra Second Life&apos;s verden.
+
+(2) DMCA eller Indholds fjernelses processen. For at anmode om fjernelse af indhold fra Second Life, skal du sende en gyldig anmeldelse af overtrædelsen som beskrevet i vores DMCA-politik på http://secondlife.com/corporate/dmca.php.
+
+Hvis du stadig ønsker at fortsætte med misbrugs processen, luk da venligst dette vindue og færdiggør indsendelsen af din rapport. Du kan være nødt til at vælge den særlige kategori »CopyBot eller Tilladelses Ydnyttelse.
+
+Mange tak,
+
+Linden Lab
+ </notification>
+
+ <notification
+
+ name="ConfirmClearCookies"
+ >
+Er du sikker på du vil slette alle cookies?
+ </notification>
+
+ <notification
+
+ name="ChatterBoxSessionStartError"
+ >
+Ikke i stand til at start chat med [RECIPIENT].
+[REASON]
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+
+ name="Cannot_Purchase_an_Attachment"
+ >
+Ting kan ikke købes imens de er en del af tilbehør.
+ </notification>
+
+ <notification
+
+ name="NewWaterPreset"
+ >
+ <form name="form">
+ <input name="message" type="text">
+Ny forudindstilling
+ </input>
+ <button
+
+
+ name="OK"
+ text="OK"/>
+ <button
+
+ name="Cancel"
+ text="Annullér"/>
+ </form>
+ </notification>
+
+ <notification
+
+ name="NewSkyPreset"
+ >
+ <form name="form">
+ <input name="message" type="text">
+Ny forudindstilling
+ </input>
+ <button
+
+
+ name="OK"
+ text="OK"/>
+ <button
+
+ name="Cancel"
+ text="Annullér"/>
+ </form>
+ </notification>
+
+ <notification
+
+ name="OfferTeleport"
+ >
+ <form name="form">
+ <input name="message" type="text">
+Mød mig i [REGION]
+ </input>
+ <button
+
+
+ name="OK"
+ text="OK"/>
+ <button
+
+ name="Cancel"
+ text="Annullér"/>
+ </form>
+ </notification>
+
+ <notification
+
+ name="SystemMessageTip"
+ >
+[MESSAGE]
+ </notification>
+
+ <notification
+
+ name="Cancelled"
+ >
+Annulléret
+ </notification>
+
+ <notification
+
+ name="CancelledSit"
+ >
+Annulléret sid
+ </notification>
+
+ <notification
+
+ name="CancelledAttach"
+ >
+Annulléreret vedhæft
+ </notification>
+
+ <notification
+
+ name="ReplacedMissingWearable"
+ >
+Erstattet manglende tøj/kropsdele med standard.
+ </notification>
+
+ <notification
+
+ name="FriendOnline"
+ >
+[FIRST] [LAST] er Online
+ </notification>
+
+ <notification
+
+ name="FriendOffline"
+ >
+[FIRST] [LAST] er Offline
+ </notification>
+
+ <notification
+
+ name="AddSelfFriend"
+ >
+Du kan ikke tilføje dig selv som ven.
+ </notification>
+
+ <notification
+
+ name="UploadingAuctionSnapshot"
+ >
+Uploader billeder fra verdenen og www...
+(Tager omkring 5 minutter.)
+ </notification>
+
+ <notification
+
+ name="UploadPayment"
+ >
+Du betalte L$[AMOUNT] for at uploade.
+ </notification>
+
+ <notification
+
+ name="UploadWebSnapshotDone"
+ >
+Billeder fra www er uploadet.
+ </notification>
+
+ <notification
+
+ name="UploadSnapshotDone"
+ >
+Billeder fra verdenen er uploadet
+ </notification>
+
+ <notification
+
+ name="TerrainDownloaded"
+ >
+Terrain.raw downloadet
+ </notification>
+
+ <notification
+
+ name="GestureMissing"
+ >
+Gestus [NAME] mangler i databasen.
+ </notification>
+
+ <notification
+
+ name="UnableToLoadGesture"
+ >
+Ikke muligt at indlæse gestus [NAME].
+Prøv venligst igen.
+ </notification>
+
+ <notification
+
+ name="LandmarkMissing"
+ >
+Landmærke mangler i databasen.
+ </notification>
+
+ <notification
+
+ name="UnableToLoadLandmark"
+ >
+Ikke muligt at indlæse landmærke. Prøv venligst igen.
+ </notification>
+
+ <notification
+
+ name="CapsKeyOn"
+ >
+Du har slået store bogstaver til.
+Da det vil have betydning når du indtaster kodeordet, vil du højest sandsynlig slå dem fra.
+ </notification>
+
+ <notification
+
+ name="NotecardMissing"
+ >
+Note mangler i databasen.
+ </notification>
+
+ <notification
+
+ name="NotecardNoPermissions"
+ >
+Utilstrækkelige tilladelser til at se note.
+ </notification>
+
+ <notification
+
+ name="RezItemNoPermissions"
+ >
+Utilstrækkelige tilladelser til at danne genstanden.
+ </notification>
+
+ <notification
+
+ name="UnableToLoadNotecard"
+ >
+Ikke muligt at indlæse note.
+Prøv venligst igen.
+ </notification>
+
+ <notification
+
+ name="ScriptMissing"
+ >
+Script mangler i databasen.
+ </notification>
+
+ <notification
+
+ name="ScriptNoPermissions"
+ >
+Utilstrækkelige tilladelser til at se script.
+ </notification>
+
+ <notification
+
+ name="UnableToLoadScript"
+ >
+Ikke muligt at indlæse script. Prøv venligst igen.
+ </notification>
+
+ <notification
+
+ name="IncompleteInventory"
+ >
+Det komplette indhold, du tilbyder, er ikke endnu tilgængelig lokalt. Prøv venligst at tilbyde tingene igen om lidt.
+ </notification>
+
+ <notification
+
+ name="CannotModifyProtectedCategories"
+ >
+Du kan ikke ændre beskyttede kategorier.
+ </notification>
+
+ <notification
+
+ name="CannotRemoveProtectedCategories"
+ >
+Du kan ikke fjerne beskyttede kategorier.
+ </notification>
+
+ <notification
+
+ name="OfferedCard"
+ >
+Du har tilbudt et visitkort til [FIRST] [LAST]
+ </notification>
+
+ <notification
+
+ name="OfferedFriendship"
+ >
+Du har tilbudt venskab til [FIRST] [LAST]
+ </notification>
+
+ <notification
+
+ name="UnableToBuyWhileDownloading"
+ >
+Ikke muligt at købe, imens genstandens data hentes.
+Prøv venligst igen.
+ </notification>
+
+ <notification
+
+ name="UnableToLinkWhileDownloading"
+ >
+Ikke muligt at lænke imens genstandens data hentes.
+Prøv venligst igen.
+ </notification>
+
+ <notification
+
+ name="CannotBuyObjectsFromDifferentOwners"
+ >
+Kan ikke købe genstande fra forskellige ejere på samme tid.
+Prøv venligst at vælge en enkelt genstand.
+ </notification>
+
+ <notification
+
+ name="ObjectNotForSale"
+ >
+Genstanden ser ikke ud til at være til salg.
+ </notification>
+
+ <notification
+
+ name="EnteringGodMode"
+ >
+Starter gud-tilstand, niveau [LEVEL]
+ </notification>
+
+ <notification
+
+ name="LeavingGodMode"
+ >
+Stopper gud-tilstand, niveau [LEVEL]
+ </notification>
+
+ <notification
+
+ name="CopyFailed"
+ >
+Kopiering lykkedes ikke fordi du ikke har nok tilladelser til at kopiere
+ </notification>
+
+ <notification
+
+ name="InventoryAccepted"
+ >
+[NAME] accepterede det du tilbød fra din beholdning.
+ </notification>
+
+ <notification
+
+ name="InventoryDeclined"
+ >
+[NAME] afviste det du tilbød fra din beholdning.
+ </notification>
+
+ <notification
+
+ name="ObjectMessage"
+ >
+[NAME]: [MESSAGE]
+ </notification>
+
+ <notification
+
+ name="CallingCardAccepted"
+ >
+Dit visitkort blev accepteret.
+ </notification>
+
+ <notification
+
+ name="CallingCardDeclined"
+ >
+Dit visitkort blev afvist.
+ </notification>
+
+ <notification
+
+ name="TeleportToLandmark"
+ >
+Nu hvor du er nået frem til hovedlandet, kan du teleportere til steder som &apos;[NAME]&apos; ved at klikke på Beholdning-knappen i nederste højre side af skærmen hvorefter du vælger Landmærke-mappen.
+Dobbeltklik på landmærket og klik på Teleportér, for at rejse derhen.
+ </notification>
+
+ <notification
+
+ name="TeleportToPerson"
+ >
+Nu hvor du har nået frem til hovedlandet, kan du kontakte indbyggere som &apos;[NAME]&apos; ved at klikke på Beholdning-knappen i nederste højre side af skærmen, hvorefter du vælger Visitkort-mappen.
+Dobbeltklik på kortet, klik på IM og skriv beskeden.
+ </notification>
+
+ <notification
+
+ name="CantSelectLandFromMultipleRegions"
+ >
+Kan ikke vælge land på tværs af grænser.
+Prøv at vælge mindre stykker land.
+ </notification>
+
+ <notification
+
+ name="GroupVote"
+ >
+[NAME] har forslået at stemme for:
+[MESSAGE]
+ <form name="form">
+ <button
+
+ name="VoteNow"
+ text="Stem nu"/>
+ <button
+
+ name="Later"
+ text="Senere"/>
+ </form>
+ </notification>
+
+ <notification
+
+ name="SystemMessage"
+ >
+[MESSAGE]
+ </notification>
+
+ <notification
+
+ name="EventNotification"
+ >
+Besked om begivenhed:
+
+[NAME]
+[DATE]
+ <form name="form">
+ <button
+
+ name="Teleport"
+ text="Teleportér"/>
+ <button
+
+ name="Description"
+ text="Beskrivelse"/>
+ <button
+
+ name="Cancel"
+ text="Annullér"/>
+ </form>
+ </notification>
+
+ <notification
+
+ name="TransferObjectsHighlighted"
+ >
+Alle genstande på denne grund, som vil blive overført til køberen af denne grund, er nu oplyst.
+
+* Træer og græs, der vil blive overført, er ikke fremhævet.
+ <form name="form">
+ <button
+
+ name="Done"
+ text="Færdig"/>
+ </form>
+ </notification>
+
+ <notification
+
+ name="DeactivatedGesturesTrigger"
+ >
+Deaktiverede bevægelser med samme udløser: [NAMES]
+ </notification>
+
+ <notification
+
+ name="NoQuickTime"
+ >
+Apple&apos;s QuickTime ser ikke ud til at være installeret på computeren.
+Hvis du vil se live transmitteret medie på grunde, der understøtter det, skal du gå ind på QuickTime-siden (http://www.apple.dk/quicktime) og installere QuickTime afspilleren.
+ </notification>
+
+ <notification
+
+ name="OwnedObjectsReturned"
+ >
+De genstande du ejer på det valgte stykke land er blevet returneret til din beholdning.
+ </notification>
+
+ <notification
+
+ name="OtherObjectsReturned"
+ >
+Genstandene på det valgte stykke land der er ejet af [FIRST] [LAST] er blevet returneret til hans eller hendes beholdning.
+ </notification>
+
+ <notification
+
+ name="OtherObjectsReturned2"
+ >
+Genstandene på det valgte stykke land der er ejet af beboeren &apos;[NAME]&apos; er blevet returneret til deres ejere.
+ </notification>
+
+ <notification
+
+ name="GroupObjectsReturned"
+ >
+Genstandene på det valgte stykke land, delt med gruppen [GROUPNAME], er blevet returneret til deres ejeres beholdninger.
+Genstande, som er dedikerede og som kan overføres, er blevet returneret til deres forrige ejere.
+Genstande, der ikke kan overføres og som er dedikeret til gruppen, er blevet slettet.
+ </notification>
+
+ <notification
+
+ name="UnOwnedObjectsReturned"
+ >
+Genstandene på det valgte stykke land, der IKKE er ejet af dig, er blevet returneret til deres ejere.
+ </notification>
+
+ <notification
+
+ name="NotSafe"
+ >
+Dette land har sat skade til (&apos;ikke sikker&apos;).
+Du kan komme til skade her. Hvis du dør, vil du blive teleporteret til din hjem-lokalitet.
+ </notification>
+
+ <notification
+
+ name="NoFly"
+ >
+Dette land har slået flyvning fra (&apos;ingen flyvning&apos;).
+Du kan ikke flyve her.
+ </notification>
+
+ <notification
+
+ name="PushRestricted"
+ >
+Dette land giver ikke mulighed for at &apos;skubbe&apos; andre, med mindre du ejer landet.
+ </notification>
+
+ <notification
+
+ name="NoVoice"
+ >
+Dette land har ikke mulighed for at bruge stemme.
+ </notification>
+
+ <notification
+
+ name="NoBuild"
+ >
+Dette land giver ikke mulighed for at bygge (&apos;byggeri forbudt&apos;).
+Du kan ikke skabe genstande her.
+ </notification>
+
+ <notification
+
+ name="ScriptsStopped"
+ >
+En administrator har midlertidig stoppet scripts i denne region.
+ </notification>
+
+ <notification
+
+ name="ScriptsNotRunning"
+ >
+Denne region kører ikke nogen scripts.
+ </notification>
+
+ <notification
+
+ name="NoOutsideScripts"
+ >
+Dette land har eksterne scripts slået fra
+(&apos;ingen eksterne scripts&apos;).
+Ingen scripts vil køre på nær dem, som tilhører ejeren af landet.
+ </notification>
+
+ <notification
+
+ name="ClaimPublicLand"
+ >
+Du kan kun gøre krav på offentlig land i den region, du befinder dig i.
+ </notification>
+
+ <notification
+
+ name="ObjectGiveItem"
+ >
+En genstand med navnet [OBJECTFROMNAME], ejet af [FIRST] [LAST], har givet dig en/et [OBJECTTYPE] med navnet [OBJECTNAME].
+ <form name="form">
+ <button
+
+ name="Keep"
+ text="Behold"/>
+ <button
+
+ name="Discard"
+ text="Smid væk"/>
+ <button
+
+ name="Mute"
+ text="Blokér"/>
+ </form>
+ </notification>
+
+ <notification
+
+ name="ObjectGiveItemUnknownUser"
+ >
+En genstand med navnet [OBJECTFROMNAME], ejet af (en ukendt bruger), har givet dig en/et [OBJECTTYPE] med navnet [OBJECTNAME].
+ <form name="form">
+ <button
+
+ name="Keep"
+ text="Behold"/>
+ <button
+
+ name="Discard"
+ text="Smid væk"/>
+ <button
+
+ name="Mute"
+ text="Blokér"/>
+ </form>
+ </notification>
+
+ <notification
+
+ name="UserGiveItem"
+ >
+[NAME] har givet dig en/et [OBJECTTYPE] med navnet &apos;[OBJECTNAME]&apos;.
+ <form name="form">
+ <button
+
+ name="Keep"
+ text="Behold"/>
+ <button
+
+ name="Discard"
+ text="Smid væk"/>
+ <button
+
+ name="Mute"
+ text="Blokér"/>
+ </form>
+ </notification>
+
+ <notification
+
+ name="GodMessage"
+ >
+[NAME]
+[MESSAGE]
+ </notification>
+
+ <notification
+
+ name="JoinGroup"
+ >
+[MESSAGE]
+ <form name="form">
+ <button
+
+ name="Join"
+ text="Indmeld"/>
+ <button
+
+ name="Decline"
+ text="Afvis"/>
+ <button
+
+ name="Info"
+ text="Information"/>
+ </form>
+ </notification>
+
+ <notification
+
+ name="TeleportOffered"
+ >
+[NAME] har tilbudt at teleportere dig til hans eller hendes lokalitet:
+
+[MESSAGE]
+ <form name="form">
+ <button
+
+ name="Teleport"
+ text="Teleportér"/>
+ <button
+
+ name="Cancel"
+ text="Annullér"/>
+ </form>
+ </notification>
+
+ <notification
+
+ name="GotoURL"
+ >
+[MESSAGE]
+[URL]
+ <form name="form">
+ <button
+
+ name="Later"
+ text="Senere"/>
+ <button
+
+ name="GoNow..."
+ text="Gå nu..."/>
+ </form>
+ </notification>
+
+ <notification
+
+ name="OfferFriendship"
+ >
+[NAME] tilbyder venskab.
+
+Som standard vil du kunne se andres onlinestatus.
+ <form name="form">
+ <button
+
+ name="Accept"
+ text="Acceptér"/>
+ <button
+
+ name="Decline"
+ text="Afvis"/>
+ </form>
+ </notification>
+
+ <notification
+
+ name="FriendshipAccepted"
+ >
+[NAME] accepterede dit tilbud om venskab.
+ </notification>
+
+ <notification
+
+ name="FriendshipDeclined"
+ >
+[NAME] afviste dit tilbud om venskab.
+ </notification>
+
+ <notification
+
+ name="OfferCallingCard"
+ >
+[FIRST] [LAST] tilbyder vedkommendes visitkort.
+Dette vil tilføje et bogmærke i din beholdning, så du hurtigt kan sende en personlig besked (IM) til denne beboer.
+ <form name="form">
+ <button
+
+ name="Accept"
+ text="Acceptér"/>
+ <button
+
+ name="Decline"
+ text="Afvis"/>
+ </form>
+ </notification>
+
+ <notification
+
+ name="RegionRestartMinutes"
+
+
+ >
+Regionen genstarter om [MINUTES] minutter.
+Hvis du bliver i denne region, vil du blive logget af.
+ </notification>
+
+ <notification
+
+ name="RegionRestartSeconds"
+
+
+ >
+Regionen genstarter om [SECONDS] sekunder.
+Hvis du bliver i denne region, vil du blive logget af.
+ </notification>
+
+ <notification
+
+ name="LoadWebPage"
+ >
+Indlæs internetside [URL]?
+
+[MESSAGE]
+
+Fra genstand: [OBJECTNAME], ejer: [NAME]?
+ <form name="form">
+ <button
+
+ name="Gotopage"
+ text="Gå til side"/>
+ <button
+
+ name="Cancel"
+ text="Afbryd"/>
+ </form>
+ </notification>
+
+ <notification
+
+ name="FailedToFindWearableUnnamed"
+ >
+Det lykkedes ikke at finde [TYPE] i databasen.
+ </notification>
+
+ <notification
+
+ name="FailedToFindWearable"
+ >
+Det lykkedes ikke at finde [TYPE] med navnet [DESC] i databasen.
+ </notification>
+
+ <notification
+
+ name="ScriptQuestion"
+ >
+&apos;[OBJECTNAME]&apos;, en genstand, ejet af &apos;[NAME]&apos;, vil gerne:
+ [QUESTIONS]
+Er det iorden?
+ <form name="form">
+ <button
+
+ name="Yes"
+ text="Ja"/>
+ <button
+
+ name="No"
+ text="Nej"/>
+ <button
+
+ name="Mute"
+ text="Blokér"/>
+ </form>
+ </notification>
+
+ <notification
+
+ name="ScriptQuestionCaution"
+ >
+&apos;[OBJECTNAME]&apos;, en genstand, ejet af &apos;[NAME]&apos;, vil gerne:
+
+[QUESTIONS]
+Hvis du ikke har tillid til denne genstand og dens skaber, bør du afvise denne forespørgsel. For yderligere information klik på Detaljer-knappen.
+
+Imødekom denne forespørgsel?
+ <form name="form">
+ <button
+
+ name="Grant"
+ text="Imødekom"/>
+ <button
+
+ name="Deny"
+ text="Afvis"/>
+ <button
+
+ name="Details"
+ text="Detaljer..."/>
+ </form>
+ </notification>
+
+ <notification
+
+ name="ScriptDialog"
+ >
+[FIRST] [LAST]&apos;s &apos;[TITLE]&apos;
+[MESSAGE]
+ <form name="form">
+ <button
+
+ name="Ignore"
+ text="Ignorér"/>
+ </form>
+ </notification>
+
+ <notification
+
+ name="ScriptDialogGroup"
+ >
+[GROUPNAME]&apos;s &apos;[TITLE]&apos;
+[MESSAGE]
+ <form name="form">
+ <button
+
+ name="Ignore"
+ text="Ignorér"/>
+ </form>
+ </notification>
+
+ <notification
+
+ name="FirstBalanceIncrease"
+ >
+Du har lige modtaget L$[AMOUNT].
+Genstande og andre brugere kan give dig L$.
+Din saldo er vist i øverste højre hjørne af skærmen.
+ </notification>
+
+ <notification
+
+ name="FirstBalanceDecrease"
+ >
+Du har lige modtaget L$[AMOUNT].
+Din saldo er vist i øverste højre hjørne af skærmen.
+ </notification>
+
+ <notification
+
+ name="FirstSit"
+ >
+Du sidder.
+Brug piletasterne (eller AWSD) for at ændre hvilken vej du ser.
+Klik på &apos;Stå op&apos;-knappen for at rejse dig op.
+ </notification>
+
+ <notification
+
+ name="FirstMap"
+ >
+Klik og træk for at flytte kortvisningen.
+Dobbelt-klik for at teleportere.
+Brug kontrollerne til højre for at finde ting og se forskellige baggrunde.
+ </notification>
+
+ <notification
+
+ name="FirstBuild"
+ >
+Du kan bygge nye genstande i nogle områder af [SECOND_LIFE].
+Brug værktøjet øverst til venstre for at bygge, og prøv at holde Ctrl eller Alt nede for hurtigt at skifte imellem værktøjerne.
+Tryk Esc for at stoppe med at bygge.
+ </notification>
+
+ <notification
+
+ name="FirstLeftClickNoHit"
+ >
+Venstre-klik interagerer med specielle genstande.
+Hvis musemarkøren ændrer sig til en hånd, kan du interagere med genstanden.
+Højre-klik viser altid en menu med ting du kan gøre.
+ </notification>
+
+ <notification
+
+ name="FirstTeleport"
+ >
+Du har lige teleporteret.
+Du er ved info-standen nærmest ved din destination.
+Din destination er markeret med en stor rød lyskegle.
+ </notification>
+
+ <notification
+
+ name="FirstOverrideKeys"
+ >
+Dine bevælgelsestaster bliver nu håndteret af et objekt.
+Brug piletasterne eller AWSD for at se, hvad de gør.
+Nogle genstande (som skydevåben) kræver at du går ind i musevisning for at bruge dem.
+Tryk på &apos;M&apos; for at gåre det.
+ </notification>
+
+ <notification
+
+ name="FirstAppearance"
+ >
+Du tilretter dit udseende.
+For at rotere og zoome brug piletasterne.
+Når du er færdig, tryk på &apos;Gem alt&apos; for at gemme dit udseende og lukke.
+Du kan rette dit udseende så tit du vil.
+ </notification>
+
+ <notification
+
+ name="FirstInventory"
+ >
+Dette er din beholdning, der indeholder objekter, noter, tøj og andre ting du ejer.
+* For at bære et objekt eller en mappe med tøj, træk den over på dig selv.
+* For at få et objekt frem i verdenen, træk den ud på jorden.
+* For at læse en note, dobbeltklik på den.
+ </notification>
+
+ <notification
+
+ name="FirstSandbox"
+ >
+Dette er sandkasseområdet.
+Genstande, der er skabt her, vil blive slettet efter du har forladt området. Sandkasser renses jævnligt. Se venligst informationen øverst på skærmen, lige ved siden af områdenavnet.
+
+Sandkasseområder er ikke almindelige. De er mærket med skilte.
+ </notification>
+
+ <notification
+
+ name="FirstFlexible"
+ >
+Denne genstand er fleksibel.
+Fleksible genstande er ikke fysiske og man kan gå igennem dem, indtil fleksibel-punktet ikke er afkrydset.
+ </notification>
+
+ <notification
+
+ name="FirstDebugMenus"
+ >
+Du har sat avanceret menu til.
+Denne menu indeholder funktioner brugbare for udviklere, der udbedrer fejl i Second Life.
+For at vise denne menu, skal man i Windows trykke Ctrl-Alt-D. På Mac tryk Cmd-Opt-Shift-D.
+ </notification>
+
+ <notification
+
+ name="FirstSculptedPrim"
+ >
+Du retter en sculpted prim.
+Sculpted prims kræver et specielt tekstur for at specificere deres form.
+Du kan finde eksempler på sculptede teksturer i din beholdning.
+ </notification>
+
+ <notification
+
+ name="FirstMedia"
+ >
+Du er begyndt at afspille medie. Medie kan sættes til automatisk af blive afspillet under Indstillinger, Lyd / Video. Vær opmærksom på, at der kan være en sikkerhedsrisiko for medie-steder, du ikke stoler på.
+ </notification>
+
+ <notification
+
+ name="MaxListSelectMessage"
+ >
+Du må kun vælge op til [MAX_SELECT] genstande på denne liste.
+ </notification>
+
+ <notification
+
+ name="VoiceInviteP2P"
+ >
+[NAME] inviterer dig til en stemme-chat.
+Klik for at acceptere at koble dig på samtalen eller Afvis for at afvise invitationen. Klik på Slå fra for at blokere denne opkalder.
+ <form name="form">
+ <button
+
+ name="Accept"
+ text="Acceptér"/>
+ <button
+
+ name="Decline"
+ text="Afvis"/>
+ <button
+
+ name="Mute"
+ text="Blokér"/>
+ </form>
+ </notification>
+
+ <notification
+
+ name="AutoUnmuteByIM"
+ >
+[FIRST] [LAST] har fået en personlig besked (IM) og er automatisk ikke blokeret mere.
+ </notification>
+
+ <notification
+
+ name="AutoUnmuteByMoney"
+ >
+[FIRST] [LAST] har fået penge og er automatisk ikke blokeret mere.
+ </notification>
+
+ <notification
+
+ name="AutoUnmuteByInventory"
+ >
+[FIRST] [LAST] har fået tilbudt genstande og er automatisk ikke blokeret mere.
+ </notification>
+
+ <notification
+
+ name="VoiceInviteGroup"
+ >
+[NAME] har tilsluttet sig stemme-chat med gruppen [GROUP].
+Klik Acceptér for at slutte dig til samtalen eller Afvis for at afvise invitationen. Klik Slå fra for at blokere denne opkalder.
+ <form name="form">
+ <button
+
+ name="Accept"
+ text="Acceptér"/>
+ <button
+
+ name="Decline"
+ text="Afvis"/>
+ <button
+
+ name="Mute"
+ text="Blokér"/>
+ </form>
+ </notification>
+
+ <notification
+
+ name="VoiceInviteAdHoc"
+ >
+[NAME] har tilsluttet sig stemme-chat med en konference-chat.
+Klik Acceptér for at slutte dig til samtalen eller Afvis for at afvise invitationen. Klik Slå fra for at blokere denne opkalder.
+ <form name="form">
+ <button
+
+ name="Accept"
+ text="Acceptér"/>
+ <button
+
+ name="Decline"
+ text="Afvis"/>
+ <button
+
+ name="Mute"
+ text="Blokér"/>
+ </form>
+ </notification>
+
+ <notification
+
+ name="InviteAdHoc"
+ >
+[NAME] inviterer dig til en konference-chat.
+Klik Acceptér for at slutte dig til samtalen eller Afvis for at afvise invitationen. Klik Slå fra for at blokere denne opkalder.
+ <form name="form">
+ <button
+
+ name="Accept"
+ text="Acceptér"/>
+ <button
+
+ name="Decline"
+ text="Afvis"/>
+ <button
+
+ name="Mute"
+ text="Blokeret"/>
+ </form>
+ </notification>
+
+ <notification
+
+ name="VoiceChannelFull"
+ >
+Den stemme-chat, du prøver at tilslutte dig, [VOICE_CHANNEL_NAME], har nået maksiumum kapacitet. Prøv venligst igen senere.
+ </notification>
+
+ <notification
+
+ name="ProximalVoiceChannelFull"
+ >
+Vi beklager. Dette område har nået sin maksimale kapacitet for stemme-chat. Prøv venligst at benytte stemme i et andet område.
+ </notification>
+
+ <notification
+
+ name="VoiceChannelDisconnected"
+ >
+Du er blevet koblet af [VOICE_CHANNEL_NAME]. Du vil nu blive koblet op på en lokal stemme-chat.
+ </notification>
+
+ <notification
+
+ name="VoiceChannelDisconnectedP2P"
+ >
+[VOICE_CHANNEL_NAME] har afsluttet opkaldet. Du vil nu blive koblet op på en lokal stemme-chat.
+ </notification>
+
+ <notification
+
+ name="P2PCallDeclined"
+ >
+[VOICE_CHANNEL_NAME] har afvist dit opkald. Du vil nu blive koblet op på en lokal stemme-chat.
+ </notification>
+
+ <notification
+
+ name="P2PCallNoAnswer"
+ >
+[VOICE_CHANNEL_NAME] har ikke mulighed for at besvare dit opkald. Du vil nu blive koblet op på en lokal chat.
+ </notification>
+
+ <notification
+
+ name="VoiceChannelJoinFailed"
+ >
+Det lykkedes ikke at koble op til [VOICE_CHANNEL_NAME]. Prøv venligst igen senere.
+ </notification>
+
+ <notification
+
+ name="VoiceLoginRetry"
+ >
+Vi laver en stemmekanal til dig. Det kan tage op til et minut.
+ </notification>
+
+ <notification
+
+ name="Cannot enter parcel: not a group member"
+ >
+Du kan ikke komme ind på området. Du er ikke medlem af den nødvendige gruppe.
+ </notification>
+
+ <notification
+
+ name="Cannot enter parcel: banned"
+ >
+Du kan ikke komme ind på området. Du er blevet udelukket.
+ </notification>
+
+ <notification
+
+ name="Cannot enter parcel: not on access list"
+ >
+Du kan ikke komme ind på området. Du er ikke på adgangslisten.
+ </notification>
+
+ <notification
+
+ name="VoiceNotAllowed"
+ >
+Du har ikke tilladelse til at tilslutte dig stemme-chat på [VOICE_CHANNEL_NAME].
+ </notification>
+
+ <notification
+
+ name="VoiceCallGenericError"
+ >
+En fejl er opstået under forsøget på at koble sig på stemme chatten [VOICE_CHANNEL_NAME]. Pråv venligst senere.
+ </notification>
+
+ <notification
+
+ name="ServerVersionChanged"
+ >
+Det område, du er kommet ind på, kører en anden simulatorversion. Klik på denne besked for detaljer.
+ </notification>
+
+ <notification
+
+ name="UnableToOpenCommandURL"
+ >
+Www-adressen, du har klikket på, kan ikke åbnes fra denne internetbrowser.
+ </notification>
+</notifications>
+
diff --git a/indra/newview/skins/default/xui/da/panel_audio_device.xml b/indra/newview/skins/default/xui/da/panel_audio_device.xml
index 8b18a78a01..6e6bfe39ff 100644
--- a/indra/newview/skins/default/xui/da/panel_audio_device.xml
+++ b/indra/newview/skins/default/xui/da/panel_audio_device.xml
@@ -1,25 +1,25 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel name="device_settings">
- <text type="string" length="1" name="Audio Devices">
- Lydenheder
- </text>
- <text type="string" length="1" name="Input device (microphone):">
- Input enhed (mikrofon):
- </text>
- <text type="string" length="1" name="Output device (speakers):">
- Output enhed (højtalere):
- </text>
- <text type="string" length="1" name="Input level:">
- Input niveau
- </text>
- <text_editor type="string" length="1" name="voice_intro_text1">
- Med denne skyder kan du regulere hvor højt du lyder i forhold til andre beboere. for at test input niveau kan du blot tale i mikrofon.
- </text_editor>
- <volume_slider name="mic_volume_slider" tool_tip="Ændre lydstyrke med denne skyder" />
- <text name="wait_text">
- Vent venligst
- </text>
- <string name="default_text">
- Standard
- </string>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel name="device_settings">
+ <text type="string" length="1" name="Audio Devices">
+ Lydenheder
+ </text>
+ <text type="string" length="1" name="Input device (microphone):">
+ Input enhed (mikrofon):
+ </text>
+ <text type="string" length="1" name="Output device (speakers):">
+ Output enhed (højtalere):
+ </text>
+ <text type="string" length="1" name="Input level:">
+ Input niveau
+ </text>
+ <text_editor type="string" length="1" name="voice_intro_text1">
+ Med denne skyder kan du regulere hvor højt du lyder i forhold til andre beboere. for at test input niveau kan du blot tale i mikrofon.
+ </text_editor>
+ <volume_slider name="mic_volume_slider" tool_tip="Ændre lydstyrke med denne skyder" />
+ <text name="wait_text">
+ Vent venligst
+ </text>
+ <string name="default_text">
+ Standard
+ </string>
+</panel>
diff --git a/indra/newview/skins/default/xui/da/panel_friends.xml b/indra/newview/skins/default/xui/da/panel_friends.xml
index 48fa38731e..2644b80968 100644
--- a/indra/newview/skins/default/xui/da/panel_friends.xml
+++ b/indra/newview/skins/default/xui/da/panel_friends.xml
@@ -1,26 +1,26 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel name="friends">
- <string name="Multiple">
- Flere venner...
- </string>
- <scroll_list name="friend_list"
- tool_tip="Hold Shift eller Ctrl nede imens du klikker for at vælge flere venner">
- <column name="icon_online_status" tool_tip="Online status" />
- <column label="Name" name="friend_name" tool_tip="Navn" />
- <column name="icon_visible_online" tool_tip="Venner kan se at du er online" />
- <column name="icon_visible_map" tool_tip="Venner kan finde dig på kortet" />
- <column name="icon_edit_mine"
- tool_tip="Venner kan rette i, slette eller tage dine objekter" />
- <column name="icon_edit_theirs" tool_tip="Du kan rette i denne vens objekter" />
- </scroll_list>
- <button label="IM" name="im_btn" tool_tip="Skriv en personlig besked (IM)" />
- <button label="Profil" name="profile_btn"
- tool_tip="Vis billede, grupper og anden information" />
- <button label="Teleport..." name="offer_teleport_btn"
- tool_tip="Tilbyd denne ven at blive teleporteret til din nuværende position" />
- <button label="Betal..." name="pay_btn"
- tool_tip="Giv Linden dollars (L$) til denne ven" />
- <button label="Fjern..." name="remove_btn"
- tool_tip="Fjern denne beboer fra din venneliste" />
- <button label="Tilføj..." name="add_btn" tool_tip="Tilbyd venskab til denne beboer" />
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel name="friends">
+ <string name="Multiple">
+ Flere venner...
+ </string>
+ <scroll_list name="friend_list"
+ tool_tip="Hold Shift eller Ctrl nede imens du klikker for at vælge flere venner">
+ <column name="icon_online_status" tool_tip="Online status" />
+ <column label="Name" name="friend_name" tool_tip="Navn" />
+ <column name="icon_visible_online" tool_tip="Venner kan se at du er online" />
+ <column name="icon_visible_map" tool_tip="Venner kan finde dig på kortet" />
+ <column name="icon_edit_mine"
+ tool_tip="Venner kan rette i, slette eller tage dine objekter" />
+ <column name="icon_edit_theirs" tool_tip="Du kan rette i denne vens objekter" />
+ </scroll_list>
+ <button label="IM" name="im_btn" tool_tip="Skriv en personlig besked (IM)" />
+ <button label="Profil" name="profile_btn"
+ tool_tip="Vis billede, grupper og anden information" />
+ <button label="Teleport..." name="offer_teleport_btn"
+ tool_tip="Tilbyd denne ven at blive teleporteret til din nuværende position" />
+ <button label="Betal..." name="pay_btn"
+ tool_tip="Giv Linden dollars (L$) til denne ven" />
+ <button label="Fjern..." name="remove_btn"
+ tool_tip="Fjern denne beboer fra din venneliste" />
+ <button label="Tilføj..." name="add_btn" tool_tip="Tilbyd venskab til denne beboer" />
+</panel>
diff --git a/indra/newview/skins/default/xui/da/panel_group_general.xml b/indra/newview/skins/default/xui/da/panel_group_general.xml
index c6cf92095a..393ac49725 100644
--- a/indra/newview/skins/default/xui/da/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/da/panel_group_general.xml
@@ -1,79 +1,79 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel label="Generelt" name="general_tab">
- <string name="help_text">
- Generel-fanen indeholder generel information om
-denne gruppe, en liste med ejere og synlige medlemmer,
-generel-gruppeindstillinger og medlemsmuligheder.
-
-Bevæg din mus over mulighederne for mere hjælp.
- </string>
- <string name="group_info_unchanged">
- Generel gruppeinformation er ændret.
- </string>
- <button label="?" label_selected="?" name="help_button" />
- <line_editor label="Indtast nyt gruppenavn her" name="group_name_editor" />
- <text name="group_name">
- Skriv det nye gruppenavn her
- </text>
- <text name="prepend_founded_by">
- Grundlagt af
- </text>
- <text name="founder_name">
- (venter)
- </text>
- <text name="group_charter_label">
- Gruppens formål
- </text>
- <texture_picker label="Gruppe distinktioner" name="insignia"
- tool_tip="Klik for at vælge et billede" />
- <text_editor name="charter">
- Gruppens formål
- </text_editor>
- <button label="Tilmeld (L$0)" label_selected="Tilmeld (L$0)" name="join_button" />
- <button label="Detaljeret visning" label_selected="Detaljeret visning"
- name="info_button" />
- <text name="text_owners_and_visible_members">
- Ejere &amp; synlige medlemmer
- </text>
- <text name="text_owners_are_shown_in_bold">
- (Ejere er vist med fed skrift)
- </text>
- <name_list name="visible_members">
- <column label="Medlemsnavn" name="name" />
- <column label="Titel" name="title" />
- <column label="Senest på d." name="online" />
- </name_list>
- <text name="text_group_preferences">
- Gruppeindstillinger
- </text>
- <panel name="preferences_container">
- <check_box label="Vis i søgning" name="show_in_group_list"
- tool_tip="Lad folk se denne gruppe i søgeresultater." />
- <check_box label="Åben tilmelding" name="open_enrollement"
- tool_tip="Angiver om denne gruppe tillader nye medlemmer at tilmelde sig, uden de er inviteret." />
- <check_box label="Tilmeldingsgebyr: L$" name="check_enrollment_fee"
- tool_tip="Angiver om der kræves et gebyr, for at tilmelde sig gruppen." />
- <spinner name="spin_enrollment_fee"
- tool_tip="Nye medlemmer skal betale dette gebyr for at tilmelde sig gruppen, når Tilmeldingsgebyr er valgt." />
-
- <panel name="title_container">
- <text name="active_title_label">
- Min aktive titel
- </text>
- <combo_box length="150" name="active_title"
- tool_tip="Angiver den titel der vises i din avatars navnefelt, når denne gruppe er aktiv." />
- </panel>
- <check_box label="Modtag gruppeinformationer" name="receive_notices"
- tool_tip="Angiver om du vil modtage informationer fra denne gruppe. Fjern markeringen i boksen hvis gruppen spammer dig." />
- <check_box label="Vis gruppen i min profil" name="list_groups_in_profile"
- tool_tip="Angiver om du vil vise denne gruppe i dine profilinformationer" />
- </panel>
- <string name="incomplete_member_data_str">
- Henter medlemsinformationer
- </string>
- <string name="confirm_group_create_str">
- Creating this group will cost L$100.
-Er du virkelig, virkelig, VIRKELIG sikker på, at du vil bruge L$100 på at lave denne gruppe?
-Du skal være opmærksom på, at hvis ingen andre indmelder sig i denne gruppe indenfor 48 timer, så vil gruppen blive opløst, og gruppens navn vil ikke være tilgængelig i fremtiden.
- </string>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel label="Generelt" name="general_tab">
+ <string name="help_text">
+ Generel-fanen indeholder generel information om
+denne gruppe, en liste med ejere og synlige medlemmer,
+generel-gruppeindstillinger og medlemsmuligheder.
+
+Bevæg din mus over mulighederne for mere hjælp.
+ </string>
+ <string name="group_info_unchanged">
+ Generel gruppeinformation er ændret.
+ </string>
+ <button label="?" label_selected="?" name="help_button" />
+ <line_editor label="Indtast nyt gruppenavn her" name="group_name_editor" />
+ <text name="group_name">
+ Skriv det nye gruppenavn her
+ </text>
+ <text name="prepend_founded_by">
+ Grundlagt af
+ </text>
+ <text name="founder_name">
+ (venter)
+ </text>
+ <text name="group_charter_label">
+ Gruppens formål
+ </text>
+ <texture_picker label="Gruppe distinktioner" name="insignia"
+ tool_tip="Klik for at vælge et billede" />
+ <text_editor name="charter">
+ Gruppens formål
+ </text_editor>
+ <button label="Tilmeld (L$0)" label_selected="Tilmeld (L$0)" name="join_button" />
+ <button label="Detaljeret visning" label_selected="Detaljeret visning"
+ name="info_button" />
+ <text name="text_owners_and_visible_members">
+ Ejere &amp; synlige medlemmer
+ </text>
+ <text name="text_owners_are_shown_in_bold">
+ (Ejere er vist med fed skrift)
+ </text>
+ <name_list name="visible_members">
+ <column label="Medlemsnavn" name="name" />
+ <column label="Titel" name="title" />
+ <column label="Senest på d." name="online" />
+ </name_list>
+ <text name="text_group_preferences">
+ Gruppeindstillinger
+ </text>
+ <panel name="preferences_container">
+ <check_box label="Vis i søgning" name="show_in_group_list"
+ tool_tip="Lad folk se denne gruppe i søgeresultater." />
+ <check_box label="Åben tilmelding" name="open_enrollement"
+ tool_tip="Angiver om denne gruppe tillader nye medlemmer at tilmelde sig, uden de er inviteret." />
+ <check_box label="Tilmeldingsgebyr: L$" name="check_enrollment_fee"
+ tool_tip="Angiver om der kræves et gebyr, for at tilmelde sig gruppen." />
+ <spinner name="spin_enrollment_fee"
+ tool_tip="Nye medlemmer skal betale dette gebyr for at tilmelde sig gruppen, når Tilmeldingsgebyr er valgt." />
+
+ <panel name="title_container">
+ <text name="active_title_label">
+ Min aktive titel
+ </text>
+ <combo_box length="150" name="active_title"
+ tool_tip="Angiver den titel der vises i din avatars navnefelt, når denne gruppe er aktiv." />
+ </panel>
+ <check_box label="Modtag gruppeinformationer" name="receive_notices"
+ tool_tip="Angiver om du vil modtage informationer fra denne gruppe. Fjern markeringen i boksen hvis gruppen spammer dig." />
+ <check_box label="Vis gruppen i min profil" name="list_groups_in_profile"
+ tool_tip="Angiver om du vil vise denne gruppe i dine profilinformationer" />
+ </panel>
+ <string name="incomplete_member_data_str">
+ Henter medlemsinformationer
+ </string>
+ <string name="confirm_group_create_str">
+ Creating this group will cost L$100.
+Er du virkelig, virkelig, VIRKELIG sikker på, at du vil bruge L$100 på at lave denne gruppe?
+Du skal være opmærksom på, at hvis ingen andre indmelder sig i denne gruppe indenfor 48 timer, så vil gruppen blive opløst, og gruppens navn vil ikke være tilgængelig i fremtiden.
+ </string>
+</panel>
diff --git a/indra/newview/skins/default/xui/da/panel_group_invite.xml b/indra/newview/skins/default/xui/da/panel_group_invite.xml
index 8050784dfe..6efc93daac 100644
--- a/indra/newview/skins/default/xui/da/panel_group_invite.xml
+++ b/indra/newview/skins/default/xui/da/panel_group_invite.xml
@@ -1,30 +1,30 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel label="Invitér et medlem" name="invite_panel">
- <text name="help_text">
- Du kan invitere flere beboere til at
-blive medlem af din gruppe. Klik &apos;Åben
-personvælger&apos; for at begynde.
- </text>
- <button label="Åben personvælger" name="add_button" />
- <name_list name="invitee_list"
- tool_tip="Hold Ctrl-tasten nede og klik på beboere for at vælge flere." />
- <button label="Fjern valgte fra listen" name="remove_button"
- tool_tip="Fjerner beboere, der er valgt på ovenstående invitationsliste." />
- <text name="role_text">
- Vælg hvilken rolle, du vil tildele dem:
- </text>
- <combo_box name="role_name"
- tool_tip="Vælg fra listen med roller, du har tilladelse til at tildele medlemmerne." />
- <button label="Send invitationer" name="ok_button" />
- <button label="Annullér" name="cancel_button" />
- <string name="confirm_invite_owner_str">
- Er du sikker på, at du vil invitere ny(e) ejer(e)? Denne handling er permanent!
- </string>
- <!--button bottom="25" font="SansSerifSmall" halign="center" height="20"
- label="Send invitationer" left="65" name="ok_button" width="140" />
- <button bottom_delta="-22" font="SansSerifSmall" halign="center" height="20"
- label="Annull&#233;r" left_delta="0" name="cancel_button" width="140" /-->
- <string name="loading">
- (indlæser...)
- </string>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel label="Invitér et medlem" name="invite_panel">
+ <text name="help_text">
+ Du kan invitere flere beboere til at
+blive medlem af din gruppe. Klik &apos;Åben
+personvælger&apos; for at begynde.
+ </text>
+ <button label="Åben personvælger" name="add_button" />
+ <name_list name="invitee_list"
+ tool_tip="Hold Ctrl-tasten nede og klik på beboere for at vælge flere." />
+ <button label="Fjern valgte fra listen" name="remove_button"
+ tool_tip="Fjerner beboere, der er valgt på ovenstående invitationsliste." />
+ <text name="role_text">
+ Vælg hvilken rolle, du vil tildele dem:
+ </text>
+ <combo_box name="role_name"
+ tool_tip="Vælg fra listen med roller, du har tilladelse til at tildele medlemmerne." />
+ <button label="Send invitationer" name="ok_button" />
+ <button label="Annullér" name="cancel_button" />
+ <string name="confirm_invite_owner_str">
+ Er du sikker på, at du vil invitere ny(e) ejer(e)? Denne handling er permanent!
+ </string>
+ <!--button bottom="25" font="SansSerifSmall" halign="center" height="20"
+ label="Send invitationer" left="65" name="ok_button" width="140" />
+ <button bottom_delta="-22" font="SansSerifSmall" halign="center" height="20"
+ label="Annull&#233;r" left_delta="0" name="cancel_button" width="140" /-->
+ <string name="loading">
+ (indlæser...)
+ </string>
+</panel>
diff --git a/indra/newview/skins/default/xui/da/panel_group_land_money.xml b/indra/newview/skins/default/xui/da/panel_group_land_money.xml
index f048090f52..2ab8935609 100644
--- a/indra/newview/skins/default/xui/da/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/da/panel_group_land_money.xml
@@ -1,80 +1,80 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel label="Land &amp; L$" name="land_money_tab">
- <string name="help_text">
- Grunde ejet af gruppen er vist sammen med bidragsdetaljer. En advarsel vises indtil Total land i brug er mindre end eller lig med det totale
-bidrag. Planlægning, detaljer og salgsfaneblade viser information om gruppens økonomi.
- </string>
- <button label="?" name="help_button" />
- <string name="cant_view_group_land_text">
- Du har ikke tilladelse til at se gruppeejet land.
- </string>
- <string name="cant_view_group_accounting_text">
- Du har ikke tilladelse til at se gruppens økonomiinformationer.
- </string>
- <string name="loading_txt">
- Indlæser...
- </string>
- <text name="group_land_heading">
- Gruppeejet land
- </text>
- <scroll_list name="group_parcel_list">
- <column label="Grundens navn" name="name" />
- <column label="Region" name="location" />
- <column label="Område" name="area" />
- <column label="" name="hidden" />
- </scroll_list>
- <button label="Vis på kort" label_selected="Vis på kort" name="map_button" />
- <text name="total_contributed_land_label">
- Total bidrag:
- </text>
- <text name="total_contributed_land_value">
- [AREA] kvadratmeter
- </text>
- <text name="total_land_in_use_label">
- Total land i brug:
- </text>
- <text name="total_land_in_use_value">
- [AREA] kvadratmeter
- </text>
- <text name="land_available_label">
- Tilgængeligt land:
- </text>
- <text name="land_available_value">
- [AREA] kvadratmeter
- </text>
- <text name="your_contribution_label">
- Dit bidrag:
- </text>
- <string name="land_contrib_error">
- Ikke muligt at lave dit bidrag til landet.
- </string>
- <text name="your_contribution_max_value">
- kvadratmeter ([AMOUNT] maks.)
- </text>
- <text name="group_over_limit_text">
- Gruppemedlemmer må bidrag med mere, for at understøtte med det land der bliver brugt.
- </text>
- <text name="group_money_heading">
- Gruppe L$
- </text>
- <tab_container name="group_money_tab_container">
- <panel label="Detaljer" name="group_money_details_tab">
- <text_editor name="group_money_details_text">
- Beregner...
- </text_editor>
- <button label="&lt; Før" label_selected="&lt; Før" name="earlier_details_button"
- tool_tip="Gå tilbage i tid" />
- <button label="Efter &gt;" label_selected="Efter &gt;" name="later_details_button"
- tool_tip="Gå frem i tid" />
- </panel>
- <panel label="Salg" name="group_money_sales_tab">
- <text_editor name="group_money_sales_text">
- Beregner...
- </text_editor>
- <button label="&lt; Før" label_selected="&lt; Før" name="earlier_sales_button"
- tool_tip="Gå tilbage i tid" />
- <button label="Efter &gt;" label_selected="Efter &gt;" name="later_sales_button"
- tool_tip="Gå frem i tid" />
- </panel>
- </tab_container>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel label="Land &amp; L$" name="land_money_tab">
+ <string name="help_text">
+ Grunde ejet af gruppen er vist sammen med bidragsdetaljer. En advarsel vises indtil Total land i brug er mindre end eller lig med det totale
+bidrag. Planlægning, detaljer og salgsfaneblade viser information om gruppens økonomi.
+ </string>
+ <button label="?" name="help_button" />
+ <string name="cant_view_group_land_text">
+ Du har ikke tilladelse til at se gruppeejet land.
+ </string>
+ <string name="cant_view_group_accounting_text">
+ Du har ikke tilladelse til at se gruppens økonomiinformationer.
+ </string>
+ <string name="loading_txt">
+ Indlæser...
+ </string>
+ <text name="group_land_heading">
+ Gruppeejet land
+ </text>
+ <scroll_list name="group_parcel_list">
+ <column label="Grundens navn" name="name" />
+ <column label="Region" name="location" />
+ <column label="Område" name="area" />
+ <column label="" name="hidden" />
+ </scroll_list>
+ <button label="Vis på kort" label_selected="Vis på kort" name="map_button" />
+ <text name="total_contributed_land_label">
+ Total bidrag:
+ </text>
+ <text name="total_contributed_land_value">
+ [AREA] kvadratmeter
+ </text>
+ <text name="total_land_in_use_label">
+ Total land i brug:
+ </text>
+ <text name="total_land_in_use_value">
+ [AREA] kvadratmeter
+ </text>
+ <text name="land_available_label">
+ Tilgængeligt land:
+ </text>
+ <text name="land_available_value">
+ [AREA] kvadratmeter
+ </text>
+ <text name="your_contribution_label">
+ Dit bidrag:
+ </text>
+ <string name="land_contrib_error">
+ Ikke muligt at lave dit bidrag til landet.
+ </string>
+ <text name="your_contribution_max_value">
+ kvadratmeter ([AMOUNT] maks.)
+ </text>
+ <text name="group_over_limit_text">
+ Gruppemedlemmer må bidrag med mere, for at understøtte med det land der bliver brugt.
+ </text>
+ <text name="group_money_heading">
+ Gruppe L$
+ </text>
+ <tab_container name="group_money_tab_container">
+ <panel label="Detaljer" name="group_money_details_tab">
+ <text_editor name="group_money_details_text">
+ Beregner...
+ </text_editor>
+ <button label="&lt; Før" label_selected="&lt; Før" name="earlier_details_button"
+ tool_tip="Gå tilbage i tid" />
+ <button label="Efter &gt;" label_selected="Efter &gt;" name="later_details_button"
+ tool_tip="Gå frem i tid" />
+ </panel>
+ <panel label="Salg" name="group_money_sales_tab">
+ <text_editor name="group_money_sales_text">
+ Beregner...
+ </text_editor>
+ <button label="&lt; Før" label_selected="&lt; Før" name="earlier_sales_button"
+ tool_tip="Gå tilbage i tid" />
+ <button label="Efter &gt;" label_selected="Efter &gt;" name="later_sales_button"
+ tool_tip="Gå frem i tid" />
+ </panel>
+ </tab_container>
+</panel>
diff --git a/indra/newview/skins/default/xui/da/panel_group_notices.xml b/indra/newview/skins/default/xui/da/panel_group_notices.xml
index dcef15bbb6..103404e47b 100644
--- a/indra/newview/skins/default/xui/da/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/da/panel_group_notices.xml
@@ -1,73 +1,73 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel label="Beskeder" name="notices_tab">
- <string name="help_text">
- Beskeder er en hurtig måde at kommunikere på
-på tværs i gruppen ved at sende en meddelelse eller en
-eventuel vedlagt genstand. beskeder sendes kun til
-gruppemedlemmer i roller som giver evnen til at
-modtage dem. Du kan slå beskeder fra i
-Generel-fanebladet.
- </string>
- <string name="no_notices_text">
- Der er ingen tidligere beskeder.
- </string>
- <button label="?" label_selected="?" name="help_button" />
- <text name="lbl">
- Arkiv med gruppebeskeder
- </text>
- <text name="lbl2">
- Beskeder er gemt i 14 dage. Klik på den besked herunder, du ønsker at se.
-Klik på &apos;Genopfrisk&apos;-knappen for at se, om nye beskeder er modtaget.
-Listen er begrænset til 200 beskeder pr. gruppe hver dag.
- </text>
- <scroll_list name="notice_list">
- <column label="" name="icon" />
- <column label="Emne" name="subject" />
- <column label="Fra" name="from" />
- <column label="Dato" name="date" />
- </scroll_list>
- <text name="notice_list_none_found">
- Ingen fundet.
- </text>
- <button label="Lav ny besked" label_selected="Lav ny besked" name="create_new_notice" />
- <button label="Genopfrisk" label_selected="Genopfrisk liste" name="refresh_notices" />
- <panel label="Lav ny besked" name="panel_create_new_notice">
- <text name="lbl">
- Lav en besked
- </text>
- <text name="lbl2">
- Du skal skrive et emne for at sende beskeden. Du kan tilføje et
-bilag til beskeden ved at trække den fra beholdningen til
-dette felt. Vedhæftede objekter skal være sat til at kunne
-kopieres og overføres, og du kan ikke sende en mappe.
- </text>
- <text name="lbl3">
- Emne:
- </text>
- <text name="lbl4">
- Besked:
- </text>
- <text name="lbl5">
- Vedhæft:
- </text>
- <button label="Fjern bilag" label_selected="Fjern bilag" name="remove_attachment" />
- <button label="Afsend" label_selected="Afsend" name="send_notice" />
- <panel name="drop_target"
- tool_tip="Træk en genstand fra beholdningen over på denne boks for at sende den sammen med beskeden. Du skal have tilladelse til at kopiere og overføre genstanden, for at kunne sende den med beskeden." />
- </panel>
- <panel label="Se tidligere beskeder" name="panel_view_past_notice">
- <text name="lbl">
- Arkiverede beskeder
- </text>
- <text name="lbl2">
- For at sende en ny besked, klik på &apos;Lav ny besked&apos;-knappen foroven.
- </text>
- <text name="lbl3">
- Emne:
- </text>
- <text name="lbl4">
- Besked:
- </text>
- <button label="åben bilag" label_selected="åben bilag" name="open_attachment" />
- </panel>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel label="Beskeder" name="notices_tab">
+ <string name="help_text">
+ Beskeder er en hurtig måde at kommunikere på
+på tværs i gruppen ved at sende en meddelelse eller en
+eventuel vedlagt genstand. beskeder sendes kun til
+gruppemedlemmer i roller som giver evnen til at
+modtage dem. Du kan slå beskeder fra i
+Generel-fanebladet.
+ </string>
+ <string name="no_notices_text">
+ Der er ingen tidligere beskeder.
+ </string>
+ <button label="?" label_selected="?" name="help_button" />
+ <text name="lbl">
+ Arkiv med gruppebeskeder
+ </text>
+ <text name="lbl2">
+ Beskeder er gemt i 14 dage. Klik på den besked herunder, du ønsker at se.
+Klik på &apos;Genopfrisk&apos;-knappen for at se, om nye beskeder er modtaget.
+Listen er begrænset til 200 beskeder pr. gruppe hver dag.
+ </text>
+ <scroll_list name="notice_list">
+ <column label="" name="icon" />
+ <column label="Emne" name="subject" />
+ <column label="Fra" name="from" />
+ <column label="Dato" name="date" />
+ </scroll_list>
+ <text name="notice_list_none_found">
+ Ingen fundet.
+ </text>
+ <button label="Lav ny besked" label_selected="Lav ny besked" name="create_new_notice" />
+ <button label="Genopfrisk" label_selected="Genopfrisk liste" name="refresh_notices" />
+ <panel label="Lav ny besked" name="panel_create_new_notice">
+ <text name="lbl">
+ Lav en besked
+ </text>
+ <text name="lbl2">
+ Du skal skrive et emne for at sende beskeden. Du kan tilføje et
+bilag til beskeden ved at trække den fra beholdningen til
+dette felt. Vedhæftede objekter skal være sat til at kunne
+kopieres og overføres, og du kan ikke sende en mappe.
+ </text>
+ <text name="lbl3">
+ Emne:
+ </text>
+ <text name="lbl4">
+ Besked:
+ </text>
+ <text name="lbl5">
+ Vedhæft:
+ </text>
+ <button label="Fjern bilag" label_selected="Fjern bilag" name="remove_attachment" />
+ <button label="Afsend" label_selected="Afsend" name="send_notice" />
+ <panel name="drop_target"
+ tool_tip="Træk en genstand fra beholdningen over på denne boks for at sende den sammen med beskeden. Du skal have tilladelse til at kopiere og overføre genstanden, for at kunne sende den med beskeden." />
+ </panel>
+ <panel label="Se tidligere beskeder" name="panel_view_past_notice">
+ <text name="lbl">
+ Arkiverede beskeder
+ </text>
+ <text name="lbl2">
+ For at sende en ny besked, klik på &apos;Lav ny besked&apos;-knappen foroven.
+ </text>
+ <text name="lbl3">
+ Emne:
+ </text>
+ <text name="lbl4">
+ Besked:
+ </text>
+ <button label="åben bilag" label_selected="åben bilag" name="open_attachment" />
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/da/panel_group_roles.xml b/indra/newview/skins/default/xui/da/panel_group_roles.xml
index 1159c41c4a..2af84858a1 100644
--- a/indra/newview/skins/default/xui/da/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/da/panel_group_roles.xml
@@ -1,161 +1,161 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel label="Medlemmer &amp; roller" name="roles_tab">
- <string name="default_needs_apply_text">
- Der er ændringer her, der ikke er gemt.
- </string>
- <string name="want_apply_text">
- Vil du gemme disse ændringer?
- </string>
- <button label="?" name="help_button" />
- <panel name="members_header">
- <text name="static">
- Medlemmer &amp; roller
- </text>
- <text name="static2">
- Gruppemedlemmer får tildelt roller med rettigheder. Disse indstillinger kan
-let tilpasses efter ønske, så gruppen kan vokse og blive mere fleksibel.
- </text>
- </panel>
- <panel name="roles_header">
- <text name="static">
- Roller
- </text>
- <text name="role_properties_modifiable">
- Vælg en rolle nedenfor. Du kan ændre dens navn, beskrivelse og medlemstitel.
- </text>
- <text name="role_properties_not_modifiable">
- Vælg rolle forneden for at se dens egenskaber, medlemmer og rettigheder.
- </text>
- <text name="role_actions_modifiable">
- Du kan også tildele rettigheder til rollen.
- </text>
- <text name="role_actions_not_modifiable">
- Du kan se, men ikke ændre, tildelte rettigheder.
- </text>
- </panel>
- <panel name="actions_header">
- <text name="static">
- Rettigheder
- </text>
- <text name="static2">
- Du kan se en rettigheds beskrivelse og hvilke roller og medlemmer,
-der har denne rettighed.
- </text>
- </panel>
- <tab_container name="roles_tab_container">
- <panel label="Medlemmer" name="members_sub_tab" tool_tip="Medlemmer">
- <button label="Søg" name="search_button" />
- <button label="Vis alle" name="show_all_button" />
- <name_list name="member_list">
- <column label="Medlemsnavn" name="name" />
- <column label="Doneret leje" name="donated" />
- <column label="Sidst på den" name="online" />
- </name_list>
- <button label="Inviter ny person ..." name="member_invite" />
- <button label="Udmeld" name="member_eject" />
- <string name="help_text">
- Du kan tilføje eller fjerne roller, der er tildelt medlemmerne.
-Vælg flere medlemmer ved at holde Ctrl-tasten nede og
-klik på deres navne.
- </string>
- </panel>
- <panel label="Roller" name="roles_sub_tab">
- <button label="Søg" name="search_button" />
- <button label="Vis alle" name="show_all_button" />
- <scroll_list name="role_list">
- <column label="Rollenavn" name="name" />
- <column label="Titel" name="title" />
- <column label="Medlemmer" name="members" />
- </scroll_list>
- <button label="Opret ny rolle ..." name="role_create" />
- <button label="Slet rolle" name="role_delete" />
- <string name="help_text">
- Roller har en titel og en tilladelsesliste med rettigheder,
-som medlemmerne kan bruge. Medlemmer kan høre til
-en eller flere roller. En gruppe kan have op til 10 roller,
-inkluderet alle- og ejerroller.
- </string>
- <string name="cant_delete_role">
- &apos;Alle-&apos; og &apos;Ejerroller&apos; er specielle og kan ikke slettes.
- </string>
- </panel>
- <panel label="Rettigheder" name="actions_sub_tab">
- <button label="Søg" name="search_button" />
- <button label="Vis alle" name="show_all_button" />
- <scroll_list name="action_list" tool_tip="Vælg en rettighed for at se flere detaljer">
- <column label="" name="icon" />
- <column label="" name="action" />
- </scroll_list>
- <string name="help_text">
- Rettigheder giver medlemmer i roller mulighed for at gøre specifikke
-ting i denne gruppe. Der er en bred vifte af rettigheder.
- </string>
- </panel>
- </tab_container>
- <panel name="members_footer">
- <text name="static">
- Tildelte roller
- </text>
- <text name="static2">
- Tilladte rettigheder
- </text>
- <scroll_list name="member_assigned_roles">
- <column label="" name="checkbox" />
- <column label="" name="role" />
- </scroll_list>
- <scroll_list name="member_allowed_actions"
- tool_tip="For detaljer om hver tilladte rettighed, se rettighedsfanebladet.">
- <column label="" name="icon" />
- <column label="" name="action" />
- </scroll_list>
- </panel>
- <panel name="roles_footer">
- <text name="static">
- Navn
- </text>
- <text name="static2">
- Beskrivelse
- </text>
- <line_editor name="role_name">
- Ansatte
- </line_editor>
- <text name="static3">
- Titel
- </text>
- <line_editor name="role_title">
- (venter)
- </line_editor>
- <text_editor name="role_description">
- (venter)
- </text_editor>
- <text name="static4">
- Tildelte medlemmer
- </text>
- <text name="static5"
- tool_tip="A list of Abilities the currently selected role can perform.">
- Tilladte rettigheder
- </text>
- <check_box label="Medlemmer er synlige" name="role_visible_in_list"
- tool_tip=" Angiver om medlemmer med denne rolle er synlige i fanen &apos;Generelt&apos; for avatarer uden for gruppen." />
- <scroll_list name="role_allowed_actions"
- tool_tip="For detaljer om hver rettighed se under rettigheder fanebladet.">
- <column label="" name="icon" />
- <column label="" name="checkbox" />
- <column label="" name="action" />
- </scroll_list>
- </panel>
- <panel name="actions_footer">
- <text name="static">
- Beskrivelse
- </text>
- <text_editor name="action_description">
- Denne rettigheder &apos;Udmeld medlemmer fra denne gruppe&apos;. Kun en ejer kan udmelde en anden ejer.
- </text_editor>
- <text name="static2">
- Roller med rettighed
- </text>
- <text name="static3">
- Medlemmer med rettighed
- </text>
- </panel>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel label="Medlemmer &amp; roller" name="roles_tab">
+ <string name="default_needs_apply_text">
+ Der er ændringer her, der ikke er gemt.
+ </string>
+ <string name="want_apply_text">
+ Vil du gemme disse ændringer?
+ </string>
+ <button label="?" name="help_button" />
+ <panel name="members_header">
+ <text name="static">
+ Medlemmer &amp; roller
+ </text>
+ <text name="static2">
+ Gruppemedlemmer får tildelt roller med rettigheder. Disse indstillinger kan
+let tilpasses efter ønske, så gruppen kan vokse og blive mere fleksibel.
+ </text>
+ </panel>
+ <panel name="roles_header">
+ <text name="static">
+ Roller
+ </text>
+ <text name="role_properties_modifiable">
+ Vælg en rolle nedenfor. Du kan ændre dens navn, beskrivelse og medlemstitel.
+ </text>
+ <text name="role_properties_not_modifiable">
+ Vælg rolle forneden for at se dens egenskaber, medlemmer og rettigheder.
+ </text>
+ <text name="role_actions_modifiable">
+ Du kan også tildele rettigheder til rollen.
+ </text>
+ <text name="role_actions_not_modifiable">
+ Du kan se, men ikke ændre, tildelte rettigheder.
+ </text>
+ </panel>
+ <panel name="actions_header">
+ <text name="static">
+ Rettigheder
+ </text>
+ <text name="static2">
+ Du kan se en rettigheds beskrivelse og hvilke roller og medlemmer,
+der har denne rettighed.
+ </text>
+ </panel>
+ <tab_container name="roles_tab_container">
+ <panel label="Medlemmer" name="members_sub_tab" tool_tip="Medlemmer">
+ <button label="Søg" name="search_button" />
+ <button label="Vis alle" name="show_all_button" />
+ <name_list name="member_list">
+ <column label="Medlemsnavn" name="name" />
+ <column label="Doneret leje" name="donated" />
+ <column label="Sidst på den" name="online" />
+ </name_list>
+ <button label="Inviter ny person ..." name="member_invite" />
+ <button label="Udmeld" name="member_eject" />
+ <string name="help_text">
+ Du kan tilføje eller fjerne roller, der er tildelt medlemmerne.
+Vælg flere medlemmer ved at holde Ctrl-tasten nede og
+klik på deres navne.
+ </string>
+ </panel>
+ <panel label="Roller" name="roles_sub_tab">
+ <button label="Søg" name="search_button" />
+ <button label="Vis alle" name="show_all_button" />
+ <scroll_list name="role_list">
+ <column label="Rollenavn" name="name" />
+ <column label="Titel" name="title" />
+ <column label="Medlemmer" name="members" />
+ </scroll_list>
+ <button label="Opret ny rolle ..." name="role_create" />
+ <button label="Slet rolle" name="role_delete" />
+ <string name="help_text">
+ Roller har en titel og en tilladelsesliste med rettigheder,
+som medlemmerne kan bruge. Medlemmer kan høre til
+en eller flere roller. En gruppe kan have op til 10 roller,
+inkluderet alle- og ejerroller.
+ </string>
+ <string name="cant_delete_role">
+ &apos;Alle-&apos; og &apos;Ejerroller&apos; er specielle og kan ikke slettes.
+ </string>
+ </panel>
+ <panel label="Rettigheder" name="actions_sub_tab">
+ <button label="Søg" name="search_button" />
+ <button label="Vis alle" name="show_all_button" />
+ <scroll_list name="action_list" tool_tip="Vælg en rettighed for at se flere detaljer">
+ <column label="" name="icon" />
+ <column label="" name="action" />
+ </scroll_list>
+ <string name="help_text">
+ Rettigheder giver medlemmer i roller mulighed for at gøre specifikke
+ting i denne gruppe. Der er en bred vifte af rettigheder.
+ </string>
+ </panel>
+ </tab_container>
+ <panel name="members_footer">
+ <text name="static">
+ Tildelte roller
+ </text>
+ <text name="static2">
+ Tilladte rettigheder
+ </text>
+ <scroll_list name="member_assigned_roles">
+ <column label="" name="checkbox" />
+ <column label="" name="role" />
+ </scroll_list>
+ <scroll_list name="member_allowed_actions"
+ tool_tip="For detaljer om hver tilladte rettighed, se rettighedsfanebladet.">
+ <column label="" name="icon" />
+ <column label="" name="action" />
+ </scroll_list>
+ </panel>
+ <panel name="roles_footer">
+ <text name="static">
+ Navn
+ </text>
+ <text name="static2">
+ Beskrivelse
+ </text>
+ <line_editor name="role_name">
+ Ansatte
+ </line_editor>
+ <text name="static3">
+ Titel
+ </text>
+ <line_editor name="role_title">
+ (venter)
+ </line_editor>
+ <text_editor name="role_description">
+ (venter)
+ </text_editor>
+ <text name="static4">
+ Tildelte medlemmer
+ </text>
+ <text name="static5"
+ tool_tip="A list of Abilities the currently selected role can perform.">
+ Tilladte rettigheder
+ </text>
+ <check_box label="Medlemmer er synlige" name="role_visible_in_list"
+ tool_tip=" Angiver om medlemmer med denne rolle er synlige i fanen &apos;Generelt&apos; for avatarer uden for gruppen." />
+ <scroll_list name="role_allowed_actions"
+ tool_tip="For detaljer om hver rettighed se under rettigheder fanebladet.">
+ <column label="" name="icon" />
+ <column label="" name="checkbox" />
+ <column label="" name="action" />
+ </scroll_list>
+ </panel>
+ <panel name="actions_footer">
+ <text name="static">
+ Beskrivelse
+ </text>
+ <text_editor name="action_description">
+ Denne rettigheder &apos;Udmeld medlemmer fra denne gruppe&apos;. Kun en ejer kan udmelde en anden ejer.
+ </text_editor>
+ <text name="static2">
+ Roller med rettighed
+ </text>
+ <text name="static3">
+ Medlemmer med rettighed
+ </text>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/da/panel_groups.xml b/indra/newview/skins/default/xui/da/panel_groups.xml
index ae95c382d3..b3a09b0082 100644
--- a/indra/newview/skins/default/xui/da/panel_groups.xml
+++ b/indra/newview/skins/default/xui/da/panel_groups.xml
@@ -1,18 +1,18 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel name="groups">
- <scroll_list name="group list">
- <column label="" name="name" />
- </scroll_list>
- <text type="string" length="1" name="groupdesc">
- Din nuværende aktive gruppe er fremhævet i listen.
- </text>
- <text type="string" length="1" name="groupcount">
- Du er medlem i [COUNT] grupper (ud af maksimalt [MAX]).
- </text>
- <button label="IM/Opkald" name="IM" tool_tip="Åbner IM session" />
- <button label="Info" name="Info" />
- <button label="Aktivér" name="Activate" />
- <button label="Forlad" name="Leave" />
- <button label="Opret..." name="Create" />
- <button label="Søg..." name="Search..." />
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel name="groups">
+ <scroll_list name="group list">
+ <column label="" name="name" />
+ </scroll_list>
+ <text type="string" length="1" name="groupdesc">
+ Din nuværende aktive gruppe er fremhævet i listen.
+ </text>
+ <text type="string" length="1" name="groupcount">
+ Du er medlem i [COUNT] grupper (ud af maksimalt [MAX]).
+ </text>
+ <button label="IM/Opkald" name="IM" tool_tip="Åbner IM session" />
+ <button label="Info" name="Info" />
+ <button label="Aktivér" name="Activate" />
+ <button label="Forlad" name="Leave" />
+ <button label="Opret..." name="Create" />
+ <button label="Søg..." name="Search..." />
+</panel>
diff --git a/indra/newview/skins/default/xui/da/panel_preferences_chat.xml b/indra/newview/skins/default/xui/da/panel_preferences_chat.xml
index 254cd6ddb9..e57b151511 100644
--- a/indra/newview/skins/default/xui/da/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/da/panel_preferences_chat.xml
@@ -4,15 +4,9 @@
Chat skriftstørrelse:
</text>
<radio_group name="chat_font_size">
- <radio_item type="string" length="1" name="radio">
- Lille
- </radio_item>
- <radio_item type="string" length="1" name="radio2">
- Mellem
- </radio_item>
- <radio_item type="string" length="1" name="radio3">
- Stor
- </radio_item>
+ <radio_item type="string" length="1" name="radio" label="Lille" />
+ <radio_item type="string" length="1" name="radio2" label="Mellem" />
+ <radio_item type="string" length="1" name="radio3" label="Stor" />
</radio_group>
<text type="string" length="1" name="text_box2">
Chat farve:
diff --git a/indra/newview/skins/default/xui/da/panel_preferences_general.xml b/indra/newview/skins/default/xui/da/panel_preferences_general.xml
index a800002448..df27d05643 100644
--- a/indra/newview/skins/default/xui/da/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/da/panel_preferences_general.xml
@@ -1,58 +1,68 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Generelt" name="general_panel">
<radio_group name="default_start_location">
- <radio_item name="MyHome" tool_tip="Log ind til min hjemme lokation som standard.">
- Mit hjem
- </radio_item>
- <radio_item name="MyLastLocation" tool_tip="Log ind til min sidste lokation som standard.">
- Min sidste lokation
- </radio_item>
+ <radio_item name="MyHome" tool_tip="Log ind til min hjemme lokation som standard." label="Mit hjem" />
+ <radio_item name="MyLastLocation" tool_tip="Log ind til min sidste lokation som standard." label="Min sidste lokation" />
</radio_group>
- <check_box label="Vis start lokation på login billedet" name="show_location_checkbox" />
+ <check_box label="Vis start lokation på login billedet" name="show_location_checkbox"/>
<combo_box name="fade_out_combobox">
<combo_box.item name="Never" label="Aldrig"/>
<combo_box.item name="Show Temporarily" label="Vis midlertidigt"/>
<combo_box.item name="Always" label="Altid"/>
</combo_box>
- <check_box label="Små avatar navne" name="small_avatar_names_checkbox" />
- <check_box label="Skjul mit navn på min skærm" name="show_my_name_checkbox" />
- <text type="string" length="1" name="group_titles_textbox">
+ <check_box label="Små avatar navne" name="small_avatar_names_checkbox"/>
+ <check_box label="Skjul mit navn på min skærm" name="show_my_name_checkbox"/>
+ <text length="1" name="group_titles_textbox" type="string">
Gruppe titler:
</text>
- <check_box label="Skjul alle gruppe titler" name="show_all_title_checkbox" />
- <check_box label="Gem min gruppe titel" name="show_my_title_checkbox" />
- <color_swatch label="" name="effect_color_swatch" tool_tip="Klik for at åbne farvevælger" />
- <text type="string" length="1" name="UI Size:">
+ <check_box label="Skjul alle gruppe titler" name="show_all_title_checkbox"/>
+ <check_box label="Gem min gruppe titel" name="show_my_title_checkbox"/>
+ <color_swatch label="" name="effect_color_swatch" tool_tip="Klik for at åbne farvevælger"/>
+ <text length="1" name="UI Size:" type="string">
UI Størrelse:
</text>
- <check_box label="Brug opløsnings uafhængig skalering" name="ui_auto_scale" />
- <spinner label="Tid før inaktiv:" name="afk_timeout_spinner" />
- <check_box label="Rotér mini-kort" name="rotate_mini_map_checkbox" />
- <check_box label="Giv besked når Linden dollars (L$) bliver brugt eller modtaget"
- name="notify_money_change_checkbox" />
- <check_box label="Brug standard farve vælger" name="use_system_color_picker_checkbox"
- tool_tip="Brug dit systems standard farve vælger i stedet for den der er indbygget i Second Life." />
- <check_box label="Vis Søg i øverste højre hjørne" name="show_search_panel"
- tool_tip="Vis indbygget søgepanel." />
- <text type="string" length="1" name="start_location_textbox">
+ <check_box label="Brug opløsnings uafhængig skalering" name="ui_auto_scale"/>
+ <spinner label="Tid før inaktiv:" name="afk_timeout_spinner"/>
+ <check_box label="Giv besked når Linden dollars (L$) bliver brugt eller modtaget" name="notify_money_change_checkbox"/>
+ <text name="maturity_desired_label">
+ Rating:
+ </text>
+ <text name="maturity_desired_prompt">
+ Jeg ønsker adgang til inhold med rating:
+ </text>
+ <combo_box name="maturity_desired_combobox" left="360" width="135">
+ <combo_item name="Desired_Adult">
+ PG, Mature og Adult
+ </combo_item>
+ <combo_item name="Desired_Mature">
+ PG and Mature
+ </combo_item>
+ <combo_item name="Desired_PG">
+ PG only
+ </combo_item>
+ </combo_box>
+ <text name="maturity_desired_textbox" left="360">
+ PG only
+ </text>
+ <text length="1" name="start_location_textbox" type="string">
Start lokation:
</text>
- <text type="string" length="1" name="show_names_textbox">
+ <text length="1" name="show_names_textbox" type="string">
Vis navne:
</text>
- <text type="string" length="1" name="effects_color_textbox">
+ <text length="1" name="effects_color_textbox" type="string">
Farve til mine effekter:
</text>
- <text type="string" length="1" name="seconds_textbox">
+ <text length="1" name="seconds_textbox" type="string">
sekunder
</text>
- <text type="string" length="1" name="crash_report_textbox">
+ <text length="1" name="crash_report_textbox" type="string">
Nedbrudsrapporter:
</text>
- <text type="string" length="1" name="language_textbox">
+ <text length="1" name="language_textbox" type="string">
Sprog:
</text>
- <text type="string" length="1" name="language_textbox2">
+ <text length="1" name="language_textbox2" type="string">
(Kræver genstart for at virke optimalt)
</text>
<string name="region_name_prompt">
@@ -77,6 +87,5 @@
<combo_box.item type="string" length="1" name="(Japanese)" label="日本語 (Japansk) - Beta"/>
<combo_box.item type="string" length="1" name="(Korean)" label="한국어 (Koreansk) - Beta"/>
</combo_box>
- <check_box label="Del sprog med objekter" name="language_is_public"
- tool_tip="Dette lader objekter i verden vide hvad dit foretrukne sprog er." />
+ <check_box label="Del sprog med objekter" name="language_is_public" tool_tip="Dette lader objekter i verden vide hvad dit foretrukne sprog er."/>
</panel>
diff --git a/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml
index 669513d120..86c506a0fd 100644
--- a/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml
@@ -69,18 +69,10 @@
Spejlnings detaljer:
</text>
<radio_group name="ReflectionDetailRadio">
- <radio_item type="string" length="1" name="0">
- Terræn og træer
- </radio_item>
- <radio_item type="string" length="1" name="1">
- Alle statiske objekter
- </radio_item>
- <radio_item type="string" length="1" name="2">
- Alle avatarer og objekter
- </radio_item>
- <radio_item type="string" length="1" name="3">
- Alt
- </radio_item>
+ <radio_item type="string" length="1" name="0" label="Terræn og træer" />
+ <radio_item type="string" length="1" name="1" label="Alle statiske objekter" />
+ <radio_item type="string" length="1" name="2" label="Alle avatarer og objekter" />
+ <radio_item type="string" length="1" name="3" label="Alt" />
</radio_group>
<text type="string" length="1" name="AvatarRenderingText">
Avatar gengivelse
@@ -131,23 +123,15 @@
Lys detaljer:
</text>
<radio_group name="LightingDetailRadio">
- <radio_item type="string" length="1" name="SunMoon">
- Kun sol og måne
- </radio_item>
- <radio_item type="string" length="1" name="LocalLights">
- Lys i nærheden
- </radio_item>
+ <radio_item type="string" length="1" name="SunMoon" label="Kun sol og måne" />
+ <radio_item type="string" length="1" name="LocalLights" label="Lys i nærheden" />
</radio_group>
<text type="string" length="1" name="TerrainDetailText">
Terræn detaljer:
</text>
<radio_group name="TerrainDetailRadio">
- <radio_item type="string" length="1" name="0">
- Lav
- </radio_item>
- <radio_item type="string" length="1" name="2">
- Høj
- </radio_item>
+ <radio_item type="string" length="1" name="0" label="Lav" />
+ <radio_item type="string" length="1" name="2" label="Høj" />
</radio_group>
<button label="Anbefalede indstillinger" name="Defaults" />
<button label="Hardware valg" label_selected="Hardware Options"
diff --git a/indra/newview/skins/default/xui/da/panel_region_covenant.xml b/indra/newview/skins/default/xui/da/panel_region_covenant.xml
index c3dcac52c5..63a2f90e36 100644
--- a/indra/newview/skins/default/xui/da/panel_region_covenant.xml
+++ b/indra/newview/skins/default/xui/da/panel_region_covenant.xml
@@ -1,50 +1,50 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel label="Covenant" name="Covenant">
- <text name="covenant_help_text">
- Ændringer i regel information vil blive vist i alle parceller til denne estate.
- </text>
- <text name="region_name_lbl">
- Region:
- </text>
- <text name="region_name_text">
- (ukendt)
- </text>
- <text name="estate_name_lbl">
- Estate:
- </text>
- <text name="estate_name_text">
- (ukendt)
- </text>
- <text name="estate_owner_lbl">
- Estate ejer:
- </text>
- <text name="estate_owner_text">
- (ukendt)
- </text>
- <text name="resellable_clause">
- Valgfrit om købt land i denne region må sælges videre
- </text>
- <text name="changeable_clause">
- Valgfrit om købt land i denne region må deles eller samles.
- </text>
- <text name="covenent_instructions">
- Træk og slip et notecard her for at ændre regler for dette estate.
- </text>
- <text_editor name="covenant_editor">
- Henter...
- </text_editor>
- <button label="Reset" name="reset_covenant" />
- <string name="can_resell">
- Købt land i denne region må sælges videre
- </string>
- <string name="can_not_resell">
- Købt land i denne region må ikke sælges videre
- </string>
- <string name="can_change">
- Købt land i denne region må deles eller samles.
- </string>
- <string name="can_not_change">
- Købt land i denne region må ikke deles eller samles.
- </string>
- <button label="?" name="covenant_help" />
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel label="Covenant" name="Covenant">
+ <text name="covenant_help_text">
+ Ændringer i regel information vil blive vist i alle parceller til denne estate.
+ </text>
+ <text name="region_name_lbl">
+ Region:
+ </text>
+ <text name="region_name_text">
+ (ukendt)
+ </text>
+ <text name="estate_name_lbl">
+ Estate:
+ </text>
+ <text name="estate_name_text">
+ (ukendt)
+ </text>
+ <text name="estate_owner_lbl">
+ Estate ejer:
+ </text>
+ <text name="estate_owner_text">
+ (ukendt)
+ </text>
+ <text name="resellable_clause">
+ Valgfrit om købt land i denne region må sælges videre
+ </text>
+ <text name="changeable_clause">
+ Valgfrit om købt land i denne region må deles eller samles.
+ </text>
+ <text name="covenent_instructions">
+ Træk og slip et notecard her for at ændre regler for dette estate.
+ </text>
+ <text_editor name="covenant_editor">
+ Henter...
+ </text_editor>
+ <button label="Reset" name="reset_covenant" />
+ <string name="can_resell">
+ Købt land i denne region må sælges videre
+ </string>
+ <string name="can_not_resell">
+ Købt land i denne region må ikke sælges videre
+ </string>
+ <string name="can_change">
+ Købt land i denne region må deles eller samles.
+ </string>
+ <string name="can_not_change">
+ Købt land i denne region må ikke deles eller samles.
+ </string>
+ <button label="?" name="covenant_help" />
+</panel>
diff --git a/indra/newview/skins/default/xui/da/panel_region_debug.xml b/indra/newview/skins/default/xui/da/panel_region_debug.xml
index f0558abbb2..07e857163a 100644
--- a/indra/newview/skins/default/xui/da/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/da/panel_region_debug.xml
@@ -1,51 +1,51 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel label="Debug" name="Debug">
- <text name="region_text_lbl">
- Region:
- </text>
- <text name="region_text">
- ukendt
- </text>
- <check_box label="Deaktivér scripts" name="disable_scripts_check"
- tool_tip="Deaktivér alle scripts i denne region" />
- <button label="?" name="disable_scripts_help" />
- <check_box label="Deaktivér kollisioner" name="disable_collisions_check"
- tool_tip="Deaktivér kollisioner mellem objekter i denne region" />
- <button label="?" name="disable_collisions_help" />
- <check_box label="Deaktivér fysik" name="disable_physics_check"
- tool_tip="Deaktivér alt fysik i denne region" />
- <button label="?" name="disable_physics_help" />
- <button label="Gem" name="apply_btn" />
- <text name="objret_text_lbl">
- Returnér objekter
- </text>
- <text name="resident_text_lbl">
- Beboer:
- </text>
- <line_editor name="target_avatar_name">
- (ingen)
- </line_editor>
- <button label="Vælg..." name="choose_avatar_btn" />
- <text name="options_text_lbl">
- Valg:
- </text>
- <check_box label="Returnér kun objekter med script" name="return_scripts"
- tool_tip="Returnér kun objekter med scripts." />
- <check_box label="Returnér kun objekter på andre brugeres land" name="return_other_land"
- tool_tip="returnér kun objekter på land som tilhører andre" />
- <check_box label="Returnér objekter fra alle regioner i denne estate"
- name="return_estate_wide"
- tool_tip="Returnér objekter i alle regioner der tilhører denne estate" />
- <button label="Returnér" name="return_btn" />
- <button label="Mest kolliderende..." name="top_colliders_btn"
- tool_tip="Liste med de objekter der oplever flest kollissioner" />
- <button label="?" name="top_colliders_help" />
- <button label="Mest krævende scripts..." name="top_scripts_btn"
- tool_tip="Liste med de objekter der kræver mest script tid" />
- <button label="?" name="top_scripts_help" />
- <button label="Genstart region" name="restart_btn"
- tool_tip="Genstart region om 2 minutter (sender advarsel først)" />
- <button label="?" name="restart_help" />
- <button label="Udskyd genstart" name="cancel_restart_btn"
- tool_tip="Udsæt genstart med en time" />
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel label="Debug" name="Debug">
+ <text name="region_text_lbl">
+ Region:
+ </text>
+ <text name="region_text">
+ ukendt
+ </text>
+ <check_box label="Deaktivér scripts" name="disable_scripts_check"
+ tool_tip="Deaktivér alle scripts i denne region" />
+ <button label="?" name="disable_scripts_help" />
+ <check_box label="Deaktivér kollisioner" name="disable_collisions_check"
+ tool_tip="Deaktivér kollisioner mellem objekter i denne region" />
+ <button label="?" name="disable_collisions_help" />
+ <check_box label="Deaktivér fysik" name="disable_physics_check"
+ tool_tip="Deaktivér alt fysik i denne region" />
+ <button label="?" name="disable_physics_help" />
+ <button label="Gem" name="apply_btn" />
+ <text name="objret_text_lbl">
+ Returnér objekter
+ </text>
+ <text name="resident_text_lbl">
+ Beboer:
+ </text>
+ <line_editor name="target_avatar_name">
+ (ingen)
+ </line_editor>
+ <button label="Vælg..." name="choose_avatar_btn" />
+ <text name="options_text_lbl">
+ Valg:
+ </text>
+ <check_box label="Returnér kun objekter med script" name="return_scripts"
+ tool_tip="Returnér kun objekter med scripts." />
+ <check_box label="Returnér kun objekter på andre brugeres land" name="return_other_land"
+ tool_tip="returnér kun objekter på land som tilhører andre" />
+ <check_box label="Returnér objekter fra alle regioner i denne estate"
+ name="return_estate_wide"
+ tool_tip="Returnér objekter i alle regioner der tilhører denne estate" />
+ <button label="Returnér" name="return_btn" />
+ <button label="Mest kolliderende..." name="top_colliders_btn"
+ tool_tip="Liste med de objekter der oplever flest kollissioner" />
+ <button label="?" name="top_colliders_help" />
+ <button label="Mest krævende scripts..." name="top_scripts_btn"
+ tool_tip="Liste med de objekter der kræver mest script tid" />
+ <button label="?" name="top_scripts_help" />
+ <button label="Genstart region" name="restart_btn"
+ tool_tip="Genstart region om 2 minutter (sender advarsel først)" />
+ <button label="?" name="restart_help" />
+ <button label="Udskyd genstart" name="cancel_restart_btn"
+ tool_tip="Udsæt genstart med en time" />
+</panel>
diff --git a/indra/newview/skins/default/xui/da/panel_region_estate.xml b/indra/newview/skins/default/xui/da/panel_region_estate.xml
index b2600e9d29..108763d544 100644
--- a/indra/newview/skins/default/xui/da/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/da/panel_region_estate.xml
@@ -1,71 +1,71 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel label="Estate" name="Estate">
- <text name="estate_help_text">
- Ændringer i dette afsnit vil påvirke alle
-regioner i dette estate.
- </text>
- <text name="estate_text">
- Estate:
- </text>
- <text name="estate_name">
- (ukendt)
- </text>
- <text name="owner_text">
- Ejer:
- </text>
- <text name="estate_owner">
- (ukendt)
- </text>
- <check_box label="Brug global tid" name="use_global_time_check" />
- <button label="?" name="use_global_time_help" />
- <check_box label="Sol i fast position" name="fixed_sun_check" />
- <button label="?" name="fixed_sun_help" />
- <slider label="Fase" name="sun_hour_slider" />
- <check_box label="Tillad offentlig adgang" name="externally_visible_check" />
- <button label="?" name="externally_visible_help" />
- <text type="string" length="1" name="Only Allow">
- Begræns adgang til:
- </text>
- <check_box label="Beboere med betalingsoplysninger" name="limit_payment"
- tool_tip="Blokér for brugere uden identifikation" />
- <check_box label="Beboere der er godkendt som voksne" name="limit_age_verified"
- tool_tip="Blokér for brugere der ikke har verificéret deres alder. Se support.secondlife.com for mere information." />
- <check_box label="Tillad stemme chat" name="voice_chat_check" />
- <button label="?" name="voice_chat_help" />
- <check_box label="Tillad direkte teleport" name="allow_direct_teleport" />
- <button label="?" name="allow_direct_teleport_help" />
- <text name="abuse_email_text">
- Send beskeder misbrug til email adresse:
- </text>
- <string name="email_unsupported">
- Ikke supporteret
- </string>
- <button label="?" name="abuse_email_address_help" />
- <button label="Gem" name="apply_btn" />
- <button label="Smid bruger ud fra estate..." name="kick_user_from_estate_btn" />
- <button label="Send besked til estate..." name="message_estate_btn" />
- <text name="estate_manager_label">
- Administratorer:
- </text>
- <button label="?" name="estate_manager_help" />
- <button label="Fjern..." name="remove_estate_manager_btn" />
- <button label="Tilføj..." name="add_estate_manager_btn" />
- <text name="allow_resident_label">
- Godkendte beboere:
- </text>
- <button label="?" name="allow_resident_help" />
- <button label="Fjern..." name="remove_allowed_avatar_btn" />
- <button label="Tilføj..." name="add_allowed_avatar_btn" />
- <text name="allow_group_label">
- Tilladte grupper:
- </text>
- <button label="?" name="allow_group_help" />
- <button label="Fjern..." name="remove_allowed_group_btn" />
- <button label="Tilføj..." name="add_allowed_group_btn" />
- <text name="ban_resident_label">
- Blokérede beboere:
- </text>
- <button label="?" name="ban_resident_help" />
- <button label="Fjern..." name="remove_banned_avatar_btn" />
- <button label="Tilføj..." name="add_banned_avatar_btn" />
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel label="Estate" name="Estate">
+ <text name="estate_help_text">
+ Ændringer i dette afsnit vil påvirke alle
+regioner i dette estate.
+ </text>
+ <text name="estate_text">
+ Estate:
+ </text>
+ <text name="estate_name">
+ (ukendt)
+ </text>
+ <text name="owner_text">
+ Ejer:
+ </text>
+ <text name="estate_owner">
+ (ukendt)
+ </text>
+ <check_box label="Brug global tid" name="use_global_time_check" />
+ <button label="?" name="use_global_time_help" />
+ <check_box label="Sol i fast position" name="fixed_sun_check" />
+ <button label="?" name="fixed_sun_help" />
+ <slider label="Fase" name="sun_hour_slider" />
+ <check_box label="Tillad offentlig adgang" name="externally_visible_check" />
+ <button label="?" name="externally_visible_help" />
+ <text type="string" length="1" name="Only Allow">
+ Begræns adgang til:
+ </text>
+ <check_box label="Beboere med betalingsoplysninger" name="limit_payment"
+ tool_tip="Blokér for brugere uden identifikation" />
+ <check_box label="Beboere der er godkendt som voksne" name="limit_age_verified"
+ tool_tip="Blokér for brugere der ikke har verificéret deres alder. Se support.secondlife.com for mere information." />
+ <check_box label="Tillad stemme chat" name="voice_chat_check" />
+ <button label="?" name="voice_chat_help" />
+ <check_box label="Tillad direkte teleport" name="allow_direct_teleport" />
+ <button label="?" name="allow_direct_teleport_help" />
+ <text name="abuse_email_text">
+ Send beskeder misbrug til email adresse:
+ </text>
+ <string name="email_unsupported">
+ Ikke supporteret
+ </string>
+ <button label="?" name="abuse_email_address_help" />
+ <button label="Gem" name="apply_btn" />
+ <button label="Smid bruger ud fra estate..." name="kick_user_from_estate_btn" />
+ <button label="Send besked til estate..." name="message_estate_btn" />
+ <text name="estate_manager_label">
+ Administratorer:
+ </text>
+ <button label="?" name="estate_manager_help" />
+ <button label="Fjern..." name="remove_estate_manager_btn" />
+ <button label="Tilføj..." name="add_estate_manager_btn" />
+ <text name="allow_resident_label">
+ Godkendte beboere:
+ </text>
+ <button label="?" name="allow_resident_help" />
+ <button label="Fjern..." name="remove_allowed_avatar_btn" />
+ <button label="Tilføj..." name="add_allowed_avatar_btn" />
+ <text name="allow_group_label">
+ Tilladte grupper:
+ </text>
+ <button label="?" name="allow_group_help" />
+ <button label="Fjern..." name="remove_allowed_group_btn" />
+ <button label="Tilføj..." name="add_allowed_group_btn" />
+ <text name="ban_resident_label">
+ Blokérede beboere:
+ </text>
+ <button label="?" name="ban_resident_help" />
+ <button label="Fjern..." name="remove_banned_avatar_btn" />
+ <button label="Tilføj..." name="add_banned_avatar_btn" />
+</panel>
diff --git a/indra/newview/skins/default/xui/da/panel_region_general.xml b/indra/newview/skins/default/xui/da/panel_region_general.xml
index 3965a5b0dc..5f0e71f63d 100644
--- a/indra/newview/skins/default/xui/da/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/da/panel_region_general.xml
@@ -1,46 +1,46 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel label="Region" name="General">
- <text name="region_text_lbl">
- Region:
- </text>
- <text name="region_text">
- ukendt
- </text>
- <text name="version_channel_text_lbl">
- Version:
- </text>
- <text name="version_channel_text">
- ukendt
- </text>
- <check_box label="Blokér for redigering af terræn" name="block_terraform_check" />
- <button label="?" name="terraform_help" />
- <check_box label="Blokér for flyvning" name="block_fly_check" />
- <button label="?" name="fly_help" />
- <check_box label="Tillad skader" name="allow_damage_check" />
- <button label="?" name="damage_help" />
- <check_box label="Begræns skubning" name="restrict_pushobject" />
- <button label="?" name="restrict_pushobject_help" />
- <check_box label="Tillad at sælge land" name="allow_land_resell_check" />
- <button label="?" name="land_resell_help" />
- <check_box label="Tillad at samle/dele land" name="allow_parcel_changes_check" />
- <button label="?" name="parcel_changes_help" />
- <check_box label="Blokér visning af land i Søgning" name="block_parcel_search_check"
- tool_tip="Lad beboere se denne region og dens parceller i søgeresultater" />
- <button label="?" name="parcel_search_help" />
- <spinner label="Max besøgende" name="agent_limit_spin" />
- <button label="?" name="agent_limit_help" />
- <spinner label="Objekt bonus" name="object_bonus_spin" />
- <button label="?" name="object_bonus_help" />
- <text label="Indhold" name="access_text">
- Indhold:
- </text>
-
-
-
- <button label="?" name="access_help" />
- <button label="Gem" name="apply_btn" />
- <button label="Send en beboer hjem ..." name="kick_btn" />
- <button label="Send alle beboere hjem..." name="kick_all_btn" />
- <button label="Send besked til region..." name="im_btn" />
- <button label="Vedligehold telehub..." name="manage_telehub_btn" />
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel label="Region" name="General">
+ <text name="region_text_lbl">
+ Region:
+ </text>
+ <text name="region_text">
+ ukendt
+ </text>
+ <text name="version_channel_text_lbl">
+ Version:
+ </text>
+ <text name="version_channel_text">
+ ukendt
+ </text>
+ <check_box label="Blokér for redigering af terræn" name="block_terraform_check" />
+ <button label="?" name="terraform_help" />
+ <check_box label="Blokér for flyvning" name="block_fly_check" />
+ <button label="?" name="fly_help" />
+ <check_box label="Tillad skader" name="allow_damage_check" />
+ <button label="?" name="damage_help" />
+ <check_box label="Begræns skubning" name="restrict_pushobject" />
+ <button label="?" name="restrict_pushobject_help" />
+ <check_box label="Tillad at sælge land" name="allow_land_resell_check" />
+ <button label="?" name="land_resell_help" />
+ <check_box label="Tillad at samle/dele land" name="allow_parcel_changes_check" />
+ <button label="?" name="parcel_changes_help" />
+ <check_box label="Blokér visning af land i Søgning" name="block_parcel_search_check"
+ tool_tip="Lad beboere se denne region og dens parceller i søgeresultater" />
+ <button label="?" name="parcel_search_help" />
+ <spinner label="Max besøgende" name="agent_limit_spin" />
+ <button label="?" name="agent_limit_help" />
+ <spinner label="Objekt bonus" name="object_bonus_spin" />
+ <button label="?" name="object_bonus_help" />
+ <text label="Indhold" name="access_text">
+ Indhold:
+ </text>
+
+
+
+ <button label="?" name="access_help" />
+ <button label="Gem" name="apply_btn" />
+ <button label="Send en beboer hjem ..." name="kick_btn" />
+ <button label="Send alle beboere hjem..." name="kick_all_btn" />
+ <button label="Send besked til region..." name="im_btn" />
+ <button label="Vedligehold telehub..." name="manage_telehub_btn" />
+</panel>
diff --git a/indra/newview/skins/default/xui/da/panel_region_terrain.xml b/indra/newview/skins/default/xui/da/panel_region_terrain.xml
index a5ce042892..4ff81112d3 100644
--- a/indra/newview/skins/default/xui/da/panel_region_terrain.xml
+++ b/indra/newview/skins/default/xui/da/panel_region_terrain.xml
@@ -1,30 +1,30 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel label="Terræn" name="Terrain">
- <text name="region_text_lbl">
- Region:
- </text>
- <text name="region_text">
- ukendt
- </text>
- <spinner label="Vand højde" name="water_height_spin" />
- <button label="?" name="water_height_help" />
- <spinner label="Max. hævning af land" name="terrain_raise_spin" />
- <button label="?" name="terrain_raise_help" />
- <spinner label="Max sænkning af land" name="terrain_lower_spin" />
- <button label="?" name="terrain_lower_help" />
- <check_box label="Benyt solopsætning fra estate" name="use_estate_sun_check" />
- <button label="?" name="use_estate_sun_help" />
- <check_box label="Fast sol-position" name="fixed_sun_check" />
- <button label="?" name="fixed_sun_help" />
- <slider label="Fase" name="sun_hour_slider" />
- <button label="Gem" name="apply_btn" />
- <button label="Download RAW terræn fil..." name="download_raw_btn"
- tool_tip="Kun tilgængelig for ejer af estate - ikke for administratorer" />
- <button label="?" name="download_raw_help" />
- <button label="Upload RAW terræn fil..." name="upload_raw_btn"
- tool_tip="Kun tilgængelig for ejer af estate - ikke for administratorer" />
- <button label="?" name="upload_raw_help" />
- <button label="Gem terræn" name="bake_terrain_btn"
- tool_tip="Lav det nuværende terræn som base for begrænsning af fremtidige hævninger og sænkninger af terræn" />
- <button label="?" name="bake_terrain_help" />
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel label="Terræn" name="Terrain">
+ <text name="region_text_lbl">
+ Region:
+ </text>
+ <text name="region_text">
+ ukendt
+ </text>
+ <spinner label="Vand højde" name="water_height_spin" />
+ <button label="?" name="water_height_help" />
+ <spinner label="Max. hævning af land" name="terrain_raise_spin" />
+ <button label="?" name="terrain_raise_help" />
+ <spinner label="Max sænkning af land" name="terrain_lower_spin" />
+ <button label="?" name="terrain_lower_help" />
+ <check_box label="Benyt solopsætning fra estate" name="use_estate_sun_check" />
+ <button label="?" name="use_estate_sun_help" />
+ <check_box label="Fast sol-position" name="fixed_sun_check" />
+ <button label="?" name="fixed_sun_help" />
+ <slider label="Fase" name="sun_hour_slider" />
+ <button label="Gem" name="apply_btn" />
+ <button label="Download RAW terræn fil..." name="download_raw_btn"
+ tool_tip="Kun tilgængelig for ejer af estate - ikke for administratorer" />
+ <button label="?" name="download_raw_help" />
+ <button label="Upload RAW terræn fil..." name="upload_raw_btn"
+ tool_tip="Kun tilgængelig for ejer af estate - ikke for administratorer" />
+ <button label="?" name="upload_raw_help" />
+ <button label="Gem terræn" name="bake_terrain_btn"
+ tool_tip="Lav det nuværende terræn som base for begrænsning af fremtidige hævninger og sænkninger af terræn" />
+ <button label="?" name="bake_terrain_help" />
+</panel>
diff --git a/indra/newview/skins/default/xui/da/panel_region_texture.xml b/indra/newview/skins/default/xui/da/panel_region_texture.xml
index 8fab436940..65c4743da0 100644
--- a/indra/newview/skins/default/xui/da/panel_region_texture.xml
+++ b/indra/newview/skins/default/xui/da/panel_region_texture.xml
@@ -1,57 +1,57 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel label="Terræn textures" name="Textures">
- <text name="region_text_lbl">
- Region:
- </text>
- <text name="region_text">
- ukendt
- </text>
- <text name="detail_texture_text">
- Terræn teksturer (kræver 512x512, 24 bit .tga filer)
- </text>
- <text name="height_text_lbl">
- 1 (Lav)
- </text>
- <text name="height_text_lbl2">
- 2
- </text>
- <text name="height_text_lbl3">
- 3
- </text>
- <text name="height_text_lbl4">
- 4 (Høj)
- </text>
- <text name="height_text_lbl5">
- Texture højde intervaller
- </text>
- <text name="height_text_lbl6">
- Sydvest
- </text>
- <text name="height_text_lbl7">
- Nordvest
- </text>
- <text name="height_text_lbl8">
- Sydøst
- </text>
- <text name="height_text_lbl9">
- Nordøst
- </text>
- <spinner label="Lav" name="height_start_spin_0" />
- <spinner label="Lav" name="height_start_spin_1" />
- <spinner label="Lav" name="height_start_spin_2" />
- <spinner label="Lav" name="height_start_spin_3" />
- <spinner label="Høj" name="height_range_spin_0" />
- <spinner label="Høj" name="height_range_spin_1" />
- <spinner label="Høj" name="height_range_spin_2" />
- <spinner label="Høj" name="height_range_spin_3" />
- <text name="height_text_lbl10">
- Disse værdier repræsenterer overgange for texturerne ovenfor målt i meter
- </text>
- <text name="height_text_lbl11">
- LAV værdien er MAKSIMUM højde for texture nummer 1,
- </text>
- <text name="height_text_lbl12">
- og HØJ værdien er MIMIMUM højde for texture nummer 4.
- </text>
- <button label="Gem" name="apply_btn" />
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel label="Terræn textures" name="Textures">
+ <text name="region_text_lbl">
+ Region:
+ </text>
+ <text name="region_text">
+ ukendt
+ </text>
+ <text name="detail_texture_text">
+ Terræn teksturer (kræver 512x512, 24 bit .tga filer)
+ </text>
+ <text name="height_text_lbl">
+ 1 (Lav)
+ </text>
+ <text name="height_text_lbl2">
+ 2
+ </text>
+ <text name="height_text_lbl3">
+ 3
+ </text>
+ <text name="height_text_lbl4">
+ 4 (Høj)
+ </text>
+ <text name="height_text_lbl5">
+ Texture højde intervaller
+ </text>
+ <text name="height_text_lbl6">
+ Sydvest
+ </text>
+ <text name="height_text_lbl7">
+ Nordvest
+ </text>
+ <text name="height_text_lbl8">
+ Sydøst
+ </text>
+ <text name="height_text_lbl9">
+ Nordøst
+ </text>
+ <spinner label="Lav" name="height_start_spin_0" />
+ <spinner label="Lav" name="height_start_spin_1" />
+ <spinner label="Lav" name="height_start_spin_2" />
+ <spinner label="Lav" name="height_start_spin_3" />
+ <spinner label="Høj" name="height_range_spin_0" />
+ <spinner label="Høj" name="height_range_spin_1" />
+ <spinner label="Høj" name="height_range_spin_2" />
+ <spinner label="Høj" name="height_range_spin_3" />
+ <text name="height_text_lbl10">
+ Disse værdier repræsenterer overgange for texturerne ovenfor målt i meter
+ </text>
+ <text name="height_text_lbl11">
+ LAV værdien er MAKSIMUM højde for texture nummer 1,
+ </text>
+ <text name="height_text_lbl12">
+ og HØJ værdien er MIMIMUM højde for texture nummer 4.
+ </text>
+ <button label="Gem" name="apply_btn" />
+</panel>
diff --git a/indra/newview/skins/default/xui/da/panel_scrolling_param.xml b/indra/newview/skins/default/xui/da/panel_scrolling_param.xml
index c8d2954def..5309ca589f 100644
--- a/indra/newview/skins/default/xui/da/panel_scrolling_param.xml
+++ b/indra/newview/skins/default/xui/da/panel_scrolling_param.xml
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel name="LLScrollingPanelParam">
- <text type="string" length="1" name="Loading...">
- Henter...
- </text>
- <text type="string" length="1" name="Loading...2">
- Henter...
- </text>
- <button label="" label_selected="" name="less" />
- <button label="" label_selected="" name="more" />
- <slider label="[DESC]" name="param slider" />
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel name="LLScrollingPanelParam">
+ <text type="string" length="1" name="Loading...">
+ Henter...
+ </text>
+ <text type="string" length="1" name="Loading...2">
+ Henter...
+ </text>
+ <button label="" label_selected="" name="less" />
+ <button label="" label_selected="" name="more" />
+ <slider label="[DESC]" name="param slider" />
+</panel>
diff --git a/indra/newview/skins/default/xui/da/panel_status_bar.xml b/indra/newview/skins/default/xui/da/panel_status_bar.xml
index a13d3faa66..7bc66b1101 100644
--- a/indra/newview/skins/default/xui/da/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/da/panel_status_bar.xml
@@ -1,44 +1,44 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel name="status">
- <text type="string" length="1" name="ParcelNameText"
- tool_tip="Navn på det land/parcel som du står på. Klik på teksten for yderligere info.">
- parcel name goes here
- </text>
- <text type="string" length="1" name="BalanceText" tool_tip="Konto balance">
- Henter...
- </text>
- <button label="" label_selected="" name="buycurrency" tool_tip="Køb valuta" />
- <text type="string" length="12" name="TimeText" tool_tip="Nuværende Second Life tid">
- 12:00
- </text>
- <string name="StatBarDaysOfWeek">
- Søndag:Mandag:Tirsdag:Onsdag:Torsdag:Fredag:Lørdag
- </string>
- <string name="StatBarMonthsOfYear">
- Januar:Februar:Marts:April:Maj:Juni:Juli:August:September:Oktober:November:December
- </string>
- <button label="" label_selected="" name="scriptout" tool_tip="Script advarsler og fejl" />
- <button label="" label_selected="" name="health" tool_tip="Helbred" />
- <text type="string" length="1" name="HealthText" tool_tip="Helbred">
- 100%
- </text>
- <button label="" label_selected="" name="no_fly" tool_tip="Flyvning ikke tilladt" />
- <button label="" label_selected="" name="no_build"
- tool_tip="Bygning og placering af objekter ikke tilladt" />
- <button label="" label_selected="" name="no_scripts"
- tool_tip="Afvikling af scripts ikke tilladt" />
- <button label="" label_selected="" name="restrictpush"
- tool_tip="Ikke tilladt at skubbe" />
- <button label="" label_selected="" name="status_no_voice"
- tool_tip="Stemme chat ikke tilgængelig" />
- <button label="" label_selected="" name="buyland" tool_tip="Køb denne parcel" />
- <button label="" name="menubar_search_bevel_bg" />
- <line_editor label="Søg" name="search_editor" tool_tip="Søg Second Life" />
- <button label="" label_selected="" name="search_btn" tool_tip="Søg Second Life" />
- <string name="packet_loss_tooltip">
- Packet Loss
- </string>
- <string name="bandwidth_tooltip">
- Båndbredde
- </string>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel name="status">
+ <text type="string" length="1" name="ParcelNameText"
+ tool_tip="Navn på det land/parcel som du står på. Klik på teksten for yderligere info.">
+ parcel name goes here
+ </text>
+ <text type="string" length="1" name="BalanceText" tool_tip="Konto balance">
+ Henter...
+ </text>
+ <button label="" label_selected="" name="buycurrency" tool_tip="Køb valuta" />
+ <text type="string" length="12" name="TimeText" tool_tip="Nuværende Second Life tid">
+ 12:00
+ </text>
+ <string name="StatBarDaysOfWeek">
+ Søndag:Mandag:Tirsdag:Onsdag:Torsdag:Fredag:Lørdag
+ </string>
+ <string name="StatBarMonthsOfYear">
+ Januar:Februar:Marts:April:Maj:Juni:Juli:August:September:Oktober:November:December
+ </string>
+ <button label="" label_selected="" name="scriptout" tool_tip="Script advarsler og fejl" />
+ <button label="" label_selected="" name="health" tool_tip="Helbred" />
+ <text type="string" length="1" name="HealthText" tool_tip="Helbred">
+ 100%
+ </text>
+ <button label="" label_selected="" name="no_fly" tool_tip="Flyvning ikke tilladt" />
+ <button label="" label_selected="" name="no_build"
+ tool_tip="Bygning og placering af objekter ikke tilladt" />
+ <button label="" label_selected="" name="no_scripts"
+ tool_tip="Afvikling af scripts ikke tilladt" />
+ <button label="" label_selected="" name="restrictpush"
+ tool_tip="Ikke tilladt at skubbe" />
+ <button label="" label_selected="" name="status_no_voice"
+ tool_tip="Stemme chat ikke tilgængelig" />
+ <button label="" label_selected="" name="buyland" tool_tip="Køb denne parcel" />
+ <button label="" name="menubar_search_bevel_bg" />
+ <line_editor label="Søg" name="search_editor" tool_tip="Søg Second Life" />
+ <button label="" label_selected="" name="search_btn" tool_tip="Søg Second Life" />
+ <string name="packet_loss_tooltip">
+ Packet Loss
+ </string>
+ <string name="bandwidth_tooltip">
+ Båndbredde
+ </string>
+</panel>
diff --git a/indra/newview/skins/default/xui/da/role_actions.xml b/indra/newview/skins/default/xui/da/role_actions.xml
index f2d1a3508b..e4c8c4b93b 100644
--- a/indra/newview/skins/default/xui/da/role_actions.xml
+++ b/indra/newview/skins/default/xui/da/role_actions.xml
@@ -1,201 +1,201 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<role_actions>
- <action_set
- description="Disse rettigheder inkluderer adgang til at tilføje og fjerne gruppe medlemmer og tillade nye medlemmer at melde sig ind uden invitation"
- name="Membership">
- <action description="Invitér personer til denne gruppe"
- longdescription="Invitér personer til denne gruppe via &apos;Invitér ny person...&apos; knappen i fanen: medlemmer &amp; roller &gt; underfanen: medlemmer"
- name="member invite" />
- <action description="Fjern medlemmer fra denne gruppe"
- longdescription="Fjern medlemmer i denne gruppe via &apos;Fjern fra gruppe&apos; knappen i fanen: medlemmer &amp; roller &gt; underfanen: medlemmer. En ejer kan fjerne alle undtagen en anden ejer. Hvis du ikke er en ejer, kan et medlem kun fjernes fra gruppen hvis, og kun hvis, medlemmet kun findes i Alle rollen, og ikke i andre roller. for at fjerne medlemmer fra roller, skal du have rettigheden &apos;Fjern medlemmer fra roller&apos;"
- name="member eject" />
- <action
- description="Åben eller luk for &apos;fri tilmelding&apos; og ændre &apos;tilmeldingsgebyr&apos;"
- longdescription="Åben for &apos;fri tilmelding&apos; så alle kan blive medlem af gruppen, eller luk for &apos;fri tilmelding&apos; så kun inveterede kan blive medlem. ændre &apos;tilmeldingsgebyr&apos; i gruppe opsætningsbilledet sektionen i Generelt fanen"
- name="member options" />
- </action_set>
- <action_set
- description="Disse rettigheder inkluderer adgang til at tilføje, fjerne og ændre gruppe-roller, tilføje og fjerne medlemmer i roller, og give rettigheder til roller"
- name="Roles">
- <action description="Opret nye roller"
- longdescription="Opret nye roller i fanen: Medlemmer &amp; roller &gt; under-fanen: Roller."
- name="role create" />
- <action description="Slet roller"
- longdescription="Slet roller i roller i fanen: Medlemmer &amp; roller &gt; under-fanen: Roller."
- name="role delete" />
- <action
- description="Ændre rolle navne, titler, beskrivelser og angivelse af om rollemedlemmer kan ses af andre udenfor gruppen"
- longdescription="Ændre rolle navne, titler, beskrivelser og angivelse af om rollemedlemmer kan ses af andre udenfor gruppen. Dette håndteres i bunden af fanen:: Medlemmer &amp; roller &gt; under-fanen: Roller efter at have valgt en rolle."
- name="role properties" />
- <action description="Tildel andre samme roller som dig selv"
- longdescription="Tildel andre medlemmer til roller i Tildelte roller sektionen på fanen: Medlemmer &amp; roller &gt; under-fanen: Medlemmer. Et medlem med denne rettighed kan kun tildele andre medlemmer en rolle som tildeleren allerede selv har."
- name="role assign member limited" />
- <action description="Tildele medlemmer enhver rolle"
- longdescription="Tildel andre medlemmer til en hvilken som helst rolle i Tildelte roller sektionen på fanen: Medlemmer &amp; roller &gt; under-fanen: Medlemmer. *ADVARSEL* Ethvert medlem i en rolle med denne rettighed kan tildele sig selv - og enhver anden - roller som giver dem flere rettigheder end de havde tidligere, og dermed potentielt få næsten samme magt som ejer. Vær sikker på at vide hvad du ør inden du tildeler denne rettighed."
- name="role assign member" />
- <action description="Fjern medlemmer fra roller"
- longdescription="Fjern medlemmer fra roller i in Tildelte roller sektionen på fanen: Medlemmer &amp; roller &gt; under-fanen: Medlemmer. Ejere kan ikke fjernes."
- name="role remove member" />
- <action description="Tildel og fjern rettigheder for roller"
- longdescription="Tildel og fjern rettigheder for roller i tilladte rettigheder sektionen på fanen: Medlemmer &amp; roller &gt; under-fanen: Roller. *ADVARSEL* Ethvert medlem i en rolle med denne rettighed kan tildele sig selv - og enhver anden - rettigheder som giver dem flere rettigheder end de havde tidligere, og dermed potentielt få næsten samme magt som ejer. Vær sikker på at vide hvad du gør inden du tildeler denne rettighed."
- name="role change actions" />
- </action_set>
- <action_set
- description="Disse rettigheder inkluderer adgang til at ændre denne gruppes identitetsoplysninger, som f.eks. om gruppen kan ses af andre, gruppens fundats og billede."
- name="Group Identity">
- <action description="Ændre fundats, billede og &apos;Vis i søgning&apos;"
- longdescription="Ændre fundats og &apos;Vis i søgning&apos;. Dette gøres under fanen Generelt."
- name="group change identity" />
- </action_set>
- <action_set
- description="Disse rettigheder inkluderer adgang til dedikere, ændre og sælge land fra denne gruppes besiddelser. For at åbne &apos;Om land...&apos; vinduet, højre-klik på jorden og vælg &apos;Om land...&apos;, eller klik på &apos;Om land...&apos; i &apos;Verden&apos; menuen."
- name="Parcel Management">
- <action description="Dedikér eller køb land til gruppen"
- longdescription="Dedikér eller køb land til gruppen. Dette gøres i fanen Generelt i &apos;Om land...&apos;."
- name="land deed" />
- <action description="Forlad land og overgiv det til guvernør Linden"
- longdescription="Forlad land og overgiv det til guvernør Linden. *ADVARSEL* Ethvert medlem med en rolle med denne rettighed kan overdrage gruppe-ejet land via fanen Generelt i &apos;Om land...&apos; til Lindens ejerskab uden salg! Vær sikker på at vide hvad du ør inden du tildeler denne rettighed."
- name="land release" />
- <action description="Sæt land til salg"
- longdescription="Sæt land til salg. *ADVARSEL* Ethvert medlem med en rolle med denne rettighed kan sælge gruppe-ejet land via fanen Generelt i &apos;Om land...&apos;! Vær sikker på at vide hvad du ør inden du tildeler denne rettighed."
- name="land set sale info" />
- <action description="Opdel og saml parceller"
- longdescription="Opdel og saml parceller. Dette gøres ved at højreklikke på jorden og vælge &apos;Redigér terræn&apos;"
- name="land divide join" />
- </action_set>
- <action_set
- description="Disse rettigheder inkluderer adgang til at ændre parcel navn og en række parametre om f.eks. landingspunkt, teleports m.v.."
- name="Parcel Identity">
- <action
- description="Angive om sted skal vises i &apos;vis i Søg steder&apos; og angivelse af kategori"
- longdescription="Angive om sted skal vises i &apos;vis i Søg steder&apos; og angivelse af kategori i &apos;Om land...&apos; &gt; Indstillinger fanen."
- name="land find places" />
- <action
- description="Ændre parcel navn, beskrivelse, og &apos;Vis i Søg&apos; opsætning"
- longdescription="Ændre parcel navn, beskrivelse, og &apos;Vis i Søg&apos; opsætning. Dette håndteres i &apos;Om land...&apos;&gt; Opsætning fanen."
- name="land change identity" />
- <action description="Sæt landingspunkt og teleport muligheder"
- longdescription="På en gruppe-ejet parcel kan medlemmer, med en rolle med denne rettighed, sætte landingspunktet og dermed angive hvor indkommende teleporte skal ankomme og desuden angive dealjer om teleporte. Dette håndteres i &apos;Om land...&apos;&gt; Opsætning fanen."
- name="land set landing point" />
- </action_set>
- <action_set
- description="Disse rettigheder inkluderer adgang til at opsætte parcel indstillinger som f.eks. &apos;Lave objekter&apos;, &apos;Redigere terræn&apos;, samt musik og media indstillinger."
- name="Parcel Settings">
- <action description="Ændre musik og media indstillinger"
- longdescription="Ændre oplysninger om streaming musik og film i &apos;Om land...&apos; &gt; Media fanen."
- name="land change media" />
- <action description="Ændre rettighed til &apos;Redigere terræn&apos;"
- longdescription="Ændre rettighed til &apos;Redigere terræn&apos;. *ADVARSEL*: Redigere terræn&apos; kan give alle og enhver ret til at ændre terræn og opsætte og flytte Linden planter. Vær sikker på at vide hvad du ør inden du tildeler denne rettighed."
- name="land edit" />
- <action
- description="Ændre diverse andre indstillinger i &apos;Om land...&apos;&gt; indstillinger fanen"
- longdescription="Giv adgang til at ændre &apos;Sikker (ingen skade)&apos;, &apos;Flyve&apos;, og tillad andre beboere at: &apos;Lave objekter&apos;, &apos;Redigere terræn&apos;, &apos;Lave landemærker&apos;, og &apos;Køre scripts&apos; på gruppe-ejet land via About Land &gt; Indstillinger fanen."
- name="land options" />
- </action_set>
- <action_set
- description="Disse rettigheder inkluderer adgang til at medlemmer kan omgå restriktioner på gruppe-ejede parceller."
- name="Parcel Powers">
- <action description="Tillad altid &apos;Rediger Terræn&apos;"
- longdescription="Medlemmer med denne rolle har adgang til at redigere terræn på gruppe-ejede parceller, også selvom denne mulighed ikke er aktiveret på &apos;Om land...&apos; &gt; Indstillinger fanen."
- name="land allow edit land" />
- <action description="Tillad altid at &apos;Flyve&apos;"
- longdescription="Medlemmer med denne rolle har adgang til at flyve på gruppe-ejede parceller, også selvom denne mulighed ikke er aktiveret på &apos;Om land...&apos; &gt; Indstillinger fanen."
- name="land allow fly" />
- <action description="Tillad altid &apos;Lave objekter&apos;"
- longdescription="Medlemmer med denne rolle har adgang til at lave nye objekter på gruppe-ejede parceller, også selvom denne mulighed ikke er aktiveret på &apos;Om land...&apos; &gt; Indstillinger fanen."
- name="land allow create" />
- <action description="Tillad altid at &apos;Lave landemærker&apos;"
- longdescription="Medlemmer med denne rolle har adgang til at lave landemærker på gruppe-ejede parceller, også selvom denne mulighed ikke er aktiveret på &apos;Om land...&apos; &gt; Indstillinger fanen."
- name="land allow landmark" />
- <action description="Tillad altid &apos;sæt til hjem&apos; på gruppe-ejet land"
- longdescription="Medlemmer med denne rolle har adgang til at benytte &apos;Verden&apos; menuen og vælge &apos;sæt til hjem&apos; på en parcel der er dedikeret til gruppen."
- name="land allow set home" />
- </action_set>
- <action_set
- description="Disse rettigheder inkluderer adgang til at medlemmer kan tillade eller forbyde adgang til gruppe-ejede parceller, inkluderende at &apos;fryse&apos; og udsmide beboere."
- name="Parcel Access">
- <action description="Administrér adgangsregler for parceller"
- longdescription="Administrér adgangsregler for parceller i &apos;Om land&apos; &gt; &apos;Adgang&apos; fanen."
- name="land manage allowed" />
- <action description="Administrér liste med blokerede beboere på parceller"
- longdescription="Administrér liste med blokerede beboere på parceller i &apos;Om land&apos; &gt; &apos;Adgang&apos; fanen."
- name="land manage banned" />
- <action
- description="Ændre indstillinger for at &apos;Sælge adgang til&apos; parceller"
- longdescription="Ændre indstillinger for at &apos;Sælge adgang til&apos; parceller i &apos;Om land&apos; &gt; &apos;Adgang&apos; fanen."
- name="land manage passes" />
- <action
- description="Adgang til at smide beboere ud og &apos;fryse&apos; beboere på parceller"
- longdescription="Medlermmer med denne rolle kan håndtere beboere som ikke er velkomne på gruppe-ejet parceller ved at højreklikke på dem, vælge Mere&gt;, og vælge &apos;Smid ud...&apos; eller &apos;Frys...&apos;."
- name="land admin" />
- </action_set>
- <action_set
- description="Disse rettigheder inkluderer mulighed til at tillade beboere at returnere objekter og placere og flytte Linden planter. Dette er brugbart for at medlemmer kan holde orden og tilpasse landskabet. Denne mulighed skal benyttes med varsomhed, da der ikke er mulighed for at fortryde returnering af objekter og ændringer i landskabet."
- name="Parcel Content">
- <action description="Returnere objekter ejet af gruppen"
- longdescription="Returne objekter på gruppe-ejede parceller der er ejet af gruppen. Dette håndteres i &apos;Om land...&apos;&gt; &apos;Objekter&apos; fanen."
- name="land return group owned" />
- <action description="Returnere objekter der er sat til &apos;gruppe&apos;"
- longdescription="Returnere objekter på gruppe-ejede parceller, der er &apos;sat til gruppe&apos; i &apos;Om land...&apos;&gt; &apos;Objekter&apos; fanen."
- name="land return group set" />
- <action description="Returnere objekter der ikke er ejet af andre"
- longdescription="Returnere objekter på gruppe-ejede parceller, der er &apos;Ejet af andre&apos; i &apos;Om land...&apos;&gt; &apos;Objekter&apos; fanen."
- name="land return non group" />
- <action description="Ændre landskab med Linden planter"
- longdescription="Mulighed for at ændre landskabet ved at placere og flytte Linden træer, planter, og græs. Disse genstande kan findes i din beholdnings Library &gt; Objects mappe eller de kan oprettes via &apos;Byg&apos; knappen."
- name="land gardening" />
- </action_set>
- <action_set
- description="Disse rettigheder inkluderer mulighed til at dedikere, ændre og sælge gruppe-ejede objekter. Disse ændringer sker i &apos;Rediger&apos;&gt; &apos;Generelt&apos; fanen."
- name="Object Management">
- <action description="Dediker objekter til gruppe"
- longdescription="Dediker objekter til gruppe i &apos;Rediger&apos;&gt; &apos;Generelt&apos; fanen."
- name="object deed" />
- <action description="Manipulér (flyt, kopiér, ændre) gruppe-ejede objekter"
- longdescription="Manipulér (flyt, kopiér, ændre) gruppe-ejede objekter i &apos;Rediger&apos;&gt; &apos;Generelt&apos; fanen."
- name="object manipulate" />
- <action description="Sæt gruppe-ejede objekter til salg"
- longdescription="Sæt gruppe-ejede objekter til salg i &apos;Rediger&apos;&gt; &apos;Generelt&apos; fanen."
- name="object set sale" />
- </action_set>
- <action_set
- description="Disse rettigheder inkluderer mulighed til at håndtere betalinger for gruppen og styre adgang til gruppens kontobevægelser."
- name="Accounting">
- <action description="Betale gruppe regninger og modtage gruppe udbytte"
- longdescription="Medlemmer med denne rolle vil automatisk betale gruppe regninger og modtage gruppe udbytte. Det betyder at de vil modtager en andel af indtægter fra salg af gruppe-ejet land og bidrage til betaling af gruppe-relaterede betalinger, som f.eks. betaling for at paceller vises i lister. "
- name="accounting accountable" />
- </action_set>
- <action_set
- description="Disse rettigheder inkluderer adgang til at kunne sende, modtage og se gruppe beskeder."
- name="Notices">
- <action description="Send beskeder"
- longdescription="Medlemmer med denne rolle kan sende beskeder i &apos;Beskeder&apos; fanen."
- name="notices send" />
- <action description="Modtage og se tidligere beskeder"
- longdescription="Medlemmer med denne rolle kan modtage og se tidligere beskeder i &apos;Beskeder&apos; fanen."
- name="notices receive" />
- </action_set>
- <action_set
- description="Disse rettigheder inkluderer adgang til at kunne oprette forslag, stemme på forslag og se historik med forslag."
- name="Proposals">
- <action description="Opret forslag"
- longdescription="Medlemmer med denne rolle kan oprette forslag som der kan stemmes om i &apos;Forslag&apos; fanen."
- name="proposal start" />
- <action description="Stem på forslag"
- longdescription="Medlemmer med denne rolle kan stemme på forslag i &apos;Forslag&apos; fanen."
- name="proposal vote" />
- </action_set>
- <action_set
- description="Disse rettigheder styrer hvem der kan deltage i gruppe-chat og gruppe stemme-chat."
- name="Chat">
- <action description="Deltage i gruppe-chat"
- longdescription="Medlemmer med denne rolle kan deltage i gruppe-chat sessioner"
- name="join group chat" />
- <action description="Deltag i gruppe stemme-chat"
- longdescription="Medlemmer med denne rolle kan deltage i gruppe stemme-chat sessioner. BEMÆRK: Medlemmet skal også have rollen &apos;Deltage i gruppe-chat&apos; for at denne rolle har effekt."
- name="join voice chat" />
- <action description="Styr gruppe-chat"
- longdescription="Medlemmer med denne rolle kan kontrollere adgang og deltagelse i gruppe-chat og gruppe stemme-chat sessioner."
- name="moderate group chat" />
- </action_set>
-</role_actions>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<role_actions>
+ <action_set
+ description="Disse rettigheder inkluderer adgang til at tilføje og fjerne gruppe medlemmer og tillade nye medlemmer at melde sig ind uden invitation"
+ name="Membership">
+ <action description="Invitér personer til denne gruppe"
+ longdescription="Invitér personer til denne gruppe via &apos;Invitér ny person...&apos; knappen i fanen: medlemmer &amp; roller &gt; underfanen: medlemmer"
+ name="member invite" />
+ <action description="Fjern medlemmer fra denne gruppe"
+ longdescription="Fjern medlemmer i denne gruppe via &apos;Fjern fra gruppe&apos; knappen i fanen: medlemmer &amp; roller &gt; underfanen: medlemmer. En ejer kan fjerne alle undtagen en anden ejer. Hvis du ikke er en ejer, kan et medlem kun fjernes fra gruppen hvis, og kun hvis, medlemmet kun findes i Alle rollen, og ikke i andre roller. for at fjerne medlemmer fra roller, skal du have rettigheden &apos;Fjern medlemmer fra roller&apos;"
+ name="member eject" />
+ <action
+ description="Åben eller luk for &apos;fri tilmelding&apos; og ændre &apos;tilmeldingsgebyr&apos;"
+ longdescription="Åben for &apos;fri tilmelding&apos; så alle kan blive medlem af gruppen, eller luk for &apos;fri tilmelding&apos; så kun inveterede kan blive medlem. ændre &apos;tilmeldingsgebyr&apos; i gruppe opsætningsbilledet sektionen i Generelt fanen"
+ name="member options" />
+ </action_set>
+ <action_set
+ description="Disse rettigheder inkluderer adgang til at tilføje, fjerne og ændre gruppe-roller, tilføje og fjerne medlemmer i roller, og give rettigheder til roller"
+ name="Roles">
+ <action description="Opret nye roller"
+ longdescription="Opret nye roller i fanen: Medlemmer &amp; roller &gt; under-fanen: Roller."
+ name="role create" />
+ <action description="Slet roller"
+ longdescription="Slet roller i roller i fanen: Medlemmer &amp; roller &gt; under-fanen: Roller."
+ name="role delete" />
+ <action
+ description="Ændre rolle navne, titler, beskrivelser og angivelse af om rollemedlemmer kan ses af andre udenfor gruppen"
+ longdescription="Ændre rolle navne, titler, beskrivelser og angivelse af om rollemedlemmer kan ses af andre udenfor gruppen. Dette håndteres i bunden af fanen:: Medlemmer &amp; roller &gt; under-fanen: Roller efter at have valgt en rolle."
+ name="role properties" />
+ <action description="Tildel andre samme roller som dig selv"
+ longdescription="Tildel andre medlemmer til roller i Tildelte roller sektionen på fanen: Medlemmer &amp; roller &gt; under-fanen: Medlemmer. Et medlem med denne rettighed kan kun tildele andre medlemmer en rolle som tildeleren allerede selv har."
+ name="role assign member limited" />
+ <action description="Tildele medlemmer enhver rolle"
+ longdescription="Tildel andre medlemmer til en hvilken som helst rolle i Tildelte roller sektionen på fanen: Medlemmer &amp; roller &gt; under-fanen: Medlemmer. *ADVARSEL* Ethvert medlem i en rolle med denne rettighed kan tildele sig selv - og enhver anden - roller som giver dem flere rettigheder end de havde tidligere, og dermed potentielt få næsten samme magt som ejer. Vær sikker på at vide hvad du ør inden du tildeler denne rettighed."
+ name="role assign member" />
+ <action description="Fjern medlemmer fra roller"
+ longdescription="Fjern medlemmer fra roller i in Tildelte roller sektionen på fanen: Medlemmer &amp; roller &gt; under-fanen: Medlemmer. Ejere kan ikke fjernes."
+ name="role remove member" />
+ <action description="Tildel og fjern rettigheder for roller"
+ longdescription="Tildel og fjern rettigheder for roller i tilladte rettigheder sektionen på fanen: Medlemmer &amp; roller &gt; under-fanen: Roller. *ADVARSEL* Ethvert medlem i en rolle med denne rettighed kan tildele sig selv - og enhver anden - rettigheder som giver dem flere rettigheder end de havde tidligere, og dermed potentielt få næsten samme magt som ejer. Vær sikker på at vide hvad du gør inden du tildeler denne rettighed."
+ name="role change actions" />
+ </action_set>
+ <action_set
+ description="Disse rettigheder inkluderer adgang til at ændre denne gruppes identitetsoplysninger, som f.eks. om gruppen kan ses af andre, gruppens fundats og billede."
+ name="Group Identity">
+ <action description="Ændre fundats, billede og &apos;Vis i søgning&apos;"
+ longdescription="Ændre fundats og &apos;Vis i søgning&apos;. Dette gøres under fanen Generelt."
+ name="group change identity" />
+ </action_set>
+ <action_set
+ description="Disse rettigheder inkluderer adgang til dedikere, ændre og sælge land fra denne gruppes besiddelser. For at åbne &apos;Om land...&apos; vinduet, højre-klik på jorden og vælg &apos;Om land...&apos;, eller klik på &apos;Om land...&apos; i &apos;Verden&apos; menuen."
+ name="Parcel Management">
+ <action description="Dedikér eller køb land til gruppen"
+ longdescription="Dedikér eller køb land til gruppen. Dette gøres i fanen Generelt i &apos;Om land...&apos;."
+ name="land deed" />
+ <action description="Forlad land og overgiv det til guvernør Linden"
+ longdescription="Forlad land og overgiv det til guvernør Linden. *ADVARSEL* Ethvert medlem med en rolle med denne rettighed kan overdrage gruppe-ejet land via fanen Generelt i &apos;Om land...&apos; til Lindens ejerskab uden salg! Vær sikker på at vide hvad du ør inden du tildeler denne rettighed."
+ name="land release" />
+ <action description="Sæt land til salg"
+ longdescription="Sæt land til salg. *ADVARSEL* Ethvert medlem med en rolle med denne rettighed kan sælge gruppe-ejet land via fanen Generelt i &apos;Om land...&apos;! Vær sikker på at vide hvad du ør inden du tildeler denne rettighed."
+ name="land set sale info" />
+ <action description="Opdel og saml parceller"
+ longdescription="Opdel og saml parceller. Dette gøres ved at højreklikke på jorden og vælge &apos;Redigér terræn&apos;"
+ name="land divide join" />
+ </action_set>
+ <action_set
+ description="Disse rettigheder inkluderer adgang til at ændre parcel navn og en række parametre om f.eks. landingspunkt, teleports m.v.."
+ name="Parcel Identity">
+ <action
+ description="Angive om sted skal vises i &apos;vis i Søg steder&apos; og angivelse af kategori"
+ longdescription="Angive om sted skal vises i &apos;vis i Søg steder&apos; og angivelse af kategori i &apos;Om land...&apos; &gt; Indstillinger fanen."
+ name="land find places" />
+ <action
+ description="Ændre parcel navn, beskrivelse, og &apos;Vis i Søg&apos; opsætning"
+ longdescription="Ændre parcel navn, beskrivelse, og &apos;Vis i Søg&apos; opsætning. Dette håndteres i &apos;Om land...&apos;&gt; Opsætning fanen."
+ name="land change identity" />
+ <action description="Sæt landingspunkt og teleport muligheder"
+ longdescription="På en gruppe-ejet parcel kan medlemmer, med en rolle med denne rettighed, sætte landingspunktet og dermed angive hvor indkommende teleporte skal ankomme og desuden angive dealjer om teleporte. Dette håndteres i &apos;Om land...&apos;&gt; Opsætning fanen."
+ name="land set landing point" />
+ </action_set>
+ <action_set
+ description="Disse rettigheder inkluderer adgang til at opsætte parcel indstillinger som f.eks. &apos;Lave objekter&apos;, &apos;Redigere terræn&apos;, samt musik og media indstillinger."
+ name="Parcel Settings">
+ <action description="Ændre musik og media indstillinger"
+ longdescription="Ændre oplysninger om streaming musik og film i &apos;Om land...&apos; &gt; Media fanen."
+ name="land change media" />
+ <action description="Ændre rettighed til &apos;Redigere terræn&apos;"
+ longdescription="Ændre rettighed til &apos;Redigere terræn&apos;. *ADVARSEL*: Redigere terræn&apos; kan give alle og enhver ret til at ændre terræn og opsætte og flytte Linden planter. Vær sikker på at vide hvad du ør inden du tildeler denne rettighed."
+ name="land edit" />
+ <action
+ description="Ændre diverse andre indstillinger i &apos;Om land...&apos;&gt; indstillinger fanen"
+ longdescription="Giv adgang til at ændre &apos;Sikker (ingen skade)&apos;, &apos;Flyve&apos;, og tillad andre beboere at: &apos;Lave objekter&apos;, &apos;Redigere terræn&apos;, &apos;Lave landemærker&apos;, og &apos;Køre scripts&apos; på gruppe-ejet land via About Land &gt; Indstillinger fanen."
+ name="land options" />
+ </action_set>
+ <action_set
+ description="Disse rettigheder inkluderer adgang til at medlemmer kan omgå restriktioner på gruppe-ejede parceller."
+ name="Parcel Powers">
+ <action description="Tillad altid &apos;Rediger Terræn&apos;"
+ longdescription="Medlemmer med denne rolle har adgang til at redigere terræn på gruppe-ejede parceller, også selvom denne mulighed ikke er aktiveret på &apos;Om land...&apos; &gt; Indstillinger fanen."
+ name="land allow edit land" />
+ <action description="Tillad altid at &apos;Flyve&apos;"
+ longdescription="Medlemmer med denne rolle har adgang til at flyve på gruppe-ejede parceller, også selvom denne mulighed ikke er aktiveret på &apos;Om land...&apos; &gt; Indstillinger fanen."
+ name="land allow fly" />
+ <action description="Tillad altid &apos;Lave objekter&apos;"
+ longdescription="Medlemmer med denne rolle har adgang til at lave nye objekter på gruppe-ejede parceller, også selvom denne mulighed ikke er aktiveret på &apos;Om land...&apos; &gt; Indstillinger fanen."
+ name="land allow create" />
+ <action description="Tillad altid at &apos;Lave landemærker&apos;"
+ longdescription="Medlemmer med denne rolle har adgang til at lave landemærker på gruppe-ejede parceller, også selvom denne mulighed ikke er aktiveret på &apos;Om land...&apos; &gt; Indstillinger fanen."
+ name="land allow landmark" />
+ <action description="Tillad altid &apos;sæt til hjem&apos; på gruppe-ejet land"
+ longdescription="Medlemmer med denne rolle har adgang til at benytte &apos;Verden&apos; menuen og vælge &apos;sæt til hjem&apos; på en parcel der er dedikeret til gruppen."
+ name="land allow set home" />
+ </action_set>
+ <action_set
+ description="Disse rettigheder inkluderer adgang til at medlemmer kan tillade eller forbyde adgang til gruppe-ejede parceller, inkluderende at &apos;fryse&apos; og udsmide beboere."
+ name="Parcel Access">
+ <action description="Administrér adgangsregler for parceller"
+ longdescription="Administrér adgangsregler for parceller i &apos;Om land&apos; &gt; &apos;Adgang&apos; fanen."
+ name="land manage allowed" />
+ <action description="Administrér liste med blokerede beboere på parceller"
+ longdescription="Administrér liste med blokerede beboere på parceller i &apos;Om land&apos; &gt; &apos;Adgang&apos; fanen."
+ name="land manage banned" />
+ <action
+ description="Ændre indstillinger for at &apos;Sælge adgang til&apos; parceller"
+ longdescription="Ændre indstillinger for at &apos;Sælge adgang til&apos; parceller i &apos;Om land&apos; &gt; &apos;Adgang&apos; fanen."
+ name="land manage passes" />
+ <action
+ description="Adgang til at smide beboere ud og &apos;fryse&apos; beboere på parceller"
+ longdescription="Medlermmer med denne rolle kan håndtere beboere som ikke er velkomne på gruppe-ejet parceller ved at højreklikke på dem, vælge Mere&gt;, og vælge &apos;Smid ud...&apos; eller &apos;Frys...&apos;."
+ name="land admin" />
+ </action_set>
+ <action_set
+ description="Disse rettigheder inkluderer mulighed til at tillade beboere at returnere objekter og placere og flytte Linden planter. Dette er brugbart for at medlemmer kan holde orden og tilpasse landskabet. Denne mulighed skal benyttes med varsomhed, da der ikke er mulighed for at fortryde returnering af objekter og ændringer i landskabet."
+ name="Parcel Content">
+ <action description="Returnere objekter ejet af gruppen"
+ longdescription="Returne objekter på gruppe-ejede parceller der er ejet af gruppen. Dette håndteres i &apos;Om land...&apos;&gt; &apos;Objekter&apos; fanen."
+ name="land return group owned" />
+ <action description="Returnere objekter der er sat til &apos;gruppe&apos;"
+ longdescription="Returnere objekter på gruppe-ejede parceller, der er &apos;sat til gruppe&apos; i &apos;Om land...&apos;&gt; &apos;Objekter&apos; fanen."
+ name="land return group set" />
+ <action description="Returnere objekter der ikke er ejet af andre"
+ longdescription="Returnere objekter på gruppe-ejede parceller, der er &apos;Ejet af andre&apos; i &apos;Om land...&apos;&gt; &apos;Objekter&apos; fanen."
+ name="land return non group" />
+ <action description="Ændre landskab med Linden planter"
+ longdescription="Mulighed for at ændre landskabet ved at placere og flytte Linden træer, planter, og græs. Disse genstande kan findes i din beholdnings Library &gt; Objects mappe eller de kan oprettes via &apos;Byg&apos; knappen."
+ name="land gardening" />
+ </action_set>
+ <action_set
+ description="Disse rettigheder inkluderer mulighed til at dedikere, ændre og sælge gruppe-ejede objekter. Disse ændringer sker i &apos;Rediger&apos;&gt; &apos;Generelt&apos; fanen."
+ name="Object Management">
+ <action description="Dediker objekter til gruppe"
+ longdescription="Dediker objekter til gruppe i &apos;Rediger&apos;&gt; &apos;Generelt&apos; fanen."
+ name="object deed" />
+ <action description="Manipulér (flyt, kopiér, ændre) gruppe-ejede objekter"
+ longdescription="Manipulér (flyt, kopiér, ændre) gruppe-ejede objekter i &apos;Rediger&apos;&gt; &apos;Generelt&apos; fanen."
+ name="object manipulate" />
+ <action description="Sæt gruppe-ejede objekter til salg"
+ longdescription="Sæt gruppe-ejede objekter til salg i &apos;Rediger&apos;&gt; &apos;Generelt&apos; fanen."
+ name="object set sale" />
+ </action_set>
+ <action_set
+ description="Disse rettigheder inkluderer mulighed til at håndtere betalinger for gruppen og styre adgang til gruppens kontobevægelser."
+ name="Accounting">
+ <action description="Betale gruppe regninger og modtage gruppe udbytte"
+ longdescription="Medlemmer med denne rolle vil automatisk betale gruppe regninger og modtage gruppe udbytte. Det betyder at de vil modtager en andel af indtægter fra salg af gruppe-ejet land og bidrage til betaling af gruppe-relaterede betalinger, som f.eks. betaling for at paceller vises i lister. "
+ name="accounting accountable" />
+ </action_set>
+ <action_set
+ description="Disse rettigheder inkluderer adgang til at kunne sende, modtage og se gruppe beskeder."
+ name="Notices">
+ <action description="Send beskeder"
+ longdescription="Medlemmer med denne rolle kan sende beskeder i &apos;Beskeder&apos; fanen."
+ name="notices send" />
+ <action description="Modtage og se tidligere beskeder"
+ longdescription="Medlemmer med denne rolle kan modtage og se tidligere beskeder i &apos;Beskeder&apos; fanen."
+ name="notices receive" />
+ </action_set>
+ <action_set
+ description="Disse rettigheder inkluderer adgang til at kunne oprette forslag, stemme på forslag og se historik med forslag."
+ name="Proposals">
+ <action description="Opret forslag"
+ longdescription="Medlemmer med denne rolle kan oprette forslag som der kan stemmes om i &apos;Forslag&apos; fanen."
+ name="proposal start" />
+ <action description="Stem på forslag"
+ longdescription="Medlemmer med denne rolle kan stemme på forslag i &apos;Forslag&apos; fanen."
+ name="proposal vote" />
+ </action_set>
+ <action_set
+ description="Disse rettigheder styrer hvem der kan deltage i gruppe-chat og gruppe stemme-chat."
+ name="Chat">
+ <action description="Deltage i gruppe-chat"
+ longdescription="Medlemmer med denne rolle kan deltage i gruppe-chat sessioner"
+ name="join group chat" />
+ <action description="Deltag i gruppe stemme-chat"
+ longdescription="Medlemmer med denne rolle kan deltage i gruppe stemme-chat sessioner. BEMÆRK: Medlemmet skal også have rollen &apos;Deltage i gruppe-chat&apos; for at denne rolle har effekt."
+ name="join voice chat" />
+ <action description="Styr gruppe-chat"
+ longdescription="Medlemmer med denne rolle kan kontrollere adgang og deltagelse i gruppe-chat og gruppe stemme-chat sessioner."
+ name="moderate group chat" />
+ </action_set>
+</role_actions>
diff --git a/indra/newview/skins/default/xui/da/teleport_strings.xml b/indra/newview/skins/default/xui/da/teleport_strings.xml
index 6ef3b6227e..78052b4ef5 100644
--- a/indra/newview/skins/default/xui/da/teleport_strings.xml
+++ b/indra/newview/skins/default/xui/da/teleport_strings.xml
@@ -1,88 +1,88 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<teleport_messages>
- <message_set name="errors">
- <message name="invalid_tport">
- Der er problemer med at håndtere din teleport.
-Det kan være nødvendigt at logge ud og ind for at kunne skifte teleportere.
-Hvis du bliver ved med at have problemet kan du checke teknisk support på:
-www.secondlife.com/support.
- </message>
- <message name="invalid_region_handoff">
- Problem registreret i forbindelse med skift til ny region.
-Det kan være nødvendigt at logge ud og ind for at kunne skifte regioner.
-Hvis du bliver ved med at have problemet kan du checke teknisk support på:
-www.secondlife.com/support.
- </message>
- <message name="blocked_tport">
- Beklager, teleport er blokeret lige nu. Prøv igen senere.
-Hvis du stadig ikke kan teleporte, prøv venligst at logge ud og ligge
-ind for at løse dette problem.
- </message>
- <message name="nolandmark_tport">
- Beklager, systemet kunne ikke finde landmærke destinationen.
- </message>
- <message name="timeout_tport">
- Beklager, systemet kunne ikke fuldføre teleport forbindelse.
-Prøv igen om lidt.
- </message>
- <message name="noaccess_tport">
- Beklager, du har ikke adgang til denne teleport destination.
- </message>
- <message name="missing_attach_tport">
- Dine vedhæng er ikke ankommet endnu. Prøv at vente lidt endnu
-eller log ud og ind igen før du prøver at teleporte igen.
- </message>
- <message name="too_many_uploads_tport">
- Tekniske problemer hindrer at din teleport kan gennemføres.
-Prøv venligst igen om lidt eller vælg et mindre travlt område.
- </message>
- <message name="expired_tport">
- Beklager, men systemet kunne ikke fuldføre din teleport
-i rimelig tid. Prøv venligst igen om lidt.
- </message>
- <message name="expired_region_handoff">
- Beklager, men systemet kunne ikke fuldføre skift til anden region
-i rimelig tid. Prøv venligst igen om lidt.
- </message>
- <message name="no_host">
- Ikke muligt at fine teleport destination. Destinationen kan
-være midlertidig utilgængelig eller findes ikke mere.
-Prøv evt. igen om lidt.
- </message>
- <message name="no_inventory_host">
- Beholdningssystemet er ikke tilgængelig lige nu.
- </message>
- </message_set>
- <message_set name="progress">
- <message name="sending_dest">
- Sender til destination.
- </message>
- <message name="redirecting">
- Omdirigerer til en anden lokation.
- </message>
- <message name="relaying">
- Overfører til destination.
- </message>
- <message name="sending_home">
- Sender forespørgsel på hjem-position.
- </message>
- <message name="sending_landmark">
- Semder anmodning om landmærke.
- </message>
- <message name="completing">
- Fuldfører teleport.
- </message>
- <message name="resolving">
- Finder destination.
- </message>
- <message name="contacting">
- Kontakter ny region.
- </message>
- <message name="arriving">
- Ankommer...
- </message>
- <message name="requesting">
- Anmoder om teleport...
- </message>
- </message_set>
-</teleport_messages>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<teleport_messages>
+ <message_set name="errors">
+ <message name="invalid_tport">
+ Der er problemer med at håndtere din teleport.
+Det kan være nødvendigt at logge ud og ind for at kunne skifte teleportere.
+Hvis du bliver ved med at have problemet kan du checke teknisk support på:
+www.secondlife.com/support.
+ </message>
+ <message name="invalid_region_handoff">
+ Problem registreret i forbindelse med skift til ny region.
+Det kan være nødvendigt at logge ud og ind for at kunne skifte regioner.
+Hvis du bliver ved med at have problemet kan du checke teknisk support på:
+www.secondlife.com/support.
+ </message>
+ <message name="blocked_tport">
+ Beklager, teleport er blokeret lige nu. Prøv igen senere.
+Hvis du stadig ikke kan teleporte, prøv venligst at logge ud og ligge
+ind for at løse dette problem.
+ </message>
+ <message name="nolandmark_tport">
+ Beklager, systemet kunne ikke finde landmærke destinationen.
+ </message>
+ <message name="timeout_tport">
+ Beklager, systemet kunne ikke fuldføre teleport forbindelse.
+Prøv igen om lidt.
+ </message>
+ <message name="noaccess_tport">
+ Beklager, du har ikke adgang til denne teleport destination.
+ </message>
+ <message name="missing_attach_tport">
+ Dine vedhæng er ikke ankommet endnu. Prøv at vente lidt endnu
+eller log ud og ind igen før du prøver at teleporte igen.
+ </message>
+ <message name="too_many_uploads_tport">
+ Tekniske problemer hindrer at din teleport kan gennemføres.
+Prøv venligst igen om lidt eller vælg et mindre travlt område.
+ </message>
+ <message name="expired_tport">
+ Beklager, men systemet kunne ikke fuldføre din teleport
+i rimelig tid. Prøv venligst igen om lidt.
+ </message>
+ <message name="expired_region_handoff">
+ Beklager, men systemet kunne ikke fuldføre skift til anden region
+i rimelig tid. Prøv venligst igen om lidt.
+ </message>
+ <message name="no_host">
+ Ikke muligt at fine teleport destination. Destinationen kan
+være midlertidig utilgængelig eller findes ikke mere.
+Prøv evt. igen om lidt.
+ </message>
+ <message name="no_inventory_host">
+ Beholdningssystemet er ikke tilgængelig lige nu.
+ </message>
+ </message_set>
+ <message_set name="progress">
+ <message name="sending_dest">
+ Sender til destination.
+ </message>
+ <message name="redirecting">
+ Omdirigerer til en anden lokation.
+ </message>
+ <message name="relaying">
+ Overfører til destination.
+ </message>
+ <message name="sending_home">
+ Sender forespørgsel på hjem-position.
+ </message>
+ <message name="sending_landmark">
+ Semder anmodning om landmærke.
+ </message>
+ <message name="completing">
+ Fuldfører teleport.
+ </message>
+ <message name="resolving">
+ Finder destination.
+ </message>
+ <message name="contacting">
+ Kontakter ny region.
+ </message>
+ <message name="arriving">
+ Ankommer...
+ </message>
+ <message name="requesting">
+ Anmoder om teleport...
+ </message>
+ </message_set>
+</teleport_messages>
diff --git a/indra/newview/skins/default/xui/de/floater_about.xml b/indra/newview/skins/default/xui/de/floater_about.xml
index 238dfd5baf..c3935882af 100644
--- a/indra/newview/skins/default/xui/de/floater_about.xml
+++ b/indra/newview/skins/default/xui/de/floater_about.xml
@@ -20,13 +20,14 @@ SDL Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga
SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
xmlrpc-epi Copyright (C) 2000 Epinions, Inc.
zlib Copyright (C) 1995-2002 Jean-loup Gailly und Mark Adler.
+google-perftools Copyright (c) 2005, Google Inc.
Alle Rechte vorbehalten. Details siehe licenses.txt.
Voice-Chat-Audiocoding: Polycom(R) Siren14(TM) (ITU-T Empf.G.722.1 Anhang C)
-I get by with a little help from my friends. (etwa: Ich überlebe mit ein bisschen Unterstützung von meinen Freunden.) --Richard Starkey
+Um im Geschäftsleben erfolreich zu sein, sei kühn, sei schnell, sei anders. --Henry Marchant
</text_editor>
<text name="you_are_at">
Sie befinden sich in [POSITION]
diff --git a/indra/newview/skins/default/xui/de/floater_about_land.xml b/indra/newview/skins/default/xui/de/floater_about_land.xml
index eec6a76e57..93e7297fd2 100644
--- a/indra/newview/skins/default/xui/de/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/de/floater_about_land.xml
@@ -8,6 +8,18 @@
<text name="Description:">
Beschreibung:
</text>
+ <text name="LandType">
+ Typ:
+ </text>
+ <text name="LandTypeText">
+ Mainland / Homestead
+ </text>
+ <text name="ContentRating">
+ Einstufung:
+ </text>
+ <text name="ContentRatingText">
+ Adult
+ </text>
<text name="Owner:">
Eigentümer:
</text>
@@ -29,9 +41,10 @@
Nicht zu verkaufen.
</text>
<text name="For Sale: Price L$[PRICE].">
- Preis: [PRICE] L$.
+ Preis: [PRICE] L$ ([PRICE_PER_SQM] L$/qm.).
</text>
- <button label="Land verkaufen..." label_selected="Land verkaufen..." name="Sell Land..." bottom="-200"/>
+ <text name="SalePending"/>
+ <button bottom="-222" label="Land verkaufen..." label_selected="Land verkaufen..." name="Sell Land..."/>
<text name="For sale to">
Zum Verkauf an: [BUYER]
</text>
@@ -41,7 +54,7 @@
<text name="Selling with no objects in parcel." width="237">
Objekte sind im Verkauf nicht eingeschlossen.
</text>
- <button label="Landverkauf abbrechen" label_selected="Landverkauf abbrechen" name="Cancel Land Sale" bottom="-204"/>
+ <button bottom="-222" label="Landverkauf abbrechen" label_selected="Landverkauf abbrechen" name="Cancel Land Sale"/>
<text name="Claimed:">
Gekauft am:
</text>
@@ -52,7 +65,7 @@
Gebiet:
</text>
<text name="PriceText">
- 4048 qm
+ 4048 qm.
</text>
<text name="Traffic:">
Traffic:
@@ -76,7 +89,7 @@
Gebiet:
</string>
<string name="area_size_text">
- [AREA] qm
+ [AREA] qm.
</string>
<string name="auction_id_text">
Auktions-ID: [ID]
@@ -108,17 +121,11 @@
</string>
</panel>
<panel label="Vertrag" name="land_covenant_panel">
- <text name="covenant_timestamp_text">
- Letzte Änderung am Mittwoch, den 31. Dez. 1969, 16:00:00
- </text>
- <text name="region_name_lbl">
- Region:
- </text>
- <text name="region_name_text">
- leyla
+ <text name="estate_section_lbl">
+ Grundstück:
</text>
<text name="estate_name_lbl">
- Grundstück:
+ Name:
</text>
<text name="estate_name_text">
Mainland
@@ -129,15 +136,46 @@
<text name="estate_owner_text">
(keiner)
</text>
+ <text_editor name="covenant_editor">
+ Für dieses Grundstück fehlt der Vertrag.
+ </text_editor>
+ <text name="covenant_timestamp_text">
+ Letzte Änderung am Mittwoch, den 31. Dez. 1969, 16:00:00
+ </text>
+ <text name="region_section_lbl">
+ Region:
+ </text>
+ <text name="region_name_lbl">
+ Name:
+ </text>
+ <text name="region_name_text">
+ leyla
+ </text>
+ <text name="region_landtype_lbl">
+ Typ:
+ </text>
+ <text name="region_landtype_text">
+ Mainland / Homestead
+ </text>
+ <text name="region_maturity_lbl">
+ Einstufung:
+ </text>
+ <text name="region_maturity_text">
+ Adult
+ </text>
+ <text name="resellable_lbl">
+ Wiederverkauf:
+ </text>
<text name="resellable_clause">
- Gekauftes Land in dieser Region kann nicht wiederverkauft werden.
+ Land in dieser Region kann nicht wiederverkauft werden.
+ </text>
+ <text name="changeable_lbl">
+ Unterteilen:
</text>
<text name="changeable_clause">
- Gekauftes Land in dieser Region kann nicht zusammengelegt/geteilt werden.
+ Land in dieser Region kann nicht zusammengelegt/geteilt
+werden.
</text>
- <text_editor name="covenant_editor">
- Für dieses Grundstück fehlt der Vertrag.
- </text_editor>
<string name="can_resell">
Gekauftes Land in dieser Region kann wiederverkauft werden.
</string>
@@ -145,10 +183,12 @@
Gekauftes Land in dieser Region kann nicht wiederverkauft werden.
</string>
<string name="can_change">
- Gekauftes Land in dieser Region kann zusammengelegt und geteilt werden.
+ Gekauftes Land in dieser Region kann zusammengelegt und
+geteilt werden.
</string>
<string name="can_not_change">
- Gekauftes Land in dieser Region kann nicht zusammengelegt und geteilt werden.
+ Gekauftes Land in dieser Region kann nicht zusammengelegt
+und geteilt werden.
</string>
</panel>
<panel label="Objekte" name="land_objects_panel">
@@ -170,49 +210,49 @@
<text name="Primitives parcel supports:" width="200">
Von Parzelle unterstützte Primitiva:
</text>
- <text name="object_contrib_text" left="204" width="152">
+ <text left="204" name="object_contrib_text" width="152">
[COUNT]
</text>
<text name="Primitives on parcel:">
Primitiva auf Parzelle:
</text>
- <text name="total_objects_text" left="204" width="48">
+ <text left="204" name="total_objects_text" width="48">
[COUNT]
</text>
- <text name="Owned by parcel owner:" left="14" width="200">
+ <text left="14" name="Owned by parcel owner:" width="200">
Im Eigentum des Parzellenbesitzers:
</text>
- <text name="owner_objects_text" left="204" width="48">
+ <text left="204" name="owner_objects_text" width="48">
[COUNT]
</text>
<button label="Anzeigen" label_selected="Anzeigen" name="ShowOwner" right="-135" width="60"/>
- <button label="Zurückgeben..." label_selected="Zurückgeben..." name="ReturnOwner..." tool_tip="Objekte an ihre Eigentümer zurückgeben." right="-10" width="119"/>
- <text name="XXXXSet to group:" left="14" width="200">
- Der Gruppe übereignen:
+ <button label="Zurückgeben..." label_selected="Zurückgeben..." name="ReturnOwner..." right="-10" tool_tip="Objekte an ihre Eigentümer zurückgeben." width="119"/>
+ <text left="14" name="Set to group:">
+ Der Gruppe zugeordnet:
</text>
- <text name="group_objects_text" left="204" width="48">
+ <text left="204" name="group_objects_text" width="48">
[COUNT]
</text>
- <button label="Anzeigen" label_selected="Anzeigen" name="ShowGroup" width="60" right="-135" />
- <button label="Zurückgeben..." label_selected="Zurückgeben..." name="ReturnGroup..." tool_tip="Objekte an ihre Eigentümer zurückgeben." right="-10" width="119"/>
- <text name="Owned by others:" left="14" width="128">
+ <button label="Anzeigen" label_selected="Anzeigen" name="ShowGroup" right="-135" width="60"/>
+ <button label="Zurückgeben..." label_selected="Zurückgeben..." name="ReturnGroup..." right="-10" tool_tip="Objekte an ihre Eigentümer zurückgeben." width="119"/>
+ <text left="14" name="Owned by others:" width="128">
Im Eigentum anderer:
</text>
- <text name="other_objects_text" left="204" width="48">
+ <text left="204" name="other_objects_text" width="48">
[COUNT]
</text>
<button label="Anzeigen" label_selected="Anzeigen" name="ShowOther" right="-135" width="60"/>
- <button label="Zurückgeben..." label_selected="Zurückgeben..." name="ReturnOther..." tool_tip="Objekte an ihre Eigentümer zurückgeben." right="-10" width="119"/>
- <text name="Selected / sat upon:" left="14" width="140">
+ <button label="Zurückgeben..." label_selected="Zurückgeben..." name="ReturnOther..." right="-10" tool_tip="Objekte an ihre Eigentümer zurückgeben." width="119"/>
+ <text left="14" name="Selected / sat upon:" width="140">
Ausgewählt/gesessen auf:
</text>
- <text name="selected_objects_text" left="204" width="48">
+ <text left="204" name="selected_objects_text" width="48">
[COUNT]
</text>
- <text name="Autoreturn" width="380" left="4" >
+ <text left="4" name="Autoreturn" width="380">
Objekte anderer Einwohner automatisch zurückgeben (Minuten, 0 für aus):
</text>
- <line_editor name="clean other time" right="-10" width="56" />
+ <line_editor name="clean other time" right="-10" width="56"/>
<text name="Object Owners:">
Objekteigentümer:
</text>
@@ -253,23 +293,109 @@
<check_box label="Sicher (kein Schaden)" name="check safe" tool_tip="Falls aktiviert, wird Land auf Option „Sicher“ eingestellt, Kampfschäden sind deaktiviert. Falls nicht aktiviert, sind Kampfschäden aktiviert."/>
<check_box label="Kein Stoßen" name="PushRestrictCheck" tool_tip="Verhindert Skripte am Stoßen. Durch Aktivieren dieser Option verhindern Sie störendes Verhalten auf Ihrem Land."/>
<check_box label="Ort in Suche anzeigen (30 L$/Woche) unter" name="ShowDirectoryCheck" tool_tip="Diese Parzelle in Suchergebnissen anzeigen."/>
- <combo_box name="land category" left="266" width="130">
- <combo_box.item name="AnyCategory" label="Alle Kategorien"/>
- <combo_box.item name="LindenLocation" label="Lindenort"/>
-
- <combo_box.item name="Arts&amp;Culture" label="Kunst und Kultur"/>
- <combo_box.item name="Business" label="Business"/>
- <combo_box.item name="Educational" label="Bildung"/>
- <combo_box.item name="Gaming" label="Spielen"/>
- <combo_box.item name="Hangout" label="Treffpunkt"/>
- <combo_box.item name="NewcomerFriendly" label="Anfängergerecht"/>
- <combo_box.item name="Parks&amp;Nature" label="Parks und Natur"/>
- <combo_box.item name="Residential" label="Wohngebiet"/>
- <combo_box.item name="Shopping" label="Shopping"/>
- <combo_box.item name="Other" label="Sonstige"/>
+ <string name="search_enabled_tooltip">
+ Diese Parzelle in Suchergebnissen anzeigen.
+ </string>
+ <string name="search_disabled_small_tooltip">
+ Diese Option ist nicht aktiviert, da diese Parzelle nicht größer als 128 qm ist.
+Nur große Parzellen können in der Suche aufgeführt werden.
+ </string>
+ <string name="search_disabled_permissions_tooltip">
+ Diese Option ist nicht aktiviert, da Sie die Parzellenoptionen nicht verändern können.
+ </string>
+ <combo_box name="land category with adult">
+ <combo_item name="AnyCategory">
+ Alle Kategorien
+ </combo_item>
+ <combo_item name="LindenLocation">
+ Lindenort
+ </combo_item>
+ <combo_item name="Adult">
+ Adult
+ </combo_item>
+ <combo_item name="Arts&amp;Culture">
+ Kunst &amp; Kultur
+ </combo_item>
+ <combo_item name="Business">
+ Business
+ </combo_item>
+ <combo_item name="Educational">
+ Bildung
+ </combo_item>
+ <combo_item name="Gaming">
+ Spielen
+ </combo_item>
+ <combo_item name="Hangout">
+ Treffpunkt
+ </combo_item>
+ <combo_item name="NewcomerFriendly">
+ Anfängergerecht
+ </combo_item>
+ <combo_item name="Parks&amp;Nature">
+ Parks und Natur
+ </combo_item>
+ <combo_item name="Residential">
+ Wohngebiet
+ </combo_item>
+ <combo_item name="Shopping">
+ Shopping
+ </combo_item>
+ <combo_item name="Other">
+ Sonstige
+ </combo_item>
+ </combo_box>
+ <combo_box left="266" name="land category" width="130">
+ <combo_item name="AnyCategory">
+ Alle Kategorien
+ </combo_item>
+ <combo_item name="LindenLocation">
+ Lindenort
+ </combo_item>
+ <combo_item name="Arts&amp;Culture">
+ Kunst und Kultur
+ </combo_item>
+ <combo_item name="Business">
+ Business
+ </combo_item>
+ <combo_item name="Educational">
+ Bildung
+ </combo_item>
+ <combo_item name="Gaming">
+ Spielen
+ </combo_item>
+ <combo_item name="Hangout">
+ Treffpunkt
+ </combo_item>
+ <combo_item name="NewcomerFriendly">
+ Anfängergerecht
+ </combo_item>
+ <combo_item name="Parks&amp;Nature">
+ Parks und Natur
+ </combo_item>
+ <combo_item name="Residential">
+ Wohngebiet
+ </combo_item>
+ <combo_item name="Shopping">
+ Shopping
+ </combo_item>
+ <combo_item name="Other">
+ Sonstige
+ </combo_item>
</combo_box>
<button label="?" label_selected="?" name="?"/>
- <check_box name="MatureCheck" />
+ <check_box label="Mature-Inhalt" name="MatureCheck" tool_tip=""/>
+ <string name="mature_check_mature">
+ Mature-Inhalt
+ </string>
+ <string name="mature_check_adult">
+ Adult-Inhalt
+ </string>
+ <string name="mature_check_mature_tooltip">
+ Die Informationen oder Inhalte Ihrer Parzelle sind „Mature“.
+ </string>
+ <string name="mature_check_adult_tooltip">
+ Die Informationen oder Inhalte Ihrer Parzelle sind „Adult“.
+ </string>
<text name="Snapshot:">
Foto:
</text>
@@ -280,15 +406,21 @@
<string name="landing_point_none">
(keiner)
</string>
- <button label="Festlegen" label_selected="Festlegen" name="Set" tool_tip="Legt den Landepunkt fest, an dem Besucher ankommen. Legt die Position Ihres Avatars innerhalb dieser Parzelle fest." width="70" left="234"/>
- <button label="Löschen" label_selected="Löschen" name="Clear" tool_tip="Landepunkt löschen." width="70" left="312"/>
+ <button label="Festlegen" label_selected="Festlegen" left="234" name="Set" tool_tip="Legt den Landepunkt fest, an dem Besucher ankommen. Legt die Position Ihres Avatars innerhalb dieser Parzelle fest." width="70"/>
+ <button label="Löschen" label_selected="Löschen" left="312" name="Clear" tool_tip="Landepunkt löschen." width="70"/>
<text name="Teleport Routing: ">
Teleport-Route:
</text>
- <combo_box name="landing type" tool_tip="Teleport-Route -- festlegen, wie Teleports auf Ihrem Land gehandhabt werden sollen." >
- <combo_box.item name="Blocked" label="Blockiert"/>
- <combo_box.item name="LandingPoint" label="Landepunkt"/>
- <combo_box.item name="Anywhere" label="Überall"/>
+ <combo_box name="landing type" tool_tip="Teleport-Route -- festlegen, wie Teleports auf Ihrem Land gehandhabt werden sollen.">
+ <combo_item name="Blocked">
+ Blockiert
+ </combo_item>
+ <combo_item name="LandingPoint">
+ Landepunkt
+ </combo_item>
+ <combo_item name="Anywhere">
+ Überall
+ </combo_item>
</combo_box>
<string name="push_restrict_text">
Kein Stoßen
@@ -341,21 +473,14 @@ Optionen:
<text name="Sound:">
Sound:
</text>
- <check_box label="Umgebungssound auf diese Parzelle beschränken" name="check sound local"/>
+ <check_box label="Gesten- und Objektgeräusche auf diese Parzelle beschränken" name="check sound local"/>
+ <button label="?" label_selected="?" left="418" name="?"/>
<text name="Voice settings:">
Voice:
</text>
- <radio_group name="parcel_voice_channel" width="310">
- <radio_item name="Estate">
- Voice-Channel des Grundstücks verwenden
- </radio_item>
- <radio_item name="Private">
- Einen privaten Voice-Channel verwenden
- </radio_item>
- <radio_item name="Disabled">
- Umgebungssound auf dieser Parzelle deaktivieren
- </radio_item>
- </radio_group>
+ <check_box label="Voice-Chat aktivieren" name="parcel_enable_voice_channel"/>
+ <check_box label="Voice-Chat aktivieren (vom Grundstück festgelegt)" name="parcel_enable_voice_channel_is_estate_disabled"/>
+ <check_box label="Voice-Chat auf diese Parzelle beschränken" name="parcel_enable_voice_channel_parcel"/>
</panel>
<panel label="Zugang" name="land_access_panel">
<text name="Limit access to this parcel to:">
@@ -373,8 +498,12 @@ Optionen:
<check_box label="Gruppenzugang erlauben: [GROUP]" name="GroupCheck" tool_tip="Gruppe im Register „Allgemein“ festlegen."/>
<check_box label="Pässe verkaufen an:" name="PassCheck" tool_tip="Ermöglicht befristeten Zugang zu dieser Parzelle"/>
<combo_box name="pass_combo">
- <combo_box.item name="Anyone" label="Jeden"/>
- <combo_box.item name="Group" label="Gruppe"/>
+ <combo_item name="Anyone">
+ Jeden
+ </combo_item>
+ <combo_item name="Group">
+ Gruppe
+ </combo_item>
</combo_box>
<spinner label="Preis in L$:" name="PriceSpin"/>
<spinner label="Online-Zeit:" name="HoursSpin"/>
diff --git a/indra/newview/skins/default/xui/de/floater_avatar_picker.xml b/indra/newview/skins/default/xui/de/floater_avatar_picker.xml
index b6b8792345..c546d91d72 100644
--- a/indra/newview/skins/default/xui/de/floater_avatar_picker.xml
+++ b/indra/newview/skins/default/xui/de/floater_avatar_picker.xml
@@ -1,17 +1,45 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="avatarpicker" title="Einwohner auswählen">
- <text name="instruct_search_resident_name" height="32" bottom="-56">
-Geben Sie einen Teil des Namens des
+ <tab_container name="ResidentChooserTabs">
+ <panel label="Suchen" name="SearchPanel">
+ <text name="InstructSearchResidentName">
+ Geben Sie einen Teil des Namens des
Einwohners ein:
- </text>
- <button label="Suchen" label_selected="Suchen" name="Find" />
- <scroll_list name="Names" height="138" bottom_delta="-144"/>
- <text name="Or select their calling card:">
- Oder wählen Sie eine Visitenkarte:
- </text>
- <button label="Auswählen" label_selected="Auswählen" name="Select" />
- <button label="Schließen" label_selected="Schließen" name="Close" />
- <text name="NotFound">
+ </text>
+ <line_editor bottom_delta="-36" name="Edit" />
+ <button label="Suchen" label_selected="Suchen" name="Find"/>
+ <scroll_list height="74" name="SearchResults" bottom_delta="-79"/>
+ </panel>
+ <panel label="Visitenkarten" name="CallingCardsPanel">
+ <text name="InstructSelectCallingCard">
+ Wählen Sie eine Visitenkarte:
+ </text>
+ </panel>
+ <panel label="In meiner Nähe" name="NearMePanel">
+ <text name="InstructSelectResident">
+ Einwohner in der Nähe
+auswählen:
+ </text>
+ <button font="SansSerifSmall" label="Liste aktualisieren" label_selected="Liste aktualisieren" name="Refresh" left_delta="10" width="105"/>
+ <slider label="Bereich" name="near_me_range" bottom_delta="-36"/>
+ <text name="meters">
+ Meter
+ </text>
+ <scroll_list bottom_delta="-169" height="159" name="NearMe" />
+ </panel>
+ </tab_container>
+ <button label="Auswählen" label_selected="Auswählen" name="Select"/>
+ <button label="Abbrechen" label_selected="Abbrechen" name="Cancel"/>
+ <string name="not_found">
„[TEXT]“ nicht gefunden
- </text>
+ </string>
+ <string name="no_one_near">
+ Niemand in der Nähe
+ </string>
+ <string name="no_results">
+ Keine Ergebnisse
+ </string>
+ <string name="searching">
+ Suchen...
+ </string>
</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_avatar_textures.xml b/indra/newview/skins/default/xui/de/floater_avatar_textures.xml
index 13c41560b7..823d6de78b 100644
--- a/indra/newview/skins/default/xui/de/floater_avatar_textures.xml
+++ b/indra/newview/skins/default/xui/de/floater_avatar_textures.xml
@@ -1,30 +1,31 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="avatar_texture_debug" title="Avatar-Texturen">
- <text name="baked_label" width="128">
+ <text name="label">
Gebackene Texturen
</text>
<text name="composite_label" width="150">
Zusammengesetzte Texturen
</text>
- <texture_picker label="Kopf" name="baked_head" />
- <texture_picker label="Make-Up" name="head_bodypaint" />
- <texture_picker label="Haar" name="hair" />
- <button label="Abladen" label_selected="Abladen" name="Dump" />
- <texture_picker label="Augen" name="baked_eyes" />
- <texture_picker label="Auge" name="eye_texture" />
- <texture_picker label="Oberkörper" name="baked_upper_body" />
- <texture_picker label="Oberkörpertattoo" name="upper_bodypaint" />
- <texture_picker label="Unterhemd" name="undershirt" />
- <texture_picker label="Handschuhe" name="gloves" />
- <texture_picker label="Hemd" name="shirt" />
- <texture_picker label="Oberjacke" name="upper_jacket" />
- <texture_picker label="Unterkörper" name="baked_lower_body" />
- <texture_picker label="Unterkörpertattoo" name="lower_bodypaint" />
- <texture_picker label="Unterhose" name="underpants" />
- <texture_picker label="Socken" name="socks" />
- <texture_picker label="Schuhe" name="shoes" />
- <texture_picker label="Hose" name="pants" />
- <texture_picker label="Jacke" name="jacket" />
- <texture_picker label="Rock" name="baked_skirt" />
- <texture_picker label="Rock" name="skirt_texture" />
+ <button label="Läd IDs in Konsole ab" label_selected="Abladen" name="Dump"/>
+ <texture_picker label="Haare" name="hair-baked"/>
+ <texture_picker label="Haar" name="hair"/>
+ <texture_picker label="Kopf" name="head-baked"/>
+ <texture_picker label="Make-Uup" name="head bodypaint"/>
+ <texture_picker label="Augen" name="eyes-baked"/>
+ <texture_picker label="Auge" name="iris"/>
+ <texture_picker label="Oberkörper" name="upper-baked"/>
+ <texture_picker label="Oberkörpertattoo" name="upper bodypaint"/>
+ <texture_picker label="Unterhemd" name="undershirt"/>
+ <texture_picker label="Handschuhe" name="gloves"/>
+ <texture_picker label="Hemd" name="shirt"/>
+ <texture_picker label="Oberjacke" name="upper jacket"/>
+ <texture_picker label="Unterkörper" name="lower-baked"/>
+ <texture_picker label="Unterkörper-Tätowierung" name="lower bodypaint"/>
+ <texture_picker label="Unterhose" name="underpants"/>
+ <texture_picker label="Socken" name="socks"/>
+ <texture_picker label="Schuhe" name="shoes"/>
+ <texture_picker label="Hose" name="pants"/>
+ <texture_picker label="Jacke" name="lower jacket"/>
+ <texture_picker label="Rock" name="skirt-baked"/>
+ <texture_picker label="Rock" name="skirt"/>
</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_bulk_perms.xml b/indra/newview/skins/default/xui/de/floater_bulk_perms.xml
new file mode 100644
index 0000000000..f058a0ed96
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_bulk_perms.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floaterbulkperms" title="Mehrere Inhaltsberechtigungen ändern">
+ <text name="applyto">
+ Inhaltsarten
+ </text>
+ <check_box label="Animation" name="check_animation"/>
+ <check_box label="Körperteile" name="check_bodypart"/>
+ <check_box label="Kleidung" name="check_clothing"/>
+ <check_box label="Gesten" name="check_gesture"/>
+ <check_box label="Landmarken" name="check_landmark"/>
+ <check_box label="Notizkarten" name="check_notecard"/>
+ <check_box label="Objekte" name="check_object"/>
+ <check_box label="Skripts" name="check_script"/>
+ <check_box label="Sounds" name="check_sound"/>
+ <check_box label="Texturen" name="check_texture"/>
+ <button label="Alle auswählen" label_selected="Alle" name="check_all"/>
+ <button label="Keine" label_selected="Keine" name="check_none"/>
+ <text name="newperms">
+ Neue Berechtigungen
+ </text>
+ <check_box label="Mit Gruppe teilen" name="share_with_group"/>
+ <check_box label="Kopieren allen erlauben" name="everyone_copy"/>
+ <text name="NextOwnerLabel">
+ Nächster Eigentümer kann:
+ </text>
+ <check_box label="Bearbeiten" name="next_owner_modify"/>
+ <check_box label="Kopieren" name="next_owner_copy"/>
+ <check_box label="Verkaufen/Weggeben" name="next_owner_transfer"/>
+ <button label="Hilfe" name="help"/>
+ <button label="Übernehmen" name="apply"/>
+ <button label="Schließen" name="close"/>
+ <string name="nothing_to_modify_text">
+ Auswahl enthält keinen Inhalt, der bearbeitet werden kann.
+ </string>
+ <string name="status_text">
+ Berechtigungen werden eingestellt auf [NAME]
+ </string>
+ <string name="start_text">
+ Start: Anforderung auf Änderung der Berechtigung...
+ </string>
+ <string name="done_text">
+ Ende: Anforderung auf Änderung der Berechtigung.
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_buy_land.xml b/indra/newview/skins/default/xui/de/floater_buy_land.xml
index 57d573e6fd..e0abf8fae9 100644
--- a/indra/newview/skins/default/xui/de/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/de/floater_buy_land.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="buy land" title="Land kaufen">
<text name="region_name_label">
Region:
@@ -6,6 +6,12 @@
<text left="580" name="region_name_text">
(unbekannt)
</text>
+ <text name="region_type_label">
+ Typ:
+ </text>
+ <text left="580" name="region_type_text">
+ (unbekannt)
+ </text>
<text name="estate_name_label">
Grundstück:
</text>
@@ -22,18 +28,19 @@
Gekauftes Land in dieser Region:
</text>
<text name="resellable_clause">
- Gekauftes Land in dieser Region kann oder kann nicht wiederverkauft werden.
+ Wiederverkauf möglich oder nicht möglich.
</text>
<text name="changeable_clause">
- kann oder kann nicht zusammengelegt/unterteilt werden.
+ Darft oder darf nicht zusammengelegt/unterteilt werden.
</text>
<text name="covenant_text">
Sie müssen dem Grundstücksvertrag zustimmen:
</text>
+ <text left="470" name="covenant_timestamp_text"/>
<text_editor name="covenant_editor">
Wird geladen...
</text_editor>
- <check_box label="Ich stimme dem obigen Vertrag zu." name="agree_covenant" />
+ <check_box label="Ich stimme dem obigen Vertrag zu." name="agree_covenant"/>
<text name="info_parcel_label">
Parzelle:
</text>
@@ -44,21 +51,23 @@
Größe:
</text>
<text name="info_size">
- 1024 qm
+ 1024 qm.
</text>
<text name="info_price_label">
Preis:
</text>
<text name="info_price">
- 1500 L$, Objekte eingeschlossen
+ 1500 L$
+(L$ 1,1 L$/qm)
+Objekte im Verkauf eingeschlossen
</text>
- <text name="info_action" width="275">
+ <text name="info_action">
Bei Landkauf:
</text>
<text name="error_message">
Irgendetwas stimmt nicht.
</text>
- <button label="Gehe zu Website" name="error_web" />
+ <button label="Gehe zu Website" name="error_web"/>
<text name="account_action">
Macht Sie zum Premium-Mitglied.
</text>
@@ -74,7 +83,7 @@
Erhöhen Sie Ihre monatlichen Landnutzungsgebühren auf 40 US$/month.
</text>
<text name="land_use_reason">
- Sie besitzen 1.309 qm Land.
+ Sie besitzen 1309 qm Land.
Diese Parzelle ist 512 qm groß.
</text>
<text name="purchase_action">
@@ -95,127 +104,134 @@ Diese Parzelle ist 512 qm groß.
<text name="currency_balance">
Sie haben 2.100 L$.
</text>
- <check_box label="[AMOUNT] Quadratmeter des Beitrags von Gruppe nehmen."
- name="remove_contribution" />
- <button label="Kaufen" name="buy_btn" />
- <button label="Abbrechen" name="cancel_btn" />
- <text name="can_resell">
+ <check_box label="[AMOUNT] Quadratmeter des Beitrags von Gruppe nehmen." name="remove_contribution"/>
+ <button label="Kaufen" name="buy_btn"/>
+ <button label="Abbrechen" name="cancel_btn"/>
+ <string name="can_resell">
Verkauf möglich.
- </text>
- <text name="can_not_resell">
+ </string>
+ <string name="can_not_resell">
Verkauf nicht möglich.
- </text>
- <text name="can_change">
+ </string>
+ <string name="can_change">
Zusammenlegen/unterteilen möglich.
- </text>
- <text name="can_not_change">
+ </string>
+ <string name="can_not_change">
Zusammenlegen/unterteilen nicht möglich.
- </text>
- <text name="cant_buy_for_group">
+ </string>
+ <string name="cant_buy_for_group">
Sie sind nicht berechtigt, Land für die aktive Gruppe zu kaufen.
- </text>
- <text name="no_land_selected">
+ </string>
+ <string name="no_land_selected">
Kein Land ausgewählt.
- </text>
- <text name="multiple_parcels_selected">
+ </string>
+ <string name="multiple_parcels_selected">
Mehrere unterschiedliche Parzellen ausgewählt.
Verkleinern Sie Ihre Auswahl.
- </text>
- <text name="no_permission">
+ </string>
+ <string name="no_permission">
Sie sind nicht berechtigt, Land für die aktive Gruppe zu kaufen.
- </text>
- <text name="parcel_not_for_sale">
+ </string>
+ <string name="parcel_not_for_sale">
Die ausgewählte Parzelle steht nicht zum Verkauf.
- </text>
- <text name="group_already_owns">
+ </string>
+ <string name="group_already_owns">
Die Parzelle befindet sich bereits in Gruppenbesitz.
- </text>
- <text name="you_already_own">
+ </string>
+ <string name="you_already_own">
Die Parzelle gehört Ihnen bereits.
- </text>
- <text name="set_to_sell_to_other">
+ </string>
+ <string name="set_to_sell_to_other">
Die ausgewählte Parzelle steht zum Verkauf an Dritte.
- </text>
- <text name="no_public_land">
+ </string>
+ <string name="no_public_land">
Das ausgewählte Land beinhaltet kein öffentliches Land.
- </text>
- <text name="not_owned_by_you">
+ </string>
+ <string name="not_owned_by_you">
Sie haben Land ausgewählt, das einer anderen Person gehört.
Verkleinern Sie Ihre Auswahl.
- </text>
- <text name="processing">
+ </string>
+ <string name="processing">
Kauf wird abgewickelt...
(Dies kann 1 bis 2 Minuten dauern.)
- </text>
- <text name="fetching_error">
+ </string>
+ <string name="fetching_error">
Fehler bei Abfrage der Landkauf-Informationen.
- </text>
- <text name="buying_will">
+ </string>
+ <string name="buying_will">
Bei Landkauf:
- </text>
- <text name="buying_for_group">
- Kaufe Land für Gruppe:
- </text>
- <text name="cannot_buy_now">
+ </string>
+ <string name="buying_for_group">
+ Landkauf für Gruppe:
+ </string>
+ <string name="cannot_buy_now">
Kaufen jetzt nicht möglich:
- </text>
- <text name="not_for_sale">
+ </string>
+ <string name="not_for_sale">
Nicht zu verkaufen:
- </text>
- <text name="none_needed">
+ </string>
+ <string name="none_needed">
nicht benötigt
- </text>
- <text name="must_upgrade">
+ </string>
+ <string name="must_upgrade">
Sie müssen Ihr Konto upgraden, um Land kaufen zu können.
- </text>
- <text name="cant_own_land">
+ </string>
+ <string name="cant_own_land">
Mit Ihrem Konto können Sie Land kaufen.
- </text>
- <text name="land_holdings">
+ </string>
+ <string name="land_holdings">
Sie besitzen [BUYER] qm Land.
- </text>
- <text name="pay_to_for_land">
+ </string>
+ <string name="pay_to_for_land">
[SELLER] [AMOUNT] L$ für das Land bezahlen
- </text>
- <text name="buy_for_US">
- [AMOUNT] L$ für ca. [AMOUNT2] US$ kaufen ,
- </text>
- <text name="parcel_meters">
+ </string>
+ <string name="buy_for_US">
+ [AMOUNT] L$ für circa [AMOUNT2] US$ kaufen,
+ </string>
+ <string name="parcel_meters">
Diese Parzelle ist [AMOUNT] qm groß.
- </text>
- <text name="premium_land">
- Für dieses Land gilt ein Aufschlag. Es wird mit [AMOUNT] qm angesetzt.
- </text>
- <text name="discounted_land">
- Für dieses Land gilt ein Rabatt. Es wird mit [AMOUNT] qm angesetzt.
- </text>
- <text name="meters_supports_object">
- [AMOUNT] qm
+ </string>
+ <string name="premium_land">
+ Dieses Land ist eine Premium-Immobilie. Es wird mit [AMOUNT] qm angesetzt.
+ </string>
+ <string name="discounted_land">
+ Dieses Land ist im Angebot. Es wird mit [AMOUNT] qm angesetzt.
+ </string>
+ <string name="meters_supports_object">
+ [AMOUNT] qm.
unterstützt [AMOUNT2] Objekte
- </text>
- <text name="sold_with_objects">
+ </string>
+ <string name="sold_with_objects">
mit Objekten verkauft
- </text>
- <text name="insufficient_land_credits">
- Die Gruppe [GROUP] benötigt ausreichende Landnutzungsrechte für diese Parzelle, um den Kauf abzuschließen.
- </text>
- <text name="have_enough_lindens">
+ </string>
+ <string name="sold_without_objects">
+ Objekte nicht im Verkauf mit eingeschlossen
+ </string>
+ <string name="info_price_string">
+ [PRICE] L$
+([PRICE_PER_SQM] L$/qm)
+[SOLD_WITH_OBJECTS]
+ </string>
+ <string name="insufficient_land_credits">
+ Die Gruppe [GROUP] benötigt ausreichende gespendete Landnutzungsrechte, um die Parzelle abzudecken, bevor der Kauf abgeschlossen werden kann.
+ </string>
+ <string name="have_enough_lindens">
Sie haben [AMOUNT] L$, genug zum Kauf dieses Landes.
- </text>
- <text name="not_enough_lindens">
+ </string>
+ <string name="not_enough_lindens">
Sie haben nur [AMOUNT] L$, brauchen aber mindestens [AMOUNT2] L$.
- </text>
- <text name="balance_left">
+ </string>
+ <string name="balance_left">
Nach dem Einkauf verbleiben Ihnen noch [AMOUNT] L$.
- </text>
- <text name="balance_needed">
+ </string>
+ <string name="balance_needed">
Für dieses Land müssen Sie mindestens [AMOUNT] L$ kaufen.
- </text>
- <text name="no_parcel_selected">
+ </string>
+ <string name="no_parcel_selected">
(keine Parzelle ausgewählt)
- </text>
- <text name="buy_currency">
+ </string>
+ <string name="buy_currency">
[LINDENS] L$ für ca. [USD] US$ kaufen
- </text>
+ </string>
</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_customize.xml b/indra/newview/skins/default/xui/de/floater_customize.xml
index 7ceb7bd3ae..b27e5d22b4 100644
--- a/indra/newview/skins/default/xui/de/floater_customize.xml
+++ b/indra/newview/skins/default/xui/de/floater_customize.xml
@@ -1,534 +1,484 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="floater customize" title="Aussehen">
<tab_container name="customize tab container">
- <panel label="Körperteile" />
- <panel label="Körperteile" name="body_parts_placeholder" />
+ <panel label="Körperteile" name="body_parts_placeholder"/>
<panel label="Form" name="Shape">
- <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen"
- name="Revert" />
- <button label="Körper" label_selected="Körper" name="Body" />
- <button label="Kopf" label_selected="Kopf" name="Head" />
- <button label="Augen" label_selected="Augen" name="Eyes" />
- <button label="Ohren" label_selected="Ohren" name="Ears" />
- <button label="Nase" label_selected="Nase" name="Nose" />
- <button label="Mund" label_selected="Mund" name="Mouth" />
- <button label="Kinn" label_selected="Kinn" name="Chin" />
- <button label="Oberkörper" label_selected="Oberkörper" name="Torso" />
- <button label="Beine" label_selected="Beine" name="Legs" />
+ <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/>
+ <button label="Körper" label_selected="Körper" name="Body"/>
+ <button label="Kopf" label_selected="Kopf" name="Head"/>
+ <button label="Augen" label_selected="Augen" name="Eyes"/>
+ <button label="Ohren" label_selected="Ohren" name="Ears"/>
+ <button label="Nase" label_selected="Nase" name="Nose"/>
+ <button label="Mund" label_selected="Mund" name="Mouth"/>
+ <button label="Kinn" label_selected="Kinn" name="Chin"/>
+ <button label="Oberkörper" label_selected="Oberkörper" name="Torso"/>
+ <button label="Beine" label_selected="Beine" name="Legs"/>
<radio_group name="sex radio">
- <radio_item type="string" length="1" name="radio">
+ <radio_item length="1" name="radio" type="string">
Weiblich
</radio_item>
- <radio_item type="string" length="1" name="radio2">
+ <radio_item length="1" name="radio2" type="string">
Männlich
</radio_item>
</radio_group>
- <button label="Zufällig" label_selected="Zufällig" name="Randomize" />
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: bearbeiten nicht möglich
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: wird geladen...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: nicht getragen
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
In [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Ziehen Sie eine Körperform aus dem Inventar auf Ihren Avatar,
um sie zu tragen. Sie können auch eine neue Körperform erstellen
und diese anziehen.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
</text>
- <button label="Neue Form/Gestalt" label_selected="Neue Form/Gestalt" name="Create New" />
- <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" left="19"
- name="Take Off" />
- <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107"
- name="Save" />
- <button font="SansSerifSmall" label="Speichern unter" label_selected="Speichern unter"
- left="194" name="Save As" width="100" />
+ <text name="Item Action Label" right="100">
+ Form:
+ </text>
+ <button label="Neue Form/Gestalt" label_selected="Neue Form/Gestalt" name="Create New"/>
+ <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107" name="Save"/>
+ <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." left="194" name="Save As" width="105"/>
</panel>
<panel label="Haut" name="Skin">
- <button label="Hautfarbe" label_selected="Hautfarbe" left="2" name="Skin Color"
- width="92" />
- <button label="Gesichtsdetails" label_selected="Gesichtsdetails" left="2"
- name="Face Detail" width="92" />
- <button label="Make-Uup" label_selected="Make-Uup" left="2" name="Makeup" width="92" />
- <button label="Körperdetails" label_selected="Körperdetails" left="2"
- name="Body Detail" width="92" />
- <text type="string" length="1" name="title">
+ <button label="Hautfarbe" label_selected="Hautfarbe" left="2" name="Skin Color" width="92"/>
+ <button label="Gesichtsdetails" label_selected="Gesichtsdetails" left="2" name="Face Detail" width="92"/>
+ <button label="Make-Uup" label_selected="Make-Uup" left="2" name="Makeup" width="92"/>
+ <button label="Körperdetails" label_selected="Körperdetails" left="2" name="Body Detail" width="92"/>
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: bearbeiten nicht möglich
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: wird geladen...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: nicht getragen
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
In [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Ziehen Sie eine Haut aus dem Inventar auf Ihren Avatar,
um sie zu tragen. Sie können auch eine neue Haut erstellen
und diese anziehen.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
</text>
- <texture_picker label="Kopftattoo" name="Head Tattoos"
- tool_tip="Klicken Sie hier, um ein Bild auszuwählen" />
- <texture_picker label="Obere Tattoos" name="Upper Tattoos"
- tool_tip="Klicken Sie hier, um ein Bild auszuwählen" />
- <texture_picker label="Untere Tattoos" name="Lower Tattoos"
- tool_tip="Klicken Sie hier, um ein Bild auszuwählen" />
- <button label="Zufällig" label_selected="Zufällig" left="2" name="Randomize"
- width="92" />
- <button label="Neue Haut" label_selected="Neue Haut" name="Create New" />
- <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" left="19"
- name="Take Off" />
- <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107"
- name="Save" />
- <button font="SansSerifSmall" label="Speichern unter" label_selected="Speichern unter"
- left="194" name="Save As" width="100" />
- <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen"
- name="Revert" />
+ <text name="Item Action Label" right="100">
+ Haut:
+ </text>
+ <texture_picker label="Kopftattoo" name="Head Tattoos" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
+ <texture_picker label="Obere Tattoos" name="Upper Tattoos" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
+ <texture_picker label="Untere Tattoos" name="Lower Tattoos" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
+ <button label="Neue Haut" label_selected="Neue Haut" name="Create New"/>
+ <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107" name="Save"/>
+ <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." left="194" name="Save As" width="105"/>
+ <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/>
</panel>
<panel label="Haar" name="Hair">
- <button label="Farbe" label_selected="Farbe" name="Color" />
- <button label="Stil" label_selected="Stil" name="Style" />
- <button label="Augenbrauen" label_selected="Augenbrauen" name="Eyebrows" />
- <button label="Gesichtshaar" label_selected="Gesichtshaar" name="Facial" />
- <text type="string" length="1" name="title">
+ <button label="Farbe" label_selected="Farbe" name="Color"/>
+ <button label="Stil" label_selected="Stil" name="Style"/>
+ <button label="Augenbrauen" label_selected="Augenbrauen" name="Eyebrows"/>
+ <button label="Gesichtshaar" label_selected="Gesichtshaar" name="Facial"/>
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: bearbeiten nicht möglich
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: wird geladen...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: nicht getragen
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
In [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Ziehen Sie Haare aus dem Inventar auf Ihren Avatar,
um sie zu tragen. Sie können auch neue Haare erstellen
und diese anziehen.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
</text>
- <texture_picker label="Textur" name="Texture"
- tool_tip="Klicken Sie hier, um ein Bild auszuwählen" />
- <button label="Zufällig" label_selected="Zufällig" name="Randomize" />
- <button label="Neue Haare" label_selected="Neue Haare" name="Create New" />
- <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" left="19"
- name="Take Off" />
- <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107"
- name="Save" />
- <button font="SansSerifSmall" label="Speichern unter" label_selected="Speichern unter"
- left="194" name="Save As" width="100" />
- <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen"
- name="Revert" />
+ <text name="Item Action Label" right="100">
+ Haare:
+ </text>
+ <texture_picker label="Textur" name="Texture" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
+ <button label="Neue Haare" label_selected="Neue Haare" name="Create New"/>
+ <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107" name="Save"/>
+ <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." left="194" name="Save As" width="105"/>
+ <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/>
</panel>
<panel label="Augen" name="Eyes">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: bearbeiten nicht möglich
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: wird geladen...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: nicht getragen
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
In [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Ziehen Sie Augen aus dem Inventar auf Ihren Avatar,
um sie zu tragen. Sie können auch neue Augen erstellen
und diese anziehen.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
</text>
- <texture_picker label="Iris" name="Iris" tool_tip="Klicken Sie hier, um ein Bild auszuwählen" />
- <button label="Zufällig" label_selected="Zufällig" name="Randomize" />
- <button label="Neue Augen" label_selected="Neue Augen" name="Create New" />
- <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" left="19"
- name="Take Off" />
- <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107"
- name="Save" />
- <button font="SansSerifSmall" label="Speichern unter" label_selected="Speichern unter"
- left="194" name="Save As" width="100" />
- <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen"
- name="Revert" />
+ <text name="Item Action Label" right="100">
+ Augen:
+ </text>
+ <texture_picker label="Iris" name="Iris" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
+ <button label="Neue Augen" label_selected="Neue Augen" name="Create New"/>
+ <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107" name="Save"/>
+ <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." left="194" name="Save As" width="105"/>
+ <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/>
</panel>
- <panel label="Kleidung" />
- <panel label="Kleidung" name="clothes_placeholder" />
+ <panel label="Kleidung" name="clothes_placeholder"/>
<panel label="Hemd" name="Shirt">
- <texture_picker label="Stoff" name="Fabric"
- tool_tip="Klicken Sie hier, um ein Bild auszuwählen" />
- <color_swatch label="Farbe/Ton" name="Color/Tint"
- tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen" />
- <button label="Neues Hemd" label_selected="Neues Hemd" name="Create New" />
- <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" left="19"
- name="Take Off" />
- <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107"
- name="Save" />
- <button font="SansSerifSmall" label="Speichern unter" label_selected="Speichern unter"
- left="194" name="Save As" width="100" />
- <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen"
- name="Revert" />
- <text type="string" length="1" name="title">
+ <texture_picker label="Stoff" name="Fabric" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
+ <color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
+ <button label="Neues Hemd" label_selected="Neues Hemd" name="Create New"/>
+ <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" name="Take Off"/>
+ <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107" name="Save"/>
+ <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." left="194" name="Save As" width="105"/>
+ <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/>
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: bearbeiten nicht möglich
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: wird geladen...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: nicht getragen
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
In [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Ziehen Sie ein Hemd aus dem Inventar auf Ihren Avatar,
um es zu tragen. Sie können auch ein neues Hemd erstellen
und dieses anziehen.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
</text>
+ <text name="Item Action Label" right="100">
+ Hemd:
+ </text>
</panel>
<panel label="Hose" name="Pants">
- <texture_picker label="Stoff" name="Fabric"
- tool_tip="Klicken Sie hier, um ein Bild auszuwählen" />
- <color_swatch label="Farbe/Ton" name="Color/Tint"
- tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen" />
- <button label="Neue Hose" label_selected="Neue Hose" name="Create New" />
- <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" left="19"
- name="Take Off" />
- <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107"
- name="Save" />
- <button font="SansSerifSmall" label="Speichern unter" label_selected="Speichern unter"
- left="194" name="Save As" width="100" />
- <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen"
- name="Revert" />
- <text type="string" length="1" name="title">
+ <texture_picker label="Stoff" name="Fabric" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
+ <color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
+ <button label="Neue Hose" label_selected="Neue Hose" name="Create New"/>
+ <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" name="Take Off"/>
+ <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107" name="Save"/>
+ <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." left="194" name="Save As" width="105"/>
+ <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/>
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: bearbeiten nicht möglich
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: wird geladen...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: nicht getragen
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
In [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Ziehen Sie eine Hose aus dem Inventar auf Ihren Avatar,
um sie zu tragen. Sie können auch eine neue Hose erstellen
und diese anziehen.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
</text>
+ <text name="Item Action Label" right="100">
+ Hose:
+ </text>
</panel>
<panel label="Schuhe" name="Shoes">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: bearbeiten nicht möglich
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: wird geladen...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: nicht getragen
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
In [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Ziehen Sie Schuhe aus dem Inventar auf Ihren Avatar,
um sie zu tragen. Sie können auch neue Schuhe erstellen
und diese anziehen.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
</text>
- <texture_picker label="Stoff" name="Fabric"
- tool_tip="Klicken Sie hier, um ein Bild auszuwählen" />
- <color_swatch label="Farbe/Ton" name="Color/Tint"
- tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen" />
- <button label="Neue Schuhe" label_selected="Neue Schuhe" name="Create New" />
- <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" left="19"
- name="Take Off" />
- <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107"
- name="Save" />
- <button font="SansSerifSmall" label="Speichern unter" label_selected="Speichern unter"
- left="194" name="Save As" width="100" />
- <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen"
- name="Revert" />
+ <text name="Item Action Label" right="100">
+ Schuhe:
+ </text>
+ <texture_picker label="Stoff" name="Fabric" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
+ <color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
+ <button label="Neue Schuhe" label_selected="Neue Schuhe" name="Create New"/>
+ <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" name="Take Off"/>
+ <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107" name="Save"/>
+ <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." left="194" name="Save As" width="105"/>
+ <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/>
</panel>
<panel label="Socken" name="Socks">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: bearbeiten nicht möglich
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: wird geladen...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: nicht getragen
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
In [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Ziehen Sie Socken aus dem Inventar auf Ihren Avatar,
um sie zu tragen. Sie können auch neue Socken erstellen
und diese anziehen.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
</text>
- <texture_picker label="Stoff" name="Fabric"
- tool_tip="Klicken Sie hier, um ein Bild auszuwählen" />
- <color_swatch label="Farbe/Ton" name="Color/Tint"
- tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen" />
- <button label="Neue Socken" label_selected="Neue Socken" name="Create New" />
- <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" left="19"
- name="Take Off" />
- <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107"
- name="Save" />
- <button font="SansSerifSmall" label="Speichern unter" label_selected="Speichern unter"
- left="194" name="Save As" width="100" />
- <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen"
- name="Revert" />
+ <text name="Item Action Label" right="100">
+ Socken:
+ </text>
+ <texture_picker label="Stoff" name="Fabric" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
+ <color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
+ <button label="Neue Socken" label_selected="Neue Socken" name="Create New"/>
+ <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" name="Take Off"/>
+ <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107" name="Save"/>
+ <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." left="194" name="Save As" width="105"/>
+ <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/>
</panel>
<panel label="Jacke" name="Jacket">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: bearbeiten nicht möglich
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: wird geladen...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: nicht getragen
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
In [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Ziehen Sie eine Jacke aus dem Inventar auf Ihren Avatar,
um sie zu tragen. Sie können auch eine neue Jacke erstellen
und diese anziehen.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
</text>
- <texture_picker label="Oberstoff" name="Upper Fabric"
- tool_tip="Klicken Sie hier, um ein Bild auszuwählen" />
- <texture_picker label="Unterstoff" name="Lower Fabric"
- tool_tip="Klicken Sie hier, um ein Bild auszuwählen" />
- <color_swatch label="Farbe/Ton" name="Color/Tint"
- tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen" />
- <button label="Neue Jacke" label_selected="Neue Jacke" name="Create New" />
- <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" left="19"
- name="Take Off" />
- <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107"
- name="Save" />
- <button font="SansSerifSmall" label="Speichern unter" label_selected="Speichern unter"
- left="194" name="Save As" width="100" />
- <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen"
- name="Revert" />
+ <text name="Item Action Label" right="100">
+ Jacke:
+ </text>
+ <texture_picker label="Oberstoff" name="Upper Fabric" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
+ <texture_picker label="Unterstoff" name="Lower Fabric" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
+ <color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
+ <button label="Neue Jacke" label_selected="Neue Jacke" name="Create New"/>
+ <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" name="Take Off"/>
+ <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107" name="Save"/>
+ <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." left="194" name="Save As" width="105"/>
+ <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/>
</panel>
<panel label="Handschuhe" name="Gloves">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: bearbeiten nicht möglich
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: wird geladen...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: nicht getragen
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
In [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Ziehen Sie Handschuhe aus dem Inventar auf Ihren Avatar,
um sie zu tragen. Sie können auch neue Handschuhe erstellen
und diese anziehen.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
</text>
- <texture_picker label="Stoff" name="Fabric"
- tool_tip="Klicken Sie hier, um ein Bild auszuwählen" />
- <color_swatch label="Farbe/Ton" name="Color/Tint"
- tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen" />
- <button label="Neue Handschuhe" label_selected="Neue Handschuhe" name="Create New" />
- <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" left="19"
- name="Take Off" />
- <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107"
- name="Save" />
- <button font="SansSerifSmall" label="Speichern unter" label_selected="Speichern unter"
- left="194" name="Save As" width="100" />
- <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen"
- name="Revert" />
+ <text name="Item Action Label" right="100">
+ Handschuhe:
+ </text>
+ <texture_picker label="Stoff" name="Fabric" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
+ <color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
+ <button label="Neue Handschuhe" label_selected="Neue Handschuhe" name="Create New"/>
+ <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" name="Take Off"/>
+ <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107" name="Save"/>
+ <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." left="194" name="Save As" width="105"/>
+ <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/>
</panel>
<panel label="Unterhemd" name="Undershirt">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: bearbeiten nicht möglich
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: wird geladen...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: nicht getragen
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
In [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Ziehen Sie ein Unterhemd aus dem Inventar auf Ihren Avatar,
um es zu tragen. Sie können auch ein neues Unterhemd erstellen
und dieses anziehen.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
</text>
- <texture_picker label="Stoff" name="Fabric"
- tool_tip="Klicken Sie hier, um ein Bild auszuwählen" />
- <color_swatch label="Farbe/Ton" name="Color/Tint"
- tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen" />
- <button label="Neues Unterhemd" label_selected="Neues Unterhemd" name="Create New" />
- <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" left="19"
- name="Take Off" />
- <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107"
- name="Save" />
- <button font="SansSerifSmall" label="Speichern unter" label_selected="Speichern unter"
- left="194" name="Save As" width="100" />
- <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen"
- name="Revert" />
+ <text name="Item Action Label" right="100">
+ Unterhemd:
+ </text>
+ <texture_picker label="Stoff" name="Fabric" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
+ <color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
+ <button label="Neues Unterhemd" label_selected="Neues Unterhemd" name="Create New"/>
+ <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" name="Take Off"/>
+ <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107" name="Save"/>
+ <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." left="194" name="Save As" width="105"/>
+ <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/>
</panel>
<panel label="Unterhose" name="Underpants">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: bearbeiten nicht möglich
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: wird geladen...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: nicht getragen
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
In [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Ziehen Sie eine Unterhose aus dem Inventar auf Ihren Avatar,
um sie zu tragen. Sie können auch eine neue Unterhose erstellen
und diese anziehen.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
</text>
- <texture_picker label="Stoff" name="Fabric"
- tool_tip="Klicken Sie hier, um ein Bild auszuwählen" />
- <color_swatch label="Farbe/Ton" name="Color/Tint"
- tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen" />
- <button label="Neue Unterhose" label_selected="Neue Unterhose" name="Create New" />
- <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" left="19"
- name="Take Off" />
- <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107"
- name="Save" />
- <button font="SansSerifSmall" label="Speichern unter" label_selected="Speichern unter"
- left="194" name="Save As" width="100" />
- <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen"
- name="Revert" />
+ <text name="Item Action Label" right="100">
+ Unterhose:
+ </text>
+ <texture_picker label="Stoff" name="Fabric" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
+ <color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
+ <button label="Neue Unterhose" label_selected="Neue Unterhose" name="Create New"/>
+ <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" name="Take Off"/>
+ <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107" name="Save"/>
+ <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." left="194" name="Save As" width="105"/>
+ <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/>
</panel>
<panel label="Rock" name="Skirt">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: bearbeiten nicht möglich
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: wird geladen...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: nicht getragen
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
In [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Ziehen Sie einen Rock aus dem Inventar auf Ihren Avatar,
um ihn zu tragen. Sie können auch einen neuen Rock erstellen
und diesen anziehen.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
</text>
- <texture_picker label="Stoff" name="Fabric"
- tool_tip="Klicken Sie hier, um ein Bild auszuwählen" />
- <color_swatch label="Farbe/Ton" name="Color/Tint"
- tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen" />
- <button label="Neuer Rock" label_selected="Neuer Rock" name="Create New" />
- <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" left="19"
- name="Take Off" />
- <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107"
- name="Save" />
- <button font="SansSerifSmall" label="Speichern unter" label_selected="Speichern unter"
- left="194" name="Save As" width="100" />
- <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen"
- name="Revert" />
+ <text name="Item Action Label" right="100">
+ Rock:
+ </text>
+ <texture_picker label="Stoff" name="Fabric" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
+ <color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
+ <button label="Neuer Rock" label_selected="Neuer Rock" name="Create New"/>
+ <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" name="Take Off"/>
+ <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107" name="Save"/>
+ <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." left="194" name="Save As" width="105"/>
+ <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/>
</panel>
</tab_container>
- <button label="Outfit erstellen" label_selected="Outfit erstellen" name="Make Outfit" />
- <button label="Alles speichern" label_selected="Alles speichern" name="Save All" />
- <button label="Schließen" label_selected="Schließen" name="Close" />
+ <button label="Abbrechen" label_selected="Abbrechen" name="Cancel"/>
+ <button label="OK" label_selected="OK" name="Ok"/>
+ <button label="Outfit erstellen..." label_selected="Outfit erstellen..." name="Make Outfit" width="115"/>
</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_font_test.xml b/indra/newview/skins/default/xui/de/floater_font_test.xml
new file mode 100644
index 0000000000..54278fc094
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_font_test.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="contents" title="Schriftart-Test">
+ <text name="linea">
+ OverrideTest, sollte hier als Times angezeigt werden. (Aus default/xui/en-us)
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml
index 0028f1da13..3e79a31abd 100644
--- a/indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml
+++ b/indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml
@@ -60,12 +60,8 @@
</text>
<check_box label="Zum Verkauf" name="CheckPurchase" />
<radio_group name="RadioSaleType" left_delta="85" width="245" >
- <radio_item name="radio">
- Original
- </radio_item>
- <radio_item name="radio2">
- Kopieren
- </radio_item>
+ <radio_item name="radio" label="Original" />
+ <radio_item name="radio2" label="Kopieren" />
</radio_group>
<text name="TextPrice">
Preis: L$
diff --git a/indra/newview/skins/default/xui/de/floater_joystick.xml b/indra/newview/skins/default/xui/de/floater_joystick.xml
index bf3083a14b..407556bf2c 100644
--- a/indra/newview/skins/default/xui/de/floater_joystick.xml
+++ b/indra/newview/skins/default/xui/de/floater_joystick.xml
@@ -1,23 +1,31 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="Joystick" title="Joystick-Konfiguration">
- <check_box name="enable_joystick" width="80" >Joystick aktivieren:</check_box>
- <text name="joystick_type" left="140" width="360"></text>
- <spinner label="X-Achse" name="JoystickAxis1" />
- <spinner label="Y-Achse" name="JoystickAxis2" />
- <spinner label="Z-Achse" name="JoystickAxis0" />
- <spinner label="Neigungswinkel" name="JoystickAxis4" />
- <spinner label="Gierwinkel" name="JoystickAxis5" />
- <spinner label="Rollwinkel" name="JoystickAxis3" />
- <spinner label="Zoom" name="JoystickAxis6" />
- <check_box label="Direkt-Zoom" name="ZoomDirect" />
- <check_box label="3D-Cursor" left="300" name="Cursor3D" />
- <check_box label="Automatisch ausrichten" left="390" name="AutoLeveling" />
+ <check_box name="enable_joystick" width="80">
+ Joystick aktivieren:
+ </check_box>
+ <text left="140" name="joystick_type" width="360"/>
+ <spinner label="X-Achse" name="JoystickAxis1"/>
+ <spinner label="Y-Achse" name="JoystickAxis2"/>
+ <spinner label="Z-Achse" name="JoystickAxis0"/>
+ <spinner label="Neigungswinkel" name="JoystickAxis4"/>
+ <spinner label="Gierwinkel" name="JoystickAxis5"/>
+ <spinner label="Rollwinkel" name="JoystickAxis3"/>
+ <spinner label="Zoom" name="JoystickAxis6"/>
+ <check_box label="Direkt-Zoom" name="ZoomDirect"/>
+ <check_box label="3D-Cursor" left="300" name="Cursor3D"/>
+ <check_box label="Automatisch ausrichten" left="390" name="AutoLeveling"/>
<text name="Control Modes:">
Steuermodi:
</text>
- <check_box name="JoystickAvatarEnabled">Avatar</check_box>
- <check_box name="JoystickBuildEnabled">Bauen</check_box>
- <check_box name="JoystickFlycamEnabled">Flycam</check_box>
+ <check_box name="JoystickAvatarEnabled">
+ Avatar
+ </check_box>
+ <check_box name="JoystickBuildEnabled">
+ Bauen
+ </check_box>
+ <check_box name="JoystickFlycamEnabled">
+ Flycam
+ </check_box>
<text name="XScale">
X-Skala
</text>
@@ -63,7 +71,9 @@
<text name="ZoomDeadZone">
Zoom-Totzone
</text>
- <button label="SpaceNavigator-Standards" name="SpaceNavigatorDefaults" />
+ <button label="SpaceNavigator-Standards" name="SpaceNavigatorDefaults"/>
+ <button label="OK" label_selected="OK" name="ok_btn"/>
+ <button label="Abbrechen" label_selected="Abbrechen" name="cancel_btn"/>
<string name="JoystickMonitor">
Joystick-Monitor
</string>
diff --git a/indra/newview/skins/default/xui/de/floater_land_holdings.xml b/indra/newview/skins/default/xui/de/floater_land_holdings.xml
index 25944895a2..6854903382 100644
--- a/indra/newview/skins/default/xui/de/floater_land_holdings.xml
+++ b/indra/newview/skins/default/xui/de/floater_land_holdings.xml
@@ -1,21 +1,20 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="land holdings floater" title="Mein Land">
<scroll_list name="parcel list">
- <column label="Name" name="name" />
- <column label="Lage" name="location" />
- <column label="Gebiet" name="area" />
- <column label="" name="hidden" />
+ <column label="Parzellenname" name="name"/>
+ <column label="Region" name="location"/>
+ <column label="Typ" name="type"/>
+ <column label="Gebiet" name="area"/>
+ <column label="" name="hidden"/>
</scroll_list>
- <button label="Teleportieren" label_selected="Teleportieren" name="Teleport"
- tool_tip="Zum Mittelpunkt dieses Landes teleportieren." />
- <button label="Auf Karte" label_selected="Auf Karte" name="Show on Map"
- tool_tip="Dieses Land auf der Weltkarte anzeigen." />
+ <button label="Teleportieren" label_selected="Teleportieren" name="Teleport" tool_tip="Zum Mittelpunkt dieses Landes teleportieren."/>
+ <button label="Auf Karte" label_selected="Auf Karte" name="Show on Map" tool_tip="Dieses Land auf der Weltkarte anzeigen."/>
<text name="contrib_label">
Beiträge zu Ihren Gruppen:
</text>
<scroll_list name="grant list">
- <column label="Gruppe" name="group" />
- <column label="Gebiet" name="area" />
+ <column label="Gruppe" name="group"/>
+ <column label="Gebiet" name="area"/>
</scroll_list>
<text name="allowed_label">
Zulässiger Landbesitz bei aktuellem Zahlungsplan:
diff --git a/indra/newview/skins/default/xui/de/floater_notification.xml b/indra/newview/skins/default/xui/de/floater_notification.xml
new file mode 100644
index 0000000000..48ff900d5a
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_notification.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="notification" title="Konsole: Meldungen">
+ <text_editor name="payload">
+ Wird geladen...
+ </text_editor>
+ <combo_box label="Antwort" name="response"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_notifications_console.xml b/indra/newview/skins/default/xui/de/floater_notifications_console.xml
new file mode 100644
index 0000000000..a1cd69899c
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_notifications_console.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="notifications_console" title="Konsole: Meldungen">
+ <combo_box label="Meldungsart auswählen" name="notification_types" width="412" />
+ <button label="Hinzufügen" name="add_notification" left="417" width="78" />
+</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_perm_prefs.xml b/indra/newview/skins/default/xui/de/floater_perm_prefs.xml
new file mode 100644
index 0000000000..83ec725487
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_perm_prefs.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="perm prefs" title="Hochlade-Berechtigungen (Standard)">
+ <panel label="Berechtigungen" name="permissions">
+ <button label="?" label_selected="?" name="help"/>
+ <check_box label="Mit Gruppe teilen" name="share_with_group"/>
+ <check_box label="Kopieren allen erlauben" name="everyone_copy"/>
+ <text name="NextOwnerLabel">
+ Nächster Eigentümer kann:
+ </text>
+ <check_box label="Bearbeiten" name="next_owner_modify"/>
+ <check_box label="Kopieren" name="next_owner_copy"/>
+ <check_box label="Verkaufen/Weggeben" name="next_owner_transfer" left_delta="80"/>
+ </panel>
+ <button label="OK" label_selected="OK" name="ok"/>
+ <button label="Abbrechen" label_selected="Abbrechen" name="cancel"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_preview_gesture.xml b/indra/newview/skins/default/xui/de/floater_preview_gesture.xml
index 327d0b70f1..d72dceec90 100644
--- a/indra/newview/skins/default/xui/de/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/de/floater_preview_gesture.xml
@@ -46,12 +46,8 @@ Zeit, außer Sie fügen Warteschritte
ein.
</text>
<radio_group name="animation_trigger_type">
- <radio_item name="start">
- Start
- </radio_item>
- <radio_item name="stop">
- Stopp
- </radio_item>
+ <radio_item name="start" label="Start" />
+ <radio_item name="stop" label="Stopp" />
</radio_group>
<check_box label="bis alle Animationen beendet sind" name="wait_anim_check"/>
<check_box label="Zeit in Sekunden" name="wait_time_check"/>
diff --git a/indra/newview/skins/default/xui/de/floater_report_abuse.xml b/indra/newview/skins/default/xui/de/floater_report_abuse.xml
index ca573083fa..af7145003a 100644
--- a/indra/newview/skins/default/xui/de/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/de/floater_report_abuse.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="floater_report_abuse" title="Missbrauch melden">
<texture_picker label="" name="screenshot"/>
- <check_box label="Screenshot einschließen" name="screen_check" bottom_delta="-20"/>
+ <check_box bottom_delta="-20" label="Screenshot einschließen" name="screen_check"/>
<text name="reporter_title">
Melder:
</text>
@@ -41,9 +41,9 @@ dann auf das Objekt:
<combo_box.item name="Select_category" label="Kategorie auswählen"/>
<combo_box.item name="Age__Age_play" label="Alter&gt; Age-Play"/>
<combo_box.item name="Age__Adult_resident_on_Teen_Second_Life" label="Alter&gt; Erwachsener Einwohner in Teen Second Life"/>
-
-
-
+ <combo_item name="Age__Underage_resident_outside_of_Teen_Second_Life">
+ Alter &gt; Minderjähriger Einwohner außerhalb Teen Second Life
+ </combo_item>
<combo_box.item name="Assault__Combat_sandbox___unsafe_area" label="Angriff&gt; Kampf-Sandbox / unsichere Region"/>
<combo_box.item name="Assault__Safe_area" label="Angriff&gt; Sichere Region"/>
<combo_box.item name="Assault__Weapons_testing_sandbox" label="Angriff &gt; Sandbox für Waffentest"/>
@@ -67,13 +67,13 @@ dann auf das Objekt:
<combo_box.item name="Harassment__Solicting_inciting_others_to_violate_ToS" label="Belästigung &gt; Anstiften Dritter zur Missachtung der Nutzungsbedingungen"/>
<combo_box.item name="Harassment__Verbal_abuse" label="Belästigung &gt; Beschimpfung"/>
<combo_box.item name="Indecency__Broadly_offensive_content_or_conduct" label="Unanständigkeit &gt; Anstößige Inhalte oder Handlungen in der Öffentlichkeit"/>
-
-
-
<combo_box.item name="Indecency__Inappropriate_avatar_name" label="Unanständigkeit &gt; Anstößiger Avatarname"/>
-
-
-
+ <combo_item name="Indecency__Mature_content_in_PG_region">
+ Unanständigkeit &gt; Unangemessener Inhalt oder unangemessenes Verhalten in PG-Region
+ </combo_item>
+ <combo_item name="Indecency__Inappropriate_content_in_Mature_region">
+ Unanständigkeit &gt; Unangemessener Inhalt oder unangemessenes Verhalten in Mature-Region
+ </combo_item>
<combo_box.item name="Intellectual_property_infringement_Content_Removal" label="Urheberrechtsverletzung &gt; Entfernen von Inhalten"/>
<combo_box.item name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit" label="Urheberrechtsverletzung &gt; CopyBot oder Berechtigungs-Exploit"/>
<combo_box.item name="Intolerance" label="Intoleranz"/>
@@ -103,8 +103,8 @@ dann auf das Objekt:
Missbrauchs, relevantem Chat/IM und wählen Sie das
Objekt, wenn möglich.
</text>
- <text_editor bottom_delta="-136" height="130" name="details_edit" />
- <text name="incomplete_title" bottom_delta="-20">
+ <text_editor bottom_delta="-136" height="130" name="details_edit"/>
+ <text bottom_delta="-20" name="incomplete_title">
Hinweis: Unvollständige Meldungen werden nicht bearbeitet.
</text>
<button label="Abbrechen" label_selected="Abbrechen" name="cancel_btn"/>
diff --git a/indra/newview/skins/default/xui/de/floater_sell_land.xml b/indra/newview/skins/default/xui/de/floater_sell_land.xml
index 4bbcbe3df9..c34252d8a7 100644
--- a/indra/newview/skins/default/xui/de/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/de/floater_sell_land.xml
@@ -1,26 +1,22 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="sell land" title="Land verkaufen">
- <text bottom_delta="119" follows="top|left" font="SansSerifSmall" left="16"
- name="info_parcel_label" text_color="white" width="64">
+ <text name="info_parcel_label">
Parzelle:
</text>
- <text bottom_delta="-5" follows="top|left" font="SansSerif" height="16" left="64"
- name="info_parcel" text_color="white">
+ <text bottom_delta="-5" height="16" name="info_parcel">
PARZELLENNAME
</text>
<text name="info_size_label">
Größe:
</text>
- <text bottom_delta="-21" follows="top|left" font="SansSerif" height="32" left="56"
- name="info_size" text_color="white">
+ <text bottom_delta="-21" height="32" name="info_size">
[AREA] qm
</text>
- <text follows="top|left" font="SansSerifHuge" height="28" left="16"
- name="info_action" text_color="white" bottom_delta="-32" width="200">
+ <text height="28" name="info_action" bottom_delta="-57">
Zum Verkauf
dieser Parzelle:
</text>
- <icon bottom_delta="-76" name="step_price" />
+ <icon bottom_delta="-80" name="step_price" />
<text name="price_label">
Preis festlegen:
</text>
@@ -33,17 +29,15 @@ dieser Parzelle:
<text name="price_per_m">
([PER_METER] L$ pro Quadratmeter)
</text>
- <icon follows="top|left" height="64" image_name="badge_note.tga" left="0"
- name="step_sell_to" width="64" />
- <text bottom_delta="38" follows="top|left" height="16" left="72" name="sell_to_label"
- right="-20" text_color="white">
+ <icon height="64" left="0" name="step_sell_to" width="64" />
+ <text bottom_delta="38" left="72" name="sell_to_label" right="-20">
Land verkaufen an:
</text>
- <text follows="top|left" height="16" left="72" name="sell_to_text" bottom_delta="-16" right="-10">
+ <text height="16" left="72" name="sell_to_text" bottom_delta="-16" right="-10">
Wählen Sie, ob der Verkauf offen oder auf eine bestimmte Person
beschränkt ist.
</text>
- <combo_box follows="top|right" height="16" left="72" name="sell_to" bottom_delta="-32" width="140">
+ <combo_box height="16" left="72" name="sell_to" bottom_delta="-32" width="140">
<combo_box.item name="--selectone--" label="select one --" />
<combo_box.item name="Anyone" label="Jeder" />
<combo_box.item name="Specificuser:" label="Bestimmter Benutzer:" />
@@ -57,15 +51,11 @@ beschränkt ist.
wechseln den Eigentümer.
</text>
<radio_group bottom_delta="-58" name="sell_objects">
- <radio_item name="no">
- Nein, Objekte behalten
- </radio_item>
- <radio_item name="yes">
- Ja, Objekte mit Land verkaufen
- </radio_item>
+ <radio_item name="no" label="Nein, Objekte behalten" />
+ <radio_item name="yes" label="Ja, Objekte mit Land verkaufen" />
</radio_group>
- <button label="Objekte anzeigen" name="show_objects" />
- <text name="nag_message_label">
+ <button label="Objekte anzeigen" name="show_objects" width="116"/>
+ <text name="nag_message_label">
ACHTUNG: Verkäufe sind endgültig.
</text>
<button label="Land zum Verkauf freigeben" width="180" name="sell_btn" />
diff --git a/indra/newview/skins/default/xui/de/floater_snapshot.xml b/indra/newview/skins/default/xui/de/floater_snapshot.xml
index ffd59af64a..e94e22d9b8 100644
--- a/indra/newview/skins/default/xui/de/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/de/floater_snapshot.xml
@@ -8,7 +8,7 @@
Per E-Mail senden
</radio_item>
<radio_item name="texture">
- Im Inventar speichern (L$10)
+ Im Inventar speichern ([AMOUNT] L$)
</radio_item>
<radio_item name="local">
Auf Festplatte speichern
@@ -19,7 +19,7 @@
</text>
<button label="Foto aktualisieren" name="new_snapshot_btn"/>
<button label="Senden" name="send_btn"/>
- <button label="Speichern (L$10)" name="upload_btn"/>
+ <button label="Speichern ([AMOUNT] L$)" name="upload_btn"/>
<flyout_button label="Speichern" name="save_btn" tool_tip="Bild als Datei speichern">
<flyout_button.item name="save_item">
Speichern
diff --git a/indra/newview/skins/default/xui/de/floater_sound_preview.xml b/indra/newview/skins/default/xui/de/floater_sound_preview.xml
index cf2c979daa..1e5ac179b5 100644
--- a/indra/newview/skins/default/xui/de/floater_sound_preview.xml
+++ b/indra/newview/skins/default/xui/de/floater_sound_preview.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="Name/Description" title="sound.wav">
+<floater name="Sound Preview" title="sound.wav">
<text name="name_label">
Name:
</text>
@@ -7,22 +7,14 @@
Beschreibung:
</text>
<button label="Abbrechen" label_selected="Abbrechen" name="cancel_btn" />
- <button label="Hochladen (10 L$)" label_selected="Hochladen (10 L$)" name="ok_btn" />
+ <button label="Hochladen ([AMOUNT] L$)" label_selected="Hochladen ([AMOUNT] L$)" name="ok_btn" />
<text name="text">
Bitrate (kbit/s):
</text>
<radio_group name="bitrate">
- <radio_item name="32">
- 32
- </radio_item>
- <radio_item name="64">
- 64
- </radio_item>
- <radio_item name="96">
- 96
- </radio_item>
- <radio_item name="128">
- 128
- </radio_item>
+ <radio_item name="32" label="32" />
+ <radio_item name="64" label="64" />
+ <radio_item name="96" label="96" />
+ <radio_item name="128" label="128" />
</radio_group>
</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_statistics.xml b/indra/newview/skins/default/xui/de/floater_statistics.xml
new file mode 100644
index 0000000000..26e976a59c
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_statistics.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="stats floater" title="Statistikleiste"/>
diff --git a/indra/newview/skins/default/xui/de/floater_tools.xml b/indra/newview/skins/default/xui/de/floater_tools.xml
index 483b8c454b..cef204eb5f 100644
--- a/indra/newview/skins/default/xui/de/floater_tools.xml
+++ b/indra/newview/skins/default/xui/de/floater_tools.xml
@@ -1,89 +1,84 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="toolbox floater" title="">
- <button label="" label_selected="" name="button focus" tool_tip="Fokus" />
- <text name="tool label" />
- <button label="" label_selected="" name="button move" tool_tip="Verschieben" />
- <text left="40" name="tool label2" width="70" />
- <button label="" label_selected="" name="button edit" tool_tip="Bearbeiten" />
- <text left="92" name="tool label3" width="70" />
- <button label="" label_selected="" name="button create" tool_tip="Erstellen" />
- <text left="170" name="tool label4" width="70" />
- <button label="" label_selected="" name="button land" tool_tip="Land" />
- <text left="240" name="tool label5" />
- <radio_group name="focus_radio_group">
- <radio_item label="Zoom" name="radio zoom" />
- <radio_item label="Orbit (Strg)" name="radio orbit" />
- <radio_item label="Schwenken (Strg-Umschalt)" name="radio pan" />
- </radio_group>
- <radio_group name="move_radio_group">
- <radio_item label="Verschieben" name="radio move" />
- <radio_item label="Heben (Strg)" name="radio lift" />
- <radio_item label="Rotieren (Strg-Umschalt)" name="radio spin" />
- </radio_group>
- <radio_group name="edit_radio_group">
- <radio_item label="Position" name="radio position" />
- <radio_item label="Drehen (Strg)" name="radio rotate" />
- <radio_item label="Dehnen (Strg-Umschalt)" name="radio stretch" />
- <radio_item label="Textur auswählen" name="radio select face" />
- </radio_group>
- <check_box label="Verknüpfte Teile bearbeiten" name="checkbox edit linked parts" />
- <check_box label="Raster verwenden" name="checkbox snap to grid" />
- <button label="Optionen..." label_selected="Optionen..." name="Options..." />
- <check_box label="Beide Seiten dehnen" name="checkbox uniform" />
- <check_box label="Texturen dehnen" name="checkbox stretch textures" />
+ <button label="" label_selected="" name="button focus" tool_tip="Fokus"/>
+ <button label="" label_selected="" name="button move" tool_tip="Verschieben"/>
+ <button label="" label_selected="" name="button edit" tool_tip="Bearbeiten"/>
+ <button label="" label_selected="" name="button create" tool_tip="Erstellen"/>
+ <button label="" label_selected="" name="button land" tool_tip="Land"/>
+ <check_box label="Zoom" name="radio zoom"/>
+ <check_box label="Orbit (Strg)" name="radio orbit"/>
+ <check_box label="Schwenken (Strg-Umschalt)" name="radio pan"/>
+ <check_box label="Verschieben" name="radio move"/>
+ <check_box label="Heben (Strg)" name="radio lift"/>
+ <check_box label="Rotieren (Strg-Umschalt)" name="radio spin"/>
+ <check_box label="Position" name="radio position"/>
+ <check_box label="Drehen (Strg)" name="radio rotate"/>
+ <check_box label="Dehnen (Strg-Umschalt)" name="radio stretch"/>
+ <check_box label="Textur auswählen" name="radio select face"/>
+ <check_box label="Verknüpfte Teile bearbeiten" name="checkbox edit linked parts"/>
<text name="text ruler mode">
- Linealmodus:
+ Lineal:
</text>
+ <combo_box name="combobox grid mode">
+ <combo_item name="World">
+ Welt
+ </combo_item>
+ <combo_item name="Local">
+ Lokal
+ </combo_item>
+ <combo_item name="Reference">
+ Referenz
+ </combo_item>
+ </combo_box>
+ <check_box label="Beide Seiten dehnen" name="checkbox uniform"/>
+ <check_box label="Texturen dehnen" name="checkbox stretch textures"/>
+ <check_box label="Raster verwenden" name="checkbox snap to grid"/>
+ <button label="Optionen..." label_selected="Optionen..." name="Options..."/>
<text name="text status">
Zum Verschieben ziehen, zum Kopieren Umschalttaste-Ziehen
</text>
- <combo_box name="combobox grid mode">
- <combo_box.item name="World" label="Welt" />
- <combo_box.item name="Local" label="Lokal" />
- <combo_box.item name="Reference" label="Referenz" />
- </combo_box>
- <button label="" label_selected="" name="ToolCube" tool_tip="Würfel" />
- <button label="" label_selected="" name="ToolPrism" tool_tip="Prisma" />
- <button label="" label_selected="" name="ToolPyramid" tool_tip="Pyramide" />
- <button label="" label_selected="" name="ToolTetrahedron" tool_tip="Tetraeder" />
- <button label="" label_selected="" name="ToolCylinder" tool_tip="Zylinder" />
- <button label="" label_selected="" name="ToolHemiCylinder" tool_tip="Halbzylinder" />
- <button label="" label_selected="" name="ToolCone" tool_tip="Kegel" />
- <button label="" label_selected="" name="ToolHemiCone" tool_tip="Halbkegel" />
- <button label="" label_selected="" name="ToolSphere" tool_tip="Kugel" />
- <button label="" label_selected="" name="ToolHemiSphere" tool_tip="Halbkugel" />
- <check_box label="Kopierauswahl" name="checkbox copy selection" />
- <button label="" label_selected="" name="ToolTorus" tool_tip="Torus" />
- <button label="" label_selected="" name="ToolTube" tool_tip="Rohr" />
- <button label="" label_selected="" name="ToolRing" tool_tip="Ring" />
- <button label="" label_selected="" name="ToolTree" tool_tip="Baum" />
- <button label="" label_selected="" name="ToolGrass" tool_tip="Gras" />
- <check_box label="Tool ausgewählt lassen" name="checkbox sticky" />
- <check_box label="Kopie zentrieren" name="checkbox copy centers" />
- <check_box label="Kopie drehen" name="checkbox copy rotates" />
-
- <radio_group name="land_radio_group">
- <radio_item label="Land auswählen" name="radio select land" />
- <radio_item label="Land einebnen" name="radio flatten" />
- <radio_item label="Land anheben" name="radio raise" />
- <radio_item label="Land absenken" name="radio lower" />
- <radio_item label="Land glätten" name="radio smooth" />
- <radio_item label="Land rau machen" name="radio noise" />
- <radio_item label="Land zurückführen" name="radio revert" />
- </radio_group>
- <combo_box name="combobox brush size">
- <combo_box.item name="Small" label="Klein" />
- <combo_box.item name="Medium" label="Mittel" />
- <combo_box.item name="Large" label="Groß" />
- </combo_box>
+ <button label="" label_selected="" name="ToolCube" tool_tip="Würfel"/>
+ <button label="" label_selected="" name="ToolPrism" tool_tip="Prisma"/>
+ <button label="" label_selected="" name="ToolPyramid" tool_tip="Pyramide"/>
+ <button label="" label_selected="" name="ToolTetrahedron" tool_tip="Tetraeder"/>
+ <button label="" label_selected="" name="ToolCylinder" tool_tip="Zylinder"/>
+ <button label="" label_selected="" name="ToolHemiCylinder" tool_tip="Halbzylinder"/>
+ <button label="" label_selected="" name="ToolCone" tool_tip="Kegel"/>
+ <button label="" label_selected="" name="ToolHemiCone" tool_tip="Halbkegel"/>
+ <button label="" label_selected="" name="ToolSphere" tool_tip="Kugel"/>
+ <button label="" label_selected="" name="ToolHemiSphere" tool_tip="Halbkugel"/>
+ <button label="" label_selected="" name="ToolTorus" tool_tip="Torus"/>
+ <button label="" label_selected="" name="ToolTube" tool_tip="Rohr"/>
+ <button label="" label_selected="" name="ToolRing" tool_tip="Ring"/>
+ <button label="" label_selected="" name="ToolTree" tool_tip="Baum"/>
+ <button label="" label_selected="" name="ToolGrass" tool_tip="Gras"/>
+ <check_box label="Auswahl behalten" name="checkbox sticky"/>
+ <check_box label="Auswahl kopieren" name="checkbox copy selection"/>
+ <check_box label="Zentrieren" name="checkbox copy centers"/>
+ <check_box label="Drehen" name="checkbox copy rotates"/>
+ <check_box label="Land auswählen" name="radio select land"/>
+ <check_box label="Einebnen" name="radio flatten"/>
+ <check_box label="Anheben" name="radio raise"/>
+ <check_box label="Absenken" name="radio lower"/>
+ <check_box label="Glätten" name="radio smooth"/>
+ <check_box label="Aufrauen" name="radio noise"/>
+ <check_box label="Zurücksetzen" name="radio revert"/>
+ <button label="Übernehmen" label_selected="Übernehmen" name="button apply to selection" tool_tip="Ausgewähltes Land ändern"/>
+ <text name="Bulldozer:">
+ Planierraupe:
+ </text>
+ <text name="Dozer Size:">
+ Größe
+ </text>
<text name="Strength:">
- Stärke:
+ Stärke
+ </text>
+ <text name="obj_count">
+ Ausgewählte Objekte: [COUNT]
+ </text>
+ <text name="prim_count">
+ Primitive: [COUNT]
</text>
- <button label="Auf Auswahl anwenden" label_selected="Auf Auswahl anwenden"
- name="button apply to selection" tool_tip="Ausgewähltes Land ändern" />
- <check_box label="Eigentümer anzeigen" name="checkbox show owners" />
- <button label="Mehr &gt;&gt;" name="button more" tool_tip="Erweiterte Optionen" />
- <button label="&lt;&lt; Weniger" name="button less" tool_tip="Erweiterte Optionen" />
<tab_container name="Object Info Tabs" tab_max_width="150" tab_min_width="30">
<panel label="Allgemein" name="General">
<text name="Name:">
@@ -98,50 +93,39 @@
<text name="Creator Name">
Thrax Linden
</text>
- <button label="Profil..." label_selected="Profil..." name="button creator profile" />
+ <button label="Profil..." label_selected="Profil..." name="button creator profile"/>
<text name="Owner:">
Eigentümer:
</text>
<text name="Owner Name">
Thrax Linden
</text>
- <button label="Profil..." label_selected="Profil..." name="button owner profile" />
+ <button label="Profil..." label_selected="Profil..." name="button owner profile"/>
<text name="Group:">
Gruppe:
</text>
<text name="Group Name Proxy">
Die Lindens
</text>
- <button label="Festlegen..." label_selected="Festlegen..." name="button set group" />
- <text name="prim info">
- 1 Objekt, 1 Primitivum
- </text>
+ <button label="Festlegen..." label_selected="Festlegen..." name="button set group"/>
<text name="Permissions:">
Berechtigungen:
</text>
<text name="perm_modify">
Sie können dieses Objekt ändern.
</text>
- <check_box label="Mit Gruppe teilen" left="6" name="checkbox share with group"
- tool_tip="Gruppenmitgliedern Verschieben, Ändern, Kopieren und Löschen gestatten." />
- <text name="text deed continued">
+ <check_box label="Mit Gruppe teilen" left="6" name="checkbox share with group" tool_tip="Allen Mitgliedern der zugeordneten Gruppe die Erlaubnis erteilen, Ihre Berechtigungen für dieses Objekt zu teilen und zu verwenden. Sie müssen Übereignen, um Rollenbeschränkungen zu aktivieren."/>
+ <string name="text deed continued">
Übertragung...
- </text>
- <text name="text deed">
+ </string>
+ <string name="text deed">
Übertragung
- </text>
- <button label="Übertragung..." label_selected="Übertragung..." name="button deed"
- tool_tip="In der Gruppe gemeinsam verwendete Objekte können von einem Gruppenfunktionär übertragen werden." />
- <check_box label="Verschieben durch beliebige Personen zulassen" left="6"
- name="checkbox allow everyone move" />
- <check_box label="Kopieren durch beliebige Personen zulassen" left="6"
- name="checkbox allow everyone copy" />
- <check_box label="In Suche anzeigen" left="6" name="search_check"
- tool_tip="Dieses Objekt in Suchergebnissen anzeigen" />
- <check_box label="Zu verkaufen" left="6" name="checkbox for sale" />
- <text name="Price: L$">
- Preis: L$
- </text>
+ </string>
+ <button label="Übertragung..." label_selected="Übertragung..." name="button deed" tool_tip="In der Gruppe gemeinsam verwendete Objekte können von einem Gruppenfunktionär übertragen werden."/>
+ <check_box label="Verschieben durch beliebige Personen zulassen" left="6" name="checkbox allow everyone move"/>
+ <check_box label="Kopieren durch beliebige Personen zulassen" left="6" name="checkbox allow everyone copy"/>
+ <check_box label="In Suche anzeigen" left="6" name="search_check" tool_tip="Dieses Objekt in Suchergebnissen anzeigen"/>
+ <check_box label="Zu verkaufen" left="6" name="checkbox for sale"/>
<text name="Cost">
Preis:L$
</text>
@@ -159,20 +143,34 @@
<text name="Next owner can:">
Nächster Eigentümer kann:
</text>
- <check_box label="Ändern" name="checkbox next owner can modify" />
- <check_box label="Kopieren" name="checkbox next owner can copy" />
- <check_box label="Wiederverkaufen" left_delta="75" name="checkbox next owner can transfer" />
+ <check_box label="Ändern" name="checkbox next owner can modify"/>
+ <check_box label="Kopieren" name="checkbox next owner can copy"/>
+ <check_box label="Wiederverkaufen" left_delta="75" name="checkbox next owner can transfer"/>
<text name="label click action">
Bei Linksklicken:
</text>
<combo_box name="clickaction" width="178">
- <combo_box.item name="Touch/grab(default)" label="Berühren/Greifen (Standard)" />
- <combo_box.item name="Sitonobject" label="Auf Objekt sitzen" />
- <combo_box.item name="Buyobject" label="Objekt kaufen" />
- <combo_box.item name="Payobject" label="Objekt bezahlen" />
- <combo_box.item name="Open" label="Öffnen" />
- <combo_box.item name="Play" label="Parzellenmedien wiedergeben" />
- <combo_box.item name="Opemmedia" label="Parzellenmedien öffnen" />
+ <combo_item name="Touch/grab(default)">
+ Berühren/Greifen (Standard)
+ </combo_item>
+ <combo_item name="Sitonobject">
+ Auf Objekt sitzen
+ </combo_item>
+ <combo_item name="Buyobject">
+ Objekt kaufen
+ </combo_item>
+ <combo_item name="Payobject">
+ Objekt bezahlen
+ </combo_item>
+ <combo_item name="Open">
+ Öffnen
+ </combo_item>
+ <combo_item name="Play">
+ Parzellenmedien wiedergeben
+ </combo_item>
+ <combo_item name="Opemmedia">
+ Parzellenmedien öffnen
+ </combo_item>
</combo_box>
<text name="B:">
B:
@@ -192,21 +190,21 @@
<text name="F:">
F:
</text>
- <text name="text modify info 1">
+ <string name="text modify info 1">
Sie können dieses Objekt ändern.
- </text>
- <text name="text modify info 2">
+ </string>
+ <string name="text modify info 2">
Sie können diese Objekte ändern.
- </text>
- <text name="text modify info 3">
+ </string>
+ <string name="text modify info 3">
Sie können dieses Objekt nicht ändern.
- </text>
- <text name="text modify info 4">
+ </string>
+ <string name="text modify info 4">
Sie können diese Objekte nicht ändern.
- </text>
- <text name="text modify warning">
+ </string>
+ <string name="text modify warning">
Gesamtes Objekt muss gewählt werden, um Berechtigungen festzulegen.
- </text>
+ </string>
<string name="Cost Default">
Preis:L$
</string>
@@ -230,132 +228,177 @@
<text name="edit_object">
Objektparameter bearbeiten:
</text>
- <check_box label="Gesperrt" name="checkbox locked"
- tool_tip="Verhindert, dass Objekt verschoben oder gelöscht wird. Oft beim Bauen nützlich, um unbeabsichtigte Bearbeitungen zu vermeiden." />
- <check_box label="Physisch" name="Physical Checkbox Ctrl"
- tool_tip="Gestattet, das Objekt geschoben und von Schwerkraft beeinflusst wird" />
- <check_box label="Temporär" name="Temporary Checkbox Ctrl"
- tool_tip="Verursacht, dass Objekt 1 Minute nach Erstellung gelöscht wird." />
- <check_box label="Phantom" name="Phantom Checkbox Ctrl"
- tool_tip="Verursacht, dass Objekt nicht mit anderen Objekten oder Avataren kollidiert" />
+ <check_box label="Gesperrt" name="checkbox locked" tool_tip="Verhindert, dass Objekt verschoben oder gelöscht wird. Oft beim Bauen nützlich, um unbeabsichtigte Bearbeitungen zu vermeiden."/>
+ <check_box label="Physisch" name="Physical Checkbox Ctrl" tool_tip="Gestattet, das Objekt geschoben und von Schwerkraft beeinflusst wird"/>
+ <check_box label="Temporär" name="Temporary Checkbox Ctrl" tool_tip="Verursacht, dass Objekt 1 Minute nach Erstellung gelöscht wird."/>
+ <check_box label="Phantom" name="Phantom Checkbox Ctrl" tool_tip="Verursacht, dass Objekt nicht mit anderen Objekten oder Avataren kollidiert"/>
<text name="label position">
Position (Meter)
</text>
- <spinner label="X" name="Pos X" />
- <spinner label="Y" name="Pos Y" />
- <spinner label="Z" name="Pos Z" />
+ <spinner label="X" name="Pos X"/>
+ <spinner label="Y" name="Pos Y"/>
+ <spinner label="Z" name="Pos Z"/>
<text name="label size">
Größe (Meter)
</text>
- <spinner label="X" name="Scale X" />
- <spinner label="Y" name="Scale Y" />
- <spinner label="Z" name="Scale Z" />
+ <spinner label="X" name="Scale X"/>
+ <spinner label="Y" name="Scale Y"/>
+ <spinner label="Z" name="Scale Z"/>
<text name="label rotation">
Rotation (Grad)
</text>
- <spinner label="X" name="Rot X" />
- <spinner label="Y" name="Rot Y" />
- <spinner label="Z" name="Rot Z" />
+ <spinner label="X" name="Rot X"/>
+ <spinner label="Y" name="Rot Y"/>
+ <spinner label="Z" name="Rot Z"/>
<text name="label material">
Material
</text>
<combo_box name="material">
- <combo_box.item name="Stone" label="Stein" />
- <combo_box.item name="Metal" label="Metall" />
- <combo_box.item name="Glass" label="Glas" />
- <combo_box.item name="Wood" label="Holz" />
- <combo_box.item name="Flesh" label="Fleisch" />
- <combo_box.item name="Plastic" label="Kunststoff" />
- <combo_box.item name="Rubber" label="Gummi" />
+ <combo_item name="Stone">
+ Stein
+ </combo_item>
+ <combo_item name="Metal">
+ Metall
+ </combo_item>
+ <combo_item name="Glass">
+ Glas
+ </combo_item>
+ <combo_item name="Wood">
+ Holz
+ </combo_item>
+ <combo_item name="Flesh">
+ Fleisch
+ </combo_item>
+ <combo_item name="Plastic">
+ Kunststoff
+ </combo_item>
+ <combo_item name="Rubber">
+ Gummi
+ </combo_item>
</combo_box>
<text left="115" name="label basetype">
Bausteintyp
</text>
<combo_box left="115" name="comboBaseType">
- <combo_box.item name="Box" label="Quader" />
- <combo_box.item name="Cylinder" label="Zylinder" />
- <combo_box.item name="Prism" label="Prisma" />
- <combo_box.item name="Sphere" label="Kugel" />
- <combo_box.item name="Torus" label="Torus" />
- <combo_box.item name="Tube" label="Rohr" />
- <combo_box.item name="Ring" label="Ring" />
- <combo_box.item name="Sculpted" label="Geformt" />
+ <combo_item name="Box">
+ Quader
+ </combo_item>
+ <combo_item name="Cylinder">
+ Zylinder
+ </combo_item>
+ <combo_item name="Prism">
+ Prisma
+ </combo_item>
+ <combo_item name="Sphere">
+ Kugel
+ </combo_item>
+ <combo_item name="Torus">
+ Torus
+ </combo_item>
+ <combo_item name="Tube">
+ Rohr
+ </combo_item>
+ <combo_item name="Ring">
+ Ring
+ </combo_item>
+ <combo_item name="Sculpted">
+ Geformt
+ </combo_item>
</combo_box>
<text left="115" name="text cut" width="146">
Pfadschnitt Beginn und Ende
</text>
- <spinner label="B" left="115" name="cut begin" />
- <spinner label="E" left="115" name="cut end" />
+ <spinner label="B" left="115" name="cut begin"/>
+ <spinner label="E" left="115" name="cut end"/>
<text left="115" name="text hollow">
Hohl
</text>
<text left="115" name="text skew">
Versatz
</text>
- <spinner left="115" name="Scale 1" />
- <spinner left="115" name="Skew" />
+ <spinner left="115" name="Scale 1"/>
+ <spinner left="115" name="Skew"/>
<text left="115" name="Hollow Shape">
Hohlform
</text>
<combo_box left="115" name="hole">
- <combo_box.item name="Default" label="Standard" />
- <combo_box.item name="Circle" label="Kreis" />
- <combo_box.item name="Square" label="Quadrat" />
- <combo_box.item name="Triangle" label="Dreieck" />
+ <combo_item name="Default">
+ Standard
+ </combo_item>
+ <combo_item name="Circle">
+ Kreis
+ </combo_item>
+ <combo_item name="Square">
+ Quadrat
+ </combo_item>
+ <combo_item name="Triangle">
+ Dreieck
+ </combo_item>
</combo_box>
<text left="115" name="text twist">
Torsion
</text>
- <spinner label="B" left="115" name="Twist Begin" />
- <spinner label="E" left="115" name="Twist End" />
+ <spinner label="B" left="115" name="Twist Begin"/>
+ <spinner label="E" left="115" name="Twist End"/>
<text left="115" name="scale_taper">
Verjüngung
</text>
<text left="115" name="scale_hole">
Lochgröße
</text>
- <spinner label="X" left="115" name="Taper Scale X" />
- <spinner label="Y" left="115" name="Taper Scale Y" />
+ <spinner label="X" left="115" name="Taper Scale X"/>
+ <spinner label="Y" left="115" name="Taper Scale Y"/>
<text left="115" name="text topshear">
Verscherung
</text>
- <spinner label="X" left="115" name="Shear X" />
- <spinner label="Y" left="115" name="Shear Y" />
- <text name="advanced_cut" left="115" width="153">
+ <spinner label="X" left="115" name="Shear X"/>
+ <spinner label="Y" left="115" name="Shear Y"/>
+ <text left="115" name="advanced_cut" width="153">
Profilschnitt-Beginn und Ende
</text>
- <text name="advanced_dimple" left="115">
+ <text left="115" name="advanced_dimple">
Vertiefung-Beginn und Ende
</text>
- <spinner label="B" name="Path Limit Begin" left="115"/>
- <spinner label="E" name="Path Limit End" />
- <text name="text taper2" left="115">
+ <text name="advanced_slice">
+ Anfang/Ende abschneiden
+ </text>
+ <spinner label="B" left="115" name="Path Limit Begin"/>
+ <spinner label="E" name="Path Limit End"/>
+ <text left="115" name="text taper2">
Verjüngung
</text>
- <spinner label="X" name="Taper X" left="115"/>
- <spinner label="Y" name="Taper Y" />
- <text name="text radius delta" left="115">
+ <spinner label="X" left="115" name="Taper X"/>
+ <spinner label="Y" name="Taper Y"/>
+ <text left="115" name="text radius delta">
Radius
</text>
<text name="text revolutions" width="74">
Umdrehungen
</text>
- <spinner left="115" name="Radius Offset" />
- <texture_picker label="Textur für gestaltetes &#10;Primitiv" name="sculpt texture control"
- tool_tip="Klicken Sie hier, um ein Bild auszuwählen" />
- <check_box label="Spiegeln" name="sculpt mirror control"
- tool_tip="Geformtes Primitiv entlang der X-Achse spiegeln." bottom_delta="-34" />
- <check_box label="Wenden" name="sculpt invert control"
- tool_tip="Dreht die Normalen des geformten Primitivs von innen nach außen." />
+ <spinner left="115" name="Radius Offset"/>
+ <texture_picker label="Textur für gestaltetes
+Primitiv" name="sculpt texture control" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
+ <check_box bottom_delta="-34" label="Spiegeln" name="sculpt mirror control" tool_tip="Geformtes Primitiv entlang der X-Achse spiegeln."/>
+ <check_box label="Wenden" name="sculpt invert control" tool_tip="Dreht die Normalen des geformten Primitivs von innen nach außen."/>
<text name="label sculpt type">
Naht
</text>
<combo_box name="sculpt type control">
- <combo_box.item name="None" label="keiner)" />
- <combo_box.item name="Sphere" label="Kugel" />
- <combo_box.item name="Torus" label="Torus" />
- <combo_box.item name="Plane" label="Fläche" />
- <combo_box.item name="Cylinder" label="Zylinder" />
+ <combo_item name="None">
+ (keiner)
+ </combo_item>
+ <combo_item name="Sphere">
+ Kugel
+ </combo_item>
+ <combo_item name="Torus">
+ Torus
+ </combo_item>
+ <combo_item name="Plane">
+ Fläche
+ </combo_item>
+ <combo_item name="Cylinder">
+ Zylinder
+ </combo_item>
</combo_box>
</panel>
<panel label="Eigenschaften" name="Features">
@@ -365,165 +408,218 @@
<text name="edit_object">
Objekteigenschaften bearbeiten:
</text>
- <check_box label="Flexibler Weg" name="Flexible1D Checkbox Ctrl"
- tool_tip="Gestattet, dass Objekt um die Z-Achse gebogen wird. (nur Client-Seite)" />
- <spinner label="Weichheit" name="FlexNumSections" />
- <spinner label="Schwerkraft" name="FlexGravity" />
- <spinner label="Ziehen" name="FlexFriction" />
- <spinner label="Wind" name="FlexWind" />
- <spinner label="Spannung" name="FlexTension" />
- <spinner label="Erzwingen X" name="FlexForceX" />
- <spinner label="Erzwingen Y" name="FlexForceY" />
- <spinner label="Erzwingen Z" name="FlexForceZ" />
- <check_box label="Licht" name="Light Checkbox Ctrl"
- tool_tip="Verursacht, dass Objekt Licht emittiert" />
+ <check_box label="Flexibler Weg" name="Flexible1D Checkbox Ctrl" tool_tip="Gestattet, dass Objekt um die Z-Achse gebogen wird. (nur Client-Seite)"/>
+ <spinner label="Weichheit" name="FlexNumSections"/>
+ <spinner label="Schwerkraft" name="FlexGravity"/>
+ <spinner label="Ziehen" name="FlexFriction"/>
+ <spinner label="Wind" name="FlexWind"/>
+ <spinner label="Spannung" name="FlexTension"/>
+ <spinner label="Erzwingen X" name="FlexForceX"/>
+ <spinner label="Erzwingen Y" name="FlexForceY"/>
+ <spinner label="Erzwingen Z" name="FlexForceZ"/>
+ <check_box label="Licht" name="Light Checkbox Ctrl" tool_tip="Verursacht, dass Objekt Licht emittiert"/>
<text name="label color">
Farbe
</text>
- <color_swatch label="" name="colorswatch" tool_tip="Klicken, um Farbauswahl zu öffnen" />
- <spinner label="Intensität" name="Light Intensity" />
- <spinner label="Radius" name="Light Radius" />
- <spinner label="Abnehmend" name="Light Falloff" />
+ <color_swatch label="" name="colorswatch" tool_tip="Klicken, um Farbauswahl zu öffnen"/>
+ <spinner label="Intensität" name="Light Intensity"/>
+ <spinner label="Radius" name="Light Radius"/>
+ <spinner label="Abnehmend" name="Light Falloff"/>
</panel>
<panel label="Textur" name="Texture">
- <texture_picker label="Textur" name="texture control"
- tool_tip="Klicken, um ein Bild zu wählen" />
- <color_swatch label="Farbe" name="colorswatch" tool_tip="Klicken, um Farbauswahl zu öffnen" />
+ <texture_picker label="Textur" name="texture control" tool_tip="Klicken, um ein Bild zu wählen"/>
+ <color_swatch label="Farbe" name="colorswatch" tool_tip="Klicken, um Farbauswahl zu öffnen"/>
<text name="color trans">
Transparenz %
</text>
<text name="glow label">
Leuchten
</text>
- <check_box label="Ganz hell" name="checkbox fullbright" />
+ <check_box label="Ganz hell" name="checkbox fullbright"/>
<text name="tex gen">
Zuordnung
</text>
<combo_box name="combobox texgen">
- <combo_box.item name="Default" label="Standard" />
- <combo_box.item name="Planar" label="Eben" />
+ <combo_item name="Default">
+ Standard
+ </combo_item>
+ <combo_item name="Planar">
+ Eben
+ </combo_item>
</combo_box>
<text name="label shininess">
Glanz
</text>
<combo_box name="combobox shininess">
- <combo_box.item name="None" label="Kein" />
- <combo_box.item name="Low" label="Niedrig" />
- <combo_box.item name="Medium" label="Mittel" />
- <combo_box.item name="High" label="Hoch" />
+ <combo_item name="None">
+ Kein
+ </combo_item>
+ <combo_item name="Low">
+ Niedrig
+ </combo_item>
+ <combo_item name="Medium">
+ Mittel
+ </combo_item>
+ <combo_item name="High">
+ Hoch
+ </combo_item>
</combo_box>
<text name="label bumpiness">
Holprigkeit
</text>
<combo_box name="combobox bumpiness">
- <combo_box.item name="None" label="Keine" />
- <combo_box.item name="Brightness" label="Helligkeit" />
- <combo_box.item name="Darkness" label="Dunkelheit" />
- <combo_box.item name="woodgrain" label="Holzmaserung" />
- <combo_box.item name="bark" label="Rinde" />
- <combo_box.item name="bricks" label="Ziegel" />
- <combo_box.item name="checker" label="Karo" />
- <combo_box.item name="concrete" label="Beton" />
- <combo_box.item name="crustytile" label="verkrustete Fliesen" />
- <combo_box.item name="cutstone" label="Steinplatten" />
- <combo_box.item name="discs" label="Scheiben" />
- <combo_box.item name="gravel" label="Kies" />
- <combo_box.item name="petridish" label="Petrischale" />
- <combo_box.item name="siding" label="Verkleidung" />
- <combo_box.item name="stonetile" label="Steinfliesen" />
- <combo_box.item name="stucco" label="Stuck" />
- <combo_box.item name="suction" label="Saugen" />
- <combo_box.item name="weave" label="gewoben" />
+ <combo_item name="None">
+ Keine
+ </combo_item>
+ <combo_item name="Brightness">
+ Helligkeit
+ </combo_item>
+ <combo_item name="Darkness">
+ Dunkelheit
+ </combo_item>
+ <combo_item name="woodgrain">
+ Holzmaserung
+ </combo_item>
+ <combo_item name="bark">
+ Rinde
+ </combo_item>
+ <combo_item name="bricks">
+ Ziegel
+ </combo_item>
+ <combo_item name="checker">
+ Karo
+ </combo_item>
+ <combo_item name="concrete">
+ Beton
+ </combo_item>
+ <combo_item name="crustytile">
+ verkrustete Fliesen
+ </combo_item>
+ <combo_item name="cutstone">
+ Steinplatten
+ </combo_item>
+ <combo_item name="discs">
+ Scheiben
+ </combo_item>
+ <combo_item name="gravel">
+ Kies
+ </combo_item>
+ <combo_item name="petridish">
+ Petrischale
+ </combo_item>
+ <combo_item name="siding">
+ Verkleidung
+ </combo_item>
+ <combo_item name="stonetile">
+ Steinfliesen
+ </combo_item>
+ <combo_item name="stucco">
+ Stuck
+ </combo_item>
+ <combo_item name="suction">
+ Saugen
+ </combo_item>
+ <combo_item name="weave">
+ gewoben
+ </combo_item>
</combo_box>
<text name="tex scale">
Wiederholungen
</text>
- <spinner label="Horizontal (U)" name="TexScaleU" />
- <check_box label="Umkehren" name="checkbox flip s" />
- <spinner label="Vertikal (V)" name="TexScaleV" />
- <check_box label="Umkehren" name="checkbox flip t" />
+ <spinner label="Horizontal (U)" name="TexScaleU"/>
+ <check_box label="Umkehren" name="checkbox flip s"/>
+ <spinner label="Vertikal (V)" name="TexScaleV"/>
+ <check_box label="Umkehren" name="checkbox flip t"/>
<text name="tex rotate">
Rotation (Grad)
</text>
- <text name="string repeats per meter">
+ <string name="string repeats per meter">
Kacheln pro Meter
- </text>
- <text name="string repeats per face">
+ </string>
+ <string name="string repeats per face">
Wiederholungen pro Fläche
- </text>
+ </string>
<text name="rpt">
Kacheln pro Meter
</text>
- <button label="Übernehmen" label_selected="Übernehmen" name="button apply" />
+ <button label="Übernehmen" label_selected="Übernehmen" name="button apply"/>
<text name="tex offset">
Versatz
</text>
- <spinner label="Horizontal (U)" name="TexOffsetU" />
- <spinner label="Vertikal (V)" name="TexOffsetV" />
+ <spinner label="Horizontal (U)" name="TexOffsetU"/>
+ <spinner label="Vertikal (V)" name="TexOffsetV"/>
<text name="textbox autofix">
Medientextur ausrichten
(zuerst laden)
</text>
- <button label="Ausrichten" label_selected="Ausrichten" name="button align" />
+ <button label="Ausrichten" label_selected="Ausrichten" name="button align"/>
</panel>
<panel label="Inhalt" name="Contents">
- <button label="Neues Skript..." label_selected="Neues Skript..."
- name="button new script" />
+ <button label="Neues Skript" label_selected="Neues Skript..." name="button new script"/>
+ <button label="Berechtigungen..." name="button permissions" width="118"/>
</panel>
</tab_container>
<panel name="land info panel">
+ <text name="label_parcel_info">
+ Parzelleninformation
+ </text>
<text name="label_area_price">
Preis: L$ [PRICE] für [AREA] m2.
</text>
<text name="label_area">
Fläche: [AREA] m2
</text>
- <button label="Land kaufen..." label_selected="Land kaufen..." name="button buy land" width="110" />
- <button label="Land aufgeben..." label_selected="Land aufgeben..." width="110"
- name="button abandon land" />
- <button label="Unterteilen..." label_selected="Unterteilen..." width="110"
- name="button subdivide land" />
- <button label="Zusammenlegen" label_selected="Zusammenlegen" name="button join land" width="110" />
- <button label="Info zu Land..." label_selected="Info zu Land..." width="110"
- name="button about land" />
+ <button label="Info zu Land..." label_selected="Info zu Land..." name="button about land" width="110"/>
+ <check_box label="Eigentümer anzeigen" name="checkbox show owners" tool_tip="Parzellen nach Eigentümer farbig kennzeichnen"/>
+ <button label="?" label_selected="?" name="button show owners help" left_delta="130"/>
+ <text name="label_parcel_modify">
+ Parzelle ändern
+ </text>
+ <button label="Unterteilen..." label_selected="Unterteilen..." name="button subdivide land" width="110"/>
+ <button label="Zusammenlegen" label_selected="Zusammenlegen" name="button join land" width="110"/>
+ <text name="label_parcel_trans">
+ Land-Transaktionen
+ </text>
+ <button label="Land kaufen..." label_selected="Land kaufen..." name="button buy land" width="110"/>
+ <button label="Land aufgeben..." label_selected="Land aufgeben..." name="button abandon land" width="110"/>
</panel>
- <text name="status_rotate">
+ <string name="status_rotate">
An den farbigen Bändern ziehen, um das Objekt zu drehen
- </text>
- <text name="status_scale">
+ </string>
+ <string name="status_scale">
Klicken und ziehen, um die ausgewählte Seite zu dehnen
- </text>
- <text name="status_move">
+ </string>
+ <string name="status_move">
Maus verschiebt, Umschalt-Taste und Maus kopiert
- </text>
- <text name="status_modifyland">
+ </string>
+ <string name="status_modifyland">
Klicken und halten, um das Land zu bearbeiten
- </text>
- <text name="status_camera">
+ </string>
+ <string name="status_camera">
Klicken und ziehen, um die Ansicht zu ändern
- </text>
- <text name="status_grab">
- Objekt neu positionieren
- </text>
- <text name="status_place">
- Mausklick erstellt, Umschalt-Mausklick wählt aus
- </text>
- <text name="status_selectland">
+ </string>
+ <string name="status_grab">
+ Ziehen, um Objekte zu verschieben, Strg zum Heben, Strg-Umschalt zum Drehen
+ </string>
+ <string name="status_place">
+ Inworld klicken, um zu bauen.
+ </string>
+ <string name="status_selectland">
Klicken und ziehen, um Land auszuwählen
- </text>
- <text name="grid_screen_text">
+ </string>
+ <string name="grid_screen_text">
Bildschirm
- </text>
- <text name="grid_local_text">
+ </string>
+ <string name="grid_local_text">
Lokal
- </text>
- <text name="grid_world_text">
+ </string>
+ <string name="grid_world_text">
Welt
- </text>
- <text name="grid_reference_text">
+ </string>
+ <string name="grid_reference_text">
Referenz
- </text>
- <text name="grid_attachment_text">
+ </string>
+ <string name="grid_attachment_text">
Anhang
- </text>
+ </string>
</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_tos.xml b/indra/newview/skins/default/xui/de/floater_tos.xml
index 42f48fad4d..780dc29edc 100644
--- a/indra/newview/skins/default/xui/de/floater_tos.xml
+++ b/indra/newview/skins/default/xui/de/floater_tos.xml
@@ -3,12 +3,8 @@
<button label="Weiter" label_selected="Weiter" name="Continue" />
<button label="Abbrechen" label_selected="Abbrechen" name="Cancel" />
<radio_group name="tos_agreement">
- <radio_item name="radio_disagree">
- Ich stimme den Nutzungsbedingungen nicht zu
- </radio_item>
- <radio_item name="radio_agree">
- Ich stimme den Nutzungsbedingungen zu
- </radio_item>
+ <radio_item name="radio_disagree" label="Ich stimme den Nutzungsbedingungen nicht zu" />
+ <radio_item name="radio_agree" label="Ich stimme den Nutzungsbedingungen zu" />
</radio_group>
<text name="tos_title">
Nutzungsvereinbarung
diff --git a/indra/newview/skins/default/xui/de/floater_world_map.xml b/indra/newview/skins/default/xui/de/floater_world_map.xml
index 52f87fc32b..555b78b837 100644
--- a/indra/newview/skins/default/xui/de/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/de/floater_world_map.xml
@@ -4,43 +4,29 @@
<panel label="Objekte" name="objects_mapview"/>
<panel label="Terrain" name="terrain_mapview"/>
</tab_container>
- <text font="SansSerifSmall" name="land_for_sale_label">
- Land erhaeltlich
- </text>
- <text name="auction_label">
- Auktion
- </text>
<text name="you_label">
Sie
</text>
<text name="home_label">
Zuhause
</text>
- <button label="Nach Hause" label_selected="Nach Hause" name="Go Home" tool_tip="Nach Hause teleportieren"/>
- <text name="person_label">
- Person
- </text>
- <check_box label=" " name="people_chk"/>
- <text name="infohub_label">
- Infohub
- </text>
- <check_box label=" " name="infohub_chk"/>
- <text name="telehub_label">
- Telehub
+ <text name="auction_label">
+ Auktion
</text>
- <check_box label=" " name="telehubchk"/>
- <text font="SansSerifSmall" name="land_for_sale_label2">
+ <text font="SansSerifSmall" name="land_for_sale_label">
Land erhaeltlich
</text>
- <check_box label=" " name="land_for_sale_chk"/>
+ <button label="Nach Hause" label_selected="Nach Hause" name="Go Home" tool_tip="Nach Hause teleportieren"/>
+ <check_box label="Einwohner" name="people_chk"/>
+ <check_box label="Infohub" name="infohub_chk"/>
+ <check_box label="Telehub" name="telehubchk"/>
+ <check_box label="Land zu verkaufen" name="land_for_sale_chk"/>
<text name="events_label">
- Events
+ Events:
</text>
- <check_box label=" " name="event_chk"/>
-
-
-
- <check_box label=" " name="event_mature_chk"/>
+ <check_box label="PG" name="event_chk"/>
+ <check_box label="Mature" name="event_mature_chk"/>
+ <check_box label="Adult" name="event_adult_chk"/>
<combo_box label="Online-Freunde" name="friend combo" tool_tip="Freund, der auf Karte angezeigt werden soll">
<combo_box.item name="none_selected" label="Online-Freunde" />
</combo_box>
diff --git a/indra/newview/skins/default/xui/de/menu_inventory.xml b/indra/newview/skins/default/xui/de/menu_inventory.xml
index 97b47dd569..e05b2e9f1a 100644
--- a/indra/newview/skins/default/xui/de/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/de/menu_inventory.xml
@@ -1,65 +1,66 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="Popup">
- <menu_item_call label="Kaufen" name="Task Buy" />
- <menu_item_call label="Öffnen" name="Task Open" />
- <menu_item_call label="Wiedergeben/Abspielen" name="Task Play" />
- <menu_item_call label="Eigenschaften" name="Task Properties" />
- <menu_item_call label="Umbenennen" name="Task Rename" />
- <menu_item_call label="Löschen" name="Task Remove" />
- <menu_item_call label="Papierkorb ausleeren" name="Empty Trash" />
- <menu_item_call label="Fundstücke ausleeren" name="Empty Lost And Found" />
- <menu_item_call label="Neuer Ordner" name="New Folder" />
- <menu_item_call label="Neues Skript" name="New Script" />
- <menu_item_call label="Neue Notiz" name="New Note" />
- <menu_item_call label="Neue Geste" name="New Gesture" />
+ <menu_item_call label="Kaufen" name="Task Buy"/>
+ <menu_item_call label="Öffnen" name="Task Open"/>
+ <menu_item_call label="Wiedergeben/Abspielen" name="Task Play"/>
+ <menu_item_call label="Eigenschaften" name="Task Properties"/>
+ <menu_item_call label="Umbenennen" name="Task Rename"/>
+ <menu_item_call label="Löschen" name="Task Remove"/>
+ <menu_item_call label="Papierkorb ausleeren" name="Empty Trash"/>
+ <menu_item_call label="Fundstücke ausleeren" name="Empty Lost And Found"/>
+ <menu_item_call label="Neuer Ordner" name="New Folder"/>
+ <menu_item_call label="Neues Skript" name="New Script"/>
+ <menu_item_call label="Neue Notiz" name="New Note"/>
+ <menu_item_call label="Neue Geste" name="New Gesture"/>
<menu name="New Clothes">
- <menu_item_call label="Neues Hemd" name="New Shirt" />
- <menu_item_call label="Neue Hose" name="New Pants" />
- <menu_item_call label="Neue Schuhe" name="New Shoes" />
- <menu_item_call label="Neue Socken" name="New Socks" />
- <menu_item_call label="Neue Jacke" name="New Jacket" />
- <menu_item_call label="Neuer Rock" name="New Skirt" />
- <menu_item_call label="Neue Handschuhe" name="New Gloves" />
- <menu_item_call label="Neues Unterhemd" name="New Undershirt" />
- <menu_item_call label="Neue Unterhose" name="New Underpants" />
+ <menu_item_call label="Neues Hemd" name="New Shirt"/>
+ <menu_item_call label="Neue Hose" name="New Pants"/>
+ <menu_item_call label="Neue Schuhe" name="New Shoes"/>
+ <menu_item_call label="Neue Socken" name="New Socks"/>
+ <menu_item_call label="Neue Jacke" name="New Jacket"/>
+ <menu_item_call label="Neuer Rock" name="New Skirt"/>
+ <menu_item_call label="Neue Handschuhe" name="New Gloves"/>
+ <menu_item_call label="Neues Unterhemd" name="New Undershirt"/>
+ <menu_item_call label="Neue Unterhose" name="New Underpants"/>
</menu>
<menu name="New Body Parts">
- <menu_item_call label="Neue Form/Gestalt" name="New Shape" />
- <menu_item_call label="Neue Haut" name="New Skin" />
- <menu_item_call label="Neues Haar" name="New Hair" />
- <menu_item_call label="Neue Augen" name="New Eyes" />
+ <menu_item_call label="Neue Form/Gestalt" name="New Shape"/>
+ <menu_item_call label="Neue Haut" name="New Skin"/>
+ <menu_item_call label="Neues Haar" name="New Hair"/>
+ <menu_item_call label="Neue Augen" name="New Eyes"/>
</menu>
- <menu_item_call label="Teleportieren" name="Landmark Open" />
- <menu_item_call label="Öffnen" name="Animation Open" />
- <menu_item_call label="Öffnen" name="Sound Open" />
- <menu_item_call label="Objekt löschen" name="Purge Item" />
- <menu_item_call label="Objekt wiederherstellen" name="Restore Item" />
- <menu_item_call label="Öffnen" name="Open" />
- <menu_item_call label="Eigenschaften" name="Properties" />
- <menu_item_call label="Umbenennen" name="Rename" />
- <menu_item_call label="Asset-UUID kopieren" name="Copy Asset UUID" />
- <menu_item_call label="Kopieren" name="Copy" />
- <menu_item_call label="Einfügen" name="Paste" />
- <menu_item_call label="Löschen" name="Delete" />
- <menu_item_call label="Zum Outfit hinzufügen" name="Add To Outfit" />
- <menu_item_call label="Outfit ersetzen" name="Replace Outfit" />
- <menu_item_call label="Objekte abnehmen" name="Take Off Items" />
- <menu_item_call label="Konferenz-Chat starten" name="Conference Chat Folder" />
- <menu_item_call label="Wiedergeben/Abspielen" name="Sound Play" />
- <menu_item_call label="Landmarken-Info" name="Teleport To Landmark" />
- <menu_item_call label="In Welt abspielen" name="Animation Play" />
- <menu_item_call label="Lokal wiedergeben" name="Animation Audition" />
- <menu_item_call label="Instant Message senden" name="Send Instant Message" />
- <menu_item_call label="Teleport anbieten..." name="Offer Teleport..." />
- <menu_item_call label="Konferenz-Chat starten" name="Conference Chat" />
- <menu_item_call label="Aktivieren" name="Activate" />
- <menu_item_call label="Deaktivieren" name="Deactivate" />
- <menu_item_call label="Von Körper abnehmen" name="Detach From Yourself" />
- <menu_item_call label="Anziehen" name="Object Wear" />
- <menu label="Anhängen an" name="Attach To" />
- <menu label="An HUD hängen" name="Attach To HUD" />
- <menu_item_call label="Anziehen" name="Wearable Wear" />
- <menu_item_call label="Bearbeiten" name="Wearable Edit" />
- <menu_item_call label="Ausziehen" name="Take Off" />
- <menu_item_call label="--keine Optionen--" name="--no options--" />
+ <menu_item_call label="Teleportieren" name="Landmark Open"/>
+ <menu_item_call label="Öffnen" name="Animation Open"/>
+ <menu_item_call label="Öffnen" name="Sound Open"/>
+ <menu_item_call label="Objekt löschen" name="Purge Item"/>
+ <menu_item_call label="Objekt wiederherstellen" name="Restore Item"/>
+ <menu_item_call label="Öffnen" name="Open"/>
+ <menu_item_call label="Eigenschaften" name="Properties"/>
+ <menu_item_call label="Umbenennen" name="Rename"/>
+ <menu_item_call label="Asset-UUID kopieren" name="Copy Asset UUID"/>
+ <menu_item_call label="Kopieren" name="Copy"/>
+ <menu_item_call label="Einfügen" name="Paste"/>
+ <menu_item_call label="Löschen" name="Delete"/>
+ <menu_item_call label="Objekte abnehmen" name="Take Off Items"/>
+ <menu_item_call label="Zum Outfit hinzufügen" name="Add To Outfit"/>
+ <menu_item_call label="Outfit ersetzen" name="Replace Outfit"/>
+ <menu_item_call label="Konferenz-Chat starten" name="Conference Chat Folder"/>
+ <menu_item_call label="Wiedergeben/Abspielen" name="Sound Play"/>
+ <menu_item_call label="Landmarken-Info" name="Teleport To Landmark"/>
+ <menu_item_call label="In Welt abspielen" name="Animation Play"/>
+ <menu_item_call label="Lokal wiedergeben" name="Animation Audition"/>
+ <menu_item_call label="Instant Message senden" name="Send Instant Message"/>
+ <menu_item_call label="Teleport anbieten..." name="Offer Teleport..."/>
+ <menu_item_call label="Konferenz-Chat starten" name="Conference Chat"/>
+ <menu_item_call label="Aktivieren" name="Activate"/>
+ <menu_item_call label="Deaktivieren" name="Deactivate"/>
+ <menu_item_call label="Von Körper abnehmen" name="Detach From Yourself"/>
+ <menu_item_call label="Zu letzter Position zurücksetzen" name="Restore to Last Position"/>
+ <menu_item_call label="Anziehen" name="Object Wear"/>
+ <menu label="Anhängen an" name="Attach To"/>
+ <menu label="An HUD hängen" name="Attach To HUD"/>
+ <menu_item_call label="Bearbeiten" name="Wearable Edit"/>
+ <menu_item_call label="Anziehen" name="Wearable Wear"/>
+ <menu_item_call label="Ausziehen" name="Take Off"/>
+ <menu_item_call label="--keine Optionen--" name="--no options--"/>
</menu>
diff --git a/indra/newview/skins/default/xui/de/menu_mini_map.xml b/indra/newview/skins/default/xui/de/menu_mini_map.xml
new file mode 100644
index 0000000000..9b7117cf42
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_mini_map.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="popup">
+ <menu_item_call label="Zoom Nah" name="Zoom Close"/>
+ <menu_item_call label="Zoom Mittel" name="Zoom Medium"/>
+ <menu_item_call label="Zoom Weit" name="Zoom Far"/>
+ <menu_item_call label="Verfolgung abschalten" name="Stop Tracking"/>
+ <menu_item_call label="Profil..." name="Profile"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/de/menu_viewer.xml b/indra/newview/skins/default/xui/de/menu_viewer.xml
index 9305d0731a..279024616a 100644
--- a/indra/newview/skins/default/xui/de/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/de/menu_viewer.xml
@@ -2,10 +2,14 @@
<menu_bar name="Main Menu">
<menu label="Datei" name="File">
<tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~"/>
- <menu_item_call label="Bild hochladen ([COST] L$)..." name="Upload Image"/>
- <menu_item_call label="Sound hochladen ([COST] L$)..." name="Upload Sound"/>
- <menu_item_call label="Animation hochladen ([COST] L$)..." name="Upload Animation"/>
- <menu_item_call label="Mehrfach-Upload ([COST] L$ pro Datei)..." name="Bulk Upload"/>
+ <menu label="Hochladen" name="upload">
+ <menu_item_call label="Bild ([COST] L$)..." name="Upload Image"/>
+ <menu_item_call label="Sound ([COST] L$)..." name="Upload Sound"/>
+ <menu_item_call label="Animation ([COST] L$)..." name="Upload Animation"/>
+ <menu_item_call label="Mehrfach-Upload ([COST] L$ pro Datei)..." name="Bulk Upload"/>
+ <menu_item_separator label="-----------" name="separator"/>
+ <menu_item_call label="Standard-Berechtigungen einstellen..." name="perm prefs"/>
+ </menu>
<menu_item_separator label="-----------" name="separator"/>
<menu_item_call label="Fenster schließen" name="Close Window"/>
<menu_item_call label="Alle Fenster schließen" name="Close All Windows"/>
@@ -19,7 +23,7 @@
</menu>
<menu label="Bearbeiten" name="Edit">
<menu_item_call label="Rückgängig" name="Undo"/>
- <menu_item_call label="Neu" name="Redo"/>
+ <menu_item_call label="Wiederherstellen" name="Redo"/>
<menu_item_separator label="-----------" name="separator"/>
<menu_item_call label="Ausschneiden" name="Cut"/>
<menu_item_call label="Kopieren" name="Copy"/>
@@ -68,7 +72,7 @@
<menu_item_check label="Symbolleiste" name="Toolbar"/>
<menu_item_check label="Lokaler Chat" name="Chat History"/>
<menu_item_check label="Unterhalten" name="Instant Message"/>
- <menu_item_call label="Inventar" name="Inventory"/>
+ <menu_item_check label="Inventar" name="Inventory"/>
<menu_item_check label="Aktive Sprecher" name="Active Speakers"/>
<menu_item_check label="Stummschalten-Liste" name="Mute List"/>
<menu_item_separator label="-----------" name="separator2"/>
@@ -79,6 +83,7 @@
<menu_item_separator label="-----------" name="separator3"/>
<menu_item_check label="Statistikleiste" name="Statistics Bar"/>
<menu_item_check label="Grundstücksgrenzen" name="Property Lines"/>
+ <menu_item_check label="Absperrungen" name="Banlines"/>
<menu_item_check label="Landeigentümer" name="Land Owners"/>
<menu_item_separator label="-----------" name="separator4"/>
<menu label="Schwebe-Tipps" name="Hover Tips">
@@ -111,14 +116,14 @@
<menu_item_separator label="-----------" name="separator3"/>
<menu_item_call label="Als abwesend anzeigen" name="Set Away"/>
<menu_item_call label="Als beschäftigt anzeigen" name="Set Busy"/>
- <menu_item_call label="Alle Animationen stoppen" name="Stop All Animations"/>
+ <menu_item_call label="Avatar nicht mehr animieren" name="Stop Animating My Avatar"/>
<menu_item_call label="Tasten freigeben" name="Release Keys"/>
<menu_item_separator label="-----------" name="separator4"/>
<menu_item_call label="Kontostatistik..." name="Account History...">
- <on_click name="AccountHistory_url" userdata="WebLaunchAccountHistory,http://secondlife.com/account/transactions.php?lang=de" />
+ <on_click name="AccountHistory_url" userdata="WebLaunchAccountHistory,http://secondlife.com/account/transactions.php?lang=de"/>
</menu_item_call>
<menu_item_call label="Mein Konto verwalten..." name="Manage My Account...">
- <on_click name="ManageMyAccount_url" userdata="WebLaunchJoinNow,http://secondlife.com/account/index.php?lang=de" />
+ <on_click name="ManageMyAccount_url" userdata="WebLaunchJoinNow,http://secondlife.com/account/index.php?lang=de"/>
</menu_item_call>
<menu_item_call label="L$ kaufen..." name="Buy and Sell L$..."/>
<menu_item_separator label="-----------" name="separator5"/>
@@ -166,7 +171,6 @@
<menu_item_call label="Auf Auswahl zoomen" name="Zoom to Selection"/>
<menu_item_call label="Objekt kaufen" name="Menu Object Take"/>
<menu_item_call label="Kopie nehmen/machen" name="Take Copy"/>
- <menu_item_call label="Objekt wieder im Inventar speichern" name="Save Object Back to My Inventory"/>
<menu_item_call label="Objekt wieder in Objektinhalt speichern" name="Save Object Back to Object Contents"/>
<menu_item_separator label="-----------" name="separator6"/>
<menu_item_call label="Skriptwarnung/Fehlerfenster anzeigen" name="Show Script Warning/Error Window"/>
@@ -184,7 +188,9 @@
<menu_item_separator label="-----------" name="separator"/>
<menu_item_call label="Offizielles Linden-Blog..." name="Official Linden Blog..."/>
<menu_item_separator label="-----------" name="separator2"/>
- <menu_item_call label="Scripting-Portal..." name="Scripting Portal..."/>
+ <menu_item_call label="Scripting-Portal..." name="Scripting Portal...">
+ <on_click name="ScriptingPortal_url" userdata="WebLaunchLSLWiki,http://wiki.secondlife.com/wiki/LSL_Portal/de" />
+ </menu_item_call>
<menu_item_separator label="-----------" name="separator3"/>
<menu_item_call label="Missbrauch melden..." name="Report Abuse..."/>
<menu_item_call label="Rempler, Stöße und Schläge..." name="Bumps, Pushes &amp;amp; Hits..."/>
@@ -192,14 +198,15 @@
<menu_item_separator label="-----------" name="separator7"/>
<menu label="Fehlermeldungen" name="Bug Reporting">
<menu_item_call label="Allgemeiner Probleme-Tracker..." name="Public Issue Tracker..."/>
- <menu_item_call label="Hilfe zum Allgemeinen Probleme-Tracker..." name="Publc Issue Tracker Help..."/>
+ <menu_item_call label="Hilfe zum Allgemeinen Probleme-Tracker..." name="Publc Issue Tracker Help...">
+ <on_click name="PublicIssueTrackerHelp_url" userdata="WebLaunchPublicIssueHelp,http://wiki.secondlife.com/wiki/Issue_tracker/de" />
+ </menu_item_call>
<menu_item_separator label="-----------" name="separator7"/>
<menu_item_call label="Fehlermeldungs-1x1..." name="Bug Reporing 101...">
- <on_click function="PromptShowURL" name="BugReporting101_url"
- userdata="WebLaunchBugReport101,http://wiki.secondlife.com/wiki/Bug_Reporting_101" />
+ <on_click name="BugReporting101_url" userdata="WebLaunchBugReport101,http://wiki.secondlife.com/wiki/Bug_Reporting_101/de"/>
</menu_item_call>
<menu_item_call label="Sicherheitsfragen..." name="Security Issues...">
- <on_click name="SecurityIssues_url" userdata="WebLaunchSecurityIssues,http://wiki.secondlife.com/wiki/Security_issues/de" />
+ <on_click name="SecurityIssues_url" userdata="WebLaunchSecurityIssues,http://wiki.secondlife.com/wiki/Security_issues/de"/>
</menu_item_call>
<menu_item_call label="QA-Wiki..." name="QA Wiki..."/>
<menu_item_separator label="-----------" name="separator9"/>
diff --git a/indra/newview/skins/default/xui/de/notifications.xml b/indra/newview/skins/default/xui/de/notifications.xml
index 3d474a7c70..e920b2451f 100644
--- a/indra/newview/skins/default/xui/de/notifications.xml
+++ b/indra/newview/skins/default/xui/de/notifications.xml
@@ -1,5770 +1,3014 @@
-<?xml version="1.0" ?><notifications>
-
- <global name="skipnexttime">
-
- Nicht mehr anzeigen
- </global>
-
- <global name="alwayschoose">
-
- Diese Option immer auswählen
- </global>
-
- <template name="okbutton">
- <form>
- <button
-
-
- name="OK"
- text="$yestext"/>
- </form>
- </template>
-
- <template name="okignore">
- <form>
- <button
-
-
- name="OK"
- text="$yestext"/>
- <ignore text="$ignoretext"/>
- </form>
- </template>
-
- <template name="okcancelbuttons">
- <form>
- <button
-
-
- name="OK"
- text="$yestext"/>
- <button
-
- name="Cancel"
- text="$notext"/>
- </form>
- </template>
-
- <template name="okcancelignore">
- <form>
- <button
-
-
- name="OK"
- text="$yestext"/>
- <button
-
- name="Cancel"
- text="$notext"/>
- <ignore text="$ignoretext"/>
- </form>
- </template>
-
- <template name="okhelpbuttons">
- <form>
- <button
-
-
- name="OK"
- text="$yestext"/>
- <button
-
- name="Help"
- text="$helptext"/>
- </form>
- </template>
-
- <template name="yesnocancelbuttons">
- <form>
- <button
-
-
- name="Yes"
- text="$yestext"/>
- <button
-
- name="No"
- text="$notext"/>
- <button
-
- name="Cancel"
- text="$canceltext"/>
- </form>
- </template>
-
- <notification
- functor="GenericAcknowledge"
-
- name="MissingAlert"
- >
-Der Fehler „[_NAME]“ fehlt in notifications.xml.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="FloaterNotFound"
- >
-Floater-Fehler: Folgende Steuerelemente wurden nicht gefunden:
-
-[CONTROLS]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="TutorialNotFound"
- >
-Derzeit ist kein Tutorial verfügbar.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GenericAlert"
- >
-[MESSAGE]
- </notification>
-
- <notification
-
- name="GenericAlertYesCancel"
- >
-[MESSAGE]
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="WearableSave"
- >
-Änderung an aktueller Kleidung/Körperteil speichern?
- <usetemplate
- canceltext="Abbrechen"
- name="yesnocancelbuttons"
- notext="Nicht speichern"
- yestext="Speichern"/>
- </notification>
-
- <notification
-
- name="CompileQueueSaveText"
- >
-Der Text für ein Skript konnte aus folgendem Grund nicht hochgeladen werden: [REASON]. Bitte versuchen Sie es erneut.
- </notification>
-
- <notification
-
- name="CompileQueueSaveBytecode"
- >
-Eine kompiliertes Skript konnte aus folgendem Grund nicht hochgeladen werden: [REASON]. Bitte versuchen Sie es erneut.
- </notification>
-
- <notification
-
- name="WriteAnimationFail"
- >
-Fehler beim Schreiben von Animationsdaten. Bitte versuchen Sie es erneut.
- </notification>
-
- <notification
-
- name="UploadAuctionSnapshotFail"
- >
-Eine Auktions-Screenshot konnte aus folgendem Grund nicht hochgeladen werden: [REASON]
- </notification>
-
- <notification
-
- name="UnableToViewContentsMoreThanOne"
- >
-Es kann nur jeweils der Inhalt von einem Objekt angezeigt werden.
-Wählen Sie ein einzelnes Objekt aus und versuchen Sie es erneut.
- </notification>
-
- <notification
-
- name="SaveClothingBodyChanges"
- >
-Änderung an Kleidung/Körperteilen speichern?
- <usetemplate
- canceltext="Abbrechen"
- name="yesnocancelbuttons"
- notext="Nicht speichern"
- yestext="Alles speichern"/>
- </notification>
-
- <notification
-
- name="GrantModifyRights"
- >
-Die Gewährung von Änderungsrechten an andere Einwohner ermöglicht es diesen, JEDES BELIEBIGE Objekt zu ändern oder an sich zu nehmen, das Sie in der Second Life-Welt besitzen. Seien Sie SEHR vorsichtig beim Erteilen dieser Erlaubnis.
-Möchten Sie [FIRST_NAME] [LAST_NAME] Änderungsrechte gewähren?
- <usetemplate
- name="okcancelbuttons"
- notext="Nein"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="GrantModifyRightsMultiple"
- >
-Die Gewährung von Änderungsrechten an andere Einwohner ermöglicht es diesen, JEDES BELIEBIGE Objekt zu ändern, das Sie in der Second Life-Welt besitzen. Seien Sie SEHR vorsichtig beim Erteilen dieser Erlaubnis.
-Möchten Sie den ausgewählten Einwohnern Änderungsrechte gewähren?
- <usetemplate
- name="okcancelbuttons"
- notext="Nein"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="RevokeModifyRights"
- >
-Möchten Sie [FIRST_NAME] [LAST_NAME] die Änderungsrechte entziehen?
- <usetemplate
- name="okcancelbuttons"
- notext="Nein"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="RevokeModifyRightsMultiple"
- >
-Möchten Sie den ausgewählten Einwohnern die Änderungsrechte entziehen?
- <usetemplate
- name="okcancelbuttons"
- notext="Nein"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="UnableToCreateGroup"
- >
-Gruppe konnte nicht erstellt werden.
-[MESSAGE]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="PanelGroupApply"
- >
-[NEEDS_APPLY_MESSAGE]
-[WANT_APPLY_MESSAGE]
- <usetemplate
- canceltext="Abbrechen"
- name="yesnocancelbuttons"
- notext="Änderungen verwerfen"
- yestext="Änderungen übernehmen"/>
- </notification>
-
- <notification
-
- name="MustSpecifyGroupNoticeSubject"
- >
-Geben Sie einen Betreff für die Gruppenmitteilung ein.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="AddGroupOwnerWarning"
- >
-Sie sind im Begriff, Gruppenmitgliedern die Rolle [ROLE_NAME] zuzuweisen.
-Diese Rolle kann Mitgliedern nicht mehr entzogen werden.
-Sie müssen die Rolle selbst niederlegen.
-Möchten Sie fortfahren?
- <usetemplate
- ignoretext="Beim Hinzufügen von Gruppenmitgliedern zur Eigentümerrolle"
- name="okcancelignore"
- notext="Nein"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="AssignDangerousActionWarning"
- >
-Sie sind im Begriff, der Rolle „[ROLE_NAME]“ die Fähigkeit „[ACTION_NAME]“ zuzuweisen.
-
- *ACHTUNG*
- Mitglieder in einer Rolle mit dieser Fähigkeit können sich selbst -
- und allen anderen Mitgliedern – Rollen zuweisen, die mehr Rechte
- beinhalten als sie derzeit haben, und damit nahezu
- Eigentümerrechte erreichen. Überlegen Sie sich, wem Sie diese Fähigkeit
- verleihen.
-
-Der Rolle „[ROLE_NAME]“ diese Fähigkeit zuweisen?
- <usetemplate
- name="okcancelbuttons"
- notext="Nein"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="AssignDangerousAbilityWarning"
- >
-Sie sind im Begriff, der Rolle „[ROLE_NAME]“ die Fähigkeit „[ACTION_NAME]“ zuzuweisen.
-
- *ACHTUNG*
- Mitglieder in einer Rolle mit dieser Fähigkeit können sich selbst -
- und allen anderen Mitgliedern – alle Fähigkeiten zuweisen und
- damit fast Eigentümerrechte erreichen.
-
-Der Rolle „[ROLE_NAME]“ diese Fähigkeit zuweisen?
- <usetemplate
- name="okcancelbuttons"
- notext="Nein"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="ClickPublishHelpLand"
- >
-Auswahl von „In Suche veröffentlichen“
-Dieses Kontrollkästchen zeigt Folgendes an:
-- diese Parzelle in den Suchergebnissen
-- die öffentlichen Objekte dieser Parzelle
-- diese Parzelle in der Websuche
- </notification>
-
- <notification
-
- name="ClickPublishHelpLandDisabled"
- >
-Diese Parzelle kann nicht in der Suche angezeigt werden, da sie sich in einer Region befindet, die das verbietet.
- </notification>
-
- <notification
-
- name="ClickPublishHelpAvatar"
- >
-Auswahl von „In Suche anzeigen“ zeigt Folgendes an:
-- Ihr Profil in den Suchergebnissen
-- einen Link auf Ihr Profil in den öffentlichen Gruppenseiten
- </notification>
-
- <notification
-
- name="ClickPartnerHelpAvatar"
- >
-Auf der [SECOND_LIFE] Website können Sie anderen Einwohnern eine Partnerschaft vorschlagen und bestehende Partnerschaften lösen.
-
-Die Second Life Website für weitere Informationen über Partnerschaften öffnen?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="Gehe zu Seite"/>
- </notification>
-
- <notification
-
- name="ClickWebProfileHelpAvatar"
- >
-Wenn dieser Einwohner einen Webprofil-URL angegeben hat, können Sie:
- * Auf „Laden“ klicken und die Seite in dieser Web-Registerkarte anzeigen.
- * Auf Laden &gt; „In externem Browser“ klicken und die Seite im Standard-Browser anzeigen.
- * Auf Laden &gt; „Start-URL“ klicken und zum Webprofil des Bewohners zurückkehren.
-
-In Ihrem eigenen Profil können Sie jeden beliebigen URL als Ihr Webprofil eingeben und mit OK übernehmen.
-Wenn sich andere Einwohner Ihr Profil ansehen, können sie diesen URL besuchen.
- </notification>
-
- <notification
-
- name="JoinGroupCanAfford"
- >
-Der Beitritt zu dieser Gruppe kostet [COST] L$.
-Fortfahren?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="Beitreten"/>
- </notification>
-
- <notification
-
- name="JoinGroupCannotAfford"
- >
-Der Beitritt zu dieser Gruppe kostet [COST] L$.
-Sie haben nicht genug L$, um dieser Gruppe beizutreten.
- </notification>
-
- <notification
-
- name="LandBuyPass"
- >
-Sie können dieses Land („[PARCEL_NAME]“) für [COST] L$
-[TIME] Stunden lang betreten. Pass kaufen?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SalePriceRestriction"
- >
-Der Verkaufspreis muss beim allgemeinen Verkauf über 0 L$ liegen.
-Wählen Sie eine bestimmte Person aus, wenn Sie für 0 L$ verkaufen.
- </notification>
-
- <notification
-
- name="ConfirmLandSaleChange"
-
- >
-Die ausgewählten [LAND_SIZE] qm Land werden zum Verkauf freigegeben.
-Der Verkaufspreis beträgt [SALE_PRICE] L$ und wird automatisch für den Verkauf an [NAME] autorisiert.
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmLandSaleToAnyoneChange"
- >
-ACHTUNG: Wenn Sie auf „An jeden verkaufen“ klicken, kann jeder in Second Life Ihr Land kaufen, auch Einwohner in anderen Regionen.
-
-Die ausgewählten [LAND_SIZE] qm Land werden zum Verkauf freigegeben.
-Der Verkaufspreis beträgt [SALE_PRICE] L$ und wird automatisch für den Verkauf an [NAME] autorisiert.
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsDeededToGroup"
- >
-Möchten Sie alle Ihre Objekte auf dieser Parzelle, die der Gruppe „[NAME]“ gehören, zurück in das jeweilige Inventar ihrer vorherigen Eigentümer transferieren?
-
-*WARNUNG* Alle nicht transferierbaren Objekte, die der Gruppe übertragen wurden, werden dabei gelöscht!
-
-Objekte: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsOwnedByUser"
- >
-Möchten Sie alle Objekte auf dieser Parzelle, die dem Einwohner „[NAME]“ gehören, in das jeweilige Inventar ihrer Eigentümer transferieren?
-
-Objekte: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsOwnedBySelf"
- >
-Möchten Sie alle Objekte auf dieser Parzelle, die Ihnen gehören, zurück in Ihr Inventar transferieren?
-
-Objekte: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsNotOwnedBySelf"
- >
-Möchten Sie alle Objekte auf dieser Parzelle, die NICHT Ihnen gehören, in das Inventar ihrer Eigentümer transferieren?
-Transferierbare Objekte, die an eine Gruppe übertragen wurden, werden ihren vorherigen Eigentümern zurückgegeben.
-
-*WARNUNG* Alle nicht transferierbaren Objekte, die der Gruppe übertragen wurden, werden dabei gelöscht!
-
-Objekte: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsNotOwnedByUser"
- >
-Möchten Sie alle Objekte auf dieser Parzelle, die NICHT [NAME] gehören, in das Inventar ihrer Eigentümer transferieren?
-Transferierbare Objekte, die an eine Gruppe übertragen wurden, werden ihren vorherigen Eigentümern zurückgegeben.
-
-*WARNUNG* Alle nicht transferierbaren Objekte, die der Gruppe übertragen wurden, werden dabei gelöscht!
-
-Objekte: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnAllTopObjects"
- >
-Möchten Sie alle aufgeführten Objekte ihren Eigentümern zurückgeben?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="DisableAllTopObjects"
- >
-Möchten Sie alle Objekte in dieser Region deaktivieren?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsNotOwnedByGroup"
- >
-Objekte auf dieser Parzelle, die von der Gruppe [NAME] nicht gemeinsam genutzt werden, an ihre Eigentümer zurückgeben?
-
-Objekte: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="UnableToDisableOutsideScripts"
- >
-Skriptdeaktivierung nicht möglich.
-Für die gesamte Region ist Schaden aktiviert.
-Damit Waffen funktionieren, müssen Skripts erlaubt sein.
- </notification>
-
- <notification
-
- name="MustBeInParcel"
- >
-Sie müssen auf einer Landparzelle stehen, um ihren Landepunkt festzulegen.
- </notification>
-
- <notification
-
- name="PromptRecipientEmail"
- >
-Bitte geben Sie für den/die Empfänger eine gültige Email-Adresse ein.
- </notification>
-
- <notification
-
- name="PromptSelfEmail"
- >
-Geben Sie Ihre E-Mail-Adresse ein.
- </notification>
-
- <notification
-
- name="PromptMissingSubjMsg"
- >
-Foto mit Standardbetreff bzw. -nachricht als E-Mail versenden?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ErrorProcessingSnapshot"
- >
-Fehler beim Verarbeiten der Fotodaten
- </notification>
-
- <notification
-
- name="ErrorEncodingSnapshot"
- >
-Fehler beim Erstellen des Fotos!
- </notification>
-
- <notification
-
- name="ErrorUploadingPostcard"
- >
-Ein Foto konnte aus folgendem Grund nicht gesendet werden: [REASON]
- </notification>
-
- <notification
-
- name="ErrorUploadingReportScreenshot"
- >
-Ein Report-Screenshot konnte aus folgendem Grund nicht hochgeladen werden: [REASON]
- </notification>
-
- <notification
-
- name="MustAgreeToLogIn"
- >
-Bevor Sie sich in [SECOND_LIFE] anmelden können, müssen Sie den Nutzungsbedingungen zustimmen.
- </notification>
-
- <notification
-
- name="CouldNotPutOnOutfit"
- >
-Outfit konnte nicht angezogen werden.
-Der Outfit-Ordner enthält keine Kleidung, Körperteile oder Anhänge.
- </notification>
-
- <notification
-
- name="CannotWearTrash"
- >
-Kleider oder Körperteile im Papierkorb können nicht getragen werden
- </notification>
-
- <notification
-
- name="CannotWearInfoNotComplete"
- >
-Sie können das Objekt nicht anziehen, weil es noch nicht geladen wurde. Warten Sie kurz und versuchen Sie es dann noch einmal.
- </notification>
-
- <notification
-
- name="MustHaveAccountToLogIn"
- >
-Hoppla! Da fehlt noch etwas.
-Geben Sie bitte den Vor- und den Nachnamen Ihres Avatars ein.
-
-Sie benötigen ein Benutzerkonto, um [SECOND_LIFE] betreten zu können. Möchten Sie jetzt ein Benutzerkonto anlegen?
- <usetemplate
- name="okcancelbuttons"
- notext="Erneut versuchen"
- yestext="Neues Benutzerkonto anlegen"/>
- </notification>
-
- <notification
-
- name="AddClassified"
- >
-Anzeigen erscheinen für eine Woche unter „Anzeigen“ im Suchverzeichnis. Füllen Sie Ihre Anzeige aus und klicken Sie auf „Veröffentlichen...“, um sie zum Verzeichnis hinzuzufügen. Sie werden gebeten, einen Preis zu bezahlen, wenn Sie auf „Veröffentlichen“ klicken. Wenn Sie mehr bezahlen oder ein Benutzer nach Ihren Suchbegriffen sucht, erscheint Ihre Anzeige weiter oben in der Liste.
- <usetemplate
- ignoretext="Beim Hinzufügen einer neuen Anzeige"
- name="okcancelignore"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="DeleteClassified"
- >
-Anzeige „[NAME]“ löschen?
-Gebühren werden nicht rückerstattet.
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ClassifiedSave"
- >
-Änderung an Anzeige [NAME] speichern?
- <usetemplate
- canceltext="Abbrechen"
- name="yesnocancelbuttons"
- notext="Nicht speichern"
- yestext="Speichern"/>
- </notification>
-
- <notification
-
- name="DeleteAvatarPick"
- >
-Auswahl [PICK] löschen?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="PromptGoToEventsPage"
- >
-Zur [SECOND_LIFE] Events-Webseite?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SelectProposalToView"
- >
-Wählen Sie ein Angebot zur Ansicht.
- </notification>
-
- <notification
-
- name="SelectHistoryItemToView"
- >
-Wählen Sie ein Element zur Ansicht.
- </notification>
-
- <notification
-
- name="ResetShowNextTimeDialogs"
- >
-Möchten Sie alle Popups wieder aktivieren, die Sie zuvor auf „Nicht mehr anzeigen“ gesetzt haben?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SkipShowNextTimeDialogs"
- >
-Möchten Sie alle Popups, die übersprungen werden können, deaktivieren?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CacheWillClear"
- >
-Der Cache wird nach einem Neustart von [SECOND_LIFE] geleert.
- </notification>
-
- <notification
-
- name="CacheWillBeMoved"
- >
-Der Cache wird nach einem Neustart von [SECOND_LIFE] verschoben.
-Hinweis: Der Cache wird dabei gelöscht/geleert.
- </notification>
-
- <notification
-
- name="ChangeConnectionPort"
- >
-Die Port-Einstellungen werden nach einem Neustart von [SECOND_LIFE] wirksam.
- </notification>
-
-
-
- <notification
-
- name="GoToAuctionPage"
- >
-Zur [SECOND_LIFE]-Webseite, um Auktionen anzuzeigen oder ein Gebot abzugeben?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SaveChanges"
- >
-Änderungen speichern?
- <usetemplate
- canceltext="Abbrechen"
- name="yesnocancelbuttons"
- notext="Nicht speichern"
- yestext="Speichern"/>
- </notification>
-
- <notification
-
- name="GestureSaveFailedTooManySteps"
- >
-Speichern der Geste fehlgeschlagen.
-Die Geste besteht aus zu vielen Schritten.
-Löschen Sie einige Schritte und versuchen Sie es erneut.
- </notification>
-
- <notification
-
- name="GestureSaveFailedTryAgain"
- >
-Speichern der Geste fehlgeschlagen. Warten Sie kurz und versuchen Sie es dann noch einmal.
- </notification>
-
- <notification
-
- name="GestureSaveFailedObjectNotFound"
- >
-Geste konnte nicht gespeichert werden, da das Objekt oder das zugehörige Objektinventar nicht gefunden wurden.
-Das Objekt ist möglicherweise außer Reichweite oder wurde gelöscht.
- </notification>
-
- <notification
-
- name="GestureSaveFailedReason"
- >
-Eine Geste konnte aus folgendem Grund nicht gespeichert werden: [REASON]. Speichern Sie die Geste bitte später.
- </notification>
-
- <notification
-
- name="SaveNotecardFailObjectNotFound"
- >
-Notizkarte konnte nicht gespeichert werden, da das Objekt oder das zugehörige Objektinventar nicht gefunden wurden.
-Das Objekt ist möglicherweise außer Reichweite oder wurde gelöscht.
- </notification>
-
- <notification
-
- name="SaveNotecardFailReason"
- >
-Eine Notizkarte konnte aus folgendem Grund nicht gespeichert werden: [REASON]. Speichern Sie die Notizkarte bitte später.
- </notification>
-
- <notification
-
- name="ScriptCannotUndo"
- >
-Es konnten nicht alle Änderungen in Ihrer Skriptversion rückgängig gemacht werden.
-Möchten Sie die letzte gespeicherte Version vom Server laden?
-(**Warnung** Dieser Vorgang kann nicht rückgängig gemacht werden.)
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SaveScriptFailReason"
- >
-Ein Skript konnte aus folgendem Grund nicht gespeichert werden: [REASON]. Speichern Sie das Skript bitte später.
- </notification>
-
- <notification
-
- name="SaveScriptFailObjectNotFound"
- >
-Skript konnte nicht gespeichert werden, weil das zugehörige Objekt nicht gefunden wurde.
-Das Objekt ist möglicherweise außer Reichweite oder wurde gelöscht.
- </notification>
-
- <notification
-
- name="SaveBytecodeFailReason"
- >
-Ein kompiliertes Skript konnte aus folgendem Grund nicht gespeichert werden: [REASON]. Speichern Sie das Skript bitte später.
- </notification>
-
- <notification
-
- name="CouldNotStartStopScript"
- >
-Skript konnte nicht gestartet oder beendet werden, weil das zugehörige Objekt nicht gefunden wurde.
-Das Objekt ist möglicherweise außer Reichweite oder wurde gelöscht.
- </notification>
-
- <notification
-
- name="CannotDownloadFile"
- >
-Dateidownload nicht möglich
- </notification>
-
- <notification
-
- name="CannotWriteFile"
- >
-Datei [[FILE]] kann nicht geschrieben werden
- </notification>
-
- <notification
-
- name="UnsupportedHardware"
- >
-Achtung: Ihr System erfüllt nicht die Mindestanforderungen von Second Life. Dies kann eine schlechte Darstellungsleistung in Second Life zur Folge haben. Für nicht unterstützte Systemkonfigurationen bieten wir keinen technischen Support.
-
-MINSPECS
-Die Seite [_URL] für weitere Informationen öffnen?
- <url option="0" name="url">
-
- http://secondlife.com/support/sysreqs.php?lang=de
- </url>
- <usetemplate
- ignoretext="Bei Entdeckung nicht unterstützter Hardware"
- name="okcancelignore"
- notext="Nein"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="UnknownGPU"
- >
-Ihr System verwendet eine uns zurzeit unbekannte Grafikkarte.
-Dies ist häufig der Fall bei neuer Hardware, die wir noch nicht testen konnten.
-Second Life funktioniert aller Voraussicht nach normal, möglicherweise müssen Sie aber die Grafikeinstellungen anpassen.
-(Bearbeiten &gt; Einstellungen &gt; Grafik).
- <form name="form">
- <ignore name="ignore"
- text="Bei Entdeckung einer unbekannten Grafikkarte"/>
- </form>
- </notification>
-
- <notification
-
- name="DisplaySettingsNoShaders"
- >
-[SECOND_LIFE] ist bei der Initialisierung der Grafiktreiber abgestürzt.
-Die Grafikqualität wird auf eine niedrige Stufe zurückgesetzt, um einige typische Treiberfehler zu vermeiden.
-Einige Grafikfunktionen werden ausgeschaltet.
-Wir empfehlen die Aktualisierung Ihrer Grafikkartentreiber.
-Sie können die Grafikqualität unter „Einstellungen“ &gt; „Grafik“ wieder erhöhen.
- </notification>
-
- <notification
-
- name="RegionNoTerraforming"
- >
-Die Region [REGION] erlaubt kein Terraforming.
- </notification>
-
- <notification
-
- name="CannotCopyWarning"
- >
-Sie sind nicht berechtigt, dieses Objekt zu kopieren und verlieren es aus Ihrem Inventar, wenn Sie es weggeben. Möchten Sie dieses Objekt anbieten?
- <usetemplate
- name="okcancelbuttons"
- notext="Nein"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="CannotGiveItem"
- >
-Inventarobjekt kann nicht übergeben werden.
- </notification>
-
- <notification
-
- name="TransactionCancelled"
- >
-Transaktion abgebrochen.
- </notification>
-
- <notification
-
- name="TooManyItems"
- >
-Es können maximal 42 Objekte auf einmal in das Inventar transferiert werden.
- </notification>
-
- <notification
-
- name="NoItems"
- >
-Sie sind nicht berechtigt, die ausgewählten Objekte zu kopieren.
- </notification>
-
- <notification
-
- name="CannotCopyCountItems"
- >
-Sie sind nicht berechtigt, [COUNT] der ausgewählten Objekte zu kopieren. Diese Objekte werden aus Ihrem Inventar gelöscht.
-Möchten Sie diese Objekte weggeben?
- <usetemplate
- name="okcancelbuttons"
- notext="Nein"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="CannotGiveCategory"
- >
-Sie sind nicht berechtigt, den ausgewählten Ordner zu kopieren.
- </notification>
-
- <notification
-
- name="FreezeAvatar"
- >
-Diesen Avatar einfrieren?
-Der Avatar wird außer Gefecht gesetzt und kann sich nicht mehr bewegen, chatten oder mit der Welt interagieren.
- <usetemplate
- canceltext="Abbrechen"
- name="yesnocancelbuttons"
- notext="Auftauen"
- yestext="Einfrieren"/>
- </notification>
-
- <notification
-
- name="FreezeAvatarFullname"
- >
-[AVATAR_NAME] einfrieren?
-Der Avatar wird außer Gefecht gesetzt und kann sich nicht mehr bewegen, chatten oder mit der Welt interagieren.
- <usetemplate
- canceltext="Abbrechen"
- name="yesnocancelbuttons"
- notext="Auftauen"
- yestext="Einfrieren"/>
- </notification>
-
- <notification
-
- name="EjectAvatarFullname"
- >
-[AVATAR_NAME] von Ihrem Land werfen?
- <usetemplate
- canceltext="Abbrechen"
- name="yesnocancelbuttons"
- notext="Ausschließen und Verbannen"
- yestext="Ausschließen"/>
- </notification>
-
- <notification
-
- name="EjectAvatarNoBan"
- >
-Diesen Avatar aus Ihrem Land werfen?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="Hinauswerfen"/>
- </notification>
-
- <notification
-
- name="EjectAvatarFullnameNoBan"
- >
-[AVATAR_NAME] aus Ihrem Land werfen?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="Hinauswerfen"/>
- </notification>
-
- <notification
-
- name="AcquireErrorTooManyObjects"
- >
-FEHLER: Zu viele Objekte ausgewählt.
- </notification>
-
- <notification
-
- name="AcquireErrorObjectSpan"
- >
-FEHLER: Die Objekte überspannen mehrere Regionen.
-Verschieben Sie alle betreffenden Objekte in dieselbe Region.
- </notification>
-
- <notification
-
- name="PromptGoToCurrencyPage"
- >
-[EXTRA]
-
-[URL] für Informationen zum Deviseneinkauf öffnen?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="UnableToLinkObjects"
- >
-Verknüpfung dieser [COUNT] Objekte nicht möglich.
-Sie können maximal [MAX] Objekte verknüpfen.
- </notification>
-
- <notification
-
- name="CannotLinkIncompleteSet"
- >
-Sie können nur vollständige Objektsätze verknüpfen und Sie müssen mehr als ein Objekt auswählen.
- </notification>
-
- <notification
-
- name="CannotLinkModify"
- >
-Verknüpfung nicht möglich, da Sie nicht alle Objekte bearbeiten dürfen.
-
-Stellen Sie sicher, dass kein Objekt gesperrt ist und alle Objekte Ihnen gehören.
- </notification>
-
- <notification
-
- name="CannotLinkDifferentOwners"
- >
-Verknüpfung nicht möglich, da nicht alle Objekte denselben Eigentümer haben.
-
-Stellen Sie sicher, dass alle ausgewählten Objekte Ihnen gehören.
- </notification>
-
- <notification
-
- name="NoFileExtension"
- >
-Kein Dateityp für Datei: „[FILE]“
-
-Vergewissern Sie sich, dass die Datei den richtigen Dateityp hat.
- </notification>
-
- <notification
-
- name="InvalidFileExtension"
- >
-Ungültige Datei-Endung [EXTENSION]
-Erwartet wurde [VALIDS]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CannotUploadSoundFile"
- >
-Sounddatei konnte nicht hochgeladen werden:
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileNotRIFF"
- >
-Die Datei ist anscheinend keine RIFF WAVE-Datei:
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileNotPCM"
- >
-Die Datei ist anscheinend keine PCM WAVE-Audiodatei:
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidChannelCount"
- >
-Die Datei hat eine ungültige Anzahl Tonkanäle (muss Mono oder Stereo sein):
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidSampleRate"
- >
-Die Sample-Rate dieser Datei wird nicht unterstützt (muss 44,1 K sein):
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidWordSize"
- >
-Die Word-Größe dieser Datei wird nicht unterstützt (muss 8 oder 16 Bit sein):
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidHeader"
- >
-„Daten“-Chunk in WAV-Header nicht gefunden:
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidTooLong"
- >
-Audiodatei ist zu lang (max. 10 Sekunden):
-[FILE]
- </notification>
-
- <notification
-
- name="ProblemWithFile"
- >
-Problem mit Datei [FILE]:
-
-[ERROR]
- </notification>
-
- <notification
-
- name="CannotOpenTemporarySoundFile"
- >
-Temporäre komprimierte Sounddatei konnte nicht geöffnet werden: [FILE]
- </notification>
-
- <notification
-
- name="UnknownVorbisEncodeFailure"
- >
-Unbekannter Vorbis-Kodierungsfehler in: [FILE]
- </notification>
-
- <notification
-
- name="CorruptResourceFile"
- >
-Ressourcendatei beschädigt: [FILE]
- </notification>
-
- <notification
-
- name="UnknownResourceFileVersion"
- >
-Unbekannte Linden-Ressourcenversion in Datei: [FILE]
- </notification>
-
- <notification
-
- name="UnableToCreateOutputFile"
- >
-Ausgabedatei konnte nicht erstellt werden: [FILE]
- </notification>
-
- <notification
-
- name="DoNotSupportBulkAnimationUpload"
- >
-Der Mehrfach-Upload von Animationsdateien wird zurzeit nicht unterstützt.
- </notification>
-
- <notification
-
- name="CannotUploadReason"
- >
-Datei [FILE] kann aus folgendem Grund nicht hochgeladen werden: [REASON]
-Bitte versuchen Sie es erneut.
- </notification>
-
- <notification
-
- name="CannotCreateLandmarkNotOwner"
- >
-Sie können hier keine Landmarke erstellen, da der Landeigentümer dies verboten hat.
- </notification>
-
- <notification
-
- name="CannotRecompileSelectObjectsNoScripts"
- >
-„Rekompilieren“ nicht möglich.
-Objekt mit Skript wählen.
- </notification>
-
- <notification
-
- name="CannotRecompileSelectObjectsNoPermission"
- >
-„Rekompilieren“ nicht möglich.
-
-Wählen Sie Objekte mit Skripts, die Sie bearbeiten dürfen.
- </notification>
-
- <notification
-
- name="CannotResetSelectObjectsNoScripts"
- >
-„Zurücksetzen“ nicht möglich.
-
-Wählen Sie Objekte mit Skripts.
- </notification>
-
- <notification
-
- name="CannotResetSelectObjectsNoPermission"
- >
-„Zurücksetzen“ nicht möglich.
-
-Wählen Sie Objekte mit Skripts, die Sie bearbeiten dürfen.
- </notification>
-
- <notification
-
- name="CannotSetRunningSelectObjectsNoScripts"
- >
-„Ausführen“ von Skripts nicht möglich.
-
-Wählen Sie Objekte mit Skripts.
- </notification>
-
- <notification
-
- name="CannotSetRunningNotSelectObjectsNoScripts"
- >
-„Deaktivieren“ von Skripts nicht möglich.
-
-Wählen Sie Objekte mit Skripts.
- </notification>
-
- <notification
-
- name="NoFrontmostFloater"
- >
-Kein vorderster Floater zum Speichern.
- </notification>
-
- <notification
-
- name="SeachFilteredOnShortWords"
- >
-Ihre Suchanfrage wurde geändert.
-Zu kurze Begriffe wurden entfernt.
-
-Ihre Suchanfrage: [FINALQUERY]
- </notification>
-
- <notification
-
- name="SeachFilteredOnShortWordsEmpty"
- >
-Ihre Suchbegriffe sind zu kurz.
-Es wurde keine Suche durchgeführt.
- </notification>
-
- <notification
-
- name="CouldNotTeleportReason"
- >
-Teleport fehlgeschlagen.
-[REASON]
- </notification>
-
- <notification
-
- name="CannotSetLandOwnerNothingSelected"
- >
-Landeigentümer kann nicht festgelegt werden:
-Keine Parzelle ausgewählt.
- </notification>
-
- <notification
-
- name="CannotSetLandOwnerMultipleRegions"
- >
-Eine erzwungene Landübertragung ist nicht möglich, da die Auswahl mehrere Regionen umfasst. Wählen Sie ein kleineres Gebiet und versuchen Sie es erneut.
- </notification>
-
- <notification
-
- name="ForceOwnerAuctionWarning"
- >
-Diese Parzelle steht zur Auktion. Eine zwangsweise Eigentumsübertragung beendet die Auktion und verärgert womöglich Einwohner, die bereits ein Gebot abgegeben haben. Eigentumsübertragung erzwingen?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CannotContentifyNothingSelected"
- >
-Inhaltsidentifizierung nicht möglich:
-Keine Parzelle ausgewählt.
- </notification>
-
- <notification
-
- name="CannotContentifyNoRegion"
- >
-Inhaltsidentifizierung nicht möglich:
-Keine Region ausgewählt.
- </notification>
-
- <notification
-
- name="CannotReleaseLandNothingSelected"
- >
-Land kann nicht aufgegeben werden:
-Keine Parzelle ausgewählt.
- </notification>
-
- <notification
-
- name="CannotReleaseLandNoRegion"
- >
-Land kann nicht aufgegeben werden:
-Region nicht gefunden.
- </notification>
-
- <notification
-
- name="CannotBuyLandNothingSelected"
- >
-Land kann nicht gekauft werden:
-Keine Parzelle ausgewählt.
- </notification>
-
- <notification
-
- name="CannotBuyLandNoRegion"
- >
-Land kann nicht gekauft werden:
-Kann die Region nicht finden, in der sich dieses Land befindet.
- </notification>
-
- <notification
-
- name="CannotCloseFloaterBuyLand"
- >
-Das Fenster „Land kaufen“ kann erst geschlossen werden,
-nachdem Second Life den Transaktionspreis geschätzt hat.
- </notification>
-
- <notification
-
- name="CannotDeedLandNothingSelected"
- >
-Land kann nicht übertragen werden:
-Keine Parzelle ausgewählt.
- </notification>
-
- <notification
-
- name="CannotDeedLandNoGroup"
- >
-Land kann nicht übertragen werden:
-Keine Gruppe ausgewählt.
- </notification>
-
- <notification
-
- name="CannotDeedLandNoRegion"
- >
-Land kann nicht übertragen werden:
-Kann die Region nicht finden, in der sich dieses Land befindet.
-Bitte melden Sie dies über „Hilfe“ &gt; „Fehler melden“.
- </notification>
-
- <notification
-
- name="CannotDeedLandMultipleSelected"
- >
-Land kann nicht übertragen werden:
-Mehrere Parzellen ausgewählt.
-
-Wählen Sie eine einzelne Parzelle.
- </notification>
-
- <notification
-
- name="ParcelCanPlayMedia"
- >
-Dieser Ort kann Streaming-Medien abspielen.
-Streaming-Medien erfordern eine schnelle Internet-Verbindung.
-
-Streaming-Medien abspielen, wenn verfügbar?
-(Sie können diese Option später unter „Einstellungen“ &gt; „Audio &amp; Video“ ändern.)
- <usetemplate
- name="okcancelbuttons"
- notext="Deaktivieren"
- yestext="Medien wiedergeben"/>
- </notification>
-
- <notification
-
- name="CannotDeedLandWaitingForServer"
- >
-Land kann nicht übertragen werden:
-Warte auf Server für Eigentümerinformationen.
-
-Bitte versuchen Sie es erneut.
- </notification>
-
- <notification
-
- name="CannotDeedLandNoTransfer"
- >
-Land kann nicht übertragen werden:
-Die Region [REGION] erlaubt keine Landübertragung.
- </notification>
-
- <notification
-
- name="CannotReleaseLandWatingForServer"
- >
-Land kann nicht aufgegeben werden:
-Server muss Parzelleninformation aktualisieren.
-
-Versuchen Sie es in einigen Sekunden erneut.
- </notification>
-
- <notification
-
- name="CannotReleaseLandSelected"
- >
-Land kann nicht aufgegeben werden:
-Die ausgewählten Parzellen gehören Ihnen nicht.
-
-Wählen Sie eine einzelne Parzelle.
- </notification>
-
- <notification
-
- name="CannotReleaseLandDontOwn"
- >
-Land kann nicht aufgegeben werden:
-Ihnen fehlt die Berechtigung zur Freigabe dieser Parzelle.
-Parzellen, die Ihnen gehören, werden grün dargestellt.
- </notification>
-
- <notification
-
- name="CannotReleaseLandRegionNotFound"
- >
-Land kann nicht aufgegeben werden:
-Kann die Region nicht finden, in der sich dieses Land befindet.
-
-Bitte melden Sie dies über „Hilfe“ &gt; „Fehler melden“.
- </notification>
-
- <notification
-
- name="CannotReleaseLandNoTransfer"
- >
-Land kann nicht aufgegeben werden:
-Die Region [REGION] erlaubt keine Landübertragung.
- </notification>
-
- <notification
-
- name="CannotReleaseLandPartialSelection"
- >
-Land kann nicht aufgegeben werden:
-Zum Freigeben müssen Sie eine ganze Parzelle auswählen.
-
-Wählen Sie eine ganze Parzelle oder teilen Sie Ihre Parzelle.
- </notification>
-
- <notification
-
- name="ReleaseLandWarning"
- >
-Sie sind im Begriff, [AREA] qm Land aufzugeben.
-Wenn Sie diese Parzelle aufgeben, wird sie ohne L$-Erstattung von Ihrem Landbesitz entfernt.
-
-Dieses Land aufgeben?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CannotDivideLandNothingSelected"
- >
-Land kann nicht aufgeteilt werden:
-
-Keine Parzellen ausgewählt.
- </notification>
-
- <notification
-
- name="CannotDivideLandPartialSelection"
- >
-Land kann nicht aufgeteilt werden:
-
-Sie haben eine ganze Parzelle ausgewählt.
-Wählen Sie einen Parzellenabschnitt aus.
- </notification>
-
- <notification
-
- name="LandDivideWarning"
- >
-Wenn Sie dieses Land teilen, wird diese Parzelle in zwei geteilt, jede mit ihren eigenen Einstellungen. Einige dieser Einstellungen werden aufgrund dieses Vorgangs zurückgesetzt.
-
-Land teilen?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CannotDivideLandNoRegion"
- >
-Land kann nicht aufgeteilt werden:
-Kann die Region nicht finden, in der sich dieses Land befindet.
-
-Bitte melden Sie dies über „Hilfe“ &gt; „Fehler melden“.
- </notification>
-
- <notification
-
- name="CannotJoinLandNoRegion"
- >
-Land kann nicht zusammengelegt werden:
-Kann die Region nicht finden, in der sich dieses Land befindet.
-
-Bitte melden Sie dies über „Hilfe“ &gt; „Fehler melden“.
- </notification>
-
- <notification
-
- name="CannotJoinLandNothingSelected"
- >
-Land kann nicht zusammengelegt werden:
-Keine Parzellen ausgewählt.
- </notification>
-
- <notification
-
- name="CannotJoinLandEntireParcelSelected"
- >
-Land kann nicht zusammengelegt werden:
-Sie haben nur eine Parzelle ausgewählt.
-
-Wählen Sie Land auf beiden Parzellen aus.
- </notification>
-
- <notification
-
- name="CannotJoinLandSelection"
- >
-Land kann nicht zusammengelegt werden:
-Sie müssen mehrere Parzellen auswählen.
-
-Wählen Sie Land auf beiden Parzellen aus.
- </notification>
-
- <notification
-
- name="JoinLandWarning"
- >
-Beim Zusammenlegen entsteht aus den vom Auswahlrechteck
-erfassten Parzellen eine große Parzelle.
-Sie müssen der neuen Parzelle einen Namen geben und ihre Optionen festlegen.
-
-Land zusammenlegen?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmNotecardSave"
- >
-Um das Objekt kopieren oder anzeigen zu können, müssen Sie zuerst diese Notizkarte speichern. Notizkarte speichern?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmItemCopy"
- >
-Dieses Objekt in Ihr Inventar kopieren?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="Kopieren"/>
- </notification>
-
- <notification
-
- name="ResolutionSwitchFail"
- >
-Auflösung konnte nicht auf [RESX] x [RESY] gesetzt werden
- </notification>
-
- <notification
-
- name="ErrorUndefinedGrasses"
- >
-Fehler: Nicht definierte Gräser: [SPECIES]
- </notification>
-
- <notification
-
- name="ErrorUndefinedTrees"
- >
-Fehler: Nicht definierte Bäume: [SPECIES]
- </notification>
-
- <notification
-
- name="CannotSaveWearableOutOfSpace"
- >
-„[NAME]“ konnte nicht in Kleidungsdatei gespeichert werden. Geben Sie Speicherplatz auf dem Computer frei und speichern Sie das Kleidungsstück erneut.
- </notification>
-
- <notification
-
- name="CannotSaveToAssetStore"
- >
-[NAME] kann nicht in Zentral-Asset-Speicher geladen werden.
-Dies ist ein temporärer Fehler. Bitte passen Sie das Kleidungsstück in einigen Minuten noch einmal an und speichern Sie es erneut.
-
-Tritt dieses Problem wiederholt auf, klicken Sie auf das Pulldown-Menü „Hilfe“ &gt; „Fehler melden“ und geben Sie Details zu Ihrem Netzwerk-Setup an.
- </notification>
-
- <notification
-
- name="YouHaveBeenLoggedOut"
- >
-Sie wurden von [SECOND_LIFE] abgemeldet:
- [MESSAGE]
-Klicken Sie auf „IM &amp; Chat anzeigen“, um vorhandene Nachrichten und Chat weiterhin anzuzeigen. Klicken Sie andernfalls auf „Beenden“, um [SECOND_LIFE] sofort zu beenden.
- <usetemplate
- name="okcancelbuttons"
- notext="Beenden"
- yestext="IM &amp; Chat anzeigen"/>
- </notification>
-
- <notification
-
- name="OnlyOfficerCanBuyLand"
- >
-Landkauf für Gruppe nicht möglich:
-Sie sind nicht berechtigt, Land für die aktive Gruppe zu kaufen.
- </notification>
-
- <notification
-
- label="Freund hinzufügen"
- name="AddFriend"
- >
-Freunde können sich gegenseitig die Berechtigung erteilen, sich auf der Karte zu verfolgen und Online-Status Benachrichtigungen zu empfangen.
-
-[NAME] Freundschaft anbieten?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Freund hinzufügen"
- name="AddFriendWithMessage"
- >
-Freunde können sich gegenseitig die Berechtigung erteilen, sich auf der Karte zu verfolgen und Online-Status Benachrichtigungen zu empfangen.
-
-[NAME] Freundschaft anbieten?
- <form name="form">
- <input name="message" type="text">
-Wollen wir Freunde sein?
- </input>
- <button
-
-
- name="Offer"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Abbrechen"/>
- </form>
- </notification>
-
- <notification
-
- name="RemoveFromFriends"
- >
-Möchten Sie [FIRST_NAME] [LAST_NAME] aus Ihrer Freundesliste entfernen?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="RemoveMultipleFromFriends"
- >
-Möchten Sie mehrere Freunde aus Ihrer Freundesliste entfernen?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GodDeleteAllScriptedPublicObjectsByUser"
- >
-Möchten Sie alle geskripteten Objekte von
-** [AVATAR_NAME] **
-auf allen anderen Ländern in diesem Sim löschen?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GodDeleteAllScriptedObjectsByUser"
- >
-Möchten Sie ALLE geskripteten Objekte von
-** [AVATAR_NAME] **
-auf ALLEN LÄNDERN in diesem Sim LÖSCHEN?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GodDeleteAllObjectsByUser"
- >
-Möchten Sie ALLE Objekte (einschließlich geskriptete) von
-** [AVATAR_NAME] **
-auf ALLEN LÄNDERN in diesem Sim LÖSCHEN?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BlankClassifiedName"
- >
-Geben Sie einen Namen für die Anzeige ein.
- </notification>
-
- <notification
-
- name="MinClassifiedPrice"
- >
-Der Mindestbetrag für die Listung ist [MIN_PRICE] L$.
-
-Geben sie einen höheren Betrag ein.
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLock"
- >
-Mindestens ein ausgewähltes Objekt ist gesperrt.
-
-Möchten Sie diese Objekte löschen?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteNoCopy"
- >
-Mindestens ein ausgewähltes Objekt kann nicht kopiert werden.
-
-Möchten Sie diese Objekte löschen?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteNoOwn"
- >
-Mindestens eines der ausgewählten Objekt gehört nicht Ihnen.
-
-Möchten Sie diese Objekte löschen?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLockNoCopy"
- >
-Mindestens ein Objekt ist gesperrt.
-Mindestens ein Objekt kann nicht kopiert werden.
-
-Möchten Sie diese Objekte löschen?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLockNoOwn"
- >
-Mindestens ein Objekt ist gesperrt.
-Mindestens ein Objekt gehört nicht Ihnen.
-
-Möchten Sie diese Objekte löschen?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteNoCopyNoOwn"
- >
-Mindestens ein Objekt kann nicht kopiert werden.
-Mindestens ein Objekt gehört nicht Ihnen.
-
-Möchten Sie diese Objekte löschen?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLockNoCopyNoOwn"
- >
-Mindestens ein Objekt ist gesperrt.
-Mindestens ein Objekt kann nicht kopiert werden.
-Mindestens ein Objekt gehört nicht Ihnen.
-
-Möchten Sie diese Objekte löschen?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectTakeLock"
- >
-Mindestens ein Objekt ist gesperrt.
-
-Möchten Sie diese Objekte nehmen?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectTakeNoOwn"
- >
-Nicht alle Objekte, die Sie aufgenommen haben, gehören Ihnen.
-Wenn Sie fortfahren, werden die Rechte für den nächsten Eigentümer angewandt und Sie können die Objekte möglicherweise nicht bearbeiten oder kopieren.
-
-Möchten Sie diese Objekte nehmen?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectTakeLockNoOwn"
- >
-Mindestens ein Objekt ist gesperrt.
-Nicht alle Objekte, die Sie aufgenommen haben, gehören Ihnen.
-Wenn Sie fortfahren, werden die Rechte für den nächsten Eigentümer abgefragt und Sie können die Objekte möglicherweise nicht bearbeiten oder kopieren.
-Die aktuelle Auswahl können Sie jedoch aufnehmen.
-
-Möchten Sie diese Objekte nehmen?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CantBuyLandAcrossMultipleRegions"
- >
-Landkauf nicht möglich, da die Auswahl mehrere Regionen umfasst.
-
-Wählen Sie ein kleineres Gebiet und versuchen Sie es erneut.
- </notification>
-
- <notification
-
- name="DeedLandToGroup"
- >
-Die Schenkung dieser Parzelle setzt voraus, dass die Gruppe über ausreichende Landnutzungsrechte verfügt.
-Dem Eigentümer wird der Kaufpreis für das Land nicht rückerstattet. Bei Verkauf der übertragenen Parzelle wird der Erlös zwischen den Gruppenmitgliedern aufgeteilt.
-
-Der Gruppe „[GROUP_NAME]“
- [AREA] m² Land schenken?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="DeedLandToGroupWithContribution"
- >
-Die Schenkung dieser Parzelle setzt voraus, dass die Gruppe über ausreichende Landnutzungsrechte verfügt.
-Die Schenkung beinhaltet eine Landübertragung an die Gruppe von „[FIRST_NAME] [LAST_NAME]“.
-Dem Eigentümer wird der Kaufpreis für das Land nicht rückerstattet. Bei Verkauf der übertragenen Parzelle wird der Erlös zwischen den Gruppenmitgliedern aufgeteilt.
-
-Der Gruppe „[GROUP_NAME]“
- [AREA] m² Land schenken?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="DisplaySetToSafe"
- >
-Es wurden sichere Anzeige-Einstellungen gewählt, da die Option -safe verwendet wurde.
- </notification>
-
- <notification
-
- name="DisplaySetToRecommended"
- >
-Es wurden die für Ihre Systemkonfiguration empfohlenen Anzeige-Einstellungen gewählt.
- </notification>
-
- <notification
-
- name="ErrorMessage"
- >
-[ERROR_MESSAGE]
- </notification>
-
- <notification
-
- name="AvatarMoved"
- >
-Ihr [TYPE]-Ort ist zurzeit nicht verfügbar. [HELP]
-Sie wurden zur nächstgelegenen Region teleportiert.
- </notification>
-
- <notification
-
- name="ClothingLoading"
- >
-Ihre Kleidung wird noch heruntergeladen.
-Sie können [SECOND_LIFE] normal verwenden. Andere Benutzer können Sie korrekt dargestellt sehen.
- <form name="form">
- <ignore name="ignore"
- text="Wenn das Herunterladen von Kleidung lange dauert"/>
- </form>
- </notification>
-
- <notification
-
- name="FirstRun"
- >
-Die Installation von [SECOND_LIFE] ist abgeschlossen.
-
-Wenn Sie [SECOND_LIFE] das erste Mal verwenden, müssen Sie ein Konto anlegen, bevor Sie sich anmelden können.
-Möchten Sie auf www.secondlife.com ein Konto erstellen?
- <usetemplate
- name="okcancelbuttons"
- notext="Weiter"
- yestext="Neues Konto..."/>
- </notification>
-
- <notification
-
- name="LoginPacketNeverReceived"
- >
-Die Verbindung kann nicht hergestellt werden. Möglicherweise besteht ein Problem mit Ihrer Internetverbindung oder den Second Life-Servern.
-
-Überprüfen Sie Ihre Internetverbindung und versuchen Sie es dann erneut, oder klicken Sie auf „Hilfe“, um zu unserer Supportseite zu gelangen, oder klicken Sie auf „Teleportieren“, um nach Hause zu teleportieren.
- <form name="form">
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Help"
- text="Hilfe"/>
- <button
-
- name="Teleport"
- text="Teleportieren"/>
- </form>
- </notification>
-
- <notification
-
- name="WelcomeChooseSex"
- >
-Ihr Avatar erscheint jeden Moment.
-
-Benutzen Sie die Pfeiltasten, um sich fortzubewegen.
-Drücken Sie F1 für Hilfe oder für weitere Informationen über [SECOND_LIFE].
-Bitte wählen Sie einen männlichen oder weiblichen Avatar.
-Sie können sich später noch umentscheiden.
- <usetemplate
- name="okcancelbuttons"
- notext="Weiblich"
- yestext="Männlich"/>
- </notification>
-
- <notification
-
- name="NotEnoughCurrency"
- >
-[NAME] [PRICE] L$ Sie haben nicht genügend L$, um diese Aktion auszuführen.
- </notification>
-
- <notification
-
- name="GrantedModifyRights"
- >
-Sie verfügen über Änderungsrechte für die Objekte von [FIRST_NAME] [LAST_NAME].
- </notification>
-
- <notification
-
- name="RevokedModifyRights"
- >
-Ihnen wurden die Änderungsrechte für die Objekte von [FIRST_NAME] [LAST_NAME] entzogen.
- </notification>
-
- <notification
-
- name="FlushMapVisibilityCaches"
- >
-Der Kartencache dieser Region wird geleert.
-Diese Aktion ist nur beim Debugging sinnvoll.
-(Auf dem Produktionssystem warten Sie einfach 5 Minuten. Die Karten werden nach erneuter Anmeldung automatisch aktualisiert.)
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="OnlyCopyContentsOfSingleItem"
- >
-Es kann nur jeweils der Inhalt von einem Objekt kopiert werden.
-Wählen Sie ein einzelnes Objekt aus und versuchen Sie es erneut.
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="KickUsersFromRegion"
- >
-Alle Einwohner in dieser Region nach Hause teleportieren?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="EstateObjectReturn"
- >
-Möchten Sie wirklich alle Objekte zurückgeben, die [USER_NAME] gehören?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="InvalidTerrainBitDepth"
- >
-Die Regionstexturen konnten nicht festgelegt werden:
-Die Terraintextur [TEXTURE_NUM] hat eine ungültige Bit-Tiefe [TEXTURE_BIT_DEPTH].
-
-Ersetzen Sie die Textur [TEXTURE_NUM] mit einer Bilddatei von maximal 512x512 und 24 Bit und klicken Sie dann erneut auf „Übernehmen“.
- </notification>
-
- <notification
-
- name="InvalidTerrainSize"
- >
-Die Regionstexturen konnten nicht festgelegt werden:
-Die Terraintextur [TEXTURE_NUM] ist mit [TEXTURE_SIZE_X]x[TEXTURE_SIZE_Y] zu groß.
-
-Ersetzen Sie die Textur [TEXTURE_NUM] mit einer Bilddatei von maximal 512x512 und 24 Bit und klicken Sie dann erneut auf „Übernehmen“.
- </notification>
-
- <notification
-
- name="RawUploadStarted"
- >
-Hochladen gestartet. Je nach Verbindungsgeschwindigkeit kann der Vorgang bis zu 2 Minuten dauern.
- </notification>
-
- <notification
-
- name="ConfirmBakeTerrain"
- >
-Möchten Sie das aktuelle Terrain formen, es zum Mittelpunkt der oberen und unteren Terraingrenzen und zum Standard des „Zurücksetzen“-Tools machen?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="MaxAllowedAgentOnRegion"
- >
-Es sind maximal [MAX_AGENTS] zulässige Einwohner erlaubt.
- </notification>
-
- <notification
-
- name="MaxBannedAgentsOnRegion"
- >
-Es sind maximal [MAX_BANNED] verbannte Einwohner erlaubt.
- </notification>
-
- <notification
-
- name="MaxAgentOnRegionBatch"
- >
-Fehler beim Versuch, [NUM_ADDED] Agenten hinzuzufügen:
-Überschreitet den Grenzwert [MAX_AGENTS] [LIST_TYPE] um [NUM_EXCESS].
- </notification>
-
- <notification
-
- name="MaxAllowedGroupsOnRegion"
- >
-Es sind maximal [MAX_GROUPS] zulässige Gruppen erlaubt.
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="Formen"/>
- </notification>
-
- <notification
-
- name="MaxManagersOnRegion"
- >
-Es sind maximal [MAX_MANAGER] verbannte Einwohner erlaub.
- </notification>
-
- <notification
-
- name="OwnerCanNotBeDenied"
- >
-Der Eigentümer des Grundstücks kann nicht zur Liste der „Verbannten Einwohner“ hinzugefügt werden.
- </notification>
-
- <notification
-
- name="CanNotChangeAppearanceUntilLoaded"
- >
-Das Aussehen lässt sich erst ändern, wenn Kleider und Form/Gestalt geladen sind.
- </notification>
-
- <notification
-
- name="ClassifiedMustBeAlphanumeric"
- >
-Der Name der Anzeige muss mit einem Buchstaben von A bis Z oder einer Ziffer beginnen. Satzzeichen sind nicht erlaubt.
- </notification>
-
- <notification
-
- name="CantSetBuyObject"
- >
-„Objekt kaufen“ nicht möglich, da das Objekt nicht zum Verkauf freigegeben ist.
-Geben Sie das Objekt zum Verkauf frei und versuchen Sie es erneut.
- </notification>
-
- <notification
-
- name="FinishedRawDownload"
- >
-Raw-Terrain-Datei wurde heruntergeladen nach:
-[DOWNLOAD_PATH].
- </notification>
-
- <notification
-
- name="DownloadWindowsMandatory"
- >
-Eine neue Version von [SECOND_LIFE] ist verfügbar.
-[MESSAGE]
-Sie müssen das Update herunterladen, um [SECOND_LIFE] weiter verwenden zu können.
- <usetemplate
- name="okcancelbuttons"
- notext="Beenden"
- yestext="Herunterladen"/>
- </notification>
-
- <notification
-
- name="DownloadWindows"
- >
-Eine aktualisierte Version von [SECOND_LIFE] ist verfügbar.
-[MESSAGE]
-Dieses Update ist nicht erforderlich, für bessere Leistung und Stabilität sollte es jedoch installiert werden.
- <usetemplate
- name="okcancelbuttons"
- notext="Weiter"
- yestext="Herunterladen"/>
- </notification>
-
- <notification
-
- name="DownloadWindowsReleaseForDownload"
- >
-Eine aktualisierte Version von [SECOND_LIFE] ist verfügbar.
-[MESSAGE]
-Dieses Update ist nicht erforderlich, für bessere Leistung und Stabilität sollte es jedoch installiert werden.
- <usetemplate
- name="okcancelbuttons"
- notext="Weiter"
- yestext="Herunterladen"/>
- </notification>
-
- <notification
-
- name="DownloadMacMandatory"
- >
-Eine neue Version von [SECOND_LIFE] ist verfügbar.
-[MESSAGE]
-Sie müssen das Update herunterladen, um [SECOND_LIFE] weiter verwenden zu können.
-
-In Ihren Anwendungsordner herunterladen?
- <usetemplate
- name="okcancelbuttons"
- notext="Beenden"
- yestext="Herunterladen"/>
- </notification>
-
- <notification
-
- name="DownloadMac"
- >
-Eine aktualisierte Version von [SECOND_LIFE] ist verfügbar.
-[MESSAGE]
-Dieses Update ist nicht erforderlich, für bessere Leistung und Stabilität sollte es jedoch installiert werden.
-
-In Ihren Anwendungsordner herunterladen?
- <usetemplate
- name="okcancelbuttons"
- notext="Weiter"
- yestext="Herunterladen"/>
- </notification>
-
- <notification
-
- name="DownloadMacReleaseForDownload"
- >
-Eine aktualisierte Version von [SECOND_LIFE] ist verfügbar.
-[MESSAGE]
-Dieses Update ist nicht erforderlich, für bessere Leistung und Stabilität sollte es jedoch installiert werden.
-
-In Ihren Anwendungsordner herunterladen?
- <usetemplate
- name="okcancelbuttons"
- notext="Weiter"
- yestext="Herunterladen"/>
- </notification>
-
- <notification
-
- name="DeedObjectToGroup"
- >
-Bei Übertragung dieses Objekts erhält die Gruppe:
-* An das Objekt bezahlte L$
- <usetemplate
- ignoretext="Beim Übertragen von Objekten an Gruppen"
- name="okcancelignore"
- notext="Abbrechen"
- yestext="Übertragung"/>
- </notification>
-
- <notification
-
- name="WebLaunchExternalTarget"
- >
-Den System-Webbrowser öffnen, um diesen Inhalt anzuzeigen?
- <usetemplate
- ignoretext="Wenn der System-Webbrowser zur Anzeige einer Webseite geöffnet wird"
- name="okcancelignore"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchJoinNow"
- >
-Zu www.secondlife.com, um Ihr Konto zu verwalten?
- <usetemplate
- ignoretext="Beim Starten eines Browsers, um Ihr Konto zu verwalten"
- name="okcancelignore"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchBugReport101"
- >
-Informieren Sie sich im [SECOND_LIFE] Wiki, wie man Fehler richtig meldet.
- <usetemplate
- ignoretext="Beim Starten eines Browsers, um das Fehlermeldungs-Wiki anzuzeigen"
- name="okcancelignore"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchSecurityIssues"
- >
-Informieren Sie sich im [SECOND_LIFE] Wiki, wie man Sicherheitsprobleme richtig meldet.
- <usetemplate
- ignoretext="Beim Starten eines Browsers, um das Sicherheitsfragen-Wiki anzuzeigen"
- name="okcancelignore"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchQAWiki"
- >
-Besuchen Sie das [SECOND_LIFE] QA-Wiki.
- <usetemplate
- ignoretext="Beim Starten eines Browsers, um das QA-Wiki anzuzeigen"
- name="okcancelignore"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchPublicIssue"
- >
-Im [SECOND_LIFE] Allgemeine-Fragen-Tracker können Sie Fehler und andere Probleme melden.
- <usetemplate
- ignoretext="Beim Starten eines Browsers, um den Allgemeine Probleme Tracker anzuzeigen"
- name="okcancelignore"
- notext="Abbrechen"
- yestext="Gehe zu Seite"/>
- </notification>
-
- <notification
-
- name="WebLaunchPublicIssueHelp"
- >
-Informieren Sie sich im [SECOND_LIFE] Wiki über den Allgemeine Fragen-Tracker.
- <usetemplate
- ignoretext="Beim Starten eines Browsers, um das Allgemeine Fragen-Wiki anzuzeigen"
- name="okcancelignore"
- notext="Abbrechen"
- yestext="Gehe zu Seite"/>
- </notification>
-
- <notification
-
- name="WebLaunchSupportWiki"
- >
-Im offiziellen Linden-Blog finden Sie die neuesten Nachrichten und Informationen.
- <usetemplate
- ignoretext="Beim Starten eines Browsers, um das Blog anzuzeigen"
- name="okcancelignore"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchLSLGuide"
- >
-Zur Scripting-Anleitung, um Scripting-Hilfe zu erhalten?
- <usetemplate
- ignoretext="Beim Starten eines Browsers, um die Scripting-Anleitung anzuzeigen"
- name="okcancelignore"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchLSLWiki"
- >
-Zum LSL-Portal, um Scripting-Hilfe zu erhalten?
- <usetemplate
- ignoretext="Beim Starten eines Browsers, um das LSL-Portal anzuzeigen"
- name="okcancelignore"
- notext="Abbrechen"
- yestext="Gehe zu Seite"/>
- </notification>
-
- <notification
-
- name="ReturnToOwner"
- >
-Möchten Sie die ausgewählten Objekte an ihre Eigentümer zurückgeben? Transferierbare übertragene Objekte werden ihren früheren Eigentümern zurückgegeben.
-
-*WARNUNG* Nicht transferierbare übertragene Objekte werden dabei gelöscht!
- <usetemplate
- ignoretext="Beim Zurückgeben von Objekten an ihre Eigentümer"
- name="okcancelignore"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GroupLeaveConfirmMember"
- >
-Sie sind Mitglied der Gruppe [GROUP].
-Diese Gruppe verlassen?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmKick"
- >
-Möchten Sie WIRKLICH alle Benutzer aus dem Grid werfen?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="Alle Benutzer hinauswerfen"/>
- </notification>
-
- <notification
-
- name="MuteLinden"
- >
-Lindens können nicht stummgeschaltet werden.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Objekt nach Name stummschalten fehlgeschlagen"
- name="MuteByNameFailed"
- >
-Dieser Name ist bereits stummgeschaltet.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="RemoveItemWarn"
- >
-Diese Aktion ist zwar erlaubt, aber beim Löschen von Inhalten wird das Objekt beschädigt. Möchten Sie dieses Element löschen?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CantOfferCallingCard"
- >
-Sie können gerade keine Visitenkarte übergeben. Warten Sie kurz und versuchen Sie es dann noch einmal.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CantOfferFriendship"
- >
-Sie können gerade keine Freundschaft anbieten. Warten Sie kurz und versuchen Sie es dann noch einmal.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BusyModeSet"
- >
-Beschäftigt-Modus aktiviert.
-Chat und Instant Messages werden ausgeblendet. Instant Messages erhalten Ihre Beschäftigt-Antwort. Alle Teleport-Angebote werden ausgeschlagen. Alle Inventar-Angebote werden in den Papierkorb verschoben.
- <usetemplate
- ignoretext="Beim Aktivieren des Beschäftigt-Modus"
- name="okignore"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="JoinedTooManyGroupsMember"
- >
-Sie sind bereits in zu vielen Gruppen Mitglied und können keiner weiteren beitreten. Bitte verlassen Sie eine Gruppe, bevor Sie dieser beitreten oder lehnen Sie das Angebot ab.
-Die Option zum Austritt aus einer Gruppe finden Sie unter „Bearbeiten“ &gt; „Gruppen...“.
-[NAME] hat Sie eingeladen, einer Gruppe beizutreten.
-[INVITE]
- <usetemplate
- name="okcancelbuttons"
- notext="Ablehnen"
- yestext="Beitreten"/>
- </notification>
-
- <notification
-
- name="KickUser"
- >
-Beim Hinauswerfen dieses Benutzers welche Meldung anzeigen?
- <form name="form">
- <input name="message" type="text">
-Sie wurden von einem Administrator abgemeldet.
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Abbrechen"/>
- </form>
- </notification>
-
- <notification
-
- name="KickAllUsers"
- >
-Beim Hinauswerfen aller Personen vom Grid welche Meldung anzeigen?
- <form name="form">
- <input name="message" type="text">
-Sie wurden von einem Administrator abgemeldet.
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Abbrechen"/>
- </form>
- </notification>
-
- <notification
-
- name="FreezeUser"
- >
-Beim Einfrieren dieses Benutzers welche Meldung anzeigen?
- <form name="form">
- <input name="message" type="text">
-Sie wurden eingefroren. Bewegen oder Chatten ist nicht mehr möglich. Ein Administrator wird sich über IM an Sie wenden
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Abbrechen"/>
- </form>
- </notification>
-
- <notification
-
- name="UnFreezeUser"
- >
-Beim Auftauen dieses Benutzers welche Meldung anzeigen?
- <form name="form">
- <input name="message" type="text">
-Sie sind nicht mehr eingefroren.
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Abbrechen"/>
- </form>
- </notification>
-
- <notification
-
- name="OfferTeleport"
- >
-Teleport an Ihre Position mit der folgenden Meldung anbieten?
- <form name="form">
- <input name="message" type="text">
-Triff mich in [REGION]
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Abbrechen"/>
- </form>
- </notification>
-
- <notification
-
- name="OfferTeleportFromGod"
- >
-Benutzer an Ihrem Standort herbeirufen?
- <form name="form">
- <input name="message" type="text">
-Triff mich in [REGION]
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Abbrechen"/>
- </form>
- </notification>
-
- <notification
-
- name="TeleportFromLandmark"
- >
-Möchten Sie sich wirklich teleportieren?
- <usetemplate
- ignoretext="Beim Teleportieren von einer Landmarke im Inventar"
- name="okcancelignore"
- notext="Abbrechen"
- yestext="Teleportieren"/>
- </notification>
-
- <notification
-
- label="Nachricht an alle auf diesem Grundstück"
- name="MessageEstate"
- >
-Geben Sie eine kurze Nachricht ein, die an jede Person auf Ihrem Grundstück gesendet wird.
- <form name="form">
- <input name="message" type="text"/>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Abbrechen"/>
- </form>
- </notification>
-
- <notification
-
- label="Linden-Grundstück ändern"
- name="ChangeLindenEstate"
- >
-Sie sind im Begriff, ein Grundstück in Linden-Besitz (Mainland, Teen-Raster, Orientierung usw.) zu verändern.
-
-Dies ist ÄUSSERST GEFÄHRLICH, da es grundlegende Auswirkungen auf das Benutzererlebnis hat. Auf dem Mainland werden tausende Regionen geändert, was den Spaceserver stark belastet.
-
-Fortfahren?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Zugang zu Linden-Grundstück ändern"
- name="ChangeLindenAccess"
- >
-Sie sind im Begriff, die Zugangsliste für ein Grundstück in Linden-Besitz (Mainland, Teen-Raster, Orientierung usw.) zu verändern.
-
-Dies ist GEFÄHRLICH und sollte nur erfolgen, um Objekte/L$ per Hack in und aus dem Raster zu entfernen.
-Tausende Regionen werden verändert und der Spaceserver wird dadurch stark belastet.
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Grundstück wählen"
- name="EstateAllowedAgentAdd"
- >
-Nur für dieses Grundstück oder für alle [ALL_ESTATES] zur Erlaubnisliste hinzufügen?
- <usetemplate
- canceltext="Abbrechen"
- name="yesnocancelbuttons"
- notext="Alle Grundstücke"
- yestext="Dieses Grundstück"/>
- </notification>
-
- <notification
-
- label="Grundstück wählen"
- name="EstateAllowedAgentRemove"
- >
-Nur für dieses Grundstück oder für alle [ALL_ESTATES] von Erlaubnisliste entfernen?
- <usetemplate
- canceltext="Abbrechen"
- name="yesnocancelbuttons"
- notext="Alle Grundstücke"
- yestext="Dieses Grundstück"/>
- </notification>
-
- <notification
-
- label="Grundstück wählen"
- name="EstateAllowedGroupAdd"
- >
-Nur für dieses Grundstück oder für alle [ALL_ESTATES] zur Gruppen-Erlaubnisliste hinzufügen?
- <usetemplate
- canceltext="Abbrechen"
- name="yesnocancelbuttons"
- notext="Alle Grundstücke"
- yestext="Dieses Grundstück"/>
- </notification>
-
- <notification
-
- label="Grundstück wählen"
- name="EstateAllowedGroupRemove"
- >
-Nur für dieses Grundstück oder für alle [ALL_ESTATES] von Gruppen-Erlaubnisliste entfernen?
- <usetemplate
- canceltext="Abbrechen"
- name="yesnocancelbuttons"
- notext="Alle Grundstücke"
- yestext="Dieses Grundstück"/>
- </notification>
-
- <notification
-
- label="Grundstück wählen"
- name="EstateBannedAgentAdd"
- >
-Zugang nur für dieses Grundstück oder für [ALL_ESTATES] verweigern?
- <usetemplate
- canceltext="Abbrechen"
- name="yesnocancelbuttons"
- notext="Alle Grundstücke"
- yestext="Dieses Grundstück"/>
- </notification>
-
- <notification
-
- label="Grundstück wählen"
- name="EstateBannedAgentRemove"
- >
-Einwohner nur für dieses Grundstück oder für alle [ALL_ESTATES] von der Bannliste entfernen?
- <usetemplate
- canceltext="Abbrechen"
- name="yesnocancelbuttons"
- notext="Alle Grundstücke"
- yestext="Dieses Grundstück"/>
- </notification>
-
- <notification
-
- label="Grundstück wählen"
- name="EstateManagerAdd"
- >
-Verwalter nur für dieses Grundstück oder für [ALL_ESTATES] festlegen?
- <usetemplate
- canceltext="Abbrechen"
- name="yesnocancelbuttons"
- notext="Alle Grundstücke"
- yestext="Dieses Grundstück"/>
- </notification>
-
- <notification
-
- label="Grundstück wählen"
- name="EstateManagerRemove"
- >
-Verwalter nur für dieses Grundstück oder für [ALL_ESTATES] entfernen?
- <usetemplate
- canceltext="Abbrechen"
- name="yesnocancelbuttons"
- notext="Alle Grundstücke"
- yestext="Dieses Grundstück"/>
- </notification>
-
- <notification
-
- label="Rauswurf bestätigen"
- name="EstateKickUser"
- >
-Benutzer [EVIL_USER] von diesem Grundstück werfen?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="EstateChangeCovenant"
- >
-Möchten Sie den Grundstücksvertrag wirklich ändern?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ProblemImportingEstateCovenant"
- >
-Problem beim Import des Grundstückvertrags.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ProblemAddingEstateManager"
- >
-Es gibt Probleme beim Hinzufügen eines neuen Grundstücksverwalters. Bei mindestens einem Grundstück ist die Verwalterliste voll.
- </notification>
-
- <notification
-
- name="ProblemAddingEstateGeneric"
- >
-Problem beim Hinzufügen zu dieser Grundstücksliste. Bei mindestens einem Grundstück ist die Liste voll.
- </notification>
-
- <notification
-
- name="UnableToLoadNotecard"
- >
-Notizkarten-Asset konnte nicht geladen werden.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="NotAllowedToViewNotecard"
- >
-Unzureichende Rechte, um die mit der angeforderten Asset-ID verbundene Notizkarte anzuzeigen.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="MissingNotecardAssetID"
- >
-Asset-ID für Notizkarte fehlt in Datenbank.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="PublishClassified"
- >
-Hinweis: Anzeigengebühren werden nicht zurückerstattet.
-
-Anzeige für [AMOUNT] L$ veröffentlichen?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
-
-
-
-
- <notification
-
- label="Neustart bestätigen"
- name="ConfirmRestart"
- >
-Möchten Sie diese Region in 2 Minuten neu starten?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Nachricht an alle in dieser Region"
- name="MessageRegion"
- >
-Geben Sie eine kurze Nachricht ein, die an jede Person in dieser Region gesendet wird.
- <form name="form">
- <input name="message" type="text"/>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Abbrechen"/>
- </form>
- </notification>
-
- <notification
-
- label="Terraformen blockieren"
- name="HelpRegionBlockTerraform"
- >
-Wenn diese Option aktiviert ist, können Landeigentümer Ihr Land nicht terraformen. Ausgenommen davon ist die parzelleneigene Einstellung „Terrain bearbeiten“.
-
-Standard: deaktiviert
- </notification>
-
- <notification
-
- label="Fliegen blockieren"
- name="HelpRegionBlockFly"
- >
-Wenn diese Option aktiviert ist, ist Fliegen in dieser Region nicht möglich, auch wenn für die Parzelle eine andere Einstellung aktiv ist.
-
-Standard: deaktiviert
- </notification>
-
- <notification
-
- label="Schaden zulassen"
- name="HelpRegionAllowDamage"
- >
-Wenn diese Option aktiviert ist, ist das Gesundheitssystem auf allen Parzellen aktiviert, unabhängig von den Parzelleneinstellungen. Ist die Option links deaktiviert, können die Parzelleneigentümer das Gesundheitssystem individuell einschalten.
-
-Standard: deaktiviert
- </notification>
-
- <notification
-
- label="Avatar-Limit"
- name="HelpRegionAgentLimit"
- >
-Legt die maximale Anzahl an Avataren für diese Region fest.
-Die Leistung hängt von der Anzahl der Avatare in der Region ab.
-
-Standard: 40
- </notification>
-
- <notification
-
- label="Objektbonus"
- name="HelpRegionObjectBonus"
- >
-Der Objektbonus ist ein Multiplikator für die Anzahl an zulässigen Primitiven auf einer Parzelle. Gültig sind Werte zwischen 1 und 10. „1“ erlaubt auf einer 512 qm großen Parzelle 117 Objekte. „2“ erlaubt auf einer 512 qm großen Parzelle 234 Objekte, also die doppelte Menge. Die maximale Objektanzahl in einer Region beträgt unabhängig vom Objektbonus 15.000.
-Eine nachträglich Senkung des Objektbonus führt dazu, dass Objekte zurückgegeben oder gelöscht werden.
-
-Standard: 1.0
- </notification>
-
-
-
-
- <notification
-
- label="Stoßen beschränken"
- name="HelpRegionRestrictPushObject"
- >
-Aktivieren sie diese Option, um in der gesamten Region das Stoßen zu beschränken. Wenn aktiviert, können Einwohner nur von sich selbst oder vom Parzelleneigentümer gestoßen werden.
-(Stoßen meint die LSL-Funktion llPushObject().)
-
-Standard: deaktiviert
- </notification>
-
- <notification
-
- label="Parzelle zusammenlegen/teilen"
- name="HelpParcelChanges"
- >
-Dieses Kontrollkästchen steuert, ob Parzellen des Grundstückseigentümers zusammengelegt bzw. unterteilt werden können. Wenn deaktiviert:
- * Nur Grundstückseigentümer bzw. –verwalter können Parzellen zusammenlegen/teilen. * Sie können nur Parzellen zusammenlegen/teilen, die dem Eigentümer oder einer Gruppe gehören, bei der sie entsprechende Gruppenrechte innehaben.
-Wenn aktiviert:
- * Die Parzelleneigentümer können ihre Parzellen selbst zusammenlegen/teilen.
- * Parzellen in Gruppeneigentum können von Mitgliedern mit den entsprechenden Rechten zusammengelegt bzw. unterteilt werden.
-
-Standard: aktiviert
- </notification>
-
- <notification
-
- label="Nicht in Suche anzeigen"
- name="HelpRegionSearch"
- >
-Wenn Sie diese Option auswählen, können Parzelleneigentümer ihre Parzellen nicht in der Suche anzeigen lassen
-
-Standard: deaktiviert
- </notification>
-
- <notification
-
- label="Alterseinstufung der Region ändern"
- name="RegionMaturityChange"
- >
-Die Alterseinstufung dieser Region wurde aktualisiert.
-Es kann eine Weile dauern, bis sich die Änderung auf die Karte auswirkt.
- </notification>
-
- <notification
-
- label="Landwiederverkauf"
- name="HelpRegionLandResell"
- >
-Grundstückseigentümer und -verwalter können jedes Land im Besitz des Grundstückseigentümers verkaufen.
-Ist diese Option deaktiviert, können Käufer ihr Land in dieser Region nicht weiterverkaufen.
-Ist die Option aktiviert, können Käufer ihr Land in dieser Region weiterverkaufen.
-
-Standard: deaktiviert
- </notification>
-
- <notification
-
- label="Skripts deaktivieren"
- name="HelpRegionDisableScripts"
- >
-Schlechte Sim-Performance ist oftmals auf ein Skript zurückzuführen. Öffnen Sie die Statistikleiste (Strg-Umschalt-1). Sehen Sie sich den Wert für „Simulator Physics FPS“ (Simulator Physik-FPS) an.
-Wenn der Wert unter 45 liegt, öffnen Sie den Bereich „Time“ (Zeit) ganz unten in der Statistikleiste. Wenn der Wert für „Script Time“ (Skriptzeit) 25 ms oder höher ist, klicken Sie auf „Top-Skripts“. Der Name und die Position der Skripts, die für die schlechte Performance verantwortlich sind, werden angezeigt.
-Wenn Sie das Kontrollkästchen „Skripts deaktivieren“ aktivieren und auf „Übernehmen“ klicken, werden alle Skripts in der Region zeitweilig deaktiviert. Dieser Schritt ist eventuell notwendig, damit Sie an die Position des gemeldeten „Top-Skripts“ reisen können. Sobald Sie dort angekommen sind, sollten Sie das Skript auf die Ursache des Problems hin untersuchen. Möglicherweise müssen Sie sich an den Skript-Eigentümer wenden oder das Objekt löschen bzw. zurückgeben. Um die Skripte in der Region wieder zu aktivieren, deaktivieren Sie „Skript deaktivieren“ und klicken Sie auf „Übernehmen“.
-
-Standard: deaktiviert
- </notification>
-
- <notification
-
- label="Kollisionen deaktivieren"
- name="HelpRegionDisableCollisions"
- >
-Schlechte Sim-Performance ist oftmals auf physische Objekte zurückzuführen.
-Öffnen Sie die Statistikleiste (Strg-Umschalt-1). Sehen Sie sich den Wert „Simulator Physics FPS“ an. Liegt dieser unter 45, öffnen Sie unten in der Statistikleiste den „Time“-Bereich. Liegt die „Sim Time (Physics)“ bei 20 ms oder darüber, klicken Sie auf „Top-Kollisionsobjekte“.
-Der Name und der Standort der physischen Objekte, die das Problem verursachen, werden angezeigt.
-
-Wenn Sie das Kontrollkästchen „Kollisionen deaktivieren“ aktivieren und auf „Übernehmen“ klicken, werden alle Objekt-Objekt-Kollisionen in der Region zeitweilig deaktiviert. Dieser Schritt ist eventuell notwendig, damit Sie an die Position des gemeldeten „Top-Kollisionsobjekts“ reisen können. Überprüfen Sie das Objekt an der angegebenen Position.
-Kollidiert es ständig mit anderen Objekten? Wenden Sie sich eventuell an den Eigentümer des Objekts, löschen Sie es oder geben Sie es zurück.
-Deaktivieren Sie die Option „Kollisionen deaktivieren“ und klicken Sie auf „Übernehmen“, um Kollisionen in dieser Region wieder zu aktivieren.
-
-Standard: deaktiviert
- </notification>
-
- <notification
-
- label="Physik deaktivieren"
- name="HelpRegionDisablePhysics"
- >
-Das Deaktivieren der Physik ähnelt dem Deaktivieren von Kollisionen, außer dass die gesamte Physiksimulation ausgeschaltet wird. Das hat nicht nur zur Folge, dass Objekte nicht mehr kollidieren, sondern dass Avatare sich nicht mehr bewegen können.
-
-Diese Option sollte nur verwendet werden, wenn das Deaktivieren von Kollisionen keine ausreichende Leistungssteigerung bringt, um Physikprobleme in der Region oder die Top-Kollisionsobjekte zu erkennen.
-
-Schalten Sie die Physiksimulation hinterher wieder ein. Andernfalls können sich Avatare nicht mehr bewegen.
-
-Standard: deaktiviert
- </notification>
-
- <notification
-
- label="Top-Kollisionsobjekte"
- name="HelpRegionTopColliders"
- >
-Zeigt eine Liste der Objekte mit den potenziell meisten Objekt-Objekt-Kollisionen an. Diese Objekte können die Leistung beeinträchtigen. Wählen Sie „Ansicht“ &gt; „Statistikleiste“ aus und sehen Sie unter „Simulator“ &gt; „Time“ &gt; „Sim Time (Physics)“ nach, ob die Physikberechnung länger als 20 ms dauert.
- </notification>
-
- <notification
-
- label="Top-Skripts"
- name="HelpRegionTopScripts"
- >
-Zeigt eine Liste der Objekte an, die die meiste Zeit benötigen, um LSL-Skripts auszuführen. Diese Objekte können die Leistung beeinträchtigen.
-Wählen Sie „Ansicht“ &gt; „Statistikleiste“ und sehen Sie unter „Simulator“ &gt; „Time“ &gt; „Script Time“ nach, ob mehr als 25 ms für Skripts benötigt werden.
- </notification>
-
- <notification
-
- label="Region neu starten"
- name="HelpRegionRestart"
- >
-Starten Sie den Serverprozess für diese Region nach der 2-Minuten-Warnung neu. Die Verbindung aller Einwohner in dieser Region wird getrennt. Die Region wird gespeichert und sollte nach 90 Sekunden wieder verfügbar sein.
-
-Der Neustart der Region behebt die meisten Leistungs-probleme, sollte aber nur nach Anweisung erfolgen.
- </notification>
-
- <notification
-
- label="Wasserhöhe"
- name="HelpRegionWaterHeight"
- >
-Die Höhe der Wasserlinie in Metern. Liegt dieser Wert unter 20 und haben Sie Wasser nahe am Rand der Welt oder „offenes“ Wasser definiert, wird eine deutliche Lücke sichtbar.
-
-Standard: 20
- </notification>
-
- <notification
-
- label="Obere Terraingrenze"
- name="HelpRegionTerrainRaise"
- >
-Der maximale Betrag in Metern, um den Parzelleneigentümer ihr Terrain über die Standardhöhe des „geformten“ Terrains erhöhen können.
-
-Standard: 4
- </notification>
-
- <notification
-
- label="Untere Terraingrenze"
- name="HelpRegionTerrainLower"
- >
-Der maximale Betrag in Metern, um den Parzelleneigentümer ihr Terrain unter die Standardhöhe des „geformten“ Terrains absenken können.
-
-Standard: -4
- </notification>
-
- <notification
-
- label="RAW-Terrain hochladen"
- name="HelpRegionUploadRaw"
- >
-Mit dieser Schaltfläche laden Sie eine RAW-Datei in die Region hoch, in der Sie sich befinden.
-Die Datei muss die korrekten Maße (RGB, 256x256) und 13 Kanäle haben. Um eine neue Terraindatei zu erstellen, laden Sie am besten die vorhandene RAW-Datei herunter. Beginnen Sie damit, den Rot-Kanal (Höhe des Landes) zu bearbeiten und laden Sie die Datei wieder hoch.
-
-Der Ladevorgang kann bis zu 45 Sekunden dauern. Beachten Sie, dass beim Hochladen einer Terraindatei die Objekte auf dem Land *nicht* verschoben werden, sondern nur das Land und die mit den Parzellen verbundenen Berechtigungen. Dies kann dazu führen, dass Objekte unter dem Terrain verschwinden.
-
-Weitere Informationen zur Bearbeitung der Höhendaten der Region enthält die F1-Hilfe.
- </notification>
-
- <notification
-
- label="RAW-Terrain herunterladen"
- name="HelpRegionDownloadRaw"
- >
-Mit dieser Schaltfläche laden Sie eine Datei herunter, welche die Höhendaten, Maße, den Verkaufsstatus der Parzelle und einige Parzellenrechte für diese Region enthält. Wenn Sie diese Datei in einem Programm wie Photoshop öffnen, müssen Sie die Bilddaten eingeben. Diese sind: RGB, 256x256 mit 13 Kanälen. Anders lässt sich diese Terraindatei nicht öffnen.
-
-Weitere Informationen zur Bearbeitung der Höhendaten der Region enthält die F1-Hilfe.
- </notification>
-
- <notification
-
- label="Grundstücksonne verwenden"
- name="HelpRegionUseEstateSun"
- >
-Aktivieren Sie diese Option, um in dieser Region denselben Sonnenstand wie auf dem restlichen Grundstück einzustellen.
-
-Standard: aktiviert
- </notification>
-
- <notification
-
- label="Sonne fest"
- name="HelpRegionFixedSun"
- >
-Aktivieren Sie diese Option, um den Sonnenstand auf die im Regler definierte Position festzulegen und die Animation auszuschalten.
-
-Standard: deaktiviert
- </notification>
-
- <notification
-
- label="Terrain formen"
- name="HelpRegionBakeTerrain"
- >
-Mit dieser Schaltfläche speichern Sie die aktuelle Terrain-Form als neuen Standard für die Region. Nach der Formung können Sie und andere das Land mit der Option „Terrain bearbeiten“ &gt; „Zurücksetzen“ in den ursprünglichen Zustand zurückversetzen. Das geformte Terrain ist auch das Zentrum für die oberen und unteren Terraingrenzen.
- </notification>
-
- <notification
-
- label="Grundstücksverwalter"
- name="HelpEstateEstateManager"
- >
-Ein Grundstücksverwalter ist ein Einwohner, dem Sie die Kontrolle über die Regions- und Grundstückseinstellungen übertragen haben. Ein Grundstücksverwalter kann alle Einstellungen ändern, außer das Hochladen, Herunterladen und Formen von Terrain. Vor allem kann er Einwohner auf dem Grundstück erlauben und davon verbannen.
-
-Nur der Eigentümer kann den Grundstücksverwalter bestimmen und entlassen. Der Verwalter hat dieses Recht nicht. Wählen Sie nur vertrauenswürdige Einwohner als Grundstücksverwalter, da Sie letztlich für deren Handlungen verantwortlich sind.
- </notification>
-
- <notification
-
- label="Globale Zeit verwenden"
- name="HelpEstateUseGlobalTime"
- >
-Aktivieren Sie diese Option, um auf Ihrem Grundstück denselben Sonnenstand wie auf dem Linden-„Mainland“ einzustellen.
-
-Standard: aktiviert
- </notification>
-
- <notification
-
- label="Sonne fest"
- name="HelpEstateFixedSun"
- >
-Aktivieren Sie diese Option, um den Sonnenstand auf die im Regler definierte Position festzulegen und die Animation auszuschalten.
- </notification>
-
- <notification
-
- label="Öffentlich"
- name="HelpEstateExternallyVisible"
- >
-Aktivieren Sie diese Option, um Einwohnern den Zugang zu diesem Grundstück zu erlauben, ohne auf der Zugangsliste zu stehen.
-
-Standard: aktiviert
- </notification>
-
- <notification
-
- label="Direktteleport zulassen"
- name="HelpEstateAllowDirectTeleport"
- >
-Wenn aktiviert, können sich Einwohner an jede Stelle auf Ihrem Grundstück teleportieren. Wenn deaktiviert, werden Einwohner zum nächstgelegenen Telehub teleportiert.
-
-Standard: deaktiviert
- </notification>
-
- <notification
-
- label="Zugang erlauben"
- name="HelpEstateAllowResident"
- >
-Der Zugang zu diesem Grundstück wird auf die hier aufgeführten Einwohner und Gruppen beschränkt. Diese Einstellung ist nur verfügbar, wenn „Öffentlich“ deaktiviert ist.
- </notification>
-
- <notification
-
- label="Gruppenzugang erlauben"
- name="HelpEstateAllowGroup"
- >
-Der Zugang zu diesem Grundstück wird auf die hier aufgeführten Einwohner und Gruppen beschränkt. Diese Einstellung ist nur verfügbar, wenn „Öffentlich“ deaktiviert ist.
- </notification>
-
- <notification
-
- label="E-Mail-Adresse für Missbrauchsmeldungen"
- name="HelpEstateAbuseEmailAddress"
- >
-Geben Sie hier eine E-Mail-Adresse ein, an die Missbrauchsmeldungen von diesem Grundstück gesendet werden.
-Wenn dieses Feld leer ist, werden Missbrauchsmeldungen nur an Linden Lab gesendet.
- </notification>
-
- <notification
-
- label="Zugang verweigern"
- name="HelpEstateBanResident"
- >
-Einwohnern auf dieser Liste wird der Zugang zum Grundstück verwehrt, unabhängig von etwaigen anderen Einstellungen.
- </notification>
-
- <notification
-
- label="Voice-Chat erlauben"
- name="HelpEstateVoiceChat"
- >
-Die Parzellen auf diesem Grundstück können über eigene Voice-Channel verfügen, die es Einwohnern ermöglichen, sich mit anderen Personen in der Nähe zu unterhalten.
-
-Standard: deaktiviert
- </notification>
-
- <notification
-
- label="Falsche Voice-Version"
- name="VoiceVersionMismatch"
- >
-Diese Version von Second ist mit dem Voice-Chat-Feature in dieser Region nicht kompatibel. Damit Voice-Chat funktioniert, müssen Sie Second Life aktualisieren.
- </notification>
-
- <notification
-
- label="Grunstücksvertrag"
- name="HelpEstateCovenant"
- >
-Ein Grundstücksvertrag ermöglicht es Ihnen, Grundstücksparzellen zu verkaufen. Ohne Vertrag können Sie kein Land verkaufen. Wenn Sie keine Regeln festlegen oder Käufern vor dem Kauf keine anderen Informationen über das Land bereitstellen möchten, können Sie die Vertrags-Notizkarte auch leer lassen.
-
-Ein Vertrag kann Regeln und Richtlinien, kulturelle Informationen oder einfach nur Ihre eigenen Erwartungen bezüglich der Landnutzung durch den Käufer enthalten. Das kann Zoning, Baubeschränkungen, Zahloptionen und alle möglichen anderen Informationen betreffen, die der neue Eigentümer Ihrer Meinung nach kennen und akzeptieren sollte.
-
-Der Käufer muss dem Vertrag durch Auswahl dieses Kontrollkästchens zustimmen, bevor der Kauf abgeschlossen werden kann. Grundstücksverträge sind jederzeit unter „Land-Info“ für jede Parzelle einsehbar, für die ein Vertrag definiert wurde.
- </notification>
-
- <notification
-
- label="Objekte können nicht gekauft werden"
- name="BuyObjectOneOwner"
- >
-Objekte können nicht von mehreren Eigentümern gleichzeitig gekauft werden.
-Wählen Sie ein einzelnes Objekt aus und versuchen Sie es erneut.
- </notification>
-
- <notification
-
- label="Inhalte können nicht gekauft werden"
- name="BuyContentsOneOnly"
- >
-Inhalte können jeweils nur für ein Objekt gekauft werden.
-Wählen Sie ein einzelnes Objekt aus und versuchen Sie es erneut.
- </notification>
-
- <notification
-
- label="Inhalte können nicht gekauft werden"
- name="BuyContentsOneOwner"
- >
-Objekte können nicht von mehreren Eigentümern gleichzeitig gekauft werden.
-Wählen Sie ein einzelnes Objekt aus und versuchen Sie es erneut.
- </notification>
-
- <notification
-
- name="BuyOriginal"
- >
-Von [OWNER] Originalobjekt für [PRICE] L$ kaufen?
-Sie werden der Eigentümer dieses Objekts.
-Sie können das Objekt:
- Bearbeiten: [MODIFYPERM]
- Kopieren: [COPYPERM]
- Verkaufen oder weggeben: [RESELLPERM]
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyOriginalNoOwner"
- >
-Originalobjekt für [PRICE] L$ kaufen?
-Sie werden der Eigentümer dieses Objekts.
-Sie können das Objekt:
- Bearbeiten: [MODIFYPERM]
- Kopieren: [COPYPERM]
- Verkaufen oder weggeben: [RESELLPERM]
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyCopy"
- >
-Von [OWNER] Kopie für [PRICE] L$ kaufen?
-Das Objekt wird in Ihr Inventar kopiert.
-Sie können das Objekt:
- Bearbeiten: [MODIFYPERM]
- Kopieren: [COPYPERM]
- Verkaufen oder weggeben: [RESELLPERM]
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyCopyNoOwner"
- >
-Kopie für [PRICE] L$ kaufen?
-Das Objekt wird in Ihr Inventar kopiert.
-Sie können das Objekt:
- Bearbeiten: [MODIFYPERM]
- Kopieren: [COPYPERM]
- Verkaufen oder weggeben: [RESELLPERM]
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyContents"
- >
-Von [OWNER] Inhalte für [PRICE] L$ kaufen?
-Die Inhalte werden in Ihr Inventar kopiert.
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyContentsNoOwner"
- >
-Inhalte für [PRICE] L$ kaufen?
-Die Inhalte werden in Ihr Inventar kopiert.
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmPurchase"
- >
-Transaktion:
-[ACTION]
-
-Möchten Sie diesen Kauf fortsetzen?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmPurchasePassword"
- type="password">
-Transaktion:
-[ACTION]
-
-Möchten Sie diesen Kauf fortsetzen?
-Geben Sie Ihr Kennwort erneut ein und klicken Sie auf OK.
- <form name="form">
- <input
- name="message"
- type="password"/>
- <button
-
-
- name="ConfirmPurchase"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Abbrechen"/>
- </form>
- </notification>
-
- <notification
-
- name="SetPickLocation"
- >
-Hinweis:
-Sie haben die Position dieser Auswahl aktualisiert, aber die anderen Daten behalten ihre ursprünglichen Werte.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="MoveInventoryFromObject"
- >
-Sie haben „nicht kopierfähige“ Inventarobjekte ausgewählt.
-Diese Objekte werden nicht kopiert, sondern in Ihr Inventar verschoben.
-
-Inventarobjekt(e) verschieben?
- <usetemplate
- ignoretext="Beim Verschieben von nicht-kopierfähigem Inventar von Objekten"
- name="okcancelignore"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="MoveInventoryFromScriptedObject"
- >
-Sie haben „nicht kopierfähige“ Inventarobjekte ausgewählt. Diese Objekte werden nicht kopiert, sondern in Ihr Inventar verschoben.
-Da es sich um ein geskriptetes Objekt handelt, geht die Skriptfunktion beim Verschieben in das Inventar möglicherweise verloren.
-
-Inventarobjekt(e) verschieben?
- <usetemplate
- ignoretext="Beim Verschieben von nicht-kopierfähigem Inventar von geskripteten Objekten"
- name="okcancelignore"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ClickActionNotPayable"
- >
-Achtung: Die Klick-Aktion „Objekt bezahlen“ wurde definiert, sie funktioniert aber nur, wenn ein Skript mit einem money() Ereignis hinzugefügt wird.
- <form name="form">
- <ignore name="ignore"
- text="Beim Einrichten von Events mit „Objektbezahlung“ ohne Geld"/>
- </form>
- </notification>
-
- <notification
-
- name="OpenObjectCannotCopy"
- >
-Sie haben keine Berechtigung zum Kopieren von Elementen in diesem Objekt.
- </notification>
-
- <notification
-
- name="WebLaunchAccountHistory"
- >
-Zur Second Life-Website, um Ihre Kontostatistik anzuzeigen?
- <usetemplate
- ignoretext="Beim Laden der Kontostatistik-Website"
- name="okcancelignore"
- notext="Abbrechen"
- yestext="Gehe zu Seite"/>
- </notification>
-
- <notification
-
- name="ClickOpenF1Help"
- >
-Die Support-Website von Second Life öffnen?
- <usetemplate
- ignoretext="Bei Besuch der Second Life Support-Website."
- name="okcancelignore"
- notext="Abbrechen"
- yestext="Los"/>
- </notification>
-
- <notification
-
- name="ConfirmQuit"
- >
-Wirklich beenden?
- <usetemplate
- ignoretext="Beim Beenden von Second Life."
- name="okcancelignore"
- notext="Weiter"
- yestext="Beenden"/>
- </notification>
-
- <notification
-
- name="HelpReportAbuseEmailLL"
- >
-Verwenden Sie dieses Tool, um Verletzungen der Servicebedingungen und Community-Standards zu melden. Siehe:
-
-http://secondlife.com/corporate/tos.php
-http://secondlife.com/corporate/cs.php
-
-Alle gemeldeten Verletzungen der Servicebedingungen und Community-Standards werden geprüft und geklärt Sie können den Prozess im Incident Report (Vorfallsbericht) verfolgen:
-
-http://secondlife.com/support/incidentreport.php
- </notification>
-
- <notification
-
- name="HelpReportAbuseEmailEO"
- >
-WICHTIG: Diese Meldung wird an den Eigentümer der Region gesendet, in der Sie sich gerade befinden, nicht an Linden Lab.
--
-Als besonderen Service für Einwohner und Besucher übernimmt der Eigentümer dieser Region die Bearbeitung aller anfallenden Meldungen. Von diesem Standort aus eingereichte Meldungen werden nicht von Linden Lab bearbeitet. Der Eigentümer der Region bearbeitet Meldungen auf Grundlage der Richtlinien, die im für diese Region geltenden Grundstücksvertrag festgelegt sind.
-(Den Vertrag können Sie unter „Welt“ &gt; „Land-Info“ einsehen.)
--
-Das Resultat, das sich aus dieser Meldung ergibt, betrifft nur diese Region; der Einwohnerzugang zu anderen Bereichen von Second Life ist davon nicht betroffen. Nur Linden Lab kann den Zugang zu Second Life beschränken.
- </notification>
-
- <notification
-
- name="HelpReportBug"
- >
-Verwenden Sie dieses Tool *nur*, um technische Features zu melden, die nicht wie beschrieben oder erwartet funktionieren. Bitte machen Sie so viele Angaben wie möglich. Sie können auf die automatische Antwort-E-Mail antworten, um Ihre Meldung noch zu ergänzen.
-Alle gemeldeten Fehler werden geprüft und bewertet. Sie erhalten keine persönliche Antwort auf Ihre E-Mail.
--
-Bei technischen Problemen wenden Sie sich bitte an den Support unter:
-http://secondlife.com/community/support.php
--
-Hinweis: Unvollständige Meldungen werden nicht bearbeitet.
- </notification>
-
- <notification
-
- name="HelpReportAbuseSelectCategory"
- >
-Wählen Sie eine Missbrauchskategorie aus.
-Die Angabe einer Kategorie hilft uns bei der Bearbeitung des Berichts.
- </notification>
-
- <notification
-
- name="HelpReportBugSelectCategory"
- >
-Wählen Sie eine Fehler-Kategorie aus.
-Die Angabe einer Kategorie hilft uns bei der Bearbeitung des Berichts.
- </notification>
-
- <notification
-
- name="HelpReportAbuseAbuserNameEmpty"
- >
-Geben Sie den Namen des Täters ein.
-Eine genaue Angabe hilft uns, Fälle von Missbrauch zu ahnden.
- </notification>
-
- <notification
-
- name="HelpReportAbuseAbuserLocationEmpty"
- >
-Bitte geben Sie den Ort an, an dem der Missbrauch stattgefunden hat.
-Eine genaue Angabe hilft uns, Fälle von Missbrauch zu ahnden.
- </notification>
-
- <notification
-
- name="HelpReportAbuseSummaryEmpty"
- >
-Bitte geben Sie eine Zusammenfassung des Vorfalls ein.
-Eine genaue Zusammenfassung hilft uns, Fälle von Missbrauch zu ahnden.
- </notification>
-
- <notification
-
- name="HelpReportBugSummaryEmpty"
- >
-Bitte geben Sie eine Zusammenfassung des Fehlers ein.
-Eine genaue Zusammenfassung hilft uns, Fehler schneller zu beseitigen.
- </notification>
-
- <notification
-
- name="HelpReportAbuseDetailsEmpty"
- >
-Bitte geben Sie eine ausführliche Beschreibung des Vorfalls ein.
-Eine möglichst genaue Beschreibung mit Namen und Einzelheiten hilft uns, Fälle von Missbrauch zu ahnden.
- </notification>
-
- <notification
-
- name="HelpReportBugDetailsEmpty"
- >
-Bitte geben Sie eine ausführliche Fehlerbeschreibung ein.
-Eine möglichst genaue Beschreibung mit Schritten zur Reproduktion des Fehlers hilft uns, Fehler schneller zu beseitigen.
- </notification>
-
- <notification
-
- name="HelpReportAbuseContainsCopyright"
- >
-Sehr geehrte(r) Einwohner(in),
-
-Sie melden eine Urheberrechtsverletzung. Sind Sie wirklich sicher, dass Sie eine Verletzung des Urheberrechts melden möchten?
-
-1. Missbrauch melden. Wenn Sie der Meinung sind, ein Einwohner nutzt das Berechtigungssystem von Second Life auf unerlaubte Weise zu seinem Vorteil aus, indem er zum Beispiel einen CopyBot oder ähnliche Kopiertools verwendet und damit eine Urheberrechtsverletzung begeht, können Sie diesen Missbrauch melden. Das Missbrauchsteam untersucht etwaige Verstöße gegen die Second Life Community Standards oder die Nutzungsbedingungen und verhängt entsprechende Strafen. Das Missbrauchsteam ist jedoch nicht dafür zuständig, Inhalte aus der Second Life-Welt zu entfernen und reagiert auch nicht auf entsprechende Anfragen.
-
-2. Der DMCA oder das Entfernen von Inhalten. Sie können das Entfernen von Inhalten aus Second Life beantragen. Dazu MÜSSEN Sie eine Urheberrechtsverletzung gemäß den in unserer DMCA-Richtlinie unter http://secondlife.com/corporate/dmca.php dargelegten Anweisungen einreichen.
-
-Wenn Sie mit der Missbrauchmeldung jetzt fortfahren möchten, schließen Sie bitte dieses Fenster und senden Sie Ihren Bericht ein. Möglicherweise müssen Sie Kategorie „CopyBot oder Berechtigungs-Exploit“ auswählen.
-
-Vielen Dank,
-
-Linden Lab
- </notification>
-
- <notification
-
- name="FailedRequirementsCheck"
- >
-Die folgenden erforderlichen Komponenten fehlen in [FLOATER]:
-[COMPONENTS]
- </notification>
-
- <notification
-
- label="Vorhandenen Anhang ersetzen"
- name="ReplaceAttachment"
- >
-An dieser Körperstelle ist bereits ein Objekt angebracht.
-Möchten Sie es mit dem ausgewählten Objekt ersetzen?
- <form name="form">
- <ignore name="ignore"
- save_option="true"
- text="Beim Wechseln von Anhängen"/>
- <button
-
- ignore="Replace Automatically"
-
- name="Yes"
- text="OK"/>
- <button
- ignore="Never Replace"
-
- name="No"
- text="Abbrechen"/>
- </form>
- </notification>
-
- <notification
-
- label="Beschäftigt-Modus-Warnung"
- name="BusyModePay"
- >
-Sie sind im Beschäftigt-Modus, sodass Sie im Austausch für diese Zahlung keine Objekte erhalten können.
-
-Möchten Sie den Bechäftigt-Modus verlassen, bevor Sie diese Transaktion abschließen?
- <form name="form">
- <ignore name="ignore"
- save_option="true"
- text="Beim Bezahlen einer Person oder eines Objekts im Beschäftigt-Modus"/>
- <button
-
- ignore="Always leave Busy Mode"
-
- name="Yes"
- text="OK"/>
- <button
- ignore="Never leave Busy Mode"
-
- name="No"
- text="Abbrechen"/>
- </form>
- </notification>
-
- <notification
-
- name="ConfirmEmptyTrash"
- >
-Möchten Sie den Inhalt Ihres Papierkorbs wirklich löschen?
- <usetemplate
- ignoretext="Beim Leeren des Inventar-Papierkorbs"
- name="okcancelignore"
- notext="Abbrechen"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmClearBrowserCache"
- >
-Möchten Sie Ihren Browser-Cache wirklich leeren?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="ConfirmClearCookies"
- >
-Sind Sie sicher, dass Sie Ihre Cookies löschen möchten?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="ConfirmClearMediaUrlList"
- >
-Die Liste mit gespeicherten URLs wirklich löschen?
- <usetemplate
- name="okcancelbuttons"
- notext="Abbrechen"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="ConfirmEmptyLostAndFound"
- >
-Möchten Sie den Inhalt Ihres Fundstücke-Ordners wirklich permanent löschen?
- <usetemplate
- ignoretext="Beim Leeren von Inventar und Fundstückeordner-"
- name="okcancelignore"
- notext="Nein"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="CopySLURL"
- >
-Die folgende SLURL wurde in die Zwischenablage kopiert:
- [SLURL]
-
-Veröffentlichen Sie sie auf einer Website, um anderen den Zugang zu diesem Ort zu erleichtern, oder testen Sie sie, indem Sie sie in die Adressleiste Ihres Browsers kopieren.
- <form name="form">
- <ignore name="ignore"
- text="Beim Kopieren einer SLURL in die Zwischenablage"/>
- </form>
- </notification>
-
- <notification
-
- name="GraphicsPreferencesHelp"
- >
-Die Optionen in diesem Dialog steuern Fenstergröße und Auflösung sowie die Qualität der Grafikdarstellung im Client. Im Fenster „Einstellungen“ &gt; „Grafik“ stehen vier Grafikeinstellungen zur Wahl: Niedrig, Mittel, Hoch und Ultra. Die Grafikeinstellungen lassen sich auch individuell anpassen; aktivieren Sie das Kontrollkästchen „Benutzerdefiniert“, um die folgenden Einstellungen zu bearbeiten:
-
-Shader: Aktivieren oder deaktivieren Sie die verschiedenen Pixel-Shader.
-
-Spiegelung: Legen Sie hier fest, welche Objekte sich in Wasser spiegeln.
-
-Avatar-Darstellung: Einige Optionen, die über die Darstellung Ihres Avatars bestimmen.
-
-Sichtweite: Legt fest, bis zu welcher Entfernung von Ihrem Avatar die Objekte in der Szene berechnet und dargestellt werden.
-
-Max. Partikelzahl: Legt fest, wie viele Partikel gleichzeitig berechnet und angezeigt werden.
-
-Post-Processing-Qualität: Legt fest, mit welcher Auflösung der Glüheffekt berechnet wird.
-
-Gitterdetails: Legt den Detailgrad bzw. die Anzahl an Dreiecken bei der Berechnung bestimmter Objekte fest. Höhere Werte führen zu einer genaueren Darstellung, dauern aber länger in der Berechnung.
-
-Beleuchtungsdetails: Legt fest, welche Lichtquellen berechnet werden.
-
-Terraindetails: Legt den Detailgrad bei der Berechnung der Terraintextur fest.
- </notification>
-
- <notification
-
- name="WLSavePresetAlert"
- >
-Die gespeicherte Voreinstellung überschreiben?
- <usetemplate
- name="okcancelbuttons"
- notext="Nein"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="WLDeletePresetAlert"
- >
-[SKY] löschen?
- <usetemplate
- name="okcancelbuttons"
- notext="Nein"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="WLNoEditDefault"
- >
-Standardvoreinstellungen können nicht bearbeitet oder gelöscht werden.
- </notification>
-
- <notification
-
- name="WLMissingSky"
- >
-Diese Tageszyklusdatei verweist auf eine fehlende Himmel-Datei: [SKY].
- </notification>
-
- <notification
-
- name="PPSaveEffectAlert"
- >
-Post-Processing-Effekt bereits vorhanden. Möchten Sie ihn überschreiben?
- <usetemplate
- name="okcancelbuttons"
- notext="Nein"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="HelpEditSky"
- >
-Verschieben Sie die WindLight-Regler, um verschiedene Himmelsansichten zu erstellen und zu speichern.
- </notification>
-
- <notification
-
- name="HelpEditDayCycle"
- >
-Wählen Sie für jede Tageszeit eine Himmelsansicht aus.
- </notification>
-
- <notification
-
- name="EnvSettingsHelpButton"
- >
-Diese Einstellungen haben Auswirkung auf die lokale Darstellung der Umwelt auf Ihrem Computer. Zugriff auf alle Einstellungen haben Sie nur, wenn Ihre Grafikkarte Atmosphären-Shader unterstützt.
-
-Mit dem Regler „Tageszeit“ stellen Sie die lokal in Ihrem Viewer dargestellte Tageszeit ein.
-
-Mit dem Regler „Wolkendecke“ steuern Sie die Wolkendichte am Himmel.
-
-Unter „Wasserfarbe“ können Sie eine Farbe für die Wasserdarstellung auswählen.
-
-Mit dem Regler „Wassertrübung“ steuern Sie die Sichtweite unter Wasser.
-
-Klicken Sie auf „Grundstückszeit verw.“, um die aktuelle Zeit in der Region fest als Tageszeit einzustellen.
-
-Klicken Sie auf „Himmel (erweitert)“, um einen Editor mit erweiterten Einstellungen für die Himmeldarstellung anzuzeigen.
-
-Klicken Sie auf „Wasser (erweitert)“, um einen Editor mit erweiterten Einstellungen für die Wasserdarstellung anzuzeigen.
- </notification>
-
- <notification
-
- name="HelpDayCycle"
- >
-Im Tageszyklus-Editor steuern Sie den Tag-/Nachtzyklus am Second Life Himmel. Dabei handelt es sich um den Zyklus, der mit dem Tageszeit-Regler im Umwelt-Basiseditor gesteuert wird.
-
-Der Tageszyklus-Editor verwendet sogenannte Keyframes zur Steuerung des Tag-/Nachtablaufs. Dabei handelt es sich um „Schlüsselbilder“ (die grauen Kreise auf der Zeitskala), für die bestimmte Himmelseinstellungen definiert wurden. Bei voranschreitender Tageszeit interpoliert WindLight den Übergang zwischen diesen Keyframes und erzeugt eine entsprechende Himmelsanimation.
-
-Der gelbe Pfeil über der Zeitskala repräsentiert die aktuelle Tageszeit-Darstellung. Ziehen Sie den Pfeil, um die Tagesanimation anzuzeigen. Mit „Key hinzu“ und „Key löschen“ rechts neben der Zeitskala können Sie neue Keys einfügen und vorhandene löschen.
-
-Keyframes lassen sich einfach entlang der Zeitskala verschieben, oder Sie geben die Werte manuell unter „Keyframe-Einstellungen“ ein. Hier wählen Sie auch eine WindLight-Voreinstellung für den Keyframe aus.
-
-„Zykluslänge“ bestimmt die Gesamtlänge eines „Tages“. Ein niedriger Wert (z.B. 2 Minuten) führt dazu, dass ein ganzer 24-Stunden-Tag innerhalb von zwei Minuten Echtzeit abgespult wird! Wenn Sie alle Einstellungen auf der Zeitskala und für die einzelnen Keyframes vorgenommen haben, können Sie mit „Start“ und „Stopp“ die Animation anzeigen. Das funktioniert natürlich genauso interaktiv, indem Sie den gelben Pfeil über der Zeitskala verschieben. Mit der Schaltfläche „Grundstückszeit verw.“ synchronisieren Sie die Tageszeit und -länge mit den auf dem Grundstück geltenden Einstellungen.
-
-Ihre Tageszyklus-Einstellungen lassen sich mit den Schaltflächen „Testtag speichern“ und „Testtag laden“ speichern bzw. laden. Bis dato kann nur ein Tageszyklus gleichzeitig in Verwendung sein.
- </notification>
-
- <notification
-
- name="HelpBlueHorizon"
- >
-Mit den Reglern für Rot/Grün/Blau (RGB) steuern Sie die Farbe des Himmels. Verwenden Sie den Intensitätsregler (I), um alle drei RGB-Regler gleichzeitig zu verschieben.
- </notification>
-
- <notification
-
- name="HelpHazeHorizon"
- >
-Horizonttrübung ist einer der wichtigsten Parameter, um die Gesamtlichtsituation in der Szene zu steuern. Damit lassen sich viele Belichtungseinstellungen simulieren, z.B. ein Überstrahlen durch die Sonne oder starker Dunst.
- </notification>
-
- <notification
-
- name="HelpBlueDensity"
- >
-Farbintensität steuert die Gesamtfarbsättigung von Himmel und Nebel. Je weiter Sie den Intensitätsregler (I) nach rechts verschieben, desto heller und lebendiger werden die Farben. Wenn Sie ihn ganz nach links verschieben, verlieren die Farben an Intensität und gehen in Schwarz oder Weiß über. Volle Kontrolle über die Farbsättigung des Himmels bieten ihnen die Regler für Rot/Grün/Blau (RGB).
- </notification>
-
- <notification
-
- name="HelpHazeDensity"
- >
-Trübungsintensität steuert die Stärke des grauen Dunsts in der Atmosphäre. Damit lassen sich zum Beispiel starker Rauch oder Luftverschmutzung simulieren. Auch für Nebel und Sprühregen geeignet.
- </notification>
-
- <notification
-
- name="HelpDensityMult"
- >
-Der Dichtemultiplikator beeinflusst die Gesamtdichte der Atmosphäre. Niedrige Einstellungen erzeugen den Eindruck dünner, sauberer Luft, hohe Einstellungen erzeugen den Eindruck schweren Smogs.
- </notification>
-
- <notification
-
- name="HelpDistanceMult"
- >
-Steuert die Entfernungswirkung von WindLight. Ein Wert von Null schaltet den Einfluss von WindLight auf Terrain und Objekte praktisch aus. Werte über 1 simulieren größere Entfernungen und verstärken den Atmosphäreneffekt.
- </notification>
-
- <notification
-
- name="HelpMaxAltitude"
- >
-Max. Höhe steuert die Höhenberechnungen von WindLight bei der Berechnung der atmosphärischen Beleuchtung. Zu späteren Tageszeiten lässt sich damit zum Beispiel die „Intensität“ des Sonnenuntergangs beeinflussen.
- </notification>
-
- <notification
-
- name="HelpSunlightColor"
- >
-Steuert Farbe und Intensität von direktem Licht in der Szene.
- </notification>
-
- <notification
-
- name="HelpSunAmbient"
- >
-Steuert Farbe und Intensität von atmosphärischem Umgebungslicht in der Szene.
- </notification>
-
- <notification
-
- name="HelpSunGlow"
- >
-Der Regler „Größe“ steuert die Größe der Sonne.
-Der Regler „Fokus“ steuert, wie unscharf die Sonne am Himmel erscheint.
- </notification>
-
- <notification
-
- name="HelpSceneGamma"
- >
-Regelt den Hell/Dunkel-Wert des Bildschirms.
- </notification>
-
- <notification
-
- name="HelpStarBrightness"
- >
-Regelt die Helligkeit der Sterne am Himmel.
- </notification>
-
- <notification
-
- name="HelpTimeOfDay"
- >
-Steuert die Sonnenstellung am Himmel.
-Entspricht der Elevation.
- </notification>
-
- <notification
-
- name="HelpEastAngle"
- >
-Steuert die Sonnenstellung am Himmel.
-Entspricht dem Azimut.
- </notification>
-
- <notification
-
- name="HelpCloudColor"
- >
-Steuert die Wolkenfarbe. Generell empfiehlt sich hier ein Weißton, aber hey, warum nicht ein bisschen Spaß haben?
- </notification>
-
- <notification
-
- name="HelpCloudDetail"
- >
-Steuert das Detailbild, welches über das Wolken-Hauptbild gelegt wird. X und Y bestimmen seine Position. D (Dichte) regelt, wie ausgebeult oder zerrissen die Wolken wirken.
- </notification>
-
- <notification
-
- name="HelpCloudDensity"
- >
-Mit den X- und Y-Reglern steuern Sie die Position der Wolken, mit dem Regler D die Wolkendichte.
- </notification>
-
- <notification
-
- name="HelpCloudCoverage"
- >
-Steuert, wie stark die Wolken den Himmel bedecken.
- </notification>
-
- <notification
-
- name="HelpCloudScale"
- >
-Steuert die Skalierung des Wolkenbilds auf der Himmelskuppel.
- </notification>
-
- <notification
-
- name="HelpCloudScrollX"
- >
-Steuert die Bewegungsgeschwindigkeit der Wolken in X-Richtung.
- </notification>
-
- <notification
-
- name="HelpCloudScrollY"
- >
-Steuert die Bewegungsgeschwindigkeit der Wolken in Y-Richtung.
- </notification>
-
- <notification
-
- name="HelpClassicClouds"
- >
-Aktivieren Sie dieses Kontrollkästchen, um die Darstellung der klassischen Second Life Wolken zusätzlich zu den WindLight-Wolken zu erzwingen.
- </notification>
-
- <notification
-
- name="HelpWaterFogColor"
- >
-Steuert die Farbe der Wassertrübung
- </notification>
-
- <notification
-
- name="HelpWaterFogDensity"
- >
-Steuert die Dichte der Wassertrübung und wie weit Sie unter Wasser sehen können.
- </notification>
-
- <notification
-
- name="HelpUnderWaterFogMod"
- >
-Beeinflusst die Auswirkung des Wassertrübungs-Exponenten und regelt die Sichtweite Ihres Avatars unter Wasser.
- </notification>
-
- <notification
-
- name="HelpWaterGlow"
- >
-Steuert, wie groß der Anteil der leuchtenden Wasseroberfläche ist.
- </notification>
-
- <notification
-
- name="HelpWaterNormalScale"
- >
-Steuert die Skalierung der drei Elementarwellen, die das Wasser ausmachen.
- </notification>
-
- <notification
-
- name="HelpWaterFresnelScale"
- >
-Steuert die winkelabhängige Lichtreflexion.
- </notification>
-
- <notification
-
- name="HelpWaterFresnelOffset"
- >
-Steuert die Intensität des reflektierten Lichts.
- </notification>
-
- <notification
-
- name="HelpWaterScaleAbove"
- >
-Steuert die Stärke der Lichtbrechung von oberhalb der Wasseroberfläche aus gesehen.
- </notification>
-
- <notification
-
- name="HelpWaterScaleBelow"
- >
-Steuert die Stärke der Lichtbrechung von unterhalb der Wasseroberfläche aus gesehen.
- </notification>
-
- <notification
-
- name="HelpWaterBlurMultiplier"
- >
-Steuert die Mischung von Wellen und Reflexionen.
- </notification>
-
- <notification
-
- name="HelpWaterNormalMap"
- >
-Ermöglicht die Auswahl einer Normal-Map zur Berechnung von Reflexionen/Brechungen auf dem Wasser.
- </notification>
-
- <notification
-
- name="HelpWaterWave1"
- >
-Steuert die Bewegungsgeschwindigkeit und -richtung der großen Normal-Map-Version in X- und Y-Richtung.
- </notification>
-
- <notification
-
- name="HelpWaterWave2"
- >
-Steuert die Bewegungsgeschwindigkeit und -richtung der kleinen Normal-Map-Version in X- und Y-Richtung.
- </notification>
-
- <notification
-
- name="NewSkyPreset"
- >
-Wählen Sie einen Namen für den neuen Himmel.
- <form name="form">
- <input name="message" type="text">
-Neue Voreinstellung
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Abbrechen"/>
- </form>
- </notification>
-
- <notification
-
- name="ExistsSkyPresetAlert"
- >
-Voreinstellung bereits vorhanden!
- </notification>
-
- <notification
-
- name="NewWaterPreset"
- >
-Wählen Sie einen Namen für die neue Wasservoreinstellung.
- <form name="form">
- <input name="message" type="text">
-Neue Voreinstellung
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Abbrechen"/>
- </form>
- </notification>
-
- <notification
-
- name="ExistsWaterPresetAlert"
- >
-Voreinstellung bereits vorhanden!
- </notification>
-
- <notification
-
- name="WaterNoEditDefault"
- >
-Standardvoreinstellungen können nicht bearbeitet oder gelöscht werden.
- </notification>
-
- <notification
-
- name="ChatterBoxSessionStartError"
- >
-Neue Chat-Sitzung mit [RECIPIENT] konnte nicht gestartet werden.
-[REASON]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ChatterBoxSessionEventError"
- >
-[EVENT]
-[REASON]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ForceCloseChatterBoxSession"
- >
-Ihre Chat-Sitzung mit [NAME] muss beendet werden.
-[REASON]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="Cannot_Purchase_an_Attachment"
- >
-Objekte können nicht gekauft werden, solange sie Teil eines Anhangs sind.
- </notification>
-
- <notification
-
- label="Info zur Abfrage der Abbucherlaubnis"
- name="DebitPermissionDetails"
- >
-Wenn Sie dieser Anfrage zustimmen, erhält das Skript die Erlaubnis, regelmäßig Linden-Dollar (L$) von Ihrem Konto abzubuchen. Diese Erlaubnis kann nur zurückgezogen werden, wenn der Eigentümer das Objekt löscht oder die Skripts in dem Objekt zurücksetzt.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="AutoWearNewClothing"
- >
-Möchten Sie das neu erstellte Kleidungsstück automatisch anziehen?
- <usetemplate
- ignoretext="Neue Kleidung automatisch tragen"
- name="okcancelignore"
- notext="Nein"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="NotAgeVerified"
- >
-Um Zugang zu dieser Parzelle zu erhalten, müssen Sie sich einer Altersprüfung unterziehen.
-Möchten Sie auf der Second Life Website eine Altersüberprüfung durchführen?
-
-[_URL]
- <url option="0" name="url">
-
- https://secondlife.com/account/verification.php?lang=de
- </url>
- <usetemplate
- ignoretext="Auf fehlende Altersprüfung aufmerksam machen"
- name="okcancelignore"
- notext="Nein"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="Cannot enter parcel: no payment info on file"
- >
-Um Zugang zu dieser Parzelle zu erhalten, müssen Sie Zahlungsinformationen hinterlegt haben.
-Möchten Sie die Second Life Website öffnen, um diese Angaben zu hinterlegen?
-
-[_URL]
- <url option="0" name="url">
-
- https://secondlife.com/account/index.php?lang=de
- </url>
- <usetemplate
- ignoretext="Auf fehlende Zahlungsinformationen aufmerksam machen"
- name="okcancelignore"
- notext="Nein"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="MissingString"
- >
-Der String „[STRING_NAME]“ fehlt in strings.xml
- </notification>
-
- <notification
-
- name="SystemMessageTip"
- >
-[MESSAGE]
- </notification>
-
- <notification
-
- name="Cancelled"
- >
-Abgebrochen
- </notification>
-
- <notification
-
- name="CancelledSit"
- >
-Sitzen beendet
- </notification>
-
- <notification
-
- name="CancelledAttach"
- >
-Anhängen abgebrochen
- </notification>
-
- <notification
-
- name="ReplacedMissingWearable"
- >
-Fehlende(s) Kleidung/Körperteil mit Standard ersetzt.
- </notification>
-
- <notification
-
- name="GroupNotice"
- >
-Betreff: [SUBJECT], Nachricht: [MESSAGE]
- </notification>
-
- <notification
-
- name="FriendOnline"
- >
-[FIRST] [LAST] ist online
- </notification>
-
- <notification
-
- name="FriendOffline"
- >
-[FIRST] [LAST] ist offline
- </notification>
-
- <notification
-
- name="AddSelfFriend"
- >
-Sie können sich nicht selbst als Freund hinzufügen.
- </notification>
-
- <notification
-
- name="UploadingAuctionSnapshot"
- >
-In-Welt- und Website-Fotos werden hochgeladen...
-(Dauert ca. 5 Minuten.)
- </notification>
-
- <notification
-
- name="UploadPayment"
- >
-Sie haben für das Hochladen [AMOUNT] L$ bezahlt.
- </notification>
-
- <notification
-
- name="UploadWebSnapshotDone"
- >
-Das Website-Foto wurde hochgeladen.
- </notification>
-
- <notification
-
- name="UploadSnapshotDone"
- >
-In-Welt-Foto hochgeladen
- </notification>
-
- <notification
-
- name="TerrainDownloaded"
- >
-Terrain.raw heruntergeladen
- </notification>
-
- <notification
-
- name="GestureMissing"
- >
-Geste [NAME] fehlt in Datenbank.
- </notification>
-
- <notification
-
- name="UnableToLoadGesture"
- >
-Geste [NAME] konnte nicht geladen werden.
-Bitte versuchen Sie es erneut.
- </notification>
-
- <notification
-
- name="LandmarkMissing"
- >
-Landmarke fehlt in Datenbank.
- </notification>
-
- <notification
-
- name="UnableToLoadLandmark"
- >
-Landmarke konnte nicht geladen werden. Bitte versuchen Sie es erneut.
- </notification>
-
- <notification
-
- name="CapsKeyOn"
- >
-Die Feststelltaste ist aktiv.
-Da dies Auswirkung auf die Kennworteingabe hat, sollten Sie die Taste besser ausschalten.
- </notification>
-
- <notification
-
- name="NotecardMissing"
- >
-Notizkarte fehlt in Datenbank.
- </notification>
-
- <notification
-
- name="NotecardNoPermissions"
- >
-Unzureichende Rechte zur Anzeige der Notizkarte.
- </notification>
-
- <notification
-
- name="RezItemNoPermissions"
- >
-Keine Berechtigung zum Rezzen von Objekten.
- </notification>
-
- <notification
-
- name="UnableToLoadNotecard"
- >
-Notizkarte konnte nicht geladen werden.
-Bitte versuchen Sie es erneut.
- </notification>
-
- <notification
-
- name="ScriptMissing"
- >
-Skript fehlt in Datenbank.
- </notification>
-
- <notification
-
- name="ScriptNoPermissions"
- >
-Unzureichende Rechte zur Anzeige des Skripts.
- </notification>
-
- <notification
-
- name="UnableToLoadScript"
- >
-Skript konnte nicht geladen werden. Bitte versuchen Sie es erneut.
- </notification>
-
- <notification
-
- name="IncompleteInventory"
- >
-Die von Ihnen angebotenen Inhalte sind noch nicht vollständig lokal verfügbar. Warten Sie kurz und wiederholen Sie dann das Angebot.
- </notification>
-
- <notification
-
- name="CannotModifyProtectedCategories"
- >
-Geschützte Kategorien können nicht geändert werden.
- </notification>
-
- <notification
-
- name="CannotRemoveProtectedCategories"
- >
-Geschützte Kategorien können nicht entfernt werden.
- </notification>
-
- <notification
-
- name="OfferedCard"
- >
-Sie haben [FIRST] [LAST] eine Visitenkarte angeboten.
- </notification>
-
- <notification
-
- name="OfferedFriendship"
- >
-Sie haben [FIRST] [LAST] die Freundschaft angeboten.
- </notification>
-
- <notification
-
- name="UnableToBuyWhileDownloading"
- >
-Kauf nicht möglich. Objektdaten werden noch geladen.
-Bitte versuchen Sie es erneut.
- </notification>
-
- <notification
-
- name="UnableToLinkWhileDownloading"
- >
-Verknüpfung nicht möglich. Objektdaten werden noch geladen.
-Bitte versuchen Sie es erneut.
- </notification>
-
- <notification
-
- name="CannotBuyObjectsFromDifferentOwners"
- >
-Objekte können nicht von mehreren Eigentümern gleichzeitig gekauft werden.
-Wählen Sie ein einzelnes Objekt aus.
- </notification>
-
- <notification
-
- name="ObjectNotForSale"
- >
-Objekt ist nicht zu verkaufen.
- </notification>
-
- <notification
-
- name="EnteringGodMode"
- >
-Gott-Modus aktiviert, Level [LEVEL]
- </notification>
-
- <notification
-
- name="LeavingGodMode"
- >
-Gott-Modus deaktiviert, Level [LEVEL]
- </notification>
-
- <notification
-
- name="CopyFailed"
- >
-Kopieren aufgrund fehlender Kopierrechte fehlgeschlagen
- </notification>
-
- <notification
-
- name="InventoryAccepted"
- >
-[NAME] hat Ihr Inventarangebot akzeptiert.
- </notification>
-
- <notification
-
- name="InventoryDeclined"
- >
-[NAME] hat Ihr Inventarangebot abgelehnt.
- </notification>
-
- <notification
-
- name="ObjectMessage"
- >
-[NAME]: [MESSAGE]
- </notification>
-
- <notification
-
- name="CallingCardAccepted"
- >
-Ihre Visitenkarte wurde akzeptiert.
- </notification>
-
- <notification
-
- name="CallingCardDeclined"
- >
-Ihre Visitenkarte wurde abgelehnt.
- </notification>
-
- <notification
-
- name="TeleportToLandmark"
- >
-Jetzt, nachdem Sie das Mainland erreicht haben, können Sie sich an Positionen wie „[NAME]“ teleportieren, indem Sie unten rechts im Fenster auf „Inventar“ klicken und den Ordner „Landmarken“ auswählen.
-Klicken Sie eine Landmarke doppelt an und wählen Sie „Teleportieren“, um an diesen Ort zu gelangen.
- </notification>
-
- <notification
-
- name="TeleportToPerson"
- >
-Jetzt, nachdem Sie das Mainland erreicht haben, können Sie mit Einwohnern wie „[NAME]“ Kontakt aufnehmen, indem Sie unten rechts im Fenster auf „Inventar“ klicken und den Ordner „Visitenkarten“ auswählen.
-Klicken Sie die Karte doppelt an, wählen Sie „Instant Message“ und geben Sie eine Nachricht ein.
- </notification>
-
- <notification
-
- name="CantSelectLandFromMultipleRegions"
- >
-Land kann nicht über Servergrenzen hinweg ausgewählt werden.
-Wählen Sie eine kleinere Landfläche.
- </notification>
-
- <notification
-
- name="GroupVote"
- >
-[NAME] hat eine Abstimmung vorgeschlagen über:
-[MESSAGE]
- <form name="form">
- <button
-
- name="VoteNow"
- text="Abstimmen"/>
- <button
-
- name="Later"
- text="Später"/>
- </form>
- </notification>
-
- <notification
-
- name="SystemMessage"
- >
-[MESSAGE]
- </notification>
-
- <notification
-
- name="EventNotification"
- >
-Event-Benachrichtigung:
-
-[NAME]
-[DATE]
- <form name="form">
- <button
-
- name="Teleport"
- text="Teleportieren"/>
- <button
-
- name="Description"
- text="Beschreibung"/>
- <button
-
- name="Cancel"
- text="Abbrechen"/>
- </form>
- </notification>
-
- <notification
-
- name="TransferObjectsHighlighted"
- >
-Alle Objekte auf dieser Parzelle, die an den Käufer der Parzelle übertragen werden, sind jetzt markiert.
-
-* Übertragene Bäume und Gräser sind nicht markiert.
- <form name="form">
- <button
-
- name="Done"
- text="Fertig"/>
- </form>
- </notification>
-
- <notification
-
- name="DeactivatedGesturesTrigger"
- >
-Gesten mit demselben Trigger wurden deaktiviert:
-[NAMES]
- </notification>
-
- <notification
-
- name="NoQuickTime"
- >
-Apple QuickTime ist auf Ihrem System anscheinend nicht installiert.
-Laden Sie QuickTime von der QuickTime-Webseite (http://www.apple.com/de/quicktime) herunter, um auf Parzellen, die diese Funktion unterstützen, Streaming-Inhalte wiederzugeben.
- </notification>
-
- <notification
-
- name="OwnedObjectsReturned"
- >
-Ihre Objekte auf der ausgewählten Parzelle wurden in Ihr Inventar transferiert.
- </notification>
-
- <notification
-
- name="OtherObjectsReturned"
- >
-Die Objekte von [FIRST] [LAST] auf dieser Parzelle wurden in das Inventar dieser Person transferiert.
- </notification>
-
- <notification
-
- name="OtherObjectsReturned2"
- >
-Die Objekte von [FIRST] [LAST] auf dieser
-Parzelle von „[NAME]“ wurden an ihren Eigentümer zurückgegeben.
- </notification>
-
- <notification
-
- name="GroupObjectsReturned"
- >
-Die mit der Gruppe [GROUPNAME] gemeinsam genutzten Objekte auf dieser Parzelle wurden in das Inventar ihrer Eigentümer transferiert.
-Transferierbare übertragene Objekte wurden an ihre früheren Eigentümer zurückgegeben.
-Nicht transferierbare an die Gruppe übertragene Objekte wurden gelöscht.
- </notification>
-
- <notification
-
- name="UnOwnedObjectsReturned"
- >
-Alle Objekte auf der ausgewählten Parzelle, die NICHT Ihnen gehören, wurden ihren Eigentümern zurückgegeben.
- </notification>
-
- <notification
-
- name="NotSafe"
- >
-Auf diesem Land ist Schaden aktiviert („Unsicher“).
-Verletzungen sind möglich. Wenn Sie sterben, werden Sie zu Ihrem Heimatstandort teleportiert.
- </notification>
-
- <notification
-
- name="NoFly"
- >
-Auf diesem Land ist Fliegen deaktiviert („Fliegen aus“).
-Fliegen ist hier nicht möglich.
- </notification>
-
- <notification
-
- name="PushRestricted"
- >
-Auf diesem Land gilt „Kein Stoßen“.
-Sie können keine anderen Personen stoßen, außer Ihnen gehört das Land.
- </notification>
-
- <notification
-
- name="NoVoice"
- >
-Auf diesem Land ist Voice deaktiviert.
- </notification>
-
- <notification
-
- name="NoBuild"
- >
-Auf diesem Land ist Bauen deaktiviert („Bauen aus“).
-Sie können hier keine Objekte erstellen.
- </notification>
-
- <notification
-
- name="ScriptsStopped"
- >
-Ein Administrator hat die Skriptausführung in dieser Region vorübergehend deaktiviert.
- </notification>
-
- <notification
-
- name="ScriptsNotRunning"
- >
-In dieser Region werden keine Skipts ausgeführt.
- </notification>
-
- <notification
-
- name="NoOutsideScripts"
- >
-Auf diesem Land sind externe Skripts deaktiviert
-(„Externe Skripts aus“).
-Nur Skripts, die dem Landeigentümer gehören, funktionieren.
- </notification>
-
- <notification
-
- name="ClaimPublicLand"
- >
-Öffentliches Land kann nur in der Region in Besitz genommen werden, in der Sie sich befinden.
- </notification>
-
- <notification
-
- name="ObjectGiveItem"
- >
-Das Objekt [OBJECTFROMNAME] von [FIRST] [LAST] hat Ihnen Folgendes übergeben: [OBJECTTYPE] ([OBJECTNAME]).
- <form name="form">
- <button
-
- name="Keep"
- text="Behalten"/>
- <button
-
- name="Discard"
- text="Verwerfen"/>
- <button
-
- name="Mute"
- text="Stummschalten"/>
- </form>
- </notification>
-
- <notification
-
- name="ObjectGiveItemUnknownUser"
- >
-Das Objekt [OBJECTFROMNAME] von (unbekannt) hat Ihnen Folgendes übergeben: [OBJECTTYPE] ([OBJECTNAME]).
- <form name="form">
- <button
-
- name="Keep"
- text="Behalten"/>
- <button
-
- name="Discard"
- text="Verwerfen"/>
- <button
-
- name="Mute"
- text="Stummschalten"/>
- </form>
- </notification>
-
- <notification
-
- name="UserGiveItem"
- >
-[NAME] hat Ihnen ein [OBJECTTYPE] namens „[OBJECTNAME]“ gegeben.
- <form name="form">
- <button
-
- name="Keep"
- text="Behalten"/>
- <button
-
- name="Discard"
- text="Verwerfen"/>
- <button
-
- name="Mute"
- text="Stummschalten"/>
- </form>
- </notification>
-
- <notification
-
- name="GodMessage"
- >
-[NAME]
-[MESSAGE]
- </notification>
-
- <notification
-
- name="JoinGroup"
- >
-[MESSAGE]
- <form name="form">
- <button
-
- name="Join"
- text="Beitreten"/>
- <button
-
- name="Decline"
- text="Ablehnen"/>
- <button
-
- name="Info"
- text="Info"/>
- </form>
- </notification>
-
- <notification
-
- name="TeleportOffered"
- >
-[NAME] hat angeboten, Sie zu ihrem/seinem Standort zu teleportieren:
-
-[MESSAGE]
- <form name="form">
- <button
-
- name="Teleport"
- text="Teleportieren"/>
- <button
-
- name="Cancel"
- text="Abbrechen"/>
- </form>
- </notification>
-
- <notification
-
- name="GotoURL"
- >
-[MESSAGE]
-[URL]
- <form name="form">
- <button
-
- name="Later"
- text="Später"/>
- <button
-
- name="GoNow..."
- text="Jetzt gehen..."/>
- </form>
- </notification>
-
- <notification
-
- name="OfferFriendship"
- >
-[NAME] bietet Ihnen die Freundschaft an.
-
-[MESSAGE]
-
-(Standardmäßig werden Sie gegenseitig ihren Online-Status sehen können.)
- <form name="form">
- <button
-
- name="Accept"
- text="Akzeptieren"/>
- <button
-
- name="Decline"
- text="Ablehnen"/>
- </form>
- </notification>
-
- <notification
-
- name="OfferFriendshipNoMessage"
- >
-[NAME] bietet Ihnen die Freundschaft an.
-
-(Sie werden dadurch den gegenseitigen Online-Status sehen können.)
- <form name="form">
- <button
-
- name="Accept"
- text="Akzeptieren"/>
- <button
-
- name="Decline"
- text="Ablehnen"/>
- </form>
- </notification>
-
- <notification
-
- name="FriendshipAccepted"
- >
-[NAME] hat Ihr Freundschaftsangebot akzeptiert.
- </notification>
-
- <notification
-
- name="FriendshipDeclined"
- >
-[NAME] hat Ihr Freundschaftsangebot abgelehnt.
- </notification>
-
- <notification
-
- name="OfferCallingCard"
- >
-[FIRST] [LAST] bietet Ihnen eine Visitenkarte an.
-Dies erstellt ein Lesezeichen in Ihrem Inventar, damit Sie diesen Einwohner jederzeit über IM erreichen.
- <form name="form">
- <button
-
- name="Accept"
- text="Akzeptieren"/>
- <button
-
- name="Decline"
- text="Ablehnen"/>
- </form>
- </notification>
-
- <notification
-
- name="RegionRestartMinutes"
-
-
- >
-Region wird in [MINUTES] Minuten neu gestartet.
-Wenn Sie in dieser Region bleiben, werden Sie abgemeldet.
- </notification>
-
- <notification
-
- name="RegionRestartSeconds"
-
-
- >
-Region wird in [SECONDS] Sekunden neu gestartet.
-Wenn Sie in dieser Region bleiben, werden Sie abgemeldet.
- </notification>
-
- <notification
-
- name="LoadWebPage"
- >
-Webseite [URL] laden?
-
-[MESSAGE]
-
-Von Objekt: [OBJECTNAME], Eigentümer: [NAME]?
- <form name="form">
- <button
-
- name="Gotopage"
- text="Gehe zu Seite"/>
- <button
-
- name="Cancel"
- text="Abbrechen"/>
- </form>
- </notification>
-
- <notification
-
- name="FailedToFindWearableUnnamed"
- >
-[TYPE] nicht in Datenbank.
- </notification>
-
- <notification
-
- name="FailedToFindWearable"
- >
-[TYPE] namens [DESC] nicht in Datenbank.
- </notification>
-
- <notification
-
- name="ScriptQuestion"
- >
-Das Objekt „[OBJECTNAME]“, Eigentum von „[NAME]“, möchte:
-
-[QUESTIONS]
-Ist das OK?
- <form name="form">
- <button
-
- name="Yes"
- text="Ja"/>
- <button
-
- name="No"
- text="Nein"/>
- <button
-
- name="Mute"
- text="Stummschalten"/>
- </form>
- </notification>
-
- <notification
-
- name="ScriptQuestionCaution"
- >
-Das Objekt „[OBJECTNAME]“, Eigentum von „[NAME]“, möchte:
-
-[QUESTIONS]
-Wenn Sie diesem Objekt und seinem Ersteller nicht vertrauen, sollten Sie diese Anfrage ablehnen. Klicken Sie für weitere Informationen auf „Info...“.
-
-Anfrage gestatten?
- <form name="form">
- <button
-
- name="Grant"
- text="Gewähren"/>
- <button
-
- name="Deny"
- text="Verweigern"/>
- <button
-
- name="Details"
- text="Info..."/>
- </form>
- </notification>
-
- <notification
-
- name="ScriptDialog"
- >
-[FIRST] [LAST]s „[TITLE]“
-[MESSAGE]
- <form name="form">
- <button
-
- name="Ignore"
- text="Ignorieren"/>
- </form>
- </notification>
-
- <notification
-
- name="ScriptDialogGroup"
- >
-[GROUPNAME]s „[TITLE]“
-[MESSAGE]
- <form name="form">
- <button
-
- name="Ignore"
- text="Ignorieren"/>
- </form>
- </notification>
-
- <notification
-
- name="FirstBalanceIncrease"
- >
-Sie haben gerade [AMOUNT] L$ erhalten.
-Objekte und andere Benutzer können Ihnen L$ geben.
-Ihren Kontostand sehen Sie in der oberen rechten Ecke des Bildschirms.
- </notification>
-
- <notification
-
- name="FirstBalanceDecrease"
- >
-Sie haben gerade [AMOUNT] L$ bezahlt.
-Ihren Kontostand sehen Sie in der oberen rechten Ecke des Bildschirms.
- </notification>
-
- <notification
-
- name="FirstSit"
- >
-Sie sitzen.
-Benutzen Sie die Pfeil- oder WASD-Tasten, um die Ansicht zu ändern.
-Klicken Sie auf „Aufstehen“, um aufzustehen.
- </notification>
-
- <notification
-
- name="FirstMap"
- >
-Zum Verschieben der Karte klicken und ziehen.
-Zum Teleportieren doppelklicken.
-Nutzen Sie die Optionen links, um Dinge zu finden und um verschiedene Hintergründe anzuzeigen.
- </notification>
-
- <notification
-
- name="FirstBuild"
- >
-In einigen Bereichen von [SECOND_LIFE] können Sie neue Objekte erstellen.
-Verwenden Sie zum Bauen die Werkzeuge oben links.
-Mit den Strg- und Alt-Tasten können Sie schnell zwischen den Werkzeugen umschalten.
-Drücken Sie Esc, um das Bauen abzubrechen.
- </notification>
-
- <notification
-
- name="FirstLeftClickNoHit"
- >
-Die linke Maustaste ermöglicht Objektinteraktionen.
-Der Mauszeiger zeigt eine Hand, wenn Sie
-mit dem Objekt interagieren können.
-Die rechte Maustaste zeigt immer ein Aktionsmenü an.
- </notification>
-
- <notification
-
- name="FirstTeleport"
- >
-Diese Region unterstützt keine direkten Teleports. Sie wurden zum nächstgelegenen Telehub transportiert.
-Ihr Ziel ist mit einem großen roten Strahl markiert. Folgen Sie dem roten Pfeil zum Strahl oder klicken Sie auf den Pfeil, um den Strahl zu entfernen.
- </notification>
-
- <notification
-
- name="FirstOverrideKeys"
- >
-Ihre Bewegungstasten werden jetzt von einem Objekt gesteuert.
-Probieren Sie die Pfeil- oder WASD-Tasten aus.
-Manche Objekte (wie Waffen) müssen per Mouselook gesteuert werden.
-Drücken Sie dazu „M“.
- </notification>
-
- <notification
-
- name="FirstAppearance"
- >
-Sie bearbeiten gerade Ihr Aussehen.
-Benutzen Sie die Pfeiltasten zum Drehen und Zoomen.
-Klicken Sie auf „Alles speichern“, wenn Sie fertig sind, um Ihr Aussehen zu speichern.
-Sie können Ihr Aussehen jederzeit verändern.
- </notification>
-
- <notification
-
- name="FirstInventory"
- >
-Ihr Inventar. Es enthält Objekte, Notizkarten, Kleidung und andere Dinge in Ihrem Besitz.
-* Zum Anziehen eines Objekts oder Outfit-Ordners ziehen Sie es/ihn auf sich.
-* Um ein Objekt in der Welt abzulegen, ziehen Sie es auf den Boden.
-* Zum Lesen einer Notizkarte klicken Sie sie doppelt an.
- </notification>
-
- <notification
-
- name="FirstSandbox"
- >
-Dies ist eine Sandkastenregion.
-Objekte, die Sie hier bauen, können gelöscht werden, wenn Sie das Gebiet verlassen. Sandkästen werden regelmäßig gereinigt. Weitere Informationen hierzu finden Sie oben im Bild neben dem Regionsnamen.
-
-Sandkastenregionen kommen selten vor und sind entsprechend gekennzeichnet.
- </notification>
-
- <notification
-
- name="FirstFlexible"
- >
-Dieses Objekt ist flexibel.
-Ein flexibles Objekt ist ein Phantom und nicht physisch, bis die Option „Flexibel“ deaktiviert wurde.
- </notification>
-
- <notification
-
- name="FirstDebugMenus"
- >
-Sie haben das Advanced-Menü aktiviert.
-Dieses Menü enthält nützliche Funktionen zum Debuggen von Second Life.
-Drücken Sie in Windows Strg-Alt-D (Mac: Befehl-Opt-Umschalt-D) zum Ein- und Ausschalten dieses Menüs.
- </notification>
-
- <notification
-
- name="FirstSculptedPrim"
- >
-Sie bearbeiten ein geformtes Primitiv.
-Geformte Primitive benötigen eine spezielle Textur, die ihre Form definiert.
-Beispiele für Formtexturen finden Sie in der Inventarbibliothek.
- </notification>
-
- <notification
-
- name="FirstMedia"
- >
-Sie haben die Medienwiedergabe gestartet. Unter „Audio und Video“ im Fenster „Einstellungen“ können Sie festlegen, dass Medien automatisch wiedergegeben werden. Beachten Sie, dass dies bei nicht vertrauenswürdigen Medienseiten ein Sicherheitsrisiko darstellen kann.
- </notification>
-
- <notification
-
- name="MaxListSelectMessage"
- >
-Sie können maximal [MAX_SELECT] Objekte
-von der Liste auswählen.
- </notification>
-
- <notification
-
- name="VoiceInviteP2P"
- >
-[NAME] lädt Sie zu einem Voice-Chat ein.
-Klicken Sie auf „Akzeptieren“, um dem Gespräch beizutreten, oder auf „Ablehnen“, um die Einladung auszuschlagen. Klicken Sie auf „Stummschalten“, um diesen Anrufer stumm zu schalten.
- <form name="form">
- <button
-
- name="Accept"
- text="Akzeptieren"/>
- <button
-
- name="Decline"
- text="Ablehnen"/>
- <button
-
- name="Mute"
- text="Stummschalten"/>
- </form>
- </notification>
-
- <notification
-
- name="AutoUnmuteByIM"
- >
-[FIRST] [LAST] hat eine Instant Message erhalten; die Stummschaltung wurde aufgehoben.
- </notification>
-
- <notification
-
- name="AutoUnmuteByMoney"
- >
-[FIRST] [LAST] hat Geld erhalten; die Stummschaltung wurde aufgehoben.
- </notification>
-
- <notification
-
- name="AutoUnmuteByInventory"
- >
-[FIRST] [LAST] wurde ein Inventarobjekt angeboten; die Stummschaltung wurde aufgehoben.
- </notification>
-
- <notification
-
- name="VoiceInviteGroup"
- >
-[NAME] ist einem Voice-Chat mit der Gruppe [GROUP] beigetreten.
-Klicken Sie auf „Akzeptieren“, um dem Gespräch beizutreten, oder auf „Ablehnen“, um die Einladung auszuschlagen. Klicken Sie auf „Stummschalten“, um diesen Anrufer stumm zu schalten.
- <form name="form">
- <button
-
- name="Accept"
- text="Akzeptieren"/>
- <button
-
- name="Decline"
- text="Ablehnen"/>
- <button
-
- name="Mute"
- text="Stummschalten"/>
- </form>
- </notification>
-
- <notification
-
- name="VoiceInviteAdHoc"
- >
-[NAME] ist einem Voice-Konferenz-Chat beigetreten.
-Klicken Sie auf „Akzeptieren“, um dem Gespräch beizutreten, oder auf „Ablehnen“, um die Einladung auszuschlagen. Klicken Sie auf „Stummschalten“, um diesen Benutzer stumm zu schalten.
- <form name="form">
- <button
-
- name="Accept"
- text="Akzeptieren"/>
- <button
-
- name="Decline"
- text="Ablehnen"/>
- <button
-
- name="Mute"
- text="Stummschalten"/>
- </form>
- </notification>
-
- <notification
-
- name="InviteAdHoc"
- >
-[NAME] lädt Sie zu einem Konferenz-Chat ein.
-Klicken Sie auf „Akzeptieren“, um dem Chat beizutreten, oder auf „Ablehnen“, um die Einladung auszuschlagen. Klicken Sie auf „Stummschalten“, um diesen Benutzer stumm zu schalten.
- <form name="form">
- <button
-
- name="Accept"
- text="Akzeptieren"/>
- <button
-
- name="Decline"
- text="Ablehnen"/>
- <button
-
- name="Mute"
- text="Stummschalten"/>
- </form>
- </notification>
-
- <notification
-
- name="VoiceChannelFull"
- >
-Der Voice-Chat, dem Sie beitreten möchten, [VOICE_CHANNEL_NAME], hat seine maximale Teilnehmerzahl erreicht. Bitte versuchen Sie es erneut.
- </notification>
-
- <notification
-
- name="ProximalVoiceChannelFull"
- >
-Es tut uns Leid. Dieses Gebiet hat seine maximale Kapazität für Voice-Gespräche erreicht. Bitte versuchen Sie es in einem anderen Gebiet.
- </notification>
-
- <notification
-
- name="VoiceChannelDisconnected"
- >
-Sie haben [VOICE_CHANNEL_NAME] verlassen. Sie werden nun wieder mit dem Umgebungs-Voice-Chat verbunden.
- </notification>
-
- <notification
-
- name="VoiceChannelDisconnectedP2P"
- >
-[VOICE_CHANNEL_NAME] hat das Gespräch beendet. Sie werden nun wieder mit dem Umgebungs-Voice-Chat verbunden.
- </notification>
-
- <notification
-
- name="P2PCallDeclined"
- >
-[VOICE_CHANNEL_NAME] hat Ihren Anruf abgelehnt. Sie werden nun wieder mit dem Umgebungs-Voice-Chat verbunden.
- </notification>
-
- <notification
-
- name="P2PCallNoAnswer"
- >
-[VOICE_CHANNEL_NAME] ist zurzeit nicht erreichbar. Sie werden nun wieder mit dem Umgebungs-Voice-Chat verbunden.
- </notification>
-
- <notification
-
- name="VoiceChannelJoinFailed"
- >
-Verbindung zu [VOICE_CHANNEL_NAME] nicht möglich. Bitte versuchen Sie es später. Sie werden nun wieder mit dem Umgebungs-Voice-Chat verbunden.
- </notification>
-
- <notification
-
- name="VoiceLoginRetry"
- >
-Wir erstellen einen Voice-Kanal für Sie. Bitte warten Sie einen Moment.
- </notification>
-
- <notification
-
- name="Cannot enter parcel: not a group member"
- >
-Zugang zur Parzelle verweigert, Sie gehören keiner berechtigten Gruppe an.
- </notification>
-
- <notification
-
- name="Cannot enter parcel: banned"
- >
-Zugang zur Parzelle verweigert. Sie wurden verbannt.
- </notification>
-
- <notification
-
- name="Cannot enter parcel: not on access list"
- >
-Zugang zur Parzelle verweigert. Sie stehen nicht auf der Zugangsliste.
- </notification>
-
- <notification
-
- name="VoiceNotAllowed"
- >
-Sie sind nicht berechtigt, einem Voice-Chat in [VOICE_CHANNEL_NAME] beizutreten.
- </notification>
-
- <notification
-
- name="VoiceCallGenericError"
- >
-Fehler beim Versuch, eine Voice-Chat-Verbindung zu [VOICE_CHANNEL_NAME] herzustellen. Bitte versuchen Sie es erneut.
- </notification>
-
- <notification
-
- name="ServerVersionChanged"
- >
-Die Region, die Sie betreten haben, verwendet eine andere Simulatorversion. Klicken Sie auf diese Nachricht, um weitere Informationen zu erhalten.
- </notification>
-
- <notification
-
- name="UnableToOpenCommandURL"
- >
-Die URL, die Sie angeklickt haben, kann in diesem Web Browser nicht geöffnet werden.
- </notification>
-
- <global name="UnsupportedCPU">
-- Ihre CPU-Geschwindigkeit entspricht nicht den Mindestanforderungen.
- </global>
-
- <global name="UnsupportedGLRequirements">
-Ihr Computer entspricht nicht den Hardwareanforderungen von Second Life. Second Life setzt eine OpenGL-Grafikkarte mit Multitextur-Unterstützung voraus. Falls Ihre Grafikkarte diese Funktion unterstützt, installieren Sie die neuesten Treiber sowie die aktuellen Service Packs und Patches für Ihr Betriebssystem.
-
-Sollte das Problem fortbestehen, finden Sie weitere Hilfestellung unter: http://www.secondlife.com/support
- </global>
-
- <global name="UnsupportedCPUAmount">
-796
- </global>
-
- <global name="UnsupportedRAMAmount">
-510
- </global>
-
- <global name="UnsupportedGPU">
-- Ihre Grafikkarte entspricht nicht den Mindestanforderungen.
- </global>
-
- <global name="UnsupportedRAM">
-- Ihr Arbeitsspeicher entspricht nicht den Mindestanforderungen.
- </global>
-
- <global name="PermYes">
-Ja
- </global>
-
- <global name="PermNo">
-Nein
- </global>
-</notifications>
-
+<?xml version="1.0" encoding="utf-8"?>
+<notifications>
+ <global name="skipnexttime">
+ Nicht mehr anzeigen
+ </global>
+ <global name="alwayschoose">
+ Diese Option immer auswählen
+ </global>
+ <template name="okbutton">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ </form>
+ </template>
+
+ <template name="okignore">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <ignore text="$ignoretext"/>
+ </form>
+ </template>
+
+ <template name="okcancelbuttons">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <button
+ name="Cancel"
+ text="$notext"/>
+ </form>
+ </template>
+
+ <template name="okcancelignore">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <button
+ name="Cancel"
+ text="$notext"/>
+ <ignore text="$ignoretext"/>
+ </form>
+ </template>
+
+ <template name="okhelpbuttons">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <button
+ name="Help"
+ text="$helptext"/>
+ </form>
+ </template>
+
+ <template name="yesnocancelbuttons">
+ <form>
+ <button
+ name="Yes"
+ text="$yestext"/>
+ <button
+ name="No"
+ text="$notext"/>
+ <button
+ name="Cancel"
+ text="$canceltext"/>
+ </form>
+ </template>
+ <notification functor="GenericAcknowledge" label="Unbekannter Warnhinweis" name="MissingAlert">
+ Ihre Version von Second Life kann den gerade empfangenen Warnhinweis nicht anzeigen.
+
+Fehlerdetails: Der Warnhinweis „[_NAME]“ wurde in notifications.xml nicht gefunden.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="FloaterNotFound">
+ Floater-Fehler: Folgende Steuerelemente wurden nicht gefunden:
+
+[CONTROLS]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="TutorialNotFound">
+ Derzeit ist kein Tutorial verfügbar.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="GenericAlert">
+ [MESSAGE]
+ </notification>
+ <notification name="GenericAlertYesCancel">
+ [MESSAGE]
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="Ja"/>
+ </notification>
+ <notification name="BadInstallation">
+ Beim Aktualisieren von Second Life ist ein Fehler aufgetreten. Bitte laden Sie die aktuellste Version von secondlife.com herunter.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="LoginFailedNoNetwork">
+ Netzwerk Fehler: Eine Verbindung konnte nicht hergestellt werden.
+„[DIAGNOSTIC]“
+Bitte überprüfen Sie Ihre Netzwerkverbindung.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="MessageTemplateNotFound">
+ Meldungsvorlage [PATH] nicht gefunden.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="WearableSave">
+ Änderung an aktueller Kleidung/Körperteil speichern?
+ <usetemplate canceltext="Abbrechen" name="yesnocancelbuttons" notext="Nicht speichern" yestext="Speichern"/>
+ </notification>
+ <notification name="CompileQueueSaveText">
+ Der Text für ein Skript konnte aus folgendem Grund nicht hochgeladen werden: [REASON]. Bitte versuchen Sie es erneut.
+ </notification>
+ <notification name="CompileQueueSaveBytecode">
+ Eine kompiliertes Skript konnte aus folgendem Grund nicht hochgeladen werden: [REASON]. Bitte versuchen Sie es erneut.
+ </notification>
+ <notification name="WriteAnimationFail">
+ Fehler beim Schreiben von Animationsdaten. Bitte versuchen Sie es erneut.
+ </notification>
+ <notification name="UploadAuctionSnapshotFail">
+ Eine Auktions-Screenshot konnte aus folgendem Grund nicht hochgeladen werden: [REASON]
+ </notification>
+ <notification name="UnableToViewContentsMoreThanOne">
+ Es kann nur jeweils der Inhalt von einem Objekt angezeigt werden.
+Wählen Sie ein einzelnes Objekt aus und versuchen Sie es erneut.
+ </notification>
+ <notification name="SaveClothingBodyChanges">
+ Änderung an Kleidung/Körperteilen speichern?
+ <usetemplate canceltext="Abbrechen" name="yesnocancelbuttons" notext="Nicht speichern" yestext="Alles speichern"/>
+ </notification>
+ <notification name="GrantModifyRights">
+ Die Gewährung von Änderungsrechten an andere Einwohner ermöglicht es diesen, JEDES BELIEBIGE Objekt zu ändern oder an sich zu nehmen, das Sie in der Second Life-Welt besitzen. Seien Sie SEHR vorsichtig beim Erteilen dieser Erlaubnis.
+Möchten Sie [FIRST_NAME] [LAST_NAME] Änderungsrechte gewähren?
+ <usetemplate name="okcancelbuttons" notext="Nein" yestext="Ja"/>
+ </notification>
+ <notification name="GrantModifyRightsMultiple">
+ Die Gewährung von Änderungsrechten an andere Einwohner ermöglicht es diesen, JEDES BELIEBIGE Objekt zu ändern, das Sie in der Second Life-Welt besitzen. Seien Sie SEHR vorsichtig beim Erteilen dieser Erlaubnis.
+Möchten Sie den ausgewählten Einwohnern Änderungsrechte gewähren?
+ <usetemplate name="okcancelbuttons" notext="Nein" yestext="Ja"/>
+ </notification>
+ <notification name="RevokeModifyRights">
+ Möchten Sie [FIRST_NAME] [LAST_NAME] die Änderungsrechte entziehen?
+ <usetemplate name="okcancelbuttons" notext="Nein" yestext="Ja"/>
+ </notification>
+ <notification name="RevokeModifyRightsMultiple">
+ Möchten Sie den ausgewählten Einwohnern die Änderungsrechte entziehen?
+ <usetemplate name="okcancelbuttons" notext="Nein" yestext="Ja"/>
+ </notification>
+ <notification name="UnableToCreateGroup">
+ Gruppe konnte nicht erstellt werden.
+[MESSAGE]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="PanelGroupApply">
+ [NEEDS_APPLY_MESSAGE]
+[WANT_APPLY_MESSAGE]
+ <usetemplate canceltext="Abbrechen" name="yesnocancelbuttons" notext="Änderungen verwerfen" yestext="Änderungen übernehmen"/>
+ </notification>
+ <notification name="MustSpecifyGroupNoticeSubject">
+ Geben Sie einen Betreff für die Gruppenmitteilung ein.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="AddGroupOwnerWarning">
+ Sie sind im Begriff, Gruppenmitgliedern die Rolle [ROLE_NAME] zuzuweisen.
+Diese Rolle kann Mitgliedern nicht mehr entzogen werden.
+Sie müssen die Rolle selbst niederlegen.
+Möchten Sie fortfahren?
+ <usetemplate ignoretext="Beim Hinzufügen von Gruppenmitgliedern zur Eigentümerrolle" name="okcancelignore" notext="Nein" yestext="Ja"/>
+ </notification>
+ <notification name="AssignDangerousActionWarning">
+ Sie sind im Begriff, der Rolle „[ROLE_NAME]“ die Fähigkeit „[ACTION_NAME]“ zuzuweisen.
+
+ *ACHTUNG*
+ Mitglieder in einer Rolle mit dieser Fähigkeit können sich selbst -
+ und allen anderen Mitgliedern – Rollen zuweisen, die mehr Rechte
+ beinhalten als sie derzeit haben, und damit nahezu
+ Eigentümerrechte erreichen. Überlegen Sie sich, wem Sie diese Fähigkeit
+ verleihen.
+
+Der Rolle „[ROLE_NAME]“ diese Fähigkeit zuweisen?
+ <usetemplate name="okcancelbuttons" notext="Nein" yestext="Ja"/>
+ </notification>
+ <notification name="AssignDangerousAbilityWarning">
+ Sie sind im Begriff, der Rolle „[ROLE_NAME]“ die Fähigkeit „[ACTION_NAME]“ zuzuweisen.
+
+ *ACHTUNG*
+ Mitglieder in einer Rolle mit dieser Fähigkeit können sich selbst -
+ und allen anderen Mitgliedern – alle Fähigkeiten zuweisen und
+ damit fast Eigentümerrechte erreichen.
+
+Der Rolle „[ROLE_NAME]“ diese Fähigkeit zuweisen?
+ <usetemplate name="okcancelbuttons" notext="Nein" yestext="Ja"/>
+ </notification>
+ <notification name="ClickPublishHelpLand">
+ Auswahl von „In Suche veröffentlichen“
+Dieses Kontrollkästchen zeigt Folgendes an:
+- diese Parzelle in den Suchergebnissen
+- die öffentlichen Objekte dieser Parzelle
+- diese Parzelle in der Websuche
+ </notification>
+ <notification name="ClickSoundHelpLand">
+ Medien und Musik können nur innerhalb der Parzelle abgespielt werden. Sound- und Voice-Chat-Optionen können auf die Parzelle beschränkt werden oder von Einwohnern außerhalb der Parzelle, entsprechend ihrer Alterseinstufung, gehört werden. Möchten Sie unsere Knowledgebase besuchen, um mehr darüber zu erfahren, wie diese Optionen eingestellt werden können?
+ <url name="url">
+ http://wiki.secondlife.com/wiki/Medien_auf_Parzellen_(KB)
+ </url>
+ <usetemplate name="okcancelbuttons" notext="Schließen" yestext="Zur Knowledgbase"/>
+ </notification>
+ <notification name="ClickSearchHelpAll">
+ Die Suchergebnisse wurde aufgrund der entsprechenden Registerkarte, Ihrer Alterseinstufung, der gewählten Kategorie und anderen Faktoren geordnet. Bitte besuchen Sie unsere Knowledgebase, um weitere Informationen zu erhalten.
+ <url name="url">
+ http://wiki.secondlife.com/wiki/FAQ_zur_Suchfunktion_(KB)
+ </url>
+ <usetemplate name="okcancelbuttons" notext="Schließen" yestext="Zur Knowledgbase"/>
+ </notification>
+ <notification name="ClickPublishHelpLandDisabled">
+ Diese Parzelle kann nicht in der Suche angezeigt werden, da sie sich in einer Region befindet, die das verbietet.
+ </notification>
+ <notification name="ClickPublishHelpAvatar">
+ Auswahl von „In Suche anzeigen“ zeigt Folgendes an:
+- Ihr Profil in den Suchergebnissen
+- einen Link auf Ihr Profil in den öffentlichen Gruppenseiten
+ </notification>
+ <notification name="ClickPartnerHelpAvatar">
+ Auf der [SECOND_LIFE] Website können Sie anderen Einwohnern eine Partnerschaft vorschlagen und bestehende Partnerschaften lösen.
+
+Die Second Life Website für weitere Informationen über Partnerschaften öffnen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="Gehe zu Seite"/>
+ </notification>
+ <notification name="ClickUploadHelpPermissions">
+ Ihre Standardberechtigung funktionieren in älteren Regionen möglicherweise nicht.
+ </notification>
+ <notification name="ClickWebProfileHelpAvatar">
+ Wenn dieser Einwohner einen Webprofil-URL angegeben hat, können Sie:
+ * Auf „Laden“ klicken und die Seite in dieser Web-Registerkarte anzeigen.
+ * Auf Laden &gt; „In externem Browser“ klicken und die Seite im Standard-Browser anzeigen.
+ * Auf Laden &gt; „Start-URL“ klicken und zum Webprofil des Bewohners zurückkehren.
+
+In Ihrem eigenen Profil können Sie jeden beliebigen URL als Ihr Webprofil eingeben und mit OK übernehmen.
+Wenn sich andere Einwohner Ihr Profil ansehen, können sie diesen URL besuchen.
+ </notification>
+ <notification name="JoinGroupCanAfford">
+ Der Beitritt zu dieser Gruppe kostet [COST] L$.
+Fortfahren?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="Beitreten"/>
+ </notification>
+ <notification name="JoinGroupCannotAfford">
+ Der Beitritt zu dieser Gruppe kostet [COST] L$.
+Sie haben nicht genug L$, um dieser Gruppe beizutreten.
+ </notification>
+ <notification name="LandBuyPass">
+ Sie können dieses Land („[PARCEL_NAME]“) für [COST] L$
+[TIME] Stunden lang betreten. Pass kaufen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="SalePriceRestriction">
+ Der Verkaufspreis muss beim allgemeinen Verkauf über 0 L$ liegen.
+Wählen Sie eine bestimmte Person aus, wenn Sie für 0 L$ verkaufen.
+ </notification>
+ <notification name="ConfirmLandSaleChange">
+ Die ausgewählten [LAND_SIZE] qm Land werden zum Verkauf freigegeben.
+Der Verkaufspreis beträgt [SALE_PRICE] L$ und wird automatisch für den Verkauf an [NAME] autorisiert.
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmLandSaleToAnyoneChange">
+ ACHTUNG: Wenn Sie auf „An jeden verkaufen“ klicken, kann jeder in Second Life Ihr Land kaufen, auch Einwohner in anderen Regionen.
+
+Die ausgewählten [LAND_SIZE] qm Land werden zum Verkauf freigegeben.
+Der Verkaufspreis beträgt [SALE_PRICE] L$ und wird automatisch für den Verkauf an [NAME] autorisiert.
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsDeededToGroup">
+ Möchten Sie alle Ihre Objekte auf dieser Parzelle, die der Gruppe „[NAME]“ gehören, zurück in das jeweilige Inventar ihrer vorherigen Eigentümer transferieren?
+
+*WARNUNG* Alle nicht transferierbaren Objekte, die der Gruppe übertragen wurden, werden dabei gelöscht!
+
+Objekte: [N]
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsOwnedByUser">
+ Möchten Sie alle Objekte auf dieser Parzelle, die dem Einwohner „[NAME]“ gehören, in das jeweilige Inventar ihrer Eigentümer transferieren?
+
+Objekte: [N]
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsOwnedBySelf">
+ Möchten Sie alle Objekte auf dieser Parzelle, die Ihnen gehören, zurück in Ihr Inventar transferieren?
+
+Objekte: [N]
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsNotOwnedBySelf">
+ Möchten Sie alle Objekte auf dieser Parzelle, die NICHT Ihnen gehören, in das Inventar ihrer Eigentümer transferieren?
+Transferierbare Objekte, die an eine Gruppe übertragen wurden, werden ihren vorherigen Eigentümern zurückgegeben.
+
+*WARNUNG* Alle nicht transferierbaren Objekte, die der Gruppe übertragen wurden, werden dabei gelöscht!
+
+Objekte: [N]
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsNotOwnedByUser">
+ Möchten Sie alle Objekte auf dieser Parzelle, die NICHT [NAME] gehören, in das Inventar ihrer Eigentümer transferieren?
+Transferierbare Objekte, die an eine Gruppe übertragen wurden, werden ihren vorherigen Eigentümern zurückgegeben.
+
+*WARNUNG* Alle nicht transferierbaren Objekte, die der Gruppe übertragen wurden, werden dabei gelöscht!
+
+Objekte: [N]
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="ReturnAllTopObjects">
+ Möchten Sie alle aufgeführten Objekte ihren Eigentümern zurückgeben?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="DisableAllTopObjects">
+ Möchten Sie alle Objekte in dieser Region deaktivieren?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsNotOwnedByGroup">
+ Objekte auf dieser Parzelle, die von der Gruppe [NAME] nicht gemeinsam genutzt werden, an ihre Eigentümer zurückgeben?
+
+Objekte: [N]
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="UnableToDisableOutsideScripts">
+ Skriptdeaktivierung nicht möglich.
+Für die gesamte Region ist Schaden aktiviert.
+Damit Waffen funktionieren, müssen Skripts erlaubt sein.
+ </notification>
+ <notification name="MustBeInParcel">
+ Sie müssen auf einer Landparzelle stehen, um ihren Landepunkt festzulegen.
+ </notification>
+ <notification name="PromptRecipientEmail">
+ Bitte geben Sie für den/die Empfänger eine gültige Email-Adresse ein.
+ </notification>
+ <notification name="PromptSelfEmail">
+ Geben Sie Ihre E-Mail-Adresse ein.
+ </notification>
+ <notification name="PromptMissingSubjMsg">
+ Foto mit Standardbetreff bzw. -nachricht als E-Mail versenden?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="ErrorProcessingSnapshot">
+ Fehler beim Verarbeiten der Fotodaten
+ </notification>
+ <notification name="ErrorEncodingSnapshot">
+ Fehler beim Erstellen des Fotos!
+ </notification>
+ <notification name="ErrorUploadingPostcard">
+ Ein Foto konnte aus folgendem Grund nicht gesendet werden: [REASON]
+ </notification>
+ <notification name="ErrorUploadingReportScreenshot">
+ Ein Report-Screenshot konnte aus folgendem Grund nicht hochgeladen werden: [REASON]
+ </notification>
+ <notification name="MustAgreeToLogIn">
+ Bevor Sie sich in [SECOND_LIFE] anmelden können, müssen Sie den Nutzungsbedingungen zustimmen.
+ </notification>
+ <notification name="CouldNotPutOnOutfit">
+ Outfit konnte nicht angezogen werden.
+Der Outfit-Ordner enthält keine Kleidung, Körperteile oder Anhänge.
+ </notification>
+ <notification name="CannotWearTrash">
+ Kleider oder Körperteile im Papierkorb können nicht getragen werden
+ </notification>
+ <notification name="CannotWearInfoNotComplete">
+ Sie können das Objekt nicht anziehen, weil es noch nicht geladen wurde. Warten Sie kurz und versuchen Sie es dann noch einmal.
+ </notification>
+ <notification name="MustHaveAccountToLogIn">
+ Hoppla! Da fehlt noch etwas.
+Geben Sie bitte den Vor- und den Nachnamen Ihres Avatars ein.
+
+Sie benötigen ein Benutzerkonto, um [SECOND_LIFE] betreten zu können. Möchten Sie jetzt ein Benutzerkonto anlegen?
+ <usetemplate name="okcancelbuttons" notext="Erneut versuchen" yestext="Neues Benutzerkonto anlegen"/>
+ </notification>
+ <notification name="AddClassified">
+ Anzeigen erscheinen für eine Woche unter „Anzeigen“ im Suchverzeichnis. Füllen Sie Ihre Anzeige aus und klicken Sie auf „Veröffentlichen...“, um sie zum Verzeichnis hinzuzufügen. Sie werden gebeten, einen Preis zu bezahlen, wenn Sie auf „Veröffentlichen“ klicken. Wenn Sie mehr bezahlen oder ein Benutzer nach Ihren Suchbegriffen sucht, erscheint Ihre Anzeige weiter oben in der Liste.
+ <usetemplate ignoretext="Beim Hinzufügen einer neuen Anzeige" name="okcancelignore" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="DeleteClassified">
+ Anzeige „[NAME]“ löschen?
+Gebühren werden nicht rückerstattet.
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="ClassifiedSave">
+ Änderung an Anzeige [NAME] speichern?
+ <usetemplate canceltext="Abbrechen" name="yesnocancelbuttons" notext="Nicht speichern" yestext="Speichern"/>
+ </notification>
+ <notification name="DeleteAvatarPick">
+ Auswahl [PICK] löschen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="PromptGoToEventsPage">
+ Zur [SECOND_LIFE] Events-Webseite?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="SelectProposalToView">
+ Wählen Sie ein Angebot zur Ansicht.
+ </notification>
+ <notification name="SelectHistoryItemToView">
+ Wählen Sie ein Element zur Ansicht.
+ </notification>
+ <notification name="ResetShowNextTimeDialogs">
+ Möchten Sie alle Popups wieder aktivieren, die Sie zuvor auf „Nicht mehr anzeigen“ gesetzt haben?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="SkipShowNextTimeDialogs">
+ Möchten Sie alle Popups, die übersprungen werden können, deaktivieren?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="CacheWillClear">
+ Der Cache wird nach einem Neustart von [SECOND_LIFE] geleert.
+ </notification>
+ <notification name="CacheWillBeMoved">
+ Der Cache wird nach einem Neustart von [SECOND_LIFE] verschoben.
+Hinweis: Der Cache wird dabei gelöscht/geleert.
+ </notification>
+ <notification name="ChangeConnectionPort">
+ Die Port-Einstellungen werden nach einem Neustart von [SECOND_LIFE] wirksam.
+ </notification>
+ <notification name="ChangeSkin">
+ Die neue Benutzeroberfläche wird nach einem Neustart von [SECOND_LIFE] angewendet.
+ </notification>
+ <notification name="GoToAuctionPage">
+ Zur [SECOND_LIFE]-Webseite, um Auktionen anzuzeigen oder ein Gebot abzugeben?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="SaveChanges">
+ Änderungen speichern?
+ <usetemplate canceltext="Abbrechen" name="yesnocancelbuttons" notext="Nicht speichern" yestext="Speichern"/>
+ </notification>
+ <notification name="GestureSaveFailedTooManySteps">
+ Speichern der Geste fehlgeschlagen.
+Die Geste besteht aus zu vielen Schritten.
+Löschen Sie einige Schritte und versuchen Sie es erneut.
+ </notification>
+ <notification name="GestureSaveFailedTryAgain">
+ Speichern der Geste fehlgeschlagen. Warten Sie kurz und versuchen Sie es dann noch einmal.
+ </notification>
+ <notification name="GestureSaveFailedObjectNotFound">
+ Geste konnte nicht gespeichert werden, da das Objekt oder das zugehörige Objektinventar nicht gefunden wurden.
+Das Objekt ist möglicherweise außer Reichweite oder wurde gelöscht.
+ </notification>
+ <notification name="GestureSaveFailedReason">
+ Eine Geste konnte aus folgendem Grund nicht gespeichert werden: [REASON]. Speichern Sie die Geste bitte später.
+ </notification>
+ <notification name="SaveNotecardFailObjectNotFound">
+ Notizkarte konnte nicht gespeichert werden, da das Objekt oder das zugehörige Objektinventar nicht gefunden wurden.
+Das Objekt ist möglicherweise außer Reichweite oder wurde gelöscht.
+ </notification>
+ <notification name="SaveNotecardFailReason">
+ Eine Notizkarte konnte aus folgendem Grund nicht gespeichert werden: [REASON]. Speichern Sie die Notizkarte bitte später.
+ </notification>
+ <notification name="ScriptCannotUndo">
+ Es konnten nicht alle Änderungen in Ihrer Skriptversion rückgängig gemacht werden.
+Möchten Sie die letzte gespeicherte Version vom Server laden?
+(**Warnung** Dieser Vorgang kann nicht rückgängig gemacht werden.)
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="SaveScriptFailReason">
+ Ein Skript konnte aus folgendem Grund nicht gespeichert werden: [REASON]. Speichern Sie das Skript bitte später.
+ </notification>
+ <notification name="SaveScriptFailObjectNotFound">
+ Skript konnte nicht gespeichert werden, weil das zugehörige Objekt nicht gefunden wurde.
+Das Objekt ist möglicherweise außer Reichweite oder wurde gelöscht.
+ </notification>
+ <notification name="SaveBytecodeFailReason">
+ Ein kompiliertes Skript konnte aus folgendem Grund nicht gespeichert werden: [REASON]. Speichern Sie das Skript bitte später.
+ </notification>
+ <notification name="CouldNotStartStopScript">
+ Skript konnte nicht gestartet oder beendet werden, weil das zugehörige Objekt nicht gefunden wurde.
+Das Objekt ist möglicherweise außer Reichweite oder wurde gelöscht.
+ </notification>
+ <notification name="CannotDownloadFile">
+ Dateidownload nicht möglich
+ </notification>
+ <notification name="CannotWriteFile">
+ Datei [[FILE]] kann nicht geschrieben werden
+ </notification>
+ <notification name="UnsupportedHardware">
+ Achtung: Ihr System erfüllt nicht die Mindestanforderungen von Second Life. Dies kann eine schlechte Darstellungsleistung in Second Life zur Folge haben. Für nicht unterstützte Systemkonfigurationen bieten wir keinen technischen Support.
+
+MINSPECS
+Die Seite [_URL] für weitere Informationen öffnen?
+ <url name="url" option="0">
+ http://secondlife.com/support/sysreqs.php?lang=de
+ </url>
+ <usetemplate ignoretext="Bei Entdeckung nicht unterstützter Hardware" name="okcancelignore" notext="Nein" yestext="Ja"/>
+ </notification>
+ <notification name="UnknownGPU">
+ Ihr System verwendet eine uns zurzeit unbekannte Grafikkarte.
+Dies ist häufig der Fall bei neuer Hardware, die wir noch nicht testen konnten.
+Second Life funktioniert aller Voraussicht nach normal, möglicherweise müssen Sie aber die Grafikeinstellungen anpassen.
+(Bearbeiten &gt; Einstellungen &gt; Grafik).
+ <form name="form">
+ <ignore name="ignore" text="Bei Entdeckung einer unbekannten Grafikkarte"/>
+ </form>
+ </notification>
+ <notification name="DisplaySettingsNoShaders">
+ [SECOND_LIFE] ist bei der Initialisierung der Grafiktreiber abgestürzt.
+Die Grafikqualität wird auf eine niedrige Stufe zurückgesetzt, um einige typische Treiberfehler zu vermeiden.
+Einige Grafikfunktionen werden ausgeschaltet.
+Wir empfehlen die Aktualisierung Ihrer Grafikkartentreiber.
+Sie können die Grafikqualität unter „Einstellungen“ &gt; „Grafik“ wieder erhöhen.
+ </notification>
+ <notification name="RegionNoTerraforming">
+ Die Region [REGION] erlaubt kein Terraforming.
+ </notification>
+ <notification name="CannotCopyWarning">
+ Sie sind nicht berechtigt, dieses Objekt zu kopieren und verlieren es aus Ihrem Inventar, wenn Sie es weggeben. Möchten Sie dieses Objekt anbieten?
+ <usetemplate name="okcancelbuttons" notext="Nein" yestext="Ja"/>
+ </notification>
+ <notification name="CannotGiveItem">
+ Inventarobjekt kann nicht übergeben werden.
+ </notification>
+ <notification name="TransactionCancelled">
+ Transaktion abgebrochen.
+ </notification>
+ <notification name="TooManyItems">
+ Es können maximal 42 Objekte auf einmal in das Inventar transferiert werden.
+ </notification>
+ <notification name="NoItems">
+ Sie sind nicht berechtigt, die ausgewählten Objekte zu kopieren.
+ </notification>
+ <notification name="CannotCopyCountItems">
+ Sie sind nicht berechtigt, [COUNT] der ausgewählten Objekte zu kopieren. Diese Objekte werden aus Ihrem Inventar gelöscht.
+Möchten Sie diese Objekte weggeben?
+ <usetemplate name="okcancelbuttons" notext="Nein" yestext="Ja"/>
+ </notification>
+ <notification name="CannotGiveCategory">
+ Sie sind nicht berechtigt, den ausgewählten Ordner zu kopieren.
+ </notification>
+ <notification name="FreezeAvatar">
+ Diesen Avatar einfrieren?
+Der Avatar wird außer Gefecht gesetzt und kann sich nicht mehr bewegen, chatten oder mit der Welt interagieren.
+ <usetemplate canceltext="Abbrechen" name="yesnocancelbuttons" notext="Auftauen" yestext="Einfrieren"/>
+ </notification>
+ <notification name="FreezeAvatarFullname">
+ [AVATAR_NAME] einfrieren?
+Der Avatar wird außer Gefecht gesetzt und kann sich nicht mehr bewegen, chatten oder mit der Welt interagieren.
+ <usetemplate canceltext="Abbrechen" name="yesnocancelbuttons" notext="Auftauen" yestext="Einfrieren"/>
+ </notification>
+ <notification name="EjectAvatarFullname">
+ [AVATAR_NAME] von Ihrem Land werfen?
+ <usetemplate canceltext="Abbrechen" name="yesnocancelbuttons" notext="Ausschließen und Verbannen" yestext="Ausschließen"/>
+ </notification>
+ <notification name="EjectAvatarNoBan">
+ Diesen Avatar aus Ihrem Land werfen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="Hinauswerfen"/>
+ </notification>
+ <notification name="EjectAvatarFullnameNoBan">
+ [AVATAR_NAME] aus Ihrem Land werfen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="Hinauswerfen"/>
+ </notification>
+ <notification name="AcquireErrorTooManyObjects">
+ FEHLER: Zu viele Objekte ausgewählt.
+ </notification>
+ <notification name="AcquireErrorObjectSpan">
+ FEHLER: Die Objekte überspannen mehrere Regionen.
+Verschieben Sie alle betreffenden Objekte in dieselbe Region.
+ </notification>
+ <notification name="PromptGoToCurrencyPage">
+ [EXTRA]
+
+[URL] für Informationen zum Deviseneinkauf öffnen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="UnableToLinkObjects">
+ Verknüpfung dieser [COUNT] Objekte nicht möglich.
+Sie können maximal [MAX] Objekte verknüpfen.
+ </notification>
+ <notification name="CannotLinkIncompleteSet">
+ Sie können nur vollständige Objektsätze verknüpfen und Sie müssen mehr als ein Objekt auswählen.
+ </notification>
+ <notification name="CannotLinkModify">
+ Verknüpfung nicht möglich, da Sie nicht alle Objekte bearbeiten dürfen.
+
+Stellen Sie sicher, dass kein Objekt gesperrt ist und alle Objekte Ihnen gehören.
+ </notification>
+ <notification name="CannotLinkDifferentOwners">
+ Verknüpfung nicht möglich, da nicht alle Objekte denselben Eigentümer haben.
+
+Stellen Sie sicher, dass alle ausgewählten Objekte Ihnen gehören.
+ </notification>
+ <notification name="NoFileExtension">
+ Kein Dateityp für Datei: „[FILE]“
+
+Vergewissern Sie sich, dass die Datei den richtigen Dateityp hat.
+ </notification>
+ <notification name="InvalidFileExtension">
+ Ungültige Datei-Endung [EXTENSION]
+Erwartet wurde [VALIDS]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="CannotUploadSoundFile">
+ Sounddatei konnte nicht hochgeladen werden:
+[FILE]
+ </notification>
+ <notification name="SoundFileNotRIFF">
+ Die Datei ist anscheinend keine RIFF WAVE-Datei:
+[FILE]
+ </notification>
+ <notification name="SoundFileNotPCM">
+ Die Datei ist anscheinend keine PCM WAVE-Audiodatei:
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidChannelCount">
+ Die Datei hat eine ungültige Anzahl Tonkanäle (muss Mono oder Stereo sein):
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidSampleRate">
+ Die Sample-Rate dieser Datei wird nicht unterstützt (muss 44,1 K sein):
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidWordSize">
+ Die Word-Größe dieser Datei wird nicht unterstützt (muss 8 oder 16 Bit sein):
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidHeader">
+ „Daten“-Chunk in WAV-Header nicht gefunden:
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidTooLong">
+ Audiodatei ist zu lang (max. 10 Sekunden):
+[FILE]
+ </notification>
+ <notification name="ProblemWithFile">
+ Problem mit Datei [FILE]:
+
+[ERROR]
+ </notification>
+ <notification name="CannotOpenTemporarySoundFile">
+ Temporäre komprimierte Sounddatei konnte nicht geöffnet werden: [FILE]
+ </notification>
+ <notification name="UnknownVorbisEncodeFailure">
+ Unbekannter Vorbis-Kodierungsfehler in: [FILE]
+ </notification>
+ <notification name="CannotEncodeFile">
+ Datei konnte nicht kodiert werden: [FILE]
+ </notification>
+ <notification name="CorruptResourceFile">
+ Ressourcendatei beschädigt: [FILE]
+ </notification>
+ <notification name="UnknownResourceFileVersion">
+ Unbekannte Linden-Ressourcenversion in Datei: [FILE]
+ </notification>
+ <notification name="UnableToCreateOutputFile">
+ Ausgabedatei konnte nicht erstellt werden: [FILE]
+ </notification>
+ <notification name="DoNotSupportBulkAnimationUpload">
+ Der Mehrfach-Upload von Animationsdateien wird zurzeit nicht unterstützt.
+ </notification>
+ <notification name="CannotUploadReason">
+ Datei [FILE] kann aus folgendem Grund nicht hochgeladen werden: [REASON]
+Bitte versuchen Sie es erneut.
+ </notification>
+ <notification name="CannotCreateLandmarkNotOwner">
+ Sie können hier keine Landmarke erstellen, da der Landeigentümer dies verboten hat.
+ </notification>
+ <notification name="CannotRecompileSelectObjectsNoScripts">
+ „Rekompilieren“ nicht möglich.
+Objekt mit Skript wählen.
+ </notification>
+ <notification name="CannotRecompileSelectObjectsNoPermission">
+ „Rekompilieren“ nicht möglich.
+
+Wählen Sie Objekte mit Skripts, die Sie bearbeiten dürfen.
+ </notification>
+ <notification name="CannotResetSelectObjectsNoScripts">
+ „Zurücksetzen“ nicht möglich.
+
+Wählen Sie Objekte mit Skripts.
+ </notification>
+ <notification name="CannotResetSelectObjectsNoPermission">
+ „Zurücksetzen“ nicht möglich.
+
+Wählen Sie Objekte mit Skripts, die Sie bearbeiten dürfen.
+ </notification>
+ <notification name="CannotSetRunningSelectObjectsNoScripts">
+ „Ausführen“ von Skripts nicht möglich.
+
+Wählen Sie Objekte mit Skripts.
+ </notification>
+ <notification name="CannotSetRunningNotSelectObjectsNoScripts">
+ „Deaktivieren“ von Skripts nicht möglich.
+
+Wählen Sie Objekte mit Skripts.
+ </notification>
+ <notification name="NoFrontmostFloater">
+ Kein vorderster Floater zum Speichern.
+ </notification>
+ <notification name="SeachFilteredOnShortWords">
+ Ihre Suchanfrage wurde geändert.
+Zu kurze Begriffe wurden entfernt.
+
+Ihre Suchanfrage: [FINALQUERY]
+ </notification>
+ <notification name="SeachFilteredOnShortWordsEmpty">
+ Ihre Suchbegriffe sind zu kurz.
+Es wurde keine Suche durchgeführt.
+ </notification>
+ <notification name="CouldNotTeleportReason">
+ Teleport fehlgeschlagen.
+[REASON]
+ </notification>
+ <notification name="invalid_tport">
+ Bei der Bearbeitung Ihrer Teleport-Anfrage ist ein Problem aufgetreten. Sie müssen sich zum Teleportieren eventuell neu anmelden. Wenn Sie diese Nachricht weiterhin erhalten, konsultieren Sie bitte die Tech-Support-FAQ unter:
+www.secondlife.com/support
+ </notification>
+ <notification name="invalid_region_handoff">
+ Bei der Bearbeitung Ihres Regionswechsels ist ein Problem aufgetreten. Sie müssen sich zum Wechsel der Region eventuell neu anmelden. Wenn Sie diese Nachricht weiterhin erhalten, konsultieren Sie bitte die Tech-Support-FAQ unter:
+www.secondlife.com/support
+ </notification>
+ <notification name="blocked_tport">
+ Teleportieren ist zurzeit leider nicht möglich. Versuchen Sie es später noch einmal.
+Wenn der Teleport dann immer noch nicht funktioniert, melden Sie sich bitte ab und wieder an.
+ </notification>
+ <notification name="nolandmark_tport">
+ Das System konnte das Landmarken-Ziel nicht finden.
+ </notification>
+ <notification name="timeout_tport">
+ Das System konnte keine Teleport-Verbindung herstellen.
+Versuchen Sie es später noch einmal.
+ </notification>
+ <notification name="noaccess_tport">
+ Sie haben leider keinen Zugang zu diesem Teleport-Ziel.
+ </notification>
+ <notification name="missing_attach_tport">
+ Ihre Anhänge sind noch nicht eingetroffen. Warten Sie kurz oder melden Sie sich ab und wieder an, bevor Sie einen neuen Teleport-Versuch unternehmen.
+ </notification>
+ <notification name="too_many_uploads_tport">
+ Die Asset-Warteschlange in dieser Region ist zurzeit überlastet.
+Ihre Teleport-Anfrage kann nicht sofort bearbeitet werden. Versuchen Sie es in einigen Minuten erneut oder besuchen Sie eine weniger überfüllte Region.
+ </notification>
+ <notification name="expired_tport">
+ Das System konnte Ihre Teleport-Anfrage nicht rechtzeitig bearbeiten. Versuchen Sie es in einigen Minuten erneut.
+ </notification>
+ <notification name="expired_region_handoff">
+ Das System konnte Ihre Anfrage zum Regionswechsel nicht rechtzeitig bearbeiten. Versuchen Sie es in einigen Minuten erneut.
+ </notification>
+ <notification name="no_host">
+ Teleport-Ziel wurde nicht gefunden. Das Ziel ist entweder im Moment nicht verfügbar oder existiert nicht mehr. Versuchen Sie es in einigen Minuten erneut.
+ </notification>
+ <notification name="no_inventory_host">
+ Das Inventarsystem ist zurzeit nicht verfügbar.
+ </notification>
+ <notification name="CannotSetLandOwnerNothingSelected">
+ Landeigentümer kann nicht festgelegt werden:
+Keine Parzelle ausgewählt.
+ </notification>
+ <notification name="CannotSetLandOwnerMultipleRegions">
+ Eine erzwungene Landübertragung ist nicht möglich, da die Auswahl mehrere Regionen umfasst. Wählen Sie ein kleineres Gebiet und versuchen Sie es erneut.
+ </notification>
+ <notification name="ForceOwnerAuctionWarning">
+ Diese Parzelle steht zur Auktion. Eine zwangsweise Eigentumsübertragung beendet die Auktion und verärgert womöglich Einwohner, die bereits ein Gebot abgegeben haben. Eigentumsübertragung erzwingen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="CannotContentifyNothingSelected">
+ Inhaltsidentifizierung nicht möglich:
+Keine Parzelle ausgewählt.
+ </notification>
+ <notification name="CannotContentifyNoRegion">
+ Inhaltsidentifizierung nicht möglich:
+Keine Region ausgewählt.
+ </notification>
+ <notification name="CannotReleaseLandNothingSelected">
+ Land kann nicht aufgegeben werden:
+Keine Parzelle ausgewählt.
+ </notification>
+ <notification name="CannotReleaseLandNoRegion">
+ Land kann nicht aufgegeben werden:
+Region nicht gefunden.
+ </notification>
+ <notification name="CannotBuyLandNothingSelected">
+ Land kann nicht gekauft werden:
+Keine Parzelle ausgewählt.
+ </notification>
+ <notification name="CannotBuyLandNoRegion">
+ Land kann nicht gekauft werden:
+Kann die Region nicht finden, in der sich dieses Land befindet.
+ </notification>
+ <notification name="CannotCloseFloaterBuyLand">
+ Das Fenster „Land kaufen“ kann erst geschlossen werden,
+nachdem Second Life den Transaktionspreis geschätzt hat.
+ </notification>
+ <notification name="CannotDeedLandNothingSelected">
+ Land kann nicht übertragen werden:
+Keine Parzelle ausgewählt.
+ </notification>
+ <notification name="CannotDeedLandNoGroup">
+ Land kann nicht übertragen werden:
+Keine Gruppe ausgewählt.
+ </notification>
+ <notification name="CannotDeedLandNoRegion">
+ Land kann nicht übertragen werden:
+Kann die Region nicht finden, in der sich dieses Land befindet.
+Bitte melden Sie dies über „Hilfe“ &gt; „Fehler melden“.
+ </notification>
+ <notification name="CannotDeedLandMultipleSelected">
+ Land kann nicht übertragen werden:
+Mehrere Parzellen ausgewählt.
+
+Wählen Sie eine einzelne Parzelle.
+ </notification>
+ <notification name="ParcelCanPlayMedia">
+ Dieser Ort kann Streaming-Medien abspielen.
+Streaming-Medien erfordern eine schnelle Internet-Verbindung.
+
+Streaming-Medien abspielen, wenn verfügbar?
+(Sie können diese Option später unter „Einstellungen“ &gt; „Audio &amp; Video“ ändern.)
+ <usetemplate name="okcancelbuttons" notext="Deaktivieren" yestext="Medien wiedergeben"/>
+ </notification>
+ <notification name="CannotDeedLandWaitingForServer">
+ Land kann nicht übertragen werden:
+Warte auf Server für Eigentümerinformationen.
+
+Bitte versuchen Sie es erneut.
+ </notification>
+ <notification name="CannotDeedLandNoTransfer">
+ Land kann nicht übertragen werden:
+Die Region [REGION] erlaubt keine Landübertragung.
+ </notification>
+ <notification name="CannotReleaseLandWatingForServer">
+ Land kann nicht aufgegeben werden:
+Server muss Parzelleninformation aktualisieren.
+
+Versuchen Sie es in einigen Sekunden erneut.
+ </notification>
+ <notification name="CannotReleaseLandSelected">
+ Land kann nicht aufgegeben werden:
+Die ausgewählten Parzellen gehören Ihnen nicht.
+
+Wählen Sie eine einzelne Parzelle.
+ </notification>
+ <notification name="CannotReleaseLandDontOwn">
+ Land kann nicht aufgegeben werden:
+Ihnen fehlt die Berechtigung zur Freigabe dieser Parzelle.
+Parzellen, die Ihnen gehören, werden grün dargestellt.
+ </notification>
+ <notification name="CannotReleaseLandRegionNotFound">
+ Land kann nicht aufgegeben werden:
+Kann die Region nicht finden, in der sich dieses Land befindet.
+
+Bitte melden Sie dies über „Hilfe“ &gt; „Fehler melden“.
+ </notification>
+ <notification name="CannotReleaseLandNoTransfer">
+ Land kann nicht aufgegeben werden:
+Die Region [REGION] erlaubt keine Landübertragung.
+ </notification>
+ <notification name="CannotReleaseLandPartialSelection">
+ Land kann nicht aufgegeben werden:
+Zum Freigeben müssen Sie eine ganze Parzelle auswählen.
+
+Wählen Sie eine ganze Parzelle oder teilen Sie Ihre Parzelle.
+ </notification>
+ <notification name="ReleaseLandWarning">
+ Sie sind im Begriff, [AREA] qm Land aufzugeben.
+Wenn Sie diese Parzelle aufgeben, wird sie ohne L$-Erstattung von Ihrem Landbesitz entfernt.
+
+Dieses Land aufgeben?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="CannotDivideLandNothingSelected">
+ Land kann nicht aufgeteilt werden:
+
+Keine Parzellen ausgewählt.
+ </notification>
+ <notification name="CannotDivideLandPartialSelection">
+ Land kann nicht aufgeteilt werden:
+
+Sie haben eine ganze Parzelle ausgewählt.
+Wählen Sie einen Parzellenabschnitt aus.
+ </notification>
+ <notification name="LandDivideWarning">
+ Wenn Sie dieses Land teilen, wird diese Parzelle in zwei geteilt, jede mit ihren eigenen Einstellungen. Einige dieser Einstellungen werden aufgrund dieses Vorgangs zurückgesetzt.
+
+Land teilen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="CannotDivideLandNoRegion">
+ Land kann nicht aufgeteilt werden:
+Kann die Region nicht finden, in der sich dieses Land befindet.
+
+Bitte melden Sie dies über „Hilfe“ &gt; „Fehler melden“.
+ </notification>
+ <notification name="CannotJoinLandNoRegion">
+ Land kann nicht zusammengelegt werden:
+Kann die Region nicht finden, in der sich dieses Land befindet.
+
+Bitte melden Sie dies über „Hilfe“ &gt; „Fehler melden“.
+ </notification>
+ <notification name="CannotJoinLandNothingSelected">
+ Land kann nicht zusammengelegt werden:
+Keine Parzellen ausgewählt.
+ </notification>
+ <notification name="CannotJoinLandEntireParcelSelected">
+ Land kann nicht zusammengelegt werden:
+Sie haben nur eine Parzelle ausgewählt.
+
+Wählen Sie Land auf beiden Parzellen aus.
+ </notification>
+ <notification name="CannotJoinLandSelection">
+ Land kann nicht zusammengelegt werden:
+Sie müssen mehrere Parzellen auswählen.
+
+Wählen Sie Land auf beiden Parzellen aus.
+ </notification>
+ <notification name="JoinLandWarning">
+ Beim Zusammenlegen entsteht aus den vom Auswahlrechteck
+erfassten Parzellen eine große Parzelle.
+Sie müssen der neuen Parzelle einen Namen geben und ihre Optionen festlegen.
+
+Land zusammenlegen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="ShowOwnersHelp">
+ Eigentümer anzeigen:
+Parzellen farblich kennzeichnen, um Eigentumsart anzuzeigen.
+
+Grün = Ihr Land
+Blau = Das Land Ihrer Gruppe
+Rot = Im Eigentum anderer
+Geld = Zum Verkauf
+Lila = Zur Auktion
+Grau = Öffentlich
+ </notification>
+ <notification name="ConfirmNotecardSave">
+ Um das Objekt kopieren oder anzeigen zu können, müssen Sie zuerst diese Notizkarte speichern. Notizkarte speichern?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmItemCopy">
+ Dieses Objekt in Ihr Inventar kopieren?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="Kopieren"/>
+ </notification>
+ <notification name="ResolutionSwitchFail">
+ Auflösung konnte nicht auf [RESX] x [RESY] gesetzt werden
+ </notification>
+ <notification name="ErrorUndefinedGrasses">
+ Fehler: Nicht definierte Gräser: [SPECIES]
+ </notification>
+ <notification name="ErrorUndefinedTrees">
+ Fehler: Nicht definierte Bäume: [SPECIES]
+ </notification>
+ <notification name="CannotSaveWearableOutOfSpace">
+ „[NAME]“ konnte nicht in Kleidungsdatei gespeichert werden. Geben Sie Speicherplatz auf dem Computer frei und speichern Sie das Kleidungsstück erneut.
+ </notification>
+ <notification name="CannotSaveToAssetStore">
+ [NAME] kann nicht in Zentral-Asset-Speicher geladen werden.
+Dies ist ein temporärer Fehler. Bitte passen Sie das Kleidungsstück in einigen Minuten noch einmal an und speichern Sie es erneut.
+
+Tritt dieses Problem wiederholt auf, klicken Sie auf das Pulldown-Menü „Hilfe“ &gt; „Fehler melden“ und geben Sie Details zu Ihrem Netzwerk-Setup an.
+ </notification>
+ <notification name="YouHaveBeenLoggedOut">
+ Sie wurden von [SECOND_LIFE] abgemeldet:
+ [MESSAGE]
+Klicken Sie auf „IM &amp; Chat anzeigen“, um vorhandene Nachrichten und Chat weiterhin anzuzeigen. Klicken Sie andernfalls auf „Beenden“, um [SECOND_LIFE] sofort zu beenden.
+ <usetemplate name="okcancelbuttons" notext="Beenden" yestext="IM &amp; Chat anzeigen"/>
+ </notification>
+ <notification name="OnlyOfficerCanBuyLand">
+ Landkauf für Gruppe nicht möglich:
+Sie sind nicht berechtigt, Land für die aktive Gruppe zu kaufen.
+ </notification>
+ <notification label="Freund hinzufügen" name="AddFriend">
+ Freunde können sich gegenseitig die Berechtigung erteilen, sich auf der Karte zu verfolgen und Online-Status Benachrichtigungen zu empfangen.
+
+[NAME] Freundschaft anbieten?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification label="Freund hinzufügen" name="AddFriendWithMessage">
+ Freunde können sich gegenseitig die Berechtigung erteilen, sich auf der Karte zu verfolgen und Online-Status Benachrichtigungen zu empfangen.
+
+[NAME] Freundschaft anbieten?
+ <form name="form">
+ <input name="message" type="text">
+ Wollen wir Freunde sein?
+ </input>
+ <button name="Offer" text="OK"/>
+ <button name="Cancel" text="Abbrechen"/>
+ </form>
+ </notification>
+ <notification name="RemoveFromFriends">
+ Möchten Sie [FIRST_NAME] [LAST_NAME] aus Ihrer Freundesliste entfernen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="RemoveMultipleFromFriends">
+ Möchten Sie mehrere Freunde aus Ihrer Freundesliste entfernen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="GodDeleteAllScriptedPublicObjectsByUser">
+ Möchten Sie alle geskripteten Objekte von
+** [AVATAR_NAME] **
+auf allen anderen Ländern in diesem Sim löschen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="GodDeleteAllScriptedObjectsByUser">
+ Möchten Sie ALLE geskripteten Objekte von
+** [AVATAR_NAME] **
+auf ALLEN LÄNDERN in diesem Sim LÖSCHEN?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="GodDeleteAllObjectsByUser">
+ Möchten Sie ALLE Objekte (einschließlich geskriptete) von
+** [AVATAR_NAME] **
+auf ALLEN LÄNDERN in diesem Sim LÖSCHEN?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="BlankClassifiedName">
+ Geben Sie einen Namen für die Anzeige ein.
+ </notification>
+ <notification name="MinClassifiedPrice">
+ Der Mindestbetrag für die Listung ist [MIN_PRICE] L$.
+
+Geben sie einen höheren Betrag ein.
+ </notification>
+ <notification name="ConfirmObjectDeleteLock">
+ Mindestens ein ausgewähltes Objekt ist gesperrt.
+
+Möchten Sie diese Objekte löschen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteNoCopy">
+ Mindestens ein ausgewähltes Objekt kann nicht kopiert werden.
+
+Möchten Sie diese Objekte löschen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteNoOwn">
+ Mindestens eines der ausgewählten Objekt gehört nicht Ihnen.
+
+Möchten Sie diese Objekte löschen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteLockNoCopy">
+ Mindestens ein Objekt ist gesperrt.
+Mindestens ein Objekt kann nicht kopiert werden.
+
+Möchten Sie diese Objekte löschen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteLockNoOwn">
+ Mindestens ein Objekt ist gesperrt.
+Mindestens ein Objekt gehört nicht Ihnen.
+
+Möchten Sie diese Objekte löschen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteNoCopyNoOwn">
+ Mindestens ein Objekt kann nicht kopiert werden.
+Mindestens ein Objekt gehört nicht Ihnen.
+
+Möchten Sie diese Objekte löschen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteLockNoCopyNoOwn">
+ Mindestens ein Objekt ist gesperrt.
+Mindestens ein Objekt kann nicht kopiert werden.
+Mindestens ein Objekt gehört nicht Ihnen.
+
+Möchten Sie diese Objekte löschen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectTakeLock">
+ Mindestens ein Objekt ist gesperrt.
+
+Möchten Sie diese Objekte nehmen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectTakeNoOwn">
+ Nicht alle Objekte, die Sie aufgenommen haben, gehören Ihnen.
+Wenn Sie fortfahren, werden die Rechte für den nächsten Eigentümer angewandt und Sie können die Objekte möglicherweise nicht bearbeiten oder kopieren.
+
+Möchten Sie diese Objekte nehmen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectTakeLockNoOwn">
+ Mindestens ein Objekt ist gesperrt.
+Nicht alle Objekte, die Sie aufgenommen haben, gehören Ihnen.
+Wenn Sie fortfahren, werden die Rechte für den nächsten Eigentümer abgefragt und Sie können die Objekte möglicherweise nicht bearbeiten oder kopieren.
+Die aktuelle Auswahl können Sie jedoch aufnehmen.
+
+Möchten Sie diese Objekte nehmen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="CantBuyLandAcrossMultipleRegions">
+ Landkauf nicht möglich, da die Auswahl mehrere Regionen umfasst.
+
+Wählen Sie ein kleineres Gebiet und versuchen Sie es erneut.
+ </notification>
+ <notification name="DeedLandToGroup">
+ Die Schenkung dieser Parzelle setzt voraus, dass die Gruppe über ausreichende Landnutzungsrechte verfügt.
+Dem Eigentümer wird der Kaufpreis für das Land nicht rückerstattet. Bei Verkauf der übertragenen Parzelle wird der Erlös zwischen den Gruppenmitgliedern aufgeteilt.
+
+Der Gruppe „[GROUP_NAME]“
+ [AREA] m² Land schenken?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="DeedLandToGroupWithContribution">
+ Die Schenkung dieser Parzelle setzt voraus, dass die Gruppe über ausreichende Landnutzungsrechte verfügt.
+Die Schenkung beinhaltet eine Landübertragung an die Gruppe von „[FIRST_NAME] [LAST_NAME]“.
+Dem Eigentümer wird der Kaufpreis für das Land nicht rückerstattet. Bei Verkauf der übertragenen Parzelle wird der Erlös zwischen den Gruppenmitgliedern aufgeteilt.
+
+Der Gruppe „[GROUP_NAME]“
+ [AREA] m² Land schenken?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="DisplaySetToSafe">
+ Es wurden sichere Anzeige-Einstellungen gewählt, da die Option -safe verwendet wurde.
+ </notification>
+ <notification name="DisplaySetToRecommended">
+ Es wurden die für Ihre Systemkonfiguration empfohlenen Anzeige-Einstellungen gewählt.
+ </notification>
+ <notification name="ErrorMessage">
+ [ERROR_MESSAGE]
+ </notification>
+ <notification name="AvatarMoved">
+ Ihr [TYPE]-Ort ist zurzeit nicht verfügbar. [HELP]
+Sie wurden zur nächstgelegenen Region teleportiert.
+ </notification>
+ <notification name="ClothingLoading">
+ Ihre Kleidung wird noch heruntergeladen.
+Sie können [SECOND_LIFE] normal verwenden. Andere Benutzer können Sie korrekt dargestellt sehen.
+ <form name="form">
+ <ignore name="ignore" text="Wenn das Herunterladen von Kleidung lange dauert"/>
+ </form>
+ </notification>
+ <notification name="FirstRun">
+ Die Installation von [SECOND_LIFE] ist abgeschlossen.
+
+Wenn Sie [SECOND_LIFE] das erste Mal verwenden, müssen Sie ein Konto anlegen, bevor Sie sich anmelden können.
+Möchten Sie auf www.secondlife.com ein Konto erstellen?
+ <usetemplate name="okcancelbuttons" notext="Weiter" yestext="Neues Konto..."/>
+ </notification>
+ <notification name="LoginPacketNeverReceived">
+ Die Verbindung kann nicht hergestellt werden. Möglicherweise besteht ein Problem mit Ihrer Internetverbindung oder den Second Life-Servern.
+
+Überprüfen Sie Ihre Internetverbindung und versuchen Sie es dann erneut, oder klicken Sie auf „Hilfe“, um zu unserer Supportseite zu gelangen, oder klicken Sie auf „Teleportieren“, um nach Hause zu teleportieren.
+ <form name="form">
+ <button name="OK" text="OK"/>
+ <button name="Help" text="Hilfe"/>
+ <button name="Teleport" text="Teleportieren"/>
+ </form>
+ </notification>
+ <notification name="WelcomeChooseSex">
+ Ihr Avatar erscheint jeden Moment.
+
+Benutzen Sie die Pfeiltasten, um sich fortzubewegen.
+Drücken Sie F1 für Hilfe oder für weitere Informationen über [SECOND_LIFE].
+Bitte wählen Sie einen männlichen oder weiblichen Avatar.
+Sie können sich später noch umentscheiden.
+ <usetemplate name="okcancelbuttons" notext="Weiblich" yestext="Männlich"/>
+ </notification>
+ <notification name="NotEnoughCurrency">
+ [NAME] [PRICE] L$ Sie haben nicht genügend L$, um diese Aktion auszuführen.
+ </notification>
+ <notification name="GrantedModifyRights">
+ Sie verfügen über Änderungsrechte für die Objekte von [FIRST_NAME] [LAST_NAME].
+ </notification>
+ <notification name="RevokedModifyRights">
+ Ihnen wurden die Änderungsrechte für die Objekte von [FIRST_NAME] [LAST_NAME] entzogen.
+ </notification>
+ <notification name="FlushMapVisibilityCaches">
+ Der Kartencache dieser Region wird geleert.
+Diese Aktion ist nur beim Debugging sinnvoll.
+(Auf dem Produktionssystem warten Sie einfach 5 Minuten. Die Karten werden nach erneuter Anmeldung automatisch aktualisiert.)
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="BuyOneObjectOnly">
+ Sie können jeweils nur ein Objekt kaufen. Wählen Sie ein einzelnes Objekt aus und versuchen Sie es erneut.
+ </notification>
+ <notification name="OnlyCopyContentsOfSingleItem">
+ Es kann nur jeweils der Inhalt von einem Objekt kopiert werden.
+Wählen Sie ein einzelnes Objekt aus und versuchen Sie es erneut.
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="KickUsersFromRegion">
+ Alle Einwohner in dieser Region nach Hause teleportieren?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="EstateObjectReturn">
+ Möchten Sie wirklich alle Objekte zurückgeben, die [USER_NAME] gehören?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="InvalidTerrainBitDepth">
+ Die Regionstexturen konnten nicht festgelegt werden:
+Die Terraintextur [TEXTURE_NUM] hat eine ungültige Bit-Tiefe [TEXTURE_BIT_DEPTH].
+
+Ersetzen Sie die Textur [TEXTURE_NUM] mit einer Bilddatei von maximal 512x512 und 24 Bit und klicken Sie dann erneut auf „Übernehmen“.
+ </notification>
+ <notification name="InvalidTerrainSize">
+ Die Regionstexturen konnten nicht festgelegt werden:
+Die Terraintextur [TEXTURE_NUM] ist mit [TEXTURE_SIZE_X]x[TEXTURE_SIZE_Y] zu groß.
+
+Ersetzen Sie die Textur [TEXTURE_NUM] mit einer Bilddatei von maximal 512x512 und 24 Bit und klicken Sie dann erneut auf „Übernehmen“.
+ </notification>
+ <notification name="RawUploadStarted">
+ Hochladen gestartet. Je nach Verbindungsgeschwindigkeit kann der Vorgang bis zu 2 Minuten dauern.
+ </notification>
+ <notification name="ConfirmBakeTerrain">
+ Möchten Sie das aktuelle Terrain formen, es zum Mittelpunkt der oberen und unteren Terraingrenzen und zum Standard des „Zurücksetzen“-Tools machen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="MaxAllowedAgentOnRegion">
+ Es sind maximal [MAX_AGENTS] zulässige Einwohner erlaubt.
+ </notification>
+ <notification name="MaxBannedAgentsOnRegion">
+ Es sind maximal [MAX_BANNED] verbannte Einwohner erlaubt.
+ </notification>
+ <notification name="MaxAgentOnRegionBatch">
+ Fehler beim Versuch, [NUM_ADDED] Agenten hinzuzufügen:
+Überschreitet den Grenzwert [MAX_AGENTS] [LIST_TYPE] um [NUM_EXCESS].
+ </notification>
+ <notification name="MaxAllowedGroupsOnRegion">
+ Es sind maximal [MAX_GROUPS] zulässige Gruppen erlaubt.
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="Formen"/>
+ </notification>
+ <notification name="MaxManagersOnRegion">
+ Es sind maximal [MAX_MANAGER] verbannte Einwohner erlaub.
+ </notification>
+ <notification name="OwnerCanNotBeDenied">
+ Der Eigentümer des Grundstücks kann nicht zur Liste der „Verbannten Einwohner“ hinzugefügt werden.
+ </notification>
+ <notification name="CanNotChangeAppearanceUntilLoaded">
+ Das Aussehen lässt sich erst ändern, wenn Kleider und Form/Gestalt geladen sind.
+ </notification>
+ <notification name="ClassifiedMustBeAlphanumeric">
+ Der Name der Anzeige muss mit einem Buchstaben von A bis Z oder einer Ziffer beginnen. Satzzeichen sind nicht erlaubt.
+ </notification>
+ <notification name="CantSetBuyObject">
+ „Objekt kaufen“ nicht möglich, da das Objekt nicht zum Verkauf freigegeben ist.
+Geben Sie das Objekt zum Verkauf frei und versuchen Sie es erneut.
+ </notification>
+ <notification name="FinishedRawDownload">
+ Raw-Terrain-Datei wurde heruntergeladen nach:
+[DOWNLOAD_PATH].
+ </notification>
+ <notification name="DownloadWindowsMandatory">
+ Eine neue Version von [SECOND_LIFE] ist verfügbar.
+[MESSAGE]
+Sie müssen das Update herunterladen, um [SECOND_LIFE] weiter verwenden zu können.
+ <usetemplate name="okcancelbuttons" notext="Beenden" yestext="Herunterladen"/>
+ </notification>
+ <notification name="DownloadWindows">
+ Eine aktualisierte Version von [SECOND_LIFE] ist verfügbar.
+[MESSAGE]
+Dieses Update ist nicht erforderlich, für bessere Leistung und Stabilität sollte es jedoch installiert werden.
+ <usetemplate name="okcancelbuttons" notext="Weiter" yestext="Herunterladen"/>
+ </notification>
+ <notification name="DownloadWindowsReleaseForDownload">
+ Eine aktualisierte Version von [SECOND_LIFE] ist verfügbar.
+[MESSAGE]
+Dieses Update ist nicht erforderlich, für bessere Leistung und Stabilität sollte es jedoch installiert werden.
+ <usetemplate name="okcancelbuttons" notext="Weiter" yestext="Herunterladen"/>
+ </notification>
+ <notification name="DownloadMacMandatory">
+ Eine neue Version von [SECOND_LIFE] ist verfügbar.
+[MESSAGE]
+Sie müssen das Update herunterladen, um [SECOND_LIFE] weiter verwenden zu können.
+
+In Ihren Anwendungsordner herunterladen?
+ <usetemplate name="okcancelbuttons" notext="Beenden" yestext="Herunterladen"/>
+ </notification>
+ <notification name="DownloadMac">
+ Eine aktualisierte Version von [SECOND_LIFE] ist verfügbar.
+[MESSAGE]
+Dieses Update ist nicht erforderlich, für bessere Leistung und Stabilität sollte es jedoch installiert werden.
+
+In Ihren Anwendungsordner herunterladen?
+ <usetemplate name="okcancelbuttons" notext="Weiter" yestext="Herunterladen"/>
+ </notification>
+ <notification name="DownloadMacReleaseForDownload">
+ Eine aktualisierte Version von [SECOND_LIFE] ist verfügbar.
+[MESSAGE]
+Dieses Update ist nicht erforderlich, für bessere Leistung und Stabilität sollte es jedoch installiert werden.
+
+In Ihren Anwendungsordner herunterladen?
+ <usetemplate name="okcancelbuttons" notext="Weiter" yestext="Herunterladen"/>
+ </notification>
+ <notification name="DeedObjectToGroup">
+ Bei Übertragung dieses Objekts erhält die Gruppe:
+* An das Objekt bezahlte L$
+ <usetemplate ignoretext="Beim Übertragen von Objekten an Gruppen" name="okcancelignore" notext="Abbrechen" yestext="Übertragung"/>
+ </notification>
+ <notification name="WebLaunchExternalTarget">
+ Den System-Webbrowser öffnen, um diesen Inhalt anzuzeigen?
+ <usetemplate ignoretext="Wenn der System-Webbrowser zur Anzeige einer Webseite geöffnet wird" name="okcancelignore" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchJoinNow">
+ Zu www.secondlife.com, um Ihr Konto zu verwalten?
+ <usetemplate ignoretext="Beim Starten eines Browsers, um Ihr Konto zu verwalten" name="okcancelignore" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchBugReport101">
+ Informieren Sie sich im [SECOND_LIFE] Wiki, wie man Fehler richtig meldet.
+ <usetemplate ignoretext="Beim Starten eines Browsers, um das Fehlermeldungs-Wiki anzuzeigen" name="okcancelignore" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchSecurityIssues">
+ Informieren Sie sich im [SECOND_LIFE] Wiki, wie man Sicherheitsprobleme richtig meldet.
+ <usetemplate ignoretext="Beim Starten eines Browsers, um das Sicherheitsfragen-Wiki anzuzeigen" name="okcancelignore" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchQAWiki">
+ Besuchen Sie das [SECOND_LIFE] QA-Wiki.
+ <usetemplate ignoretext="Beim Starten eines Browsers, um das QA-Wiki anzuzeigen" name="okcancelignore" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchPublicIssue">
+ Im [SECOND_LIFE] Allgemeine-Fragen-Tracker können Sie Fehler und andere Probleme melden.
+ <usetemplate ignoretext="Beim Starten eines Browsers, um den Allgemeine Probleme Tracker anzuzeigen" name="okcancelignore" notext="Abbrechen" yestext="Gehe zu Seite"/>
+ </notification>
+ <notification name="WebLaunchPublicIssueHelp">
+ Informieren Sie sich im [SECOND_LIFE] Wiki über den Allgemeine Fragen-Tracker.
+ <usetemplate ignoretext="Beim Starten eines Browsers, um das Allgemeine Fragen-Wiki anzuzeigen" name="okcancelignore" notext="Abbrechen" yestext="Gehe zu Seite"/>
+ </notification>
+ <notification name="WebLaunchSupportWiki">
+ Im offiziellen Linden-Blog finden Sie die neuesten Nachrichten und Informationen.
+ <usetemplate ignoretext="Beim Starten eines Browsers, um das Blog anzuzeigen" name="okcancelignore" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchLSLGuide">
+ Zur Scripting-Anleitung, um Scripting-Hilfe zu erhalten?
+ <usetemplate ignoretext="Beim Starten eines Browsers, um die Scripting-Anleitung anzuzeigen" name="okcancelignore" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchLSLWiki">
+ Zum LSL-Portal, um Scripting-Hilfe zu erhalten?
+ <usetemplate ignoretext="Beim Starten eines Browsers, um das LSL-Portal anzuzeigen" name="okcancelignore" notext="Abbrechen" yestext="Gehe zu Seite"/>
+ </notification>
+ <notification name="ReturnToOwner">
+ Möchten Sie die ausgewählten Objekte an ihre Eigentümer zurückgeben? Transferierbare übertragene Objekte werden ihren früheren Eigentümern zurückgegeben.
+
+*WARNUNG* Nicht transferierbare übertragene Objekte werden dabei gelöscht!
+ <usetemplate ignoretext="Beim Zurückgeben von Objekten an ihre Eigentümer" name="okcancelignore" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="GroupLeaveConfirmMember">
+ Sie sind Mitglied der Gruppe [GROUP].
+Diese Gruppe verlassen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmKick">
+ Möchten Sie WIRKLICH alle Benutzer aus dem Grid werfen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="Alle Benutzer hinauswerfen"/>
+ </notification>
+ <notification name="MuteLinden">
+ Lindens können nicht stummgeschaltet werden.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="CannotStartAuctionAlreadyForSale">
+ Eine Parzelle, die bereits zum Verkauf freigegeben ist, kann nicht versteigert werden. Deaktivieren Sie den Landverkauf, wenn Sie das Land zur Versteigerung freigeben möchten.
+ </notification>
+ <notification label="Objekt nach Name stummschalten fehlgeschlagen" name="MuteByNameFailed">
+ Dieser Name ist bereits stummgeschaltet.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="RemoveItemWarn">
+ Diese Aktion ist zwar erlaubt, aber beim Löschen von Inhalten wird das Objekt beschädigt. Möchten Sie dieses Element löschen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="CantOfferCallingCard">
+ Sie können gerade keine Visitenkarte übergeben. Warten Sie kurz und versuchen Sie es dann noch einmal.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="CantOfferFriendship">
+ Sie können gerade keine Freundschaft anbieten. Warten Sie kurz und versuchen Sie es dann noch einmal.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="BusyModeSet">
+ Beschäftigt-Modus aktiviert.
+Chat und Instant Messages werden ausgeblendet. Instant Messages erhalten Ihre Beschäftigt-Antwort. Alle Teleport-Angebote werden ausgeschlagen. Alle Inventar-Angebote werden in den Papierkorb verschoben.
+ <usetemplate ignoretext="Beim Aktivieren des Beschäftigt-Modus" name="okignore" yestext="OK"/>
+ </notification>
+ <notification name="JoinedTooManyGroupsMember">
+ Sie sind bereits in zu vielen Gruppen Mitglied und können keiner weiteren beitreten. Bitte verlassen Sie eine Gruppe, bevor Sie dieser beitreten oder lehnen Sie das Angebot ab.
+Die Option zum Austritt aus einer Gruppe finden Sie unter „Bearbeiten“ &gt; „Gruppen...“.
+[NAME] hat Sie eingeladen, einer Gruppe beizutreten.
+[INVITE]
+ <usetemplate name="okcancelbuttons" notext="Ablehnen" yestext="Beitreten"/>
+ </notification>
+ <notification name="KickUser">
+ Beim Hinauswerfen dieses Benutzers welche Meldung anzeigen?
+ <form name="form">
+ <input name="message" type="text">
+ Sie wurden von einem Administrator abgemeldet.
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Abbrechen"/>
+ </form>
+ </notification>
+ <notification name="KickAllUsers">
+ Beim Hinauswerfen aller Personen vom Grid welche Meldung anzeigen?
+ <form name="form">
+ <input name="message" type="text">
+ Sie wurden von einem Administrator abgemeldet.
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Abbrechen"/>
+ </form>
+ </notification>
+ <notification name="FreezeUser">
+ Beim Einfrieren dieses Benutzers welche Meldung anzeigen?
+ <form name="form">
+ <input name="message" type="text">
+ Sie wurden eingefroren. Bewegen oder Chatten ist nicht mehr möglich. Ein Administrator wird sich über IM an Sie wenden
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Abbrechen"/>
+ </form>
+ </notification>
+ <notification name="UnFreezeUser">
+ Beim Auftauen dieses Benutzers welche Meldung anzeigen?
+ <form name="form">
+ <input name="message" type="text">
+ Sie sind nicht mehr eingefroren.
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Abbrechen"/>
+ </form>
+ </notification>
+ <notification name="OfferTeleport">
+ Teleport an Ihre Position mit der folgenden Meldung anbieten?
+ <form name="form">
+ <input name="message" type="text">
+ Triff mich in [REGION]
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Abbrechen"/>
+ </form>
+ </notification>
+ <notification name="OfferTeleportFromGod">
+ Benutzer an Ihrem Standort herbeirufen?
+ <form name="form">
+ <input name="message" type="text">
+ Triff mich in [REGION]
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Abbrechen"/>
+ </form>
+ </notification>
+ <notification name="TeleportFromLandmark">
+ Möchten Sie sich wirklich teleportieren?
+ <usetemplate ignoretext="Beim Teleportieren von einer Landmarke im Inventar" name="okcancelignore" notext="Abbrechen" yestext="Teleportieren"/>
+ </notification>
+ <notification label="Nachricht an alle auf diesem Grundstück" name="MessageEstate">
+ Geben Sie eine kurze Nachricht ein, die an jede Person auf Ihrem Grundstück gesendet wird.
+ <form name="form">
+ <input name="message" type="text"/>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Abbrechen"/>
+ </form>
+ </notification>
+ <notification label="Linden-Grundstück ändern" name="ChangeLindenEstate">
+ Sie sind im Begriff, ein Grundstück in Linden-Besitz (Mainland, Teen-Raster, Orientierung usw.) zu verändern.
+
+Dies ist ÄUSSERST GEFÄHRLICH, da es grundlegende Auswirkungen auf das Benutzererlebnis hat. Auf dem Mainland werden tausende Regionen geändert, was den Spaceserver stark belastet.
+
+Fortfahren?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification label="Zugang zu Linden-Grundstück ändern" name="ChangeLindenAccess">
+ Sie sind im Begriff, die Zugangsliste für ein Grundstück in Linden-Besitz (Mainland, Teen-Raster, Orientierung usw.) zu verändern.
+
+Dies ist GEFÄHRLICH und sollte nur erfolgen, um Objekte/L$ per Hack in und aus dem Raster zu entfernen.
+Tausende Regionen werden verändert und der Spaceserver wird dadurch stark belastet.
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification label="Grundstück wählen" name="EstateAllowedAgentAdd">
+ Nur für dieses Grundstück oder für alle [ALL_ESTATES] zur Erlaubnisliste hinzufügen?
+ <usetemplate canceltext="Abbrechen" name="yesnocancelbuttons" notext="Alle Grundstücke" yestext="Dieses Grundstück"/>
+ </notification>
+ <notification label="Grundstück wählen" name="EstateAllowedAgentRemove">
+ Nur für dieses Grundstück oder für alle [ALL_ESTATES] von Erlaubnisliste entfernen?
+ <usetemplate canceltext="Abbrechen" name="yesnocancelbuttons" notext="Alle Grundstücke" yestext="Dieses Grundstück"/>
+ </notification>
+ <notification label="Grundstück wählen" name="EstateAllowedGroupAdd">
+ Nur für dieses Grundstück oder für alle [ALL_ESTATES] zur Gruppen-Erlaubnisliste hinzufügen?
+ <usetemplate canceltext="Abbrechen" name="yesnocancelbuttons" notext="Alle Grundstücke" yestext="Dieses Grundstück"/>
+ </notification>
+ <notification label="Grundstück wählen" name="EstateAllowedGroupRemove">
+ Nur für dieses Grundstück oder für alle [ALL_ESTATES] von Gruppen-Erlaubnisliste entfernen?
+ <usetemplate canceltext="Abbrechen" name="yesnocancelbuttons" notext="Alle Grundstücke" yestext="Dieses Grundstück"/>
+ </notification>
+ <notification label="Grundstück wählen" name="EstateBannedAgentAdd">
+ Zugang nur für dieses Grundstück oder für [ALL_ESTATES] verweigern?
+ <usetemplate canceltext="Abbrechen" name="yesnocancelbuttons" notext="Alle Grundstücke" yestext="Dieses Grundstück"/>
+ </notification>
+ <notification label="Grundstück wählen" name="EstateBannedAgentRemove">
+ Einwohner nur für dieses Grundstück oder für alle [ALL_ESTATES] von der Bannliste entfernen?
+ <usetemplate canceltext="Abbrechen" name="yesnocancelbuttons" notext="Alle Grundstücke" yestext="Dieses Grundstück"/>
+ </notification>
+ <notification label="Grundstück wählen" name="EstateManagerAdd">
+ Verwalter nur für dieses Grundstück oder für [ALL_ESTATES] festlegen?
+ <usetemplate canceltext="Abbrechen" name="yesnocancelbuttons" notext="Alle Grundstücke" yestext="Dieses Grundstück"/>
+ </notification>
+ <notification label="Grundstück wählen" name="EstateManagerRemove">
+ Verwalter nur für dieses Grundstück oder für [ALL_ESTATES] entfernen?
+ <usetemplate canceltext="Abbrechen" name="yesnocancelbuttons" notext="Alle Grundstücke" yestext="Dieses Grundstück"/>
+ </notification>
+ <notification label="Rauswurf bestätigen" name="EstateKickUser">
+ Benutzer [EVIL_USER] von diesem Grundstück werfen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="EstateChangeCovenant">
+ Möchten Sie den Grundstücksvertrag wirklich ändern?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="RegionEntryAccessBlocked">
+ Sie dürfen diese Region aufgrund Ihrer Alterseinstufung nicht betreten. Der Grund hierfür ist möglicherweise, dass Sie nicht altersüberprüft sind.
+
+Bitte vergewissern Sie sich, dass Sie den aktuellsten Viewer installiert haben und besuchen Sie unsere Knowledgebase, um mehr über Regionen mit dieser Altereinstufung zu erfahren.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="RegionEntryAccessBlocked_KB">
+ Sie dürfen diese Region aufgrund Ihrer Alterseinstufung nicht betreten.
+
+Möchten Sie unsere Knowledgebase besuchen, um mehr Informationen über Altereinstufung zu erhalten?
+ <url name="url">
+ http://wiki.secondlife.com/wiki/Alterseinstufung:_Ein_%C3%9Cberblick_(KB)
+ </url>
+ <usetemplate ignoretext="Wenn Regionzugang aufgrund von Alterseinstufung gesperrt ist" name="okcancelignore" notext="Schließen" yestext="Zur Knowledgbase"/>
+ </notification>
+ <notification name="RegionEntryAccessBlocked_Notify">
+ Aufgrund Ihrer Alterseinstufung dürfen Sie diese Region nicht betreten.
+ </notification>
+ <notification name="RegionEntryAccessBlocked_Change">
+ Sie dürfen diese Region aufgrund der Einstellung Ihrer Alterseinstufung nicht betreten.
+
+Klicken Sie auf „Einstellung ändern“, um Ihre Einstellung für Altereinstufung sofort zu ändern und Zugang zu erhalten. Sie können ab sofort [REGIONMATURITY]-Inhalt suchen und auf diesen zugreifen. Falls Sie diese Einstellung später rückgängig machen möchten, gehen Sie zu Bearbeiten &gt; Einstellungen... &gt; Allgemein.
+ <form name="form">
+ <button
+ name="OK"
+ text="Einstellung ändern"/>
+ <button
+ name="Cancel"
+ text="Schließen"/>
+ <ignore name="ignore" text="Wenn Regionzugang aufgrund von Einstellung für Alterseinstufung gesperrt ist"/>
+ </form>
+ </notification>
+ <notification name="LandClaimAccessBlocked">
+ Sie haben aufgrund Ihrer Alterseinstufung keinen Anspruch auf dieses Land. Der Grund hierfür ist möglicherweise, dass Sie nicht altersüberprüft sind.
+
+Bitte vergewissern Sie sich, dass Sie den aktuellsten Viewer installiert haben und besuchen Sie unsere Knowledgebase, um mehr über Regionen mit dieser Altereinstufung zu erfahren.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="LandClaimAccessBlocked_KB">
+ Sie haben aufgrund Ihrer Alterseinstufung keinen Anspruch auf dieses Land.
+
+Möchten Sie unsere Knowledgebase besuchen, um mehr Informationen über Altereinstufung zu erhalten?
+ <url name="url">
+ http://wiki.secondlife.com/wiki/Alterseinstufung:_Ein_%C3%9Cberblick_(KB)
+ </url>
+ <usetemplate ignoretext="Wenn Landanspruch aufgrund von Alterseinstufung gesperrt ist" name="okcancelignore" notext="Schließen" yestext="Zur Knowledgbase"/>
+ </notification>
+ <notification name="LandClaimAccessBlocked_Notify">
+ Sie haben aufgrund Ihrer Alterseinstufung keinen Anspruch auf dieses Land.
+ </notification>
+ <notification name="LandClaimAccessBlocked_Change">
+ Sie haben aufgrund der Einstellung Ihrer Alterseinstufung keinen Anspruch auf dieses Land.
+
+Klicken Sie auf „Einstellung ändern“, um Ihre Einstellung für Altereinstufung sofort zu ändern und Zugang zu erhalten. Sie können ab sofort [REGIONMATURITY]-Inhalt suchen und auf diesen zugreifen. Falls Sie diese Einstellung später rückgängig machen möchten, gehen Sie zu Bearbeiten &gt; Einstellungen... &gt; Allgemein.
+ <usetemplate ignoretext="Wenn Landanspruch aufgrund von Einstellung der Alterseinstufung gesperrt ist" name="okcancelignore" notext="Schließen" yestext="Einstellung ändern"/>
+ </notification>
+ <notification name="LandBuyAccessBlocked">
+ Sie können aufgrund Ihrer Alterseinstufung dieses Land nicht kaufen. Der Grund hierfür ist möglicherweise, dass Sie nicht altersüberprüft sind.
+
+Bitte vergewissern Sie sich, dass Sie den aktuellsten Viewer installiert haben und besuchen Sie unsere Knowledgebase, um mehr über Regionen mit dieser Altereinstufung zu erfahren.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="LandBuyAccessBlocked_KB">
+ Sie können aufgrund Ihrer Alterseinstufung dieses Land nicht kaufen.
+
+Möchten Sie unsere Knowledgebase besuchen, um mehr Informationen über Altereinstufung zu erhalten?
+ <url name="url">
+ http://wiki.secondlife.com/wiki/Alterseinstufung:_Ein_%C3%9Cberblick_(KB)
+ </url>
+ <usetemplate ignoretext="Wenn Landkauf aufgrund von Alterseinstufung gesperrt ist" name="okcancelignore" notext="Schließen" yestext="Zur Knowledgbase"/>
+ </notification>
+ <notification name="LandBuyAccessBlocked_Notify">
+ Sie können aufgrund Ihrer Alterseinstufung dieses Land nicht kaufen.
+ </notification>
+ <notification name="LandBuyAccessBlocked_Change">
+ Sie können aufgrund Ihrer Einstellung für Alterseinstufung dieses Land nicht kaufen.
+
+Klicken Sie auf „Einstellung ändern“, um Ihre Einstellung für Altereinstufung sofort zu ändern und Zugang zu erhalten. Sie können ab sofort [REGIONMATURITY]-Inhalt suchen und auf diesen zugreifen. Falls Sie diese Einstellung später rückgängig machen möchten, gehen Sie zu Bearbeiten &gt; Einstellungen... &gt; Allgemein.
+ <usetemplate ignoretext="Wenn Landkauf aufgrund von Einstellung für Alterseinstufung gesperrt ist" name="okcancelignore" notext="Schließen" yestext="Einstellung ändern"/>
+ </notification>
+ <notification name="TooManyPrimsSelected">
+ &quot;Zu viele Prims wurden ausgewählt. Bitte wählen Sie höchstens [MAX_PRIM_COUNT] Prims aus und versuchen Sie es erneut.&quot;
+ </notification>
+ <notification name="ProblemImportingEstateCovenant">
+ Problem beim Import des Grundstückvertrags.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="ProblemAddingEstateManager">
+ Es gibt Probleme beim Hinzufügen eines neuen Grundstücksverwalters. Bei mindestens einem Grundstück ist die Verwalterliste voll.
+ </notification>
+ <notification name="ProblemAddingEstateGeneric">
+ Problem beim Hinzufügen zu dieser Grundstücksliste. Bei mindestens einem Grundstück ist die Liste voll.
+ </notification>
+ <notification name="UnableToLoadNotecardAsset">
+ Notizkarten-Asset konnte nicht geladen werden.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="NotAllowedToViewNotecard">
+ Unzureichende Rechte, um die mit der angeforderten Asset-ID verbundene Notizkarte anzuzeigen.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="MissingNotecardAssetID">
+ Asset-ID für Notizkarte fehlt in Datenbank.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="PublishClassified">
+ Hinweis: Anzeigengebühren werden nicht zurückerstattet.
+
+Anzeige für [AMOUNT] L$ veröffentlichen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="SetClassifiedMature">
+ Enthält diese Anzeige Mature-Inhalte?
+ <usetemplate canceltext="Abbrechen" name="yesnocancelbuttons" notext="Nein" yestext="Ja"/>
+ </notification>
+ <notification name="SetGroupMature">
+ Beschäftigt sich diese Gruppe mit Mature-Inhalten?
+ <usetemplate canceltext="Abbrechen" name="yesnocancelbuttons" notext="Nein" yestext="Ja"/>
+ </notification>
+ <notification label="Neustart bestätigen" name="ConfirmRestart">
+ Möchten Sie diese Region in 2 Minuten neu starten?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification label="Nachricht an alle in dieser Region" name="MessageRegion">
+ Geben Sie eine kurze Nachricht ein, die an jede Person in dieser Region gesendet wird.
+ <form name="form">
+ <input name="message" type="text"/>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Abbrechen"/>
+ </form>
+ </notification>
+ <notification label="Terraformen blockieren" name="HelpRegionBlockTerraform">
+ Wenn diese Option aktiviert ist, können Landeigentümer Ihr Land nicht terraformen. Ausgenommen davon ist die parzelleneigene Einstellung „Terrain bearbeiten“.
+
+Standard: deaktiviert
+ </notification>
+ <notification label="Fliegen blockieren" name="HelpRegionBlockFly">
+ Wenn diese Option aktiviert ist, ist Fliegen in dieser Region nicht möglich, auch wenn für die Parzelle eine andere Einstellung aktiv ist.
+
+Standard: deaktiviert
+ </notification>
+ <notification label="Mehrere Inhaltsberechtigungen ändern" name="HelpBulkPermission">
+ Mit dem Werkzeug „Mehrere Berechtigungen“ können Sie Berechtigungen für mehrere Objekte in den Inhalten des ausgewählten Objekts schnell ändern. Bitte beachten Sie, dass Sie nur Berechtigungen an den Objekten im Inhalt der ausgewählten Objekte einstellen, nicht Berechtigungen an dem/den Container-Objekt(en=) selbst.
+
+Bitte beachten Sie auch, dass die Berechtigungen nicht auf eingebettete Inhalte der enthaltenen Objekte angewandt werden. Ihre Auftrag wird nur an Objekten ausgeführt, die sie sich in diesem Level befinden.
+
+Sie können auswählen, welche Objektarten Sie ändern möchten, indem Sie diese in der Liste unter „Inhaltsarten“ auswählen. Wenn Sie Texturen auswählen, sind Fotos mit eingeschlossen.
+
+* Mit diesem Werkzeug können Sie nur an Objekten, die Sie ändern dürfen, Änderungen vornehmen.
+* Sie können dem nächsten Eigentümer keine Berechtigungen geben, die Sie nicht besitzen.
+* Die Berechtigungen für den nächsten Eigentümer sind nur Anfragen. Wenn ein Objekt nicht alle Berechtigungen annehmen kann, dann werden keine seiner Berechtigungen geändert.
+
+Wenn Sie bereit sind, die Berechtigungen mehrfach zu ändern, klicken Sie auf Übernehmen und warten Sie, bis die Ergebnisse angezeigt werden.
+
+Wenn Sie das Fenster „Mehrfach-Berechtigungen“ schließen, während die Berechtigungen geändert werden, wird der Vorgang gestoppt.
+ </notification>
+ <notification label="Schaden zulassen" name="HelpRegionAllowDamage">
+ Wenn diese Option aktiviert ist, ist das Gesundheitssystem auf allen Parzellen aktiviert, unabhängig von den Parzelleneinstellungen. Ist die Option links deaktiviert, können die Parzelleneigentümer das Gesundheitssystem individuell einschalten.
+
+Standard: deaktiviert
+ </notification>
+ <notification label="Avatar-Limit" name="HelpRegionAgentLimit">
+ Legt die maximale Anzahl an Avataren für diese Region fest.
+Die Leistung hängt von der Anzahl der Avatare in der Region ab.
+
+Standard: 40
+ </notification>
+ <notification label="Objektbonus" name="HelpRegionObjectBonus">
+ Der Objektbonus ist ein Multiplikator für die Anzahl an zulässigen Primitiven auf einer Parzelle. Gültig sind Werte zwischen 1 und 10. „1“ erlaubt auf einer 512 qm großen Parzelle 117 Objekte. „2“ erlaubt auf einer 512 qm großen Parzelle 234 Objekte, also die doppelte Menge. Die maximale Objektanzahl in einer Region beträgt unabhängig vom Objektbonus 15.000.
+Eine nachträglich Senkung des Objektbonus führt dazu, dass Objekte zurückgegeben oder gelöscht werden.
+
+Standard: 1.0
+ </notification>
+ <notification label="Alterseinstufung" name="HelpRegionMaturity">
+ Legt die Alterseinstufung für die Region fest. Dies wird in der Menüleiste oben im Viewer angezeigt und auch in den Kurzinfos auf der Weltkarte, wenn der Cursor über diese Region schwebt. Diese Einstellung wirkt sich auch auf den Zugang zu dieser Region und die Suchergebnisse aus. Andere Einwohner können Regionen nur dann betreten oder Suchergebnisse anzeigen, wenn Ihre Alterseinstufung in Ihren Einstellungen der Alterseinstellung der Region bzw. Suchergebnisse entsprechen.
+
+Es kann eine Weile dauern, bis diese Änderung auf der Karte angezeigt wird.
+ </notification>
+ <notification label="Stoßen beschränken" name="HelpRegionRestrictPushObject">
+ Aktivieren sie diese Option, um in der gesamten Region das Stoßen zu beschränken. Wenn aktiviert, können Einwohner nur von sich selbst oder vom Parzelleneigentümer gestoßen werden.
+(Stoßen meint die LSL-Funktion llPushObject().)
+
+Standard: deaktiviert
+ </notification>
+ <notification label="Parzelle zusammenlegen/teilen" name="HelpParcelChanges">
+ Dieses Kontrollkästchen steuert, ob Parzellen des Grundstückseigentümers zusammengelegt bzw. unterteilt werden können. Wenn deaktiviert:
+ * Nur Grundstückseigentümer bzw. –verwalter können Parzellen zusammenlegen/teilen. * Sie können nur Parzellen zusammenlegen/teilen, die dem Eigentümer oder einer Gruppe gehören, bei der sie entsprechende Gruppenrechte innehaben.
+Wenn aktiviert:
+ * Die Parzelleneigentümer können ihre Parzellen selbst zusammenlegen/teilen.
+ * Parzellen in Gruppeneigentum können von Mitgliedern mit den entsprechenden Rechten zusammengelegt bzw. unterteilt werden.
+
+Standard: aktiviert
+ </notification>
+ <notification label="Nicht in Suche anzeigen" name="HelpRegionSearch">
+ Wenn Sie diese Option auswählen, können Parzelleneigentümer ihre Parzellen nicht in der Suche anzeigen lassen
+
+Standard: deaktiviert
+ </notification>
+ <notification label="Alterseinstufung der Region ändern" name="RegionMaturityChange">
+ Die Alterseinstufung dieser Region wurde aktualisiert.
+Es kann eine Weile dauern, bis sich die Änderung auf die Karte auswirkt.
+ </notification>
+ <notification label="Landwiederverkauf" name="HelpRegionLandResell">
+ Grundstückseigentümer und -verwalter können jedes Land im Besitz des Grundstückseigentümers verkaufen.
+Ist diese Option deaktiviert, können Käufer ihr Land in dieser Region nicht weiterverkaufen.
+Ist die Option aktiviert, können Käufer ihr Land in dieser Region weiterverkaufen.
+
+Standard: deaktiviert
+ </notification>
+ <notification label="Skripts deaktivieren" name="HelpRegionDisableScripts">
+ Schlechte Sim-Performance ist oftmals auf ein Skript zurückzuführen. Öffnen Sie die Statistikleiste (Strg-Umschalt-1). Sehen Sie sich den Wert für „Simulator Physics FPS“ (Simulator Physik-FPS) an.
+Wenn der Wert unter 45 liegt, öffnen Sie den Bereich „Time“ (Zeit) ganz unten in der Statistikleiste. Wenn der Wert für „Script Time“ (Skriptzeit) 25 ms oder höher ist, klicken Sie auf „Top-Skripts“. Der Name und die Position der Skripts, die für die schlechte Performance verantwortlich sind, werden angezeigt.
+Wenn Sie das Kontrollkästchen „Skripts deaktivieren“ aktivieren und auf „Übernehmen“ klicken, werden alle Skripts in der Region zeitweilig deaktiviert. Dieser Schritt ist eventuell notwendig, damit Sie an die Position des gemeldeten „Top-Skripts“ reisen können. Sobald Sie dort angekommen sind, sollten Sie das Skript auf die Ursache des Problems hin untersuchen. Möglicherweise müssen Sie sich an den Skript-Eigentümer wenden oder das Objekt löschen bzw. zurückgeben. Um die Skripte in der Region wieder zu aktivieren, deaktivieren Sie „Skript deaktivieren“ und klicken Sie auf „Übernehmen“.
+
+Standard: deaktiviert
+ </notification>
+ <notification label="Kollisionen deaktivieren" name="HelpRegionDisableCollisions">
+ Schlechte Sim-Performance ist oftmals auf physische Objekte zurückzuführen.
+Öffnen Sie die Statistikleiste (Strg-Umschalt-1). Sehen Sie sich den Wert „Simulator Physics FPS“ an. Liegt dieser unter 45, öffnen Sie unten in der Statistikleiste den „Time“-Bereich. Liegt die „Sim Time (Physics)“ bei 20 ms oder darüber, klicken Sie auf „Top-Kollisionsobjekte“.
+Der Name und der Standort der physischen Objekte, die das Problem verursachen, werden angezeigt.
+
+Wenn Sie das Kontrollkästchen „Kollisionen deaktivieren“ aktivieren und auf „Übernehmen“ klicken, werden alle Objekt-Objekt-Kollisionen in der Region zeitweilig deaktiviert. Dieser Schritt ist eventuell notwendig, damit Sie an die Position des gemeldeten „Top-Kollisionsobjekts“ reisen können. Überprüfen Sie das Objekt an der angegebenen Position.
+Kollidiert es ständig mit anderen Objekten? Wenden Sie sich eventuell an den Eigentümer des Objekts, löschen Sie es oder geben Sie es zurück.
+Deaktivieren Sie die Option „Kollisionen deaktivieren“ und klicken Sie auf „Übernehmen“, um Kollisionen in dieser Region wieder zu aktivieren.
+
+Standard: deaktiviert
+ </notification>
+ <notification label="Physik deaktivieren" name="HelpRegionDisablePhysics">
+ Das Deaktivieren der Physik ähnelt dem Deaktivieren von Kollisionen, außer dass die gesamte Physiksimulation ausgeschaltet wird. Das hat nicht nur zur Folge, dass Objekte nicht mehr kollidieren, sondern dass Avatare sich nicht mehr bewegen können.
+
+Diese Option sollte nur verwendet werden, wenn das Deaktivieren von Kollisionen keine ausreichende Leistungssteigerung bringt, um Physikprobleme in der Region oder die Top-Kollisionsobjekte zu erkennen.
+
+Schalten Sie die Physiksimulation hinterher wieder ein. Andernfalls können sich Avatare nicht mehr bewegen.
+
+Standard: deaktiviert
+ </notification>
+ <notification label="Top-Kollisionsobjekte" name="HelpRegionTopColliders">
+ Zeigt eine Liste der Objekte mit den potenziell meisten Objekt-Objekt-Kollisionen an. Diese Objekte können die Leistung beeinträchtigen. Wählen Sie „Ansicht“ &gt; „Statistikleiste“ aus und sehen Sie unter „Simulator“ &gt; „Time“ &gt; „Sim Time (Physics)“ nach, ob die Physikberechnung länger als 20 ms dauert.
+ </notification>
+ <notification label="Top-Skripts" name="HelpRegionTopScripts">
+ Zeigt eine Liste der Objekte an, die die meiste Zeit benötigen, um LSL-Skripts auszuführen. Diese Objekte können die Leistung beeinträchtigen.
+Wählen Sie „Ansicht“ &gt; „Statistikleiste“ und sehen Sie unter „Simulator“ &gt; „Time“ &gt; „Script Time“ nach, ob mehr als 25 ms für Skripts benötigt werden.
+ </notification>
+ <notification label="Region neu starten" name="HelpRegionRestart">
+ Starten Sie den Serverprozess für diese Region nach der 2-Minuten-Warnung neu. Die Verbindung aller Einwohner in dieser Region wird getrennt. Die Region wird gespeichert und sollte nach 90 Sekunden wieder verfügbar sein.
+
+Der Neustart der Region behebt die meisten Leistungs-probleme, sollte aber nur nach Anweisung erfolgen.
+ </notification>
+ <notification label="Wasserhöhe" name="HelpRegionWaterHeight">
+ Die Höhe der Wasserlinie in Metern. Liegt dieser Wert unter 20 und haben Sie Wasser nahe am Rand der Welt oder „offenes“ Wasser definiert, wird eine deutliche Lücke sichtbar.
+
+Standard: 20
+ </notification>
+ <notification label="Obere Terraingrenze" name="HelpRegionTerrainRaise">
+ Der maximale Betrag in Metern, um den Parzelleneigentümer ihr Terrain über die Standardhöhe des „geformten“ Terrains erhöhen können.
+
+Standard: 4
+ </notification>
+ <notification label="Untere Terraingrenze" name="HelpRegionTerrainLower">
+ Der maximale Betrag in Metern, um den Parzelleneigentümer ihr Terrain unter die Standardhöhe des „geformten“ Terrains absenken können.
+
+Standard: -4
+ </notification>
+ <notification label="RAW-Terrain hochladen" name="HelpRegionUploadRaw">
+ Mit dieser Schaltfläche laden Sie eine RAW-Datei in die Region hoch, in der Sie sich befinden.
+Die Datei muss die korrekten Maße (RGB, 256x256) und 13 Kanäle haben. Um eine neue Terraindatei zu erstellen, laden Sie am besten die vorhandene RAW-Datei herunter. Beginnen Sie damit, den Rot-Kanal (Höhe des Landes) zu bearbeiten und laden Sie die Datei wieder hoch.
+
+Der Ladevorgang kann bis zu 45 Sekunden dauern. Beachten Sie, dass beim Hochladen einer Terraindatei die Objekte auf dem Land *nicht* verschoben werden, sondern nur das Land und die mit den Parzellen verbundenen Berechtigungen. Dies kann dazu führen, dass Objekte unter dem Terrain verschwinden.
+
+Weitere Informationen zur Bearbeitung der Höhendaten der Region enthält die F1-Hilfe.
+ </notification>
+ <notification label="RAW-Terrain herunterladen" name="HelpRegionDownloadRaw">
+ Mit dieser Schaltfläche laden Sie eine Datei herunter, welche die Höhendaten, Maße, den Verkaufsstatus der Parzelle und einige Parzellenrechte für diese Region enthält. Wenn Sie diese Datei in einem Programm wie Photoshop öffnen, müssen Sie die Bilddaten eingeben. Diese sind: RGB, 256x256 mit 13 Kanälen. Anders lässt sich diese Terraindatei nicht öffnen.
+
+Weitere Informationen zur Bearbeitung der Höhendaten der Region enthält die F1-Hilfe.
+ </notification>
+ <notification label="Grundstücksonne verwenden" name="HelpRegionUseEstateSun">
+ Aktivieren Sie diese Option, um in dieser Region denselben Sonnenstand wie auf dem restlichen Grundstück einzustellen.
+
+Standard: aktiviert
+ </notification>
+ <notification label="Sonne fest" name="HelpRegionFixedSun">
+ Aktivieren Sie diese Option, um den Sonnenstand auf die im Regler definierte Position festzulegen und die Animation auszuschalten.
+
+Standard: deaktiviert
+ </notification>
+ <notification label="Terrain formen" name="HelpRegionBakeTerrain">
+ Mit dieser Schaltfläche speichern Sie die aktuelle Terrain-Form als neuen Standard für die Region. Nach der Formung können Sie und andere das Land mit der Option „Terrain bearbeiten“ &gt; „Zurücksetzen“ in den ursprünglichen Zustand zurückversetzen. Das geformte Terrain ist auch das Zentrum für die oberen und unteren Terraingrenzen.
+ </notification>
+ <notification label="Grundstücksverwalter" name="HelpEstateEstateManager">
+ Ein Grundstücksverwalter ist ein Einwohner, dem Sie die Kontrolle über die Regions- und Grundstückseinstellungen übertragen haben. Ein Grundstücksverwalter kann alle Einstellungen ändern, außer das Hochladen, Herunterladen und Formen von Terrain. Vor allem kann er Einwohner auf dem Grundstück erlauben und davon verbannen.
+
+Nur der Eigentümer kann den Grundstücksverwalter bestimmen und entlassen. Der Verwalter hat dieses Recht nicht. Wählen Sie nur vertrauenswürdige Einwohner als Grundstücksverwalter, da Sie letztlich für deren Handlungen verantwortlich sind.
+ </notification>
+ <notification label="Globale Zeit verwenden" name="HelpEstateUseGlobalTime">
+ Aktivieren Sie diese Option, um auf Ihrem Grundstück denselben Sonnenstand wie auf dem Linden-„Mainland“ einzustellen.
+
+Standard: aktiviert
+ </notification>
+ <notification label="Sonne fest" name="HelpEstateFixedSun">
+ Aktivieren Sie diese Option, um den Sonnenstand auf die im Regler definierte Position festzulegen und die Animation auszuschalten.
+ </notification>
+ <notification label="Öffentlich" name="HelpEstateExternallyVisible">
+ Aktivieren Sie diese Option, um Einwohnern den Zugang zu diesem Grundstück zu erlauben, ohne auf der Zugangsliste zu stehen.
+
+Standard: aktiviert
+ </notification>
+ <notification label="Direktteleport zulassen" name="HelpEstateAllowDirectTeleport">
+ Wenn aktiviert, können sich Einwohner an jede Stelle auf Ihrem Grundstück teleportieren. Wenn deaktiviert, werden Einwohner zum nächstgelegenen Telehub teleportiert.
+
+Standard: deaktiviert
+ </notification>
+ <notification label="Zugang erlauben" name="HelpEstateAllowResident">
+ Der Zugang zu diesem Grundstück wird auf die hier aufgeführten Einwohner und Gruppen beschränkt. Diese Einstellung ist nur verfügbar, wenn „Öffentlich“ deaktiviert ist.
+ </notification>
+ <notification label="Gruppenzugang erlauben" name="HelpEstateAllowGroup">
+ Der Zugang zu diesem Grundstück wird auf die hier aufgeführten Einwohner und Gruppen beschränkt. Diese Einstellung ist nur verfügbar, wenn „Öffentlich“ deaktiviert ist.
+ </notification>
+ <notification label="E-Mail-Adresse für Missbrauchsmeldungen" name="HelpEstateAbuseEmailAddress">
+ Geben Sie hier eine E-Mail-Adresse ein, an die Missbrauchsmeldungen von diesem Grundstück gesendet werden.
+Wenn dieses Feld leer ist, werden Missbrauchsmeldungen nur an Linden Lab gesendet.
+ </notification>
+ <notification label="Zugang verweigern" name="HelpEstateBanResident">
+ Einwohnern auf dieser Liste wird der Zugang zum Grundstück verwehrt, unabhängig von etwaigen anderen Einstellungen.
+ </notification>
+ <notification label="Voice-Chat erlauben" name="HelpEstateVoiceChat">
+ Die Parzellen auf diesem Grundstück können über eigene Voice-Channel verfügen, die es Einwohnern ermöglichen, sich mit anderen Personen in der Nähe zu unterhalten.
+
+Standard: deaktiviert
+ </notification>
+ <notification label="Falsche Voice-Version" name="VoiceVersionMismatch">
+ Diese Version von Second ist mit dem Voice-Chat-Feature in dieser Region nicht kompatibel. Damit Voice-Chat funktioniert, müssen Sie Second Life aktualisieren.
+ </notification>
+ <notification label="Grunstücksvertrag" name="HelpEstateCovenant">
+ Ein Grundstücksvertrag ermöglicht es Ihnen, Grundstücksparzellen zu verkaufen. Ohne Vertrag können Sie kein Land verkaufen. Wenn Sie keine Regeln festlegen oder Käufern vor dem Kauf keine anderen Informationen über das Land bereitstellen möchten, können Sie die Vertrags-Notizkarte auch leer lassen.
+
+Ein Vertrag kann Regeln und Richtlinien, kulturelle Informationen oder einfach nur Ihre eigenen Erwartungen bezüglich der Landnutzung durch den Käufer enthalten. Das kann Zoning, Baubeschränkungen, Zahloptionen und alle möglichen anderen Informationen betreffen, die der neue Eigentümer Ihrer Meinung nach kennen und akzeptieren sollte.
+
+Der Käufer muss dem Vertrag durch Auswahl dieses Kontrollkästchens zustimmen, bevor der Kauf abgeschlossen werden kann. Grundstücksverträge sind jederzeit unter „Land-Info“ für jede Parzelle einsehbar, für die ein Vertrag definiert wurde.
+ </notification>
+ <notification label="Objekte können nicht gekauft werden" name="BuyObjectOneOwner">
+ Objekte können nicht von mehreren Eigentümern gleichzeitig gekauft werden.
+Wählen Sie ein einzelnes Objekt aus und versuchen Sie es erneut.
+ </notification>
+ <notification label="Inhalte können nicht gekauft werden" name="BuyContentsOneOnly">
+ Inhalte können jeweils nur für ein Objekt gekauft werden.
+Wählen Sie ein einzelnes Objekt aus und versuchen Sie es erneut.
+ </notification>
+ <notification label="Inhalte können nicht gekauft werden" name="BuyContentsOneOwner">
+ Objekte können nicht von mehreren Eigentümern gleichzeitig gekauft werden.
+Wählen Sie ein einzelnes Objekt aus und versuchen Sie es erneut.
+ </notification>
+ <notification name="BuyOriginal">
+ Von [OWNER] Originalobjekt für [PRICE] L$ kaufen?
+Sie werden der Eigentümer dieses Objekts.
+Sie können das Objekt:
+ Bearbeiten: [MODIFYPERM]
+ Kopieren: [COPYPERM]
+ Verkaufen oder weggeben: [RESELLPERM]
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="BuyOriginalNoOwner">
+ Originalobjekt für [PRICE] L$ kaufen?
+Sie werden der Eigentümer dieses Objekts.
+Sie können das Objekt:
+ Bearbeiten: [MODIFYPERM]
+ Kopieren: [COPYPERM]
+ Verkaufen oder weggeben: [RESELLPERM]
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="BuyCopy">
+ Von [OWNER] Kopie für [PRICE] L$ kaufen?
+Das Objekt wird in Ihr Inventar kopiert.
+Sie können das Objekt:
+ Bearbeiten: [MODIFYPERM]
+ Kopieren: [COPYPERM]
+ Verkaufen oder weggeben: [RESELLPERM]
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="BuyCopyNoOwner">
+ Kopie für [PRICE] L$ kaufen?
+Das Objekt wird in Ihr Inventar kopiert.
+Sie können das Objekt:
+ Bearbeiten: [MODIFYPERM]
+ Kopieren: [COPYPERM]
+ Verkaufen oder weggeben: [RESELLPERM]
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="BuyContents">
+ Von [OWNER] Inhalte für [PRICE] L$ kaufen?
+Die Inhalte werden in Ihr Inventar kopiert.
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="BuyContentsNoOwner">
+ Inhalte für [PRICE] L$ kaufen?
+Die Inhalte werden in Ihr Inventar kopiert.
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmPurchase">
+ Transaktion:
+[ACTION]
+
+Möchten Sie diesen Kauf fortsetzen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmPurchasePassword" type="password">
+ Transaktion:
+[ACTION]
+
+Möchten Sie diesen Kauf fortsetzen?
+Geben Sie Ihr Kennwort erneut ein und klicken Sie auf OK.
+ <form name="form">
+ <input name="message" type="password"/>
+ <button name="ConfirmPurchase" text="OK"/>
+ <button name="Cancel" text="Abbrechen"/>
+ </form>
+ </notification>
+ <notification name="SetPickLocation">
+ Hinweis:
+Sie haben die Position dieser Auswahl aktualisiert, aber die anderen Daten behalten ihre ursprünglichen Werte.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="MoveInventoryFromObject">
+ Sie haben „nicht kopierfähige“ Inventarobjekte ausgewählt.
+Diese Objekte werden nicht kopiert, sondern in Ihr Inventar verschoben.
+
+Inventarobjekt(e) verschieben?
+ <usetemplate ignoretext="Beim Verschieben von nicht-kopierfähigem Inventar von Objekten" name="okcancelignore" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="MoveInventoryFromScriptedObject">
+ Sie haben „nicht kopierfähige“ Inventarobjekte ausgewählt. Diese Objekte werden nicht kopiert, sondern in Ihr Inventar verschoben.
+Da es sich um ein geskriptetes Objekt handelt, geht die Skriptfunktion beim Verschieben in das Inventar möglicherweise verloren.
+
+Inventarobjekt(e) verschieben?
+ <usetemplate ignoretext="Beim Verschieben von nicht-kopierfähigem Inventar von geskripteten Objekten" name="okcancelignore" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="ClickActionNotPayable">
+ Achtung: Die Klick-Aktion „Objekt bezahlen“ wurde definiert, sie funktioniert aber nur, wenn ein Skript mit einem money() Ereignis hinzugefügt wird.
+ <form name="form">
+ <ignore name="ignore" text="Beim Einrichten von Events mit „Objektbezahlung“ ohne Geld"/>
+ </form>
+ </notification>
+ <notification name="OpenObjectCannotCopy">
+ Sie haben keine Berechtigung zum Kopieren von Elementen in diesem Objekt.
+ </notification>
+ <notification name="WebLaunchAccountHistory">
+ Zur Second Life-Website, um Ihre Kontostatistik anzuzeigen?
+ <usetemplate ignoretext="Beim Laden der Kontostatistik-Website" name="okcancelignore" notext="Abbrechen" yestext="Gehe zu Seite"/>
+ </notification>
+ <notification name="ClickOpenF1Help">
+ Die Support-Website von Second Life öffnen?
+ <usetemplate ignoretext="Bei Besuch der Second Life Support-Website." name="okcancelignore" notext="Abbrechen" yestext="Los"/>
+ </notification>
+ <notification name="ConfirmQuit">
+ Wirklich beenden?
+ <usetemplate ignoretext="Beim Beenden von Second Life." name="okcancelignore" notext="Weiter" yestext="Beenden"/>
+ </notification>
+ <notification name="HelpReportAbuseEmailLL">
+ Verwenden Sie dieses Tool, um Verletzungen der Servicebedingungen und Community-Standards zu melden. Siehe:
+
+http://secondlife.com/corporate/tos.php
+http://secondlife.com/corporate/cs.php
+
+Alle gemeldeten Verletzungen der Servicebedingungen und Community-Standards werden geprüft und geklärt Sie können den Prozess im Incident Report (Vorfallsbericht) verfolgen:
+
+http://secondlife.com/support/incidentreport.php
+ </notification>
+ <notification name="HelpReportAbuseEmailEO">
+ WICHTIG: Diese Meldung wird an den Eigentümer der Region gesendet, in der Sie sich gerade befinden, nicht an Linden Lab.
+-
+Als besonderen Service für Einwohner und Besucher übernimmt der Eigentümer dieser Region die Bearbeitung aller anfallenden Meldungen. Von diesem Standort aus eingereichte Meldungen werden nicht von Linden Lab bearbeitet. Der Eigentümer der Region bearbeitet Meldungen auf Grundlage der Richtlinien, die im für diese Region geltenden Grundstücksvertrag festgelegt sind.
+(Den Vertrag können Sie unter „Welt“ &gt; „Land-Info“ einsehen.)
+-
+Das Resultat, das sich aus dieser Meldung ergibt, betrifft nur diese Region; der Einwohnerzugang zu anderen Bereichen von Second Life ist davon nicht betroffen. Nur Linden Lab kann den Zugang zu Second Life beschränken.
+ </notification>
+ <notification name="HelpReportBug">
+ Verwenden Sie dieses Tool *nur*, um technische Features zu melden, die nicht wie beschrieben oder erwartet funktionieren. Bitte machen Sie so viele Angaben wie möglich. Sie können auf die automatische Antwort-E-Mail antworten, um Ihre Meldung noch zu ergänzen.
+Alle gemeldeten Fehler werden geprüft und bewertet. Sie erhalten keine persönliche Antwort auf Ihre E-Mail.
+-
+Bei technischen Problemen wenden Sie sich bitte an den Support unter:
+http://secondlife.com/community/support.php
+-
+Hinweis: Unvollständige Meldungen werden nicht bearbeitet.
+ </notification>
+ <notification name="HelpReportAbuseSelectCategory">
+ Wählen Sie eine Missbrauchskategorie aus.
+Die Angabe einer Kategorie hilft uns bei der Bearbeitung des Berichts.
+ </notification>
+ <notification name="HelpReportBugSelectCategory">
+ Wählen Sie eine Fehler-Kategorie aus.
+Die Angabe einer Kategorie hilft uns bei der Bearbeitung des Berichts.
+ </notification>
+ <notification name="HelpReportAbuseAbuserNameEmpty">
+ Geben Sie den Namen des Täters ein.
+Eine genaue Angabe hilft uns, Fälle von Missbrauch zu ahnden.
+ </notification>
+ <notification name="HelpReportAbuseAbuserLocationEmpty">
+ Bitte geben Sie den Ort an, an dem der Missbrauch stattgefunden hat.
+Eine genaue Angabe hilft uns, Fälle von Missbrauch zu ahnden.
+ </notification>
+ <notification name="HelpReportAbuseSummaryEmpty">
+ Bitte geben Sie eine Zusammenfassung des Vorfalls ein.
+Eine genaue Zusammenfassung hilft uns, Fälle von Missbrauch zu ahnden.
+ </notification>
+ <notification name="HelpReportBugSummaryEmpty">
+ Bitte geben Sie eine Zusammenfassung des Fehlers ein.
+Eine genaue Zusammenfassung hilft uns, Fehler schneller zu beseitigen.
+ </notification>
+ <notification name="HelpReportAbuseDetailsEmpty">
+ Bitte geben Sie eine ausführliche Beschreibung des Vorfalls ein.
+Eine möglichst genaue Beschreibung mit Namen und Einzelheiten hilft uns, Fälle von Missbrauch zu ahnden.
+ </notification>
+ <notification name="HelpReportBugDetailsEmpty">
+ Bitte geben Sie eine ausführliche Fehlerbeschreibung ein.
+Eine möglichst genaue Beschreibung mit Schritten zur Reproduktion des Fehlers hilft uns, Fehler schneller zu beseitigen.
+ </notification>
+ <notification name="HelpReportAbuseContainsCopyright">
+ Sehr geehrte(r) Einwohner(in),
+
+Sie melden eine Urheberrechtsverletzung. Sind Sie wirklich sicher, dass Sie eine Verletzung des Urheberrechts melden möchten?
+
+1. Missbrauch melden. Wenn Sie der Meinung sind, ein Einwohner nutzt das Berechtigungssystem von Second Life auf unerlaubte Weise zu seinem Vorteil aus, indem er zum Beispiel einen CopyBot oder ähnliche Kopiertools verwendet und damit eine Urheberrechtsverletzung begeht, können Sie diesen Missbrauch melden. Das Missbrauchsteam untersucht etwaige Verstöße gegen die Second Life Community Standards oder die Nutzungsbedingungen und verhängt entsprechende Strafen. Das Missbrauchsteam ist jedoch nicht dafür zuständig, Inhalte aus der Second Life-Welt zu entfernen und reagiert auch nicht auf entsprechende Anfragen.
+
+2. Der DMCA oder das Entfernen von Inhalten. Sie können das Entfernen von Inhalten aus Second Life beantragen. Dazu MÜSSEN Sie eine Urheberrechtsverletzung gemäß den in unserer DMCA-Richtlinie unter http://secondlife.com/corporate/dmca.php dargelegten Anweisungen einreichen.
+
+Wenn Sie mit der Missbrauchmeldung jetzt fortfahren möchten, schließen Sie bitte dieses Fenster und senden Sie Ihren Bericht ein. Möglicherweise müssen Sie Kategorie „CopyBot oder Berechtigungs-Exploit“ auswählen.
+
+Vielen Dank,
+
+Linden Lab
+ </notification>
+ <notification name="FailedRequirementsCheck">
+ Die folgenden erforderlichen Komponenten fehlen in [FLOATER]:
+[COMPONENTS]
+ </notification>
+ <notification label="Vorhandenen Anhang ersetzen" name="ReplaceAttachment">
+ An dieser Körperstelle ist bereits ein Objekt angebracht.
+Möchten Sie es mit dem ausgewählten Objekt ersetzen?
+ <form name="form">
+ <ignore name="ignore" save_option="true" text="Beim Wechseln von Anhängen"/>
+ <button ignore="Automatisch ersetzen" name="Yes" text="OK"/>
+ <button ignore="Nie ersetzen" name="No" text="Abbrechen"/>
+ </form>
+ </notification>
+ <notification label="Beschäftigt-Modus-Warnung" name="BusyModePay">
+ Sie sind im Beschäftigt-Modus, sodass Sie im Austausch für diese Zahlung keine Objekte erhalten können.
+
+Möchten Sie den Bechäftigt-Modus verlassen, bevor Sie diese Transaktion abschließen?
+ <form name="form">
+ <ignore name="ignore" save_option="true" text="Beim Bezahlen einer Person oder eines Objekts im Beschäftigt-Modus"/>
+ <button ignore="Beschäftigt-Modus immer deaktivieren" name="Yes" text="OK"/>
+ <button ignore="Beschäftigt-Modus aktiviert lassen" name="No" text="Abbrechen"/>
+ </form>
+ </notification>
+ <notification name="ConfirmEmptyTrash">
+ Möchten Sie den Inhalt Ihres Papierkorbs wirklich löschen?
+ <usetemplate ignoretext="Beim Leeren des Inventar-Papierkorbs" name="okcancelignore" notext="Abbrechen" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmClearBrowserCache">
+ Möchten Sie Ihren Browser-Cache wirklich leeren?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="Ja"/>
+ </notification>
+ <notification name="ConfirmClearCookies">
+ Sind Sie sicher, dass Sie Ihre Cookies löschen möchten?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="Ja"/>
+ </notification>
+ <notification name="ConfirmClearMediaUrlList">
+ Die Liste mit gespeicherten URLs wirklich löschen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="Ja"/>
+ </notification>
+ <notification name="ConfirmEmptyLostAndFound">
+ Möchten Sie den Inhalt Ihres Fundstücke-Ordners wirklich permanent löschen?
+ <usetemplate ignoretext="Beim Leeren von Inventar und Fundstückeordner-" name="okcancelignore" notext="Nein" yestext="Ja"/>
+ </notification>
+ <notification name="CopySLURL">
+ Die folgende SLURL wurde in die Zwischenablage kopiert:
+ [SLURL]
+
+Veröffentlichen Sie sie auf einer Website, um anderen den Zugang zu diesem Ort zu erleichtern, oder testen Sie sie, indem Sie sie in die Adressleiste Ihres Browsers kopieren.
+ <form name="form">
+ <ignore name="ignore" text="Beim Kopieren einer SLURL in die Zwischenablage"/>
+ </form>
+ </notification>
+ <notification name="GraphicsPreferencesHelp">
+ Die Optionen in diesem Dialog steuern Fenstergröße und Auflösung sowie die Qualität der Grafikdarstellung im Client. Im Fenster „Einstellungen“ &gt; „Grafik“ stehen vier Grafikeinstellungen zur Wahl: Niedrig, Mittel, Hoch und Ultra. Die Grafikeinstellungen lassen sich auch individuell anpassen; aktivieren Sie das Kontrollkästchen „Benutzerdefiniert“, um die folgenden Einstellungen zu bearbeiten:
+
+Shader: Aktivieren oder deaktivieren Sie die verschiedenen Pixel-Shader.
+
+Spiegelung: Legen Sie hier fest, welche Objekte sich in Wasser spiegeln.
+
+Avatar-Darstellung: Einige Optionen, die über die Darstellung Ihres Avatars bestimmen.
+
+Sichtweite: Legt fest, bis zu welcher Entfernung von Ihrem Avatar die Objekte in der Szene berechnet und dargestellt werden.
+
+Max. Partikelzahl: Legt fest, wie viele Partikel gleichzeitig berechnet und angezeigt werden.
+
+Post-Processing-Qualität: Legt fest, mit welcher Auflösung der Glüheffekt berechnet wird.
+
+Gitterdetails: Legt den Detailgrad bzw. die Anzahl an Dreiecken bei der Berechnung bestimmter Objekte fest. Höhere Werte führen zu einer genaueren Darstellung, dauern aber länger in der Berechnung.
+
+Beleuchtungsdetails: Legt fest, welche Lichtquellen berechnet werden.
+
+Terraindetails: Legt den Detailgrad bei der Berechnung der Terraintextur fest.
+ </notification>
+ <notification name="WLSavePresetAlert">
+ Die gespeicherte Voreinstellung überschreiben?
+ <usetemplate name="okcancelbuttons" notext="Nein" yestext="Ja"/>
+ </notification>
+ <notification name="WLDeletePresetAlert">
+ [SKY] löschen?
+ <usetemplate name="okcancelbuttons" notext="Nein" yestext="Ja"/>
+ </notification>
+ <notification name="WLNoEditDefault">
+ Standardvoreinstellungen können nicht bearbeitet oder gelöscht werden.
+ </notification>
+ <notification name="WLMissingSky">
+ Diese Tageszyklusdatei verweist auf eine fehlende Himmel-Datei: [SKY].
+ </notification>
+ <notification name="PPSaveEffectAlert">
+ Post-Processing-Effekt bereits vorhanden. Möchten Sie ihn überschreiben?
+ <usetemplate name="okcancelbuttons" notext="Nein" yestext="Ja"/>
+ </notification>
+ <notification name="HelpEditSky">
+ Verschieben Sie die WindLight-Regler, um verschiedene Himmelsansichten zu erstellen und zu speichern.
+ </notification>
+ <notification name="HelpEditDayCycle">
+ Wählen Sie für jede Tageszeit eine Himmelsansicht aus.
+ </notification>
+ <notification name="EnvSettingsHelpButton">
+ Diese Einstellungen haben Auswirkung auf die lokale Darstellung der Umwelt auf Ihrem Computer. Zugriff auf alle Einstellungen haben Sie nur, wenn Ihre Grafikkarte Atmosphären-Shader unterstützt.
+
+Mit dem Regler „Tageszeit“ stellen Sie die lokal in Ihrem Viewer dargestellte Tageszeit ein.
+
+Mit dem Regler „Wolkendecke“ steuern Sie die Wolkendichte am Himmel.
+
+Unter „Wasserfarbe“ können Sie eine Farbe für die Wasserdarstellung auswählen.
+
+Mit dem Regler „Wassertrübung“ steuern Sie die Sichtweite unter Wasser.
+
+Klicken Sie auf „Grundstückszeit verw.“, um die aktuelle Zeit in der Region fest als Tageszeit einzustellen.
+
+Klicken Sie auf „Himmel (erweitert)“, um einen Editor mit erweiterten Einstellungen für die Himmeldarstellung anzuzeigen.
+
+Klicken Sie auf „Wasser (erweitert)“, um einen Editor mit erweiterten Einstellungen für die Wasserdarstellung anzuzeigen.
+ </notification>
+ <notification name="HelpDayCycle">
+ Im Tageszyklus-Editor steuern Sie den Tag-/Nachtzyklus am Second Life Himmel. Dabei handelt es sich um den Zyklus, der mit dem Tageszeit-Regler im Umwelt-Basiseditor gesteuert wird.
+
+Der Tageszyklus-Editor verwendet sogenannte Keyframes zur Steuerung des Tag-/Nachtablaufs. Dabei handelt es sich um „Schlüsselbilder“ (die grauen Kreise auf der Zeitskala), für die bestimmte Himmelseinstellungen definiert wurden. Bei voranschreitender Tageszeit interpoliert WindLight den Übergang zwischen diesen Keyframes und erzeugt eine entsprechende Himmelsanimation.
+
+Der gelbe Pfeil über der Zeitskala repräsentiert die aktuelle Tageszeit-Darstellung. Ziehen Sie den Pfeil, um die Tagesanimation anzuzeigen. Mit „Key hinzu“ und „Key löschen“ rechts neben der Zeitskala können Sie neue Keys einfügen und vorhandene löschen.
+
+Keyframes lassen sich einfach entlang der Zeitskala verschieben, oder Sie geben die Werte manuell unter „Keyframe-Einstellungen“ ein. Hier wählen Sie auch eine WindLight-Voreinstellung für den Keyframe aus.
+
+„Zykluslänge“ bestimmt die Gesamtlänge eines „Tages“. Ein niedriger Wert (z.B. 2 Minuten) führt dazu, dass ein ganzer 24-Stunden-Tag innerhalb von zwei Minuten Echtzeit abgespult wird! Wenn Sie alle Einstellungen auf der Zeitskala und für die einzelnen Keyframes vorgenommen haben, können Sie mit „Start“ und „Stopp“ die Animation anzeigen. Das funktioniert natürlich genauso interaktiv, indem Sie den gelben Pfeil über der Zeitskala verschieben. Mit der Schaltfläche „Grundstückszeit verw.“ synchronisieren Sie die Tageszeit und -länge mit den auf dem Grundstück geltenden Einstellungen.
+
+Ihre Tageszyklus-Einstellungen lassen sich mit den Schaltflächen „Testtag speichern“ und „Testtag laden“ speichern bzw. laden. Bis dato kann nur ein Tageszyklus gleichzeitig in Verwendung sein.
+ </notification>
+ <notification name="HelpBlueHorizon">
+ Mit den Reglern für Rot/Grün/Blau (RGB) steuern Sie die Farbe des Himmels. Verwenden Sie den Intensitätsregler (I), um alle drei RGB-Regler gleichzeitig zu verschieben.
+ </notification>
+ <notification name="HelpHazeHorizon">
+ Horizonttrübung ist einer der wichtigsten Parameter, um die Gesamtlichtsituation in der Szene zu steuern. Damit lassen sich viele Belichtungseinstellungen simulieren, z.B. ein Überstrahlen durch die Sonne oder starker Dunst.
+ </notification>
+ <notification name="HelpBlueDensity">
+ Farbintensität steuert die Gesamtfarbsättigung von Himmel und Nebel. Je weiter Sie den Intensitätsregler (I) nach rechts verschieben, desto heller und lebendiger werden die Farben. Wenn Sie ihn ganz nach links verschieben, verlieren die Farben an Intensität und gehen in Schwarz oder Weiß über. Volle Kontrolle über die Farbsättigung des Himmels bieten ihnen die Regler für Rot/Grün/Blau (RGB).
+ </notification>
+ <notification name="HelpHazeDensity">
+ Trübungsintensität steuert die Stärke des grauen Dunsts in der Atmosphäre. Damit lassen sich zum Beispiel starker Rauch oder Luftverschmutzung simulieren. Auch für Nebel und Sprühregen geeignet.
+ </notification>
+ <notification name="HelpDensityMult">
+ Der Dichtemultiplikator beeinflusst die Gesamtdichte der Atmosphäre. Niedrige Einstellungen erzeugen den Eindruck dünner, sauberer Luft, hohe Einstellungen erzeugen den Eindruck schweren Smogs.
+ </notification>
+ <notification name="HelpDistanceMult">
+ Steuert die Entfernungswirkung von WindLight. Ein Wert von Null schaltet den Einfluss von WindLight auf Terrain und Objekte praktisch aus. Werte über 1 simulieren größere Entfernungen und verstärken den Atmosphäreneffekt.
+ </notification>
+ <notification name="HelpMaxAltitude">
+ Max. Höhe steuert die Höhenberechnungen von WindLight bei der Berechnung der atmosphärischen Beleuchtung. Zu späteren Tageszeiten lässt sich damit zum Beispiel die „Intensität“ des Sonnenuntergangs beeinflussen.
+ </notification>
+ <notification name="HelpSunlightColor">
+ Steuert Farbe und Intensität von direktem Licht in der Szene.
+ </notification>
+ <notification name="HelpSunAmbient">
+ Steuert Farbe und Intensität von atmosphärischem Umgebungslicht in der Szene.
+ </notification>
+ <notification name="HelpSunGlow">
+ Der Regler „Größe“ steuert die Größe der Sonne.
+Der Regler „Fokus“ steuert, wie unscharf die Sonne am Himmel erscheint.
+ </notification>
+ <notification name="HelpSceneGamma">
+ Regelt den Hell/Dunkel-Wert des Bildschirms.
+ </notification>
+ <notification name="HelpStarBrightness">
+ Regelt die Helligkeit der Sterne am Himmel.
+ </notification>
+ <notification name="HelpTimeOfDay">
+ Steuert die Sonnenstellung am Himmel.
+Entspricht der Elevation.
+ </notification>
+ <notification name="HelpEastAngle">
+ Steuert die Sonnenstellung am Himmel.
+Entspricht dem Azimut.
+ </notification>
+ <notification name="HelpCloudColor">
+ Steuert die Wolkenfarbe. Generell empfiehlt sich hier ein Weißton, aber hey, warum nicht ein bisschen Spaß haben?
+ </notification>
+ <notification name="HelpCloudDetail">
+ Steuert das Detailbild, welches über das Wolken-Hauptbild gelegt wird. X und Y bestimmen seine Position. D (Dichte) regelt, wie ausgebeult oder zerrissen die Wolken wirken.
+ </notification>
+ <notification name="HelpCloudDensity">
+ Mit den X- und Y-Reglern steuern Sie die Position der Wolken, mit dem Regler D die Wolkendichte.
+ </notification>
+ <notification name="HelpCloudCoverage">
+ Steuert, wie stark die Wolken den Himmel bedecken.
+ </notification>
+ <notification name="HelpCloudScale">
+ Steuert die Skalierung des Wolkenbilds auf der Himmelskuppel.
+ </notification>
+ <notification name="HelpCloudScrollX">
+ Steuert die Bewegungsgeschwindigkeit der Wolken in X-Richtung.
+ </notification>
+ <notification name="HelpCloudScrollY">
+ Steuert die Bewegungsgeschwindigkeit der Wolken in Y-Richtung.
+ </notification>
+ <notification name="HelpClassicClouds">
+ Aktivieren Sie dieses Kontrollkästchen, um die Darstellung der klassischen Second Life Wolken zusätzlich zu den WindLight-Wolken zu erzwingen.
+ </notification>
+ <notification name="HelpWaterFogColor">
+ Steuert die Farbe der Wassertrübung
+ </notification>
+ <notification name="HelpWaterFogDensity">
+ Steuert die Dichte der Wassertrübung und wie weit Sie unter Wasser sehen können.
+ </notification>
+ <notification name="HelpUnderWaterFogMod">
+ Beeinflusst die Auswirkung des Wassertrübungs-Exponenten und regelt die Sichtweite Ihres Avatars unter Wasser.
+ </notification>
+ <notification name="HelpWaterGlow">
+ Steuert, wie groß der Anteil der leuchtenden Wasseroberfläche ist.
+ </notification>
+ <notification name="HelpWaterNormalScale">
+ Steuert die Skalierung der drei Elementarwellen, die das Wasser ausmachen.
+ </notification>
+ <notification name="HelpWaterFresnelScale">
+ Steuert die winkelabhängige Lichtreflexion.
+ </notification>
+ <notification name="HelpWaterFresnelOffset">
+ Steuert die Intensität des reflektierten Lichts.
+ </notification>
+ <notification name="HelpWaterScaleAbove">
+ Steuert die Stärke der Lichtbrechung von oberhalb der Wasseroberfläche aus gesehen.
+ </notification>
+ <notification name="HelpWaterScaleBelow">
+ Steuert die Stärke der Lichtbrechung von unterhalb der Wasseroberfläche aus gesehen.
+ </notification>
+ <notification name="HelpWaterBlurMultiplier">
+ Steuert die Mischung von Wellen und Reflexionen.
+ </notification>
+ <notification name="HelpWaterNormalMap">
+ Ermöglicht die Auswahl einer Normal-Map zur Berechnung von Reflexionen/Brechungen auf dem Wasser.
+ </notification>
+ <notification name="HelpWaterWave1">
+ Steuert die Bewegungsgeschwindigkeit und -richtung der großen Normal-Map-Version in X- und Y-Richtung.
+ </notification>
+ <notification name="HelpWaterWave2">
+ Steuert die Bewegungsgeschwindigkeit und -richtung der kleinen Normal-Map-Version in X- und Y-Richtung.
+ </notification>
+ <notification name="NewSkyPreset">
+ Wählen Sie einen Namen für den neuen Himmel.
+ <form name="form">
+ <input name="message" type="text">
+ Neue Voreinstellung
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Abbrechen"/>
+ </form>
+ </notification>
+ <notification name="ExistsSkyPresetAlert">
+ Voreinstellung bereits vorhanden!
+ </notification>
+ <notification name="NewWaterPreset">
+ Wählen Sie einen Namen für die neue Wasservoreinstellung.
+ <form name="form">
+ <input name="message" type="text">
+ Neue Voreinstellung
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Abbrechen"/>
+ </form>
+ </notification>
+ <notification name="ExistsWaterPresetAlert">
+ Voreinstellung bereits vorhanden!
+ </notification>
+ <notification name="WaterNoEditDefault">
+ Standardvoreinstellungen können nicht bearbeitet oder gelöscht werden.
+ </notification>
+ <notification name="ChatterBoxSessionStartError">
+ Neue Chat-Sitzung mit [RECIPIENT] konnte nicht gestartet werden.
+[REASON]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="ChatterBoxSessionEventError">
+ [EVENT]
+[REASON]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="ForceCloseChatterBoxSession">
+ Ihre Chat-Sitzung mit [NAME] muss beendet werden.
+[REASON]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="Cannot_Purchase_an_Attachment">
+ Objekte können nicht gekauft werden, solange sie Teil eines Anhangs sind.
+ </notification>
+ <notification label="Info zur Abfrage der Abbucherlaubnis" name="DebitPermissionDetails">
+ Wenn Sie dieser Anfrage zustimmen, erhält das Skript die Erlaubnis, regelmäßig Linden-Dollar (L$) von Ihrem Konto abzubuchen. Diese Erlaubnis kann nur zurückgezogen werden, wenn der Eigentümer das Objekt löscht oder die Skripts in dem Objekt zurücksetzt.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="AutoWearNewClothing">
+ Möchten Sie das neu erstellte Kleidungsstück automatisch anziehen?
+ <usetemplate ignoretext="Neue Kleidung automatisch tragen" name="okcancelignore" notext="Nein" yestext="Ja"/>
+ </notification>
+ <notification name="NotAgeVerified">
+ Um Zugang zu dieser Parzelle zu erhalten, müssen Sie sich einer Altersprüfung unterziehen.
+Möchten Sie auf der Second Life Website eine Altersüberprüfung durchführen?
+
+[_URL]
+ <url name="url" option="0">
+ https://secondlife.com/account/verification.php?lang=de
+ </url>
+ <usetemplate ignoretext="Auf fehlende Altersprüfung aufmerksam machen" name="okcancelignore" notext="Nein" yestext="Ja"/>
+ </notification>
+ <notification name="Cannot enter parcel: no payment info on file">
+ Um Zugang zu dieser Parzelle zu erhalten, müssen Sie Zahlungsinformationen hinterlegt haben.
+Möchten Sie die Second Life Website öffnen, um diese Angaben zu hinterlegen?
+
+[_URL]
+ <url name="url" option="0">
+ https://secondlife.com/account/index.php?lang=de
+ </url>
+ <usetemplate ignoretext="Auf fehlende Zahlungsinformationen aufmerksam machen" name="okcancelignore" notext="Nein" yestext="Ja"/>
+ </notification>
+ <notification name="MissingString">
+ Der String „[STRING_NAME]“ fehlt in strings.xml
+ </notification>
+ <notification name="SystemMessageTip">
+ [MESSAGE]
+ </notification>
+ <notification name="Cancelled">
+ Abgebrochen
+ </notification>
+ <notification name="CancelledSit">
+ Sitzen beendet
+ </notification>
+ <notification name="CancelledAttach">
+ Anhängen abgebrochen
+ </notification>
+ <notification name="ReplacedMissingWearable">
+ Fehlende(s) Kleidung/Körperteil mit Standard ersetzt.
+ </notification>
+ <notification name="GroupNotice">
+ Betreff: [SUBJECT], Nachricht: [MESSAGE]
+ </notification>
+ <notification name="FriendOnline">
+ [FIRST] [LAST] ist online
+ </notification>
+ <notification name="FriendOffline">
+ [FIRST] [LAST] ist offline
+ </notification>
+ <notification name="AddSelfFriend">
+ Sie können sich nicht selbst als Freund hinzufügen.
+ </notification>
+ <notification name="UploadingAuctionSnapshot">
+ In-Welt- und Website-Fotos werden hochgeladen...
+(Dauert ca. 5 Minuten.)
+ </notification>
+ <notification name="UploadPayment">
+ Sie haben für das Hochladen [AMOUNT] L$ bezahlt.
+ </notification>
+ <notification name="UploadWebSnapshotDone">
+ Das Website-Foto wurde hochgeladen.
+ </notification>
+ <notification name="UploadSnapshotDone">
+ In-Welt-Foto hochgeladen
+ </notification>
+ <notification name="TerrainDownloaded">
+ Terrain.raw heruntergeladen
+ </notification>
+ <notification name="GestureMissing">
+ Geste [NAME] fehlt in Datenbank.
+ </notification>
+ <notification name="UnableToLoadGesture">
+ Geste [NAME] konnte nicht geladen werden.
+Bitte versuchen Sie es erneut.
+ </notification>
+ <notification name="LandmarkMissing">
+ Landmarke fehlt in Datenbank.
+ </notification>
+ <notification name="UnableToLoadLandmark">
+ Landmarke konnte nicht geladen werden. Bitte versuchen Sie es erneut.
+ </notification>
+ <notification name="CapsKeyOn">
+ Die Feststelltaste ist aktiv.
+Da dies Auswirkung auf die Kennworteingabe hat, sollten Sie die Taste besser ausschalten.
+ </notification>
+ <notification name="NotecardMissing">
+ Notizkarte fehlt in Datenbank.
+ </notification>
+ <notification name="NotecardNoPermissions">
+ Unzureichende Rechte zur Anzeige der Notizkarte.
+ </notification>
+ <notification name="RezItemNoPermissions">
+ Keine Berechtigung zum Rezzen von Objekten.
+ </notification>
+ <notification name="UnableToLoadNotecard">
+ Notizkarten-Asset konnte nicht geladen werden.
+ </notification>
+ <notification name="ScriptMissing">
+ Skript fehlt in Datenbank.
+ </notification>
+ <notification name="ScriptNoPermissions">
+ Unzureichende Rechte zur Anzeige des Skripts.
+ </notification>
+ <notification name="UnableToLoadScript">
+ Skript konnte nicht geladen werden. Bitte versuchen Sie es erneut.
+ </notification>
+ <notification name="IncompleteInventory">
+ Die von Ihnen angebotenen Inhalte sind noch nicht vollständig lokal verfügbar. Warten Sie kurz und wiederholen Sie dann das Angebot.
+ </notification>
+ <notification name="CannotModifyProtectedCategories">
+ Geschützte Kategorien können nicht geändert werden.
+ </notification>
+ <notification name="CannotRemoveProtectedCategories">
+ Geschützte Kategorien können nicht entfernt werden.
+ </notification>
+ <notification name="OfferedCard">
+ Sie haben [FIRST] [LAST] eine Visitenkarte angeboten.
+ </notification>
+ <notification name="UnableToBuyWhileDownloading">
+ Kauf nicht möglich. Objektdaten werden noch geladen.
+Bitte versuchen Sie es erneut.
+ </notification>
+ <notification name="UnableToLinkWhileDownloading">
+ Verknüpfung nicht möglich. Objektdaten werden noch geladen.
+Bitte versuchen Sie es erneut.
+ </notification>
+ <notification name="CannotBuyObjectsFromDifferentOwners">
+ Objekte können nicht von mehreren Eigentümern gleichzeitig gekauft werden.
+Wählen Sie ein einzelnes Objekt aus.
+ </notification>
+ <notification name="ObjectNotForSale">
+ Objekt ist nicht zu verkaufen.
+ </notification>
+ <notification name="EnteringGodMode">
+ Gott-Modus aktiviert, Level [LEVEL]
+ </notification>
+ <notification name="LeavingGodMode">
+ Gott-Modus deaktiviert, Level [LEVEL]
+ </notification>
+ <notification name="CopyFailed">
+ Kopieren aufgrund fehlender Kopierrechte fehlgeschlagen
+ </notification>
+ <notification name="InventoryAccepted">
+ [NAME] hat Ihr Inventarangebot akzeptiert.
+ </notification>
+ <notification name="InventoryDeclined">
+ [NAME] hat Ihr Inventarangebot abgelehnt.
+ </notification>
+ <notification name="ObjectMessage">
+ [NAME]: [MESSAGE]
+ </notification>
+ <notification name="CallingCardAccepted">
+ Ihre Visitenkarte wurde akzeptiert.
+ </notification>
+ <notification name="CallingCardDeclined">
+ Ihre Visitenkarte wurde abgelehnt.
+ </notification>
+ <notification name="TeleportToLandmark">
+ Jetzt, nachdem Sie das Mainland erreicht haben, können Sie sich an Positionen wie „[NAME]“ teleportieren, indem Sie unten rechts im Fenster auf „Inventar“ klicken und den Ordner „Landmarken“ auswählen.
+Klicken Sie eine Landmarke doppelt an und wählen Sie „Teleportieren“, um an diesen Ort zu gelangen.
+ </notification>
+ <notification name="TeleportToPerson">
+ Jetzt, nachdem Sie das Mainland erreicht haben, können Sie mit Einwohnern wie „[NAME]“ Kontakt aufnehmen, indem Sie unten rechts im Fenster auf „Inventar“ klicken und den Ordner „Visitenkarten“ auswählen.
+Klicken Sie die Karte doppelt an, wählen Sie „Instant Message“ und geben Sie eine Nachricht ein.
+ </notification>
+ <notification name="CantSelectLandFromMultipleRegions">
+ Land kann nicht über Servergrenzen hinweg ausgewählt werden.
+Wählen Sie eine kleinere Landfläche.
+ </notification>
+ <notification name="SearchWordBanned">
+ Einige Begriffe in Ihrer Suchanfrage wurden ausgeschlossen, aufgrund von in den Community Standards definierten Inhaltsbeschränkungen.
+ </notification>
+ <notification name="NoContentToSearch">
+ Bitte wählen Sie mindestens eine Inhaltsart für die Suche aus (PG, Mature oder Adult).
+ </notification>
+ <notification name="GroupVote">
+ [NAME] hat eine Abstimmung vorgeschlagen über:
+[MESSAGE]
+ <form name="form">
+ <button name="VoteNow" text="Abstimmen"/>
+ <button name="Later" text="Später"/>
+ </form>
+ </notification>
+ <notification name="SystemMessage">
+ [MESSAGE]
+ </notification>
+ <notification name="EventNotification">
+ Event-Benachrichtigung:
+
+[NAME]
+[DATE]
+ <form name="form">
+ <button name="Teleport" text="Teleportieren"/>
+ <button name="Description" text="Beschreibung"/>
+ <button name="Cancel" text="Abbrechen"/>
+ </form>
+ </notification>
+ <notification name="TransferObjectsHighlighted">
+ Alle Objekte auf dieser Parzelle, die an den Käufer der Parzelle übertragen werden, sind jetzt markiert.
+
+* Übertragene Bäume und Gräser sind nicht markiert.
+ <form name="form">
+ <button name="Done" text="Fertig"/>
+ </form>
+ </notification>
+ <notification name="DeactivatedGesturesTrigger">
+ Gesten mit demselben Trigger wurden deaktiviert:
+[NAMES]
+ </notification>
+ <notification name="NoQuickTime">
+ Apple QuickTime ist auf Ihrem System anscheinend nicht installiert.
+Laden Sie QuickTime von der QuickTime-Webseite (http://www.apple.com/de/quicktime) herunter, um auf Parzellen, die diese Funktion unterstützen, Streaming-Inhalte wiederzugeben.
+ </notification>
+ <notification name="OwnedObjectsReturned">
+ Ihre Objekte auf der ausgewählten Parzelle wurden in Ihr Inventar transferiert.
+ </notification>
+ <notification name="OtherObjectsReturned">
+ Die Objekte von [FIRST] [LAST] auf dieser Parzelle wurden in das Inventar dieser Person transferiert.
+ </notification>
+ <notification name="OtherObjectsReturned2">
+ Die Objekte von [FIRST] [LAST] auf dieser
+Parzelle von „[NAME]“ wurden an ihren Eigentümer zurückgegeben.
+ </notification>
+ <notification name="GroupObjectsReturned">
+ Die mit der Gruppe [GROUPNAME] gemeinsam genutzten Objekte auf dieser Parzelle wurden in das Inventar ihrer Eigentümer transferiert.
+Transferierbare übertragene Objekte wurden an ihre früheren Eigentümer zurückgegeben.
+Nicht transferierbare an die Gruppe übertragene Objekte wurden gelöscht.
+ </notification>
+ <notification name="UnOwnedObjectsReturned">
+ Alle Objekte auf der ausgewählten Parzelle, die NICHT Ihnen gehören, wurden ihren Eigentümern zurückgegeben.
+ </notification>
+ <notification name="NotSafe">
+ Auf diesem Land ist Schaden aktiviert („Unsicher“).
+Verletzungen sind möglich. Wenn Sie sterben, werden Sie zu Ihrem Heimatstandort teleportiert.
+ </notification>
+ <notification name="NoFly">
+ Auf diesem Land ist Fliegen deaktiviert („Fliegen aus“).
+Fliegen ist hier nicht möglich.
+ </notification>
+ <notification name="PushRestricted">
+ Auf diesem Land gilt „Kein Stoßen“.
+Sie können keine anderen Personen stoßen, außer Ihnen gehört das Land.
+ </notification>
+ <notification name="NoVoice">
+ Auf diesem Land ist Voice deaktiviert.
+ </notification>
+ <notification name="NoBuild">
+ Auf diesem Land ist Bauen deaktiviert („Bauen aus“).
+Sie können hier keine Objekte erstellen.
+ </notification>
+ <notification name="ScriptsStopped">
+ Ein Administrator hat die Skriptausführung in dieser Region vorübergehend deaktiviert.
+ </notification>
+ <notification name="ScriptsNotRunning">
+ In dieser Region werden keine Skipts ausgeführt.
+ </notification>
+ <notification name="NoOutsideScripts">
+ Auf diesem Land sind externe Skripts deaktiviert
+(„Externe Skripts aus“).
+Nur Skripts, die dem Landeigentümer gehören, funktionieren.
+ </notification>
+ <notification name="ClaimPublicLand">
+ Öffentliches Land kann nur in der Region in Besitz genommen werden, in der Sie sich befinden.
+ </notification>
+ <notification name="RegionTPAccessBlocked">
+ Sie dürfen diese Region aufgrund Ihrer Alterseinstufung nicht betreten. Sie müssen eventuell eine Altersüberprüfung vornehmen und/oder den aktuellsten Viewer installieren.
+
+Bitte besuchen Sie unsere Knowledgebase, um mehr Details über Zugang zu Regionen mit dieser Alterseinstufung zu erhalten.
+ </notification>
+ <notification name="URBannedFromRegion">
+ Sie dürfen diese Region nicht betreten.
+ </notification>
+ <notification name="NoTeenGridAccess">
+ Ihr Konto kann keine Verbindung zu dieser Teen Grid-Region herstellen.
+ </notification>
+ <notification name="NoHelpIslandTP">
+ Sie können nicht zurück nach Help Island teleportieren.
+Gehen Sie zu „Help Island Public“ und wiederholen sie das Tutorial.
+ </notification>
+ <notification name="ImproperPaymentStatus">
+ Die für den Zutritt zu dieser Region erforderlichen Zahlungsinformationen liegen nicht vor.
+ </notification>
+ <notification name="MustGetAgeRgion">
+ Sie müssen alterüberprüft sein, um diese Region betreten zu können.
+ </notification>
+ <notification name="MustGetAgeParcel">
+ Sie müssen alterüberprüft sein, um diese Parzelle betreten zu können.
+ </notification>
+ <notification name="NoDestRegion">
+ Keine Zielregion gefunden.
+ </notification>
+ <notification name="NotAllowedInDest">
+ Der Zutritt wurde Ihnen verweigert.
+ </notification>
+ <notification name="RegionParcelBan">
+ Diese Parzelle ist abgesperrt und kann nicht überquert werden. Versuchen Sie einen anderen Weg.
+ </notification>
+ <notification name="TelehubRedirect">
+ Sie wurden zu einem Telehub umgeleitet.
+ </notification>
+ <notification name="CouldntTPCloser">
+ Ein Teleport näher am Ziel ist leider nicht möglich.
+ </notification>
+ <notification name="TPCancelled">
+ Teleport abgebrochen.
+ </notification>
+ <notification name="FullRegionTryAgain">
+ Die Region, die Sie betreten möchten, ist im Moment voll.
+Versuchen Sie es in einigen Minuten erneut.
+ </notification>
+ <notification name="GeneralFailure">
+ Allgemeiner Fehler.
+ </notification>
+ <notification name="RoutedWrongRegion">
+ In falsche Region umgeleitet. Bitte versuchen Sie es erneut.
+ </notification>
+ <notification name="NoValidAgentID">
+ Keine gültige Agent ID.
+ </notification>
+ <notification name="NoValidSession">
+ Keine gültige Sitzungs-ID.
+ </notification>
+ <notification name="NoValidCircuit">
+ Kein gültiger Verbindungscode.
+ </notification>
+ <notification name="NoValidTimestamp">
+ Kein gültiger Zeitstempel.
+ </notification>
+ <notification name="NoPendingConnection">
+ Verbindung kann nicht hergestellt werden.
+ </notification>
+ <notification name="InternalUsherError">
+ Interner Fehler beim Versuch, Verbindung mit Agent Usher herzustellen.
+ </notification>
+ <notification name="NoGoodTPDestination">
+ In dieser Region konnte kein gültiges Teleportziel gefunden werden.
+ </notification>
+ <notification name="InternalErrorRegionResolver">
+ Interner Fehler bei Teleport.
+ </notification>
+ <notification name="NoValidLanding">
+ Ein gültiger Landpunkt konnte nicht gefunden werden.
+ </notification>
+ <notification name="NoValidParcel">
+ Es konnte keine gültige Parzelle gefunden werden.
+ </notification>
+ <notification name="ObjectGiveItem">
+ Das Objekt [OBJECTFROMNAME] von [FIRST] [LAST] hat Ihnen Folgendes übergeben: [OBJECTTYPE] ([OBJECTNAME]).
+ <form name="form">
+ <button name="Keep" text="Behalten"/>
+ <button name="Discard" text="Verwerfen"/>
+ <button name="Mute" text="Stummschalten"/>
+ </form>
+ </notification>
+ <notification name="ObjectGiveItemUnknownUser">
+ Das Objekt [OBJECTFROMNAME] von (unbekannt) hat Ihnen Folgendes übergeben: [OBJECTTYPE] ([OBJECTNAME]).
+ <form name="form">
+ <button name="Keep" text="Behalten"/>
+ <button name="Discard" text="Verwerfen"/>
+ <button name="Mute" text="Stummschalten"/>
+ </form>
+ </notification>
+ <notification name="UserGiveItem">
+ [NAME] hat Ihnen ein [OBJECTTYPE] namens „[OBJECTNAME]“ gegeben.
+ <form name="form">
+ <button name="Keep" text="Behalten"/>
+ <button name="Discard" text="Verwerfen"/>
+ <button name="Mute" text="Stummschalten"/>
+ </form>
+ </notification>
+ <notification name="GodMessage">
+ [NAME]
+[MESSAGE]
+ </notification>
+ <notification name="JoinGroup">
+ [MESSAGE]
+ <form name="form">
+ <button name="Join" text="Beitreten"/>
+ <button name="Decline" text="Ablehnen"/>
+ <button name="Info" text="Info"/>
+ </form>
+ </notification>
+ <notification name="TeleportOffered">
+ [NAME] hat angeboten, Sie zu ihrem/seinem Standort zu teleportieren:
+
+[MESSAGE]
+ <form name="form">
+ <button name="Teleport" text="Teleportieren"/>
+ <button name="Cancel" text="Abbrechen"/>
+ </form>
+ </notification>
+ <notification name="GotoURL">
+ [MESSAGE]
+[URL]
+ <form name="form">
+ <button name="Later" text="Später"/>
+ <button name="GoNow..." text="Jetzt gehen..."/>
+ </form>
+ </notification>
+ <notification name="OfferFriendship">
+ [NAME] bietet Ihnen die Freundschaft an.
+
+[MESSAGE]
+
+(Standardmäßig werden Sie gegenseitig ihren Online-Status sehen können.)
+ <form name="form">
+ <button name="Accept" text="Akzeptieren"/>
+ <button name="Decline" text="Ablehnen"/>
+ </form>
+ </notification>
+ <notification name="OfferFriendshipNoMessage">
+ [NAME] bietet Ihnen die Freundschaft an.
+
+(Sie werden dadurch den gegenseitigen Online-Status sehen können.)
+ <form name="form">
+ <button name="Accept" text="Akzeptieren"/>
+ <button name="Decline" text="Ablehnen"/>
+ </form>
+ </notification>
+ <notification name="FriendshipAccepted">
+ [NAME] hat Ihr Freundschaftsangebot akzeptiert.
+ </notification>
+ <notification name="FriendshipDeclined">
+ [NAME] hat Ihr Freundschaftsangebot abgelehnt.
+ </notification>
+ <notification name="OfferCallingCard">
+ [FIRST] [LAST] bietet Ihnen eine Visitenkarte an.
+Dies erstellt ein Lesezeichen in Ihrem Inventar, damit Sie diesen Einwohner jederzeit über IM erreichen.
+ <form name="form">
+ <button name="Accept" text="Akzeptieren"/>
+ <button name="Decline" text="Ablehnen"/>
+ </form>
+ </notification>
+ <notification name="RegionRestartMinutes">
+ Region wird in [MINUTES] Minuten neu gestartet.
+Wenn Sie in dieser Region bleiben, werden Sie abgemeldet.
+ </notification>
+ <notification name="RegionRestartSeconds">
+ Region wird in [SECONDS] Sekunden neu gestartet.
+Wenn Sie in dieser Region bleiben, werden Sie abgemeldet.
+ </notification>
+ <notification name="LoadWebPage">
+ Webseite [URL] laden?
+
+[MESSAGE]
+
+Von Objekt: [OBJECTNAME], Eigentümer: [NAME]?
+ <form name="form">
+ <button name="Gotopage" text="Zur Seite"/>
+ <button name="Cancel" text="Abbrechen"/>
+ </form>
+ </notification>
+ <notification name="FailedToFindWearableUnnamed">
+ [TYPE] nicht in Datenbank.
+ </notification>
+ <notification name="FailedToFindWearable">
+ [TYPE] namens [DESC] nicht in Datenbank.
+ </notification>
+ <notification name="InvalidWearable">
+ Dieser Artikel verwendet eine Funktion, die Ihr Viewer nicht unterstützt. Bitte aktualisieren Sie Ihre Version von Second Life, um diesen Artikel anziehen zu können.
+ </notification>
+ <notification name="ScriptQuestion">
+ Das Objekt „[OBJECTNAME]“, Eigentum von „[NAME]“, möchte:
+
+[QUESTIONS]
+Ist das OK?
+ <form name="form">
+ <button name="Yes" text="Ja"/>
+ <button name="No" text="Nein"/>
+ <button name="Mute" text="Stummschalten"/>
+ </form>
+ </notification>
+ <notification name="ScriptQuestionCaution">
+ Das Objekt „[OBJECTNAME]“, Eigentum von „[NAME]“, möchte:
+
+[QUESTIONS]
+Wenn Sie diesem Objekt und seinem Ersteller nicht vertrauen, sollten Sie diese Anfrage ablehnen. Klicken Sie für weitere Informationen auf „Info...“.
+
+Anfrage gestatten?
+ <form name="form">
+ <button name="Grant" text="Gewähren"/>
+ <button name="Deny" text="Verweigern"/>
+ <button name="Details" text="Info..."/>
+ </form>
+ </notification>
+ <notification name="ScriptDialog">
+ [FIRST] [LAST]s „[TITLE]“
+[MESSAGE]
+ <form name="form">
+ <button name="Ignore" text="Ignorieren"/>
+ </form>
+ </notification>
+ <notification name="ScriptDialogGroup">
+ [GROUPNAME]s „[TITLE]“
+[MESSAGE]
+ <form name="form">
+ <button name="Ignore" text="Ignorieren"/>
+ </form>
+ </notification>
+ <notification name="FirstBalanceIncrease">
+ Sie haben gerade [AMOUNT] L$ erhalten.
+Objekte und andere Benutzer können Ihnen L$ geben.
+Ihren Kontostand sehen Sie in der oberen rechten Ecke des Bildschirms.
+ </notification>
+ <notification name="FirstBalanceDecrease">
+ Sie haben gerade [AMOUNT] L$ bezahlt.
+Ihren Kontostand sehen Sie in der oberen rechten Ecke des Bildschirms.
+ </notification>
+ <notification name="FirstSit">
+ Sie sitzen.
+Benutzen Sie die Pfeil- oder WASD-Tasten, um die Ansicht zu ändern.
+Klicken Sie auf „Aufstehen“, um aufzustehen.
+ </notification>
+ <notification name="FirstMap">
+ Zum Verschieben der Karte klicken und ziehen.
+Zum Teleportieren doppelklicken.
+Nutzen Sie die Optionen links, um Dinge zu finden und um verschiedene Hintergründe anzuzeigen.
+ </notification>
+ <notification name="FirstBuild">
+ In einigen Bereichen von [SECOND_LIFE] können Sie neue Objekte erstellen.
+Verwenden Sie zum Bauen die Werkzeuge oben links.
+Mit den Strg- und Alt-Tasten können Sie schnell zwischen den Werkzeugen umschalten.
+Drücken Sie Esc, um das Bauen abzubrechen.
+ </notification>
+ <notification name="FirstLeftClickNoHit">
+ Die linke Maustaste ermöglicht Objektinteraktionen.
+Der Mauszeiger zeigt eine Hand, wenn Sie
+mit dem Objekt interagieren können.
+Die rechte Maustaste zeigt immer ein Aktionsmenü an.
+ </notification>
+ <notification name="FirstTeleport">
+ Diese Region unterstützt keine direkten Teleports. Sie wurden zum nächstgelegenen Telehub transportiert.
+Ihr Ziel ist mit einem großen roten Strahl markiert. Folgen Sie dem roten Pfeil zum Strahl oder klicken Sie auf den Pfeil, um den Strahl zu entfernen.
+ </notification>
+ <notification name="FirstOverrideKeys">
+ Ihre Bewegungstasten werden jetzt von einem Objekt gesteuert.
+Probieren Sie die Pfeil- oder WASD-Tasten aus.
+Manche Objekte (wie Waffen) müssen per Mouselook gesteuert werden.
+Drücken Sie dazu „M“.
+ </notification>
+ <notification name="FirstAppearance">
+ Sie bearbeiten gerade Ihr Aussehen.
+Benutzen Sie die Pfeiltasten zum Drehen und Zoomen.
+Klicken Sie auf „Alles speichern“, wenn Sie fertig sind, um Ihr Aussehen zu speichern.
+Sie können Ihr Aussehen jederzeit verändern.
+ </notification>
+ <notification name="FirstInventory">
+ Ihr Inventar. Es enthält Objekte, Notizkarten, Kleidung und andere Dinge in Ihrem Besitz.
+* Zum Anziehen eines Objekts oder Outfit-Ordners ziehen Sie es/ihn auf sich.
+* Um ein Objekt in der Welt abzulegen, ziehen Sie es auf den Boden.
+* Zum Lesen einer Notizkarte klicken Sie sie doppelt an.
+ </notification>
+ <notification name="FirstSandbox">
+ Dies ist eine Sandkastenregion.
+Objekte, die Sie hier bauen, können gelöscht werden, wenn Sie das Gebiet verlassen. Sandkästen werden regelmäßig gereinigt. Weitere Informationen hierzu finden Sie oben im Bild neben dem Regionsnamen.
+
+Sandkastenregionen kommen selten vor und sind entsprechend gekennzeichnet.
+ </notification>
+ <notification name="FirstFlexible">
+ Dieses Objekt ist flexibel.
+Ein flexibles Objekt ist ein Phantom und nicht physisch, bis die Option „Flexibel“ deaktiviert wurde.
+ </notification>
+ <notification name="FirstDebugMenus">
+ Sie haben das Advanced-Menü aktiviert.
+Dieses Menü enthält nützliche Funktionen zum Debuggen von Second Life.
+Drücken Sie in Windows Strg-Alt-D (Mac: Befehl-Opt-Umschalt-D) zum Ein- und Ausschalten dieses Menüs.
+ </notification>
+ <notification name="FirstSculptedPrim">
+ Sie bearbeiten ein geformtes Primitiv.
+Geformte Primitive benötigen eine spezielle Textur, die ihre Form definiert.
+Beispiele für Formtexturen finden Sie in der Inventarbibliothek.
+ </notification>
+ <notification name="FirstMedia">
+ Sie haben die Medienwiedergabe gestartet. Unter „Audio und Video“ im Fenster „Einstellungen“ können Sie festlegen, dass Medien automatisch wiedergegeben werden. Beachten Sie, dass dies bei nicht vertrauenswürdigen Medienseiten ein Sicherheitsrisiko darstellen kann.
+ </notification>
+ <notification name="MaxListSelectMessage">
+ Sie können maximal [MAX_SELECT] Objekte
+von der Liste auswählen.
+ </notification>
+ <notification name="VoiceInviteP2P">
+ [NAME] lädt Sie zu einem Voice-Chat ein.
+Klicken Sie auf „Akzeptieren“, um dem Gespräch beizutreten, oder auf „Ablehnen“, um die Einladung auszuschlagen. Klicken Sie auf „Stummschalten“, um diesen Anrufer stumm zu schalten.
+ <form name="form">
+ <button name="Accept" text="Akzeptieren"/>
+ <button name="Decline" text="Ablehnen"/>
+ <button name="Mute" text="Stummschalten"/>
+ </form>
+ </notification>
+ <notification name="AutoUnmuteByIM">
+ [FIRST] [LAST] hat eine Instant Message erhalten; die Stummschaltung wurde aufgehoben.
+ </notification>
+ <notification name="AutoUnmuteByMoney">
+ [FIRST] [LAST] hat Geld erhalten; die Stummschaltung wurde aufgehoben.
+ </notification>
+ <notification name="AutoUnmuteByInventory">
+ [FIRST] [LAST] wurde ein Inventarobjekt angeboten; die Stummschaltung wurde aufgehoben.
+ </notification>
+ <notification name="VoiceInviteGroup">
+ [NAME] ist einem Voice-Chat mit der Gruppe [GROUP] beigetreten.
+Klicken Sie auf „Akzeptieren“, um dem Gespräch beizutreten, oder auf „Ablehnen“, um die Einladung auszuschlagen. Klicken Sie auf „Stummschalten“, um diesen Anrufer stumm zu schalten.
+ <form name="form">
+ <button name="Accept" text="Akzeptieren"/>
+ <button name="Decline" text="Ablehnen"/>
+ <button name="Mute" text="Stummschalten"/>
+ </form>
+ </notification>
+ <notification name="VoiceInviteAdHoc">
+ [NAME] ist einem Voice-Konferenz-Chat beigetreten.
+Klicken Sie auf „Akzeptieren“, um dem Gespräch beizutreten, oder auf „Ablehnen“, um die Einladung auszuschlagen. Klicken Sie auf „Stummschalten“, um diesen Benutzer stumm zu schalten.
+ <form name="form">
+ <button name="Accept" text="Akzeptieren"/>
+ <button name="Decline" text="Ablehnen"/>
+ <button name="Mute" text="Stummschalten"/>
+ </form>
+ </notification>
+ <notification name="InviteAdHoc">
+ [NAME] lädt Sie zu einem Konferenz-Chat ein.
+Klicken Sie auf „Akzeptieren“, um dem Chat beizutreten, oder auf „Ablehnen“, um die Einladung auszuschlagen. Klicken Sie auf „Stummschalten“, um diesen Benutzer stumm zu schalten.
+ <form name="form">
+ <button name="Accept" text="Akzeptieren"/>
+ <button name="Decline" text="Ablehnen"/>
+ <button name="Mute" text="Stummschalten"/>
+ </form>
+ </notification>
+ <notification name="VoiceChannelFull">
+ Der Voice-Chat, dem Sie beitreten möchten, [VOICE_CHANNEL_NAME], hat seine maximale Teilnehmerzahl erreicht. Bitte versuchen Sie es erneut.
+ </notification>
+ <notification name="ProximalVoiceChannelFull">
+ Es tut uns Leid. Dieses Gebiet hat seine maximale Kapazität für Voice-Gespräche erreicht. Bitte versuchen Sie es in einem anderen Gebiet.
+ </notification>
+ <notification name="VoiceChannelDisconnected">
+ Sie haben [VOICE_CHANNEL_NAME] verlassen. Sie werden nun wieder mit dem Umgebungs-Voice-Chat verbunden.
+ </notification>
+ <notification name="VoiceChannelDisconnectedP2P">
+ [VOICE_CHANNEL_NAME] hat das Gespräch beendet. Sie werden nun wieder mit dem Umgebungs-Voice-Chat verbunden.
+ </notification>
+ <notification name="P2PCallDeclined">
+ [VOICE_CHANNEL_NAME] hat Ihren Anruf abgelehnt. Sie werden nun wieder mit dem Umgebungs-Voice-Chat verbunden.
+ </notification>
+ <notification name="P2PCallNoAnswer">
+ [VOICE_CHANNEL_NAME] ist zurzeit nicht erreichbar. Sie werden nun wieder mit dem Umgebungs-Voice-Chat verbunden.
+ </notification>
+ <notification name="VoiceChannelJoinFailed">
+ Verbindung zu [VOICE_CHANNEL_NAME] nicht möglich. Bitte versuchen Sie es später. Sie werden nun wieder mit dem Umgebungs-Voice-Chat verbunden.
+ </notification>
+ <notification name="VoiceLoginRetry">
+ Wir erstellen einen Voice-Kanal für Sie. Bitte warten Sie einen Moment.
+ </notification>
+ <notification name="Cannot enter parcel: not a group member">
+ Zugang zur Parzelle verweigert, Sie gehören keiner berechtigten Gruppe an.
+ </notification>
+ <notification name="Cannot enter parcel: banned">
+ Zugang zur Parzelle verweigert. Sie wurden verbannt.
+ </notification>
+ <notification name="Cannot enter parcel: not on access list">
+ Zugang zur Parzelle verweigert. Sie stehen nicht auf der Zugangsliste.
+ </notification>
+ <notification name="VoiceNotAllowed">
+ Sie sind nicht berechtigt, einem Voice-Chat in [VOICE_CHANNEL_NAME] beizutreten.
+ </notification>
+ <notification name="VoiceCallGenericError">
+ Fehler beim Versuch, eine Voice-Chat-Verbindung zu [VOICE_CHANNEL_NAME] herzustellen. Bitte versuchen Sie es erneut.
+ </notification>
+ <notification name="ServerVersionChanged">
+ Die Region, die Sie betreten haben, verwendet eine andere Simulatorversion. Klicken Sie auf diese Nachricht, um weitere Informationen zu erhalten.
+ </notification>
+ <notification name="UnableToOpenCommandURL">
+ Die URL, die Sie angeklickt haben, kann in diesem Web Browser nicht geöffnet werden.
+ </notification>
+ <global name="UnsupportedCPU">
+ - Ihre CPU-Geschwindigkeit entspricht nicht den Mindestanforderungen.
+ </global>
+ <global name="UnsupportedGLRequirements">
+ Ihr Computer entspricht nicht den Hardwareanforderungen von Second Life. Second Life setzt eine OpenGL-Grafikkarte mit Multitextur-Unterstützung voraus. Falls Ihre Grafikkarte diese Funktion unterstützt, installieren Sie die neuesten Treiber sowie die aktuellen Service Packs und Patches für Ihr Betriebssystem.
+
+Sollte das Problem fortbestehen, finden Sie weitere Hilfestellung unter: http://www.secondlife.com/support
+ </global>
+ <global name="UnsupportedCPUAmount">
+ 796
+ </global>
+ <global name="UnsupportedRAMAmount">
+ 510
+ </global>
+ <global name="UnsupportedGPU">
+ - Ihre Grafikkarte entspricht nicht den Mindestanforderungen.
+ </global>
+ <global name="UnsupportedRAM">
+ - Ihr Arbeitsspeicher entspricht nicht den Mindestanforderungen.
+ </global>
+ <global name="PermYes">
+ Ja
+ </global>
+ <global name="PermNo">
+ Nein
+ </global>
+</notifications>
diff --git a/indra/newview/skins/default/xui/de/panel_group_general.xml b/indra/newview/skins/default/xui/de/panel_group_general.xml
index c05f6ca09b..ce19248755 100644
--- a/indra/newview/skins/default/xui/de/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_general.xml
@@ -18,7 +18,7 @@ Bewegen Sie die Maus über die Optionen, um weitere Informationen anzuzeigen.
<text name="prepend_founded_by">
Gegründet von
</text>
- <text name="founder_name" left_delta="79">
+ <text left_delta="79" name="founder_name">
(wartet)
</text>
<text name="group_charter_label">
@@ -49,7 +49,17 @@ Bewegen Sie die Maus über die Optionen, um weitere Informationen anzuzeigen.
<check_box label="Registrierung offen" name="open_enrollement" tool_tip="Festlegen, ob der Gruppenbeitritt ohne Einladung zulässig ist."/>
<check_box label="Beitrittsgebühr: L$" name="check_enrollment_fee" tool_tip="Festlegen, ob Neumitglieder eine Beitrittsgebühr zahlen müssen." width="125"/>
<spinner name="spin_enrollment_fee" tool_tip="Wenn „Beitrittsgebühr“ aktiviert ist, müssen neue Mitglieder diesen Betrag zahlen."/>
-
+ <combo_box name="group_mature_check" tool_tip="Festlegen, ob die Informationen Ihrer Gruppe „Mature“ sind.">
+ <combo_item name="select_mature">
+ - Mature wählen -
+ </combo_item>
+ <combo_item name="mature">
+ Mature-Inhalt
+ </combo_item>
+ <combo_item name="pg">
+ PG-Inhalt
+ </combo_item>
+ </combo_box>
<panel name="title_container">
<text name="active_title_label">
Mein aktiver Titel
diff --git a/indra/newview/skins/default/xui/de/panel_group_invite.xml b/indra/newview/skins/default/xui/de/panel_group_invite.xml
index 96af8e3021..84ba91a63f 100644
--- a/indra/newview/skins/default/xui/de/panel_group_invite.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_invite.xml
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel label="Mitglied einladen" name="invite_panel">
<text name="help_text">
- Sie können mehrere Einwohner zu Ihrer
-Gruppe einladen. Klicken Sie auf
-„Personenauswahl öffnen“.
+ Sie können mehrere Einwohner in Ihre
+Gruppe einladen. Klicken Sie hierzu
+auf „Einwohnerliste öffnen“.
</text>
- <button label="Personenauswahl öffnen" name="add_button" tool_tip="" />
+ <button label="Einwohnerliste öffnen" name="add_button" tool_tip=""/>
<name_list name="invitee_list"
tool_tip="Halten Sie zur Mehrfachauswahl die Strg-Taste gedrückt und klicken Sie auf die Einwohnernamen." />
<button label="Auswahl aus Liste löschen" name="remove_button"
diff --git a/indra/newview/skins/default/xui/de/panel_group_land_money.xml b/indra/newview/skins/default/xui/de/panel_group_land_money.xml
index 15d3b08482..c038d97822 100644
--- a/indra/newview/skins/default/xui/de/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_land_money.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Land und L$" name="land_money_tab">
- <text name="help_text">
- Es werden Parzellen in Gruppenbesitz und Beitragsdetails angezeigt. Ein Warnhinweis wird angezeigt, solange der Wert für das Insgesamt verwendete Land gleich oder weniger ist als der Gesamtbeitrag. Die Registerkarten „Planung“, „Details“ und „Verkäufe“ enthalten Informationen über die Gruppenfinanzen.
- </text>
- <button label="?" name="help_button" />
- <text name="cant_view_group_land_text">
+ <string name="help_text">
+ Parzellen in Gruppenbesitz werden zusammen mit Beitragsdetails angezeigt. Ein Warnhinweis wird angezeigt, solange der Wert für das insgesamt verwendete Land gleich oder weniger ist als der Gesamtbeitrag. Die Registerkarten „Planung“, „Details“ und „Verkäufe“ enthalten Informationen über die Gruppenfinanzen.
+ </string>
+ <button label="?" name="help_button"/>
+ <string name="cant_view_group_land_text">
Sie sind nicht berechtigt, Landeigentum der Gruppe anzuzeigen.
- </text>
- <text name="cant_view_group_accounting_text">
+ </string>
+ <string name="cant_view_group_accounting_text">
Sie sind nicht berechtigt, die Finanzinformationen der Gruppe anzuzeigen.
- </text>
+ </string>
<string name="loading_txt">
Wird geladen...
</string>
@@ -17,12 +17,13 @@
Land in Gruppenbesitz
</text>
<scroll_list name="group_parcel_list">
- <column label="Parzellenname" name="name" />
- <column label="Region" name="location" />
- <column label="Gebiet" name="area" />
- <column label="" name="hidden" />
+ <column label="Parzellenname" name="name"/>
+ <column label="Region" name="location"/>
+ <column label="Typ" name="type"/>
+ <column label="Gebiet" name="area"/>
+ <column label="" name="hidden"/>
</scroll_list>
- <button label="Auf Karte" label_selected="Auf Karte" name="map_button" />
+ <button label="Auf Karte" label_selected="Auf Karte" name="map_button"/>
<text name="total_contributed_land_label">
Gesamtbeitrag:
</text>
@@ -44,9 +45,6 @@
<text name="your_contribution_label">
Ihr Beitrag:
</text>
- <text name="your_contribution_max_value_append">
- qm
- </text>
<string name="land_contrib_error">
Ihr Landbeitrag kann nicht festgelegt werden.
</string>
@@ -70,19 +68,15 @@ das verwendete Land gehalten werden kann.
<text_editor name="group_money_details_text">
Wird berechnet...
</text_editor>
- <button label="&lt; Früher" label_selected="&lt; Früher"
- name="earlier_details_button" tool_tip="Zurück in der Zeit" />
- <button label="Später &gt;" label_selected="Später &gt;" name="later_details_button"
- tool_tip="Weiter in der Zeit" />
+ <button label="&lt; Früher" label_selected="&lt; Früher" name="earlier_details_button" tool_tip="Zurück in der Zeit"/>
+ <button label="Später &gt;" label_selected="Später &gt;" name="later_details_button" tool_tip="Weiter in der Zeit"/>
</panel>
<panel label="Verkäufe" name="group_money_sales_tab">
<text_editor name="group_money_sales_text">
Wird berechnet...
</text_editor>
- <button label="&lt; Früher" label_selected="&lt; Früher" name="earlier_sales_button"
- tool_tip="Zurück in der Zeit" />
- <button label="Später &gt;" label_selected="Später &gt;" name="later_sales_button"
- tool_tip="Weiter in der Zeit" />
+ <button label="&lt; Früher" label_selected="&lt; Früher" name="earlier_sales_button" tool_tip="Zurück in der Zeit"/>
+ <button label="Später &gt;" label_selected="Später &gt;" name="later_sales_button" tool_tip="Weiter in der Zeit"/>
</panel>
</tab_container>
</panel>
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 f5671fc852..d4589f83e4 100644
--- a/indra/newview/skins/default/xui/de/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_roles.xml
@@ -51,7 +51,7 @@ Mitglieder diese Fähigkeit haben.
<column label="Übertragene Landanteile" name="donated" width="156"/>
<column label="Letzte Anmeldung" name="online"/>
</name_list>
- <button label="Neue Person einladen..." name="member_invite"/>
+ <button label="Neues Mitglied einladen..." name="member_invite"/>
<button label="Aus Gruppe werfen" name="member_eject"/>
<string name="help_text">
Sie können Mitgliedern Rollen zuweisen und entziehen.
diff --git a/indra/newview/skins/default/xui/de/panel_notifications_channel.xml b/indra/newview/skins/default/xui/de/panel_notifications_channel.xml
new file mode 100644
index 0000000000..e2166f7baf
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/panel_notifications_channel.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="notifications_panel">
+ <layout_stack name="stack1">
+ <scroll_list name="notifications_list">
+ <column label="Name" name="name"/>
+ <column label="Inhalt" name="content"/>
+ <column label="Datum" name="date"/>
+ </scroll_list>
+ <scroll_list name="notification_rejects_list">
+ <column label="Name" name="name"/>
+ <column label="Inhalt" name="content"/>
+ <column label="Datum" name="date"/>
+ </scroll_list>
+ </layout_stack>
+</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_chat.xml b/indra/newview/skins/default/xui/de/panel_preferences_chat.xml
index feeb528721..9de8922954 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_chat.xml
@@ -4,15 +4,9 @@
Chat-Schriftgröße:
</text>
<radio_group name="chat_font_size">
- <radio_item length="1" name="radio" type="string">
- Klein
- </radio_item>
- <radio_item length="1" name="radio2" type="string">
- Mittel
- </radio_item>
- <radio_item length="1" name="radio3" type="string">
- Groß
- </radio_item>
+ <radio_item length="1" name="radio" type="string" label="Klein" />
+ <radio_item length="1" name="radio2" type="string" label="Mittel" />
+ <radio_item length="1" name="radio3" type="string" label="Groß" />
</radio_group>
<text length="1" name="text_box2" type="string">
Chat-Farbe:
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_general.xml b/indra/newview/skins/default/xui/de/panel_preferences_general.xml
index 18fd2f2baa..92b45bf5a5 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_general.xml
@@ -27,10 +27,28 @@
</text>
<check_box label="Auflösungsunabhängigen Maßstab verwenden" name="ui_auto_scale"/>
<spinner label="Timeout für Abwesenheit:" name="afk_timeout_spinner"/>
- <check_box label="Minikarte drehen" name="rotate_mini_map_checkbox"/>
<check_box label="L$ Eingänge und Ausgaben melden" name="notify_money_change_checkbox"/>
- <check_box label="Standard-Farbauswahl verwenden" name="use_system_color_picker_checkbox" tool_tip="Standard-Farbauswahl des Systems anstelle des Second Life-eigenen verwenden."/>
- <check_box label="Suchleiste in Menüleiste anzeigen" name="show_search_panel" tool_tip="Die eingebettete Suchleiste anzeigen."/>
+ <text name="maturity_desired_label" bottom="-312">
+ Einstufung:
+ </text>
+ <text name="maturity_desired_prompt" bottom="-312">
+ Ich möchte auf Inhalt mit folgender
+Alterseinstufung zugreifen:
+ </text>
+ <combo_box name="maturity_desired_combobox" bottom="-330" left="336">
+ <combo_item name="Desired_Adult">
+ PG, Mature und Adult
+ </combo_item>
+ <combo_item name="Desired_Mature">
+ PG und Mature
+ </combo_item>
+ <combo_item name="Desired_PG">
+ Nur PG
+ </combo_item>
+ </combo_box>
+ <text name="maturity_desired_textbox" bottom="-324" left="336">
+ Nur PG
+ </text>
<text name="start_location_textbox">
Startposition:
</text>
@@ -49,18 +67,18 @@
<text name="language_textbox">
Sprache:
</text>
- <text name="language_textbox2">
+ <text left_delta="313" name="language_textbox2">
(Erfordert Neustart)
</text>
<string name="region_name_prompt">
&lt;Region eingeben&gt;
</string>
- <combo_box name="crash_behavior_combobox">
+ <combo_box name="crash_behavior_combobox" width="166">
<combo_box.item name="Askbeforesending" label="Vor dem Senden fragen" />
<combo_box.item name="Alwayssend" label="Immer senden" />
<combo_box.item name="Neversend" label="Nie senden" />
</combo_box>
- <combo_box name="language_combobox">
+ <combo_box name="language_combobox" width="166">
<combo_box.item name="System Default Language" label="Betriebssystem-Einstellung" />
<combo_box.item name="English" label="English (Englisch)" />
<combo_box.item name="Danish" label="Danks (Dänisch) - Beta" />
@@ -73,6 +91,21 @@
<combo_box.item name="Chinese" label="中文 (简体) (Chinesisch) - Beta" />
<combo_box.item name="(Japanese)" label="日本語 (Japanisch) - Beta" />
<combo_box.item name="(Korean)" label="한국어 (Koreanisch) - Beta" />
+ <combo_item name="Italian">
+ Italiano (Italienisch) - Beta
+ </combo_item>
+ <combo_item name="Dutch">
+ Nederlands (Niederländisch) - Beta
+ </combo_item>
+ </combo_item>
+ <combo_item name="Russian">
+ Русский (Russian) - Beta
+ </combo_item>
+ <combo_item name="Turkish">
+ Türkçe (Türkisch) - Beta
+ </combo_item>
+ <combo_item name="Ukrainian">
+ Українська (Ukrainisch) - Beta
</combo_box>
<check_box label="Objekten Sprache mitteilen" name="language_is_public" tool_tip="In-Welt-Objekten wird Ihre bevorzugte Spracheinstellung mitgeteilt."/>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml
index 4717f21a0b..dd77d57f87 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml
@@ -93,18 +93,10 @@
Spiegelung:
</text>
<radio_group name="ReflectionDetailRadio">
- <radio_item name="0">
- Terrain und Bäume
- </radio_item>
- <radio_item name="1">
- Alle statischen Objekte
- </radio_item>
- <radio_item name="2">
- Alle Avatare und Objekte
- </radio_item>
- <radio_item name="3">
- Alles
- </radio_item>
+ <radio_item name="0" label="Terrain und Bäume" />
+ <radio_item name="1" label="Alle statischen Objekte" />
+ <radio_item name="2" label="Alle Avatare und Objekte" />
+ <radio_item name="3" label="Alles" />
</radio_group>
<text name="AvatarRenderingText">
Avatar-Darstellung:
@@ -155,23 +147,15 @@
Beleuchtungsdetails:
</text>
<radio_group name="LightingDetailRadio">
- <radio_item name="SunMoon">
- Nur Sonne und Mond
- </radio_item>
- <radio_item name="LocalLights">
- Lokale Lichtquellen
- </radio_item>
+ <radio_item name="SunMoon" label="Nur Sonne und Mond" />
+ <radio_item name="LocalLights" label="Lokale Lichtquellen" />
</radio_group>
<text name="TerrainDetailText">
Terraindetails:
</text>
<radio_group name="TerrainDetailRadio">
- <radio_item name="0">
- Niedrig
- </radio_item>
- <radio_item name="2">
- Hoch
- </radio_item>
+ <radio_item name="0" label="Niedrig" />
+ <radio_item name="2" label="Hoch" />
</radio_group>
<button label="Empfohlene Einstellungen" name="Defaults" />
<button label="Hardware-Optionen" label_selected="Hardware-Optionen"
diff --git a/indra/newview/skins/default/xui/de/panel_region_covenant.xml b/indra/newview/skins/default/xui/de/panel_region_covenant.xml
index 8f1f1c2597..a72f0e4240 100644
--- a/indra/newview/skins/default/xui/de/panel_region_covenant.xml
+++ b/indra/newview/skins/default/xui/de/panel_region_covenant.xml
@@ -1,50 +1,84 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Vertrag" name="Covenant">
+ <text name="estate_section_lbl">
+ Grundstück:
+ </text>
+ <text name="estate_name_lbl">
+ Name:
+ </text>
+ <text name="estate_name_text">
+ Mainland
+ </text>
+ <text name="estate_owner_lbl">
+ Eigentümer:
+ </text>
+ <text name="estate_owner_text">
+ (keiner)
+ </text>
+ <text name="estate_cov_lbl">
+ Vertrag:
+ </text>
+ <text name="covenant_timestamp_text">
+ Letzte Änderung am Mittwoch, den 31. Dez. 1969, 16:00:00
+ </text>
+ <button label="?" name="covenant_help"/>
+ <text_editor bottom="-247" height="162" name="covenant_editor">
+ Für dieses Grundstück fehlt der Vertrag.
+ </text_editor>
+ <button label="Zurücksetzen" name="reset_covenant"/>
<text name="covenant_help_text">
- Änderungen am Vertrag werden für alle Parzellen auf dem Grundstück übernommen.
+ Änderungen am Vertrag werden für alle Parzellen auf dem
+ Grundstück übernommen.
</text>
- <text name="region_name_lbl">
+ <text bottom_delta="-36" name="covenant_instructions">
+ Ziehen Sie eine Notizkarte an diese Stelle, um den Vertrag für dieses
+ Grundstück zu ändern.
+ </text>
+ <text bottom_delta="-36" name="region_section_lbl">
Region:
</text>
+ <text name="region_name_lbl">
+ Name:
+ </text>
<text name="region_name_text">
- (unbekannt)
+ leyla
</text>
- <text name="estate_name_lbl">
- Grundstück:
+ <text name="region_landtype_lbl">
+ Typ:
</text>
- <text name="estate_name_text">
- (unbekannt)
+ <text name="region_landtype_text">
+ Mainland / Homestead
</text>
- <text name="covenent_instructions">
- Ziehen Sie eine Notizkarte an diese Stelle, um den Vertrag für dieses Grundstück zu ändern.
+ <text name="region_maturity_lbl">
+ Einstufung:
</text>
- <button label="?" name="covenant_help" />
- <button label="Zurücksetzen" name="reset_covenant" />
- <text name="estate_owner_lbl">
- Grundstückseigentümer:
+ <text name="region_maturity_text">
+ Adult
</text>
- <text name="estate_owner_text">
- (unbekannt)
+ <text name="resellable_lbl">
+ Wiederverkauf:
</text>
<text name="resellable_clause">
- Gekauftes Land in dieser Region kann oder kann nicht wiederverkauft werden.
+ Land in dieser Region kann nicht wiederverkauft werden.
+ </text>
+ <text name="changeable_lbl">
+ Unterteilen:
</text>
<text name="changeable_clause">
- Gekauftes Land in dieser Region kann oder kann nicht zusammengelegt und geteilt werden.
+ Land in dieser Region kann nicht zusammengelegt/geteilt werden.
</text>
- <text_editor name="covenant_editor">
- Wird geladen...
- </text_editor>
- <text name="can_resell">
+ <string name="can_resell">
Gekauftes Land in dieser Region kann wiederverkauft werden.
- </text>
- <text name="can_not_resell">
+ </string>
+ <string name="can_not_resell">
Gekauftes Land in dieser Region kann nicht wiederverkauft werden.
- </text>
- <text name="can_change">
- Gekauftes Land in dieser Region kann zusammengelegt und geteilt werden.
- </text>
- <text name="can_not_change">
- Gekauftes Land in dieser Region kann nicht zusammengelegt und geteilt werden.
- </text>
+ </string>
+ <string name="can_change">
+ Gekauftes Land in dieser Region kann zusammengelegt und
+geteilt werden.
+ </string>
+ <string name="can_not_change">
+ Gekauftes Land in dieser Region kann nicht zusammengelegt
+und geteilt werden.
+ </string>
</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 6cf3e69d31..9980393ab0 100644
--- a/indra/newview/skins/default/xui/de/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/de/panel_region_general.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="Region" name="General">
<text name="region_text_lbl">
Region:
@@ -12,34 +12,48 @@
<text name="version_channel_text">
unbekannt
</text>
- <check_box label="Terraformen blockieren" name="block_terraform_check" />
- <button label="?" name="terraform_help" />
- <check_box label="Fliegen blockieren" name="block_fly_check" />
- <button label="?" name="fly_help" />
- <check_box label="Schaden zulassen" name="allow_damage_check" />
- <button label="?" name="damage_help" />
- <check_box label="Stoßen beschränken" name="restrict_pushobject" />
- <button label="?" name="restrict_pushobject_help" />
- <check_box label="Landwiederverkauf zulassen" name="allow_land_resell_check" />
- <button label="?" name="land_resell_help" />
- <check_box label="Landumverteilung zulassen" name="allow_parcel_changes_check" />
- <button label="?" name="parcel_changes_help" />
- <check_box label="Landanzeige in Suche blockieren" name="block_parcel_search_check"
- tool_tip="Diese Region und ihre Parzellen in Suchergebnissen anzeigen" />
- <button label="?" name="parcel_search_help" />
- <spinner label="Avatar-Limit" name="agent_limit_spin" />
- <button label="?" name="agent_limit_help" />
- <spinner label="Objektbonus" name="object_bonus_spin" />
- <button label="?" name="object_bonus_help" />
+ <text name="region_type_lbl">
+ Typ:
+ </text>
+ <text name="region_type">
+ unbekannt
+ </text>
+ <check_box label="Terraformen blockieren" name="block_terraform_check"/>
+ <button label="?" name="terraform_help"/>
+ <check_box label="Fliegen blockieren" name="block_fly_check"/>
+ <button label="?" name="fly_help"/>
+ <check_box label="Schaden zulassen" name="allow_damage_check"/>
+ <button label="?" name="damage_help"/>
+ <check_box label="Stoßen beschränken" name="restrict_pushobject"/>
+ <button label="?" name="restrict_pushobject_help"/>
+ <check_box label="Landwiederverkauf zulassen" name="allow_land_resell_check"/>
+ <button label="?" name="land_resell_help"/>
+ <check_box label="Landumverteilung zulassen" name="allow_parcel_changes_check"/>
+ <button label="?" name="parcel_changes_help"/>
+ <check_box label="Landanzeige in Suche blockieren" name="block_parcel_search_check" tool_tip="Diese Region und ihre Parzellen in Suchergebnissen anzeigen"/>
+ <button label="?" name="parcel_search_help"/>
+ <spinner label="Avatar-Limit" name="agent_limit_spin"/>
+ <button label="?" name="agent_limit_help"/>
+ <spinner label="Objektbonus" name="object_bonus_spin"/>
+ <button label="?" name="object_bonus_help"/>
<text label="Alterseinstufung" name="access_text">
- Alterseinstufung:
+ Einstufung:
</text>
-
-
- <button label="?" name="access_help" />
- <button label="Übernehmen" name="apply_btn" />
- <button label="Einen Benutzer nach Hause teleportieren..." name="kick_btn" />
- <button label="Alle Benutzer nach Hause teleportieren..." name="kick_all_btn" />
- <button label="Nachricht an Region senden..." name="im_btn" />
- <button label="Telehub verwalten..." name="manage_telehub_btn" />
+ <combo_box label="Mature" name="access_combo">
+ <combo_item name="Adult">
+ Adult
+ </combo_item>
+ <combo_item name="Mature">
+ Mature
+ </combo_item>
+ <combo_item name="PG">
+ PG
+ </combo_item>
+ </combo_box>
+ <button label="?" name="access_help"/>
+ <button label="Übernehmen" name="apply_btn"/>
+ <button label="Einen Benutzer nach Hause teleportieren..." name="kick_btn"/>
+ <button label="Alle Benutzer nach Hause teleportieren..." name="kick_all_btn"/>
+ <button label="Nachricht an Region senden..." name="im_btn"/>
+ <button label="Telehub verwalten..." name="manage_telehub_btn"/>
</panel>
diff --git a/indra/newview/skins/default/xui/de/strings.xml b/indra/newview/skins/default/xui/de/strings.xml
index 07f3269541..3436cfac1e 100644
--- a/indra/newview/skins/default/xui/de/strings.xml
+++ b/indra/newview/skins/default/xui/de/strings.xml
@@ -1,10 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- This file contains strings that used to be hardcoded in the source.
- It is only for those strings which don&apos;t belong in a floater.
+ It is only for those strings which do not belong in a floater.
For example, the strings used in avatar chat bubbles, and strings
that are returned from one component and may appear in many places-->
<strings>
- <!-- Login -->
<string name="LoginInProgress">
Anmeldevorgang gestartet. [APP_NAME] reagiert möglicherweise nicht. Bitte warten.
</string>
@@ -56,34 +55,24 @@
<string name="LoginDownloadingClothing">
Kleidung wird geladen...
</string>
- <string name="LoginFailedNoNetwork">
- Netzwerk Fehler: Eine Verbindung konnte nicht hergestellt werden. Bitte überprüfen Sie Ihre Netzwerkverbindung.
- </string>
- <!-- Disconnection -->
<string name="AgentLostConnection">
In dieser Region kann es zu Problemen kommen. Bitte überprüfen Sie Ihre Internetverbindung.
</string>
- <!-- Tooltip, llhoverview.cpp -->
<string name="TooltipPerson">
Person
</string>
- <!-- Object under mouse pointer is an avatar -->
<string name="TooltipNoName">
(namenlos)
</string>
- <!-- No name on an object -->
<string name="TooltipOwner">
Eigentümer:
</string>
- <!-- Owner name follows -->
<string name="TooltipPublic">
Öffentlich
</string>
- <!-- Public permissions on an object -->
<string name="TooltipIsGroup">
(Gruppe)
</string>
- <!-- The name before this text is that of a group -->
<string name="TooltipFlagScript">
Skript
</string>
@@ -114,11 +103,9 @@
<string name="TooltipForSaleL$">
Zum Verkauf: [AMOUNT] L$
</string>
- <!-- L$ version -->
<string name="TooltipForSaleMsg">
Zum Verkauf: [MESSAGE]
</string>
- <!-- Message (RetrievingData) -->
<string name="TooltipFlagGroupBuild">
Gruppenbau
</string>
@@ -131,7 +118,6 @@
<string name="TooltipFlagNotSafe">
Unsicher
</string>
- <!-- damage area -->
<string name="TooltipFlagNoFly">
Fliegen aus
</string>
@@ -147,35 +133,27 @@
<string name="TooltipMustSingleDrop">
Sie können nur ein einzelnes Objekt hierher ziehen
</string>
- <!-- Indicates that an avatar&apos;s name or other similar datum is being retrieved. General usage. -->
<string name="RetrievingData">
Laden...
</string>
<string name="ReleaseNotes">
Versionshinweise
</string>
- <!-- Indicates something is being loaded. Maybe should be merged with RetrievingData -->
<string name="LoadingData">
Wird geladen...
</string>
- <!-- namecache -->
- <!-- Avatar name: text shown for LLUUID::null -->
<string name="AvatarNameNobody">
(niemand)
</string>
- <!-- Avatar name: text shown while fetching name -->
<string name="AvatarNameWaiting">
(wartet)
</string>
- <!-- Avatar name: text shown as an alternative to AvatarNameFetching, easter egg. -->
<string name="AvatarNameHippos">
(hippos)
</string>
- <!-- Group name: text shown for LLUUID::null -->
<string name="GroupNameNone">
(keiner)
</string>
- <!-- Asset errors. Used in llassetstorage.cpp, translation from error code to error message. -->
<string name="AssetErrorNone">
Kein Fehler
</string>
@@ -203,10 +181,12 @@
<string name="AssetErrorCircuitGone">
Verbindung verloren
</string>
+ <string name="AssetErrorPriceMismatch">
+ Viewer und Server sind sich nicht über Preis einig
+ </string>
<string name="AssetErrorUnknownStatus">
Status unbekannt
</string>
- <!-- llvoavatar. Displayed in the avatar&apos;s chat bubble -->
<string name="AvatarEditingApparance">
(Aussehen wird bearbeitet)
</string>
@@ -219,7 +199,6 @@
<string name="AvatarMuted">
Stummgeschaltet
</string>
- <!-- animations -->
<string name="anim_express_afraid">
Ängstlich
</string>
@@ -433,11 +412,79 @@
<string name="worldmap_offline">
Offline
</string>
- <!-- Chat -->
<string name="whisper">
flüstert:
</string>
<string name="shout">
ruft:
</string>
+ <string name="SIM_ACCESS_PG">
+ PG
+ </string>
+ <string name="SIM_ACCESS_MATURE">
+ Mature
+ </string>
+ <string name="SIM_ACCESS_ADULT">
+ Adult
+ </string>
+ <string name="SIM_ACCESS_DOWN">
+ Offline
+ </string>
+ <string name="SIM_ACCESS_MIN">
+ Unbekannt
+ </string>
+ <string name="land_type_unknown">
+ (unbekannt)
+ </string>
+ <string name="covenant_never_modified">
+ Zuletzt geändert: (nie)
+ </string>
+ <string name="covenant_modified">
+ Zuletzt geändert:
+ </string>
+ <string name="all_files">
+ Alle Dateien
+ </string>
+ <string name="sound_files">
+ Sounds
+ </string>
+ <string name="animation_files">
+ Animationen
+ </string>
+ <string name="image_files">
+ Bilder
+ </string>
+ <string name="save_file_verb">
+ Speichern
+ </string>
+ <string name="load_file_verb">
+ Laden
+ </string>
+ <string name="targa_image_files">
+ Targa-Bilder
+ </string>
+ <string name="bitmap_image_files">
+ Bitmap-Bilder
+ </string>
+ <string name="avi_movie_file">
+ AVI-Filmdatei
+ </string>
+ <string name="xaf_animation_file">
+ XAF Anim-Datei
+ </string>
+ <string name="xml_file">
+ XML-Datei
+ </string>
+ <string name="dot_raw_file">
+ RAW-Datei
+ </string>
+ <string name="compressed_image_files">
+ Komprimierte Bilder
+ </string>
+ <string name="load_files">
+ Dateien laden
+ </string>
+ <string name="choose_the_directory">
+ Verzeichnis auswählen
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/de/teleport_strings.xml b/indra/newview/skins/default/xui/de/teleport_strings.xml
index 7d1a154310..31f92dc920 100644
--- a/indra/newview/skins/default/xui/de/teleport_strings.xml
+++ b/indra/newview/skins/default/xui/de/teleport_strings.xml
@@ -2,21 +2,16 @@
<teleport_messages name="">
<message_set name="errors">
<message name="invalid_tport">
- Bei der Bearbeitung Ihrer Teleport-Anfrage ist ein Problem aufgetreten. Sie müssen
-sich zum Teleportieren eventuell neu anmelden. Wenn Sie diese
-Nachricht weiterhin erhalten, konsultieren Sie bitte die Tech-Support-FAQ unter:
+ Bei der Bearbeitung Ihrer Teleport-Anfrage ist ein Problem aufgetreten. Sie müssen sich zum Teleportieren eventuell neu anmelden. Wenn Sie diese Nachricht weiterhin erhalten, konsultieren Sie bitte die Tech-Support-FAQ unter:
www.secondlife.com/support
</message>
<message name="invalid_region_handoff">
- Bei der Bearbeitung Ihres Regionswechsels ist ein Problem aufgetreten. Sie müssen
-sich zum Wechsel der Region eventuell neu anmelden. Wenn Sie diese
-Nachricht weiterhin erhalten, konsultieren Sie bitte die Tech-Support-FAQ unter:
-www.secondlife.com/support.
+ Bei der Bearbeitung Ihres Regionswechsels ist ein Problem aufgetreten. Sie müssen sich zum Wechsel der Region eventuell neu anmelden. Wenn Sie diese Nachricht weiterhin erhalten, konsultieren Sie bitte die Tech-Support-FAQ unter:
+www.secondlife.com/support
</message>
<message name="blocked_tport">
Teleportieren ist zurzeit leider nicht möglich. Versuchen Sie es später noch einmal.
-Wenn der Teleport dann immer noch nicht funktioniert, melden Sie
-sich bitte ab und wieder an.
+Wenn der Teleport dann immer noch nicht funktioniert, melden Sie sich bitte ab und wieder an.
</message>
<message name="nolandmark_tport">
Das System konnte das Landmarken-Ziel nicht finden.
@@ -29,27 +24,20 @@ Versuchen Sie es später noch einmal.
Sie haben leider keinen Zugang zu diesem Teleport-Ziel.
</message>
<message name="missing_attach_tport">
- Ihre Anhänge sind noch nicht eingetroffen. Warten Sie kurz
-oder melden Sie sich ab und wieder an, bevor Sie einen neuen
-Teleport-Versuch unternehmen.
+ Ihre Anhänge sind noch nicht eingetroffen. Warten Sie kurz oder melden Sie sich ab und wieder an, bevor Sie einen neuen Teleport-Versuch unternehmen.
</message>
<message name="too_many_uploads_tport">
Die Asset-Warteschlange in dieser Region ist zurzeit überlastet.
-Ihre Teleport-Anfrage kann nicht sofort bearbeitet werden. Versuchen Sie es
-in einigen Minuten erneut oder besuchen Sie eine weniger überfüllte Region.
+Ihre Teleport-Anfrage kann nicht sofort bearbeitet werden. Versuchen Sie es in einigen Minuten erneut oder besuchen Sie eine weniger überfüllte Region.
</message>
<message name="expired_tport">
- Das System konnte Ihre Teleport-Anfrage nicht
-rechtzeitig bearbeiten. Versuchen Sie es in einigen Minuten erneut.
+ Das System konnte Ihre Teleport-Anfrage nicht rechtzeitig bearbeiten. Versuchen Sie es in einigen Minuten erneut.
</message>
<message name="expired_region_handoff">
- Das System konnte Ihre Anfrage zum Regionswechsel nicht
-rechtzeitig bearbeiten. Versuchen Sie es in einigen Minuten erneut.
+ Das System konnte Ihre Anfrage zum Regionswechsel nicht rechtzeitig bearbeiten. Versuchen Sie es in einigen Minuten erneut.
</message>
<message name="no_host">
- Teleport-Ziel wurde nicht gefunden. Das Ziel ist
-entweder im Moment nicht verfügbar oder existiert nicht mehr. Versuchen Sie es
-in einigen Minuten erneut.
+ Teleport-Ziel wurde nicht gefunden. Das Ziel ist entweder im Moment nicht verfügbar oder existiert nicht mehr. Versuchen Sie es in einigen Minuten erneut.
</message>
<message name="no_inventory_host">
Das Inventarsystem ist zurzeit nicht verfügbar.
diff --git a/indra/newview/skins/default/xui/en/accordion_parent.xml b/indra/newview/skins/default/xui/en/accordion_parent.xml
new file mode 100644
index 0000000000..632752b1c4
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/accordion_parent.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+ <panel border_thickness="2" name="splitter_parent"
+ can_resize="true" background_visible="true"
+ label="splitter_parent"
+ title=""
+ >
+ </panel>
diff --git a/indra/newview/skins/default/xui/en/floater_about.xml b/indra/newview/skins/default/xui/en/floater_about.xml
new file mode 100644
index 0000000000..f52c5d6175
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_about.xml
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ height="440"
+ layout="topleft"
+ name="floater_about"
+ save_rect="true"
+ title="About [SECOND_LIFE_VIEWER]"
+ width="470">
+ <floater.string
+ name="you_are_at">
+ You are at [POSITION]
+ </floater.string>
+ <floater.string
+ name="in_region">
+ in [REGION] located at
+ </floater.string>
+ <floater.string
+ name="CPU">
+ CPU:
+ </floater.string>
+ <floater.string
+ name="Memory">
+ Memory: [MEM] MB
+ </floater.string>
+ <floater.string
+ name="OSVersion">
+ OS Version:
+ </floater.string>
+ <floater.string
+ name="GraphicsCardVendor">
+ Graphics Card Vendor:
+ </floater.string>
+ <floater.string
+ name="GraphicsCard">
+ Graphics Card:
+ </floater.string>
+ <floater.string
+ name="OpenGLVersion">
+ OpenGL Version:
+ </floater.string>
+ <floater.string
+ name="LibCurlVersion">
+ libcurl Version:
+ </floater.string>
+ <floater.string
+ name="J2CDecoderVersion">
+ J2C Decoder Version:
+ </floater.string>
+ <floater.string
+ name="AudioDriverVersion">
+ Audio Driver Version:
+ </floater.string>
+ <floater.string
+ name="none">
+ (none)
+ </floater.string>
+ <floater.string
+ name="LLMozLibVersion">
+ LLMozLib Version:
+ </floater.string>
+ <floater.string
+ name="PacketsLost">
+ Packets Lost: [LOST]/[IN] ([PCT]%)
+ </floater.string>
+ <text_editor
+ type="string"
+ length="1"
+ follows="left|top|right|bottom"
+ height="168"
+ layout="topleft"
+ left="6"
+ max_length="65536"
+ name="credits_editor"
+ top="266"
+ width="458"
+ word_wrap="true">
+ Second Life is brought to you by Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Yang, T, Simone, Maestro, Scott, Charlene, Quixote, Amanda, Susan, Zed, Anne, Enkidu, Esbee, Joroan, Katelin, Roxie, Tay, Scarlet, Kevin, Johnny, Wolfgang, Andren, Bob, Howard, Merov, Rand, Ray, Michon, Newell, Galen, Dessie, Les and many others.
+
+ Thank you to the following residents for helping to ensure that this is the best version yet: (in progress)
+
+ 3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion
+ APR Copyright (C) 2000-2004 The Apache Software Foundation
+ cURL Copyright (C) 1996-2002, Daniel Stenberg, (daniel@haxx.se)
+ DBus/dbus-glib Copyright (C) 2002, 2003 CodeFactory AB / Copyright (C) 2003, 2004 Red Hat, Inc.
+ expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd.
+ FreeType Copyright (C) 1996-2002, The FreeType Project (www.freetype.org).
+ GL Copyright (C) 1999-2004 Brian Paul.
+ Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited.
+ jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW)
+ jpeglib Copyright (C) 1991-1998, Thomas G. Lane.
+ ogg/vorbis Copyright (C) 2001, Xiphophorus
+ OpenSSL Copyright (C) 1998-2002 The OpenSSL Project.
+ SDL Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga
+ SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+ xmlrpc-epi Copyright (C) 2000 Epinions, Inc.
+ zlib Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler.
+ google-perftools Copyright (c) 2005, Google Inc.
+
+ All rights reserved. See licenses.txt for details.
+
+ Voice chat Audio coding: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C)
+
+
+ To be a success in business, be daring, be first, be different. --Henry Marchant
+ </text_editor>
+ <text_editor
+ follows="left|top|right|bottom"
+ font="SansSerif"
+ height="238"
+ layout="topleft"
+ left_delta="0"
+ max_length="65536"
+ name="support_editor"
+ top_delta="-244"
+ width="458"
+ word_wrap="true" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_about_land.xml b/indra/newview/skins/default/xui/en/floater_about_land.xml
new file mode 100644
index 0000000000..3563780f8b
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_about_land.xml
@@ -0,0 +1,2139 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_tear_off="false"
+ height="420"
+ layout="topleft"
+ name="floaterland"
+ save_rect="true"
+ title="About Land"
+ width="460">
+ <floater.string
+ name="Minutes">
+ [MINUTES] minutes
+ </floater.string>
+ <floater.string
+ name="Minute">
+ minute
+ </floater.string>
+ <floater.string
+ name="Seconds">
+ [SECONDS] seconds
+ </floater.string>
+ <floater.string
+ name="Remaining">
+ remaining
+ </floater.string>
+ <tab_container
+ follows="left|top|right|bottom"
+ height="400"
+ layout="topleft"
+ left="1"
+ name="landtab"
+ tab_position="top"
+ top="20"
+ width="459">
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="380"
+ label="General"
+ layout="topleft"
+ left="1"
+ name="land_general_panel"
+ top="-31"
+ width="458">
+ <panel.string
+ name="new users only">
+ New users only
+ </panel.string>
+ <panel.string
+ name="anyone">
+ Anyone
+ </panel.string>
+ <panel.string
+ name="area_text">
+ Area
+ </panel.string>
+ <panel.string
+ name="area_size_text">
+ [AREA] sq.m.
+ </panel.string>
+ <panel.string
+ name="auction_id_text">
+ Auction ID: [ID]
+ </panel.string>
+ <panel.string
+ name="need_tier_to_modify">
+ You must approve your purchase to modify this land.
+ </panel.string>
+ <panel.string
+ name="group_owned_text">
+ (Group Owned)
+ </panel.string>
+ <panel.string
+ name="profile_text">
+ Profile...
+ </panel.string>
+ <panel.string
+ name="info_text">
+ Info...
+ </panel.string>
+ <panel.string
+ name="public_text">
+ (public)
+ </panel.string>
+ <panel.string
+ name="none_text">
+ (none)
+ </panel.string>
+ <panel.string
+ name="sale_pending_text">
+ (Sale Pending)
+ </panel.string>
+ <panel.string
+ name="no_selection_text">
+ No parcel selected.
+Go to World menu &gt; About Land or select another parcel to show its details.
+ </panel.string>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="4"
+ name="Name:"
+ top="4"
+ width="92">
+ Name:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top|right"
+ height="16"
+ layout="topleft"
+ left_pad="2"
+ max_length="63"
+ name="Name"
+ top_delta="0"
+ width="350" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="4"
+ name="Description:"
+ top="24"
+ width="100">
+ Description:
+ </text>
+ <text_editor
+ bevel_style="in"
+ border_style="line"
+ border_thickness="1"
+ follows="left|top|right"
+ height="52"
+ layout="topleft"
+ left_delta="92"
+ name="Description"
+ top_delta="0"
+ width="350"
+ word_wrap="true" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="4"
+ name="LandType"
+ top="84"
+ width="92">
+ Type:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="92"
+ name="LandTypeText"
+ top_delta="0"
+ width="250">
+ Mainland / Homestead
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="4"
+ name="ContentRating"
+ top="104"
+ width="92">
+ Rating:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="92"
+ name="ContentRatingText"
+ top_delta="0"
+ width="250">
+ Adult
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="4"
+ name="Owner:"
+ top="124"
+ width="92">
+ Owner:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="92"
+ name="OwnerText"
+ top_delta="0"
+ width="250">
+ Leyla Linden
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Profile..."
+ label_selected="Profile..."
+ layout="topleft"
+ left_pad="4"
+ name="Profile..."
+ top_delta="0"
+ width="90" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="4"
+ name="Group:"
+ top="144"
+ width="92">
+ Group:
+ </text>
+ <text
+ enabled="false"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="92"
+ name="GroupText"
+ top_delta="2"
+ width="250" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Set..."
+ label_selected="Set..."
+ layout="topleft"
+ left_pad="4"
+ name="Set..."
+ top_delta="-2"
+ width="90" />
+ <check_box
+ enabled="false"
+ height="16"
+ label="Allow Deed to Group"
+ layout="topleft"
+ left="96"
+ name="check deed"
+ tool_tip="A group officer can deed this land to the group, so it will be supported by the group&amp;apos;s land allocation."
+ top="164"
+ width="116" />
+ <button
+ enabled="false"
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Deed..."
+ label_selected="Deed..."
+ layout="topleft"
+ left_pad="138"
+ name="Deed..."
+ tool_tip="You may only deed land if you are an officer in the selected group."
+ top_delta="0"
+ width="90" />
+ <check_box
+ enabled="false"
+ height="16"
+ label="Owner Makes Contribution With Deed"
+ layout="topleft"
+ left="96"
+ name="check contrib"
+ tool_tip="When the land is deeded to the group, the former owner contributes enough land allocation to support it."
+ top="184"
+ width="199" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="4"
+ name="For Sale:"
+ top="204"
+ width="92">
+ For Sale:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="92"
+ name="Not for sale."
+ top_delta="0"
+ width="186">
+ Not for sale.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="For Sale: Price L$[PRICE]."
+ top_delta="0"
+ width="226">
+ Price: L$[PRICE] (L$[PRICE_PER_SQM]/sq.m.).
+ </text>
+ <text
+ enabled="false"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="SalePending"
+ top_pad="4"
+ width="344" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Sell Land..."
+ label_selected="Sell Land..."
+ layout="topleft"
+ left_delta="199"
+ name="Sell Land..."
+ top_delta="0"
+ width="145" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="-199"
+ name="For sale to"
+ top_delta="0"
+ width="186">
+ For sale to: [BUYER]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="Sell with landowners objects in parcel."
+ top_pad="4"
+ width="186">
+ Objects included in sale.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="Selling with no objects in parcel."
+ top_delta="0"
+ width="186">
+ Objects not included in sale.
+ </text>
+ <button
+ follows="left|top"
+ height="20"
+ label="Cancel Land Sale"
+ label_selected="Cancel Land Sale"
+ layout="topleft"
+ left="295"
+ name="Cancel Land Sale"
+ top="228"
+ width="145" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="4"
+ name="Claimed:"
+ top="268"
+ width="92">
+ Claimed:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="92"
+ name="DateClaimText"
+ top_delta="0"
+ width="186">
+ Tue Aug 15 13:47:25 2006
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="4"
+ name="PriceLabel"
+ top="288"
+ width="92">
+ Area:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="92"
+ name="PriceText"
+ top_delta="0"
+ width="186">
+ 4048 sq.m.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="4"
+ name="Traffic:"
+ top="308"
+ width="92">
+ Traffic:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="92"
+ name="DwellText"
+ top_delta="0"
+ width="186">
+ 0
+ </text>
+ <button
+ enabled="false"
+ follows="left|top"
+ height="20"
+ label="Buy Land..."
+ label_selected="Buy Land..."
+ layout="topleft"
+ left="155"
+ name="Buy Land..."
+ top="328"
+ width="100" />
+ <button
+ enabled="false"
+ follows="left|top"
+ height="20"
+ label="Buy For Group..."
+ label_selected="Buy For Group..."
+ layout="topleft"
+ left="260"
+ name="Buy For Group..."
+ top="352"
+ width="180" />
+ <button
+ enabled="false"
+ follows="left|top"
+ height="20"
+ label="Buy Pass..."
+ label_selected="Buy Pass..."
+ layout="topleft"
+ left_delta="-105"
+ name="Buy Pass..."
+ tool_tip="A pass gives you temporary access to this land."
+ top_delta="0"
+ width="100" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Abandon Land..."
+ label_selected="Abandon Land..."
+ layout="topleft"
+ left="260"
+ name="Abandon Land..."
+ top="328"
+ width="180" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Reclaim Land..."
+ label_selected="Reclaim Land..."
+ layout="topleft"
+ left_delta="0"
+ name="Reclaim Land..."
+ top_delta="-48"
+ width="180" />
+ <button
+ enabled="false"
+ follows="left|top"
+ height="20"
+ label="Linden Sale..."
+ label_selected="Linden Sale..."
+ layout="topleft"
+ left_delta="0"
+ name="Linden Sale..."
+ tool_tip="Land must be owned, set content, and not already for auction."
+ top_pad="4"
+ width="180" />
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="380"
+ label="Covenant"
+ layout="topleft"
+ left_delta="-1"
+ name="land_covenant_panel"
+ top_delta="-47"
+ width="458">
+ <panel.string
+ name="can_resell">
+ Purchased land in this region may be resold.
+ </panel.string>
+ <panel.string
+ name="can_not_resell">
+ Purchased land in this region may not be resold.
+ </panel.string>
+ <panel.string
+ name="can_change">
+ Purchased land in this region may be joined or subdivided.
+ </panel.string>
+ <panel.string
+ name="can_not_change">
+ Purchased land in this region may not be joined or subdivided.
+ </panel.string>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left="5"
+ mouse_opaque="false"
+ name="estate_section_lbl"
+ top="0"
+ width="100">
+ Estate:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ mouse_opaque="false"
+ name="estate_name_lbl"
+ top="20"
+ width="100">
+ Name:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="10"
+ mouse_opaque="false"
+ name="estate_name_text"
+ top_delta="0"
+ width="150">
+ mainland
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ mouse_opaque="false"
+ name="estate_owner_lbl"
+ top="40"
+ width="100">
+ Owner:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="10"
+ mouse_opaque="false"
+ name="estate_owner_text"
+ top_delta="0"
+ width="150">
+ (none)
+ </text>
+ <text_editor
+ type="string"
+ length="1"
+ enabled="false"
+ follows="left|top|right|bottom"
+ height="115"
+ layout="topleft"
+ left_delta="0"
+ max_length="65535"
+ name="covenant_editor"
+ top_delta="20"
+ width="330"
+ word_wrap="true">
+ There is no Covenant provided for this Estate.
+ </text_editor>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ mouse_opaque="false"
+ name="covenant_timestamp_text"
+ top_pad="55"
+ width="250">
+ Last Modified Wed Dec 31 16:00:00 1969
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left="5"
+ mouse_opaque="false"
+ name="region_section_lbl"
+ top="250"
+ width="100">
+ Region:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ mouse_opaque="false"
+ name="region_name_lbl"
+ top="270"
+ width="100">
+ Name:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="10"
+ mouse_opaque="false"
+ name="region_name_text"
+ top_delta="0"
+ width="150">
+ leyla
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ mouse_opaque="false"
+ name="region_landtype_lbl"
+ top="290"
+ width="100">
+ Type:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="10"
+ mouse_opaque="false"
+ name="region_landtype_text"
+ top_delta="0"
+ width="150">
+ Mainland / Homestead
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ mouse_opaque="false"
+ name="region_maturity_lbl"
+ top="310"
+ width="100">
+ Rating:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="10"
+ mouse_opaque="false"
+ name="region_maturity_text"
+ top_delta="0"
+ width="150">
+ Adult
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ mouse_opaque="false"
+ name="resellable_lbl"
+ top="330"
+ width="100">
+ Resale:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="10"
+ mouse_opaque="false"
+ name="resellable_clause"
+ top_delta="0"
+ width="330">
+ Land in this region may not be resold.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ mouse_opaque="false"
+ name="changeable_lbl"
+ top="350"
+ width="100">
+ Subdivide:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="30"
+ layout="topleft"
+ left_pad="10"
+ mouse_opaque="false"
+ name="changeable_clause"
+ top_delta="0"
+ width="330">
+ Land in this region may not be joined/subdivided.
+ </text>
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="380"
+ label="Objects"
+ layout="topleft"
+ left_delta="0"
+ name="land_objects_panel"
+ top_delta="-47"
+ width="458">
+ <panel.string
+ name="objects_available_text">
+ [COUNT] out of [MAX] ([AVAILABLE] available)
+ </panel.string>
+ <panel.string
+ name="objects_deleted_text">
+ [COUNT] out of [MAX] ([DELETED] will be deleted)
+ </panel.string>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="4"
+ name="parcel_object_bonus"
+ top="4"
+ visible="false"
+ width="364">
+ Region Object Bonus Factor: [BONUS]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="Simulator primitive usage:"
+ top_pad="4"
+ width="364">
+ Simulator primitive usage:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="152"
+ name="objects_available"
+ top_delta="0"
+ width="212">
+ [COUNT] out of [MAX] ([AVAILABLE] available)
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="4"
+ name="Primitives parcel supports:"
+ top="44"
+ width="152">
+ Primitives parcel supports:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="152"
+ name="object_contrib_text"
+ top_delta="0"
+ width="212">
+ [COUNT]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="4"
+ name="Primitives on parcel:"
+ top="64"
+ width="152">
+ Primitives on parcel:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="152"
+ name="total_objects_text"
+ top_delta="0"
+ width="48">
+ [COUNT]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="28"
+ name="Owned by parcel owner:"
+ top="84"
+ width="128">
+ Owned by parcel owner:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="128"
+ name="owner_objects_text"
+ top_delta="0"
+ width="48">
+ [COUNT]
+ </text>
+ <button
+ bottom="100"
+ enabled="false"
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Show"
+ label_selected="Show"
+ layout="topleft"
+ name="ShowOwner"
+ right="-190"
+ width="60" />
+ <button
+ bottom="100"
+ enabled="false"
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Return..."
+ label_selected="Return..."
+ layout="topleft"
+ name="ReturnOwner..."
+ right="-60"
+ tool_tip="Return objects to their owners."
+ width="119" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="28"
+ name="Set to group:"
+ top="104"
+ width="128">
+ Set to group:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="128"
+ name="group_objects_text"
+ top_delta="0"
+ width="48">
+ [COUNT]
+ </text>
+ <button
+ bottom="120"
+ enabled="false"
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Show"
+ label_selected="Show"
+ layout="topleft"
+ name="ShowGroup"
+ right="-190"
+ width="60" />
+ <button
+ bottom="120"
+ enabled="false"
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Return..."
+ label_selected="Return..."
+ layout="topleft"
+ name="ReturnGroup..."
+ right="-60"
+ tool_tip="Return objects to their owners."
+ width="119" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="28"
+ name="Owned by others:"
+ top="124"
+ width="128">
+ Owned by others:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="128"
+ name="other_objects_text"
+ top_delta="0"
+ width="48">
+ [COUNT]
+ </text>
+ <button
+ bottom="140"
+ enabled="false"
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Show"
+ label_selected="Show"
+ layout="topleft"
+ name="ShowOther"
+ right="-190"
+ width="60" />
+ <button
+ bottom="140"
+ enabled="false"
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Return..."
+ label_selected="Return..."
+ layout="topleft"
+ name="ReturnOther..."
+ right="-60"
+ tool_tip="Return objects to their owners."
+ width="119" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="28"
+ name="Selected / sat upon:"
+ top="144"
+ width="128">
+ Selected / sat upon:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="128"
+ name="selected_objects_text"
+ top_delta="0"
+ width="48">
+ [COUNT]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="4"
+ name="Autoreturn"
+ top="164"
+ width="294">
+ Autoreturn other residents&apos; objects (minutes, 0 for off):
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ bottom="180"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ max_length="6"
+ name="clean other time"
+ right="-100"
+ width="56" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="4"
+ name="Object Owners:"
+ top="184"
+ width="104">
+ Object Owners:
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Refresh List"
+ label_selected="Refresh List"
+ layout="topleft"
+ left_delta="104"
+ name="Refresh List"
+ top_delta="0"
+ width="106" />
+ <button
+ enabled="false"
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Return objects..."
+ label_selected="Return objects..."
+ layout="topleft"
+ left_pad="6"
+ name="Return objects..."
+ top_delta="0"
+ width="164" />
+ <name_list
+ column_padding="0"
+ draw_heading="true"
+ follows="left|top|right|bottom"
+ height="165"
+ layout="topleft"
+ left="4"
+ name="owner list"
+ name_column="name"
+ top="210"
+ width="450">
+ <name_list.columns
+ label="Type"
+ name="type"
+ sort_column="online_status"
+ width="24" />
+ <name_list.columns
+ name="online_status"
+ width="-1" />
+ <name_list.columns
+ dynamicwidth="true"
+ label="Name"
+ name="name" />
+ <name_list.columns
+ label="Count"
+ name="count"
+ width="70" />
+ <name_list.columns
+ label="Most Recent"
+ name="mostrecent"
+ width="160" />
+ </name_list>
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="333"
+ label="Options"
+ layout="topleft"
+ left_delta="0"
+ name="land_options_panel"
+ top_delta="31"
+ width="458">
+ <panel.string
+ name="search_enabled_tooltip">
+ Let people see this parcel in search results
+ </panel.string>
+ <panel.string
+ name="search_disabled_small_tooltip">
+ This option is disabled because this parcel&apos;s area is 128 sq.m. or smaller.
+Only large parcels can be listed in search.
+ </panel.string>
+ <panel.string
+ name="search_disabled_permissions_tooltip">
+ This option is disabled because you cannot modify this parcel&apos;s options.
+ </panel.string>
+ <panel.string
+ name="mature_check_mature">
+ Mature Content
+ </panel.string>
+ <panel.string
+ name="mature_check_adult">
+ Adult Content
+ </panel.string>
+ <panel.string
+ name="mature_check_mature_tooltip">
+ Your parcel information or content is considered mature.
+ </panel.string>
+ <panel.string
+ name="mature_check_adult_tooltip">
+ Your parcel information or content is considered adult.
+ </panel.string>
+ <panel.string
+ name="landing_point_none">
+ (none)
+ </panel.string>
+ <panel.string
+ name="push_restrict_text">
+ No Pushing
+ </panel.string>
+ <panel.string
+ name="push_restrict_region_text">
+ No Pushing (Region Override)
+ </panel.string>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="4"
+ name="allow_label"
+ top="4"
+ width="278">
+ Allow other residents to:
+ </text>
+ <check_box
+ height="16"
+ label="Edit Terrain"
+ layout="topleft"
+ left="14"
+ name="edit land check"
+ tool_tip="If checked, anyone can terraform your land. It is best to leave this unchecked, as you can always edit your own land."
+ top="24"
+ width="268" />
+ <check_box
+ height="16"
+ label="Create Landmarks"
+ layout="topleft"
+ left_delta="0"
+ name="check landmark"
+ top_pad="4"
+ width="268" />
+ <check_box
+ height="16"
+ label="Fly"
+ layout="topleft"
+ left_delta="0"
+ name="check fly"
+ tool_tip="If checked, Residents can fly on your land. If unchecked, they can only fly into and over your land."
+ top_pad="4"
+ width="268" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="178"
+ name="allow_label2"
+ top="24"
+ width="104">
+ Create Objects:
+ </text>
+ <check_box
+ height="16"
+ label="All Residents"
+ layout="topleft"
+ left_delta="92"
+ name="edit objects check"
+ top_delta="0"
+ width="104" />
+ <check_box
+ height="16"
+ label="Group"
+ layout="topleft"
+ left_delta="100"
+ name="edit group objects check"
+ top_delta="0"
+ width="70" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="178"
+ name="allow_label3"
+ top="44"
+ width="124">
+ Object Entry:
+ </text>
+ <check_box
+ height="16"
+ label="All Residents"
+ layout="topleft"
+ left_delta="92"
+ name="all object entry check"
+ top_delta="0"
+ width="120" />
+ <check_box
+ height="16"
+ label="Group"
+ layout="topleft"
+ left_delta="100"
+ name="group object entry check"
+ top_delta="0"
+ width="70" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="178"
+ name="allow_label4"
+ top="64"
+ width="124">
+ Run Scripts:
+ </text>
+ <check_box
+ height="16"
+ label="All Residents"
+ layout="topleft"
+ left_delta="92"
+ name="check other scripts"
+ top_delta="0"
+ width="120" />
+ <check_box
+ height="16"
+ label="Group"
+ layout="topleft"
+ left_delta="100"
+ name="check group scripts"
+ top_delta="0"
+ width="70" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="4"
+ name="land_options_label"
+ top="84"
+ width="278">
+ Land Options:
+ </text>
+ <check_box
+ height="16"
+ label="Safe (no damage)"
+ layout="topleft"
+ left="14"
+ name="check safe"
+ tool_tip="If checked, sets the land to Safe, disabling damage combat. If cleared, damage combat is enabled."
+ top="104"
+ width="268" />
+ <check_box
+ height="16"
+ label="No Pushing"
+ layout="topleft"
+ left_delta="164"
+ name="PushRestrictCheck"
+ tool_tip="Prevents scripts from pushing. Checking this option may be useful for preventing disruptive behavior on your land."
+ top_delta="0"
+ width="119" />
+ <check_box
+ height="16"
+ label="Show Place in Search (L$30/week) under"
+ layout="topleft"
+ left="14"
+ name="ShowDirectoryCheck"
+ tool_tip="Let people see this parcel in search results"
+ top="124"
+ width="268" />
+ <combo_box
+ enabled="false"
+ height="18"
+ layout="topleft"
+ left_delta="241"
+ name="land category with adult"
+ top_delta="-2"
+ visible="false"
+ width="130">
+ <combo_box.item
+ label="Any Category"
+ value="any" />
+ <combo_box.item
+ label="Linden Location"
+ value="linden" />
+ <combo_box.item
+ label="Adult"
+ value="adult" />
+ <combo_box.item
+ label="Arts &amp; Culture"
+ value="arts" />
+ <combo_box.item
+ label="Business"
+ value="store" />
+ <combo_box.item
+ label="Educational"
+ value="educational" />
+ <combo_box.item
+ label="Gaming"
+ value="game" />
+ <combo_box.item
+ label="Hangout"
+ value="gather" />
+ <combo_box.item
+ label="Newcomer Friendly"
+ value="newcomer" />
+ <combo_box.item
+ label="Parks &amp; Nature"
+ value="park" />
+ <combo_box.item
+ label="Residential"
+ value="home" />
+ <combo_box.item
+ label="Shopping"
+ value="shopping" />
+ <combo_box.item
+ label="Other"
+ value="other" />
+ </combo_box>
+ <combo_box
+ enabled="false"
+ height="18"
+ layout="topleft"
+ left_delta="0"
+ name="land category"
+ top_delta="0"
+ visible="false"
+ width="130">
+ <combo_box.item
+ label="Any Category"
+ value="any" />
+ <combo_box.item
+ label="Linden Location"
+ value="linden" />
+ <combo_box.item
+ label="Arts &amp; Culture"
+ value="arts" />
+ <combo_box.item
+ label="Business"
+ value="store" />
+ <combo_box.item
+ label="Educational"
+ value="educational" />
+ <combo_box.item
+ label="Gaming"
+ value="game" />
+ <combo_box.item
+ label="Hangout"
+ value="gather" />
+ <combo_box.item
+ label="Newcomer Friendly"
+ value="newcomer" />
+ <combo_box.item
+ label="Parks &amp; Nature"
+ value="park" />
+ <combo_box.item
+ label="Residential"
+ value="home" />
+ <combo_box.item
+ label="Shopping"
+ value="shopping" />
+ <combo_box.item
+ label="Other"
+ value="other" />
+ </combo_box>
+ <button
+ follows="left|top"
+ height="18"
+ label="?"
+ label_selected="?"
+ layout="topleft"
+ left_pad="15"
+ name="?"
+ top_delta="0"
+ width="18" />
+ <check_box
+ height="16"
+ label="Mature Content"
+ layout="topleft"
+ left="14"
+ name="MatureCheck"
+ tool_tip=" "
+ top="144"
+ width="107" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="4"
+ name="Snapshot:"
+ top="164"
+ width="278">
+ Snapshot:
+ </text>
+ <texture_picker
+ follows="left|top"
+ height="135"
+ layout="topleft"
+ left_delta="72"
+ name="snapshot_ctrl"
+ tool_tip="Click to choose a picture"
+ top_delta="0"
+ width="180" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="4"
+ name="landing_point"
+ top="287"
+ width="278">
+ Landing Point: [LANDING]
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Set"
+ label_selected="Set"
+ layout="topleft"
+ left_delta="232"
+ name="Set"
+ tool_tip="Sets the landing point where visitors arrive. Sets to your avatar&apos;s location inside this parcel."
+ top_delta="0"
+ width="50" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Clear"
+ label_selected="Clear"
+ layout="topleft"
+ left_pad="5"
+ name="Clear"
+ tool_tip="Clear the landing point."
+ top_delta="0"
+ width="50" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="4"
+ name="Teleport Routing: "
+ top="307"
+ width="278">
+ Teleport Routing:
+ </text>
+ <combo_box
+ height="18"
+ layout="topleft"
+ left_delta="116"
+ name="landing type"
+ tool_tip="Teleport Routing -- select how to handle teleports onto your land."
+ top_delta="0"
+ width="120">
+ <combo_box.item
+ enabled="true"
+ label="Blocked"
+ value="Blocked" />
+ <combo_box.item
+ enabled="true"
+ label="Landing Point"
+ value="Landing Point" />
+ <combo_box.item
+ enabled="true"
+ label="Anywhere"
+ value="Anywhere" />
+ </combo_box>
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="363"
+ label="Media"
+ layout="topleft"
+ left_delta="0"
+ name="land_media_panel"
+ top_delta="1"
+ width="458">
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="with media:"
+ top="9"
+ width="65">
+ Media Type:
+ </text>
+ <combo_box
+ height="18"
+ layout="topleft"
+ left_pad="5"
+ name="media type"
+ tool_tip="Specify if the URL is a movie, web page, or other media"
+ top_delta="-2"
+ width="120" />
+ <text
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_pad="10"
+ name="mime_type"
+ top_delta="2"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="at URL:"
+ top="29"
+ width="65">
+ Media URL:
+ </text>
+ <line_editor
+ bottom_delta="0"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="80"
+ max_length="255"
+ name="media_url"
+ right="-80"
+ select_on_focus="true"
+ text_readonly_color="0.576471 0.662745 0.835294 1" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Set..."
+ label_selected="Set..."
+ layout="topleft"
+ left_pad="8"
+ name="set_media_url"
+ top_delta="0"
+ width="60" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="Description:"
+ top="49"
+ width="364">
+ Description:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ bottom_delta="0"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="80"
+ max_length="255"
+ name="url_description"
+ right="-80"
+ select_on_focus="true"
+ tool_tip="Text displayed next to play/load button" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="Media texture:"
+ top="69"
+ width="364">
+ Replace
+Texture:
+ </text>
+ <texture_picker
+ allow_no_texture="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="80"
+ layout="topleft"
+ left_delta="70"
+ name="media texture"
+ tool_tip="Click to choose a picture"
+ top_delta="0"
+ width="64" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="75"
+ name="replace_texture_help"
+ top="85"
+ width="270">
+ (Objects using this texture will show the movie or
+web page after you click the play arrow.)
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="Options:"
+ top="140"
+ width="292">
+ Media
+Options:
+ </text>
+ <check_box
+ height="16"
+ label="Auto scale"
+ layout="topleft"
+ left_delta="70"
+ name="media_auto_scale"
+ tool_tip="Checking this option will scale the content for this parcel automatically. It may be slightly slower and lower quality visually but no other texture scaling or alignment will be required."
+ top_delta="0"
+ width="200" />
+ <check_box
+ height="16"
+ label="Loop Media"
+ layout="topleft"
+ left_delta="170"
+ name="media_loop"
+ tool_tip="Play media in a loop. When the media has finished playing, it will restart from the beginning."
+ top_delta="0"
+ width="200" />
+ <check_box
+ height="16"
+ label="Hide Media URL"
+ layout="topleft"
+ left="80"
+ name="hide_media_url"
+ tool_tip="Checking this option will hide the media url to any non-authorized viewers of this parcel information. Note this is not available for HTML types."
+ top="160"
+ width="200" />
+ <check_box
+ height="16"
+ label="Hide Music URL"
+ layout="topleft"
+ left_delta="170"
+ name="hide_music_url"
+ tool_tip="Checking this option will hide the music url to any non-authorized viewers of this parcel information"
+ top_delta="0"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="85"
+ name="media_size"
+ tool_tip="Size to render Web media, leave 0 for default."
+ top="185"
+ width="85">
+ Media size:
+ </text>
+ <spinner
+ decimal_digits="0"
+ enabled="false"
+ follows="left|top"
+ halign="right"
+ height="16"
+ increment="1"
+ initial_value="0"
+ layout="topleft"
+ left_delta="65"
+ max_val="1024"
+ name="media_size_width"
+ tool_tip="Size to render Web media, leave 0 for default."
+ top_delta="0"
+ width="64" />
+ <spinner
+ decimal_digits="0"
+ enabled="false"
+ follows="left|top"
+ halign="right"
+ height="16"
+ increment="1"
+ initial_value="0"
+ layout="topleft"
+ left_pad="16"
+ max_val="1024"
+ name="media_size_height"
+ tool_tip="Size to render Web media, leave 0 for default."
+ top_delta="0"
+ width="64" />
+ <text
+ type="string"
+ length="1"
+ bottom_delta="0"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="70"
+ name="pixels"
+ right="-10">
+ pixels
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="MusicURL:"
+ top="225"
+ width="364">
+ Music URL:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ bottom_delta="0"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="80"
+ max_length="255"
+ name="music_url"
+ right="-15"
+ select_on_focus="true" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="Sound:"
+ top="265"
+ width="364">
+ Sound:
+ </text>
+ <check_box
+ height="16"
+ label="Restrict gesture and object sounds to this parcel"
+ layout="topleft"
+ left_delta="70"
+ name="check sound local"
+ top_delta="0"
+ width="292" />
+ <button
+ follows="left|top"
+ height="18"
+ label="?"
+ label_selected="?"
+ layout="topleft"
+ left_delta="292"
+ name="?"
+ top_delta="-2"
+ width="18" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ mouse_opaque="false"
+ name="Voice settings:"
+ top="305"
+ width="364">
+ Voice:
+ </text>
+ <check_box
+ height="54"
+ label="Enable Voice"
+ layout="topleft"
+ left="80"
+ name="parcel_enable_voice_channel"
+ top="267"
+ width="463" />
+ <check_box
+ enabled="false"
+ height="54"
+ label="Enable Voice (established by the Estate)"
+ layout="topleft"
+ left_delta="0"
+ name="parcel_enable_voice_channel_is_estate_disabled"
+ top_delta="0"
+ width="463" />
+ <check_box
+ height="54"
+ label="Restrict Voice to this parcel"
+ layout="topleft"
+ left="100"
+ name="parcel_enable_voice_channel_parcel"
+ top="287"
+ width="443" />
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="333"
+ label="Access"
+ layout="topleft"
+ left_delta="0"
+ name="land_access_panel"
+ top_delta="31"
+ width="458">
+ <panel.string
+ name="estate_override">
+ One or more of these options is set at the estate level
+ </panel.string>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left="8"
+ name="Limit access to this parcel to:"
+ top="4"
+ width="278">
+ Access To This Parcel
+ </text>
+ <check_box
+ follows="top|left"
+ height="16"
+ label="Allow Public Access"
+ layout="topleft"
+ left_delta="0"
+ name="public_access"
+ top_pad="5"
+ width="278" />
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ height="16"
+ layout="topleft"
+ left_delta="20"
+ name="Only Allow"
+ top="49"
+ width="278">
+ Block Access By:
+ </text>
+ <check_box
+ follows="top|left"
+ height="16"
+ label="Residents who have not given payment info to Linden Lab"
+ layout="topleft"
+ left_delta="0"
+ name="limit_payment"
+ tool_tip="Ban unidentified residents."
+ top_pad="4"
+ width="278" />
+ <check_box
+ follows="top|left"
+ height="16"
+ label="Residents who are not age verified adults"
+ layout="topleft"
+ left_delta="0"
+ name="limit_age_verified"
+ tool_tip="Ban residents who have not verified their age. See support.secondlife.com for more information."
+ top_pad="4"
+ width="278" />
+ <check_box
+ height="16"
+ label="Allow Group Access: [GROUP]"
+ layout="topleft"
+ left="8"
+ name="GroupCheck"
+ tool_tip="Set group in the General tab."
+ top="109"
+ width="278" />
+ <check_box
+ enabled="false"
+ height="16"
+ label="Sell passes to:"
+ layout="topleft"
+ left_delta="0"
+ name="PassCheck"
+ tool_tip="Allows temporary access to this parcel"
+ top_pad="4"
+ width="120" />
+ <combo_box
+ height="16"
+ layout="topleft"
+ left_pad="22"
+ name="pass_combo"
+ top_delta="0"
+ width="100">
+ <combo_box.item
+ label="Anyone"
+ value="anyone" />
+ <combo_box.item
+ label="Group"
+ value="group" />
+ </combo_box>
+ <spinner
+ enabled="false"
+ follows="left|top"
+ height="16"
+ increment="1"
+ initial_value="10"
+ label="Price in L$:"
+ label_width="120"
+ layout="topleft"
+ left="28"
+ max_val="500"
+ min_val="1"
+ name="PriceSpin"
+ top="149"
+ width="180" />
+ <spinner
+ enabled="false"
+ follows="left|top"
+ height="16"
+ increment="0.25"
+ initial_value="1"
+ label="Hours of access:"
+ label_width="120"
+ layout="topleft"
+ left_delta="0"
+ max_val="24"
+ min_val="0.01"
+ name="HoursSpin"
+ top_pad="4"
+ width="180" />
+ <text
+ type="string"
+ length="1"
+ follows="left|right|top"
+ height="16"
+ label="Always Allow"
+ layout="topleft"
+ left="20"
+ name="AllowedText"
+ top="204"
+ width="195">
+ Allowed Residents
+ </text>
+ <name_list
+ column_padding="0"
+ follows="top|bottom"
+ heading_height="14"
+ height="80"
+ layout="topleft"
+ left_delta="0"
+ multi_select="true"
+ name="AccessList"
+ tool_tip="([LISTED] listed, [MAX] max)"
+ top_pad="4"
+ width="195" />
+ <button
+ follows="bottom"
+ font="SansSerifSmall"
+ height="16"
+ label="Add..."
+ label_selected="Add..."
+ layout="topleft"
+ left_delta="5"
+ name="add_allowed"
+ top="308"
+ width="80" />
+ <button
+ follows="bottom"
+ font="SansSerifSmall"
+ height="16"
+ label="Remove"
+ label_selected="Remove"
+ layout="topleft"
+ left_pad="20"
+ name="remove_allowed"
+ top_delta="0"
+ width="80" />
+ <text
+ type="string"
+ length="1"
+ follows="left|right|top"
+ height="16"
+ label="Ban"
+ layout="topleft"
+ left="240"
+ name="BanCheck"
+ top="204"
+ width="195">
+ Banned Residents
+ </text>
+ <name_list
+ column_padding="0"
+ follows="top|bottom"
+ heading_height="14"
+ height="80"
+ layout="topleft"
+ left_delta="0"
+ multi_select="true"
+ name="BannedList"
+ tool_tip="([LISTED] listed, [MAX] max)"
+ top_pad="4"
+ width="195" />
+ <button
+ follows="bottom"
+ font="SansSerifSmall"
+ height="16"
+ label="Add..."
+ label_selected="Add..."
+ layout="topleft"
+ left_delta="5"
+ name="add_banned"
+ top="308"
+ width="80" />
+ <button
+ enabled="false"
+ follows="bottom"
+ font="SansSerifSmall"
+ height="16"
+ label="Remove"
+ label_selected="Remove"
+ layout="topleft"
+ left_pad="20"
+ name="remove_banned"
+ top_delta="0"
+ width="80" />
+ </panel>
+ </tab_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_animation_preview.xml b/indra/newview/skins/default/xui/en/floater_animation_preview.xml
new file mode 100644
index 0000000000..59d0d45425
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_animation_preview.xml
@@ -0,0 +1,475 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_minimize="false"
+ height="556"
+ layout="topleft"
+ name="Animation Preview"
+ width="300">
+ <floater.string
+ name="failed_to_initialize">
+ Failed to initialize motion
+ </floater.string>
+ <floater.string
+ name="anim_too_long">
+ Animation file is [LENGTH] seconds in length.
+
+Maximum animation length is [MAX_LENGTH] seconds.
+ </floater.string>
+ <floater.string
+ name="failed_file_read">
+ Unable to read animation file.
+
+[STATUS]
+ </floater.string>
+ <floater.string
+ name="E_ST_OK">
+ Ok
+ </floater.string>
+ <floater.string
+ name="E_ST_EOF">
+ Premature end of file.
+ </floater.string>
+ <floater.string
+ name="E_ST_NO_CONSTRAINT">
+ Cannot read constraint definition.
+ </floater.string>
+ <floater.string
+ name="E_ST_NO_FILE">
+ Cannot open BVH file.
+ </floater.string>
+ <floater.string
+ name="E_ST_NO_HIER">
+ Invalid HIERARCHY header.
+ </floater.string>
+ <floater.string
+ name="E_ST_NO_JOINT">
+ Cannot find ROOT or JOINT.
+ </floater.string>
+ <floater.string
+ name="E_ST_NO_NAME">
+ Cannot get JOINT name.
+ </floater.string>
+ <floater.string
+ name="E_ST_NO_OFFSET">
+ Cannot find OFFSET.
+ </floater.string>
+ <floater.string
+ name="E_ST_NO_CHANNELS">
+ Cannot find CHANNELS.
+ </floater.string>
+ <floater.string
+ name="E_ST_NO_ROTATION">
+ Cannot get rotation order.
+ </floater.string>
+ <floater.string
+ name="E_ST_NO_AXIS">
+ Cannot get rotation axis.
+ </floater.string>
+ <floater.string
+ name="E_ST_NO_MOTION">
+ Cannot find MOTION.
+ </floater.string>
+ <floater.string
+ name="E_ST_NO_FRAMES">
+ Cannot get number of frames.
+ </floater.string>
+ <floater.string
+ name="E_ST_NO_FRAME_TIME">
+ Cannot get frame time.
+ </floater.string>
+ <floater.string
+ name="E_ST_NO_POS">
+ Cannot get position values.
+ </floater.string>
+ <floater.string
+ name="E_ST_NO_ROT">
+ Cannot get rotation values.
+ </floater.string>
+ <floater.string
+ name="E_ST_NO_XLT_FILE">
+ Cannot open translation file.
+ </floater.string>
+ <floater.string
+ name="E_ST_NO_XLT_HEADER">
+ Cannot read translation header.
+ </floater.string>
+ <floater.string
+ name="E_ST_NO_XLT_NAME">
+ Cannot read translation names.
+ </floater.string>
+ <floater.string
+ name="E_ST_NO_XLT_IGNORE">
+ Cannot read translation ignore value.
+ </floater.string>
+ <floater.string
+ name="E_ST_NO_XLT_RELATIVE">
+ Cannot read translation relative value.
+ </floater.string>
+ <floater.string
+ name="E_ST_NO_XLT_OUTNAME">
+ Cannot read translation outname value.
+ </floater.string>
+ <floater.string
+ name="E_ST_NO_XLT_MATRIX">
+ Cannot read translation matrix.
+ </floater.string>
+ <floater.string
+ name="E_ST_NO_XLT_MERGECHILD">
+ Cannot get mergechild name.
+ </floater.string>
+ <floater.string
+ name="E_ST_NO_XLT_MERGEPARENT">
+ Cannot get mergeparent name.
+ </floater.string>
+ <floater.string
+ name="E_ST_NO_XLT_PRIORITY">
+ Cannot get priority value.
+ </floater.string>
+ <floater.string
+ name="E_ST_NO_XLT_LOOP">
+ Cannot get loop value.
+ </floater.string>
+ <floater.string
+ name="E_ST_NO_XLT_EASEIN">
+ Cannot get easeIn values.
+ </floater.string>
+ <floater.string
+ name="E_ST_NO_XLT_EASEOUT">
+ Cannot get easeOut values.
+ </floater.string>
+ <floater.string
+ name="E_ST_NO_XLT_HAND">
+ Cannot get hand morph value.
+ </floater.string>
+ <floater.string
+ name="E_ST_NO_XLT_EMOTE">
+ Cannot read emote name.
+ </floater.string>
+ <text
+ type="string"
+ length="1"
+ bottom="42"
+ follows="top|left"
+ height="15"
+ layout="topleft"
+ left="10"
+ name="name_label">
+ Name:
+ </text>
+ <line_editor
+ bottom_delta="2"
+ follows="top|left|right"
+ height="19"
+ layout="topleft"
+ left="85"
+ name="name_form"
+ right="-10" />
+ <text
+ type="string"
+ length="1"
+ bottom_delta="22"
+ follows="top|left"
+ height="15"
+ layout="topleft"
+ left="10"
+ name="description_label">
+ Description:
+ </text>
+ <line_editor
+ bottom_delta="2"
+ follows="top|left|right"
+ height="19"
+ layout="topleft"
+ left="85"
+ name="description_form"
+ right="-10" />
+ <spinner
+ decimal_digits="0"
+ follows="left|top"
+ height="18"
+ increment="1"
+ initial_value="0"
+ label="Priority"
+ label_width="50"
+ layout="topleft"
+ left="10"
+ max_val="4"
+ name="priority"
+ tool_tip="Controls which other animations can be overridden by this animation."
+ width="90" />
+ <check_box
+ bottom_delta="23"
+ height="18"
+ label="Loop"
+ layout="topleft"
+ left="10"
+ name="loop_check"
+ tool_tip="Makes this animation loop." />
+ <spinner
+ follows="left|top"
+ height="18"
+ increment="1"
+ initial_value="0"
+ label="In(%)"
+ label_width="30"
+ layout="topleft"
+ left_delta="70"
+ max_val="100"
+ name="loop_in_point"
+ tool_tip="Sets point in animation that looping returns to."
+ top_delta="2"
+ width="90" />
+ <spinner
+ bottom_delta="0"
+ follows="left|top"
+ height="18"
+ increment="1"
+ initial_value="0"
+ label="Out(%)"
+ layout="topleft"
+ left="185"
+ max_val="100"
+ name="loop_out_point"
+ tool_tip="Sets point in animation that ends a loop." />
+ <text
+ type="string"
+ length="1"
+ bottom_delta="20"
+ follows="top|left"
+ height="15"
+ layout="topleft"
+ left="10"
+ name="hand_label">
+ Hand Pose
+ </text>
+ <combo_box
+ height="18"
+ layout="topleft"
+ left_delta="76"
+ name="hand_pose_combo"
+ tool_tip="Controls what hands do during animation."
+ top_delta="-1"
+ width="104">
+ <combo_box.item
+ label="Spread"
+ value="" />
+ <combo_box.item
+ label="Relaxed"
+ value="Hands_Relaxed" />
+ <combo_box.item
+ label="Point Both"
+ value="Hands_Point" />
+ <combo_box.item
+ label="Fist"
+ value="Hands_Fist" />
+ <combo_box.item
+ label="Relaxed Left"
+ value="Hands_Relaxed_L" />
+ <combo_box.item
+ label="Point Left"
+ value="Hands_Point_L" />
+ <combo_box.item
+ label="Fist Left"
+ value="Hands_Fist_L" />
+ <combo_box.item
+ label="Relaxed Right"
+ value="Hands_Relaxed_R" />
+ <combo_box.item
+ label="Point Right"
+ value="Hands_Point_R" />
+ <combo_box.item
+ label="Fist Right"
+ value="Hands_Fist_R" />
+ <combo_box.item
+ label="Salute Right"
+ value="Hands_Salute_R" />
+ <combo_box.item
+ label="Typing"
+ value="Hands_Typing" />
+ <combo_box.item
+ label="Peace Right"
+ value="Hands_Peace_R" />
+ </combo_box>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="22"
+ follows="top|left"
+ height="15"
+ layout="topleft"
+ left="10"
+ name="emote_label">
+ Expression
+ </text>
+ <combo_box
+ height="18"
+ layout="topleft"
+ left_delta="76"
+ name="emote_combo"
+ tool_tip="Controls what face does during animation."
+ top_delta="-1"
+ width="104">
+ <combo_box.item
+ label="None]" />
+ <combo_box.item
+ label="Aaaaah" />
+ <combo_box.item
+ label="Afraid" />
+ <combo_box.item
+ label="Angry" />
+ <combo_box.item
+ label="Big Smile" />
+ <combo_box.item
+ label="Bored" />
+ <combo_box.item
+ label="Cry" />
+ <combo_box.item
+ label="Disdain" />
+ <combo_box.item
+ label="Embarrassed" />
+ <combo_box.item
+ label="Frown" />
+ <combo_box.item
+ label="Kiss" />
+ <combo_box.item
+ label="Laugh" />
+ <combo_box.item
+ label="Plllppt" />
+ <combo_box.item
+ label="Repulsed" />
+ <combo_box.item
+ label="Sad" />
+ <combo_box.item
+ label="Shrug" />
+ <combo_box.item
+ label="Smile" />
+ <combo_box.item
+ label="Surprise" />
+ <combo_box.item
+ label="Wink" />
+ <combo_box.item
+ label="Worry" />
+ </combo_box>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ height="15"
+ layout="topleft"
+ left="10"
+ name="preview_label"
+ top="167"
+ width="70">
+ Preview while
+ </text>
+ <combo_box
+ height="18"
+ layout="topleft"
+ left_pad="6"
+ name="preview_base_anim"
+ tool_tip="Use this to test your animation behavior while your avatar performs common actions."
+ top_delta="-1"
+ width="104">
+ <combo_box.item
+ label="Standing" />
+ <combo_box.item
+ label="Walking" />
+ <combo_box.item
+ label="Sitting" />
+ <combo_box.item
+ label="Flying" />
+ </combo_box>
+ <spinner
+ follows="left|top"
+ height="18"
+ increment="0.01"
+ initial_value="0"
+ label="Ease In (sec)"
+ label_width="65"
+ layout="topleft"
+ left="10"
+ max_val="10"
+ name="ease_in_time"
+ tool_tip="Amount of time (in seconds) over which animations blends in."
+ top="191"
+ width="125" />
+ <spinner
+ follows="left|top"
+ height="18"
+ increment="0.01"
+ initial_value="0"
+ label="Ease Out (sec)"
+ label_width="75"
+ layout="topleft"
+ left_pad="15"
+ max_val="10"
+ name="ease_out_time"
+ tool_tip="Amount of time (in seconds) over which animations blends out."
+ top_delta="0"
+ width="135" />
+ <button
+ follows="top|right"
+ height="28"
+ image_selected="button_anim_play_selected.tga"
+ image_unselected="button_anim_play.tga"
+ layout="topleft"
+ left="10"
+ name="play_btn"
+ picture_style="true"
+ tool_tip="Play/pause your animation."
+ top="223"
+ width="28" />
+ <button
+ follows="top|right"
+ height="28"
+ image_selected="button_anim_stop_selected.tga"
+ image_unselected="button_anim_stop.tga"
+ layout="topleft"
+ left_pad="4"
+ name="stop_btn"
+ picture_style="true"
+ tool_tip="Stop animation playback"
+ top_delta="0"
+ width="28" />
+ <slider
+ bottom_delta="0"
+ follows="top|right"
+ height="20"
+ increment="0.0001"
+ initial_value="0"
+ layout="topleft"
+ left="80"
+ name="playback_slider"
+ right="290"
+ show_text="false" />
+ <text
+ type="string"
+ length="1"
+ bottom="306"
+ follows="top|left"
+ layout="topleft"
+ left="10"
+ name="bad_animation_text">
+ Unable to read animation file.
+
+We recommend BVH files exported from Poser 4.
+ </text>
+ <button
+ bottom="546"
+ follows="bottom|right"
+ height="20"
+ label="Cancel"
+ layout="topleft"
+ name="cancel_btn"
+ right="290"
+ width="123" />
+ <button
+ follows="bottom|left"
+ height="20"
+ label="Upload (L$[AMOUNT])"
+ layout="topleft"
+ left_delta="-129"
+ name="ok_btn"
+ top_delta="0"
+ width="123" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_auction.xml b/indra/newview/skins/default/xui/en/floater_auction.xml
new file mode 100644
index 0000000000..076332e062
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_auction.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_resize="true"
+ height="368"
+ layout="topleft"
+ min_height="368"
+ min_width="420"
+ name="floater_auction"
+ title="Start Linden Land Sale"
+ width="420">
+ <floater.string
+ name="already for sale">
+ You cannot auction parcels which are already for sale.
+ </floater.string>
+ <icon
+ bottom="280"
+ follows="left|right|top|bottom"
+ layout="topleft"
+ left="4"
+ name="snapshot_icon"
+ right="-4"
+ top="24" />
+ <text
+ follows="left|right|bottom"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="parcel_text"
+ top_pad="12"
+ width="400" />
+ <check_box
+ control_name="AuctionShowFence"
+ follows="left|bottom"
+ height="16"
+ initial_value="true"
+ label="Include yellow selection fence"
+ layout="topleft"
+ left_delta="0"
+ name="fence_check"
+ top_pad="12"
+ width="199" />
+ <button
+ follows="left|bottom"
+ height="20"
+ label="Snapshot"
+ label_selected="Snapshot"
+ layout="topleft"
+ left_delta="0"
+ name="snapshot_btn"
+ top_pad="4"
+ width="96" >
+ <button.commit_callback
+ function="ClickSnapshot" />
+ </button>
+ <button
+ follows="left|bottom"
+ height="20"
+ label="OK"
+ label_selected="OK"
+ layout="topleft"
+ left_pad="4"
+ name="ok_btn"
+ top_delta="0"
+ width="48">
+ <button.commit_callback
+ function="ClickOK" />
+ </button>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_avatar_picker.xml b/indra/newview/skins/default/xui/en/floater_avatar_picker.xml
new file mode 100644
index 0000000000..0012294160
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_avatar_picker.xml
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_resize="true"
+ height="350"
+ layout="topleft"
+ min_height="200"
+ min_width="265"
+ name="avatarpicker"
+ title="Choose Resident"
+ width="265">
+ <floater.string
+ name="not_found">
+ &apos;[TEXT]&apos; not found
+ </floater.string>
+ <floater.string
+ name="no_one_near">
+ No-one near
+ </floater.string>
+ <floater.string
+ name="no_results">
+ No results
+ </floater.string>
+ <floater.string
+ name="searching">
+ Searching...
+ </floater.string>
+ <tab_container
+ follows="left|right|top|bottom"
+ height="300"
+ layout="topleft"
+ left="4"
+ name="ResidentChooserTabs"
+ tab_position="top"
+ tab_width="65"
+ top="20"
+ width="255">
+ <panel
+ border="true"
+ height="150"
+ label="Search"
+ layout="topleft"
+ left="6"
+ name="SearchPanel"
+ top="150"
+ width="134">
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="InstructSearchResidentName"
+ top="8"
+ width="220">
+ Type part of the resident&apos;s name:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top|right"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="Edit"
+ top_pad="4"
+ width="50" />
+ <button
+ follows="top|right"
+ height="20"
+ label="Find"
+ label_selected="Find"
+ layout="topleft"
+ left_pad="5"
+ name="Find"
+ top_delta="-1"
+ width="62" />
+ <scroll_list
+ follows="left|top|right|bottom"
+ height="90"
+ layout="topleft"
+ left="10"
+ name="SearchResults"
+ top="52"
+ width="115" />
+ </panel>
+ <panel
+ border="true"
+ height="150"
+ label="Calling Cards"
+ layout="topleft"
+ left_delta="-1"
+ name="CallingCardsPanel"
+ top_delta="134"
+ width="135">
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="InstructSelectCallingCard"
+ top="8"
+ width="220">
+ Select a calling card:
+ </text>
+ <inventory_panel
+ allow_multi_select="false"
+ border="true"
+ follows="left|top|right|bottom"
+ height="110"
+ layout="topleft"
+ left_delta="0"
+ name="InventoryPanel"
+ top_pad="7"
+ width="115" />
+ </panel>
+ <panel
+ border="true"
+ height="240"
+ label="Near Me"
+ layout="topleft"
+ left="6"
+ name="NearMePanel"
+ top="60"
+ width="135">
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="InstructSelectResident"
+ top="8"
+ width="220">
+ Select nearby resident:
+ </text>
+ <button
+ follows="top|right"
+ height="20"
+ label="Refresh List"
+ label_selected="Refresh List"
+ layout="topleft"
+ left_delta="25"
+ name="Refresh"
+ top_delta="-1"
+ width="90" />
+ <slider
+ control_name="NearMeRange"
+ decimal_digits="0"
+ follows="left|top"
+ height="15"
+ increment="1"
+ initial_value="20"
+ label="Range"
+ layout="topleft"
+ left="10"
+ max_val="40"
+ min_val="5"
+ name="near_me_range"
+ top="32"
+ width="175" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="15"
+ layout="topleft"
+ left_delta="175"
+ name="meters"
+ top_delta="0"
+ width="40">
+ Meters
+ </text>
+ <scroll_list
+ follows="left|top|right|bottom"
+ height="175"
+ layout="topleft"
+ left="10"
+ name="NearMe"
+ sort_column="0"
+ top="57"
+ width="115" />
+ </panel>
+ </tab_container>
+ <button
+ follows="left|bottom"
+ height="20"
+ label="Select"
+ label_selected="Select"
+ layout="topleft"
+ left="10"
+ name="Select"
+ top="324"
+ width="95" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Cancel"
+ label_selected="Cancel"
+ layout="topleft"
+ right="-10"
+ name="Cancel"
+ top_delta="0"
+ width="95" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_avatar_textures.xml b/indra/newview/skins/default/xui/en/floater_avatar_textures.xml
new file mode 100644
index 0000000000..9e2c8a44d1
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_avatar_textures.xml
@@ -0,0 +1,211 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ height="950"
+ layout="topleft"
+ name="avatar_texture_debug"
+ title="Avatar Textures"
+ width="960">
+ <floater.string
+ name="InvalidAvatar">
+ INVALID AVATAR
+ </floater.string>
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="label"
+ top="24"
+ width="80">
+ Baked Textures
+ </text>
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ left_pad="60"
+ name="composite_label"
+ top_delta="0"
+ width="120">
+ Composite Textures
+ </text>
+ <button
+ height="20"
+ label="Dump IDs to Console"
+ label_selected="Dump"
+ layout="topleft"
+ left_pad="530"
+ name="Dump"
+ top_delta="1"
+ width="150" />
+ <texture_picker
+ height="143"
+ label="Hair"
+ layout="topleft"
+ left="10"
+ name="hair-baked"
+ top="47"
+ width="128" />
+ <texture_picker
+ height="143"
+ label="Hair"
+ layout="topleft"
+ left_pad="7"
+ name="hair"
+ top_delta="0"
+ width="128" />
+ <texture_picker
+ height="143"
+ label="Head"
+ layout="topleft"
+ left="10"
+ name="head-baked"
+ top="197"
+ width="128" />
+ <texture_picker
+ height="143"
+ label="Makeup"
+ layout="topleft"
+ left_pad="7"
+ name="head bodypaint"
+ top_delta="0"
+ width="128" />
+ <texture_picker
+ height="143"
+ label="Eyes"
+ layout="topleft"
+ left="10"
+ name="eyes-baked"
+ top="347"
+ width="128" />
+ <texture_picker
+ height="143"
+ label="Eye"
+ layout="topleft"
+ left_pad="7"
+ name="iris"
+ top_delta="0"
+ width="128" />
+ <texture_picker
+ height="143"
+ label="Upper Body"
+ layout="topleft"
+ left="10"
+ name="upper-baked"
+ top="497"
+ width="128" />
+ <texture_picker
+ height="143"
+ label="Upper Body Tattoo"
+ layout="topleft"
+ left_pad="7"
+ name="upper bodypaint"
+ top_delta="0"
+ width="128" />
+ <texture_picker
+ height="143"
+ label="Undershirt"
+ layout="topleft"
+ left_pad="7"
+ name="undershirt"
+ top_delta="0"
+ width="128" />
+ <texture_picker
+ height="143"
+ label="Gloves"
+ layout="topleft"
+ left_pad="7"
+ name="gloves"
+ top_delta="0"
+ width="128" />
+ <texture_picker
+ height="143"
+ label="Shirt"
+ layout="topleft"
+ left_pad="7"
+ name="shirt"
+ top_delta="0"
+ width="128" />
+ <texture_picker
+ height="143"
+ label="Upper Jacket"
+ layout="topleft"
+ left_pad="7"
+ name="upper jacket"
+ top_delta="0"
+ width="128" />
+ <texture_picker
+ height="143"
+ label="Lower Body"
+ layout="topleft"
+ left="10"
+ name="lower-baked"
+ top="647"
+ width="128" />
+ <texture_picker
+ height="143"
+ label="Lower Body Tattoo"
+ layout="topleft"
+ left_pad="7"
+ name="lower bodypaint"
+ top_delta="0"
+ width="128" />
+ <texture_picker
+ height="143"
+ label="Underpants"
+ layout="topleft"
+ left_pad="7"
+ name="underpants"
+ top_delta="0"
+ width="128" />
+ <texture_picker
+ height="143"
+ label="Socks"
+ layout="topleft"
+ left_pad="7"
+ name="socks"
+ top_delta="0"
+ width="128" />
+ <texture_picker
+ height="143"
+ label="Shoes"
+ layout="topleft"
+ left_pad="7"
+ name="shoes"
+ top_delta="0"
+ width="128" />
+ <texture_picker
+ height="143"
+ label="Pants"
+ layout="topleft"
+ left_pad="7"
+ name="pants"
+ top_delta="0"
+ width="128" />
+ <texture_picker
+ height="143"
+ label="Jacket"
+ layout="topleft"
+ left_pad="7"
+ name="lower jacket"
+ top_delta="0"
+ width="128" />
+ <texture_picker
+ height="143"
+ label="Skirt"
+ layout="topleft"
+ left="10"
+ name="skirt-baked"
+ top="797"
+ width="128" />
+ <texture_picker
+ height="143"
+ label="Skirt"
+ layout="topleft"
+ left_pad="7"
+ name="skirt"
+ top_delta="0"
+ width="128" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_beacons.xml b/indra/newview/skins/default/xui/en/floater_beacons.xml
new file mode 100644
index 0000000000..41ddec6395
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_beacons.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ control_name="BeaconAlwaysOn"
+ height="225"
+ layout="topleft"
+ name="beacons"
+ save_rect="true"
+ title="Beacons"
+ width="250">
+ <panel
+ follows="left|top|right|bottom"
+ height="200"
+ layout="topleft"
+ left="10"
+ name="beacons_panel"
+ top="15"
+ width="230">
+ <check_box
+ bottom_delta="33"
+ control_name="scripttouchbeacon"
+ label="Scripted Objects with Touch Only"
+ layout="topleft"
+ name="touch_only" />
+ <check_box
+ bottom_delta="20"
+ control_name="scriptsbeacon"
+ label="Scripted Objects"
+ layout="topleft"
+ name="scripted" />
+ <check_box
+ bottom_delta="20"
+ control_name="physicalbeacon"
+ label="Physical Objects"
+ layout="topleft"
+ name="physical" />
+ <check_box
+ bottom_delta="20"
+ control_name="soundsbeacon"
+ label="Sound Sources"
+ layout="topleft"
+ name="sounds" />
+ <check_box
+ bottom_delta="20"
+ control_name="particlesbeacon"
+ label="Particle Sources"
+ layout="topleft"
+ name="particles" />
+ <check_box
+ bottom_delta="20"
+ control_name="renderhighlights"
+ label="Render Highlights"
+ layout="topleft"
+ name="highlights" />
+ <check_box
+ bottom_delta="20"
+ control_name="renderbeacons"
+ label="Render Beacons"
+ layout="topleft"
+ name="beacons" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left="5"
+ name="beacon_width_label"
+ top="171"
+ width="128">
+ Beacon Width:
+ </text>
+ <slider
+ control_name="DebugBeaconLineWidth"
+ decimal_digits="0"
+ height="16"
+ increment="1"
+ initial_value="1"
+ layout="topleft"
+ left="30"
+ max_val="16"
+ min_val="1"
+ name="beacon_width"
+ top="187"
+ width="185" />
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_build_options.xml b/indra/newview/skins/default/xui/en/floater_build_options.xml
new file mode 100644
index 0000000000..af5c006779
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_build_options.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ follows="right"
+ height="151"
+ layout="topleft"
+ name="build options floater"
+ save_rect="true"
+ title="Grid Options"
+ width="272">
+ <spinner
+ control_name="GridResolution"
+ follows="left|top"
+ height="16"
+ initial_value="1"
+ label="Grid Unit (meters)"
+ label_width="110"
+ layout="topleft"
+ left="14"
+ max_val="5"
+ min_val="0.01"
+ name="GridResolution"
+ top="37"
+ width="170" />
+ <spinner
+ control_name="GridDrawSize"
+ decimal_digits="1"
+ follows="left|top"
+ height="16"
+ increment="0.5"
+ initial_value="5"
+ label="Grid Extents (meters)"
+ label_width="110"
+ layout="topleft"
+ left_delta="0"
+ max_val="50"
+ min_val="1"
+ name="GridDrawSize"
+ top_pad="5"
+ width="170" />
+ <check_box
+ control_name="GridSubUnit"
+ height="16"
+ label="Enable Sub-Unit Snapping"
+ layout="topleft"
+ left_delta="0"
+ name="GridSubUnit"
+ top_pad="5"
+ width="200" />
+ <check_box
+ control_name="GridCrossSections"
+ height="16"
+ label="Show Cross Sections"
+ layout="topleft"
+ left_delta="0"
+ name="GridCrossSection"
+ top_pad="5"
+ width="200" />
+ <slider
+ control_name="GridOpacity"
+ follows="left"
+ height="16"
+ increment="0.05"
+ initial_value="0.7"
+ label="Grid Opacity"
+ layout="topleft"
+ left_delta="0"
+ name="GridOpacity"
+ show_text="false"
+ top_pad="5"
+ width="200" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_bulk_perms.xml b/indra/newview/skins/default/xui/en/floater_bulk_perms.xml
new file mode 100644
index 0000000000..cf75da078e
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_bulk_perms.xml
@@ -0,0 +1,337 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_tear_off="false"
+ height="340"
+ layout="topleft"
+ name="floaterbulkperms"
+ title="Bulk change content permissions"
+ width="480">
+ <floater.string
+ name="nothing_to_modify_text">
+ Selection contains no editable contents.
+ </floater.string>
+ <floater.string
+ name="status_text">
+ Setting permissions on [NAME]
+ </floater.string>
+ <floater.string
+ name="start_text">
+ Starting permission change requests...
+ </floater.string>
+ <floater.string
+ name="done_text">
+ Finished permission change requests.
+ </floater.string>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="10"
+ layout="topleft"
+ left="10"
+ name="applyto"
+ top="30"
+ width="206">
+ Content Types
+ </text>
+ <icon
+ height="16"
+ image_name="inv_item_animation.tga"
+ layout="topleft"
+ left_delta="2"
+ mouse_opaque="true"
+ name="icon_animation"
+ top_pad="14"
+ width="16" />
+ <check_box
+ control_name="BulkChangeIncludeAnimations"
+ height="16"
+ label="Animation"
+ layout="topleft"
+ left_pad="2"
+ name="check_animation"
+ top_delta="0"
+ width="126" />
+ <icon
+ height="16"
+ image_name="inv_folder_bodypart.tga"
+ layout="topleft"
+ left="12"
+ mouse_opaque="true"
+ name="icon_bodypart"
+ top="74"
+ width="16" />
+ <check_box
+ control_name="BulkChangeIncludeBodyParts"
+ height="16"
+ label="Body Parts"
+ layout="topleft"
+ left_pad="2"
+ name="check_bodypart"
+ top_delta="0"
+ width="126" />
+ <icon
+ height="16"
+ image_name="inv_item_shirt.tga"
+ layout="topleft"
+ left="12"
+ mouse_opaque="true"
+ name="icon_clothing"
+ top="94"
+ width="16" />
+ <check_box
+ control_name="BulkChangeIncludeClothing"
+ height="16"
+ label="Clothing"
+ layout="topleft"
+ left_pad="2"
+ name="check_clothing"
+ top_delta="0"
+ width="126" />
+ <icon
+ height="16"
+ image_name="inv_item_gesture.tga"
+ layout="topleft"
+ left="12"
+ mouse_opaque="true"
+ name="icon_gesture"
+ top="114"
+ width="16" />
+ <check_box
+ control_name="BulkChangeIncludeGestures"
+ height="16"
+ label="Gestures"
+ layout="topleft"
+ left_pad="2"
+ name="check_gesture"
+ top_delta="0"
+ width="126" />
+ <icon
+ height="16"
+ image_name="inv_item_landmark_visited.tga"
+ layout="topleft"
+ left="12"
+ mouse_opaque="true"
+ name="icon_landmark"
+ top="134"
+ width="16" />
+ <check_box
+ control_name="BulkChangeIncludeLandmarks"
+ height="16"
+ label="Landmarks"
+ layout="topleft"
+ left_pad="2"
+ name="check_landmark"
+ top_delta="0"
+ width="126" />
+ <icon
+ height="16"
+ image_name="inv_item_notecard.tga"
+ layout="topleft"
+ left="12"
+ mouse_opaque="true"
+ name="icon_notecard"
+ top="154"
+ width="16" />
+ <check_box
+ control_name="BulkChangeIncludeNotecards"
+ height="16"
+ label="Notecards"
+ layout="topleft"
+ left_pad="2"
+ name="check_notecard"
+ top_delta="0"
+ width="126" />
+ <icon
+ height="16"
+ image_name="inv_item_object.tga"
+ layout="topleft"
+ left="12"
+ mouse_opaque="true"
+ name="icon_object"
+ top="174"
+ width="16" />
+ <check_box
+ control_name="BulkChangeIncludeObjects"
+ height="16"
+ label="Objects"
+ layout="topleft"
+ left_pad="2"
+ name="check_object"
+ top_delta="0"
+ width="126" />
+ <icon
+ height="16"
+ image_name="inv_item_script.tga"
+ layout="topleft"
+ left="12"
+ mouse_opaque="true"
+ name="icon_script"
+ top="194"
+ width="16" />
+ <check_box
+ control_name="BulkChangeIncludeScripts"
+ height="16"
+ label="Scripts"
+ layout="topleft"
+ left_pad="2"
+ name="check_script"
+ top_delta="0"
+ width="126" />
+ <icon
+ height="16"
+ image_name="inv_item_sound.tga"
+ layout="topleft"
+ left="12"
+ mouse_opaque="true"
+ name="icon_sound"
+ top="214"
+ width="16" />
+ <check_box
+ control_name="BulkChangeIncludeSounds"
+ height="16"
+ label="Sounds"
+ layout="topleft"
+ left_pad="2"
+ name="check_sound"
+ top_delta="0"
+ width="126" />
+ <icon
+ height="16"
+ image_name="inv_item_texture.tga"
+ layout="topleft"
+ left="12"
+ mouse_opaque="true"
+ name="icon_texture"
+ top="234"
+ width="16" />
+ <check_box
+ control_name="BulkChangeIncludeTextures"
+ height="16"
+ label="Textures"
+ layout="topleft"
+ left_pad="2"
+ name="check_texture"
+ top_delta="0"
+ width="126" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Check All"
+ label_selected="All"
+ layout="topleft"
+ left="8"
+ name="check_all"
+ top="257"
+ width="100" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Uncheck All"
+ label_selected="None"
+ layout="topleft"
+ left_delta="0"
+ name="check_none"
+ top_pad="4"
+ width="100" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="10"
+ layout="topleft"
+ left="165"
+ name="newperms"
+ top="30"
+ width="206">
+ New Permissions
+ </text>
+ <check_box
+ control_name="BulkChangeShareWithGroup"
+ height="16"
+ label="Share with group"
+ layout="topleft"
+ left="170"
+ name="share_with_group"
+ top="54"
+ width="106" />
+ <check_box
+ control_name="BulkChangeEveryoneCopy"
+ height="16"
+ label="Allow anyone to copy"
+ layout="topleft"
+ left_delta="0"
+ name="everyone_copy"
+ top_pad="16"
+ width="130" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="0"
+ name="NextOwnerLabel"
+ top_pad="16"
+ width="88">
+ Next owner can:
+ </text>
+ <check_box
+ control_name="BulkChangeNextOwnerModify"
+ height="16"
+ label="Modify"
+ layout="topleft"
+ left_delta="0"
+ name="next_owner_modify"
+ top_pad="14"
+ width="78" />
+ <check_box
+ control_name="BulkChangeNextOwnerCopy"
+ height="16"
+ label="Copy"
+ layout="topleft"
+ left_delta="78"
+ name="next_owner_copy"
+ top_delta="0"
+ width="88" />
+ <check_box
+ control_name="BulkChangeNextOwnerTransfer"
+ enabled="false"
+ height="16"
+ initial_value="true"
+ label="Resell/Give away"
+ layout="topleft"
+ left_delta="88"
+ name="next_owner_transfer"
+ top_delta="0"
+ width="106" />
+ <scroll_list
+ enabled="false"
+ follows="left|top|right|bottom"
+ height="130"
+ layout="topleft"
+ left="130"
+ name="queue output"
+ top="170"
+ width="335" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Apply"
+ layout="topleft"
+ left="265"
+ name="apply"
+ top="310"
+ width="100" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Close"
+ layout="topleft"
+ left_pad="5"
+ name="close"
+ top_delta="0"
+ width="100" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_bumps.xml b/indra/newview/skins/default/xui/en/floater_bumps.xml
new file mode 100644
index 0000000000..4fb2fe24cc
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_bumps.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ height="180"
+ layout="topleft"
+ name="floater_bumps"
+ save_rect="true"
+ title="Bumps, Pushes &amp; Hits"
+ width="400">
+ <floater.string
+ name="none_detected">
+ None detected
+ </floater.string>
+ <floater.string
+ name="bump">
+ [TIME] [FIRST] [LAST] bumped you
+ </floater.string>
+ <floater.string
+ name="llpushobject">
+ [TIME] [FIRST] [LAST] pushed you with a script
+ </floater.string>
+ <floater.string
+ name="selected_object_collide">
+ [TIME] [FIRST] [LAST] hit you with an object
+ </floater.string>
+ <floater.string
+ name="scripted_object_collide">
+ [TIME] [FIRST] [LAST] hit you with a scripted object
+ </floater.string>
+ <floater.string
+ name="physical_object_collide">
+ [TIME] [FIRST] [LAST] hit you with a physical object
+ </floater.string>
+ <floater.string
+ name="timeStr">
+ [[hour,datetime,slt]:[min,datetime,slt]]
+ </floater.string>
+ <scroll_list
+ draw_border="false"
+ follows="left|top|right|bottom"
+ height="152"
+ layout="topleft"
+ left="6"
+ multi_select="true"
+ name="bump_list"
+ top="20"
+ width="388" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_buy_contents.xml b/indra/newview/skins/default/xui/en/floater_buy_contents.xml
new file mode 100644
index 0000000000..174337480a
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_buy_contents.xml
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_resize="true"
+ height="250"
+ layout="topleft"
+ min_height="150"
+ min_width="200"
+ name="floater_buy_contents"
+ save_rect="true"
+ title="Buy Contents"
+ width="300">
+ <floater.string
+ name="no_copy_text">
+ (no copy)
+ </floater.string>
+ <floater.string
+ name="no_modify_text">
+ (no modify)
+ </floater.string>
+ <floater.string
+ name="no_transfer_text">
+ (no transfer)
+ </floater.string>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="15"
+ name="contains_text"
+ top="24"
+ width="281">
+ [NAME] contains:
+ </text>
+ <scroll_list
+ follows="left|top|right|bottom"
+ height="148"
+ layout="topleft"
+ left_delta="0"
+ name="item_list"
+ top_pad="4"
+ width="281">
+ <scroll_list.columns
+ name="icon"
+ width="16" />
+ <scroll_list.columns
+ name="text"
+ relative_width="1" />
+ </scroll_list>
+ <text
+ type="string"
+ length="1"
+ follows="left|right|bottom"
+ font="SansSerif"
+ height="24"
+ layout="topleft"
+ left_delta="0"
+ name="buy_text"
+ top_pad="4"
+ width="281">
+ Buy for L$[AMOUNT] from [NAME]?
+ </text>
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Cancel"
+ label_selected="Cancel"
+ layout="topleft"
+ left="216"
+ name="cancel_btn"
+ top="224"
+ width="60" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Buy"
+ label_selected="Buy"
+ layout="topleft"
+ left_delta="-64"
+ name="buy_btn"
+ top_delta="0"
+ width="60" />
+ <check_box
+ follows="left|bottom"
+ height="20"
+ label="Wear clothing now"
+ layout="topleft"
+ left_delta="-139"
+ name="wear_check"
+ top_delta="0"
+ width="135" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_buy_currency.xml b/indra/newview/skins/default/xui/en/floater_buy_currency.xml
new file mode 100644
index 0000000000..245d84fff4
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_buy_currency.xml
@@ -0,0 +1,294 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_minimize="false"
+ height="270"
+ layout="topleft"
+ name="buy currency"
+ title="Buy Currency"
+ width="350">
+ <floater.string
+ name="buy_currency">
+ Buy L$ [LINDENS] for approx. US$ [USD]
+ </floater.string>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="48"
+ follows="top|left"
+ font="SansSerifHuge"
+ height="24"
+ layout="topleft"
+ left="16"
+ name="info_buying"
+ right="-20">
+ Buying Currency:
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="0"
+ follows="top|left"
+ font="SansSerifHuge"
+ height="24"
+ layout="topleft"
+ left="16"
+ name="info_cannot_buy"
+ right="-20">
+ Cannot buy now:
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="0"
+ follows="top|left"
+ font="SansSerifHuge"
+ height="24"
+ layout="topleft"
+ left="16"
+ name="info_need_more"
+ right="-20">
+ You need more currency:
+ </text>
+ <icon
+ follows="top|left"
+ height="64"
+ image_name="badge_note.j2c"
+ layout="topleft"
+ left="0"
+ name="step_error"
+ top="48"
+ width="64" />
+ <text
+ type="string"
+ length="1"
+ bottom_delta="96"
+ follows="top|left"
+ height="140"
+ layout="topleft"
+ left="72"
+ name="error_message"
+ right="-20">
+ Something ain&apos;t right.
+ </text>
+ <button
+ follows="bottom|left"
+ height="20"
+ label="Go to website"
+ layout="topleft"
+ left_delta="0"
+ name="error_web"
+ top_delta="124"
+ width="120" />
+ <icon
+ follows="top|left"
+ height="64"
+ image_name="badge_note.j2c"
+ layout="topleft"
+ left="0"
+ name="step_1"
+ top="48"
+ width="64" />
+ <text
+ type="string"
+ length="1"
+ bottom_delta="-38"
+ follows="top|left"
+ height="16"
+ layout="topleft"
+ left="72"
+ name="contacting"
+ right="-20">
+ Contacting LindeX...
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="0"
+ follows="top|left"
+ height="16"
+ layout="topleft"
+ left="72"
+ name="buy_action_unknown"
+ right="-20">
+ Buy L$ on the LindeX currency exchange
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="0"
+ follows="top|left"
+ height="16"
+ layout="topleft"
+ left="72"
+ name="buy_action"
+ right="-20">
+ [NAME] L$ [PRICE]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="currency_action"
+ top_pad="4"
+ width="40">
+ Buy L$
+ </text>
+ <line_editor
+ type="string"
+ length="1"
+ follows="top|right"
+ height="16"
+ layout="topleft"
+ left_pad="5"
+ name="currency_amt"
+ top_delta="0"
+ width="80">
+ 1234
+ </line_editor>
+ <text
+ type="string"
+ length="1"
+ follows="top|right"
+ height="16"
+ layout="topleft"
+ left_pad="5"
+ name="currency_est"
+ top_delta="0"
+ width="180">
+ for approx. US$ [USD,number,2]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="top|right"
+ height="16"
+ layout="topleft"
+ left_delta="5"
+ name="getting_data"
+ top_delta="0"
+ width="180">
+ Getting data...
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ height="16"
+ layout="topleft"
+ left="80"
+ name="balance_label"
+ top="110"
+ width="240">
+ You currently have
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ halign="right"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="balance_amount"
+ top_delta="0"
+ width="240">
+ L$ [AMT]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="buying_label"
+ top_pad="4"
+ width="240">
+ You are buying
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ halign="right"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="buying_amount"
+ top_delta="0"
+ width="240">
+ L$ [AMT]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="total_label"
+ top_pad="4"
+ width="240">
+ Your balance will be
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ halign="right"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="total_amount"
+ top_delta="0"
+ width="240">
+ L$ [AMT]
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="48"
+ follows="top|left"
+ height="32"
+ layout="topleft"
+ left="72"
+ name="purchase_warning_repurchase"
+ right="-20">
+ Confirming this purchase only buys the currency.
+You&apos;ll need to try the operation again.
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="0"
+ follows="top|left"
+ height="32"
+ layout="topleft"
+ left="72"
+ name="purchase_warning_notenough"
+ right="-20">
+ You aren&apos;t buying enough currency
+Increase the amount to buy.
+ </text>
+ <button
+ follows="bottom|right"
+ height="20"
+ label="Cancel"
+ layout="topleft"
+ left="237"
+ name="cancel_btn"
+ top="234"
+ width="90" />
+ <button
+ follows="bottom|left"
+ height="20"
+ label="Purchase"
+ layout="topleft"
+ left_delta="-96"
+ name="buy_btn"
+ top_delta="0"
+ width="90" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_buy_land.xml b/indra/newview/skins/default/xui/en/floater_buy_land.xml
new file mode 100644
index 0000000000..e11534cc13
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_buy_land.xml
@@ -0,0 +1,696 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_minimize="false"
+ height="484"
+ layout="topleft"
+ name="buy land"
+ title="Buy Land"
+ width="740">
+ <floater.string
+ name="can_resell">
+ May be resold.
+ </floater.string>
+ <floater.string
+ name="can_not_resell">
+ May not be resold.
+ </floater.string>
+ <floater.string
+ name="can_change">
+ May be joined or subdivided.
+ </floater.string>
+ <floater.string
+ name="can_not_change">
+ May not be joined or subdivided.
+ </floater.string>
+ <floater.string
+ name="cant_buy_for_group">
+ You do not have permission to buy land for your active group.
+ </floater.string>
+ <floater.string
+ name="no_land_selected">
+ No land selected.
+ </floater.string>
+ <floater.string
+ name="multiple_parcels_selected">
+ Multiple different parcels selected.
+Try selecting a smaller area.
+ </floater.string>
+ <floater.string
+ name="no_permission">
+ You do not have permission to buy land for your active group.
+ </floater.string>
+ <floater.string
+ name="parcel_not_for_sale">
+ The selected parcel is not for sale.
+ </floater.string>
+ <floater.string
+ name="group_already_owns">
+ The group already owns the parcel.
+ </floater.string>
+ <floater.string
+ name="you_already_own">
+ You already own the parcel.
+ </floater.string>
+ <floater.string
+ name="set_to_sell_to_other">
+ The selected parcel is set to sell to another party.
+ </floater.string>
+ <floater.string
+ name="no_public_land">
+ The selected area has no public land.
+ </floater.string>
+ <floater.string
+ name="not_owned_by_you">
+ Land owned by another user is selected.
+Try selecting a smaller area.
+ </floater.string>
+ <floater.string
+ name="processing">
+ Processing your purchase...
+
+(This may take a minute or two.)
+ </floater.string>
+ <floater.string
+ name="fetching_error">
+ There has been an error while fetching land buying information.
+ </floater.string>
+ <floater.string
+ name="buying_will">
+ Buying this land will:
+ </floater.string>
+ <floater.string
+ name="buying_for_group">
+ Buying land for group will:
+ </floater.string>
+ <floater.string
+ name="cannot_buy_now">
+ Cannot buy now:
+ </floater.string>
+ <floater.string
+ name="not_for_sale">
+ Not for sale:
+ </floater.string>
+ <floater.string
+ name="none_needed">
+ none needed
+ </floater.string>
+ <floater.string
+ name="must_upgrade">
+ Your account must be upgraded to own land.
+ </floater.string>
+ <floater.string
+ name="cant_own_land">
+ Your account can own land.
+ </floater.string>
+ <floater.string
+ name="land_holdings">
+ You hold [BUYER] sq.m. of land.
+ </floater.string>
+ <floater.string
+ name="pay_to_for_land">
+ Pay L$ [AMOUNT] to [SELLER] for this land
+ </floater.string>
+ <floater.string
+ name="buy_for_US">
+ Buy L$ [AMOUNT] for approx. US$ [AMOUNT2],
+ </floater.string>
+ <floater.string
+ name="parcel_meters">
+ This parcel is [AMOUNT] sq.m.
+ </floater.string>
+ <floater.string
+ name="premium_land">
+ This land is premium, and will charge as [AMOUNT] sq.m.
+ </floater.string>
+ <floater.string
+ name="discounted_land">
+ This land is discounted, and will charge as [AMOUNT] sq.m.
+ </floater.string>
+ <floater.string
+ name="meters_supports_object">
+ [AMOUNT] sq.m.
+supports [AMOUNT2] objects
+ </floater.string>
+ <floater.string
+ name="sold_with_objects">
+ sold with objects
+ </floater.string>
+ <floater.string
+ name="sold_without_objects">
+ objects not included
+ </floater.string>
+ <floater.string
+ name="info_price_string">
+ L$ [PRICE]
+(L$ [PRICE_PER_SQM]/sq.m.)
+[SOLD_WITH_OBJECTS]
+ </floater.string>
+ <floater.string
+ name="insufficient_land_credits">
+ The group [GROUP] will need sufficient contributed land use credits to cover this parcel before the purchase will complete.
+ </floater.string>
+ <floater.string
+ name="have_enough_lindens">
+ You have L$ [AMOUNT], which is enough to buy this land.
+ </floater.string>
+ <floater.string
+ name="not_enough_lindens">
+ You have only L$ [AMOUNT], and need L$ [AMOUNT2] more.
+ </floater.string>
+ <floater.string
+ name="balance_left">
+ After the purchase, you will have L$ [AMOUNT] left.
+ </floater.string>
+ <floater.string
+ name="balance_needed">
+ You need to buy at least L$ [AMOUNT] to afford this land.
+ </floater.string>
+ <floater.string
+ name="no_parcel_selected">
+ (no parcel selected)
+ </floater.string>
+ <floater.string
+ name="buy_currency">
+ Buy L$ [LINDENS] for approx. US$ [USD]
+ </floater.string>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="14"
+ layout="topleft"
+ left="440"
+ name="region_name_label"
+ right="550"
+ top="21"
+ width="60"
+ word_wrap="true">
+ Region:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="14"
+ layout="topleft"
+ left_delta="110"
+ name="region_name_text"
+ top_delta="0"
+ width="175">
+ (unknown)
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="14"
+ layout="topleft"
+ left="440"
+ name="region_type_label"
+ right="550"
+ width="60"
+ word_wrap="true">
+ Type:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="14"
+ layout="topleft"
+ left_delta="110"
+ name="region_type_text"
+ top_delta="0"
+ width="175">
+ (unknown)
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="14"
+ layout="topleft"
+ left="440"
+ name="estate_name_label"
+ right="550"
+ width="60"
+ word_wrap="true">
+ Estate:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="14"
+ layout="topleft"
+ left_delta="110"
+ name="estate_name_text"
+ top_delta="0"
+ width="175">
+ (unknown)
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="440"
+ name="estate_owner_label"
+ right="550"
+ width="100"
+ word_wrap="true">
+ Estate Owner:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_delta="110"
+ name="estate_owner_text"
+ top_delta="0"
+ width="175">
+ (unknown)
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="440"
+ name="resellable_changeable_label"
+ right="725"
+ width="260"
+ word_wrap="true">
+ Purchased land in this region:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="470"
+ name="resellable_clause"
+ right="725"
+ width="260"
+ word_wrap="true">
+ May or may not be resold.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="470"
+ name="changeable_clause"
+ right="725"
+ width="260"
+ word_wrap="true">
+ May or may not be joined or subdivided.
+ </text>
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ left="440"
+ name="covenant_text"
+ right="725"
+ width="260">
+ You must agree to the Estate Covenant:
+ </text>
+ <text
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left="500"
+ name="covenant_timestamp_text"
+ right="725"
+ top="175"
+ width="275"
+ word_wrap="true" />
+ <text_editor
+ type="string"
+ length="1"
+ enabled="false"
+ follows="top|right"
+ height="237"
+ layout="topleft"
+ left="444"
+ max_length="65535"
+ name="covenant_editor"
+ right="725"
+ top="192"
+ width="271"
+ word_wrap="true">
+ Loading...
+ </text_editor>
+ <check_box
+ height="20"
+ label="I Agree to the Covenant Defined Above."
+ layout="topleft"
+ left="440"
+ name="agree_covenant"
+ right="725"
+ width="275" />
+ <texture_picker
+ enabled="false"
+ follows="top|left"
+ height="135"
+ layout="topleft"
+ left="16"
+ name="info_image"
+ top="28"
+ width="180" />
+ <text
+ type="string"
+ length="1"
+ bottom_delta="-119"
+ follows="top|left"
+ layout="topleft"
+ left="204"
+ name="info_parcel_label"
+ width="48">
+ Parcel:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="16"
+ name="info_parcel"
+ top_delta="-1"
+ width="180">
+ Scotopteryx 138,204
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ layout="topleft"
+ left="204"
+ name="info_size_label"
+ width="48">
+ Size:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ font="SansSerif"
+ height="32"
+ layout="topleft"
+ left_delta="16"
+ name="info_size"
+ top_delta="-1"
+ width="180">
+ 1024 sq.m.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ layout="topleft"
+ left="204"
+ name="info_price_label"
+ width="48">
+ Price:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="16"
+ name="info_price"
+ top_delta="-1"
+ width="180">
+ L$ 1500
+(L$ 1.1/sq.m.)
+sold with objects
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ font="SansSerifHuge"
+ height="24"
+ layout="topleft"
+ left="16"
+ name="info_action"
+ top="156"
+ width="350">
+ Buying this land will:
+ </text>
+ <locate
+ height="6"
+ layout="topleft" />
+ <icon
+ follows="top|left"
+ height="64"
+ image_name="badge_note.j2c"
+ layout="topleft"
+ left="0"
+ name="step_error"
+ width="64" />
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ height="160"
+ layout="topleft"
+ left="72"
+ name="error_message"
+ right="435"
+ top="208"
+ width="215">
+ Something ain&apos;t right.
+ </text>
+ <button
+ follows="bottom|left"
+ height="20"
+ label="Go to website"
+ layout="topleft"
+ left_delta="0"
+ name="error_web"
+ top_delta="144"
+ width="120" />
+ <locate
+ height="-200"
+ layout="topleft" />
+ <icon
+ follows="top|left"
+ height="64"
+ image_name="badge_ok.j2c"
+ layout="topleft"
+ left="0"
+ name="step_1"
+ width="64" />
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ font="SansSerifBig"
+ height="16"
+ layout="topleft"
+ left="72"
+ name="account_action"
+ right="438"
+ top="190"
+ width="218">
+ Upgrade you to premium membership.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ height="16"
+ layout="topleft"
+ left="72"
+ name="account_reason"
+ right="400"
+ width="180">
+ Only premimum members may own land.
+ </text>
+ <combo_box
+ follows="top|left"
+ height="16"
+ layout="topleft"
+ left="80"
+ name="account_level"
+ width="336">
+ <combo_box.item
+ label="US$9.95/month, billed monthly" />
+ <combo_box.item
+ label="US$7.50/month, billed quarterly" />
+ <combo_box.item
+ label="US$6.00/month, billed annually" />
+ </combo_box>
+ <locate
+ height="10"
+ layout="topleft" />
+ <icon
+ follows="top|left"
+ height="64"
+ image_name="badge_note.j2c"
+ layout="topleft"
+ left="0"
+ name="step_2"
+ width="64" />
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ font="SansSerifBig"
+ height="16"
+ layout="topleft"
+ left="72"
+ name="land_use_action"
+ right="438"
+ top="274"
+ width="218">
+ Increase your monthly land use fees to US$ 40/month.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ height="32"
+ layout="topleft"
+ left="72"
+ name="land_use_reason"
+ right="435"
+ width="215">
+ You hold 1309 sq.m. of land.
+ This parcel is 512 sq.m. of land.
+ </text>
+ <locate
+ height="10"
+ layout="topleft" />
+ <icon
+ follows="top|left"
+ height="64"
+ image_name="badge_note.j2c"
+ layout="topleft"
+ left="0"
+ name="step_3"
+ width="64" />
+ <text
+ type="string"
+ length="1"
+ bottom_delta="-38"
+ follows="top|left"
+ font="SansSerifBig"
+ height="16"
+ layout="topleft"
+ left="72"
+ name="purchase_action"
+ right="438">
+ Pay Joe Resident L$ 4000 for the land
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ height="16"
+ layout="topleft"
+ left="72"
+ name="currency_reason"
+ right="400">
+ You have L$ 2,100.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="currency_action"
+ top_pad="9"
+ width="90">
+ Buy additional L$
+ </text>
+ <locate
+ height="0"
+ layout="topleft"
+ width="8" />
+ <line_editor
+ type="string"
+ length="1"
+ follows="top|right"
+ height="16"
+ layout="topleft"
+ left="170"
+ name="currency_amt"
+ top="398"
+ width="80">
+ 1000
+ </line_editor>
+ <locate
+ height="0"
+ layout="topleft"
+ width="8" />
+ <text
+ type="string"
+ length="1"
+ follows="top|right"
+ height="16"
+ layout="topleft"
+ left="260"
+ name="currency_est"
+ top="399"
+ width="178">
+ for approx. US$ [AMOUNT2]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ height="16"
+ layout="topleft"
+ left="72"
+ name="currency_balance"
+ right="400">
+ You have L$ 2,100.
+ </text>
+ <check_box
+ follows="bottom|left"
+ height="20"
+ label="Remove [AMOUNT] square meters of contribution from group."
+ layout="topleft"
+ left_delta="3"
+ name="remove_contribution"
+ top_delta="14"
+ visible="false"
+ width="275" />
+ <button
+ follows="bottom|left"
+ height="20"
+ label="Purchase"
+ layout="topleft"
+ left="70"
+ name="buy_btn"
+ top="448"
+ width="100" />
+ <button
+ follows="bottom|right"
+ height="20"
+ label="Cancel"
+ layout="topleft"
+ left="-90"
+ name="cancel_btn"
+ top="454"
+ width="80" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_buy_object.xml b/indra/newview/skins/default/xui/en/floater_buy_object.xml
new file mode 100644
index 0000000000..44ef32ee36
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_buy_object.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_resize="true"
+ height="250"
+ layout="topleft"
+ min_height="175"
+ min_width="154"
+ name="contents"
+ save_rect="true"
+ title="Buy Copy of Object"
+ width="300">
+ <floater.string
+ name="title_buy_text">
+ Buy
+ </floater.string>
+ <floater.string
+ name="title_buy_copy_text">
+ Buy a copy of
+ </floater.string>
+ <floater.string
+ name="no_copy_text">
+ (no copy)
+ </floater.string>
+ <floater.string
+ name="no_modify_text">
+ (no modify)
+ </floater.string>
+ <floater.string
+ name="no_transfer_text">
+ (no transfer)
+ </floater.string>
+ <scroll_list
+ follows="left|top|right"
+ height="36"
+ layout="topleft"
+ left="15"
+ name="object_list"
+ top="24"
+ width="281">
+ <scroll_list.columns
+ name="icon"
+ width="16" />
+ <scroll_list.columns
+ name="text"
+ width="300" />
+ </scroll_list>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="contents_text"
+ top_pad="4"
+ width="281">
+ and its contents:
+ </text>
+ <scroll_list
+ follows="left|top|right|bottom"
+ height="108"
+ layout="topleft"
+ left_delta="0"
+ name="item_list"
+ top_pad="4"
+ width="281">
+ <scroll_list.columns
+ name="icon"
+ width="16" />
+ <scroll_list.columns
+ name="text"
+ width="300" />
+ </scroll_list>
+ <text
+ type="string"
+ length="1"
+ follows="left|right|bottom"
+ font="SansSerif"
+ height="24"
+ layout="topleft"
+ left_delta="0"
+ name="buy_text"
+ top_pad="4"
+ width="281">
+ Buy for L$[AMOUNT] from [NAME]?
+ </text>
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Cancel"
+ label_selected="Cancel"
+ layout="topleft"
+ left="216"
+ name="cancel_btn"
+ top="224"
+ width="60" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Buy"
+ label_selected="Buy"
+ layout="topleft"
+ left_delta="-64"
+ name="buy_btn"
+ top_delta="0"
+ width="60" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_camera.xml b/indra/newview/skins/default/xui/en/floater_camera.xml
new file mode 100644
index 0000000000..7f24b11d14
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_camera.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_minimize="false"
+ center_horiz="true"
+ follows="top"
+ height="64"
+ layout="topleft"
+ name="camera_floater"
+ save_rect="true"
+ width="176">
+ <floater.string
+ name="rotate_tooltip">
+ Rotate Camera Around Focus
+ </floater.string>
+ <floater.string
+ name="zoom_tooltip">
+ Zoom Camera Towards Focus
+ </floater.string>
+ <floater.string
+ name="move_tooltip">
+ Move Camera Up and Down, Left and Right
+ </floater.string>
+ <joystick_rotate
+ follows="top|left"
+ height="64"
+ image_selected="cam_rotate_in.tga"
+ image_unselected="cam_rotate_out.tga"
+ layout="topleft"
+ left="16"
+ name="cam_rotate_stick"
+ picture_style="true"
+ quadrant="left"
+ scale_image="false"
+ sound_flags="3"
+ tool_tip="rotate_tooltip"
+ top="0"
+ width="64" />
+ <joystick_zoom
+ follows="top|left"
+ height="64"
+ image_unselected="cam_zoom_out.tga"
+ layout="topleft"
+ left_delta="64"
+ minus_image="cam_zoom_minus_in.tga"
+ name="zoom"
+ picture_style="true"
+ plus_image="cam_zoom_plus_in.tga"
+ quadrant="left"
+ scale_image="false"
+ sound_flags="3"
+ tool_tip="zoom_tooltip"
+ top_delta="0"
+ width="16" />
+ <joystick_track
+ follows="top|left"
+ height="64"
+ image_selected="cam_tracking_in.tga"
+ image_unselected="cam_tracking_out.tga"
+ layout="topleft"
+ left_delta="16"
+ name="cam_track_stick"
+ picture_style="true"
+ quadrant="left"
+ scale_image="false"
+ sound_flags="3"
+ tool_tip="move_tooltip"
+ top_delta="0"
+ width="64" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_choose_group.xml b/indra/newview/skins/default/xui/en/floater_choose_group.xml
new file mode 100644
index 0000000000..428afcff52
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_choose_group.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ height="258"
+ layout="topleft"
+ name="groups"
+ title="Groups"
+ width="280">
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="12"
+ name="groupdesc"
+ top="24"
+ width="248">
+ Choose a group:
+ </text>
+ <scroll_list
+ height="160"
+ layout="topleft"
+ left_delta="0"
+ name="group list"
+ top_pad="8"
+ width="248">
+ <scroll_list.columns
+ name="name"
+ width="248" />
+ </scroll_list>
+ <button
+ height="20"
+ label="OK"
+ label_selected="OK"
+ layout="topleft"
+ left_delta="0"
+ name="OK"
+ top_pad="8"
+ width="80" />
+ <button
+ height="20"
+ label="Cancel"
+ label_selected="Cancel"
+ layout="topleft"
+ left_pad="8"
+ name="Cancel"
+ top_delta="0"
+ width="80" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_color_picker.xml b/indra/newview/skins/default/xui/en/floater_color_picker.xml
new file mode 100644
index 0000000000..08e47f7ef6
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_color_picker.xml
@@ -0,0 +1,228 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_minimize="false"
+ follows="left|top"
+ height="380"
+ layout="topleft"
+ name="ColorPicker"
+ title="Color Picker"
+ width="440">
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="10"
+ layout="topleft"
+ left="12"
+ mouse_opaque="false"
+ name="r_val_text"
+ top="35"
+ width="413">
+ Red:
+ </text>
+ <spinner
+ decimal_digits="0"
+ follows="left"
+ height="16"
+ increment="1"
+ initial_value="128"
+ layout="topleft"
+ left_delta="63"
+ max_val="255"
+ name="rspin"
+ top_delta="0"
+ width="50" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="10"
+ layout="topleft"
+ left="12"
+ mouse_opaque="false"
+ name="g_val_text"
+ top="56"
+ width="413">
+ Green:
+ </text>
+ <spinner
+ decimal_digits="0"
+ follows="left"
+ height="16"
+ increment="1"
+ initial_value="128"
+ layout="topleft"
+ left_delta="63"
+ max_val="255"
+ name="gspin"
+ top_delta="0"
+ width="50" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="10"
+ layout="topleft"
+ left="12"
+ mouse_opaque="false"
+ name="b_val_text"
+ top="77"
+ width="413">
+ Blue:
+ </text>
+ <spinner
+ decimal_digits="0"
+ follows="left"
+ height="16"
+ increment="1"
+ initial_value="128"
+ layout="topleft"
+ left_delta="63"
+ max_val="255"
+ name="bspin"
+ top_delta="0"
+ width="50" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="10"
+ layout="topleft"
+ left="12"
+ mouse_opaque="false"
+ name="h_val_text"
+ top="108"
+ width="413">
+ Hue:
+ </text>
+ <spinner
+ decimal_digits="0"
+ follows="left"
+ height="16"
+ increment="1"
+ initial_value="180"
+ layout="topleft"
+ left_delta="63"
+ max_val="360"
+ name="hspin"
+ top_delta="0"
+ width="50" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="10"
+ layout="topleft"
+ left="12"
+ mouse_opaque="false"
+ name="s_val_text"
+ top="129"
+ width="413">
+ Sat:
+ </text>
+ <spinner
+ decimal_digits="0"
+ follows="left"
+ height="16"
+ increment="1"
+ initial_value="50"
+ layout="topleft"
+ left_delta="63"
+ max_val="100"
+ name="sspin"
+ top_delta="0"
+ width="50" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="10"
+ layout="topleft"
+ left="12"
+ mouse_opaque="false"
+ name="l_val_text"
+ top="150"
+ width="413">
+ Lum:
+ </text>
+ <spinner
+ decimal_digits="0"
+ follows="left"
+ height="16"
+ increment="1"
+ initial_value="50"
+ layout="topleft"
+ left_delta="63"
+ max_val="100"
+ name="lspin"
+ top_delta="0"
+ width="50" />
+ <check_box
+ follows="left|bottom"
+ height="20"
+ label="Apply Immediately"
+ layout="topleft"
+ left="12"
+ name="apply_immediate"
+ top="353"
+ width="100" />
+ <button
+ follows="left|top"
+ height="32"
+ layout="topleft"
+ left_delta="130"
+ name="color_pipette"
+ picture_style="true"
+ top="341"
+ width="32" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Cancel"
+ label_selected="Cancel"
+ layout="topleft"
+ left_delta="75"
+ name="cancel_btn"
+ top="353"
+ width="100" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Select"
+ label_selected="Select"
+ layout="topleft"
+ left_pad="4"
+ name="select_btn"
+ top_delta="0"
+ width="100" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="12"
+ name="Current color:"
+ top="172"
+ width="110">
+ Current color:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="(Drag below to save.)"
+ top_pad="66"
+ width="110">
+ (Drag below to save.)
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_critical.xml b/indra/newview/skins/default/xui/en/floater_critical.xml
new file mode 100644
index 0000000000..5475a1cf6a
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_critical.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_close="false"
+ can_minimize="false"
+ height="500"
+ layout="topleft"
+ name="modal container"
+ width="600">
+ <button
+ height="20"
+ label="Continue"
+ label_selected="Continue"
+ layout="topleft"
+ left="484"
+ name="Continue"
+ top="465"
+ width="100" />
+ <button
+ height="20"
+ label="Cancel"
+ label_selected="Cancel"
+ layout="topleft"
+ left_delta="-468"
+ name="Cancel"
+ top_delta="0"
+ width="100" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left_delta="4"
+ name="tos_heading"
+ top_delta="-450"
+ width="552">
+ Please read the following message carefully.
+ </text>
+ <text_editor
+ type="string"
+ length="1"
+ bg_readonly_color="1 1 1 1"
+ bottom="455"
+ follows="left|top"
+ font="SansSerif"
+ layout="topleft"
+ left="20"
+ max_length="65536"
+ name="tos_text"
+ right="-20"
+ text_readonly_color="0 0 0 1"
+ top="45"
+ word_wrap="true">
+ TOS_TEXT
+ </text_editor>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_customize.xml b/indra/newview/skins/default/xui/en/floater_customize.xml
new file mode 100644
index 0000000000..41bd417c12
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_customize.xml
@@ -0,0 +1,3574 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_minimize="false"
+ follows="left|top"
+ height="540"
+ layout="topleft"
+ left_delta="-3"
+ name="floater customize"
+ save_rect="true"
+ title="Appearance"
+ top_delta="-185"
+ width="494">
+ <tab_container
+ height="483"
+ layout="topleft"
+ left="0"
+ name="customize tab container"
+ tab_min_width="96"
+ tab_position="left"
+ top="24"
+ width="492">
+ <placeholder
+ label="Body Parts"
+ layout="topleft"
+ name="body_parts_placeholder" />
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="481"
+ label="Shape"
+ layout="topleft"
+ left_delta="0"
+ name="Shape"
+ top_delta="0"
+ width="389">
+ <icon
+ follows="top|right"
+ height="16"
+ image_name="icon_lock.tga"
+ layout="topleft"
+ left="333"
+ mouse_opaque="true"
+ name="square"
+ top="5"
+ width="16" />
+ <icon
+ height="16"
+ layout="topleft"
+ left_delta="-325"
+ mouse_opaque="true"
+ top_delta="3"
+ width="16" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Revert"
+ label_selected="Revert"
+ layout="topleft"
+ left="299"
+ name="Revert"
+ top="458"
+ width="82" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Body"
+ label_selected="Body"
+ layout="topleft"
+ left="8"
+ name="Body"
+ top="65"
+ width="82" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Head"
+ label_selected="Head"
+ layout="topleft"
+ left_delta="0"
+ name="Head"
+ top_pad="16"
+ width="82" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Eyes"
+ label_selected="Eyes"
+ layout="topleft"
+ left_delta="0"
+ name="Eyes"
+ top_pad="16"
+ width="82" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Ears"
+ label_selected="Ears"
+ layout="topleft"
+ left_delta="0"
+ name="Ears"
+ top_pad="16"
+ width="82" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Nose"
+ label_selected="Nose"
+ layout="topleft"
+ left_delta="0"
+ name="Nose"
+ top_pad="16"
+ width="82" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Mouth"
+ label_selected="Mouth"
+ layout="topleft"
+ left_delta="0"
+ name="Mouth"
+ top_pad="16"
+ width="82" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Chin"
+ label_selected="Chin"
+ layout="topleft"
+ left_delta="0"
+ name="Chin"
+ top_pad="16"
+ width="82" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Torso"
+ label_selected="Torso"
+ layout="topleft"
+ left_delta="0"
+ name="Torso"
+ top_pad="16"
+ width="82" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Legs"
+ label_selected="Legs"
+ layout="topleft"
+ left_delta="0"
+ name="Legs"
+ top_pad="16"
+ width="82" />
+ <radio_group
+ control_name="AvatarSex"
+ height="34"
+ layout="topleft"
+ left_delta="0"
+ name="sex radio"
+ top_pad="16"
+ width="82">
+ <radio_item
+ height="16"
+ label="Female"
+ layout="topleft"
+ left="1"
+ name="radio"
+ top="1"
+ width="82" />
+ <radio_item
+ height="16"
+ label="Male"
+ layout="topleft"
+ left_delta="0"
+ name="radio2"
+ top_delta="16"
+ width="82" />
+ </radio_group>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="26"
+ name="title"
+ top="8"
+ width="355">
+ [DESC]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_no_modify"
+ top_delta="0"
+ width="355">
+ [DESC]: cannot modify
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_loading"
+ top_delta="0"
+ width="355">
+ [DESC]: loading...
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_not_worn"
+ top_delta="0"
+ width="355">
+ [DESC]: not worn
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="14"
+ layout="topleft"
+ left="8"
+ name="path"
+ top="24"
+ width="373">
+ Located in [PATH]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="28"
+ layout="topleft"
+ left_delta="0"
+ name="not worn instructions"
+ top_pad="8"
+ width="373">
+ Put on a new shape by dragging one from your inventory
+to your avatar. Alternately, you create a new one from
+scratch and wear it.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="28"
+ layout="topleft"
+ left_delta="0"
+ name="no modify instructions"
+ top_delta="0"
+ width="373">
+ You do not have permission to modify this wearable.
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom="486"
+ follows="left|top|right"
+ font="SansSerif"
+ halign="right"
+ height="28"
+ layout="topleft"
+ name="Item Action Label"
+ right="117"
+ width="100">
+ Shape:
+ </text>
+ <button
+ follows="left|top"
+ height="24"
+ label="Create New Shape"
+ label_selected="Create New Shape"
+ layout="topleft"
+ left="8"
+ name="Create New"
+ top="104"
+ width="120" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Save"
+ label_selected="Save"
+ layout="topleft"
+ left="123"
+ name="Save"
+ top="458"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Save As..."
+ label_selected="Save As..."
+ layout="topleft"
+ left_pad="6"
+ name="Save As"
+ top_delta="0"
+ width="82" />
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="481"
+ label="Skin"
+ layout="topleft"
+ left_delta="0"
+ name="Skin"
+ top_delta="0"
+ width="389">
+ <icon
+ follows="top|right"
+ height="16"
+ image_name="icon_lock.tga"
+ layout="topleft"
+ left="333"
+ mouse_opaque="true"
+ name="square"
+ top="5"
+ width="16" />
+ <icon
+ height="16"
+ layout="topleft"
+ left_delta="-325"
+ mouse_opaque="true"
+ top_delta="3"
+ width="16" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Skin Color"
+ label_selected="Skin Color"
+ layout="topleft"
+ left_delta="0"
+ name="Skin Color"
+ top_pad="41"
+ width="82" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Face Detail"
+ label_selected="Face Detail"
+ layout="topleft"
+ left_delta="0"
+ name="Face Detail"
+ top_pad="16"
+ width="82" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Makeup"
+ label_selected="Makeup"
+ layout="topleft"
+ left_delta="0"
+ name="Makeup"
+ top_pad="16"
+ width="82" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Body Detail"
+ label_selected="Body Detail"
+ layout="topleft"
+ left_delta="0"
+ name="Body Detail"
+ top_pad="16"
+ width="82" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="26"
+ name="title"
+ top="8"
+ width="355">
+ [DESC]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_no_modify"
+ top_delta="0"
+ width="355">
+ [DESC]: cannot modify
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_loading"
+ top_delta="0"
+ width="355">
+ [DESC]: loading...
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_not_worn"
+ top_delta="0"
+ width="355">
+ [DESC]: not worn
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="14"
+ layout="topleft"
+ left="8"
+ name="path"
+ top="24"
+ width="373">
+ Located in [PATH]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="28"
+ layout="topleft"
+ left_delta="0"
+ name="not worn instructions"
+ top_pad="8"
+ width="373">
+ Put on a new skin by dragging one from your inventory
+to your avatar. Alternately, you create a new one from
+scratch and wear it.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="28"
+ layout="topleft"
+ left_delta="0"
+ name="no modify instructions"
+ top_delta="0"
+ width="373">
+ You do not have permission to modify this wearable.
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom="486"
+ follows="left|top|right"
+ font="SansSerif"
+ halign="right"
+ height="28"
+ layout="topleft"
+ name="Item Action Label"
+ right="117"
+ width="100">
+ Skin:
+ </text>
+ <texture_picker
+ allow_no_texture="true"
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="80"
+ label="Head Tattoos"
+ layout="topleft"
+ left="8"
+ name="Head Tattoos"
+ tool_tip="Click to choose a picture"
+ top="193"
+ width="74" />
+ <texture_picker
+ allow_no_texture="true"
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="80"
+ label="Upper Tattoos"
+ layout="topleft"
+ left_delta="0"
+ name="Upper Tattoos"
+ tool_tip="Click to choose a picture"
+ top_delta="80"
+ width="74" />
+ <texture_picker
+ allow_no_texture="true"
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="80"
+ label="Lower Tattoos"
+ layout="topleft"
+ left_delta="0"
+ name="Lower Tattoos"
+ tool_tip="Click to choose a picture"
+ top_delta="80"
+ width="74" />
+ <button
+ follows="left|top"
+ height="24"
+ label="Create New Skin"
+ label_selected="Create New Skin"
+ layout="topleft"
+ left_delta="0"
+ name="Create New"
+ top_delta="-249"
+ width="120" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Save"
+ label_selected="Save"
+ layout="topleft"
+ left="123"
+ name="Save"
+ top="458"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Save As..."
+ label_selected="Save As..."
+ layout="topleft"
+ left_pad="6"
+ name="Save As"
+ top_delta="0"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Revert"
+ label_selected="Revert"
+ layout="topleft"
+ left_pad="6"
+ name="Revert"
+ top_delta="0"
+ width="82" />
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="481"
+ label="Hair"
+ layout="topleft"
+ left_delta="0"
+ name="Hair"
+ top_delta="0"
+ width="389">
+ <icon
+ follows="top|right"
+ height="16"
+ image_name="icon_lock.tga"
+ layout="topleft"
+ left="333"
+ mouse_opaque="true"
+ name="square"
+ top="5"
+ width="16" />
+ <icon
+ height="16"
+ layout="topleft"
+ left_delta="-325"
+ mouse_opaque="true"
+ top_delta="3"
+ width="16" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Color"
+ label_selected="Color"
+ layout="topleft"
+ left_delta="0"
+ name="Color"
+ top_pad="41"
+ width="82" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Style"
+ label_selected="Style"
+ layout="topleft"
+ left_delta="0"
+ name="Style"
+ top_pad="16"
+ width="82" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Eyebrows"
+ label_selected="Eyebrows"
+ layout="topleft"
+ left_delta="0"
+ name="Eyebrows"
+ top_pad="16"
+ width="82" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="16"
+ label="Facial"
+ label_selected="Facial"
+ layout="topleft"
+ left_delta="0"
+ name="Facial"
+ top_pad="16"
+ width="82" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="26"
+ name="title"
+ top="8"
+ width="355">
+ [DESC]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_no_modify"
+ top_delta="0"
+ width="355">
+ [DESC]: cannot modify
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_loading"
+ top_delta="0"
+ width="355">
+ [DESC]: loading...
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_not_worn"
+ top_delta="0"
+ width="355">
+ [DESC]: not worn
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="14"
+ layout="topleft"
+ left="8"
+ name="path"
+ top="24"
+ width="373">
+ Located in [PATH]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="28"
+ layout="topleft"
+ left_delta="0"
+ name="not worn instructions"
+ top_pad="8"
+ width="373">
+ Put on a new hair by dragging one from your inventory
+to your avatar. Alternately, you create a new one from
+scratch and wear it.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="28"
+ layout="topleft"
+ left_delta="0"
+ name="no modify instructions"
+ top_delta="0"
+ width="373">
+ You do not have permission to modify this wearable.
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom="486"
+ follows="left|top|right"
+ font="SansSerif"
+ halign="right"
+ height="28"
+ layout="topleft"
+ name="Item Action Label"
+ right="117"
+ width="100">
+ Hair:
+ </text>
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="80"
+ label="Texture"
+ layout="topleft"
+ left="8"
+ name="Texture"
+ tool_tip="Click to choose a picture"
+ top="193"
+ width="64" />
+ <button
+ follows="left|top"
+ height="24"
+ label="Create New Hair"
+ label_selected="Create New Hair"
+ layout="topleft"
+ left_delta="0"
+ name="Create New"
+ top_delta="-89"
+ width="120" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Save"
+ label_selected="Save"
+ layout="topleft"
+ left="123"
+ name="Save"
+ top="458"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Save As..."
+ label_selected="Save As..."
+ layout="topleft"
+ left_pad="6"
+ name="Save As"
+ top_delta="0"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Revert"
+ label_selected="Revert"
+ layout="topleft"
+ left_pad="6"
+ name="Revert"
+ top_delta="0"
+ width="82" />
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="481"
+ label="Eyes"
+ layout="topleft"
+ left_delta="0"
+ name="Eyes"
+ top_delta="0"
+ width="389">
+ <icon
+ follows="top|right"
+ height="16"
+ image_name="icon_lock.tga"
+ layout="topleft"
+ left="333"
+ mouse_opaque="true"
+ name="square"
+ top="5"
+ width="16" />
+ <icon
+ height="16"
+ layout="topleft"
+ left_delta="-325"
+ mouse_opaque="true"
+ top_delta="3"
+ width="16" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_pad="2"
+ name="title"
+ top_delta="0"
+ width="355">
+ [DESC]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_no_modify"
+ top_delta="0"
+ width="355">
+ [DESC]: cannot modify
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_loading"
+ top_delta="0"
+ width="355">
+ [DESC]: loading...
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_not_worn"
+ top_delta="0"
+ width="355">
+ [DESC]: not worn
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="14"
+ layout="topleft"
+ left="8"
+ name="path"
+ top="24"
+ width="373">
+ Located in [PATH]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="28"
+ layout="topleft"
+ left_delta="0"
+ name="not worn instructions"
+ top_pad="8"
+ width="373">
+ Put on a new eyes by dragging one from your inventory
+to your avatar. Alternately, you create a new one from
+scratch and wear it.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="28"
+ layout="topleft"
+ left_delta="0"
+ name="no modify instructions"
+ top_delta="0"
+ width="373">
+ You do not have permission to modify this wearable.
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom="486"
+ follows="left|top|right"
+ font="SansSerif"
+ halign="right"
+ height="28"
+ layout="topleft"
+ name="Item Action Label"
+ right="117"
+ width="100">
+ Eyes:
+ </text>
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="80"
+ label="Iris"
+ layout="topleft"
+ left="8"
+ name="Iris"
+ tool_tip="Click to choose a picture"
+ top="65"
+ width="64" />
+ <button
+ follows="left|top"
+ height="24"
+ label="Create New Eyes"
+ label_selected="Create New Eyes"
+ layout="topleft"
+ left_delta="0"
+ name="Create New"
+ top_delta="39"
+ width="120" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Save"
+ label_selected="Save"
+ layout="topleft"
+ left="123"
+ name="Save"
+ top="458"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Save As..."
+ label_selected="Save As..."
+ layout="topleft"
+ left_pad="6"
+ name="Save As"
+ top_delta="0"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Revert"
+ label_selected="Revert"
+ layout="topleft"
+ left_pad="6"
+ name="Revert"
+ top_delta="0"
+ width="82" />
+ </panel>
+ <placeholder
+ label="Clothes"
+ layout="topleft"
+ name="clothes_placeholder" />
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="481"
+ label="Shirt"
+ layout="topleft"
+ left_delta="0"
+ name="Shirt"
+ top_delta="0"
+ width="389">
+ <icon
+ follows="top|right"
+ height="16"
+ image_name="icon_lock.tga"
+ layout="topleft"
+ left="333"
+ mouse_opaque="true"
+ name="square"
+ top="5"
+ width="16" />
+ <icon
+ height="16"
+ layout="topleft"
+ left_delta="-325"
+ mouse_opaque="true"
+ top_delta="3"
+ width="16" />
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="80"
+ label="Fabric"
+ layout="topleft"
+ left_delta="0"
+ name="Fabric"
+ tool_tip="Click to choose a picture"
+ top_pad="41"
+ width="64" />
+ <color_swatch
+ border_color="0.45098 0.517647 0.607843 1"
+ can_apply_immediately="true"
+ follows="left|top"
+ height="80"
+ label="Color/Tint"
+ layout="topleft"
+ left_delta="0"
+ name="Color/Tint"
+ tool_tip="Click to open Color Picker"
+ top_delta="80"
+ width="64" />
+ <button
+ follows="left|top"
+ height="24"
+ label="Create New Shirt"
+ label_selected="Create New Shirt"
+ layout="topleft"
+ left_delta="0"
+ name="Create New"
+ top_delta="-41"
+ width="120" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Take Off"
+ label_selected="Take Off"
+ layout="topleft"
+ left_delta="0"
+ name="Take Off"
+ top_pad="102"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Save"
+ label_selected="Save"
+ layout="topleft"
+ left="123"
+ name="Save"
+ top="458"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Save As..."
+ label_selected="Save As..."
+ layout="topleft"
+ left_pad="6"
+ name="Save As"
+ top_delta="0"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Revert"
+ label_selected="Revert"
+ layout="topleft"
+ left_pad="6"
+ name="Revert"
+ top_delta="0"
+ width="82" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="26"
+ name="title"
+ top="8"
+ width="355">
+ [DESC]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_no_modify"
+ top_delta="0"
+ width="355">
+ [DESC]: cannot modify
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_loading"
+ top_delta="0"
+ width="355">
+ [DESC]: loading...
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_not_worn"
+ top_delta="0"
+ width="355">
+ [DESC]: not worn
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="14"
+ layout="topleft"
+ left="8"
+ name="path"
+ top="24"
+ width="373">
+ Located in [PATH]
+ </text>
+ <spinner
+ decimal_digits="0"
+ follows="left|top|right"
+ height="16"
+ increment="1"
+ initial_value="0"
+ label="Item"
+ label_width="30"
+ layout="topleft"
+ left_delta="2"
+ max_val="5"
+ name="index"
+ text_enabled_color="110, 15, 15, 255"
+ top_pad="6"
+ width="87" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="28"
+ layout="topleft"
+ left_delta="0"
+ name="not worn instructions"
+ top_pad="8"
+ width="373">
+ Put on a new shirt by dragging one from your inventory
+to your avatar. Alternately, you create a new one from
+scratch and wear it.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="28"
+ layout="topleft"
+ left_delta="0"
+ name="no modify instructions"
+ top_delta="0"
+ width="373">
+ You do not have permission to modify this wearable.
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom="486"
+ follows="left|top|right"
+ font="SansSerif"
+ halign="right"
+ height="28"
+ layout="topleft"
+ name="Item Action Label"
+ right="117"
+ width="100">
+ Shirt:
+ </text>
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="481"
+ label="Pants"
+ layout="topleft"
+ left_delta="0"
+ name="Pants"
+ top_delta="0"
+ width="389">
+ <icon
+ follows="top|right"
+ height="16"
+ image_name="icon_lock.tga"
+ layout="topleft"
+ left="333"
+ mouse_opaque="true"
+ name="square"
+ top="5"
+ width="16" />
+ <icon
+ height="16"
+ layout="topleft"
+ left_delta="-325"
+ mouse_opaque="true"
+ top_delta="3"
+ width="16" />
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="80"
+ label="Fabric"
+ layout="topleft"
+ left_delta="0"
+ name="Fabric"
+ tool_tip="Click to choose a picture"
+ top_pad="41"
+ width="64" />
+ <color_swatch
+ border_color="0.45098 0.517647 0.607843 1"
+ can_apply_immediately="true"
+ follows="left|top"
+ height="80"
+ label="Color/Tint"
+ layout="topleft"
+ left_delta="0"
+ name="Color/Tint"
+ tool_tip="Click to open Color Picker"
+ top_delta="80"
+ width="64" />
+ <button
+ follows="left|top"
+ height="24"
+ label="Create New Pants"
+ label_selected="Create New Pants"
+ layout="topleft"
+ left_delta="0"
+ name="Create New"
+ top_delta="-41"
+ width="120" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Take Off"
+ label_selected="Take Off"
+ layout="topleft"
+ left_delta="0"
+ name="Take Off"
+ top_pad="102"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Save"
+ label_selected="Save"
+ layout="topleft"
+ left="123"
+ name="Save"
+ top="458"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Save As..."
+ label_selected="Save As..."
+ layout="topleft"
+ left_pad="6"
+ name="Save As"
+ top_delta="0"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Revert"
+ label_selected="Revert"
+ layout="topleft"
+ left_pad="6"
+ name="Revert"
+ top_delta="0"
+ width="82" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="26"
+ name="title"
+ top="8"
+ width="355">
+ [DESC]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_no_modify"
+ top_delta="0"
+ width="355">
+ [DESC]: cannot modify
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_loading"
+ top_delta="0"
+ width="355">
+ [DESC]: loading...
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_not_worn"
+ top_delta="0"
+ width="355">
+ [DESC]: not worn
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="14"
+ layout="topleft"
+ left="8"
+ name="path"
+ top="24"
+ width="373">
+ Located in [PATH]
+ </text>
+ <spinner
+ decimal_digits="0"
+ follows="left|top|right"
+ height="16"
+ increment="1"
+ initial_value="0"
+ label="Item"
+ label_width="30"
+ layout="topleft"
+ left_delta="2"
+ max_val="5"
+ name="index"
+ text_enabled_color="110, 15, 15, 255"
+ top_pad="6"
+ width="87" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="28"
+ layout="topleft"
+ left_delta="0"
+ name="not worn instructions"
+ top_pad="8"
+ width="373">
+ Put on a new pants by dragging one from your inventory
+to your avatar. Alternately, you create a new one from
+scratch and wear it.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="28"
+ layout="topleft"
+ left_delta="0"
+ name="no modify instructions"
+ top_delta="0"
+ width="373">
+ You do not have permission to modify this wearable.
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom="486"
+ follows="left|top|right"
+ font="SansSerif"
+ halign="right"
+ height="28"
+ layout="topleft"
+ name="Item Action Label"
+ right="117"
+ width="100">
+ Pants:
+ </text>
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="481"
+ label="Shoes"
+ layout="topleft"
+ left_delta="0"
+ name="Shoes"
+ top_delta="0"
+ width="389">
+ <icon
+ follows="top|right"
+ height="16"
+ image_name="icon_lock.tga"
+ layout="topleft"
+ left="333"
+ mouse_opaque="true"
+ name="square"
+ top="5"
+ width="16" />
+ <icon
+ height="16"
+ layout="topleft"
+ left_delta="-325"
+ mouse_opaque="true"
+ top_delta="3"
+ width="16" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_pad="2"
+ name="title"
+ top_delta="0"
+ width="355">
+ [DESC]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_no_modify"
+ top_delta="0"
+ width="355">
+ [DESC]: cannot modify
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_loading"
+ top_delta="0"
+ width="355">
+ [DESC]: loading...
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_not_worn"
+ top_delta="0"
+ width="355">
+ [DESC]: not worn
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="14"
+ layout="topleft"
+ left="8"
+ name="path"
+ top="24"
+ width="373">
+ Located in [PATH]
+ </text>
+ <spinner
+ decimal_digits="0"
+ follows="left|top|right"
+ height="16"
+ increment="1"
+ initial_value="0"
+ label="Item"
+ label_width="30"
+ layout="topleft"
+ left_delta="2"
+ max_val="5"
+ name="index"
+ text_enabled_color="110, 15, 15, 255"
+ top_pad="6"
+ width="87" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="28"
+ layout="topleft"
+ left_delta="0"
+ name="not worn instructions"
+ top_pad="8"
+ width="373">
+ Put on a new shoes by dragging one from your inventory
+to your avatar. Alternately, you create a new one from
+scratch and wear it.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="28"
+ layout="topleft"
+ left_delta="0"
+ name="no modify instructions"
+ top_delta="0"
+ width="373">
+ You do not have permission to modify this wearable.
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom="486"
+ follows="left|top|right"
+ font="SansSerif"
+ halign="right"
+ height="28"
+ layout="topleft"
+ name="Item Action Label"
+ right="117"
+ width="100">
+ Shoes:
+ </text>
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="80"
+ label="Fabric"
+ layout="topleft"
+ left="8"
+ name="Fabric"
+ tool_tip="Click to choose a picture"
+ top="65"
+ width="64" />
+ <color_swatch
+ border_color="0.45098 0.517647 0.607843 1"
+ can_apply_immediately="true"
+ follows="left|top"
+ height="80"
+ label="Color/Tint"
+ layout="topleft"
+ left_delta="0"
+ name="Color/Tint"
+ tool_tip="Click to open Color Picker"
+ top_delta="80"
+ width="64" />
+ <button
+ follows="left|top"
+ height="24"
+ label="Create New Shoes"
+ label_selected="Create New Shoes"
+ layout="topleft"
+ left_delta="0"
+ name="Create New"
+ top_delta="-41"
+ width="120" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Take Off"
+ label_selected="Take Off"
+ layout="topleft"
+ left_delta="0"
+ name="Take Off"
+ top_pad="102"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Save"
+ label_selected="Save"
+ layout="topleft"
+ left="123"
+ name="Save"
+ top="458"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Save As..."
+ label_selected="Save As..."
+ layout="topleft"
+ left_pad="6"
+ name="Save As"
+ top_delta="0"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Revert"
+ label_selected="Revert"
+ layout="topleft"
+ left_pad="6"
+ name="Revert"
+ top_delta="0"
+ width="82" />
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="481"
+ label="Socks"
+ layout="topleft"
+ left_delta="0"
+ name="Socks"
+ top_delta="0"
+ width="389">
+ <icon
+ follows="top|right"
+ height="16"
+ image_name="icon_lock.tga"
+ layout="topleft"
+ left="333"
+ mouse_opaque="true"
+ name="square"
+ top="5"
+ width="16" />
+ <icon
+ height="16"
+ layout="topleft"
+ left_delta="-325"
+ mouse_opaque="true"
+ top_delta="3"
+ width="16" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_pad="2"
+ name="title"
+ top_delta="0"
+ width="355">
+ [DESC]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_no_modify"
+ top_delta="0"
+ width="355">
+ [DESC]: cannot modify
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_loading"
+ top_delta="0"
+ width="355">
+ [DESC]: loading...
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_not_worn"
+ top_delta="0"
+ width="355">
+ [DESC]: not worn
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="14"
+ layout="topleft"
+ left="8"
+ name="path"
+ top="24"
+ width="373">
+ Located in [PATH]
+ </text>
+ <spinner
+ decimal_digits="0"
+ follows="left|top|right"
+ height="16"
+ increment="1"
+ initial_value="0"
+ label="Item"
+ label_width="30"
+ layout="topleft"
+ left_delta="2"
+ max_val="5"
+ name="index"
+ text_enabled_color="110, 15, 15, 255"
+ top_pad="6"
+ width="87" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="28"
+ layout="topleft"
+ left_delta="0"
+ name="not worn instructions"
+ top_pad="8"
+ width="373">
+ Put on a new socks by dragging one from your inventory
+to your avatar. Alternately, you create a new one from
+scratch and wear it.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="28"
+ layout="topleft"
+ left_delta="0"
+ name="no modify instructions"
+ top_delta="0"
+ width="373">
+ You do not have permission to modify this wearable.
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom="486"
+ follows="left|top|right"
+ font="SansSerif"
+ halign="right"
+ height="28"
+ layout="topleft"
+ name="Item Action Label"
+ right="117"
+ width="100">
+ Socks:
+ </text>
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="80"
+ label="Fabric"
+ layout="topleft"
+ left="8"
+ name="Fabric"
+ tool_tip="Click to choose a picture"
+ top="65"
+ width="64" />
+ <color_swatch
+ border_color="0.45098 0.517647 0.607843 1"
+ can_apply_immediately="true"
+ follows="left|top"
+ height="80"
+ label="Color/Tint"
+ layout="topleft"
+ left_delta="0"
+ name="Color/Tint"
+ tool_tip="Click to open Color Picker"
+ top_delta="80"
+ width="64" />
+ <button
+ follows="left|top"
+ height="24"
+ label="Create New Socks"
+ label_selected="Create New Socks"
+ layout="topleft"
+ left_delta="0"
+ name="Create New"
+ top_delta="-41"
+ width="120" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Take Off"
+ label_selected="Take Off"
+ layout="topleft"
+ left_delta="0"
+ name="Take Off"
+ top_pad="102"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Save"
+ label_selected="Save"
+ layout="topleft"
+ left="123"
+ name="Save"
+ top="458"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Save As..."
+ label_selected="Save As..."
+ layout="topleft"
+ left_pad="6"
+ name="Save As"
+ top_delta="0"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Revert"
+ label_selected="Revert"
+ layout="topleft"
+ left_pad="6"
+ name="Revert"
+ top_delta="0"
+ width="82" />
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="481"
+ label="Jacket"
+ layout="topleft"
+ left_delta="0"
+ name="Jacket"
+ top_delta="0"
+ width="389">
+ <icon
+ follows="top|right"
+ height="16"
+ image_name="icon_lock.tga"
+ layout="topleft"
+ left="333"
+ mouse_opaque="true"
+ name="square"
+ top="5"
+ width="16" />
+ <icon
+ height="16"
+ layout="topleft"
+ left_delta="-325"
+ mouse_opaque="true"
+ top_delta="3"
+ width="16" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_pad="2"
+ name="title"
+ top_delta="0"
+ width="355">
+ [DESC]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_no_modify"
+ top_delta="0"
+ width="355">
+ [DESC]: cannot modify
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_loading"
+ top_delta="0"
+ width="355">
+ [DESC]: loading...
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_not_worn"
+ top_delta="0"
+ width="355">
+ [DESC]: not worn
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="14"
+ layout="topleft"
+ left="8"
+ name="path"
+ top="24"
+ width="373">
+ Located in [PATH]
+ </text>
+ <spinner
+ decimal_digits="0"
+ follows="left|top|right"
+ height="16"
+ increment="1"
+ initial_value="0"
+ label="Item"
+ label_width="30"
+ layout="topleft"
+ left_delta="2"
+ max_val="5"
+ name="index"
+ text_enabled_color="110, 15, 15, 255"
+ top_pad="6"
+ width="87" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="28"
+ layout="topleft"
+ left_delta="0"
+ name="not worn instructions"
+ top_pad="8"
+ width="373">
+ Put on a new jacket by dragging one from your inventory
+to your avatar. Alternately, you create a new one from
+scratch and wear it.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="28"
+ layout="topleft"
+ left_delta="0"
+ name="no modify instructions"
+ top_delta="0"
+ width="373">
+ You do not have permission to modify this wearable.
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom="486"
+ follows="left|top|right"
+ font="SansSerif"
+ halign="right"
+ height="28"
+ layout="topleft"
+ name="Item Action Label"
+ right="117"
+ width="100">
+ Jacket:
+ </text>
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="80"
+ label="Upper Fabric"
+ layout="topleft"
+ left="8"
+ name="Upper Fabric"
+ tool_tip="Click to choose a picture"
+ top="65"
+ width="64" />
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="80"
+ label="Lower Fabric"
+ layout="topleft"
+ left_delta="0"
+ name="Lower Fabric"
+ tool_tip="Click to choose a picture"
+ top_delta="80"
+ width="64" />
+ <color_swatch
+ border_color="0.45098 0.517647 0.607843 1"
+ can_apply_immediately="true"
+ follows="left|top"
+ height="80"
+ label="Color/Tint"
+ layout="topleft"
+ left_delta="0"
+ name="Color/Tint"
+ tool_tip="Click to open Color Picker"
+ top_delta="80"
+ width="64" />
+ <button
+ follows="left|top"
+ height="24"
+ label="Create New Jacket"
+ label_selected="Create New Jacket"
+ layout="topleft"
+ left_delta="0"
+ name="Create New"
+ top_delta="-121"
+ width="140" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Take Off"
+ label_selected="Take Off"
+ layout="topleft"
+ left_delta="0"
+ name="Take Off"
+ top_pad="182"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Save"
+ label_selected="Save"
+ layout="topleft"
+ left="123"
+ name="Save"
+ top="458"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Save As..."
+ label_selected="Save As..."
+ layout="topleft"
+ left_pad="6"
+ name="Save As"
+ top_delta="0"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Revert"
+ label_selected="Revert"
+ layout="topleft"
+ left_pad="6"
+ name="Revert"
+ top_delta="0"
+ width="82" />
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="481"
+ label="Gloves"
+ layout="topleft"
+ left_delta="0"
+ name="Gloves"
+ top_delta="0"
+ width="389">
+ <icon
+ follows="top|right"
+ height="16"
+ image_name="icon_lock.tga"
+ layout="topleft"
+ left="333"
+ mouse_opaque="true"
+ name="square"
+ top="5"
+ width="16" />
+ <icon
+ height="16"
+ layout="topleft"
+ left_delta="-325"
+ mouse_opaque="true"
+ top_delta="3"
+ width="16" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_pad="2"
+ name="title"
+ top_delta="0"
+ width="355">
+ [DESC]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_no_modify"
+ top_delta="0"
+ width="355">
+ [DESC]: cannot modify
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_loading"
+ top_delta="0"
+ width="355">
+ [DESC]: loading...
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_not_worn"
+ top_delta="0"
+ width="355">
+ [DESC]: not worn
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="14"
+ layout="topleft"
+ left="8"
+ name="path"
+ top="24"
+ width="373">
+ Located in [PATH]
+ </text>
+ <spinner
+ decimal_digits="0"
+ follows="left|top|right"
+ height="16"
+ increment="1"
+ initial_value="0"
+ label="Item"
+ label_width="30"
+ layout="topleft"
+ left_delta="2"
+ max_val="5"
+ name="index"
+ text_enabled_color="110, 15, 15, 255"
+ top_pad="6"
+ width="87" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="28"
+ layout="topleft"
+ left_delta="0"
+ name="not worn instructions"
+ top_pad="8"
+ width="373">
+ Put on a new gloves by dragging one from your inventory
+to your avatar. Alternately, you create a new one from
+scratch and wear it.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="28"
+ layout="topleft"
+ left_delta="0"
+ name="no modify instructions"
+ top_delta="0"
+ width="373">
+ You do not have permission to modify this wearable.
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom="486"
+ follows="left|top|right"
+ font="SansSerif"
+ halign="right"
+ height="28"
+ layout="topleft"
+ name="Item Action Label"
+ right="117"
+ width="100">
+ Gloves:
+ </text>
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="80"
+ label="Fabric"
+ layout="topleft"
+ left="8"
+ name="Fabric"
+ tool_tip="Click to choose a picture"
+ top="65"
+ width="64" />
+ <color_swatch
+ border_color="0.45098 0.517647 0.607843 1"
+ can_apply_immediately="true"
+ follows="left|top"
+ height="80"
+ label="Color/Tint"
+ layout="topleft"
+ left_delta="0"
+ name="Color/Tint"
+ tool_tip="Click to open Color Picker"
+ top_delta="80"
+ width="64" />
+ <button
+ follows="left|top"
+ height="24"
+ label="Create New Gloves"
+ label_selected="Create New Gloves"
+ layout="topleft"
+ left_delta="0"
+ name="Create New"
+ top_delta="-41"
+ width="130" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Take Off"
+ label_selected="Take Off"
+ layout="topleft"
+ left_delta="0"
+ name="Take Off"
+ top_pad="102"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Save"
+ label_selected="Save"
+ layout="topleft"
+ left="123"
+ name="Save"
+ top="458"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Save As..."
+ label_selected="Save As..."
+ layout="topleft"
+ left_pad="6"
+ name="Save As"
+ top_delta="0"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Revert"
+ label_selected="Revert"
+ layout="topleft"
+ left_pad="6"
+ name="Revert"
+ top_delta="0"
+ width="82" />
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="481"
+ label="Undershirt"
+ layout="topleft"
+ left_delta="0"
+ name="Undershirt"
+ top_delta="0"
+ width="389">
+ <icon
+ follows="top|right"
+ height="16"
+ image_name="icon_lock.tga"
+ layout="topleft"
+ left="333"
+ mouse_opaque="true"
+ name="square"
+ top="5"
+ width="16" />
+ <icon
+ height="16"
+ layout="topleft"
+ left_delta="-325"
+ mouse_opaque="true"
+ top_delta="3"
+ width="16" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_pad="2"
+ name="title"
+ top_delta="0"
+ width="355">
+ [DESC]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_no_modify"
+ top_delta="0"
+ width="355">
+ [DESC]: cannot modify
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_loading"
+ top_delta="0"
+ width="355">
+ [DESC]: loading...
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_not_worn"
+ top_delta="0"
+ width="355">
+ [DESC]: not worn
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="14"
+ layout="topleft"
+ left="8"
+ name="path"
+ top="24"
+ width="373">
+ Located in [PATH]
+ </text>
+ <spinner
+ decimal_digits="0"
+ follows="left|top|right"
+ height="16"
+ increment="1"
+ initial_value="0"
+ label="Item"
+ label_width="30"
+ layout="topleft"
+ left_delta="2"
+ max_val="5"
+ name="index"
+ text_enabled_color="110, 15, 15, 255"
+ top_pad="6"
+ width="87" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="28"
+ layout="topleft"
+ left_delta="0"
+ name="not worn instructions"
+ top_pad="8"
+ width="373">
+ Put on a new undershirt by dragging one from your inventory
+to your avatar. Alternately, you create a new one from
+scratch and wear it.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="28"
+ layout="topleft"
+ left_delta="0"
+ name="no modify instructions"
+ top_delta="0"
+ width="373">
+ You do not have permission to modify this wearable.
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom="486"
+ follows="left|top|right"
+ font="SansSerif"
+ halign="right"
+ height="28"
+ layout="topleft"
+ name="Item Action Label"
+ right="117"
+ width="100">
+ Undershirt:
+ </text>
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="80"
+ label="Fabric"
+ layout="topleft"
+ left="8"
+ name="Fabric"
+ tool_tip="Click to choose a picture"
+ top="65"
+ width="64" />
+ <color_swatch
+ border_color="0.45098 0.517647 0.607843 1"
+ can_apply_immediately="true"
+ follows="left|top"
+ height="80"
+ label="Color/Tint"
+ layout="topleft"
+ left_delta="0"
+ name="Color/Tint"
+ tool_tip="Click to open Color Picker"
+ top_delta="80"
+ width="64" />
+ <button
+ follows="left|top"
+ height="24"
+ label="Create New Undershirt"
+ label_selected="Create New Undershirt"
+ layout="topleft"
+ left_delta="0"
+ name="Create New"
+ top_delta="-41"
+ width="160" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Take Off"
+ label_selected="Take Off"
+ layout="topleft"
+ left_delta="0"
+ name="Take Off"
+ top_pad="102"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Save"
+ label_selected="Save"
+ layout="topleft"
+ left="123"
+ name="Save"
+ top="458"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Save As..."
+ label_selected="Save As..."
+ layout="topleft"
+ left_pad="6"
+ name="Save As"
+ top_delta="0"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Revert"
+ label_selected="Revert"
+ layout="topleft"
+ left_pad="6"
+ name="Revert"
+ top_delta="0"
+ width="82" />
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="481"
+ label="Underpants"
+ layout="topleft"
+ left_delta="0"
+ name="Underpants"
+ top_delta="0"
+ width="389">
+ <icon
+ follows="top|right"
+ height="16"
+ image_name="icon_lock.tga"
+ layout="topleft"
+ left="333"
+ mouse_opaque="true"
+ name="square"
+ top="5"
+ width="16" />
+ <icon
+ height="16"
+ layout="topleft"
+ left_delta="-325"
+ mouse_opaque="true"
+ top_delta="3"
+ width="16" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_pad="2"
+ name="title"
+ top_delta="0"
+ width="355">
+ [DESC]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_no_modify"
+ top_delta="0"
+ width="355">
+ [DESC]: cannot modify
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_loading"
+ top_delta="0"
+ width="355">
+ [DESC]: loading...
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_not_worn"
+ top_delta="0"
+ width="355">
+ [DESC]: not worn
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="14"
+ layout="topleft"
+ left="8"
+ name="path"
+ top="24"
+ width="373">
+ Located in [PATH]
+ </text>
+ <spinner
+ decimal_digits="0"
+ follows="left|top|right"
+ height="16"
+ increment="1"
+ initial_value="0"
+ label="Item"
+ label_width="30"
+ layout="topleft"
+ left_delta="2"
+ max_val="5"
+ name="index"
+ text_enabled_color="110, 15, 15, 255"
+ top_pad="6"
+ width="87" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="28"
+ layout="topleft"
+ left_delta="0"
+ name="not worn instructions"
+ top_pad="8"
+ width="373">
+ Put on a new underpants by dragging one from your inventory
+to your avatar. Alternately, you create a new one from
+scratch and wear it.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="28"
+ layout="topleft"
+ left_delta="0"
+ name="no modify instructions"
+ top_delta="0"
+ width="373">
+ You do not have permission to modify this wearable.
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom="486"
+ follows="left|top|right"
+ font="SansSerif"
+ halign="right"
+ height="28"
+ layout="topleft"
+ name="Item Action Label"
+ right="117"
+ width="100">
+ Underpants:
+ </text>
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="80"
+ label="Fabric"
+ layout="topleft"
+ left="8"
+ name="Fabric"
+ tool_tip="Click to choose a picture"
+ top="65"
+ width="64" />
+ <color_swatch
+ border_color="0.45098 0.517647 0.607843 1"
+ can_apply_immediately="true"
+ follows="left|top"
+ height="80"
+ label="Color/Tint"
+ layout="topleft"
+ left_delta="0"
+ name="Color/Tint"
+ tool_tip="Click to open Color Picker"
+ top_delta="80"
+ width="64" />
+ <button
+ follows="left|top"
+ height="24"
+ label="Create New Underpants"
+ label_selected="Create New Underpants"
+ layout="topleft"
+ left_delta="0"
+ name="Create New"
+ top_delta="-41"
+ width="160" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Take Off"
+ label_selected="Take Off"
+ layout="topleft"
+ left_delta="0"
+ name="Take Off"
+ top_pad="102"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Save"
+ label_selected="Save"
+ layout="topleft"
+ left="123"
+ name="Save"
+ top="458"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Save As..."
+ label_selected="Save As..."
+ layout="topleft"
+ left_pad="6"
+ name="Save As"
+ top_delta="0"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Revert"
+ label_selected="Revert"
+ layout="topleft"
+ left_pad="6"
+ name="Revert"
+ top_delta="0"
+ width="82" />
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="481"
+ label="Skirt"
+ layout="topleft"
+ left_delta="0"
+ name="Skirt"
+ top_delta="0"
+ width="389">
+ <icon
+ follows="top|right"
+ height="16"
+ image_name="icon_lock.tga"
+ layout="topleft"
+ left="333"
+ mouse_opaque="true"
+ name="square"
+ top="5"
+ width="16" />
+ <icon
+ height="16"
+ layout="topleft"
+ left_delta="-325"
+ mouse_opaque="true"
+ top_delta="3"
+ width="16" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_pad="2"
+ name="title"
+ top_delta="0"
+ width="355">
+ [DESC]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_no_modify"
+ top_delta="0"
+ width="355">
+ [DESC]: cannot modify
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_loading"
+ top_delta="0"
+ width="355">
+ [DESC]: loading...
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_not_worn"
+ top_delta="0"
+ width="355">
+ [DESC]: not worn
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="14"
+ layout="topleft"
+ left="8"
+ name="path"
+ top="24"
+ width="373">
+ Located in [PATH]
+ </text>
+ <spinner
+ decimal_digits="0"
+ follows="left|top|right"
+ height="16"
+ increment="1"
+ initial_value="0"
+ label="Item"
+ label_width="30"
+ layout="topleft"
+ left_delta="2"
+ max_val="5"
+ name="index"
+ text_enabled_color="110, 15, 15, 255"
+ top_pad="6"
+ width="87" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="28"
+ layout="topleft"
+ left_delta="0"
+ name="not worn instructions"
+ top_pad="8"
+ width="373">
+ Put on a new skirt by dragging one from your inventory
+to your avatar. Alternately, you create a new one from
+scratch and wear it.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="28"
+ layout="topleft"
+ left_delta="0"
+ name="no modify instructions"
+ top_delta="0"
+ width="373">
+ You do not have permission to modify this wearable.
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom="486"
+ follows="left|top|right"
+ font="SansSerif"
+ halign="right"
+ height="28"
+ layout="topleft"
+ name="Item Action Label"
+ right="117"
+ width="100">
+ Skirt:
+ </text>
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="80"
+ label="Fabric"
+ layout="topleft"
+ left="8"
+ name="Fabric"
+ tool_tip="Click to choose a picture"
+ top="65"
+ width="64" />
+ <color_swatch
+ border_color="0.45098 0.517647 0.607843 1"
+ can_apply_immediately="true"
+ follows="left|top"
+ height="80"
+ label="Color/Tint"
+ layout="topleft"
+ left_delta="0"
+ name="Color/Tint"
+ tool_tip="Click to open Color Picker"
+ top_delta="80"
+ width="64" />
+ <button
+ follows="left|top"
+ height="24"
+ label="Create New Skirt"
+ label_selected="Create New Skirt"
+ layout="topleft"
+ left_delta="0"
+ name="Create New"
+ top_delta="-41"
+ width="120" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Take Off"
+ label_selected="Take Off"
+ layout="topleft"
+ left_delta="0"
+ name="Take Off"
+ top_pad="102"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Save"
+ label_selected="Save"
+ layout="topleft"
+ left="123"
+ name="Save"
+ top="458"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Save As..."
+ label_selected="Save As..."
+ layout="topleft"
+ left_pad="6"
+ name="Save As"
+ top_delta="0"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Revert"
+ label_selected="Revert"
+ layout="topleft"
+ left_pad="6"
+ name="Revert"
+ top_delta="0"
+ width="82" />
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="481"
+ label="Alpha"
+ layout="topleft"
+ left_delta="0"
+ name="Alpha"
+ top_delta="0"
+ width="389">
+ <icon
+ follows="top|right"
+ height="16"
+ image_name="icon_lock.tga"
+ layout="topleft"
+ left="333"
+ mouse_opaque="true"
+ name="square"
+ top="5"
+ width="16" />
+ <icon
+ height="16"
+ layout="topleft"
+ left_delta="-325"
+ mouse_opaque="true"
+ top_delta="3"
+ width="16" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_pad="2"
+ name="title"
+ top_delta="0"
+ width="355">
+ [DESC]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_no_modify"
+ top_delta="0"
+ width="355">
+ [DESC]: cannot modify
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_loading"
+ top_delta="0"
+ width="355">
+ [DESC]: loading...
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_not_worn"
+ top_delta="0"
+ width="355">
+ [DESC]: not worn
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="14"
+ layout="topleft"
+ left="8"
+ name="path"
+ top="24"
+ width="373">
+ Located in [PATH]
+ </text>
+ <spinner
+ decimal_digits="0"
+ follows="left|top|right"
+ height="16"
+ increment="1"
+ initial_value="0"
+ label="Item"
+ label_width="30"
+ layout="topleft"
+ left_delta="2"
+ max_val="5"
+ name="index"
+ text_enabled_color="110, 15, 15, 255"
+ top_pad="6"
+ width="87" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="28"
+ layout="topleft"
+ left_delta="-2"
+ name="not worn instructions"
+ top_delta="2"
+ width="373">
+ Put on a new alpha mask by dragging one from your inventory
+to your avatar. Alternately, you create a new one from
+scratch and wear it.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="28"
+ layout="topleft"
+ left_delta="0"
+ name="no modify instructions"
+ top_delta="0"
+ width="373">
+ You do not have permission to modify this wearable.
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom="486"
+ follows="left|top|right"
+ font="SansSerif"
+ halign="right"
+ height="28"
+ layout="topleft"
+ name="Item Action Label"
+ right="119"
+ width="100">
+ Alpha:
+ </text>
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="80"
+ label="Lower Alpha"
+ layout="topleft"
+ left="8"
+ name="Lower Alpha"
+ tool_tip="Click to choose a picture"
+ top="65"
+ width="64" />
+ <check_box
+ control_name="LowerAlphaTextureInvisible"
+ follows="left"
+ height="16"
+ layout="topleft"
+ left_pad="6"
+ name="lower alpha texture invisible"
+ top_delta="4"
+ width="16" />
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="80"
+ label="Upper Alpha"
+ layout="topleft"
+ left="8"
+ name="Upper Alpha"
+ tool_tip="Click to choose a picture"
+ top="145"
+ width="64" />
+ <check_box
+ control_name="UpperAlphaTextureInvisible"
+ follows="left"
+ height="16"
+ layout="topleft"
+ left_pad="6"
+ name="upper alpha texture invisible"
+ top_delta="4"
+ width="16" />
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="80"
+ label="Head Alpha"
+ layout="topleft"
+ left="8"
+ name="Head Alpha"
+ tool_tip="Click to choose a picture"
+ top="225"
+ width="64" />
+ <check_box
+ control_name="HeadAlphaTextureInvisible"
+ follows="left"
+ height="16"
+ layout="topleft"
+ left_pad="6"
+ name="head alpha texture invisible"
+ top_delta="4"
+ width="16" />
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="80"
+ label="Eye Alpha"
+ layout="topleft"
+ left="8"
+ name="Eye Alpha"
+ tool_tip="Click to choose a picture"
+ top="305"
+ width="64" />
+ <check_box
+ control_name="Eye AlphaTextureInvisible"
+ follows="left"
+ height="16"
+ layout="topleft"
+ left_pad="6"
+ name="eye alpha texture invisible"
+ top_delta="4"
+ width="16" />
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="80"
+ label="Hair Alpha"
+ layout="topleft"
+ left="8"
+ name="Hair Alpha"
+ tool_tip="Click to choose a picture"
+ top="385"
+ width="64" />
+ <check_box
+ control_name="HairAlphaTextureInvisible"
+ follows="left"
+ height="16"
+ layout="topleft"
+ left_pad="6"
+ name="hair alpha texture invisible"
+ top_delta="4"
+ width="16" />
+ <button
+ follows="left|top"
+ height="24"
+ label="Create New Alpha"
+ label_selected="Create New Alpha"
+ layout="topleft"
+ left="8"
+ name="Create New"
+ top="104"
+ width="120" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Take Off"
+ label_selected="Take Off"
+ layout="topleft"
+ left_delta="-4"
+ name="Take Off"
+ top_pad="332"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Save"
+ label_selected="Save"
+ layout="topleft"
+ left_pad="37"
+ name="Save"
+ top_delta="-2"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Save As..."
+ label_selected="Save As..."
+ layout="topleft"
+ left_pad="6"
+ name="Save As"
+ top_delta="0"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Revert"
+ label_selected="Revert"
+ layout="topleft"
+ left_pad="6"
+ name="Revert"
+ top_delta="0"
+ width="82" />
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="481"
+ label="Tattoo"
+ layout="topleft"
+ left_delta="0"
+ name="Tattoo"
+ top_delta="0"
+ width="389">
+ <icon
+ follows="top|right"
+ height="16"
+ image_name="icon_lock.tga"
+ layout="topleft"
+ left="333"
+ mouse_opaque="true"
+ name="square"
+ top="5"
+ width="16" />
+ <icon
+ height="16"
+ layout="topleft"
+ left_delta="-325"
+ mouse_opaque="true"
+ top_delta="3"
+ width="16" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_pad="2"
+ name="title"
+ top_delta="0"
+ width="355">
+ [DESC]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_no_modify"
+ top_delta="0"
+ width="355">
+ [DESC]: cannot modify
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_loading"
+ top_delta="0"
+ width="355">
+ [DESC]: loading...
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="title_not_worn"
+ top_delta="0"
+ width="355">
+ [DESC]: not worn
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="14"
+ layout="topleft"
+ left="8"
+ name="path"
+ top="24"
+ width="373">
+ Located in [PATH]
+ </text>
+ <spinner
+ decimal_digits="0"
+ follows="left|top|right"
+ height="16"
+ increment="1"
+ initial_value="0"
+ label="Item"
+ label_width="30"
+ layout="topleft"
+ left_delta="2"
+ max_val="5"
+ name="index"
+ text_enabled_color="110, 15, 15, 255"
+ top_pad="6"
+ width="87" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="28"
+ layout="topleft"
+ left_delta="-2"
+ name="not worn instructions"
+ top_delta="2"
+ width="373">
+ Put on a new tattoo by dragging one from your inventory
+to your avatar. Alternately, you create a new one from
+scratch and wear it.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="28"
+ layout="topleft"
+ left_delta="0"
+ name="no modify instructions"
+ top_delta="0"
+ width="373">
+ You do not have permission to modify this wearable.
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom="486"
+ follows="left|top|right"
+ font="SansSerif"
+ halign="right"
+ height="28"
+ layout="topleft"
+ name="Item Action Label"
+ right="119"
+ width="100">
+ Tattoo:
+ </text>
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="80"
+ label="Head Tattoo"
+ layout="topleft"
+ left="8"
+ name="Head Tattoo"
+ tool_tip="Click to choose a picture"
+ top="65"
+ width="64" />
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="80"
+ label="Upper Tattoo"
+ layout="topleft"
+ left_delta="0"
+ name="Upper Tattoo"
+ tool_tip="Click to choose a picture"
+ top_delta="80"
+ width="64" />
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="80"
+ label="Lower Tattoo"
+ layout="topleft"
+ left_delta="0"
+ name="Lower Tattoo"
+ tool_tip="Click to choose a picture"
+ top_delta="80"
+ width="64" />
+ <button
+ follows="left|top"
+ height="24"
+ label="Create New Tattoo"
+ label_selected="Create New Tattoo"
+ layout="topleft"
+ left_delta="0"
+ name="Create New"
+ top_delta="-121"
+ width="120" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Take Off"
+ label_selected="Take Off"
+ layout="topleft"
+ left_delta="-4"
+ name="Take Off"
+ top_pad="332"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Save"
+ label_selected="Save"
+ layout="topleft"
+ left_pad="37"
+ name="Save"
+ top_delta="-2"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Save As..."
+ label_selected="Save As..."
+ layout="topleft"
+ left_pad="6"
+ name="Save As"
+ top_delta="0"
+ width="82" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Revert"
+ label_selected="Revert"
+ layout="topleft"
+ left_pad="6"
+ name="Revert"
+ top_delta="0"
+ width="82" />
+ </panel>
+ </tab_container>
+ <scroll_container
+ follows="left|top|right|bottom"
+ height="382"
+ layout="topleft"
+ left="197"
+ mouse_opaque="false"
+ name="panel_container"
+ top="94"
+ width="292">
+ <scrolling_panel_list
+ follows="left|bottom"
+ layout="topleft"
+ name="panel_list" />
+ </scroll_container>
+ <button
+ bottom="536"
+ follows="right|bottom"
+ height="20"
+ label="Cancel"
+ label_selected="Cancel"
+ layout="topleft"
+ name="Cancel"
+ right="-10"
+ width="100" />
+ <button
+ bottom="536"
+ follows="right|bottom"
+ height="20"
+ label="OK"
+ label_selected="OK"
+ layout="topleft"
+ name="Ok"
+ right="-116"
+ width="100" />
+ <button
+ follows="left|bottom"
+ height="20"
+ label="Make Outfit..."
+ label_selected="Make Outfit..."
+ layout="topleft"
+ left_delta="-178"
+ name="Make Outfit"
+ top_delta="0"
+ width="100" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/en/floater_day_cycle_options.xml
new file mode 100644
index 0000000000..9ca7172f81
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_day_cycle_options.xml
@@ -0,0 +1,613 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ height="275"
+ layout="topleft"
+ name="Day Cycle Floater"
+ save_rect="true"
+ title="Day Cycle Editor"
+ width="646">
+ <tab_container
+ follows="left|top"
+ height="255"
+ layout="topleft"
+ left="0"
+ name="Day Cycle Tabs"
+ tab_position="top"
+ top="20"
+ width="644">
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="255"
+ label="Day Cycle"
+ layout="topleft"
+ left="1"
+ mouse_opaque="false"
+ name="Day Cycle"
+ top="0"
+ width="642">
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="15"
+ label="?"
+ layout="topleft"
+ left="612"
+ name="WLDayCycleHelp"
+ top="3"
+ width="18" />
+ <multi_slider
+ can_edit_text="true"
+ control_name="WLTimeSlider"
+ decimal_digits="0"
+ draw_track="false"
+ follows="bottom"
+ height="10"
+ increment="0.0833333"
+ initial_value="0"
+ layout="topleft"
+ left="20"
+ max_sliders="20"
+ max_val="24"
+ name="WLTimeSlider"
+ show_text="false"
+ top="25"
+ use_triangle="true"
+ width="525" />
+ <multi_slider
+ can_edit_text="true"
+ control_name="WLDayCycleKeys"
+ decimal_digits="0"
+ follows="bottom"
+ height="10"
+ increment="0.0833333"
+ initial_value="0"
+ layout="topleft"
+ left_delta="0"
+ max_sliders="20"
+ max_val="24"
+ name="WLDayCycleKeys"
+ show_text="false"
+ top_pad="15"
+ width="525" />
+ <text
+ type="string"
+ length="1"
+ bg_visible="true"
+ border_visible="true"
+ control_name="WL12am"
+ follows="left|top|right"
+ height="6"
+ layout="topleft"
+ left="8"
+ name="WL12am"
+ top="74"
+ width="55">
+ 12am
+ </text>
+ <text
+ type="string"
+ length="1"
+ bg_visible="true"
+ border_visible="true"
+ control_name="WL3am"
+ follows="left|top|right"
+ height="6"
+ layout="topleft"
+ left_pad="10"
+ name="WL3am"
+ top_delta="0"
+ width="55">
+ 3am
+ </text>
+ <text
+ type="string"
+ length="1"
+ bg_visible="true"
+ border_visible="true"
+ control_name="WL6am"
+ follows="left|top|right"
+ height="6"
+ layout="topleft"
+ left_pad="10"
+ name="WL6am"
+ top_delta="0"
+ width="55">
+ 6am
+ </text>
+ <text
+ type="string"
+ length="1"
+ bg_visible="true"
+ border_visible="true"
+ control_name="WL9am"
+ follows="left|top|right"
+ height="6"
+ layout="topleft"
+ left_pad="10"
+ name="WL9amHash"
+ top_delta="0"
+ width="55">
+ 9am
+ </text>
+ <text
+ type="string"
+ length="1"
+ bg_visible="true"
+ border_visible="true"
+ control_name="WL12pm"
+ follows="left|top|right"
+ height="6"
+ layout="topleft"
+ left_pad="10"
+ name="WL12pmHash"
+ top_delta="0"
+ width="55">
+ 12pm
+ </text>
+ <text
+ type="string"
+ length="1"
+ bg_visible="true"
+ border_visible="true"
+ control_name="WL3pm"
+ follows="left|top|right"
+ height="6"
+ layout="topleft"
+ left_pad="10"
+ name="WL3pm"
+ top_delta="0"
+ width="55">
+ 3pm
+ </text>
+ <text
+ type="string"
+ length="1"
+ bg_visible="true"
+ border_visible="true"
+ control_name="WL6pm"
+ follows="left|top|right"
+ height="6"
+ layout="topleft"
+ left_pad="10"
+ name="WL6pm"
+ top_delta="0"
+ width="55">
+ 6pm
+ </text>
+ <text
+ type="string"
+ length="1"
+ bg_visible="true"
+ border_visible="true"
+ control_name="WL9pm"
+ follows="left|top|right"
+ height="6"
+ layout="topleft"
+ left_pad="10"
+ name="WL9pm"
+ top_delta="0"
+ width="55">
+ 9pm
+ </text>
+ <text
+ type="string"
+ length="1"
+ bg_visible="true"
+ border_visible="true"
+ control_name="WL12am2"
+ follows="left|top|right"
+ height="6"
+ layout="topleft"
+ left_pad="10"
+ name="WL12am2"
+ top_delta="0"
+ width="55">
+ 12am
+ </text>
+ <text
+ type="string"
+ length="1"
+ bg_visible="true"
+ border_visible="true"
+ control_name="WL12amHash"
+ follows="left|top|right"
+ font="SansSerif"
+ height="14"
+ layout="topleft"
+ left="20"
+ name="WL12amHash"
+ top="54"
+ width="4">
+ |
+ </text>
+ <text
+ type="string"
+ length="1"
+ bg_visible="true"
+ border_visible="true"
+ control_name="WL3amHash"
+ follows="left|top|right"
+ font="SansSerif"
+ height="11"
+ layout="topleft"
+ left_pad="61"
+ name="WL3amHash"
+ top_delta="3"
+ width="4">
+ I
+ </text>
+ <text
+ type="string"
+ length="1"
+ bg_visible="true"
+ border_visible="true"
+ control_name="WL6amHash"
+ follows="left|top|right"
+ font="SansSerif"
+ height="14"
+ layout="topleft"
+ left_pad="61"
+ name="WL6amHash"
+ top_delta="-3"
+ width="4">
+ |
+ </text>
+ <text
+ type="string"
+ length="1"
+ bg_visible="true"
+ border_visible="true"
+ control_name="WL9amHash"
+ follows="left|top|right"
+ font="SansSerif"
+ height="11"
+ layout="topleft"
+ left_pad="61"
+ name="WL9amHash2"
+ top_delta="3"
+ width="4">
+ I
+ </text>
+ <text
+ type="string"
+ length="1"
+ bg_visible="true"
+ border_visible="true"
+ control_name="WL12pmHash"
+ follows="left|top|right"
+ font="SansSerif"
+ height="14"
+ layout="topleft"
+ left_pad="61"
+ name="WL12pmHash2"
+ top_delta="-3"
+ width="4">
+ |
+ </text>
+ <text
+ type="string"
+ length="1"
+ bg_visible="true"
+ border_visible="true"
+ control_name="WL3pmHash"
+ follows="left|top|right"
+ font="SansSerif"
+ height="11"
+ layout="topleft"
+ left_pad="61"
+ name="WL3pmHash"
+ top_delta="3"
+ width="4">
+ I
+ </text>
+ <text
+ type="string"
+ length="1"
+ bg_visible="true"
+ border_visible="true"
+ control_name="WL6pmHash"
+ follows="left|top|right"
+ font="SansSerif"
+ height="14"
+ layout="topleft"
+ left_pad="61"
+ name="WL6pmHash"
+ top_delta="-3"
+ width="4">
+ |
+ </text>
+ <text
+ type="string"
+ length="1"
+ bg_visible="true"
+ border_visible="true"
+ control_name="WL9pmHash"
+ follows="left|top|right"
+ font="SansSerif"
+ height="11"
+ layout="topleft"
+ left_pad="61"
+ name="WL9pmHash"
+ top_delta="3"
+ width="4">
+ I
+ </text>
+ <text
+ type="string"
+ length="1"
+ bg_visible="true"
+ border_visible="true"
+ control_name="WL12amHash2"
+ follows="left|top|right"
+ font="SansSerif"
+ height="14"
+ layout="topleft"
+ left_pad="61"
+ name="WL12amHash2"
+ top_delta="-3"
+ width="4">
+ |
+ </text>
+ <button
+ height="20"
+ label="Add Key"
+ label_selected="Add Key"
+ layout="topleft"
+ left="550"
+ name="WLAddKey"
+ top="20"
+ width="80" />
+ <button
+ height="20"
+ label="Delete Key"
+ label_selected="Delete Key"
+ layout="topleft"
+ left_delta="0"
+ name="WLDeleteKey"
+ top_pad="5"
+ width="80" />
+ <text
+ type="string"
+ length="1"
+ bg_visible="true"
+ border_visible="true"
+ control_name="DayCycleText"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="20"
+ name="WLCurKeyFrameText"
+ top="104"
+ width="150">
+ Key Frame Settings:
+ </text>
+ <text
+ type="string"
+ length="1"
+ bg_visible="true"
+ border_visible="true"
+ control_name="DayCycleText"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="30"
+ name="WLCurKeyTimeText"
+ top="124"
+ width="100">
+ Key Time:
+ </text>
+ <spinner
+ control_name="WLCurKeyHour"
+ decimal_digits="0"
+ follows="left|top"
+ height="16"
+ increment="1"
+ initial_value="0"
+ label="Hour"
+ label_width="30"
+ layout="topleft"
+ left_delta="0"
+ max_val="100"
+ name="WLCurKeyHour"
+ top_pad="4"
+ width="70" />
+ <spinner
+ control_name="WLCurKeyMin"
+ decimal_digits="0"
+ follows="left|top"
+ height="16"
+ increment="5"
+ initial_value="0"
+ label="Min"
+ label_width="20"
+ layout="topleft"
+ left_pad="5"
+ max_val="55"
+ name="WLCurKeyMin"
+ top_delta="0"
+ width="60" />
+ <text
+ type="string"
+ length="1"
+ bg_visible="true"
+ border_visible="true"
+ control_name="WLCurKeyTimeText"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="30"
+ name="WLCurKeyTimeText2"
+ top="169"
+ width="120">
+ Key Preset:
+ </text>
+ <combo_box
+ height="18"
+ label="Preset"
+ layout="topleft"
+ left_delta="0"
+ name="WLKeyPresets"
+ top_pad="7"
+ width="155" />
+ <view_border
+ bevel_style="none"
+ follows="top|left"
+ height="115"
+ layout="topleft"
+ left="12"
+ top="101"
+ width="190" />
+ <text
+ type="string"
+ length="1"
+ bg_visible="true"
+ border_visible="true"
+ control_name="DayCycleText"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="220"
+ name="DayCycleText"
+ top="114"
+ width="120">
+ Snap:
+ </text>
+ <combo_box
+ enabled="false"
+ height="18"
+ label="5 min"
+ layout="topleft"
+ left_delta="0"
+ name="WLSnapOptions"
+ top_pad="7"
+ width="70" />
+ <text
+ type="string"
+ length="1"
+ bg_visible="true"
+ border_visible="true"
+ control_name="DayCycleText"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="DayCycleText2"
+ top_pad="9"
+ width="120">
+ Length of Cycle:
+ </text>
+ <spinner
+ control_name="WLLengthOfDayHour"
+ decimal_digits="0"
+ follows="left|top"
+ height="16"
+ increment="1"
+ initial_value="0"
+ label="Hour"
+ label_width="30"
+ layout="topleft"
+ left_delta="0"
+ max_val="100"
+ name="WLLengthOfDayHour"
+ top_pad="4"
+ width="70" />
+ <spinner
+ control_name="WLLengthOfDayMin"
+ decimal_digits="0"
+ follows="left|top"
+ height="16"
+ increment="1"
+ initial_value="0"
+ label="Min"
+ label_width="20"
+ layout="topleft"
+ left_pad="5"
+ max_val="59"
+ name="WLLengthOfDayMin"
+ top_delta="0"
+ width="60" />
+ <spinner
+ control_name="WLLengthOfDaySec"
+ decimal_digits="0"
+ follows="left|top"
+ height="16"
+ increment="1"
+ initial_value="24"
+ label="Sec"
+ label_width="20"
+ layout="topleft"
+ left_pad="5"
+ max_val="59"
+ name="WLLengthOfDaySec"
+ top_delta="0"
+ width="60" />
+ <text
+ type="string"
+ length="1"
+ bg_visible="true"
+ border_visible="true"
+ control_name="DayCycleText"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="310"
+ name="DayCycleText3"
+ top="114"
+ width="120">
+ Preview:
+ </text>
+ <button
+ height="20"
+ label="Play"
+ label_selected="Play"
+ layout="topleft"
+ left_delta="0"
+ name="WLAnimSky"
+ top_pad="5"
+ width="50" />
+ <button
+ height="20"
+ label="Stop!"
+ label_selected="Stop"
+ layout="topleft"
+ left_pad="5"
+ name="WLStopAnimSky"
+ top_delta="0"
+ width="50" />
+ <button
+ height="20"
+ label="Use Estate Time"
+ label_selected="Go to Estate Time"
+ layout="topleft"
+ left_pad="5"
+ name="WLUseLindenTime"
+ top_delta="0"
+ width="140" />
+ <button
+ height="20"
+ label="Save Test Day"
+ label_selected="Save Test Day"
+ layout="topleft"
+ left="480"
+ name="WLSaveDayCycle"
+ top="175"
+ width="150" />
+ <button
+ height="20"
+ label="Load Test Day"
+ label_selected="Load Test Day"
+ layout="topleft"
+ left_delta="0"
+ name="WLLoadDayCycle"
+ top_pad="5"
+ width="150" />
+ </panel>
+ </tab_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_device_settings.xml b/indra/newview/skins/default/xui/en/floater_device_settings.xml
new file mode 100644
index 0000000000..fa0cce3795
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_device_settings.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ height="260"
+ layout="topleft"
+ name="floater_device_settings"
+ title="Voice Chat Device Settings"
+ width="405">
+ <panel
+ bottom="260"
+ filename="panel_audio_device.xml"
+ layout="topleft"
+ left="2"
+ name="device_settings"
+ right="-5"
+ top="20" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_env_settings.xml b/indra/newview/skins/default/xui/en/floater_env_settings.xml
new file mode 100644
index 0000000000..8bb67d0d4b
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_env_settings.xml
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ height="150"
+ layout="topleft"
+ name="Environment Editor Floater"
+ save_rect="true"
+ title="Environment Editor"
+ width="600">
+ <floater.string
+ name="timeStr">
+ [hour12,datetime,utc]:[min,datetime,utc] [ampm,datetime,utc]
+ </floater.string>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="EnvTimeText"
+ top="32"
+ width="140">
+ Time of Day
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="16"
+ layout="topleft"
+ left="15"
+ name="EnvTimeText2"
+ top="62"
+ width="140">
+ 12:00 PM
+ </text>
+ <icon
+ height="25"
+ image_name="icon_diurnal.tga"
+ layout="topleft"
+ left="85"
+ name="EnvDayCycle"
+ top="30"
+ width="200" />
+ <slider
+ control_name="EnvTimeSlider"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.0069444"
+ initial_value="0.7"
+ layout="topleft"
+ left_delta="0"
+ max_val="0.99"
+ name="EnvTimeSlider"
+ show_text="false"
+ top_pad="10"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="EnvCloudText"
+ top="86"
+ width="140">
+ Cloud Cover
+ </text>
+ <slider
+ control_name="EnvCloudSlider"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.7"
+ layout="topleft"
+ left_delta="75"
+ name="EnvCloudSlider"
+ top_delta="4"
+ width="210" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="310"
+ name="EnvWaterColorText"
+ top="39"
+ width="140">
+ Water Color
+ </text>
+ <color_swatch
+ border_color="0.45098 0.517647 0.607843 1"
+ can_apply_immediately="true"
+ color="0.5 0.5 0.5 1"
+ follows="left|top"
+ height="50"
+ layout="topleft"
+ left="390"
+ name="EnvWaterColor"
+ tool_tip="Click to open Color Picker"
+ top="30"
+ width="40" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="310"
+ name="EnvWaterFogText"
+ top="86"
+ width="140">
+ Water Fog
+ </text>
+ <slider
+ control_name="EnvWaterFogSlider"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ initial_value="0"
+ layout="topleft"
+ left_delta="75"
+ max_val="10"
+ name="EnvWaterFogSlider"
+ top_delta="4"
+ width="210" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="20"
+ label="Use Estate Time"
+ layout="topleft"
+ left="8"
+ name="EnvUseEstateTimeButton"
+ top="120"
+ width="137" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="20"
+ label="Advanced Sky"
+ layout="topleft"
+ left_pad="9"
+ name="EnvAdvancedSkyButton"
+ top_delta="0"
+ width="137" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="20"
+ label="Advanced Water"
+ layout="topleft"
+ left_pad="9"
+ name="EnvAdvancedWaterButton"
+ top_delta="0"
+ width="137" />
+ <button
+ follows="left|top"
+ height="18"
+ label="?"
+ layout="topleft"
+ left="570"
+ name="EnvSettingsHelpButton"
+ top="22"
+ width="18" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_font_test.xml b/indra/newview/skins/default/xui/en/floater_font_test.xml
new file mode 100644
index 0000000000..8babbaa273
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_font_test.xml
@@ -0,0 +1,336 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_resize="true"
+ height="800"
+ layout="topleft"
+ min_height="175"
+ min_width="154"
+ name="contents"
+ title="Font Test"
+ width="500">
+ <text
+ type="string"
+ length="1"
+ bottom_delta="40"
+ follows="left|top|right"
+ height="16"
+ layout="topleft"
+ left="16">
+ SansSerifSmall
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="20"
+ follows="left|top|right"
+ font="SansSerifMedium"
+ height="16"
+ layout="topleft"
+ left="16">
+ SansSerifMedium
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="20"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="16">
+ SansSerif, no size or style (should be same as medium)
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="20"
+ follows="left|top|right"
+ font="SansSerifLarge"
+ height="16"
+ layout="topleft"
+ left="16">
+ SansSerifLarge
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="36"
+ follows="left|top|right"
+ font="SansSerifHuge"
+ height="32"
+ layout="topleft"
+ left="16">
+ SansSerifHuge
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="40"
+ follows="left|top|right"
+ font="Monospace"
+ height="16"
+ layout="topleft"
+ left="16">
+ Monospace
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="20"
+ follows="left|top|right"
+ font="Monospace"
+ font.size="Large"
+ height="16"
+ layout="topleft"
+ left="16">
+ Monospace size=Large
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="20"
+ follows="left|top|right"
+ font="SansSerifLarge"
+ font.style="BOLD"
+ height="16"
+ layout="topleft"
+ left="16">
+ SansSerifLarge style=BOLD
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="20"
+ follows="left|top|right"
+ font="SansSerifBold"
+ height="16"
+ layout="topleft"
+ left="16">
+ SansSerifBold
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="20"
+ follows="left|top|right"
+ font="SansSerif"
+ font.style="BOLD"
+ height="16"
+ layout="topleft"
+ left="16">
+ SansSerif style=BOLD (should be same as SansSerifBold)
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="20"
+ follows="left|top|right"
+ font="SansSerif"
+ font.style="ITALIC"
+ height="16"
+ layout="topleft"
+ left="16">
+ SansSerif style=ITALIC
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="20"
+ follows="left|top|right"
+ font="SansSerif"
+ font.style="BOLD|ITALIC"
+ height="16"
+ layout="topleft"
+ left="16">
+ SansSerif style=BOLD|ITALIC
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="20"
+ follows="left|top|right"
+ font="SansSerif"
+ font.style="BOLD|ITALIC"
+ height="16"
+ layout="topleft"
+ left="16">
+ SansSerif style=BOLD|ITALIC shadow=soft
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="20"
+ follows="left|top|right"
+ font="SansSerif"
+ font.style="UNDERLINE"
+ height="16"
+ layout="topleft"
+ left="16">
+ SansSerif style=UNDERLINE
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="20"
+ follows="left|top|right"
+ font="SansSerif"
+ font_shadow="hard"
+ height="16"
+ layout="topleft"
+ left="16">
+ SansSerif style=hard
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="20"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="16">
+ SansSerif shadow=soft
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="20"
+ follows="left|top|right"
+ font="DejaVu"
+ height="16"
+ layout="topleft"
+ left="16">
+ DejaVu
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="20"
+ follows="left|top|right"
+ font="DejaVu"
+ font.style="BOLD"
+ height="16"
+ layout="topleft"
+ left="16">
+ DejaVu style=BOLD
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="20"
+ follows="left|top|right"
+ font="DejaVu"
+ font.style="ITALIC"
+ height="16"
+ layout="topleft"
+ left="16">
+ DejaVu style=ITALIC
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="20"
+ follows="left|top|right"
+ font="DejaVu"
+ font.style="BOLD|ITALIC"
+ height="16"
+ layout="topleft"
+ left="16">
+ DejaVu style=BOLD|ITALIC
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="20"
+ follows="left|top|right"
+ font="DejaVu"
+ font.size="Large"
+ font.style="BOLD|ITALIC"
+ height="16"
+ layout="topleft"
+ left="16">
+ DejaVu size=Large style=BOLD|ITALIC
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="20"
+ follows="left|top|right"
+ font="Helvetica"
+ height="16"
+ layout="topleft"
+ left="16">
+ Helvetica
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="20"
+ follows="left|top|right"
+ font="Helvetica"
+ font.style="BOLD"
+ height="16"
+ layout="topleft"
+ left="16">
+ Helvetica style=BOLD
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="20"
+ follows="left|top|right"
+ font="Helvetica"
+ font.style="ITALIC"
+ height="16"
+ layout="topleft"
+ left="16">
+ Helvetica style=ITALIC
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="20"
+ follows="left|top|right"
+ font="Helvetica"
+ font.style="BOLD|ITALIC"
+ height="16"
+ layout="topleft"
+ left="16">
+ Helvetica style=BOLD|ITALIC
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="20"
+ follows="left|top|right"
+ font="Helvetica"
+ font.size="Large"
+ font.style="BOLD|ITALIC"
+ height="16"
+ layout="topleft"
+ left="16">
+ Helvetica size=Large style=BOLD|ITALIC
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="20"
+ follows="left|top|right"
+ font="OverrideTest"
+ height="16"
+ layout="topleft"
+ left="16"
+ name="linea">
+ OverrideTest, should be times, from default/xui/en
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="20"
+ follows="left|top|right"
+ height="16"
+ layout="topleft"
+ left="16">
+ BogusFontName
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_gesture.xml b/indra/newview/skins/default/xui/en/floater_gesture.xml
new file mode 100644
index 0000000000..c4d024ae8b
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_gesture.xml
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_resize="true"
+ height="465"
+ layout="topleft"
+ min_height="200"
+ min_width="350"
+ name="gestures"
+ title="Active Gestures"
+ width="350">
+ <floater.string
+ name="loading">
+ Loading...
+ </floater.string>
+ <floater.string
+ name="playing">
+ (Playing)
+ </floater.string>
+ <text
+ type="string"
+ length="1"
+ bottom="30"
+ follows="top|left"
+ layout="topleft"
+ left="15"
+ name="help_label">
+ Double-click a gesture to play animations and sounds.
+ </text>
+ <scroll_list
+ bottom_delta="390"
+ draw_heading="true"
+ follows="top|left|bottom|right"
+ height="380"
+ layout="topleft"
+ left="15"
+ name="gesture_list"
+ right="-15">
+ <scroll_list.columns
+ label="Trigger"
+ name="trigger"
+ width="70" />
+ <scroll_list.columns
+ label="Key"
+ name="shortcut"
+ width="70" />
+ <scroll_list.columns
+ label=""
+ name="key"
+ width="-1" />
+ <scroll_list.columns
+ label="Name"
+ name="name"
+ width="160" />
+ </scroll_list>
+ <button
+ follows="bottom|right"
+ height="20"
+ label="New"
+ layout="topleft"
+ left_delta="0"
+ name="new_gesture_btn"
+ top_pad="10"
+ width="83" />
+ <button
+ follows="bottom|right"
+ height="20"
+ label="Edit"
+ layout="topleft"
+ left_pad="6"
+ name="edit_btn"
+ top_delta="0"
+ width="83" />
+ <button
+ follows="bottom|right"
+ height="20"
+ label="Play"
+ layout="topleft"
+ left_pad="6"
+ name="play_btn"
+ top_delta="0"
+ width="83" />
+ <button
+ follows="bottom|right"
+ height="20"
+ label="Stop"
+ layout="topleft"
+ left_delta="0"
+ name="stop_btn"
+ top_delta="0"
+ width="83" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_god_tools.xml b/indra/newview/skins/default/xui/en/floater_god_tools.xml
new file mode 100644
index 0000000000..e35ab3ea49
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_god_tools.xml
@@ -0,0 +1,685 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ height="384"
+ layout="topleft"
+ name="godtools floater"
+ title="God Tools"
+ width="400">
+ <tab_container
+ follows="left|top"
+ height="364"
+ layout="topleft"
+ left="0"
+ name="GodTools Tabs"
+ tab_position="top"
+ top="20"
+ width="400">
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="347"
+ label="Grid"
+ layout="topleft"
+ left="1"
+ mouse_opaque="false"
+ name="grid"
+ top="16"
+ width="398">
+ <button
+ follows="left|top"
+ height="20"
+ label="Kick all users"
+ label_selected="Kick all users"
+ layout="topleft"
+ left="10"
+ name="Kick all users"
+ top="8"
+ width="100" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Flush This Region&apos;s Map Visibility Caches"
+ label_selected="Flush This Region&apos;s Map Visibility Caches"
+ layout="topleft"
+ left_delta="0"
+ name="Flush This Region&apos;s Map Visibility Caches"
+ top_pad="8"
+ width="250" />
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="347"
+ label="Region"
+ layout="topleft"
+ left_delta="0"
+ mouse_opaque="false"
+ name="region"
+ top_delta="0"
+ width="398">
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="10"
+ name="Sim Name:"
+ top="10"
+ width="50">
+ Sim Name:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top|right"
+ height="16"
+ layout="topleft"
+ left_pad="10"
+ max_length="63"
+ name="region name"
+ top_delta="0"
+ width="208" />
+ <check_box
+ height="16"
+ label="Prelude"
+ layout="topleft"
+ left="10"
+ name="check prelude"
+ tool_tip="Set this to make the region a prelude."
+ top="30"
+ width="180" />
+ <check_box
+ height="16"
+ label="Fixed Sun"
+ layout="topleft"
+ left_delta="0"
+ name="check fixed sun"
+ tool_tip="Fix the sun position (like in Region/Estate &gt; Terrain."
+ top_pad="4"
+ width="180" />
+ <check_box
+ height="16"
+ label="Reset Home On Teleport"
+ layout="topleft"
+ left_delta="0"
+ name="check reset home"
+ tool_tip="When resident teleports out, reset their home to the destination position."
+ top_pad="4"
+ width="180" />
+ <check_box
+ height="16"
+ label="Visible"
+ layout="topleft"
+ left_delta="0"
+ name="check visible"
+ tool_tip="Set this to make the region visible to non-gods."
+ top_pad="4"
+ width="180" />
+ <check_box
+ height="16"
+ label="Damage"
+ layout="topleft"
+ left_delta="0"
+ name="check damage"
+ tool_tip="Set this to enable damage in this region."
+ top_pad="4"
+ width="180" />
+ <check_box
+ height="16"
+ label="Block Traffic Tracking"
+ layout="topleft"
+ left_delta="0"
+ name="block dwell"
+ tool_tip="Set this to make the region not compute traffic."
+ top_pad="4"
+ width="180" />
+ <check_box
+ height="16"
+ label="Block Terraform"
+ layout="topleft"
+ left_delta="0"
+ name="block terraform"
+ tool_tip="Set this to disallow people terraforming their land"
+ top_pad="4"
+ width="180" />
+ <check_box
+ height="16"
+ label="Sandbox"
+ layout="topleft"
+ left_delta="0"
+ name="is sandbox"
+ tool_tip="Toggle whether this is a sandbox region."
+ top_pad="4"
+ width="180" />
+ <button
+ follows="top|right"
+ font="SansSerifSmall"
+ height="20"
+ label="Bake Terrain"
+ label_selected="Bake Terrain"
+ layout="topleft"
+ left_delta="-2"
+ name="Bake Terrain"
+ tool_tip="Save the current terrain as default."
+ top_pad="32"
+ width="110" />
+ <button
+ follows="top|right"
+ font="SansSerifSmall"
+ height="20"
+ label="Revert Terrain"
+ label_selected="Revert Terrain"
+ layout="topleft"
+ left_delta="0"
+ name="Revert Terrain"
+ tool_tip="Replace the current terrain with default."
+ top_pad="4"
+ width="110" />
+ <button
+ follows="top|right"
+ font="SansSerifSmall"
+ height="20"
+ label="Swap Terrain"
+ label_selected="Swap Terrain"
+ layout="topleft"
+ left_delta="0"
+ name="Swap Terrain"
+ tool_tip="Swap current terrain with default."
+ top_pad="4"
+ width="110" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="200"
+ name="estate id"
+ top="30"
+ width="190">
+ Estate ID:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="top|right"
+ height="16"
+ layout="topleft"
+ left_delta="108"
+ max_length="10"
+ name="estate"
+ top_delta="0"
+ width="50" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="200"
+ name="parent id"
+ top="50"
+ width="190">
+ Parent ID:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="top|right"
+ height="16"
+ layout="topleft"
+ left_delta="108"
+ max_length="10"
+ name="parentestate"
+ tool_tip="This is the parent estate for this region"
+ top_delta="0"
+ width="50" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="200"
+ name="Grid Pos: "
+ top="70"
+ width="190">
+ Grid Pos:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="top|right"
+ height="16"
+ layout="topleft"
+ left_delta="88"
+ max_length="10"
+ name="gridposx"
+ tool_tip="This is the grid x position for this region"
+ top_delta="0"
+ width="50" />
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="top|right"
+ height="16"
+ layout="topleft"
+ left_pad="10"
+ max_length="10"
+ name="gridposy"
+ tool_tip="This is the grid y position for this region"
+ top_delta="0"
+ width="40" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="200"
+ name="Redirect to Grid: "
+ top="90"
+ width="190">
+ Redirect to Grid:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="top|right"
+ height="16"
+ layout="topleft"
+ left_delta="88"
+ max_length="10"
+ name="redirectx"
+ top_delta="0"
+ width="50" />
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="top|right"
+ height="16"
+ layout="topleft"
+ left_pad="10"
+ max_length="10"
+ name="redirecty"
+ top_delta="0"
+ width="40" />
+ <spinner
+ follows="top|right"
+ height="16"
+ initial_value="1"
+ layout="topleft"
+ left="308"
+ max_val="4"
+ name="billable factor"
+ top="110"
+ width="80" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="-108"
+ name="billable factor text"
+ top_delta="0"
+ width="110">
+ Billable Factor:
+ </text>
+ <spinner
+ follows="top|right"
+ height="16"
+ increment="1"
+ initial_value="1"
+ layout="topleft"
+ left="308"
+ max_val="100"
+ name="land cost"
+ top="130"
+ width="80" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="-108"
+ name="land cost text"
+ top_delta="0"
+ width="110">
+ L$ per sq. meter:
+ </text>
+ <button
+ follows="top|right"
+ font="SansSerifSmall"
+ height="20"
+ label="Refresh"
+ label_selected="Refresh"
+ layout="topleft"
+ left="278"
+ name="Refresh"
+ tool_tip="Click here to refresh the above information."
+ top="150"
+ width="110" />
+ <button
+ follows="top|right"
+ font="SansSerifSmall"
+ height="20"
+ label="Apply"
+ label_selected="Apply"
+ layout="topleft"
+ left_delta="0"
+ name="Apply"
+ tool_tip="Click here to apply any changes from above."
+ top_pad="36"
+ width="110" />
+ <button
+ follows="top|right"
+ font="SansSerifSmall"
+ height="20"
+ label="Select Region"
+ label_selected="Select Region"
+ layout="topleft"
+ left="128"
+ name="Select Region"
+ tool_tip="Select the whole region with the land tool."
+ top="238"
+ width="110" />
+ <button
+ follows="top|right"
+ font="SansSerifSmall"
+ height="20"
+ label="Autosave now"
+ label_selected="Autosave now"
+ layout="topleft"
+ left_delta="0"
+ name="Autosave now"
+ tool_tip="Save gzipped state to autosave directory."
+ top_pad="4"
+ width="110" />
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="347"
+ label="Objects"
+ layout="topleft"
+ left_delta="0"
+ mouse_opaque="false"
+ name="objects"
+ top_delta="0"
+ width="398">
+ <panel.string
+ name="no_target">
+ (no target)
+ </panel.string>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="10"
+ name="Sim Name:"
+ top="10"
+ width="50">
+ Sim Name:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_pad="10"
+ name="region name"
+ top_delta="0"
+ width="320">
+ Welsh
+ </text>
+ <check_box
+ height="16"
+ label="Disable Scripts"
+ layout="topleft"
+ left="10"
+ name="disable scripts"
+ tool_tip="Set this to disable all scripts in this region"
+ top="30"
+ width="110" />
+ <check_box
+ height="16"
+ label="Disable Collisions"
+ layout="topleft"
+ left_pad="10"
+ name="disable collisions"
+ tool_tip="Set this to disable non-agent collisions in this region"
+ top_delta="0"
+ width="121" />
+ <check_box
+ height="16"
+ label="Disable Physics"
+ layout="topleft"
+ left_delta="120"
+ name="disable physics"
+ tool_tip="Set this to disable all physics in this region"
+ top_delta="0"
+ width="130" />
+ <button
+ follows="top|right"
+ font="SansSerifSmall"
+ height="20"
+ label="Apply"
+ label_selected="Apply"
+ layout="topleft"
+ left="278"
+ name="Apply"
+ tool_tip="Click here to apply any changes from above."
+ top="54"
+ width="110" />
+ <button
+ follows="top|right"
+ font="SansSerifSmall"
+ height="20"
+ label="Set Target"
+ label_selected="Set Target"
+ layout="topleft"
+ left="8"
+ name="Set Target"
+ tool_tip="Set the target avatar for object deletion."
+ top="78"
+ width="110" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_pad="12"
+ name="target_avatar_name"
+ top_delta="0"
+ width="260">
+ (no target)
+ </text>
+ <button
+ follows="top|right"
+ font="SansSerifSmall"
+ height="20"
+ label="Delete Target&apos;s Scripted Objects On Others Land"
+ label_selected="Delete Target&apos;s Scripted Objects On Others Land"
+ layout="topleft"
+ left="8"
+ name="Delete Target&apos;s Scripted Objects On Others Land"
+ tool_tip="Delete all scripted objects owned by the target on land not owned by the target. (no copy) objects will be returned."
+ top="126"
+ width="380" />
+ <button
+ follows="top|right"
+ font="SansSerifSmall"
+ height="20"
+ label="Delete Target&apos;s Scripted Objects On *Any* Land"
+ label_selected="Delete Target&apos;s Scripted Objects On *Any* Land"
+ layout="topleft"
+ left_delta="0"
+ name="Delete Target&apos;s Scripted Objects On *Any* Land"
+ tool_tip="Delete all scripted objects owned by the target in this region. (no copy) objects will be returned."
+ top_pad="28"
+ width="380" />
+ <button
+ follows="top|right"
+ font="SansSerifSmall"
+ height="20"
+ label="Delete *ALL* Of Target&apos;s Objects"
+ label_selected="Delete *ALL* Of Target&apos;s Objects"
+ layout="topleft"
+ left_delta="0"
+ name="Delete *ALL* Of Target&apos;s Objects"
+ tool_tip="Delete all objects owned by the target in this region. (no copy) objects will be returned."
+ top_pad="28"
+ width="380" />
+ <button
+ follows="top|right"
+ font="SansSerifSmall"
+ height="20"
+ label="Get Top Colliders"
+ label_selected="Get Top Colliders"
+ layout="topleft"
+ left_delta="0"
+ name="Get Top Colliders"
+ tool_tip="Gets list of objects experiencing the most narrowphase callbacks."
+ top_pad="28"
+ width="110" />
+ <button
+ follows="top|right"
+ font="SansSerifSmall"
+ height="20"
+ label="Get Top Scripts"
+ label_selected="Get Top Scripts"
+ layout="topleft"
+ left_delta="0"
+ name="Get Top Scripts"
+ tool_tip="Gets list of objects spending the most time running scripts."
+ top_pad="4"
+ width="110" />
+ <button
+ follows="top|right"
+ font="SansSerifSmall"
+ height="20"
+ label="Scripts digest"
+ label_selected="Scripts digest"
+ layout="topleft"
+ left_delta="0"
+ name="Scripts digest"
+ tool_tip="Gets a list of all scripts and number of occurences of each."
+ top_pad="4"
+ width="110" />
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="347"
+ label="Request"
+ layout="topleft"
+ left_delta="0"
+ name="request"
+ top_delta="0"
+ width="398">
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="10"
+ name="Destination:"
+ top="4"
+ width="80">
+ Destination:
+ </text>
+ <combo_box
+ height="16"
+ layout="topleft"
+ left_pad="10"
+ name="destination"
+ top_delta="0"
+ width="290">
+ <combo_box.item
+ label="Selection"
+ value="Selection" />
+ <combo_box.item
+ label="Agent Region"
+ value="Agent Region" />
+ </combo_box>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="10"
+ name="Request:"
+ top="28"
+ width="80">
+ Request:
+ </text>
+ <combo_box
+ allow_text_entry="true"
+ height="16"
+ layout="topleft"
+ left_pad="10"
+ name="request"
+ top_delta="0"
+ width="290">
+ <combo_box.item
+ label="colliders &lt;steps&gt;"
+ value="colliders &lt;steps&gt;" />
+ <combo_box.item
+ label="scripts &lt;count&gt;,&lt;optional pattern&gt;"
+ value="scripts &lt;count&gt;,&lt;optional pattern&gt;" />
+ <combo_box.item
+ label="objects &lt;pattern&gt;"
+ value="objects &lt;pattern&gt;" />
+ <combo_box.item
+ label="rez &lt;asset_id&gt;"
+ value="rez &lt;asset_id&gt;" />
+ </combo_box>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="10"
+ name="Parameter:"
+ top="52"
+ width="80">
+ Parameter:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_pad="10"
+ max_length="63"
+ name="parameter"
+ top_delta="0"
+ width="290" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Make Request"
+ label_selected="Make Request"
+ layout="topleft"
+ left="10"
+ name="Make Request"
+ top="96"
+ width="100" />
+ </panel>
+ </tab_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_hardware_settings.xml b/indra/newview/skins/default/xui/en/floater_hardware_settings.xml
new file mode 100644
index 0000000000..f0e2911fd8
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_hardware_settings.xml
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ height="224"
+ layout="topleft"
+ name="Hardware Settings Floater"
+ title="Hardware Settings"
+ width="500">
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left="10"
+ name="Filtering:"
+ top="30"
+ width="128">
+ Filtering:
+ </text>
+ <check_box
+ control_name="RenderAnisotropic"
+ height="16"
+ label="Anisotropic Filtering (slower when enabled)"
+ layout="topleft"
+ left_pad="10"
+ name="ani"
+ top_delta="0"
+ width="256" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left="10"
+ name="Antialiasing:"
+ top="49"
+ width="128">
+ Antialiasing:
+ </text>
+ <combo_box
+ control_name="RenderFSAASamples"
+ height="16"
+ initial_value="false"
+ label="Antialiasing"
+ layout="topleft"
+ left_pad="10"
+ name="fsaa"
+ top_delta="0"
+ width="64">
+ <combo_box.item
+ label="Disabled"
+ value="0" />
+ <combo_box.item
+ label="2x"
+ value="2" />
+ <combo_box.item
+ label="4x"
+ value="4" />
+ <combo_box.item
+ label="8x"
+ value="8" />
+ <combo_box.item
+ label="16x"
+ value="16" />
+ </combo_box>
+ <spinner
+ control_name="RenderGamma"
+ decimal_digits="2"
+ follows="left|top"
+ height="16"
+ increment="0.01"
+ initial_value="1"
+ label="Gamma:"
+ label_width="138"
+ layout="topleft"
+ left="10"
+ max_val="2"
+ name="gamma"
+ top="70"
+ width="202" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left_pad="10"
+ name="(brightness, lower is brighter)"
+ top_delta="2"
+ width="315">
+ (brightness, lower is brighter, 0=use default)
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left="10"
+ name="Enable VBO:"
+ top="92"
+ width="128">
+ Enable VBO:
+ </text>
+ <check_box
+ control_name="RenderVBOEnable"
+ height="16"
+ initial_value="true"
+ label="Enable OpenGL Vertex Buffer Objects"
+ layout="topleft"
+ left_pad="10"
+ name="vbo"
+ tool_tip="Enabling this on modern hardware gives a performance gain. However, older hardware often has poor implementations of VBOs and you may get crashes when this is enabled."
+ top_delta="1"
+ width="315" />
+ <slider
+ control_name="TextureMemory"
+ decimal_digits="0"
+ follows="left|top"
+ height="16"
+ increment="16"
+ initial_value="32"
+ label="Texture Memory (MB):"
+ label_width="135"
+ layout="topleft"
+ left="10"
+ max_val="4096"
+ name="GrapicsCardTextureMemory"
+ tool_tip="Amount of memory to allocate for textures. Defaults to Video Card Memory. Reducing this may improve performance but may also make textures blurry."
+ top="114"
+ width="300" />
+ <spinner
+ control_name="RenderFogRatio"
+ decimal_digits="1"
+ follows="left|top"
+ height="16"
+ initial_value="4"
+ label="Fog Distance Ratio:"
+ label_width="138"
+ layout="topleft"
+ left_delta="0"
+ max_val="10"
+ min_val="0.5"
+ name="fog"
+ top_pad="8"
+ width="202" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="OK"
+ label_selected="OK"
+ layout="topleft"
+ left="-110"
+ name="OK"
+ top="194"
+ width="90" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_hud.xml b/indra/newview/skins/default/xui/en/floater_hud.xml
new file mode 100644
index 0000000000..f62b7eece0
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_hud.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_minimize="false"
+ height="292"
+ layout="topleft"
+ name="floater_hud"
+ title="Tutorial"
+ width="362">
+ <web_browser
+ border_visible="false"
+ caret_color="1 1 1 1"
+ follows="top|left|bottom|right"
+ height="265"
+ layout="topleft"
+ left="1"
+ name="floater_hud_browser"
+ start_url="data:text/html,%3Chtml%3E%3Chead%3E%3C/head%3E%3Cbody bgcolor=%22#000000%22 text=%22ffffff%22%3E%3Ch1%3E%3Ctt%3E%0D%0A%0D%0ALoading...%3C/tt%3E%3C/h1%3E%3C/body%3E%3C/html%3E"
+ top="26"
+ width="360" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_im.xml b/indra/newview/skins/default/xui/en/floater_im.xml
new file mode 100644
index 0000000000..7493a9a90d
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_im.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<multi_floater
+ can_resize="true"
+ follows="left|bottom"
+ height="422"
+ layout="topleft"
+ min_height="130"
+ min_width="350"
+ name="im_floater"
+ save_rect="true"
+ title="Instant Message"
+ width="419">
+ <multi_floater.string
+ name="only_user_message">
+ You are the only user in this session.
+ </multi_floater.string>
+ <multi_floater.string
+ name="offline_message">
+ [FIRST] [LAST] is offline.
+ </multi_floater.string>
+ <multi_floater.string
+ name="invite_message">
+ Click the [BUTTON NAME] button to accept/connect to this voice chat.
+ </multi_floater.string>
+ <multi_floater.string
+ name="muted_message">
+ You have muted this resident. Sending a message will automatically unmute them.
+ </multi_floater.string>
+ <multi_floater.string
+ name="generic_request_error">
+ Error making request, please try again later.
+ </multi_floater.string>
+ <multi_floater.string
+ name="insufficient_perms_error">
+ You do not have sufficient permissions.
+ </multi_floater.string>
+ <multi_floater.string
+ name="session_does_not_exist_error">
+ The session no longer exists
+ </multi_floater.string>
+ <multi_floater.string
+ name="no_ability_error">
+ You do not have that ability.
+ </multi_floater.string>
+ <multi_floater.string
+ name="not_a_mod_error">
+ You are not a session moderator.
+ </multi_floater.string>
+ <multi_floater.string
+ name="muted_error">
+ A group moderator disabled your text chat.
+ </multi_floater.string>
+ <multi_floater.string
+ name="add_session_event">
+ Unable to add users to chat session with [RECIPIENT].
+ </multi_floater.string>
+ <multi_floater.string
+ name="message_session_event">
+ Unable to send your message to the chat session with [RECIPIENT].
+ </multi_floater.string>
+ <multi_floater.string
+ name="removed_from_group">
+ You have been removed from the group.
+ </multi_floater.string>
+ <multi_floater.string
+ name="close_on_no_ability">
+ You no longer have the ability to be in the chat session.
+ </multi_floater.string>
+ <tab_container
+ follows="left|top|right|bottom"
+ height="406"
+ layout="topleft"
+ left="1"
+ name="Preview Tabs"
+ tab_position="bottom"
+ top="16"
+ width="417" />
+</multi_floater>
diff --git a/indra/newview/skins/default/xui/en/floater_image_preview.xml b/indra/newview/skins/default/xui/en/floater_image_preview.xml
new file mode 100644
index 0000000000..907376b1e9
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_image_preview.xml
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_minimize="false"
+ height="440"
+ layout="topleft"
+ name="Image Preview"
+ width="300">
+ <text
+ type="string"
+ length="1"
+ bottom_delta="40"
+ follows="top|left"
+ height="15"
+ layout="topleft"
+ left="10"
+ name="name_label">
+ Name:
+ </text>
+ <line_editor
+ follows="top|left|right"
+ height="19"
+ layout="topleft"
+ left_delta="0"
+ name="name_form"
+ top_pad="5"
+ width="280" />
+ <text
+ type="string"
+ length="1"
+ bottom_delta="20"
+ follows="top|left"
+ height="15"
+ layout="topleft"
+ name="description_label">
+ Description:
+ </text>
+ <line_editor
+ follows="top|left|right"
+ height="19"
+ layout="topleft"
+ left_delta="0"
+ name="description_form"
+ top_pad="5"
+ width="280" />
+ <text
+ type="string"
+ length="1"
+ bottom_delta="20"
+ follows="top|left"
+ height="15"
+ layout="topleft"
+ name="preview_label">
+ Preview image as:
+ </text>
+ <combo_box
+ height="18"
+ label="Clothing Type"
+ layout="topleft"
+ left_delta="110"
+ name="clothing_type_combo"
+ top_delta="3"
+ width="160">
+ <combo_box.item
+ label="Image" />
+ <combo_box.item
+ label="Hair" />
+ <combo_box.item
+ label="Female Head" />
+ <combo_box.item
+ label="Female Upper Body" />
+ <combo_box.item
+ label="Female Lower Body" />
+ <combo_box.item
+ label="Male Head" />
+ <combo_box.item
+ label="Male Upper Body" />
+ <combo_box.item
+ label="Male Lower Body" />
+ <combo_box.item
+ label="Skirt" />
+ <combo_box.item
+ label="Sculpted Prim" />
+ </combo_box>
+ <text
+ type="string"
+ length="1"
+ bottom="190"
+ follows="top|left"
+ layout="topleft"
+ left="10"
+ name="bad_image_text">
+ Unable to read image.
+
+Try saving image as 24 bit Targa (.tga).
+ </text>
+ <check_box
+ control_name="LosslessJ2CUpload"
+ enabled="false"
+ follows="bottom|left"
+ height="16"
+ label="Use lossless compression"
+ layout="topleft"
+ left_delta="2"
+ name="lossless_check"
+ top_pad="197"
+ width="280" />
+ <button
+ follows="bottom|right"
+ height="20"
+ label="Cancel"
+ layout="topleft"
+ left="165"
+ name="cancel_btn"
+ top="410"
+ width="125" />
+ <button
+ follows="bottom|left"
+ height="20"
+ label="Upload (L$[AMOUNT])"
+ layout="topleft"
+ left_delta="-150"
+ name="ok_btn"
+ top_delta="0"
+ width="125" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_incoming_call.xml b/indra/newview/skins/default/xui/en/floater_incoming_call.xml
new file mode 100644
index 0000000000..5c4649276a
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_incoming_call.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_close="false"
+ can_minimize="false"
+ can_tear_off="false"
+ height="200"
+ layout="topleft"
+ name="incoming call"
+ title="Unknown Person is calling"
+ width="240">
+ <floater.string
+ name="VoiceInviteP2P">
+ is calling.
+ </floater.string>
+ <floater.string
+ name="VoiceInviteAdHoc">
+ has joined a Voice Chat call with a conference chat.
+ </floater.string>
+ <avatar_icon
+ enabled="false"
+ follows="left|top"
+ height="36"
+ image_name="icon_avatar_online.tga"
+ layout="topleft"
+ left_delta="19"
+ top="35"
+ width="36" />
+ <text_editor
+ font="SansSerif"
+ height="64"
+ hide_border="true"
+ hide_scrollbar="true"
+ layout="topleft"
+ left="77"
+ max_length="2147483647"
+ name="caller name"
+ read_only="true"
+ top="21"
+ width="163"
+ word_wrap="true" />
+ <button
+ height="24"
+ label="Accept"
+ label_selected="Accept"
+ layout="topleft"
+ left="70"
+ name="Accept"
+ top="92"
+ width="100" />
+ <button
+ height="24"
+ label="Reject"
+ label_selected="Reject"
+ layout="topleft"
+ left_delta="0"
+ name="Reject"
+ top_pad="12"
+ width="100" />
+ <button
+ height="24"
+ label="Start IM"
+ layout="topleft"
+ left_delta="0"
+ name="Start IM"
+ top_pad="12"
+ width="100" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_inspect.xml b/indra/newview/skins/default/xui/en/floater_inspect.xml
new file mode 100644
index 0000000000..ed3b4f00f2
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_inspect.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_resize="true"
+ height="300"
+ layout="topleft"
+ min_height="300"
+ min_width="400"
+ name="inspect"
+ save_rect="true"
+ title="Inspect Objects"
+ width="400">
+ <floater.string
+ name="timeStamp">
+ [wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]
+ </floater.string>
+ <scroll_list
+ bottom="270"
+ column_padding="0"
+ draw_heading="true"
+ follows="top|right|left|bottom"
+ layout="topleft"
+ left="10"
+ name="object_list"
+ right="-10"
+ tool_tip="Select an object from this list to highlight it in-world"
+ top="20">
+ <scroll_list.columns
+ dynamicwidth="true"
+ label="Object Name"
+ name="object_name" />
+ <scroll_list.columns
+ dynamicwidth="true"
+ label="Owner Name"
+ name="owner_name" />
+ <scroll_list.columns
+ dynamicwidth="true"
+ label="Creator Name"
+ name="creator_name" />
+ <scroll_list.columns
+ label="Creation Date"
+ name="creation_date"
+ width="150" />
+ </scroll_list>
+ <button
+ follows="left|bottom"
+ height="20"
+ label="See Owner Profile..."
+ layout="topleft"
+ left_delta="0"
+ name="button owner"
+ tool_tip="See profile of the highlighted object&apos;s owner"
+ top_pad="5"
+ width="150" />
+ <button
+ follows="left|bottom"
+ height="20"
+ label="See Creator Profile..."
+ layout="topleft"
+ left_pad="10"
+ name="button creator"
+ tool_tip="See profile of the highlighted object&apos;s original creator"
+ top_delta="0"
+ width="150" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_inventory.xml b/indra/newview/skins/default/xui/en/floater_inventory.xml
new file mode 100644
index 0000000000..eb05fe1883
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_inventory.xml
@@ -0,0 +1,423 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ auto_tile="true"
+ can_resize="true"
+ height="563"
+ layout="topleft"
+ min_height="150"
+ min_width="240"
+ name="Inventory"
+ save_rect="true"
+ save_visibility="true"
+ title="Inventory"
+ width="467">
+ <floater.string
+ name="Title">
+ Inventory
+ </floater.string>
+ <floater.string
+ name="Items">
+ Items...
+ </floater.string>
+ <floater.string
+ name="Fetched">
+ Fetched
+ </floater.string>
+ <search_editor
+ follows="left|top|right"
+ height="16"
+ label="Type here to search"
+ layout="topleft"
+ left="6"
+ name="inventory search editor"
+ top="34"
+ width="455" />
+ <tab_container
+ follows="left|top|right|bottom"
+ height="508"
+ layout="topleft"
+ left_delta="-4"
+ name="inventory filter tabs"
+ tab_position="top"
+ top_pad="4"
+ width="463">
+ <inventory_panel
+ follows="left|top|right|bottom"
+ height="491"
+ label="All Items"
+ layout="topleft"
+ left="1"
+ name="All Items"
+ top="16"
+ width="461" />
+ <inventory_panel
+ follows="left|top|right|bottom"
+ height="491"
+ label="Recent Items"
+ layout="topleft"
+ left_delta="0"
+ name="Recent Items"
+ top_delta="0"
+ width="461" />
+ </tab_container>
+ <menu_bar
+ bg_visible="false"
+ follows="left|top|right"
+ height="18"
+ layout="topleft"
+ left_delta="0"
+ mouse_opaque="false"
+ name="Inventory Menu"
+ top_delta="-38"
+ width="461">
+ <menu
+ height="101"
+ label="File"
+ layout="topleft"
+ left="0"
+ mouse_opaque="false"
+ name="File"
+ tear_off="true"
+ top="-117"
+ width="128">
+ <menu_item_call
+ label="Open"
+ layout="topleft"
+ name="Open">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="open" />
+ </menu_item_call>
+ <menu
+ create_jump_keys="true"
+ label="Upload"
+ layout="topleft"
+ name="upload"
+ tear_off="true">
+ <menu_item_call
+ label="Image (L$[COST])..."
+ layout="topleft"
+ name="Upload Image"
+ shortcut="control|U">
+ <menu_item_call.on_click
+ function="File.UploadImage"
+ parameter="" />
+ <menu_item_call.on_enable
+ function="File.EnableUpload" />
+ </menu_item_call>
+ <menu_item_call
+ label="Sound (L$[COST])..."
+ layout="topleft"
+ name="Upload Sound">
+ <menu_item_call.on_click
+ function="File.UploadSound"
+ parameter="" />
+ <menu_item_call.on_enable
+ function="File.EnableUpload" />
+ </menu_item_call>
+ <menu_item_call
+ label="Animation (L$[COST])..."
+ layout="topleft"
+ name="Upload Animation">
+ <menu_item_call.on_click
+ function="File.UploadAnim"
+ parameter="" />
+ <menu_item_call.on_enable
+ function="File.EnableUpload" />
+ </menu_item_call>
+ <menu_item_call
+ label="Bulk (L$[COST] per file)..."
+ layout="topleft"
+ name="Bulk Upload">
+ <menu_item_call.on_click
+ function="File.UploadBulk"
+ parameter="" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ </menu>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="New Window"
+ layout="topleft"
+ name="New Window">
+ <menu_item_call.on_click
+ function="Inventory.NewWindow" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft"
+ name="separator2" />
+ <menu_item_call
+ label="Show Filters"
+ layout="topleft"
+ name="Show Filters">
+ <menu_item_call.on_click
+ function="Inventory.ShowFilters" />
+ </menu_item_call>
+ <menu_item_call
+ label="Reset Filters"
+ layout="topleft"
+ name="Reset Current">
+ <menu_item_call.on_click
+ function="Inventory.ResetFilter" />
+ </menu_item_call>
+ <menu_item_call
+ label="Close All Folders"
+ layout="topleft"
+ name="Close All Folders">
+ <menu_item_call.on_click
+ function="Inventory.CloseAllFolders" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft"
+ name="separator3" />
+ <menu_item_call
+ label="Empty Trash"
+ layout="topleft"
+ name="Empty Trash">
+ <menu_item_call.on_click
+ function="Inventory.EmptyTrash" />
+ </menu_item_call>
+ <menu_item_call
+ label="Empty Lost And Found"
+ layout="topleft"
+ name="Empty Lost And Found">
+ <menu_item_call.on_click
+ function="Inventory.EmptyLostAndFound" />
+ </menu_item_call>
+ </menu>
+ <menu
+ height="121"
+ label="Create"
+ layout="topleft"
+ left="0"
+ mouse_opaque="false"
+ name="Create"
+ tear_off="true"
+ top="-201"
+ width="121">
+ <menu_item_call
+ label="New Folder"
+ layout="topleft"
+ name="New Folder">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="category" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Script"
+ layout="topleft"
+ name="New Script">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="lsl" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Note"
+ layout="topleft"
+ name="New Note">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="notecard" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Gesture"
+ layout="topleft"
+ name="New Gesture">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="gesture" />
+ </menu_item_call>
+ <menu
+ height="175"
+ label="New Clothes"
+ layout="topleft"
+ left_delta="0"
+ mouse_opaque="false"
+ name="New Clothes"
+ top_pad="514"
+ width="125">
+ <menu_item_call
+ label="New Shirt"
+ layout="topleft"
+ name="New Shirt">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="shirt" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Pants"
+ layout="topleft"
+ name="New Pants">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="pants" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Shoes"
+ layout="topleft"
+ name="New Shoes">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="shoes" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Socks"
+ layout="topleft"
+ name="New Socks">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="socks" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Jacket"
+ layout="topleft"
+ name="New Jacket">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="jacket" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Skirt"
+ layout="topleft"
+ name="New Skirt">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="skirt" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Gloves"
+ layout="topleft"
+ name="New Gloves">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="gloves" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Undershirt"
+ layout="topleft"
+ name="New Undershirt">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="undershirt" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Underpants"
+ layout="topleft"
+ name="New Underpants">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="underpants" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Alpha"
+ layout="topleft"
+ name="New Alpha">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="alpha" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Tattoo"
+ layout="topleft"
+ name="New Tattoo">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="tattoo" />
+ </menu_item_call>
+ </menu>
+ <menu
+ height="85"
+ label="New Body Parts"
+ layout="topleft"
+ left_delta="0"
+ mouse_opaque="false"
+ name="New Body Parts"
+ top_pad="514"
+ width="118">
+ <menu_item_call
+ label="New Shape"
+ layout="topleft"
+ name="New Shape">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="shape" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Skin"
+ layout="topleft"
+ name="New Skin">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="skin" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Hair"
+ layout="topleft"
+ name="New Hair">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="hair" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Eyes"
+ layout="topleft"
+ name="New Eyes">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="eyes" />
+ </menu_item_call>
+ </menu>
+ </menu>
+ <menu
+ height="49"
+ label="Sort"
+ layout="topleft"
+ left="0"
+ mouse_opaque="false"
+ name="Sort"
+ tear_off="true"
+ top="-113"
+ width="118">
+ <menu_item_check
+ control_name="Inventory.SortByName"
+ label="By Name"
+ layout="topleft"
+ name="By Name">
+ <menu_item_check.on_click
+ function="Inventory.SetSortBy"
+ parameter="name" />
+ </menu_item_check>
+ <menu_item_check
+ control_name="Inventory.SortByDate"
+ label="By Date"
+ layout="topleft"
+ name="By Date">
+ <menu_item_check.on_click
+ function="Inventory.SetSortBy"
+ parameter="date" />
+ </menu_item_check>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_check
+ control_name="Inventory.FoldersAlwaysByName"
+ label="Folders Always By Name"
+ layout="topleft"
+ name="Folders Always By Name">
+ <menu_item_check.on_click
+ function="Inventory.SetSortBy"
+ parameter="foldersalwaysbyname" />
+ </menu_item_check>
+ <menu_item_check
+ control_name="Inventory.SystemFoldersToTop"
+ label="System Folders To Top"
+ layout="topleft"
+ name="System Folders To Top">
+ <menu_item_check.on_click
+ function="Inventory.SetSortBy"
+ parameter="systemfolderstotop" />
+ </menu_item_check>
+ </menu>
+ </menu_bar>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/en/floater_inventory_item_properties.xml
new file mode 100644
index 0000000000..6cb044cda1
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_inventory_item_properties.xml
@@ -0,0 +1,395 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ auto_tile="true"
+ height="320"
+ layout="topleft"
+ name="item properties"
+ save_rect="true"
+ title="Inventory Item Properties"
+ width="350">
+ <floater.string
+ name="unknown">
+ (unknown)
+ </floater.string>
+ <floater.string
+ name="public">
+ (public)
+ </floater.string>
+ <floater.string
+ name="you_can">
+ You can:
+ </floater.string>
+ <floater.string
+ name="owner_can">
+ Owner can:
+ </floater.string>
+ <floater.string
+ name="acquiredDate">
+ [wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]
+ </floater.string>
+ <icon
+ follows="top|right"
+ height="16"
+ image_name="icon_lock.tga"
+ layout="topleft"
+ left="294"
+ mouse_opaque="true"
+ name="IconLocked"
+ top="5"
+ width="16" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="10"
+ name="LabelItemNameTitle"
+ top="25"
+ width="78">
+ Name:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top|right"
+ height="16"
+ layout="topleft"
+ left_delta="78"
+ max_length="63"
+ name="LabelItemName"
+ top_delta="0"
+ width="252" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="10"
+ name="LabelItemDescTitle"
+ top="45"
+ width="78">
+ Description:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top|right"
+ height="16"
+ layout="topleft"
+ left_delta="78"
+ max_length="127"
+ name="LabelItemDesc"
+ top_delta="0"
+ width="252" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="LabelCreatorTitle"
+ top="65"
+ width="78">
+ Creator:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="78"
+ name="LabelCreatorName"
+ top_delta="0"
+ width="200">
+ Nicole Linden
+ </text>
+ <button
+ follows="top|right"
+ font="SansSerifSmall"
+ height="16"
+ label="Profile..."
+ layout="topleft"
+ left_delta="174"
+ name="BtnCreator"
+ top_delta="0"
+ width="78" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="LabelOwnerTitle"
+ top="85"
+ width="78">
+ Owner:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="78"
+ name="LabelOwnerName"
+ top_delta="0"
+ width="200">
+ Thrax Linden
+ </text>
+ <button
+ follows="top|right"
+ font="SansSerifSmall"
+ height="16"
+ label="Profile..."
+ layout="topleft"
+ left_delta="174"
+ name="BtnOwner"
+ top_delta="0"
+ width="78" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="LabelAcquiredTitle"
+ top="105"
+ width="78">
+ Acquired:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="78"
+ name="LabelAcquiredDate"
+ top_delta="0"
+ width="252">
+ Wed May 24 12:50:46 2006
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="10"
+ name="OwnerLabel"
+ top="125"
+ width="78">
+ You can:
+ </text>
+ <check_box
+ height="16"
+ label="Modify"
+ layout="topleft"
+ left_delta="0"
+ name="CheckOwnerModify"
+ top_pad="4"
+ width="78" />
+ <check_box
+ height="16"
+ label="Copy"
+ layout="topleft"
+ left_delta="78"
+ name="CheckOwnerCopy"
+ top_delta="0"
+ width="88" />
+ <check_box
+ height="16"
+ label="Resell/Give away"
+ layout="topleft"
+ left_delta="88"
+ name="CheckOwnerTransfer"
+ top_delta="0"
+ width="106" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="10"
+ name="BaseMaskDebug"
+ top="155"
+ width="330">
+ B:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="60"
+ name="OwnerMaskDebug"
+ top_delta="0"
+ width="270">
+ O:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="60"
+ name="GroupMaskDebug"
+ top_delta="0"
+ width="210">
+ G:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="60"
+ name="EveryoneMaskDebug"
+ top_delta="0"
+ width="150">
+ E:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="60"
+ name="NextMaskDebug"
+ top_delta="0"
+ width="90">
+ N:
+ </text>
+ <check_box
+ height="16"
+ label="Share with group"
+ layout="topleft"
+ left="10"
+ name="CheckShareWithGroup"
+ top="171"
+ width="106" />
+ <check_box
+ height="16"
+ label="Allow anyone to copy"
+ layout="topleft"
+ left_delta="0"
+ name="CheckEveryoneCopy"
+ top_pad="16"
+ width="130" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="0"
+ name="NextOwnerLabel"
+ top_pad="16"
+ width="88">
+ Next owner can:
+ </text>
+ <check_box
+ height="16"
+ label="Modify"
+ layout="topleft"
+ left_delta="0"
+ name="CheckNextOwnerModify"
+ top_pad="4"
+ width="78" />
+ <check_box
+ height="16"
+ label="Copy"
+ layout="topleft"
+ left_delta="78"
+ name="CheckNextOwnerCopy"
+ top_delta="0"
+ width="88" />
+ <check_box
+ height="16"
+ label="Resell/Give away"
+ layout="topleft"
+ left_delta="88"
+ name="CheckNextOwnerTransfer"
+ top_delta="0"
+ width="106" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="10"
+ name="SaleLabel"
+ top="265"
+ width="330">
+ Mark Item:
+ </text>
+ <check_box
+ height="16"
+ label="For Sale"
+ layout="topleft"
+ left_delta="0"
+ name="CheckPurchase"
+ top_pad="4"
+ width="78" />
+ <radio_group
+ draw_border="false"
+ follows="left|top|right"
+ height="16"
+ layout="topleft"
+ left_delta="78"
+ name="RadioSaleType"
+ top_delta="0"
+ width="252">
+ <radio_item
+ height="16"
+ label="Original"
+ layout="topleft"
+ left="0"
+ name="radio"
+ top="0"
+ width="70" />
+ <radio_item
+ height="16"
+ label="Copy"
+ layout="topleft"
+ left_delta="60"
+ name="radio2"
+ top_delta="0"
+ width="70" />
+ </radio_group>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="42"
+ name="TextPrice"
+ top="299"
+ width="56">
+ Price: L$
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top|right"
+ height="16"
+ layout="topleft"
+ left_delta="56"
+ max_length="25"
+ name="EditPrice"
+ top_delta="0"
+ width="242" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/en/floater_inventory_view_finder.xml
new file mode 100644
index 0000000000..8bff916f9d
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_inventory_view_finder.xml
@@ -0,0 +1,281 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_minimize="false"
+ height="408"
+ layout="topleft"
+ name="Inventory Finder"
+ title="inventory_recent_items"
+ width="160">
+ <icon
+ height="16"
+ image_name="inv_item_animation.tga"
+ layout="topleft"
+ left="8"
+ mouse_opaque="true"
+ name="icon_animation"
+ top="22"
+ width="16" />
+ <check_box
+ height="16"
+ label="Animation"
+ layout="topleft"
+ left_pad="2"
+ name="check_animation"
+ top_delta="0"
+ width="126" />
+ <icon
+ height="16"
+ image_name="inv_item_callingcard_online.tga"
+ layout="topleft"
+ left="8"
+ mouse_opaque="true"
+ name="icon_calling_card"
+ top="42"
+ width="16" />
+ <check_box
+ height="16"
+ label="Calling Cards"
+ layout="topleft"
+ left_pad="2"
+ name="check_calling_card"
+ top_delta="0"
+ width="126" />
+ <icon
+ height="16"
+ image_name="inv_item_shirt.tga"
+ layout="topleft"
+ left="8"
+ mouse_opaque="true"
+ name="icon_clothing"
+ top="62"
+ width="16" />
+ <check_box
+ height="16"
+ label="Clothing"
+ layout="topleft"
+ left_pad="2"
+ name="check_clothing"
+ top_delta="0"
+ width="126" />
+ <icon
+ height="16"
+ image_name="inv_item_gesture.tga"
+ layout="topleft"
+ left="8"
+ mouse_opaque="true"
+ name="icon_gesture"
+ top="82"
+ width="16" />
+ <check_box
+ height="16"
+ label="Gestures"
+ layout="topleft"
+ left_pad="2"
+ name="check_gesture"
+ top_delta="0"
+ width="126" />
+ <icon
+ height="16"
+ image_name="inv_item_landmark_visited.tga"
+ layout="topleft"
+ left="8"
+ mouse_opaque="true"
+ name="icon_landmark"
+ top="102"
+ width="16" />
+ <check_box
+ height="16"
+ label="Landmarks"
+ layout="topleft"
+ left_pad="2"
+ name="check_landmark"
+ top_delta="0"
+ width="126" />
+ <icon
+ height="16"
+ image_name="inv_item_notecard.tga"
+ layout="topleft"
+ left="8"
+ mouse_opaque="true"
+ name="icon_notecard"
+ top="122"
+ width="16" />
+ <check_box
+ height="16"
+ label="Notecards"
+ layout="topleft"
+ left_pad="2"
+ name="check_notecard"
+ top_delta="0"
+ width="126" />
+ <icon
+ height="16"
+ image_name="inv_item_object.tga"
+ layout="topleft"
+ left="8"
+ mouse_opaque="true"
+ name="icon_object"
+ top="142"
+ width="16" />
+ <check_box
+ height="16"
+ label="Objects"
+ layout="topleft"
+ left_pad="2"
+ name="check_object"
+ top_delta="0"
+ width="126" />
+ <icon
+ height="16"
+ image_name="inv_item_script.tga"
+ layout="topleft"
+ left="8"
+ mouse_opaque="true"
+ name="icon_script"
+ top="162"
+ width="16" />
+ <check_box
+ height="16"
+ label="Scripts"
+ layout="topleft"
+ left_pad="2"
+ name="check_script"
+ top_delta="0"
+ width="126" />
+ <icon
+ height="16"
+ image_name="inv_item_sound.tga"
+ layout="topleft"
+ left="8"
+ mouse_opaque="true"
+ name="icon_sound"
+ top="182"
+ width="16" />
+ <check_box
+ height="16"
+ label="Sounds"
+ layout="topleft"
+ left_pad="2"
+ name="check_sound"
+ top_delta="0"
+ width="126" />
+ <icon
+ height="16"
+ image_name="inv_item_texture.tga"
+ layout="topleft"
+ left="8"
+ mouse_opaque="true"
+ name="icon_texture"
+ top="202"
+ width="16" />
+ <check_box
+ height="16"
+ label="Textures"
+ layout="topleft"
+ left_pad="2"
+ name="check_texture"
+ top_delta="0"
+ width="126" />
+ <icon
+ height="16"
+ image_name="inv_item_snapshot.tga"
+ layout="topleft"
+ left="8"
+ mouse_opaque="true"
+ name="icon_snapshot"
+ top="222"
+ width="16" />
+ <check_box
+ height="16"
+ label="Snapshots"
+ layout="topleft"
+ left_pad="2"
+ name="check_snapshot"
+ top_delta="0"
+ width="126" />
+ <button
+ follows="left|top"
+ height="20"
+ label="All"
+ label_selected="All"
+ layout="topleft"
+ left="8"
+ name="All"
+ top="242"
+ width="100" />
+ <button
+ follows="left|top"
+ height="20"
+ label="None"
+ label_selected="None"
+ layout="topleft"
+ left_delta="0"
+ name="None"
+ top_pad="4"
+ width="100" />
+ <check_box
+ height="16"
+ label="Always show folders"
+ layout="topleft"
+ left_delta="0"
+ name="check_show_empty"
+ top_pad="4"
+ width="144" />
+ <check_box
+ height="16"
+ label="Since Logoff"
+ layout="topleft"
+ left_delta="0"
+ name="check_since_logoff"
+ top_pad="4"
+ width="144" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ halign="center"
+ height="12"
+ layout="topleft"
+ left_delta="0"
+ name="- OR -"
+ top_delta="16"
+ width="144">
+ - OR -
+ </text>
+ <spinner
+ follows="left|top"
+ height="16"
+ increment="1"
+ initial_value="0"
+ label="Hours Ago"
+ label_width="64"
+ layout="topleft"
+ left_delta="0"
+ max_val="240000"
+ name="spin_hours_ago"
+ top_pad="4"
+ width="144" />
+ <spinner
+ follows="left|top"
+ height="16"
+ increment="1"
+ initial_value="0"
+ label="Days Ago"
+ label_width="64"
+ layout="topleft"
+ left_delta="0"
+ max_val="10000"
+ name="spin_days_ago"
+ top_pad="4"
+ width="144" />
+ <button
+ follows="top|right"
+ height="20"
+ label="Close"
+ label_selected="Close"
+ layout="topleft"
+ name="Close"
+ right="-6"
+ top="382"
+ width="76" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_joystick.xml b/indra/newview/skins/default/xui/en/floater_joystick.xml
new file mode 100644
index 0000000000..032ff21b58
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_joystick.xml
@@ -0,0 +1,859 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ height="500"
+ layout="topleft"
+ name="Joystick"
+ title="Joystick Configuration"
+ width="550">
+ <floater.string
+ name="NoDevice">
+ no device detected
+ </floater.string>
+ <check_box
+ bottom="38"
+ control_name="JoystickEnabled"
+ halign="left"
+ label="Enable Joystick:"
+ layout="topleft"
+ left="14"
+ name="enable_joystick"
+ width="60" />
+ <text
+ bottom="32"
+ layout="topleft"
+ left="120"
+ name="joystick_type"
+ width="380" />
+ <spinner
+ bottom="48"
+ control_name="JoystickAxis1"
+ decimal_digits="0"
+ increment="1"
+ label="X Axis Mapping"
+ label_width="100"
+ layout="topleft"
+ left="20"
+ max_val="5"
+ min_val="-1"
+ name="JoystickAxis1"
+ width="140" />
+ <spinner
+ bottom="48"
+ control_name="JoystickAxis2"
+ decimal_digits="0"
+ increment="1"
+ label="Y Axis Mapping"
+ label_width="100"
+ layout="topleft"
+ left="190"
+ max_val="5"
+ min_val="-1"
+ name="JoystickAxis2"
+ width="140" />
+ <spinner
+ bottom="48"
+ control_name="JoystickAxis0"
+ decimal_digits="0"
+ increment="1"
+ label="Z Axis Mapping"
+ label_width="100"
+ layout="topleft"
+ left="360"
+ max_val="5"
+ min_val="-1"
+ name="JoystickAxis0"
+ width="140" />
+ <spinner
+ bottom="68"
+ control_name="JoystickAxis4"
+ decimal_digits="0"
+ increment="1"
+ label="Pitch Mapping"
+ label_width="100"
+ layout="topleft"
+ left="20"
+ max_val="5"
+ min_val="-1"
+ name="JoystickAxis4"
+ width="140" />
+ <spinner
+ bottom="68"
+ control_name="JoystickAxis5"
+ decimal_digits="0"
+ increment="1"
+ label="Yaw Mapping"
+ label_width="100"
+ layout="topleft"
+ left="190"
+ max_val="5"
+ min_val="-1"
+ name="JoystickAxis5"
+ width="140" />
+ <spinner
+ bottom="68"
+ control_name="JoystickAxis3"
+ decimal_digits="0"
+ increment="1"
+ label="Roll Mapping"
+ label_width="100"
+ layout="topleft"
+ left="360"
+ max_val="5"
+ min_val="-1"
+ name="JoystickAxis3"
+ width="140" />
+ <spinner
+ bottom="88"
+ control_name="JoystickAxis6"
+ decimal_digits="0"
+ increment="1"
+ label="Zoom Mapping"
+ label_width="100"
+ layout="topleft"
+ left="20"
+ max_val="5"
+ min_val="-1"
+ name="JoystickAxis6"
+ width="140" />
+ <check_box
+ bottom_delta="18"
+ control_name="ZoomDirect"
+ label="Direct Zoom"
+ layout="topleft"
+ left="185"
+ name="ZoomDirect" />
+ <check_box
+ bottom_delta="0"
+ control_name="Cursor3D"
+ label="3D Cursor"
+ layout="topleft"
+ left="310"
+ name="Cursor3D" />
+ <check_box
+ bottom_delta="0"
+ control_name="AutoLeveling"
+ label="Auto Level"
+ layout="topleft"
+ left="420"
+ name="AutoLeveling" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ halign="right"
+ height="10"
+ layout="topleft"
+ left="12"
+ mouse_opaque="false"
+ name="Control Modes:"
+ top="110"
+ width="102">
+ Control Modes:
+ </text>
+ <check_box
+ bottom="127"
+ control_name="JoystickAvatarEnabled"
+ halign="center"
+ label="Avatar"
+ layout="topleft"
+ left="125"
+ name="JoystickAvatarEnabled"
+ width="60" />
+ <check_box
+ bottom="127"
+ control_name="JoystickBuildEnabled"
+ halign="center"
+ label="Build"
+ layout="topleft"
+ left="194"
+ name="JoystickBuildEnabled"
+ width="60" />
+ <check_box
+ bottom="127"
+ control_name="JoystickFlycamEnabled"
+ halign="center"
+ label="Flycam"
+ layout="topleft"
+ left="262"
+ name="JoystickFlycamEnabled"
+ width="60" />
+ <stat_view
+ height="250"
+ label="Joystick Monitor"
+ layout="topleft"
+ left="340"
+ name="axis_view"
+ show_label="true"
+ top="142"
+ width="200">
+ <stat_bar
+ bar_max="2"
+ bar_min="-2"
+ height="0"
+ label="Axis 0"
+ label_spacing="1"
+ layout="topleft"
+ left="0"
+ name="axis0"
+ tick_spacing="0.5"
+ top="20"
+ width="0" />
+ <stat_bar
+ bar_max="2"
+ bar_min="-2"
+ label="Axis 1"
+ label_spacing="1"
+ layout="topleft"
+ name="axis1"
+ tick_spacing="0.5" />
+ <stat_bar
+ bar_max="2"
+ bar_min="-2"
+ label="Axis 2"
+ label_spacing="1"
+ layout="topleft"
+ name="axis2"
+ tick_spacing="0.5" />
+ <stat_bar
+ bar_max="2"
+ bar_min="-2"
+ label="Axis 3"
+ label_spacing="1"
+ layout="topleft"
+ name="axis3"
+ tick_spacing="0.5" />
+ <stat_bar
+ bar_max="2"
+ bar_min="-2"
+ label="Axis 4"
+ label_spacing="1"
+ layout="topleft"
+ name="axis4"
+ tick_spacing="0.5" />
+ <stat_bar
+ bar_max="2"
+ bar_min="-2"
+ label="Axis 5"
+ label_spacing="1"
+ layout="topleft"
+ name="axis5"
+ tick_spacing="0.5" />
+ </stat_view>
+ <text
+ type="string"
+ length="1"
+ bottom="144"
+ halign="right"
+ layout="topleft"
+ left="20"
+ name="XScale"
+ width="94">
+ X Scale
+ </text>
+ <spinner
+ bottom="144"
+ control_name="AvatarAxisScale1"
+ decimal_digits="2"
+ label_width="0"
+ layout="topleft"
+ left="125"
+ max_val="50"
+ min_val="-50"
+ name="AvatarAxisScale1"
+ width="56" />
+ <spinner
+ bottom="144"
+ control_name="BuildAxisScale1"
+ decimal_digits="2"
+ label_width="0"
+ layout="topleft"
+ left="195"
+ max_val="1024"
+ min_val="-1024"
+ name="BuildAxisScale1"
+ width="56" />
+ <spinner
+ bottom="144"
+ control_name="FlycamAxisScale1"
+ decimal_digits="2"
+ label_width="0"
+ layout="topleft"
+ left="265"
+ max_val="1024"
+ min_val="-1024"
+ name="FlycamAxisScale1"
+ width="56" />
+ <text
+ type="string"
+ length="1"
+ bottom="164"
+ halign="right"
+ layout="topleft"
+ left="20"
+ name="YScale"
+ width="94">
+ Y Scale
+ </text>
+ <spinner
+ bottom="164"
+ control_name="AvatarAxisScale2"
+ decimal_digits="2"
+ label_width="0"
+ layout="topleft"
+ left="125"
+ max_val="50"
+ min_val="-50"
+ name="AvatarAxisScale2"
+ width="56" />
+ <spinner
+ bottom="164"
+ control_name="BuildAxisScale2"
+ decimal_digits="2"
+ label_width="0"
+ layout="topleft"
+ left="195"
+ max_val="1024"
+ min_val="-1024"
+ name="BuildAxisScale2"
+ width="56" />
+ <spinner
+ bottom="164"
+ control_name="FlycamAxisScale2"
+ decimal_digits="2"
+ label_width="0"
+ layout="topleft"
+ left="265"
+ max_val="1024"
+ min_val="-1024"
+ name="FlycamAxisScale2"
+ width="56" />
+ <text
+ type="string"
+ length="1"
+ bottom="184"
+ halign="right"
+ layout="topleft"
+ left="20"
+ name="ZScale"
+ width="94">
+ Z Scale
+ </text>
+ <spinner
+ bottom="184"
+ control_name="AvatarAxisScale0"
+ decimal_digits="2"
+ label_width="0"
+ layout="topleft"
+ left="125"
+ max_val="50"
+ min_val="-50"
+ name="AvatarAxisScale0"
+ width="56" />
+ <spinner
+ bottom="184"
+ control_name="BuildAxisScale0"
+ decimal_digits="2"
+ label_width="0"
+ layout="topleft"
+ left="195"
+ max_val="1024"
+ min_val="-1024"
+ name="BuildAxisScale0"
+ width="56" />
+ <spinner
+ bottom="184"
+ control_name="FlycamAxisScale0"
+ decimal_digits="2"
+ label_width="0"
+ layout="topleft"
+ left="265"
+ max_val="1024"
+ min_val="-1024"
+ name="FlycamAxisScale0"
+ width="56" />
+ <text
+ type="string"
+ length="1"
+ bottom="204"
+ halign="right"
+ layout="topleft"
+ left="20"
+ name="PitchScale"
+ width="94">
+ Pitch Scale
+ </text>
+ <spinner
+ bottom="204"
+ control_name="AvatarAxisScale4"
+ decimal_digits="2"
+ label_width="0"
+ layout="topleft"
+ left="125"
+ max_val="1024"
+ min_val="-1024"
+ name="AvatarAxisScale4"
+ width="56" />
+ <spinner
+ bottom="204"
+ control_name="BuildAxisScale4"
+ decimal_digits="2"
+ label_width="0"
+ layout="topleft"
+ left="195"
+ max_val="1024"
+ min_val="-1024"
+ name="BuildAxisScale4"
+ width="56" />
+ <spinner
+ bottom="204"
+ control_name="FlycamAxisScale4"
+ decimal_digits="2"
+ label_width="0"
+ layout="topleft"
+ left="265"
+ max_val="1024"
+ min_val="-1024"
+ name="FlycamAxisScale4"
+ width="56" />
+ <text
+ type="string"
+ length="1"
+ bottom="224"
+ halign="right"
+ layout="topleft"
+ left="20"
+ name="YawScale"
+ width="94">
+ Yaw Scale
+ </text>
+ <spinner
+ bottom="224"
+ control_name="AvatarAxisScale5"
+ decimal_digits="2"
+ label_width="0"
+ layout="topleft"
+ left="125"
+ max_val="1024"
+ min_val="-1024"
+ name="AvatarAxisScale5"
+ width="56" />
+ <spinner
+ bottom="224"
+ control_name="BuildAxisScale5"
+ decimal_digits="2"
+ label_width="0"
+ layout="topleft"
+ left="195"
+ max_val="1024"
+ min_val="-1024"
+ name="BuildAxisScale5"
+ width="56" />
+ <spinner
+ bottom="224"
+ control_name="FlycamAxisScale5"
+ decimal_digits="2"
+ label_width="0"
+ layout="topleft"
+ left="265"
+ max_val="1024"
+ min_val="-1024"
+ name="FlycamAxisScale5"
+ width="56" />
+ <text
+ type="string"
+ length="1"
+ bottom="244"
+ halign="right"
+ layout="topleft"
+ left="20"
+ name="RollScale"
+ width="94">
+ Roll Scale
+ </text>
+ <spinner
+ bottom="244"
+ control_name="BuildAxisScale3"
+ decimal_digits="2"
+ label_width="0"
+ layout="topleft"
+ left="195"
+ max_val="1024"
+ min_val="-1024"
+ name="BuildAxisScale3"
+ width="56" />
+ <spinner
+ bottom="244"
+ control_name="FlycamAxisScale3"
+ decimal_digits="2"
+ label_width="0"
+ layout="topleft"
+ left="265"
+ max_val="1024"
+ min_val="-1024"
+ name="FlycamAxisScale3"
+ width="56" />
+ <text
+ type="string"
+ length="1"
+ bottom="274"
+ halign="right"
+ layout="topleft"
+ left="20"
+ name="XDeadZone"
+ width="94">
+ X Dead Zone
+ </text>
+ <spinner
+ bottom="274"
+ control_name="AvatarAxisDeadZone1"
+ decimal_digits="2"
+ increment="0.01"
+ label_width="0"
+ layout="topleft"
+ left="125"
+ name="AvatarAxisDeadZone1"
+ width="56" />
+ <spinner
+ bottom="274"
+ control_name="BuildAxisDeadZone1"
+ decimal_digits="2"
+ increment="0.01"
+ label_width="0"
+ layout="topleft"
+ left="195"
+ name="BuildAxisDeadZone1"
+ width="56" />
+ <spinner
+ bottom="274"
+ control_name="FlycamAxisDeadZone1"
+ decimal_digits="2"
+ increment="0.01"
+ label_width="0"
+ layout="topleft"
+ left="265"
+ name="FlycamAxisDeadZone1"
+ width="56" />
+ <text
+ type="string"
+ length="1"
+ bottom="294"
+ halign="right"
+ layout="topleft"
+ left="20"
+ name="YDeadZone"
+ width="94">
+ Y Dead Zone
+ </text>
+ <spinner
+ bottom="294"
+ control_name="AvatarAxisDeadZone2"
+ decimal_digits="2"
+ increment="0.01"
+ label_width="0"
+ layout="topleft"
+ left="125"
+ name="AvatarAxisDeadZone2"
+ width="56" />
+ <spinner
+ bottom="294"
+ control_name="BuildAxisDeadZone2"
+ decimal_digits="2"
+ increment="0.01"
+ label_width="0"
+ layout="topleft"
+ left="195"
+ name="BuildAxisDeadZone2"
+ width="56" />
+ <spinner
+ bottom="294"
+ control_name="FlycamAxisDeadZone2"
+ decimal_digits="2"
+ increment="0.01"
+ label_width="0"
+ layout="topleft"
+ left="265"
+ name="FlycamAxisDeadZone2"
+ width="56" />
+ <text
+ type="string"
+ length="1"
+ bottom="314"
+ halign="right"
+ layout="topleft"
+ left="20"
+ name="ZDeadZone"
+ width="94">
+ Z Dead Zone
+ </text>
+ <spinner
+ bottom="314"
+ control_name="AvatarAxisDeadZone0"
+ decimal_digits="2"
+ increment="0.01"
+ label_width="0"
+ layout="topleft"
+ left="125"
+ name="AvatarAxisDeadZone0"
+ width="56" />
+ <spinner
+ bottom="314"
+ control_name="BuildAxisDeadZone0"
+ decimal_digits="2"
+ increment="0.01"
+ label_width="0"
+ layout="topleft"
+ left="195"
+ name="BuildAxisDeadZone0"
+ width="56" />
+ <spinner
+ bottom="314"
+ control_name="FlycamAxisDeadZone0"
+ decimal_digits="2"
+ increment="0.01"
+ label_width="0"
+ layout="topleft"
+ left="265"
+ name="FlycamAxisDeadZone0"
+ width="56" />
+ <text
+ type="string"
+ length="1"
+ bottom="334"
+ halign="right"
+ layout="topleft"
+ left="20"
+ name="PitchDeadZone"
+ width="94">
+ Pitch Dead Zone
+ </text>
+ <spinner
+ bottom="334"
+ control_name="AvatarAxisDeadZone4"
+ decimal_digits="2"
+ increment="0.01"
+ label_width="0"
+ layout="topleft"
+ left="125"
+ name="AvatarAxisDeadZone4"
+ width="56" />
+ <spinner
+ bottom="334"
+ control_name="BuildAxisDeadZone4"
+ decimal_digits="2"
+ increment="0.01"
+ label_width="0"
+ layout="topleft"
+ left="195"
+ name="BuildAxisDeadZone4"
+ width="56" />
+ <spinner
+ bottom="334"
+ control_name="FlycamAxisDeadZone4"
+ decimal_digits="2"
+ increment="0.01"
+ label_width="0"
+ layout="topleft"
+ left="265"
+ name="FlycamAxisDeadZone4"
+ width="56" />
+ <text
+ type="string"
+ length="1"
+ bottom="354"
+ halign="right"
+ layout="topleft"
+ left="20"
+ name="YawDeadZone"
+ width="94">
+ Yaw Dead Zone
+ </text>
+ <spinner
+ bottom="354"
+ control_name="AvatarAxisDeadZone5"
+ decimal_digits="2"
+ increment="0.01"
+ label_width="0"
+ layout="topleft"
+ left="125"
+ name="AvatarAxisDeadZone5"
+ width="56" />
+ <spinner
+ bottom="354"
+ control_name="BuildAxisDeadZone5"
+ decimal_digits="2"
+ increment="0.01"
+ label_width="0"
+ layout="topleft"
+ left="195"
+ name="BuildAxisDeadZone5"
+ width="56" />
+ <spinner
+ bottom="354"
+ control_name="FlycamAxisDeadZone5"
+ decimal_digits="2"
+ increment="0.01"
+ label_width="0"
+ layout="topleft"
+ left="265"
+ name="FlycamAxisDeadZone5"
+ width="56" />
+ <text
+ type="string"
+ length="1"
+ bottom="374"
+ halign="right"
+ layout="topleft"
+ left="20"
+ name="RollDeadZone"
+ width="94">
+ Roll Dead Zone
+ </text>
+ <spinner
+ bottom="374"
+ control_name="BuildAxisDeadZone3"
+ decimal_digits="2"
+ increment="0.01"
+ label_width="0"
+ layout="topleft"
+ left="195"
+ name="BuildAxisDeadZone3"
+ width="56" />
+ <spinner
+ bottom="374"
+ control_name="FlycamAxisDeadZone3"
+ decimal_digits="2"
+ increment="0.01"
+ label_width="0"
+ layout="topleft"
+ left="265"
+ name="FlycamAxisDeadZone3"
+ width="56" />
+ <text
+ type="string"
+ length="1"
+ bottom="402"
+ halign="right"
+ layout="topleft"
+ left="20"
+ name="Feathering"
+ width="94">
+ Feathering
+ </text>
+ <slider
+ control_name="AvatarFeathering"
+ decimal_digits="0"
+ follows="left|top"
+ height="16"
+ increment="1"
+ initial_value="0.7"
+ layout="topleft"
+ left="116"
+ max_val="32"
+ min_val="1"
+ name="AvatarFeathering"
+ show_text="false"
+ top="402"
+ width="73" />
+ <slider
+ control_name="BuildFeathering"
+ decimal_digits="0"
+ follows="left|top"
+ height="16"
+ increment="1"
+ initial_value="0.7"
+ layout="topleft"
+ left_delta="70"
+ max_val="32"
+ min_val="1"
+ name="BuildFeathering"
+ show_text="false"
+ top_delta="0"
+ width="73" />
+ <slider
+ control_name="FlycamFeathering"
+ decimal_digits="0"
+ follows="left|top"
+ height="16"
+ increment="1"
+ initial_value="0.7"
+ layout="topleft"
+ left_delta="70"
+ max_val="32"
+ min_val="1"
+ name="FlycamFeathering"
+ show_text="false"
+ top_delta="0"
+ width="73" />
+ <text
+ type="string"
+ length="1"
+ bottom="430"
+ halign="right"
+ layout="topleft"
+ left="20"
+ name="ZoomScale2"
+ width="94">
+ Zoom Scale
+ </text>
+ <spinner
+ bottom="430"
+ control_name="FlycamAxisScale6"
+ decimal_digits="2"
+ label_width="0"
+ layout="topleft"
+ left="265"
+ max_val="1024"
+ min_val="-1024"
+ name="FlycamAxisScale6"
+ width="56" />
+ <text
+ type="string"
+ length="1"
+ bottom="450"
+ halign="right"
+ layout="topleft"
+ left="20"
+ name="ZoomDeadZone"
+ width="94">
+ Zoom Dead Zone
+ </text>
+ <spinner
+ bottom="450"
+ control_name="FlycamAxisDeadZone6"
+ decimal_digits="2"
+ increment="0.01"
+ label_width="0"
+ layout="topleft"
+ left="265"
+ name="FlycamAxisDeadZone6"
+ width="56" />
+ <button
+ follows="left|top"
+ height="22"
+ label="SpaceNavigator Defaults"
+ layout="topleft"
+ left="340"
+ name="SpaceNavigatorDefaults"
+ top="429"
+ width="184" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="OK"
+ label_selected="OK"
+ layout="topleft"
+ left_delta="0"
+ name="ok_btn"
+ top_pad="9"
+ width="90" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Cancel"
+ label_selected="Cancel"
+ layout="topleft"
+ left_pad="4"
+ name="cancel_btn"
+ top_delta="0"
+ width="90" />
+</floater>
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..8af4f74aa3
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_lagmeter.xml
@@ -0,0 +1,346 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ height="150"
+ layout="topleft"
+ name="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"
+ picture_style="true"
+ 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
+ make_visible_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
+ make_visible_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"
+ picture_style="true"
+ 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
+ make_visible_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
+ make_visible_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"
+ picture_style="true"
+ 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
+ make_visible_control="LagMeterShrunk"
+ type="string"
+ length="1"
+ bottom="120"
+ follows="left|top"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="85"
+ name="server_text"
+ right="-10">
+ Normal
+ </text>
+ <text
+ make_visible_control="LagMeterShrunk"
+ bottom="136"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="40"
+ name="server_lag_cause"
+ right="-32" />
+ <button
+ bottom="145"
+ follows="left|top"
+ height="18"
+ help_url="https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=4851"
+ label="?"
+ layout="topleft"
+ name="server_help"
+ right="-10"
+ width="18" />
+ <button
+ follows="left|top"
+ height="20"
+ label="&gt;&gt;"
+ layout="topleft"
+ left_delta="-317"
+ name="minimize"
+ top_delta="-2"
+ width="25">
+ <button.commit_callback
+ function="LagMeter.ClickShrink" />
+ </button>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_land_holdings.xml b/indra/newview/skins/default/xui/en/floater_land_holdings.xml
new file mode 100644
index 0000000000..0ed4bb4e07
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_land_holdings.xml
@@ -0,0 +1,164 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ height="383"
+ layout="topleft"
+ name="land holdings floater"
+ title="My Land"
+ width="600">
+ <floater.string
+ name="area_string">
+ [AREA] sq. meters
+ </floater.string>
+ <scroll_list
+ draw_heading="true"
+ height="170"
+ layout="topleft"
+ left="8"
+ name="parcel list"
+ top="24"
+ width="584">
+ <scroll_list.columns
+ label="Parcel Name"
+ name="name"
+ width="163" />
+ <scroll_list.columns
+ label="Region"
+ name="location"
+ width="175" />
+ <scroll_list.columns
+ label="Type"
+ name="type"
+ width="140" />
+ <scroll_list.columns
+ label="Area"
+ name="area"
+ width="87" />
+ <scroll_list.columns
+ label=""
+ name="hidden"
+ width="-1" />
+ </scroll_list>
+ <button
+ height="20"
+ label="Teleport"
+ label_selected="Teleport"
+ layout="topleft"
+ left_delta="4"
+ name="Teleport"
+ tool_tip="Teleport to the center of this land."
+ top_pad="4"
+ width="100" />
+ <button
+ height="20"
+ label="Show on Map"
+ label_selected="Show on Map"
+ layout="topleft"
+ left_pad="4"
+ name="Show on Map"
+ tool_tip="Show this land on the world map."
+ top_delta="0"
+ width="100" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="12"
+ name="contrib_label"
+ top="222"
+ width="480">
+ Contributions to your groups:
+ </text>
+ <scroll_list
+ draw_heading="true"
+ height="75"
+ layout="topleft"
+ left_delta="-4"
+ name="grant list"
+ top_pad="4"
+ width="584">
+ <scroll_list.columns
+ label="Group"
+ name="group"
+ width="330" />
+ <scroll_list.columns
+ label="Area"
+ name="area"
+ width="220" />
+ </scroll_list>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="4"
+ name="allowed_label"
+ top_pad="4"
+ width="348">
+ Allowed land holdings at current payment plan:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="340"
+ name="allowed_text"
+ top_delta="0"
+ width="132">
+ [AREA] sq. meters
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="12"
+ name="current_label"
+ top="341"
+ width="348">
+ Current land holdings:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="340"
+ name="current_text"
+ top_delta="0"
+ width="132">
+ [AREA] sq. meters
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerifBold"
+ height="16"
+ layout="topleft"
+ left="12"
+ name="available_label"
+ top="361"
+ width="348">
+ Available for land purchases:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerifBold"
+ height="16"
+ layout="topleft"
+ left_delta="340"
+ name="available_text"
+ top_delta="0"
+ width="140">
+ [AREA] sq. meters
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_live_lsleditor.xml b/indra/newview/skins/default/xui/en/floater_live_lsleditor.xml
new file mode 100644
index 0000000000..0735ac160a
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_live_lsleditor.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ bevel_style="none"
+ border_style="line"
+ can_resize="true"
+ follows="left|top"
+ height="550"
+ layout="topleft"
+ min_height="271"
+ min_width="290"
+ name="script ed float"
+ save_rect="true"
+ title="Script: New Script"
+ width="500">
+ <floater.string
+ name="not_allowed">
+ You are not allowed to view this script.
+ </floater.string>
+ <floater.string
+ name="script_running">
+ Running
+ </floater.string>
+ <floater.string
+ name="Title">
+ Script: [NAME]
+ </floater.string>
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Reset"
+ label_selected="Reset"
+ layout="topleft"
+ left="362"
+ name="Reset"
+ top="525"
+ width="128" />
+ <check_box
+ enabled="false"
+ follows="left|bottom"
+ font="SansSerif"
+ height="18"
+ initial_value="true"
+ label="Running"
+ layout="topleft"
+ left_delta="-350"
+ name="running"
+ top_delta="2"
+ width="100" />
+ <check_box
+ enabled="false"
+ follows="left|bottom"
+ font="SansSerif"
+ height="18"
+ initial_value="true"
+ label="Mono"
+ layout="topleft"
+ left_delta="70"
+ name="mono"
+ top_delta="0"
+ width="100" />
+ <panel
+ bevel_style="none"
+ border_style="line"
+ follows="left|top|right|bottom"
+ height="506"
+ layout="topleft"
+ left="1"
+ name="script ed panel"
+ top="18"
+ width="497" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_lsl_guide.xml b/indra/newview/skins/default/xui/en/floater_lsl_guide.xml
new file mode 100644
index 0000000000..ce6b0efd03
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_lsl_guide.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_resize="true"
+ follows="left|top"
+ height="400"
+ layout="topleft"
+ min_height="271"
+ min_width="350"
+ name="script ed float"
+ save_rect="true"
+ title="LSL Wiki"
+ width="370">
+ <check_box
+ follows="top|left"
+ font="SansSerif"
+ halign="center"
+ height="20"
+ label="Follow cursor"
+ layout="topleft"
+ left="10"
+ name="lock_check"
+ top="25"
+ width="60" />
+ <combo_box
+ allow_text_entry="true"
+ follows="top|left|right"
+ font="SansSerif"
+ halign="center"
+ height="20"
+ label="Lock"
+ layout="topleft"
+ left_pad="40"
+ name="history_combo"
+ top_delta="0"
+ width="90" />
+ <button
+ follows="top|right"
+ height="20"
+ label="Back"
+ layout="topleft"
+ left_pad="5"
+ name="back_btn"
+ top_delta="0"
+ width="70" />
+ <button
+ follows="top|right"
+ height="20"
+ label="Forward"
+ layout="topleft"
+ left_pad="5"
+ name="fwd_btn"
+ top_delta="0"
+ width="70" />
+ <web_browser
+ bottom="390"
+ follows="left|right|top|bottom"
+ layout="topleft"
+ left="10"
+ name="lsl_guide_html"
+ right="-10"
+ top="50" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_map.xml b/indra/newview/skins/default/xui/en/floater_map.xml
new file mode 100644
index 0000000000..ed3b00250b
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_map.xml
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_resize="true"
+ follows="top|right"
+ height="225"
+ layout="topleft"
+ min_height="60"
+ min_width="174"
+ name="Map"
+ save_rect="true"
+ save_visibility="true"
+ single_instance="true"
+ width="200">
+ <floater.string
+ name="mini_map_north">
+ N
+ </floater.string>
+ <floater.string
+ name="mini_map_east">
+ E
+ </floater.string>
+ <floater.string
+ name="mini_map_west">
+ W
+ </floater.string>
+ <floater.string
+ name="mini_map_south">
+ S
+ </floater.string>
+ <floater.string
+ name="mini_map_southeast">
+ SE
+ </floater.string>
+ <floater.string
+ name="mini_map_northeast">
+ NE
+ </floater.string>
+ <floater.string
+ name="mini_map_southwest">
+ SW
+ </floater.string>
+ <floater.string
+ name="mini_map_northwest">
+ NW
+ </floater.string>
+ <floater.string
+ name="ToolTipMsg">
+ [AGENT][REGION](Double-click to open Map)
+ </floater.string>
+ <net_map
+ bg_color="NetMapBackgroundColor"
+ bottom="225"
+ follows="top|left|bottom|right"
+ layout="topleft"
+ left="0"
+ mouse_opaque="false"
+ name="Net Map"
+ right="198"
+ top="2" />
+ <text
+ type="string"
+ length="1"
+ bottom="225"
+ label="N"
+ layout="topleft"
+ left="0"
+ name="floater_map_north"
+ right="10"
+ text="N"
+ text_color="1 1 1 0.7"
+ top="215">
+ N
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom="225"
+ label="E"
+ layout="topleft"
+ left="0"
+ name="floater_map_east"
+ right="10"
+ text="E"
+ text_color="1 1 1 0.7"
+ top="215">
+ E
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom="225"
+ label="W"
+ layout="topleft"
+ left="0"
+ name="floater_map_west"
+ right="11"
+ text="W"
+ text_color="1 1 1 0.7"
+ top="215">
+ W
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom="225"
+ label="S"
+ layout="topleft"
+ left="0"
+ name="floater_map_south"
+ right="10"
+ text="S"
+ text_color="1 1 1 0.7"
+ top="215">
+ S
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom="225"
+ label="SE"
+ layout="topleft"
+ left="0"
+ name="floater_map_southeast"
+ right="20"
+ text="SE"
+ text_color="1 1 1 0.7"
+ top="215">
+ SE
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom="225"
+ label="NE"
+ layout="topleft"
+ left="0"
+ name="floater_map_northeast"
+ right="20"
+ text="NE"
+ text_color="1 1 1 0.7"
+ top="215">
+ NE
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom="225"
+ label="SW"
+ layout="topleft"
+ left="0"
+ name="floater_map_southwest"
+ right="20"
+ text="SW"
+ text_color="1 1 1 0.7"
+ top="215">
+ SW
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom="225"
+ label="NW"
+ layout="topleft"
+ left="0"
+ name="floater_map_northwest"
+ right="20"
+ text="NW"
+ text_color="1 1 1 0.7"
+ top="215">
+ NW
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_media_browser.xml b/indra/newview/skins/default/xui/en/floater_media_browser.xml
new file mode 100644
index 0000000000..a073c3443a
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_media_browser.xml
@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_resize="true"
+ height="440"
+ layout="topleft"
+ min_height="140"
+ min_width="467"
+ name="floater_about"
+ save_rect="true"
+ title="Media Browser"
+ width="820">
+ <layout_stack
+ bottom="440"
+ follows="left|right|top|bottom"
+ layout="topleft"
+ left="10"
+ name="stack1"
+ top="20"
+ width="800">
+ <layout_panel
+ auto_resize="false"
+ height="20"
+ layout="topleft"
+ left="0"
+ name="nav_controls"
+ top="400"
+ user_resize="false"
+ width="800">
+ <button
+ follows="left|top"
+ height="20"
+ label="Back"
+ layout="topleft"
+ left="0"
+ name="back"
+ top="0"
+ width="55" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Forward"
+ layout="topleft"
+ left_pad="3"
+ name="forward"
+ top_delta="0"
+ width="68" />
+ <button
+ enabled="false"
+ follows="left|top"
+ height="20"
+ label="Reload"
+ layout="topleft"
+ left_pad="2"
+ name="reload"
+ top_delta="0"
+ width="70" />
+ <combo_box
+ allow_text_entry="true"
+ follows="left|top|right"
+ height="20"
+ layout="topleft"
+ left_pad="5"
+ max_chars="255"
+ name="address"
+ top_delta="0"
+ width="540" />
+ <button
+ enabled="false"
+ follows="right|top"
+ height="20"
+ label="Go"
+ layout="topleft"
+ left_pad="5"
+ name="go"
+ top_delta="0"
+ width="55" />
+ </layout_panel>
+ <layout_panel
+ auto_resize="false"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="parcel_owner_controls"
+ top_delta="0"
+ user_resize="false"
+ width="540">
+ <button
+ enabled="false"
+ follows="left|top"
+ height="20"
+ label="Send Current URL to Parcel"
+ layout="topleft"
+ left="0"
+ name="assign"
+ top="0"
+ width="200" />
+ </layout_panel>
+ <layout_panel
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="external_controls"
+ top_delta="0"
+ user_resize="false"
+ width="540">
+ <web_browser
+ bottom="-10"
+ follows="left|right|top|bottom"
+ layout="topleft"
+ left="0"
+ name="browser"
+ top="0"
+ width="540" />
+ <button
+ follows="bottom|left"
+ height="20"
+ label="Open in My Web Browser"
+ layout="topleft"
+ left_delta="0"
+ name="open_browser"
+ top_pad="5"
+ width="185" />
+ <check_box
+ control_name="UseExternalBrowser"
+ follows="bottom|left"
+ height="20"
+ label="Always open in my web browser"
+ layout="topleft"
+ left_pad="5"
+ name="open_always"
+ top_delta="0"
+ width="200" />
+ <button
+ follows="bottom|right"
+ height="20"
+ label="Close"
+ layout="topleft"
+ left_pad="80"
+ name="close"
+ top_delta="0"
+ width="70" />
+ </layout_panel>
+ </layout_stack>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_mem_leaking.xml b/indra/newview/skins/default/xui/en/floater_mem_leaking.xml
new file mode 100644
index 0000000000..e2a99e6614
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_mem_leaking.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_minimize="false"
+ follows="left|top"
+ height="175"
+ layout="topleft"
+ name="MemLeak"
+ title="Memory Leaking Simulation"
+ width="350">
+ <spinner
+ decimal_digits="0"
+ follows="left|top"
+ height="20"
+ increment="256"
+ initial_value="512"
+ label="Leaking Speed (bytes per frame):"
+ label_width="220"
+ layout="topleft"
+ left="10"
+ max_val="4.29497e+009"
+ name="leak_speed"
+ top="30"
+ width="330" />
+ <spinner
+ decimal_digits="0"
+ follows="left|top"
+ height="20"
+ increment="4"
+ initial_value="512"
+ label="Max Leaked Memory (MB):"
+ label_width="220"
+ layout="topleft"
+ left_delta="0"
+ max_val="4096"
+ name="max_leak"
+ top_pad="5"
+ width="330" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="25"
+ layout="topleft"
+ left_delta="0"
+ name="total_leaked_label"
+ top_delta="20"
+ width="300">
+ Current leaked memory: [SIZE] KB
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="25"
+ layout="topleft"
+ left_delta="0"
+ name="note_label_1"
+ top_delta="25"
+ width="330">
+ [NOTE1]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="25"
+ layout="topleft"
+ left_delta="0"
+ name="note_label_2"
+ top_delta="25"
+ width="330">
+ [NOTE2]
+ </text>
+ <button
+ follows="left|top"
+ height="20"
+ label="Start"
+ layout="topleft"
+ left_delta="0"
+ name="start_btn"
+ top_delta="20"
+ width="70" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Stop"
+ layout="topleft"
+ left_pad="7"
+ name="stop_btn"
+ top_delta="0"
+ width="70" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Release"
+ layout="topleft"
+ left_pad="7"
+ name="release_btn"
+ top_delta="0"
+ width="70" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Close"
+ layout="topleft"
+ left_pad="36"
+ name="close_btn"
+ top_delta="0"
+ width="70" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_moveview.xml b/indra/newview/skins/default/xui/en/floater_moveview.xml
new file mode 100644
index 0000000000..47342ffc5b
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_moveview.xml
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_minimize="false"
+ center_horiz="true"
+ follows="bottom"
+ height="58"
+ layout="topleft"
+ name="move_floater"
+ save_rect="true"
+ width="135">
+ <button
+ follows="left|bottom"
+ height="25"
+ image_disabled="move_turn_left_out.tga"
+ image_disabled_selected="move_turn_left_in.tga"
+ image_selected="move_turn_left_in.tga"
+ image_unselected="move_turn_left_out.tga"
+ layout="topleft"
+ left="20"
+ name="turn left btn"
+ picture_style="true"
+ scale_image="false"
+ tool_tip="Turn Left"
+ top="29"
+ width="25" />
+ <button
+ follows="left|bottom"
+ height="25"
+ image_disabled="move_turn_right_out.tga"
+ image_disabled_selected="move_turn_right_in.tga"
+ image_selected="move_turn_right_in.tga"
+ image_unselected="move_turn_right_out.tga"
+ layout="topleft"
+ left_pad="21"
+ name="turn right btn"
+ picture_style="true"
+ scale_image="false"
+ tool_tip="Turn Right"
+ top_delta="0"
+ width="25" />
+ <button
+ follows="left|bottom"
+ height="25"
+ image_disabled="move_up_out.tga"
+ image_disabled_selected="move_up_in.tga"
+ image_selected="move_up_in.tga"
+ image_unselected="move_up_out.tga"
+ layout="topleft"
+ left="91"
+ name="move up btn"
+ picture_style="true"
+ scale_image="false"
+ tool_tip="Jump or Fly Up"
+ top="4"
+ width="25" />
+ <button
+ follows="left|bottom"
+ height="25"
+ image_disabled="move_down_out.tga"
+ image_disabled_selected="move_down_in.tga"
+ image_selected="move_down_in.tga"
+ image_unselected="move_down_out.tga"
+ layout="topleft"
+ left_delta="0"
+ name="move down btn"
+ picture_style="true"
+ scale_image="false"
+ tool_tip="Crouch or Fly Down"
+ top_delta="25"
+ width="25" />
+ <joystick_slide
+ follows="left|bottom"
+ height="25"
+ image_selected="move_left_in.tga"
+ image_unselected="move_left_out.tga"
+ layout="topleft"
+ left="20"
+ name="slide left btn"
+ picture_style="true"
+ quadrant="left"
+ scale_image="false"
+ tool_tip="Move Left"
+ top="4"
+ width="25" />
+ <joystick_slide
+ follows="left|bottom"
+ height="25"
+ image_selected="move_right_in.tga"
+ image_unselected="move_right_out.tga"
+ layout="topleft"
+ left_pad="21"
+ name="slide right btn"
+ picture_style="true"
+ quadrant="right"
+ scale_image="false"
+ tool_tip="Move Right"
+ top_delta="0"
+ width="25" />
+ <joystick_turn
+ follows="left|bottom"
+ height="25"
+ image_selected="move_forward_in.tga"
+ image_unselected="move_forward_out.tga"
+ layout="topleft"
+ left_delta="-21"
+ name="forward btn"
+ picture_style="true"
+ quadrant="up"
+ scale_image="false"
+ tool_tip="Move Forward"
+ top_delta="0"
+ width="21" />
+ <joystick_turn
+ follows="left|bottom"
+ height="25"
+ image_selected="move_backward_in.tga"
+ image_unselected="move_backward_out.tga"
+ layout="topleft"
+ left_delta="0"
+ name="backward btn"
+ picture_style="true"
+ quadrant="down"
+ scale_image="false"
+ tool_tip="Move Backward"
+ top_delta="25"
+ width="21" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_mute_object.xml b/indra/newview/skins/default/xui/en/floater_mute_object.xml
new file mode 100644
index 0000000000..7a0ec8282c
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_mute_object.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_minimize="false"
+ height="140"
+ layout="topleft"
+ name="mute by name"
+ title="Mute object by name"
+ width="375">
+ <text
+ type="string"
+ length="1"
+ bottom_delta="50"
+ follows="top|left"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="20"
+ left_delta="25"
+ name="message"
+ right="380">
+ Mute by name only affects object chat and IM, not sounds.
+You must type the object&apos;s name exactly.
+ </text>
+ <line_editor
+ type="string"
+ length="1"
+ follows="top|right"
+ font="SansSerif"
+ height="18"
+ layout="topleft"
+ left_delta="0"
+ name="object_name"
+ top_pad="22"
+ width="320">
+ Object name
+ </line_editor>
+ <button
+ follows="bottom|left"
+ height="20"
+ label="Ok"
+ layout="topleft"
+ left="108"
+ name="OK"
+ top="100"
+ width="75" />
+ <button
+ follows="bottom|right"
+ height="20"
+ label="Cancel"
+ layout="topleft"
+ left_pad="7"
+ name="Cancel"
+ top_delta="0"
+ width="75" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_my_friends.xml b/indra/newview/skins/default/xui/en/floater_my_friends.xml
new file mode 100644
index 0000000000..65665c7036
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_my_friends.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_close="false"
+ can_resize="true"
+ height="390"
+ layout="topleft"
+ min_height="240"
+ min_width="365"
+ name="floater_my_friends"
+ save_rect="true"
+ single_instance="true"
+ title="Contacts"
+ width="395">
+ <tab_container
+ follows="all"
+ height="364"
+ layout="topleft"
+ left="4"
+ name="friends_and_groups"
+ tab_position="top"
+ tab_width="80"
+ top="20"
+ width="383">
+ <panel
+ bottom="364"
+ filename="panel_friends.xml"
+ label="Friends"
+ layout="topleft"
+ left="0"
+ name="friends_panel"
+ width="370" />
+ <panel
+ bottom="364"
+ filename="panel_groups.xml"
+ label="Groups"
+ layout="topleft"
+ left="0"
+ name="groups_panel"
+ width="370" />
+ </tab_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_nearby_chat.xml b/indra/newview/skins/default/xui/en/floater_nearby_chat.xml
new file mode 100644
index 0000000000..f4fd6b01b4
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_nearby_chat.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater
+ background_opaque="false"
+ background_visible="true"
+ bevel_style="in"
+ bg_alpha_color="0.3 0.3 0.3 1.0"
+ height="300"
+ layout="topleft"
+ name="nearby_chat"
+ save_rect="true"
+ title="Nearby Chat"
+ width="320">
+ <panel top="20" width="320" height="30" background_visible="true" background_opaque="false" bg_alpha_color="0.0 0.0 0.0 1.0" name="chat_caption">
+ <text
+ width="140" left="25" height="20" follows="left|right|top"
+ font="SansSerifBigBold" text_color="white" word_wrap="true"
+ mouse_opaque="true" name="sender_name" >NEARBY CHAT </text>
+ <icon top="5" left="250"
+ width="20" height="20" follows="top|right"
+ color="1 1 1 1" enabled="true" image_name="icn_voice-groupfocus.tga"
+ mouse_opaque="true" name="nearby_speakers_btn"/>
+ <icon top="5" left="275"
+ width="20" height="20" follows="top|right"
+ color="1 1 1 1" enabled="true" image_name="inv_item_landmark_visited.tga"
+ mouse_opaque="true" name="tearoff_btn"/>
+ <icon top="5" left="300"
+ width="15" height="15" follows="top|right"
+ color="1 1 1 1" enabled="true" image_name="closebox.tga"
+ name="close_btn"/>
+ </panel>
+ <chat_history_view bottom="0" width="250" height="320" follows="left|right|top|bottom" name="chat_scroll" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_notification.xml b/indra/newview/skins/default/xui/en/floater_notification.xml
new file mode 100644
index 0000000000..cd88ec2f3f
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_notification.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_resize="true"
+ height="200"
+ layout="topleft"
+ min_height="50"
+ name="notification"
+ title="Notifications Console"
+ width="200">
+ <text_editor
+ type="string"
+ length="1"
+ enabled="false"
+ follows="left|top|right|bottom"
+ font="SansSerif"
+ height="140"
+ ignore_tab="false"
+ layout="topleft"
+ left="4"
+ max_length="65536"
+ name="payload"
+ top="25"
+ width="192"
+ word_wrap="true">
+ Loading...
+ </text_editor>
+ <combo_box
+ follows="left|bottom"
+ height="20"
+ label="Response"
+ layout="topleft"
+ left="10"
+ name="response"
+ top="171"
+ width="100" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_notifications_console.xml b/indra/newview/skins/default/xui/en/floater_notifications_console.xml
new file mode 100644
index 0000000000..14aa12aed7
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_notifications_console.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_resize="true"
+ height="500"
+ layout="topleft"
+ min_height="50"
+ name="notifications_console"
+ title="Notifications Console"
+ width="500">
+ <combo_box
+ follows="left|right|top"
+ height="18"
+ label="Select notification type"
+ layout="topleft"
+ left="2"
+ name="notification_types"
+ top="22"
+ width="440" />
+ <button
+ follows="right|top"
+ height="18"
+ label="Add"
+ layout="topleft"
+ left_pad="3"
+ name="add_notification"
+ top_delta="0"
+ width="50" >
+ <button.commit_callback
+ function="ClickAdd" />
+ </button>
+ <layout_stack
+ bottom="495"
+ follows="left|right|top|bottom"
+ layout="topleft"
+ left="5"
+ name="notification_channels"
+ right="-5"
+ top="42" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_openobject.xml b/indra/newview/skins/default/xui/en/floater_openobject.xml
new file mode 100644
index 0000000000..742934b57b
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_openobject.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_resize="true"
+ default_tab_group="1"
+ height="350"
+ layout="topleft"
+ min_height="160"
+ min_width="270"
+ name="objectcontents"
+ save_rect="true"
+ title="Object Contents"
+ width="300">
+ <panel_inventory
+ follows="left|top|right|bottom"
+ height="276"
+ layout="topleft"
+ left="8"
+ name="object_contents"
+ top="44"
+ width="284" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="object_name"
+ top_delta="-20"
+ width="284">
+ [DESC]:
+ </text>
+ <button
+ follows="bottom|left"
+ font="SansSerifSmall"
+ height="20"
+ label="Copy To Inventory"
+ label_selected="Copy To Inventory"
+ layout="topleft"
+ left_delta="2"
+ name="copy_to_inventory_button"
+ tab_group="1"
+ top_pad="285"
+ width="120" />
+ <button
+ follows="bottom|left"
+ font="SansSerifSmall"
+ height="20"
+ label="Copy And Wear"
+ label_selected="Copy And Wear"
+ layout="topleft"
+ left_pad="10"
+ name="copy_and_wear_button"
+ top_delta="0"
+ width="120" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_pay.xml b/indra/newview/skins/default/xui/en/floater_pay.xml
new file mode 100644
index 0000000000..96195c9ba1
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_pay.xml
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_minimize="false"
+ height="140"
+ layout="topleft"
+ name="Give Money"
+ save_rect="true"
+ width="300">
+ <button
+ height="20"
+ label="L$1"
+ label_selected="L$1"
+ layout="topleft"
+ left="108"
+ name="fastpay 1"
+ top="54"
+ width="80" />
+ <button
+ height="20"
+ label="L$5"
+ label_selected="L$5"
+ layout="topleft"
+ left_pad="15"
+ name="fastpay 5"
+ top_delta="0"
+ width="80" />
+ <button
+ height="20"
+ label="L$10"
+ label_selected="L$10"
+ layout="topleft"
+ left="108"
+ name="fastpay 10"
+ top="78"
+ width="80" />
+ <button
+ height="20"
+ label="L$20"
+ label_selected="L$20"
+ layout="topleft"
+ left_pad="15"
+ name="fastpay 20"
+ top_delta="0"
+ width="80" />
+ <button
+ enabled="false"
+ height="20"
+ label="Pay"
+ label_selected="Pay"
+ layout="topleft"
+ left="120"
+ name="pay btn"
+ top="112"
+ width="80" />
+ <button
+ height="20"
+ label="Cancel"
+ label_selected="Cancel"
+ layout="topleft"
+ left_pad="3"
+ name="cancel btn"
+ top_delta="0"
+ width="80" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="18"
+ layout="topleft"
+ left="12"
+ name="payee_label"
+ top="7"
+ width="75">
+ Pay resident:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="18"
+ layout="topleft"
+ left_delta="73"
+ name="payee_name"
+ top_delta="0"
+ width="210">
+ [FIRST] [LAST]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ halign="right"
+ height="18"
+ layout="topleft"
+ left="5"
+ name="fastpay text"
+ top="54"
+ width="95">
+ Fast Pay:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="18"
+ layout="topleft"
+ left="12"
+ name="amount text"
+ top="112"
+ width="75">
+ Amount:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="18"
+ layout="topleft"
+ left_delta="46"
+ max_length="9"
+ name="amount"
+ top_delta="0"
+ width="57" />
+</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
new file mode 100644
index 0000000000..bb91f709a3
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_pay_object.xml
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_minimize="false"
+ height="140"
+ layout="topleft"
+ name="Give Money"
+ save_rect="true"
+ width="300">
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ halign="right"
+ height="18"
+ layout="topleft"
+ left="5"
+ name="payee_group"
+ top="7"
+ width="75">
+ Pay group:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ halign="right"
+ height="18"
+ layout="topleft"
+ left_delta="0"
+ name="payee_resident"
+ top_delta="0"
+ width="75">
+ Pay resident:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="18"
+ layout="topleft"
+ left_pad="5"
+ name="payee_name"
+ top_delta="0"
+ width="210">
+ [FIRST] [LAST]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ halign="right"
+ height="18"
+ layout="topleft"
+ left="5"
+ name="object_name_label"
+ top="32"
+ width="75">
+ Via object:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="18"
+ layout="topleft"
+ left_pad="5"
+ name="object_name_text"
+ top_delta="0"
+ width="210">
+ ...
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ halign="right"
+ height="18"
+ layout="topleft"
+ left="5"
+ name="fastpay text"
+ top="54"
+ width="75">
+ Fast Pay:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ halign="right"
+ height="18"
+ layout="topleft"
+ left_delta="0"
+ name="amount text"
+ top_pad="40"
+ width="75">
+ Amount:
+ </text>
+ <button
+ height="20"
+ label="L$1"
+ label_selected="L$1"
+ layout="topleft"
+ left="85"
+ name="fastpay 1"
+ top="54"
+ width="80" />
+ <button
+ height="20"
+ label="L$5"
+ label_selected="L$5"
+ layout="topleft"
+ left_pad="5"
+ name="fastpay 5"
+ top_delta="0"
+ width="80" />
+ <button
+ height="20"
+ label="L$10"
+ label_selected="L$10"
+ layout="topleft"
+ left="85"
+ name="fastpay 10"
+ top="78"
+ width="80" />
+ <button
+ height="20"
+ label="L$20"
+ label_selected="L$20"
+ layout="topleft"
+ left_pad="5"
+ name="fastpay 20"
+ top_delta="0"
+ width="80" />
+ <button
+ enabled="false"
+ follows="right|bottom"
+ height="20"
+ label="Pay"
+ label_selected="Pay"
+ layout="topleft"
+ left="140"
+ name="pay btn"
+ top="112"
+ width="70" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Cancel"
+ label_selected="Cancel"
+ layout="topleft"
+ left_pad="5"
+ name="cancel btn"
+ top_delta="0"
+ width="70" />
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="18"
+ layout="topleft"
+ left_delta="-130"
+ max_length="9"
+ name="amount"
+ top_delta="0"
+ width="50" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_perm_prefs.xml b/indra/newview/skins/default/xui/en/floater_perm_prefs.xml
new file mode 100644
index 0000000000..430cb940e5
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_perm_prefs.xml
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ height="180"
+ layout="topleft"
+ name="perm prefs"
+ save_rect="true"
+ title="Default Upload Permissions"
+ width="315">
+ <panel
+ follows="left|top|right|bottom"
+ height="120"
+ label="Permissions"
+ layout="topleft"
+ left="10"
+ name="permissions"
+ top="20"
+ width="315">
+ <button
+ follows="left"
+ height="18"
+ label="?"
+ label_selected="?"
+ layout="topleft"
+ left="260"
+ name="help"
+ top="7"
+ width="22" />
+ <check_box
+ control_name="ShareWithGroup"
+ height="16"
+ label="Share with group"
+ layout="topleft"
+ left_delta="-250"
+ name="share_with_group"
+ top_delta="2"
+ width="106" />
+ <check_box
+ control_name="EveryoneCopy"
+ height="16"
+ label="Allow anyone to copy"
+ layout="topleft"
+ left_delta="0"
+ name="everyone_copy"
+ top_pad="16"
+ width="130" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="0"
+ name="NextOwnerLabel"
+ top_pad="16"
+ width="88">
+ Next owner can:
+ </text>
+ <check_box
+ control_name="NextOwnerModify"
+ height="16"
+ label="Modify"
+ layout="topleft"
+ left_delta="0"
+ name="next_owner_modify"
+ top_pad="14"
+ width="78" />
+ <check_box
+ control_name="NextOwnerCopy"
+ height="16"
+ label="Copy"
+ layout="topleft"
+ left_delta="78"
+ name="next_owner_copy"
+ top_delta="0"
+ width="88" />
+ <check_box
+ control_name="NextOwnerTransfer"
+ enabled="false"
+ height="16"
+ initial_value="true"
+ label="Resell/Give away"
+ layout="topleft"
+ left_delta="88"
+ name="next_owner_transfer"
+ top_delta="0"
+ width="106" />
+ </panel>
+ <button
+ height="20"
+ label="OK"
+ label_selected="OK"
+ layout="topleft"
+ left="90"
+ name="ok"
+ top="150"
+ width="100" />
+ <button
+ height="20"
+ label="Cancel"
+ label_selected="Cancel"
+ layout="topleft"
+ left_pad="5"
+ name="cancel"
+ top_delta="0"
+ width="100" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_post_process.xml b/indra/newview/skins/default/xui/en/floater_post_process.xml
new file mode 100644
index 0000000000..5a36ed5fd6
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_post_process.xml
@@ -0,0 +1,420 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ height="400"
+ layout="topleft"
+ name="Post-Process Floater"
+ title="Post-Process Settings"
+ width="400">
+ <tab_container
+ follows="left|top"
+ height="400"
+ layout="topleft"
+ left="0"
+ name="Post-Process Tabs"
+ tab_position="top"
+ top="0"
+ width="400">
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="400"
+ label="Color Filter"
+ layout="topleft"
+ left="1"
+ mouse_opaque="false"
+ name="wmiColorFilterPanel"
+ top="0"
+ width="398">
+ <check_box
+ control_name="wmiColorFilterToggle"
+ height="16"
+ label="Enable"
+ layout="topleft"
+ left="14"
+ name="wmiColorFilterToggle"
+ top="4"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="-4"
+ name="wmiColorFilterBrightnessText"
+ top_pad="4"
+ width="355">
+ Brightness
+ </text>
+ <slider
+ control_name="wmiColorFilterBrightness"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="1.0"
+ layout="topleft"
+ left_delta="4"
+ max_val="4"
+ name="wmiColorFilterBrightness"
+ top_pad="20"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="-4"
+ name="wmiColorFilterSaturationText"
+ top_pad="4"
+ width="355">
+ Saturation
+ </text>
+ <slider
+ control_name="wmiColorFilterSaturation"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="1.0"
+ layout="topleft"
+ left_delta="4"
+ max_val="2"
+ min_val="-1"
+ name="wmiColorFilterSaturation"
+ top_pad="20"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="-4"
+ name="wmiColorFilterContrastText"
+ top_pad="4"
+ width="355">
+ Contrast
+ </text>
+ <slider
+ control_name="wmiColorFilterContrast"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="1.0"
+ layout="topleft"
+ left_delta="4"
+ max_val="4"
+ name="wmiColorFilterContrast"
+ top_pad="20"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="-4"
+ name="wmiColorFilterBaseText"
+ top_pad="4"
+ width="355">
+ Contrast Base Color
+ </text>
+ <slider
+ control_name="wmiColorFilterBaseR"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="1.0"
+ label="R"
+ layout="topleft"
+ left_delta="4"
+ name="wmiColorFilterBaseR"
+ top_pad="20"
+ width="200" />
+ <slider
+ control_name="wmiColorFilterBaseG"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="1.0"
+ label="G"
+ layout="topleft"
+ left_delta="0"
+ name="wmiColorFilterBaseG"
+ top_pad="10"
+ width="200" />
+ <slider
+ control_name="wmiColorFilterBaseB"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="1.0"
+ label="B"
+ layout="topleft"
+ left_delta="0"
+ name="wmiColorFilterBaseB"
+ top_pad="10"
+ width="200" />
+ <slider
+ control_name="wmiColorFilterBaseI"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.5"
+ label="I"
+ layout="topleft"
+ left_delta="0"
+ name="wmiColorFilterBaseI"
+ top_pad="10"
+ width="200" />
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="400"
+ label="Night Vision"
+ layout="topleft"
+ left_delta="0"
+ mouse_opaque="false"
+ name="wmiNightVisionPanel"
+ top_delta="-236"
+ width="398">
+ <check_box
+ control_name="wmiNightVisionToggle"
+ height="16"
+ label="Enable"
+ layout="topleft"
+ left="14"
+ name="wmiNightVisionToggle"
+ top="4"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="-4"
+ name="wmiNightVisionBrightMultText"
+ top_pad="5"
+ width="355">
+ Light Amplification Multiple
+ </text>
+ <slider
+ control_name="wmiNightVisionBrightMult"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="3.0"
+ layout="topleft"
+ left_delta="4"
+ max_val="10"
+ min_val="1"
+ name="wmiNightVisionBrightMult"
+ top_pad="20"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="-4"
+ name="wmiNightVisionNoiseSizeText"
+ top_pad="4"
+ width="355">
+ Noise Size
+ </text>
+ <slider
+ control_name="wmiNightVisionNoiseSize"
+ follows="left"
+ height="10"
+ initial_value="1"
+ layout="topleft"
+ left_delta="4"
+ max_val="100"
+ min_val="1"
+ name="wmiNightVisionNoiseSize"
+ top_pad="20"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="-4"
+ name="wmiNightVisionNoiseStrengthText"
+ top_pad="4"
+ width="355">
+ Noise Strength
+ </text>
+ <slider
+ control_name="wmiNightVisionNoiseStrength"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.3"
+ layout="topleft"
+ left_delta="4"
+ name="wmiNightVisionNoiseStrength"
+ top_pad="20"
+ width="200" />
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="400"
+ label="Bloom"
+ layout="topleft"
+ left_delta="0"
+ name="wmiBloomPanel"
+ top_delta="-236"
+ width="398">
+ <check_box
+ control_name="wmiBloomToggle"
+ height="16"
+ label="Enable"
+ layout="topleft"
+ left="14"
+ name="wmiBloomToggle"
+ top="4"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="-4"
+ name="wmiBloomExtractText"
+ top_pad="5"
+ width="355">
+ Luminosity Extraction
+ </text>
+ <slider
+ control_name="wmiBloomExtract"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.9"
+ layout="topleft"
+ left_delta="4"
+ name="wmiBloomExtract"
+ top_pad="20"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="-4"
+ name="wmiBloomSizeText"
+ top_pad="4"
+ width="355">
+ Bloom Size
+ </text>
+ <slider
+ control_name="wmiBloomSize"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="3.0"
+ layout="topleft"
+ left_delta="4"
+ max_val="20"
+ name="wmiBloomSize"
+ top_pad="20"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="-4"
+ name="wmiBloomStrengthText"
+ top_pad="4"
+ width="355">
+ Bloom Strength
+ </text>
+ <slider
+ control_name="wmiBloomStrength"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="1.2"
+ layout="topleft"
+ left_delta="4"
+ max_val="10"
+ name="wmiBloomStrength"
+ top_pad="20"
+ width="200" />
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="400"
+ label="Extras"
+ layout="topleft"
+ left_delta="0"
+ mouse_opaque="false"
+ name="Extras"
+ top_delta="-236"
+ width="398">
+ <button
+ height="20"
+ label="LoadEffect"
+ label_selected="LoadEffect"
+ layout="topleft"
+ left="15"
+ name="PPLoadEffect"
+ top="13"
+ width="100" />
+ <button
+ height="20"
+ label="SaveEffect"
+ label_selected="SaveEffect"
+ layout="topleft"
+ left_delta="0"
+ name="PPSaveEffect"
+ top_pad="7"
+ width="100" />
+ <combo_box
+ height="18"
+ layout="topleft"
+ left_delta="120"
+ name="PPEffectsCombo"
+ top="15"
+ width="150" />
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|right|bottom"
+ font="SansSerif"
+ height="20"
+ label="Effect Name"
+ layout="topleft"
+ left_delta="0"
+ max_length="40"
+ name="PPEffectNameEditor"
+ tab_group="1"
+ top_pad="22"
+ width="150" />
+ </panel>
+ </tab_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_postcard.xml b/indra/newview/skins/default/xui/en/floater_postcard.xml
new file mode 100644
index 0000000000..91c2a41891
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_postcard.xml
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ auto_tile="true"
+ can_minimize="false"
+ can_resize="true"
+ height="380"
+ layout="topleft"
+ min_height="380"
+ min_width="450"
+ name="Postcard"
+ title="Email Snapshot"
+ width="450">
+ <floater.string
+ name="default_subject">
+ Postcard from Second Life.
+ </floater.string>
+ <floater.string
+ name="default_message">
+ Check this out!
+ </floater.string>
+ <floater.string
+ name="upload_message">
+ Sending...
+ </floater.string>
+ <text
+ type="string"
+ length="1"
+ bottom="35"
+ follows="top|left"
+ font="SansSerif"
+ layout="topleft"
+ left="12"
+ name="to_label">
+ Recipient&apos;s Email:
+ </text>
+ <line_editor
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_delta="108"
+ name="to_form"
+ top_delta="-4"
+ width="150" />
+ <text
+ type="string"
+ length="1"
+ bottom_delta="23"
+ follows="top|left"
+ font="SansSerif"
+ layout="topleft"
+ left="12"
+ name="from_label">
+ Your Email:
+ </text>
+ <line_editor
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_delta="108"
+ name="from_form"
+ top_delta="-4"
+ width="150" />
+ <text
+ type="string"
+ length="1"
+ bottom_delta="23"
+ follows="top|left"
+ font="SansSerif"
+ layout="topleft"
+ left="12"
+ name="name_label">
+ Your Name:
+ </text>
+ <line_editor
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_delta="108"
+ max_length="100"
+ name="name_form"
+ top_delta="-4"
+ width="150" />
+ <text
+ type="string"
+ length="1"
+ bottom_delta="23"
+ follows="top|left"
+ font="SansSerif"
+ layout="topleft"
+ left="12"
+ name="subject_label">
+ Subject:
+ </text>
+ <line_editor
+ follows="left|top"
+ height="20"
+ label="Type your subject here."
+ layout="topleft"
+ left_delta="108"
+ max_length="100"
+ name="subject_form"
+ top_delta="-4"
+ width="150" />
+ <text
+ type="string"
+ length="1"
+ bottom_delta="23"
+ follows="top|left"
+ font="SansSerif"
+ layout="topleft"
+ left="12"
+ name="msg_label">
+ Message:
+ </text>
+ <text_editor
+ type="string"
+ length="1"
+ follows="left|top|right|bottom"
+ height="140"
+ layout="topleft"
+ left_delta="0"
+ max_length="700"
+ name="msg_form"
+ top_pad="10"
+ width="420">
+ Type your message here.
+ </text_editor>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="37"
+ follows="left|bottom"
+ layout="topleft"
+ left="12"
+ name="fine_print">
+ If your recipient joins SL, you&apos;ll get a referral bonus.
+ </text>
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Cancel"
+ layout="topleft"
+ name="cancel_btn"
+ right="-10"
+ top="350"
+ width="100" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Send"
+ layout="topleft"
+ left_delta="-106"
+ name="send_btn"
+ top_delta="0"
+ width="100" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_preferences.xml b/indra/newview/skins/default/xui/en/floater_preferences.xml
new file mode 100644
index 0000000000..1760d5b818
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_preferences.xml
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ center_horiz="true"
+ center_vert="true"
+ default_tab_group="1"
+ height="460"
+ layout="topleft"
+ name="Preferences"
+ single_instance="true"
+ title="Preferences"
+ width="620">
+ <button
+ follows="right|bottom"
+ height="20"
+ label="OK"
+ label_selected="OK"
+ layout="topleft"
+ left="335"
+ name="OK"
+ top="435"
+ width="90">
+ <button.commit_callback
+ function="Pref.OK" />
+ </button>
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Cancel"
+ label_selected="Cancel"
+ layout="topleft"
+ left_pad="3"
+ name="Cancel"
+ top_delta="0"
+ width="90" >
+ <button.commit_callback
+ function="Pref.Cancel" />
+ </button>
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Apply"
+ label_selected="Apply"
+ layout="topleft"
+ left_pad="3"
+ name="Apply"
+ top_delta="0"
+ width="90">
+ <button.commit_callback
+ function="Pref.Apply" />
+ </button>
+ <button
+ follows="left|bottom"
+ height="20"
+ label="About"
+ label_selected="About"
+ layout="topleft"
+ left_delta="-512"
+ name="About..."
+ top_delta="0"
+ width="90">
+ <button.commit_callback
+ function="Floater.Show"
+ parameter="sl_about" />
+ </button>
+ <button
+ follows="left|bottom"
+ height="20"
+ help_url="https://support.secondlife.com/ics/support/default.asp?deptID=4417"
+ label="Help"
+ label_selected="Help"
+ layout="topleft"
+ left_pad="3"
+ name="Help"
+ top_delta="0"
+ width="90" />
+ <tab_container
+ follows="left|top|right|bottom"
+ height="410"
+ layout="topleft"
+ left="0"
+ name="pref core"
+ tab_group="1"
+ tab_position="left"
+ tab_width="120"
+ top="21"
+ width="620">
+ <panel
+ class="panel_preference"
+ filename="panel_preferences_general.xml"
+ label="General"
+ layout="topleft"
+ name="general" />
+ <panel
+ class="panel_preference"
+ filename="panel_preferences_input.xml"
+ label="Input &amp; Camera"
+ layout="topleft"
+ name="input" />
+ <panel
+ class="panel_preference"
+ filename="panel_preferences_network.xml"
+ label="Network"
+ layout="topleft"
+ name="network" />
+ <panel
+ class="panel_preference"
+ filename="panel_preferences_web.xml"
+ label="Web"
+ layout="topleft"
+ name="web" />
+ <panel
+ class="panel_preference"
+ filename="panel_preferences_graphics1.xml"
+ label="Graphics"
+ layout="topleft"
+ name="display" />
+ <panel
+ class="panel_preference"
+ filename="panel_preferences_audio.xml"
+ label="Audio &amp; Video"
+ layout="topleft"
+ name="audio" />
+ <panel
+ class="panel_preference"
+ filename="panel_preferences_chat.xml"
+ label="Text Chat"
+ layout="topleft"
+ name="chat" />
+ <panel
+ class="panel_preference"
+ filename="panel_preferences_voice.xml"
+ label="Voice Chat"
+ layout="topleft"
+ name="voice" />
+ <panel
+ class="panel_preference"
+ filename="panel_preferences_im.xml"
+ label="Communication"
+ layout="topleft"
+ name="im" />
+ <panel
+ class="panel_preference"
+ filename="panel_preferences_popups.xml"
+ label="Popups"
+ layout="topleft"
+ name="msgs" />
+ <panel
+ class="panel_preference"
+ filename="panel_preferences_skins.xml"
+ label="Skins"
+ layout="topleft"
+ name="skins" />
+ </tab_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_preview_animation.xml b/indra/newview/skins/default/xui/en/floater_preview_animation.xml
new file mode 100644
index 0000000000..50aabfc895
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_preview_animation.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ auto_tile="true"
+ height="85"
+ layout="topleft"
+ name="preview_anim"
+ width="300">
+ <floater.string
+ name="Title">
+ Animation: [NAME]
+ </floater.string>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="19"
+ layout="topleft"
+ left="93"
+ max_length="127"
+ name="desc"
+ top="19"
+ width="194" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="19"
+ layout="topleft"
+ left_delta="-80"
+ name="desc txt"
+ top_delta="0"
+ width="80">
+ Description:
+ </text>
+ <button
+ height="19"
+ label="Play in World"
+ label_selected="Stop"
+ layout="topleft"
+ left="27"
+ name="Anim play btn"
+ tool_tip="Play this animation so that others can see it."
+ top="47"
+ width="96" />
+ <button
+ height="19"
+ label="Play Locally"
+ label_selected="Stop"
+ layout="topleft"
+ left_pad="54"
+ name="Anim audition btn"
+ tool_tip="Play this animation so that only you can see it."
+ top_delta="0"
+ width="96" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_preview_classified.xml b/indra/newview/skins/default/xui/en/floater_preview_classified.xml
new file mode 100644
index 0000000000..6fac2823e8
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_preview_classified.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ auto_tile="true"
+ height="510"
+ layout="topleft"
+ name="classified_preview"
+ save_rect="true"
+ title="Classified Information"
+ width="440">
+ <floater.string
+ name="Title">
+ Classified: [NAME]
+ </floater.string>
+ <panel
+ follows="bottom|left"
+ height="470"
+ layout="topleft"
+ left="0"
+ name="classified_details_panel"
+ top="20"
+ width="440" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_preview_event.xml b/indra/newview/skins/default/xui/en/floater_preview_event.xml
new file mode 100644
index 0000000000..58dd43075d
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_preview_event.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ auto_tile="true"
+ height="510"
+ layout="topleft"
+ name="event_preview"
+ save_rect="true"
+ title="Event Information"
+ width="440">
+ <floater.string
+ name="Title">
+ Event: [NAME]
+ </floater.string>
+ <panel
+ follows="bottom|left"
+ height="470"
+ layout="topleft"
+ left="0"
+ name="event_details_panel"
+ top="20"
+ width="440" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_preview_gesture.xml b/indra/newview/skins/default/xui/en/floater_preview_gesture.xml
new file mode 100644
index 0000000000..9d183d8103
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_preview_gesture.xml
@@ -0,0 +1,351 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ auto_tile="true"
+ height="350"
+ layout="topleft"
+ name="gesture_preview"
+ width="450">
+ <floater.string
+ name="step_anim">
+ Animation to play:
+ </floater.string>
+ <floater.string
+ name="step_sound">
+ Sound to play:
+ </floater.string>
+ <floater.string
+ name="step_chat">
+ Chat to say:
+ </floater.string>
+ <floater.string
+ name="step_wait">
+ Wait:
+ </floater.string>
+ <floater.string
+ name="stop_txt">
+ Stop
+ </floater.string>
+ <floater.string
+ name="preview_txt">
+ Preview
+ </floater.string>
+ <floater.string
+ name="none_text">
+ -- None --
+ </floater.string>
+ <floater.string
+ name="Title">
+ Gesture: [NAME]
+ </floater.string>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ font="SansSerif"
+ height="10"
+ layout="topleft"
+ left="16"
+ name="desc_label"
+ top="25"
+ width="100">
+ Description:
+ </text>
+ <line_editor
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_delta="84"
+ name="desc"
+ top_delta="-4"
+ width="330" />
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ font="SansSerif"
+ height="10"
+ layout="topleft"
+ left="16"
+ name="trigger_label"
+ top="54"
+ width="100">
+ Trigger:
+ </text>
+ <line_editor
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_delta="84"
+ max_length="31"
+ name="trigger_editor"
+ top_delta="-4"
+ width="105" />
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ font="SansSerif"
+ height="10"
+ layout="topleft"
+ left_pad="15"
+ name="replace_text"
+ tool_tip="Replace the trigger word(s) with these words. For example, trigger &apos;hello&apos; replace with &apos;howdy&apos; will turn the chat &apos;I wanted to say hello&apos; into &apos;I wanted to say howdy&apos; as well as playing the gesture!"
+ top_delta="4"
+ width="200">
+ Replace with:
+ </text>
+ <line_editor
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_delta="80"
+ max_length="31"
+ name="replace_editor"
+ tool_tip="Replace the trigger word(s) with these words. For example, trigger &apos;hello&apos; replace with &apos;howdy&apos; will turn the chat &apos;I wanted to say hello&apos; into &apos;I wanted to say howdy&apos; as well as playing the gesture"
+ top_delta="-4"
+ width="130" />
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ font="SansSerif"
+ height="10"
+ layout="topleft"
+ left="16"
+ name="key_label"
+ top="83"
+ width="100">
+ Shortcut Key:
+ </text>
+ <combo_box
+ height="20"
+ label="None"
+ layout="topleft"
+ left_delta="84"
+ name="modifier_combo"
+ top_delta="-4"
+ width="50" />
+ <combo_box
+ height="20"
+ label="None"
+ layout="topleft"
+ left_pad="10"
+ name="key_combo"
+ top_delta="0"
+ width="45" />
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ font="SansSerif"
+ height="10"
+ layout="topleft"
+ left="16"
+ name="library_label"
+ top="112"
+ width="100">
+ Library:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ font="SansSerif"
+ height="10"
+ layout="topleft"
+ left_pad="104"
+ name="steps_label"
+ top_delta="0"
+ width="100">
+ Steps:
+ </text>
+ <scroll_list
+ follows="top|left"
+ height="110"
+ layout="topleft"
+ left="16"
+ name="library_list"
+ top="132"
+ width="100">
+ <scroll_list.rows
+ value="Animation" />
+ <scroll_list.rows
+ value="Sound" />
+ <scroll_list.rows
+ value="Chat" />
+ <scroll_list.rows
+ value="Wait" />
+ </scroll_list>
+ <button
+ follows="top|left"
+ height="20"
+ label="Add &gt;&gt;"
+ layout="topleft"
+ left_pad="14"
+ name="add_btn"
+ top_delta="0"
+ width="80" />
+ <button
+ follows="top|left"
+ height="20"
+ label="Move Up"
+ layout="topleft"
+ left_delta="0"
+ name="up_btn"
+ top_pad="10"
+ width="80" />
+ <button
+ follows="top|left"
+ height="20"
+ label="Move Down"
+ layout="topleft"
+ left_delta="0"
+ name="down_btn"
+ top_pad="10"
+ width="80" />
+ <button
+ follows="top|left"
+ height="20"
+ label="Remove"
+ layout="topleft"
+ left_delta="0"
+ name="delete_btn"
+ top_pad="10"
+ width="80" />
+ <scroll_list
+ follows="top|left"
+ height="110"
+ layout="topleft"
+ left="220"
+ name="step_list"
+ top="132"
+ width="210" />
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ font="SansSerif"
+ height="60"
+ layout="topleft"
+ left="16"
+ name="help_label"
+ top="252"
+ width="200">
+ All steps happen simultaneously,
+unless you add wait steps.
+ </text>
+ <text
+ follows="top|left"
+ height="60"
+ layout="topleft"
+ left_pad="6"
+ name="options_text"
+ top_delta="0"
+ width="205" />
+ <combo_box
+ follows="top|left"
+ height="20"
+ layout="topleft"
+ left_delta="10"
+ name="animation_list"
+ top="272"
+ width="100" />
+ <combo_box
+ follows="top|left"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="sound_list"
+ top_delta="0"
+ width="100" />
+ <line_editor
+ follows="top|left"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ max_length="127"
+ name="chat_editor"
+ top_delta="0"
+ width="100" />
+ <radio_group
+ draw_border="false"
+ follows="top|left"
+ height="40"
+ layout="topleft"
+ left_pad="8"
+ name="animation_trigger_type"
+ top_delta="0"
+ width="80">
+ <radio_item
+ height="16"
+ label="Start"
+ layout="topleft"
+ left="3"
+ name="start"
+ top="-11"
+ width="80" />
+ <radio_item
+ height="16"
+ label="Stop"
+ layout="topleft"
+ left_delta="0"
+ name="stop"
+ top_pad="10"
+ width="80" />
+ </radio_group>
+ <check_box
+ follows="top|left"
+ height="20"
+ label="until animations are done"
+ layout="topleft"
+ left="232"
+ name="wait_anim_check"
+ top="267"
+ width="100" />
+ <check_box
+ follows="top|left"
+ height="20"
+ label="time in seconds"
+ layout="topleft"
+ left_delta="0"
+ name="wait_time_check"
+ top_delta="20"
+ width="100" />
+ <line_editor
+ follows="top|left"
+ height="20"
+ layout="topleft"
+ left_pad="5"
+ max_length="15"
+ name="wait_time_editor"
+ top_delta="0"
+ width="50" />
+ <check_box
+ follows="top|left"
+ height="20"
+ label="Active"
+ layout="topleft"
+ left="140"
+ name="active_check"
+ tool_tip="Active gestures can be triggered by chatting their trigger phrases or pressing their hot keys. Gestures usually become inactive when there is a key binding conflict."
+ top="323"
+ width="100" />
+ <button
+ follows="top|left"
+ height="20"
+ label="Preview"
+ layout="topleft"
+ left_delta="75"
+ name="preview_btn"
+ top_delta="2"
+ width="80" />
+ <button
+ follows="top|left"
+ height="20"
+ label="Save"
+ layout="topleft"
+ left_pad="10"
+ name="save_btn"
+ top_delta="0"
+ width="80" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_preview_notecard.xml b/indra/newview/skins/default/xui/en/floater_preview_notecard.xml
new file mode 100644
index 0000000000..3327dc8c8b
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_preview_notecard.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ auto_tile="true"
+ can_resize="true"
+ default_tab_group="1"
+ follows="left|top"
+ height="361"
+ layout="topleft"
+ min_height="243"
+ min_width="234"
+ name="preview notecard"
+ title="Note:"
+ width="400">
+ <floater.string
+ name="no_object">
+ Unable to find object containing this note.
+ </floater.string>
+ <floater.string
+ name="not_allowed">
+ You are not allowed to view this note.
+ </floater.string>
+ <floater.string
+ name="Title">
+ Notecard: [NAME]
+ </floater.string>
+ <floater.string
+ name="Save">
+ Save
+ </floater.string>
+ <icon
+ follows="top|right"
+ height="16"
+ image_name="icon_lock.tga"
+ layout="topleft"
+ left="344"
+ mouse_opaque="true"
+ name="lock"
+ top="3"
+ width="16" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="19"
+ layout="topleft"
+ left="13"
+ name="desc txt"
+ top="19"
+ width="80">
+ Description:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="19"
+ layout="topleft"
+ left_delta="80"
+ max_length="127"
+ name="desc"
+ top_delta="0"
+ width="294" />
+ <text_editor
+ type="string"
+ length="1"
+ embedded_items="true"
+ follows="left|top|right|bottom"
+ font="SansSerif"
+ height="281"
+ ignore_tab="false"
+ layout="topleft"
+ left="4"
+ max_length="65536"
+ name="Notecard Editor"
+ tab_group="1"
+ top="46"
+ width="392"
+ word_wrap="true">
+ Loading...
+ </text_editor>
+ <button
+ follows="left|bottom"
+ height="20"
+ label="Discard"
+ label_selected="Discard"
+ layout="topleft"
+ left="9"
+ name="Discard"
+ top="332"
+ width="100" />
+ <button
+ enabled="false"
+ follows="left|bottom"
+ height="20"
+ label="Keep"
+ label_selected="Keep"
+ layout="topleft"
+ left_pad="5"
+ mouse_opaque="false"
+ name="Keep"
+ top_delta="0"
+ width="100" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_preview_sound.xml b/indra/newview/skins/default/xui/en/floater_preview_sound.xml
new file mode 100644
index 0000000000..07a50ac589
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_preview_sound.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ auto_tile="true"
+ height="85"
+ layout="topleft"
+ name="preview_sound"
+ width="300">
+ <floater.string
+ name="Title">
+ Sound: [NAME]
+ </floater.string>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="19"
+ layout="topleft"
+ left="95"
+ max_length="127"
+ name="desc"
+ top="19"
+ width="192" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="19"
+ layout="topleft"
+ left_delta="-82"
+ name="desc txt"
+ top_delta="0"
+ width="80">
+ Description:
+ </text>
+ <button
+ follows="left|top"
+ height="19"
+ label="Play Locally"
+ label_selected="Play Locally"
+ layout="topleft"
+ left="168"
+ name="Sound audition btn"
+ sound_flags="0"
+ tool_tip="Play this sound so that only you can hear it."
+ top="51"
+ width="120" />
+ <button
+ follows="left|top"
+ height="19"
+ label="Play in World"
+ label_selected="Play in World"
+ layout="topleft"
+ left_delta="-126"
+ name="Sound play btn"
+ sound_flags="0"
+ tool_tip="Play this sound so that others can hear it."
+ top_delta="0"
+ width="120" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_preview_texture.xml b/indra/newview/skins/default/xui/en/floater_preview_texture.xml
new file mode 100644
index 0000000000..661dc63b3d
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_preview_texture.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ auto_tile="true"
+ can_resize="true"
+ follows="left|bottom"
+ height="331"
+ layout="topleft"
+ min_height="120"
+ min_width="300"
+ name="preview_texture"
+ width="300">
+ <floater.string
+ name="Title">
+ Texture: [NAME]
+ </floater.string>
+ <floater.string
+ name="Copy">
+ Copy To Inventory
+ </floater.string>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="19"
+ layout="topleft"
+ left="13"
+ name="desc txt"
+ top="21"
+ width="80">
+ Description:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="19"
+ layout="topleft"
+ left_delta="80"
+ max_length="127"
+ name="desc"
+ top_delta="-2"
+ width="194" />
+ <button
+ follows="left|bottom"
+ height="20"
+ label="Discard"
+ label_selected="Discard"
+ layout="topleft"
+ left="9"
+ name="Discard"
+ top="302"
+ width="100" />
+ <button
+ follows="left|bottom"
+ height="20"
+ label="Keep"
+ label_selected="Keep"
+ layout="topleft"
+ left_pad="5"
+ name="Keep"
+ top_delta="0"
+ width="100" />
+ <text
+ type="string"
+ length="1"
+ follows="left|bottom"
+ height="14"
+ layout="topleft"
+ left="13"
+ name="dimensions"
+ top="287"
+ width="163">
+ Dimensions: [WIDTH] x [HEIGHT]
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_region_info.xml b/indra/newview/skins/default/xui/en/floater_region_info.xml
new file mode 100644
index 0000000000..48694e5fb6
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_region_info.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ height="512"
+ layout="topleft"
+ name="regioninfo"
+ save_rect="true"
+ title="Region/Estate"
+ width="480">
+ <tab_container
+ bottom="512"
+ follows="left|right|top|bottom"
+ layout="topleft"
+ left="1"
+ name="region_panels"
+ right="-1"
+ tab_position="top"
+ top="20" />
+</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
new file mode 100644
index 0000000000..4c036f98e5
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_report_abuse.xml
@@ -0,0 +1,454 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ height="590"
+ layout="topleft"
+ name="floater_report_abuse"
+ title="Report Abuse"
+ width="390">
+ <floater.string
+ name="Screenshot">
+ Screenshot
+ </floater.string>
+ <texture_picker
+ allow_no_texture="true"
+ default_image_name="None"
+ follows="left|top"
+ height="114"
+ layout="topleft"
+ left="238"
+ name="screenshot"
+ top="36"
+ width="134" />
+ <check_box
+ height="16"
+ label="Include screenshot"
+ layout="topleft"
+ left="13"
+ name="screen_check"
+ top="134"
+ width="116" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="3"
+ name="reporter_title"
+ top_delta="-102"
+ width="50">
+ Reporter:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_pad="12"
+ name="reporter_field"
+ top_delta="0"
+ width="150">
+ Loremipsum Dolorsitamut
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="16"
+ name="sim_title"
+ top="48"
+ width="60">
+ Region:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_pad="2"
+ name="sim_field"
+ top_delta="0"
+ width="120">
+ Region Name
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="16"
+ name="pos_title"
+ top="64"
+ width="50">
+ Position:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_pad="12"
+ name="pos_field"
+ top_delta="0"
+ width="120">
+ {128.1, 128.1, 15.4}
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="16"
+ name="select_object_label"
+ top="82"
+ width="220">
+ Click the button then the object:
+ </text>
+ <button
+ height="32"
+ layout="topleft"
+ left_delta="0"
+ name="pick_btn"
+ picture_style="true"
+ tool_tip="Object Picker - Identify an object as the subject of this report"
+ top_delta="14"
+ width="32" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_pad="5"
+ name="object_name_label"
+ top_delta="0"
+ width="60">
+ Name:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_pad="6"
+ name="object_name"
+ top_delta="0"
+ width="109">
+ Consetetur Sadipscing
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="53"
+ name="owner_name_label"
+ top="112"
+ width="60">
+ Owner:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_pad="6"
+ name="owner_name"
+ top_delta="0"
+ width="109">
+ Hendrerit Vulputate
+ </text>
+ <combo_box
+ height="20"
+ layout="topleft"
+ left="16"
+ name="category_combo"
+ tool_tip="Category -- select the category that best describes this report"
+ top="156"
+ width="356">
+ <combo_box.item
+ label="Select category"
+ value="0" />
+ <combo_box.item
+ label="Age &gt; Age play"
+ value="31" />
+ <combo_box.item
+ label="Age &gt; Adult resident on Teen Second Life"
+ value="32" />
+ <combo_box.item
+ label="Age &gt; Underage resident outside of Teen Second Life"
+ value="33" />
+ <combo_box.item
+ label="Assault &gt; Combat sandbox / unsafe area"
+ value="34" />
+ <combo_box.item
+ label="Assault &gt; Safe area"
+ value="35" />
+ <combo_box.item
+ label="Assault &gt; Weapons testing sandbox"
+ value="36" />
+ <combo_box.item
+ label="Commerce &gt; Failure to deliver product or service"
+ value="38" />
+ <combo_box.item
+ label="Disclosure &gt; Real world information"
+ value="39" />
+ <combo_box.item
+ label="Disclosure &gt; Remotely monitoring chat"
+ value="40" />
+ <combo_box.item
+ label="Disclosure &gt; Second Life information/chat/IMs"
+ value="41" />
+ <combo_box.item
+ label="Disturbing the peace &gt; Unfair use of region resources"
+ value="42" />
+ <combo_box.item
+ label="Disturbing the peace &gt; Excessive scripted objects"
+ value="43" />
+ <combo_box.item
+ label="Disturbing the peace &gt; Object littering"
+ value="44" />
+ <combo_box.item
+ label="Disturbing the peace &gt; Repetitive spam"
+ value="45" />
+ <combo_box.item
+ label="Disturbing the peace &gt; Unwanted advert spam"
+ value="46" />
+ <combo_box.item
+ label="Fraud &gt; L$"
+ value="47" />
+ <combo_box.item
+ label="Fraud &gt; Land"
+ value="48" />
+ <combo_box.item
+ label="Fraud &gt; Pyramid scheme or chain letter"
+ value="49" />
+ <combo_box.item
+ label="Fraud &gt; US$"
+ value="50" />
+ <combo_box.item
+ label="Harassment &gt; Advert farms / visual spam"
+ value="51" />
+ <combo_box.item
+ label="Harassment &gt; Defaming individuals or groups"
+ value="52" />
+ <combo_box.item
+ label="Harassment &gt; Impeding movement"
+ value="53" />
+ <combo_box.item
+ label="Harassment &gt; Sexual harassment"
+ value="54" />
+ <combo_box.item
+ label="Harassment &gt; Solicting/inciting others to violate ToS"
+ value="55" />
+ <combo_box.item
+ label="Harassment &gt; Verbal abuse"
+ value="56" />
+ <combo_box.item
+ label="Indecency &gt; Broadly offensive content or conduct"
+ value="57" />
+ <combo_box.item
+ label="Indecency &gt; Inappropriate avatar name"
+ value="59" />
+ <combo_box.item
+ label="Indecency &gt; Inappropriate content or conduct in a PG region"
+ value="60" />
+ <combo_box.item
+ label="Indecency &gt; Inappropriate content or conduct in a Mature region"
+ value="69" />
+ <combo_box.item
+ label="Intellectual property infringement &gt; Content Removal"
+ value="66" />
+ <combo_box.item
+ label="Intellectual property infringement &gt; CopyBot or Permissions Exploit"
+ value="37" />
+ <combo_box.item
+ label="Intolerance"
+ value="61" />
+ <combo_box.item
+ label="Land &gt; Abuse of sandbox resources"
+ value="62" />
+ <combo_box.item
+ label="Land &gt; Encroachment &gt; Objects/textures"
+ value="63" />
+ <combo_box.item
+ label="Land &gt; Encroachment &gt; Particles"
+ value="64" />
+ <combo_box.item
+ label="Land &gt; Encroachment &gt; Trees/plants"
+ value="65" />
+ <combo_box.item
+ label="Wagering/gambling"
+ value="67" />
+ <combo_box.item
+ label="Other"
+ value="68" />
+ </combo_box>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="abuser_name_title"
+ top_pad="10"
+ width="180">
+ Abuser name:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ max_length="32"
+ name="abuser_name_edit"
+ top_pad="2"
+ width="180" />
+ <button
+ height="20"
+ label="Choose Resident"
+ layout="topleft"
+ left_pad="10"
+ name="select_abuser"
+ tool_tip="Select the name of the abuser from a list"
+ top_delta="-2"
+ width="160" />
+ <check_box
+ height="16"
+ label="Don&apos;t know abuser&apos;s name"
+ layout="topleft"
+ left="13"
+ name="omit_abuser_name"
+ tool_tip="Check this if you are unable to provide the abuser&apos;s name"
+ top="224"
+ visible="false"
+ width="116" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="3"
+ name="abuser_name_title2"
+ top_pad="8"
+ width="180">
+ Location of Abuse:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ max_length="256"
+ name="abuse_location_edit"
+ top_pad="2"
+ width="356" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="sum_title"
+ top_pad="8"
+ width="180">
+ Summary:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ max_length="64"
+ name="summary_edit"
+ top_pad="2"
+ width="356" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="dscr_title"
+ top_pad="8"
+ width="180">
+ Details:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="48"
+ layout="topleft"
+ left_delta="54"
+ name="bug_aviso"
+ top_delta="0"
+ width="308">
+ Please be specific about the date, location, nature of
+abuse, relevant chat/IM text, and select the object
+if possible.
+ </text>
+ <text_editor
+ follows="left|top"
+ height="146"
+ layout="topleft"
+ left="16"
+ max_length="800"
+ mouse_opaque="false"
+ name="details_edit"
+ top="386"
+ width="356"
+ word_wrap="true" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="incomplete_title"
+ top_pad="8"
+ width="342">
+ Note: Incomplete reports will not be investigated.
+ </text>
+ <button
+ bottom="580"
+ follows="right|bottom"
+ height="20"
+ label="Cancel"
+ label_selected="Cancel"
+ layout="topleft"
+ name="cancel_btn"
+ right="373"
+ width="150" />
+ <button
+ bottom="580"
+ follows="right|bottom"
+ height="20"
+ label="Report Abuse"
+ label_selected="Report Abuse"
+ layout="topleft"
+ name="send_btn"
+ right="217"
+ width="150" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_script_debug.xml b/indra/newview/skins/default/xui/en/floater_script_debug.xml
new file mode 100644
index 0000000000..2ae0afa168
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_script_debug.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<multi_floater
+ can_resize="true"
+ height="233"
+ layout="topleft"
+ name="script debug floater"
+ save_rect="true"
+ title="Script Warning/Error"
+ width="450">
+ <tab_container
+ follows="left|top|right|bottom"
+ height="217"
+ layout="topleft"
+ left="1"
+ name="Preview Tabs"
+ tab_position="bottom"
+ top="16"
+ width="448" />
+</multi_floater>
diff --git a/indra/newview/skins/default/xui/en/floater_script_debug_panel.xml b/indra/newview/skins/default/xui/en/floater_script_debug_panel.xml
new file mode 100644
index 0000000000..2dd7a1e777
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_script_debug_panel.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_resize="true"
+ follows="left|top|right|bottom"
+ height="200"
+ layout="topleft"
+ name="script"
+ short_title="[All scripts]"
+ title="[All scripts]"
+ width="440">
+ <text_editor
+ bottom="197"
+ follows="left|top|right|bottom"
+ height="176"
+ layout="topleft"
+ max_length="10000"
+ name="Chat History Editor"
+ width="420"
+ word_wrap="true" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_script_preview.xml b/indra/newview/skins/default/xui/en/floater_script_preview.xml
new file mode 100644
index 0000000000..cb3ff92363
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_script_preview.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ auto_tile="true"
+ can_resize="true"
+ height="550"
+ layout="topleft"
+ left_delta="343"
+ min_height="271"
+ min_width="290"
+ name="preview lsl text"
+ save_rect="true"
+ title="Script: Rotation Script"
+ top_delta="0"
+ width="500">
+ <floater.string
+ name="Title">
+ Script: [NAME]
+ </floater.string>
+ <panel
+ follows="left|top|right|bottom"
+ height="508"
+ layout="topleft"
+ left="0"
+ name="script panel"
+ top="42"
+ width="497" />
+ <icon
+ follows="top|right"
+ height="16"
+ image_name="icon_lock.tga"
+ layout="topleft"
+ left="444"
+ mouse_opaque="true"
+ name="lock"
+ top="3"
+ width="16" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="19"
+ layout="topleft"
+ left="13"
+ name="desc txt"
+ top="19"
+ width="80">
+ Description:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="19"
+ layout="topleft"
+ left_delta="80"
+ max_length="127"
+ name="desc"
+ top_delta="0"
+ width="394" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_script_queue.xml b/indra/newview/skins/default/xui/en/floater_script_queue.xml
new file mode 100644
index 0000000000..ad91e8156b
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_script_queue.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ auto_tile="true"
+ can_resize="true"
+ height="400"
+ layout="topleft"
+ name="queue"
+ save_rect="true"
+ title="Reset Progress"
+ width="300">
+ <floater.string
+ name="Starting">
+ Starting [START] of [COUNT] items.
+ </floater.string>
+ <floater.string
+ name="Done">
+ Done.
+ </floater.string>
+ <floater.string
+ name="Resetting">
+ Resetting
+ </floater.string>
+ <floater.string
+ name="Running">
+ Running
+ </floater.string>
+ <floater.string
+ name="NotRunning">
+ Not running
+ </floater.string>
+ <button
+ follows="right|bottom"
+ height="24"
+ label="Close"
+ label_selected="Close"
+ layout="topleft"
+ left="220"
+ name="close"
+ top="368"
+ width="64" />
+ <scroll_list
+ follows="left|top|right|bottom"
+ height="344"
+ layout="topleft"
+ left="4"
+ name="queue output"
+ top="20"
+ width="292" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_script_search.xml b/indra/newview/skins/default/xui/en/floater_script_search.xml
new file mode 100644
index 0000000000..bb0c60e75b
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_script_search.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ default_tab_group="1"
+ height="120"
+ layout="topleft"
+ name="script search"
+ title="Script Search"
+ width="300">
+ <check_box
+ control_name="LSLFindCaseInsensitivity"
+ height="16"
+ label="Case Insensitive"
+ layout="topleft"
+ left="55"
+ name="case_text"
+ top="61"
+ width="240" />
+ <button
+ height="24"
+ label="Search"
+ label_selected="Search"
+ layout="topleft"
+ left="10"
+ name="search_btn"
+ top="84"
+ width="90" />
+ <button
+ height="24"
+ label="Replace"
+ label_selected="Replace"
+ layout="topleft"
+ left_pad="5"
+ name="replace_btn"
+ top_delta="0"
+ width="90" />
+ <button
+ height="24"
+ label="Replace All"
+ label_selected="Replace All"
+ layout="topleft"
+ left_pad="5"
+ name="replace_all_btn"
+ top_delta="0"
+ width="90" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="5"
+ name="txt"
+ top="21"
+ width="45">
+ Search
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="txt2"
+ top_pad="5"
+ width="45">
+ Replace
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="55"
+ name="search_text"
+ tab_group="1"
+ top="21"
+ width="240" />
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="replace_text"
+ top_pad="5"
+ width="240" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_select_key.xml b/indra/newview/skins/default/xui/en/floater_select_key.xml
new file mode 100644
index 0000000000..b89af0ef3e
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_select_key.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ border="true"
+ can_close="false"
+ can_minimize="false"
+ height="100"
+ layout="topleft"
+ name="modal container"
+ width="240">
+ <button
+ height="20"
+ label="Cancel"
+ label_selected="Cancel"
+ layout="topleft"
+ left="138"
+ name="Cancel"
+ top="70"
+ width="82" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="20"
+ name="Save item as:"
+ top="10"
+ width="200">
+ Press a key to select
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_sell_land.xml b/indra/newview/skins/default/xui/en/floater_sell_land.xml
new file mode 100644
index 0000000000..26c805c0f7
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_sell_land.xml
@@ -0,0 +1,315 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_minimize="false"
+ height="485"
+ layout="topleft"
+ name="sell land"
+ title="Sell Land"
+ width="450">
+ <texture_picker
+ enabled="false"
+ follows="top|left"
+ height="135"
+ layout="topleft"
+ left="244"
+ name="info_image"
+ right="424"
+ top="40"
+ width="180" />
+ <text
+ type="string"
+ length="1"
+ bottom_delta="-144"
+ follows="top|left"
+ layout="topleft"
+ left="16"
+ name="info_parcel_label"
+ width="48">
+ Parcel:
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="5"
+ follows="top|left"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="56"
+ name="info_parcel"
+ right="-20">
+ PARCEL NAME
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ layout="topleft"
+ left="16"
+ name="info_size_label"
+ width="48">
+ Size:
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="21"
+ follows="top|left"
+ font="SansSerif"
+ height="32"
+ layout="topleft"
+ left="56"
+ name="info_size"
+ right="-20">
+ [AREA] sq. m.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ font="SansSerifHuge"
+ height="24"
+ layout="topleft"
+ left="16"
+ name="info_action"
+ text_color="white"
+ top="141"
+ width="200">
+ To sell this parcel:
+ </text>
+ <icon
+ follows="top|left"
+ height="64"
+ image_name="badge_note.j2c"
+ layout="topleft"
+ left="0"
+ name="step_price"
+ top="167"
+ width="64" />
+ <text
+ type="string"
+ length="1"
+ bottom_delta="-38"
+ follows="top|left"
+ font="SansSerifBig"
+ height="16"
+ layout="topleft"
+ left="72"
+ name="price_label"
+ right="-20">
+ Set a price:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ height="16"
+ layout="topleft"
+ left="72"
+ name="price_text"
+ right="-20">
+ Choose an appropriate price for this land.
+ </text>
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ left="72"
+ name="price_ld"
+ width="20">
+ L$
+ </text>
+ <line_editor
+ type="string"
+ length="1"
+ follows="top|left"
+ height="16"
+ layout="topleft"
+ left_delta="20"
+ name="price"
+ top_delta="0"
+ width="100">
+ 0
+ </line_editor>
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ left_pad="10"
+ name="price_per_m"
+ top_delta="0"
+ width="200">
+ (L$[PER_METER] per square meter)
+ </text>
+ <icon
+ follows="top|left"
+ height="64"
+ image_name="badge_note.j2c"
+ layout="topleft"
+ left="0"
+ name="step_sell_to"
+ width="64" />
+ <text
+ type="string"
+ length="1"
+ bottom_delta="-38"
+ follows="top|left"
+ font="SansSerifBig"
+ height="16"
+ layout="topleft"
+ left="72"
+ name="sell_to_label"
+ right="-20">
+ Sell the land to:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ height="16"
+ layout="topleft"
+ left="72"
+ name="sell_to_text"
+ right="-20">
+ Choose whether to sell to anyone or a particular buyer.
+ </text>
+ <combo_box
+ follows="top|right"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="sell_to"
+ top_delta="16"
+ width="140">
+ <combo_box.item
+ enabled="false"
+ label="select one --"
+ value="select" />
+ <combo_box.item
+ label="Anyone"
+ value="anyone" />
+ <combo_box.item
+ label="Specific user:"
+ value="user" />
+ </combo_box>
+ <line_editor
+ enabled="false"
+ follows="top|right"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="sell_to_agent"
+ top_pad="4"
+ width="150" />
+ <button
+ height="16"
+ label="Select..."
+ layout="topleft"
+ left_pad="5"
+ name="sell_to_select_agent"
+ top_delta="0"
+ width="60" />
+ <icon
+ follows="top|left"
+ height="64"
+ image_name="badge_note.j2c"
+ layout="topleft"
+ left="0"
+ name="step_sell_objects"
+ width="64" />
+ <text
+ type="string"
+ length="1"
+ bottom_delta="-38"
+ follows="top|left"
+ font="SansSerifBig"
+ height="16"
+ layout="topleft"
+ left="72"
+ name="sell_objects_label"
+ right="-20">
+ Sell the objects with the land?
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="20"
+ follows="top|left"
+ height="16"
+ layout="topleft"
+ left="72"
+ name="sell_objects_text">
+ Land owner&apos;s transferable objects on parcel will change ownership.
+ </text>
+ <radio_group
+ bottom_delta="44"
+ follows="top|right"
+ height="40"
+ layout="topleft"
+ left="72"
+ name="sell_objects"
+ right="420">
+ <radio_item
+ bottom="40"
+ height="0"
+ layout="topleft"
+ left="10"
+ name="none"
+ visible="false" />
+ <radio_item
+ bottom="20"
+ height="16"
+ label="No, keep ownership of objects"
+ layout="topleft"
+ left="10"
+ name="no" />
+ <radio_item
+ bottom="40"
+ height="16"
+ label="Yes, sell objects with land"
+ layout="topleft"
+ left="10"
+ name="yes" />
+ </radio_group>
+ <button
+ height="16"
+ label="Show Objects"
+ layout="topleft"
+ name="show_objects"
+ right="414"
+ top="393"
+ width="110" />
+ <text
+ type="string"
+ length="1"
+ bottom_delta="35"
+ follows="top|left"
+ font="SansSerifBig"
+ height="16"
+ layout="topleft"
+ left="72"
+ name="nag_message_label"
+ right="-20">
+ REMEMBER: All sales are final.
+ </text>
+ <button
+ follows="bottom|left"
+ height="20"
+ label="Set Land For Sale"
+ layout="topleft"
+ left_delta="0"
+ name="sell_btn"
+ top_pad="15"
+ width="130" />
+ <button
+ follows="bottom|right"
+ height="20"
+ label="Cancel"
+ layout="topleft"
+ left_pad="152"
+ name="cancel_btn"
+ top_delta="0"
+ width="90" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_settings_debug.xml b/indra/newview/skins/default/xui/en/floater_settings_debug.xml
new file mode 100644
index 0000000000..9a73ffb1a2
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_settings_debug.xml
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_minimize="false"
+ height="215"
+ layout="topleft"
+ name="settings_debug"
+ title="Debug Settings"
+ width="350">
+ <combo_box
+ allow_text_entry="true"
+ follows="top|left"
+ height="20"
+ layout="topleft"
+ left="15"
+ max_chars="255"
+ name="settings_combo"
+ top="30"
+ width="200">
+ <combo_box.commit_callback
+ function="SettingSelect" />
+ </combo_box>
+ <text_editor
+ enabled="false"
+ height="60"
+ hide_scrollbar="true"
+ layout="topleft"
+ left_delta="0"
+ name="comment_text"
+ top_pad="15"
+ width="320"
+ word_wrap="true" />
+ <combo_box
+ follows="top|left"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="boolean_combo"
+ top_pad="10"
+ visible="false"
+ width="100">
+ <combo_box.item
+ label="TRUE"
+ value="true" />
+ <combo_box.item
+ label="FALSE"
+ value="" />
+ <combo_box.commit_callback
+ function="CommitSettings" />
+ </combo_box>
+ <line_editor
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="val_text"
+ top_delta="0"
+ visible="false"
+ width="300" >
+ <line_editor.commit_callback
+ function="CommitSettings" />
+ </line_editor>
+ <color_swatch
+ bottom="185"
+ can_apply_immediately="true"
+ height="55"
+ name="val_color_swatch"
+ label="Color"
+ layout="topleft"
+ width="37" >
+ <color_swatch.commit_callback
+ function="CommitSettings" />
+ </color_swatch>
+ <spinner
+ height="20"
+ label="x"
+ layout="topleft"
+ left_delta="0"
+ max_val="1e+007"
+ name="val_spinner_1"
+ top_delta="10"
+ visible="false"
+ width="120" >
+ <spinner.commit_callback
+ function="CommitSettings" />
+ </spinner>
+ <spinner
+ height="20"
+ label="x"
+ layout="topleft"
+ left_pad="15"
+ max_val="1e+007"
+ name="val_spinner_2"
+ top_delta="0"
+ visible="false"
+ width="120">
+ <spinner.commit_callback
+ function="CommitSettings" />
+ </spinner>
+ <spinner
+ height="20"
+ label="x"
+ layout="topleft"
+ left="15"
+ max_val="1e+007"
+ name="val_spinner_3"
+ top="160"
+ visible="false"
+ width="120">
+ <spinner.commit_callback
+ function="CommitSettings" />
+ </spinner>
+ <spinner
+ height="20"
+ label="x"
+ layout="topleft"
+ left_pad="15"
+ max_val="1e+007"
+ name="val_spinner_4"
+ top_delta="0"
+ visible="false"
+ width="120" >
+ <spinner.commit_callback
+ function="CommitSettings" />
+ </spinner>
+ <button
+ height="20"
+ label="Reset to default"
+ layout="topleft"
+ left="15"
+ name="default_btn"
+ top="190"
+ width="150" >
+ <button.commit_callback
+ function="ClickDefault" />
+ </button>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_snapshot.xml b/indra/newview/skins/default/xui/en/floater_snapshot.xml
new file mode 100644
index 0000000000..f3d8938ea2
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_snapshot.xml
@@ -0,0 +1,370 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_minimize="false"
+ follows="left|top"
+ height="526"
+ layout="topleft"
+ name="Snapshot"
+ save_rect="true"
+ title="Snapshot Preview"
+ width="215">
+ <floater.string
+ name="unknown">
+ unknown
+ </floater.string>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ height="15"
+ layout="topleft"
+ left="10"
+ name="type_label"
+ top="25"
+ width="195">
+ Snapshot destination
+ </text>
+ <radio_group
+ height="60"
+ label="Snapshot type"
+ layout="topleft"
+ left_delta="0"
+ name="snapshot_type_radio"
+ top_pad="5"
+ width="195">
+ <radio_item
+ bottom="19"
+ height="16"
+ label="Send via email"
+ layout="topleft"
+ name="postcard" />
+ <radio_item
+ bottom="38"
+ height="16"
+ label="Save to your inventory (L$[AMOUNT])"
+ layout="topleft"
+ name="texture" />
+ <radio_item
+ bottom="57"
+ height="16"
+ label="Save to your hard drive"
+ layout="topleft"
+ name="local" />
+ </radio_group>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="25"
+ layout="topleft"
+ left_delta="0"
+ name="file_size_label"
+ top_pad="106"
+ width="195">
+ File size: [SIZE] KB
+ </text>
+ <button
+ follows="left|top"
+ height="20"
+ label="Refresh Snapshot"
+ layout="topleft"
+ left_delta="0"
+ name="new_snapshot_btn"
+ top_delta="15"
+ width="195" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Send"
+ layout="topleft"
+ left_delta="0"
+ name="send_btn"
+ top_pad="2"
+ width="105" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Save (L$[AMOUNT])"
+ layout="topleft"
+ left_delta="0"
+ name="upload_btn"
+ top_delta="0"
+ width="105" />
+ <flyout_button
+ follows="left|top"
+ height="20"
+ label="Save"
+ layout="topleft"
+ left_delta="0"
+ name="save_btn"
+ tool_tip="Save image to a file"
+ top_delta="0"
+ width="105">
+ <flyout_button.item
+ label="Save"
+ value="save" />
+ <flyout_button.item
+ label="Save As..."
+ value="save as" />
+ </flyout_button>
+ <button
+ follows="left|top"
+ height="20"
+ label="Cancel"
+ layout="topleft"
+ left_pad="5"
+ name="discard_btn"
+ top_delta="0"
+ width="85" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="20"
+ label="More &gt;&gt;"
+ layout="topleft"
+ left="10"
+ name="more_btn"
+ tool_tip="Advanced Options"
+ top="270"
+ width="80" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="20"
+ label="&lt;&lt; Less"
+ layout="topleft"
+ left_delta="0"
+ name="less_btn"
+ tool_tip="Advanced Options"
+ top_delta="0"
+ width="80" />
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ height="15"
+ layout="topleft"
+ left_delta="0"
+ name="type_label2"
+ top_pad="5"
+ width="115">
+ Size
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ height="15"
+ layout="topleft"
+ left_pad="5"
+ name="format_label"
+ top_delta="0"
+ width="70">
+ Format
+ </text>
+ <combo_box
+ height="20"
+ label="Resolution"
+ layout="topleft"
+ left="10"
+ name="postcard_size_combo"
+ top="312"
+ width="115">
+ <combo_box.item
+ label="Current Window"
+ value="[i0,i0]" />
+ <combo_box.item
+ label="640x480"
+ value="[i640,i480]" />
+ <combo_box.item
+ label="800x600"
+ value="[i800,i600]" />
+ <combo_box.item
+ label="1024x768"
+ value="[i1024,i768]" />
+ <combo_box.item
+ label="Custom"
+ value="[i-1,i-1]" />
+ </combo_box>
+ <combo_box
+ height="20"
+ label="Resolution"
+ layout="topleft"
+ left_delta="0"
+ name="texture_size_combo"
+ top_delta="0"
+ width="115">
+ <combo_box.item
+ label="Current Window"
+ value="[i0,i0]" />
+ <combo_box.item
+ label="Small (128x128)"
+ value="[i128,i128]" />
+ <combo_box.item
+ label="Medium (256x256)"
+ value="[i256,i256]" />
+ <combo_box.item
+ label="Large (512x512)"
+ value="[i512,i512]" />
+ <combo_box.item
+ label="Custom"
+ value="[i-1,i-1]" />
+ </combo_box>
+ <combo_box
+ height="20"
+ label="Resolution"
+ layout="topleft"
+ left_delta="0"
+ name="local_size_combo"
+ top_delta="0"
+ width="115">
+ <combo_box.item
+ label="Current Window"
+ value="[i0,i0]" />
+ <combo_box.item
+ label="320x240"
+ value="[i320,i240]" />
+ <combo_box.item
+ label="640x480"
+ value="[i640,i480]" />
+ <combo_box.item
+ label="800x600"
+ value="[i800,i600]" />
+ <combo_box.item
+ label="1024x768"
+ value="[i1024,i768]" />
+ <combo_box.item
+ label="1280x1024"
+ value="[i1280,i1024]" />
+ <combo_box.item
+ label="1600x1200"
+ value="[i1600,i1200]" />
+ <combo_box.item
+ label="Custom"
+ value="[i-1,i-1]" />
+ </combo_box>
+ <combo_box
+ height="20"
+ label="Format"
+ layout="topleft"
+ left_pad="5"
+ name="local_format_combo"
+ top_delta="0"
+ width="70">
+ <combo_box.item
+ label="PNG" />
+ <combo_box.item
+ label="JPEG" />
+ <combo_box.item
+ label="BMP" />
+ </combo_box>
+ <spinner
+ allow_text_entry="false"
+ decimal_digits="0"
+ follows="left|top"
+ height="20"
+ increment="32"
+ label="Width"
+ label_width="30"
+ layout="topleft"
+ left="10"
+ max_val="6016"
+ min_val="32"
+ name="snapshot_width"
+ top="337"
+ width="95" />
+ <spinner
+ allow_text_entry="false"
+ decimal_digits="0"
+ follows="left|top"
+ height="20"
+ increment="32"
+ label="Height"
+ label_width="35"
+ layout="topleft"
+ left_pad="5"
+ max_val="6016"
+ min_val="32"
+ name="snapshot_height"
+ top_delta="0"
+ width="95" />
+ <check_box
+ bottom_delta="20"
+ label="Constrain Proportions"
+ layout="topleft"
+ left="10"
+ name="keep_aspect_check" />
+ <slider
+ decimal_digits="0"
+ follows="left|top"
+ height="15"
+ increment="1"
+ initial_value="75"
+ label="Image Quality"
+ layout="topleft"
+ left_delta="0"
+ max_val="100"
+ name="image_quality_slider"
+ top_pad="5"
+ width="210" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="layer_type_label"
+ top_pad="8"
+ width="50">
+ Capture:
+ </text>
+ <combo_box
+ height="20"
+ label="Image Layers"
+ layout="topleft"
+ left_delta="50"
+ name="layer_types"
+ top_delta="-3"
+ width="145">
+ <combo_box.item
+ label="Colors"
+ value="colors" />
+ <combo_box.item
+ label="Depth"
+ value="depth" />
+ <combo_box.item
+ label="Object Mattes"
+ value="objects" />
+ </combo_box>
+ <check_box
+ bottom_delta="20"
+ label="Show interface in snapshot"
+ layout="topleft"
+ left="10"
+ name="ui_check" />
+ <check_box
+ bottom_delta="20"
+ label="Show HUD objects in snapshot"
+ layout="topleft"
+ left="10"
+ name="hud_check" />
+ <check_box
+ bottom_delta="20"
+ label="Keep open after saving"
+ layout="topleft"
+ left="10"
+ name="keep_open_check" />
+ <check_box
+ bottom_delta="20"
+ label="Freeze frame (fullscreen preview)"
+ layout="topleft"
+ left="10"
+ name="freeze_frame_check" />
+ <check_box
+ bottom_delta="20"
+ label="Auto-refresh"
+ layout="topleft"
+ left="10"
+ name="auto_snapshot_check" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_sound_preview.xml b/indra/newview/skins/default/xui/en/floater_sound_preview.xml
new file mode 100644
index 0000000000..8aff16b465
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_sound_preview.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ height="190"
+ layout="topleft"
+ name="Sound Preview"
+ title="sound.wav"
+ width="300">
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="15"
+ layout="topleft"
+ left="10"
+ mouse_opaque="false"
+ name="name_label"
+ top="20"
+ width="275">
+ Name:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top|right"
+ height="19"
+ layout="topleft"
+ left_delta="0"
+ max_length="63"
+ name="name_form"
+ top_pad="4"
+ width="280" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="15"
+ layout="topleft"
+ left_delta="0"
+ mouse_opaque="false"
+ name="description_label"
+ top_pad="4"
+ width="270">
+ Description:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top|right"
+ height="19"
+ layout="topleft"
+ left_delta="0"
+ max_length="127"
+ name="description_form"
+ top_pad="4"
+ width="280" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Cancel"
+ label_selected="Cancel"
+ layout="topleft"
+ left="200"
+ name="cancel_btn"
+ top="160"
+ width="90" />
+ <button
+ follows="left|bottom"
+ height="20"
+ label="Upload (L$[AMOUNT])"
+ layout="topleft"
+ left_delta="-135"
+ name="ok_btn"
+ top_delta="0"
+ width="130" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_statistics.xml b/indra/newview/skins/default/xui/en/floater_statistics.xml
new file mode 100644
index 0000000000..1661fbffb0
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_statistics.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_resize="true"
+ follows="right|top"
+ height="392"
+ layout="topleft"
+ mouse_opaque="false"
+ name="stats floater"
+ title="Statistics"
+ width="250" />
diff --git a/indra/newview/skins/default/xui/en/floater_stats.xml b/indra/newview/skins/default/xui/en/floater_stats.xml
new file mode 100644
index 0000000000..08d91843f2
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_stats.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_resize="true"
+ follows="top|right"
+ height="400"
+ layout="topleft"
+ name="Statistics"
+ save_rect="true"
+ save_visibility="true"
+ title="Statistics"
+ width="250">
+ <scroll_container
+ follows="top|left|bottom|right"
+ height="380"
+ layout="topleft"
+ left="0"
+ name="statistics_scroll"
+ reserve_scroll_corner="true"
+ top="20"
+ width="250">
+ <container_view
+ follows="top|left|bottom|right"
+ height="378"
+ layout="topleft"
+ left="2"
+ name="statistics_view"
+ top="20"
+ width="230" />
+ </scroll_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_telehub.xml b/indra/newview/skins/default/xui/en/floater_telehub.xml
new file mode 100644
index 0000000000..bcec046456
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_telehub.xml
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ height="250"
+ layout="topleft"
+ name="telehub"
+ title="Telehub"
+ width="272">
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="status_text_connected"
+ top="24"
+ width="200">
+ Telehub connected to object [OBJECT]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="status_text_not_connected"
+ top_delta="0"
+ width="200">
+ No telehub connected.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="help_text_connected"
+ top_delta="16"
+ width="260">
+ To remove, click Disconnect.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="help_text_not_connected"
+ top_delta="0"
+ width="260">
+ Select object and click Connect Telehub.
+ </text>
+ <button
+ follows="top|left"
+ font="SansSerifSmall"
+ height="20"
+ label="Connect Telehub"
+ layout="topleft"
+ left_delta="0"
+ name="connect_btn"
+ top_delta="20"
+ width="110" />
+ <button
+ follows="top|left"
+ font="SansSerifSmall"
+ height="20"
+ label="Disconnect"
+ layout="topleft"
+ left_pad="10"
+ name="disconnect_btn"
+ top_delta="0"
+ width="110" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="spawn_points_text"
+ top="84"
+ width="200">
+ Spawn Points (positions, not objects):
+ </text>
+ <scroll_list
+ follows="left|top"
+ font="SansSerifSmall"
+ height="60"
+ layout="topleft"
+ left_delta="0"
+ name="spawn_points_list"
+ top_delta="16"
+ width="230" />
+ <button
+ follows="top|left"
+ font="SansSerifSmall"
+ height="20"
+ label="Add Spawn"
+ layout="topleft"
+ left_delta="0"
+ name="add_spawn_point_btn"
+ top_pad="5"
+ width="110" />
+ <button
+ follows="top|left"
+ font="SansSerifSmall"
+ height="20"
+ label="Remove Spawn"
+ layout="topleft"
+ left_pad="10"
+ name="remove_spawn_point_btn"
+ top_delta="0"
+ width="110" />
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ height="80"
+ layout="topleft"
+ left="10"
+ name="spawn_point_help"
+ top="190"
+ width="260">
+ Select object and click Add to specify position.
+You may then move or delete the object.
+Positions are relative to the telehub center.
+Select item in list to show position in world.
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_test_button.xml b/indra/newview/skins/default/xui/en/floater_test_button.xml
new file mode 100644
index 0000000000..0681eedbab
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_test_button.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_resize="true"
+ height="500"
+ layout="topleft"
+ name="floater_test_button"
+ width="500">
+ <button
+ height="20"
+ label="Generic Button"
+ layout="topleft"
+ left="10"
+ name="generic_button"
+ top="20"
+ width="150" />
+ <button
+ bottom_delta="30"
+ height="20"
+ label="Bottom delta"
+ layout="topleft"
+ name="bottom_delta_button" />
+ <button
+ bottom_delta="30"
+ font="SansSerifSmall"
+ height="20"
+ label="SansSerifSmall"
+ layout="topleft"
+ name="sans_serif_small_button" />
+ <button
+ auto_resize="true"
+ bottom_delta="30"
+ height="20"
+ label="Auto Resize"
+ layout="topleft"
+ name="auto_resize_button" />
+ <button
+ bottom_delta="30"
+ height="20"
+ is_toggle="true"
+ label="Click Change Label"
+ label_selected="New Label"
+ layout="topleft"
+ name="label_selected_button" />
+ <button
+ bottom_delta="30"
+ height="20"
+ label="No Label Shadow"
+ label_shadow="false"
+ layout="topleft"
+ name="label_shadow_button" />
+ <button
+ bottom_delta="30"
+ height="20"
+ label="Red Label"
+ label_color="red"
+ layout="topleft"
+ name="label_color_button" />
+ <button
+ bottom_delta="30"
+ height="20"
+ is_toggle="true"
+ label="Red Label Selected"
+ label_color_selected="red"
+ label_selected="Red Label Selected"
+ layout="topleft"
+ name="label_color_selected_button" />
+ <button
+ bottom_delta="30"
+ enabled="false"
+ height="20"
+ label="Red Label Disabled"
+ label_color_disabled="red"
+ label_selected="Red Label Selected"
+ layout="topleft"
+ name="label_color_disabled_button" />
+ <button
+ bottom_delta="30"
+ height="20"
+ highlight_color="red"
+ label="Red Highlight"
+ layout="topleft"
+ name="highlight_color_button" />
+ <button
+ bottom_delta="30"
+ height="20"
+ hover_glow_amount="0"
+ label="No Hover Glow"
+ layout="topleft"
+ name="hover_glow_amount_button" />
+ <button
+ height="30"
+ image_selected="object_cube_active.tga"
+ image_unselected="object_cube.tga"
+ layout="topleft"
+ left="200"
+ name="image_button"
+ picture_style="true"
+ top="20"
+ width="30" />
+ <button
+ height="30"
+ image_color="red"
+ image_selected="object_cube_active.tga"
+ image_unselected="object_cube.tga"
+ layout="topleft"
+ left_delta="0"
+ name="image_color_button"
+ picture_style="true"
+ top_pad="10"
+ width="30" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_test_checkbox.xml b/indra/newview/skins/default/xui/en/floater_test_checkbox.xml
new file mode 100644
index 0000000000..5a17ffefac
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_test_checkbox.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_resize="true"
+ height="400"
+ layout="topleft"
+ name="floater_test_checkbox"
+ width="400">
+ <check_box
+ control_name="ShowStartLocation"
+ height="16"
+ initial_value="true"
+ label="Show Start Location on Login Screen"
+ layout="topleft"
+ left="10"
+ name="show_location_checkbox"
+ top="28"
+ width="256" />
+ <check_box
+ height="16"
+ label="Minimal Checkbox"
+ layout="topleft"
+ left_delta="0"
+ name="minimal_checkbox"
+ top_pad="14"
+ width="150" />
+ <check_box
+ enabled="false"
+ height="16"
+ label="Disabled Checkbox"
+ layout="topleft"
+ left_delta="0"
+ name="disabled_checkbox"
+ top_pad="14"
+ width="150" />
+ <check_box
+ height="16"
+ label="Text Enabled Red"
+ layout="topleft"
+ left_delta="0"
+ name="text_enabled_color_checkbox"
+ text_enabled_color="red"
+ top_pad="14"
+ width="150" />
+ <check_box
+ enabled="false"
+ height="16"
+ label="Text Disabled Red"
+ layout="topleft"
+ left_delta="0"
+ name="text_disabled_color_checkbox"
+ text_disabled_color="red"
+ top_pad="14"
+ width="150" />
+ <check_box
+ height="16"
+ initial_value="true"
+ label="Initial Value Checked"
+ layout="topleft"
+ left_delta="0"
+ name="initial_value_checkbox"
+ top_pad="14"
+ width="150" />
+ <check_box
+ font="Monospace"
+ height="16"
+ label="Font Monospace"
+ layout="topleft"
+ left_delta="0"
+ name="font_checkbox"
+ top_pad="14"
+ width="150" />
+ <check_box
+ height="16"
+ label="Custom Button"
+ layout="topleft"
+ left_delta="0"
+ name="check_button_checkbox"
+ top_pad="14"
+ width="150">
+ <check_box.check_button
+ image_unselected="close_in_blue.tga" />
+ </check_box>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_test_combobox.xml b/indra/newview/skins/default/xui/en/floater_test_combobox.xml
new file mode 100644
index 0000000000..9e1253ec56
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_test_combobox.xml
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_resize="true"
+ height="400"
+ layout="topleft"
+ name="floater_test_combobox"
+ width="400">
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ left="10"
+ top="24"
+ width="200">
+ Real world usage (login location):
+ </text>
+ <combo_box
+ allow_text_entry="true"
+ control_name="LoginLocation"
+ follows="left|bottom"
+ height="18"
+ layout="topleft"
+ left_delta="0"
+ max_chars="128"
+ name="start_location_combo"
+ top_pad="2"
+ width="155">
+ <combo_box.item
+ label="My Last Location"
+ value="last" />
+ <combo_box.item
+ label="My Home"
+ value="home" />
+ <combo_box.item
+ label="&lt;Type region name&gt;"
+ value="" />
+ </combo_box>
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ top_pad="24"
+ width="200">
+ Minimal combobox:
+ </text>
+ <combo_box
+ height="18"
+ layout="topleft"
+ left_delta="0"
+ name="minimal_combo"
+ top_pad="2"
+ width="150">
+ <combo_box.item
+ label="First Item"
+ value="first" />
+ <combo_box.item
+ label="Second Item"
+ value="second" />
+ </combo_box>
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ top_pad="24"
+ width="200">
+ Allow text input:
+ </text>
+ <combo_box
+ allow_text_entry="true"
+ height="18"
+ layout="topleft"
+ left_delta="0"
+ name="text_entry_combo"
+ top_pad="2"
+ width="150">
+ <combo_box.item
+ label="First Item"
+ value="first" />
+ <combo_box.item
+ label="Second Item"
+ value="second" />
+ </combo_box>
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ top_pad="24"
+ width="200">
+ Allow text input, default to second item:
+ </text>
+ <combo_box
+ allow_text_entry="true"
+ height="18"
+ initial_value="second"
+ layout="topleft"
+ left_delta="0"
+ name="text_entry_combo"
+ top_pad="2"
+ width="150">
+ <combo_box.item
+ label="First Item"
+ value="first" />
+ <combo_box.item
+ label="Second Item"
+ value="second" />
+ </combo_box>
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ top_pad="24"
+ width="200">
+ Two character max input:
+ </text>
+ <combo_box
+ allow_text_entry="true"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ max_chars="2"
+ name="state_combo"
+ top_pad="4"
+ width="150">
+ <combo_box.item
+ label="CA"
+ value="ca" />
+ <combo_box.item
+ label="NY"
+ value="ny" />
+ <combo_box.item
+ label="TX"
+ value="tx" />
+ </combo_box>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_test_layout.xml b/indra/newview/skins/default/xui/en/floater_test_layout.xml
new file mode 100644
index 0000000000..344ad8447e
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_test_layout.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_resize="true"
+ height="500"
+ layout="topleft"
+ name="floater_test_layout"
+ width="500">
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ left="10"
+ top="84"
+ width="200">
+ bottom 400 left 10
+ </text>
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ top_pad="4"
+ width="200">
+ Bottom delta -20
+ </text>
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ top_pad="64"
+ width="200">
+ bottom 300 left 10, should delta_bottom
+ </text>
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ left_pad="40"
+ top_delta="0"
+ width="200">
+ bottom 300 left 250, should delta_left
+ </text>
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ left="10"
+ top="204"
+ width="200">
+ bottom 280 left 10, should absolute position
+ </text>
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ left_pad="40"
+ top_delta="-2"
+ width="200">
+ bottom 282 left 250, should delta_left and delta_bottom
+ </text>
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ left="10"
+ top="234"
+ width="200">
+ bottom 250 left 10, should absolute position
+ </text>
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ left="250"
+ top="244"
+ width="200">
+ bottom 240 left 250, should absolute position
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_test_radiogroup.xml b/indra/newview/skins/default/xui/en/floater_test_radiogroup.xml
new file mode 100644
index 0000000000..ef3e1f598d
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_test_radiogroup.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_resize="true"
+ height="400"
+ layout="topleft"
+ name="floater_test_radiogroup"
+ width="400">
+ <radio_group
+ height="54"
+ layout="topleft"
+ left="10"
+ name="parcel_voice_channel"
+ top="46"
+ width="219">
+ <radio_item
+ height="16"
+ label="Use the Estate spatial channel"
+ layout="topleft"
+ left="3"
+ name="Estate"
+ top="3"
+ width="463" />
+ <radio_item
+ height="16"
+ label="Use a private spatial channel"
+ layout="topleft"
+ left_delta="0"
+ name="Private"
+ top_delta="16"
+ width="463" />
+ <radio_item
+ height="16"
+ label="Disable spatial audio on this parcel"
+ layout="topleft"
+ left_delta="0"
+ name="Disabled"
+ top_delta="16"
+ width="463" />
+ </radio_group>
+ <radio_group
+ height="50"
+ layout="topleft"
+ left_delta="0"
+ name="simple_radio_group"
+ top_pad="50"
+ width="150">
+ <radio_item
+ bottom="20"
+ height="16"
+ label="Label in label attribute"
+ layout="topleft"
+ name="label_radio_item" />
+ <radio_item
+ bottom_delta="20"
+ height="16"
+ label="Label in text contents"
+ layout="topleft"
+ name="contents_radio_item" />
+ </radio_group>
+ <radio_group
+ draw_border="false"
+ height="50"
+ layout="topleft"
+ left_delta="0"
+ name="no_border_radio_group"
+ top_pad="50"
+ width="150">
+ <radio_item
+ bottom="20"
+ height="16"
+ label="No Border Foo"
+ layout="topleft"
+ name="foo_radio_item" />
+ <radio_item
+ bottom_delta="20"
+ height="16"
+ label="No Border Bar"
+ layout="topleft"
+ name="bar_item" />
+ </radio_group>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_test_slider.xml b/indra/newview/skins/default/xui/en/floater_test_slider.xml
new file mode 100644
index 0000000000..b1d468e265
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_test_slider.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_resize="true"
+ height="400"
+ layout="topleft"
+ name="floater_test_slider"
+ width="450">
+ <slider
+ height="20"
+ label="Generic Slider"
+ layout="topleft"
+ left="10"
+ name="generic_slider"
+ top="40"
+ width="250" />
+ <slider
+ height="20"
+ label="Callback Slider"
+ layout="topleft"
+ left_delta="0"
+ name="callback_slider"
+ top_pad="20"
+ width="400">
+ <slider.mouse_up_callback
+ function="Test.TestCallback"
+ parameter="test" />
+ </slider>
+ <slider
+ height="20"
+ increment="1"
+ initial_value="2.0"
+ label="Value Slider"
+ layout="topleft"
+ left_delta="0"
+ max_val="5"
+ min_val="1"
+ name="value_slider"
+ top_pad="20"
+ width="250" />
+ <slider
+ height="20"
+ label="Mini Slider 1"
+ layout="topleft"
+ left_delta="0"
+ name="mini_slider_1"
+ top_pad="20"
+ width="200" />
+ <slider
+ height="20"
+ label="Mini Slider 2"
+ layout="topleft"
+ left_pad="20"
+ name="mini_slider_2"
+ top_delta="0"
+ width="200" />
+ <slider_bar
+ bottom="320"
+ height="20"
+ increment="1"
+ initial_value="2.0"
+ label="Slider Bar"
+ layout="topleft"
+ max_val="5"
+ min_val="1"
+ name="slider_bar"
+ width="300" />
+ <slider
+ bottom="360"
+ decimal_digits="1"
+ height="20"
+ label="Red Slider"
+ label_width="100"
+ layout="topleft"
+ name="red_slider"
+ text_color="red"
+ text_width="40" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_test_spinner.xml b/indra/newview/skins/default/xui/en/floater_test_spinner.xml
new file mode 100644
index 0000000000..da88d825e4
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_test_spinner.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_resize="true"
+ height="400"
+ layout="topleft"
+ name="floater_test_spinner"
+ width="450">
+ <spinner
+ height="20"
+ label="Generic Spinner"
+ layout="topleft"
+ left="10"
+ name="generic_spinner"
+ top="40"
+ width="350" />
+ <spinner
+ height="20"
+ label="Callback Spinner"
+ label_width="80"
+ layout="topleft"
+ left_delta="0"
+ name="callback_spinner"
+ top_pad="20"
+ width="400" />
+ <spinner
+ height="20"
+ label="Colorful Spinner"
+ layout="topleft"
+ left_delta="0"
+ name="colorful_spinner"
+ top_pad="20"
+ width="250" />
+ <spinner
+ height="20"
+ increment="1"
+ initial_value="2.0"
+ label="Value Spinner"
+ layout="topleft"
+ left_delta="0"
+ max_val="5"
+ min_val="1"
+ name="value_spinner"
+ top_pad="20"
+ width="250" />
+ <spinner
+ height="20"
+ label="Mini Spinner 1"
+ layout="topleft"
+ left_delta="0"
+ name="mini_spinner_1"
+ top_pad="20"
+ width="200" />
+ <spinner
+ height="20"
+ label="Mini Spinner 2"
+ layout="topleft"
+ left_pad="20"
+ name="mini_spinner_2"
+ top_delta="0"
+ width="200" />
+ <spinner
+ control_name="RenderFogRatio"
+ decimal_digits="1"
+ height="20"
+ label="Control Spinner"
+ layout="topleft"
+ left="10"
+ max_val="20"
+ min_val="10"
+ name="control_spinner"
+ top="260"
+ width="250" />
+ <spinner
+ follows="left"
+ height="20"
+ label="Follows Left"
+ label_width="85"
+ layout="topleft"
+ left_delta="0"
+ name="follows_left"
+ top_pad="20"
+ width="250" />
+ <spinner
+ follows="right"
+ height="20"
+ label="Follows Right"
+ label_width="85"
+ layout="topleft"
+ left_delta="0"
+ name="follows_right"
+ top_pad="20"
+ width="250" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_test_textbox.xml b/indra/newview/skins/default/xui/en/floater_test_textbox.xml
new file mode 100644
index 0000000000..b4f3fc1e78
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_test_textbox.xml
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_resize="true"
+ height="400"
+ layout="topleft"
+ name="floater_test_textbox"
+ width="400">
+ <text
+ type="string"
+ length="1"
+ height="10"
+ layout="topleft"
+ left="10"
+ top="30"
+ width="300">
+ Bottom and left specified
+ </text>
+ <text
+ type="string"
+ length="1"
+ height="10"
+ layout="topleft"
+ left_delta="200"
+ top_delta="0"
+ width="300">
+ Bottom delta left delta
+ </text>
+ <text
+ type="string"
+ length="1"
+ height="10"
+ layout="topleft"
+ left="10"
+ top="50"
+ width="300">
+ Bottom delta -20
+ </text>
+ <text
+ type="string"
+ length="1"
+ height="10"
+ layout="topleft"
+ left_delta="0"
+ top_pad="30"
+ width="300">
+ First line of multiple lines
+ Second line of multiple lines
+ </text>
+ <text
+ type="string"
+ length="1"
+ font="SansSerif"
+ height="10"
+ layout="topleft"
+ left_delta="0"
+ top_pad="30"
+ width="300">
+ font SansSerif
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="bottom|right"
+ height="10"
+ layout="topleft"
+ left_delta="0"
+ top_pad="10"
+ width="300">
+ follows bottom right
+ </text>
+ <text
+ type="string"
+ length="1"
+ font="SansSerifSmall"
+ font.style="BOLD"
+ height="10"
+ layout="topleft"
+ left_delta="0"
+ top_pad="10"
+ width="300">
+ font style BOLD
+ </text>
+ <text
+ type="string"
+ length="1"
+ font="SansSerifSmall"
+ font.style="BOLD|UNDERLINE"
+ height="10"
+ layout="topleft"
+ left_delta="0"
+ top_pad="10"
+ width="300">
+ font style BOLD UNDERLINE
+ </text>
+ <text
+ type="string"
+ length="1"
+ height="10"
+ layout="topleft"
+ left_delta="0"
+ top_pad="10"
+ width="300">
+ font style UNDERLINE
+ </text>
+ <text
+ type="string"
+ length="1"
+ height="10"
+ layout="topleft"
+ left_delta="0"
+ top_pad="10"
+ width="300">
+ Escaped greater than &gt;
+ </text>
+ <text
+ type="string"
+ length="1"
+ bottom="390"
+ label="N"
+ layout="topleft"
+ left="10"
+ name="floater_map_north"
+ right="30"
+ text="N"
+ text_color="1 1 1 0.7"
+ top="370">
+ N
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_test_widgets.xml b/indra/newview/skins/default/xui/en/floater_test_widgets.xml
new file mode 100644
index 0000000000..9a2602db75
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_test_widgets.xml
@@ -0,0 +1,342 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<!-- Sample "floater" window with examples of common widgets.
+
+ Notes:
+ XML UI (XUI) files use spaces for indentation, not tabs.
+ All position values are in pixels.
+ For now, each widget must contain attribute layout="topleft".
+ 0,0 is the top-left corner of the floater.
+ Each widget must have a unique name attribute.
+ If a widget is aligned with the one before it, use relative positioning:
+ top_pad
+ top_delta
+ left_pad
+ left_delta
+ Otherwise specify location with left and top attributes.
+-->
+<floater
+ can_resize="true"
+ title="Test Floater"
+ height="500"
+ layout="topleft"
+ name="floater_test_widgets"
+ width="850">
+
+ <!-- Strings are used by C++ code for localization. They are not visible
+ unless the C++ code uses them to fill in another widget. -->
+ <floater.string
+ name="sample_string"
+ value="Sample String" />
+ <floater.string
+ name="other_string"
+ value="Other String" />
+
+ <!-- Floaters can contain drop-down menus.
+ The menu_bar widget contains the inividual menus.
+ The width is automatically computed to fit the labels. -->
+ <menu_bar
+ height="18"
+ layout="topleft"
+ tool_tip="menu"
+ left="2"
+ name="test_menu_bar"
+ top="16">
+ <menu
+ height="16"
+ label="Menu"
+ layout="topleft"
+ tear_off="true"
+ left="0"
+ name="Menu"
+ top="-32"
+ width="128">
+ <!-- menu_item_call will trigger a function call in the C++ code -->
+ <menu_item_call
+ label="Menu Item 1"
+ layout="topleft"
+ name="test_menu_item_1" />
+ <!-- menu_item_separator is a horizontal line used to separate sections
+ of a menu. In general, menus should be divided into chunks of
+ no more than 7 items separated by menu_item_separators. -->
+ <menu_item_separator/>
+ <menu_item_call
+ label="Menu Item 2"
+ layout="topleft"
+ name="test_menu_item_2" />
+ </menu>
+ </menu_bar>
+
+ <!-- "text" is one or more read-only lines of text.
+ It can be made clickable but this requires C++ code
+ support. URLs are not automatically underlined. -->
+ <text
+ bottom="55"
+ layout="topleft"
+ left="10">
+ For widget list see https://wiki.lindenlab.com/wiki/Viewer:UI/Widgets
+ </text>
+
+ <!-- First column -->
+
+ <button
+ height="20"
+ label="Button"
+ layout="topleft"
+ left_delta="0"
+ name="test_button"
+ tool_tip="button"
+ top="80"
+ width="100" />
+ <!-- "flyout_button" is a button that can spawn a menu -->
+ <flyout_button
+ follows="right|bottom"
+ height="20"
+ label="Flyout"
+ layout="topleft"
+ left_delta="0"
+ name="fly_btn"
+ top_pad="15"
+ tool_tip="flyout button"
+ width="100">
+ <flyout_button.item
+ label="Item 1"
+ value="shout" />
+ <flyout_button.item
+ label="Item 2"
+ value="say" />
+ <flyout_button.item
+ label="Item 3"
+ value="whisper" />
+ </flyout_button>
+ <check_box
+ bottom_delta="35"
+ label="Checkbox"
+ layout="topleft"
+ tool_tip="checkbox"
+ name="test_checkbox" />
+ <!-- "combo_box" is a pop-menu of items. Optionally the box itself can
+ contain a general purpose line input editor, allowing the user to
+ provide input that is not a list item. -->
+ <combo_box
+ bottom_delta="35"
+ height="16"
+ width="150"
+ label="Combobox"
+ layout="topleft"
+ tool_tip="combo box"
+ name="test_combo_box">
+ <combo_box.item
+ label="Combobox Item 1" />
+ <combo_box.item
+ label="Combobox Item 2" />
+ </combo_box>
+ <!-- "icon" is a read-only image. The image_name must match an entry
+ in textures.xml. We support TGA and PNG for UI images. -->
+ <icon
+ height="16"
+ image_name="icon_avatar_online.tga"
+ layout="topleft"
+ left_delta="0"
+ tool_tip="icon"
+ name="test_icon"
+ top_pad="40"
+ width="16" />
+ <!-- "line_editor" allows a single line of editable text input.
+ The contents of this XML node are used as the initial value for
+ the text. -->
+ <line_editor
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="test_line_editor"
+ top_pad="20"
+ tool_tip="line editor"
+ width="200">
+ Line Editor Sample Text
+ </line_editor>
+ <!-- "search_editor" is a specialized line_editor that shows read-only
+ help text until the user clicks in the widget. -->
+ <search_editor
+ follows="left|top|right"
+ height="20"
+ label="Type here to search"
+ layout="topleft"
+ left_delta="0"
+ name="search editor"
+ tool_tip="search editor"
+ top_pad="30"
+ width="200" />
+ <!-- "progress_bar" percent completed gets set in C++ code -->
+ <progress_bar
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="test_progress_bar"
+ top_pad="30"
+ tool_tip="progress bar"
+ width="200" />
+ <!-- "stat_view" is a container for statistics graphs. It is only used
+ for debugging/diagnostic displays. -->
+ <stat_view
+ height="250"
+ label="Statistics View"
+ layout="topleft"
+ left_delta="0"
+ name="axis_view"
+ show_label="true"
+ top_pad="30"
+ tool_tip="stat view"
+ width="200">
+ <stat_bar
+ width="100"
+ bar_max="100"
+ bottom_delta="30"
+ label="Test Stat"
+ layout="topleft"
+ stat="stat"
+ bar_min="20"
+ name="test_stat_bar" />
+ </stat_view>
+
+ <!-- New column -->
+
+ <!-- "radio_group" is a set of mutually exclusive choices, like the buttons
+ on a car radio that allow a single radio station to be chosen. -->
+ <radio_group
+ height="40"
+ layout="topleft"
+ left_pad="90"
+ name="size_radio_group"
+ tool_tip="radio group"
+ top="80"
+ width="200">
+ <radio_item
+ bottom="20"
+ label="Radio 1"
+ layout="topleft"
+ name="small_radio_item" />
+ <radio_item
+ label="Radio 2"
+ layout="topleft"
+ name="large_radio_item" />
+ </radio_group>
+ <!-- "scroll_list" is a scrolling list of columnar data. -->
+ <scroll_list
+ bottom_delta="100"
+ height="80"
+ draw_heading="true"
+ tool_tip="scroll list"
+ layout="topleft">
+ <scroll_list.columns
+ dynamicwidth="true"
+ name="first_column"
+ label="Column A"/>
+ <scroll_list.columns
+ dynamicwidth="true"
+ name="second_column"
+ label="Column B"/>
+ </scroll_list>
+ <!-- "slider" is a horizontal input widget for numerical data. -->
+ <slider
+ bottom_delta="45"
+ layout="topleft"
+ min_val="0"
+ max_val="100"
+ initial_value="20"
+ label="Slider"
+ name="test_slider"
+ tool_tip="slider"
+ width="200" />
+ <!-- "spinner" is a numerical input widget with an up and down arrow to
+ change the value. -->
+ <spinner
+ bottom_delta="35"
+ label="Spinner"
+ layout="topleft"
+ name="test_spinner"
+ tool_tip="spinner"/>
+ <text
+ bottom_delta="50"
+ font.style = "UNDERLINE"
+ layout="topleft"
+ name="test_text"
+ tool_tip="text">
+ Text (underlined)
+ </text>
+ <!-- "text_editor" is a multi-line text input widget, similar to
+ textarea in HTML. -->
+ <text_editor
+ height="80"
+ layout="topleft"
+ left_delta="0"
+ name="test_text_editor"
+ tool_tip="text editor"
+ top_pad="25"
+ width="200">
+ Text Editor
+ </text_editor>
+
+ <!-- And a third column -->
+
+ <!-- "tab_container" is a holder for multiple panels of UI widgets.
+ Tabs can appear at the top, bottom, or left of the container. -->
+ <tab_container
+ follows="all"
+ height="400"
+ layout="topleft"
+ left="575"
+ name="group_tab_container"
+ tab_position="top"
+ tool_tip="tab container"
+ top="80"
+ width="250">
+ <!-- "panel" is a container for widgets. It is automatically resized to
+ fit the parent tab_container. -->
+ <panel
+ border="true"
+ label="Tab 1 - Color"
+ layout="topleft"
+ name="panel2">
+ <!-- "color_swatch" displays a color and spawns a color picker when
+ clicked. -->
+ <color_swatch
+ border_color="1 0 0 1"
+ can_apply_immediately="true"
+ color="0.3 0.6 0.9 1"
+ follows="left|top"
+ height="90"
+ border="true"
+ layout="topleft"
+ left="10"
+ label="Color Swatch 1"
+ name="swatch1"
+ tool_tip="Color Swatch: Click to open Color Picker"
+ top="10"
+ width="80" />
+ <color_swatch
+ border_color="0.45098 0.517647 0.607843 1"
+ can_apply_immediately="true"
+ color="1 0 1 1"
+ follows="left|top"
+ height="90"
+ label="Color Swatch 2"
+ layout="topleft"
+ left_pad="10"
+ name="swatch2"
+ tool_tip="Color Swatch: Click to open Color Picker"
+ top_delta="0"
+ width="80" />
+ </panel>
+ <!-- panels can also refer to other floaters or panels -->
+ <panel
+ border="true"
+ filename="floater_test_checkbox.xml"
+ height="225"
+ label="Tab 2 - Checkbox"
+ layout="topleft"
+ left_delta="0"
+ name="tab2"
+ top_delta="159"
+ width="250" />
+ </tab_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/en/floater_texture_ctrl.xml
new file mode 100644
index 0000000000..8d85519610
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_texture_ctrl.xml
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_minimize="false"
+ can_resize="true"
+ height="290"
+ layout="topleft"
+ min_height="290"
+ min_width="410"
+ name="texture picker"
+ title="Pick: Texture"
+ width="410">
+ <floater.string
+ name="choose_picture">
+ Click to choose a picture
+ </floater.string>
+ <floater.string
+ name="pick title">
+ Pick:
+ </floater.string>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ halign="center"
+ height="14"
+ layout="topleft"
+ left="4"
+ name="Multiple"
+ top="96"
+ width="163">
+ Multiple
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="14"
+ layout="topleft"
+ left_delta="0"
+ name="unknown"
+ top_pad="80"
+ width="163">
+ Dimensions: [DIMENSIONS]
+ </text>
+ <button
+ enabled="false"
+ follows="left|bottom"
+ font="SansSerifSmall"
+ height="20"
+ label="Default"
+ label_selected="Default"
+ layout="topleft"
+ left_delta="0"
+ name="Default"
+ top_pad="4"
+ width="64" />
+ <button
+ enabled="false"
+ follows="left|bottom"
+ font="SansSerifSmall"
+ height="20"
+ label="None"
+ label_selected="None"
+ layout="topleft"
+ left_pad="4"
+ name="None"
+ top_delta="0"
+ width="64" />
+ <button
+ follows="left|bottom"
+ font="SansSerifSmall"
+ height="20"
+ label="Blank"
+ label_selected="Blank"
+ layout="topleft"
+ left="4"
+ name="Blank"
+ top="232"
+ width="64" />
+ <check_box
+ height="24"
+ initial_value="true"
+ label="Show Folders"
+ layout="topleft"
+ left="175"
+ name="show_folders_check"
+ top="20"
+ width="201" />
+ <search_editor
+ follows="left|top|right"
+ height="16"
+ label="Type here to search"
+ layout="topleft"
+ left_delta="0"
+ name="inventory search editor"
+ top_delta="0"
+ width="231" />
+ <inventory_panel
+ allow_multi_select="false"
+ border="true"
+ follows="left|top|right|bottom"
+ height="216"
+ layout="topleft"
+ left_delta="0"
+ name="inventory panel"
+ top_pad="4"
+ width="231" />
+ <check_box
+ follows="left|bottom"
+ height="20"
+ initial_value="true"
+ label="Apply Immediately"
+ layout="topleft"
+ left="4"
+ name="apply_immediate_check"
+ top="262"
+ width="150" />
+ <button
+ follows="left|bottom"
+ height="32"
+ image_selected="eye_button_active.tga"
+ image_unselected="eye_button_inactive.tga"
+ layout="topleft"
+ left="139"
+ name="Pipette"
+ picture_style="true"
+ top="250"
+ width="32" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Cancel"
+ label_selected="Cancel"
+ layout="topleft"
+ left="186"
+ name="Cancel"
+ top="262"
+ width="100" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Select"
+ label_selected="Select"
+ layout="topleft"
+ left_pad="4"
+ name="Select"
+ top_delta="0"
+ width="100" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_tools.xml b/indra/newview/skins/default/xui/en/floater_tools.xml
new file mode 100644
index 0000000000..17b73b47ab
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_tools.xml
@@ -0,0 +1,2866 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ follows="left|top"
+ height="550"
+ layout="topleft"
+ name="toolbox floater"
+ save_rect="true"
+ short_title="Build"
+ single_instance="true"
+ sound_flags="0"
+ width="272">
+ <floater.string
+ name="status_rotate">
+ Drag colored bands to rotate object
+ </floater.string>
+ <floater.string
+ name="status_scale">
+ Click and drag to stretch selected side
+ </floater.string>
+ <floater.string
+ name="status_move">
+ Drag to move, shift-drag to copy
+ </floater.string>
+ <floater.string
+ name="status_modifyland">
+ Click and hold to modify land
+ </floater.string>
+ <floater.string
+ name="status_camera">
+ Click and drag to change view
+ </floater.string>
+ <floater.string
+ name="status_grab">
+ Drag to move, Ctrl to lift, Ctrl-Shift to rotate
+ </floater.string>
+ <floater.string
+ name="status_place">
+ Click inworld to build
+ </floater.string>
+ <floater.string
+ name="status_selectland">
+ Click and drag to select land
+ </floater.string>
+ <floater.string
+ name="grid_screen_text">
+ Screen
+ </floater.string>
+ <floater.string
+ name="grid_local_text">
+ Local
+ </floater.string>
+ <floater.string
+ name="grid_world_text">
+ World
+ </floater.string>
+ <floater.string
+ name="grid_reference_text">
+ Reference
+ </floater.string>
+ <floater.string
+ name="grid_attachment_text">
+ Attachment
+ </floater.string>
+ <button
+ follows="left|top"
+ height="32"
+ image_disabled="tool_zoom.tga"
+ image_disabled_selected="tool_zoom_active.tga"
+ image_selected="tool_zoom_active.tga"
+ image_unselected="tool_zoom.tga"
+ layout="topleft"
+ left="4"
+ name="button focus"
+ picture_style="true"
+ tool_tip="Focus"
+ top="2"
+ width="32" />
+ <button
+ follows="left|top"
+ height="32"
+ image_disabled="tool_grab.tga"
+ image_disabled_selected="tool_grab_active.tga"
+ image_selected="tool_grab_active.tga"
+ image_unselected="tool_grab.tga"
+ layout="topleft"
+ left_pad="4"
+ name="button move"
+ picture_style="true"
+ tool_tip="Move"
+ top_delta="0"
+ width="32" />
+ <button
+ follows="left|top"
+ height="32"
+ image_disabled="tool_face.tga"
+ image_disabled_selected="tool_face_active.tga"
+ image_selected="tool_face_active.tga"
+ image_unselected="tool_face.tga"
+ layout="topleft"
+ left_pad="4"
+ name="button edit"
+ picture_style="true"
+ tool_tip="Edit"
+ top_delta="0"
+ width="32" />
+ <button
+ follows="left|top"
+ height="32"
+ image_disabled="tool_create.tga"
+ image_disabled_selected="tool_create_active.tga"
+ image_selected="tool_create_active.tga"
+ image_unselected="tool_create.tga"
+ layout="topleft"
+ left_pad="4"
+ name="button create"
+ picture_style="true"
+ tool_tip="Create"
+ top_delta="0"
+ width="32" />
+ <button
+ follows="left|top"
+ height="32"
+ image_disabled="tool_dozer.tga"
+ image_disabled_selected="tool_dozer_active.tga"
+ image_selected="tool_dozer_active.tga"
+ image_unselected="tool_dozer.tga"
+ layout="topleft"
+ left_pad="4"
+ name="button land"
+ picture_style="true"
+ tool_tip="Land"
+ top_delta="0"
+ width="32" />
+ <slider_bar
+ follows="left|top"
+ height="14"
+ increment="0.01"
+ initial_value="0.125"
+ layout="topleft"
+ left="114"
+ max_val="0.5"
+ name="slider zoom"
+ top="55"
+ width="134" />
+ <radio_group
+ draw_border="false"
+ height="45"
+ layout="topleft"
+ left_delta="-110"
+ name="focus_radio_group"
+ top_delta="0"
+ width="114">
+ <radio_item
+ height="16"
+ label="Zoom"
+ layout="topleft"
+ left="0"
+ name="radio zoom"
+ top="-1"
+ width="114" />
+ <radio_item
+ height="16"
+ label="Orbit (Ctrl)"
+ layout="topleft"
+ left_delta="0"
+ name="radio orbit"
+ top_delta="15"
+ width="114" />
+ <radio_item
+ height="16"
+ label="Pan (Ctrl-Shift)"
+ layout="topleft"
+ left_delta="0"
+ name="radio pan"
+ top_delta="15"
+ width="114" />
+ </radio_group>
+ <radio_group
+ draw_border="false"
+ height="45"
+ layout="topleft"
+ left_delta="0"
+ name="move_radio_group"
+ top_delta="0"
+ width="114">
+ <radio_item
+ height="16"
+ label="Move"
+ layout="topleft"
+ left="0"
+ name="radio move"
+ top="-1"
+ width="114" />
+ <radio_item
+ height="16"
+ label="Lift (Ctrl)"
+ layout="topleft"
+ left_delta="0"
+ name="radio lift"
+ top_delta="15"
+ width="114" />
+ <radio_item
+ height="16"
+ label="Spin (Ctrl-Shift)"
+ layout="topleft"
+ left_delta="0"
+ name="radio spin"
+ top_delta="15"
+ width="114" />
+ </radio_group>
+ <radio_group
+ draw_border="false"
+ height="60"
+ layout="topleft"
+ left_delta="0"
+ name="edit_radio_group"
+ top_delta="0"
+ width="114">
+ <radio_item
+ height="16"
+ label="Position"
+ layout="topleft"
+ left="0"
+ name="radio position"
+ top="-1"
+ width="114" />
+ <radio_item
+ height="16"
+ label="Rotate (Ctrl)"
+ layout="topleft"
+ left_delta="0"
+ name="radio rotate"
+ top_delta="15"
+ width="114" />
+ <radio_item
+ height="16"
+ label="Stretch (Ctrl-Shift)"
+ layout="topleft"
+ left_delta="0"
+ name="radio stretch"
+ top_delta="15"
+ width="123" />
+ <radio_item
+ height="16"
+ label="Select Texture"
+ layout="topleft"
+ left_delta="0"
+ name="radio select face"
+ top_delta="15"
+ width="114" />
+ </radio_group>
+ <check_box
+ control_name="EditLinkedParts"
+ height="16"
+ label="Edit linked parts"
+ layout="topleft"
+ left_delta="0"
+ name="checkbox edit linked parts"
+ top_pad="3"
+ width="114" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="14"
+ layout="topleft"
+ left_delta="2"
+ name="text ruler mode"
+ top_pad="6"
+ width="68">
+ Ruler:
+ </text>
+ <combo_box
+ height="20"
+ layout="topleft"
+ left_delta="40"
+ name="combobox grid mode"
+ top_delta="-2"
+ width="86">
+ <combo_box.item
+ label="World"
+ value="World" />
+ <combo_box.item
+ label="Local"
+ value="Local" />
+ <combo_box.item
+ label="Reference"
+ value="Reference" />
+ </combo_box>
+ <check_box
+ control_name="ScaleUniform"
+ height="16"
+ label="Stretch Both Sides"
+ layout="topleft"
+ left="143"
+ name="checkbox uniform"
+ top="54"
+ width="134" />
+ <check_box
+ control_name="ScaleStretchTextures"
+ height="16"
+ initial_value="true"
+ label="Stretch Textures"
+ layout="topleft"
+ left_delta="0"
+ name="checkbox stretch textures"
+ top_pad="1"
+ width="134" />
+ <check_box
+ control_name="SnapEnabled"
+ height="16"
+ initial_value="true"
+ label="Use Grid"
+ layout="topleft"
+ left_delta="0"
+ name="checkbox snap to grid"
+ top_pad="1"
+ width="134" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="20"
+ label="Options..."
+ label_selected="Options..."
+ layout="topleft"
+ left_delta="20"
+ name="Options..."
+ top="103"
+ valign="center"
+ width="80" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="4"
+ name="text status"
+ top="36"
+ width="264">
+ Drag to move, shift-drag to copy
+ </text>
+ <button
+ follows="left|top"
+ height="24"
+ image_disabled="object_cube.tga"
+ image_disabled_selected="object_cube_active.tga"
+ image_selected="object_cube_active.tga"
+ image_unselected="object_cube.tga"
+ layout="topleft"
+ left_delta="0"
+ name="ToolCube"
+ picture_style="true"
+ tool_tip="Cube"
+ top_delta="15"
+ width="24" />
+ <button
+ follows="left|top"
+ height="24"
+ image_disabled="object_prism.tga"
+ image_disabled_selected="object_prism_active.tga"
+ image_selected="object_prism_active.tga"
+ image_unselected="object_prism.tga"
+ layout="topleft"
+ left_delta="23"
+ name="ToolPrism"
+ picture_style="true"
+ tool_tip="Prism"
+ top_delta="0"
+ width="24" />
+ <button
+ follows="left|top"
+ height="24"
+ image_disabled="object_pyramid.tga"
+ image_disabled_selected="object_pyramid_active.tga"
+ image_selected="object_pyramid_active.tga"
+ image_unselected="object_pyramid.tga"
+ layout="topleft"
+ left_delta="23"
+ name="ToolPyramid"
+ picture_style="true"
+ tool_tip="Pyramid"
+ top_delta="0"
+ width="24" />
+ <button
+ follows="left|top"
+ height="24"
+ image_disabled="object_tetrahedron.tga"
+ image_disabled_selected="object_tetrahedron_active.tga"
+ image_selected="object_tetrahedron_active.tga"
+ image_unselected="object_tetrahedron.tga"
+ layout="topleft"
+ left_delta="23"
+ name="ToolTetrahedron"
+ picture_style="true"
+ tool_tip="Tetrahedron"
+ top_delta="0"
+ width="24" />
+ <button
+ follows="left|top"
+ height="24"
+ image_disabled="object_cylinder.tga"
+ image_disabled_selected="object_cylinder_active.tga"
+ image_selected="object_cylinder_active.tga"
+ image_unselected="object_cylinder.tga"
+ layout="topleft"
+ left_delta="23"
+ name="ToolCylinder"
+ picture_style="true"
+ tool_tip="Cylinder"
+ top_delta="0"
+ width="24" />
+ <button
+ follows="left|top"
+ height="24"
+ image_disabled="object_hemi_cylinder.tga"
+ image_disabled_selected="object_hemi_cylinder_active.tga"
+ image_selected="object_hemi_cylinder_active.tga"
+ image_unselected="object_hemi_cylinder.tga"
+ layout="topleft"
+ left_delta="23"
+ name="ToolHemiCylinder"
+ picture_style="true"
+ tool_tip="Hemicylinder"
+ top_delta="0"
+ width="24" />
+ <button
+ follows="left|top"
+ height="24"
+ image_disabled="object_cone.tga"
+ image_disabled_selected="object_cone_active.tga"
+ image_selected="object_cone_active.tga"
+ image_unselected="object_cone.tga"
+ layout="topleft"
+ left_delta="23"
+ name="ToolCone"
+ picture_style="true"
+ tool_tip="Cone"
+ top_delta="0"
+ width="24" />
+ <button
+ follows="left|top"
+ height="24"
+ image_disabled="object_hemi_cone.tga"
+ image_disabled_selected="object_hemi_cone_active.tga"
+ image_selected="object_hemi_cone_active.tga"
+ image_unselected="object_hemi_cone.tga"
+ layout="topleft"
+ left_delta="23"
+ name="ToolHemiCone"
+ picture_style="true"
+ tool_tip="Hemicone"
+ top_delta="0"
+ width="24" />
+ <button
+ follows="left|top"
+ height="24"
+ image_disabled="object_sphere.tga"
+ image_disabled_selected="object_sphere_active.tga"
+ image_selected="object_sphere_active.tga"
+ image_unselected="object_sphere.tga"
+ layout="topleft"
+ left_delta="23"
+ name="ToolSphere"
+ picture_style="true"
+ tool_tip="Sphere"
+ top_delta="0"
+ width="24" />
+ <button
+ follows="left|top"
+ height="24"
+ image_disabled="object_hemi_sphere.tga"
+ image_disabled_selected="object_hemi_sphere_active.tga"
+ image_selected="object_hemi_sphere_active.tga"
+ image_unselected="object_hemi_sphere.tga"
+ layout="topleft"
+ left_delta="23"
+ name="ToolHemiSphere"
+ picture_style="true"
+ tool_tip="Hemisphere"
+ top_delta="0"
+ width="24" />
+ <button
+ follows="left|top"
+ height="24"
+ image_disabled="object_torus.tga"
+ image_disabled_selected="object_torus_active.tga"
+ image_selected="object_torus_active.tga"
+ image_unselected="object_torus.tga"
+ layout="topleft"
+ left="4"
+ name="ToolTorus"
+ picture_style="true"
+ tool_tip="Torus"
+ top="74"
+ width="24" />
+ <button
+ follows="left|top"
+ height="24"
+ image_disabled="object_tube.tga"
+ image_disabled_selected="object_tube_active.tga"
+ image_selected="object_tube_active.tga"
+ image_unselected="object_tube.tga"
+ layout="topleft"
+ left_delta="23"
+ name="ToolTube"
+ picture_style="true"
+ tool_tip="Tube"
+ top_delta="0"
+ width="24" />
+ <button
+ follows="left|top"
+ height="24"
+ image_disabled="object_ring.tga"
+ image_disabled_selected="object_ring_active.tga"
+ image_selected="object_ring_active.tga"
+ image_unselected="object_ring.tga"
+ layout="topleft"
+ left_delta="23"
+ name="ToolRing"
+ picture_style="true"
+ tool_tip="Ring"
+ top_delta="0"
+ width="24" />
+ <button
+ follows="left|top"
+ height="24"
+ image_disabled="object_tree.tga"
+ image_disabled_selected="object_tree_active.tga"
+ image_selected="object_tree_active.tga"
+ image_unselected="object_tree.tga"
+ layout="topleft"
+ left_delta="23"
+ name="ToolTree"
+ picture_style="true"
+ tool_tip="Tree"
+ top_delta="0"
+ width="24" />
+ <button
+ follows="left|top"
+ height="24"
+ image_disabled="object_grass.tga"
+ image_disabled_selected="object_grass_active.tga"
+ image_selected="object_grass_active.tga"
+ image_unselected="object_grass.tga"
+ layout="topleft"
+ left_delta="23"
+ name="ToolGrass"
+ picture_style="true"
+ tool_tip="Grass"
+ top_delta="0"
+ width="24" />
+ <check_box
+ control_name="CreateToolKeepSelected"
+ height="16"
+ label="Keep selected"
+ layout="topleft"
+ left="4"
+ name="checkbox sticky"
+ top="101"
+ width="128" />
+ <check_box
+ control_name="CreateToolCopySelection"
+ height="16"
+ label="Copy selected"
+ layout="topleft"
+ left_delta="0"
+ name="checkbox copy selection"
+ top_delta="15"
+ width="134" />
+ <check_box
+ control_name="CreateToolCopyCenters"
+ height="16"
+ initial_value="true"
+ label="Center"
+ layout="topleft"
+ left_delta="18"
+ name="checkbox copy centers"
+ top="132"
+ width="134" />
+ <check_box
+ control_name="CreateToolCopyRotates"
+ height="16"
+ label="Rotate"
+ layout="topleft"
+ left_delta="0"
+ name="checkbox copy rotates"
+ top_delta="16"
+ width="134" />
+ <radio_group
+ draw_border="false"
+ height="105"
+ layout="topleft"
+ left="4"
+ name="land_radio_group"
+ top="54"
+ width="114">
+ <radio_item
+ height="16"
+ label="Select Land"
+ layout="topleft"
+ left="0"
+ name="radio select land"
+ top="-1"
+ width="114" />
+ <radio_item
+ height="16"
+ label="Flatten"
+ layout="topleft"
+ left_delta="0"
+ name="radio flatten"
+ top_delta="15"
+ width="114" />
+ <radio_item
+ height="16"
+ label="Raise"
+ layout="topleft"
+ left_delta="0"
+ name="radio raise"
+ top_delta="15"
+ width="114" />
+ <radio_item
+ height="16"
+ label="Lower"
+ layout="topleft"
+ left_delta="0"
+ name="radio lower"
+ top_delta="15"
+ width="114" />
+ <radio_item
+ height="16"
+ label="Smooth"
+ layout="topleft"
+ left_delta="0"
+ name="radio smooth"
+ top_delta="15"
+ width="114" />
+ <radio_item
+ height="16"
+ label="Roughen"
+ layout="topleft"
+ left_delta="0"
+ name="radio noise"
+ top_delta="15"
+ width="114" />
+ <radio_item
+ height="16"
+ label="Revert"
+ layout="topleft"
+ left_delta="0"
+ name="radio revert"
+ top_delta="15"
+ width="114" />
+ </radio_group>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="20"
+ label="Apply"
+ label_selected="Apply"
+ layout="topleft"
+ left_delta="112"
+ name="button apply to selection"
+ tool_tip="Modify Selected Land"
+ top_delta="-2"
+ width="78" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left_delta="2"
+ name="Bulldozer:"
+ top_pad="4"
+ width="100">
+ Bulldozer:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left="132"
+ name="Dozer Size:"
+ top="94"
+ width="100">
+ Size
+ </text>
+ <slider_bar
+ follows="left|top"
+ height="16"
+ initial_value="2.0"
+ layout="topleft"
+ left_delta="46"
+ max_val="11"
+ min_val="1"
+ name="slider brush size"
+ top_delta="0"
+ width="80" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left="132"
+ name="Strength:"
+ top="116"
+ width="100">
+ Strength
+ </text>
+ <slider_bar
+ follows="left|top"
+ height="16"
+ initial_value="0.00"
+ layout="topleft"
+ left_delta="46"
+ max_val="2"
+ min_val="-1"
+ name="slider force"
+ top_delta="0"
+ width="80" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ halign="right"
+ height="16"
+ layout="topleft"
+ left="118"
+ name="obj_count"
+ top="135"
+ width="143">
+ Selected objects: [COUNT]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ halign="right"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="prim_count"
+ top_delta="12"
+ width="143">
+ primitives: [COUNT]
+ </text>
+ <tab_container
+ follows="left|top"
+ height="384"
+ layout="topleft"
+ left="0"
+ name="Object Info Tabs"
+ tab_max_width="52"
+ tab_min_width="40"
+ tab_position="top"
+ top="166"
+ width="272">
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="367"
+ label="General"
+ layout="topleft"
+ left="1"
+ mouse_opaque="false"
+ name="General"
+ top="16"
+ width="270">
+ <panel.string
+ name="text deed continued">
+ Deed...
+ </panel.string>
+ <panel.string
+ name="text deed">
+ Deed
+ </panel.string>
+ <panel.string
+ name="text modify info 1">
+ You can modify this object.
+ </panel.string>
+ <panel.string
+ name="text modify info 2">
+ You can modify these objects.
+ </panel.string>
+ <panel.string
+ name="text modify info 3">
+ You cannot modify this object.
+ </panel.string>
+ <panel.string
+ name="text modify info 4">
+ You cannot modify these objects.
+ </panel.string>
+ <panel.string
+ name="text modify warning">
+ Must select entire object to set permissions.
+ </panel.string>
+ <panel.string
+ name="Cost Default">
+ Price: L$
+ </panel.string>
+ <panel.string
+ name="Cost Total">
+ Total Price: L$
+ </panel.string>
+ <panel.string
+ name="Cost Per Unit">
+ Price Per: L$
+ </panel.string>
+ <panel.string
+ name="Cost Mixed">
+ Mixed Price
+ </panel.string>
+ <panel.string
+ name="Sale Mixed">
+ Mixed Sale
+ </panel.string>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="10"
+ name="Name:"
+ top="10"
+ width="78">
+ Name:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top|right"
+ height="16"
+ layout="topleft"
+ left_delta="78"
+ max_length="63"
+ name="Object Name"
+ select_on_focus="true"
+ top_delta="0"
+ width="172" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="10"
+ name="Description:"
+ top="30"
+ width="78">
+ Description:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top|right"
+ height="16"
+ layout="topleft"
+ left_delta="78"
+ max_length="127"
+ name="Object Description"
+ select_on_focus="true"
+ top_delta="0"
+ width="172" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="Creator:"
+ top="50"
+ width="78">
+ Creator:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="78"
+ name="Creator Name"
+ top_delta="0"
+ width="88">
+ Thrax Linden
+ </text>
+ <button
+ follows="top|right"
+ font="SansSerifSmall"
+ height="20"
+ label="Profile..."
+ label_selected="Profile..."
+ layout="topleft"
+ left_pad="6"
+ name="button creator profile"
+ top_delta="-4"
+ width="78" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="Owner:"
+ top="70"
+ width="78">
+ Owner:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="78"
+ name="Owner Name"
+ top_delta="0"
+ width="88">
+ Thrax Linden
+ </text>
+ <button
+ follows="top|right"
+ font="SansSerifSmall"
+ height="20"
+ label="Profile..."
+ label_selected="Profile..."
+ layout="topleft"
+ left_pad="6"
+ name="button owner profile"
+ top_delta="-4"
+ width="78" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="Group:"
+ top="90"
+ width="78">
+ Group:
+ </text>
+ <name_box
+ follows="left|top"
+ height="16"
+ initial_value="(retrieving)"
+ layout="topleft"
+ left_delta="78"
+ name="Group Name Proxy"
+ top_delta="0"
+ width="88" />
+ <button
+ follows="top|right"
+ font="SansSerifSmall"
+ height="20"
+ label="Set..."
+ label_selected="Set..."
+ layout="topleft"
+ left_pad="6"
+ name="button set group"
+ top_delta="-4"
+ width="78" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="Permissions:"
+ top="110"
+ width="85">
+ Permissions:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="perm_modify"
+ top_pad="4"
+ width="250">
+ You can modify this object.
+ </text>
+ <check_box
+ height="16"
+ label="Share with group"
+ layout="topleft"
+ left_delta="0"
+ name="checkbox share with group"
+ tool_tip="Allow all members of the set group to share and use your permissions for this object. You must Deed to enable role restrictions."
+ top_pad="4"
+ width="166" />
+ <button
+ follows="top|right"
+ font="SansSerifSmall"
+ height="20"
+ label="Deed..."
+ label_selected="Deed..."
+ layout="topleft"
+ left_delta="172"
+ name="button deed"
+ tool_tip="Group shared objects can be deeded by a group officer."
+ top="166"
+ width="78" />
+ <check_box
+ height="16"
+ label="Allow anyone to move"
+ layout="topleft"
+ left="10"
+ name="checkbox allow everyone move"
+ top="190"
+ width="142" />
+ <check_box
+ height="16"
+ label="Allow anyone to copy"
+ layout="topleft"
+ left_delta="0"
+ name="checkbox allow everyone copy"
+ top_pad="4"
+ width="141" />
+ <check_box
+ height="16"
+ label="Show in search"
+ layout="topleft"
+ left_delta="0"
+ name="search_check"
+ tool_tip="Let people see this object in search results"
+ top_pad="4"
+ width="78" />
+ <check_box
+ height="16"
+ label="For Sale"
+ layout="topleft"
+ left_delta="0"
+ name="checkbox for sale"
+ top_pad="4"
+ width="78" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_pad="12"
+ name="Cost"
+ top_delta="0"
+ width="78">
+ Price: L$
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top|right"
+ height="16"
+ layout="topleft"
+ left_pad="2"
+ max_length="25"
+ name="Edit Cost"
+ top_delta="0"
+ width="75" />
+ <radio_group
+ draw_border="false"
+ follows="left|top|right"
+ height="16"
+ layout="topleft"
+ left="42"
+ name="sale type"
+ top="270"
+ width="218">
+ <radio_item
+ height="16"
+ label="Original"
+ layout="topleft"
+ left="0"
+ name="Original"
+ top="0"
+ width="70" />
+ <radio_item
+ height="16"
+ label="Copy"
+ layout="topleft"
+ left_delta="70"
+ name="Copy"
+ top_delta="0"
+ width="70" />
+ <radio_item
+ height="16"
+ label="Contents"
+ layout="topleft"
+ left_delta="70"
+ name="Contents"
+ top_delta="0"
+ width="76" />
+ </radio_group>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="10"
+ layout="topleft"
+ left="10"
+ name="Next owner can:"
+ top="288"
+ width="250">
+ Next owner can:
+ </text>
+ <check_box
+ follows="left|top|right"
+ height="16"
+ label="Modify"
+ layout="topleft"
+ left_delta="0"
+ name="checkbox next owner can modify"
+ top_pad="6"
+ width="250" />
+ <check_box
+ follows="left|top|right"
+ height="16"
+ label="Copy"
+ layout="topleft"
+ left_delta="60"
+ name="checkbox next owner can copy"
+ top_delta="0"
+ width="190" />
+ <check_box
+ follows="left|top|right"
+ height="16"
+ label="Resell/Give away"
+ layout="topleft"
+ left_delta="60"
+ name="checkbox next owner can transfer"
+ top_delta="0"
+ width="130" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="10"
+ name="label click action"
+ top="322"
+ width="150">
+ When Left-Clicked:
+ </text>
+ <combo_box
+ height="18"
+ layout="topleft"
+ left_delta="0"
+ name="clickaction"
+ top_pad="7"
+ width="150">
+ <combo_box.item
+ label="Touch/grab (default)"
+ value="Touch/grab (default)" />
+ <combo_box.item
+ label="Sit on object"
+ value="Sit on object" />
+ <combo_box.item
+ label="Buy object"
+ value="Buy object" />
+ <combo_box.item
+ label="Pay object"
+ value="Pay object" />
+ <combo_box.item
+ label="Open"
+ value="Open" />
+ <combo_box.item
+ label="Play parcel media"
+ value="Play" />
+ <combo_box.item
+ label="Open parcel media"
+ value="Open Media" />
+ </combo_box>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="88"
+ name="B:"
+ top="105"
+ width="174">
+ B:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="50"
+ name="O:"
+ top_delta="0"
+ width="124">
+ O;
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="50"
+ name="G:"
+ top_delta="0"
+ width="74">
+ G:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="88"
+ name="E:"
+ top="117"
+ width="174">
+ E:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="50"
+ name="N:"
+ top_delta="0"
+ width="124">
+ N:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="50"
+ name="F:"
+ top_delta="0"
+ width="74">
+ F:
+ </text>
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="367"
+ label="Object"
+ layout="topleft"
+ left_delta="0"
+ mouse_opaque="false"
+ name="Object"
+ top_delta="0"
+ width="270">
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="10"
+ name="select_single"
+ top="10"
+ width="252">
+ Select only one primitive to edit parameters.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="0"
+ name="edit_object"
+ top_delta="0"
+ width="252">
+ Edit object parameters:
+ </text>
+ <check_box
+ height="16"
+ label="Locked"
+ layout="topleft"
+ left_delta="-2"
+ name="checkbox locked"
+ tool_tip="Prevents object from being moved or deleted. Frequently useful during building to avoid unintended edits."
+ top_pad="10"
+ width="123" />
+ <check_box
+ height="16"
+ label="Physical"
+ layout="topleft"
+ left_delta="0"
+ name="Physical Checkbox Ctrl"
+ tool_tip="Allows object to be pushed and affected by gravity"
+ top_pad="2"
+ width="123" />
+ <check_box
+ height="16"
+ label="Temporary"
+ layout="topleft"
+ left_delta="0"
+ name="Temporary Checkbox Ctrl"
+ tool_tip="Causes object to be deleted 1 minute after creation."
+ top_pad="2"
+ width="123" />
+ <check_box
+ height="16"
+ label="Phantom"
+ layout="topleft"
+ left_delta="0"
+ name="Phantom Checkbox Ctrl"
+ tool_tip="Causes object to not collide with other objects or avatars"
+ top_pad="2"
+ width="123" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="2"
+ name="label position"
+ top_pad="4"
+ width="121">
+ Position (meters)
+ </text>
+ <spinner
+ follows="left|top"
+ height="16"
+ increment="0.01"
+ initial_value="0"
+ label="X"
+ label_width="10"
+ layout="topleft"
+ left_delta="0"
+ max_val="512"
+ min_val="-256"
+ name="Pos X"
+ text_enabled_color="0.43 0.06 0.06 1"
+ top_pad="4"
+ width="87" />
+ <spinner
+ follows="left|top"
+ height="16"
+ increment="0.01"
+ initial_value="0"
+ label="Y"
+ label_width="10"
+ layout="topleft"
+ left_delta="0"
+ max_val="512"
+ min_val="-256"
+ name="Pos Y"
+ text_enabled_color="0 0.39 0.15 1"
+ top_pad="2"
+ width="87" />
+ <spinner
+ follows="left|top"
+ height="16"
+ increment="0.01"
+ initial_value="0"
+ label="Z"
+ label_width="10"
+ layout="topleft"
+ left_delta="0"
+ max_val="4096"
+ name="Pos Z"
+ text_enabled_color="0 0.26 0.51 1"
+ top_pad="2"
+ width="87" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="0"
+ name="label size"
+ top_pad="6"
+ width="121">
+ Size (meters)
+ </text>
+ <spinner
+ follows="left|top"
+ height="16"
+ increment="0.01"
+ initial_value="0"
+ label="X"
+ label_width="10"
+ layout="topleft"
+ left_delta="0"
+ max_val="10"
+ min_val="0.01"
+ name="Scale X"
+ text_enabled_color="1 1 1 1"
+ top_pad="4"
+ width="87" />
+ <spinner
+ follows="left|top"
+ height="16"
+ increment="0.01"
+ initial_value="0"
+ label="Y"
+ label_width="10"
+ layout="topleft"
+ left_delta="0"
+ max_val="10"
+ min_val="0.01"
+ name="Scale Y"
+ text_enabled_color="1 1 1 1"
+ top_pad="2"
+ width="87" />
+ <spinner
+ follows="left|top"
+ height="16"
+ increment="0.01"
+ initial_value="0"
+ label="Z"
+ label_width="10"
+ layout="topleft"
+ left_delta="0"
+ max_val="10"
+ min_val="0.01"
+ name="Scale Z"
+ text_enabled_color="1 1 1 1"
+ top_pad="2"
+ width="87" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="0"
+ name="label rotation"
+ top_pad="6"
+ width="121">
+ Rotation (degrees)
+ </text>
+ <spinner
+ decimal_digits="2"
+ follows="left|top"
+ height="16"
+ increment="1"
+ initial_value="0"
+ label="X"
+ label_width="10"
+ layout="topleft"
+ left_delta="0"
+ max_val="9999"
+ min_val="-9999"
+ name="Rot X"
+ text_enabled_color="1 1 1 1"
+ top_pad="6"
+ width="87" />
+ <spinner
+ decimal_digits="2"
+ follows="left|top"
+ height="16"
+ increment="1"
+ initial_value="0"
+ label="Y"
+ label_width="10"
+ layout="topleft"
+ left_delta="0"
+ max_val="9999"
+ min_val="-9999"
+ name="Rot Y"
+ text_enabled_color="1 1 1 1"
+ top_pad="2"
+ width="87" />
+ <spinner
+ decimal_digits="2"
+ follows="left|top"
+ height="16"
+ increment="1"
+ initial_value="0"
+ label="Z"
+ label_width="10"
+ layout="topleft"
+ left_delta="0"
+ max_val="9999"
+ min_val="-9999"
+ name="Rot Z"
+ text_enabled_color="1 1 1 1"
+ top_pad="2"
+ width="87" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="0"
+ name="label material"
+ top_pad="6"
+ width="121">
+ Material
+ </text>
+ <combo_box
+ height="18"
+ layout="topleft"
+ left_delta="0"
+ name="material"
+ top_pad="4"
+ width="87">
+ <combo_box.item
+ label="Stone"
+ value="Stone" />
+ <combo_box.item
+ label="Metal"
+ value="Metal" />
+ <combo_box.item
+ label="Glass"
+ value="Glass" />
+ <combo_box.item
+ label="Wood"
+ value="Wood" />
+ <combo_box.item
+ label="Flesh"
+ value="Flesh" />
+ <combo_box.item
+ label="Plastic"
+ value="Plastic" />
+ <combo_box.item
+ label="Rubber"
+ value="Rubber" />
+ </combo_box>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="121"
+ name="label basetype"
+ top="26"
+ width="141">
+ Building Block Type
+ </text>
+ <combo_box
+ height="18"
+ layout="topleft"
+ left_delta="0"
+ name="comboBaseType"
+ top_pad="6"
+ width="141">
+ <combo_box.item
+ label="Box"
+ value="Box" />
+ <combo_box.item
+ label="Cylinder"
+ value="Cylinder" />
+ <combo_box.item
+ label="Prism"
+ value="Prism" />
+ <combo_box.item
+ label="Sphere"
+ value="Sphere" />
+ <combo_box.item
+ label="Torus"
+ value="Torus" />
+ <combo_box.item
+ label="Tube"
+ value="Tube" />
+ <combo_box.item
+ label="Ring"
+ value="Ring" />
+ <combo_box.item
+ label="Sculpted"
+ value="Sculpted" />
+ </combo_box>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="0"
+ name="text cut"
+ top_pad="2"
+ width="141">
+ Path Cut Begin and End
+ </text>
+ <spinner
+ follows="left|top"
+ height="16"
+ increment="0.025"
+ initial_value="0"
+ label="B"
+ label_width="10"
+ layout="topleft"
+ left_delta="0"
+ max_val="0.98"
+ name="cut begin"
+ top_pad="6"
+ width="68" />
+ <spinner
+ follows="left|top"
+ height="16"
+ increment="0.025"
+ initial_value="1"
+ label="E"
+ label_width="10"
+ layout="topleft"
+ left_pad="5"
+ min_val="0.02"
+ name="cut end"
+ top_delta="0"
+ width="68" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="121"
+ name="text hollow"
+ top="98"
+ width="68">
+ Hollow
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_pad="10"
+ name="text skew"
+ top_delta="0"
+ width="63">
+ Skew
+ </text>
+ <spinner
+ decimal_digits="1"
+ follows="left|top"
+ height="16"
+ increment="5"
+ initial_value="0"
+ layout="topleft"
+ left="121"
+ max_val="95"
+ name="Scale 1"
+ top="112"
+ width="68" />
+ <spinner
+ decimal_digits="2"
+ follows="left|top"
+ height="16"
+ increment="0.05"
+ initial_value="0"
+ layout="topleft"
+ left_pad="5"
+ max_val="0.95"
+ min_val="-0.95"
+ name="Skew"
+ top_delta="0"
+ width="68" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="121"
+ name="Hollow Shape"
+ top="133"
+ width="141">
+ Hollow Shape
+ </text>
+ <combo_box
+ height="18"
+ layout="topleft"
+ left_delta="0"
+ name="hole"
+ top_pad="6"
+ width="141">
+ <combo_box.item
+ label="Default"
+ value="Default" />
+ <combo_box.item
+ label="Circle"
+ value="Circle" />
+ <combo_box.item
+ label="Square"
+ value="Square" />
+ <combo_box.item
+ label="Triangle"
+ value="Triangle" />
+ </combo_box>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="0"
+ name="text twist"
+ top_pad="2"
+ width="141">
+ Twist Begin and End
+ </text>
+ <spinner
+ decimal_digits="0"
+ follows="left|top"
+ height="16"
+ increment="9"
+ initial_value="0"
+ label="B"
+ label_width="10"
+ layout="topleft"
+ left_delta="0"
+ max_val="180"
+ min_val="-180"
+ name="Twist Begin"
+ top_pad="6"
+ width="68" />
+ <spinner
+ decimal_digits="0"
+ follows="left|top"
+ height="16"
+ increment="9"
+ initial_value="0"
+ label="E"
+ label_width="10"
+ layout="topleft"
+ left_pad="5"
+ max_val="180"
+ min_val="-180"
+ name="Twist End"
+ top_delta="0"
+ width="68" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="121"
+ name="scale_taper"
+ top="205"
+ width="141">
+ Taper
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="0"
+ name="scale_hole"
+ top_delta="0"
+ width="141">
+ Hole Size
+ </text>
+ <spinner
+ decimal_digits="2"
+ follows="left|top"
+ height="16"
+ increment="0.05"
+ initial_value="0"
+ label="X"
+ label_width="10"
+ layout="topleft"
+ left_delta="0"
+ min_val="-1"
+ name="Taper Scale X"
+ top_pad="4"
+ width="68" />
+ <spinner
+ decimal_digits="2"
+ follows="left|top"
+ height="16"
+ increment="0.05"
+ initial_value="0"
+ label="Y"
+ label_width="10"
+ layout="topleft"
+ left_pad="5"
+ min_val="-1"
+ name="Taper Scale Y"
+ top_delta="0"
+ width="68" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="121"
+ name="text topshear"
+ top="239"
+ width="141">
+ Top Shear
+ </text>
+ <spinner
+ decimal_digits="2"
+ follows="left|top"
+ height="16"
+ increment="0.05"
+ initial_value="0"
+ label="X"
+ label_width="10"
+ layout="topleft"
+ left_delta="0"
+ max_val="0.5"
+ min_val="-0.5"
+ name="Shear X"
+ top_pad="4"
+ width="68" />
+ <spinner
+ decimal_digits="2"
+ follows="left|top"
+ height="16"
+ increment="0.05"
+ initial_value="0"
+ label="Y"
+ label_width="10"
+ layout="topleft"
+ left_pad="5"
+ max_val="0.5"
+ min_val="-0.5"
+ name="Shear Y"
+ top_delta="0"
+ width="68" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="121"
+ name="advanced_cut"
+ top="273"
+ width="141">
+ Profile Cut Begin and End
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="0"
+ name="advanced_dimple"
+ top_delta="0"
+ width="141">
+ Dimple Begin and End
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="0"
+ name="advanced_slice"
+ top_delta="0"
+ width="141">
+ Slice Begin and End
+ </text>
+ <spinner
+ follows="left|top"
+ height="16"
+ increment="0.025"
+ initial_value="0"
+ label="B"
+ label_width="10"
+ layout="topleft"
+ left_delta="0"
+ max_val="0.95"
+ name="Path Limit Begin"
+ top_pad="3"
+ width="68" />
+ <spinner
+ follows="left|top"
+ height="16"
+ increment="0.025"
+ initial_value="1"
+ label="E"
+ label_width="10"
+ layout="topleft"
+ left_pad="5"
+ min_val="0.05"
+ name="Path Limit End"
+ top_delta="0"
+ width="68" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="121"
+ name="text taper2"
+ top="306"
+ width="141">
+ Taper
+ </text>
+ <spinner
+ decimal_digits="2"
+ follows="left|top"
+ height="16"
+ increment="0.05"
+ initial_value="0"
+ label="X"
+ label_width="10"
+ layout="topleft"
+ left_delta="0"
+ min_val="-1"
+ name="Taper X"
+ top_pad="3"
+ width="68" />
+ <spinner
+ decimal_digits="2"
+ follows="left|top"
+ height="16"
+ increment="0.05"
+ initial_value="0"
+ label="Y"
+ label_width="10"
+ layout="topleft"
+ left_pad="5"
+ min_val="-1"
+ name="Taper Y"
+ top_delta="0"
+ width="68" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="121"
+ name="text radius delta"
+ top="337"
+ width="78">
+ Radius
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="73"
+ name="text revolutions"
+ top_delta="0"
+ width="68">
+ Revolutions
+ </text>
+ <spinner
+ follows="left|top"
+ height="16"
+ increment="0.05"
+ initial_value="0"
+ layout="topleft"
+ left="121"
+ min_val="-1"
+ name="Radius Offset"
+ top="350"
+ width="68" />
+ <spinner
+ decimal_digits="2"
+ follows="left|top"
+ height="16"
+ initial_value="1"
+ layout="topleft"
+ left_pad="5"
+ max_val="4"
+ min_val="1"
+ name="Revolutions"
+ top_delta="0"
+ width="68" />
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="141"
+ label="Sculpt Texture"
+ layout="topleft"
+ left="121"
+ name="sculpt texture control"
+ tool_tip="Click to choose a picture"
+ top="70"
+ visible="false"
+ width="141" />
+ <check_box
+ height="16"
+ label="Mirror"
+ layout="topleft"
+ left_delta="0"
+ name="sculpt mirror control"
+ tool_tip="Flips sculpted prim along the X axis."
+ top_pad="8"
+ visible="false"
+ width="121" />
+ <check_box
+ height="16"
+ label="Inside-out"
+ layout="topleft"
+ left_delta="0"
+ name="sculpt invert control"
+ tool_tip="Inverts the sculpted prims normals, making it appear inside-out."
+ top_pad="4"
+ visible="false"
+ width="121" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="0"
+ name="label sculpt type"
+ top_pad="10"
+ visible="false"
+ width="121">
+ Stitching type
+ </text>
+ <combo_box
+ height="18"
+ layout="topleft"
+ left_delta="0"
+ name="sculpt type control"
+ top_pad="6"
+ visible="false"
+ width="141">
+ <combo_box.item
+ label="none)"
+ value="None" />
+ <combo_box.item
+ label="Sphere"
+ value="Sphere" />
+ <combo_box.item
+ label="Torus"
+ value="Torus" />
+ <combo_box.item
+ label="Plane"
+ value="Plane" />
+ <combo_box.item
+ label="Cylinder"
+ value="Cylinder" />
+ </combo_box>
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="367"
+ label="Features"
+ layout="topleft"
+ left_delta="0"
+ mouse_opaque="false"
+ name="Features"
+ top_delta="0"
+ width="270">
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="10"
+ name="select_single"
+ top="10"
+ width="252">
+ Select only one primitive to edit features.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="0"
+ name="edit_object"
+ top_delta="0"
+ width="252">
+ Edit object features:
+ </text>
+ <check_box
+ height="16"
+ label="Flexible Path"
+ layout="topleft"
+ left_delta="0"
+ name="Flexible1D Checkbox Ctrl"
+ tool_tip="Allows object to flex about the Z axis. (Client-side only)"
+ top_pad="10"
+ width="121" />
+ <spinner
+ follows="left|top"
+ height="16"
+ increment="1"
+ initial_value="2"
+ label="Softness"
+ label_width="65"
+ layout="topleft"
+ left_delta="0"
+ max_val="3"
+ name="FlexNumSections"
+ top_pad="4"
+ width="128" />
+ <spinner
+ follows="left|top"
+ height="16"
+ increment="0.5"
+ initial_value="0.3"
+ label="Gravity"
+ label_width="65"
+ layout="topleft"
+ left_delta="0"
+ max_val="10"
+ min_val="-10"
+ name="FlexGravity"
+ top_pad="4"
+ width="128" />
+ <spinner
+ follows="left|top"
+ height="16"
+ increment="0.5"
+ initial_value="2"
+ label="Drag"
+ label_width="65"
+ layout="topleft"
+ left_delta="0"
+ max_val="10"
+ name="FlexFriction"
+ top_pad="4"
+ width="128" />
+ <spinner
+ follows="left|top"
+ height="16"
+ increment="0.5"
+ initial_value="0"
+ label="Wind"
+ label_width="65"
+ layout="topleft"
+ left_delta="0"
+ max_val="10"
+ name="FlexWind"
+ top_pad="4"
+ width="128" />
+ <spinner
+ follows="left|top"
+ height="16"
+ increment="0.5"
+ initial_value="1"
+ label="Tension"
+ label_width="65"
+ layout="topleft"
+ left_delta="0"
+ max_val="10"
+ name="FlexTension"
+ top_pad="4"
+ width="128" />
+ <spinner
+ follows="left|top"
+ height="16"
+ increment="0.01"
+ initial_value="0"
+ label="Force X"
+ label_width="65"
+ layout="topleft"
+ left_delta="0"
+ max_val="10"
+ min_val="-10"
+ name="FlexForceX"
+ top_pad="4"
+ width="128" />
+ <spinner
+ follows="left|top"
+ height="16"
+ increment="0.01"
+ initial_value="0"
+ label="Force Y"
+ label_width="65"
+ layout="topleft"
+ left_delta="0"
+ max_val="10"
+ min_val="-10"
+ name="FlexForceY"
+ top_pad="4"
+ width="128" />
+ <spinner
+ follows="left|top"
+ height="16"
+ increment="0.01"
+ initial_value="0"
+ label="Force Z"
+ label_width="65"
+ layout="topleft"
+ left_delta="0"
+ max_val="10"
+ min_val="-10"
+ name="FlexForceZ"
+ top_pad="4"
+ width="128" />
+ <check_box
+ height="16"
+ label="Light"
+ layout="topleft"
+ left_delta="0"
+ name="Light Checkbox Ctrl"
+ tool_tip="Causes object to emit light"
+ top_pad="14"
+ width="121" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="0"
+ name="label color"
+ top_pad="11"
+ width="58">
+ Color
+ </text>
+ <color_swatch
+ border_color="0.45098 0.517647 0.607843 1"
+ can_apply_immediately="true"
+ color="0.5 0.5 0.5 1"
+ follows="left|top"
+ height="48"
+ layout="topleft"
+ left_delta="67"
+ name="colorswatch"
+ tool_tip="Click to open Color Picker"
+ top="237"
+ width="32" />
+ <spinner
+ follows="left|top"
+ height="16"
+ initial_value="0.5"
+ label="Intensity"
+ label_width="65"
+ layout="topleft"
+ left="10"
+ name="Light Intensity"
+ top="273"
+ width="128" />
+ <spinner
+ follows="left|top"
+ height="16"
+ initial_value="5"
+ label="Radius"
+ label_width="65"
+ layout="topleft"
+ left_delta="0"
+ max_val="20"
+ name="Light Radius"
+ top_pad="4"
+ width="128" />
+ <spinner
+ follows="left|top"
+ height="16"
+ increment="0.25"
+ initial_value="1"
+ label="Falloff"
+ label_width="65"
+ layout="topleft"
+ left_delta="0"
+ max_val="2"
+ name="Light Falloff"
+ top_pad="4"
+ width="128" />
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="367"
+ label="Texture"
+ layout="topleft"
+ left_delta="0"
+ mouse_opaque="false"
+ name="Texture"
+ top_delta="0"
+ width="270">
+ <panel.string
+ name="string repeats per meter">
+ Repeats Per Meter
+ </panel.string>
+ <panel.string
+ name="string repeats per face">
+ Repeats Per Face
+ </panel.string>
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="80"
+ label="Texture"
+ layout="topleft"
+ left="10"
+ name="texture control"
+ tool_tip="Click to choose a picture"
+ top="10"
+ width="64" />
+ <color_swatch
+ border_color="0.45098 0.517647 0.607843 1"
+ can_apply_immediately="true"
+ follows="left|top"
+ height="80"
+ label="Color"
+ layout="topleft"
+ left_pad="26"
+ name="colorswatch"
+ tool_tip="Click to open Color Picker"
+ top_delta="0"
+ width="64" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="180"
+ name="color trans"
+ top="1"
+ width="80">
+ Transparency %
+ </text>
+ <spinner
+ decimal_digits="0"
+ follows="left|top"
+ height="16"
+ increment="2"
+ initial_value="0"
+ layout="topleft"
+ left_delta="0"
+ max_val="90"
+ name="ColorTrans"
+ top_pad="4"
+ width="80" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="0"
+ name="glow label"
+ top_pad="2"
+ width="80">
+ Glow
+ </text>
+ <spinner
+ decimal_digits="2"
+ follows="left|top"
+ height="16"
+ initial_value="0"
+ layout="topleft"
+ left_delta="0"
+ name="glow"
+ top_pad="4"
+ width="80" />
+ <check_box
+ height="16"
+ label="Full Bright"
+ layout="topleft"
+ left_delta="0"
+ name="checkbox fullbright"
+ top_pad="7"
+ width="81" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="10"
+ name="tex gen"
+ top="94"
+ width="90">
+ Mapping
+ </text>
+ <combo_box
+ height="18"
+ layout="topleft"
+ left_delta="0"
+ name="combobox texgen"
+ top_pad="4"
+ width="80">
+ <combo_box.item
+ label="Default"
+ value="Default" />
+ <combo_box.item
+ label="Planar"
+ value="Planar" />
+ </combo_box>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="100"
+ name="label shininess"
+ top="94"
+ width="70">
+ Shininess
+ </text>
+ <combo_box
+ height="18"
+ layout="topleft"
+ left_delta="0"
+ name="combobox shininess"
+ top_pad="4"
+ width="70">
+ <combo_box.item
+ label="None"
+ value="None" />
+ <combo_box.item
+ label="Low"
+ value="Low" />
+ <combo_box.item
+ label="Medium"
+ value="Medium" />
+ <combo_box.item
+ label="High"
+ value="High" />
+ </combo_box>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="180"
+ name="label bumpiness"
+ top="94"
+ width="80">
+ Bumpiness
+ </text>
+ <combo_box
+ height="18"
+ layout="topleft"
+ left_delta="0"
+ name="combobox bumpiness"
+ top_pad="4"
+ width="80">
+ <combo_box.item
+ label="None"
+ value="None" />
+ <combo_box.item
+ label="Brightness"
+ value="Brightness" />
+ <combo_box.item
+ label="Darkness"
+ value="Darkness" />
+ <combo_box.item
+ label="woodgrain"
+ value="woodgrain" />
+ <combo_box.item
+ label="bark"
+ value="bark" />
+ <combo_box.item
+ label="bricks"
+ value="bricks" />
+ <combo_box.item
+ label="checker"
+ value="checker" />
+ <combo_box.item
+ label="concrete"
+ value="concrete" />
+ <combo_box.item
+ label="crustytile"
+ value="crustytile" />
+ <combo_box.item
+ label="cutstone"
+ value="cutstone" />
+ <combo_box.item
+ label="discs"
+ value="discs" />
+ <combo_box.item
+ label="gravel"
+ value="gravel" />
+ <combo_box.item
+ label="petridish"
+ value="petridish" />
+ <combo_box.item
+ label="siding"
+ value="siding" />
+ <combo_box.item
+ label="stonetile"
+ value="stonetile" />
+ <combo_box.item
+ label="stucco"
+ value="stucco" />
+ <combo_box.item
+ label="suction"
+ value="suction" />
+ <combo_box.item
+ label="weave"
+ value="weave" />
+ </combo_box>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="10"
+ name="tex scale"
+ top="148"
+ width="160">
+ Repeats per Face
+ </text>
+ <spinner
+ follows="left|top"
+ height="16"
+ initial_value="0"
+ label="Horizontal (U)"
+ label_width="90"
+ layout="topleft"
+ left="20"
+ max_val="100"
+ name="TexScaleU"
+ top="162"
+ width="160" />
+ <check_box
+ height="16"
+ label="Flip"
+ layout="topleft"
+ left_pad="10"
+ name="checkbox flip s"
+ top_delta="1"
+ width="70" />
+ <spinner
+ follows="left|top"
+ height="16"
+ initial_value="0"
+ label="Vertical (V)"
+ label_width="90"
+ layout="topleft"
+ left="20"
+ max_val="100"
+ name="TexScaleV"
+ top="180"
+ width="160" />
+ <check_box
+ height="16"
+ label="Flip"
+ layout="topleft"
+ left_pad="10"
+ name="checkbox flip t"
+ top_delta="1"
+ width="70" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="10"
+ name="tex rotate"
+ top="218"
+ width="102">
+ Rotation (degrees)
+ </text>
+ <spinner
+ decimal_digits="2"
+ follows="left|top"
+ height="16"
+ increment="1"
+ initial_value="0"
+ layout="topleft"
+ left_delta="102"
+ max_val="9999"
+ min_val="-9999"
+ name="TexRot"
+ top_delta="0"
+ width="68" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="10"
+ name="rpt"
+ top="240"
+ width="160">
+ Repeats Per Meter
+ </text>
+ <spinner
+ decimal_digits="1"
+ follows="left|top"
+ height="16"
+ initial_value="1"
+ layout="topleft"
+ left_delta="102"
+ max_val="10"
+ min_val="0.1"
+ name="rptctrl"
+ top_delta="0"
+ width="68" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="20"
+ label="Apply"
+ label_selected="Apply"
+ layout="topleft"
+ left_pad="10"
+ name="button apply"
+ top_delta="-4"
+ width="75" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="10"
+ name="tex offset"
+ top="278"
+ width="160">
+ Offset
+ </text>
+ <spinner
+ follows="left|top"
+ height="16"
+ initial_value="0"
+ label="Horizontal (U)"
+ label_width="90"
+ layout="topleft"
+ left="20"
+ min_val="-1"
+ name="TexOffsetU"
+ top="292"
+ width="160" />
+ <spinner
+ follows="left|top"
+ height="16"
+ initial_value="0"
+ label="Vertical (V)"
+ label_width="90"
+ layout="topleft"
+ left_delta="0"
+ min_val="-1"
+ name="TexOffsetV"
+ top_pad="2"
+ width="160" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="textbox autofix"
+ top="332"
+ width="160">
+ Align media texture
+(must load first)
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="20"
+ label="Align"
+ label_selected="Align"
+ layout="topleft"
+ left="112"
+ name="button align"
+ top="340"
+ width="68" />
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="367"
+ label="Content"
+ layout="topleft"
+ left_delta="0"
+ mouse_opaque="false"
+ name="Contents"
+ top_delta="0"
+ width="270">
+ <button
+ follows="left|top"
+ height="20"
+ label="New Script"
+ label_selected="New Script..."
+ layout="topleft"
+ left="10"
+ name="button new script"
+ top="10"
+ width="100" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Permissions..."
+ layout="topleft"
+ left_pad="10"
+ name="button permissions"
+ top_delta="0"
+ width="100" />
+ <panel_inventory
+ follows="left|top"
+ height="325"
+ layout="topleft"
+ left="10"
+ name="contents_inventory"
+ top="35"
+ width="252" />
+ </panel>
+ </tab_container>
+ <panel
+ follows="left|top"
+ height="384"
+ layout="topleft"
+ left_delta="0"
+ name="land info panel"
+ top_delta="0"
+ width="272">
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="40"
+ name="label_parcel_info"
+ top="24"
+ width="150">
+ Parcel Information
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="48"
+ name="label_area_price"
+ top="48"
+ width="150">
+ Price: L$[PRICE] for [AREA] sq. m.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="label_area"
+ top_delta="0"
+ width="150">
+ Area: [AREA] sq. m.
+ </text>
+ <button
+ follows="left|top"
+ height="20"
+ label="About Land..."
+ label_selected="About Land..."
+ layout="topleft"
+ left_delta="0"
+ name="button about land"
+ top_pad="4"
+ width="112" />
+ <check_box
+ control_name="ShowParcelOwners"
+ height="16"
+ label="Show owners"
+ layout="topleft"
+ left_delta="0"
+ name="checkbox show owners"
+ tool_tip="Colour parcels according to their ownership"
+ top_pad="8"
+ width="100" />
+ <button
+ follows="left|top"
+ height="18"
+ label="?"
+ label_selected="?"
+ layout="topleft"
+ left_delta="94"
+ name="button show owners help"
+ top_delta="-2"
+ width="18" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="40"
+ name="label_parcel_modify"
+ top="152"
+ width="150">
+ Modify Parcel
+ </text>
+ <button
+ follows="left|top"
+ height="20"
+ label="Subdivide..."
+ label_selected="Subdivide..."
+ layout="topleft"
+ left="48"
+ name="button subdivide land"
+ top="172"
+ width="112" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Join..."
+ label_selected="Join..."
+ layout="topleft"
+ left_delta="0"
+ name="button join land"
+ top_pad="4"
+ width="112" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="40"
+ name="label_parcel_trans"
+ top="256"
+ width="150">
+ Land Transactions
+ </text>
+ <button
+ follows="left|top"
+ height="20"
+ label="Buy Land..."
+ label_selected="Buy Land..."
+ layout="topleft"
+ left="48"
+ name="button buy land"
+ top="276"
+ width="112" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Abandon Land..."
+ label_selected="Abandon Land..."
+ layout="topleft"
+ left_delta="0"
+ name="button abandon land"
+ top_pad="4"
+ width="112" />
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_top_objects.xml b/indra/newview/skins/default/xui/en/floater_top_objects.xml
new file mode 100644
index 0000000000..20e39beb6f
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_top_objects.xml
@@ -0,0 +1,224 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_resize="true"
+ height="350"
+ layout="topleft"
+ min_height="300"
+ min_width="450"
+ name="top_objects"
+ title="loading..."
+ width="550">
+ <floater.string
+ name="top_scripts_title">
+ Top Scripts
+ </floater.string>
+ <floater.string
+ name="top_scripts_text">
+ [COUNT] scripts taking a total of [TIME] ms
+ </floater.string>
+ <floater.string
+ name="scripts_score_label">
+ Time
+ </floater.string>
+ <floater.string
+ name="scripts_mono_time_label">
+ Mono Time
+ </floater.string>
+ <floater.string
+ name="top_colliders_title">
+ Top Colliders
+ </floater.string>
+ <floater.string
+ name="top_colliders_text">
+ Top [COUNT] objects experiencing many potential collisions
+ </floater.string>
+ <floater.string
+ name="colliders_score_label">
+ Score
+ </floater.string>
+ <floater.string
+ name="none_descriptor">
+ None found.
+ </floater.string>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="title_text"
+ top="30"
+ width="400">
+ Loading...
+ </text>
+ <scroll_list
+ draw_heading="true"
+ follows="left|top|bottom|right"
+ height="150"
+ layout="topleft"
+ left_delta="0"
+ multi_select="true"
+ name="objects_list"
+ top_delta="20"
+ width="530">
+ <scroll_list.columns
+ label="Score"
+ name="score"
+ width="55" />
+ <scroll_list.columns
+ label="Name"
+ name="name"
+ width="140" />
+ <scroll_list.columns
+ label="Owner"
+ name="owner"
+ width="105" />
+ <scroll_list.columns
+ label="Location"
+ name="location"
+ width="130" />
+ <scroll_list.columns
+ label="Time"
+ name="time"
+ width="100" />
+ <scroll_list.columns
+ label="Mono Time"
+ name="mono_time"
+ width="55" />
+ </scroll_list>
+ <text
+ type="string"
+ length="1"
+ follows="left|bottom"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="id_text"
+ top_pad="10"
+ width="100">
+ Object ID:
+ </text>
+ <line_editor
+ enabled="false"
+ follows="left|bottom|right"
+ height="20"
+ layout="topleft"
+ left_delta="70"
+ name="id_editor"
+ top_delta="-3"
+ width="350" />
+ <button
+ follows="bottom|right"
+ height="20"
+ label="Show Beacon"
+ layout="topleft"
+ left_pad="10"
+ name="show_beacon_btn"
+ top_delta="0"
+ width="100" />
+ <text
+ type="string"
+ length="1"
+ follows="left|bottom"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="obj_name_text"
+ top="237"
+ width="100">
+ Object Name:
+ </text>
+ <line_editor
+ follows="left|bottom|right"
+ height="20"
+ layout="topleft"
+ left_delta="70"
+ name="object_name_editor"
+ top_delta="-3"
+ width="350" />
+ <button
+ follows="bottom|right"
+ height="20"
+ label="Filter"
+ layout="topleft"
+ left_pad="10"
+ name="filter_object_btn"
+ top_delta="0"
+ width="100" />
+ <text
+ type="string"
+ length="1"
+ follows="left|bottom"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="owner_name_text"
+ top="264"
+ width="100">
+ Owner Name:
+ </text>
+ <line_editor
+ follows="left|bottom|right"
+ height="20"
+ layout="topleft"
+ left_delta="70"
+ name="owner_name_editor"
+ top_delta="-3"
+ width="350" />
+ <button
+ follows="bottom|right"
+ height="20"
+ label="Filter"
+ layout="topleft"
+ left_pad="10"
+ name="filter_owner_btn"
+ top_delta="0"
+ width="100" />
+ <button
+ follows="bottom|left"
+ height="20"
+ label="Return Selected"
+ layout="topleft"
+ left="10"
+ name="return_selected_btn"
+ top="295"
+ width="130" />
+ <button
+ follows="bottom|left"
+ height="20"
+ label="Return All"
+ layout="topleft"
+ left_pad="10"
+ name="return_all_btn"
+ top_delta="0"
+ width="130" />
+ <button
+ follows="bottom|left"
+ height="20"
+ label="Disable Selected"
+ layout="topleft"
+ left="10"
+ name="disable_selected_btn"
+ top="320"
+ width="130" />
+ <button
+ follows="bottom|left"
+ height="20"
+ label="Disable All"
+ layout="topleft"
+ left_pad="10"
+ name="disable_all_btn"
+ top_delta="0"
+ width="130" />
+ <button
+ bottom="315"
+ follows="bottom|right"
+ height="20"
+ label="Refresh"
+ layout="topleft"
+ name="refresh_btn"
+ right="-10"
+ width="100" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_tos.xml b/indra/newview/skins/default/xui/en/floater_tos.xml
new file mode 100644
index 0000000000..6585667c8b
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_tos.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_close="false"
+ can_minimize="false"
+ height="500"
+ layout="topleft"
+ name="modal container"
+ width="600">
+ <floater.string
+ name="real_url">
+ http://secondlife.com/app/tos/
+ </floater.string>
+ <button
+ enabled="false"
+ height="20"
+ label="Continue"
+ label_selected="Continue"
+ layout="topleft"
+ left="484"
+ name="Continue"
+ top="464"
+ width="100" />
+ <button
+ height="20"
+ label="Cancel"
+ label_selected="Cancel"
+ layout="topleft"
+ left_delta="-468"
+ name="Cancel"
+ top_delta="0"
+ width="100" />
+ <check_box
+ follows="top|right"
+ height="16"
+ label="I Agree to the Terms of Service"
+ layout="topleft"
+ left_delta="0"
+ name="agree_chk"
+ top_delta="-45"
+ width="55" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="30"
+ layout="topleft"
+ left_delta="0"
+ name="tos_heading"
+ top_delta="-399"
+ width="552">
+ Please read the following Terms of Service carefully. To continue logging in to Second Life,
+you must accept the agreement.
+ </text>
+ <text_editor
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="283"
+ layout="topleft"
+ left_delta="0"
+ max_length="65536"
+ name="tos_text"
+ top_pad="43"
+ width="568"
+ word_wrap="true">
+ TOS_TEXT
+ </text_editor>
+ <web_browser
+ follows="left|top"
+ height="340"
+ layout="topleft"
+ left_delta="0"
+ name="tos_html"
+ start_url="data:text/html,%3Chtml%3E%3Chead%3E%3C/head%3E%3Cbody text=%22000000%22%3E%3Ch2%3E Loading %3Ca%20target%3D%22_external%22%20href%3D%22http%3A//secondlife.com/app/tos/%22%3ETerms%20of%20Service%3C/a%3E...%3C/h2%3E %3C/body%3E %3C/html%3E"
+ top_delta="-27"
+ width="568" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_ui_preview.xml b/indra/newview/skins/default/xui/en/floater_ui_preview.xml
new file mode 100644
index 0000000000..10968364f3
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_ui_preview.xml
@@ -0,0 +1,381 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_resize="true"
+ height="640"
+ layout="topleft"
+ min_height="230"
+ min_width="650"
+ name="gui_preview_tool"
+ single_instance="true"
+ title="XUI Preview Tool"
+ width="750">
+ <panel
+ bottom="640"
+ follows="left|top|right|bottom"
+ layout="topleft"
+ left="0"
+ mouse_opaque="false"
+ name="main_panel"
+ right="650"
+ top="0">
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ font="SansSerif"
+ height="30"
+ layout="topleft"
+ left="10"
+ name="select_language_label"
+ top="25"
+ width="130">
+ Primary Language:
+ </text>
+ <combo_box
+ follows="top|left"
+ height="20"
+ layout="topleft"
+ left_pad="5"
+ name="language_select_combo"
+ top_delta="0"
+ width="55">
+ <combo_box.item
+ label="en"
+ value="en" />
+ </combo_box>
+ <button
+ follows="left|top"
+ height="25"
+ label="Display Floater"
+ label_selected="Display Floater"
+ layout="topleft"
+ left_pad="10"
+ name="display_floater"
+ tool_tip="Display the XUI floater defined by the selected XML file"
+ top_delta="-2"
+ width="95" />
+ <button
+ enabled="false"
+ follows="left|top"
+ height="25"
+ label="Close Floater"
+ label_selected="Close Floater"
+ layout="topleft"
+ left_pad="10"
+ name="close_displayed_floater"
+ tool_tip="Closes the currently-displayed floater, if one exists"
+ top_delta="0"
+ width="85" />
+ <button
+ follows="left|top"
+ height="25"
+ label="Edit Floater..."
+ label_selected="Edit Floater..."
+ layout="topleft"
+ left_pad="10"
+ name="edit_floater"
+ tool_tip="Edit the XUI floater defined by the selected XML file (opens external editor). Opens en version if no localized version exists."
+ top_delta="0"
+ width="95" />
+ <button
+ follows="left|top"
+ height="25"
+ label="Save"
+ label_selected="Save"
+ layout="topleft"
+ left_pad="5"
+ name="save_floater"
+ tool_tip="Save the XUI floater defined by the selected XML file"
+ top_delta="0"
+ width="85" />
+ <button
+ follows="left|top"
+ height="25"
+ label="Save All"
+ label_selected="Save All"
+ layout="topleft"
+ left_pad="10"
+ name="save_all_floaters"
+ tool_tip="Save all XUI floaters defined by the selected language"
+ top_delta="0"
+ width="85" />
+ <button
+ enabled="false"
+ follows="right|top"
+ height="25"
+ is_toggle="true"
+ label="&gt; &gt;"
+ label_selected="&lt; &lt;"
+ layout="topleft"
+ left_pad="15"
+ name="toggle_overlap_panel"
+ tool_tip="Toggle highlighting and display panel for overlapping elements; right click an element to select it for this feature. The selected element is marked by a red rectangle."
+ top_delta="0"
+ width="30" />
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ font="SansSerif"
+ height="30"
+ layout="topleft"
+ left="10"
+ name="select_language_label_2"
+ right="-50"
+ top="53"
+ width="105">
+ Secondary Language:
+ </text>
+ <combo_box
+ follows="top|left"
+ height="20"
+ layout="topleft"
+ left_delta="135"
+ name="language_select_combo_2"
+ top_delta="0"
+ width="55">
+ <combo_box.item
+ label="en"
+ value="en" />
+ </combo_box>
+ <button
+ follows="left|top"
+ height="25"
+ label="Display Floater"
+ label_selected="Display Floater"
+ layout="topleft"
+ left_pad="10"
+ name="display_floater_2"
+ tool_tip="Display the XUI floater defined by the selected XML file"
+ top_delta="-2"
+ width="95" />
+ <button
+ enabled="false"
+ follows="left|top"
+ height="25"
+ label="Close Floater"
+ label_selected="Close Floater"
+ layout="topleft"
+ left_pad="10"
+ name="close_displayed_floater_2"
+ tool_tip="Closes the currently-displayed floater, if one exists"
+ top_delta="0"
+ width="85" />
+ <scroll_list
+ bottom="525"
+ column_padding="0"
+ draw_heading="true"
+ draw_stripes="false"
+ follows="left|top|bottom|right"
+ label="Name"
+ layout="topleft"
+ left="10"
+ name="name_list"
+ right="-10"
+ search_column="1"
+ top="80">
+ <scroll_list.columns
+ label="Title"
+ name="title_column"
+ width="150" />
+ <scroll_list.columns
+ label="File"
+ name="file_column"
+ width="150" />
+ <scroll_list.columns
+ dynamicwidth="true"
+ label="Top-Level Node"
+ name="top_level_node_column" />
+ </scroll_list>
+ <panel
+ bevel_style="in"
+ bg_alpha_color="0 0 0 0"
+ bg_opaque_color="0 0 0 0.3"
+ border="true"
+ bottom_delta="65"
+ follows="left|right|bottom"
+ height="60"
+ layout="topleft"
+ left="10"
+ name="editor_panel"
+ right="-10">
+ <text
+ type="string"
+ length="1"
+ follows="left|bottom"
+ font="SansSerif"
+ height="30"
+ layout="topleft"
+ left="10"
+ left_delta="10"
+ name="editor_path_label"
+ top="10"
+ width="100">
+ Editor Path:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|bottom"
+ font="SansSerif"
+ handle_edit_keys_directly="true"
+ height="20"
+ layout="topleft"
+ left_delta="100"
+ max_length="300"
+ name="executable_path_field"
+ select_on_focus="true"
+ tool_tip="The full path to an editor (executable) to edit floater XML files (quotes not necessary)"
+ top_delta="-2"
+ width="315" />
+ <button
+ follows="left|bottom"
+ height="25"
+ label="Browse..."
+ label_selected="Browse..."
+ layout="topleft"
+ left_pad="5"
+ name="browse_for_executable"
+ tool_tip="Browse for an editor (executable) to edit floater XML files"
+ top_delta="-2"
+ width="75" />
+ <text
+ type="string"
+ length="1"
+ follows="left|bottom"
+ font="SansSerif"
+ height="30"
+ layout="topleft"
+ left="10"
+ left_delta="-420"
+ name="executable_args_label"
+ top="36"
+ width="100">
+ Editor Arguments:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|bottom"
+ font="SansSerif"
+ handle_edit_keys_directly="true"
+ height="20"
+ layout="topleft"
+ left_delta="100"
+ max_length="300"
+ name="executable_args_field"
+ select_on_focus="true"
+ tool_tip="Command-line arguments to the editor; use &apos;%FILE%&apos; to refer to the target file; &apos;YourProgram.exe FileName.xml&apos; will be run if this field is empty"
+ top_delta="-2"
+ width="315" />
+ </panel>
+ <panel
+ bevel_style="in"
+ bg_alpha_color="0 0 0 0"
+ bg_opaque_color="0 0 0 0.3"
+ border="true"
+ bottom_delta="40"
+ follows="left|right|bottom"
+ height="35"
+ layout="topleft"
+ left="10"
+ name="vlt_panel"
+ right="-10">
+ <text
+ type="string"
+ length="1"
+ follows="left|bottom"
+ font="SansSerif"
+ height="30"
+ layout="topleft"
+ left="10"
+ left_delta="10"
+ name="diff_file_label"
+ top="10"
+ width="200">
+ Delta File:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|bottom"
+ font="SansSerif"
+ handle_edit_keys_directly="true"
+ height="20"
+ layout="topleft"
+ left_delta="65"
+ max_length="300"
+ name="vlt_diff_path_field"
+ select_on_focus="true"
+ tool_tip="The full path to an XML D0 or D1 localization difference file generated by the Viewer Localization Toolkit"
+ top_delta="-2"
+ width="235" />
+ <button
+ follows="left|bottom"
+ height="25"
+ label="Browse..."
+ label_selected="Browse..."
+ layout="topleft"
+ left_pad="5"
+ name="browse_for_vlt_diffs"
+ tool_tip="Browse for a VLT-generated D0 or D1 difference file to highlight changed files and elements"
+ top_delta="-2"
+ width="75" />
+ <button
+ follows="left|bottom"
+ height="25"
+ is_toggle="true"
+ label="Highlight Diffs"
+ label_selected="Unhighlight Diffs"
+ layout="topleft"
+ left_pad="5"
+ name="toggle_vlt_diff_highlight"
+ tool_tip="Toggle highlighting of files and elements containing changed localization data"
+ top_delta="0"
+ width="110" />
+ </panel>
+ </panel>
+ <scroll_container
+ follows="top|right|bottom"
+ height="637"
+ layout="topleft"
+ left_delta="550"
+ name="overlap_scroll"
+ reserve_scroll_corner="true"
+ top_delta="2"
+ width="300">
+ <panel
+ background_opaque="true"
+ background_visible="true"
+ bevel_style="in"
+ bg_alpha_color="0 0 0 1"
+ bg_opaque_color="1 1 1 1"
+ border="true"
+ follows="top|right|bottom"
+ height="637"
+ label="Overlap Panel"
+ layout="topleft"
+ left_delta="0"
+ min_width="300"
+ name="overlap_panel"
+ tool_tip="This panel displays the currently-selected element and all of the elements that overlap it, separated by horizontal lines"
+ top="-607"
+ visible="false"
+ width="300" />
+ <text
+ type="string"
+ length="1"
+ follows="top|right"
+ font="SansSerif"
+ height="30"
+ layout="topleft"
+ left="10"
+ left_delta="10"
+ name="overlap_panel_label"
+ right="-50"
+ top="0"
+ width="150">
+ Overlapping Elements:
+ </text>
+ </scroll_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_url_entry.xml b/indra/newview/skins/default/xui/en/floater_url_entry.xml
new file mode 100644
index 0000000000..82a9750cda
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_url_entry.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_minimize="false"
+ height="87"
+ layout="topleft"
+ name="url_entry"
+ width="500">
+ <text
+ type="string"
+ length="1"
+ bottom="20"
+ follows="top|left"
+ height="15"
+ layout="topleft"
+ left="20"
+ name="media_label"
+ top="20">
+ Media URL:
+ </text>
+ <combo_box
+ allow_text_entry="true"
+ follows="left|top|right"
+ height="19"
+ layout="topleft"
+ left_delta="70"
+ max_chars="255"
+ name="media_entry"
+ top_delta="-4"
+ width="370" />
+ <button
+ follows="top|left"
+ height="20"
+ label="OK"
+ layout="topleft"
+ left="20"
+ name="ok_btn"
+ top="50"
+ width="64" />
+ <button
+ follows="top|left"
+ height="20"
+ label="Cancel"
+ layout="topleft"
+ left_pad="28"
+ name="cancel_btn"
+ top_delta="0"
+ width="64" />
+ <button
+ follows="top|right"
+ height="20"
+ label="Clear"
+ layout="topleft"
+ left_pad="220"
+ name="clear_btn"
+ top_delta="0"
+ width="64" />
+ <text
+ type="string"
+ length="1"
+ bottom_delta="-2"
+ follows="bottom|left"
+ height="15"
+ layout="topleft"
+ left="220"
+ name="loading_label"
+ visible="false">
+ Loading...
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_water.xml b/indra/newview/skins/default/xui/en/floater_water.xml
new file mode 100644
index 0000000000..07ebf734ea
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_water.xml
@@ -0,0 +1,656 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ height="240"
+ layout="topleft"
+ name="Water Floater"
+ save_rect="true"
+ title="Advanced Water Editor"
+ width="700">
+ <floater.string
+ name="WLDefaultWaterNames">
+ Default:Glassy:Pond:Murky:Second Plague:SNAKE!!!:Valdez
+ </floater.string>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="KeyFramePresetsText"
+ top="34"
+ width="110">
+ Water Presets:
+ </text>
+ <combo_box
+ height="18"
+ layout="topleft"
+ left_delta="110"
+ name="WaterPresetsCombo"
+ top_delta="-2"
+ width="150" />
+ <button
+ height="20"
+ label="New"
+ label_selected="New"
+ layout="topleft"
+ left_pad="20"
+ name="WaterNewPreset"
+ top_delta="1"
+ width="70" />
+ <button
+ height="20"
+ label="Save"
+ label_selected="Save"
+ layout="topleft"
+ left_pad="10"
+ name="WaterSavePreset"
+ top_delta="0"
+ width="70" />
+ <button
+ height="20"
+ label="Delete"
+ label_selected="Delete"
+ layout="topleft"
+ left_pad="10"
+ name="WaterDeletePreset"
+ top_delta="0"
+ width="70" />
+ <tab_container
+ follows="left|top"
+ height="180"
+ layout="topleft"
+ left="0"
+ name="Water Tabs"
+ tab_position="top"
+ top="60"
+ width="700">
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="180"
+ label="Settings"
+ layout="topleft"
+ left="1"
+ mouse_opaque="false"
+ name="Settings"
+ top="60"
+ width="698">
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="BHText"
+ top="4"
+ width="355">
+ Water Fog Color
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="150"
+ name="WaterFogColorHelp"
+ top_delta="-2"
+ width="18" />
+ <color_swatch
+ border_color="0.45098 0.517647 0.607843 1"
+ can_apply_immediately="true"
+ color="0.5 0.5 0.5 1"
+ follows="left|top"
+ height="50"
+ layout="topleft"
+ left="40"
+ name="WaterFogColor"
+ tool_tip="Click to open Color Picker"
+ top="30"
+ width="40" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="WaterFogDensText"
+ top="74"
+ width="355">
+ Fog Density Exponent
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="150"
+ name="WaterFogDensityHelp"
+ top_delta="-2"
+ width="18" />
+ <slider
+ control_name="WaterFogDensity"
+ decimal_digits="1"
+ follows="left"
+ height="10"
+ initial_value="16"
+ layout="topleft"
+ left="24"
+ max_val="10"
+ name="WaterFogDensity"
+ top="110"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="-14"
+ name="WaterUnderWaterFogModText"
+ top_delta="4"
+ width="355">
+ Underwater Fog Modifier
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="150"
+ name="WaterUnderWaterFogModHelp"
+ top_delta="-2"
+ width="18" />
+ <slider
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="16"
+ layout="topleft"
+ left="24"
+ max_val="2"
+ name="WaterUnderWaterFogMod"
+ top="150"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="245"
+ name="BDensText"
+ top="4"
+ width="355">
+ Reflection Wavelet Scale
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="150"
+ name="WaterNormalScaleHelp"
+ top_delta="-2"
+ width="18" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left="245"
+ name="BHText2"
+ top="21"
+ width="10">
+ 1
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="BHText3"
+ top_delta="11"
+ width="10">
+ 2
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="BHText4"
+ top_delta="11"
+ width="10">
+ 3
+ </text>
+ <slider
+ control_name="WaterNormalScaleX"
+ decimal_digits="1"
+ follows="left"
+ height="10"
+ initial_value="0.7"
+ layout="topleft"
+ left_pad="4"
+ max_val="10"
+ name="WaterNormalScaleX"
+ top_delta="-3"
+ width="200" />
+ <slider
+ control_name="WaterNormalScaleY"
+ decimal_digits="1"
+ follows="left"
+ height="10"
+ initial_value="0.7"
+ layout="topleft"
+ left_delta="0"
+ max_val="10"
+ name="WaterNormalScaleY"
+ top_pad="1"
+ width="200" />
+ <slider
+ control_name="WaterNormalScaleZ"
+ decimal_digits="1"
+ follows="left"
+ height="10"
+ initial_value="0.7"
+ layout="topleft"
+ left_delta="0"
+ max_val="10"
+ name="WaterNormalScaleZ"
+ top_pad="1"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="-14"
+ name="HDText"
+ top_delta="2"
+ width="355">
+ Fresnel Scale
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="150"
+ name="WaterFresnelScaleHelp"
+ top_delta="-2"
+ width="18" />
+ <slider
+ control_name="WaterFresnelScale"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.7"
+ layout="topleft"
+ left="259"
+ name="WaterFresnelScale"
+ top="100"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="-14"
+ name="FresnelOffsetText"
+ top_delta="-1"
+ width="355">
+ Fresnel Offset
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="150"
+ name="WaterFresnelOffsetHelp"
+ top_delta="-2"
+ width="18" />
+ <slider
+ control_name="WaterFresnelOffset"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.7"
+ layout="topleft"
+ left="259"
+ name="WaterFresnelOffset"
+ top="135"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="480"
+ name="DensMultText"
+ top="4"
+ width="355">
+ Refract Scale Above
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="150"
+ name="WaterScaleAboveHelp"
+ top_delta="-2"
+ width="18" />
+ <slider
+ control_name="WaterScaleAbove"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.1"
+ layout="topleft"
+ left="494"
+ name="WaterScaleAbove"
+ top="40"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="-14"
+ name="WaterScaleBelowText"
+ top_delta="-3"
+ width="355">
+ Refract Scale Below
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="150"
+ name="WaterScaleBelowHelp"
+ top_delta="-2"
+ width="18" />
+ <slider
+ control_name="WaterScaleBelow"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0"
+ layout="topleft"
+ left="494"
+ name="WaterScaleBelow"
+ top="73"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="-14"
+ name="MaxAltText"
+ top_delta="-2"
+ width="355">
+ Blur Multiplier
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="150"
+ name="WaterBlurMultiplierHelp"
+ top_delta="-2"
+ width="18" />
+ <slider
+ control_name="WaterBlurMult"
+ follows="left"
+ height="10"
+ increment="0.001"
+ initial_value="0"
+ layout="topleft"
+ left="494"
+ max_val="0.16"
+ name="WaterBlurMult"
+ top="107"
+ width="200" />
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="180"
+ label="Image"
+ layout="topleft"
+ left_delta="0"
+ mouse_opaque="false"
+ name="Waves"
+ top_delta="44"
+ width="698">
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="BHText"
+ top="4"
+ width="355">
+ Big Wave Direction
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="145"
+ name="WaterWave1Help"
+ top_delta="-2"
+ width="18" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="WaterWave1DirXText"
+ top="21"
+ width="10">
+ X
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="WaterWave1DirYText"
+ top_delta="11"
+ width="10">
+ Y
+ </text>
+ <slider
+ control_name="WaterWave1DirX"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.7"
+ layout="topleft"
+ left="24"
+ max_val="4"
+ min_val="-4"
+ name="WaterWave1DirX"
+ top="40"
+ width="200" />
+ <slider
+ control_name="WaterWave1DirY"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.7"
+ layout="topleft"
+ left_delta="0"
+ max_val="4"
+ min_val="-4"
+ name="WaterWave1DirY"
+ top_pad="1"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="-14"
+ name="BHText2"
+ top_delta="3"
+ width="355">
+ Little Wave Direction
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="145"
+ name="WaterWave2Help"
+ top_delta="-2"
+ width="18" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="WaterWave2DirXText"
+ top="71"
+ width="10">
+ X
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="WaterWave2DirYText"
+ top_delta="11"
+ width="10">
+ Y
+ </text>
+ <slider
+ control_name="WaterWave2DirX"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.7"
+ layout="topleft"
+ left="24"
+ max_val="4"
+ min_val="-4"
+ name="WaterWave2DirX"
+ top="90"
+ width="200" />
+ <slider
+ control_name="WaterWave2DirY"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.7"
+ layout="topleft"
+ left_delta="0"
+ max_val="4"
+ min_val="-4"
+ name="WaterWave2DirY"
+ top_pad="1"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="240"
+ name="BHText3"
+ top="4"
+ width="355">
+ Normal Map
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="125"
+ name="WaterNormalMapHelp"
+ top_delta="-2"
+ width="18" />
+ <texture_picker
+ height="143"
+ layout="topleft"
+ left="250"
+ name="WaterNormalMap"
+ top="22"
+ width="128" />
+ </panel>
+ </tab_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_wearable_save_as.xml b/indra/newview/skins/default/xui/en/floater_wearable_save_as.xml
new file mode 100644
index 0000000000..ee67989d33
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_wearable_save_as.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ border="true"
+ can_close="false"
+ can_minimize="false"
+ height="100"
+ layout="topleft"
+ name="modal container"
+ width="240">
+ <button
+ height="20"
+ label="Save"
+ label_selected="Save"
+ layout="topleft"
+ left="20"
+ name="Save"
+ top="70"
+ width="82" />
+ <button
+ height="20"
+ label="Cancel"
+ label_selected="Cancel"
+ layout="topleft"
+ left_pad="36"
+ name="Cancel"
+ top_delta="0"
+ width="82" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="20"
+ name="Save item as:"
+ top="10"
+ width="200">
+ Save item as:
+ </text>
+ <line_editor
+ type="string"
+ length="1"
+ border_style="line"
+ border_thickness="1"
+ follows="left|top"
+ font="SansSerif"
+ handle_edit_keys_directly="true"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ max_length="63"
+ name="name ed"
+ top_pad="4"
+ width="200">
+ New [DESC]
+ </line_editor>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_windlight_options.xml b/indra/newview/skins/default/xui/en/floater_windlight_options.xml
new file mode 100644
index 0000000000..5257cc687e
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_windlight_options.xml
@@ -0,0 +1,1487 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ height="220"
+ layout="topleft"
+ name="WindLight floater"
+ save_rect="true"
+ title="Advanced Sky Editor"
+ width="700">
+ <floater.string
+ name="WLDefaultSkyNames">
+ A-12AM:A-12PM:A-3AM:A-3PM:A-4.30PM:A-6AM:A-6PM:A-9AM:A-9PM:Barcelona:Blizzard:Blue Midday:Coastal Afternoon:Coastal Sunset:Default:Desert Sunset:Fine Day:Fluffy Big Clouds:Foggy:Funky Funky:Funky Funky Funky:Gelatto:Ghost:Incongruent Truths:Midday 1:Midday 2:Midday 3:Midday 4:Night:Pirate:Purple:Sailor&apos;s Delight:Sheer Sensuality
+ </floater.string>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="KeyFramePresetsText"
+ top="34"
+ width="110">
+ Sky Presets:
+ </text>
+ <combo_box
+ height="18"
+ layout="topleft"
+ left_delta="110"
+ name="WLPresetsCombo"
+ top_delta="-2"
+ width="150" />
+ <button
+ height="20"
+ label="New"
+ label_selected="New"
+ layout="topleft"
+ left_pad="20"
+ name="WLNewPreset"
+ top_delta="1"
+ width="70" />
+ <button
+ height="20"
+ label="Save"
+ label_selected="Save"
+ layout="topleft"
+ left_pad="10"
+ name="WLSavePreset"
+ top_delta="0"
+ width="70" />
+ <button
+ height="20"
+ label="Delete"
+ label_selected="Delete"
+ layout="topleft"
+ left_pad="10"
+ name="WLDeletePreset"
+ top_delta="0"
+ width="70" />
+ <button
+ height="20"
+ label="Day Cycle Editor"
+ label_selected="Day Cycle Editor"
+ layout="topleft"
+ left_pad="50"
+ name="WLDayCycleMenuButton"
+ top_delta="0"
+ width="120" />
+ <tab_container
+ follows="left|top"
+ height="160"
+ layout="topleft"
+ left="0"
+ name="WindLight Tabs"
+ tab_position="top"
+ top="60"
+ width="700">
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="160"
+ label="Atmosphere"
+ layout="topleft"
+ left="1"
+ mouse_opaque="false"
+ name="Atmosphere"
+ top="60"
+ width="698">
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="BHText"
+ top="4"
+ width="355">
+ Blue Horizon
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="150"
+ name="WLBlueHorizonHelp"
+ top_delta="-2"
+ width="18" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="BHText2"
+ top="21"
+ width="10">
+ R
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="BHText3"
+ top_delta="11"
+ width="10">
+ G
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="BHText4"
+ top_delta="11"
+ width="10">
+ B
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="BHText5"
+ top_delta="11"
+ width="10">
+ I
+ </text>
+ <slider
+ control_name="WLBlueHorizonR"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.7"
+ layout="topleft"
+ left="24"
+ name="WLBlueHorizonR"
+ top="40"
+ width="200" />
+ <slider
+ control_name="WLBlueHorizonG"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.7"
+ layout="topleft"
+ left_delta="0"
+ name="WLBlueHorizonG"
+ top_pad="1"
+ width="200" />
+ <slider
+ control_name="WLBlueHorizonB"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.7"
+ layout="topleft"
+ left_delta="0"
+ name="WLBlueHorizonB"
+ top_pad="1"
+ width="200" />
+ <slider
+ control_name="WLBlueHorizonI"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="1.0"
+ layout="topleft"
+ left_delta="0"
+ name="WLBlueHorizonI"
+ top_pad="1"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="-14"
+ name="BDensText"
+ top_delta="-2"
+ width="355">
+ Haze Horizon
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="150"
+ name="WLHazeHorizonHelp"
+ top_delta="-2"
+ width="18" />
+ <slider
+ control_name="WLHazeHorizon"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.25"
+ layout="topleft"
+ left="24"
+ name="WLHazeHorizon"
+ top="107"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="245"
+ name="BDensText2"
+ top="4"
+ width="355">
+ Blue Density
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="150"
+ name="WLBlueDensityHelp"
+ top_delta="-2"
+ width="18" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left="245"
+ name="BHText6"
+ top="21"
+ width="10">
+ R
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="BHText7"
+ top_delta="11"
+ width="10">
+ G
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="BHText8"
+ top_delta="11"
+ width="10">
+ B
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="BHText9"
+ top_delta="11"
+ width="10">
+ I
+ </text>
+ <slider
+ control_name="WLBlueDensityR"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.7"
+ layout="topleft"
+ left="259"
+ name="WLBlueDensityR"
+ top="40"
+ width="200" />
+ <slider
+ control_name="WLBlueDensityG"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.7"
+ layout="topleft"
+ left_delta="0"
+ name="WLBlueDensityG"
+ top_pad="1"
+ width="200" />
+ <slider
+ control_name="WLBlueDensityB"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.7"
+ layout="topleft"
+ left_delta="0"
+ name="WLBlueDensityB"
+ top_pad="1"
+ width="200" />
+ <slider
+ control_name="WLBlueDensityI"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="1"
+ layout="topleft"
+ left_delta="0"
+ name="WLBlueDensityI"
+ top_pad="1"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="-14"
+ name="HDText"
+ top_delta="-2"
+ width="355">
+ Haze Density
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="150"
+ name="WLHazeDensityHelp"
+ top_delta="-2"
+ width="18" />
+ <slider
+ control_name="WLHazeDensity"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.7"
+ layout="topleft"
+ left="259"
+ max_val="4"
+ name="WLHazeDensity"
+ top="107"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="480"
+ name="DensMultText"
+ top="4"
+ width="355">
+ Density Multiplier
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="150"
+ name="WLDensityMultHelp"
+ top_delta="-2"
+ width="18" />
+ <slider
+ control_name="WLDensityMult"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.1"
+ layout="topleft"
+ left="494"
+ max_val="0.9"
+ name="WLDensityMult"
+ top="40"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="-14"
+ name="WLDistanceMultText"
+ top_delta="-3"
+ width="355">
+ Distance Multiplier
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="150"
+ name="WLDistanceMultHelp"
+ top_delta="-2"
+ width="18" />
+ <slider
+ control_name="WLDistancMult"
+ decimal_digits="1"
+ follows="left"
+ height="10"
+ initial_value="1.0"
+ layout="topleft"
+ left="494"
+ max_val="100"
+ name="WLDistanceMult"
+ top="73"
+ width="207" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="-14"
+ name="MaxAltText"
+ top_delta="-2"
+ width="355">
+ Max Altitude
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="150"
+ name="WLMaxAltitudeHelp"
+ top_delta="-2"
+ width="18" />
+ <slider
+ control_name="WLMaxAltitude"
+ decimal_digits="0"
+ follows="left"
+ height="10"
+ increment="1"
+ initial_value="500"
+ layout="topleft"
+ left="494"
+ max_val="4000"
+ name="WLMaxAltitude"
+ top="107"
+ width="205" />
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="160"
+ label="Lighting"
+ layout="topleft"
+ left_delta="0"
+ name="Lighting"
+ top_delta="4"
+ width="698">
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="SLCText"
+ top="4"
+ width="355">
+ Sun/Moon Color
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="150"
+ name="WLSunlightColorHelp"
+ top_delta="-2"
+ width="18" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="BHText"
+ top="21"
+ width="10">
+ R
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="BHText2"
+ top_delta="11"
+ width="10">
+ G
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="BHText3"
+ top_delta="11"
+ width="10">
+ B
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="BHText4"
+ top_delta="11"
+ width="10">
+ I
+ </text>
+ <slider
+ control_name="WLSunlightR"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.7"
+ layout="topleft"
+ left="24"
+ name="WLSunlightR"
+ top="40"
+ width="200" />
+ <slider
+ control_name="WLSunlightG"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.7"
+ layout="topleft"
+ left_delta="0"
+ name="WLSunlightG"
+ top_pad="1"
+ width="200" />
+ <slider
+ control_name="WLSunlightB"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.7"
+ layout="topleft"
+ left_delta="0"
+ name="WLSunlightB"
+ top_pad="1"
+ width="200" />
+ <slider
+ control_name="WLSunlightI"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="1.0"
+ layout="topleft"
+ left_delta="0"
+ name="WLSunlightI"
+ top_pad="1"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="-14"
+ name="TODText"
+ top_delta="-2"
+ width="355">
+ Sun/Moon Position
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="150"
+ name="WLTimeOfDayHelp"
+ top_delta="-2"
+ width="18" />
+ <icon
+ height="20"
+ image_name="icon_diurnal.tga"
+ layout="topleft"
+ left="30"
+ name="SkyDayCycle"
+ top="97"
+ width="148" />
+ <slider
+ control_name="WLSunAngle"
+ follows="left"
+ height="10"
+ increment="0.001"
+ initial_value="0.7"
+ layout="topleft"
+ left="24"
+ name="WLSunAngle"
+ top="137"
+ width="204" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="245"
+ name="WLAmbientText"
+ top="4"
+ width="355">
+ Ambient
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="150"
+ name="WLAmbientHelp"
+ top_delta="-2"
+ width="18" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left="245"
+ name="BHText5"
+ top="21"
+ width="10">
+ R
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="BHText6"
+ top_delta="11"
+ width="10">
+ G
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="BHText7"
+ top_delta="11"
+ width="10">
+ B
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="BHText8"
+ top_delta="11"
+ width="10">
+ I
+ </text>
+ <slider
+ control_name="WLAmbientR"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.7"
+ layout="topleft"
+ left="259"
+ name="WLAmbientR"
+ top="40"
+ width="200" />
+ <slider
+ control_name="WLAmbientG"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.7"
+ layout="topleft"
+ left_delta="0"
+ name="WLAmbientG"
+ top_pad="1"
+ width="200" />
+ <slider
+ control_name="WLAmbientB"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.7"
+ layout="topleft"
+ left_delta="0"
+ name="WLAmbientB"
+ top_pad="1"
+ width="200" />
+ <slider
+ control_name="WLAmbientI"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="1"
+ layout="topleft"
+ left_delta="0"
+ name="WLAmbientI"
+ top_pad="1"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="-14"
+ name="WLEastAngleText"
+ top_delta="-2"
+ width="355">
+ East Angle
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="150"
+ name="WLEastAngleHelp"
+ top_delta="-2"
+ width="18" />
+ <slider
+ control_name="WLEastAngle"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.0"
+ layout="topleft"
+ left="259"
+ name="WLEastAngle"
+ top="107"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="480"
+ name="SunGlowText"
+ top="4"
+ width="355">
+ Sun Glow
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="150"
+ name="WLSunGlowHelp"
+ top_delta="-2"
+ width="18" />
+ <slider
+ control_name="WLGlowB"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.1"
+ label="Focus "
+ layout="topleft"
+ left="494"
+ max_val="0.5"
+ name="WLGlowB"
+ top="40"
+ width="200" />
+ <slider
+ control_name="WLGlowR"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.25"
+ label="Size "
+ layout="topleft"
+ left_delta="0"
+ max_val="1.99"
+ min_val="1"
+ name="WLGlowR"
+ top_pad="1"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="-14"
+ name="SceneGammaText"
+ top_delta="0"
+ width="200">
+ Scene Gamma
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="150"
+ name="WLSceneGammaHelp"
+ top_delta="-2"
+ width="18" />
+ <slider
+ control_name="WLGamma"
+ decimal_digits="2"
+ follows="bottom"
+ height="10"
+ increment="0.01"
+ initial_value="2.0"
+ layout="topleft"
+ left="494"
+ max_val="10"
+ name="WLGamma"
+ top="87"
+ width="207" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="-14"
+ name="WLStarText"
+ top_delta="-1"
+ width="355">
+ Star Brightness
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="150"
+ name="WLStarBrightnessHelp"
+ top_delta="-2"
+ width="18" />
+ <slider
+ control_name="WLStarAlpha"
+ decimal_digits="2"
+ follows="bottom"
+ height="10"
+ increment="0.01"
+ initial_value="0"
+ layout="topleft"
+ left="494"
+ max_val="2"
+ name="WLStarAlpha"
+ top="122"
+ width="200" />
+ </panel>
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="160"
+ label="Clouds"
+ layout="topleft"
+ left_delta="0"
+ mouse_opaque="false"
+ name="Clouds"
+ top_delta="4"
+ width="698">
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="WLCloudColorText"
+ top="4"
+ width="355">
+ Cloud Color
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="150"
+ name="WLCloudColorHelp"
+ top_delta="-2"
+ width="18" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="BHText"
+ top="21"
+ width="10">
+ R
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="BHText2"
+ top_delta="11"
+ width="10">
+ G
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="BHText3"
+ top_delta="11"
+ width="10">
+ B
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="BHText4"
+ top_delta="11"
+ width="10">
+ I
+ </text>
+ <slider
+ control_name="WLCloudColorR"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.7"
+ layout="topleft"
+ left="24"
+ name="WLCloudColorR"
+ top="40"
+ width="200" />
+ <slider
+ control_name="WLCloudColorG"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.7"
+ layout="topleft"
+ left_delta="0"
+ name="WLCloudColorG"
+ top_pad="1"
+ width="200" />
+ <slider
+ control_name="WLCloudColorB"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.7"
+ layout="topleft"
+ left_delta="0"
+ name="WLCloudColorB"
+ top_pad="1"
+ width="200" />
+ <slider
+ control_name="WLCloudColorI"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="1.0"
+ layout="topleft"
+ left_delta="0"
+ name="WLCloudColorI"
+ top_pad="1"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="-14"
+ name="WLCloudColorText2"
+ top_delta="-2"
+ width="355">
+ Cloud XY/Density
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="150"
+ name="WLCloudDensityHelp"
+ top_delta="-2"
+ width="18" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="BHText5"
+ top="87"
+ width="10">
+ X
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="BHText6"
+ top_delta="11"
+ width="10">
+ Y
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="BHText7"
+ top_delta="11"
+ width="10">
+ D
+ </text>
+ <slider
+ control_name="WLCloudX"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.5"
+ layout="topleft"
+ left_pad="4"
+ name="WLCloudX"
+ top_delta="-2"
+ width="200" />
+ <slider
+ control_name="WLCloudY"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.5"
+ layout="topleft"
+ left_delta="0"
+ name="WLCloudY"
+ top_pad="1"
+ width="200" />
+ <slider
+ control_name="WLCloudDensity"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="1.0"
+ layout="topleft"
+ left_delta="0"
+ name="WLCloudDensity"
+ top_pad="1"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="245"
+ name="WLCloudCoverageText"
+ top="4"
+ width="355">
+ Cloud Coverage
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="150"
+ name="WLCloudCoverageHelp"
+ top_delta="-2"
+ width="18" />
+ <slider
+ control_name="WLCloudCoverage"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.5"
+ layout="topleft"
+ left="259"
+ name="WLCloudCoverage"
+ top="40"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="-14"
+ name="WLCloudScaleText"
+ top_delta="-1"
+ width="355">
+ Cloud Scale
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="150"
+ name="WLCloudScaleHelp"
+ top_delta="-2"
+ width="18" />
+ <slider
+ control_name="WLCloudScale"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="1.0"
+ layout="topleft"
+ left="259"
+ min_val="0.01"
+ name="WLCloudScale"
+ top="75"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="-14"
+ name="WLCloudDetailText"
+ top_delta="-4"
+ width="355">
+ Cloud Detail (XY/Density)
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="150"
+ name="WLCloudDetailHelp"
+ top_delta="-2"
+ width="18" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left="245"
+ name="BHText8"
+ top="87"
+ width="10">
+ X
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="BHText9"
+ top_delta="11"
+ width="10">
+ Y
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ halign="center"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="BHText10"
+ top_delta="11"
+ width="10">
+ D
+ </text>
+ <slider
+ control_name="WLCloudDetailX"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.5"
+ layout="topleft"
+ left_pad="4"
+ name="WLCloudDetailX"
+ top_delta="-2"
+ width="200" />
+ <slider
+ control_name="WLCloudDetailY"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.5"
+ layout="topleft"
+ left_delta="0"
+ name="WLCloudDetailY"
+ top_pad="1"
+ width="200" />
+ <slider
+ control_name="WLCloudDetailDensity"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="1.0"
+ layout="topleft"
+ left_delta="0"
+ name="WLCloudDetailDensity"
+ top_pad="1"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="480"
+ name="WLCloudScrollXText"
+ top="4"
+ width="355">
+ Cloud Scroll X
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="125"
+ name="WLCloudScrollXHelp"
+ top_delta="-2"
+ width="18" />
+ <check_box
+ control_name="WLCloudLockX"
+ follows="left"
+ height="16"
+ label="Lock"
+ layout="topleft"
+ left="625"
+ name="WLCloudLockX"
+ width="200" />
+ <slider
+ control_name="WLCloudScrollX"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.5"
+ layout="topleft"
+ left="494"
+ max_val="10"
+ min_val="-10"
+ name="WLCloudScrollX"
+ top="45"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="-14"
+ name="WLCloudScrollYText"
+ top_delta="-1"
+ width="355">
+ Cloud Scroll Y
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="125"
+ name="WLCloudScrollYHelp"
+ top_delta="-2"
+ width="18" />
+ <check_box
+ control_name="WLCloudLockY"
+ follows="left"
+ height="16"
+ label="Lock"
+ layout="topleft"
+ left="625"
+ name="WLCloudLockY"
+ width="200" />
+ <slider
+ control_name="WLCloudScrollY"
+ decimal_digits="2"
+ follows="left"
+ height="10"
+ increment="0.01"
+ initial_value="0.5"
+ layout="topleft"
+ left="494"
+ max_val="10"
+ min_val="-10"
+ name="WLCloudScrollY"
+ top="85"
+ width="200" />
+ <check_box
+ control_name="DrawClassicClouds"
+ follows="left"
+ height="16"
+ label="Draw Classic Clouds"
+ layout="topleft"
+ left="480"
+ name="DrawClassicClouds"
+ top="104"
+ width="200" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left="608"
+ name="WLClassicCloudsHelp"
+ top="84"
+ width="18" />
+ </panel>
+ </tab_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_world_map.xml b/indra/newview/skins/default/xui/en/floater_world_map.xml
new file mode 100644
index 0000000000..43f209546a
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_world_map.xml
@@ -0,0 +1,540 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ can_resize="true"
+ center_horiz="true"
+ center_vert="true"
+ height="600"
+ layout="topleft"
+ min_height="520"
+ min_width="520"
+ name="worldmap"
+ save_rect="true"
+ save_visibility="true"
+ single_instance="true"
+ title="World Map"
+ width="800">
+ <tab_container
+ follows="left|top|right|bottom"
+ height="565"
+ layout="topleft"
+ left="15"
+ name="maptab"
+ tab_position="top"
+ top="25"
+ width="542">
+ <panel
+ filename="panel_world_map.xml"
+ follows="left|top|right|bottom"
+ height="550"
+ label="Objects"
+ layout="topleft"
+ left="1"
+ name="objects_mapview"
+ top="19"
+ width="540" />
+ <panel
+ filename="panel_world_map.xml"
+ follows="left|top|right|bottom"
+ height="550"
+ label="Terrain"
+ layout="topleft"
+ left_delta="0"
+ name="terrain_mapview"
+ top_delta="3"
+ width="540" />
+ </tab_container>
+ <icon
+ follows="top|right"
+ height="16"
+ image_name="map_avatar_16.tga"
+ layout="topleft"
+ left="-230"
+ mouse_opaque="true"
+ name="self"
+ top="34"
+ width="16" />
+ <text
+ type="string"
+ length="1"
+ follows="top|right"
+ height="16"
+ layout="topleft"
+ left_pad="4"
+ name="you_label"
+ top_delta="0"
+ width="145">
+ You
+ </text>
+ <icon
+ follows="top|right"
+ height="16"
+ image_name="map_home.tga"
+ layout="topleft"
+ left_delta="50"
+ mouse_opaque="true"
+ name="home"
+ top_delta="0"
+ width="16" />
+ <text
+ type="string"
+ length="1"
+ follows="top|right"
+ height="16"
+ layout="topleft"
+ left_pad="4"
+ name="home_label"
+ top_delta="0"
+ width="145">
+ Home
+ </text>
+ <icon
+ color="0.5 0.25 1 1"
+ follows="top|right"
+ height="16"
+ image_name="legend.tga"
+ layout="topleft"
+ left="-230"
+ mouse_opaque="true"
+ name="square2"
+ top="54"
+ width="16" />
+ <text
+ type="string"
+ length="1"
+ follows="top|right"
+ height="16"
+ layout="topleft"
+ left_pad="4"
+ name="auction_label"
+ top_delta="0"
+ width="145">
+ Auction
+ </text>
+ <icon
+ color="1 1 0.25 1"
+ follows="top|right"
+ height="16"
+ image_name="legend.tga"
+ layout="topleft"
+ left_delta="50"
+ mouse_opaque="true"
+ name="square"
+ top_delta="0"
+ width="16" />
+ <text
+ type="string"
+ length="1"
+ follows="top|right"
+ height="16"
+ layout="topleft"
+ left_pad="4"
+ name="land_for_sale_label"
+ top_delta="0"
+ width="145">
+ Land For Sale
+ </text>
+ <button
+ follows="top|right"
+ font="SansSerifSmall"
+ height="16"
+ label="Go Home"
+ label_selected="Go Home"
+ layout="topleft"
+ left="-90"
+ name="Go Home"
+ tool_tip="Teleport to your home"
+ top="34"
+ width="88" />
+ <icon
+ color="0 1 0 1"
+ follows="top|right"
+ height="8"
+ image_name="map_avatar_8.tga"
+ layout="topleft"
+ left="-226"
+ mouse_opaque="true"
+ name="person"
+ top="84"
+ width="8" />
+ <check_box
+ control_name="MapShowPeople"
+ follows="top|right"
+ height="16"
+ label="Resident"
+ layout="topleft"
+ left_pad="8"
+ name="people_chk"
+ top_delta="-4"
+ width="110" />
+ <icon
+ follows="top|right"
+ height="16"
+ image_name="map_infohub.tga"
+ layout="topleft"
+ left="-230"
+ mouse_opaque="true"
+ name="infohub"
+ top="100"
+ width="16" />
+ <check_box
+ control_name="MapShowInfohubs"
+ follows="top|right"
+ height="16"
+ label="Infohub"
+ layout="topleft"
+ left_pad="4"
+ name="infohub_chk"
+ top_delta="0"
+ width="110" />
+ <icon
+ follows="top|right"
+ height="16"
+ image_name="map_telehub.tga"
+ layout="topleft"
+ left="-230"
+ mouse_opaque="true"
+ name="telehub"
+ top="120"
+ width="16" />
+ <check_box
+ control_name="MapShowTelehubs"
+ follows="top|right"
+ height="16"
+ label="Telehub"
+ layout="topleft"
+ left_pad="4"
+ name="telehubchk"
+ top_delta="0"
+ width="110" />
+ <icon
+ follows="top|right"
+ height="16"
+ image_name="icon_for_sale.tga"
+ layout="topleft"
+ left="-230"
+ mouse_opaque="true"
+ name="landforsale"
+ top="140"
+ width="16" />
+ <check_box
+ control_name="MapShowLandForSale"
+ follows="top|right"
+ height="16"
+ label="Land for Sale"
+ layout="topleft"
+ left_pad="4"
+ name="land_for_sale_chk"
+ top_delta="0"
+ width="110" />
+ <text
+ type="string"
+ length="1"
+ follows="top|right"
+ height="16"
+ layout="topleft"
+ left="-104"
+ name="events_label"
+ top="80"
+ width="145">
+ Events:
+ </text>
+ <icon
+ follows="top|right"
+ height="16"
+ image_name="map_event.tga"
+ layout="topleft"
+ left="-92"
+ mouse_opaque="true"
+ name="event"
+ top="100"
+ width="16" />
+ <check_box
+ control_name="MapShowEvents"
+ follows="top|right"
+ height="16"
+ label="PG"
+ layout="topleft"
+ left_pad="4"
+ name="event_chk"
+ top_delta="0"
+ width="55" />
+ <icon
+ follows="top|right"
+ height="16"
+ image_name="map_event_mature.tga"
+ layout="topleft"
+ left="-92"
+ mouse_opaque="true"
+ name="events_mature_icon"
+ top="120"
+ width="16" />
+ <check_box
+ control_name="ShowMatureEvents"
+ follows="top|right"
+ height="16"
+ initial_value="true"
+ label="Mature"
+ layout="topleft"
+ left_pad="4"
+ name="event_mature_chk"
+ top_delta="0"
+ width="55" />
+ <icon
+ follows="top|right"
+ height="16"
+ image_name="map_event_adult.tga"
+ layout="topleft"
+ left="-92"
+ mouse_opaque="true"
+ name="events_adult_icon"
+ top="140"
+ width="16" />
+ <check_box
+ control_name="ShowAdultEvents"
+ follows="top|right"
+ height="16"
+ label="Adult"
+ layout="topleft"
+ left_pad="4"
+ name="event_adult_chk"
+ top_delta="0"
+ width="55" />
+ <icon
+ color="0.5 0 0 1"
+ follows="top|right"
+ height="16"
+ image_name="map_track_16.tga"
+ layout="topleft"
+ left="-230"
+ mouse_opaque="true"
+ name="avatar_icon"
+ top="164"
+ width="16" />
+ <combo_box
+ allow_text_entry="true"
+ follows="top|right"
+ height="20"
+ label="Online Friends"
+ layout="topleft"
+ left_pad="4"
+ max_chars="60"
+ name="friend combo"
+ tool_tip="Friend to Show on Map"
+ top_delta="-4"
+ width="202">
+ <combo_box.item
+ label="Online Friends"
+ value="None" />
+ </combo_box>
+ <icon
+ color="0.5 0 0 1"
+ follows="top|right"
+ height="16"
+ image_name="map_track_16.tga"
+ layout="topleft"
+ left="-230"
+ mouse_opaque="true"
+ name="landmark_icon"
+ top="189"
+ width="16" />
+ <combo_box
+ allow_text_entry="true"
+ follows="top|right"
+ height="20"
+ label="Landmarks"
+ layout="topleft"
+ left_pad="4"
+ max_chars="64"
+ name="landmark combo"
+ tool_tip="Landmark to Show on Map"
+ top_delta="-4"
+ width="202">
+ <combo_box.item
+ label="Landmarks"
+ value="None" />
+ </combo_box>
+ <icon
+ color="0.5 0 0 1"
+ follows="top|right"
+ height="16"
+ image_name="map_track_16.tga"
+ layout="topleft"
+ left="-230"
+ mouse_opaque="true"
+ name="location_icon"
+ top="214"
+ width="16" />
+ <line_editor
+ follows="top|right"
+ height="20"
+ label="Search by Region Name"
+ layout="topleft"
+ left_pad="4"
+ name="location"
+ select_on_focus="true"
+ tool_tip="Type the name of a region"
+ top_delta="-4"
+ width="140" />
+ <button
+ follows="top|right"
+ height="20"
+ label="Search"
+ layout="topleft"
+ left_pad="5"
+ name="DoSearch"
+ tool_tip="Search for region"
+ top_delta="0"
+ width="60" />
+ <text
+ type="string"
+ length="1"
+ follows="top|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="-230"
+ name="search_label"
+ top="234"
+ width="222">
+ Search Results:
+ </text>
+ <scroll_list
+ draw_stripes="false"
+ follows="top|right|bottom"
+ height="200"
+ layout="topleft"
+ left_delta="0"
+ name="search_results"
+ top_pad="10"
+ width="222">
+ <scroll_list.columns
+ label=""
+ name="icon"
+ width="16" />
+ <scroll_list.columns
+ label=""
+ name="sim_name"
+ width="206" />
+ </scroll_list>
+ <text
+ type="string"
+ length="1"
+ follows="bottom|right"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="location_label"
+ top_pad="4"
+ width="98">
+ Location:
+ </text>
+ <spinner
+ decimal_digits="0"
+ follows="bottom|right"
+ height="16"
+ increment="1"
+ initial_value="128"
+ layout="topleft"
+ left_delta="70"
+ max_val="255"
+ name="spin x"
+ tool_tip="X coordinate of location to show on map"
+ top_delta="0"
+ width="48" />
+ <spinner
+ decimal_digits="0"
+ follows="bottom|right"
+ height="16"
+ increment="1"
+ initial_value="128"
+ layout="topleft"
+ left_pad="2"
+ max_val="255"
+ name="spin y"
+ tool_tip="Y coordinate of location to show on map"
+ top_delta="0"
+ width="48" />
+ <spinner
+ decimal_digits="0"
+ follows="bottom|right"
+ height="16"
+ increment="1"
+ initial_value="0"
+ layout="topleft"
+ left_pad="2"
+ max_val="4096"
+ name="spin z"
+ tool_tip="Z coordinate of location to show on map"
+ top_delta="0"
+ width="48" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Teleport"
+ label_selected="Teleport"
+ layout="topleft"
+ left="-230"
+ name="Teleport"
+ tool_tip="Teleport to selected location"
+ top="494"
+ width="90" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Show Destination"
+ label_selected="Show Destination"
+ layout="topleft"
+ left_pad="10"
+ name="Show Destination"
+ tool_tip="Center map on selected location"
+ top_delta="0"
+ width="125" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Clear"
+ label_selected="Clear"
+ layout="topleft"
+ left="-230"
+ name="Clear"
+ tool_tip="Stop tracking"
+ top="518"
+ width="90" />
+ <button
+ follows="right|bottom"
+ height="20"
+ label="Show My Location"
+ label_selected="Show My Location"
+ layout="topleft"
+ left_pad="10"
+ name="Show My Location"
+ tool_tip="Center map on your avatar&apos;s location"
+ top_delta="0"
+ width="125" />
+ <button
+ enabled="false"
+ follows="bottom|right"
+ height="20"
+ label="Copy SLURL to clipboard"
+ layout="topleft"
+ left="-230"
+ name="copy_slurl"
+ tool_tip="Copies current location as SLURL to be used on the web."
+ top="542"
+ width="222" />
+ <slider
+ follows="right|bottom"
+ height="16"
+ increment="0.2"
+ initial_value="48.5029"
+ label="Zoom"
+ layout="topleft"
+ left_delta="0"
+ max_val="0"
+ min_val="-8"
+ name="zoom slider"
+ show_text="false"
+ top_pad="8"
+ width="222" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/fonts.xml b/indra/newview/skins/default/xui/en/fonts.xml
new file mode 100644
index 0000000000..483291044d
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/fonts.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<fonts>
+
+ <font name="default" comment="default font files (global fallbacks)">
+ <file>DejaVuSansCondensed.ttf</file>
+ <os name="Windows">
+ <file>MSGOTHIC.TTC</file>
+ <file>gulim.ttc</file>
+ <file>simhei.ttf</file>
+ <file>ArialUni.ttf</file>
+ </os>
+ <os name="Mac">
+ <file>ヒラギノ角ゴ Pro W3.otf</file>
+ <file>ヒラギノ角ゴ ProN W3.otf</file>
+ <file>AppleGothic.dfont</file>
+ <file>AppleGothic.ttf</file>
+ <file>华文细黑.ttf</file>
+ </os>
+ </font>
+
+ <font name="SansSerif" comment="Name of san-serif font (Truetype file name)">
+ <file>"MtBkLfRg.ttf"</file>
+ </font>
+
+ <font name="SansSerifBold"
+ comment="Name of bold sans-serif font"
+ font_style="Bold">
+ <file>MtBdLfRg.ttf</file>
+ </font>
+
+ <font name="Monospace"
+ comment="Name of monospace font">
+ <file>DejaVuSansMono.ttf</file>
+ </font>
+
+ <font name="DejaVu"
+ comment="Name of DejaVu font">
+ <file>DejaVuSans.ttf</file>
+ </font>
+
+ <font name="DejaVu"
+ comment="Name of DejaVu font (bold)"
+ font_style="BOLD">
+ <file>DejaVuSansBold.ttf</file>
+ </font>
+
+ <font name="DejaVu"
+ comment="Name of DejaVu font (italic)"
+ font_style="ITALIC">
+ <file>DejaVuSansOblique.ttf</file>
+ </font>
+
+ <font name="DejaVu"
+ comment="Name of DejaVu font (bold italic)"
+ font_style="BOLD|ITALIC">
+ <file>DejaVuSansBoldOblique.ttf</file>
+ </font>
+
+ <font name="Helvetica"
+ comment="Name of Helvetica font">
+ <file>arial.ttf</file>
+ </font>
+
+ <font name="Helvetica"
+ comment="Name of Helvetica font (bold)"
+ font_style="BOLD">
+ <file>arialbd.ttf</file>
+ </font>
+
+ <font name="Helvetica"
+ comment="Name of Helvetica font (italic)"
+ font_style="ITALIC">
+ <file>ariali.ttf</file>
+ </font>
+
+ <font name="Helvetica"
+ comment="Name of Helvetica font (bold italic)"
+ font_style="BOLD|ITALIC">
+ <file>arialbi.ttf</file>
+ </font>
+
+ <font name="OverrideTest"
+ comment="Name of font to test overriding">
+ <file>times.ttf</file>
+ </font>
+
+ <font_size name="Monospace"
+ comment="Size for monospaced font (points, or 1/72 of an inch)"
+ size="9.0"
+ />
+ <font_size name="Huge"
+ comment="Size of huge font (points, or 1/72 of an inch)"
+ size="16.0"
+ />
+ <font_size name="Large"
+ comment="Size of large font (points, or 1/72 of an inch)"
+ size="12.0"
+ />
+ <font_size name="Medium"
+ comment="Size of medium font (points, or 1/72 of an inch)"
+ size="10.0"
+ />
+ <font_size name="Small"
+ comment="Size of small font (points, or 1/72 of an inch)"
+ size="9"
+ />
+</fonts>
+
diff --git a/indra/newview/skins/default/xui/en/menu_avatar_icon.xml b/indra/newview/skins/default/xui/en/menu_avatar_icon.xml
new file mode 100644
index 0000000000..df510d68eb
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/menu_avatar_icon.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<menu
+ height="101"
+ layout="topleft"
+ left="100"
+ mouse_opaque="false"
+ name="Avatar Icon Menu"
+ top="724"
+ visible="false"
+ width="128">
+ <menu_item_call
+ label="Show Profile..."
+ layout="topleft"
+ name="Show Profile">
+ <menu_item_call.on_click
+ function="AvatarIcon.Action"
+ parameter="profile" />
+ </menu_item_call>
+ <menu_item_call
+ label="Send IM..."
+ layout="topleft"
+ name="Send IM">
+ <menu_item_call.on_click
+ function="AvatarIcon.Action"
+ parameter="im" />
+ </menu_item_call>
+ <menu_item_call
+ label="Add Friend..."
+ layout="topleft"
+ name="Add Friend">
+ <menu_item_call.on_click
+ function="AvatarIcon.Action"
+ parameter="add" />
+ </menu_item_call>
+ <menu_item_call
+ label="Remove Friend..."
+ layout="topleft"
+ name="Remove Friend">
+ <menu_item_call.on_click
+ function="AvatarIcon.Action"
+ parameter="remove" />
+ </menu_item_call>
+</menu>
diff --git a/indra/newview/skins/default/xui/en/menu_favorites.xml b/indra/newview/skins/default/xui/en/menu_favorites.xml
new file mode 100644
index 0000000000..7e4bbe3c9d
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/menu_favorites.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<menu
+ bottom="825"
+ layout="topleft"
+ name="Popup"
+ visible="false">
+ <menu_item_call
+ label="Teleport"
+ layout="topleft"
+ name="Landmark Open">
+ <menu_item_call.on_click
+ function="Favorites.DoToSelected"
+ parameter="open" />
+ </menu_item_call>
+ <menu_item_call
+ label="About Landmark"
+ layout="topleft"
+ name="Teleport To Landmark">
+ <menu_item_call.on_click
+ function="Favorites.DoToSelected"
+ parameter="about" />
+ </menu_item_call>
+<!-- <menu_item_call -->
+<!-- label="Rename" -->
+<!-- layout="topleft" -->
+<!-- name="Rename"> -->
+<!-- <menu_item_call.on_click -->
+<!-- function="Favorites.DoToSelected" -->
+<!-- parameter="rename" /> -->
+<!-- </menu_item_call> -->
+ <menu_item_call
+ label="Delete"
+ layout="topleft"
+ name="Delete">
+ <menu_item_call.on_click
+ function="Favorites.DoToSelected"
+ parameter="delete" />
+ </menu_item_call>
+</menu>
diff --git a/indra/newview/skins/default/xui/en/menu_group_plus.xml b/indra/newview/skins/default/xui/en/menu_group_plus.xml
new file mode 100644
index 0000000000..2029b19c1c
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/menu_group_plus.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<menu name="menu_group_plus"
+ left="0" bottom="0" visible="false"
+ mouse_opaque="false" opaque="true" color="MenuDefaultBgColor" drop_shadow="true">
+ <menu_item_call name="item_join" label="Join Group...">
+ <menu_item_call.on_click function="People.Group.Plus.Action" userdata="join_group" />
+ </menu_item_call>
+ <menu_item_call name="item_new" label="New Group...">
+ <menu_item_call.on_click function="People.Group.Plus.Action" userdata="new_group" />
+ </menu_item_call>
+</menu>
diff --git a/indra/newview/skins/default/xui/en/menu_inventory.xml b/indra/newview/skins/default/xui/en/menu_inventory.xml
new file mode 100644
index 0000000000..808618ba96
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/menu_inventory.xml
@@ -0,0 +1,518 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<menu
+ bottom="825"
+ layout="topleft"
+ name="Popup"
+ visible="false">
+ <menu_item_call
+ label="Buy"
+ layout="topleft"
+ name="Task Buy">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="task_buy" />
+ </menu_item_call>
+ <menu_item_call
+ label="Open"
+ layout="topleft"
+ name="Task Open">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="task_open" />
+ </menu_item_call>
+ <menu_item_call
+ label="Play"
+ layout="topleft"
+ name="Task Play">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="task_play" />
+ </menu_item_call>
+ <menu_item_call
+ label="Properties"
+ layout="topleft"
+ name="Task Properties">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="task_properties" />
+ </menu_item_call>
+ <menu_item_call
+ label="Rename"
+ layout="topleft"
+ name="Task Rename">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="rename" />
+ </menu_item_call>
+ <menu_item_call
+ label="Delete"
+ layout="topleft"
+ name="Task Remove">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="delete" />
+ </menu_item_call>
+ <menu_item_call
+ label="Empty Trash"
+ layout="topleft"
+ name="Empty Trash">
+ <menu_item_call.on_click
+ function="Inventory.EmptyTrash"
+ parameter="rename" />
+ </menu_item_call>
+ <menu_item_call
+ label="Empty Lost And Found"
+ layout="topleft"
+ name="Empty Lost And Found">
+ <menu_item_call.on_click
+ function="Inventory.EmptyLostAndFound"
+ parameter="rename" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Folder"
+ layout="topleft"
+ name="New Folder">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="category" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Script"
+ layout="topleft"
+ name="New Script">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="lsl" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Note"
+ layout="topleft"
+ name="New Note">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="notecard" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Gesture"
+ layout="topleft"
+ name="New Gesture">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="gesture" />
+ </menu_item_call>
+ <menu
+ label="New Clothes"
+ layout="topleft"
+ name="New Clothes">
+ <menu_item_call
+ label="New Shirt"
+ layout="topleft"
+ name="New Shirt">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="shirt" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Pants"
+ layout="topleft"
+ name="New Pants">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="pants" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Shoes"
+ layout="topleft"
+ name="New Shoes">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="shoes" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Socks"
+ layout="topleft"
+ name="New Socks">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="socks" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Jacket"
+ layout="topleft"
+ name="New Jacket">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="jacket" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Skirt"
+ layout="topleft"
+ name="New Skirt">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="skirt" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Gloves"
+ layout="topleft"
+ name="New Gloves">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="gloves" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Undershirt"
+ layout="topleft"
+ name="New Undershirt">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="undershirt" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Underpants"
+ layout="topleft"
+ name="New Underpants">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="underpants" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Alpha Mask"
+ layout="topleft"
+ name="New Alpha Mask">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="alpha" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Tattoo"
+ layout="topleft"
+ name="New Tattoo">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="tattoo" />
+ </menu_item_call>
+ </menu>
+ <menu
+ label="New Body Parts"
+ layout="topleft"
+ name="New Body Parts">
+ <menu_item_call
+ label="New Shape"
+ layout="topleft"
+ name="New Shape">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="shape" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Skin"
+ layout="topleft"
+ name="New Skin">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="skin" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Hair"
+ layout="topleft"
+ name="New Hair">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="hair" />
+ </menu_item_call>
+ <menu_item_call
+ label="New Eyes"
+ layout="topleft"
+ name="New Eyes">
+ <menu_item_call.on_click
+ function="Inventory.DoCreate"
+ parameter="eyes" />
+ </menu_item_call>
+ </menu>
+ <menu_item_call
+ label="Teleport"
+ layout="topleft"
+ name="Landmark Open">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="open" />
+ </menu_item_call>
+ <menu_item_call
+ label="Open"
+ layout="topleft"
+ name="Animation Open">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="open" />
+ </menu_item_call>
+ <menu_item_call
+ label="Open"
+ layout="topleft"
+ name="Sound Open">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="open" />
+ </menu_item_call>
+ <menu_item_call
+ label="Purge Item"
+ layout="topleft"
+ name="Purge Item">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="purge" />
+ </menu_item_call>
+ <menu_item_call
+ label="Restore Item"
+ layout="topleft"
+ name="Restore Item">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="restore" />
+ </menu_item_call>
+ <menu_item_call
+ label="Open"
+ layout="topleft"
+ name="Open">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="open" />
+ </menu_item_call>
+ <menu_item_call
+ label="Properties"
+ layout="topleft"
+ name="Properties">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="properties" />
+ </menu_item_call>
+ <menu_item_call
+ label="Rename"
+ layout="topleft"
+ name="Rename">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="rename" />
+ </menu_item_call>
+ <menu_item_call
+ label="Copy Asset UUID"
+ layout="topleft"
+ name="Copy Asset UUID">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="copy_uuid" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Copy"
+ layout="topleft"
+ name="Copy">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="copy" />
+ </menu_item_call>
+ <menu_item_call
+ label="Paste"
+ layout="topleft"
+ name="Paste">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="paste" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Delete"
+ layout="topleft"
+ name="Delete">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="delete" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Take Off Items"
+ layout="topleft"
+ name="Take Off Items">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="removefromoutfit" />
+ </menu_item_call>
+ <menu_item_call
+ label="Add To Outfit"
+ layout="topleft"
+ name="Add To Outfit">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="addtooutfit" />
+ </menu_item_call>
+ <menu_item_call
+ label="Replace Outfit"
+ layout="topleft"
+ name="Replace Outfit">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="replaceoutfit" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Start Conference Chat"
+ layout="topleft"
+ name="Conference Chat Folder">
+ <menu_item_call.on_click
+ function="Inventory.BeginIMSession"
+ parameter="everyone" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Play"
+ layout="topleft"
+ name="Sound Play">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="open" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="About Landmark"
+ layout="topleft"
+ name="Teleport To Landmark">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="about" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Play in World"
+ layout="topleft"
+ name="Animation Play">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="playworld" />
+ </menu_item_call>
+ <menu_item_call
+ label="Play Locally"
+ layout="topleft"
+ name="Animation Audition">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="playlocal" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Send Instant Message"
+ layout="topleft"
+ name="Send Instant Message">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="begin_im" />
+ </menu_item_call>
+ <menu_item_call
+ label="Offer Teleport..."
+ layout="topleft"
+ name="Offer Teleport...">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="lure" />
+ </menu_item_call>
+ <menu_item_call
+ label="Start Conference Chat"
+ layout="topleft"
+ name="Conference Chat">
+ <menu_item_call.on_click
+ function="Inventory.BeginIMSession"
+ parameter="selected" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Activate"
+ layout="topleft"
+ name="Activate">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="activate" />
+ </menu_item_call>
+ <menu_item_call
+ label="Deactivate"
+ layout="topleft"
+ name="Deactivate">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="deactivate" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Detach From Yourself"
+ layout="topleft"
+ name="Detach From Yourself">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="detach" />
+ </menu_item_call>
+ <!-- COMMENTED OUT for DEV-32347 -->
+ <!--
+ <menu_item_call
+ label="Restore to Last Position"
+ layout="topleft"
+ name="Restore to Last Position">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="restoreToWorld" />
+ </menu_item_call>
+ -->
+ <menu_item_call
+ label="Wear"
+ layout="topleft"
+ name="Object Wear">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="attach" />
+ </menu_item_call>
+ <menu
+ label="Attach To"
+ layout="topleft"
+ name="Attach To" />
+ <menu
+ label="Attach To HUD"
+ layout="topleft"
+ name="Attach To HUD" />
+ <menu_item_call
+ label="Edit"
+ layout="topleft"
+ name="Wearable Edit">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="edit" />
+ </menu_item_call>
+ <menu_item_call
+ label="Wear"
+ layout="topleft"
+ name="Wearable Wear">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="wear" />
+ </menu_item_call>
+ <menu_item_call
+ label="Take Off"
+ layout="topleft"
+ name="Take Off">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="take_off" />
+ </menu_item_call>
+ <menu_item_call
+ label="--no options--"
+ layout="topleft"
+ name="--no options--" />
+ <menu_item_separator
+ layout="topleft" />
+</menu>
diff --git a/indra/newview/skins/default/xui/en/menu_login.xml b/indra/newview/skins/default/xui/en/menu_login.xml
new file mode 100644
index 0000000000..eb3dcc225e
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/menu_login.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<menu_bar
+ follows="left|top|right"
+ height="18"
+ layout="topleft"
+ left_delta="0"
+ name="Login Menu"
+ top_delta="0"
+ width="802">
+ <menu
+ create_jump_keys="true"
+ label="File"
+ layout="topleft"
+ name="File">
+ <menu_item_call
+ label="Quit"
+ layout="topleft"
+ name="Quit"
+ shortcut="control|Q">
+ <menu_item_call.on_click
+ function="File.Quit" />
+ </menu_item_call>
+ </menu>
+ <menu
+ create_jump_keys="true"
+ label="Edit"
+ layout="topleft"
+ name="Edit"
+ width="153">
+ <menu_item_call
+ label="Preferences..."
+ layout="topleft"
+ name="Preferences..."
+ shortcut="control|P">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="preferences" />
+ </menu_item_call>
+ </menu>
+ <menu
+ create_jump_keys="true"
+ label="Help"
+ layout="topleft"
+ name="Help">
+ <menu_item_call
+ label="Second Life Help"
+ layout="topleft"
+ name="Second Life Help"
+ shortcut="F1">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="help f1" />
+ </menu_item_call>
+ <menu_item_call
+ label="About Second Life..."
+ layout="topleft"
+ name="About Second Life...">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="about" />
+ </menu_item_call>
+ </menu>
+ <menu
+ create_jump_keys="true"
+ label="Debug"
+ layout="topleft"
+ name="Debug">
+ <menu_item_call
+ label="Debug Settings"
+ layout="topleft"
+ name="Debug Settings">
+ <menu_item_call.on_click
+ function="Advanced.ShowDebugSettings"
+ parameter="all" />
+ </menu_item_call>
+ <menu_item_call
+ label="UI/Color Settings"
+ layout="topleft"
+ name="UI/Color Settings">
+ <menu_item_call.on_click
+ function="Advanced.ShowDebugSettings"
+ parameter="skin" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="UI Preview Tool"
+ layout="topleft"
+ name="UI Preview Tool"
+ shortcut="control|T">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="ui_preview" />
+ </menu_item_call>
+ <menu_item_call
+ label="Widget Test"
+ layout="topleft"
+ name="Widget Test"
+ shortcut="control|shift|T">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="test_widgets" />
+ </menu_item_call>
+ </menu>
+</menu_bar>
diff --git a/indra/newview/skins/default/xui/en/menu_mini_map.xml b/indra/newview/skins/default/xui/en/menu_mini_map.xml
new file mode 100644
index 0000000000..a5e1f35142
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/menu_mini_map.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<menu
+ height="101"
+ layout="topleft"
+ left="100"
+ mouse_opaque="false"
+ name="popup"
+ top="724"
+ width="128">
+ <menu_item_call
+ label="Zoom Close"
+ layout="topleft"
+ name="Zoom Close">
+ <menu_item_call.on_click
+ function="MiniMap.ZoomLevel"
+ parameter="2" />
+ </menu_item_call>
+ <menu_item_call
+ label="Zoom Medium"
+ layout="topleft"
+ name="Zoom Medium">
+ <menu_item_call.on_click
+ function="MiniMap.ZoomLevel"
+ parameter="1" />
+ </menu_item_call>
+ <menu_item_call
+ label="Zoom Far"
+ layout="topleft"
+ name="Zoom Far">
+ <menu_item_call.on_click
+ function="MiniMap.ZoomLevel"
+ parameter="0" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ enabled="false"
+ label="Stop Tracking"
+ layout="topleft"
+ name="Stop Tracking">
+ <menu_item_call.on_click
+ function="MiniMap.StopTracking" />
+ <menu_item_call.on_enable
+ function="MiniMap.EnableTracking" />
+ </menu_item_call>
+ <menu_item_call
+ enabled="false"
+ label="Profile..."
+ layout="topleft"
+ name="Profile">
+ <menu_item_call.on_click
+ function="MiniMap.ShowProfile" />
+ <menu_item_call.on_enable
+ function="MiniMap.EnableProfile" />
+ </menu_item_call>
+</menu>
diff --git a/indra/newview/skins/default/xui/en/menu_navbar.xml b/indra/newview/skins/default/xui/en/menu_navbar.xml
new file mode 100644
index 0000000000..725321648b
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/menu_navbar.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<menu
+ height="201"
+ layout="topleft"
+ left="100"
+ mouse_opaque="false"
+ name="Navbar Menu"
+ top="624"
+ visible="false"
+ width="128">
+ <menu_item_call
+ label="Copy SLURL to Clipboard"
+ layout="topleft"
+ name="Copy SLURL">
+ <menu_item_call.on_click
+ function="Navbar.Action"
+ parameter="copy_url" />
+ </menu_item_call>
+ <menu_item_call
+ label="Add Landmark..."
+ layout="topleft"
+ name="Add Landmark">
+ <menu_item_call.on_click
+ function="Navbar.Action"
+ parameter="landmark" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft"
+ name="Separator" />
+ <menu_item_call
+ label="Cut"
+ layout="topleft"
+ name="Cut">
+ <menu_item_call.on_click
+ function="Navbar.Action"
+ parameter="cut" />
+ <menu_item_call.on_enable
+ function="Navbar.EnableMenuItem"
+ parameter="can_cut" />
+ </menu_item_call>
+ <menu_item_call
+ label="Copy"
+ layout="topleft"
+ name="Copy">
+ <menu_item_call.on_click
+ function="Navbar.Action"
+ parameter="copy" />
+ <menu_item_call.on_enable
+ function="Navbar.EnableMenuItem"
+ parameter="can_copy" />
+ </menu_item_call>
+ <menu_item_call
+ label="Paste"
+ layout="topleft"
+ name="Paste">
+ <menu_item_call.on_click
+ function="Navbar.Action"
+ parameter="paste" />
+ <menu_item_call.on_enable
+ function="Navbar.EnableMenuItem"
+ parameter="can_paste" />
+ </menu_item_call>
+ <menu_item_call
+ label="Delete"
+ layout="topleft"
+ name="Delete">
+ <menu_item_call.on_click
+ function="Navbar.Action"
+ parameter="delete" />
+ <menu_item_call.on_enable
+ function="Navbar.EnableMenuItem"
+ parameter="can_delete" />
+ </menu_item_call>
+ <menu_item_call
+ label="Select All"
+ layout="topleft"
+ name="Select All">
+ <menu_item_call.on_click
+ function="Navbar.Action"
+ parameter="select_all" />
+ <menu_item_call.on_enable
+ function="Navbar.EnableMenuItem"
+ parameter="can_select_all" />
+ </menu_item_call>
+</menu>
diff --git a/indra/newview/skins/default/xui/en/menu_nearby_chat.xml b/indra/newview/skins/default/xui/en/menu_nearby_chat.xml
new file mode 100644
index 0000000000..5eb4b10af9
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/menu_nearby_chat.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<menu bottom="100" color="MenuDefaultBgColor" drop_shadow="true" height="101" left="100"
+ mouse_opaque="false" name="NearBy Chat Menu" opaque="true" width="128" visible="false">
+ <menu_item_call bottom_delta="-18" height="18" label="Keep Visible" left="0" mouse_opaque="true"
+ name="keep_visible" width="128">
+ <menu_item_call.on_click function="NearbyChat.Action" userdata="keep_visible" />
+ </menu_item_call>
+ <menu_item_call bottom_delta="-18" height="18" label="Show Nearby People..." left="0" mouse_opaque="true"
+ name="nearby_people" width="128">
+ <menu_item_call.on_click function="NearbyChat.Action" userdata="nearby_people" />
+ </menu_item_call>
+
+ <menu_item_separator />
+ <menu_item_check bottom_delta="-18" height="18" label="Show Muted Text" left="0" mouse_opaque="true"
+ name="muted_text" width="128">
+ <menu_item_check.on_click function="NearbyChat.Action" userdata="muted_text" />
+ <menu_item_check.on_check function="NearbyChat.Check" userdata="muted_text"/>
+ </menu_item_check>
+
+ <menu_item_separator />
+
+ <menu_item_check bottom_delta="-18" height="18" label="Show Buddy Icons" left="0" mouse_opaque="true"
+ name="show_buddy_icons" width="128">
+ <menu_item_check.on_click function="NearbyChat.Action" userdata="show_buddy_icons" />
+ <menu_item_check.on_check function="NearbyChat.Check" userdata="show_buddy_icons"/>
+ </menu_item_check>
+ <menu_item_check bottom_delta="-18" height="18" label="Show Names" left="0" mouse_opaque="true"
+ name="show_names" width="128">
+ <menu_item_check.on_click function="NearbyChat.Action" userdata="show_names" />
+ <menu_item_check.on_check function="NearbyChat.Check" userdata="show_names"/>
+ </menu_item_check>
+ <menu_item_check bottom_delta="-18" height="18" label="Show Icons and Names" left="0" mouse_opaque="true"
+ name="show_icons_and_names" width="128">
+ <menu_item_check.on_click function="NearbyChat.Action" userdata="show_icons_and_names" />
+ <menu_item_check.on_check function="NearbyChat.Check" userdata="show_icons_and_names"/>
+ </menu_item_check>
+
+ <menu_item_separator />
+ <menu_item_call bottom_delta="-18" height="18" label="Font Size" left="0" mouse_opaque="true"
+ name="font_size" width="128">
+ <menu_item_call.on_click function="NearbyChat.Action" userdata="font_size" />
+ </menu_item_call>
+</menu>
diff --git a/indra/newview/skins/default/xui/en/menu_slurl.xml b/indra/newview/skins/default/xui/en/menu_slurl.xml
new file mode 100644
index 0000000000..d5d9d3c43d
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/menu_slurl.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<menu
+ height="101"
+ layout="topleft"
+ left="100"
+ mouse_opaque="false"
+ name="Popup"
+ top="724"
+ width="128">
+ <menu_item_separator
+ layout="topleft"
+ name="Landmark Separator" />
+ <menu_item_call
+ label="About URL"
+ layout="topleft"
+ name="about_url">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="about" />
+ </menu_item_call>
+ <menu_item_call
+ label="Teleport to URL"
+ layout="topleft"
+ name="teleport_to_url">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="about" />
+ </menu_item_call>
+ <menu_item_call
+ label="Show on Map"
+ layout="topleft"
+ name="show_on_map">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="about" />
+ </menu_item_call>
+</menu>
diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
new file mode 100644
index 0000000000..926b51d4c1
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -0,0 +1,3545 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<menu_bar
+ bg_visible="false"
+ follows="left|top|right"
+ layout="topleft"
+ name="Main Menu">
+ <menu
+ label="Me"
+ layout="topleft"
+ name="Me"
+ tear_off="true">
+ <menu_item_call
+ label="Preferences"
+ layout="topleft"
+ name="Preferences"
+ shortcut="control|P">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="preferences" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu
+ label="My Account"
+ layout="topleft"
+ name="My Account"
+ tear_off="true">
+ <menu_item_call
+ label="Account History"
+ layout="topleft"
+ name="Account History">
+ <menu_item_call.on_click
+ function="PromptShowURL"
+ parameter="WebLaunchAccountHistory,http://secondlife.com/account/transactions.php" />
+ </menu_item_call>
+ <menu_item_call
+ label="Manage My Account"
+ layout="topleft"
+ name="Manage My Account">
+ <menu_item_call.on_click
+ function="PromptShowURL"
+ parameter="WebLaunchJoinNow,http://secondlife.com/account/" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="My Land"
+ layout="topleft"
+ name="My Land">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="my land" />
+ </menu_item_call>
+ <menu_item_call
+ label="Buy Land"
+ layout="topleft"
+ name="Buy Land">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="buy land" />
+ <menu_item_call.on_enable
+ function="World.EnableBuyLand" />
+ </menu_item_call>
+ </menu>
+ <menu_item_call
+ label="Buy L$"
+ layout="topleft"
+ name="Buy and Sell L$">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="buy currency" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="My Profile"
+ layout="topleft"
+ name="Profile">
+ <menu_item_call.on_click
+ function="ShowAgentProfile"
+ parameter="agent" />
+ </menu_item_call>
+ <menu_item_call
+ label="My Appearance"
+ layout="topleft"
+ name="Appearance">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="appearance" />
+ <menu_item_call.on_enable
+ function="Edit.EnableCustomizeAvatar" />
+ </menu_item_call>
+ <menu_item_check
+ label="My Inventory"
+ layout="topleft"
+ name="Inventory"
+ shortcut="control|I">
+ <menu_item_check.on_check
+ function="Floater.Visible"
+ parameter="inventory" />
+ <menu_item_check.on_click
+ function="Floater.Toggle"
+ parameter="inventory" />
+ </menu_item_check>
+ <menu_item_call
+ label="My Gestures"
+ layout="topleft"
+ name="Gestures"
+ shortcut="control|G">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="gestures" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu
+ label="Status"
+ layout="topleft"
+ name="Status"
+ tear_off="true">
+ <menu_item_call
+ label="Set Away"
+ layout="topleft"
+ name="Set Away">
+ <menu_item_call.on_click
+ function="World.SetAway" />
+ </menu_item_call>
+ <menu_item_call
+ label="Set Busy"
+ layout="topleft"
+ name="Set Busy">
+ <menu_item_call.on_click
+ function="World.SetBusy" />
+ </menu_item_call>
+ </menu>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Exit Second Life"
+ layout="topleft"
+ name="Quit"
+ shortcut="control|Q">
+ <menu_item_call.on_click
+ function="File.Quit" />
+ </menu_item_call>
+ </menu>
+ <menu
+ label="Communicate"
+ layout="topleft"
+ name="Communicate"
+ tear_off="true">
+ <menu_item_check
+ label="My Friends"
+ layout="topleft"
+ name="My Friends"
+ shortcut="control|shift|F">
+ <menu_item_check.on_check
+ function="Floater.Visible"
+ parameter="contacts.friends" />
+ <menu_item_check.on_click
+ function="Floater.Toggle"
+ parameter="contacts.friends" />
+ </menu_item_check>
+ <menu_item_call
+ label="My Groups"
+ layout="topleft"
+ name="My Groups">
+ <menu_item_call.on_click
+ function="Floater.Show"
+ parameter="contacts.groups" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Chat"
+ layout="topleft"
+ name="Chat">
+ <menu_item_call.on_click
+ function="World.Chat" />
+ </menu_item_call>
+ <menu_item_check
+ label="Local Chat"
+ layout="topleft"
+ name="Chat History"
+ shortcut="control|H">
+ <menu_item_check.on_check
+ function="Floater.Visible"
+ parameter="chat" />
+ <menu_item_check.on_click
+ function="Floater.Toggle"
+ parameter="chat" />
+ </menu_item_check>
+ <menu_item_check
+ label="Nearby Chat"
+ layout="topleft"
+ name="Nearby Chat"
+ shortcut="control|N">
+ <menu_item_check.on_check
+ function="Floater.Visible"
+ parameter="nearby_chat" />
+ <menu_item_check.on_click
+ function="Floater.Toggle"
+ parameter="nearby_chat" />
+ </menu_item_check>
+ <menu_item_check
+ label="Communicate"
+ layout="topleft"
+ name="Instant Message"
+ shortcut="control|T">
+ <menu_item_check.on_check
+ function="Floater.Visible"
+ parameter="communicate" />
+ <menu_item_check.on_click
+ function="Floater.Toggle"
+ parameter="communicate" />
+ </menu_item_check>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_check
+ label="Active Speakers"
+ layout="topleft"
+ name="Active Speakers">
+ <menu_item_check.on_check
+ function="FloaterVisible"
+ parameter="active speakers" />
+ <menu_item_check.on_click
+ function="ShowFloater"
+ parameter="active speakers" />
+ </menu_item_check>
+ <menu_item_check
+ label="Mute List"
+ layout="topleft"
+ name="Mute List">
+ <menu_item_check.on_check
+ function="FloaterVisible"
+ parameter="mute list" />
+ <menu_item_check.on_click
+ function="ShowFloater"
+ parameter="mute list" />
+ </menu_item_check>
+ </menu>
+ <menu
+ label="World"
+ layout="topleft"
+ name="World"
+ tear_off="true">
+ <menu_item_check
+ label="Camera Controls"
+ layout="topleft"
+ name="Camera Controls">
+ <menu_item_check.on_check
+ function="FloaterVisible"
+ parameter="camera controls" />
+ <menu_item_check.on_click
+ function="ShowFloater"
+ parameter="camera controls" />
+ </menu_item_check>
+ <menu_item_check
+ label="Movement Controls"
+ layout="topleft"
+ name="Movement Controls">
+ <menu_item_check.on_check
+ function="FloaterVisible"
+ parameter="movement controls" />
+ <menu_item_check.on_click
+ function="ShowFloater"
+ parameter="movement controls" />
+ </menu_item_check>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="About Land"
+ layout="topleft"
+ name="About Land">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="about land" />
+ </menu_item_call>
+ <menu_item_call
+ label="Region/Estate"
+ layout="topleft"
+ name="Region/Estate">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="about region" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu
+ label="Landmarks"
+ layout="topleft"
+ name="Landmarks"
+ tear_off="true">
+ <menu_item_call
+ label="Create Landmark Here"
+ layout="topleft"
+ name="Create Landmark Here">
+ <menu_item_call.on_click
+ function="World.CreateLandmark" />
+ <menu_item_call.on_enable
+ function="World.EnableCreateLandmark" />
+ </menu_item_call>
+ <menu_item_call
+ label="Set Home to Here"
+ layout="topleft"
+ name="Set Home to Here">
+ <menu_item_call.on_click
+ function="World.SetHomeLocation" />
+ <menu_item_call.on_enable
+ function="World.EnableSetHomeLocation" />
+ </menu_item_call>
+ <menu_item_call
+ label="Teleport Home"
+ layout="topleft"
+ name="Teleport Home"
+ shortcut="control|shift|H">
+ <menu_item_call.on_click
+ function="World.TeleportHome" />
+ <menu_item_call.on_enable
+ function="World.EnableTeleportHome" />
+ </menu_item_call>
+ </menu>
+ <menu_item_check
+ label="Search"
+ layout="topleft"
+ name="Search"
+ shortcut="control|F">
+ <menu_item_check.on_check
+ function="Floater.Visible"
+ parameter="search" />
+ <menu_item_check.on_click
+ function="Floater.Toggle"
+ parameter="search" />
+ </menu_item_check>
+ <menu_item_check
+ label="World Map"
+ layout="topleft"
+ name="World Map"
+ shortcut="control|M">
+ <menu_item_check.on_check
+ function="Floater.Visible"
+ parameter="world_map" />
+ <menu_item_check.on_click
+ function="Floater.Toggle"
+ parameter="world_map" />
+ </menu_item_check>
+ <menu_item_check
+ label="Mini-Map"
+ layout="topleft"
+ name="Mini-Map"
+ shortcut="control|shift|M">
+ <menu_item_check.on_check
+ function="FloaterVisible" />
+ <menu_item_check.on_click
+ function="ShowFloater"
+ parameter="mini_map" />
+ </menu_item_check>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Take Snapshot"
+ layout="topleft"
+ name="Take Snapshot"
+ shortcut="control|shift|S">
+ <menu_item_call.on_click
+ function="Floater.Show"
+ parameter="snapshot" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_check
+ label="Build"
+ layout="topleft"
+ name="Build"
+ shortcut="B">
+ <menu_item_check.on_check
+ function="Build.Active" />
+ <menu_item_check.on_click
+ function="Build.Toggle" />
+ <menu_item_check.on_enable
+ function="Build.Enabled" />
+ </menu_item_check>
+ </menu>
+ <menu
+ label="Help"
+ layout="topleft"
+ name="Help"
+ tear_off="true">
+ <menu_item_call
+ label="Second Life Help"
+ layout="topleft"
+ name="Second Life Help"
+ shortcut="F1">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="help f1" />
+ </menu_item_call>
+ <menu_item_call
+ label="Tutorial"
+ layout="topleft"
+ name="Tutorial">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="help tutorial" />
+ </menu_item_call>
+ <menu
+ label="Report"
+ layout="topleft"
+ name="Report"
+ tear_off="true">
+ <menu_item_call
+ label="Report Abuse"
+ layout="topleft"
+ name="Report Abuse">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="complaint reporter" />
+ </menu_item_call>
+ <menu_item_call
+ label="Report Bug"
+ layout="topleft"
+ name="Report Bug">
+ <menu_item_call.on_click
+ function="PromptShowURL"
+ parameter="WebLaunchPublicIssue,http://jira.secondlife.com" />
+ </menu_item_call>
+ <menu_item_call
+ label="Bumps, Pushes &amp; Hits."
+ layout="topleft"
+ name="Bumps, Pushes &amp;amp; Hits">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="mean events" />
+ </menu_item_call>
+ <menu_item_call
+ label="About Second Life"
+ layout="topleft"
+ name="About Second Life">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="about" />
+ </menu_item_call>
+ </menu>
+ </menu>
+ <menu
+ create_jump_keys="true"
+ label="Tools"
+ layout="topleft"
+ name="BuildTools"
+ tear_off="true"
+ visible="false">
+ <menu
+ create_jump_keys="true"
+ label="Edit"
+ layout="topleft"
+ name="Edit"
+ tear_off="true">
+ <menu_item_call
+ label="Undo"
+ layout="topleft"
+ name="Undo"
+ shortcut="control|Z">
+ <menu_item_call.on_click
+ function="Edit.Undo" />
+ <menu_item_call.on_enable
+ function="Edit.EnableUndo" />
+ </menu_item_call>
+ <menu_item_call
+ label="Redo"
+ layout="topleft"
+ name="Redo"
+ shortcut="control|Y">
+ <menu_item_call.on_click
+ function="Edit.Redo" />
+ <menu_item_call.on_enable
+ function="Edit.EnableRedo" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Cut"
+ layout="topleft"
+ name="Cut"
+ shortcut="control|X">
+ <menu_item_call.on_click
+ function="Edit.Cut" />
+ <menu_item_call.on_enable
+ function="Edit.EnableCut" />
+ </menu_item_call>
+ <menu_item_call
+ label="Copy"
+ layout="topleft"
+ name="Copy"
+ shortcut="control|C">
+ <menu_item_call.on_click
+ function="Edit.Copy" />
+ <menu_item_call.on_enable
+ function="Edit.EnableCopy" />
+ </menu_item_call>
+ <menu_item_call
+ label="Paste"
+ layout="topleft"
+ name="Paste"
+ shortcut="control|V">
+ <menu_item_call.on_click
+ function="Edit.Paste" />
+ <menu_item_call.on_enable
+ function="Edit.EnablePaste" />
+ </menu_item_call>
+ <menu_item_call
+ label="Delete"
+ layout="topleft"
+ name="Delete"
+ shortcut="Del">
+ <menu_item_call.on_click
+ function="Edit.Delete" />
+ <menu_item_call.on_enable
+ function="Edit.EnableDelete" />
+ </menu_item_call>
+ <menu_item_call
+ label="Duplicate"
+ layout="topleft"
+ name="Duplicate"
+ shortcut="control|D">
+ <menu_item_call.on_click
+ function="Edit.Duplicate" />
+ <menu_item_call.on_enable
+ function="Edit.EnableDuplicate" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Select All"
+ layout="topleft"
+ name="Select All"
+ shortcut="control|A">
+ <menu_item_call.on_click
+ function="Edit.SelectAll" />
+ <menu_item_call.on_enable
+ function="Edit.EnableSelectAll" />
+ </menu_item_call>
+ <menu_item_call
+ label="Deselect"
+ layout="topleft"
+ name="Deselect"
+ shortcut="control|E">
+ <menu_item_call.on_click
+ function="Edit.Deselect" />
+ <menu_item_call.on_enable
+ function="Edit.EnableDeselect" />
+ </menu_item_call>
+ </menu>
+ <menu
+ create_jump_keys="true"
+ label="Options"
+ layout="topleft"
+ name="Options"
+ tear_off="true">
+ <menu_item_check
+ label="Edit Linked Parts"
+ layout="topleft"
+ name="Edit Linked Parts">
+ <menu_item_check.on_check
+ control="EditLinkedParts" />
+ <menu_item_check.on_click
+ function="Tools.EditLinkedParts"
+ parameter="EditLinkedParts" />
+ <menu_item_check.on_enable
+ function="Tools.EnableToolNotPie" />
+ </menu_item_check>
+ <menu_item_call
+ label="Set Default Permissions"
+ layout="topleft"
+ name="perm prefs">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="perm prefs" />
+ </menu_item_call>
+ <menu_item_call
+ label="Show Script Warning/Error Window"
+ layout="topleft"
+ name="Show Script Warning/Error Window">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="script errors" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu
+ create_jump_keys="true"
+ label="Selection"
+ layout="topleft"
+ name="Selection"
+ tear_off="true">
+ <menu_item_check
+ label="Select Only My Objects"
+ layout="topleft"
+ name="Select Only My Objects">
+ <menu_item_check.on_check
+ control="SelectOwnedOnly" />
+ <menu_item_check.on_click
+ function="Tools.SelectOnlyMyObjects"
+ parameter="agents" />
+ </menu_item_check>
+ <menu_item_check
+ label="Select Only Movable Objects"
+ layout="topleft"
+ name="Select Only Movable Objects">
+ <menu_item_check.on_check
+ control="SelectMovableOnly" />
+ <menu_item_check.on_click
+ function="Tools.SelectOnlyMovableObjects"
+ parameter="movable" />
+ </menu_item_check>
+ <menu_item_check
+ label="Select By Surrounding"
+ layout="topleft"
+ name="Select By Surrounding">
+ <menu_item_check.on_check
+ control="RectangleSelectInclusive" />
+ <menu_item_check.on_click
+ function="Tools.SelectBySurrounding" />
+ </menu_item_check>
+ </menu>
+ <menu
+ create_jump_keys="true"
+ label="Show"
+ layout="topleft"
+ name="Show"
+ tear_off="true">
+ <menu_item_check
+ label="Show Hidden Selection"
+ layout="topleft"
+ name="Show Hidden Selection">
+ <menu_item_check.on_check
+ control="RenderHiddenSelections" />
+ <menu_item_check.on_click
+ function="Tools.ShowHiddenSelection" />
+ </menu_item_check>
+ <menu_item_check
+ label="Show Light Radius for Selection"
+ layout="topleft"
+ name="Show Light Radius for Selection">
+ <menu_item_check.on_check
+ control="RenderLightRadius" />
+ <menu_item_check.on_click
+ function="Tools.ShowSelectionLightRadius" />
+ </menu_item_check>
+ <menu_item_check
+ label="Show Selection Beam"
+ layout="topleft"
+ name="Show Selection Beam">
+ <menu_item_check.on_check
+ control="ShowSelectionBeam" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="ShowSelectionBeam" />
+ </menu_item_check>
+ </menu>
+ <menu
+ create_jump_keys="true"
+ label="Grid"
+ layout="topleft"
+ name="Grid"
+ tear_off="true">
+ <menu_item_check
+ label="Snap to Grid"
+ layout="topleft"
+ name="Snap to Grid"
+ shortcut="G">
+ <menu_item_check.on_check
+ control="SnapEnabled" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="SnapEnabled" />
+ <menu_item_check.on_enable
+ function="Tools.EnableToolNotPie" />
+ </menu_item_check>
+ <menu_item_call
+ label="Snap Object XY to Grid"
+ layout="topleft"
+ name="Snap Object XY to Grid"
+ shortcut="shift|X">
+ <menu_item_call.on_click
+ function="Tools.SnapObjectXY" />
+ <menu_item_call.on_enable
+ function="Tools.EnableToolNotPie" />
+ </menu_item_call>
+ <menu_item_call
+ label="Use Selection for Grid"
+ layout="topleft"
+ name="Use Selection for Grid"
+ shortcut="shift|G">
+ <menu_item_call.on_click
+ function="Tools.UseSelectionForGrid" />
+ <menu_item_call.on_enable
+ function="SomethingSelected" />
+ </menu_item_call>
+ <menu_item_call
+ label="Grid Options"
+ layout="topleft"
+ name="Grid Options"
+ shortcut="control|shift|B">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="grid options" />
+ <menu_item_call.on_enable
+ function="Tools.EnableToolNotPie" />
+ </menu_item_call>
+ </menu>
+ <menu
+ create_jump_keys="true"
+ label="Beacons"
+ layout="topleft"
+ name="Beacons"
+ tear_off="true">
+ <menu_item_check
+ label="Beacons"
+ layout="topleft"
+ name="beacons"
+ shortcut="control|alt|shift|N">
+ <menu_item_check.on_check
+ function="FloaterVisible"
+ parameter="beacons" />
+ <menu_item_check.on_click
+ function="ShowFloater"
+ parameter="beacons" />
+ </menu_item_check>
+ <menu_item_check
+ label="Cheesy Beacon"
+ layout="topleft"
+ name="Cheesy Beacon">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="CheesyBeacon" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="CheesyBeacon" />
+ </menu_item_check>
+ </menu>
+ <menu
+ create_jump_keys="true"
+ label="Land"
+ layout="topleft"
+ name="Land"
+ tear_off="true">
+ <menu_item_check
+ label="Property Lines"
+ layout="topleft"
+ name="Property Lines"
+ shortcut="control|alt|shift|P">
+ <menu_item_check.on_check
+ control="ShowPropertyLines" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="ShowPropertyLines" />
+ </menu_item_check>
+ <menu_item_check
+ label="Land Owners"
+ layout="topleft"
+ name="Land Owners">
+ <menu_item_check.on_check
+ control="ShowParcelOwners" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="ShowParcelOwners" />
+ </menu_item_check>
+ <menu_item_check
+ label="Ban Lines"
+ layout="topleft"
+ name="Ban Lines">
+ <menu_item_check.on_check
+ control="ShowBanLines" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="ShowBanLines" />
+ </menu_item_check>
+ </menu>
+ </menu>
+ <menu
+ create_jump_keys="true"
+ label="Actions"
+ layout="topleft"
+ name="Actions"
+ tear_off="true">
+ <menu_item_call
+ label="Link"
+ layout="topleft"
+ name="Link"
+ shortcut="control|L">
+ <menu_item_call.on_click
+ function="Tools.Link" />
+ <menu_item_call.on_enable
+ function="Tools.EnableLink" />
+ </menu_item_call>
+ <menu_item_call
+ label="Unlink"
+ layout="topleft"
+ name="Unlink"
+ shortcut="control|shift|L">
+ <menu_item_call.on_click
+ function="Tools.Unlink" />
+ <menu_item_call.on_enable
+ function="Tools.EnableUnlink" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Focus on Selection"
+ layout="topleft"
+ name="Focus on Selection"
+ shortcut="H">
+ <menu_item_call.on_click
+ function="Tools.LookAtSelection"
+ parameter="focus" />
+ <menu_item_call.on_enable
+ function="Tools.SomethingSelectedNoHUD" />
+ </menu_item_call>
+ <menu_item_call
+ label="Zoom to Selection"
+ layout="topleft"
+ name="Zoom to Selection"
+ shortcut="shift|H">
+ <menu_item_call.on_click
+ function="Tools.LookAtSelection"
+ parameter="zoom" />
+ <menu_item_call.on_enable
+ function="Tools.SomethingSelectedNoHUD" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Buy Object"
+ layout="topleft"
+ name="Menu Object Take"
+ visible="false">
+ <menu_item_call.on_click
+ function="Tools.BuyOrTake" />
+ <menu_item_call.on_enable
+ function="Tools.EnableBuyOrTake"
+ parameter="Buy,Take" />
+ </menu_item_call>
+ <menu_item_call
+ label="Take Copy"
+ layout="topleft"
+ name="Take Copy">
+ <menu_item_call.on_click
+ function="Tools.TakeCopy" />
+ <menu_item_call.on_enable
+ function="Tools.EnableTakeCopy" />
+ </menu_item_call>
+ <menu_item_call
+ label="Save Object Back to My Inventory"
+ layout="topleft"
+ name="Save Object Back to My Inventory">
+ <menu_item_call.on_click
+ function="Tools.SaveToInventory" />
+ <menu_item_call.on_enable
+ function="Tools.EnableSaveToInventory" />
+ </menu_item_call>
+ <menu_item_call
+ label="Save Object Back to Object Contents"
+ layout="topleft"
+ name="Save Object Back to Object Contents">
+ <menu_item_call.on_click
+ function="Tools.SaveToObjectInventory" />
+ <menu_item_call.on_enable
+ function="Tools.EnableSaveToObjectInventory" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu
+ create_jump_keys="true"
+ label="Recompile Scripts in Selection"
+ layout="topleft"
+ name="Recompile Scripts in Selection"
+ tear_off="true">
+ <menu_item_call
+ label="Mono"
+ layout="topleft"
+ name="Mono">
+ <menu_item_call.on_click
+ function="Tools.SelectedScriptAction"
+ parameter="compile mono" />
+ <menu_item_call.on_enable
+ function="EditableSelectedMono" />
+ </menu_item_call>
+ <menu_item_call
+ label="LSL"
+ layout="topleft"
+ name="LSL">
+ <menu_item_call.on_click
+ function="Tools.SelectedScriptAction"
+ parameter="compile lsl" />
+ <menu_item_call.on_enable
+ function="EditableSelected" />
+ </menu_item_call>
+ </menu>
+ <menu_item_call
+ label="Reset Scripts in Selection"
+ layout="topleft"
+ name="Reset Scripts in Selection">
+ <menu_item_call.on_click
+ function="Tools.SelectedScriptAction"
+ parameter="reset" />
+ <menu_item_call.on_enable
+ function="EditableSelected" />
+ </menu_item_call>
+ <menu_item_call
+ label="Set Scripts to Running in Selection"
+ layout="topleft"
+ name="Set Scripts to Running in Selection">
+ <menu_item_call.on_click
+ function="Tools.SelectedScriptAction"
+ parameter="start" />
+ <menu_item_call.on_enable
+ function="EditableSelected" />
+ </menu_item_call>
+ <menu_item_call
+ label="Set Scripts to Not Running in Selection"
+ layout="topleft"
+ name="Set Scripts to Not Running in Selection">
+ <menu_item_call.on_click
+ function="Tools.SelectedScriptAction"
+ parameter="stop" />
+ <menu_item_call.on_enable
+ function="EditableSelected" />
+ </menu_item_call>
+ </menu>
+ </menu>
+ <menu
+ label="Geek"
+ layout="topleft"
+ name="Advanced"
+ tear_off="true"
+ visible="false">
+ <menu
+ label="Shortcuts"
+ layout="topleft"
+ name="Shortcuts"
+ tear_off="true"
+ visible="false">
+ <menu_item_call
+ enabled="false"
+ label="Release Keys"
+ layout="topleft"
+ name="Release Keys">
+ <menu_item_call.on_click
+ function="Tools.ReleaseKeys"
+ parameter="" />
+ <menu_item_call.on_enable
+ function="Tools.EnableReleaseKeys"
+ parameter="" />
+ </menu_item_call>
+ <menu_item_call
+ label="Set UI Size to Default"
+ layout="topleft"
+ name="Set UI Size to Default">
+ <menu_item_call.on_click
+ function="View.DefaultUISize" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_check
+ label="Always Run"
+ layout="topleft"
+ name="Always Run"
+ shortcut="control|R">
+ <menu_item_check.on_check
+ function="World.CheckAlwaysRun" />
+ <menu_item_check.on_click
+ function="World.AlwaysRun" />
+ </menu_item_check>
+ <menu_item_check
+ control_name="FlyBtnState"
+ label="Fly"
+ layout="topleft"
+ name="Fly"
+ shortcut="Home">
+ <menu_item_check.on_click
+ function="Agent.toggleFlying" />
+ <menu_item_check.on_enable
+ function="Agent.enableFlying" />
+ </menu_item_check>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Close Window"
+ layout="topleft"
+ name="Close Window"
+ shortcut="control|W">
+ <menu_item_call.on_click
+ function="File.CloseWindow" />
+ <menu_item_call.on_enable
+ function="File.EnableCloseWindow" />
+ </menu_item_call>
+ <menu_item_call
+ label="Close All Windows"
+ layout="topleft"
+ name="Close All Windows"
+ shortcut="control|shift|W">
+ <menu_item_call.on_click
+ function="File.CloseAllWindows" />
+ <menu_item_call.on_enable
+ function="File.EnableCloseAllWindows" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Snapshot to Disk"
+ layout="topleft"
+ name="Snapshot to Disk"
+ shortcut="control|`"
+ use_mac_ctrl="true">
+ <menu_item_call.on_click
+ function="File.TakeSnapshotToDisk" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Mouselook"
+ layout="topleft"
+ name="Mouselook"
+ shortcut="M">
+ <menu_item_call.on_click
+ function="View.Mouselook" />
+ <menu_item_call.on_enable
+ function="View.EnableMouselook" />
+ </menu_item_call>
+ <menu_item_check
+ label="Joystick Flycam"
+ layout="topleft"
+ name="Joystick Flycam"
+ shortcut="alt|shift|F">
+ <menu_item_check.on_check
+ function="View.CheckJoystickFlycam" />
+ <menu_item_check.on_click
+ function="View.JoystickFlycam" />
+ <menu_item_check.on_enable
+ function="View.EnableJoystickFlycam" />
+ </menu_item_check>
+ <menu_item_call
+ label="Reset View"
+ layout="topleft"
+ name="Reset View"
+ shortcut="Esc">
+ <menu_item_call.on_click
+ function="View.ResetView" />
+ </menu_item_call>
+ <menu_item_call
+ label="Look at Last Chatter"
+ layout="topleft"
+ name="Look at Last Chatter"
+ shortcut="control|\">
+ <menu_item_call.on_click
+ function="View.LookAtLastChatter" />
+ <menu_item_call.on_enable
+ function="View.EnableLastChatter" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu
+ create_jump_keys="true"
+ label="Select Tool"
+ layout="topleft"
+ name="Select Tool"
+ tear_off="true">
+ <menu_item_call
+ label="Focus"
+ layout="topleft"
+ name="Focus"
+ shortcut="control|1">
+ <menu_item_call.on_click
+ function="Tools.SelectTool"
+ parameter="focus" />
+ </menu_item_call>
+ <menu_item_call
+ label="Move"
+ layout="topleft"
+ name="Move"
+ shortcut="control|2">
+ <menu_item_call.on_click
+ function="Tools.SelectTool"
+ parameter="move" />
+ </menu_item_call>
+ <menu_item_call
+ label="Edit"
+ layout="topleft"
+ name="Edit"
+ shortcut="control|3">
+ <menu_item_call.on_click
+ function="Tools.SelectTool"
+ parameter="edit" />
+ </menu_item_call>
+ <menu_item_call
+ label="Create"
+ layout="topleft"
+ name="Create"
+ shortcut="control|4">
+ <menu_item_call.on_click
+ function="Tools.SelectTool"
+ parameter="create" />
+ </menu_item_call>
+ <menu_item_call
+ label="Land"
+ layout="topleft"
+ name="Land"
+ shortcut="control|5">
+ <menu_item_call.on_click
+ function="Tools.SelectTool"
+ parameter="land" />
+ </menu_item_call>
+ </menu>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Zoom In"
+ layout="topleft"
+ name="Zoom In"
+ shortcut="control|0">
+ <menu_item_call.on_click
+ function="View.ZoomIn" />
+ </menu_item_call>
+ <menu_item_call
+ label="Zoom Default"
+ layout="topleft"
+ name="Zoom Default"
+ shortcut="control|9">
+ <menu_item_call.on_click
+ function="View.ZoomDefault" />
+ </menu_item_call>
+ <menu_item_call
+ label="Zoom Out"
+ layout="topleft"
+ name="Zoom Out"
+ shortcut="control|8">
+ <menu_item_call.on_click
+ function="View.ZoomOut" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Toggle Fullscreen"
+ layout="topleft"
+ name="Toggle Fullscreen"
+ shortcut="alt|Enter">
+ <menu_item_call.on_click
+ function="View.Fullscreen" />
+ </menu_item_call>
+ </menu>
+ <menu_item_check
+ label="Go Away/AFK When Idle"
+ layout="topleft"
+ name="Go Away/AFK When Idle">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="AllowIdleAFK" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="AllowIdleAFK" />
+ </menu_item_check>
+ <menu_item_call
+ label="Stop Animating My Avatar"
+ layout="topleft"
+ name="Stop Animating My Avatar">
+ <menu_item_call.on_click
+ function="Tools.StopAllAnimations" />
+ </menu_item_call>
+ <menu_item_call
+ label="Rebake Texture"
+ layout="topleft"
+ name="Rebake Texture"
+ shortcut="control|alt|R">
+ <menu_item_call.on_click
+ function="Advanced.RebakeTextures" />
+ </menu_item_call>
+ <menu_item_check
+ label="Limit Select Distance"
+ layout="topleft"
+ name="Limit Select Distance">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="LimitSelectDistance" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="LimitSelectDistance" />
+ </menu_item_check>
+ <menu_item_check
+ label="Disable Camera Constraints"
+ layout="topleft"
+ name="Disable Camera Distance">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="DisableCameraConstraints" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="DisableCameraConstraints" />
+ </menu_item_check>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_check
+ label="High-res Snapshot"
+ layout="topleft"
+ name="HighResSnapshot">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="HighResSnapshot" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="HighResSnapshot" />
+ </menu_item_check>
+ <menu_item_check
+ label="Quiet Snapshots to Disk"
+ layout="topleft"
+ name="QuietSnapshotsToDisk">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="QuietSnapshotsToDisk" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="QuietSnapshotsToDisk" />
+ </menu_item_check>
+ <menu_item_check
+ label="Compress Snapshots to Disk"
+ layout="topleft"
+ name="CompressSnapshotsToDisk">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="CompressSnapshotsToDisk" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="CompressSnapshotsToDisk" />
+ </menu_item_check>
+ <menu_item_call
+ label="Save Texture As..."
+ layout="topleft"
+ name="Save Texture As">
+ <menu_item_call.on_click
+ function="File.SaveTexture" />
+ <menu_item_call.on_enable
+ function="File.EnableSaveAs" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu
+ create_jump_keys="true"
+ label="Environment Settings"
+ layout="topleft"
+ name="Environment Settings"
+ tear_off="true">
+ <menu_item_call
+ label="Sunrise"
+ layout="topleft"
+ name="Sunrise">
+ <menu_item_call.on_click
+ function="World.EnvSettings"
+ parameter="sunrise" />
+ </menu_item_call>
+ <menu_item_call
+ label="Midday"
+ layout="topleft"
+ name="Noon"
+ shortcut="control|shift|Y">
+ <menu_item_call.on_click
+ function="World.EnvSettings"
+ parameter="noon" />
+ </menu_item_call>
+ <menu_item_call
+ label="Sunset"
+ layout="topleft"
+ name="Sunset"
+ shortcut="control|shift|N">
+ <menu_item_call.on_click
+ function="World.EnvSettings"
+ parameter="sunset" />
+ </menu_item_call>
+ <menu_item_call
+ label="Midnight"
+ layout="topleft"
+ name="Midnight">
+ <menu_item_call.on_click
+ function="World.EnvSettings"
+ parameter="midnight" />
+ </menu_item_call>
+ <menu_item_call
+ label="Revert to Region Default"
+ layout="topleft"
+ name="Revert to Region Default">
+ <menu_item_call.on_click
+ function="World.EnvSettings"
+ parameter="default" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Environment Editor"
+ layout="topleft"
+ name="Environment Editor">
+ <menu_item_call.on_click
+ function="World.EnvSettings"
+ parameter="editor" />
+ </menu_item_call>
+ </menu>
+ <menu
+ create_jump_keys="true"
+ label="Performance Tools"
+ layout="topleft"
+ name="Performance Tools"
+ tear_off="true">
+ <menu_item_call
+ label="Lag Meter"
+ layout="topleft"
+ name="Lag Meter">
+ <menu_item_call.on_click
+ function="ShowFloater"
+ parameter="lag meter" />
+ </menu_item_call>
+ <menu_item_check
+ label="Statistics Bar"
+ layout="topleft"
+ name="Statistics Bar"
+ shortcut="control|shift|1">
+ <menu_item_check.on_check
+ function="Floater.Visible"
+ parameter="stats" />
+ <menu_item_check.on_click
+ function="Floater.Toggle"
+ parameter="stats" />
+ </menu_item_check>
+ </menu>
+ <menu
+ create_jump_keys="true"
+ label="Highlighting and Visibility"
+ layout="topleft"
+ name="Highlighting and Visibility"
+ tear_off="true">
+ <menu_item_check
+ label="Highlight Transparent"
+ layout="topleft"
+ name="Highlight Transparent"
+ shortcut="control|alt|T">
+ <menu_item_check.on_check
+ function="View.CheckHighlightTransparent" />
+ <menu_item_check.on_click
+ function="View.HighlightTransparent" />
+ </menu_item_check>
+ <menu_item_check
+ label="Hide Particles"
+ layout="topleft"
+ name="Hide Particles"
+ shortcut="control|alt|shift|=">
+ <menu_item_check.on_check
+ function="View.CheckRenderType"
+ parameter="hideparticles" />
+ <menu_item_check.on_click
+ function="View.ToggleRenderType"
+ parameter="hideparticles" />
+ </menu_item_check>
+ <menu_item_check
+ label="Show HUD Attachments"
+ layout="topleft"
+ name="Show HUD Attachments"
+ shortcut="alt|shift|H">
+ <menu_item_check.on_check
+ function="View.CheckHUDAttachments" />
+ <menu_item_check.on_click
+ function="View.ShowHUDAttachments" />
+ </menu_item_check>
+ <menu_item_check
+ label="Hide Selected"
+ layout="topleft"
+ name="Hide Selected">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="HideSelectedObjects" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="HideSelectedObjects" />
+ </menu_item_check>
+ <menu_item_check
+ label="Show Mouselook Crosshairs"
+ layout="topleft"
+ name="ShowCrosshairs">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="ShowCrosshairs" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="ShowCrosshairs" />
+ </menu_item_check>
+ </menu>
+ <menu
+ create_jump_keys="true"
+ label="Hover Tips"
+ layout="topleft"
+ name="Hover Tips"
+ tear_off="true">
+ <menu_item_check
+ label="Show Tips"
+ layout="topleft"
+ name="Show Tips"
+ shortcut="control|shift|T">
+ <menu_item_check.on_check
+ function="View.CheckShowHoverTips" />
+ <menu_item_check.on_click
+ function="View.ShowHoverTips" />
+ </menu_item_check>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_check
+ label="Land Tips"
+ layout="topleft"
+ name="Land Tips">
+ <menu_item_check.on_check
+ control="ShowLandHoverTip" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="ShowLandHoverTip" />
+ <menu_item_check.on_enable
+ function="View.CheckShowHoverTips" />
+ </menu_item_check>
+ <menu_item_check
+ label="Tips On All Objects"
+ layout="topleft"
+ name="Tips On All Objects">
+ <menu_item_check.on_check
+ control="ShowAllObjectHoverTip" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="ShowAllObjectHoverTip" />
+ <menu_item_check.on_enable
+ function="View.CheckShowHoverTips" />
+ </menu_item_check>
+ </menu>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_check
+ label="Run Multiple Threads"
+ layout="topleft"
+ name="Run Multiple Threads">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="RunMultipleThreads" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="RunMultipleThreads" />
+ </menu_item_check>
+ <menu_item_separator
+ layout="topleft" />
+ <menu
+ create_jump_keys="true"
+ label="Rendering Types"
+ layout="topleft"
+ name="Rendering Types"
+ tear_off="true">
+ <menu_item_check
+ label="Simple"
+ layout="topleft"
+ name="Simple"
+ shortcut="control|alt|shift|1">
+ <menu_item_check.on_check
+ function="Advanced.CheckRenderType"
+ parameter="simple" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleRenderType"
+ parameter="simple" />
+ </menu_item_check>
+ <menu_item_check
+ label="Alpha"
+ layout="topleft"
+ name="Alpha"
+ shortcut="control|alt|shift|2">
+ <menu_item_check.on_check
+ function="Advanced.CheckRenderType"
+ parameter="alpha" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleRenderType"
+ parameter="alpha" />
+ </menu_item_check>
+ <menu_item_check
+ label="Tree"
+ layout="topleft"
+ name="Tree"
+ shortcut="control|alt|shift|3">
+ <menu_item_check.on_check
+ function="Advanced.CheckRenderType"
+ parameter="tree" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleRenderType"
+ parameter="tree" />
+ </menu_item_check>
+ <menu_item_check
+ label="Character"
+ layout="topleft"
+ name="Character"
+ shortcut="control|alt|shift|4">
+ <menu_item_check.on_check
+ function="Advanced.CheckRenderType"
+ parameter="character" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleRenderType"
+ parameter="character" />
+ </menu_item_check>
+ <menu_item_check
+ label="SurfacePath"
+ layout="topleft"
+ name="SurfacePath"
+ shortcut="control|alt|shift|5">
+ <menu_item_check.on_check
+ function="Advanced.CheckRenderType"
+ parameter="surfacePath" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleRenderType"
+ parameter="surfacePath" />
+ </menu_item_check>
+ <menu_item_check
+ label="Sky"
+ layout="topleft"
+ name="Sky"
+ shortcut="control|alt|shift|6">
+ <menu_item_check.on_check
+ function="Advanced.CheckRenderType"
+ parameter="sky" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleRenderType"
+ parameter="sky" />
+ </menu_item_check>
+ <menu_item_check
+ label="Water"
+ layout="topleft"
+ name="Water"
+ shortcut="control|alt|shift|7">
+ <menu_item_check.on_check
+ function="Advanced.CheckRenderType"
+ parameter="water" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleRenderType"
+ parameter="water" />
+ </menu_item_check>
+ <menu_item_check
+ label="Ground"
+ layout="topleft"
+ name="Ground"
+ shortcut="control|alt|shift|8">
+ <menu_item_check.on_check
+ function="Advanced.CheckRenderType"
+ parameter="ground" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleRenderType"
+ parameter="ground" />
+ </menu_item_check>
+ <menu_item_check
+ label="Volume"
+ layout="topleft"
+ name="Volume"
+ shortcut="control|alt|shift|9">
+ <menu_item_check.on_check
+ function="Advanced.CheckRenderType"
+ parameter="volume" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleRenderType"
+ parameter="volume" />
+ </menu_item_check>
+ <menu_item_check
+ label="Grass"
+ layout="topleft"
+ name="Grass"
+ shortcut="control|alt|shift|0">
+ <menu_item_check.on_check
+ function="Advanced.CheckRenderType"
+ parameter="grass" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleRenderType"
+ parameter="grass" />
+ </menu_item_check>
+ <menu_item_check
+ label="Clouds"
+ layout="topleft"
+ name="Clouds"
+ shortcut="control|alt|shift|-">
+ <menu_item_check.on_check
+ function="Advanced.CheckRenderType"
+ parameter="clouds" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleRenderType"
+ parameter="clouds" />
+ </menu_item_check>
+ <menu_item_check
+ label="Particles"
+ layout="topleft"
+ name="Particles"
+ shortcut="control|alt|shift|=">
+ <menu_item_check.on_check
+ function="Advanced.CheckRenderType"
+ parameter="particles" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleRenderType"
+ parameter="particles" />
+ </menu_item_check>
+ <menu_item_check
+ label="Bump"
+ layout="topleft"
+ name="Bump"
+ shortcut="control|alt|shift|\">
+ <menu_item_check.on_check
+ function="Advanced.CheckRenderType"
+ parameter="bump" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleRenderType"
+ parameter="bump" />
+ </menu_item_check>
+ </menu>
+ <menu
+ create_jump_keys="true"
+ label="Rendering Features"
+ layout="topleft"
+ name="Rendering Features"
+ tear_off="true">
+ <menu_item_check
+ label="UI"
+ layout="topleft"
+ name="UI"
+ shortcut="control|alt|F1">
+ <menu_item_check.on_check
+ function="Advanced.CheckFeature"
+ parameter="ui" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleFeature"
+ parameter="ui" />
+ </menu_item_check>
+ <menu_item_check
+ label="Selected"
+ layout="topleft"
+ name="Selected"
+ shortcut="control|alt|F2">
+ <menu_item_check.on_check
+ function="Advanced.CheckFeature"
+ parameter="selected" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleFeature"
+ parameter="selected" />
+ </menu_item_check>
+ <menu_item_check
+ label="Highlighted"
+ layout="topleft"
+ name="Highlighted"
+ shortcut="control|alt|F3">
+ <menu_item_check.on_check
+ function="Advanced.CheckFeature"
+ parameter="highlighted" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleFeature"
+ parameter="highlighted" />
+ </menu_item_check>
+ <menu_item_check
+ label="Dynamic Textures"
+ layout="topleft"
+ name="Dynamic Textures"
+ shortcut="control|alt|F4">
+ <menu_item_check.on_check
+ function="Advanced.CheckFeature"
+ parameter="dynamic textures" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleFeature"
+ parameter="dynamic textures" />
+ </menu_item_check>
+ <menu_item_check
+ label="Foot Shadows"
+ layout="topleft"
+ name="Foot Shadows"
+ shortcut="control|alt|F5">
+ <menu_item_check.on_check
+ function="Advanced.CheckFeature"
+ parameter="foot shadows" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleFeature"
+ parameter="foot shadows" />
+ </menu_item_check>
+ <menu_item_check
+ label="Fog"
+ layout="topleft"
+ name="Fog"
+ shortcut="control|alt|F6">
+ <menu_item_check.on_check
+ function="Advanced.CheckFeature"
+ parameter="fog" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleFeature"
+ parameter="fog" />
+ </menu_item_check>
+ <menu_item_check
+ label="Test FRInfo"
+ layout="topleft"
+ name="Test FRInfo"
+ shortcut="control|alt|F8">
+ <menu_item_check.on_check
+ function="Advanced.CheckFeature"
+ parameter="fr info" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleFeature"
+ parameter="fr info" />
+ </menu_item_check>
+ <menu_item_check
+ label="Flexible Objects"
+ layout="topleft"
+ name="Flexible Objects"
+ shortcut="control|alt|F9">
+ <menu_item_check.on_check
+ function="Advanced.CheckFeature"
+ parameter="flexible" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleFeature"
+ parameter="flexible" />
+ </menu_item_check>
+ </menu>
+ <menu_item_separator
+ layout="topleft" />
+ <menu
+ create_jump_keys="true"
+ label="Recorder"
+ layout="topleft"
+ name="Recorder"
+ tear_off="true">
+ <menu_item_call
+ label="Start Playback"
+ layout="topleft"
+ name="Start Playback">
+ <menu_item_call.on_click
+ function="Advanced.AgentPilot"
+ parameter="start playback" />
+ </menu_item_call>
+ <menu_item_call
+ label="Stop Playback"
+ layout="topleft"
+ name="Stop Playback">
+ <menu_item_call.on_click
+ function="Advanced.AgentPilot"
+ parameter="stop playback" />
+ </menu_item_call>
+ <menu_item_check
+ label="Loop Playback"
+ layout="topleft"
+ name="Loop Playback">
+ <menu_item_check.on_check
+ function="Advanced.CheckAgentPilotLoop"
+ parameter="loopPlayback" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleAgentPilotLoop" />
+ </menu_item_check>
+ <menu_item_call
+ label="Start Record"
+ layout="topleft"
+ name="Start Record">
+ <menu_item_call.on_click
+ function="Advanced.AgentPilot"
+ parameter="start record" />
+ </menu_item_call>
+ <menu_item_call
+ label="Stop Record"
+ layout="topleft"
+ name="Stop Record">
+ <menu_item_call.on_click
+ function="Advanced.AgentPilot"
+ parameter="stop record" />
+ </menu_item_call>
+ </menu>
+ <menu_item_call
+ label="Dump Scripted Camera"
+ layout="topleft"
+ name="Dump Scripted Camera">
+ <menu_item_call.on_click
+ function="Advanced.DumpScriptedCamera" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Clear Group Cache"
+ layout="topleft"
+ name="ClearGroupCache">
+ <menu_item_call.on_click
+ function="Advanced.ClearGroupCache"
+ parameter="ClearGroupCache" />
+ </menu_item_call>
+ <menu_item_check
+ label="Enable Lip Sync(Beta)"
+ layout="topleft"
+ name="Enable Lip Sync(Beta)">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="LipSyncEnabled" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="LipSyncEnabled" />
+ </menu_item_check>
+ <menu_item_check
+ label="Tap-Tap-Hold to Run"
+ layout="topleft"
+ name="Tap-Tap-Hold to Run">
+ <menu_item_check.on_check
+ function="Advanced.CheckAllowTapTapHoldRun"
+ parameter="TapTapHoldRun" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleAllowTapTapHoldRun" />
+ </menu_item_check>
+ <menu_item_check
+ label="Mouse Smoothing"
+ layout="topleft"
+ name="Mouse Smoothing">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="MouseSmooth" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="MouseSmooth" />
+ </menu_item_check>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Debug Settings"
+ layout="topleft"
+ name="Debug Settings">
+ <menu_item_call.on_click
+ function="Advanced.ShowDebugSettings"
+ parameter="all" />
+ </menu_item_call>
+ </menu>
+ <menu
+ create_jump_keys="true"
+ label="Debug"
+ layout="topleft"
+ name="Debug"
+ tear_off="true"
+ visible="false">
+ <menu
+ create_jump_keys="true"
+ label="Consoles"
+ layout="topleft"
+ name="Consoles"
+ tear_off="true">
+ <menu_item_check
+ label="Texture Console"
+ layout="topleft"
+ name="Texture Console"
+ shortcut="control|shift|3">
+ <menu_item_check.on_check
+ function="Advanced.CheckConsole"
+ parameter="texture" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleConsole"
+ parameter="texture" />
+ </menu_item_check>
+ <menu_item_check
+ label="Debug Console"
+ layout="topleft"
+ name="Debug Console"
+ shortcut="control|shift|4">
+ <menu_item_check.on_check
+ function="Advanced.CheckConsole"
+ parameter="debug" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleConsole"
+ parameter="debug" />
+ </menu_item_check>
+ <menu_item_check
+ label="Fast Timers"
+ layout="topleft"
+ name="Fast Timers"
+ shortcut="control|shift|9">
+ <menu_item_check.on_check
+ function="Advanced.CheckConsole"
+ parameter="fast timers" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleConsole"
+ parameter="fast timers" />
+ </menu_item_check>
+ <menu_item_check
+ label="Memory"
+ layout="topleft"
+ name="Memory"
+ shortcut="control|shift|0">
+ <menu_item_check.on_check
+ function="Advanced.CheckConsole"
+ parameter="memory view" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleConsole"
+ parameter="memory view" />
+ </menu_item_check>
+ <menu_item_check
+ label="Notifications Console"
+ layout="topleft"
+ name="Notifications"
+ shortcut="control|shift|5">
+ <menu_item_check.on_check
+ function="Advanced.CheckConsole"
+ parameter="notifications" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleConsole"
+ parameter="notifications" />
+ </menu_item_check>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Region Info to Debug Console"
+ layout="topleft"
+ name="Region Info to Debug Console">
+ <menu_item_call.on_click
+ function="Advanced.DumpInfoToConsole"
+ parameter="region" />
+ </menu_item_call>
+ <menu_item_call
+ label="Group Info to Debug Console"
+ layout="topleft"
+ name="Group Info to Debug Console">
+ <menu_item_call.on_click
+ function="Advanced.DumpInfoToConsole"
+ parameter="group" />
+ </menu_item_call>
+ <menu_item_call
+ label="Capabilities Info to Debug Console"
+ layout="topleft"
+ name="Capabilities Info to Debug Console">
+ <menu_item_call.on_click
+ function="Advanced.DumpInfoToConsole"
+ parameter="capabilities" />
+ </menu_item_call>
+ </menu>
+ <menu
+ create_jump_keys="true"
+ label="Debugging"
+ layout="topleft"
+ name="Force Errors"
+ tear_off="true">
+ <menu_item_call
+ label="Force Breakpoint"
+ layout="topleft"
+ name="Force Breakpoint"
+ shortcut="control|alt|shift|B">
+ <menu_item_call.on_click
+ function="Advanced.ForceErrorBreakpoint" />
+ </menu_item_call>
+ <menu_item_call
+ label="Force LLError And Crash"
+ layout="topleft"
+ name="Force LLError And Crash">
+ <menu_item_call.on_click
+ function="Advanced.ForceErrorLlerror" />
+ </menu_item_call>
+ <menu_item_call
+ label="Force Bad Memory Access"
+ layout="topleft"
+ name="Force Bad Memory Access">
+ <menu_item_call.on_click
+ function="Advanced.ForceErrorBadMemoryAccess" />
+ </menu_item_call>
+ <menu_item_call
+ label="Force Infinite Loop"
+ layout="topleft"
+ name="Force Infinite Loop">
+ <menu_item_call.on_click
+ function="Advanced.ForceErrorInfiniteLoop" />
+ </menu_item_call>
+ <menu_item_call
+ label="Force Driver Crash"
+ layout="topleft"
+ name="Force Driver Carsh">
+ <menu_item_call.on_click
+ function="Advanced.ForceErrorDriverCrash" />
+ </menu_item_call>
+ <menu_item_call
+ label="Force Software Exception"
+ layout="topleft"
+ name="Force Software Exception">
+ <menu_item_call.on_click
+ function="Advanced.ForceErrorSoftwareException" />
+ </menu_item_call>
+ <menu_item_call
+ label="Force Disconnect Viewer"
+ layout="topleft"
+ name="Force Disconnect Viewer">
+ <menu_item_call.on_click
+ function="Advanced.ForceErrorDisconnectViewer" />
+ </menu_item_call>
+ </menu>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_check
+ label="Output Debug Minidump"
+ layout="topleft"
+ name="Output Debug Minidump">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="SaveMinidump" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="SaveMinidump" />
+ </menu_item_check>
+ <menu_item_call
+ label="Memory Leaking Simulation"
+ layout="topleft"
+ name="Memory Leaking Simulation">
+ <menu_item_call.on_click
+ function="Advanced.MemoryLeakingSimulation"
+ parameter="" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu
+ create_jump_keys="true"
+ label="Render Tests"
+ layout="topleft"
+ name="Render Tests"
+ tear_off="true">
+ <menu_item_check
+ label="Camera Offset"
+ layout="topleft"
+ name="Camera Offset">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="CameraOffset" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="CameraOffset" />
+ </menu_item_check>
+ <menu_item_check
+ label="Randomize Framerate"
+ layout="topleft"
+ name="Randomize Framerate">
+ <menu_item_check.on_check
+ function="Advanced.CheckRandomizeFramerate"
+ parameter="Randomize Framerate" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleRandomizeFramerate" />
+ </menu_item_check>
+ <menu_item_check
+ label="Periodic Slow Frame"
+ layout="topleft"
+ name="Periodic Slow Frame">
+ <menu_item_check.on_check
+ function="Advanced.CheckPeriodicSlowFrame"
+ parameter="points" />
+ <menu_item_check.on_click
+ function="Advanced.TogglePeriodicSlowFrame"
+ parameter="points" />
+ </menu_item_check>
+ <menu_item_check
+ label="Frame Test"
+ layout="topleft"
+ name="Frame Test">
+ <menu_item_check.on_check
+ function="Advanced.CheckFrameTest"
+ parameter="Frame Test" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleFrameTest" />
+ </menu_item_check>
+ </menu>
+ <menu_item_separator
+ layout="topleft" />
+ <menu
+ create_jump_keys="true"
+ label="Display Info"
+ layout="topleft"
+ name="Display Info"
+ tear_off="true">
+ <menu_item_check
+ label="Show Time"
+ layout="topleft"
+ name="Show Time">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="DebugShowTime" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="DebugShowTime" />
+ </menu_item_check>
+ <menu_item_check
+ label="Show Render Info"
+ layout="topleft"
+ name="Show Render Info">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="DebugShowRenderInfo" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="DebugShowRenderInfo" />
+ </menu_item_check>
+ <menu_item_check
+ label="Show Matrices"
+ layout="topleft"
+ name="Show Matrices">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="DebugShowRenderMatrices" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="DebugShowRenderMatrices" />
+ </menu_item_check>
+ <menu_item_check
+ label="Show Color Under Cursor"
+ layout="topleft"
+ name="Show Color Under Cursor">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="DebugShowColor" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="DebugShowColor" />
+ </menu_item_check>
+ </menu>
+ <menu_item_separator
+ layout="topleft" />
+ <menu
+ create_jump_keys="true"
+ label="Network"
+ layout="topleft"
+ name="Network"
+ tear_off="true">
+ <menu_item_call
+ label="Enable Message Log"
+ layout="topleft"
+ name="Enable Message Log">
+ <menu_item_call.on_click
+ function="Advanced.EnableMessageLog" />
+ </menu_item_call>
+ <menu_item_call
+ label="Disable Message Log"
+ layout="topleft"
+ name="Disable Message Log">
+ <menu_item_call.on_click
+ function="Advanced.DisableMessageLog" />
+ </menu_item_call>
+ <menu_item_check
+ label="Velocity Interpolate Objects"
+ layout="topleft"
+ name="Velocity Interpolate Objects">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="VelocityInterpolate" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="VelocityInterpolate" />
+ </menu_item_check>
+ <menu_item_check
+ label="Ping Interpolate Object Positions"
+ layout="topleft"
+ name="Ping Interpolate Object Positions">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="PingInterpolate" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="PingInterpolate" />
+ </menu_item_check>
+ <menu_item_call
+ label="Drop a Packet"
+ layout="topleft"
+ name="Drop a Packet"
+ shortcut="control|alt|L">
+ <menu_item_call.on_click
+ function="Advanced.DropPacket" />
+ </menu_item_call>
+ <menu_item_check
+ label="Show Updates"
+ layout="topleft"
+ name="Show Updates"
+ shortcut="control|alt|shift|U">
+ <menu_item_check.on_check
+ function="Advanced.CheckShowObjectUpdates"
+ parameter="ObjectUpdates" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleShowObjectUpdates" />
+ </menu_item_check>
+ </menu>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_check
+ label="View Admin Options"
+ layout="topleft"
+ name="View Admin Options"
+ shortcut="control|alt|V">
+ <menu_item_check.on_check
+ function="Advanced.CheckViewAdminOptions"
+ parameter="ViewAdminOptions" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleViewAdminOptions" />
+ </menu_item_check>
+ <menu_item_call
+ label="Request Admin Status"
+ layout="topleft"
+ name="Request Admin Options"
+ shortcut="control|alt|G">
+ <menu_item_call.on_click
+ function="Advanced.RequestAdminStatus" />
+ </menu_item_call>
+ <menu_item_call
+ label="Leave Admin Status"
+ layout="topleft"
+ name="Leave Admin Options"
+ shortcut="control|alt|shift|G">
+ <menu_item_call.on_click
+ function="Advanced.LeaveAdminStatus" />
+ </menu_item_call>
+ </menu>
+ <menu
+ create_jump_keys="true"
+ label="Develop"
+ layout="topleft"
+ name="Develop"
+ tear_off="true"
+ visible="false">
+ <menu
+ create_jump_keys="true"
+ label="HUD Info"
+ layout="topleft"
+ name="HUD Info"
+ tear_off="true">
+ <menu_item_check
+ label="Camera"
+ layout="topleft"
+ name="Camera">
+ <menu_item_check.on_check
+ function="Advanced.CheckHUDInfo"
+ parameter="camera" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleHUDInfo"
+ parameter="camera" />
+ </menu_item_check>
+ <menu_item_check
+ label="Wind"
+ layout="topleft"
+ name="Wind">
+ <menu_item_check.on_check
+ function="Advanced.CheckHUDInfo"
+ parameter="wind" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleHUDInfo"
+ parameter="wind" />
+ </menu_item_check>
+ <menu_item_check
+ label="FOV"
+ layout="topleft"
+ name="FOV">
+ <menu_item_check.on_check
+ function="Advanced.CheckHUDInfo"
+ parameter="fov" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleHUDInfo"
+ parameter="fov" />
+ </menu_item_check>
+ </menu>
+ <menu
+ create_jump_keys="true"
+ label="Rendering"
+ layout="topleft"
+ name="Rendering"
+ tear_off="true">
+ <menu
+ create_jump_keys="true"
+ label="Info Displays"
+ layout="topleft"
+ name="Info Displays"
+ tear_off="true">
+ <menu_item_check
+ label="Verify"
+ layout="topleft"
+ name="Verify">
+ <menu_item_check.on_check
+ function="Advanced.CheckInfoDisplay"
+ parameter="verify" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleInfoDisplay"
+ parameter="verify" />
+ </menu_item_check>
+ <menu_item_check
+ label="BBoxes"
+ layout="topleft"
+ name="BBoxes">
+ <menu_item_check.on_check
+ function="Advanced.CheckInfoDisplay"
+ parameter="bboxes" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleInfoDisplay"
+ parameter="bboxes" />
+ </menu_item_check>
+ <menu_item_check
+ label="Points"
+ layout="topleft"
+ name="Points">
+ <menu_item_check.on_check
+ function="Advanced.CheckInfoDisplay"
+ parameter="points" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleInfoDisplay"
+ parameter="points" />
+ </menu_item_check>
+ <menu_item_check
+ label="Octree"
+ layout="topleft"
+ name="Octree">
+ <menu_item_check.on_check
+ function="Advanced.CheckInfoDisplay"
+ parameter="octree" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleInfoDisplay"
+ parameter="octree" />
+ </menu_item_check>
+ <menu_item_check
+ label="Shadow Frusta"
+ layout="topleft"
+ name="Shadow Frusta">
+ <menu_item_check.on_check
+ function="Advanced.CheckInfoDisplay"
+ parameter="shadow frusta" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleInfoDisplay"
+ parameter="shadow frusta" />
+ </menu_item_check>
+ <menu_item_check
+ label="Occlusion"
+ layout="topleft"
+ name="Occlusion">
+ <menu_item_check.on_check
+ function="Advanced.CheckInfoDisplay"
+ parameter="occlusion" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleInfoDisplay"
+ parameter="occlusion" />
+ </menu_item_check>
+ <menu_item_check
+ label="Render Batches"
+ layout="topleft"
+ name="Render Batches">
+ <menu_item_check.on_check
+ function="Advanced.CheckInfoDisplay"
+ parameter="render batches" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleInfoDisplay"
+ parameter="render batches" />
+ </menu_item_check>
+ <menu_item_check
+ label="Animated Textures"
+ layout="topleft"
+ name="Animated Textures">
+ <menu_item_check.on_check
+ function="Advanced.CheckInfoDisplay"
+ parameter="texture anim" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleInfoDisplay"
+ parameter="texture anim" />
+ </menu_item_check>
+ <menu_item_check
+ label="Texture Priority"
+ layout="topleft"
+ name="Texture Priority">
+ <menu_item_check.on_check
+ function="Advanced.CheckInfoDisplay"
+ parameter="texture priority" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleInfoDisplay"
+ parameter="texture priority" />
+ </menu_item_check>
+ <menu_item_check
+ label="Avatar Rendering Cost"
+ layout="topleft"
+ name="Avatar Rendering Cost">
+ <menu_item_check.on_check
+ function="Advanced.CheckInfoDisplay"
+ parameter="shame" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleInfoDisplay"
+ parameter="shame" />
+ </menu_item_check>
+ <menu_item_check
+ label="Texture Area (sqrt(A))"
+ layout="topleft"
+ name="Texture Area (sqrt(A))">
+ <menu_item_check.on_check
+ function="Advanced.CheckInfoDisplay"
+ parameter="texture area" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleInfoDisplay"
+ parameter="texture area" />
+ </menu_item_check>
+ <menu_item_check
+ label="Face Area (sqrt(A))"
+ layout="topleft"
+ name="Face Area (sqrt(A))">
+ <menu_item_check.on_check
+ function="Advanced.CheckInfoDisplay"
+ parameter="face area" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleInfoDisplay"
+ parameter="face area" />
+ </menu_item_check>
+ <menu_item_check
+ label="Lights"
+ layout="topleft"
+ name="Lights">
+ <menu_item_check.on_check
+ function="Advanced.CheckInfoDisplay"
+ parameter="lights" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleInfoDisplay"
+ parameter="lights" />
+ </menu_item_check>
+ <menu_item_check
+ label="Particles"
+ layout="topleft"
+ name="Particles">
+ <menu_item_check.on_check
+ function="Advanced.CheckInfoDisplay"
+ parameter="particles" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleInfoDisplay"
+ parameter="particles" />
+ </menu_item_check>
+ <menu_item_check
+ label="Composition"
+ layout="topleft"
+ name="Composition">
+ <menu_item_check.on_check
+ function="Advanced.CheckInfoDisplay"
+ parameter="composition" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleInfoDisplay"
+ parameter="composition" />
+ </menu_item_check>
+ <menu_item_check
+ label="Glow"
+ layout="topleft"
+ name="Glow">
+ <menu_item_check.on_check
+ function="Advanced.CheckInfoDisplay"
+ parameter="glow" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleInfoDisplay"
+ parameter="glow" />
+ </menu_item_check>
+ <menu_item_check
+ label="Show Depth Buffer"
+ layout="topleft"
+ name="Show Depth Buffer">
+ <menu_item_check.on_check
+ function="Advanced.CheckInfoDisplay"
+ parameter="ShowDepthBuffer" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleInfoDisplay"
+ parameter="ShowDepthBuffer" />
+ </menu_item_check>
+ <menu_item_check
+ label="Pick Render"
+ layout="topleft"
+ name="Pick Render">
+ <menu_item_check.on_check
+ function="Advanced.CheckInfoDisplay"
+ parameter="picking" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleInfoDisplay"
+ parameter="picking" />
+ </menu_item_check>
+ <menu_item_call
+ label="Vectorize Perf Test"
+ layout="topleft"
+ name="Vectorize Perf Test">
+ <menu_item_call.on_click
+ function="Advanced.VectorizePerfTest"
+ parameter="" />
+ </menu_item_call>
+ </menu>
+ <menu_item_check
+ label="Axes"
+ layout="topleft"
+ name="Axes">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="ShowAxes" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="ShowAxes" />
+ </menu_item_check>
+ <menu_item_check
+ label="Tangent Basis"
+ layout="topleft"
+ name="Tangent Basis">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="ShowTangentBasis" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="ShowTangentBasis" />
+ </menu_item_check>
+ <menu_item_call
+ label="Selected Texture Info Basis"
+ layout="topleft"
+ name="Selected Texture Info Basis"
+ shortcut="control|alt|shift|T">
+ <menu_item_call.on_click
+ function="Advanced.SelectedTextureInfo" />
+ </menu_item_call>
+ <menu_item_check
+ label="Wireframe"
+ layout="topleft"
+ name="Wireframe"
+ shortcut="control|shift|R">
+ <menu_item_check.on_check
+ function="Advanced.CheckWireframe"
+ parameter="Wireframe" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleWireframe" />
+ </menu_item_check>
+ <menu_item_check
+ label="Object-Object Occlusion"
+ layout="topleft"
+ name="Object-Object Occlusion"
+ shortcut="control|shift|O">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="UseOcclusion" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="UseOcclusion" />
+ <menu_item_check.on_enable
+ function="Advanced.EnableObjectObjectOcclusion" />
+ </menu_item_check>
+ <menu_item_check
+ label="Debug GL"
+ layout="topleft"
+ name="Debug GL">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="RenderDebugGL" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="RenderDebugGL" />
+ </menu_item_check>
+ <menu_item_check
+ label="Debug Pipeline"
+ layout="topleft"
+ name="Debug Pipeline">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="RenderDebugGL" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="RenderDebugGL" />
+ </menu_item_check>
+ <menu_item_check
+ label="Fast Alpha"
+ layout="topleft"
+ name="Fast Alpha">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="RenderDebugGL" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="RenderDebugGL" />
+ </menu_item_check>
+ <menu_item_check
+ label="Animation Textures"
+ layout="topleft"
+ name="Animation Textures">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="RenderDebugGL" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="RenderDebugGL" />
+ </menu_item_check>
+ <menu_item_check
+ label="Disable Textures"
+ layout="topleft"
+ name="Disable Textures">
+ <menu_item_check.on_check
+ function="Advanced.CheckDisableTextures"
+ parameter="DisableTextures" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleDisableTextures" />
+ </menu_item_check>
+ <menu_item_check
+ label="Render Attached Lights"
+ layout="topleft"
+ name="Render Attached Lights">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="RenderAttachedLights" />
+ <menu_item_check.on_click
+ function="Advanced.HandleAttchedLightParticles"
+ parameter="RenderAttachedLights" />
+ </menu_item_check>
+ <menu_item_check
+ label="Render Attached Particles"
+ layout="topleft"
+ name="Render Attached Particles">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="RenderAttachedParticles" />
+ <menu_item_check.on_click
+ function="Advanced.HandleAttchedLightParticles"
+ parameter="RenderAttachedParticles" />
+ </menu_item_check>
+ </menu>
+ <menu
+ create_jump_keys="true"
+ label="World"
+ layout="topleft"
+ name="World"
+ tear_off="true">
+ <menu_item_check
+ label="Sim Sun Override"
+ layout="topleft"
+ name="Sim Sun Override">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="SkyOverrideSimSunPosition" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="SkyOverrideSimSunPosition" />
+ </menu_item_check>
+ <menu_item_check
+ label="Cheesy Beacon"
+ layout="topleft"
+ name="Cheesy Beacon">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="CheesyBeacon" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="CheesyBeacon" />
+ </menu_item_check>
+ <menu_item_check
+ label="Fixed Weather"
+ layout="topleft"
+ name="Fixed Weather">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="FixedWeather" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="FixedWeather" />
+ </menu_item_check>
+ <menu_item_call
+ label="Dump Region Object Cache"
+ layout="topleft"
+ name="Dump Region Object Cache">
+ <menu_item_call.on_click
+ function="Advanced.DumpRegionObjectCache" />
+ </menu_item_call>
+ </menu>
+ <menu
+ create_jump_keys="true"
+ label="UI"
+ layout="topleft"
+ name="UI"
+ tear_off="true">
+ <menu_item_check
+ label="New Bottom Bar"
+ layout="topleft"
+ name="New Bottom Bar">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="BottomPanelNew" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="BottomPanelNew" />
+ </menu_item_check>
+ <menu_item_call
+ label="Web Browser Test"
+ layout="topleft"
+ name="Web Browser Test">
+ <menu_item_call.on_click
+ function="Advanced.WebBrowserTest" />
+ </menu_item_call>
+ <menu_item_call
+ label="Buy Currency Test"
+ layout="topleft"
+ name="Buy Currency Test">
+ <menu_item_call.on_click
+ function="Advanced.BuyCurrencyTest" />
+ </menu_item_call>
+ <menu_item_call
+ label="UI/Color Settings"
+ layout="topleft"
+ name="UI/Color Settings">
+ <menu_item_call.on_click
+ function="Advanced.ShowDebugSettings"
+ parameter="skin" />
+ </menu_item_call>
+ <menu_item_check
+ label="Editable UI"
+ layout="topleft"
+ name="Editable UI">
+ <menu_item_check.on_check
+ function="Advanced.CheckEditableUI" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleEditableUI" />
+ </menu_item_check>
+ <menu_item_call
+ label="Dump SelectMgr"
+ layout="topleft"
+ name="Dump SelectMgr">
+ <menu_item_call.on_click
+ function="Advanced.DumpSelectMgr" />
+ </menu_item_call>
+ <menu_item_call
+ label="Dump Inventory"
+ layout="topleft"
+ name="Dump Inventory">
+ <menu_item_call.on_click
+ function="Advanced.DumpInventory" />
+ </menu_item_call>
+ <menu_item_call
+ label="Dump Focus Holder"
+ layout="topleft"
+ name="Dump Focus Holder"
+ shortcut="control|alt|F">
+ <menu_item_call.on_click
+ function="Advanced.DumpFocusHolder" />
+ </menu_item_call>
+ <menu_item_call
+ label="Print Selected Object Info"
+ layout="topleft"
+ name="Print Selected Object Info"
+ shortcut="control|shift|P">
+ <menu_item_call.on_click
+ function="Advanced.PrintSelectedObjectInfo" />
+ </menu_item_call>
+ <menu_item_call
+ label="Print Agent Info"
+ layout="topleft"
+ name="Print Agent Info"
+ shortcut="shift|P">
+ <menu_item_call.on_click
+ function="Advanced.PrintAgentInfo" />
+ </menu_item_call>
+ <menu_item_call
+ label="Memory Stats"
+ layout="topleft"
+ name="Memory Stats"
+ shortcut="control|alt|shift|M">
+ <menu_item_call.on_click
+ function="Advanced.PrintTextureMemoryStats" />
+ </menu_item_call>
+ <menu_item_check
+ label="Double-ClickAuto-Pilot"
+ layout="topleft"
+ name="Double-ClickAuto-Pilot">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="DoubleClickAutoPilot" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="DoubleClickAutoPilot" />
+ </menu_item_check>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_check
+ label="Debug SelectMgr"
+ layout="topleft"
+ name="Debug SelectMgr">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="DebugSelectMgr" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="DebugSelectMgr" />
+ </menu_item_check>
+ <menu_item_check
+ label="Debug Clicks"
+ layout="topleft"
+ name="Debug Clicks">
+ <menu_item_check.on_check
+ function="Advanced.CheckDebugClicks"
+ parameter="DebugClicks" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleDebugClicks"
+ parameter="DebugClicks" />
+ </menu_item_check>
+ <menu_item_check
+ label="Debug Views"
+ layout="topleft"
+ name="Debug Views">
+ <menu_item_check.on_check
+ function="Advanced.CheckDebugViews" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleDebugViews" />
+ </menu_item_check>
+ <menu_item_check
+ label="Debug Name Tooltips"
+ layout="topleft"
+ name="Debug Name Tooltips">
+ <menu_item_check.on_check
+ function="Advanced.CheckXUINameTooltips"
+ parameter="XUINameTooltips" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleXUINameTooltips" />
+ </menu_item_check>
+ <menu_item_check
+ label="Debug Mouse Events"
+ layout="topleft"
+ name="Debug Mouse Events">
+ <menu_item_check.on_check
+ function="Advanced.CheckDebugMouseEvents"
+ parameter="MouseEvents" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleDebugMouseEvents" />
+ </menu_item_check>
+ <menu_item_check
+ label="Debug Keys"
+ layout="topleft"
+ name="Debug Keys">
+ <menu_item_check.on_check
+ function="Advanced.CheckDebugKeys"
+ parameter="DebugKeys" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleDebugKeys" />
+ </menu_item_check>
+ <menu_item_check
+ label="Debug WindowProc"
+ layout="topleft"
+ name="Debug WindowProc">
+ <menu_item_check.on_check
+ function="Advanced.CheckDebugWindowProc"
+ parameter="DebugWindowProc" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleDebugWindowProc"
+ parameter="DebugWindowProc" />
+ </menu_item_check>
+ </menu>
+ <menu
+ create_jump_keys="true"
+ label="XUI"
+ layout="topleft"
+ name="XUI"
+ tear_off="true">
+ <menu_item_call
+ label="Show Font Test"
+ layout="topleft"
+ name="Show Font Test">
+ <menu_item_call.on_click
+ function="Advanced.ShowFontTest" />
+ </menu_item_call>
+ <menu_item_call
+ label="Load from XML..."
+ layout="topleft"
+ name="Load from XML">
+ <menu_item_call.on_click
+ function="Advanced.LoadUIFromXML" />
+ </menu_item_call>
+ <menu_item_call
+ label="Save to XML..."
+ layout="topleft"
+ name="Save to XML">
+ <menu_item_call.on_click
+ function="Advanced.SaveUIToXML" />
+ </menu_item_call>
+ <menu_item_check
+ label="Show XUI Names"
+ layout="topleft"
+ name="Show XUI Names">
+ <menu_item_check.on_check
+ function="Advanced.CheckXUINames"
+ parameter="showUIname" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleXUINames" />
+ </menu_item_check>
+ </menu>
+ <menu
+ create_jump_keys="true"
+ label="Character"
+ layout="topleft"
+ name="Character"
+ tear_off="true">
+ <menu
+ create_jump_keys="true"
+ label="Grab Baked Texture"
+ layout="topleft"
+ name="Grab Baked Texture"
+ tear_off="true">
+ <menu_item_call
+ label="Iris"
+ layout="topleft"
+ name="Iris">
+ <menu_item_call.on_click
+ function="Advanced.GrabBakedTexture"
+ parameter="iris" />
+ <menu_item_call.on_enable
+ function="Advanced.EnableGrabBakedTexture" />
+ </menu_item_call>
+ <menu_item_call
+ label="Head"
+ layout="topleft"
+ name="Head">
+ <menu_item_call.on_click
+ function="Advanced.GrabBakedTexture"
+ parameter="head" />
+ <menu_item_call.on_enable
+ function="Advanced.EnableGrabBakedTexture" />
+ </menu_item_call>
+ <menu_item_call
+ label="Upper Body"
+ layout="topleft"
+ name="Upper Body">
+ <menu_item_call.on_click
+ function="Advanced.GrabBakedTexture"
+ parameter="upper" />
+ <menu_item_call.on_enable
+ function="Advanced.EnableGrabBakedTexture" />
+ </menu_item_call>
+ <menu_item_call
+ label="Lower Body"
+ layout="topleft"
+ name="Lower Body">
+ <menu_item_call.on_click
+ function="Advanced.GrabBakedTexture"
+ parameter="lower" />
+ <menu_item_call.on_enable
+ function="Advanced.EnableGrabBakedTexture" />
+ </menu_item_call>
+ <menu_item_call
+ label="Skirt"
+ layout="topleft"
+ name="Skirt">
+ <menu_item_call.on_click
+ function="Advanced.GrabBakedTexture"
+ parameter="skirt" />
+ <menu_item_call.on_enable
+ function="Advanced.EnableGrabBakedTexture" />
+ </menu_item_call>
+ <menu_item_call
+ label="Skirt"
+ layout="topleft"
+ name="Hair">
+ <menu_item_call.on_click
+ function="Advanced.GrabBakedTexture"
+ parameter="hair" />
+ <menu_item_call.on_enable
+ function="Advanced.EnableGrabBakedTexture" />
+ </menu_item_call>
+ </menu>
+ <menu
+ create_jump_keys="true"
+ label="Character Tests"
+ layout="topleft"
+ name="Character Tests"
+ tear_off="true">
+ <menu_item_call
+ label="Appearance To XML"
+ layout="topleft"
+ name="Appearance To XML">
+ <menu_item_call.on_click
+ function="Advanced.AppearanceToXML" />
+ </menu_item_call>
+ <menu_item_call
+ label="Toggle Character Geometry"
+ layout="topleft"
+ name="Toggle Character Geometry">
+ <menu_item_call.on_click
+ function="Advanced.ToggleCharacterGeometry" />
+ <menu_item_call.on_enable
+ function="EnableGodCustomerService" />
+ </menu_item_call>
+ <menu_item_call
+ label="Test Male"
+ layout="topleft"
+ name="Test Male">
+ <menu_item_call.on_click
+ function="Advanced.TestMale" />
+ </menu_item_call>
+ <menu_item_call
+ label="Test Female"
+ layout="topleft"
+ name="Test Female">
+ <menu_item_call.on_click
+ function="Advanced.TestFemale" />
+ </menu_item_call>
+ <menu_item_call
+ label="Toggle PG"
+ layout="topleft"
+ name="Toggle PG">
+ <menu_item_call.on_click
+ function="Advanced.TogglePG" />
+ </menu_item_call>
+ <menu_item_check
+ label="Allow Select Avatar"
+ layout="topleft"
+ name="Allow Select Avatar">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="AllowSelectAvatar" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="AllowSelectAvatar" />
+ </menu_item_check>
+ </menu>
+ <menu_item_call
+ label="Force Params to Default"
+ layout="topleft"
+ name="Force Params to Default">
+ <menu_item_call.on_click
+ function="Advanced.ForceParamsToDefault" />
+ </menu_item_call>
+ <menu_item_check
+ label="Animation Info"
+ layout="topleft"
+ name="Animation Info">
+ <menu_item_check.on_check
+ function="Advanced.CheckAnimationInfo"
+ parameter="AnimationInfo" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleAnimationInfo"
+ parameter="" />
+ </menu_item_check>
+ <menu_item_check
+ label="Slow Motion Animations"
+ layout="topleft"
+ name="Slow Motion Animations">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="SlowMotionAnimation" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="SlowMotionAnimation" />
+ </menu_item_check>
+ <menu_item_check
+ label="Show Look At"
+ layout="topleft"
+ name="Show Look At">
+ <menu_item_check.on_check
+ function="Advanced.CheckShowLookAt"
+ parameter="ShowLookAt" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleShowLookAt" />
+ </menu_item_check>
+ <menu_item_check
+ label="Show Point At"
+ layout="topleft"
+ name="Show Point At">
+ <menu_item_check.on_check
+ function="Advanced.CheckShowPointAt"
+ parameter="ShowPointAt" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleShowPointAt" />
+ </menu_item_check>
+ <menu_item_check
+ label="Debug Joint Updates"
+ layout="topleft"
+ name="Debug Joint Updates">
+ <menu_item_check.on_check
+ function="Advanced.CheckDebugJointUpdates"
+ parameter="DebugJointUpdates" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleDebugJointUpdates" />
+ </menu_item_check>
+ <menu_item_check
+ label="Disable LOD"
+ layout="topleft"
+ name="Disable LOD">
+ <menu_item_check.on_check
+ function="Advanced.CheckDisableLOD"
+ parameter="DisableLOD" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleDisableLOD" />
+ </menu_item_check>
+ <menu_item_check
+ label="Debug Character Vis"
+ layout="topleft"
+ name="Debug Character Vis">
+ <menu_item_check.on_check
+ function="Advanced.CheckDebugCharacterVis"
+ parameter="DebugCharacterVis" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleDebugCharacterVis" />
+ </menu_item_check>
+ <menu_item_check
+ label="Show Collision Skeleton"
+ layout="topleft"
+ name="Show Collision Skeleton">
+ <menu_item_check.on_check
+ function="Advanced.CheckInfoDisplay"
+ parameter="collision skeleton" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleInfoDisplay"
+ parameter="collision skeleton" />
+ </menu_item_check>
+ <menu_item_check
+ label="Display Agent Target"
+ layout="topleft"
+ name="Display Agent Target">
+ <menu_item_check.on_check
+ function="Advanced.CheckInfoDisplay"
+ parameter="agent target" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleInfoDisplay"
+ parameter="agent target" />
+ </menu_item_check>
+ <!-- <menu_item_check
+ label="Debug Rotation"
+ layout="topleft"
+ name="Debug Rotation">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="DebugAvatarRotation" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="DebugAvatarRotation" />
+ </menu_item_check> -->
+ <menu_item_call
+ label="Dump Attachments"
+ layout="topleft"
+ name="Dump Attachments">
+ <menu_item_call.on_click
+ function="Advanced.DumpAttachments" />
+ </menu_item_call>
+ <menu_item_call
+ label="Debug Avatar Textures"
+ layout="topleft"
+ name="Debug Avatar Textures"
+ shortcut="control|alt|shift|A">
+ <menu_item_call.on_click
+ function="Advanced.DebugAvatarTextures" />
+ </menu_item_call>
+ <menu_item_call
+ label="Dump Local Textures"
+ layout="topleft"
+ name="Dump Local Textures"
+ shortcut="alt|shift|M">
+ <menu_item_call.on_click
+ function="Advanced.DumpAvatarLocalTextures" />
+ </menu_item_call>
+ </menu>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_check
+ label="Debug Permissions"
+ layout="topleft"
+ name="DebugPermissions">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="DebugPermissions" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="DebugPermissions" />
+ </menu_item_check>
+ <menu_item_call
+ label="Compress Images"
+ layout="topleft"
+ name="Compress Images">
+ <menu_item_call.on_click
+ function="Advanced.CompressImage" />
+ </menu_item_call>
+ <menu_item_check
+ label="Console Window"
+ layout="topleft"
+ name="Console Window">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="ShowConsoleWindow" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="ShowConsoleWindow" />
+ </menu_item_check>
+ </menu>
+ <menu
+ create_jump_keys="true"
+ label="Admin"
+ layout="topleft"
+ name="Admin"
+ tear_off="true"
+ visible="false">
+ <menu
+ create_jump_keys="true"
+ label="Object"
+ layout="topleft"
+ tear_off="true">
+ <menu_item_call
+ label="Take Copy"
+ layout="topleft"
+ name="Take Copy"
+ shortcut="control|alt|shift|O">
+ <menu_item_call.on_click
+ function="Admin.ForceTakeCopy" />
+ <menu_item_call.on_enable
+ function="EnableGodCustomerService" />
+ </menu_item_call>
+ <menu_item_call
+ label="Force Owner To Me"
+ layout="topleft"
+ name="Force Owner To Me">
+ <menu_item_call.on_click
+ function="Admin.HandleObjectOwnerSelf" />
+ <menu_item_call.on_enable
+ function="EnableGodCustomerService" />
+ </menu_item_call>
+ <menu_item_call
+ label="Force Owner Permissive"
+ layout="topleft"
+ name="Force Owner Permissive">
+ <menu_item_call.on_click
+ function="Admin.HandleObjectOwnerPermissive" />
+ <menu_item_call.on_enable
+ function="EnableGodCustomerService" />
+ </menu_item_call>
+ <menu_item_call
+ label="Delete"
+ layout="topleft"
+ name="Delete"
+ shortcut="control|alt|shift|Del">
+ <menu_item_call.on_click
+ function="Admin.HandleForceDelete" />
+ <menu_item_call.on_enable
+ function="EnableGodCustomerService" />
+ </menu_item_call>
+ <menu_item_call
+ label="Lock"
+ layout="topleft"
+ name="Lock"
+ shortcut="control|alt|shift|L">
+ <menu_item_call.on_click
+ function="Admin.HandleObjectLock" />
+ <menu_item_call.on_enable
+ function="EnableGodCustomerService" />
+ </menu_item_call>
+ <menu_item_call
+ label="Get Assets IDs"
+ layout="topleft"
+ name="Get Assets IDs"
+ shortcut="control|alt|shift|I">
+ <menu_item_call.on_click
+ function="Admin.HandleObjectAssetIDs" />
+ <menu_item_call.on_enable
+ function="EnableGodCustomerService" />
+ </menu_item_call>
+ </menu>
+ <menu
+ create_jump_keys="true"
+ label="Parcel"
+ layout="topleft"
+ name="Parcel"
+ tear_off="true">
+ <menu_item_call
+ label="Owner To Me"
+ layout="topleft"
+ name="Owner To Me">
+ <menu_item_call.on_click
+ function="Admin.HandleForceParcelOwnerToMe" />
+ <menu_item_call.on_enable
+ function="EnableGodCustomerService" />
+ </menu_item_call>
+ <menu_item_call
+ label="Set to Linden Content"
+ layout="topleft"
+ name="Set to Linden Content"
+ shortcut="control|alt|shift|C">
+ <menu_item_call.on_click
+ function="Admin.HandleForceParcelToContent" />
+ <menu_item_call.on_enable
+ function="EnableGodCustomerService" />
+ </menu_item_call>
+ <menu_item_call
+ label="Claim Public Land"
+ layout="topleft"
+ name="Claim Public Land">
+ <menu_item_call.on_click
+ function="Admin.HandleClaimPublicLand" />
+ <menu_item_call.on_enable
+ function="EnableGodCustomerService" />
+ </menu_item_call>
+ </menu>
+ <menu
+ create_jump_keys="true"
+ label="Region"
+ layout="topleft"
+ name="Region"
+ tear_off="true">
+ <menu_item_call
+ label="Dump Temp Asset Data"
+ layout="topleft"
+ name="Dump Temp Asset Data">
+ <menu_item_call.on_click
+ function="Admin.HandleRegionDumpTempAssetData" />
+ <menu_item_call.on_enable
+ function="EnableGodCustomerService" />
+ </menu_item_call>
+ <menu_item_call
+ label="Save Region State"
+ layout="topleft"
+ name="Save Region State">
+ <menu_item_call.on_click
+ function="Admin.OnSaveState" />
+ <menu_item_call.on_enable
+ function="EnableGodCustomerService" />
+ </menu_item_call>
+ </menu>
+ <menu_item_call
+ label="God Tools"
+ layout="topleft"
+ name="God Tools">
+ <menu_item_call.on_click
+ function="Admin.ShowGodTools" />
+ <menu_item_call.on_enable
+ function="EnableGodCustomerService" />
+ </menu_item_call>
+ </menu>
+ <menu
+ create_jump_keys="true"
+ label="Admin"
+ layout="topleft"
+ name="Deprecated"
+ tear_off="true"
+ visible="false">
+ <menu
+ create_jump_keys="true"
+ label="Attach Object"
+ layout="topleft"
+ mouse_opaque="false"
+ name="Attach Object"
+ tear_off="true" />
+ <menu
+ create_jump_keys="true"
+ label="Detach Object"
+ layout="topleft"
+ mouse_opaque="false"
+ name="Detach Object"
+ tear_off="true" />
+ <menu
+ create_jump_keys="true"
+ label="Take Off Clothing"
+ layout="topleft"
+ mouse_opaque="false"
+ name="Take Off Clothing"
+ tear_off="true">
+ <menu_item_call
+ label="Shirt"
+ layout="topleft"
+ name="Shirt">
+ <menu_item_call.on_click
+ function="Edit.TakeOff"
+ parameter="shirt" />
+ <menu_item_call.on_enable
+ function="Edit.EnableTakeOff"
+ parameter="shirt" />
+ </menu_item_call>
+ <menu_item_call
+ label="Pants"
+ layout="topleft"
+ name="Pants">
+ <menu_item_call.on_click
+ function="Edit.TakeOff"
+ parameter="pants" />
+ <menu_item_call.on_enable
+ function="Edit.EnableTakeOff"
+ parameter="pants" />
+ </menu_item_call>
+ <menu_item_call
+ label="Shoes"
+ layout="topleft"
+ name="Shoes">
+ <menu_item_call.on_click
+ function="Edit.TakeOff"
+ parameter="shoes" />
+ <menu_item_call.on_enable
+ function="Edit.EnableTakeOff"
+ parameter="shoes" />
+ </menu_item_call>
+ <menu_item_call
+ label="Socks"
+ layout="topleft"
+ name="Socks">
+ <menu_item_call.on_click
+ function="Edit.TakeOff"
+ parameter="socks" />
+ <menu_item_call.on_enable
+ function="Edit.EnableTakeOff"
+ parameter="socks" />
+ </menu_item_call>
+ <menu_item_call
+ label="Jacket"
+ layout="topleft"
+ name="Jacket">
+ <menu_item_call.on_click
+ function="Edit.TakeOff"
+ parameter="jacket" />
+ <menu_item_call.on_enable
+ function="Edit.EnableTakeOff"
+ parameter="jacket" />
+ </menu_item_call>
+ <menu_item_call
+ label="Gloves"
+ layout="topleft"
+ name="Gloves">
+ <menu_item_call.on_click
+ function="Edit.TakeOff"
+ parameter="gloves" />
+ <menu_item_call.on_enable
+ function="Edit.EnableTakeOff"
+ parameter="gloves" />
+ </menu_item_call>
+ <menu_item_call
+ label="Undershirt"
+ layout="topleft"
+ name="Menu Undershirt">
+ <menu_item_call.on_click
+ function="Edit.TakeOff"
+ parameter="undershirt" />
+ <menu_item_call.on_enable
+ function="Edit.EnableTakeOff"
+ parameter="undershirt" />
+ </menu_item_call>
+ <menu_item_call
+ label="Underpants"
+ layout="topleft"
+ name="Menu Underpants">
+ <menu_item_call.on_click
+ function="Edit.TakeOff"
+ parameter="underpants" />
+ <menu_item_call.on_enable
+ function="Edit.EnableTakeOff"
+ parameter="underpants" />
+ </menu_item_call>
+ <menu_item_call
+ label="Skirt"
+ layout="topleft"
+ name="Skirt">
+ <menu_item_call.on_click
+ function="Edit.TakeOff"
+ parameter="skirt" />
+ <menu_item_call.on_enable
+ function="Edit.EnableTakeOff"
+ parameter="skirt" />
+ </menu_item_call>
+ <menu_item_call
+ label="Alpha"
+ layout="topleft"
+ name="Alpha">
+ <menu_item_call.on_click
+ function="Edit.TakeOff"
+ parameter="alpha" />
+ <menu_item_call.on_enable
+ function="Edit.EnableTakeOff"
+ parameter="alpha" />
+ </menu_item_call>
+ <menu_item_call
+ label="Tattoo"
+ layout="topleft"
+ name="Tattoo">
+ <menu_item_call.on_click
+ function="Edit.TakeOff"
+ parameter="tattoo" />
+ <menu_item_call.on_enable
+ function="Edit.EnableTakeOff"
+ parameter="tattoo" />
+ </menu_item_call>
+ <menu_item_call
+ label="All Clothes"
+ layout="topleft"
+ name="All Clothes">
+ <menu_item_call.on_click
+ function="Edit.TakeOff"
+ parameter="all" />
+ </menu_item_call>
+ </menu>
+ <menu_item_check
+ label="Show Toolbar"
+ layout="topleft"
+ name="Show Toolbar">
+ <menu_item_check.on_check
+ function="FloaterVisible"
+ parameter="toolbar" />
+ <menu_item_check.on_click
+ function="ShowFloater"
+ parameter="toolbar" />
+ </menu_item_check>
+ <menu
+ create_jump_keys="true"
+ label="Help"
+ layout="topleft"
+ name="Help"
+ tear_off="true">
+ <menu_item_call
+ label="Official Linden Blog"
+ layout="topleft"
+ name="Official Linden Blog">
+ <menu_item_call.on_click
+ function="PromptShowURL"
+ parameter="WebLaunchSupportWiki,http://blog.secondlife.com/" />
+ </menu_item_call>
+ <menu_item_call
+ label="Scripting Portal"
+ layout="topleft"
+ name="Scripting Portal">
+ <menu_item_call.on_click
+ function="PromptShowURL"
+ parameter="WebLaunchLSLWiki,http://wiki.secondlife.com/wiki/LSL_Portal" />
+ </menu_item_call>
+ <menu
+ create_jump_keys="true"
+ label="Bug Reporting"
+ layout="topleft"
+ name="Bug Reporting"
+ tear_off="true">
+ <menu_item_call
+ label="Public Issue Tracker"
+ layout="topleft"
+ name="Public Issue Tracker">
+ <menu_item_call.on_click
+ function="PromptShowURL"
+ parameter="WebLaunchPublicIssue,http://jira.secondlife.com" />
+ </menu_item_call>
+ <menu_item_call
+ label="Public Issue Tracker Help"
+ layout="topleft"
+ name="Publc Issue Tracker Help">
+ <menu_item_call.on_click
+ function="PromptShowURL"
+ parameter="WebLaunchPublicIssueHelp,http://wiki.secondlife.com/wiki/Issue_tracker" />
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Bug Reporting 101"
+ layout="topleft"
+ name="Bug Reporing 101">
+ <menu_item_call.on_click
+ function="PromptShowURL"
+ parameter="WebLaunchBugReport101,http://wiki.secondlife.com/wiki/Bug_Reporting_101" />
+ </menu_item_call>
+ <menu_item_call
+ label="Security Issues"
+ layout="topleft"
+ name="Security Issues">
+ <menu_item_call.on_click
+ function="PromptShowURL"
+ parameter="WebLaunchSecurityIssues,http://wiki.secondlife.com/wiki/Security_issues" />
+ </menu_item_call>
+ <menu_item_call
+ label="QA Wiki"
+ layout="topleft"
+ name="QA Wiki">
+ <menu_item_call.on_click
+ function="PromptShowURL"
+ parameter="WebLaunchQAWiki,http://wiki.secondlife.com/wiki/QA_Portal" />
+ </menu_item_call>
+ </menu>
+ </menu>
+ </menu>
+</menu_bar>
diff --git a/indra/newview/skins/default/xui/en/mime_types.xml b/indra/newview/skins/default/xui/en/mime_types.xml
new file mode 100644
index 0000000000..e3d102148a
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/mime_types.xml
@@ -0,0 +1,456 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<mimetypes name="default">
+ <defaultlabel>
+ (Unknown)
+ </defaultlabel>
+ <defaultwidget>
+ none
+ </defaultwidget>
+ <defaultimpl>
+ LLMediaImplLLMozLib
+ </defaultimpl>
+ <widgetset name="web">
+ <label name="web_label">
+ Web Content
+ </label>
+ <icon>
+ icn_media_web.tga
+ </icon>
+ <default_type>
+ text/html
+ </default_type>
+ <tooltip name="web_tooltip">
+ This location has Web content
+ </tooltip>
+ <playtip name="web_playtip">
+ Show Web content
+ </playtip>
+ <allow_resize>
+ true
+ </allow_resize>
+ <allow_looping>
+ false
+ </allow_looping>
+ </widgetset>
+ <widgetset name="movie">
+ <label name="movie_label">
+ Movie
+ </label>
+ <default_type>
+ video/*
+ </default_type>
+ <icon>
+ icn_media_movie.tga
+ </icon>
+ <tooltip name="movie_tooltip">
+ There is a movie to play here
+ </tooltip>
+ <playtip name="movie_playtip">
+ Play movie
+ </playtip>
+ <allow_resize>
+ false
+ </allow_resize>
+ <allow_looping>
+ 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>
+ <widgetset name="image">
+ <label name="image_label">
+ Image
+ </label>
+ <icon>
+ icn_media_web.tga
+ </icon>
+ <default_type>
+ image/*
+ </default_type>
+ <tooltip name="image_tooltip">
+ There is an image at this location
+ </tooltip>
+ <playtip name="image_playtip">
+ View this location&apos;s image
+ </playtip>
+ <allow_resize>
+ false
+ </allow_resize>
+ <allow_looping>
+ false
+ </allow_looping>
+ </widgetset>
+ <widgetset name="audio">
+ <label name="audio_label">
+ Audio
+ </label>
+ <icon>
+ icn_media_web.tga
+ </icon>
+ <default_type>
+ audio/*
+ </default_type>
+ <tooltip name="audio_tooltip">
+ There is audio at this location
+ </tooltip>
+ <playtip name="audio_playtip">
+ Play this location&apos;s audio
+ </playtip>
+ <allow_resize>
+ false
+ </allow_resize>
+ <allow_looping>
+ true
+ </allow_looping>
+ </widgetset>
+ <scheme name="rtsp">
+ <label name="rtsp_label">
+ Real Time Streaming
+ </label>
+ <widgettype>
+ movie
+ </widgettype>
+ </scheme>
+ <mimetype name="blank">
+ <label name="blank_label">
+ - None -
+ </label>
+ <widgettype>
+ none
+ </widgettype>
+ <impl>
+ LLMediaImplQuickTime
+ </impl>
+ </mimetype>
+ <mimetype name="none/none">
+ <label name="none/none_label">
+ - None -
+ </label>
+ <widgettype>
+ none
+ </widgettype>
+ </mimetype>
+ <mimetype name="audio/*">
+ <label name="audio2_label">
+ Audio
+ </label>
+ <widgettype>
+ audio
+ </widgettype>
+ </mimetype>
+ <mimetype name="video/*">
+ <label name="video2_label">
+ Video
+ </label>
+ <widgettype>
+ movie
+ </widgettype>
+ </mimetype>
+ <mimetype name="image/*">
+ <label name="image2_label">
+ Image
+ </label>
+ <widgettype>
+ image
+ </widgettype>
+ </mimetype>
+ <mimetype menu="1" name="video/vnd.secondlife.qt.legacy">
+ <label name="vnd.secondlife.qt.legacy_label">
+ Movie (QuickTime)
+ </label>
+ <widgettype>
+ movie
+ </widgettype>
+ <impl>
+ LLMediaImplQuickTime
+ </impl>
+ </mimetype>
+ <mimetype name="application/javascript">
+ <label name="application/javascript_label">
+ Javascript
+ </label>
+ <widgettype>
+ web
+ </widgettype>
+ </mimetype>
+ <mimetype name="application/ogg">
+ <label name="application/ogg_label">
+ Ogg Audio/Video
+ </label>
+ <widgettype>
+ audio
+ </widgettype>
+ </mimetype>
+ <mimetype name="application/pdf">
+ <label name="application/pdf_label">
+ PDF Document
+ </label>
+ <widgettype>
+ image
+ </widgettype>
+ </mimetype>
+ <mimetype name="application/postscript">
+ <label name="application/postscript_label">
+ Postscript Document
+ </label>
+ <widgettype>
+ image
+ </widgettype>
+ </mimetype>
+ <mimetype name="application/rtf">
+ <label name="application/rtf_label">
+ Rich Text (RTF)
+ </label>
+ <widgettype>
+ image
+ </widgettype>
+ </mimetype>
+ <mimetype name="application/smil">
+ <label name="application/smil_label">
+ Synchronized Multimedia Integration Language (SMIL)
+ </label>
+ <widgettype>
+ movie
+ </widgettype>
+ </mimetype>
+ <mimetype name="application/xhtml+xml">
+ <label name="application/xhtml+xml_label">
+ Web Page (XHTML)
+ </label>
+ <widgettype>
+ web
+ </widgettype>
+ </mimetype>
+ <mimetype name="application/x-director">
+ <label name="application/x-director_label">
+ Macromedia Director
+ </label>
+ <widgettype>
+ image
+ </widgettype>
+ </mimetype>
+ <mimetype name="application/x-shockwave-flash">
+ <label name="application/x-shockwave-flash_label">
+ Flash
+ </label>
+ <widgettype>
+ image
+ </widgettype>
+ </mimetype>
+ <mimetype name="audio/mid">
+ <label name="audio/mid_label">
+ Audio (MIDI)
+ </label>
+ <widgettype>
+ audio
+ </widgettype>
+ </mimetype>
+ <mimetype name="audio/mpeg">
+ <label name="audio/mpeg_label">
+ Audio (MP3)
+ </label>
+ <widgettype>
+ audio
+ </widgettype>
+ </mimetype>
+ <mimetype name="audio/x-aiff">
+ <label name="audio/x-aiff_label">
+ Audio (AIFF)
+ </label>
+ <widgettype>
+ audio
+ </widgettype>
+ </mimetype>
+ <mimetype name="audio/x-wav">
+ <label name="audio/x-wav_label">
+ Audio (WAV)
+ </label>
+ <widgettype>
+ audio
+ </widgettype>
+ </mimetype>
+ <mimetype menu="1" name="image/bmp">
+ <label name="image/bmp_label">
+ Image (BMP)
+ </label>
+ <widgettype>
+ image
+ </widgettype>
+ <impl>
+ LLMediaImplLLMozLib
+ </impl>
+ </mimetype>
+ <mimetype menu="1" name="image/gif">
+ <label name="image/gif_label">
+ Image (GIF)
+ </label>
+ <widgettype>
+ image
+ </widgettype>
+ <impl>
+ LLMediaImplLLMozLib
+ </impl>
+ </mimetype>
+ <mimetype menu="1" name="image/jpeg">
+ <label name="image/jpeg_label">
+ Image (JPEG)
+ </label>
+ <widgettype>
+ image
+ </widgettype>
+ <impl>
+ LLMediaImplLLMozLib
+ </impl>
+ </mimetype>
+ <mimetype menu="1" name="image/png">
+ <label name="image/png_label">
+ Image (PNG)
+ </label>
+ <widgettype>
+ image
+ </widgettype>
+ <impl>
+ LLMediaImplLLMozLib
+ </impl>
+ </mimetype>
+ <mimetype name="image/svg+xml">
+ <label name="image/svg+xml_label">
+ Image (SVG)
+ </label>
+ <widgettype>
+ image
+ </widgettype>
+ <impl>
+ LLMediaImplLLMozLib
+ </impl>
+ </mimetype>
+ <mimetype menu="1" name="image/tiff">
+ <label name="image/tiff_label">
+ Image (TIFF)
+ </label>
+ <widgettype>
+ image
+ </widgettype>
+ <impl>
+ LLMediaImplLLMozLib
+ </impl>
+ </mimetype>
+ <mimetype menu="1" name="text/html">
+ <label name="text/html_label">
+ Web Page
+ </label>
+ <widgettype>
+ web
+ </widgettype>
+ <impl>
+ LLMediaImplLLMozLib
+ </impl>
+ </mimetype>
+ <mimetype menu="1" name="text/plain">
+ <label name="text/plain_label">
+ Text
+ </label>
+ <widgettype>
+ text
+ </widgettype>
+ <impl>
+ LLMediaImplLLMozLib
+ </impl>
+ </mimetype>
+ <mimetype name="text/xml">
+ <label name="text/xml_label">
+ XML
+ </label>
+ <widgettype>
+ text
+ </widgettype>
+ <impl>
+ LLMediaImplLLMozLib
+ </impl>
+ </mimetype>
+ <mimetype menu="1" name="video/mpeg">
+ <label name="video/mpeg_label">
+ Movie (MPEG)
+ </label>
+ <widgettype>
+ movie
+ </widgettype>
+ <impl>
+ LLMediaImplQuickTime
+ </impl>
+ </mimetype>
+ <mimetype name="video/mp4">
+ <label name="video/mp4_label">
+ Movie (MP4)
+ </label>
+ <widgettype>
+ movie
+ </widgettype>
+ <impl>
+ LLMediaImplQuickTime
+ </impl>
+ </mimetype>
+ <mimetype menu="1" name="video/quicktime">
+ <label name="video/quicktime_label">
+ Movie (QuickTime)
+ </label>
+ <widgettype>
+ movie
+ </widgettype>
+ <impl>
+ LLMediaImplQuickTime
+ </impl>
+ </mimetype>
+ <mimetype name="video/x-ms-asf">
+ <label name="video/x-ms-asf_label">
+ Movie (Windows Media ASF)
+ </label>
+ <widgettype>
+ movie
+ </widgettype>
+ <impl>
+ LLMediaImplQuickTime
+ </impl>
+ </mimetype>
+ <mimetype name="video/x-ms-wmv">
+ <label name="video/x-ms-wmv_label">
+ Movie (Windows Media WMV)
+ </label>
+ <widgettype>
+ movie
+ </widgettype>
+ <impl>
+ LLMediaImplQuickTime
+ </impl>
+ </mimetype>
+ <mimetype menu="1" name="video/x-msvideo">
+ <label name="video/x-msvideo_label">
+ Movie (AVI)
+ </label>
+ <widgettype>
+ movie
+ </widgettype>
+ <impl>
+ LLMediaImplQuickTime
+ </impl>
+ </mimetype>
+</mimetypes>
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
new file mode 100644
index 0000000000..47b21dc64d
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -0,0 +1,6470 @@
+<?xml version="1.0" ?><notifications>
+
+ <global name="skipnexttime">
+
+ Don&apos;t show me this again
+ </global>
+
+ <global name="alwayschoose">
+
+ Always choose this option
+ </global>
+
+ <global name="implicitclosebutton">
+ Close
+ </global>
+
+ <template name="okbutton">
+ <form>
+ <button
+ default="true"
+ index="0"
+ name="OK"
+ text="$yestext"/>
+ </form>
+ </template>
+
+ <template name="okignore">
+ <form>
+ <button
+ default="true"
+ index="0"
+ name="OK"
+ text="$yestext"/>
+ <ignore text="$ignoretext"/>
+ </form>
+ </template>
+
+ <template name="okcancelbuttons">
+ <form>
+ <button
+ default="true"
+ index="0"
+ name="OK"
+ text="$yestext"/>
+ <button
+ index="1"
+ name="Cancel"
+ text="$notext"/>
+ </form>
+ </template>
+
+ <template name="okcancelignore">
+ <form>
+ <button
+ default="true"
+ index="0"
+ name="OK"
+ text="$yestext"/>
+ <button
+ index="1"
+ name="Cancel"
+ text="$notext"/>
+ <ignore text="$ignoretext"/>
+ </form>
+ </template>
+
+ <template name="okhelpbuttons">
+ <form>
+ <button
+ default="true"
+ index="0"
+ name="OK"
+ text="$yestext"/>
+ <button
+ index="1"
+ name="Help"
+ text="$helptext"/>
+ </form>
+ </template>
+
+ <template name="yesnocancelbuttons">
+ <form>
+ <button
+ default="true"
+ index="0"
+ name="Yes"
+ text="$yestext"/>
+ <button
+ index="1"
+ name="No"
+ text="$notext"/>
+ <button
+ index="2"
+ name="Cancel"
+ text="$canceltext"/>
+ </form>
+ </template>
+
+ <notification
+ functor="GenericAcknowledge"
+ icon="alertmodal.tga"
+ name="MissingAlert"
+ label="Unknown Alert Message"
+ type="alertmodal">
+Your version of Second Life does not know how to display the alert message it just received.
+
+Error details: The alert called &apos;[_NAME]&apos; was not found in notifications.xml.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="FloaterNotFound"
+ type="alertmodal">
+Floater error: Could not find the following controls:
+
+[CONTROLS]
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="TutorialNotFound"
+ type="alertmodal">
+No tutorial is currently available.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="GenericAlert"
+ type="alertmodal">
+[MESSAGE]
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="GenericAlertYesCancel"
+ type="alertmodal">
+[MESSAGE]
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="Yes"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="BadInstallation"
+ type="alertmodal">
+An error occurred while updating Second Life. Please download the latest version from secondlife.com.
+ <usetemplate
+ name="okbutton"
+ yestext="Ok"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="LoginFailedNoNetwork"
+ type="alertmodal">
+Network Error: Could not establish a connection.
+&apos;[DIAGNOSTIC]&apos;
+Please check your network connection.
+ <usetemplate
+ name="okbutton"
+ yestext="Ok"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="MessageTemplateNotFound"
+ type="alertmodal">
+Message Template [PATH] not found.
+ <usetemplate
+ name="okbutton"
+ yestext="Ok"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="WearableSave"
+ type="alertmodal">
+Save changes to current clothing/body part?
+ <usetemplate
+ canceltext="Cancel"
+ name="yesnocancelbuttons"
+ notext="Don&apos;t Save"
+ yestext="Save"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CompileQueueSaveText"
+ type="alertmodal">
+There was a problem uploading the text for a script due to the following reason: [REASON]. Please try again later.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CompileQueueSaveBytecode"
+ type="alertmodal">
+There was a problem uploading the compiled script due to the following reason: [REASON]. Please try again later.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="WriteAnimationFail"
+ type="alertmodal">
+There was a problem writing animation data. Please try again later.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="UploadAuctionSnapshotFail"
+ type="alertmodal">
+There was a problem uploading the auction snapshot due to the following reason: [REASON]
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="UnableToViewContentsMoreThanOne"
+ type="alertmodal">
+Unable to view the contents of more than one item at a time.
+Please select only one object and try again.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="SaveClothingBodyChanges"
+ type="alertmodal">
+Save all changes to clothing/body parts?
+ <usetemplate
+ canceltext="Cancel"
+ name="yesnocancelbuttons"
+ notext="Don&apos;t Save"
+ yestext="Save All"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="GrantModifyRights"
+ type="alertmodal">
+Granting modify rights to another resident allows them to change, delete or take ANY objects you may have in-world. Be VERY careful when handing out this permission.
+Do you want to grant modify rights for [FIRST_NAME] [LAST_NAME]?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="No"
+ yestext="Yes"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="GrantModifyRightsMultiple"
+ type="alertmodal">
+Granting modify rights to another resident allows them to change ANY objects you may have in-world. Be VERY careful when handing out this permission.
+Do you want to grant modify rights for the selected Residents?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="No"
+ yestext="Yes"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="RevokeModifyRights"
+ type="alertmodal">
+Do you want to revoke modify rights for [FIRST_NAME] [LAST_NAME]?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="No"
+ yestext="Yes"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="RevokeModifyRightsMultiple"
+ type="alertmodal">
+Do you want to revoke modify rights for the selected Residents?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="No"
+ yestext="Yes"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="UnableToCreateGroup"
+ type="alertmodal">
+Unable to create group.
+[MESSAGE]
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="PanelGroupApply"
+ type="alertmodal">
+[NEEDS_APPLY_MESSAGE]
+[WANT_APPLY_MESSAGE]
+ <usetemplate
+ canceltext="Cancel"
+ name="yesnocancelbuttons"
+ notext="Ignore Changes"
+ yestext="Apply Changes"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="MustSpecifyGroupNoticeSubject"
+ type="alertmodal">
+You must specify a subject to send a group notice.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="AddGroupOwnerWarning"
+ type="alertmodal">
+You are about to add group members to the role of [ROLE_NAME].
+Members cannot be removed from that role.
+The members must resign from the role themselves.
+Are you sure you want to continue?
+ <usetemplate
+ ignoretext="When adding group members to the owner role"
+ name="okcancelignore"
+ notext="No"
+ yestext="Yes"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="AssignDangerousActionWarning"
+ type="alertmodal">
+You are about to add the Ability &apos;[ACTION_NAME]&apos; to the Role &apos;[ROLE_NAME]&apos;.
+
+ *WARNING*
+ Any Member in a Role with this Ability can assign themselves -- and any other member -- to Roles that have more powers than they currently have, potentially elevating themselves to near-Owner power. Be sure you know what you&apos;re doing before assigning this Ability.
+
+Add this Ability to &apos;[ROLE_NAME]&apos;?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="No"
+ yestext="Yes"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="AssignDangerousAbilityWarning"
+ type="alertmodal">
+You are about to add the Ability &apos;[ACTION_NAME]&apos; to the Role &apos;[ROLE_NAME]&apos;.
+
+ *WARNING*
+ Any Member in a Role with this Ability can assign themselves -- and any other member -- all Abilities, elevating themselves to near-Owner power.
+
+Add this Ability to &apos;[ROLE_NAME]&apos;?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="No"
+ yestext="Yes"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ClickPublishHelpLand"
+ type="alertmodal">
+Selecting the &quot;Publish in Search&quot;
+Checking this box will show:
+- this parcel in search results
+- this parcel&apos;s public objects
+- this parcel in web search
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ClickSoundHelpLand"
+ type="alertmodal">Media and Music can only be experienced within the parcel. Sound and Voice options can be restricted to the parcel or will be heard by residents outside the parcel depending on their maturity Rating. Go to Knowledge Base to learn more about how to set these options?
+ <url option="0" name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=5046
+ </url>
+ <usetemplate
+ name="okcancelbuttons"
+ yestext="Go to Knowledge Base"
+ notext="Close" />
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ClickSearchHelpAll"
+ type="alertmodal">
+Search results are organized based on the tab you are in, your maturity Rating, the category chosen, and other factors. For more details, please see the Knowledge Base.
+ <url option="0" name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=4722
+ </url>
+ <usetemplate
+ name="okcancelbuttons"
+ yestext="Go to Knowledge Base"
+ notext="Close" />
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ClickPublishHelpLandDisabled"
+ type="alertmodal">
+You can&apos;t make this parcel show in search because it is located in a region that forbids this.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ClickPublishHelpAvatar"
+ type="alertmodal">
+Selecting &quot;Show in Search&quot; will show:
+- my profile in search results
+- a link to my profile in public group pages
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ClickPartnerHelpAvatar"
+ type="alertmodal">
+You can propose to another Resident or dissolve an existing partnership through the [SECOND_LIFE] website.
+
+Go to the Second Life web site for more information on partnering?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="Go to Page"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ClickUploadHelpPermissions"
+ type="alertmodal">
+Your default permissions may not work in older regions.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ClickWebProfileHelpAvatar"
+ type="alertmodal">
+If this Resident has set a web profile URL then you can:
+ * Click &apos;Load&apos; to see the page in this Web tab.
+ * Click Load &gt; &apos;In external browser&apos; to view the page in your default web browser.
+ * Click Load &gt; &apos;Home URL&apos; to return to this Resident&apos;s web profile if you&apos;ve navigated away.
+
+When viewing your own profile, you can enter any URL as your web profile and click OK to set it.
+Other residents can visit the URL you set when they look at your profile.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="JoinGroupCanAfford"
+ type="alertmodal">
+Joining this group costs L$[COST].
+Do you wish to proceed?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="Join"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="JoinGroupCannotAfford"
+ type="alertmodal">
+Joining this group costs L$[COST].
+You do not have enough L$ to join this group.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="LandBuyPass"
+ type="alertmodal">
+For L$[COST] you can enter this land (&apos;[PARCEL_NAME]&apos;) for [TIME] hours. Buy a pass?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="SalePriceRestriction"
+ type="alertmodal">
+Sale price must be set to more than L$0 if selling to anyone.
+Please select an individual to sell to if selling for L$0.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ConfirmLandSaleChange"
+ priority="high"
+ type="alertmodal">
+The selected [LAND_SIZE] m² land is being set for sale.
+Your selling price will be L$[SALE_PRICE] and will be authorized for sale to [NAME].
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ConfirmLandSaleToAnyoneChange"
+ type="alertmodal">
+ATTENTION: Clicking &apos;sell to anyone&apos; makes your land available to the entire Second Life community, even those not in this region.
+
+The selected [LAND_SIZE] m² land is being set for sale.
+Your selling price will be L$[SALE_PRICE] and will be authorized for sale to [NAME].
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ReturnObjectsDeededToGroup"
+ type="alertmodal">
+Are you sure you want to return all objects shared with the group &apos;[NAME]&apos; on this parcel of land back to their previous owner&apos;s inventory?
+
+*WARNING* This will delete the non-transferable objects deeded to the group!
+
+Objects: [N]
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ReturnObjectsOwnedByUser"
+ type="alertmodal">
+Are you sure you want to return all objects owned by the Resident &apos;[NAME]&apos; on this parcel of land back to their inventory?
+
+Objects: [N]
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ReturnObjectsOwnedBySelf"
+ type="alertmodal">
+Are you sure you want to return all objects owned by you on this parcel of land back to your inventory?
+
+Objects: [N]
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ReturnObjectsNotOwnedBySelf"
+ type="alertmodal">
+Are you sure you want to return all objects NOT owned by you on this parcel of land back to their owner&apos;s inventory?
+Transferable objects deeded to a group will be returned to their previous owners.
+
+*WARNING* This will delete the non-transferable objects deeded to the group!
+
+Objects: [N]
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ReturnObjectsNotOwnedByUser"
+ type="alertmodal">
+Are you sure you want to return all objects NOT owned by [NAME] on this parcel of land back to their owner&apos;s inventory?
+Transferable objects deeded to a group will be returned to their previous owners.
+
+*WARNING* This will delete the non-transferable objects deeded to the group!
+
+Objects: [N]
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ReturnAllTopObjects"
+ type="alertmodal">
+Are you sure you want to return all listed objects back to their owner&apos;s inventory?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="DisableAllTopObjects"
+ type="alertmodal">
+Are you sure you want to disable all objects in this region?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ReturnObjectsNotOwnedByGroup"
+ type="alertmodal">
+Return the objects on this parcel of land that are NOT shared with the group [NAME] back to their owners?
+
+Objects: [N]
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="UnableToDisableOutsideScripts"
+ type="alertmodal">
+Can not disable scripts.
+This entire region is damage enabled.
+Scripts must be allowed to run for weapons to work.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="MustBeInParcel"
+ type="alertmodal">
+You must be standing inside the land parcel to set its Landing Point.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="PromptRecipientEmail"
+ type="alertmodal">
+Please enter a valid email address for the recipient(s).
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="PromptSelfEmail"
+ type="alertmodal">
+Please enter your email address.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="PromptMissingSubjMsg"
+ type="alertmodal">
+Email snapshot with the default subject or message?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ErrorProcessingSnapshot"
+ type="alertmodal">
+Error processing snapshot data
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ErrorEncodingSnapshot"
+ type="alertmodal">
+Error encoding snapshot.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ErrorUploadingPostcard"
+ type="alertmodal">
+There was a problem sending a snapshot due to the following reason: [REASON]
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ErrorUploadingReportScreenshot"
+ type="alertmodal">
+There was a problem uploading a report screenshot due to the following reason: [REASON]
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="MustAgreeToLogIn"
+ type="alertmodal">
+You must agree to the Terms of Service to continue logging into [SECOND_LIFE].
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CouldNotPutOnOutfit"
+ type="alertmodal">
+Could not put on outfit.
+The outfit folder contains no clothing, body parts, or attachments.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotWearTrash"
+ type="alertmodal">
+You can not wear clothes or body parts that are in the trash
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotWearInfoNotComplete"
+ type="alertmodal">
+You can not wear that item because it has not yet loaded. Please try again in a minute.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="MustHaveAccountToLogIn"
+ type="alertmodal">
+Oops! Something was left blank.
+You need to enter both the First and Last name of your avatar.
+
+You need an account to enter [SECOND_LIFE]. Would you like to create one now?
+ <url
+ option="0"
+ openexternally = "1">
+
+ http://secondlife.com/registration/
+ </url>
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Try again"
+ yestext="Create a new account"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="AddClassified"
+ type="alertmodal">
+Classified ads appear in the &apos;Classified&apos; section of the Search directory and on www.secondlife.com for one week.
+Fill out your ad, then click &apos;Publish...&apos; to add it to the directory.
+You&apos;ll be asked for a price to pay when clicking Publish.
+Paying more makes your ad appear higher in the list, and also appear higher when people search for keywords.
+ <usetemplate
+ ignoretext="When adding a new Classified"
+ name="okcancelignore"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="DeleteClassified"
+ type="alertmodal">
+Delete classified &apos;[NAME]&apos;?
+There is no reimbursement for fees paid.
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ClassifiedSave"
+ type="alertmodal">
+Save changes to classified [NAME]?
+ <usetemplate
+ canceltext="Cancel"
+ name="yesnocancelbuttons"
+ notext="Don&apos;t Save"
+ yestext="Save"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="DeleteAvatarPick"
+ type="alertmodal">
+Delete pick [PICK]?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="PromptGoToEventsPage"
+ type="alertmodal">
+Go to the [SECOND_LIFE] events web page?
+ <url option="0">
+
+ http://secondlife.com/events/
+ </url>
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="SelectProposalToView"
+ type="alertmodal">
+Please select a proposal to view.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="SelectHistoryItemToView"
+ type="alertmodal">
+Please select a history item to view.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ResetShowNextTimeDialogs"
+ type="alertmodal">
+Would you like to re-enable all these popups, which you previously indicated &apos;Don&apos;t show me again&apos;?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="SkipShowNextTimeDialogs"
+ type="alertmodal">
+Would you like to disable all popups which can be skipped?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CacheWillClear"
+ type="alertmodal">
+Cache will be cleared after you restart [SECOND_LIFE].
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CacheWillBeMoved"
+ type="alertmodal">
+Cache will be moved after you restart [SECOND_LIFE].
+Note: This will clear the cache.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ChangeConnectionPort"
+ type="alertmodal">
+Port settings take effect after you restart [SECOND_LIFE].
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ChangeSkin"
+ type="alertmodal">
+The new skin will appear after you restart [SECOND_LIFE].
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="GoToAuctionPage"
+ type="alertmodal">
+Go to the [SECOND_LIFE] web page to see auction details or make a bid?
+ <url option="0">
+
+ http://secondlife.com/auctions/auction-detail.php?id=[AUCTION_ID]
+ </url>
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="SaveChanges"
+ type="alertmodal">
+Save Changes?
+ <usetemplate
+ canceltext="Cancel"
+ name="yesnocancelbuttons"
+ notext="Don&apos;t Save"
+ yestext="Save"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="GestureSaveFailedTooManySteps"
+ type="alertmodal">
+Gesture save failed.
+This gesture has too many steps.
+Try removing some steps, then save again.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="GestureSaveFailedTryAgain"
+ type="alertmodal">
+Gesture save failed. Please try again in a minute.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="GestureSaveFailedObjectNotFound"
+ type="alertmodal">
+Could not save gesture because the object or the associated object inventory could not be found.
+The object may be out of range or may have been deleted.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="GestureSaveFailedReason"
+ type="alertmodal">
+There was a problem saving a gesture due to the following reason: [REASON]. Please try resaving the gesture later.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="SaveNotecardFailObjectNotFound"
+ type="alertmodal">
+Could not save notecard because the object or the associated object inventory could not be found.
+The object may be out of range or may have been deleted.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="SaveNotecardFailReason"
+ type="alertmodal">
+There was a problem saving a notecard due to the following reason: [REASON]. Please try re-saving the notecard later.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ScriptCannotUndo"
+ type="alertmodal">
+Could not undo all changes in your version of the script.
+Would you like to load the server&apos;s last saved version?
+(**Warning** This operation cannot be undone.)
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="SaveScriptFailReason"
+ type="alertmodal">
+There was a problem saving a script due to the following reason: [REASON]. Please try re-saving the script later.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="SaveScriptFailObjectNotFound"
+ type="alertmodal">
+Could not save the script because the object it is in could not be found.
+The object may be out of range or may have been deleted.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="SaveBytecodeFailReason"
+ type="alertmodal">
+There was a problem saving a compiled script due to the following reason: [REASON]. Please try re-saving the script later.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CouldNotStartStopScript"
+ type="alertmodal">
+Could not start or stop the script because the object it is on could not be found.
+The object may be out of range or may have been deleted.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotDownloadFile"
+ type="alertmodal">
+Unable to download file
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotWriteFile"
+ type="alertmodal">
+Unable to write file [[FILE]]
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="UnsupportedHardware"
+ type="alertmodal">
+Warning: Your system does not meet Second Life&apos;s minimum system requirements. If you continue using Second Life, you may experience poor performance. Unfortunately, we cannot provide technical support for unsupported system configurations.
+
+MINSPECS
+Do you wish to visit [_URL] for more information?
+ <url option="0" name="url">
+
+ http://www.secondlife.com/corporate/sysreqs.php
+ </url>
+ <usetemplate
+ ignoretext="When detecting unsupported hardware"
+ name="okcancelignore"
+ notext="No"
+ yestext="Yes"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="UnknownGPU"
+ type="alertmodal">
+Your system contains a graphics card that is unknown to us at this time.
+This is often the case with new hardware we haven&apos;t had a chance to test. Second Life will most likely run properly, but you may need to adjust your graphics settings to something more appropriate.
+(Edit menu &gt; Preferences &gt; Graphics).
+ <form name="form">
+ <ignore name="ignore"
+ text="When detecting an unknown graphics card"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="DisplaySettingsNoShaders"
+ type="alertmodal">
+[SECOND_LIFE] crashed while initializing graphics drivers.
+Graphics Quality will be set to low to avoid some common driver errors.
+This will disable some graphics features.
+We recommend updating your graphics card drivers.
+Graphics Quality can be raised in Preferences &gt; Graphics.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="RegionNoTerraforming"
+ type="alertmodal">
+The region [REGION] does not allow terraforming.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotCopyWarning"
+ type="alertmodal">
+You do not have permission to copy this item and will lose it from your inventory if you give it away. Do you really want to offer this item?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="No"
+ yestext="Yes"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotGiveItem"
+ type="alertmodal">
+Unable to give inventory item.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="TransactionCancelled"
+ type="alertmodal">
+Transaction cancelled.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="TooManyItems"
+ type="alertmodal">
+Cannot give more than 42 items in a single inventory transfer.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="NoItems"
+ type="alertmodal">
+You do not have permission to transfer the selected items.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotCopyCountItems"
+ type="alertmodal">
+You do not have permission to copy [COUNT] of the selected items. You will lose these items from your inventory.
+Do you really want to give these items?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="No"
+ yestext="Yes"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotGiveCategory"
+ type="alertmodal">
+You do not have permission to transfer the selected folder.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="FreezeAvatar"
+ type="alertmodal">
+Freeze this avatar?
+He or she will temporarily be unable to move, chat, or interact with the world.
+ <usetemplate
+ canceltext="Cancel"
+ name="yesnocancelbuttons"
+ notext="Unfreeze"
+ yestext="Freeze"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="FreezeAvatarFullname"
+ type="alertmodal">
+Freeze [AVATAR_NAME]?
+He or she will temporarily be unable to move, chat, or interact with the world.
+ <usetemplate
+ canceltext="Cancel"
+ name="yesnocancelbuttons"
+ notext="Unfreeze"
+ yestext="Freeze"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="EjectAvatarFullname"
+ type="alertmodal">
+Eject [AVATAR_NAME] from your land?
+ <usetemplate
+ canceltext="Cancel"
+ name="yesnocancelbuttons"
+ notext="Eject and Ban"
+ yestext="Eject"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="EjectAvatarNoBan"
+ type="alertmodal">
+Eject this avatar from your land?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="Eject"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="EjectAvatarFullnameNoBan"
+ type="alertmodal">
+Eject [AVATAR_NAME] from your land?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="Eject"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="AcquireErrorTooManyObjects"
+ type="alertmodal">
+ACQUIRE ERROR: Too many objects selected.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="AcquireErrorObjectSpan"
+ type="alertmodal">
+ACQUIRE ERROR: Objects span more than one region.
+Please move all objects to be acquired onto the same region.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="PromptGoToCurrencyPage"
+ type="alertmodal">
+[EXTRA]
+
+Go to [_URL] for information on purchasing currency?
+ <url option="0">
+
+ http://secondlife.com/app/currency/
+ </url>
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="UnableToLinkObjects"
+ type="alertmodal">
+Unable to link these [COUNT] objects.
+You can link a maximum of [MAX] objects.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotLinkIncompleteSet"
+ type="alertmodal">
+You can only link complete sets of objects, and must select more than one object.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotLinkModify"
+ type="alertmodal">
+Unable to link because you don&apos;t have modify permission on all the objects.
+
+Please make sure none are locked, and that you own all of them.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotLinkDifferentOwners"
+ type="alertmodal">
+Unable to link because not all of the objects have the same owner.
+
+Please make sure you own all of the selected objects.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="NoFileExtension"
+ type="alertmodal">
+No file extension for the file: &apos;[FILE]&apos;
+
+Please make sure the file has a correct file extension.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="InvalidFileExtension"
+ type="alertmodal">
+Invalid file extension [EXTENSION]
+Expected [VALIDS]
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotUploadSoundFile"
+ type="alertmodal">
+Couldn&apos;t open uploaded sound file for reading:
+[FILE]
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="SoundFileNotRIFF"
+ type="alertmodal">
+File does not appear to be a RIFF WAVE file:
+[FILE]
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="SoundFileNotPCM"
+ type="alertmodal">
+File does not appear to be a PCM WAVE audio file:
+[FILE]
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="SoundFileInvalidChannelCount"
+ type="alertmodal">
+File has invalid number of channels (must be mono or stereo):
+[FILE]
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="SoundFileInvalidSampleRate"
+ type="alertmodal">
+File does not appear to be a supported sample rate (must be 44.1k):
+[FILE]
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="SoundFileInvalidWordSize"
+ type="alertmodal">
+File does not appear to be a supported word size (must be 8 or 16 bit):
+[FILE]
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="SoundFileInvalidHeader"
+ type="alertmodal">
+Could not find &apos;data&apos; chunk in WAV header:
+[FILE]
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="SoundFileInvalidTooLong"
+ type="alertmodal">
+Audio file is too long (10 second maximum):
+[FILE]
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ProblemWithFile"
+ type="alertmodal">
+Problem with file [FILE]:
+
+[ERROR]
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotOpenTemporarySoundFile"
+ type="alertmodal">
+Couldn&apos;t open temporary compressed sound file for writing: [FILE]
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="UnknownVorbisEncodeFailure"
+ type="alertmodal">
+Unknown Vorbis encode failure on: [FILE]
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotEncodeFile"
+ type="alertmodal">
+Unable to encode file: [FILE]
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CorruptResourceFile"
+ type="alertmodal">
+Corrupt resource file: [FILE]
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="UnknownResourceFileVersion"
+ type="alertmodal">
+Unknown Linden resource file version in file: [FILE]
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="UnableToCreateOutputFile"
+ type="alertmodal">
+Unable to create output file: [FILE]
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="DoNotSupportBulkAnimationUpload"
+ type="alertmodal">
+We do not currently support bulk upload of animation files.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotUploadReason"
+ type="alertmodal">
+Unable to upload [FILE] due to the following reason: [REASON]
+Please try again later.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="LandmarkCreated"
+ type="notifytip">
+You have added "[LANDMARK_NAME]" to your [FOLDER_NAME] folder.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotCreateLandmarkNotOwner"
+ type="alertmodal">
+You cannot create a landmark here because the owner of the land doesn&apos;t allow it.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotRecompileSelectObjectsNoScripts"
+ type="alertmodal">
+Not able to perform &apos;recompilation&apos;.
+Select an object with a script.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotRecompileSelectObjectsNoPermission"
+ type="alertmodal">
+Not able to perform &apos;recompilation&apos;.
+
+Select objects with scripts that you have permission to modify.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotResetSelectObjectsNoScripts"
+ type="alertmodal">
+Not able to perform &apos;reset&apos;.
+
+Select objects with scripts.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotResetSelectObjectsNoPermission"
+ type="alertmodal">
+Not able to perform &apos;reset&apos;.
+
+Select objects with scripts that you have permission to modify.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotSetRunningSelectObjectsNoScripts"
+ type="alertmodal">
+Not able to set any scripts to &apos;running&apos;.
+
+Select objects with scripts.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotSetRunningNotSelectObjectsNoScripts"
+ type="alertmodal">
+Unable to set any scripts to &apos;not running&apos;.
+
+Select objects with scripts.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="NoFrontmostFloater"
+ type="alertmodal">
+No frontmost floater to save.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="SeachFilteredOnShortWords"
+ type="alertmodal">
+Your search query was modified and the words that were too short were removed.
+
+Searched for: [FINALQUERY]
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="SeachFilteredOnShortWordsEmpty"
+ type="alertmodal">
+Your search terms were too short so no search was performed.
+ </notification>
+
+ <!-- Generic Teleport failure modes - strings will be inserted from
+ teleport_strings.xml if available. -->
+ <notification
+ icon="alertmodal.tga"
+ name="CouldNotTeleportReason"
+ type="alertmodal">
+Could not teleport.
+[REASON]
+ </notification>
+
+ <!-- Teleport failure modes not delivered via the generic mechanism
+ above (for example, delivered as an AlertMessage on
+ region-crossing :( ) - these paths should really be merged
+ in the future. -->
+ <notification
+ icon="alertmodal.tga"
+ name="invalid_tport"
+ type="alertmodal">
+Problem encountered processing your teleport request. You may need to log back in before you can teleport. If you continue to get this message, please check the Tech Support FAQ at:
+www.secondlife.com/support
+ </notification>
+ <notification
+ icon="alertmodal.tga"
+ name="invalid_region_handoff"
+ type="alertmodal">
+Problem encountered processing your region crossing. You may need to log back in before you can cross regions. If you continue to get this message, please check the Tech Support FAQ at:
+www.secondlife.com/support
+ </notification>
+ <notification
+ icon="alertmodal.tga"
+ name="blocked_tport"
+ type="alertmodal">
+Sorry, teleport is currently blocked. Try again in a moment. If you still cannot teleport, please log out and log back in to resolve the problem.
+ </notification>
+ <notification
+ icon="alertmodal.tga"
+ name="nolandmark_tport"
+ type="alertmodal">
+Sorry, but system was unable to locate landmark destination.
+ </notification>
+ <notification
+ icon="alertmodal.tga"
+ name="timeout_tport"
+ type="alertmodal">
+Sorry, but system was unable to complete the teleport connection. Try again in a moment.
+ </notification>
+ <notification
+ icon="alertmodal.tga"
+ name="noaccess_tport"
+ type="alertmodal">
+Sorry, you do not have access to that teleport destination.
+ </notification>
+ <notification
+ icon="alertmodal.tga"
+ name="missing_attach_tport"
+ type="alertmodal">
+Your attachments have not arrived yet. Try waiting for a few more seconds or log out and back in again before attempting to teleport.
+ </notification>
+ <notification
+ icon="alertmodal.tga"
+ name="too_many_uploads_tport"
+ type="alertmodal">
+The asset queue in this region is currently clogged so your teleport request will not be able to succeed in a timely manner. Please try again in a few minutes or go to a less busy area.
+ </notification>
+ <notification
+ icon="alertmodal.tga"
+ name="expired_tport"
+ type="alertmodal">
+Sorry, but the system was unable to complete your teleport request in a timely fashion. Please try again in a few minutes.
+ </notification>
+ <notification
+ icon="alertmodal.tga"
+ name="expired_region_handoff"
+ type="alertmodal">
+Sorry, but the system was unable to complete your region crossing in a timely fashion. Please try again in a few minutes.
+ </notification>
+ <notification
+ icon="alertmodal.tga"
+ name="no_host"
+ type="alertmodal">
+Unable to find teleport destination. The destination may be temporarily unavailable or no longer exists. Please try again in a few minutes.
+ </notification>
+ <notification
+ icon="alertmodal.tga"
+ name="no_inventory_host"
+ type="alertmodal">
+The inventory system is currently unavailable.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotSetLandOwnerNothingSelected"
+ type="alertmodal">
+Unable to set land owner:
+No parcel selected.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotSetLandOwnerMultipleRegions"
+ type="alertmodal">
+Unable to force land ownership because selection spans multiple regions. Please select a smaller area and try again.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ForceOwnerAuctionWarning"
+ type="alertmodal">
+This parcel is up for auction. Forcing ownership will cancel the auction and potentially make some residents unhappy if bidding has begun. Force ownership?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotContentifyNothingSelected"
+ type="alertmodal">
+Unable to contentify:
+No parcel selected.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotContentifyNoRegion"
+ type="alertmodal">
+Unable to contentify:
+No region selected.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotReleaseLandNothingSelected"
+ type="alertmodal">
+Unable to abandon land:
+No parcel selected.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotReleaseLandNoRegion"
+ type="alertmodal">
+Unable to abandon land:
+Cannot find region.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotBuyLandNothingSelected"
+ type="alertmodal">
+Unable to buy land:
+No parcel selected.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotBuyLandNoRegion"
+ type="alertmodal">
+Unable to buy land:
+Cannot find the region this land is in.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotCloseFloaterBuyLand"
+ type="alertmodal">
+You cannot close the Buy Land window until Second Life estimates the price of this transaction.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotDeedLandNothingSelected"
+ type="alertmodal">
+Unable to deed land:
+No parcel selected.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotDeedLandNoGroup"
+ type="alertmodal">
+Unable to deed land:
+No Group selected.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotDeedLandNoRegion"
+ type="alertmodal">
+Unable to deed land:
+Cannot find the region this land is in.
+Please use Tools -&gt; Report Bug to report this.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotDeedLandMultipleSelected"
+ type="alertmodal">
+Unable to deed land:
+Multiple parcels selected.
+
+Try selecting a single parcel.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ParcelCanPlayMedia"
+ type="alertmodal">
+This location can play streaming media.
+Streaming media requires a fast Internet connection.
+
+Play streaming media when available?
+(You can change this option later under Preferences &gt; Audio &amp; Video.)
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Disable"
+ yestext="Play Media"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotDeedLandWaitingForServer"
+ type="alertmodal">
+Unable to deed land:
+Waiting for server to report ownership.
+
+Please try again.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotDeedLandNoTransfer"
+ type="alertmodal">
+Unable to deed land:
+The region [REGION] does not allow transfer of land.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotReleaseLandWatingForServer"
+ type="alertmodal">
+Unable to abandon land:
+Waiting for server to update parcel information.
+
+Try again in a few seconds.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotReleaseLandSelected"
+ type="alertmodal">
+Unable to abandon land:
+You do not own all the parcels selected.
+
+Please select a single parcel.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotReleaseLandDontOwn"
+ type="alertmodal">
+Unable to abandon land:
+You don&apos;t have permission to release this parcel.
+Parcels you own appear in green.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotReleaseLandRegionNotFound"
+ type="alertmodal">
+Unable to abandon land:
+Cannot find the region this land is in.
+
+Please use Tools -&gt; Report Bug to report this.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotReleaseLandNoTransfer"
+ type="alertmodal">
+Unable to abandon land:
+The region [REGION] does not allow transfer of land.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotReleaseLandPartialSelection"
+ type="alertmodal">
+Unable to abandon land:
+You must select an entire parcel to release it.
+
+Select an entire parcel, or divide your parcel first.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ReleaseLandWarning"
+ type="alertmodal">
+You are about to release [AREA] m² of land.
+Releasing this parcel will remove it from your land holdings, but will not grant any L$.
+
+Release this land?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotDivideLandNothingSelected"
+ type="alertmodal">
+Unable to divide land:
+
+No parcels selected.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotDivideLandPartialSelection"
+ type="alertmodal">
+Unable to divide land:
+
+You have an entire parcel selected.
+Try selecting a part of the parcel.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="LandDivideWarning"
+ type="alertmodal">
+Dividing this land will split this parcel into two and each parcel can have its own settings. Some settings will be reset to defaults after the operation.
+
+Divide land?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotDivideLandNoRegion"
+ type="alertmodal">
+Unable to divide land:
+Cannot find the region this land is in.
+
+Please use Tools -&gt; Report Bug to report this.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotJoinLandNoRegion"
+ type="alertmodal">
+Unable to join land:
+Cannot find the region this land is in.
+
+Please use Tools -&gt; Report Bug to report this.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotJoinLandNothingSelected"
+ type="alertmodal">
+Unable to join land:
+No parcels selected.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotJoinLandEntireParcelSelected"
+ type="alertmodal">
+Unable to join land:
+You only have one parcel selected.
+
+Select land across both parcels.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotJoinLandSelection"
+ type="alertmodal">
+Unable to join land:
+You must select more than one parcel.
+
+Select land across both parcels.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="JoinLandWarning"
+ type="alertmodal">
+Joining this land will create one large parcel out of all parcels intersecting the selected rectangle.
+You will need to reset the name and options of the new parcel.
+
+Join land?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ShowOwnersHelp"
+ type="alertmodal">
+Show owners:
+Color parcels to show the owner type.
+
+Green = Your land
+Aqua = Your Group&apos;s land
+Red = Owned by others
+Yellow = For sale
+Purple = For auction
+Grey = Public
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ConfirmNotecardSave"
+ type="alertmodal">
+This notecard needs to be saved before the item can be copied or viewed. Save notecard?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ConfirmItemCopy"
+ type="alertmodal">
+Copy this item to your inventory?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="Copy"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ResolutionSwitchFail"
+ type="alertmodal">
+Failed to switch resolution to [RESX] by [RESY]
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ErrorUndefinedGrasses"
+ type="alertmodal">
+Error: Undefined grasses: [SPECIES]
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ErrorUndefinedTrees"
+ type="alertmodal">
+Error: Undefined trees: [SPECIES]
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotSaveWearableOutOfSpace"
+ type="alertmodal">
+Unable to save &apos;[NAME]&apos; to wearable file. You will need to free up some space on your computer and save the wearable again.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotSaveToAssetStore"
+ type="alertmodal">
+Unable to save [NAME] to central asset store.
+This is usually a temporary failure. Please customize and save the wearable again in a few minutes.
+
+If this problem persists, please click on the &apos;Tools &gt; Report Bug&apos; pull down menu
+and provide details about your network setup.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="YouHaveBeenLoggedOut"
+ type="alertmodal">
+You have been logged out of [SECOND_LIFE]:
+ [MESSAGE]
+You can still look at existing IM and chat by clicking &apos;View IM &amp; Chat&apos;. Otherwise, click &apos;Quit&apos; to exit [SECOND_LIFE] immediately.
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Quit"
+ yestext="View IM &amp; Chat"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="OnlyOfficerCanBuyLand"
+ type="alertmodal">
+Unable to buy land for the group:
+You do not have permission to buy land for your active group.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Add Friend"
+ name="AddFriend"
+ type="alertmodal">
+Friends can give permissions to track each other on the map and receive online status updates.
+
+Offer friendship to [NAME]?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Add Friend"
+ name="AddFriendWithMessage"
+ type="alertmodal">
+Friends can give permissions to track each other on the map and receive online status updates.
+
+Offer friendship to [NAME]?
+ <form name="form">
+ <input name="message" type="text">
+Would you be my friend?
+ </input>
+ <button
+ default="true"
+ index="0"
+ name="Offer"
+ text="OK"/>
+ <button
+ index="1"
+ name="Cancel"
+ text="Cancel"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="RemoveFromFriends"
+ type="alertmodal">
+Do you want to remove [FIRST_NAME] [LAST_NAME] from your Friends List?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="RemoveMultipleFromFriends"
+ type="alertmodal">
+Do you want to remove multiple friends from your Friends list?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="GodDeleteAllScriptedPublicObjectsByUser"
+ type="alertmodal">
+Are you sure you want to delete all scripted objects owned by
+** [AVATAR_NAME] **
+on all others land in this sim?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="GodDeleteAllScriptedObjectsByUser"
+ type="alertmodal">
+Are you sure you want to DELETE ALL scripted objects owned by
+** [AVATAR_NAME] **
+on ALL LAND in this sim?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="GodDeleteAllObjectsByUser"
+ type="alertmodal">
+Are you sure you want to DELETE ALL objects (scripted or not) owned by
+** [AVATAR_NAME] **
+on ALL LAND in this sim?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="BlankClassifiedName"
+ type="alertmodal">
+You must specify a name for your classified.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="MinClassifiedPrice"
+ type="alertmodal">
+Price to pay for listing must be at least L$[MIN_PRICE].
+
+Please enter a higher price.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ConfirmObjectDeleteLock"
+ type="alertmodal">
+At least one of the items you have selected is locked.
+
+Are you sure you want to delete these items?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ConfirmObjectDeleteNoCopy"
+ type="alertmodal">
+At least one of the items you have selected is not copyable.
+
+Are you sure you want to delete these items?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ConfirmObjectDeleteNoOwn"
+ type="alertmodal">
+You do not own least one of the items you have selected.
+
+Are you sure you want to delete these items?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ConfirmObjectDeleteLockNoCopy"
+ type="alertmodal">
+At least one object is locked.
+At least one object is not copyable.
+
+Are you sure you want to delete these items?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ConfirmObjectDeleteLockNoOwn"
+ type="alertmodal">
+At least one object is locked.
+You do not own least one object.
+
+Are you sure you want to delete these items?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ConfirmObjectDeleteNoCopyNoOwn"
+ type="alertmodal">
+At least one object is not copyable.
+You do not own least one object.
+
+Are you sure you want to delete these items?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ConfirmObjectDeleteLockNoCopyNoOwn"
+ type="alertmodal">
+At least one object is locked.
+At least one object is not copyable.
+You do not own least one object.
+
+Are you sure you want to delete these items?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ConfirmObjectTakeLock"
+ type="alertmodal">
+At least one object is locked.
+
+Are you sure you want to take these items?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ConfirmObjectTakeNoOwn"
+ type="alertmodal">
+You do not own all of the objects you are taking.
+If you continue, next owner permissions will be applied and possibly restrict your ability to modify or copy them.
+
+Are you sure you want to take these items?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ConfirmObjectTakeLockNoOwn"
+ type="alertmodal">
+At least one object is locked.
+You do not own all of the objects you are taking.
+If you continue, next owner permissions will be applied and possibly restrict your ability to modify or copy them.
+However, you can take the current selection.
+
+Are you sure you want to take these items?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CantBuyLandAcrossMultipleRegions"
+ type="alertmodal">
+Unable to buy land because selection spans multiple regions.
+
+Please select a smaller area and try again.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="DeedLandToGroup"
+ type="alertmodal">
+By deeding this parcel, the group will be required to have and maintain sufficient land use credits.
+The purchase price of the land is not refunded to the owner. If a deeded parcel is sold, the sale price will be divided evenly among group members.
+
+Deed this [AREA] m² of land to the group &apos;[GROUP_NAME]&apos;?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="DeedLandToGroupWithContribution"
+ type="alertmodal">
+By deeding this parcel, the group will be required to have and maintain sufficient land use credits.
+The deed will include a simultaneous land contribution to the group from &apos;[FIRST_NAME] [LAST_NAME]&apos;.
+The purchase price of the land is not refunded to the owner. If a deeded parcel is sold, the sale price will be divided evenly among group members.
+
+Deed this [AREA] m² of land to the group &apos;[GROUP_NAME]&apos;?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="DisplaySetToSafe"
+ type="alertmodal">
+Display settings have been set to safe levels because you have specified the -safe option.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="DisplaySetToRecommended"
+ type="alertmodal">
+Display settings have been set to recommended levels based on your system configuration.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ErrorMessage"
+ type="alertmodal">
+[ERROR_MESSAGE]
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="AvatarMovedDesired"
+ type="alertmodal">
+Your desired location is not currently available.
+You have been moved into a nearby region.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="AvatarMovedLast"
+ type="alertmodal">
+Your last location is not currently available.
+You have been moved into a nearby region.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="AvatarMovedHome"
+ type="alertmodal">
+Your home location is not currently available.
+You have been moved into a nearby region.
+You may want to set a new home location.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ClothingLoading"
+ type="alertmodal">
+Your clothing is still downloading.
+You can use [SECOND_LIFE] normally and other users will see you correctly.
+ <form name="form">
+ <ignore name="ignore"
+ text="When clothing is taking a long time to download"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="FirstRun"
+ type="alertmodal">
+[SECOND_LIFE] installation is complete.
+
+If this is your first time using [SECOND_LIFE], you will need to create an account before you can log on.
+Return to www.secondlife.com to create a new account?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Continue"
+ yestext="New Account..."/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="LoginPacketNeverReceived"
+ type="alertmodal">
+We&apos;re having trouble connecting. There may be a problem with your internet connection or the Second Life servers.
+
+You can either check your internet connection and try again in a few minutes, click Help to connect to our support site, or click Teleport to attempt to teleport home.
+ <url option="1">
+
+ http://secondlife.com/support/
+ </url>
+ <form name="form">
+ <button
+ default="true"
+ index="0"
+ name="OK"
+ text="OK"/>
+ <button
+ index="1"
+ name="Help"
+ text="Help"/>
+ <button
+ index="2"
+ name="Teleport"
+ text="Teleport"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="WelcomeChooseSex"
+ type="alertmodal">
+Your character will appear in a moment.
+
+Use arrow keys to walk.
+Press the F1 key at any time for help or to learn more about [SECOND_LIFE].
+Please choose the male or female avatar. You can change your mind later.
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Female"
+ yestext="Male"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="NotEnoughCurrency"
+ type="alertmodal">
+[NAME] L$ [PRICE] You don&apos;t have enough L$ to do that.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="GrantedModifyRights"
+ type="alertmodal">
+You have been granted the privilege to modify [FIRST_NAME] [LAST_NAME]&apos;s objects.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="RevokedModifyRights"
+ type="alertmodal">
+Your privilege to modify [FIRST_NAME] [LAST_NAME]&apos;s objects has been revoked
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="FlushMapVisibilityCaches"
+ type="alertmodal">
+This will flush the map caches on this region.
+This is really only useful for debugging.
+(In production, wait 5 minutes, then everyone&apos;s map will update after they relog.)
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="BuyOneObjectOnly"
+ type="alertmodal">
+Unable to buy more than one object at a time. Please select only one object and try again.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="OnlyCopyContentsOfSingleItem"
+ type="alertmodal">
+Unable to copy the contents of more than one item at a time.
+Please select only one object and try again.
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="KickUsersFromRegion"
+ type="alertmodal">
+Teleport all Residents in this region home?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="EstateObjectReturn"
+ type="alertmodal">
+Are you sure you want to return objects owned by [USER_NAME]?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="InvalidTerrainBitDepth"
+ type="alertmodal">
+Couldn&apos;t set region textures:
+Terrain texture [TEXTURE_NUM] has an invalid bit depth of [TEXTURE_BIT_DEPTH].
+
+Replace texture [TEXTURE_NUM] with a 24-bit 512x512 or smaller image then click &quot;Apply&quot; again.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="InvalidTerrainSize"
+ type="alertmodal">
+Couldn&apos;t set region textures:
+Terrain texture [TEXTURE_NUM] is too large at [TEXTURE_SIZE_X]x[TEXTURE_SIZE_Y].
+
+Replace texture [TEXTURE_NUM] with a 24-bit 512x512 or smaller image then click &quot;Apply&quot; again.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="RawUploadStarted"
+ type="alertmodal">
+Upload started. It may take up to two minutes, depending on your connection speed.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ConfirmBakeTerrain"
+ type="alertmodal">
+Do you really want to bake the current terrain, make it the center for terrain raise/lower limits and the default for the &apos;Revert&apos; tool?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="MaxAllowedAgentOnRegion"
+ type="alertmodal">
+You can only have [MAX_AGENTS] Allowed Residents.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="MaxBannedAgentsOnRegion"
+ type="alertmodal">
+You can only have [MAX_BANNED] Banned Residents.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="MaxAgentOnRegionBatch"
+ type="alertmodal">
+Failure while attempting to add [NUM_ADDED] agents:
+Exceeds the [MAX_AGENTS] [LIST_TYPE] limit by [NUM_EXCESS].
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="MaxAllowedGroupsOnRegion"
+ type="alertmodal">
+You can only have [MAX_GROUPS] Allowed Groups.
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="Bake"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="MaxManagersOnRegion"
+ type="alertmodal">
+You can only have [MAX_MANAGER] Estate Managers.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="OwnerCanNotBeDenied"
+ type="alertmodal">
+Can&apos;t add estate owner to estate &apos;Banned Resident&apos; list.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CanNotChangeAppearanceUntilLoaded"
+ type="alertmodal">
+Can&apos;t change appearance until clothing and shape are loaded.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ClassifiedMustBeAlphanumeric"
+ type="alertmodal">
+The name of your classified must start with a letter from A to Z or a number. No punctuation is allowed.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CantSetBuyObject"
+ type="alertmodal">
+Can&apos;t set Buy Object, because the object is not for sale.
+Please set the object for sale and try again.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="FinishedRawDownload"
+ type="alertmodal">
+Finished download of raw terrain file to:
+[DOWNLOAD_PATH].
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="DownloadWindowsMandatory"
+ type="alertmodal">
+A new version of [SECOND_LIFE] is available.
+[MESSAGE]
+You must download this update to use [SECOND_LIFE].
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Quit"
+ yestext="Download"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="DownloadWindows"
+ type="alertmodal">
+An updated version of [SECOND_LIFE] is available.
+[MESSAGE]
+This update is not required, but we suggest you install it to improve performance and stability.
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Continue"
+ yestext="Download"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="DownloadWindowsReleaseForDownload"
+ type="alertmodal">
+An updated version of [SECOND_LIFE] is available.
+[MESSAGE]
+This update is not required, but we suggest you install it to improve performance and stability.
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Continue"
+ yestext="Download"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="DownloadMacMandatory"
+ type="alertmodal">
+A new version of [SECOND_LIFE] is available.
+[MESSAGE]
+You must download this update to use [SECOND_LIFE].
+
+Download to your Applications folder?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Quit"
+ yestext="Download"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="DownloadMac"
+ type="alertmodal">
+An updated version of [SECOND_LIFE] is available.
+[MESSAGE]
+This update is not required, but we suggest you install it to improve performance and stability.
+
+Download to your Applications folder?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Continue"
+ yestext="Download"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="DownloadMacReleaseForDownload"
+ type="alertmodal">
+An updated version of [SECOND_LIFE] is available.
+[MESSAGE]
+This update is not required, but we suggest you install it to improve performance and stability.
+
+Download to your Applications folder?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Continue"
+ yestext="Download"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="DeedObjectToGroup"
+ type="alertmodal">
+Deeding this object will cause the group to:
+* Receive L$ paid into the object
+ <usetemplate
+ ignoretext="When deeding objects to groups"
+ name="okcancelignore"
+ notext="Cancel"
+ yestext="Deed"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="WebLaunchExternalTarget"
+ type="alertmodal">
+Open your system Web browser to view this content?
+ <usetemplate
+ ignoretext="When opening your system browser to view a Web page"
+ name="okcancelignore"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="WebLaunchJoinNow"
+ type="alertmodal">
+Go to www.secondlife.com to manage your account?
+ <usetemplate
+ ignoretext="When launching web browser to manage your account"
+ name="okcancelignore"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="WebLaunchBugReport101"
+ type="alertmodal">
+Visit the [SECOND_LIFE] Wiki and learn how to report bugs correctly.
+ <usetemplate
+ ignoretext="When launching web browser to view the Bug Reporting 101 Wiki"
+ name="okcancelignore"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="WebLaunchSecurityIssues"
+ type="alertmodal">
+Visit the [SECOND_LIFE] Wiki for details of how to report a security issue.
+ <usetemplate
+ ignoretext="When launching web browser to view Security Issues Wiki"
+ name="okcancelignore"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="WebLaunchQAWiki"
+ type="alertmodal">
+Visit the [SECOND_LIFE] QA Wiki.
+ <usetemplate
+ ignoretext="When launching web browser to view the QA Wiki"
+ name="okcancelignore"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="WebLaunchPublicIssue"
+ type="alertmodal">
+Visit the [SECOND_LIFE] Public Issue Tracker, where you can report bugs and other issues.
+ <usetemplate
+ ignoretext="When launching web browser to view the Public Issue Tracker"
+ name="okcancelignore"
+ notext="Cancel"
+ yestext="Go to page"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="WebLaunchPublicIssueHelp"
+ type="alertmodal">
+Visit the [SECOND_LIFE] Wiki for info on how to use the Public Issue Tracker.
+ <usetemplate
+ ignoretext="When launching web browser to view Public Issue Tracker Wiki"
+ name="okcancelignore"
+ notext="Cancel"
+ yestext="Go to page"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="WebLaunchSupportWiki"
+ type="alertmodal">
+Go to the Official Linden Blog, for the latest news and information.
+ <usetemplate
+ ignoretext="When launching web browser to view the blog"
+ name="okcancelignore"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="WebLaunchLSLGuide"
+ type="alertmodal">
+Go to the Scripting Guide for scripting help?
+ <usetemplate
+ ignoretext="When launching web browser to view the Scripting Guide"
+ name="okcancelignore"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="WebLaunchLSLWiki"
+ type="alertmodal">
+Go to the LSL Portal for scripting help?
+ <usetemplate
+ ignoretext="When launching web browser to view the LSL Portal"
+ name="okcancelignore"
+ notext="Cancel"
+ yestext="Go to page"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ReturnToOwner"
+ type="alertmodal">
+Are you sure you want to return the selected objects to their owners? Transferable deeded objects will be returned to their previous owners.
+
+*WARNING* No-transfer deeded objects will be deleted!
+ <usetemplate
+ ignoretext="When returning objects to their owners"
+ name="okcancelignore"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ name="GroupLeaveConfirmMember"
+ type="alert">
+You are currently a member of the group [GROUP].
+Leave Group?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ name="ConfirmKick"
+ type="alert">
+Do you REALLY want to kick all users off the grid?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="Kick All Users"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="MuteLinden"
+ type="alertmodal">
+Sorry, you cannot mute a Linden.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CannotStartAuctionAlreadyForSale"
+ type="alertmodal">
+You cannot start an auction on a parcel which is already set for sale. Disable the land sale if you are sure you want to start an auction.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Mute object by name failed"
+ name="MuteByNameFailed"
+ type="alertmodal">
+You already have muted this name.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ name="RemoveItemWarn"
+ type="alert">
+Though permitted, deleting contents may damage the object. Do you want to delete that item?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ name="CantOfferCallingCard"
+ type="alert">
+Cannot offer a calling card at this time. Please try again in a moment.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ name="CantOfferFriendship"
+ type="alert">
+Cannot offer friendship at this time. Please try again in a moment.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ name="BusyModeSet"
+ type="alert">
+Busy mode set.
+Chat and instant messages will be hidden. Instant messages will get your Busy mode response. All teleportation offers will be declined. All inventory offers will go to your Trash.
+ <usetemplate
+ ignoretext="When setting busy mode"
+ name="okignore"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ name="JoinedTooManyGroupsMember"
+ type="alert">
+You are a member of too many groups to join another one. Please leave at least one group before joining this one, or decline the offer.
+To leave a group select the &apos;Groups...&apos; option from the &apos;Edit&apos; menu.
+[NAME] has invited you to join a group as a member.
+[INVITE]
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Decline"
+ yestext="Join"/>
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ name="KickUser"
+ type="alert">
+Kick this user with what message?
+ <form name="form">
+ <input name="message" type="text">
+An administrator has logged you off.
+ </input>
+ <button
+ default="true"
+ index="0"
+ name="OK"
+ text="OK"/>
+ <button
+ index="1"
+ name="Cancel"
+ text="Cancel"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ name="KickAllUsers"
+ type="alert">
+Kick everyone currently on the grid with what message?
+ <form name="form">
+ <input name="message" type="text">
+An administrator has logged you off.
+ </input>
+ <button
+ default="true"
+ index="0"
+ name="OK"
+ text="OK"/>
+ <button
+ index="1"
+ name="Cancel"
+ text="Cancel"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ name="FreezeUser"
+ type="alert">
+Freeze this user with what message?
+ <form name="form">
+ <input name="message" type="text">
+You have been frozen. You cannot move or chat. An administrator will contact you via instant message (IM).
+ </input>
+ <button
+ default="true"
+ index="0"
+ name="OK"
+ text="OK"/>
+ <button
+ index="1"
+ name="Cancel"
+ text="Cancel"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ name="UnFreezeUser"
+ type="alert">
+Unfreeze this user with what message?
+ <form name="form">
+ <input name="message" type="text">
+You are no longer frozen.
+ </input>
+ <button
+ default="true"
+ index="0"
+ name="OK"
+ text="OK"/>
+ <button
+ index="1"
+ name="Cancel"
+ text="Cancel"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="OfferTeleport"
+ type="alertmodal">
+Offer a teleport to your location with the following message?
+ <form name="form">
+ <input name="message" type="text">
+Join me in [REGION]
+ </input>
+ <button
+ default="true"
+ index="0"
+ name="OK"
+ text="OK"/>
+ <button
+ index="1"
+ name="Cancel"
+ text="Cancel"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="OfferTeleportFromGod"
+ type="alertmodal">
+God summon user to your location?
+ <form name="form">
+ <input name="message" type="text">
+Join me in [REGION]
+ </input>
+ <button
+ default="true"
+ index="0"
+ name="OK"
+ text="OK"/>
+ <button
+ index="1"
+ name="Cancel"
+ text="Cancel"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="TeleportFromLandmark"
+ type="alertmodal">
+Are you sure you want to teleport?
+ <usetemplate
+ ignoretext="When teleporting from a landmark in inventory"
+ name="okcancelignore"
+ notext="Cancel"
+ yestext="Teleport"/>
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ label="Message everyone in your Estate"
+ name="MessageEstate"
+ type="alert">
+Type a short announcement which will be sent to everyone currently in your estate.
+ <form name="form">
+ <input name="message" type="text"/>
+ <button
+ default="true"
+ index="0"
+ name="OK"
+ text="OK"/>
+ <button
+ index="1"
+ name="Cancel"
+ text="Cancel"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ label="Change Linden Estate"
+ name="ChangeLindenEstate"
+ type="alert">
+You are about to change a Linden owned estate (mainland, teen grid, orientation, etc.).
+
+This is EXTREMELY DANGEROUS because it can fundamentally affect the user experience. On the mainland, it will change thousands of regions and make the spaceserver hiccup.
+
+Proceed?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ label="Change Linden Estate Access"
+ name="ChangeLindenAccess"
+ type="alert">
+You are about to change the access list for a Linden owned estate (mainland, teen grid, orientation, etc.).
+
+This is DANGEROUS and should only be done to invoke the hack allowing objects/L$ to be transfered in/out of a grid.
+It will change thousands of regions and make the spaceserver hiccup.
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ label="Select estate"
+ name="EstateAllowedAgentAdd"
+ type="alert">
+Add to allowed list for this estate only or for [ALL_ESTATES]?
+ <usetemplate
+ canceltext="Cancel"
+ name="yesnocancelbuttons"
+ notext="All Estates"
+ yestext="This Estate"/>
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ label="Select estate"
+ name="EstateAllowedAgentRemove"
+ type="alert">
+Remove from allowed list for this estate only or for [ALL_ESTATES]?
+ <usetemplate
+ canceltext="Cancel"
+ name="yesnocancelbuttons"
+ notext="All Estates"
+ yestext="This Estate"/>
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ label="Select estate"
+ name="EstateAllowedGroupAdd"
+ type="alert">
+Add to group allowed list for this estate only or for [ALL_ESTATES]?
+ <usetemplate
+ canceltext="Cancel"
+ name="yesnocancelbuttons"
+ notext="All Estates"
+ yestext="This Estate"/>
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ label="Select estate"
+ name="EstateAllowedGroupRemove"
+ type="alert">
+Remove from group allowed list for this estate only or [ALL_ESTATES]?
+ <usetemplate
+ canceltext="Cancel"
+ name="yesnocancelbuttons"
+ notext="All Estates"
+ yestext="This Estate"/>
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ label="Select estate"
+ name="EstateBannedAgentAdd"
+ type="alert">
+Deny access for this estate only or for [ALL_ESTATES]?
+ <usetemplate
+ canceltext="Cancel"
+ name="yesnocancelbuttons"
+ notext="All Estates"
+ yestext="This Estate"/>
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ label="Select estate"
+ name="EstateBannedAgentRemove"
+ type="alert">
+Remove this Resident from the ban list for access for this estate only or for [ALL_ESTATES]?
+ <usetemplate
+ canceltext="Cancel"
+ name="yesnocancelbuttons"
+ notext="All Estates"
+ yestext="This Estate"/>
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ label="Select estate"
+ name="EstateManagerAdd"
+ type="alert">
+Add estate manager for this estate only or for [ALL_ESTATES]?
+ <usetemplate
+ canceltext="Cancel"
+ name="yesnocancelbuttons"
+ notext="All Estates"
+ yestext="This Estate"/>
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ label="Select estate"
+ name="EstateManagerRemove"
+ type="alert">
+Remove estate manager for this estate only or for [ALL_ESTATES]?
+ <usetemplate
+ canceltext="Cancel"
+ name="yesnocancelbuttons"
+ notext="All Estates"
+ yestext="This Estate"/>
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ label="Confirm Kick"
+ name="EstateKickUser"
+ type="alert">
+Kick [EVIL_USER] from this estate?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="EstateChangeCovenant"
+ type="alertmodal">
+Are you sure you want to change the Estate Covenant?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="RegionEntryAccessBlocked"
+ type="alertmodal">
+You are not allowed in that Region due to your maturity Rating. This may be a result of a lack of information validating your age.
+
+Please verify you have the latest Viewer installed, and go to the Knowledge Base for details on accessing areas with this maturity rating.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="RegionEntryAccessBlocked_KB"
+ type="alertmodal">
+You are not allowed in that region due to your maturity Rating.
+
+Go to the Knowledge Base for more information about maturity Ratings?
+ <url option="0" name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=6010
+ </url>
+ <usetemplate
+ name="okcancelignore"
+ yestext="Go to Knowledge Base"
+ notext="Close"
+ ignoretext="When Region entry is blocked due to maturity Rating"/>
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="RegionEntryAccessBlocked_Notify"
+ type="notifytip">
+You are not allowed in that region due to your maturity Rating.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="RegionEntryAccessBlocked_Change"
+ type="alertmodal">
+You are not allowed in that Region due to your maturity Rating preference.
+
+You can click &apos;Change Preference&apos; to raise your maturity Rating preference now and allow you to enter. You will be able to search and access [REGIONMATURITY] content from now on. If you later want to change this setting back, go to Edit &gt; Preferences... &gt; General.
+ <form name="form">
+ <button
+ index="0"
+ name="OK"
+ text="Change Preference"/>
+ <button
+ default="true"
+ index="1"
+ name="Cancel"
+ text="Close"/>
+ <ignore name="ignore" text="When Region entry is blocked due to maturity Rating preference"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="LandClaimAccessBlocked"
+ type="alertmodal">
+You cannot claim this land due to your maturity Rating. This may be a result of a lack of information validating your age.
+
+Please verify you have the latest Viewer installed, and go to the Knowledge Base for details on accessing areas with this maturity rating.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="LandClaimAccessBlocked_KB"
+ type="alertmodal">
+You cannot claim this land due to your maturity Rating.
+
+Go to the Knowledge Base for more information about maturity Ratings?
+ <url option="0" name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=6010
+ </url>
+ <usetemplate
+ name="okcancelignore"
+ yestext="Go to Knowledge Base"
+ notext="Close"
+ ignoretext="When claiming land is blocked due to maturity Rating"/>
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="LandClaimAccessBlocked_Notify"
+ type="notifytip">
+You cannot claim this land due to your maturity Rating.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="LandClaimAccessBlocked_Change"
+ type="alertmodal">
+You cannot claim this land due to your maturity Rating preference.
+
+You can click &apos;Change Preference&apos; to raise your maturity Rating preference now and allow you to enter. You will be able to search and access [REGIONMATURITY] content from now on. If you later want to change this setting back, go to Edit &gt; Preferences... &gt; General.
+ <usetemplate
+ name="okcancelignore"
+ yestext="Change Preference"
+ notext="Close"
+ ignoretext="When claiming land is blocked due to maturity Rating preference"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="LandBuyAccessBlocked"
+ type="alertmodal">
+You cannot buy this land due to your maturity Rating. This may be a result of a lack of information validating your age.
+
+Please verify you have the latest Viewer installed, and go to the Knowledge Base for details on accessing areas with this maturity rating.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="LandBuyAccessBlocked_KB"
+ type="alertmodal">
+You cannot buy this land due to your maturity Rating.
+
+Go to the Knowledge Base for more information about maturity Ratings?
+ <url option="0" name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=6010
+ </url>
+ <usetemplate
+ name="okcancelignore"
+ yestext="Go to Knowledge Base"
+ notext="Close"
+ ignoretext="When a Land purchase is blocked due to maturity Rating"/>
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="LandBuyAccessBlocked_Notify"
+ type="notifytip">
+You cannot buy this land due to your maturity Rating.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="LandBuyAccessBlocked_Change"
+ type="alertmodal">
+You cannot buy this land due to your maturity Rating preference.
+
+You can click &apos;Change Preference&apos; to raise your maturity Rating preference now and allow you to enter. You will be able to search and access [REGIONMATURITY] content from now on. If you later want to change this setting back, go to Edit &gt; Preferences... &gt; General.
+ <usetemplate
+ name="okcancelignore"
+ yestext="Change Preference"
+ notext="Close"
+ ignoretext="When a Land purchase is blocked due to maturity Rating preference"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="TooManyPrimsSelected"
+ type="alertmodal">
+ "There are too many prims selected. Please select [MAX_PRIM_COUNT] or fewer prims and try again"
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ProblemImportingEstateCovenant"
+ type="alertmodal">
+Problem importing estate covenant.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ProblemAddingEstateManager"
+ type="alertmodal">
+Problems adding a new estate manager. One or more estates may have a full manager list.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ProblemAddingEstateGeneric"
+ type="alertmodal">
+Problems adding to this estate list. One or more estates may have a full list.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="UnableToLoadNotecardAsset"
+ type="alertmodal">
+Unable to load notecard&apos;s asset at this time.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="NotAllowedToViewNotecard"
+ type="alertmodal">
+Insufficient permissions to view notecard associated with asset ID requested.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="MissingNotecardAssetID"
+ type="alertmodal">
+Asset ID for notecard is missing from database.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ name="PublishClassified"
+ type="alert">
+Remember: Classified ad fees are non-refundable.
+
+Publish this classified now for L$[AMOUNT]?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="SetClassifiedMature"
+ type="alertmodal">
+Does this classified contain Mature content?
+ <usetemplate
+ canceltext="Cancel"
+ name="yesnocancelbuttons"
+ notext="No"
+ yestext="Yes"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="SetGroupMature"
+ type="alertmodal">
+Does this group contain Mature content?
+ <usetemplate
+ canceltext="Cancel"
+ name="yesnocancelbuttons"
+ notext="No"
+ yestext="Yes"/>
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ label="Confirm restart"
+ name="ConfirmRestart"
+ type="alert">
+Do you really want to restart this region in 2 minutes?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ label="Message everyone in this region"
+ name="MessageRegion"
+ type="alert">
+Type a short announcement which will be sent to everyone in this region.
+ <form name="form">
+ <input name="message" type="text"/>
+ <button
+ default="true"
+ index="0"
+ name="OK"
+ text="OK"/>
+ <button
+ index="1"
+ name="Cancel"
+ text="Cancel"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Block Terraform"
+ name="HelpRegionBlockTerraform"
+ type="alertmodal">
+If this box is checked, land owners will not be able to terraform their land regardless of the per-parcel &apos;Edit Terrain&apos; setting.
+
+Default: off
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Block Fly"
+ name="HelpRegionBlockFly"
+ type="alertmodal">
+If this box is checked, people will not be able to fly in this region regardless of the per-parcel &apos;Fly&apos; setting.
+
+Default: off
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Bulk Change Content Permissions"
+ name="HelpBulkPermission"
+ type="alertmodal">
+The Bulk Permissions tool helps you to quickly change the permissions on multiple items in the contents of the selected object(s). However, please note that you are only setting permissions on the items in the Contents of the selected objects -- not permissions on the container object(s) themselves.
+
+Also note, the permissions are not applied to the nested contents of any of the contained items. Your request only operates on items exactly one level deep.
+
+You can selectively choose which types of items to modify by using the checklist under &apos;Content Types&apos; here. Snapshots are included when you select Textures.
+
+* This tool will only succeed at changing permissions on items you are allowed to change.
+* You cannot grant any Next owner permissions which you do not already have.
+* The Next owner permissions are merely requests. If any item cannot take all of the new permissions, none of its permissions will change.
+
+When you are ready to change the permissions in bulk, click &apos;Apply&apos; and wait for the results to display.
+
+If you close the Bulk Permissions window while permissions are being changed, it will halt the operation.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Allow Damage"
+ name="HelpRegionAllowDamage"
+ type="alertmodal">
+If this box is checked, the health system across all parcels regardless of individual parcel settings. If this box is left unchecked, individual parcel owners will still be able to activate the health system on their parcels.
+
+Default: off
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Agent Limit"
+ name="HelpRegionAgentLimit"
+ type="alertmodal">
+Sets the maximum number of avatars allowed in this region.
+Performance may vary depending on the number avatars present.
+
+Default: 40
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Object Bonus"
+ name="HelpRegionObjectBonus"
+ type="alertmodal">
+The Object Bonus is a multiplier for primitives allowed on any given parcel. The range allowed is 1 to 10. Set at &apos;1&apos;, each 512m² parcel is allowed 117 objects. Set at &apos;2&apos;, each 512m² parcel is allowed 234, or twice as many, and so on. The max number of objects allowed per region remains 15,000 no matter what the Object Bonus is. Once set, be aware that lowering the Object Bonus may cause objects to be returned or deleted.
+
+Default: 1.0
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Maturity"
+ name="HelpRegionMaturity"
+ type="alertmodal">
+Sets the maturity Rating of the Region, as shown in the menu bar at the top of any Resident&apos;s viewer, and in tooltips on the World Map when the cursor hovers over this Region. This setting also affects access to this Region and search results. Other Residents may only enter Regions or view search results with the same maturity Ratings they have chosen in their preferences.
+
+It may take some time for this change to be reflected on the map.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Restrict Pushing"
+ name="HelpRegionRestrictPushObject"
+ type="alertmodal">
+This checkbox sets the full region to restricted push permissions.
+When enabled, Residents may only be pushed by themselves or by the parcel&apos;s owner.
+(Push refers to the llPushObject() LSL function.)
+
+Default: Off
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Parcel Join/Subdivide"
+ name="HelpParcelChanges"
+ type="alertmodal">
+This checkbox sets whether or not parcels not owned by the estate owner can be joined or subdivided.
+If this option is unchecked:
+ * Only estate owners or managers can join or subdivide parcels.
+ * They may only join or subdivide parcels belonging to the owner, or to a group where they have the appropriate group powers.
+If this option is checked:
+ * All parcel owners can join or subdivide the parcels they own.
+ * For group owned parcels, those with appropriate group powers may join or subdivide parcels.
+
+Default: Checked
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Do Not Show In Search"
+ name="HelpRegionSearch"
+ type="alertmodal">
+Checking this box will block parcel owners from listing their parcels in search.
+
+Default: Off
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Changed Region Maturity"
+ name="RegionMaturityChange"
+ type="alertmodal">
+The maturity rating for this region has been updated.
+It may take some time for the change to be reflected on the map.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Land Resale"
+ name="HelpRegionLandResell"
+ type="alertmodal">
+Estate owners and managers can sell any land owned by the estate owner.
+If this option is left unchecked, buyers cannot resell their land in this region.
+If this option is checked, buyers can resell their land in this region.
+
+Default: Disallow
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Disable Scripts"
+ name="HelpRegionDisableScripts"
+ type="alertmodal">
+When sim performance is poor, a script may be to blame. Open the Statistics Bar (Ctrl-Shift-1). Look at the Simulator Physics FPS.
+If it is lower than 45, open the Time panel located at the bottom of the Stats Bar. If Script Time reads 25 ms or higher, click the Get Top Scripts button. You will be given the name and location of scripts that may be causing poor performance.
+
+Checking the Disable Scripts box and then pressing the Apply button will temporarily disable all scripts in this region. You may need to do this in order to travel to the location of a noted &apos;top script&apos;. Once you have arrived at the location, investigate the script to determine if it is causing the problem. You may want to contact the owner of the script or delete or return the object.
+Uncheck the Disable Script box and then Apply to reactivate the scripts in the region.
+
+Default: off
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Disable Collisions"
+ name="HelpRegionDisableCollisions"
+ type="alertmodal">
+When sim performance is poor, physical objects may be to blame.
+Open the Statistics Bar (Ctrl-Shift-1). Look at the Simulator Physics FPS. If it is lower than 45, open the Time panel located at the bottom of the Stats Bar. If Sim Time (Physics) reads 20 ms or higher, click the Get Top Colliders button.
+You will be given the name and location of physical objects that may be causing poor performance.
+
+Checking the Disable Collisions box and then pressing the Apply button will temporarily disable object-object collisions. You may need to do this in order to travel to the location of a noted &apos;top collider&apos;. Once you have arrived at the location, investigate the object - is it constantly colliding with other objects? You may want to contact the owner of the object or delete or return the object.
+Uncheck the Disable Collisions box and then Apply to reactivate collisions in the region.
+
+Default: off
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Disable Physics"
+ name="HelpRegionDisablePhysics"
+ type="alertmodal">
+Disable Physics is similar to Disable Collisions, except all physics simulation is disabled. This means that not only will objects stop colliding, but avatars will be unable to move.
+
+This should only be used when Disable Collisions does not give back enough performance to the region to investigate a physics problem or Top Collider.
+
+Be sure to re-enable physics when you are done, or avatars will continue to be unable to move.
+
+Default: off
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Top Colliders"
+ name="HelpRegionTopColliders"
+ type="alertmodal">
+Show a list of objects experiencing the greatest number of potential object-object collisions. These objects can slow performance. Select View &gt; Statistics Bar and look under Simulator &gt; Time &gt; Sim Time (Physics) to see if more than 20 ms is being spent in physics.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Top Scripts"
+ name="HelpRegionTopScripts"
+ type="alertmodal">
+Show a list of objects spending the most time running LSL scripts. These objects can slow performance.
+Select View &gt; Statistics Bar and look under Simulator &gt; Time &gt; Script Time to see if more than 25 ms is being spent in scripts.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Restart Region"
+ name="HelpRegionRestart"
+ type="alertmodal">
+Restart the server process running this region after a two minute warning. All Residents in the region will be disconnected. The region will save its data, and should come back up within 90 seconds.
+
+Restarting the region will not fix most performance problems, and should usually be used only when directed.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Water Height"
+ name="HelpRegionWaterHeight"
+ type="alertmodal">
+This is the height in meters where water appears. If this setting is anything other than 20 and you have water that is adjacent to the edge of world or &apos;void&apos; water, there will be a visible gap.
+
+Default: 20
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Terrain Raise"
+ name="HelpRegionTerrainRaise"
+ type="alertmodal">
+This is the distance in meters that parcel owners can raise their terrain above the &apos;baked&apos; terrain default height.
+
+Default: 4
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Terrain Lower"
+ name="HelpRegionTerrainLower"
+ type="alertmodal">
+This is the distance in meters that parcel owners can lower their terrain below the &apos;baked&apos; terrain default height.
+
+Default: -4
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Upload RAW Terrain"
+ name="HelpRegionUploadRaw"
+ type="alertmodal">
+This button uploads a .RAW file to the region you are in.
+The file must have the correct dimensions (RGB, 256x256) and 13 channels. The best way to create a terrain file is to download the existing RAW file. A good first step is to modify the red channel (land height), and upload it.
+
+The upload can take up to 45 seconds. Note that uploading a terrain file *will not* move the objects that are on the land, only the terrain itself and the permissions associated with the parcels. This can result in objects going underground.
+
+For more information on editing region height fields, consult F1 Help.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Download RAW Terrain"
+ name="HelpRegionDownloadRaw"
+ type="alertmodal">
+This button downloads a file containing the height field data, parcel dimensions, parcel for sale status and some parcel permissions for this region. When opening the file in a program such as Photoshop you must specify the document&apos;s dimensions which are: RGB, 256x256 with 13 channels. This terrain file cannot be opened in any other way.
+
+For more information on editing region height fields, consult F1 help.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Use Estate Sun"
+ name="HelpRegionUseEstateSun"
+ type="alertmodal">
+This checkbox makes the sun position in this region the same as the sun position in the rest of the estate.
+
+Default: on
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Fixed Sun"
+ name="HelpRegionFixedSun"
+ type="alertmodal">
+This checkbox sets the sun position to the position in the Phase slider and stops the sun from moving.
+
+Default: off
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Bake Terrain"
+ name="HelpRegionBakeTerrain"
+ type="alertmodal">
+This button saves the current shape of the terrain as the new default for the region. Once baked, the land can revert to the saved shape whenever you or others use the Edit Terrain &apos;Revert&apos; option. The baked terrain is also the middle point for the terrain raise and lower limits.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Estate Managers"
+ name="HelpEstateEstateManager"
+ type="alertmodal">
+An estate manager is a Resident to whom you have delegated control of region and estate settings. An estate manager can change any setting in these panels, except for uploading, downloading, and baking terrain. In particular, they can allow or ban Residents from your estate.
+
+Estate managers can only be added or removed by the owner of the estate, not by each other. Please only choose Residents you trust as estate managers, as you will be ultimately responsible for their actions.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Use Global Time"
+ name="HelpEstateUseGlobalTime"
+ type="alertmodal">
+This checkbox makes the sun in your estate follow the same position as on the Linden-owned &apos;mainland&apos; estates.
+
+Default: on
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Fixed Sun"
+ name="HelpEstateFixedSun"
+ type="alertmodal">
+This checkbox sets the sun position to the position in the Phase slider and stops the sun from moving.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Public Access"
+ name="HelpEstateExternallyVisible"
+ type="alertmodal">
+This checkbox sets whether Residents who are on other estates can enter this estate without being on an access list.
+
+Default: on
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Allow Direct Teleport"
+ name="HelpEstateAllowDirectTeleport"
+ type="alertmodal">
+When checked, allows Residents to directly teleport to any point in your estate. When unchecked, Residents teleport to the nearest telehub.
+
+Default: off
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Allow Access"
+ name="HelpEstateAllowResident"
+ type="alertmodal">
+Access to this estate will be limited to Residents listed here and any groups below. This setting is only available when Public Access is unchecked.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Allow Group Access"
+ name="HelpEstateAllowGroup"
+ type="alertmodal">
+Access to this estate will be limited to groups listed here and any Residents above. This setting is only available when Public Access is unchecked.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Abuse Email Address"
+ name="HelpEstateAbuseEmailAddress"
+ type="alertmodal">
+Setting this to a valid email address will cause abuse reports on this estate to be sent to that address.
+Setting it blank will cause abuse reports to be sent only to Linden Lab.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Deny Access"
+ name="HelpEstateBanResident"
+ type="alertmodal">
+Residents on this list are denied access to your estate, regardless of any other settings.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Allow Voice Chat"
+ name="HelpEstateVoiceChat"
+ type="alertmodal">
+Parcels in this estate are allowed to have their own voice channels in which residents may hear and talk with others nearby.
+
+Default: off
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Voice Version Mismatch"
+ name="VoiceVersionMismatch"
+ type="alertmodal">
+This version of Second Life is not compatible with the Voice Chat feature in this region. In order for Voice Chat to function correctly you will need to update Second Life.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Estate Covenant"
+ name="HelpEstateCovenant"
+ type="alertmodal">
+Setting an estate covenant enables you to sell parcels within that estate. If a covenant is not set, you cannot sell the land. The notecard for your covenant can be empty if you do not wish to apply any rules or advise buyers of anything in relation to the land before they buy it.
+
+A covenant can be used to communicate rules, guidelines, cultural information or simply your own expectations to the prospective buyer. This can include zoning, building regulations, payment options or any other information you feel it is important for the new owner to have seen and to have agreed to before they purchase.
+
+The buyer must agree to the covenant by ticking the check box before they will be able to finish the purchase. Estate covenants are always visible in the About Land dialog for any parcels that have one set.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Can&apos;t Buy Objects"
+ name="BuyObjectOneOwner"
+ type="alertmodal">
+Cannot buy objects from different owners at the same time.
+Please select only one object and try again.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Can&apos;t Buy Contents"
+ name="BuyContentsOneOnly"
+ type="alertmodal">
+Unable to buy the contents of more than one object at a time.
+Please select only one object and try again.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="Can&apos;t Buy Contents"
+ name="BuyContentsOneOwner"
+ type="alertmodal">
+Cannot buy objects from different owners at the same time.
+Please select only one object and try again.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="BuyOriginal"
+ type="alertmodal">
+Buy original object from [OWNER] for L$[PRICE]?
+You will become the owner of this object.
+You will be able to:
+ Modify: [MODIFYPERM]
+ Copy: [COPYPERM]
+ Resell or Give Away: [RESELLPERM]
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="BuyOriginalNoOwner"
+ type="alertmodal">
+Buy original object for L$[PRICE]?
+You will become the owner of this object.
+You will be able to:
+ Modify: [MODIFYPERM]
+ Copy: [COPYPERM]
+ Resell or Give Away: [RESELLPERM]
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="BuyCopy"
+ type="alertmodal">
+Buy a copy from [OWNER] for L$[PRICE]?
+The object will be copied to your inventory.
+You will be able to:
+ Modify: [MODIFYPERM]
+ Copy: [COPYPERM]
+ Resell or Give Away: [RESELLPERM]
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="BuyCopyNoOwner"
+ type="alertmodal">
+Buy a copy for L$[PRICE]?
+The object will be copied to your inventory.
+You will be able to:
+ Modify: [MODIFYPERM]
+ Copy: [COPYPERM]
+ Resell or Give Away: [RESELLPERM]
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="BuyContents"
+ type="alertmodal">
+Buy contents from [OWNER] for L$[PRICE]?
+They will be copied to your inventory.
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="BuyContentsNoOwner"
+ type="alertmodal">
+Buy contents for L$[PRICE]?
+They will be copied to your inventory.
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ConfirmPurchase"
+ type="alertmodal">
+This transaction will:
+[ACTION]
+
+Are you sure you want to proceed with this purchase?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ConfirmPurchasePassword"
+ type="password">
+This transaction will:
+[ACTION]
+
+Are you sure you want to proceed with this purchase?
+Please re-enter your password and click OK.
+ <form name="form">
+ <input
+ name="message"
+ type="password"/>
+ <button
+ default="true"
+ index="0"
+ name="ConfirmPurchase"
+ text="OK"/>
+ <button
+ index="1"
+ name="Cancel"
+ text="Cancel"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ name="SetPickLocation"
+ type="alert">
+Note:
+You have updated the location of this pick but the other details will retain their original values.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="MoveInventoryFromObject"
+ type="alertmodal">
+You have selected &apos;no copy&apos; inventory items.
+These items will be moved to your inventory, not copied.
+
+Move the inventory item(s)?
+ <usetemplate
+ ignoretext="When moving no-copy inventory from objects"
+ name="okcancelignore"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="MoveInventoryFromScriptedObject"
+ type="alertmodal">
+You have selected &apos;no copy&apos; inventory items. These items will be moved to your inventory, not copied.
+Because this object is scripted, moving these items to your inventory may cause the script to malfunction.
+
+Move the inventory item(s)?
+ <usetemplate
+ ignoretext="When moving no-copy inventory from scripted objects"
+ name="okcancelignore"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ name="ClickActionNotPayable"
+ type="alert">
+Warning: The Pay Object click action has been set, but it will only work if a script is added with a money() event.
+ <form name="form">
+ <ignore name="ignore"
+ text="When Setting &apos;Pay&apos; on objects without money() events"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="OpenObjectCannotCopy"
+ type="alertmodal">
+There are no items in this object that you are allowed to copy.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="WebLaunchAccountHistory"
+ type="alertmodal">
+Go to the Second Life web site to see your account history?
+ <usetemplate
+ ignoretext="When loading account history web page"
+ name="okcancelignore"
+ notext="Cancel"
+ yestext="Go to page"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ClickOpenF1Help"
+ type="alertmodal">
+Visit the Second Life Support Web site?
+ <usetemplate
+ ignoretext="When visiting the Second Life Support Website."
+ name="okcancelignore"
+ notext="Cancel"
+ yestext="Go"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ConfirmQuit"
+ type="alertmodal">
+Are you sure you want to quit?
+ <usetemplate
+ ignoretext="When Quitting Second Life."
+ name="okcancelignore"
+ notext="Continue"
+ yestext="Quit"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpReportAbuseEmailLL"
+ type="alertmodal">
+Use this tool to report violations of the Terms of Service and Community Standards. See:
+
+http://secondlife.com/corporate/tos.php
+http://secondlife.com/corporate/cs.php
+
+All reported abuses of the Terms of Service and Community Standards are investigated and resolved. You can view the incident resolution on the Incident Report at:
+
+http://secondlife.com/support/incidentreport.php
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpReportAbuseEmailEO"
+ type="alertmodal">
+IMPORTANT: This report will go to the owner of the region you are currently in and not to Linden Lab.
+
+As a service to residents and visitors, the owner of the region you are in has elected to receive and resolve all reports originating in this region. Linden Lab will not investigate reports you file from this location.
+
+The region owner will resolve reports based on the local rules of this region as outlined in the estate Covenant.
+(View covenants by going to the World menu and selecting About Land.)
+
+The resolution of this report applies only to this Region; Residents access to other areas of Second Life will not be affected by the outcome of this report. Only Linden Lab can restrict access to the entirety of Second Life.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpReportBug"
+ type="alertmodal">
+Use this tool to *only* report technical features that do not perform as described or expected, please provide as much detail as possible.
+You may reply to the auto-response email to add more details to your report.
+
+All bug reports are investigated and assessed. No email response will be sent.
+
+If you are having a technical difficulty, please contact Support at:
+
+http://secondlife.com/community/support.php
+
+Note: Incomplete reports will not be investigated
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpReportAbuseSelectCategory"
+ type="alertmodal">
+Please select a category for this abuse report.
+Selecting a category helps us file and process abuse reports.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpReportBugSelectCategory"
+ type="alertmodal">
+Please select a category for this bug.
+Selecting a category helps us file and process bug reports.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpReportAbuseAbuserNameEmpty"
+ type="alertmodal">
+Please enter the name of the abuser.
+Entering an accurate value helps us file and process abuse reports.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpReportAbuseAbuserLocationEmpty"
+ type="alertmodal">
+Please enter the location where the abuse took place.
+Entering an accurate value helps us file and process abuse reports.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpReportAbuseSummaryEmpty"
+ type="alertmodal">
+Please enter a summary of the abuse that took place.
+Entering an accurate summary helps us file and process abuse reports.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpReportBugSummaryEmpty"
+ type="alertmodal">
+Please enter a summary of the bug.
+Entering an accurate summary helps us file and process bug reports.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpReportAbuseDetailsEmpty"
+ type="alertmodal">
+Please enter a detailed description of the abuse that took place.
+Be as specific as you can, including names and the details of the incident you are reporting.
+Entering an accurate description helps us file and process abuse reports.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpReportBugDetailsEmpty"
+ type="alertmodal">
+Please enter a detailed description of the bug.
+Be as specific as you can, including steps to reproduce the bug if possible.
+Entering an accurate description helps us file and process bug reports.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpReportAbuseContainsCopyright"
+ type="alertmodal">
+Dear Resident,
+
+You appear to be reporting intellectual property infringement. Please make sure you are reporting it correctly:
+
+(1) The Abuse Process. You may submit an abuse report if you believe a Resident is exploiting the Second Life permissions system, for example, by using CopyBot or similar copying tools, to infringe intellectual property rights. The Abuse Team investigates and issues appropriate disciplinary action for behavior that violates the Second Life Community Standards or Terms of Service. However, the Abuse Team does not handle and will not respond to requests to remove content from the Second Life world.
+
+(2) The DMCA or Content Removal Process. To request removal of content from Second Life, you MUST submit a valid notification of infringement as provided in our DMCA Policy at http://secondlife.com/corporate/dmca.php.
+
+If you still wish to continue with the abuse process, please close this window and finish submitting your report. You may need to select the specific category &apos;CopyBot or Permissions Exploit&apos;.
+
+Thank you,
+
+Linden Lab
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="FailedRequirementsCheck"
+ type="alertmodal">
+The following required components are missing from [FLOATER]:
+[COMPONENTS]
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ label="Replace Existing Attachment"
+ name="ReplaceAttachment"
+ type="alert">
+There is already an object attached to this point on your body.
+Do you want to replace it with the selected object?
+ <form name="form">
+ <ignore name="ignore"
+ save_option="true"
+ text="When replacing existing attachments"/>
+ <button
+ default="true"
+ ignore="Replace Automatically"
+ index="0"
+ name="Yes"
+ text="OK"/>
+ <button
+ ignore="Never Replace"
+ index="1"
+ name="No"
+ text="Cancel"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ label="Busy Mode Warning"
+ name="BusyModePay"
+ type="alert">
+You are in Busy Mode, which means you will not receive any items offered in exchange for this payment.
+
+Would you like to leave Busy Mode before completing this transaction?
+ <form name="form">
+ <ignore name="ignore"
+ save_option="true"
+ text="When paying a person or object in busy mode"/>
+ <button
+ default="true"
+ ignore="Always leave Busy Mode"
+ index="0"
+ name="Yes"
+ text="OK"/>
+ <button
+ ignore="Never leave Busy Mode"
+ index="1"
+ name="No"
+ text="Cancel"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ConfirmEmptyTrash"
+ type="alertmodal">
+Are you sure you want to permanently remove the contents of your Trash folder?
+ <usetemplate
+ ignoretext="When emptying your inventory trash folder"
+ name="okcancelignore"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ConfirmClearBrowserCache"
+ type="alertmodal">
+Are you sure you want to clear your browser cache?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="Yes"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ConfirmClearCookies"
+ type="alertmodal">
+Are you sure you want to clear your cookies?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="Yes"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ConfirmClearMediaUrlList"
+ type="alertmodal">
+Are you sure you want to clear your list of saved URLs?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="Yes"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ConfirmEmptyLostAndFound"
+ type="alertmodal">
+Are you sure you want to permanently remove the contents of your Lost And Found folder?
+ <usetemplate
+ ignoretext="When emptying your inventory Lost And Found folder"
+ name="okcancelignore"
+ notext="No"
+ yestext="Yes"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="CopySLURL"
+ type="alertmodal">
+The following SLURL has been copied to your clipboard:
+ [SLURL]
+
+Put it in a web page to give others easy access to this location or try it out yourself by pasting it into the address bar of your web browser.
+ <form name="form">
+ <ignore name="ignore"
+ text="When copying a SLURL to your clipboard"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="GraphicsPreferencesHelp"
+ type="alertmodal">
+This panel controls window size and resolution and the quality of the client&apos;s graphics. The Preferences &gt; Graphics interface allows you to choose between four graphics levels: Low, Mid, High, and Ultra. You may also customize your graphics settings by checking the Custom checkbox and manipulating the following settings:
+
+Shaders: Enable or disable various types of pixel shaders.
+
+Reflection Detail: Sets the types of objects that water can reflect.
+
+Avatar Rendering: Sets options that affect how the client renders avatars.
+
+Draw Distance: Affects how far out from your viewpoint objects will be rendered in the scene.
+
+Max Particle Count: Sets the maximum number of particles you are able to see on your screen at once.
+
+Post Process Quality: Sets the resolution with which Glow is rendered.
+
+Mesh Detail: Sets the amount of detail or number of triangles used in rendering certain objects. A higher value takes longer to render, but makes these objects appear with more detail.
+
+Lighting Detail: Selects what types of lights you would like to render.
+
+Terrain Detail: Sets the amount of detail you would like to see for the terrain texture.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="WLSavePresetAlert"
+ type="alertmodal">
+Do you wish to overwrite the saved preset?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="No"
+ yestext="Yes"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="WLDeletePresetAlert"
+ type="alertmodal">
+Do you wish to delete [SKY]?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="No"
+ yestext="Yes"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="WLNoEditDefault"
+ type="alertmodal">
+You cannot edit or delete a default preset.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="WLMissingSky"
+ type="alertmodal">
+This day cycle file references a missing sky file: [SKY].
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="PPSaveEffectAlert"
+ type="alertmodal">
+PostProcess Effect exists. Do you still wish overwrite it?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="No"
+ yestext="Yes"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpEditSky"
+ type="alertmodal">
+Edit the WindLight sliders to create and save a set of skies.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpEditDayCycle"
+ type="alertmodal">
+Set which skies to turn to throughout the day.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="EnvSettingsHelpButton"
+ type="alertmodal">
+These settings adjust the way the environment looks locally on your computer. Your graphics card needs to support atmospheric shaders in order to have access to all of the settings.
+
+Adjust the &quot;Time of Day&quot; slider to change the day&apos;s phase locally on the viewer.
+
+Adjust the &quot;Cloud Cover&quot; slider to control how much the clouds cover the sky.
+
+Pick a color in the &quot;Water Color&quot; color picker to change the color of the water.
+
+Adjust the &quot;Water Fog&quot; slider to control how dense the fog is underwater.
+
+Click &quot;Use Estate Time&quot; to reset the time of day to the region&apos;s current time of day and remain linked to it.
+
+Click &quot;Advanced Sky&quot; to bring up an editor with more advanced settings for the sky.
+
+Click &quot;Advanced Water&quot; to bring up an editor with more advanced settings for the water.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpDayCycle"
+ type="alertmodal">
+The Day Cycle Editor gives you control over the sky during Second Life&apos;s day/night cycle. This is the cycle that is used by the Basic Environment Editor&apos;s Time of Day slider.
+
+The Day Cycle Editor works by setting keyframes. These are nodes (represented by the gray blips on the time graph) that have Sky Presets associated with them. As the Time of Day progresses, the WindLight sky &quot;animates&quot; as it interpolates between these keyframes.
+
+The yellow arrow above the timeline represents your current view, based on Time of Day. Click and drag it to see how your day will animate. You may add or delete keyframes by pressing the Add Key and Delete Key buttons to the right of the timeline.
+
+You can set the time position of a keyframe by either dragging it along the timeline, or by setting its value manually in the Key Frame Settings frame. Within the Key Frame Settings frame, you&apos;ll be able to associate the keyframe with its respective WindLight preset.
+
+Length of Cycle dictates the overall duration of a &quot;day&quot;. Setting this to a low value (for instance, 2 min.) will mean your entire 24-hour timeline will animate in only two real minutes! Once you are satisfied with your timeline and keyframe cycle, use the Play and Stop buttons to preview the results. Remember- you can also move the yellow time-indicator arrow above the timeline to see the cycle animate interactively. Using the Use Estate Time button will synchronize your day length and time of day with the Estate&apos;s day cycle.
+
+Once you are pleased with your Day Cycle, you can save and load it with the Save Test Day and Load Test Day buttons. Note that, for now, we only allow one Day Cycle.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpBlueHorizon"
+ type="alertmodal">
+Use the Red/Green/Blue (RGB) sliders to adjust the color of the sky. You can use the Intensity (I) slider to move all three RGB sliders in unison.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpHazeHorizon"
+ type="alertmodal">
+Haze Horizon is one of the most useful parameters for adjusting overall light exposure in the scene. It is effective for simulating many exposure settings, such as white-outs from the sun and darker, closed-iris settings.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpBlueDensity"
+ type="alertmodal">
+Blue Density affects the overall color saturation of the sky and fog. If you move the Intensity (I) slider to the right, colors will become brighter and more vibrant. If you move it all the way to the left, the colors will become duller, eventually fading to black and white. If you want to fine-tune the sky&apos;s color balance, you can control individual elements of saturation by using the Red/Green/Blue (RGB) sliders.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpHazeDensity"
+ type="alertmodal">
+Haze Density controls the level of dull, gray haze in the atmosphere. It is effective for simulating scenes with high levels of smoke and man-made pollutants. It is also effective for simulating fog and mist.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpDensityMult"
+ type="alertmodal">
+The Density Multiplier can be used to affect the overall atmospheric density. At lower settings, it creates a feeling of &quot;thin air&quot;, and at higher settings, it creates a very heavy, smoggy effect.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpDistanceMult"
+ type="alertmodal">
+Adjusts WindLight&apos;s perceived distance. A value of zero effectively turns off WindLight&apos;s influence on terrain and objects. Values greater than 1 simulate greater distances for thicker atmospheric effects.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpMaxAltitude"
+ type="alertmodal">
+Max Altitude adjusts the altitude calculations WindLight performs when computing its atmospheric lighting. At later times of day, it is useful for adjusting how &quot;deep&quot; the sunset appears.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpSunlightColor"
+ type="alertmodal">
+Adjusts the color and intensity of the direct light in the scene.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpSunAmbient"
+ type="alertmodal">
+Adjusts the color and intensity of ambient atmospheric light in the scene.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpSunGlow"
+ type="alertmodal">
+The Size slider controls the size of the sun.
+The Focus slider controls how blurred the sun is over the sky.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpSceneGamma"
+ type="alertmodal">
+Adjust the screen&apos;s distribution of light and dark.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpStarBrightness"
+ type="alertmodal">
+Adjusts the brightness of the stars in the sky.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpTimeOfDay"
+ type="alertmodal">
+Controls the location of the sun in the sky.
+Similar to elevation.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpEastAngle"
+ type="alertmodal">
+Controls the location of the sun in the sky.
+Similar to azimuth.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpCloudColor"
+ type="alertmodal">
+Edits the color of the clouds. It is generally recommended to keep it whitish, but hey, have fun if you want.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpCloudDetail"
+ type="alertmodal">
+Controls the detail image layered on top of the main cloud image. X and Y control its position. D (Density) controls how puffy or fractured the clouds appear.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpCloudDensity"
+ type="alertmodal">
+Allows you to control the position of the clouds with the X and Y sliders and how dense they are with the the D slider.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpCloudCoverage"
+ type="alertmodal">
+Controls how much the clouds cover the sky.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpCloudScale"
+ type="alertmodal">
+Controls the scaling of the cloud image on the sky dome.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpCloudScrollX"
+ type="alertmodal">
+Controls the speed of the clouds as they move in the X direction.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpCloudScrollY"
+ type="alertmodal">
+Controls the speed of the clouds as they move in the Y direction.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpClassicClouds"
+ type="alertmodal">
+Check this box to enable rendering of Second Life&apos;s older classic clouds in addition to WindLight&apos;s clouds.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpWaterFogColor"
+ type="alertmodal">
+Chooses the color of the underwater fog.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpWaterFogDensity"
+ type="alertmodal">
+Controls how dense the water fog is and how far you can see underwater.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpUnderWaterFogMod"
+ type="alertmodal">
+Modifies the effect of the Fog Density Exponent to control how far you can see when your avatar is underwater.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpWaterGlow"
+ type="alertmodal">
+Controls how much the surface of the water glows.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpWaterNormalScale"
+ type="alertmodal">
+Controls the scaling of the three wavelets that make up the water.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpWaterFresnelScale"
+ type="alertmodal">
+Controls how much light is reflected at different angles.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpWaterFresnelOffset"
+ type="alertmodal">
+Controls how much light intensity is reflected.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpWaterScaleAbove"
+ type="alertmodal">
+Controls how much light is refracted from looking above the surface of the water.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpWaterScaleBelow"
+ type="alertmodal">
+Controls how much light is refracted from looking from below the surface of the water.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpWaterBlurMultiplier"
+ type="alertmodal">
+Controls how waves and reflections are mixed.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpWaterNormalMap"
+ type="alertmodal">
+Controls what normal map is layered across the water to determine reflections/refractions.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpWaterWave1"
+ type="alertmodal">
+Controls where and how fast the large scaled version of the normal map moves in the X and Y direction.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="HelpWaterWave2"
+ type="alertmodal">
+Controls where and how fast the the small scaled version of the normal map moves in the X and Y direction.
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ name="NewSkyPreset"
+ type="alert">
+Give me a name for the new sky.
+ <form name="form">
+ <input name="message" type="text">
+New Preset
+ </input>
+ <button
+ default="true"
+ index="0"
+ name="OK"
+ text="OK"/>
+ <button
+ index="1"
+ name="Cancel"
+ text="Cancel"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ExistsSkyPresetAlert"
+ type="alertmodal">
+Preset already exists!
+ </notification>
+
+ <notification
+ icon="alert.tga"
+ name="NewWaterPreset"
+ type="alert">
+Give me a name for the new water preset.
+ <form name="form">
+ <input name="message" type="text">
+New Preset
+ </input>
+ <button
+ default="true"
+ index="0"
+ name="OK"
+ text="OK"/>
+ <button
+ index="1"
+ name="Cancel"
+ text="Cancel"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ExistsWaterPresetAlert"
+ type="alertmodal">
+Preset already exists!
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="WaterNoEditDefault"
+ type="alertmodal">
+You cannot edit or delete a default preset.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ChatterBoxSessionStartError"
+ type="alertmodal">
+Unable to start a new chat session with [RECIPIENT].
+[REASON]
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ChatterBoxSessionEventError"
+ type="alertmodal">
+[EVENT]
+[REASON]
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ForceCloseChatterBoxSession"
+ type="alertmodal">
+Your chat session with [NAME] must close.
+[REASON]
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="Cannot_Purchase_an_Attachment"
+ type="alertmodal">
+Items may not be purchased while they are part of an attachment.
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ label="About Requests for the Debit Permission"
+ name="DebitPermissionDetails"
+ type="alertmodal">
+Granting this request gives a script ongoing permission to take Linden dollars (L$) from your account. To revoke this permission, the object owner must delete the object or reset the scripts in the object.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="AutoWearNewClothing"
+ type="alertmodal">
+Would you like to automatically wear the clothing item you create?
+ <usetemplate
+ ignoretext="Automatically wear new clothing"
+ name="okcancelignore"
+ notext="No"
+ yestext="Yes"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="NotAgeVerified"
+ type="alertmodal">
+You need to be age-verified in order to access this parcel.
+Would you like to visit the Second Life website to verify your age?
+
+[_URL]
+ <url option="0" name="url">
+
+ https://secondlife.com/account/verification.php
+ </url>
+ <usetemplate
+ ignoretext="Warn about lack of age verification"
+ name="okcancelignore"
+ notext="No"
+ yestext="Yes"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="Cannot enter parcel: no payment info on file"
+ type="alertmodal">
+This parcel requires that you have payment information on file before you can access it.
+Would you like to visit the Second Life website to set this up?
+
+[_URL]
+ <url option="0" name="url">
+
+ https://secondlife.com/account/
+ </url>
+ <usetemplate
+ ignoretext="Warn about lack of payment info"
+ name="okcancelignore"
+ notext="No"
+ yestext="Yes"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="MissingString"
+ type="alertmodal">
+The string [STRING_NAME] is missing from strings.xml
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="SystemMessageTip"
+ type="notifytip">
+[MESSAGE]
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="Cancelled"
+ type="notifytip">
+Cancelled
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="CancelledSit"
+ type="notifytip">
+Cancelled Sit
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="CancelledAttach"
+ type="notifytip">
+Cancelled Attach
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="ReplacedMissingWearable"
+ type="notifytip">
+Replaced missing clothing/body part with default.
+ </notification>
+
+ <notification
+ icon="groupnotify"
+ name="GroupNotice"
+ type="groupnotify">
+Topic: [SUBJECT], Message: [MESSAGE]
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="FriendOnline"
+ type="notifytip">
+[FIRST] [LAST] is Online
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="FriendOffline"
+ type="notifytip">
+[FIRST] [LAST] is Offline
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="AddSelfFriend"
+ type="notifytip">
+You cannot add yourself as a friend.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="UploadingAuctionSnapshot"
+ type="notifytip">
+Uploading in-world and web site snapshots...
+(Takes about 5 minutes.)
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="UploadPayment"
+ type="notify">
+You paid L$[AMOUNT] to upload.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="UploadWebSnapshotDone"
+ type="notifytip">
+Web site snapshot upload done.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="UploadSnapshotDone"
+ type="notifytip">
+In-world snapshot upload done
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="TerrainDownloaded"
+ type="notifytip">
+Terrain.raw downloaded
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="GestureMissing"
+ type="notifytip">
+Gesture [NAME] is missing from database.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="UnableToLoadGesture"
+ type="notifytip">
+Unable to load gesture [NAME].
+Please try again.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="LandmarkMissing"
+ type="notifytip">
+Landmark is missing from database.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="UnableToLoadLandmark"
+ type="notifytip">
+Unable to load landmark. Please try again.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="CapsKeyOn"
+ type="notifytip">
+Your Caps Lock key is on.
+As this will affect the password you type in, you will probably want to turn it off.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="NotecardMissing"
+ type="notifytip">
+Notecard is missing from database.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="NotecardNoPermissions"
+ type="notifytip">
+Insufficient permissions to view notecard.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="RezItemNoPermissions"
+ type="notifytip">
+Insufficient permissions to rez object.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="UnableToLoadNotecard"
+ type="notifytip">
+Unable to load notecard.
+Please try again.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="ScriptMissing"
+ type="notifytip">
+Script is missing from database.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="ScriptNoPermissions"
+ type="notifytip">
+Insufficient permissions to view script.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="UnableToLoadScript"
+ type="notifytip">
+Unable to load script. Please try again.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="IncompleteInventory"
+ type="notifytip">
+The complete contents you are offering are not yet locally available. Please try offering those items again in a minute.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="CannotModifyProtectedCategories"
+ type="notifytip">
+You cannot modify protected categories.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="CannotRemoveProtectedCategories"
+ type="notifytip">
+You cannot remove protected categories.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="OfferedCard"
+ type="notifytip">
+You have offered a calling card to [FIRST] [LAST]
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="UnableToBuyWhileDownloading"
+ type="notifytip">
+Unable to buy while downloading object data.
+Please try again.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="UnableToLinkWhileDownloading"
+ type="notifytip">
+Unable to link while downloading object data.
+Please try again.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="CannotBuyObjectsFromDifferentOwners"
+ type="notifytip">
+Cannot buy objects from different owners at the same time.
+Please select a single object.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="ObjectNotForSale"
+ type="notifytip">
+Object does not appear to be for sale.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="EnteringGodMode"
+ type="notifytip">
+Entering god mode, level [LEVEL]
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="LeavingGodMode"
+ type="notifytip">
+Leaving god mode, level [LEVEL]
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="CopyFailed"
+ type="notifytip">
+Copy failed because you lack copy permission
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="InventoryAccepted"
+ type="notifytip">
+[NAME] accepted your inventory offer.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="InventoryDeclined"
+ type="notifytip">
+[NAME] declined your inventory offer.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="ObjectMessage"
+ type="notifytip">
+[NAME]: [MESSAGE]
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="CallingCardAccepted"
+ type="notifytip">
+Your calling card was accepted.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="CallingCardDeclined"
+ type="notifytip">
+Your calling card was declined.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="TeleportToLandmark"
+ type="notifytip">
+Now that you have reached the mainland, you can teleport to locations like &apos;[NAME]&apos; by clicking on the Inventory button on the bottom right of your screen, and then select the Landmarks folder.
+Double click on the landmark and click on Teleport to travel there.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="TeleportToPerson"
+ type="notifytip">
+Now that you have reached the mainland, you can contact residents like &apos;[NAME]&apos; by clicking on the Inventory button on the bottom right of your screen, and then select the Calling Cards folder.
+Double click on the card, click on Instant Message, and type a message.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="CantSelectLandFromMultipleRegions"
+ type="notifytip">
+Can&apos;t select land across server boundaries.
+Try selecting a smaller piece of land.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="SearchWordBanned"
+ type="notifytip">
+Some terms in your search query were excluded due to content restrictions as clarified in the Community Standards.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="NoContentToSearch"
+ type="notifytip">
+Please select at least one type of content to search (PG, Mature, or Adult).
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="GroupVote"
+ type="notify">
+[NAME] has proposed to vote on:
+[MESSAGE]
+ <form name="form">
+ <button
+ index="0"
+ name="VoteNow"
+ text="Vote Now"/>
+ <button
+ index="1"
+ name="Later"
+ text="Later"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="SystemMessage"
+ type="notify">
+[MESSAGE]
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="EventNotification"
+ type="notify">
+Event Notification:
+
+[NAME]
+[DATE]
+ <form name="form">
+ <button
+ index="0"
+ name="Teleport"
+ text="Teleport"/>
+ <button
+ index="1"
+ name="Description"
+ text="Description"/>
+ <button
+ index="2"
+ name="Cancel"
+ text="Cancel"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="TransferObjectsHighlighted"
+ type="notify">
+All objects on this parcel that will transfer to the purchaser of this parcel are now highlighted.
+
+* Trees and grasses that will transfer are not highlighted.
+ <form name="form">
+ <button
+ index="0"
+ name="Done"
+ text="Done"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="DeactivatedGesturesTrigger"
+ type="notify">
+Deactivated gestures with same trigger:
+[NAMES]
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="NoQuickTime"
+ type="notify">
+Apple&apos;s QuickTime software does not appear to be installed on your system.
+If you want to view streaming media on parcels that support it you should go to the QuickTime site (http://www.apple.com/quicktime) and install the QuickTime Player.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="OwnedObjectsReturned"
+ type="notify">
+The objects you own on the selected parcel of land have been returned back to your inventory.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="OtherObjectsReturned"
+ type="notify">
+The objects on the selected parcel of land that is owned by [FIRST] [LAST] have been returned to his or her inventory.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="OtherObjectsReturned2"
+ type="notify">
+The objects on the selected parcel of land owned by the resident &apos;[NAME]&apos; have been returned to their owner.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="GroupObjectsReturned"
+ type="notify">
+The objects on the selected parcel of land shared with the group [GROUPNAME] have been returned back to their owner&apos;s inventory.
+Transferable deeded objects have been returned to their previous owners.
+Non-transferable objects that are deeded to the group have been deleted.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="UnOwnedObjectsReturned"
+ type="notify">
+The objects on the selected parcel that are NOT owned by you have been returned to their owners.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="NotSafe"
+ type="notify">
+This land has damage enabled (&apos;not safe&apos;).
+You can be hurt here. If you die, you will be teleported to your home location.
+ <unique/>
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="NoFly"
+ type="notify">
+This land has flying disabled (&apos;no fly&apos;).
+You cannot fly here.
+ <unique/>
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="PushRestricted"
+ type="notify">
+This land is &apos;No Pushing&apos;.
+You cannot push others here unless you own the land.
+ <unique/>
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="NoVoice"
+ type="notify">
+This land has voice disabled.
+ <unique/>
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="NoBuild"
+ type="notify">
+This land has building disabled (&apos;no build&apos;).
+You cannot create objects here.
+ <unique/>
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="ScriptsStopped"
+ type="notify">
+An administrator has temporarily stopped scripts in this region.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="ScriptsNotRunning"
+ type="notify">
+This region is not running any scripts.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="NoOutsideScripts"
+ type="notify">
+This land has outside scripts disabled (&apos;no outside scripts&apos;).
+No scripts will run except those belonging to the land owner.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="ClaimPublicLand"
+ type="notify">
+Can only claim public land in region you&apos;re in.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="RegionTPAccessBlocked"
+ type="notify">
+You aren&apos;t allowed in that Region due to your maturity Rating. You may need to validate your age and/or install the latest Viewer.
+
+Please go to the Knowledge Base for details on accessing areas with this maturity Rating.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="URBannedFromRegion"
+ type="notify">
+You are banned from the region.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="NoTeenGridAccess"
+ type="notify">
+Your account cannot connect to this teen grid region.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="NoHelpIslandTP"
+ type="notify">
+You cannot teleport back to Help Island.
+Go to &apos;Help Island Public&apos; to repeat the tutorial.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="ImproperPaymentStatus"
+ type="notify">
+You do not have proper payment status to enter this region.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="MustGetAgeRgion"
+ type="notify">
+You must be age-verified to enter this region.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="MustGetAgeParcel"
+ type="notify">
+You must be age-verified to enter this parcel.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="NoDestRegion"
+ type="notify">
+No destination region found.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="NotAllowedInDest"
+ type="notify">
+You are not allowed into the destination.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="RegionParcelBan"
+ type="notify">
+Cannot region cross into banned parcel. Try another way.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="TelehubRedirect"
+ type="notify">
+You have been redirected to a telehub.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="CouldntTPCloser"
+ type="notify">
+Could not teleport closer to destination.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="TPCancelled"
+ type="notify">
+ Teleport cancelled.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="FullRegionTryAgain"
+ type="notify">
+The region you are attempting to enter is currently full.
+Please try again in a few moments.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="GeneralFailure"
+ type="notify">
+General failure.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="RoutedWrongRegion"
+ type="notify">
+Routed to wrong region. Please try again.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="NoValidAgentID"
+ type="notify">
+No valid agent id.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="NoValidSession"
+ type="notify">
+No valid session id.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="NoValidCircuit"
+ type="notify">
+No valid circuit code.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="NoValidTimestamp"
+ type="notify">
+No valid timestamp.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="NoPendingConnection"
+ type="notify">
+Unable to create pending connection.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="InternalUsherError"
+ type="notify">
+Internal error attempting to connect agent usher.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="NoGoodTPDestination"
+ type="notify">
+Unable to find a good teleport destination in this region.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="InternalErrorRegionResolver"
+ type="notify">
+Internal error attempting to activate region resolver.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="NoValidLanding"
+ type="notify">
+A valid landing point could not be found.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="NoValidParcel"
+ type="notify">
+No valid parcel could be found.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="ObjectGiveItem"
+ type="notify">
+An object named [OBJECTFROMNAME] owned by [FIRST] [LAST] has given you a [OBJECTTYPE] named [OBJECTNAME].
+ <form name="form">
+ <button
+ index="0"
+ name="Keep"
+ text="Keep"/>
+ <button
+ index="1"
+ name="Discard"
+ text="Discard"/>
+ <button
+ index="2"
+ name="Mute"
+ text="Mute"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="ObjectGiveItemUnknownUser"
+ type="notify">
+An object named [OBJECTFROMNAME] owned by (an unknown user) has given you a [OBJECTTYPE] named [OBJECTNAME].
+ <form name="form">
+ <button
+ index="0"
+ name="Keep"
+ text="Keep"/>
+ <button
+ index="1"
+ name="Discard"
+ text="Discard"/>
+ <button
+ index="2"
+ name="Mute"
+ text="Mute"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="UserGiveItem"
+ type="notify">
+[NAME] has given you a [OBJECTTYPE] named &apos;[OBJECTNAME]&apos;.
+ <form name="form">
+ <button
+ index="0"
+ name="Keep"
+ text="Keep"/>
+ <button
+ index="1"
+ name="Discard"
+ text="Discard"/>
+ <button
+ index="2"
+ name="Mute"
+ text="Mute"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="GodMessage"
+ type="notify">
+[NAME]
+[MESSAGE]
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="JoinGroup"
+ type="notify">
+[MESSAGE]
+ <form name="form">
+ <button
+ index="0"
+ name="Join"
+ text="Join"/>
+ <button
+ index="1"
+ name="Decline"
+ text="Decline"/>
+ <button
+ index="2"
+ name="Info"
+ text="Info"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="TeleportOffered"
+ type="notify">
+[NAME] has offered to teleport you to his or her location:
+
+[MESSAGE]
+ <form name="form">
+ <button
+ index="0"
+ name="Teleport"
+ text="Teleport"/>
+ <button
+ index="1"
+ name="Cancel"
+ text="Cancel"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="GotoURL"
+ type="notify">
+[MESSAGE]
+[URL]
+ <form name="form">
+ <button
+ index="0"
+ name="Later"
+ text="Later"/>
+ <button
+ index="1"
+ name="GoNow..."
+ text="Go Now..."/>
+ </form>
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="OfferFriendship"
+ type="notify">
+[NAME] is offering friendship.
+
+[MESSAGE]
+
+(By default, you will be able to see each other&apos;s online status.)
+ <form name="form">
+ <button
+ index="0"
+ name="Accept"
+ text="Accept"/>
+ <button
+ index="1"
+ name="Decline"
+ text="Decline"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="OfferFriendshipNoMessage"
+ type="notify">
+[NAME] is offering friendship.
+
+(By default, you will be able to see each other&apos;s online status.)
+ <form name="form">
+ <button
+ index="0"
+ name="Accept"
+ text="Accept"/>
+ <button
+ index="1"
+ name="Decline"
+ text="Decline"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="FriendshipAccepted"
+ type="notify">
+[NAME] accepted your friendship offer.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="FriendshipDeclined"
+ type="notify">
+[NAME] declined your friendship offer.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="OfferCallingCard"
+ type="notify">
+[FIRST] [LAST] is offering their calling card.
+This will add a bookmark in your inventory so you can quickly IM this resident.
+ <form name="form">
+ <button
+ index="0"
+ name="Accept"
+ text="Accept"/>
+ <button
+ index="1"
+ name="Decline"
+ text="Decline"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="RegionRestartMinutes"
+ priority="high"
+ sound="UISndAlert"
+ type="notify">
+Region is restarting in [MINUTES] minutes.
+If you remain in this region you will be logged out.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="RegionRestartSeconds"
+ priority="high"
+ sound="UISndAlert"
+ type="notify">
+Region is restarting in [SECONDS] seconds.
+If you remain in this region you will be logged out.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="LoadWebPage"
+ type="notify">
+Load web page [URL]?
+
+[MESSAGE]
+
+From object: [OBJECTNAME], owner: [NAME]?
+ <form name="form">
+ <button
+ index="0"
+ name="Gotopage"
+ text="Go to page"/>
+ <button
+ index="1"
+ name="Cancel"
+ text="Cancel"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="FailedToFindWearableUnnamed"
+ type="notify">
+Failed to find [TYPE] in database.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="FailedToFindWearable"
+ type="notify">
+Failed to find [TYPE] named [DESC] in database.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="InvalidWearable"
+ type="notify">
+ The item you are trying to wear uses a feature that your viewer can&apos;t read. Please upgrade your version of Second Life to wear this item.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="ScriptQuestion"
+ type="notify">
+&apos;[OBJECTNAME]&apos;, an object owned by &apos;[NAME]&apos;, would like to:
+
+[QUESTIONS]
+Is this OK?
+ <form name="form">
+ <button
+ index="0"
+ name="Yes"
+ text="Yes"/>
+ <button
+ index="1"
+ name="No"
+ text="No"/>
+ <button
+ index="2"
+ name="Mute"
+ text="Mute"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="ScriptQuestionCaution"
+ priority="high"
+ type="notify">
+&apos;[OBJECTNAME]&apos;, an object owned by &apos;[NAME]&apos;, would like to:
+
+[QUESTIONS]
+If you do not trust this object and its creator, you should deny the request. For additional information, click the Details button.
+
+Grant this request?
+ <form name="form">
+ <button
+ index="0"
+ name="Grant"
+ text="Grant"/>
+ <button
+ default="true"
+ index="1"
+ name="Deny"
+ text="Deny"/>
+ <button
+ index="2"
+ name="Details"
+ text="Details..."/>
+ </form>
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="ScriptDialog"
+ type="notify">
+[FIRST] [LAST]&apos;s &apos;[TITLE]&apos;
+[MESSAGE]
+ <form name="form">
+ <button
+ index="-1"
+ name="Ignore"
+ text="Ignore"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="ScriptDialogGroup"
+ type="notify">
+[GROUPNAME]&apos;s &apos;[TITLE]&apos;
+[MESSAGE]
+ <form name="form">
+ <button
+ index="-1"
+ name="Ignore"
+ text="Ignore"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="FirstBalanceIncrease"
+ type="notify">
+You just received L$[AMOUNT].
+Objects and other users may give you L$.
+Your balance is shown in the upper-right corner of the screen.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="FirstBalanceDecrease"
+ type="notify">
+You just paid L$[AMOUNT].
+Your balance is shown in the upper-right corner of the screen.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="FirstSit"
+ type="notify">
+You are sitting.
+Use the arrow keys (or AWSD) to change the view.
+Click the &apos;Stand Up&apos; button to get up.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="FirstMap"
+ type="notify">
+Click and drag to scroll the map.
+Double-click to teleport.
+Use the controls on the right to find things and display different backgrounds.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="FirstBuild"
+ type="notify">
+You can build new objects in some areas of [SECOND_LIFE].
+Use the tools in the upper left to build, and try holding down Ctrl or Alt to rapidly switch tools.
+Press Esc to stop building.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="FirstLeftClickNoHit"
+ type="notify">
+Left-clicking interacts with special objects.
+If the mouse pointer changes to a hand, you can interact with the object.
+Right-click always shows a menu of things you can do.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="FirstTeleport"
+ type="notify">
+This region doesn&apos;t allow point-to-point teleports, so you&apos;ve been transported to the nearest telehub.
+Your destination is marked with a tall beacon.
+Follow the red arrow to the beacon, or click the arrow to dismiss the beacon.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="FirstOverrideKeys"
+ type="notify">
+Your movement keys are now being handled by an object.
+Try the arrow keys or AWSD to see what they do.
+Some objects (like guns) require you to go into mouselook to use them.
+Press &apos;M&apos; to do this.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="FirstAppearance"
+ type="notify">
+You are editing your appearance.
+To rotate and zoom view, use the arrow keys.
+When you are finished, press &apos;Save All&apos; to save your look and exit.
+You can edit your appearance as often as you like.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="FirstInventory"
+ type="notify">
+This is your inventory, which contains objects, notecards, clothing, and other things you own.
+* To wear an object or outfit folder, drag it onto yourself.
+* To bring an object into the world, drag it onto the ground.
+* To read a notecard, double-click it.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="FirstSandbox"
+ type="notify">
+This is a sandbox region.
+Objects you build here may be deleted after you leave the area, Sandboxes clean on a regular basis, please refer to the information at the top of the screen next to the region name.
+
+Sandbox regions are uncommon, and are marked with signs.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="FirstFlexible"
+ type="notify">
+This object is flexible.
+Flexible objects may not be physical and must be phantom until the flexible checkbox is unchecked.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="FirstDebugMenus"
+ type="notify">
+You have enabled the Advanced menu.
+This menu contains features useful for developers debugging Second Life.
+To toggle this menu on Windows press Ctrl-Alt-D. On Mac press Cmd-Opt-Shift-D.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="FirstSculptedPrim"
+ type="notify">
+You are editing a sculpted prim.
+Sculpted prims require a special texture to specify their shape.
+You can find example sculpted textures in the inventory library.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="FirstMedia"
+ type="notify">
+You have begun playing media. Media can set to play automatically in the preferences window under Audio / Video. Note that this can be a security risk for media sites you do not trust.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="MaxListSelectMessage"
+ type="notifytip">
+You may only select up to [MAX_SELECT] items from this list.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="VoiceInviteP2P"
+ type="notify">
+[NAME] is inviting you to a Voice Chat call.
+Click Accept to join the call or Decline to decline the invitation. Click Mute to mute this caller.
+ <unique>
+ <context key="NAME"/>
+ </unique>
+ <form name="form">
+ <button
+ index="0"
+ name="Accept"
+ text="Accept"/>
+ <button
+ index="1"
+ name="Decline"
+ text="Decline"/>
+ <button
+ index="2"
+ name="Mute"
+ text="Mute"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="AutoUnmuteByIM"
+ type="notify">
+[FIRST] [LAST] was sent an instant message and has been automatically unmuted.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="AutoUnmuteByMoney"
+ type="notify">
+[FIRST] [LAST] was given money and has been automatically unmuted.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="AutoUnmuteByInventory"
+ type="notify">
+[FIRST] [LAST] was offered inventory and has been automatically unmuted.
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="VoiceInviteGroup"
+ type="notify">
+[NAME] has joined a Voice Chat call with the group [GROUP].
+Click Accept to join the call or Decline to decline the invitation. Click Mute to mute this caller.
+ <unique>
+ <context key="NAME"/>
+ <context key="GROUP"/>
+ </unique>
+ <form name="form">
+ <button
+ index="0"
+ name="Accept"
+ text="Accept"/>
+ <button
+ index="1"
+ name="Decline"
+ text="Decline"/>
+ <button
+ index="2"
+ name="Mute"
+ text="Mute"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="VoiceInviteAdHoc"
+ type="notify">
+[NAME] has joined a Voice Chat call with a conference chat...
+Click Accept to join the call or Decline to decline the invitation. Click Mute to mute this user.
+ <unique>
+ <context key="NAME"/>
+ </unique>
+ <form name="form">
+ <button
+ index="0"
+ name="Accept"
+ text="Accept"/>
+ <button
+ index="1"
+ name="Decline"
+ text="Decline"/>
+ <button
+ index="2"
+ name="Mute"
+ text="Mute"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="notify.tga"
+ name="InviteAdHoc"
+ type="notify">
+[NAME] is inviting you to a conference chat.
+Click Accept to join the chat or Decline to decline the invitation. Click Mute to mute this user.
+ <unique>
+ <context key="NAME"/>
+ </unique>
+ <form name="form">
+ <button
+ index="0"
+ name="Accept"
+ text="Accept"/>
+ <button
+ index="1"
+ name="Decline"
+ text="Decline"/>
+ <button
+ index="2"
+ name="Mute"
+ text="Mute"/>
+ </form>
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="VoiceChannelFull"
+ type="notifytip">
+The voice call you are trying to join, [VOICE_CHANNEL_NAME], has reached maximum capacity. Please try again later.
+ <unique>
+ <context key="VOICE_CHANNEL_NAME"/>
+ </unique>
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="ProximalVoiceChannelFull"
+ type="notifytip">
+We&apos;re sorry. This area has reached maximum capacity for voice conversations. Please try to use voice in another area.
+ <unique/>
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="VoiceChannelDisconnected"
+ type="notifytip">
+You have been disconnected from [VOICE_CHANNEL_NAME]. You will now be reconnected to spatial voice chat.
+ <unique>
+ <context key="VOICE_CHANNEL_NAME"/>
+ </unique>
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="VoiceChannelDisconnectedP2P"
+ type="notifytip">
+[VOICE_CHANNEL_NAME] has ended the call. You will now be reconnected to spatial voice chat.
+ <unique>
+ <context key="VOICE_CHANNEL_NAME"/>
+ </unique>
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="P2PCallDeclined"
+ type="notifytip">
+[VOICE_CHANNEL_NAME] has declined your call. You will now be reconnected to spatial voice chat.
+ <unique>
+ <context key="VOICE_CHANNEL_NAME"/>
+ </unique>
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="P2PCallNoAnswer"
+ type="notifytip">
+[VOICE_CHANNEL_NAME] is not available to take your call. You will now be reconnected to spatial voice chat.
+ <unique>
+ <context key="VOICE_CHANNEL_NAME"/>
+ </unique>
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="VoiceChannelJoinFailed"
+ type="notifytip">
+Failed to connect to [VOICE_CHANNEL_NAME], please try again later. You will now be reconnected to spatial voice chat.
+ <unique>
+ <context key="VOICE_CHANNEL_NAME"/>
+ </unique>
+ </notification>
+
+ <notification
+ duration="10"
+ icon="notifytip.tga"
+ name="VoiceLoginRetry"
+ type="notifytip">
+We are creating a voice channel for you. This may take up to one minute.
+ <unique/>
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="Cannot enter parcel: not a group member"
+ type="notifytip">
+Cannot enter parcel, you are not a member of the appropriate group.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="Cannot enter parcel: banned"
+ type="notifytip">
+Cannot enter parcel, you have been banned.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="Cannot enter parcel: not on access list"
+ type="notifytip">
+Cannot enter parcel, you are not on the access list.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="VoiceNotAllowed"
+ type="notifytip">
+You do not have permission to connect to voice chat for [VOICE_CHANNEL_NAME].
+ <unique>
+ <context key="VOICE_CHANNEL_NAME"/>
+ </unique>
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="VoiceCallGenericError"
+ type="notifytip">
+An error has occurred while trying to connect to voice chat for [VOICE_CHANNEL_NAME]. Please try again later.
+ <unique>
+ <context key="VOICE_CHANNEL_NAME"/>
+ </unique>
+ </notification>
+
+ <notification
+ duration="10"
+ icon="notifytip.tga"
+ name="ServerVersionChanged"
+ priority="high"
+ type="notifytip">
+The region you have entered is running a different simulator version. Click this message for details.
+ </notification>
+
+ <notification
+ icon="notifytip.tga"
+ name="UnableToOpenCommandURL"
+ priority="high"
+ type="notifytip">
+The URL you clicked cannot be opened from this web browser.
+ </notification>
+
+ <global name="UnsupportedCPU">
+- Your CPU speed does not meet the minimum requirements.
+ </global>
+
+ <global name="UnsupportedGLRequirements">
+You do not appear to have the proper hardware requirements for Second Life. Second Life requires an OpenGL graphics card that has multitexture support. If this is the case, you may want to make sure that you have the latest drivers for your graphics card, and service packs and patches for your operating system.
+
+If you continue to have problems, please visit: http://www.secondlife.com/support
+ </global>
+
+ <global name="UnsupportedCPUAmount">
+796
+ </global>
+
+ <global name="UnsupportedRAMAmount">
+510
+ </global>
+
+ <global name="UnsupportedGPU">
+- Your graphics card does not meet the minimum requirements.
+ </global>
+
+ <global name="UnsupportedRAM">
+- Your system memory does not meet the minimum requirements.
+ </global>
+
+ <global name="PermYes">
+Yes
+ </global>
+
+ <global name="PermNo">
+No
+ </global>
+</notifications>
+
diff --git a/indra/newview/skins/default/xui/en/panel_audio_device.xml b/indra/newview/skins/default/xui/en/panel_audio_device.xml
new file mode 100644
index 0000000000..5f495ef8ce
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_audio_device.xml
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ height="240"
+ layout="topleft"
+ left="8"
+ name="device_settings"
+ top="240"
+ width="404">
+ <panel.string
+ name="default_text">
+ Default
+ </panel.string>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="6"
+ name="Audio Devices"
+ width="200">
+ Audio Devices
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="20"
+ name="Input device (microphone):"
+ top="26"
+ width="200">
+ Input device (microphone):
+ </text>
+ <combo_box
+ height="18"
+ layout="topleft"
+ left_delta="0"
+ max_chars="128"
+ name="voice_input_device"
+ top_pad="2"
+ width="225" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="Output device (speakers):"
+ top_pad="9"
+ width="200">
+ Output device (speakers):
+ </text>
+ <combo_box
+ height="18"
+ layout="topleft"
+ left_delta="0"
+ max_chars="128"
+ name="voice_output_device"
+ top_pad="2"
+ width="225" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="6"
+ name="Input level:"
+ top="121"
+ width="200">
+ Input Level
+ </text>
+ <text_editor
+ type="string"
+ length="1"
+ top="135"
+ bg_readonly_color="0 0 0 0"
+ enabled="false"
+ height="60"
+ hide_border="true"
+ hide_scrollbar="true"
+ layout="topleft"
+ left_delta="10"
+ max_length="65535"
+ name="voice_intro_text1"
+ tab_stop="false"
+ width="380"
+ word_wrap="true">
+ Adjust the slider to control how loud you sound to other Residents. To test the input level, simply speak into your microphone.
+ </text_editor>
+ <slider_bar
+ follows="left|top"
+ height="17"
+ increment="0.05"
+ initial_value="1.0"
+ layout="topleft"
+ left_delta="5"
+ max_val="2"
+ name="mic_volume_slider"
+ tool_tip="Change the volume using this slider"
+ top="202"
+ width="90" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="5"
+ name="wait_text"
+ top_delta="1"
+ width="200">
+ Please wait
+ </text>
+ <locate
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="bar0"
+ top_delta="5"
+ width="20" />
+ <locate
+ height="20"
+ layout="topleft"
+ left_pad="2"
+ name="bar1"
+ top_delta="0"
+ width="20" />
+ <locate
+ height="20"
+ layout="topleft"
+ left_pad="2"
+ name="bar2"
+ top_delta="0"
+ width="20" />
+ <locate
+ height="20"
+ layout="topleft"
+ left_pad="2"
+ name="bar3"
+ top_delta="0"
+ width="20" />
+ <locate
+ height="20"
+ layout="topleft"
+ left_pad="2"
+ name="bar4"
+ top_delta="0"
+ width="20" />
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_avatar_list_item.xml b/indra/newview/skins/default/xui/en/panel_avatar_list_item.xml
new file mode 100644
index 0000000000..bf3f70f54b
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_avatar_list_item.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- All our XML is utf-8 encoded. -->
+
+<panel
+ name="avatar_list_item"
+ title="avatar_list_item"
+ visible="true"
+ width="314"
+ height="30"
+ left="0"
+ top="100"
+ follows="bottom|right|left"
+ min_width="150"
+ max_height="30"
+
+ background_opaque="false"
+ background_visible="true"
+ bevel_style="in"
+ bg_alpha_color="0.3 0.3 0.3 1.0">
+
+ <avatar_icon
+ bottom="5" left="5" width="20" height="20" follows="top|left"
+ color="1 1 1 1" enabled="true" image_name="smile.png"
+ mouse_opaque="true" name="avatar_icon"
+ />
+
+ <text
+ bottom="4" left="35" width="160" height="20" follows="right|left"
+ font="SansSerifBigBold" text_color="white"
+ mouse_opaque="true" name="user_name" >
+ Boris Linden
+ </text>
+
+ <text
+ bottom="3" left="190" width="40" height="20" follows="right"
+ font="SansSerif" text_color="0.5 0.5 0.5 1.0"
+ mouse_opaque="true" name="user_status" >
+ Away
+ </text>
+
+ <icon
+ bottom="5" left="230" width="20" height="20" follows="right"
+ color="1 1 1 1" enabled="true" image_name="speaking_indicator.tga"
+ mouse_opaque="true" name="locator"
+ />
+
+ <button
+ bottom="5" left="260" width="20" height="20" follows="right"
+ name="info_btn" label=""
+ image_unselected="info_btn.tga" image_disabled="info_btn.tga"
+ image_selected="info_btn_active.tga" image_hover_selected="info_btn_active.tga"
+ image_disabled_selected="info_btn.tga" font="SansSerifBigBold"
+ />
+
+ <button
+ bottom="5" left="290" width="20" height="20" follows="right"
+ name="profile_btn" label=""
+ image_unselected="profile_chevron_btn.tga" image_disabled="profile_chevron_btn.tga"
+ image_selected="profile_chevron_btn_active.tga" image_hover_selected="profile_chevron_btn_active.tga"
+ image_disabled_selected="profile_chevron_btn.tga" font="SansSerifBigBold"
+ />
+
+
+
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_bars.xml b/indra/newview/skins/default/xui/en/panel_bars.xml
new file mode 100644
index 0000000000..9c06329eaf
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_bars.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ follows="left|right|top|bottom"
+ height="768"
+ layout="topleft"
+ left="0"
+ mouse_opaque="false"
+ name="bottom_panel"
+ width="1024">
+ <panel
+ follows="left|right|top|bottom"
+ height="728"
+ layout="topleft"
+ left="0"
+ mouse_opaque="false"
+ name="status"
+ top="0"
+ width="1024" />
+ <layout_stack
+ border_size="0"
+ follows="left|right|bottom|top"
+ height="768"
+ layout="topleft"
+ left_delta="0"
+ mouse_opaque="false"
+ name="bar_stack"
+ top_delta="0"
+ use_bounding_rect="true"
+ width="1024">
+ <layout_panel
+ follows="left|right|top|bottom"
+ height="768"
+ layout="topleft"
+ left="0"
+ mouse_opaque="false"
+ name="spacer"
+ top="0"
+ user_resize="false"
+ width="1024" />
+ <layout_panel
+ auto_resize="false"
+ height="200"
+ layout="topleft"
+ min_height="200"
+ mouse_opaque="false"
+ name="overlay"
+ use_bounding_rect="true"
+ user_resize="false"
+ width="1024" />
+ <layout_panel
+ auto_resize="false"
+ filename="panel_toolbar.xml"
+ layout="topleft"
+ min_height="28"
+ name="toolbar"
+ use_bounding_rect="true"
+ user_resize="false"
+ width="1024" />
+ </layout_stack>
+ <panel
+ follows="left|right|top|bottom"
+ height="728"
+ layout="topleft"
+ left_delta="0"
+ mouse_opaque="false"
+ name="hud"
+ top_delta="-10"
+ width="1024" />
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_bottomtray.xml b/indra/newview/skins/default/xui/en/panel_bottomtray.xml
new file mode 100644
index 0000000000..303487f21b
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_bottomtray.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel follows="left|bottom|right" name="bottom_tray" bg_opaque_color="0.25 0.25 0.25 1.0"
+ bg_alpha_color="0.25 0.25 0.25 1.0" background_visible="true" auto_resize="true"
+ left="0" bottom="0" width="1000" height="28" border_visible="false" has_border="false">
+ <layout_stack name="toolbar_stack" follows="left|right|bottom|top"
+ bottom="0" left="0" width="1000" height="25" orientation="horizontal" border_size="0" auto_resize="false">
+
+ <icon image_name="spacer24.tga" left="0" width="5" height="10" bottom="0" follows="left|right" auto_resize="false" color="0 0 0 0"/>
+ <panel follows="left|right" auto_resize="true" width="250" height="28" min_height="28">
+ <line_editor name="chat_box" follows="left|right"
+ width="250" height="20" left="0" bottom="6"
+ bevel_style="in" border_style="line" border_thickness="1"/>
+ </panel>
+ <icon image_name="spacer24.tga" left="0" width="5" height="10" bottom="0" follows="left|right" auto_resize="false" color="0 0 0 0"/>
+ <view_border bevel_style="in" bottom="0" height="28" min_height="28" width="1" follows="left|right" left="270" mouse_opaque="false" auto_resize="false"/>
+ <icon image_name="spacer24.tga" left="0" width="5" height="10" bottom="0" follows="left|right" auto_resize="false" color="0 0 0 0"/>
+ <panel follows="left|right" auto_resize="false" width="100" height="28" min_height="28">
+ <chiclet_talk name="talk" left="0" bottom="6" width="100" height="20" follows="left|right" auto_resize="false"/>
+ </panel>
+ <icon name="DUMMY" image_name="spacer24.tga" left="0" width="150" height="10" bottom="0" follows="left|right" auto_resize="false" color="0 0 0 0"/>
+ <panel follows="left|right" auto_resize="true" width="250" height="28" min_height="28">
+ <chiclet_panel name="chiclet_list" follows="left|right"
+ width="250" height="25" left="0" bottom="2"/>
+ </panel>
+ <icon image_name="spacer24.tga" left="0" width="5" height="10" bottom="0" follows="left|right" auto_resize="false" color="0 0 0 0"/>
+ <panel follows="left|right" auto_resize="false" width="40" height="28" min_height="28">
+ <chiclet_notification name="im_well" follows="left|right" auto_resize="false"
+ left="0" bottom="4" width="40" height="25"
+ image_unselected="im_notifications.tga" image_selected="im_notifications.tga"/>
+ </panel>
+ <icon image_name="spacer24.tga" left="0" width="10" height="10" bottom="0" follows="left|right" auto_resize="false" color="0 0 0 0"/>
+ <view_border bevel_style="in" bottom="0" height="30" width="1" follows="left|right" left="270" mouse_opaque="false" auto_resize="false"/>
+ <icon image_name="spacer24.tga" left="0" width="10" height="10" bottom="0" follows="left|right" auto_resize="false" color="0 0 0 0"/>
+ <panel follows="left|right" auto_resize="false" width="48" height="28" min_height="28">
+ <chiclet_notification name="sys_well" follows="left|right" auto_resize="false"
+ left="0" bottom="5" width="48" height="25"
+ image_unselected="sys_notifications.tga" image_selected="sys_notifications.tga"/>
+ </panel>
+ <icon image_name="spacer24.tga" left="0" width="5" height="10" bottom="0" follows="left|right" auto_resize="false" color="0 0 0 0"/>
+ </layout_stack>
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_classified.xml b/indra/newview/skins/default/xui/en/panel_classified.xml
new file mode 100644
index 0000000000..f2cec86b38
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_classified.xml
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ follows="bottom|left"
+ height="490"
+ label="Classified"
+ layout="topleft"
+ left="330"
+ name="Classified"
+ top="490"
+ width="450">
+ <panel.string
+ name="ad_placed_paid">
+ Ad placed: [DATE], Paid L$[AMT] for listing.
+ </panel.string>
+ <panel.string
+ name="update_txt">
+ Update
+ </panel.string>
+ <panel.string
+ name="publish_txt">
+ Publish...
+ </panel.string>
+ <panel.string
+ name="dateStr">
+ [mthnum,datetime,slt]/[day,datetime,slt]/[year,datetime,slt]
+ </panel.string>
+ <texture_picker
+ follows="left|top"
+ height="300"
+ layout="topleft"
+ left="20"
+ name="snapshot_ctrl"
+ top="15"
+ width="400" />
+ <line_editor
+ enabled="false"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="given_name_editor"
+ tool_tip="Name must begin with a letter or number, not punctuation."
+ top_delta="288"
+ width="400" />
+ <text_editor
+ enabled="false"
+ follows="left|top"
+ height="90"
+ layout="topleft"
+ left="20"
+ max_length="1023"
+ name="desc_editor"
+ width="400"
+ word_wrap="true" />
+ <line_editor
+ enabled="false"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left="20"
+ name="location_editor"
+ tool_tip="Set the location for this classified to your current position."
+ width="400" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Set"
+ layout="topleft"
+ left_delta="360"
+ name="set_location_btn"
+ top_delta="0"
+ width="60" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Teleport"
+ layout="topleft"
+ left="20"
+ name="classified_teleport_btn"
+ top="449"
+ width="100" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Show on Map"
+ layout="topleft"
+ left_pad="5"
+ name="classified_map_btn"
+ top_delta="0"
+ width="100" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Profile"
+ layout="topleft"
+ left_pad="5"
+ name="classified_profile_btn"
+ top_delta="0"
+ width="100" />
+ <combo_box
+ height="20"
+ layout="topleft"
+ left="30"
+ name="classified_mature_check"
+ top="48"
+ width="130">
+ <combo_box.item
+ label="- Select Mature -"
+ value="Select" />
+ <combo_box.item
+ label="Mature Content"
+ value="Mature" />
+ <combo_box.item
+ label="PG Content"
+ value="Not Mature" />
+ </combo_box>
+ <combo_box
+ bottom="45"
+ height="18"
+ layout="topleft"
+ left="20"
+ name="classified_category_combo"
+ right="150" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Update"
+ layout="topleft"
+ left="30"
+ name="classified_update_btn"
+ top="70"
+ width="70" />
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_edit_pick.xml b/indra/newview/skins/default/xui/en/panel_edit_pick.xml
new file mode 100644
index 0000000000..967cf2f539
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_edit_pick.xml
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ background_visible="true"
+ bevel_style="in"
+ bg_alpha_color="0.2 0.2 0.2 1"
+ height="640"
+ label="Edit Pick"
+ layout="topleft"
+ left="0"
+ name="panel_edit_pick"
+ top="0"
+ width="355">
+ <text
+ type="string"
+ length="1"
+ follows="top"
+ font="SansSerifHugeBold"
+ height="15"
+ layout="topleft"
+ left="10"
+ name="title"
+ text_color="white"
+ top="0"
+ width="150">
+ Edit Pick
+ </text>
+ <panel
+ background_visible="true"
+ bg_alpha_color="0.5 0.5 0.5 1"
+ follows="left|right|top|bottom"
+ height="570"
+ layout="topleft"
+ left="10"
+ right="-10"
+ top="30">
+ <texture_picker
+ follows="left|top|right"
+ height="150"
+ layout="topleft"
+ left="10"
+ name="pick_snapshot"
+ right="-10"
+ top="10" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="Name:">
+ Name:
+ </text>
+ <line_editor
+ follows="left|top|right"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="pick_name"
+ right="-10"
+ width="290" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="30"
+ layout="topleft"
+ left="10"
+ name="description_label"
+ v_pad="15"
+ valign="center">
+ Description:
+ </text>
+ <text_editor
+ follows="left|top|right"
+ height="100"
+ layout="topleft"
+ left="10"
+ max_length="1023"
+ name="pick_desc"
+ right="-10"
+ word_wrap="true" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="description_label"
+ v_pad="15"
+ valign="bottom">
+ Location:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="50"
+ layout="topleft"
+ left="10"
+ name="pick_location"
+ right="-10"
+ v_pad="10"
+ valign="center"
+ word_wrap="true">
+ loading...
+ </text>
+ <button
+ follows="left|top"
+ height="20"
+ label="Set to Current Location"
+ layout="topleft"
+ left="10"
+ name="set_to_curr_location_btn"
+ width="200" />
+ </panel>
+ <panel
+ follows="right|bottom"
+ height="25"
+ label="bottom_panel"
+ layout="topleft"
+ left="5"
+ name="bottom_panel"
+ top="605"
+ width="345">
+ <button
+ follows="bottom|left"
+ height="20"
+ label="Save Changes"
+ layout="topleft"
+ name="save_changes_btn"
+ right="-120"
+ top="5"
+ width="130" />
+ <button
+ follows="bottom|left"
+ height="20"
+ label="Cancel"
+ layout="topleft"
+ name="cancel_btn"
+ right="-10"
+ top="5"
+ width="90" />
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_edit_profile.xml b/indra/newview/skins/default/xui/en/panel_edit_profile.xml
new file mode 100644
index 0000000000..e787d03eca
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_edit_profile.xml
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ class="edit_profile_panel"
+ background_visible="true"
+ bevel_style="in"
+ bg_alpha_color="0.3 0.3 0.3 1"
+ follows="left|top|right|bottom"
+ height="690"
+ label="Profile Edit"
+ layout="topleft"
+ left="10"
+ mouse_opaque="true"
+ name="edit_profile_panel"
+ top="10"
+ width="355">
+ <text
+ top="0"
+ left="9"
+ height="20"
+ follows="left|top"
+ font="SansSerifHugeBold"
+ layout="topleft"
+ name="title_text"
+ text_color="white"
+ width="350">
+ Edit Profile
+ </text>
+ <panel
+ background_visible="true"
+ bg_alpha_color="0.6 0.6 0.6 1"
+ follows="left|top|right|bottom"
+ height="620"
+ layout="topleft"
+ left="9"
+ name="data_panel"
+ top_pad="10"
+ width="337">
+ <text
+ top_pad="5"
+ left="9"
+ height="20"
+ follows="left|top"
+ font="SansSerifBigBold"
+ layout="topleft"
+ name="name_text"
+ text_color="white"
+ width="350">
+ [FIRST] [LAST]
+ </text>
+ <panel
+ follows="left|top"
+ height="120"
+ layout="topleft"
+ left="9"
+ name="lifes_images_panel"
+ top_pad="10"
+ width="250">
+ <panel
+ height="120"
+ layout="topleft"
+ left="0"
+ name="second_life_image_panel"
+ top="0"
+ width="125">
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right|bottom"
+ font="SansSerifBold"
+ height="20"
+ layout="topleft"
+ left="0"
+ name="first_life_photo_title_text"
+ text_color="white"
+ top="0"
+ width="125">
+ Second Life photo:
+ </text>
+ <texture_picker
+ allow_no_texture="true"
+ default_image_name="None"
+ follows="top|left"
+ height="105"
+ layout="topleft"
+ left="0"
+ name="2nd_life_pic"
+ top_pad="5"
+ width="105" />
+ </panel>
+ <panel
+ height="120"
+ layout="topleft"
+ left_pad="0"
+ name="first_life_image_panel"
+ top="0"
+ width="125">
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right|bottom"
+ font="SansSerifBold"
+ height="20"
+ layout="topleft"
+ left="0"
+ name="second_life_photo_title_text"
+ text_color="white"
+ top="0"
+ width="125">
+ First Life photo:
+ </text>
+ <texture_picker
+ allow_no_texture="true"
+ default_image_name="None"
+ follows="top|left"
+ height="105"
+ layout="topleft"
+ left="0"
+ name="1st_life_pic"
+ top_pad="5"
+ width="105" />
+ </panel>
+ </panel>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerifBold"
+ height="15"
+ layout="topleft"
+ left="9"
+ name="title_sl_descr_text"
+ text_color="white"
+ top_pad="10"
+ width="290">
+ Second Life description:
+ </text>
+ <text_editor
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="45"
+ layout="topleft"
+ left="9"
+ name="sl_description_edit"
+ text_color="0.1 0.1 0.1 1"
+ width="290"
+ word_wrap="true">
+ </text_editor>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerifBold"
+ height="15"
+ layout="topleft"
+ left="9"
+ name="title_fl_descr_text"
+ text_color="white"
+ top_pad="10"
+ width="290">
+ First Life description:
+ </text>
+ <text_editor
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="45"
+ layout="topleft"
+ left="9"
+ name="fl_description_edit"
+ text_color="0.1 0.1 0.1 1"
+ width="290"
+ word_wrap="true">
+ </text_editor>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerifBold"
+ height="15"
+ layout="topleft"
+ left="9"
+ name="title_homepage_text"
+ text_color="white"
+ top_pad="10"
+ width="100">
+ Homepage:
+ </text>
+ <line_editor
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerif"
+ font.style="UNDERLINE"
+ height="15"
+ layout="topleft"
+ left="9"
+ name="homepage_edit"
+ text_color="0.2 0.2 1 1"
+ width="290">
+ TODO
+ </line_editor>
+ <check_box
+ follows="left|top"
+ label="Show me in Search results"
+ layout="topleft"
+ left="9"
+ name="show_in_search_checkbox"
+ height="16"
+ top_pad="10"
+ width="250"/>
+ </panel>
+ <panel
+ follows="bottom|right"
+ height="30"
+ left="96"
+ name="profile_me_buttons_panel"
+ top_pad="8"
+ width="250">
+ <button
+ follows="bottom|right"
+ font="SansSerifSmallBold"
+ height="25"
+ label="Save Changes"
+ layout="topleft"
+ left="0"
+ name="save_btn"
+ top="0"
+ width="130" />
+ <button
+ follows="bottom|right"
+ font="SansSerifSmallBold"
+ height="25"
+ label="Cancel"
+ layout="topleft"
+ right="-1"
+ name="cancel_btn"
+ top_delta="0"
+ width="105" />
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_friends.xml b/indra/newview/skins/default/xui/en/panel_friends.xml
new file mode 100644
index 0000000000..a151eed20f
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_friends.xml
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ border="true"
+ follows="all"
+ height="347"
+ layout="topleft"
+ name="friends"
+ width="100">
+ <panel.string
+ name="Multiple">
+ Multiple friends...
+ </panel.string>
+ <scroll_list
+ bottom="337"
+ column_padding="0"
+ draw_heading="true"
+ follows="left|top|bottom|right"
+ layout="topleft"
+ left="10"
+ multi_select="true"
+ name="friend_list"
+ right="-100"
+ search_column="1"
+ tool_tip="Hold shift or control while clicking to select multiple friends"
+ top="10">
+ <scroll_list.columns
+ image="ff_online_status_button.tga"
+ name="icon_online_status"
+ tool_tip="Online status"
+ width="20" />
+ <scroll_list.columns
+ dynamicwidth="true"
+ label="Name"
+ name="friend_name"
+ tool_tip="Name" />
+ <scroll_list.columns
+ image="ff_visible_online_button.tga"
+ name="icon_visible_online"
+ tool_tip="Friend can see when you&apos;re online"
+ width="20" />
+ <scroll_list.columns
+ image="ff_visible_map_button.tga"
+ name="icon_visible_map"
+ tool_tip="Friend can locate you on the map"
+ width="20" />
+ <scroll_list.columns
+ image="ff_edit_mine_button.tga"
+ name="icon_edit_mine"
+ tool_tip="Friend can edit, delete or take objects"
+ width="20" />
+ <scroll_list.columns
+ image="ff_edit_theirs_button.tga"
+ name="icon_edit_theirs"
+ tool_tip="You can edit this friend&apos;s objects"
+ width="20" />
+ <scroll_list.columns
+ name="friend_last_update_generation"
+ width="0" />
+ </scroll_list>
+ <locate
+ bottom="7"
+ layout="topleft"
+ left="-90" />
+ <button
+ follows="top|right"
+ height="22"
+ label="IM/Call"
+ layout="topleft"
+ left_pad="10"
+ name="im_btn"
+ tool_tip="Open Instant Message session"
+ top_pad="3"
+ width="80" />
+ <button
+ follows="top|right"
+ height="22"
+ label="Profile"
+ layout="topleft"
+ left_delta="0"
+ name="profile_btn"
+ tool_tip="Show picture, groups, and other information"
+ top_pad="3"
+ width="80" />
+ <button
+ follows="top|right"
+ height="22"
+ label="Teleport..."
+ layout="topleft"
+ left_delta="0"
+ name="offer_teleport_btn"
+ tool_tip="Offer this friend a teleport to your current location"
+ top_pad="3"
+ width="80" />
+ <button
+ follows="top|right"
+ height="22"
+ label="Pay..."
+ layout="topleft"
+ left_delta="0"
+ name="pay_btn"
+ tool_tip="Give Linden dollars (L$) to this friend"
+ top_pad="3"
+ width="80" />
+ <button
+ follows="top|right"
+ height="22"
+ label="Remove..."
+ layout="topleft"
+ left_delta="0"
+ name="remove_btn"
+ tool_tip="Remove this person from your friends list"
+ top_pad="3"
+ width="80" />
+ <button
+ follows="top|right"
+ height="22"
+ label="Add..."
+ layout="topleft"
+ left_delta="0"
+ name="add_btn"
+ tool_tip="Offer friendship to a resident"
+ top_pad="13"
+ width="80" />
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_group_general.xml b/indra/newview/skins/default/xui/en/panel_group_general.xml
new file mode 100644
index 0000000000..10d10f60ff
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_group_general.xml
@@ -0,0 +1,316 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ border="true"
+ follows="all"
+ height="466"
+ label="General"
+ layout="topleft"
+ left="1"
+ name="general_tab"
+ top="466"
+ width="418">
+ <panel.string
+ name="help_text">
+ The General tab contains general information about
+this group, a list of Owners and visible Members,
+general Group Preferences and member options.
+
+Hover your mouse over the options for more help.
+ </panel.string>
+ <panel.string
+ name="group_info_unchanged">
+ General group information has changed.
+ </panel.string>
+ <panel.string
+ name="incomplete_member_data_str">
+ Retrieving member data
+ </panel.string>
+ <panel.string
+ name="confirm_group_create_str">
+ Creating this group will cost L$100.
+Are you really, really, REALLY sure you want to spend L$100 to create this group?
+Be aware that if nobody else joins this group within 48 hours, it will be disbanded and the group&apos;s name will be unavailable for future use.
+ </panel.string>
+ <panel.string
+ name="group_join_btn">
+ Join (L$[AMOUNT])
+ </panel.string>
+ <button
+ follows="left|top"
+ height="16"
+ label="?"
+ label_selected="?"
+ layout="topleft"
+ left="391"
+ name="help_button"
+ top="8"
+ width="20" />
+ <line_editor
+ follows="left|top"
+ font="SansSerif"
+ halign="left"
+ height="16"
+ label="Type your new group name here"
+ layout="topleft"
+ left_delta="-384"
+ max_length="35"
+ name="group_name_editor"
+ top_delta="0"
+ width="300" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerifBig"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="group_name"
+ top_delta="-4"
+ width="300">
+ Type your new group name here
+ </text>
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="prepend_founded_by"
+ top_pad="4"
+ width="100">
+ Founded by
+ </text>
+ <name_box
+ follows="left|top"
+ height="16"
+ initial_value="(retrieving)"
+ layout="topleft"
+ left_delta="63"
+ name="founder_name"
+ top_delta="0"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ name="group_charter_label"
+ right="410"
+ top="40"
+ width="265">
+ Group Charter
+ </text>
+ <texture_picker
+ follows="left|top"
+ height="144"
+ label="Group Insignia"
+ layout="topleft"
+ left_delta="-138"
+ name="insignia"
+ tool_tip="Click to choose a picture"
+ top_delta="1"
+ width="128" />
+ <text_editor
+ type="string"
+ length="1"
+ follows="left|top"
+ halign="left"
+ height="160"
+ hide_scrollbar="true"
+ layout="topleft"
+ max_length="511"
+ name="charter"
+ right="410"
+ top="55"
+ width="265"
+ word_wrap="true">
+ Group Charter
+ </text_editor>
+ <button
+ follows="left|top"
+ height="22"
+ label="Join (L$0)"
+ label_selected="Join (L$0)"
+ layout="topleft"
+ left="7"
+ name="join_button"
+ top="193"
+ width="128" />
+ <button
+ follows="left|top"
+ height="22"
+ label="Detailed View"
+ label_selected="Detailed View"
+ layout="topleft"
+ left_delta="0"
+ name="info_button"
+ top_delta="0"
+ width="128" />
+ <text
+ type="string"
+ length="1"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="text_owners_and_visible_members"
+ top_pad="4"
+ width="160">
+ Owners &amp; Visible Members
+ </text>
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="text_owners_are_shown_in_bold"
+ top_delta="16"
+ width="160">
+ (Owners are shown in bold)
+ </text>
+ <name_list
+ column_padding="0"
+ draw_heading="true"
+ follows="left|top"
+ heading_height="14"
+ height="80"
+ layout="topleft"
+ left_delta="0"
+ name="visible_members"
+ top_pad="8"
+ width="404">
+ <name_list.columns
+ label="Member Name"
+ name="name"
+ relative_width="0.45" />
+ <name_list.columns
+ label="Title"
+ name="title"
+ relative_width="0.3" />
+ <name_list.columns
+ label="Last Login"
+ name="online"
+ relative_width="0.25" />
+ </name_list>
+ <text
+ type="string"
+ length="1"
+ bottom_delta="18"
+ font="SansSerif"
+ layout="topleft"
+ name="text_group_preferences">
+ Group Preferences
+ </text>
+ <panel
+ background_opaque="true"
+ bevel_style="in"
+ border="true"
+ follows="left|top"
+ height="96"
+ layout="topleft"
+ left_delta="0"
+ name="preferences_container"
+ top_pad="8"
+ width="404">
+ <check_box
+ height="16"
+ initial_value="true"
+ label="Show in search"
+ layout="topleft"
+ left="4"
+ name="show_in_group_list"
+ tool_tip="Let people see this group in search results."
+ top="4"
+ width="95" />
+ <check_box
+ follows="right|top"
+ height="16"
+ label="Open enrollment"
+ layout="topleft"
+ left_delta="0"
+ name="open_enrollement"
+ tool_tip="Sets whether this group allows new members to join without being invited."
+ top_pad="2"
+ width="95" />
+ <check_box
+ height="16"
+ label="Enrollment fee: L$"
+ layout="topleft"
+ left_delta="16"
+ name="check_enrollment_fee"
+ tool_tip="Sets whether to require an enrollment fee to join the group."
+ top="40"
+ width="95" />
+ <spinner
+ decimal_digits="0"
+ follows="left|top"
+ halign="left"
+ height="16"
+ increment="1"
+ label_width="10"
+ layout="topleft"
+ left_pad="21"
+ max_val="99999"
+ name="spin_enrollment_fee"
+ tool_tip="New members must pay this fee to join the group when Enrollment Fee is checked."
+ top_delta="-2"
+ width="65" />
+ <combo_box
+ height="20"
+ layout="topleft"
+ left="6"
+ name="group_mature_check"
+ tool_tip="Sets whether your group information is considered mature."
+ top="64"
+ width="130">
+ <combo_box.item
+ label="Select Mature -"
+ value="Select" />
+ <combo_box.item
+ label="Mature Content"
+ value="Mature" />
+ <combo_box.item
+ label="PG Content"
+ value="Not Mature" />
+ </combo_box>
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ left="225"
+ name="active_title_label"
+ top="4"
+ width="95">
+ My Active Title
+ </text>
+ <combo_box
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="active_title"
+ tool_tip="Sets the title that appears in your avatar&apos;s name tag when this group is active."
+ top_pad="6"
+ width="95" />
+ <check_box
+ height="16"
+ label="Receive group notices"
+ layout="topleft"
+ left_delta="0"
+ name="receive_notices"
+ tool_tip="Sets whether you want to receive Notices from this group. Uncheck this box if this group is spamming you."
+ top_pad="9"
+ width="95" />
+ <check_box
+ height="16"
+ label="List group in my profile"
+ layout="topleft"
+ left_delta="0"
+ name="list_groups_in_profile"
+ tool_tip="Sets whether you want to list this group in your Profile"
+ top_pad="2"
+ width="95" />
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_group_invite.xml b/indra/newview/skins/default/xui/en/panel_group_invite.xml
new file mode 100644
index 0000000000..43457ddd61
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_group_invite.xml
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ height="380"
+ label="Invite a Member"
+ layout="topleft"
+ left="0"
+ name="invite_panel"
+ top="380"
+ width="210">
+ <panel.string
+ name="confirm_invite_owner_str">
+ Are you sure you want to invite new owner(s)? This action is permanent!
+ </panel.string>
+ <panel.string
+ name="loading">
+ (loading...)
+ </panel.string>
+ <text
+ type="string"
+ length="1"
+ height="54"
+ layout="topleft"
+ left="7"
+ name="help_text"
+ top="24"
+ width="200">
+ You can select multiple residents to
+invite to your group. Click &apos;Open
+Resident Chooser&apos; to start.
+ </text>
+ <button
+ font="SansSerifSmall"
+ height="20"
+ label="Open Resident Chooser"
+ layout="topleft"
+ left_delta="-2"
+ name="add_button"
+ top_delta="44"
+ width="200" />
+ <name_list
+ allow_calling_card_drop="true"
+ column_padding="0"
+ height="174"
+ layout="topleft"
+ left_delta="0"
+ multi_select="true"
+ name="invitee_list"
+ tool_tip="Hold the Ctrl key and click resident names to multi-select."
+ top_pad="4"
+ width="200" />
+ <button
+ font="SansSerifSmall"
+ height="20"
+ label="Remove Selected from List"
+ layout="topleft"
+ left_delta="0"
+ name="remove_button"
+ tool_tip="Removes residents selected above from the invite list."
+ top_pad="4"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ left_delta="4"
+ name="role_text"
+ top_pad="5"
+ width="200">
+ Choose what Role to assign them to:
+ </text>
+ <combo_box
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="role_name"
+ tool_tip="Choose from the list of Roles you are allowed to assign members to."
+ top_delta="16"
+ width="196" />
+ <button
+ font="SansSerifSmall"
+ height="20"
+ label="Send Invitations"
+ layout="topleft"
+ left="4"
+ name="ok_button"
+ top="356"
+ width="130" />
+ <button
+ font="SansSerifSmall"
+ height="20"
+ label="Cancel"
+ layout="topleft"
+ left_pad="2"
+ name="cancel_button"
+ top_delta="0"
+ width="70" />
+ <string
+ name="GroupInvitation">
+ Group Invitation
+ </string>
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_group_land_money.xml b/indra/newview/skins/default/xui/en/panel_group_land_money.xml
new file mode 100644
index 0000000000..35691661f1
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_group_land_money.xml
@@ -0,0 +1,373 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ border="true"
+ follows="all"
+ height="470"
+ label="Land &amp; L$"
+ layout="topleft"
+ left="1"
+ name="land_money_tab"
+ top="470"
+ width="418">
+ <panel.string
+ name="help_text">
+ Parcels owned by the group are listed along with contribution details. A warning appears until the Total Land in Use is less than or equal to the Total Contribution. The Planning, Details, and Sales tabs provide information about the group&apos;s finances.
+ </panel.string>
+ <panel.string
+ name="cant_view_group_land_text">
+ You do not have permission to view group owned land.
+ </panel.string>
+ <panel.string
+ name="cant_view_group_accounting_text">
+ You do not have permission to view the group&apos;s accounting information.
+ </panel.string>
+ <panel.string
+ name="loading_txt">
+ Loading...
+ </panel.string>
+ <panel.string
+ name="land_contrib_error">
+ Unable to set your land contribution.
+ </panel.string>
+ <button
+ height="16"
+ label="?"
+ layout="topleft"
+ left="391"
+ name="help_button"
+ top="8"
+ width="20" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerifBig"
+ height="16"
+ layout="topleft"
+ left_delta="-384"
+ name="group_land_heading"
+ top_delta="-4"
+ width="150">
+ Group Owned Land
+ </text>
+ <scroll_list
+ draw_heading="true"
+ follows="top"
+ font="SansSerifSmall"
+ heading_height="14"
+ height="120"
+ layout="topleft"
+ left_delta="0"
+ name="group_parcel_list"
+ top_pad="6"
+ width="404">
+ <scroll_list.columns
+ label="Parcel Name"
+ name="name"
+ width="100" />
+ <scroll_list.columns
+ label="Region"
+ name="location"
+ width="120" />
+ <scroll_list.columns
+ label="Type"
+ name="type"
+ width="100" />
+ <scroll_list.columns
+ label="Area"
+ name="area"
+ width="61" />
+ <scroll_list.columns
+ label=""
+ name="hidden"
+ width="-1" />
+ </scroll_list>
+ <button
+ follows="top"
+ height="20"
+ label="Show on Map"
+ label_selected="Show on Map"
+ layout="topleft"
+ left="312"
+ name="map_button"
+ top="150"
+ width="100"
+ enabled="false" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ halign="right"
+ height="16"
+ layout="topleft"
+ left_delta="-305"
+ name="total_contributed_land_label"
+ top_delta="4"
+ width="120">
+ Total Contribution:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_pad="5"
+ name="total_contributed_land_value"
+ top_delta="0"
+ width="100">
+ [AREA] sq. meters
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ halign="right"
+ height="16"
+ layout="topleft"
+ left="7"
+ name="total_land_in_use_label"
+ top="172"
+ width="120">
+ Total Land In Use:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_pad="5"
+ name="total_land_in_use_value"
+ top_delta="0"
+ width="150">
+ [AREA] sq. meters
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ halign="right"
+ height="16"
+ layout="topleft"
+ left="7"
+ name="land_available_label"
+ top="190"
+ width="120">
+ Land Available:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_pad="5"
+ name="land_available_value"
+ top_delta="0"
+ width="120">
+ [AREA] sq. meters
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ halign="right"
+ height="16"
+ layout="topleft"
+ left="7"
+ name="your_contribution_label"
+ top="208"
+ width="120">
+ Your Contribution:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_pad="5"
+ max_length="10"
+ name="your_contribution_line_editor"
+ top_delta="-2"
+ width="70" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_pad="5"
+ name="your_contribution_max_value"
+ top_delta="2"
+ width="200">
+ sq. meters ([AMOUNT] max)
+ </text>
+ <icon
+ height="16"
+ image_name="smicon_warn.tga"
+ layout="topleft"
+ left="9"
+ name="group_over_limit_icon"
+ top="235"
+ visible="false"
+ width="16" />
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ left_pad="5"
+ name="group_over_limit_text"
+ text_color="GroupOverTierColor"
+ top_delta="1"
+ width="400">
+ Group members must contribute more land credits to support land in use.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerifBig"
+ height="16"
+ layout="topleft"
+ left="12"
+ name="group_money_heading"
+ top="261"
+ width="150">
+ Group L$
+ </text>
+ <tab_container
+ follows="all"
+ height="180"
+ layout="topleft"
+ left="6"
+ name="group_money_tab_container"
+ tab_position="top"
+ top="286"
+ width="406">
+ <panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="255"
+ label="Planning"
+ layout="topleft"
+ left="1"
+ name="group_money_planning_tab"
+ top="5"
+ width="398">
+ <text_editor
+ type="string"
+ length="1"
+ bg_readonly_color="0.784314 0.819608 0.8 1"
+ follows="all"
+ font="Monospace"
+ height="150"
+ layout="topleft"
+ left="8"
+ max_length="4096"
+ name="group_money_planning_text"
+ top="5"
+ width="382">
+ Computing...
+ </text_editor>
+ </panel>
+ <panel
+ border="true"
+ follows="all"
+ height="250"
+ label="Details"
+ layout="topleft"
+ left_delta="0"
+ name="group_money_details_tab"
+ top_delta="163"
+ width="398">
+ <text_editor
+ type="string"
+ length="1"
+ bg_readonly_color="0.784314 0.819608 0.8 1"
+ follows="left|top"
+ font="Monospace"
+ height="125"
+ layout="topleft"
+ left="8"
+ max_length="4096"
+ name="group_money_details_text"
+ top="7"
+ width="382">
+ Computing...
+ </text_editor>
+ <button
+ follows="left|top"
+ height="20"
+ label="&lt; Earlier"
+ label_selected="&lt; Earlier"
+ layout="topleft"
+ left="24"
+ name="earlier_details_button"
+ tool_tip="Go back in time"
+ top="136"
+ width="80" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Later &gt;"
+ label_selected="Later &gt;"
+ layout="topleft"
+ left_pad="190"
+ name="later_details_button"
+ tool_tip="Go forward in time"
+ top_delta="0"
+ width="80" />
+ </panel>
+ <panel
+ border="true"
+ follows="all"
+ height="164"
+ label="Sales"
+ layout="topleft"
+ left_delta="0"
+ name="group_money_sales_tab"
+ top_delta="-1"
+ width="398">
+ <text_editor
+ type="string"
+ length="1"
+ bg_readonly_color="0.784314 0.819608 0.8 1"
+ follows="left|top"
+ font="Monospace"
+ height="125"
+ layout="topleft"
+ left="8"
+ max_length="4096"
+ name="group_money_sales_text"
+ top="7"
+ width="382">
+ Computing...
+ </text_editor>
+ <button
+ follows="left|top"
+ height="20"
+ label="&lt; Earlier"
+ label_selected="&lt; Earlier"
+ layout="topleft"
+ left="24"
+ name="earlier_sales_button"
+ tool_tip="Go back in time"
+ top="136"
+ width="80" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Later &gt;"
+ label_selected="Later &gt;"
+ layout="topleft"
+ left_pad="190"
+ name="later_sales_button"
+ tool_tip="Go forward in time"
+ top_delta="0"
+ width="80" />
+ </panel>
+ </tab_container>
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_group_notices.xml b/indra/newview/skins/default/xui/en/panel_group_notices.xml
new file mode 100644
index 0000000000..345cc734e6
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_group_notices.xml
@@ -0,0 +1,378 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ border="true"
+ follows="all"
+ height="466"
+ label="Notices"
+ layout="topleft"
+ left="1"
+ name="notices_tab"
+ top="466"
+ width="418">
+ <panel.string
+ name="help_text">
+ Notices are a quick way to communicate across a
+group by broadcasting a message and delivering
+an optionally attached item. Notices only go to
+group members in Roles granted the ability to
+receive Notices. You can turn off Notices on
+the General tab.
+ </panel.string>
+ <panel.string
+ name="no_notices_text">
+ There are no past notices.
+ </panel.string>
+ <button
+ height="16"
+ label="?"
+ label_selected="?"
+ layout="topleft"
+ left="391"
+ name="help_button"
+ top="8"
+ width="20" />
+ <text
+ type="string"
+ length="1"
+ font="SansSerifBig"
+ height="16"
+ layout="topleft"
+ left_delta="-384"
+ name="lbl"
+ top_delta="-4"
+ width="436">
+ Group Notices Archive
+ </text>
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="lbl2"
+ top_pad="4"
+ width="436">
+ Notices are kept for 14 days. Click the notice below you wish to view.
+Click the &apos;Refresh&apos; button to check if new notices have been received.
+Notice lists are limited to 200 notices per group on a daily basis.
+ </text>
+ <scroll_list
+ column_padding="0"
+ draw_heading="true"
+ heading_height="14"
+ height="109"
+ layout="topleft"
+ left_delta="0"
+ name="notice_list"
+ top_pad="28"
+ width="404">
+ <scroll_list.columns
+ label=""
+ name="icon"
+ width="16" />
+ <scroll_list.columns
+ label="Subject"
+ name="subject"
+ width="171" />
+ <scroll_list.columns
+ label="From"
+ name="from"
+ width="125" />
+ <scroll_list.columns
+ label="Date"
+ name="date"
+ width="85" />
+ <scroll_list.columns
+ name="sort"
+ width="-1" />
+ </scroll_list>
+ <text
+ type="string"
+ length="1"
+ layout="topleft"
+ name="notice_list_none_found"
+ visible="false">
+ None found.
+ </text>
+ <button
+ height="20"
+ label="Create New Notice"
+ label_selected="Create New Notice"
+ layout="topleft"
+ left_delta="0"
+ name="create_new_notice"
+ top_delta="-2"
+ width="150" />
+ <button
+ height="20"
+ label="Refresh"
+ label_selected="Refresh List"
+ layout="topleft"
+ left_pad="164"
+ name="refresh_notices"
+ top_delta="0"
+ width="90" />
+ <panel
+ follows="all"
+ height="268"
+ label="Create New Notice"
+ layout="topleft"
+ left="1"
+ name="panel_create_new_notice"
+ top="198"
+ width="418">
+ <text
+ type="string"
+ length="1"
+ font="SansSerifBig"
+ height="16"
+ layout="topleft"
+ left="7"
+ mouse_opaque="false"
+ name="lbl"
+ top="2"
+ width="436">
+ Create a Notice
+ </text>
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="lbl2"
+ top_pad="4"
+ width="436">
+ You must enter a subject to send a notice. You can add a single
+item to a notice by dragging it from your inventory to this
+panel. Attached items must be copiable and transferrable,
+and you can&apos;t send a folder.
+ </text>
+ <text
+ type="string"
+ length="1"
+ halign="right"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="lbl3"
+ top_pad="47"
+ width="55">
+ Subject:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ height="16"
+ layout="topleft"
+ left_pad="3"
+ max_length="63"
+ name="create_subject"
+ top_delta="0"
+ width="264" />
+ <text
+ type="string"
+ length="1"
+ halign="right"
+ height="16"
+ layout="topleft"
+ left="7"
+ name="lbl4"
+ top="103"
+ width="55">
+ Message:
+ </text>
+ <text_editor
+ height="120"
+ hide_scrollbar="true"
+ layout="topleft"
+ left_pad="3"
+ max_length="511"
+ name="create_message"
+ top_delta="2"
+ width="346"
+ word_wrap="true" />
+ <text
+ type="string"
+ length="1"
+ halign="right"
+ height="16"
+ layout="topleft"
+ left="7"
+ name="lbl5"
+ top="228"
+ width="55">
+ Attach:
+ </text>
+ <line_editor
+ enabled="false"
+ height="16"
+ layout="topleft"
+ left_pad="4"
+ max_length="63"
+ mouse_opaque="false"
+ name="create_inventory_name"
+ top_delta="2"
+ width="211" />
+ <icon
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="create_inv_icon"
+ top_delta="0"
+ width="16" />
+ <button
+ height="20"
+ label="Remove Attachment"
+ label_selected="Remove Attachment"
+ layout="topleft"
+ left_pad="197"
+ name="remove_attachment"
+ top_delta="-4"
+ width="135" />
+ <button
+ height="20"
+ label="Send Notice"
+ label_selected="Send Notice"
+ layout="topleft"
+ left_delta="0"
+ name="send_notice"
+ top_delta="20"
+ width="135" />
+ <panel
+ bevel_style="in"
+ border="true"
+ height="76"
+ layout="topleft"
+ left="335"
+ name="drop_target2"
+ top="20"
+ width="76" />
+ <icon
+ height="64"
+ image_name="icon_groupnoticeinventory.tga"
+ layout="topleft"
+ left_delta="5"
+ mouse_opaque="true"
+ name="drop_icon"
+ top="25"
+ width="64" />
+ <group_drop_target
+ height="466"
+ layout="topleft"
+ left="0"
+ name="drop_target"
+ tool_tip="Drag an inventory item onto the message box to send it with the notice. You must have permission to copy and transfer the object to send it with the notice."
+ top="-198"
+ width="422" />
+ </panel>
+ <panel
+ follows="all"
+ height="268"
+ label="View Past Notice"
+ layout="topleft"
+ left_delta="0"
+ name="panel_view_past_notice"
+ top_delta="0"
+ width="418">
+ <text
+ type="string"
+ length="1"
+ font="SansSerifBig"
+ height="16"
+ layout="topleft"
+ left="7"
+ mouse_opaque="false"
+ name="lbl"
+ top="2"
+ width="436">
+ Archived Notice
+ </text>
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="lbl2"
+ top_pad="4"
+ width="436">
+ To send a new notice, click the &apos;Create New Notice&apos; button above.
+ </text>
+ <text
+ type="string"
+ length="1"
+ halign="right"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="lbl3"
+ top_pad="24"
+ visible="false"
+ width="55">
+ Subject:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ enabled="false"
+ height="16"
+ layout="topleft"
+ left_pad="3"
+ max_length="63"
+ name="view_subject"
+ top_delta="0"
+ visible="false"
+ width="346" />
+ <text
+ type="string"
+ length="1"
+ halign="right"
+ height="16"
+ layout="topleft"
+ left="7"
+ name="lbl4"
+ top="80"
+ visible="false"
+ width="55">
+ Message:
+ </text>
+ <text_editor
+ enabled="false"
+ height="206"
+ hide_scrollbar="true"
+ layout="topleft"
+ left_delta="0"
+ max_length="511"
+ name="view_message"
+ top_delta="-42"
+ width="404"
+ word_wrap="true" />
+ <button
+ height="20"
+ label="Open Attachment"
+ label_selected="Open Attachment"
+ layout="topleft"
+ left_delta="0"
+ name="open_attachment"
+ top_pad="4"
+ width="110" />
+ <line_editor
+ enabled="false"
+ height="16"
+ layout="topleft"
+ left_pad="3"
+ max_length="63"
+ mouse_opaque="false"
+ name="view_inventory_name"
+ top_delta="1"
+ width="264" />
+ <icon
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="view_inv_icon"
+ top_delta="0"
+ width="16" />
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_group_roles.xml b/indra/newview/skins/default/xui/en/panel_group_roles.xml
new file mode 100644
index 0000000000..c758da4b63
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_group_roles.xml
@@ -0,0 +1,743 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ border="true"
+ height="466"
+ label="Members &amp; Roles"
+ layout="topleft"
+ left="1"
+ name="roles_tab"
+ top="466"
+ width="418">
+ <panel.string
+ name="default_needs_apply_text">
+ There are unapplied changes on the current sub-tab.
+ </panel.string>
+ <panel.string
+ name="want_apply_text">
+ Do you want to apply these changes?
+ </panel.string>
+ <panel.string
+ name="help_text" />
+ <button
+ height="16"
+ label="?"
+ layout="topleft"
+ left="391"
+ name="help_button"
+ top="8"
+ width="20" />
+ <panel
+ height="24"
+ layout="topleft"
+ left="7"
+ name="members_header"
+ top="0"
+ width="380">
+ <text
+ type="string"
+ length="1"
+ font="SansSerifBig"
+ height="16"
+ layout="topleft"
+ left="0"
+ name="static"
+ top="4"
+ width="150">
+ Members &amp; Roles
+ </text>
+ <text
+ type="string"
+ length="1"
+ height="32"
+ layout="topleft"
+ left_delta="0"
+ name="static2"
+ top_pad="4"
+ width="400">
+ Group Members are assigned Roles with Abilities. These settings can
+easily be customized, allowing for greater organization and flexibility.
+ </text>
+ </panel>
+ <panel
+ height="24"
+ layout="topleft"
+ left_delta="0"
+ name="roles_header"
+ top_delta="0"
+ visible="false"
+ width="380">
+ <text
+ type="string"
+ length="1"
+ font="SansSerifBig"
+ height="16"
+ layout="topleft"
+ left="0"
+ name="static"
+ top="4"
+ width="100">
+ Roles
+ </text>
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="role_properties_modifiable"
+ top_pad="4"
+ visible="false"
+ width="394">
+ Select a Role below. You can modify its Name, Description and Member Title.
+ </text>
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="role_properties_not_modifiable"
+ top_delta="0"
+ width="394">
+ Select a Role below to see its properties, Members and allowed Abilities.
+ </text>
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="role_actions_modifiable"
+ top_delta="14"
+ visible="false"
+ width="394">
+ You can also assign Abilities to the Role.
+ </text>
+ <text
+ type="string"
+ length="1"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="role_actions_not_modifiable"
+ top_delta="0"
+ width="394">
+ You may view, but not modify, assigned Abilities.
+ </text>
+ </panel>
+ <panel
+ height="24"
+ layout="topleft"
+ left_delta="0"
+ name="actions_header"
+ top_delta="20"
+ visible="false"
+ width="380">
+ <text
+ type="string"
+ length="1"
+ font="SansSerifBig"
+ height="16"
+ layout="topleft"
+ left="0"
+ name="static"
+ top="-16"
+ width="200">
+ Abilities
+ </text>
+ <text
+ type="string"
+ length="1"
+ height="32"
+ layout="topleft"
+ left_delta="0"
+ name="static2"
+ top_pad="4"
+ width="394">
+ You can view an Ability&apos;s Description and which Roles and Members can
+execute the Ability.
+ </text>
+ </panel>
+ <tab_container
+ height="180"
+ layout="topleft"
+ left_delta="-1"
+ name="roles_tab_container"
+ tab_position="top"
+ top_pad="10"
+ width="406">
+ <panel
+ border="true"
+ height="164"
+ label="Members"
+ layout="topleft"
+ left="1"
+ name="members_sub_tab"
+ tool_tip="Members"
+ top="16"
+ width="406">
+ <panel.string
+ name="help_text">
+ You can add or remove Roles assigned to Members.
+Select multiple Members by holding the Ctrl key and
+clicking on their names.
+ </panel.string>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="4"
+ max_length="63"
+ name="search_text"
+ top="5"
+ width="100" />
+ <button
+ font="SansSerifSmall"
+ height="20"
+ label="Search"
+ layout="topleft"
+ left_pad="5"
+ name="search_button"
+ top_delta="-2"
+ width="60" />
+ <button
+ enabled="false"
+ font="SansSerifSmall"
+ height="20"
+ label="Show All"
+ layout="topleft"
+ left_pad="5"
+ name="show_all_button"
+ top_delta="0"
+ width="80" />
+ <name_list
+ column_padding="0"
+ draw_heading="true"
+ heading_height="14"
+ height="120"
+ layout="topleft"
+ left="4"
+ multi_select="true"
+ name="member_list"
+ top="24"
+ width="396">
+ <name_list.columns
+ label="Member Name"
+ name="name"
+ width="136" />
+ <name_list.columns
+ label="Donated Tier"
+ name="donated"
+ width="136" />
+ <name_list.columns
+ label="Last Login"
+ name="online"
+ width="116" />
+ </name_list>
+ <button
+ height="19"
+ label="Invite New Member ..."
+ layout="topleft"
+ left_delta="0"
+ name="member_invite"
+ top_pad="1"
+ width="146" />
+ <button
+ height="19"
+ label="Eject From Group"
+ layout="topleft"
+ left_pad="103"
+ name="member_eject"
+ top_delta="0"
+ width="146" />
+ <icon
+ height="16"
+ image_name="inv_folder_plain_closed.tga"
+ layout="topleft"
+ name="power_folder_icon"
+ visible="false"
+ width="16" />
+ </panel>
+ <panel
+ border="true"
+ height="164"
+ label="Roles"
+ layout="topleft"
+ left_delta="0"
+ name="roles_sub_tab"
+ top_delta="0"
+ width="398">
+ <panel.string
+ name="help_text">
+ Roles have a title and an allowed list of Abilities
+that Members can perform. Members can belong to
+one or more Roles. A group can have up to 10 Roles,
+including the Everyone and Owner Roles.
+ </panel.string>
+ <panel.string
+ name="cant_delete_role">
+ The &apos;Everyone&apos; and &apos;Owners&apos; Roles are special and cannot be deleted.
+ </panel.string>
+ <panel.string
+ name="power_folder_icon">
+ inv_folder_plain_closed.tga
+ </panel.string>
+ <panel.string
+ name="power_all_have_icon">
+ checkbox_enabled_true.tga
+ </panel.string>
+ <panel.string
+ name="power_partial_icon">
+ checkbox_enabled_false.tga
+ </panel.string>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="4"
+ max_length="63"
+ name="search_text"
+ top="5"
+ width="100" />
+ <button
+ font="SansSerifSmall"
+ height="20"
+ label="Search"
+ layout="topleft"
+ left_pad="5"
+ name="search_button"
+ top_delta="-2"
+ width="60" />
+ <button
+ enabled="false"
+ font="SansSerifSmall"
+ height="20"
+ label="Show All"
+ layout="topleft"
+ left_pad="5"
+ name="show_all_button"
+ top_delta="0"
+ width="80" />
+ <scroll_list
+ column_padding="0"
+ draw_heading="true"
+ follows="left|top"
+ heading_height="14"
+ height="120"
+ layout="topleft"
+ left="4"
+ name="role_list"
+ top="23"
+ width="396">
+ <scroll_list.columns
+ label="Role Name"
+ name="name"
+ width="126" />
+ <scroll_list.columns
+ label="Title"
+ name="title"
+ width="186" />
+ <scroll_list.columns
+ label="Members"
+ name="members"
+ width="76" />
+ </scroll_list>
+ <button
+ height="19"
+ label="Create New Role ..."
+ layout="topleft"
+ left_delta="0"
+ name="role_create"
+ top_pad="2"
+ width="146" />
+ <button
+ height="19"
+ label="Delete Role"
+ layout="topleft"
+ left_pad="95"
+ name="role_delete"
+ top_delta="0"
+ width="146" />
+ </panel>
+ <panel
+ border="true"
+ height="164"
+ label="Abilities"
+ layout="topleft"
+ left_delta="0"
+ name="actions_sub_tab"
+ top_delta="0"
+ width="398">
+ <panel.string
+ name="help_text">
+ Abilities allow Members in Roles to do specific
+things in this group. There&apos;s a broad variety of Abilities.
+ </panel.string>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="6"
+ max_length="63"
+ name="search_text"
+ top="5"
+ width="100" />
+ <button
+ font="SansSerifSmall"
+ height="20"
+ label="Search"
+ layout="topleft"
+ left_pad="5"
+ name="search_button"
+ top_delta="-2"
+ width="60" />
+ <button
+ enabled="false"
+ font="SansSerifSmall"
+ height="20"
+ label="Show All"
+ layout="topleft"
+ left_pad="5"
+ name="show_all_button"
+ top_delta="0"
+ width="80" />
+ <scroll_list
+ column_padding="0"
+ draw_stripes="false"
+ follows="left|top"
+ height="134"
+ layout="topleft"
+ left="6"
+ multi_select="true"
+ name="action_list"
+ search_column="1"
+ tool_tip="Select an Ability to view more details."
+ top="23"
+ width="392">
+ <scroll_list.columns
+ label=""
+ name="icon"
+ width="18" />
+ <scroll_list.columns
+ label=""
+ name="action"
+ width="356" />
+ </scroll_list>
+ <icon
+ height="16"
+ image_name="inv_folder_plain_closed.tga"
+ layout="topleft"
+ name="power_folder_icon"
+ visible="false"
+ width="16" />
+ </panel>
+ </tab_container>
+ <panel
+ height="215"
+ layout="topleft"
+ left_delta="1"
+ name="members_footer"
+ top_pad="20"
+ width="406">
+ <text
+ type="string"
+ length="1"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="0"
+ name="static"
+ top="-16"
+ width="100">
+ Assigned Roles
+ </text>
+ <text
+ type="string"
+ length="1"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_pad="50"
+ name="static2"
+ top_delta="0"
+ width="150">
+ Allowed Abilities
+ </text>
+ <scroll_list
+ draw_stripes="false"
+ enabled="false"
+ height="198"
+ layout="topleft"
+ left="0"
+ name="member_assigned_roles"
+ top="1"
+ width="145">
+ <scroll_list.columns
+ label=""
+ name="checkbox"
+ width="18" />
+ <scroll_list.columns
+ label=""
+ name="role"
+ width="109" />
+ </scroll_list>
+ <scroll_list
+ draw_stripes="false"
+ enabled="false"
+ height="198"
+ layout="topleft"
+ left_pad="5"
+ name="member_allowed_actions"
+ tool_tip="For Details of each Allowed Ability see the Abilities tab."
+ top_delta="0"
+ width="254">
+ <scroll_list.columns
+ label=""
+ name="icon"
+ width="14" />
+ <scroll_list.columns
+ label=""
+ name="action"
+ width="224" />
+ </scroll_list>
+ </panel>
+ <panel
+ height="215"
+ layout="topleft"
+ left_delta="0"
+ name="roles_footer"
+ top_delta="0"
+ visible="false"
+ width="406">
+ <text
+ type="string"
+ length="1"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="0"
+ name="static"
+ top="-16"
+ width="100">
+ Name
+ </text>
+ <text
+ type="string"
+ length="1"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_pad="50"
+ name="static2"
+ top_delta="0"
+ width="100">
+ Description
+ </text>
+ <line_editor
+ type="string"
+ length="1"
+ border_style="line"
+ border_thickness="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="0"
+ max_length="20"
+ name="role_name"
+ top="0"
+ width="145">
+ Employees
+ </line_editor>
+ <text
+ type="string"
+ length="1"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="static3"
+ top_delta="16"
+ width="100">
+ Title
+ </text>
+ <line_editor
+ type="string"
+ length="1"
+ border_style="line"
+ border_thickness="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ max_length="20"
+ name="role_title"
+ top_delta="16"
+ width="145">
+ (waiting)
+ </line_editor>
+ <text_editor
+ type="string"
+ length="1"
+ halign="left"
+ height="48"
+ hide_scrollbar="true"
+ layout="topleft"
+ left="150"
+ max_length="254"
+ name="role_description"
+ top="0"
+ width="254"
+ word_wrap="true">
+ (waiting)
+ </text_editor>
+ <text
+ type="string"
+ length="1"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="0"
+ name="static4"
+ top="58"
+ width="120">
+ Assigned Members
+ </text>
+ <text
+ type="string"
+ length="1"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_pad="30"
+ name="static5"
+ tool_tip="A list of Abilities the currently selected role can perform."
+ top_delta="0"
+ width="240">
+ Allowed Abilities
+ </text>
+ <name_list
+ draw_stripes="false"
+ enabled="false"
+ height="105"
+ layout="topleft"
+ left="0"
+ name="role_assigned_members"
+ top="74"
+ width="145" />
+ <check_box
+ height="16"
+ label="Members are visible"
+ layout="topleft"
+ left_delta="0"
+ name="role_visible_in_list"
+ tool_tip="Sets whether members of this role are visible in the General tab to people outside of the group."
+ top_pad="4"
+ width="361" />
+ <scroll_list
+ draw_stripes="false"
+ height="125"
+ layout="topleft"
+ left="150"
+ name="role_allowed_actions"
+ search_column="2"
+ tool_tip="For Details of each Allowed Ability see the Abilities tab."
+ top="74"
+ width="254">
+ <scroll_list.columns
+ label=""
+ name="icon"
+ width="2" />
+ <scroll_list.columns
+ label=""
+ name="checkbox"
+ width="16" />
+ <scroll_list.columns
+ label=""
+ name="action"
+ width="220" />
+ </scroll_list>
+ </panel>
+ <panel
+ height="215"
+ layout="topleft"
+ left_delta="0"
+ name="actions_footer"
+ top_delta="0"
+ visible="false"
+ width="406">
+ <text
+ type="string"
+ length="1"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="0"
+ name="static"
+ top="-16"
+ width="100">
+ Description
+ </text>
+ <text_editor
+ type="string"
+ length="1"
+ enabled="false"
+ halign="left"
+ height="48"
+ hide_scrollbar="true"
+ layout="topleft"
+ left_delta="0"
+ max_length="512"
+ name="action_description"
+ top_delta="16"
+ width="404"
+ word_wrap="true">
+ This Ability is &apos;Eject Members from this Group&apos;. Only an Owner can eject another Owner.
+ </text_editor>
+ <text
+ type="string"
+ length="1"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="static2"
+ top_pad="10"
+ width="145">
+ Roles with Ability
+ </text>
+ <text
+ type="string"
+ length="1"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left_pad="5"
+ name="static3"
+ top_delta="0"
+ width="200">
+ Members with Ability
+ </text>
+ <scroll_list
+ enabled="false"
+ height="125"
+ layout="topleft"
+ left="0"
+ name="action_roles"
+ top="74"
+ width="145" />
+ <name_list
+ enabled="false"
+ height="125"
+ layout="topleft"
+ left_pad="5"
+ name="action_members"
+ top_delta="0"
+ width="254" />
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_groups.xml b/indra/newview/skins/default/xui/en/panel_groups.xml
new file mode 100644
index 0000000000..bba399481b
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_groups.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ border="true"
+ follows="all"
+ height="347"
+ layout="topleft"
+ left="280"
+ name="groups"
+ top="24"
+ width="350">
+ <scroll_list
+ bottom="302"
+ follows="left|top|right|bottom"
+ layout="topleft"
+ left="10"
+ name="group list"
+ top="10"
+ width="240">
+ <scroll_list.columns
+ label=""
+ name="name"
+ width="248" />
+ </scroll_list>
+ <text
+ type="string"
+ length="1"
+ follows="left|bottom"
+ height="16"
+ layout="topleft"
+ left_delta="2"
+ mouse_opaque="false"
+ name="groupdesc"
+ top_pad="7"
+ width="248">
+ Your currently active group is displayed in bold.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|bottom"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ mouse_opaque="false"
+ name="groupcount"
+ top_pad="1"
+ width="248">
+ You belong to [COUNT] groups (of [MAX] maximum).
+ </text>
+ <locate
+ height="0"
+ layout="topleft"
+ left="-90"
+ top="7"
+ width="1" />
+ <button
+ follows="top|right"
+ height="22"
+ label="IM/Call"
+ layout="topleft"
+ left_delta="0"
+ name="IM"
+ tool_tip="Open Instant Message session"
+ top_pad="3"
+ width="80" />
+ <button
+ follows="top|right"
+ height="22"
+ label="Info"
+ layout="topleft"
+ left_delta="0"
+ name="Info"
+ top_pad="3"
+ width="80" />
+ <button
+ follows="top|right"
+ height="22"
+ label="Activate"
+ layout="topleft"
+ left_delta="0"
+ name="Activate"
+ top_pad="3"
+ width="80" />
+ <button
+ follows="top|right"
+ height="22"
+ label="Leave"
+ layout="topleft"
+ left_delta="0"
+ name="Leave"
+ top_pad="3"
+ width="80" />
+ <button
+ follows="top|right"
+ height="22"
+ label="Create..."
+ layout="topleft"
+ left_delta="0"
+ name="Create"
+ top_pad="13"
+ width="80" />
+ <button
+ follows="top|right"
+ height="22"
+ label="Search..."
+ layout="topleft"
+ left_delta="0"
+ name="Search..."
+ top_pad="3"
+ width="80" />
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_landmark_info.xml b/indra/newview/skins/default/xui/en/panel_landmark_info.xml
new file mode 100644
index 0000000000..e252788c69
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_landmark_info.xml
@@ -0,0 +1,258 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ background_visible="true"
+ bg_alpha_color="0.3 0.3 0.3 1"
+ height="560"
+ label="Landmark"
+ layout="topleft"
+ left="0"
+ name="landmark_info"
+ top="800"
+ width="355">
+ <panel.string
+ name="not_available">
+ (N\A)
+ </panel.string>
+ <panel.string
+ name="unknown">
+ (unknown)
+ </panel.string>
+ <panel.string
+ name="public">
+ (public)
+ </panel.string>
+ <panel.string
+ name="server_update_text">
+ Place information not available without server update.
+ </panel.string>
+ <panel.string
+ name="server_error_text">
+ Information about this location is unavailable at this time, please try again later.
+ </panel.string>
+ <panel.string
+ name="server_forbidden_text">
+ Information about this location is unavailable due to access restrictions. Please check your permissions with the parcel owner.
+ </panel.string>
+ <panel.string
+ name="acquired_date">
+ [wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]
+ </panel.string>
+ <button
+ follows="top|left"
+ height="20"
+ image_overlay="navbar_back.tga"
+ image_selected="navbar_bg_button.tga"
+ image_unselected="navbar_bg_button.tga"
+ layout="topleft"
+ left="10"
+ name="back_btn"
+ picture_style="true"
+ top="20"
+ width="20" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ font="SansSerifHugeBold"
+ height="20"
+ layout="topleft"
+ left="50"
+ name="panel_title"
+ text_color="white"
+ top="20"
+ width="150">
+ Landmark
+ </text>
+ <texture_picker
+ follows="top|left"
+ height="128"
+ layout="topleft"
+ left="10"
+ name="logo"
+ top="60"
+ width="128" />
+ <text
+ follows="left|top|right"
+ font="SansSerifHugeBold"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="region_name"
+ text_color="white"
+ top="180"
+ width="340" />
+ <text
+ follows="left|top|right"
+ font="SansSerifBold"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="parcel_name"
+ text_color="white"
+ top="205"
+ width="340" />
+ <panel
+ follows="left|top|right|bottom"
+ height="335"
+ layout="topleft"
+ left="0"
+ name="info_panel"
+ top="225"
+ width="355">
+ <text_editor
+ bg_focus_color="0.3 0.3 0.3 1"
+ bg_readonly_color="0.3 0.3 0.3 1"
+ follows="left|top|right"
+ font="SansSerif"
+ height="90"
+ hide_border="true"
+ hide_scrollbar="true"
+ layout="topleft"
+ left="10"
+ max_length="1000"
+ name="description"
+ read_only="true"
+ text_color="white"
+ top="0"
+ width="340" />
+ <icon
+ follows="top|left"
+ height="30"
+ image_name=""
+ layout="topleft"
+ left="10"
+ mouse_opaque="true"
+ name="maturity"
+ top="95"
+ width="30" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="15"
+ layout="topleft"
+ left="10"
+ name="owner_lable"
+ text_color="white"
+ top="130"
+ width="50"
+ word_wrap="true">
+ Owner:
+ </text>
+ <text
+ follows="left|top|right"
+ font="SansSerif"
+ height="15"
+ layout="topleft"
+ left="80"
+ name="owner"
+ text_color="white"
+ top="130"
+ width="260"
+ word_wrap="true" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="15"
+ layout="topleft"
+ left="10"
+ name="creator_lable"
+ text_color="white"
+ top="150"
+ width="50"
+ word_wrap="true">
+ Creator:
+ </text>
+ <text
+ follows="left|top|right"
+ font="SansSerif"
+ height="15"
+ layout="topleft"
+ left="80"
+ name="creator"
+ text_color="white"
+ top="150"
+ width="260"
+ word_wrap="true" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="15"
+ layout="topleft"
+ left="10"
+ name="created_lable"
+ text_color="white"
+ top="170"
+ width="50"
+ word_wrap="true">
+ Created:
+ </text>
+ <text
+ follows="left|top|right"
+ font="SansSerif"
+ height="15"
+ layout="topleft"
+ left="80"
+ name="created"
+ text_color="white"
+ top="170"
+ width="260"
+ word_wrap="true" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="15"
+ layout="topleft"
+ left="10"
+ name="title_lable"
+ text_color="white"
+ top="190"
+ width="50"
+ word_wrap="true">
+ Title:
+ </text>
+ <line_editor
+ follows="left|top|right"
+ font="SansSerif"
+ height="22"
+ layout="topleft"
+ left="10"
+ max_length="255"
+ name="title_editor"
+ top="210"
+ width="330" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="15"
+ layout="topleft"
+ left="10"
+ name="notes_lable"
+ text_color="white"
+ top="240"
+ width="90"
+ word_wrap="true">
+ My Notes:
+ </text>
+ <text_editor
+ follows="left|top|bottom|right"
+ font="SansSerif"
+ height="70"
+ hide_scrollbar="true"
+ layout="topleft"
+ left="10"
+ max_length="1000"
+ name="notes_editor"
+ top="260"
+ width="330" />
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_landmarks.xml b/indra/newview/skins/default/xui/en/panel_landmarks.xml
new file mode 100644
index 0000000000..f27b584c51
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_landmarks.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel name="Landmarks" bottom="0" height="326" left="0" width="380"
+ border="true" follows="left|top|right|bottom">
+ <inventory_panel allow_multi_select="true" border="true" bottom="0"
+ follows="left|top|right|bottom" height="326" left="0" mouse_opaque="true"
+ name="landmarks_list" width="380"/>
+ <button bottom="0" halign="center" height="16" label=">" enabled="false"
+ mouse_opaque="false" name="selector" width="20" left="0"
+ follows="right|bottom" tool_tip="View landmark properties"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_login.xml b/indra/newview/skins/default/xui/en/panel_login.xml
new file mode 100644
index 0000000000..20da8aa41e
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_login.xml
@@ -0,0 +1,221 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ follows="left|top|right|bottom"
+ height="600"
+ layout="topleft"
+ left="0"
+ name="panel_login"
+ top="600"
+ width="800">
+ <panel.string
+ name="create_account_url">
+ http://secondlife.com/registration/
+ </panel.string>
+ <panel.string
+ name="real_url">
+ http://secondlife.com/app/login/
+ </panel.string>
+ <panel.string
+ name="forgot_password_url">
+ http://secondlife.com/account/request.php
+ </panel.string>
+ <web_browser
+ border_visible="false"
+ bottom="600"
+ follows="top|left|bottom|right"
+ layout="topleft"
+ left="0"
+ name="login_html"
+ right="-1"
+ start_url="data:text/html,%3Chtml%3E%3Chead%3E%3C/head%3E%3Cbody bgcolor=%22#000000%22 text=%22ffffff%22%3E%3Ch1%3E%3Ctt%3Eloading...%3C/tt%3E%3C/h1%3E %3C/body%3E %3C/html%3E"
+ top="1" />
+ <text
+ type="string"
+ length="1"
+ follows="left|bottom"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="32"
+ name="first_name_text"
+ top="530"
+ width="120">
+ First Name:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|bottom"
+ font="SansSerif"
+ handle_edit_keys_directly="true"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ max_length="31"
+ name="first_name_edit"
+ select_on_focus="true"
+ top_pad="4"
+ width="120" />
+ <text
+ type="string"
+ length="1"
+ follows="left|bottom"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="164"
+ name="last_name_text"
+ top="530"
+ width="120">
+ Last Name:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|bottom"
+ font="SansSerif"
+ handle_edit_keys_directly="true"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ max_length="31"
+ name="last_name_edit"
+ select_on_focus="true"
+ top_pad="4"
+ width="120" />
+ <text
+ type="string"
+ length="1"
+ follows="left|bottom"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="296"
+ name="password_text"
+ top="530"
+ width="120">
+ Password:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|bottom"
+ font="SansSerif"
+ handle_edit_keys_directly="true"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ max_length="16"
+ name="password_edit"
+ select_on_focus="true"
+ top_pad="4"
+ width="120" />
+ <text
+ type="string"
+ length="1"
+ follows="left|bottom"
+ font="SansSerif"
+ height="16"
+ layout="topleft"
+ left="32"
+ name="start_location_text"
+ top="574"
+ width="95">
+ Start Location:
+ </text>
+ <combo_box
+ allow_text_entry="true"
+ control_name="LoginLocation"
+ follows="left|bottom"
+ height="18"
+ layout="topleft"
+ left_pad="2"
+ max_chars="128"
+ name="start_location_combo"
+ top_delta="0"
+ width="155">
+ <combo_box.item
+ label="My Last Location"
+ value="last" />
+ <combo_box.item
+ label="My Home"
+ value="home" />
+ <combo_box.item
+ label="&lt;Type region name&gt;"
+ value="" />
+ </combo_box>
+ <check_box
+ control_name="RememberPassword"
+ follows="left|bottom"
+ height="16"
+ label="Remember password"
+ layout="topleft"
+ left_pad="8"
+ name="remember_check"
+ top_delta="0"
+ width="138" />
+ <button
+ follows="left|bottom"
+ height="24"
+ label="Log In"
+ label_selected="Log In"
+ layout="topleft"
+ left="435"
+ name="connect_btn"
+ top="548"
+ width="120" />
+ <combo_box
+ allow_text_entry="true"
+ follows="left|bottom"
+ height="18"
+ layout="topleft"
+ left_pad="15"
+ name="server_combo"
+ top_delta="2"
+ width="120" />
+ <text
+ type="string"
+ length="1"
+ follows="right|bottom"
+ halign="right"
+ height="16"
+ hover="true"
+ hover_color="0.2 0.45 0.72 1"
+ layout="topleft"
+ left="-210"
+ name="create_new_account_text"
+ top="539"
+ width="200">
+ Sign up for account
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="right|bottom"
+ halign="right"
+ height="16"
+ hover="true"
+ hover_color="0.2 0.45 0.72 1"
+ layout="topleft"
+ left_delta="0"
+ name="forgot_password_text"
+ top_pad="4"
+ width="200">
+ Forgot your name or password?
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="right|bottom"
+ halign="right"
+ height="16"
+ hover="true"
+ hover_color="0.2 0.45 0.72 1"
+ layout="topleft"
+ left="-310"
+ name="channel_text"
+ top="579"
+ width="300">
+ [VERSION]
+ </text>
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
new file mode 100644
index 0000000000..fa1abaa595
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ background_opaque="true"
+ background_visible="true"
+ bg_opaque_color="0.25 0.25 0.25 1"
+ follows="left|top|right"
+ height="60"
+ layout="topleft"
+ name="navigation_bar"
+ width="600">
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="20"
+ image_disabled="navbar_bg_button.tga"
+ image_disabled_selected="navbar_bg_button.tga"
+ image_overlay="navbar_back.tga"
+ image_selected="navbar_bg_button.tga"
+ image_unselected="navbar_bg_button.tga"
+ layout="topleft"
+ left="5"
+ name="back_btn"
+ picture_style="true"
+ tool_tip="Go back to previous location"
+ top="8"
+ width="20" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="20"
+ image_disabled="navbar_bg_button.tga"
+ image_disabled_selected="navbar_bg_button.tga"
+ image_overlay="navbar_forward.tga"
+ image_selected="navbar_bg_button.tga"
+ image_unselected="navbar_bg_button.tga"
+ layout="topleft"
+ left_pad="2"
+ name="forward_btn"
+ picture_style="true"
+ tool_tip="Go forward one location"
+ top_delta="0"
+ width="20" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="20"
+ image_disabled="navbar_bg_button.tga"
+ image_disabled_selected="navbar_bg_button.tga"
+ image_overlay="navbar_home.tga"
+ image_selected="navbar_bg_button.tga"
+ image_unselected="navbar_bg_button.tga"
+ layout="topleft"
+ left_pad="5"
+ name="home_btn"
+ picture_style="true"
+ tool_tip="Teleport to your home location"
+ top_delta="0"
+ width="20" />
+ <location_input
+ follows="left|right|top"
+ halign="right"
+ height="20"
+ label="Location"
+ layout="topleft"
+ left_pad="5"
+ max_chars="254"
+ mouse_opaque="false"
+ name="location_combo"
+ top_delta="0"
+ width="320">
+ </location_input>
+ <button
+ follows="right|top"
+ height="20"
+ image_disabled="navbar_bg_center.tga"
+ image_disabled_selected="navbar_bg_center.tga"
+ image_hover_selected="navbar_bg_center.tga"
+ image_hover_unselected="navbar_bg_center.tga"
+ image_selected="navbar_bg_center.tga"
+ image_unselected="navbar_bg_center.tga"
+ layout="topleft"
+ left_pad="5"
+ mouse_opaque="false"
+ name="search_bg"
+ picture_style="true"
+ top_delta="0"
+ width="168" />
+ <line_editor
+ bevel_style="none"
+ border_style="line"
+ commit_on_focus_lost="false"
+ follows="right|top"
+ halign="right"
+ height="18"
+ label="Search"
+ layout="topleft"
+ left_delta="0"
+ mouse_opaque="false"
+ name="search_input"
+ tool_tip="Search"
+ top_delta="1"
+ width="152" />
+ <button
+ follows="right|top"
+ height="16"
+ image_disabled="status_search_btn.png"
+ image_disabled_selected="status_search_btn_pressed.png"
+ image_selected="status_search_btn_pressed.png"
+ image_unselected="status_search_btn.png"
+ layout="topleft"
+ left_delta="152"
+ name="search_btn"
+ picture_style="true"
+ scale_image="false"
+ tool_tip="Search"
+ top_delta="1"
+ width="16" />
+ <button
+ follows="right|top"
+ font="SansSerifSmall"
+ height="20"
+ image_disabled="navbar_bg_button.tga"
+ image_disabled_selected="navbar_bg_button.tga"
+ image_overlay="navbar_help.tga"
+ image_selected="navbar_bg_button.tga"
+ image_unselected="navbar_bg_button.tga"
+ layout="topleft"
+ left_pad="5"
+ name="help_btn"
+ picture_style="true"
+ tool_tip="Help"
+ top_delta="-2"
+ width="20" />
+ <favorites_bar
+ follows="left|right|top"
+ height="25"
+ layout="topleft"
+ left="5"
+ name="favorite"
+ top="32"
+ width="590" />
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_nearby_chat.xml b/indra/newview/skins/default/xui/en/panel_nearby_chat.xml
new file mode 100644
index 0000000000..50a78e1c71
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_nearby_chat.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- All our XML is utf-8 encoded. -->
+
+<panel
+ name="nearby_chat" visible="true" width="250" height="480" background_opaque="false"
+ background_visible="true" bevel_style="in" follows="left|top" bg_alpha_color="0.3 0.3 0.3 1.0">
+ <panel bottom="380" width="250" height="30" background_visible="true" background_opaque="false" bg_alpha_color="0.0 0.0 0.0 1.0" name="chat_caption">
+ <text
+ width="140" left="25" height="20" follows="left|right|top"
+ font="SansSerifBigBold" text_color="white" word_wrap="true"
+ mouse_opaque="true" name="sender_name" >NEARBY CHAT </text>
+ <icon top="25" left="180"
+ width="20" height="20" follows="top|right"
+ color="1 1 1 1" enabled="true" image_name="icn_voice-groupfocus.tga"
+ mouse_opaque="true" name="nearby_speakers_btn"/>
+ <icon top="25" left="205"
+ width="20" height="20" follows="top|right"
+ color="1 1 1 1" enabled="true" image_name="inv_item_landmark_visited.tga"
+ mouse_opaque="true" name="tearoff_btn"/>
+ <icon top="22" left="230"
+ width="15" height="15" follows="top|right"
+ color="1 1 1 1" enabled="true" image_name="closebox.tga"
+ name="close_btn"/>
+ </panel>
+ <chat_history_view bottom="0" width="250" height="320" follows="left|right|top|bottom" name="chat_scroll" />
+</panel>
+
diff --git a/indra/newview/skins/default/xui/en/panel_notes.xml b/indra/newview/skins/default/xui/en/panel_notes.xml
new file mode 100644
index 0000000000..767432a522
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_notes.xml
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ follows="top|left|right|bottom"
+ background_visible="true"
+ bevel_style="in"
+ bg_alpha_color="0.5 0.5 0.5 1"
+ height="705"
+ label="Notes and Privacy"
+ layout="topleft"
+ left="10"
+ name="panel_notes"
+ top="10"
+ width="355">
+ <scroll_container
+ left="1" width="354" height="690" follows="left|top|right|bottom"
+ layout="topleft"
+ reserve_scroll_corner="false">
+ <panel
+ layout="topleft"
+ width="320"
+ height="690"
+ left="0"
+ top="0">
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerifHugeBold"
+ height="35"
+ layout="topleft"
+ left="10"
+ name="pick_title"
+ text_color="white"
+ top="10"
+ width="250"
+ word_wrap="true">
+ Private Notes
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ font.style="ITALIC"
+ height="15"
+ layout="topleft"
+ left="10"
+ name="status_message"
+ text_color="0.1 0.1 0.1 1"
+ top="50"
+ width="300">
+ Your notes about this user:
+ </text>
+ <text_editor
+ bg_focus_color="white"
+ bg_writeable_color="0.6 0.6 0.6 1"
+ follows="left|right"
+ font="SansSerif"
+ height="300"
+ hide_scrollbar="true"
+ layout="topleft"
+ left="10"
+ max_length="1000"
+ name="notes_edit"
+ text_color="black"
+ top="70"
+ width="280"
+ word_wrap="true" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerifHugeBold"
+ height="35"
+ layout="topleft"
+ left="10"
+ name="pick_title"
+ text_color="white"
+ top="410"
+ width="250"
+ word_wrap="true">
+ Private Settings
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ font.style="ITALIC"
+ height="15"
+ layout="topleft"
+ left="10"
+ name="status_message"
+ text_color="0.1 0.1 0.1 1"
+ top="435"
+ width="300">
+ This user can:
+ </text>
+ <check_box
+ enabled="false"
+ follows="left|top"
+ font="SansSerifBig"
+ height="20"
+ label="See my online status"
+ layout="topleft"
+ left="10"
+ name="status_check"
+ text_disabled_color="0.1 0.1 0.1 1"
+ text_enabled_color="white"
+ top="455"
+ width="300" />
+ <check_box
+ enabled="false"
+ follows="left|top"
+ font="SansSerifBig"
+ height="20"
+ label="See me on the map"
+ layout="topleft"
+ left="10"
+ name="map_check"
+ text_disabled_color="0.1 0.1 0.1 1"
+ text_enabled_color="white"
+ top="480"
+ width="300" />
+ <check_box
+ enabled="false"
+ follows="left|top"
+ font="SansSerifBig"
+ height="20"
+ label="Edit, delite or take my objects"
+ layout="topleft"
+ left="10"
+ name="objects_check"
+ text_disabled_color="0.1 0.1 0.1 1"
+ text_enabled_color="white"
+ top="505"
+ width="300" />
+ <panel
+ layout="topleft"
+ follows="bottom"
+ height="30"
+ left="0"
+ name="notes_buttons_panel"
+ bottom="690"
+ width="350">
+ <button
+ follows="bottom|left"
+ font="SansSerifSmallBold"
+ height="25"
+ label="Add Friend"
+ layout="topleft"
+ left="5"
+ mouse_opaque="false"
+ name="add_friend"
+ top="0"
+ width="75" />
+ <button
+ follows="bottom|left"
+ font="SansSerifSmallBold"
+ height="25"
+ label="IM"
+ layout="topleft"
+ left_pad="5"
+ name="im"
+ top_delta="0"
+ width="40" />
+ <button
+ follows="bottom|left"
+ font="SansSerifSmallBold"
+ height="25"
+ label="Call"
+ layout="topleft"
+ left_pad="5"
+ name="call"
+ top_delta="0"
+ width="50"
+ enabled="false"/>
+ <button
+ follows="bottom|left"
+ font="SansSerifSmallBold"
+ height="25"
+ label="Teleport"
+ layout="topleft"
+ left_pad="5"
+ name="teleport"
+ top_delta="0"
+ width="65" />
+ <button
+ follows="bottom|left"
+ font="SansSerifSmallBold"
+ height="25"
+ label="Share"
+ layout="topleft"
+ left_pad="15"
+ name="share"
+ top_delta="0"
+ width="50"
+ enabled="false"/>
+ </panel>
+</panel>
+ </scroll_container>
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_notifications_channel.xml b/indra/newview/skins/default/xui/en/panel_notifications_channel.xml
new file mode 100644
index 0000000000..c67ae41677
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_notifications_channel.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ height="100"
+ layout="topleft"
+ name="notifications_panel"
+ width="100">
+ <layout_stack
+ follows="left|right|top|bottom"
+ height="78"
+ layout="topleft"
+ left="0"
+ name="stack1"
+ orientation="horizontal"
+ top="20"
+ width="100">
+ <scroll_list
+ draw_heading="true"
+ follows="left|right|top|bottom"
+ height="78"
+ layout="topleft"
+ left="0"
+ name="notifications_list"
+ sort_ascending="false"
+ sort_column="2"
+ top="-78"
+ user_resize="true"
+ width="100">
+ <scroll_list.columns
+ label="Name"
+ name="name"
+ width="100" />
+ <scroll_list.columns
+ label="Content"
+ name="content"
+ width="150" />
+ <scroll_list.columns
+ label="Date"
+ name="date"
+ width="150" />
+ </scroll_list>
+ <scroll_list
+ draw_heading="true"
+ follows="left|right|top|bottom"
+ height="78"
+ layout="topleft"
+ left="0"
+ name="notification_rejects_list"
+ sort_ascending="false"
+ sort_column="2"
+ top="-78"
+ user_resize="true"
+ width="100">
+ <scroll_list.columns
+ label="Name"
+ name="name"
+ width="100" />
+ <scroll_list.columns
+ label="Content"
+ name="content"
+ width="150" />
+ <scroll_list.columns
+ label="Date"
+ name="date"
+ width="150" />
+ </scroll_list>
+ </layout_stack>
+ <button
+ follows="left|right|top"
+ height="20"
+ is_toggle="true"
+ layout="topleft"
+ left_delta="0"
+ name="header"
+ picture_style="true"
+ top_delta="-20"
+ width="100" />
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_people.xml b/indra/newview/skins/default/xui/en/panel_people.xml
new file mode 100644
index 0000000000..f53e06494f
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_people.xml
@@ -0,0 +1,443 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ layout="topleft"
+ top="0" left="0" width="355" height="465"
+ follows="left|top|right|bottom"
+ background_visible="true" bg_alpha_color="0.3 0.3 0.3 1"
+ label="People" name="people_panel"
+>
+ <search_editor
+ layout="topleft"
+ top="3" left="10" width="335" height="16"
+ follows="left|top|right"
+ max_length="300"
+ label="Filter" name="filter_input"
+ font="SansSerif" text_color="black"
+ />
+ <tab_container
+ layout="topleft"
+ top="30" left="10" width="335" height="400"
+ follows="left|top|right|bottom"
+ name="tabs"
+ tab_position="top"
+ bg_alpha_color="0.7 0.7 0.1 1"
+ >
+ <panel
+ layout="topleft"
+ height="390" width="332"
+ follows="left|top|right|bottom"
+ background_visible="true" bevel_style="bright" bg_alpha_color="0.7 0.7 0.7 1"
+ label="Nearby" name="nearby_panel"
+ >
+ <avatar_list
+ layout="topleft"
+ top="2" left="0" width="332" height="357"
+ follows="left|top|right|bottom"
+ name="avatar_list"
+ />
+ <panel
+ layout="topleft"
+ bottom="390" left="0" width="333" height="30"
+ follows="left|right|bottom"
+ background_visible="true" bevel_style="bright" bg_alpha_color="black"
+ label="bottom_panel" name="bottom_panel"
+ >
+ <button
+ name="gear_btn"
+ enabled="false"
+ layout="topleft"
+ top="9" left="305" width="16" height="16"
+ follows="bottom|right"
+ font="SansSerifBigBold"
+ image_hover_selected="gear.tga"
+ image_selected="gear.tga"
+ image_unselected="gear.tga"
+ picture_style="true"
+ />
+ </panel>
+ </panel>
+ <panel
+ layout="topleft"
+ height="390" width="332"
+ follows="left|top|right|bottom"
+ background_visible="true" bevel_style="bright" bg_alpha_color="0.7 0.7 0.7 1"
+ label="Friends" name="friends_panel"
+ >
+ <avatar_list
+ layout="topleft"
+ top="2" left="0" width="332" height="357"
+ follows="left|top|right|bottom"
+ name="avatar_list"
+ />
+ <panel
+ layout="topleft"
+ bottom="390" left="0" width="333" height="30"
+ follows="left|right|bottom"
+ background_visible="true" bevel_style="in" bg_alpha_color="black"
+ label="bottom_panel" name="bottom_panel"
+ >
+ <button
+ name="add_btn"
+ layout="topleft"
+ top="9" left="10" width="16" height="16"
+ follows="bottom|left"
+ font="SansSerifBigBold"
+ image_hover_selected="add_btn.tga"
+ image_selected="add_btn.tga"
+ image_unselected="add_btn.tga" picture_style="true"
+ />
+ <button
+ name="del_btn"
+ layout="topleft"
+ top_delta="0" left_pad="24" width="16" height="16"
+ follows="bottom|left"
+ font="SansSerifBigBold"
+ image_hover_selected="del_btn.tga"
+ image_selected="del_btn.tga"
+ image_unselected="del_btn.tga"
+ picture_style="true"
+ />
+ <button
+ name="gear_btn"
+ enabled="false"
+ layout="topleft"
+ top_delta="0" left_pad="239" width="16" height="16"
+ follows="bottom|right"
+ font="SansSerifBigBold"
+ image_hover_selected="gear.tga"
+ image_selected="gear.tga"
+ image_unselected="gear.tga"
+ picture_style="true"
+ />
+ </panel>
+ </panel>
+ <panel
+ layout="topleft"
+ height="390" width="332"
+ follows="left|top|right|bottom"
+ background_visible="true" bevel_style="bright" bg_alpha_color="0.7 0.7 0.7 1"
+ label="Groups" name="groups_panel"
+ >
+ <group_list
+ layout="topleft"
+ top="2" left="0" width="332" height="357"
+ follows="left|top|right|bottom"
+ name="group_list"
+ />
+ <panel
+ layout="topleft"
+ bottom="390" left="0" width="333" height="30"
+ follows="left|right|bottom"
+ background_visible="true" bevel_style="in" bg_alpha_color="black"
+ label="bottom_panel" name="bottom_panel"
+ >
+ <button
+ name="plus_btn"
+ layout="topleft"
+ top="9" left="10" width="16" height="16"
+ follows="bottom|left"
+ font="SansSerifBigBold"
+ image_hover_selected="add_btn.tga"
+ image_selected="add_btn.tga"
+ image_unselected="add_btn.tga"
+ picture_style="true"
+ />
+ <button
+ name="minus_btn"
+ layout="topleft"
+ top_delta="0" left_pad="24" width="16" height="16"
+ follows="bottom|left"
+ font="SansSerifBigBold"
+ image_hover_selected="del_btn.tga"
+ image_selected="del_btn.tga"
+ image_unselected="del_btn.tga"
+ picture_style="true"
+ />
+ <button
+ name="activate_btn"
+ layout="topleft"
+ top_delta="0" left_pad="24" width="16" height="16"
+ follows="bottom|left"
+ font="SansSerifBigBold"
+ image_hover_selected="activate_btn.tga"
+ image_selected="activate_btn.tga"
+ image_unselected="activate_btn.tga"
+ picture_style="true"
+ />
+ <button
+ name="gear_btn"
+ enabled="false"
+ layout="topleft"
+ top_delta="0" left="305" width="16" height="16"
+ follows="bottom|right"
+ font="SansSerifBigBold"
+ image_hover_selected="gear.tga"
+ image_selected="gear.tga"
+ image_unselected="gear.tga"
+ picture_style="true"
+ />
+ </panel>
+ </panel>
+ <panel
+ layout="topleft"
+ height="390" width="332"
+ follows="left|top|right|bottom"
+ background_visible="true" bevel_style="bright" bg_alpha_color="0.7 0.7 0.7 1"
+ label="Recent" name="recent_panel"
+ >
+ <avatar_list
+ layout="topleft"
+ top="2" left="0" width="332" height="357"
+ follows="left|top|right|bottom"
+ name="avatar_list"
+ />
+ <panel
+ layout="topleft"
+ bottom="390" left="0" width="333" height="30"
+ follows="left|right|bottom"
+ background_visible="true" bevel_style="in" bg_alpha_color="black"
+ label="bottom_panel" name="bottom_panel"
+ >
+ <button
+ name="gear_btn"
+ enabled="false"
+ layout="topleft"
+ top="9" left="305" width="16" height="16"
+ follows="bottom|right"
+ font="SansSerifBigBold"
+ image_hover_selected="gear.tga"
+ image_selected="gear.tga"
+ image_unselected="gear.tga"
+ picture_style="true"
+ />
+ </panel>
+ </panel>
+ </tab_container>
+
+ <layout_stack
+ name="button_bar"
+ follows="left|right|bottom"
+ bottom="6"
+ left="6"
+ width="335"
+ height="27"
+ orientation="horizontal"
+ animate="false"
+ border_size="0">
+ <layout_panel
+ name="view_profile_btn_panel"
+ border="false"
+ bottom="0"
+ default_tab_group="1"
+ follows="left|top|right"
+ height="25"
+ left="0"
+ min_width="85"
+ width="85"
+ visible="true"
+ >
+ <button
+ label="View Profile"
+ name="view_profile_btn"
+ layout="topleft"
+ width="85" height="25"
+ follows="top|left|right"
+ font="SansSerifSmallBold"
+ />
+ </layout_panel>
+ <layout_panel
+ name="add_friend_btn_panel"
+ border="false"
+ bottom="0"
+ default_tab_group="1"
+ follows="left|top|right"
+ height="25"
+ left="0"
+ min_width="85"
+ width="85"
+ visible="true"
+ >
+ <button
+ label="Add Friend"
+ name="add_friend_btn"
+ layout="topleft"
+ width="85" height="25"
+ follows="top|left|right"
+ font="SansSerifSmallBold"
+ />
+ </layout_panel>
+ <layout_panel
+ name="group_info_btn_panel"
+ border="false"
+ bottom="0"
+ default_tab_group="1"
+ follows="left|top|right"
+ height="25"
+ left="0"
+ min_width="80"
+ width="80"
+ visible="true"
+ >
+ <button
+ label="Group Info"
+ name="group_info_btn"
+ layout="topleft"
+ width="80" height="25"
+ follows="top|left|right"
+ font="SansSerifSmallBold"
+ />
+ </layout_panel>
+ <layout_panel name="chat_btn_panel"
+ border="false"
+ bottom="0"
+ default_tab_group="1"
+ follows="left|top|right"
+ height="25"
+ left="0"
+ min_width="45"
+ width="45"
+ visible="true"
+ >
+ <button
+ label="Chat"
+ name="chat_btn"
+ layout="topleft"
+ width="45" height="25"
+ follows="top|left|right"
+ font="SansSerifSmallBold"
+ />
+ </layout_panel>
+ <layout_panel
+ name="im_btn_panel"
+ border="false"
+ bottom="0"
+ default_tab_group="1"
+ follows="left|top|right"
+ height="25"
+ left="0"
+ min_width="35"
+ width="35"
+ visible="true"
+ >
+ <button
+ label="IM"
+ name="im_btn"
+ layout="topleft"
+ width="35" height="25"
+ follows="top|left|right"
+ font="SansSerifSmallBold"
+ />
+ </layout_panel>
+ <layout_panel
+ name="call_btn_panel"
+ border="false"
+ bottom="0"
+ default_tab_group="1"
+ follows="left|top|right"
+ height="25"
+ left="0"
+ min_width="40"
+ width="40"
+ visible="false"
+ >
+ <button
+ label="Call"
+ name="call_btn"
+ enabled="false"
+ layout="topleft"
+ width="40" height="25"
+ follows="top|left|right"
+ font="SansSerifSmallBold"
+ />
+ </layout_panel>
+ <layout_panel
+ name="teleport_btn_panel"
+ border="false"
+ bottom="0"
+ default_tab_group="1"
+ follows="left|top|right"
+ height="25"
+ left="0"
+ min_width="65"
+ width="65"
+ >
+ <button
+ label="Teleport"
+ name="teleport_btn"
+ width="65"
+ height="25"
+ layout="topleft"
+ follows="left|top|right"
+ font="SansSerifSmallBold"
+ />
+ </layout_panel>
+ <layout_panel
+ name="share_btn_panel"
+ enabled="false"
+ border="false"
+ bottom="0"
+ default_tab_group="1"
+ follows="left|top|right"
+ height="25"
+ left="0"
+ min_width="50"
+ width="50"
+ visible="false"
+ >
+ <button
+ label="Share"
+ name="share_btn"
+ enabled="false"
+ layout="topleft"
+ width="50"
+ height="25"
+ follows="top|left|right"
+ font="SansSerifSmallBold"
+ />
+ </layout_panel>
+ <layout_panel
+ name="more_btn_panel"
+ border="false"
+ bottom="0"
+ default_tab_group="1"
+ follows="left|top|right"
+ height="25"
+ left="0"
+ min_width="40"
+ width="40"
+ visible="true"
+ >
+ <button
+ label="&gt;&gt;"
+ name="more_btn"
+ enabled="false"
+ layout="topleft"
+ width="40"
+ height="25"
+ follows="top|right"
+ font="SansSerifSmallBold"
+ />
+ </layout_panel>
+ </layout_stack>
+ <string name="no_people">
+ No people
+ </string>
+ <string name="no_one_near">
+ No-one near
+ </string>
+ <string name="no_friends">
+ No friends
+ </string>
+ <panel
+ layout="topleft"
+ name="panel_profile_view"
+ class="panel_profile_view"
+ filename="panel_profile_view.xml"
+ top="0"
+ left="5"
+ width="345"
+ height="465"
+ follows="left|right|top|bottom"
+ visible="false"
+ />
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_pick_info.xml b/indra/newview/skins/default/xui/en/panel_pick_info.xml
new file mode 100644
index 0000000000..fa04ba7f15
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_pick_info.xml
@@ -0,0 +1,184 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ background_visible="true"
+ bevel_style="in"
+ bg_alpha_color="0.2 0.2 0.2 1"
+ height="640"
+ layout="topleft"
+ left="0"
+ name="panel_pick_info"
+ top="0"
+ width="355">
+ <button
+ follows="top|left"
+ height="20"
+ image_overlay="navbar_back.tga"
+ image_selected="navbar_bg_button.tga"
+ image_unselected="navbar_bg_button.tga"
+ layout="topleft"
+ left="10"
+ name="back_btn"
+ picture_style="true"
+ top="5"
+ width="20" />
+ <text
+ type="string"
+ length="1"
+ follows="top"
+ font="SansSerifHugeBold"
+ height="15"
+ layout="topleft"
+ left="40"
+ name="title"
+ text_color="white"
+ top="0"
+ width="150">
+ Pick Info
+ </text>
+ <panel
+ background_visible="true"
+ bg_alpha_color="0.5 0.5 0.5 1"
+ follows="left|right|top|bottom"
+ height="570"
+ layout="topleft"
+ left="10"
+ right="-10"
+ top="30">
+ <texture_picker
+ enabled="false"
+ follows="left|top|right"
+ height="150"
+ layout="topleft"
+ left="10"
+ name="pick_snapshot"
+ right="-10"
+ top="10" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="Name:">
+ Name:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="pick_name"
+ right="-10"
+ text_color="white"
+ word_wrap="true">
+ [name]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="description_label"
+ v_pad="15"
+ valign="center">
+ Description:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="40"
+ layout="topleft"
+ left="10"
+ name="pick_desc"
+ right="-10"
+ text_color="white"
+ v_pad="15"
+ valign="center"
+ word_wrap="true">
+ [description]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="description_label"
+ v_pad="15"
+ valign="bottom">
+ Location:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="30"
+ layout="topleft"
+ left="10"
+ name="pick_location"
+ text_color="white"
+ v_pad="15"
+ valign="center">
+ [loading...]
+ </text>
+ </panel>
+ <panel
+ follows="left|right|bottom"
+ height="30"
+ layout="topleft"
+ left="10"
+ name="buttons"
+ right="-10"
+ top_pad="2">
+ <button
+ follows="bottom|left"
+ font="SansSerifSmallBold"
+ height="25"
+ label="Edit"
+ layout="topleft"
+ left="10"
+ name="edit_btn"
+ top="3"
+ width="50" />
+ <button
+ enabled="false"
+ follows="bottom|left"
+ font="SansSerifSmallBold"
+ height="25"
+ label="Teleport"
+ layout="topleft"
+ left="65"
+ name="teleport_btn"
+ top="3"
+ width="70" />
+ <button
+ enabled="false"
+ follows="bottom|left"
+ font="SansSerifSmallBold"
+ height="25"
+ label="Show on Map"
+ layout="topleft"
+ left="140"
+ name="show_on_map_btn"
+ top="3"
+ width="90" />
+ <button
+ enabled="false"
+ follows="bottom|right"
+ font="SansSerifSmallBold"
+ height="25"
+ label="Verb"
+ layout="topleft"
+ left="270"
+ name="verb_btn"
+ top="3"
+ width="50" />
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_picks.xml b/indra/newview/skins/default/xui/en/panel_picks.xml
new file mode 100644
index 0000000000..95055f43dc
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_picks.xml
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ background_visible="true"
+ bevel_style="in"
+ bg_alpha_color="0.5 0.5 0.5 1"
+ height="690"
+ label="Picks"
+ layout="topleft"
+ left="0"
+ name="panel_picks"
+ top="0"
+ width="355">
+ <text
+ type="string"
+ length="1"
+ follows="top|left|right"
+ font="SansSerifHugeBold"
+ height="55"
+ layout="topleft"
+ left="10"
+ name="pick_title"
+ text_color="white"
+ top="10"
+ width="330"
+ word_wrap="true">
+ [NAME]&apos;s favorite places in Second Life...
+ </text>
+ <!-- below is a special title shown for the Agent on the "Picks" tab-->
+ <text
+ type="string"
+ length="1"
+ follows="top"
+ font="SansSerifHugeBold"
+ height="55"
+ layout="topleft"
+ left="10"
+ name="pick_title_agent"
+ text_color="white"
+ top="10"
+ visible="false"
+ width="330"
+ word_wrap="true">
+ Tell everyone about your favorite Second Life places...
+ </text>
+ <scroll_container
+ follows="left|top|right|bottom"
+ height="550"
+ layout="topleft"
+ left="5"
+ reserve_scroll_corner="true"
+ width="345">
+ <panel
+ background_visible="true"
+ bevel_style="in"
+ bg_alpha_color="0.6 0.6 0.6 1"
+ follows="left|top|right|bottom"
+ height="600"
+ layout="topleft"
+ left="0"
+ name="back_panel"
+ top="0"
+ width="325" />
+ </scroll_container>
+ <panel
+ background_visible="true"
+ bevel_style="in"
+ bg_alpha_color="black"
+ enabled="false"
+ follows="left|right|bottom"
+ height="25"
+ label="bottom_panel"
+ layout="topleft"
+ left="5"
+ name="edit_panel"
+ visible="false"
+ width="345">
+ <button
+ enabled="false"
+ follows="bottom|left"
+ font="SansSerifBigBold"
+ height="16"
+ image_hover_selected="gear.tga"
+ image_selected="gear.tga"
+ image_unselected="gear.tga"
+ layout="topleft"
+ left="5"
+ name="gear_menu_btn"
+ picture_style="true"
+ top="5"
+ width="16" />
+ <button
+ follows="bottom|left"
+ font="SansSerifBigBold"
+ height="16"
+ image_disabled="add_btn.tga"
+ image_disabled_selected="add_btn.tga"
+ image_hover_selected="add_btn.tga"
+ image_selected="add_btn.tga"
+ image_unselected="add_btn.tga"
+ layout="topleft"
+ left="35"
+ name="new_btn"
+ picture_style="true"
+ tool_tip="Create New Pick at Current Location"
+ top="5"
+ width="16" />
+ <button
+ follows="bottom|right"
+ font="SansSerifBigBold"
+ height="16"
+ image_disabled="del_btn.tga"
+ image_disabled_selected="del_btn.tga"
+ image_hover_selected="del_btn.tga"
+ image_selected="del_btn.tga"
+ image_unselected="del_btn.tga"
+ layout="topleft"
+ name="trash_btn"
+ picture_style="true"
+ right="-10"
+ top="5"
+ width="16" />
+ </panel>
+ <panel
+ follows="left|right"
+ height="25"
+ layout="topleft"
+ left="0"
+ name="buttons_cucks"
+ top_pad="10"
+ width="345">
+ <button
+ follows="bottom|left"
+ font="SansSerifSmallBold"
+ height="25"
+ label="Info"
+ layout="topleft"
+ left="10"
+ name="info_btn"
+ top="0"
+ width="50" />
+ <button
+ follows="bottom|left"
+ font="SansSerifSmallBold"
+ height="25"
+ label="Teleport"
+ layout="topleft"
+ left="65"
+ name="teleport_btn"
+ top="0"
+ width="70" />
+ <button
+ follows="bottom|left"
+ font="SansSerifSmallBold"
+ height="25"
+ label="Show on Map"
+ layout="topleft"
+ left="140"
+ name="show_on_map_btn"
+ top="0"
+ width="90" />
+ <button
+ enabled="false"
+ follows="bottom|right"
+ font="SansSerifSmallBold"
+ height="25"
+ label="Verb"
+ layout="topleft"
+ left="270"
+ name="verb_btn"
+ top="0"
+ width="50" />
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_places.xml b/indra/newview/skins/default/xui/en/panel_places.xml
new file mode 100644
index 0000000000..66bb38b45e
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_places.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ background_visible="true"
+ bg_alpha_color="0.3 0.3 0.3 1"
+ follows="left|top|right|bottom"
+ height="400"
+ label="Places"
+ layout="topleft"
+ left="0"
+ min_height="350"
+ min_width="240"
+ name="places panel"
+ top="400"
+ width="355">
+ <search_editor
+ follows="left|top|right"
+ height="16"
+ label="Filter"
+ layout="topleft"
+ left="10"
+ name="Filter"
+ top="4"
+ width="335" />
+ <tab_container
+ follows="left|top|right|bottom"
+ height="326"
+ layout="topleft"
+ left_delta="0"
+ name="Places Tabs"
+ tab_position="top"
+ top_pad="19"
+ width="335" />
+ <panel
+ class="panel_landmark_info"
+ filename="panel_landmark_info.xml"
+ follows="left|top|right|bottom"
+ height="675"
+ layout="topleft"
+ left="0"
+ name="panel_landmark_info"
+ top="-310"
+ visible="false"
+ width="355" />
+ <button
+ follows="bottom|left"
+ font="SansSerifSmallBold"
+ height="25"
+ label="TELEPORT"
+ layout="topleft"
+ left_delta="10"
+ name="teleport_btn"
+ top_pad="5"
+ width="90" />
+ <button
+ follows="bottom|left"
+ font="SansSerifSmallBold"
+ height="25"
+ label="SHOW ON MAP"
+ layout="topleft"
+ left_pad="5"
+ name="map_btn"
+ top_delta="0"
+ width="110" />
+ <button
+ enabled="false"
+ follows="bottom|left"
+ font="SansSerifSmallBold"
+ height="25"
+ label="SHARE"
+ layout="topleft"
+ left_pad="5"
+ name="share_btn"
+ top_delta="0"
+ width="60" />
+ <button
+ enabled="false"
+ follows="bottom|right"
+ font="SansSerifSmallBold"
+ height="25"
+ label="▼"
+ layout="topleft"
+ left_pad="35"
+ name="overflow_btn"
+ top_delta="0"
+ width="30" />
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml
new file mode 100644
index 0000000000..bda437ab29
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml
@@ -0,0 +1,370 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="408"
+ label="Text Chat"
+ layout="topleft"
+ left="102"
+ name="chat"
+ top="1"
+ width="517">
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="12"
+ mouse_opaque="false"
+ top="10"
+ width="128">
+ Chat Font Size:
+ </text>
+ <radio_group
+ height="30"
+ layout="topleft"
+ left_pad="8"
+ control_name="ChatFontSize"
+ name="chat_font_size"
+ top_delta="0"
+ width="331">
+ <radio_item
+ height="16"
+ label="Small"
+ layout="topleft"
+ left="0"
+ name="radio"
+ top="8"
+ width="98" />
+ <radio_item
+ height="16"
+ label="Medium"
+ layout="topleft"
+ left_pad="12"
+ name="radio2"
+ top_delta="0"
+ width="98" />
+ <radio_item
+ height="16"
+ label="Large"
+ layout="topleft"
+ left_pad="12"
+ name="radio3"
+ top_delta="0"
+ width="98" />
+ </radio_group>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="12"
+ mouse_opaque="false"
+ name="text_box2"
+ top="54"
+ width="128">
+ Chat Color:
+ </text>
+ <color_swatch
+ border_color="0.45098 0.517647 0.607843 1"
+ can_apply_immediately="true"
+ control_name="UserChatColor"
+ follows="left|top"
+ height="47"
+ label="You"
+ layout="topleft"
+ left_pad="8"
+ name="user"
+ top_delta="-1"
+ width="44" />
+ <color_swatch
+ border_color="0.45098 0.517647 0.607843 1"
+ can_apply_immediately="true"
+ control_name="AgentChatColor"
+ follows="left|top"
+ height="47"
+ label="Others"
+ layout="topleft"
+ left_pad="10"
+ name="agent"
+ top_delta="0"
+ width="44" />
+ <color_swatch
+ border_color="0.45098 0.517647 0.607843 1"
+ can_apply_immediately="true"
+ color="0.6 0.6 1 1"
+ control_name="IMChatColor"
+ follows="left|top"
+ height="47"
+ label="IM"
+ label_width="60"
+ layout="topleft"
+ left_pad="10"
+ name="im"
+ top_delta="0"
+ width="44" />
+ <color_swatch
+ border_color="0.45098 0.517647 0.607843 1"
+ can_apply_immediately="true"
+ color="0.8 1 1 1"
+ control_name="SystemChatColor"
+ follows="left|top"
+ height="47"
+ label="System"
+ label_width="44"
+ layout="topleft"
+ left_pad="10"
+ name="system"
+ top_delta="0"
+ width="44" />
+ <color_swatch
+ border_color="0.45098 0.517647 0.607843 1"
+ can_apply_immediately="true"
+ color="0.82 0.82 0.99 1"
+ control_name="ScriptErrorColor"
+ follows="left|top"
+ height="47"
+ label="Errors"
+ layout="topleft"
+ left_pad="10"
+ name="script_error"
+ top_delta="0"
+ width="44" />
+ <color_swatch
+ border_color="0.45098 0.517647 0.607843 1"
+ can_apply_immediately="true"
+ color="0.7 0.9 0.7 1"
+ control_name="ObjectChatColor"
+ follows="left|top"
+ height="47"
+ label="Objects"
+ layout="topleft"
+ left="148"
+ name="objects"
+ top="103"
+ width="44" />
+ <color_swatch
+ border_color="0.45098 0.517647 0.607843 1"
+ can_apply_immediately="true"
+ color="0.7 0.9 0.7 1"
+ control_name="llOwnerSayChatColor"
+ follows="left|top"
+ height="47"
+ label="Owner"
+ layout="topleft"
+ left_pad="10"
+ name="owner"
+ top_delta="0"
+ width="44" />
+ <color_swatch
+ border_color="0.45098 0.517647 0.607843 1"
+ can_apply_immediately="true"
+ color="0 0 0 1"
+ control_name="BackgroundChatColor"
+ follows="left|top"
+ height="47"
+ label="Bubble"
+ layout="topleft"
+ left_pad="10"
+ name="background"
+ top_delta="0"
+ width="44" />
+ <color_swatch
+ border_color="0.45098 0.517647 0.607843 1"
+ can_apply_immediately="true"
+ color="0.6 0.6 1 1"
+ control_name="HTMLLinkColor"
+ follows="left|top"
+ height="47"
+ label="URLs"
+ layout="topleft"
+ left_pad="10"
+ name="links"
+ top_delta="0"
+ width="44" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="12"
+ mouse_opaque="false"
+ name="text_box3"
+ top="168"
+ width="135">
+ Chat Console:
+ </text>
+ <spinner
+ control_name="ChatPersistTime"
+ decimal_digits="0"
+ follows="left|top"
+ height="16"
+ increment="1"
+ initial_value="10"
+ label="Fade chat after"
+ label_width="80"
+ layout="topleft"
+ left_pad="1"
+ max_val="60"
+ min_val="2"
+ name="fade_chat_time"
+ top_delta="2"
+ width="130" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_pad="4"
+ mouse_opaque="false"
+ name="text_box4"
+ top_delta="0"
+ width="80">
+ (seconds)
+ </text>
+ <spinner
+ control_name="ConsoleMaxLines"
+ decimal_digits="0"
+ follows="left|top"
+ height="16"
+ increment="1"
+ initial_value="10"
+ layout="topleft"
+ left_delta="58"
+ max_val="50"
+ min_val="1"
+ name="max_chat_count"
+ top_delta="0"
+ width="60" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_pad="5"
+ mouse_opaque="false"
+ name="text_box5"
+ top_delta="0"
+ width="60">
+ (# lines)
+ </text>
+ <slider
+ control_name="ConsoleBackgroundOpacity"
+ follows="left|top"
+ height="12"
+ increment="0.05"
+ initial_value="1"
+ label="Opacity"
+ layout="topleft"
+ left="148"
+ name="console_opacity"
+ top="193"
+ width="200" />
+ <check_box
+ control_name="ChatFullWidth"
+ height="16"
+ label="Use full screen width (Requires restart)"
+ layout="topleft"
+ left_delta="0"
+ name="chat_full_width_check"
+ top_pad="9"
+ width="239" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="12"
+ mouse_opaque="false"
+ name="text_box6"
+ top="245"
+ width="135">
+ Chat Options:
+ </text>
+ <check_box
+ control_name="CloseChatOnReturn"
+ height="16"
+ label="Close chat bar after hitting return"
+ layout="topleft"
+ left_pad="1"
+ name="close_chat_on_return_check"
+ top_delta="2"
+ width="237" />
+ <check_box
+ control_name="ArrowKeysMoveAvatar"
+ height="16"
+ label="Arrow keys always move avatar when chatting"
+ layout="topleft"
+ left_delta="0"
+ name="arrow_keys_move_avatar_check"
+ top_pad="4"
+ width="237" />
+ <check_box
+ control_name="ChatShowTimestamps"
+ height="16"
+ label="Show timestamps in Local Chat"
+ layout="topleft"
+ left_delta="0"
+ name="show_timestamps_check"
+ top_pad="4"
+ width="237" />
+ <check_box
+ control_name="ScriptErrorsAsChat"
+ height="16"
+ label="Show script errors and warnings as regular chat"
+ layout="topleft"
+ left_delta="0"
+ name="script_errors_as_chat"
+ top_pad="4"
+ width="275" />
+ <check_box
+ control_name="PlayTypingAnim"
+ height="16"
+ initial_value="true"
+ label="Play typing animation when chatting"
+ layout="topleft"
+ left_delta="0"
+ name="play_typing_animation"
+ top_pad="4"
+ width="237" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="12"
+ mouse_opaque="false"
+ name="text_box7"
+ top="359"
+ width="128">
+ Bubble Chat:
+ </text>
+ <check_box
+ control_name="UseChatBubbles"
+ height="16"
+ label="Show chat bubbles"
+ layout="topleft"
+ left_pad="8"
+ name="bubble_text_chat"
+ top_delta="1"
+ width="237" />
+ <slider
+ control_name="ChatBubbleOpacity"
+ follows="left|top"
+ height="12"
+ increment="0.05"
+ initial_value="1"
+ label="Opacity"
+ layout="topleft"
+ left_delta="0"
+ name="bubble_chat_opacity"
+ top_pad="4"
+ width="200" />
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_general.xml b/indra/newview/skins/default/xui/en/panel_preferences_general.xml
new file mode 100644
index 0000000000..b30bda3e59
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_preferences_general.xml
@@ -0,0 +1,427 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="408"
+ label="General"
+ layout="topleft"
+ left="102"
+ name="general_panel"
+ top="1"
+ width="517">
+ <combo_box
+ control_name="LoginLocation"
+ follows="left|bottom"
+ height="18"
+ layout="topleft"
+ left_delta="151"
+ name="start_location_combo"
+ top="7"
+ width="155">
+ <combo_box.item
+ label="My Last Location"
+ value="last" />
+ <combo_box.item
+ label="My Home"
+ value="home" />
+ </combo_box>
+ <check_box
+ control_name="ShowStartLocation"
+ height="16"
+ initial_value="true"
+ label="Show Start Location on Login Screen"
+ layout="topleft"
+ left_delta="0"
+ name="show_location_checkbox"
+ top_pad="3"
+ width="256" />
+ <combo_box
+ control_name="RenderName"
+ height="18"
+ layout="topleft"
+ left_delta="4"
+ name="fade_out_combobox"
+ top_pad="7"
+ width="146">
+ <combo_box.item
+ label="Never"
+ value="0" />
+ <combo_box.item
+ label="Show Temporarily"
+ value="1" />
+ <combo_box.item
+ label="Always"
+ value="2" />
+ </combo_box>
+ <check_box
+ control_name="SmallAvatarNames"
+ height="16"
+ initial_value="true"
+ label="Small Avatar Names"
+ layout="topleft"
+ left_delta="-4"
+ name="small_avatar_names_checkbox"
+ top_pad="9"
+ width="200" />
+ <check_box
+ control_name="RenderNameHideSelf"
+ height="16"
+ label="Hide My Name On My Screen"
+ layout="topleft"
+ left_delta="0"
+ name="show_my_name_checkbox"
+ top_pad="2"
+ width="200" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="group_titles_textbox"
+ top="120"
+ width="394">
+ Group Titles:
+ </text>
+ <check_box
+ control_name="RenderHideGroupTitleAll"
+ height="16"
+ label="Hide All Group Titles"
+ layout="topleft"
+ left_delta="141"
+ name="show_all_title_checkbox"
+ top_delta="0"
+ width="256" />
+ <check_box
+ control_name="RenderHideGroupTitle"
+ height="16"
+ label="Hide My Group Title"
+ layout="topleft"
+ left_delta="0"
+ name="show_my_title_checkbox"
+ top_pad="2"
+ width="256" />
+ <color_swatch
+ border_color="0.45098 0.517647 0.607843 1"
+ control_name="EffectColor"
+ follows="left|top"
+ height="48"
+ layout="topleft"
+ left_delta="2"
+ name="effect_color_swatch"
+ tool_tip="Click to open Color Picker"
+ top_pad="8"
+ width="32" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left="10"
+ name="UI Size:"
+ top="203"
+ width="128">
+ UI Size:
+ </text>
+ <spinner
+ control_name="UIScaleFactor"
+ height="16"
+ increment="0.025"
+ initial_value="1"
+ layout="topleft"
+ left_pad="16"
+ max_val="1.4"
+ min_val="0.75"
+ name="ui_scale_slider"
+ top_delta="-2"
+ width="58" />
+ <check_box
+ control_name="UIAutoScale"
+ height="16"
+ label="Use resolution independent scale"
+ layout="topleft"
+ left_delta="-3"
+ name="ui_auto_scale"
+ top_pad="3"
+ width="256" />
+ <spinner
+ control_name="AFKTimeout"
+ decimal_digits="0"
+ follows="left|top"
+ height="16"
+ increment="1"
+ initial_value="300"
+ label="Away Timeout:"
+ label_width="141"
+ layout="topleft"
+ left="10"
+ max_val="600"
+ min_val="30"
+ name="afk_timeout_spinner"
+ top="244"
+ width="202" />
+ <check_box
+ control_name="NotifyMoneyChange"
+ height="16"
+ label="Notify when Linden dollars (L$) spent or received"
+ layout="topleft"
+ left="151"
+ name="notify_money_change_checkbox"
+ top="270"
+ width="256" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="10"
+ name="maturity_desired_label"
+ top="312"
+ width="394">
+ Rating:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="141"
+ name="maturity_desired_prompt"
+ top_delta="0"
+ width="394">
+ I want to access content rated:
+ </text>
+ <combo_box
+ control_name="PreferredMaturity"
+ height="18"
+ layout="topleft"
+ left_delta="164"
+ name="maturity_desired_combobox"
+ top_delta="-2"
+ width="150">
+ <combo_box.item
+ label="PG, Mature and Adult"
+ value="42" />
+ <combo_box.item
+ label="PG and Mature"
+ value="21" />
+ <combo_box.item
+ label="PG only"
+ value="13" />
+ </combo_box>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="0"
+ name="maturity_desired_textbox"
+ top_delta="2"
+ width="150">
+ PG only
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="10"
+ name="start_location_textbox"
+ top="10"
+ width="394">
+ Start Location:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="0"
+ name="show_names_textbox"
+ top_pad="34"
+ width="394">
+ Show Names:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="0"
+ name="effects_color_textbox"
+ top_pad="110"
+ width="394">
+ Color For My Effects:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="220"
+ name="seconds_textbox"
+ top="244"
+ width="128">
+ seconds
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="18"
+ layout="topleft"
+ left="10"
+ name="crash_report_textbox"
+ top="344"
+ width="394">
+ Crash reports:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="18"
+ layout="topleft"
+ left_delta="0"
+ name="language_textbox"
+ top_pad="4"
+ width="394">
+ Language:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="18"
+ layout="topleft"
+ left_delta="293"
+ name="language_textbox2"
+ top_delta="1"
+ width="400">
+ (Requires restart for full effect)
+ </text>
+ <combo_box
+ control_name="CrashSubmitBehavior"
+ height="18"
+ layout="topleft"
+ left="153"
+ name="crash_behavior_combobox"
+ top="344"
+ width="146">
+ <combo_box.item
+ enabled="true"
+ label="Ask before sending"
+ value="Ask before sending" />
+ <combo_box.item
+ enabled="true"
+ label="Always send"
+ value="Always send" />
+ <combo_box.item
+ enabled="true"
+ label="Never send"
+ value="Never send" />
+ </combo_box>
+ <combo_box
+ allow_text_entry="true"
+ control_name="Language"
+ follows="left|bottom"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ max_chars="135"
+ name="language_combobox"
+ top_pad="4"
+ width="146">
+ <combo_box.item
+ enabled="true"
+ label="System Default"
+ value="default" />
+ <combo_box.item
+ enabled="true"
+ label="English"
+ value="en" />
+ <combo_box.item
+ enabled="true"
+ label="Dansk (Danish) - Beta"
+ value="da" />
+ <combo_box.item
+ enabled="true"
+ label="Deutsch (German) - Beta"
+ value="de" />
+ <combo_box.item
+ enabled="true"
+ label="Español (Spanish) - Beta"
+ value="es" />
+ <combo_box.item
+ enabled="true"
+ label="Français (French) - Beta"
+ value="fr" />
+ <combo_box.item
+ enabled="true"
+ label="Italiano (Italian) - Beta"
+ value="it" />
+ <combo_box.item
+ enabled="true"
+ label="Magyar (Hungarian) - Beta"
+ value="hu" />
+ <combo_box.item
+ enabled="true"
+ label="Nederlands (Dutch) - Beta"
+ value="nl" />
+ <combo_box.item
+ enabled="true"
+ label="Polski (Polish) - Beta"
+ value="pl" />
+ <combo_box.item
+ enabled="true"
+ label="Portugués (Portuguese) - Beta"
+ value="pt" />
+ <combo_box.item
+ enabled="true"
+ label="Русский (Russian) - Beta"
+ value="ru" />
+ <combo_box.item
+ enabled="true"
+ label="Türkçe (Turkish) - Beta"
+ value="tr" />
+ <combo_box.item
+ enabled="true"
+ label="Українська (Ukrainian) - Beta"
+ value="uk" />
+ <combo_box.item
+ enabled="true"
+ label="中文 (简体) (Chinese) - Beta"
+ value="zh" />
+ <combo_box.item
+ enabled="true"
+ label="日本語 (Japanese) - Beta"
+ value="ja" />
+ <combo_box.item
+ enabled="true"
+ label="한국어 (Korean) - Beta"
+ value="ko" />
+ <combo_box.item
+ enabled="true"
+ label="Test Language"
+ value="test" />
+ </combo_box>
+ <check_box
+ control_name="LanguageIsPublic"
+ height="16"
+ label="Share language with objects"
+ layout="topleft"
+ left_delta="-2"
+ name="language_is_public"
+ tool_tip="This lets in-world objects know your preferred language."
+ top_pad="2"
+ width="256" />
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
new file mode 100644
index 0000000000..8db8c8f31d
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
@@ -0,0 +1,921 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="408"
+ label="Graphics"
+ layout="topleft"
+ left="102"
+ name="Display panel"
+ top="1"
+ width="517">
+ <panel.string
+ name="resolution_format">
+ [RES_X] x [RES_Y]
+ </panel.string>
+ <panel.string
+ name="aspect_ratio_text">
+ [NUM]:[DEN]
+ </panel.string>
+ <button
+ follows="left|top"
+ height="18"
+ label="?"
+ layout="topleft"
+ left="470"
+ name="GraphicsPreferencesHelpButton"
+ top="4"
+ width="22">
+ <button.commit_callback
+ function="Pref.OpenHelp" />
+ </button>
+ <check_box
+ control_name="NotFullScreen"
+ height="16"
+ label="Run Second Life in a window"
+ layout="topleft"
+ left_delta="-460"
+ name="windowed mode"
+ top_delta="3"
+ width="100">
+ <check_box.commit_callback
+ function="Pref.OpenHelp" />
+ </check_box>
+ <text_editor
+ make_visible_control="NotFullScreen"
+ type="string"
+ length="1"
+ bg_readonly_color="0 0 0 0"
+ enabled="false"
+ follows="left|top"
+ height="20"
+ hide_border="true"
+ hide_scrollbar="true"
+ layout="topleft"
+ left_delta="0"
+ max_length="65535"
+ name="FullScreenInfo"
+ tab_stop="false"
+ top_delta="16"
+ width="350"
+ word_wrap="true">
+ If unchecked, viewer will display full-screen when logged in.
+ </text_editor>
+ <text
+ make_visible_control="NotFullScreen"
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left_delta="0"
+ name="WindowSizeLabel"
+ top_pad="7"
+ width="128">
+ Window Size:
+ </text>
+ <combo_box
+ make_visible_control="NotFullScreen"
+ height="18"
+ layout="topleft"
+ left_pad="47"
+ name="windowsize combo"
+ top_delta="-1"
+ width="150">
+ <combo_box.item
+ enabled="true"
+ label="640x480"
+ value="640 x 480" />
+ <combo_box.item
+ enabled="true"
+ label="800x600 "
+ value="800 x 600" />
+ <combo_box.item
+ enabled="true"
+ label="720x480 (NTSC)"
+ value="720 x 480" />
+ <combo_box.item
+ enabled="true"
+ label="768x576 (PAL)"
+ value="768 x 576" />
+ <combo_box.item
+ enabled="true"
+ label="1024x768"
+ value="1024 x 768" />
+ </combo_box>
+ <text
+ make_invisible_control="NotFullScreen"
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left_delta="-175"
+ name="DisplayResLabel"
+ top_delta="1"
+ width="128">
+ Display Resolution:
+ </text>
+ <combo_box
+ make_invisible_control="NotFullScreen"
+ height="18"
+ layout="topleft"
+ left_pad="47"
+ name="fullscreen combo"
+ top_delta="-1"
+ width="150" />
+ <text
+ make_invisible_control="NotFullScreen"
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left="10"
+ name="AspectRatioLabel1"
+ tool_tip="width / height"
+ top="27"
+ width="160">
+ Aspect Ratio:
+ </text>
+ <combo_box
+ make_invisible_control="NotFullScreen"
+ allow_text_entry="true"
+ height="16"
+ layout="topleft"
+ left_pad="15"
+ max_chars="100"
+ name="aspect_ratio"
+ tool_tip="width / height"
+ top_delta="0"
+ width="150">
+ <combo_box.item
+ enabled="true"
+ label="4:3 (Standard CRT)"
+ value="1.333333" />
+ <combo_box.item
+ enabled="true"
+ label="5:4 (1280x1024 LCD)"
+ value="1.25" />
+ <combo_box.item
+ enabled="true"
+ label="8:5 (Widescreen)"
+ value="1.6" />
+ <combo_box.item
+ enabled="true"
+ label="16:9 (Widescreen)"
+ value="1.7777777" />
+ <combo_box.commit_callback
+ function="setControlFalse"
+ parameter="FullScreenAutoDetectAspectRatio" />
+ </combo_box>
+ <check_box
+ make_invisible_control="NotFullScreen"
+ control_name="FullScreenAutoDetectAspectRatio"
+ height="16"
+ label="Auto-detect ratio"
+ layout="topleft"
+ left_pad="23"
+ name="aspect_auto_detect"
+ top_delta="1"
+ width="256">
+ <check_box.commit_callback
+ function="Pref.AutoDetectAspect" />
+ </check_box>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left="10"
+ name="HigherText"
+ top="73"
+ width="80">
+ Quality and
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left_delta="0"
+ name="QualityText"
+ top_pad="2"
+ width="95">
+ Performance:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left="115"
+ name="FasterText"
+ top="74"
+ width="80">
+ Faster
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left="158"
+ name="ShadersPrefText"
+ top="93"
+ width="40">
+ Low
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left_pad="7"
+ name="ShadersPrefText2"
+ top_delta="0"
+ width="40">
+ Mid
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left_pad="7"
+ name="ShadersPrefText3"
+ top_delta="0"
+ width="40">
+ High
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left_pad="7"
+ name="ShadersPrefText4"
+ top_delta="0"
+ width="40">
+ Ultra
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left="334"
+ name="HigherText2"
+ top="68"
+ width="80">
+ Higher
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left_delta="0"
+ name="QualityText2"
+ top_pad="2"
+ width="95">
+ Quality
+ </text>
+ <icon
+ color="0.12 0.12 0.12 1"
+ height="14"
+ image_name="rounded_square.tga"
+ layout="topleft"
+ left="173"
+ name="LowGraphicsDivet"
+ top="75"
+ width="2" />
+ <icon
+ color="0.12 0.12 0.12 1"
+ height="14"
+ image_name="rounded_square.tga"
+ layout="topleft"
+ left_pad="42"
+ name="MidGraphicsDivet"
+ top_delta="0"
+ width="2" />
+ <icon
+ color="0.12 0.12 0.12 1"
+ height="14"
+ image_name="rounded_square.tga"
+ layout="topleft"
+ left_pad="42"
+ name="HighGraphicsDivet"
+ top_delta="0"
+ width="2" />
+ <icon
+ color="0.12 0.12 0.12 1"
+ height="14"
+ image_name="rounded_square.tga"
+ layout="topleft"
+ left_pad="42"
+ name="UltraGraphicsDivet"
+ top_delta="0"
+ width="2" />
+ <slider
+ control_name="RenderQualityPerformance"
+ decimal_digits="0"
+ follows="left|top"
+ height="16"
+ increment="1"
+ initial_value="0"
+ layout="topleft"
+ left_delta="-140"
+ max_val="3"
+ name="QualityPerformanceSelection"
+ show_text="false"
+ top_delta="-1"
+ width="150">
+ <slider.commit_callback
+ function="Pref.QualityPerformance"/>
+ </slider>
+ <check_box
+ control_name="RenderCustomSettings"
+ height="16"
+ initial_value="true"
+ label="Custom"
+ layout="topleft"
+ left_pad="70"
+ name="CustomSettings"
+ top_delta="1"
+ width="256">
+ <check_box.commit_callback
+ function="Pref.ChangeCustom" />
+ </check_box>
+ <panel
+ make_visible_control="RenderCustomSettings"
+ border="true"
+ follows="top|left"
+ height="260"
+ label="CustomGraphics"
+ layout="topleft"
+ left="5"
+ name="CustomGraphics Panel"
+ top="115"
+ width="485">
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left_delta="5"
+ name="ShadersText"
+ top="3"
+ width="128">
+ Shaders:
+ </text>
+ <check_box
+ control_name="RenderObjectBump"
+ height="16"
+ initial_value="true"
+ label="Bump Mapping and Shiny"
+ layout="topleft"
+ left_delta="0"
+ name="BumpShiny"
+ top_pad="7"
+ width="256" />
+ <check_box
+ control_name="VertexShaderEnable"
+ height="16"
+ initial_value="true"
+ label="Basic Shaders"
+ layout="topleft"
+ left_delta="0"
+ name="BasicShaders"
+ tool_tip="Disabling this option may prevent some graphics card drivers from crashing."
+ top_pad="1"
+ width="315">
+ <check_box.commit_callback
+ function="Pref.VertexShaderEnable" />
+ </check_box>
+ <check_box
+ control_name="WindLightUseAtmosShaders"
+ height="16"
+ initial_value="true"
+ label="Atmospheric Shaders"
+ layout="topleft"
+ left_delta="0"
+ name="WindLightUseAtmosShaders"
+ top_pad="1"
+ width="256">
+ <check_box.commit_callback
+ function="Pref.VertexShaderEnable" />
+ </check_box>
+ <check_box
+ control_name="RenderWaterReflections"
+ height="16"
+ initial_value="true"
+ label="Water Reflections"
+ layout="topleft"
+ left_delta="0"
+ name="Reflections"
+ top_pad="1"
+ width="256">
+ <check_box.commit_callback
+ function="Pref.VertexShaderEnable" />
+ </check_box>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left_delta="0"
+ name="ReflectionDetailText"
+ top_pad="7"
+ width="128">
+ Reflection Detail:
+ </text>
+ <radio_group
+ control_name="RenderReflectionDetail"
+ draw_border="false"
+ height="70"
+ layout="topleft"
+ left_delta="-2"
+ name="ReflectionDetailRadio"
+ top_pad="3"
+ width="321">
+ <radio_item
+ height="16"
+ label="Terrain and Trees"
+ layout="topleft"
+ left="3"
+ name="0"
+ top="3"
+ width="315" />
+ <radio_item
+ height="16"
+ label="All Static Objects"
+ layout="topleft"
+ left_delta="0"
+ name="1"
+ top_delta="16"
+ width="315" />
+ <radio_item
+ height="16"
+ label="All Avatars and Objects"
+ layout="topleft"
+ left_delta="0"
+ name="2"
+ top_delta="16"
+ width="315" />
+ <radio_item
+ height="16"
+ label="Everything"
+ layout="topleft"
+ left_delta="0"
+ name="3"
+ top_delta="16"
+ width="315" />
+ </radio_group>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left_delta="2"
+ name="AvatarRenderingText"
+ top_pad="5"
+ width="128">
+ Avatar Rendering:
+ </text>
+ <check_box
+ control_name="RenderUseImpostors"
+ height="16"
+ initial_value="true"
+ label="Avatar Impostors"
+ layout="topleft"
+ left_delta="0"
+ name="AvatarImpostors"
+ top_pad="7"
+ width="256" />
+ <check_box
+ control_name="RenderAvatarVP"
+ height="16"
+ initial_value="true"
+ label="Hardware Skinning"
+ layout="topleft"
+ left_delta="0"
+ name="AvatarVertexProgram"
+ top_pad="1"
+ width="256">
+ <check_box.commit_callback
+ function="Pref.VertexShaderEnable" />
+ </check_box>
+ <check_box
+ control_name="RenderAvatarCloth"
+ height="16"
+ initial_value="true"
+ label="Avatar Cloth"
+ layout="topleft"
+ left_delta="0"
+ name="AvatarCloth"
+ top_pad="1"
+ width="256" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left="457"
+ name="DrawDistanceMeterText1"
+ top="3"
+ width="128">
+ m
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left_delta="6"
+ name="DrawDistanceMeterText2"
+ top_delta="0"
+ width="128">
+ m
+ </text>
+ <slider
+ control_name="RenderFarClip"
+ decimal_digits="0"
+ follows="left|top"
+ height="16"
+ increment="8"
+ initial_value="160"
+ label="Draw Distance:"
+ label_width="140"
+ layout="topleft"
+ left_delta="-248"
+ max_val="512"
+ min_val="64"
+ name="DrawDistance"
+ top_delta="0"
+ width="255">
+ <slider.commit_callback
+ function="Pref.UpdateMeterText" />
+ </slider>
+ <slider
+ control_name="RenderMaxPartCount"
+ decimal_digits="0"
+ follows="left|top"
+ height="16"
+ increment="256"
+ initial_value="4096"
+ label="Max. Particle Count:"
+ label_width="140"
+ layout="topleft"
+ left_delta="0"
+ max_val="8192"
+ name="MaxParticleCount"
+ top_pad="4"
+ width="262" />
+ <slider
+ control_name="RenderGlowResolutionPow"
+ decimal_digits="0"
+ follows="left|top"
+ height="16"
+ increment="1"
+ initial_value="8"
+ label="Post Process Quality:"
+ label_width="140"
+ layout="topleft"
+ left_delta="0"
+ max_val="9"
+ min_val="8"
+ name="RenderPostProcess"
+ show_text="false"
+ top_pad="4"
+ width="223">
+ <slider.commit_callback
+ function="Pref.UpdateSliderText"
+ parameter="PostProcessText" />
+ </slider>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left_delta="0"
+ name="MeshDetailText"
+ top_pad="5"
+ width="128">
+ Mesh Detail:
+ </text>
+ <slider
+ control_name="RenderVolumeLODFactor"
+ follows="left|top"
+ height="16"
+ increment="0.125"
+ initial_value="160"
+ label=" Objects:"
+ label_width="140"
+ layout="topleft"
+ left_delta="0"
+ max_val="2"
+ name="ObjectMeshDetail"
+ show_text="false"
+ top_pad="6"
+ width="223">
+ <slider.commit_callback
+ function="Pref.UpdateSliderText"
+ parameter="ObjectMeshDetailText" />
+ </slider>
+ <slider
+ control_name="RenderFlexTimeFactor"
+ follows="left|top"
+ height="16"
+ initial_value="160"
+ label=" Flexiprims:"
+ label_width="140"
+ layout="topleft"
+ left_delta="0"
+ name="FlexibleMeshDetail"
+ show_text="false"
+ top_pad="4"
+ width="223">
+ <slider.commit_callback
+ function="Pref.UpdateSliderText"
+ parameter="FlexibleMeshDetailText" />
+ </slider>
+ <slider
+ control_name="RenderTreeLODFactor"
+ follows="left|top"
+ height="16"
+ increment="0.125"
+ initial_value="160"
+ label=" Trees:"
+ label_width="140"
+ layout="topleft"
+ left_delta="0"
+ name="TreeMeshDetail"
+ show_text="false"
+ top_pad="4"
+ width="223">
+ <slider.commit_callback
+ function="Pref.UpdateSliderText"
+ parameter="TreeMeshDetailText" />
+ </slider>
+ <slider
+ control_name="RenderAvatarLODFactor"
+ follows="left|top"
+ height="16"
+ increment="0.125"
+ initial_value="160"
+ label=" Avatars:"
+ label_width="140"
+ layout="topleft"
+ left_delta="0"
+ name="AvatarMeshDetail"
+ show_text="false"
+ top_pad="4"
+ width="223">
+ <slider.commit_callback
+ function="Pref.UpdateSliderText"
+ parameter="AvatarMeshDetailText" />
+ </slider>
+ <slider
+ control_name="RenderTerrainLODFactor"
+ follows="left|top"
+ height="16"
+ increment="0.125"
+ initial_value="160"
+ label=" Terrain:"
+ label_width="140"
+ layout="topleft"
+ left_delta="0"
+ max_val="2"
+ min_val="1"
+ name="TerrainMeshDetail"
+ show_text="false"
+ top_pad="4"
+ width="223">
+ <slider.commit_callback
+ function="Pref.UpdateSliderText"
+ parameter="TerrainMeshDetailText" />
+ </slider>
+ <slider
+ control_name="WLSkyDetail"
+ enabled_control="WindLightUseAtmosShaders"
+ decimal_digits="0"
+ follows="left|top"
+ height="16"
+ increment="8"
+ initial_value="160"
+ label=" Sky:"
+ label_width="140"
+ layout="topleft"
+ left_delta="0"
+ max_val="128"
+ min_val="16"
+ name="SkyMeshDetail"
+ show_text="false"
+ top_pad="4"
+ width="223">
+ <slider.commit_callback
+ function="Pref.UpdateSliderText"
+ parameter="SkyMeshDetailText" />
+ </slider>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left="444"
+ name="PostProcessText"
+ top="305"
+ width="128">
+ Low
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left_delta="0"
+ name="ObjectMeshDetailText"
+ top_pad="26"
+ width="128">
+ Low
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left_delta="0"
+ name="FlexibleMeshDetailText"
+ top_pad="8"
+ width="128">
+ Low
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left_delta="0"
+ name="TreeMeshDetailText"
+ top_pad="8"
+ width="128">
+ Low
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left_delta="0"
+ name="AvatarMeshDetailText"
+ top_pad="8"
+ width="128">
+ Low
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left_delta="0"
+ name="TerrainMeshDetailText"
+ top_pad="8"
+ width="128">
+ Low
+ </text>
+ <text
+ enabled_control="WindLightUseAtmosShaders"
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left_delta="0"
+ name="SkyMeshDetailText"
+ top_pad="8"
+ width="128">
+ Low
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left_delta="-230"
+ name="LightingDetailText"
+ top_pad="8"
+ width="128">
+ Lighting Detail:
+ </text>
+ <radio_group
+ control_name="RenderLightingDetail"
+ draw_border="false"
+ height="38"
+ layout="topleft"
+ left_delta="0"
+ name="LightingDetailRadio"
+ top_pad="5"
+ width="321">
+ <radio_item
+ height="16"
+ label="Sun and moon only"
+ layout="topleft"
+ left="3"
+ name="SunMoon"
+ top="3"
+ width="156" />
+ <radio_item
+ height="16"
+ label="Nearby local lights"
+ layout="topleft"
+ left_delta="0"
+ name="LocalLights"
+ top_delta="16"
+ width="156" />
+ </radio_group>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left="360"
+ name="TerrainDetailText"
+ top="465"
+ width="128">
+ Terrain Detail:
+ </text>
+ <radio_group
+ control_name="RenderTerrainDetail"
+ draw_border="false"
+ height="38"
+ layout="topleft"
+ left_delta="0"
+ name="TerrainDetailRadio"
+ top_pad="5"
+ width="321">
+ <radio_item
+ height="16"
+ label="Low"
+ layout="topleft"
+ left="3"
+ name="0"
+ top="3"
+ width="315" />
+ <radio_item
+ height="16"
+ label="High"
+ layout="topleft"
+ left_delta="0"
+ name="2"
+ top_delta="16"
+ width="315" />
+ </radio_group>
+ </panel>
+ <button
+ height="20"
+ label="Recommended Settings"
+ layout="topleft"
+ left="130"
+ name="Defaults"
+ top="380"
+ width="170">
+ <button.commit_callback
+ function="Pref.HardwareDefaults" />
+ </button>
+ <button
+ height="20"
+ label="Hardware Options"
+ label_selected="Hardware Options"
+ layout="topleft"
+ left_pad="10"
+ name="GraphicsHardwareButton"
+ top_delta="0"
+ width="170">
+ <button.commit_callback
+ function="Pref.HardwareSettings" />
+ </button>
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_profile.xml b/indra/newview/skins/default/xui/en/panel_profile.xml
new file mode 100644
index 0000000000..a4363d5858
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_profile.xml
@@ -0,0 +1,574 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ background_visible="true"
+ bevel_style="in"
+ bg_alpha_color="0.5 0.5 0.5 1"
+ follows="left|top|right|bottom"
+ height="705"
+ label="Profile"
+ layout="topleft"
+ left="10"
+ mouse_opaque="false"
+ name="panel_profile"
+ top="10"
+ width="355">
+ <panel.string
+ name="CaptionTextAcctInfo">
+ [ACCTTYPE] [PAYMENTINFO] [AGEVERIFICATION]
+ </panel.string>
+ <panel.string
+ name="AcctTypeResident">
+ Resident.
+ </panel.string>
+ <panel.string
+ name="AcctTypeTrial">
+ Trial
+ </panel.string>
+ <panel.string
+ name="AcctTypeCharterMember">
+ Charter Member
+ </panel.string>
+ <panel.string
+ name="AcctTypeEmployee">
+ Linden Lab Employee
+ </panel.string>
+ <panel.string
+ name="PaymentInfoUsed">
+ Payment Info Used
+ </panel.string>
+ <panel.string
+ name="PaymentInfoOnFile">
+ Payment Info On File
+ </panel.string>
+ <panel.string
+ name="NoPaymentInfoOnFile">
+ No Payment Info On File
+ </panel.string>
+ <panel.string
+ name="AgeVerified">
+ Age-verified
+ </panel.string>
+ <panel.string
+ name="NotAgeVerified">
+ Not Age-verified
+ </panel.string>
+ <scroll_container
+ follows="left|top|right|bottom"
+ height="690"
+ layout="topleft"
+ left="1"
+ name="profile_scroll"
+ width="354">
+ <panel
+ height="710"
+ layout="topleft"
+ left="0"
+ top="0"
+ width="320">
+ <panel
+ follows="left|top"
+ height="120"
+ layout="topleft"
+ left="9"
+ name="lifes_images_panel"
+ top_pad="15"
+ width="250">
+ <panel
+ follows="left|top"
+ height="120"
+ layout="topleft"
+ left="0"
+ name="second_life_image_panel"
+ top="0"
+ width="125">
+ <text
+ type="string"
+ follows="left|top|right|bottom"
+ font="SansSerifBold"
+ height="20"
+ layout="topleft"
+ left="0"
+ name="first_life_photo_title_text"
+ text_color="white"
+ top="0"
+ width="125">
+ Second Life photo:
+ </text>
+ <texture_picker
+ allow_no_texture="true"
+ default_image_name="None"
+ enabled="false"
+ follows="top|left"
+ height="105"
+ layout="topleft"
+ left="0"
+ name="2nd_life_pic"
+ top_pad="5"
+ width="105" />
+ </panel>
+ <panel
+ follows="left|top"
+ height="120"
+ layout="topleft"
+ left_pad="1"
+ name="first_life_image_panel"
+ top="0"
+ width="125">
+ <text
+ type="string"
+ follows="left|top|right|bottom"
+ font="SansSerifBold"
+ height="20"
+ layout="topleft"
+ left="0"
+ name="second_life_photo_title_text"
+ text_color="white"
+ top="0"
+ width="125">
+ First Life photo:
+ </text>
+ <texture_picker
+ allow_no_texture="true"
+ default_image_name="None"
+ enabled="false"
+ follows="top|left"
+ height="105"
+ layout="topleft"
+ left="0"
+ name="1st_life_pic"
+ top_pad="5"
+ width="105" />
+ </panel>
+ </panel>
+ <panel
+ follows="left|top|right"
+ height="30"
+ layout="topleft"
+ left="0"
+ name="status_panel"
+ top="135"
+ width="300">
+ <text
+ follows="left|top"
+ font="SansSerifBold"
+ font.style="ITALIC"
+ height="15"
+ layout="topleft"
+ left="9"
+ name="online_status"
+ text_color="green"
+ width="100" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerifBold"
+ font.style="ITALIC"
+ height="15"
+ layout="topleft"
+ left="9"
+ name="status_message"
+ text_color="0.1 0.1 0.1 1"
+ width="300">
+ <!--TBD-->
+ </text>
+ </panel>
+ <panel
+ follows="left|top|right"
+ height="80"
+ layout="topleft"
+ left="0"
+ name="status_me_panel"
+ top="135"
+ width="300">
+ <text
+ type="string"
+ follows="left|top"
+ font="SansSerifBold"
+ height="15"
+ layout="topleft"
+ left="9"
+ name="online_me_status_text"
+ text_color="white"
+ width="100">
+ Status:
+ </text>
+ <combo_box
+ font="SansSerifBold"
+ height="18"
+ layout="topleft"
+ left="10"
+ name="status_combo"
+ width="150">
+ <combo_box.item
+ label="Online"
+ value="online" />
+ <combo_box.item
+ label="Away"
+ value="away" />
+ <combo_box.item
+ label="Busy"
+ value="busy" />
+ </combo_box>
+ <text
+ type="string"
+ follows="left|top"
+ font="SansSerifBold"
+ height="15"
+ layout="topleft"
+ left="9"
+ name="status_me_message_text"
+ text_color="white"
+ width="300">
+ What&apos;re you up to?
+ </text>
+ <line_editor
+ type="string"
+ border_style="line"
+ border_thickness="1"
+ follows="left|top|right"
+ font="SansSerifBold"
+ font.style="ITALIC"
+ height="20"
+ layout="topleft"
+ left="9"
+ name="status_me_message_edit"
+ select_on_focus="true"
+ text_color="0.5 0.5 0.5 1"
+ width="300">
+ Type a message about what you&apos;re doing in SL!
+ </line_editor>
+ </panel>
+ <text
+ type="string"
+
+ follows="left|top"
+ font="SansSerifBold"
+ height="15"
+ layout="topleft"
+ left="9"
+ name="title_sl_descr_text"
+ text_color="white"
+ top_pad="10"
+ width="290">
+ Second Life description:
+ </text>
+ <text
+ type="string"
+ follows="left|top|right"
+ font="SansSerif"
+ height="45"
+ layout="topleft"
+ left="9"
+ name="sl_description_edit"
+ text_color="0.1 0.1 0.1 1"
+ width="290"
+ word_wrap="true">
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum.
+ </text>
+ <text
+ type="string"
+ follows="left|top"
+ font="SansSerifBold"
+ height="15"
+ layout="topleft"
+ left="9"
+ name="title_fl_descr_text"
+ text_color="white"
+ top_pad="10"
+ width="290">
+ First Life description:
+ </text>
+ <text
+ type="string"
+ follows="left|top|right"
+ font="SansSerif"
+ height="45"
+ layout="topleft"
+ left="9"
+ name="fl_description_edit"
+ text_color="0.1 0.1 0.1 1"
+ width="290"
+ word_wrap="true">
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum.
+ </text>
+ <text
+ type="string"
+ follows="left|top"
+ font="SansSerifBold"
+ height="15"
+ layout="topleft"
+ left="9"
+ name="title_groups_text"
+ text_color="white"
+ top_pad="10"
+ width="290">
+ Second Life groups:
+ </text>
+ <text
+ type="string"
+ follows="left|top|right"
+ font="SansSerif"
+ height="45"
+ layout="topleft"
+ left="9"
+ name="sl_groups"
+ text_color="0.1 0.1 0.1 1"
+ width="290"
+ word_wrap="true">
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum.
+ </text>
+ <text
+ type="string"
+ follows="left|top"
+ font="SansSerifBold"
+ height="15"
+ layout="topleft"
+ left="9"
+ name="title_homepage_text"
+ text_color="white"
+ top_pad="10"
+ width="100">
+ Homepage:
+ </text>
+ <text
+ type="string"
+ follows="left|top|right"
+ font="SansSerif"
+ font.style="UNDERLINE"
+ height="15"
+ layout="topleft"
+ left="9"
+ name="homepage_edit"
+ text_color="0.2 0.2 1 1"
+ width="290">
+ TODO
+ </text>
+ <text
+ type="string"
+ follows="left|top"
+ font="SansSerifBold"
+ height="15"
+ layout="topleft"
+ left="9"
+ name="title_member_text"
+ text_color="white"
+ top_pad="10"
+ width="100">
+ Member since:
+ </text>
+ <text
+ type="string"
+ follows="left|top|right"
+ font="SansSerif"
+ height="15"
+ layout="topleft"
+ left="9"
+ name="register_date"
+ text_color="0.1 0.1 0.1 1"
+ width="290"
+ word_wrap="true">
+ 05/31/1976
+ </text>
+ <text
+ type="string"
+ follows="left|top"
+ font="SansSerifBold"
+ height="15"
+ layout="topleft"
+ left="9"
+ name="title_acc_status_text"
+ text_color="white"
+ top_pad="10"
+ width="100">
+ Account status:
+ </text>
+ <text
+ type="string"
+ follows="left|top|right"
+ font="SansSerif"
+ height="30"
+ layout="topleft"
+ left="9"
+ name="acc_status_text"
+ text_color="0.1 0.1 0.1 1"
+ width="290"
+ word_wrap="true">
+ Resident. No payment info on file.
+ </text>
+ <panel
+ follows="left|top|right"
+ height="15"
+ layout="topleft"
+ left="9"
+ name="account_actions_panel"
+ width="335">
+ <text
+ type="string"
+ follows="left|top"
+ font="SansSerif"
+ font.style="UNDERLINE"
+ height="15"
+ layout="topleft"
+ left="0"
+ name="my_account_link"
+ text_color="0.2 0.2 1 1"
+ top="0"
+ width="65">
+ Update
+ </text>
+ <text
+ type="string"
+ follows="left|top"
+ font="SansSerif"
+ font.style="UNDERLINE"
+ height="15"
+ layout="topleft"
+ left="70"
+ name="my_account_link"
+ text_color="0.2 0.2 1 1"
+ top="0"
+ width="80">
+ My Account
+ </text>
+ </panel>
+ <text
+ type="string"
+ follows="left|top"
+ font="SansSerifBold"
+ height="15"
+ layout="topleft"
+ name="title_partner_text"
+ text_color="white"
+ top_pad="10"
+ width="100">
+ Partner:
+ </text>
+ <panel
+ follows="left|top|right"
+ height="15"
+ layout="topleft"
+ left="9"
+ name="partner_data_panel"
+ width="335">
+ <text
+ type="string"
+ follows="left|top|right"
+ font="SansSerif"
+ height="15"
+ layout="topleft"
+ left="0"
+ name="partner_text"
+ text_color="0.1 0.1 0.1 1"
+ top="0"
+ width="290"
+ word_wrap="true">
+ [FIRST] [LAST]
+ </text>
+ <text
+ type="string"
+ follows="top|right"
+ font="SansSerif"
+ font.style="UNDERLINE"
+ halign="right"
+ height="15"
+ layout="topleft"
+ left="270"
+ name="partner_edit_link"
+ text_color="0.2 0.2 1 1"
+ top="0"
+ width="40">
+ Edit
+ </text>
+ </panel>
+ <panel
+ follows="left|top"
+ height="30"
+ layout="topleft"
+ name="profile_buttons_panel"
+ width="350">
+ <button
+ follows="bottom|left"
+ font="SansSerifSmallBold"
+ height="25"
+ label="Add Friend"
+ layout="topleft"
+ left="5"
+ mouse_opaque="false"
+ name="add_friend"
+ top="0"
+ width="75" />
+ <button
+ follows="bottom|left"
+ font="SansSerifSmallBold"
+ height="25"
+ label="IM"
+ layout="topleft"
+ left_pad="5"
+ name="im"
+ top_delta="0"
+ width="40" />
+ <button
+ enabled="false"
+ follows="bottom|left"
+ font="SansSerifSmallBold"
+ height="25"
+ label="Call"
+ layout="topleft"
+ left_pad="5"
+ name="call"
+ top_delta="0"
+ width="50" />
+ <button
+ follows="bottom|left"
+ font="SansSerifSmallBold"
+ height="25"
+ label="Teleport"
+ layout="topleft"
+ left_pad="5"
+ name="teleport"
+ top_delta="0"
+ width="65" />
+ <button
+ enabled="false"
+ follows="bottom|left"
+ font="SansSerifSmallBold"
+ height="25"
+ label="Share"
+ layout="topleft"
+ left_pad="15"
+ name="share"
+ top_delta="0"
+ width="50" />
+ </panel>
+ <panel
+ follows="left|top"
+ height="30"
+ layout="topleft"
+ name="profile_me_buttons_panel"
+ visible="false"
+ width="350">
+ <button
+ follows="bottom|left"
+ font="SansSerifSmallBold"
+ height="25"
+ label="Edit Profile"
+ layout="topleft"
+ left="0"
+ name="edit_profile_btn"
+ top="0"
+ width="105" />
+ <button
+ follows="bottom|left"
+ font="SansSerifSmallBold"
+ height="25"
+ label="Edit Appearance"
+ layout="topleft"
+ left_pad="15"
+ name="edit_appearance_btn"
+ top_delta="0"
+ width="130" />
+ </panel>
+ </panel>
+ </scroll_container>
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_profile_view.xml b/indra/newview/skins/default/xui/en/panel_profile_view.xml
new file mode 100644
index 0000000000..fa919776a7
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_profile_view.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ background_visible="true"
+ bg_alpha_color="0.3 0.3 0.3 1"
+ follows="left|top|right|bottom"
+ height="660"
+ label="Me"
+ layout="topleft"
+ left="0"
+ name="panel_target_profile"
+ top="0"
+ width="355">
+ <button
+ layout="topleft"
+ name="back"
+ left="0"
+ top="5"
+ width="20"
+ height="20"
+ label=""
+ follows="top|left"
+ image_selected="navbar_bg_button.tga"
+ image_unselected="navbar_bg_button.tga"
+ image_overlay="navbar_back.tga"/>
+ <text
+ layout="topleft"
+ top="0"
+ left="30"
+ width="150"
+ height="20"
+ font="SansSerifHugeBold"
+ text_color="white"
+ follows="top|left"
+ mouse_opaque="true"
+ name="user_name">(Loading...)</text>
+ <tab_container
+ follows="left|top|right|bottom"
+ height="600"
+ layout="topleft"
+ left="0"
+ name="profile_tabs"
+ tab_position="top"
+ top="35"
+ width="355">
+ <panel
+ class="panel_profile"
+ filename="panel_profile.xml"
+ label="Profile"
+ layout="topleft"
+ name="panel_profile"/>
+ <panel
+ class="panel_picks"
+ filename="panel_picks.xml"
+ label="Picks"
+ layout="topleft"
+ name="panel_picks"/>
+ <panel
+ class="panel_notes"
+ filename="panel_notes.xml"
+ label="Notes"
+ layout="topleft"
+ name="panel_notes"/>
+ </tab_container>
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_progress.xml b/indra/newview/skins/default/xui/en/panel_progress.xml
new file mode 100644
index 0000000000..6139bae874
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_progress.xml
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ follows="left|bottom|right|top"
+ height="768"
+ layout="topleft"
+ left="0"
+ name="login_progress_panel"
+ top="768"
+ width="1024">
+ <layout_stack
+ follows="left|right|top|bottom"
+ height="768"
+ layout="topleft"
+ left="0"
+ name="stack1"
+ orientation="horizontal"
+ top="0"
+ width="1024">
+ <layout_panel
+ layout="topleft"
+ min_width="10"
+ name="panel1"
+ user_resize="false"
+ width="150" />
+ <layout_panel
+ height="768"
+ layout="topleft"
+ min_width="640"
+ name="panel2"
+ user_resize="false"
+ width="640">
+ <layout_stack
+ follows="left|right|top|bottom"
+ height="768"
+ layout="topleft"
+ left="0"
+ name="stack2"
+ top="0"
+ width="640">
+ <layout_panel
+ height="200"
+ layout="topleft"
+ min_height="10"
+ name="panel3"
+ width="640" />
+ <layout_panel
+ auto_resize="false"
+ height="250"
+ layout="topleft"
+ min_height="250"
+ name="panel4"
+ width="640">
+ <icon
+ color="LoginProgressBoxCenterColor"
+ follows="left|right|bottom|top"
+ height="250"
+ image_name="rounded_square.tga"
+ layout="topleft"
+ left="0"
+ top="0"
+ width="640" />
+ <text
+ follows="left|right|top"
+ font="SansSerif"
+ font_shadow="hard"
+ halign="center"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="title_text"
+ text_color="LoginProgressBoxTextColor"
+ top_delta="50"
+ width="640" />
+ <text
+ follows="left|right|top"
+ font="SansSerif"
+ font_shadow="hard"
+ halign="center"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="progress_text"
+ text_color="LoginProgressBoxTextColor"
+ top_pad="5"
+ width="640" />
+ <progress_bar
+ bottom="115"
+ color_bar="1 1 1 0.96"
+ follows="left|right|top"
+ height="16"
+ layout="topleft"
+ left="45"
+ name="login_progress_bar"
+ right="-45" />
+ <text
+ follows="left|right|top|bottom"
+ font="SansSerif"
+ font_shadow="hard"
+ halign="center"
+ height="100"
+ layout="topleft"
+ left="20"
+ line_spacing="8"
+ name="message_text"
+ text_color="LoginProgressBoxTextColor"
+ top="145"
+ width="600" />
+ </layout_panel>
+ <layout_panel
+ height="200"
+ layout="topleft"
+ min_width="10"
+ name="panel5"
+ width="640" />
+ </layout_stack>
+ </layout_panel>
+ <layout_panel
+ layout="topleft"
+ min_width="10"
+ name="panel6"
+ user_resize="false"
+ width="150" />
+ </layout_stack>
+ <button
+ follows="right|bottom"
+ height="22"
+ layout="topleft"
+ left="-86"
+ name="cancel_btn"
+ picture_style="true"
+ top="730"
+ width="70" />
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_region_covenant.xml b/indra/newview/skins/default/xui/en/panel_region_covenant.xml
new file mode 100644
index 0000000000..7bd548d464
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_region_covenant.xml
@@ -0,0 +1,328 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ border="true"
+ follows="top|left"
+ height="320"
+ label="Covenant"
+ layout="topleft"
+ left="0"
+ name="Covenant"
+ top="320"
+ width="480">
+ <panel.string
+ name="can_resell">
+ Purchased land in this region may be resold.
+ </panel.string>
+ <panel.string
+ name="can_not_resell">
+ Purchased land in this region may not be resold.
+ </panel.string>
+ <panel.string
+ name="can_change">
+ Purchased land in this region may be joined or subdivided.
+ </panel.string>
+ <panel.string
+ name="can_not_change">
+ Purchased land in this region may not be joined or subdivided.
+ </panel.string>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left="5"
+ mouse_opaque="false"
+ name="estate_section_lbl"
+ top="5"
+ width="100">
+ Estate
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ mouse_opaque="false"
+ name="estate_name_lbl"
+ top_pad="5"
+ width="100">
+ Name:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="10"
+ mouse_opaque="false"
+ name="estate_name_text"
+ top_delta="0"
+ width="150">
+ mainland
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ mouse_opaque="false"
+ name="estate_owner_lbl"
+ top_pad="5"
+ width="100">
+ Owner:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="10"
+ mouse_opaque="false"
+ name="estate_owner_text"
+ top_delta="0"
+ width="150">
+ (none)
+ </text>
+
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ mouse_opaque="false"
+ name="estate_cov_lbl"
+ top_pad="5"
+ width="100">
+ Covenant:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="10"
+ mouse_opaque="false"
+ name="covenant_timestamp_text"
+ top_delta="0"
+ width="308">
+ Last Modified Wed Dec 31 16:00:00 1969
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="5"
+ name="covenant_help"
+ top_delta="-2"
+ width="18" />
+
+ <text_editor
+ type="string"
+ length="1"
+ enabled="false"
+ follows="left|top"
+ height="100"
+ layout="topleft"
+ left="110"
+ max_length="65535"
+ name="covenant_editor"
+ top_delta="30"
+ width="340"
+ word_wrap="true">
+ There is no Covenant provided for this Estate.
+ </text_editor>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="Reset"
+ layout="topleft"
+ left_delta="250"
+ name="reset_covenant"
+ top_pad="5"
+ width="90" />
+
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="120"
+ name="covenant_help_text"
+ top_pad="10"
+ width="460">
+ Changes to the covenant will show on all parcels in the estate.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_delta="0"
+ name="covenant_instructions"
+ top_pad="5"
+ width="465">
+ Drag and drop a notecard to change the Covenant for this Estate.
+ </text>
+
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left="5"
+ mouse_opaque="false"
+ name="region_section_lbl"
+ top_pad="5"
+ width="100">
+ Region
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ mouse_opaque="false"
+ name="region_name_lbl"
+ top_pad="5"
+ width="100">
+ Name:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="10"
+ mouse_opaque="false"
+ name="region_name_text"
+ top_delta="0"
+ width="150">
+ leyla
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ mouse_opaque="false"
+ name="region_landtype_lbl"
+ top_pad="5"
+ width="100">
+ Type:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="10"
+ mouse_opaque="false"
+ name="region_landtype_text"
+ top_delta="0"
+ width="150">
+ Mainland / Homestead
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ mouse_opaque="false"
+ name="region_maturity_lbl"
+ top_pad="5"
+ width="100">
+ Rating:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="10"
+ mouse_opaque="false"
+ name="region_maturity_text"
+ top_delta="0"
+ width="150">
+ Adult
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ mouse_opaque="false"
+ name="resellable_lbl"
+ top_pad="5"
+ width="100">
+ Resale:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="10"
+ mouse_opaque="false"
+ name="resellable_clause"
+ top_delta="0"
+ width="330">
+ Land in this region may not be resold.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ mouse_opaque="false"
+ name="changeable_lbl"
+ top_pad="5"
+ width="100">
+ Subdivide:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="30"
+ layout="topleft"
+ left_pad="10"
+ mouse_opaque="false"
+ name="changeable_clause"
+ top_delta="0"
+ width="330">
+ Land in this region may not be joined/subdivided.
+ </text>
+
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_region_debug.xml b/indra/newview/skins/default/xui/en/panel_region_debug.xml
new file mode 100644
index 0000000000..22dc0aa0d0
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_region_debug.xml
@@ -0,0 +1,272 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ border="true"
+ follows="top|left"
+ height="320"
+ label="Debug"
+ layout="topleft"
+ left="0"
+ name="Debug"
+ top="320"
+ width="480">
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="region_text_lbl"
+ top="10"
+ width="100">
+ Region:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left_delta="50"
+ name="region_text"
+ top_delta="0"
+ width="400">
+ unknown
+ </text>
+ <check_box
+ height="20"
+ label="Disable Scripts"
+ layout="topleft"
+ left="10"
+ name="disable_scripts_check"
+ tool_tip="Disable all scripts in this region"
+ top="30"
+ width="80" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="70"
+ name="disable_scripts_help"
+ top_delta="2"
+ width="18" />
+ <check_box
+ height="20"
+ label="Disable Collisions"
+ layout="topleft"
+ left="10"
+ name="disable_collisions_check"
+ tool_tip="Disable non-avatar collisions in this region"
+ top="50"
+ width="80" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="70"
+ name="disable_collisions_help"
+ top_delta="2"
+ width="18" />
+ <check_box
+ height="20"
+ label="Disable Physics"
+ layout="topleft"
+ left="10"
+ name="disable_physics_check"
+ tool_tip="Disable all physics in this region"
+ top="70"
+ width="80" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="70"
+ name="disable_physics_help"
+ top_delta="2"
+ width="18" />
+ <button
+ enabled="false"
+ follows="left|top"
+ height="20"
+ label="Apply"
+ layout="topleft"
+ left="60"
+ name="apply_btn"
+ top="100"
+ width="100" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="objret_text_lbl"
+ top="150"
+ width="90">
+ Object Return
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="30"
+ name="resident_text_lbl"
+ top="175"
+ width="60">
+ Resident:
+ </text>
+ <line_editor
+ type="string"
+ length="1"
+ border_style="line"
+ border_thickness="1"
+ enabled="false"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_delta="60"
+ mouse_opaque="false"
+ name="target_avatar_name"
+ top_delta="-2"
+ width="180">
+ (none)
+ </line_editor>
+ <button
+ follows="left|top"
+ height="20"
+ label="Choose..."
+ layout="topleft"
+ left_pad="10"
+ name="choose_avatar_btn"
+ top_delta="0"
+ width="80" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="30"
+ name="options_text_lbl"
+ top="198"
+ width="60">
+ Options:
+ </text>
+ <check_box
+ height="20"
+ label="Return only those objects with scripts"
+ layout="topleft"
+ left_delta="60"
+ name="return_scripts"
+ tool_tip="Return only objects which have scripts."
+ top_delta="0"
+ width="80" />
+ <check_box
+ height="20"
+ label="Return only those objects on someone else&apos;s land"
+ layout="topleft"
+ left_delta="0"
+ name="return_other_land"
+ tool_tip="Return only objects which are on land belonging to someone else"
+ top_delta="20"
+ width="80" />
+ <check_box
+ height="20"
+ label="Return objects in every region of this estate"
+ layout="topleft"
+ left_delta="0"
+ name="return_estate_wide"
+ tool_tip="Return objects in all of the regions that make up this estate"
+ top_delta="20"
+ width="80" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Return"
+ layout="topleft"
+ left="30"
+ name="return_btn"
+ top="263"
+ width="80" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Get Top Colliders..."
+ layout="topleft"
+ left="10"
+ name="top_colliders_btn"
+ tool_tip="List of objects experiencing the most potential collisions"
+ top="313"
+ width="150" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="10"
+ name="top_colliders_help"
+ top_delta="2"
+ width="18" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Get Top Scripts..."
+ layout="topleft"
+ left="10"
+ name="top_scripts_btn"
+ tool_tip="List of objects spending the most time running scripts"
+ top_pad="5"
+ width="150" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="10"
+ name="top_scripts_help"
+ top_delta="2"
+ width="18" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Restart Region"
+ layout="topleft"
+ left="10"
+ name="restart_btn"
+ tool_tip="Give 2 minute countdown and restart region"
+ top_pad="5"
+ width="130" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="10"
+ name="restart_help"
+ top_delta="2"
+ width="18" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Delay Restart"
+ layout="topleft"
+ left="10"
+ name="cancel_restart_btn"
+ tool_tip="Delay region restart by one hour"
+ top_pad="5"
+ width="130" />
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_region_estate.xml b/indra/newview/skins/default/xui/en/panel_region_estate.xml
new file mode 100644
index 0000000000..95e1456c6e
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_region_estate.xml
@@ -0,0 +1,519 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ border="true"
+ follows="top|left"
+ height="320"
+ label="Estate"
+ layout="topleft"
+ left="0"
+ name="Estate"
+ top="320"
+ width="480">
+ <panel.string
+ name="email_unsupported">
+ Feature unsupported
+ </panel.string>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="32"
+ layout="topleft"
+ left="10"
+ name="estate_help_text"
+ top="14"
+ width="300">
+ Changes to settings on this tab will affect all
+regions in the estate.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="estate_text"
+ top_pad="2"
+ width="80">
+ Estate:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="estate_name"
+ top_delta="16"
+ width="150">
+ (unknown)
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="owner_text"
+ top_pad="2"
+ width="80">
+ Owner:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="estate_owner"
+ top_delta="16"
+ width="150">
+ (unknown)
+ </text>
+ <view_border
+ bevel_style="in"
+ follows="top|left"
+ height="290"
+ layout="topleft"
+ left_delta="-4"
+ top_pad="5"
+ width="250" />
+ <check_box
+ height="20"
+ label="Use Global Time"
+ layout="topleft"
+ left="12"
+ name="use_global_time_check"
+ top="132"
+ width="200" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="20"
+ name="use_global_time_help"
+ top_delta="2"
+ width="18" />
+ <check_box
+ height="20"
+ label="Fixed Sun"
+ layout="topleft"
+ left="12"
+ name="fixed_sun_check"
+ top="152"
+ width="100" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="120"
+ name="fixed_sun_help"
+ top_delta="2"
+ width="18" />
+ <icon
+ height="20"
+ image_name="icon_day_cycle.tga"
+ layout="topleft"
+ left="47"
+ name="daycycle"
+ top="177"
+ width="165" />
+ <slider
+ follows="left|top"
+ height="20"
+ increment="0.001"
+ label="Phase"
+ layout="topleft"
+ left="12"
+ max_val="30"
+ min_val="6"
+ name="sun_hour_slider"
+ show_text="false"
+ top="202"
+ width="200" />
+ <check_box
+ height="20"
+ label="Allow Public Access"
+ layout="topleft"
+ left_delta="0"
+ name="externally_visible_check"
+ top_pad="6"
+ width="200" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="20"
+ name="externally_visible_help"
+ top_delta="2"
+ width="18" />
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ height="16"
+ layout="topleft"
+ left="32"
+ name="Only Allow"
+ top="250"
+ width="278">
+ Restrict Access To:
+ </text>
+ <check_box
+ follows="top|left"
+ height="16"
+ label="Residents with payment info on file"
+ layout="topleft"
+ left_delta="0"
+ name="limit_payment"
+ tool_tip="Ban unidentified residents."
+ top_pad="2"
+ width="278" />
+ <check_box
+ follows="top|left"
+ height="16"
+ label="Age-verified adults"
+ layout="topleft"
+ left_delta="0"
+ name="limit_age_verified"
+ tool_tip="Ban residents who have not verified their age. See support.secondlife.com for more information."
+ top_pad="2"
+ width="278" />
+ <check_box
+ height="20"
+ label="Allow Voice Chat"
+ layout="topleft"
+ left="12"
+ name="voice_chat_check"
+ top="304"
+ width="200" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="20"
+ name="voice_chat_help"
+ top_delta="2"
+ width="18" />
+ <check_box
+ height="20"
+ label="Allow Direct Teleport"
+ layout="topleft"
+ left="12"
+ name="allow_direct_teleport"
+ top_pad="4"
+ width="80" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="140"
+ name="allow_direct_teleport_help"
+ top_delta="2"
+ width="18" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="abuse_email_text"
+ top_pad="5"
+ width="180">
+ Abuse email address:
+ </text>
+ <line_editor
+ follows="top|left"
+ height="19"
+ layout="topleft"
+ left="15"
+ name="abuse_email_address"
+ top_pad="5"
+ width="205" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="12"
+ name="abuse_email_address_help"
+ top_dekta="0"
+ width="18" />
+ <button
+ enabled="false"
+ follows="left|top"
+ height="20"
+ label="Apply"
+ layout="topleft"
+ name="apply_btn"
+ right="250"
+ top_pad="4"
+ width="90" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Send Message To Estate..."
+ layout="topleft"
+ left="8"
+ name="message_estate_btn"
+ top_pad="5"
+ width="250" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Kick User from Estate..."
+ layout="topleft"
+ left="8"
+ name="kick_user_from_estate_btn"
+ top_pad="5"
+ width="250" />
+
+ <text
+ type="string"
+ length="1"
+ bottom="34"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ name="estate_manager_label"
+ right="470"
+ width="200">
+ Estate Managers:
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="182"
+ name="estate_manager_help"
+ top_delta="-1"
+ width="18" />
+ <view_border
+ bevel_style="none"
+ follows="top|left"
+ height="60"
+ layout="topleft"
+ right="470"
+ top_pad="5"
+ width="200" />
+ <name_list
+ follows="left|top"
+ height="60"
+ layout="topleft"
+ left_delta="0"
+ multi_select="true"
+ name="estate_manager_name_list"
+ top_delta="0"
+ width="200" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Remove..."
+ layout="topleft"
+ name="remove_estate_manager_btn"
+ right="470"
+ top_pad="5"
+ width="90" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Add..."
+ layout="topleft"
+ left_delta="-110"
+ name="add_estate_manager_btn"
+ top_delta="0"
+ width="90" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="allow_resident_label"
+ top_pad="5"
+ width="200">
+ Allowed Residents:
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="182"
+ name="allow_resident_help"
+ top_delta="-1"
+ width="18" />
+ <view_border
+ bevel_style="none"
+ follows="top|left"
+ height="60"
+ layout="topleft"
+ right="470"
+ top_pad="5"
+ width="200" />
+ <name_list
+ follows="left|top"
+ height="60"
+ layout="topleft"
+ left_delta="0"
+ multi_select="true"
+ name="allowed_avatar_name_list"
+ top_delta="0"
+ width="200" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Remove..."
+ layout="topleft"
+ name="remove_allowed_avatar_btn"
+ right="470"
+ top_pad="5"
+ width="90" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Add..."
+ layout="topleft"
+ left_delta="-110"
+ name="add_allowed_avatar_btn"
+ top_delta="0"
+ width="90" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="allow_group_label"
+ top_pad="5"
+ width="200">
+ Allowed Groups:
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="182"
+ name="allow_group_help"
+ top_delta="-1"
+ width="18" />
+ <view_border
+ bevel_style="none"
+ follows="top|left"
+ height="60"
+ layout="topleft"
+ right="470"
+ top_pad="5"
+ width="200" />
+ <name_list
+ follows="left|top"
+ height="60"
+ layout="topleft"
+ left_delta="0"
+ multi_select="true"
+ name="allowed_group_name_list"
+ top_delta="0"
+ width="200" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Remove..."
+ layout="topleft"
+ name="remove_allowed_group_btn"
+ right="470"
+ top_pad="5"
+ width="90" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Add..."
+ layout="topleft"
+ left_delta="-110"
+ name="add_allowed_group_btn"
+ top_delta="0"
+ width="90" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="ban_resident_label"
+ top_pad="5"
+ width="200">
+ Banned Residents:
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="182"
+ name="ban_resident_help"
+ top_delta="-1"
+ width="18" />
+ <view_border
+ bevel_style="none"
+ follows="top|left"
+ height="60"
+ layout="topleft"
+ right="470"
+ top_pad="5"
+ width="200" />
+ <name_list
+ follows="left|top"
+ height="60"
+ layout="topleft"
+ left_delta="0"
+ multi_select="true"
+ name="banned_avatar_name_list"
+ top_delta="0"
+ width="200" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Remove..."
+ layout="topleft"
+ name="remove_banned_avatar_btn"
+ right="470"
+ top_pad="5"
+ width="90" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Add..."
+ layout="topleft"
+ left_delta="-110"
+ name="add_banned_avatar_btn"
+ top_delta="0"
+ width="90" />
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_region_general.xml b/indra/newview/skins/default/xui/en/panel_region_general.xml
new file mode 100644
index 0000000000..661cb97c66
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_region_general.xml
@@ -0,0 +1,350 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ border="true"
+ follows="top|left"
+ height="320"
+ label="Region"
+ layout="topleft"
+ left="0"
+ name="General"
+ top="320"
+ width="480">
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="region_text_lbl"
+ top="10"
+ width="100">
+ Region:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left_delta="50"
+ name="region_text"
+ top_delta="0"
+ width="400">
+ unknown
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="version_channel_text_lbl"
+ top="30"
+ width="100">
+ Version:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left_delta="50"
+ name="version_channel_text"
+ top_delta="0"
+ width="200">
+ unknown
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="region_type_lbl"
+ top="50"
+ width="100">
+ Type:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left_delta="50"
+ name="region_type"
+ top_delta="0"
+ width="200">
+ unknown
+ </text>
+ <check_box
+ height="20"
+ label="Block Terraform"
+ layout="topleft"
+ left="10"
+ name="block_terraform_check"
+ top="70"
+ width="80" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="115"
+ name="terraform_help"
+ top_delta="2"
+ width="18" />
+ <check_box
+ height="20"
+ label="Block Fly"
+ layout="topleft"
+ left="10"
+ name="block_fly_check"
+ top="90"
+ width="80" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="115"
+ name="fly_help"
+ top_delta="2"
+ width="18" />
+ <check_box
+ height="20"
+ label="Allow Damage"
+ layout="topleft"
+ left="10"
+ name="allow_damage_check"
+ top="110"
+ width="80" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="115"
+ name="damage_help"
+ top_delta="2"
+ width="18" />
+ <check_box
+ height="20"
+ label="Restrict Pushing"
+ layout="topleft"
+ left="10"
+ name="restrict_pushobject"
+ top="130"
+ width="80" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="115"
+ name="restrict_pushobject_help"
+ top_delta="2"
+ width="18" />
+ <check_box
+ height="20"
+ label="Allow Land Resell"
+ layout="topleft"
+ left="10"
+ name="allow_land_resell_check"
+ top="160"
+ width="80" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="115"
+ name="land_resell_help"
+ top_delta="2"
+ width="18" />
+ <check_box
+ height="20"
+ label="Allow Land Join/Divide"
+ layout="topleft"
+ left="10"
+ name="allow_parcel_changes_check"
+ top="180"
+ width="80" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="115"
+ name="parcel_changes_help"
+ top_delta="2"
+ width="18" />
+ <check_box
+ height="20"
+ label="Block Land Show in Search"
+ layout="topleft"
+ left="10"
+ name="block_parcel_search_check"
+ tool_tip="Let people see this region and its parcels in search results"
+ top="200"
+ width="80" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="115"
+ name="parcel_search_help"
+ top_delta="2"
+ width="18" />
+ <spinner
+ follows="left|top"
+ height="20"
+ increment="1"
+ label="Agent Limit"
+ label_width="97"
+ layout="topleft"
+ left="10"
+ max_val="100"
+ min_val="1"
+ name="agent_limit_spin"
+ top="240"
+ width="170" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="25"
+ name="agent_limit_help"
+ top_delta="2"
+ width="18" />
+ <spinner
+ follows="left|top"
+ height="20"
+ increment="0.5"
+ label="Object Bonus"
+ label_width="97"
+ layout="topleft"
+ left="10"
+ max_val="10"
+ min_val="1"
+ name="object_bonus_spin"
+ top="260"
+ width="170" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="25"
+ name="object_bonus_help"
+ top_delta="2"
+ width="18" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ label="Maturity"
+ layout="topleft"
+ left="10"
+ name="access_text"
+ top="290"
+ width="100">
+ Rating:
+ </text>
+ <combo_box
+ height="20"
+ label="Mature"
+ layout="topleft"
+ left_delta="100"
+ name="access_combo"
+ top_delta="0"
+ width="85">
+ <combo_box.item
+ label="Adult"
+ value="42" />
+ <combo_box.item
+ label="Mature"
+ value="21" />
+ <combo_box.item
+ label="PG"
+ value="13" />
+ </combo_box>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="10"
+ name="access_help"
+ top_delta="2"
+ width="18" />
+ <button
+ enabled="false"
+ follows="left|top"
+ height="20"
+ label="Apply"
+ layout="topleft"
+ left="108"
+ name="apply_btn"
+ top="320"
+ width="100" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Teleport Home One User..."
+ layout="topleft"
+ left="10"
+ name="kick_btn"
+ top_pad="10"
+ width="250" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Teleport Home All Users..."
+ layout="topleft"
+ left_delta="0"
+ name="kick_all_btn"
+ top_pad="3"
+ width="250" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Send Message To Region..."
+ layout="topleft"
+ left_delta="0"
+ name="im_btn"
+ top_pad="20"
+ width="200" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Manage Telehub..."
+ layout="topleft"
+ left="250"
+ name="manage_telehub_btn"
+ top="70"
+ width="150" />
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_region_terrain.xml b/indra/newview/skins/default/xui/en/panel_region_terrain.xml
new file mode 100644
index 0000000000..ae3b650774
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_region_terrain.xml
@@ -0,0 +1,239 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ border="true"
+ follows="top|left"
+ height="320"
+ label="Terrain"
+ layout="topleft"
+ left="0"
+ name="Terrain"
+ top="320"
+ width="480">
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="region_text_lbl"
+ top="10"
+ width="100">
+ Region:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left_delta="50"
+ name="region_text"
+ top_delta="0"
+ width="400">
+ unknown
+ </text>
+ <spinner
+ follows="left|top"
+ height="20"
+ label="Water Height"
+ label_width="120"
+ layout="topleft"
+ left="15"
+ max_val="100"
+ name="water_height_spin"
+ top="40"
+ width="180" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="5"
+ name="water_height_help"
+ top_delta="2"
+ width="18" />
+ <spinner
+ follows="left|top"
+ height="20"
+ increment="0.2"
+ label="Terrain Raise Limit"
+ label_width="120"
+ layout="topleft"
+ left="15"
+ max_val="100"
+ name="terrain_raise_spin"
+ top="60"
+ width="180" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="5"
+ name="terrain_raise_help"
+ top_delta="2"
+ width="18" />
+ <spinner
+ follows="left|top"
+ height="20"
+ increment="0.2"
+ label="Terrain Lower Limit"
+ label_width="120"
+ layout="topleft"
+ left="15"
+ max_val="0"
+ min_val="-100"
+ name="terrain_lower_spin"
+ top="80"
+ width="180" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="5"
+ name="terrain_lower_help"
+ top_delta="2"
+ width="18" />
+ <check_box
+ height="20"
+ label="Use Estate Sun"
+ layout="topleft"
+ left="250"
+ name="use_estate_sun_check"
+ top="35"
+ width="100" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="70"
+ name="use_estate_sun_help"
+ top_delta="2"
+ width="18" />
+ <check_box
+ height="20"
+ label="Fixed Sun"
+ layout="topleft"
+ left="250"
+ name="fixed_sun_check"
+ top="55"
+ width="100" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="70"
+ name="fixed_sun_help"
+ top_delta="2"
+ width="18" />
+ <icon
+ height="20"
+ image_name="icon_day_cycle.tga"
+ layout="topleft"
+ left="285"
+ name="daycycle"
+ top="80"
+ width="165" />
+ <slider
+ follows="left|top"
+ height="20"
+ increment="0.001"
+ label="Phase"
+ layout="topleft"
+ left="250"
+ max_val="30"
+ min_val="6"
+ name="sun_hour_slider"
+ show_text="false"
+ top="105"
+ width="200" />
+ <button
+ enabled="false"
+ follows="left|top"
+ height="20"
+ label="Apply"
+ layout="topleft"
+ left="350"
+ name="apply_btn"
+ top="135"
+ width="90" />
+ <view_border
+ bevel_style="none"
+ follows="top|left"
+ height="130"
+ layout="topleft"
+ left="8"
+ top="30"
+ width="460" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Download RAW terrain..."
+ layout="topleft"
+ left_delta="2"
+ name="download_raw_btn"
+ tool_tip="Available only to estate owners, not managers"
+ top_pad="60"
+ width="170" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="10"
+ name="download_raw_help"
+ top_delta="2"
+ width="18" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Upload RAW terrain..."
+ layout="topleft"
+ left="10"
+ name="upload_raw_btn"
+ tool_tip="Available only to estate owners, not managers"
+ top="243"
+ width="170" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="10"
+ name="upload_raw_help"
+ top_delta="2"
+ width="18" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Bake Terrain"
+ layout="topleft"
+ left="10"
+ name="bake_terrain_btn"
+ tool_tip="Set current terrain as mid-point for raise/lower limits"
+ top="283"
+ width="100" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="10"
+ name="bake_terrain_help"
+ top_delta="2"
+ width="18" />
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_region_texture.xml b/indra/newview/skins/default/xui/en/panel_region_texture.xml
new file mode 100644
index 0000000000..f24630f4e3
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_region_texture.xml
@@ -0,0 +1,340 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ border="true"
+ follows="top|left"
+ height="320"
+ label="Ground Textures"
+ layout="topleft"
+ left="0"
+ name="Textures"
+ top="320"
+ width="480">
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="region_text_lbl"
+ top="10"
+ width="100">
+ Region:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left_delta="50"
+ name="region_text"
+ top_delta="0"
+ width="400">
+ unknown
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="detail_texture_text"
+ top="36"
+ width="300">
+ Terrain Textures (requires 512x512, 24 bit .tga files)
+ </text>
+ <texture_picker
+ follows="left|top"
+ height="100"
+ layout="topleft"
+ left_delta="0"
+ name="texture_detail_0"
+ top_delta="20"
+ width="100" />
+ <texture_picker
+ follows="left|top"
+ height="100"
+ layout="topleft"
+ left_pad="10"
+ name="texture_detail_1"
+ top_delta="0"
+ width="100" />
+ <texture_picker
+ follows="left|top"
+ height="100"
+ layout="topleft"
+ left_pad="10"
+ name="texture_detail_2"
+ top_delta="0"
+ width="100" />
+ <texture_picker
+ follows="left|top"
+ height="100"
+ layout="topleft"
+ left_pad="10"
+ name="texture_detail_3"
+ top_delta="0"
+ width="100" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="height_text_lbl"
+ top="146"
+ width="65">
+ 1 (Low)
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="45"
+ name="height_text_lbl2"
+ top_delta="0"
+ width="100">
+ 2
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="10"
+ name="height_text_lbl3"
+ top_delta="0"
+ width="100">
+ 3
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="10"
+ name="height_text_lbl4"
+ top_delta="0"
+ width="100">
+ 4 (High)
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="height_text_lbl5"
+ top="186"
+ width="300">
+ Texture Elevation Ranges
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="51"
+ name="height_text_lbl6"
+ top="201"
+ width="100">
+ Southwest
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="10"
+ name="height_text_lbl7"
+ top_delta="0"
+ width="100">
+ Northwest
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="10"
+ name="height_text_lbl8"
+ top_delta="0"
+ width="100">
+ Southeast
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="10"
+ name="height_text_lbl9"
+ top_delta="0"
+ width="100">
+ Northeast
+ </text>
+ <spinner
+ follows="left|top"
+ height="20"
+ increment="0.5"
+ label="Low"
+ label_width="37"
+ layout="topleft"
+ left="10"
+ max_val="500"
+ min_val="-500"
+ name="height_start_spin_0"
+ top="221"
+ width="100" />
+ <spinner
+ follows="left|top"
+ height="20"
+ increment="0.5"
+ label="Low"
+ label_width="37"
+ layout="topleft"
+ left_pad="10"
+ max_val="500"
+ min_val="-500"
+ name="height_start_spin_1"
+ top_delta="0"
+ width="100" />
+ <spinner
+ follows="left|top"
+ height="20"
+ increment="0.5"
+ label="Low"
+ label_width="37"
+ layout="topleft"
+ left_pad="10"
+ max_val="500"
+ min_val="-500"
+ name="height_start_spin_2"
+ top_delta="0"
+ width="100" />
+ <spinner
+ follows="left|top"
+ height="20"
+ increment="0.5"
+ label="Low"
+ label_width="37"
+ layout="topleft"
+ left_pad="10"
+ max_val="500"
+ min_val="-500"
+ name="height_start_spin_3"
+ top_delta="0"
+ width="100" />
+ <spinner
+ follows="left|top"
+ height="20"
+ increment="0.5"
+ label="High"
+ label_width="37"
+ layout="topleft"
+ left="10"
+ max_val="500"
+ min_val="-500"
+ name="height_range_spin_0"
+ top="241"
+ width="100" />
+ <spinner
+ follows="left|top"
+ height="20"
+ increment="0.5"
+ label="High"
+ label_width="37"
+ layout="topleft"
+ left_pad="10"
+ max_val="500"
+ min_val="-500"
+ name="height_range_spin_1"
+ top_delta="0"
+ width="100" />
+ <spinner
+ follows="left|top"
+ height="20"
+ increment="0.5"
+ label="High"
+ label_width="37"
+ layout="topleft"
+ left_pad="10"
+ max_val="500"
+ min_val="-500"
+ name="height_range_spin_2"
+ top_delta="0"
+ width="100" />
+ <spinner
+ follows="left|top"
+ height="20"
+ increment="0.5"
+ label="High"
+ label_width="37"
+ layout="topleft"
+ left_pad="10"
+ max_val="500"
+ min_val="-500"
+ name="height_range_spin_3"
+ top_delta="0"
+ width="100" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="25"
+ name="height_text_lbl10"
+ top="281"
+ width="480">
+ These values represent the blend range for the textures above.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="height_text_lbl11"
+ top_delta="16"
+ width="450">
+ Measured in meters, the LOW value is the MAXIMUM height of Texture #1,
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="height_text_lbl12"
+ top_delta="16"
+ width="480">
+ and the HIGH value is the MINIMUM height of Texture #4.
+ </text>
+ <button
+ enabled="false"
+ follows="left|bottom"
+ height="20"
+ label="Apply"
+ layout="topleft"
+ left="350"
+ name="apply_btn"
+ top="290"
+ width="100" />
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_script_ed.xml b/indra/newview/skins/default/xui/en/panel_script_ed.xml
new file mode 100644
index 0000000000..5a452bd706
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_script_ed.xml
@@ -0,0 +1,190 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ bevel_style="none"
+ border_style="line"
+ bottom="550"
+ follows="left|top|right|bottom"
+ height="508"
+ layout="topleft"
+ left="0"
+ name="script panel"
+ width="500">
+ <panel.string
+ name="loading">
+ Loading...
+ </panel.string>
+ <panel.string
+ name="can_not_view">
+ You are not allowed to view this script.
+ </panel.string>
+ <panel.string
+ name="public_objects_can_not_run">
+ Public Objects cannot run scripts
+ </panel.string>
+ <panel.string
+ name="script_running">
+ Running
+ </panel.string>
+ <panel.string
+ name="Title">
+ Script: [NAME]
+ </panel.string>
+ <text_editor
+ type="string"
+ length="1"
+ bevel_style="none"
+ border_style="line"
+ bottom="393"
+ follows="left|top|right|bottom"
+ font="Monospace"
+ height="376"
+ ignore_tab="false"
+ layout="topleft"
+ left="4"
+ max_length="65536"
+ name="Script Editor"
+ width="492"
+ word_wrap="true">
+ Loading...
+ </text_editor>
+ <button
+ bottom="499"
+ follows="right|bottom"
+ height="20"
+ label="Save"
+ label_selected="Save"
+ layout="topleft"
+ left="360"
+ name="Save_btn"
+ width="128" />
+ <scroll_list
+ bottom="457"
+ follows="left|right|bottom"
+ height="60"
+ layout="topleft"
+ left="4"
+ name="lsl errors"
+ width="492" />
+ <combo_box
+ bottom="499"
+ follows="left|bottom"
+ height="20"
+ label="Insert..."
+ layout="topleft"
+ left="12"
+ name="Insert..."
+ width="128" />
+ <text
+ bottom="473"
+ follows="left|bottom"
+ height="12"
+ layout="topleft"
+ left="12"
+ name="line_col"
+ width="128" />
+ <menu_bar
+ bg_visible="false"
+ bottom="18"
+ follows="left|top|right"
+ height="18"
+ layout="topleft"
+ left="8"
+ mouse_opaque="false"
+ name="script_menu"
+ width="476">
+ <menu
+ bottom="18"
+ height="62"
+ label="File"
+ layout="topleft"
+ left="0"
+ mouse_opaque="false"
+ name="File"
+ width="138">
+ <menu_item_call
+ label="Save"
+ layout="topleft"
+ name="Save" />
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ label="Revert All Changes"
+ layout="topleft"
+ name="Revert All Changes" />
+ </menu>
+ <menu
+ bottom="-647"
+ height="198"
+ label="Edit"
+ layout="topleft"
+ left="222"
+ mouse_opaque="false"
+ name="Edit"
+ width="139">
+ <menu_item_call
+ enabled="false"
+ label="Undo"
+ layout="topleft"
+ name="Undo" />
+ <menu_item_call
+ enabled="false"
+ label="Redo"
+ layout="topleft"
+ name="Redo" />
+ <menu_item_separator
+ layout="topleft" />
+ <menu_item_call
+ enabled="false"
+ label="Cut"
+ layout="topleft"
+ name="Cut" />
+ <menu_item_call
+ enabled="false"
+ label="Copy"
+ layout="topleft"
+ name="Copy" />
+ <menu_item_call
+ enabled="false"
+ label="Paste"
+ layout="topleft"
+ name="Paste" />
+ <menu_item_separator
+ layout="topleft"
+ name="separator2" />
+ <menu_item_call
+ label="Select All"
+ layout="topleft"
+ name="Select All" />
+ <menu_item_call
+ enabled="false"
+ label="Deselect"
+ layout="topleft"
+ name="Deselect" />
+ <menu_item_separator
+ layout="topleft"
+ name="separator3" />
+ <menu_item_call
+ label="Search / Replace..."
+ layout="topleft"
+ name="Search / Replace..." />
+ </menu>
+ <menu
+ bottom="18"
+ height="34"
+ label="Help"
+ layout="topleft"
+ left="0"
+ mouse_opaque="false"
+ name="Help"
+ width="112">
+ <menu_item_call
+ label="Help..."
+ layout="topleft"
+ name="Help..." />
+ <menu_item_call
+ label="LSL Wiki Help..."
+ layout="topleft"
+ name="LSL Wiki Help..." />
+ </menu>
+ </menu_bar>
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_scrolling_param.xml b/indra/newview/skins/default/xui/en/panel_scrolling_param.xml
new file mode 100644
index 0000000000..2805ace906
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_scrolling_param.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ height="152"
+ layout="topleft"
+ left="0"
+ name="LLScrollingPanelParam"
+ top="152"
+ width="270">
+ <text
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="4"
+ name="min param text"
+ top="116"
+ width="128" />
+ <text
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_pad="6"
+ name="max param text"
+ top_delta="0"
+ width="128" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="8"
+ name="Loading..."
+ top="11"
+ width="128">
+ Loading...
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left_pad="6"
+ name="Loading...2"
+ top_delta="0"
+ width="128">
+ Loading...
+ </text>
+ <button
+ enabled="false"
+ height="132"
+ image_disabled="square_btn_32x128.tga"
+ image_disabled_selected="square_btn_selected_32x128.tga"
+ image_selected="square_btn_selected_32x128.tga"
+ image_unselected="square_btn_32x128.tga"
+ layout="topleft"
+ left="2"
+ name="less"
+ picture_style="true"
+ tab_stop="false"
+ top="0"
+ width="132" />
+ <button
+ enabled="false"
+ height="132"
+ image_disabled="square_btn_32x128.tga"
+ image_disabled_selected="square_btn_selected_32x128.tga"
+ image_selected="square_btn_selected_32x128.tga"
+ image_unselected="square_btn_32x128.tga"
+ layout="topleft"
+ left_pad="2"
+ name="more"
+ picture_style="true"
+ tab_stop="false"
+ top_delta="0"
+ width="132" />
+ <slider
+ can_edit_text="true"
+ decimal_digits="0"
+ enabled="false"
+ height="16"
+ increment="1"
+ initial_value="0"
+ label="[DESC]"
+ label_width="100"
+ layout="topleft"
+ left="6"
+ max_val="100"
+ name="param slider"
+ top="134"
+ width="258" />
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_side_tray.xml b/indra/newview/skins/default/xui/en/panel_side_tray.xml
new file mode 100644
index 0000000000..220191ddaa
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_side_tray.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<side_tray
+ name="sidebar"
+ background_visible="false"
+ bg_opaque_color="0.0 0.0 0.0 0.0"
+ mouse_opaque="true"
+ collapsed="true"
+>
+ <sidetray_tab
+ name="sidebarpanel2"
+ mouse_opaque="false"
+ background_opaque="false"
+ background_visible="true"
+ bg_opaque_color="0.5 0.5 0.5 1.0"
+ image="icn_voice-groupfocus.tga"
+ tab_title="People"
+ description="Find your friends, contacts and people nearby."
+ >
+ <collapsible_ctrl
+ name="people_accordion"
+ title="People"
+ collapsable="true"
+ min_width="200"
+ min_height="200"
+ expanded="true"
+ header_visible="false"
+ >
+ <panel
+ class="panel_people"
+ name="panel_people"
+ filename="panel_people.xml"
+ width="355"
+ height="465"
+ label="People"
+ border="true"
+ />
+ </collapsible_ctrl>
+ </sidetray_tab>
+
+ <sidetray_tab
+ name="sidebarpanel1"
+ mouse_opaque="false"
+ background_visible="true"
+ label="Places"
+ bg_opaque_color="0.5 0.5 0.5 1.0"
+ image="inv_item_landmark.tga"
+ tab_title="Places"
+ description="Find places to go and places you've been."
+ >
+ <collapsible_ctrl
+ name="places_accordian"
+ title="Places"
+ collapsable="true"
+ min_width="355"
+ min_height="570"
+ header_visible="false"
+ >
+ <panel
+ class="panel_places"
+ name="panel_places"
+ filename="panel_places.xml"
+ label="Places"
+ border="true"
+ />
+ </collapsible_ctrl>
+ </sidetray_tab>
+
+ <sidetray_tab
+ name="sidebar_me"
+ mouse_opaque="false"
+ background_visible="true"
+ bg_opaque_color="0.5 0.5 0.5 1.0"
+ image="icn_voice-pvtfocus.tga"
+ tab_title="Me"
+ description="Change your profile, your look and quick links to your outfits."
+ >
+ <collapsible_ctrl
+ name="me_accordion"
+ title="Me"
+ collapsable="false"
+ min_width="200"
+ min_height="200"
+ header_visible="false"
+ >
+ <panel
+ class="panel_me_profile"
+ name="panel_me_profile"
+ filename="panel_me_profile.xml"
+ label="Me"
+ border="true"
+ />
+ </collapsible_ctrl>
+ </sidetray_tab>
+</side_tray>
+
diff --git a/indra/newview/skins/default/xui/en/panel_side_tray_tab_caption.xml b/indra/newview/skins/default/xui/en/panel_side_tray_tab_caption.xml
new file mode 100644
index 0000000000..e447e541e0
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_side_tray_tab_caption.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel name="sidetray_tab_panel"
+ bottom="0" height="25" left="0" background_visible="false"
+ bg_visible="false" border="false" border_visible="false"
+ bg_opaque_color="0.7 0.3 0.7 1.0"
+ follows="left|top|right"
+ mouse_opaque="true">
+ <text type="string" length="1" bg_visible="false" border_visible="false"
+ bottom="0" enabled="true" follows="left|top"
+ height="20" left="10"
+ font="SansSerifBold" halign="left"
+ name="sidetray_tab_title" width="100">
+ Side Panel
+ </text>
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_status_bar.xml b/indra/newview/skins/default/xui/en/panel_status_bar.xml
new file mode 100644
index 0000000000..3709514147
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_status_bar.xml
@@ -0,0 +1,252 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ background_opaque="true"
+ background_visible="true"
+ bg_opaque_color="0.25 0.25 0.25 1"
+ follows="top|left|right"
+ height="18"
+ layout="topleft"
+ left="0"
+ mouse_opaque="false"
+ name="status"
+ top="18"
+ width="1000">
+ <panel.string
+ name="StatBarDaysOfWeek">
+ Sunday:Monday:Tuesday:Wednesday:Thursday:Friday:Saturday
+ </panel.string>
+ <panel.string
+ name="StatBarMonthsOfYear">
+ January:February:March:April:May:June:July:August:September:October:November:December
+ </panel.string>
+ <panel.string
+ name="packet_loss_tooltip">
+ Packet Loss
+ </panel.string>
+ <panel.string
+ name="bandwidth_tooltip">
+ Bandwidth
+ </panel.string>
+ <panel.string
+ name="time">
+ [hour12, datetime, slt]:[min, datetime, slt] [ampm, datetime, slt] [timezone,datetime, slt]
+ </panel.string>
+ <panel.string
+ name="timeTooltip">
+ [weekday, datetime, slt], [day, datetime, slt] [month, datetime, slt] [year, datetime, slt]
+ </panel.string>
+ <button
+ auto_resize="true"
+ follows="right|bottom"
+ font="SansSerifSmall"
+ height="16"
+ layout="topleft"
+ left="-130"
+ name="buycurrency"
+ picture_style="true"
+ tool_tip="Account Balance / Buy currency"
+ top="1"
+ width="60" />
+ <text
+ type="string"
+ length="1"
+ disabled_color="TimeTextColor"
+ follows="right|bottom"
+ halign="right"
+ height="20"
+ layout="topleft"
+ left_pad="5"
+ name="TimeText"
+ text_color="TimeTextColor"
+ tool_tip="Current Time (Pacific)"
+ top_delta="-1"
+ v_pad="2"
+ width="60">
+ 12:00 AM
+ </text>
+ <button
+ follows="right|bottom"
+ height="16"
+ image_selected="status_script_debug.tga"
+ image_unselected="status_script_debug.tga"
+ layout="topleft"
+ left_delta="-557"
+ name="scriptout"
+ picture_style="true"
+ scale_image="false"
+ tool_tip="Script Warnings and Errors"
+ top_delta="2"
+ visible="false"
+ width="16" />
+ <button
+ follows="right|bottom"
+ height="18"
+ image_selected="status_health.tga"
+ image_unselected="status_health.tga"
+ layout="topleft"
+ left_delta="16"
+ name="health"
+ picture_style="true"
+ scale_image="false"
+ tool_tip="Health"
+ top_delta="2"
+ visible="false"
+ width="24" />
+ <text
+ type="string"
+ length="1"
+ disabled_color="HealthTextColor"
+ follows="rsight|bottom"
+ font_shadow="hard"
+ height="18"
+ layout="topleft"
+ left_delta="24"
+ name="HealthText"
+ text_color="HealthTextColor"
+ tool_tip="Health"
+ top_delta="-4"
+ v_pad="2"
+ visible="false"
+ width="31">
+ 100%
+ </text>
+ <button
+ follows="right|bottom"
+ height="18"
+ image_selected="status_no_fly.tga"
+ image_unselected="status_no_fly.tga"
+ layout="topleft"
+ left_delta="31"
+ name="no_fly"
+ picture_style="true"
+ scale_image="false"
+ tool_tip="Flying not allowed"
+ top_delta="4"
+ visible="false"
+ width="24" />
+ <button
+ follows="right|bottom"
+ height="18"
+ image_selected="status_no_build.tga"
+ image_unselected="status_no_build.tga"
+ layout="topleft"
+ left_delta="24"
+ name="no_build"
+ picture_style="true"
+ scale_image="false"
+ tool_tip="Building/Rezzing not allowed"
+ top_delta="0"
+ visible="false"
+ width="24" />
+ <button
+ follows="right|bottom"
+ height="18"
+ image_selected="status_no_scripts.tga"
+ image_unselected="status_no_scripts.tga"
+ layout="topleft"
+ left_delta="24"
+ name="no_scripts"
+ picture_style="true"
+ scale_image="false"
+ tool_tip="Scripts not allowed"
+ top_delta="0"
+ visible="false"
+ width="24" />
+ <button
+ follows="right|bottom"
+ height="18"
+ image_selected="status_no_push.tga"
+ image_unselected="status_no_push.tga"
+ layout="topleft"
+ left_delta="24"
+ name="restrictpush"
+ picture_style="true"
+ scale_image="false"
+ tool_tip="No Pushing"
+ top_delta="0"
+ visible="false"
+ width="24" />
+ <button
+ follows="right|bottom"
+ height="18"
+ image_selected="status_no_voice.tga"
+ image_unselected="status_no_voice.tga"
+ layout="topleft"
+ left_delta="24"
+ name="status_no_voice"
+ picture_style="true"
+ scale_image="false"
+ tool_tip="Voice not available here"
+ top_delta="0"
+ visible="false"
+ width="24" />
+ <button
+ follows="right|bottom"
+ height="16"
+ image_selected="status_buy_land_pressed.tga"
+ image_unselected="status_buy_land.tga"
+ layout="topleft"
+ left_pad="7"
+ name="buyland"
+ picture_style="true"
+ tool_tip="Buy this parcel"
+ top_delta="-3"
+ visible="false"
+ width="16" />
+ <button
+ follows="right|bottom"
+ height="16"
+ image_disabled="sm_rounded_corners_simple.tga"
+ image_disabled_selected="sm_rounded_corners_simple.tga"
+ image_hover_selected="sm_rounded_corners_simple.tga"
+ image_hover_unselected="sm_rounded_corners_simple.tga"
+ image_selected="sm_rounded_corners_simple.tga"
+ image_unselected="sm_rounded_corners_simple.tga"
+ layout="topleft"
+ left_pad="313"
+ mouse_opaque="false"
+ name="menubar_search_bevel_bg"
+ picture_style="true"
+ top_delta="0"
+ width="94" />
+ <line_editor
+ bevel_style="none"
+ border_style="line"
+ commit_on_focus_lost="false"
+ follows="right|bottom"
+ height="11"
+ label="Search"
+ layout="topleft"
+ left_delta="1"
+ name="search_editor"
+ tab_group="1"
+ tool_tip="Search Second Life"
+ top_delta="4"
+ width="78" />
+ <button
+ follows="right|bottom"
+ font="SansSerifSmall"
+ height="16"
+ image_disabled="status_search_btn.png"
+ image_disabled_selected="status_search_btn_pressed.png"
+ image_selected="status_search_btn_pressed.png"
+ image_unselected="status_search_btn.png"
+ layout="topleft"
+ left_delta="78"
+ name="search_btn"
+ picture_style="true"
+ scale_image="false"
+ tool_tip="Search Second Life"
+ top_delta="-4"
+ width="16" />
+ <text
+ enabled="false"
+ follows="right|bottom"
+ halign="center"
+ height="12"
+ layout="topleft"
+ left_delta="-4"
+ name="stat_btn"
+ top_delta="3"
+ width="20" />
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_teleport_history.xml b/indra/newview/skins/default/xui/en/panel_teleport_history.xml
new file mode 100644
index 0000000000..8f6a2d7648
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_teleport_history.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel name="Teleport History" bottom="0" height="326" left="0" width="380"
+ border="true" follows="left|top|right|bottom">
+ <scroll_list bottom="0" can_resize="true" column_padding="0" draw_heading="true"
+ draw_stripes="false" follows="left|top|bottom|right" left="0"
+ multi_select="false" name="history_items" search_column="1"
+ sort_column="1" height="326" width="380" >
+ <column name="landmark_icon" width="20" />
+ <column dynamicwidth="true" label="Region" name="region" />
+ <column name="index" width="0" />
+ </scroll_list>
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_world_map.xml b/indra/newview/skins/default/xui/en/panel_world_map.xml
new file mode 100644
index 0000000000..532f487780
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_world_map.xml
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ follows="left|top|right|bottom"
+ height="300"
+ layout="topleft"
+ name="world_map"
+ width="400">
+ <panel.string
+ name="Loading">
+ Loading...
+ </panel.string>
+ <panel.string
+ name="InvalidLocation">
+ Invalid Location
+ </panel.string>
+ <panel.string
+ name="world_map_north">
+ N
+ </panel.string>
+ <panel.string
+ name="world_map_east">
+ E
+ </panel.string>
+ <panel.string
+ name="world_map_west">
+ W
+ </panel.string>
+ <panel.string
+ name="world_map_south">
+ S
+ </panel.string>
+ <panel.string
+ name="world_map_southeast">
+ SE
+ </panel.string>
+ <panel.string
+ name="world_map_northeast">
+ NE
+ </panel.string>
+ <panel.string
+ name="world_map_southwest">
+ SW
+ </panel.string>
+ <panel.string
+ name="world_map_northwest">
+ NW
+ </panel.string>
+ <text
+ type="string"
+ length="1"
+ label="N"
+ layout="topleft"
+ name="floater_map_north"
+ text="N"
+ text_color="1 1 1 0.7">
+ N
+ </text>
+ <text
+ type="string"
+ length="1"
+ label="E"
+ layout="topleft"
+ name="floater_map_east"
+ text="E"
+ text_color="1 1 1 0.7">
+ E
+ </text>
+ <text
+ type="string"
+ length="1"
+ label="W"
+ layout="topleft"
+ name="floater_map_west"
+ text="W"
+ text_color="1 1 1 0.7">
+ W
+ </text>
+ <text
+ type="string"
+ length="1"
+ label="S"
+ layout="topleft"
+ name="floater_map_south"
+ text="S"
+ text_color="1 1 1 0.7">
+ S
+ </text>
+ <text
+ type="string"
+ length="1"
+ label="SE"
+ layout="topleft"
+ name="floater_map_southeast"
+ text="SE"
+ text_color="1 1 1 0.7">
+ SE
+ </text>
+ <text
+ type="string"
+ length="1"
+ label="NE"
+ layout="topleft"
+ name="floater_map_northeast"
+ text="NE"
+ text_color="1 1 1 0.7">
+ NE
+ </text>
+ <text
+ type="string"
+ length="1"
+ label="SW"
+ layout="topleft"
+ name="floater_map_southwest"
+ text="SW"
+ text_color="1 1 1 0.7">
+ SW
+ </text>
+ <text
+ type="string"
+ length="1"
+ label="NW"
+ layout="topleft"
+ name="floater_map_northwest"
+ text="NW"
+ text_color="1 1 1 0.7">
+ NW
+ </text>
+</panel>
diff --git a/indra/newview/skins/default/xui/en/role_actions.xml b/indra/newview/skins/default/xui/en/role_actions.xml
new file mode 100644
index 0000000000..b89a975430
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/role_actions.xml
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<role_actions>
+ <action_set
+ description="These Abilities include powers to add and remove group Members, and allow new Members to join without an invitation."
+ name="Membership">
+ <action description="Invite People to this Group"
+ longdescription="Invite People to this Group using the &apos;Invite New Person...&apos; button in the Members &amp; Roles tab &gt; Members sub-tab."
+ name="member invite" value="1" />
+ <action description="Eject Members from this Group"
+ longdescription="Eject Members from this Group using the &apos;Eject From Group&apos; button in the Members &amp; Roles tab &gt; Members sub-tab. An Owner can eject anyone except another Owner. If you&apos;re not an Owner, a Member can be ejected from a group if, and only if, they&apos;re only in the Everyone Role, and NO other Roles. To remove Members from Roles, you need to have the &apos;Remove Members from Roles&apos; Ability."
+ name="member eject" value="2" />
+ <action
+ description="Toggle &apos;Open Enrollment&apos; and change &apos;Signup Fee&apos;"
+ longdescription="Toggle &apos;Open Enrollment&apos; to let new Members join without an invitation, and change &apos;Signup Fee&apos; in the Group Preferences section of the General tab."
+ name="member options" value="3" />
+ </action_set>
+ <action_set
+ description="These Abilities include powers to add, remove, and change group Roles, add and remove Members in Roles, and assign Abilities to Roles."
+ name="Roles">
+ <action description="Create new Roles"
+ longdescription="Create new Roles in the Members &amp; Roles tab &gt; Roles sub-tab."
+ name="role create" value="4" />
+ <action description="Delete Roles"
+ longdescription="Delete Roles in the Members &amp; Roles tab &gt; Roles sub-tab."
+ name="role delete" value="5" />
+ <action description="Change Role names, titles, descriptions, and whether Role members are publicly visible"
+ longdescription="Change Role names, titles, descriptions, and whether Role members are publicly visible. This is done at the bottom of the the Members &amp; Roles tab &gt; Roles sub-tab after selecting a Role."
+ name="role properties" value="6" />
+ <action description="Assign Members to Assigner&apos;s Roles"
+ longdescription="Assign Members to Roles in the Assigned Roles section of the Members &amp; Roles tab &gt; Members sub-tab. A Member with this Ability can only add Members to a Role the assigner is already in."
+ name="role assign member limited" value="7" />
+ <action description="Assign Members to Any Role"
+ longdescription="Assign Members to Any Role in the Assigned Roles section of the Members &amp; Roles tab &gt; Members sub-tab. *WARNING* Any Member in a Role with this Ability can assign themselves--and any other non-Owner Member--to Roles that have more powers than they currently have, potentially elevating themselves to near-Owner power. Be sure you know what you&apos;re doing before assigning this Ability."
+ name="role assign member" value="8" />
+ <action description="Remove Members from Roles"
+ longdescription="Remove Members from Roles in the Assigned Roles section of the Members &amp; Roles tab &gt; Members sub-tab. Owners can&apos;t be removed."
+ name="role remove member" value="9" />
+ <action description="Assign and Remove Abilities in Roles"
+ longdescription="Assign and Remove Abilities in Roles in the Allowed Abilities section of the Members &amp; Roles tab &gt; Roles sub-tab. *WARNING* Any Member in a Role with this Ability can assign themselves--and any other non-Owner Member--all Abilities, potentially elevating themselves to near-Owner power. Be sure you know what you&apos;re doing before assigning this Ability."
+ name="role change actions" value="10" />
+ </action_set>
+ <action_set
+ description="These Abilities include powers to modify this group&apos;s identity, such as changing public visibility, charter, and insignia."
+ name="Group Identity">
+ <action
+ description="Change Charter, Insignia, and &apos;Show in search&apos;"
+ longdescription="Change Charter, Insignia, and &apos;Show in search&apos;. This is done in the General tab."
+ name="group change identity" value="11" />
+ </action_set>
+ <action_set
+ description="These Abilities include powers to deed, modify, and sell land in this group&apos;s land holdings. To get to the About Land window, right-click the ground and select &apos;About Land...&apos;, or click the parcel info in the menu bar."
+ name="Parcel Management">
+ <action description="Deed land and buy land for group"
+ longdescription="Deed land and buy land for group. This is done in About Land &gt; General tab."
+ name="land deed" value="12" />
+ <action description="Abandon land to Governor Linden"
+ longdescription="Abandon land to Governor Linden. *WARNING* Any Member in a Role with this Ability can abandon group-owned land in About Land &gt; General tab, reverting it to Linden ownership without a sale! Be sure you know what you&apos;re doing before assigning this Ability."
+ name="land release" value="13" />
+ <action description="Set land for sale info"
+ longdescription="Set land for sale info. *WARNING* Any Member in a Role with this Ability can sell group-owned land in About Land &gt; General tab as they wish! Be sure you know what you&apos;re doing before assigning this Ability."
+ name="land set sale info" value="14" />
+ <action description="Subdivide and join parcels"
+ longdescription="Subdivide and join parcels. This is done by right-clicking the ground, &apos;Edit Terrain&apos;, and dragging your mouse on the land to make a selection. To subdivide, select what you want to split and click &apos;Subdivide...&apos;. To join, select two or more contiguous parcels and click &apos;Join...&apos;. "
+ name="land divide join" value="15" />
+ </action_set>
+ <action_set
+ description="These Abilities include powers to change the parcel name and publish settings, Find directory visibility, and landing point &amp; TP routing options."
+ name="Parcel Identity">
+ <action description="Toggle &apos;Show in Find Places&apos; and set category"
+ longdescription="Toggle &apos;Show in Find Places&apos; and setting a parcel&apos;s category in About Land &gt; Options tab."
+ name="land find places" value="17" />
+ <action
+ description="Change parcel name, description, and &apos;Show in search&apos; settings"
+ longdescription="Change parcel name, description, and &apos;Show in search&apos; settings. This is done in About Land &gt; Options tab."
+ name="land change identity" value="18" />
+ <action description="Set landing point and set teleport routing"
+ longdescription="On a group-owned parcel, Members in a Role with this Ability can set a landing point to specify where incoming teleports arrive, and also set teleport routing for further control. This is done in About Land &gt; Options tab."
+ name="land set landing point" value="19" />
+ </action_set>
+ <action_set
+ description="These Abilities include powers which affect parcel options, such as &apos;Create Objects&apos;, &apos;Edit Terrain&apos;, and music &amp; media settings."
+ name="Parcel Settings">
+ <action description="Change music &amp; media settings"
+ longdescription="Change streaming music and movie settings in About Land &gt; Media tab."
+ name="land change media" value="20" />
+ <action description="Toggle &apos;Edit Terrain&apos;"
+ longdescription="Toggle &apos;Edit Terrain&apos;. *WARNING* About Land &gt; Options tab &gt; Edit Terrain allows anyone to terraform your land&apos;s shape, and place and move Linden plants. Be sure you know what you&apos;re doing before assigning this Ability. Editing terrain is toggled in About Land &gt; Options tab."
+ name="land edit" value="21" />
+ <action description="Toggle various About Land &gt; Options settings"
+ longdescription="Toggle &apos;Safe (no damage)&apos;, &apos;Fly&apos;, and allow other Residents to: &apos;Create Objects&apos;, &apos;Edit Terrain&apos;, &apos;Create Landmarks&apos;, and &apos;Run Scripts&apos; on group-owned land in About Land &gt; Options tab."
+ name="land options" value="22" />
+ </action_set>
+ <action_set
+ description="These Abilities include powers which allow Members to bypass restrictions on group-owned parcels."
+ name="Parcel Powers">
+ <action description="Always allow &apos;Edit Terrain&apos;"
+ longdescription="Members in a Role with this Ability can edit terrain on a group-owned parcel, even if it&apos;s turned off in About Land &gt; Options tab."
+ name="land allow edit land" value="23" />
+ <action description="Always allow &apos;Fly&apos;"
+ longdescription="Members in a Role with this Ability can fly on a group-owned parcel, even if it&apos;s turned off in About Land &gt; Options tab."
+ name="land allow fly" value="24" />
+ <action description="Always allow &apos;Create Objects&apos;"
+ longdescription="Members in a Role with this Ability can create objects on a group-owned parcel, even if it&apos;s turned off in About Land &gt; Options tab."
+ name="land allow create" value="25" />
+ <action description="Always allow &apos;Create Landmark&apos;"
+ longdescription="Members in a Role with this Ability can landmark a group-owned parcel, even if it&apos;s turned off in About Land &gt; Options tab."
+ name="land allow landmark" value="26" />
+ <action description="Allow &apos;Set Home to Here&apos; on group land"
+ longdescription="Members in a Role with this Ability can use World menu &gt; Set Home to Here on a parcel deeded to this group."
+ name="land allow set home" value="28" />
+ </action_set>
+ <action_set
+ description="These Abilities include powers to allow or restrict access to group-owned parcels, including freezing and ejecting Residents."
+ name="Parcel Access">
+ <action description="Manage parcel Access lists"
+ longdescription="Manage parcel Access lists in About Land &gt; Access tab."
+ name="land manage allowed" value="29" />
+ <action description="Manage parcel Ban lists"
+ longdescription="Manage parcel Ban lists in About Land &gt; Ban tab."
+ name="land manage banned" value="30" />
+ <action description="Change parcel &apos;Sell passes...&apos; settings"
+ longdescription="Change parcel &apos;Sell passes...&apos; settings in About Land &gt; Access tab."
+ name="land manage passes" value="31" />
+ <action description="Eject and freeze Residents on parcels"
+ longdescription="Members in a Role with this Ability can handle an unwelcome Resident on a group-owned parcel by right-clicking them, More &gt;, and selecting &apos;Eject...&apos; or &apos;Freeze...&apos;."
+ name="land admin" value="32" />
+ </action_set>
+ <action_set
+ description="These Abilities include powers to allow members to return objects and place and move Linden plants. This is useful for Members to clean up litter and do landscaping, but it should also be used with care, because there&apos;s no undo for returning objects."
+ name="Parcel Content">
+ <action description="Return objects owned by group"
+ longdescription="Return objects on group-owned parcels that are owned by the group in About Land &gt; Objects tab."
+ name="land return group owned" value="48" />
+ <action description="Return objects set to group"
+ longdescription="Return objects on group-owned parcels that are set to the group in About Land &gt; Objects tab."
+ name="land return group set" value="33" />
+ <action description="Return non-group objects"
+ longdescription="Return objects on group-owned parcels that are non-group in About Land &gt; Objects tab."
+ name="land return non group" value="34" />
+ <action description="Landscaping using Linden plants"
+ longdescription="Landscaping ability to place and move Linden trees, plants, and grasses. These items can be found in your inventory&apos;s Library &gt; Objects folder or they can be created via the Build button."
+ name="land gardening" value="35" />
+ </action_set>
+ <action_set
+ description="These Abilities include powers to deed, modify, and sell group-owned objects. These changes are done in the Edit Tools &gt; General Tab. Right-click an object and Edit to see its settings. "
+ name="Object Management">
+ <action description="Deed objects to group"
+ longdescription="Deed objects to group in the Edit Tools &gt; General Tab."
+ name="object deed" value="36" />
+ <action description="Manipulate (move, copy, modify) group-owned objects"
+ longdescription="Manipulate (move, copy, modify) group-owned objects in the Edit Tools &gt; General Tab."
+ name="object manipulate" value="38" />
+ <action description="Set group-owned objects for sale"
+ longdescription="Set group-owned objects for sale in the Edit Tools &gt; General tab."
+ name="object set sale" value="39" />
+ </action_set>
+ <action_set
+ description="These Abilities include powers which require Members to pay group liabilities and receive group dividends, and restrict access to group account history."
+ name="Accounting">
+ <action description="Pay group liabilities and receive group dividends"
+ longdescription="Members in a Role with this Ability will automatically pay group liabilities and receive group dividends. This means they will receive a portion of group-owned land sales which are distributed daily, as well as contribute towards things like parcel listing fees. "
+ name="accounting accountable" value="40" />
+ </action_set>
+ <action_set
+ description="These Abilities include powers to allow Members to send, receive, and view group Notices."
+ name="Notices">
+ <action description="Send Notices"
+ longdescription="Members in a Role with this Ability can send Notices in Group Information &gt; Notices tab."
+ name="notices send" value="42" />
+ <action description="Receive Notices and view past Notices"
+ longdescription="Members in a Role with this Ability can receive Notices and view past Notices in Group Information &gt; Notices tab."
+ name="notices receive" value="43" />
+ </action_set>
+ <action_set
+ description="These Abilities include powers to allow or restrict access to group chat sessions and group voice chat."
+ name="Chat">
+ <action description="Join Group Chat"
+ longdescription="Members in a Role with this Ability can join group chat sessions, for text and voice."
+ name="join group chat" value="16" />
+ <action description="Join Group Voice Chat"
+ longdescription="Members in a Role with this Ability can join group voice chat sessions. NOTE: The Join Group Chat ability is required to access the voice chat session."
+ name="join voice chat" value="27" />
+ <action description="Moderate Group Chat"
+ longdescription="Members in a Role with this Ability can control access and participation in group voice and text chat sessions."
+ name="moderate group chat" value="37" />
+ </action_set>
+</role_actions>
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
new file mode 100644
index 0000000000..58bb16581a
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -0,0 +1,788 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<!-- This file contains strings that used to be hardcoded in the source.
+ It is only for those strings which do not belong in a floater.
+ For example, the strings used in avatar chat bubbles, and strings
+ that are returned from one component and may appear in many places-->
+<strings>
+
+ <!-- Default Args - these arguments will be replaced in all strings -->
+ <string name="SECOND_LIFE">Second Life</string>
+ <string name="SECOND_LIFE_VIEWER">Second Life</string>
+ <string name="SECOND_LIFE_GRID">Second Life</string>
+ <string name="SECOND_LIFE_SUPPORT">Second Life Support Portal</string>
+
+ <!-- starting up -->
+ <string name="StartupDetectingHardware">Detecting hardware...</string>
+ <string name="StartupLoading">Loading</string>
+ <string name="Fullbright">Fullbright (Legacy)</string>
+ <string name="CacheWaiting">(Loading...)</string>
+ <string name="CacheNobody">(nobody)</string>
+ <string name="CacheNone">(none)</string>
+ <!-- Login -->
+ <string name="LoginInProgress">Logging in. [SECOND_LIFE_VIEWER] may appear frozen. Please wait.</string>
+ <string name="LoginInProgressNoFrozen">Logging in...</string>
+ <string name="LoginAuthenticating">Authenticating</string>
+ <string name="LoginMaintenance">Performing account maintenance...</string>
+ <string name="LoginAttempt">Previous login attempt failed. Logging in, attempt [NUMBER]</string>
+ <string name="LoginPrecaching">Loading world...</string>
+ <string name="LoginInitializingBrowser">Initializing embedded web browser...</string>
+ <string name="LoginInitializingMultimedia">Initializing multimedia...</string>
+ <string name="LoginInitializingFonts">Loading fonts...</string>
+ <string name="LoginVerifyingCache">Verifying cache files (can take 60-90 seconds)...</string>
+ <string name="LoginProcessingResponse">Processing Response...</string>
+ <string name="LoginInitializingWorld">Initializing World...</string>
+ <string name="LoginDecodingImages">Decoding images...</string>
+ <string name="LoginInitializingQuicktime">Initializing QuickTime...</string>
+ <string name="LoginQuicktimeNotFound">QuickTime not found - unable to initialize.</string>
+ <string name="LoginQuicktimeOK">QuickTime initialized successfully.</string>
+ <string name="LoginWaitingForRegionHandshake">Waiting for region handshake...</string>
+ <string name="LoginConnectingToRegion">Connecting to region...</string>
+ <string name="LoginDownloadingClothing">Downloading clothing...</string>
+ <string name="LoginFailedNoNetwork">Network Error: Could not establish connection, please check your network connection.</string>
+ <string name="Quit">Quit</string>
+ <string name="create_account_url">http://secondlife.com/registration/</string>
+
+ <!-- Disconnection -->
+ <string name="AgentLostConnection">This region may be experiencing trouble. Please check your connection to the Internet.</string>
+
+
+ <!-- Tooltip, llhoverview.cpp -->
+ <string name="TooltipPerson">Person</string><!-- Object under mouse pointer is an avatar -->
+ <string name="TooltipNoName">(no name)</string> <!-- No name on an object -->
+ <string name="TooltipOwner">Owner:</string> <!-- Owner name follows -->
+ <string name="TooltipPublic">Public</string> <!-- Public permissions on an object -->
+ <string name="TooltipIsGroup">(Group)</string> <!-- The name before this text is that of a group -->
+ <string name="TooltipFlagScript">Script</string>
+ <string name="TooltipFlagPhysics">Physics</string>
+ <string name="TooltipFlagTouch">Touch</string>
+ <string name="TooltipFlagL$">L$</string>
+ <string name="TooltipFlagDropInventory">Drop Inventory</string>
+ <string name="TooltipFlagPhantom">Phantom</string>
+ <string name="TooltipFlagTemporary">Temporary</string>
+ <string name="TooltipFlagRightClickMenu">(Right-click for menu)</string>
+ <string name="TooltipFreeToCopy">Free to copy</string>
+ <string name="TooltipForSaleL$">For Sale: L$[AMOUNT]</string> <!-- L$ version -->
+ <string name="TooltipForSaleMsg">For Sale: [MESSAGE]</string> <!-- Message (RetrievingData) -->
+ <string name="TooltipFlagGroupBuild">Group Build</string>
+ <string name="TooltipFlagNoBuild">No Build</string>
+ <string name="TooltipFlagNoEdit">Group Build</string>
+ <string name="TooltipFlagNotSafe">Not Safe</string><!-- damage area -->
+ <string name="TooltipFlagNoFly">No Fly</string>
+ <string name="TooltipFlagGroupScripts">Group Scripts</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="TooltipAltLeft">Alt-Left arrow for previous tab</string>
+ <string name="TooltipAltRight">Alt-Right arrow for next tab</string>
+
+ <!-- ButtonToolTips, llfloater.cpp -->
+ <string name="BUTTON_CLOSE_DARWIN">Close (Cmd-W)</string>
+ <string name="BUTTON_CLOSE_WIN">Close (Ctrl-W)</string>
+ <string name="BUTTON_RESTORE">Restore</string>
+ <string name="BUTTON_MINIMIZE">Minimize</string>
+ <string name="BUTTON_TEAR_OFF">Tear Off</string>
+ <string name="BUTTON_EDIT">Edit</string>
+
+ <!-- searching - generic -->
+ <string name="Searching">Searching...</string>
+ <string name="NoneFound">None found.</string>
+
+ <!-- Indicates that an avatar name or other similar datum is being retrieved. General usage. -->
+ <string name="RetrievingData">Retrieving...</string>
+
+ <string name="ReleaseNotes">Release Notes</string>
+ <string name="RELEASE_NOTES_BASE_URL">http://secondlife.com/app/releasenotes/</string>
+
+ <!-- Indicates something is being loaded. Maybe should be merged with RetrievingData -->
+ <string name="LoadingData">Loading...</string>
+
+
+ <!-- namecache -->
+ <!-- Avatar name: text shown for LLUUID::null -->
+ <string name="AvatarNameNobody">(nobody)</string>
+
+ <!-- Avatar name: text shown while fetching name -->
+ <string name="AvatarNameWaiting">(waiting)</string>
+
+ <!-- Avatar name: text shown as an alternative to AvatarNameFetching, easter egg. -->
+ <string name="AvatarNameHippos">(hippos)</string>
+
+ <!-- Group name: text shown for LLUUID::null -->
+ <string name="GroupNameNone">(none)</string>
+
+ <!-- Asset errors. Used in llassetstorage.cpp, translation from error code to error message. -->
+ <string name="AssetErrorNone">No error</string>
+ <string name="AssetErrorRequestFailed">Asset request: failed</string>
+ <string name="AssetErrorNonexistentFile">Asset request: non-existent file</string>
+ <string name="AssetErrorNotInDatabase">Asset request: asset not found in database</string>
+ <string name="AssetErrorEOF">End of file</string>
+ <string name="AssetErrorCannotOpenFile">Cannot open file</string>
+ <string name="AssetErrorFileNotFound">File not found</string>
+ <string name="AssetErrorTCPTimeout">File transfer timeout</string>
+ <string name="AssetErrorCircuitGone">Circuit gone</string>
+ <string name="AssetErrorPriceMismatch">Viewer and server do not agree on price</string>
+ <string name="AssetErrorUnknownStatus">Unknown status</string>
+
+ <!-- Asset Type Human Names -->
+ <string name="texture">texture</string>
+ <string name="sound">sound</string>
+ <string name="calling card">calling card</string>
+ <string name="landmark">landmark</string>
+ <string name="legacy script">legacy script</string>
+ <string name="clothing">clothing</string>
+ <string name="object">object</string>
+ <string name="note card">note card</string>
+ <string name="folder">folder</string>
+ <string name="root">root</string>
+ <string name="lsl2 script">lsl2 script</string>
+ <string name="lsl bytecode">lsl bytecode</string>
+ <string name="tga texture">tga texture</string>
+ <string name="body part">body part</string>
+ <string name="snapshot">snapshot</string>
+ <string name="lost and found">lost and found</string>
+ <string name="targa image">targa image</string>
+ <string name="trash">trash</string>
+ <string name="jpeg image">jpeg image</string>
+ <string name="animation">animation</string>
+ <string name="gesture">gesture</string>
+ <string name="simstate">simstate</string>
+ <string name="favorite">favorite</string>
+
+ <!-- llvoavatar. Displayed in the avatar chat bubble -->
+ <string name="AvatarEditingAppearance">(Editing Appearance)</string>
+ <string name="AvatarAway">Away</string>
+ <string name="AvatarBusy">Busy</string>
+ <string name="AvatarMuted">Muted</string>
+
+ <!-- animations -->
+ <string name="anim_express_afraid">Afraid</string>
+ <string name="anim_express_anger">Angry</string>
+ <string name="anim_away">Away</string>
+ <string name="anim_backflip">Backflip</string>
+ <string name="anim_express_laugh">Belly Laugh</string>
+ <string name="anim_express_toothsmile">BigSmile</string>
+ <string name="anim_blowkiss">Blow Kiss</string>
+ <string name="anim_express_bored">Bored</string>
+ <string name="anim_bow">Bow</string>
+ <string name="anim_clap">Clap</string>
+ <string name="anim_courtbow">Court Bow</string>
+ <string name="anim_express_cry">Cry</string>
+ <string name="anim_dance1">Dance 1</string>
+ <string name="anim_dance2">Dance 2</string>
+ <string name="anim_dance3">Dance 3</string>
+ <string name="anim_dance4">Dance 4</string>
+ <string name="anim_dance5">Dance 5</string>
+ <string name="anim_dance6">Dance 6</string>
+ <string name="anim_dance7">Dance 7</string>
+ <string name="anim_dance8">Dance 8</string>
+ <string name="anim_express_disdain">Disdain</string>
+ <string name="anim_drink">Drink</string>
+ <string name="anim_express_embarrased">Embarrassed</string>
+ <string name="anim_angry_fingerwag">Finger Wag</string>
+ <string name="anim_fist_pump">Fist Pump</string>
+ <string name="anim_yoga_float">Floating Yoga</string>
+ <string name="anim_express_frown">Frown</string>
+ <string name="anim_impatient">Impatient</string>
+ <string name="anim_jumpforjoy">Jump For Joy</string>
+ <string name="anim_kissmybutt">Kiss My Butt</string>
+ <string name="anim_express_kiss">Kiss</string>
+ <string name="anim_laugh_short">Laugh</string>
+ <string name="anim_musclebeach">Muscle Beach</string>
+ <string name="anim_no_unhappy">No (Unhappy)</string>
+ <string name="anim_no_head">No</string>
+ <string name="anim_nyanya">Nya-nya-nya</string>
+ <string name="anim_punch_onetwo">One-Two Punch</string>
+ <string name="anim_express_open_mouth">Open Mouth</string>
+ <string name="anim_peace">Peace</string>
+ <string name="anim_point_you">Point at Other</string>
+ <string name="anim_point_me">Point at Self</string>
+ <string name="anim_punch_l">Punch Left</string>
+ <string name="anim_punch_r">Punch Right</string>
+ <string name="anim_rps_countdown">RPS count</string>
+ <string name="anim_rps_paper">RPS paper</string>
+ <string name="anim_rps_rock">RPS rock</string>
+ <string name="anim_rps_scissors">RPS scissors</string>
+ <string name="anim_express_repulsed">Repulsed</string>
+ <string name="anim_kick_roundhouse_r">Roundhouse Kick</string>
+ <string name="anim_express_sad">Sad</string>
+ <string name="anim_salute">Salute</string>
+ <string name="anim_shout">Shout</string>
+ <string name="anim_express_shrug">Shrug</string>
+ <string name="anim_express_smile">Smile</string>
+ <string name="anim_smoke_idle">Smoke Idle</string>
+ <string name="anim_smoke_inhale">Smoke Inhale</string>
+ <string name="anim_smoke_throw_down">Smoke Throw Down</string>
+ <string name="anim_express_surprise">Surprise</string>
+ <string name="anim_sword_strike_r">Sword Strike</string>
+ <string name="anim_angry_tantrum">Tantrum</string>
+ <string name="anim_express_tongue_out">TongueOut</string>
+ <string name="anim_hello">Wave</string>
+ <string name="anim_whisper">Whisper</string>
+ <string name="anim_whistle">Whistle</string>
+ <string name="anim_express_wink">Wink</string>
+ <string name="anim_wink_hollywood">Wink (Hollywood)</string>
+ <string name="anim_express_worry">Worry</string>
+ <string name="anim_yes_happy">Yes (Happy)</string>
+ <string name="anim_yes_head">Yes</string>
+
+ <string name="texture_loading">Loading...</string>
+ <string name="worldmap_offline">Offline</string>
+
+ <!-- animations uploading status codes -->
+ <string name="Ok">OK</string>
+ <string name="Premature end of file">Premature end of file</string>
+ <string name="ST_NO_JOINT">Can't find ROOT or JOINT.</string>
+
+ <!-- Chat -->
+ <string name="whisper">whispers:</string>
+ <string name="shout">shouts:</string>
+ <string name="ringing">Connecting to in-world Voice Chat...</string>
+ <string name="connected">Connected</string>
+ <string name="unavailable">Voice not available at your current location</string>
+ <string name="hang_up">Disconnected from in-world Voice Chat</string>
+ <string name="ScriptQuestionCautionChatGranted">'[OBJECTNAME]', an object owned by '[OWNERNAME]', located in [REGIONNAME] at [REGIONPOS], has been granted permission to: [PERMISSIONS].</string>
+ <string name="ScriptQuestionCautionChatDenied">'[OBJECTNAME]', an object owned by '[OWNERNAME]', located in [REGIONNAME] at [REGIONPOS], has been denied permission to: [PERMISSIONS].</string>
+ <string name="ScriptTakeMoney">Take Linden dollars (L$) from you</string>
+ <string name="ActOnControlInputs">Act on your control inputs</string>
+ <string name="RemapControlInputs">Remap your control inputs</string>
+ <string name="AnimateYourAvatar">Animate your avatar</string>
+ <string name="AttachToYourAvatar">Attach to your avatar</string>
+ <string name="ReleaseOwnership">Release ownership and become public</string>
+ <string name="LinkAndDelink">Link and delink from other objects</string>
+ <string name="AddAndRemoveJoints">Add and remove joints with other objects</string>
+ <string name="ChangePermissions">Change its permissions</string>
+ <string name="TrackYourCamera">Track your camera</string>
+ <string name="ControlYourCamera">Control your camera</string>
+
+ <!-- IM -->
+ <string name="IM_logging_string">-- Instant message logging enabled --</string>
+
+ <!-- Sim Access labels -->
+ <string name="SIM_ACCESS_PG">PG</string>
+ <string name="SIM_ACCESS_MATURE">Mature</string>
+ <string name="SIM_ACCESS_ADULT">Adult</string>
+ <string name="SIM_ACCESS_DOWN">Offline</string>
+ <string name="SIM_ACCESS_MIN">Unknown</string>
+
+ <!-- For use when we do not have land type back from the server -->
+ <string name="land_type_unknown">(unknown)</string>
+
+ <!-- File load/save dialogs -->
+ <string name="all_files">All Files</string>
+ <string name="sound_files">Sounds</string>
+ <string name="animation_files">Animations</string>
+ <string name="image_files">Images</string>
+ <string name="save_file_verb">Save</string>
+ <string name="load_file_verb">Load</string>
+ <string name="targa_image_files">Targa Images</string>
+ <string name="bitmap_image_files">Bitmap Images</string>
+ <string name="avi_movie_file">AVI Movie File</string>
+ <string name="xaf_animation_file">XAF Anim File</string>
+ <string name="xml_file">XML File</string>
+ <string name="dot_raw_file">RAW File</string>
+ <string name="compressed_image_files">Compressed Images</string>
+ <string name="load_files">Load Files</string>
+ <string name="choose_the_directory">Choose Directory</string>
+
+ <!-- Avatar busy/away mode -->
+ <string name="AvatarSetNotAway">Set Not Away</string>
+ <string name="AvatarSetAway">Set Away</string>
+ <string name="AvatarSetNotBusy">Set Not Busy</string>
+ <string name="AvatarSetBusy">Set Busy</string>
+
+ <!-- Wearable Types -->
+ <string name="shape">Shape</string>
+ <string name="skin">Skin</string>
+ <string name="hair">Hair</string>
+ <string name="eyes">Eyes</string>
+ <string name="shirt">Shirt</string>
+ <string name="pants">Pants</string>
+ <string name="shoes">Shoes</string>
+ <string name="socks">Socks</string>
+ <string name="jacket">Jacket</string>
+ <string name="gloves">Gloves</string>
+ <string name="undershirt">Undershirt</string>
+ <string name="underpants">Underpants</string>
+ <string name="skirt">Skirt</string>
+ <string name="alpha">Alpha</string>
+ <string name="tattoo">Tattoo</string>
+ <string name="invalid">invalid</string>
+
+ <!-- notify -->
+ <string name="next">Next</string>
+ <string name="ok">OK</string>
+ <string name="GroupNotifyGroupNotice">Group Notice</string>
+ <string name="GroupNotifyGroupNotices">Group Notices</string>
+ <string name="GroupNotifySentBy">Sent by</string>
+ <string name="GroupNotifyAttached">Attached:</string>
+ <string name="GroupNotifyViewPastNotices">View past notices or opt-out of receiving these messages here.</string>
+ <string name="GroupNotifyOpenAttachment">Open Attachment</string>
+ <string name="GroupNotifySaveAttachment">Save Attachment</string>
+
+ <!-- body parts -->
+ <string name="BodyPartsRightArm">Right Arm</string>
+ <string name="BodyPartsHead">Head</string>
+ <string name="BodyPartsLeftArm">Left Arm</string>
+ <string name="BodyPartsLeftLeg">Left Leg</string>
+ <string name="BodyPartsTorso">Torso</string>
+ <string name="BodyPartsRightLeg">Right Leg</string>
+
+ <!-- slider -->
+ <string name="GraphicsQualityLow">Low</string>
+ <string name="GraphicsQualityMid">Mid</string>
+ <string name="GraphicsQualityHigh">High</string>
+
+ <!-- mouselook -->
+ <string name="LeaveMouselook">Press ESC to leave Mouselook.</string>
+
+ <!-- inventory -->
+ <string name="InventoryNoMatchingItems">No matching items found in inventory.</string>
+ <string name="InventoryNoTexture">
+ You do not have a copy of
+this texture in your inventory
+ </string>
+ <string name="no_transfer"> (no transfer)</string>
+ <string name="no_modify"> (no modify)</string>
+ <string name="no_copy"> (no copy)</string>
+ <string name="worn"> (worn)</string>
+ <string name="LoadingContents">Loading contents...</string>
+ <string name="NoContents">No contents</string>
+
+ <!-- Gestures labels -->
+ <string name="Chat"> Chat : </string>
+ <string name="Sound"> Sound : </string>
+ <string name="Wait"> --- Wait : </string>
+ <string name="AnimFlagStop"> Stop Animation : </string>
+ <string name="AnimFlagStart"> Start Animation : </string>
+ <string name="Wave"> Wave </string>
+ <string name="HelloAvatar"> Hello, avatar! </string>
+
+ <!-- inventory filter -->
+ <string name="Animations"> Animations,</string>
+ <string name="Calling Cards"> Calling Cards,</string>
+ <string name="Clothing"> Clothing,</string>
+ <string name="Gestures"> Gestures,</string>
+ <string name="Landmarks"> Landmarks,</string>
+ <string name="Notecards"> Notecards,</string>
+ <string name="Objects"> Objects,</string>
+ <string name="Scripts"> Scripts,</string>
+ <string name="Sounds"> Sounds,</string>
+ <string name="Textures"> Textures,</string>
+ <string name="Snapshots"> Snapshots,</string>
+ <string name="No Filters"> No </string>
+ <string name="Since Logoff"> - Since Logoff</string>
+
+ <!-- inventory folder -->
+ <string name="InvFolder My Inventory">My Inventory</string>
+ <string name="InvFolder My Favorites">My Favorites</string>
+ <string name="InvFolder Library">Library</string>
+ <string name="InvFolder Textures">Textures</string>
+ <string name="InvFolder Sounds">Sounds</string>
+ <string name="InvFolder Calling Cards">Calling Cards</string>
+ <string name="InvFolder Landmarks">Landmarks</string>
+ <string name="InvFolder Scripts">Scripts</string>
+ <string name="InvFolder Clothing">Clothing</string>
+ <string name="InvFolder Objects">Objects</string>
+ <string name="InvFolder Notecards">Notecards</string>
+ <string name="InvFolder New Folder">New Folder</string>
+ <string name="InvFolder Inventory">Inventory</string>
+ <string name="InvFolder Uncompressed Images">Uncompressed Images</string>
+ <string name="InvFolder Body Parts">Body Parts</string>
+ <string name="InvFolder Trash">Trash</string>
+ <string name="InvFolder Photo Album">Photo Album</string>
+ <string name="InvFolder Lost And Found">Lost And Found</string>
+ <string name="InvFolder Uncompressed Sounds">Uncompressed Sounds</string>
+ <string name="InvFolder Animations">Animations</string>
+ <string name="InvFolder Gestures">Gestures</string>
+ <string name="InvFolder favorite">Favorites</string>
+
+ <!-- inventory FVBridge -->
+ <string name="NO_COPY"> (no copy)</string>
+ <string name="NO_MOD"> (no modify)</string>
+ <string name="NO_XFER"> (no transfer)</string>
+
+ <string name="Buy">Buy</string>
+ <string name="BuyforL$">Buy for L$</string>
+
+ <string name="Stone">Stone</string>
+ <string name="Metal">Metal</string>
+ <string name="Glass">Glass</string>
+ <string name="Wood">Wood</string>
+ <string name="Flesh">Flesh</string>
+ <string name="Plastic">Plastic</string>
+ <string name="Rubber">Rubber</string>
+ <string name="Light">Light</string>
+
+ <!-- keyboard -->
+ <string name="KBShift">Shift</string>
+ <string name="KBCtrl">Ctrl</string>
+
+ <!-- Avatar Skeleton -->
+ <string name="Chest">Chest</string>
+ <string name="Skull">Skull</string>
+ <string name="Left Shoulder">Left Shoulder</string>
+ <string name="Right Shoulder">Right Shoulder</string>
+ <string name="Left Hand">Left Hand</string>
+ <string name="Right Hand">Right Hand</string>
+ <string name="Left Foot">Left Foot</string>
+ <string name="Right Foot">Right Foot</string>
+ <string name="Spine">Spine</string>
+ <string name="Pelvis">Pelvis</string>
+ <string name="Mouth">Mouth</string>
+ <string name="Chin">Chin</string>
+ <string name="Left Ear">Left Ear</string>
+ <string name="Right Ear">Right Ear</string>
+ <string name="Left Eyeball">Left Eyeball</string>
+ <string name="Right Eyeball">Right Eyeball</string>
+ <string name="Nose">Nose</string>
+ <string name="R Upper Arm">R Upper Arm</string>
+ <string name="R Forearm">R Forearm</string>
+ <string name="L Upper Arm">L Upper Arm</string>
+ <string name="L Forearm">L Forearm</string>
+ <string name="Right Hip">Right Hip</string>
+ <string name="R Upper Leg">R Upper Leg</string>
+ <string name="R Lower Leg">R Lower Leg</string>
+ <string name="Left Hip">Left Hip</string>
+ <string name="L Upper Leg">L Upper Leg</string>
+ <string name="L Lower Leg">L Lower Leg</string>
+ <string name="Stomach">Stomach</string>
+ <string name="Left Pec">Left Pec</string>
+ <string name="Right Pec">Right Pec</string>
+
+ <!-- HUD Position -->
+ <string name="Center 2">Center 2</string>
+ <string name="Top Right">Top Right</string>
+ <string name="Top">Top</string>
+ <string name="Top Left">Top Left</string>
+ <string name="Center">Center</string>
+ <string name="Bottom Left">Bottom Left</string>
+ <string name="Bottom">Bottom</string>
+ <string name="Bottom Right">Bottom Right</string>
+
+ <!-- compile queue-->
+ <string name="CompileQueueDownloadedCompiling">Downloaded, now compiling</string>
+ <string name="CompileQueueScriptNotFound">Script not found on server.</string>
+ <string name="CompileQueueProblemDownloading">Problem downloading</string>
+ <string name="CompileQueueInsufficientPermDownload">Insufficient permissions to download a script.</string>
+ <string name="CompileQueueInsufficientPermFor">Insufficient permissions for</string>
+ <string name="CompileQueueUnknownFailure">Unknown failure to download</string>
+ <string name="CompileQueueTitle">Recompilation Progress</string>
+ <string name="CompileQueueStart">recompile</string>
+ <string name="ResetQueueTitle">Reset Progress</string>
+ <string name="ResetQueueStart">reset</string>
+ <string name="RunQueueTitle">Set Running Progress</string>
+ <string name="RunQueueStart">set running</string>
+ <string name="NotRunQueueTitle">Set Not Running Progress</string>
+ <string name="NotRunQueueStart">set not running</string>
+
+ <!-- compile comment text-->
+ <string name="CompileSuccessful">Compile successful!</string>
+ <string name="CompileSuccessfulSaving">Compile successful, saving...</string>
+ <string name="SaveComplete">Save complete.</string>
+ <string name="ObjectOutOfRange">Script (object out of range)</string>
+
+ <!-- god tools -->
+ <string name="GodToolsObjectOwnedBy">Object [OBJECT] owned by [OWNER]</string>
+
+ <!-- groups -->
+ <string name="GroupsNone">none</string>
+ <string name="Group"> (group)</string>
+ <string name="Unknown">(Unknown)</string>
+ <string name="SummaryForTheWeek">Summary for this week, beginning on </string>
+ <string name="NextStipendDay">The next stipend day is </string>
+ <string name="GroupIndividualShare"> Group Individual Share
+
+ </string>
+ <string name="Balance">Balance</string>
+ <string name="Credits">Credits</string>
+ <string name="Debits">Debits</string>
+ <string name="Total">Total</string>
+ <string name="NoGroupDataFound">No group data found for group </string>
+
+ <!-- floater IM -->
+ <string name="IMParentEstate">parent estate</string>
+ <string name="IMMainland">mainland</string>
+ <string name="IMTeen">teen</string>
+
+ <!-- floater region info -->
+ <string name="RegionInfoError">error</string>
+ <string name="RegionInfoAllEstatesOwnedBy">
+ all estates
+owned by [OWNER]
+ </string>
+ <string name="RegionInfoAllEstatesYouOwn">all estates you owned</string>
+ <string name="RegionInfoAllEstatesYouManage">
+ all estates that
+you managed for [OWNER]
+ </string>
+ <string name="RegionInfoAllowedResidents">Allowed residents: ([ALLOWEDAGENTS], max [MAXACCESS])</string>
+ <string name="RegionInfoAllowedGroups">Allowed groups: ([ALLOWEDGROUPS], max [MAXACCESS])</string>
+
+ <!-- script editor -->
+ <string name="CursorPos">Line [LINE], Column [COLUMN]</string>
+
+ <!-- panel dir browser -->
+ <string name="PanelDirCountFound">[COUNT] found</string>
+ <string name="PanelDirTimeStr">[hour12,datetime,slt]:[min,datetime,slt] [ampm,datetime,slt]</string>
+
+ <!-- panel dir events -->
+ <string name="PanelDirEventsDateText">[mthnum,datetime,slt]/[day,datetime,slt]</string>
+
+ <!-- panel contents -->
+ <string name="PanelContentsNewScript">New Script</string>
+
+ <!-- panel avatar -->
+ <!-- <string name="None">None</string> Duplicate-->
+
+ <!-- Mute -->
+ <string name="MuteByName">(by name)</string>
+ <string name="MuteAgent">(resident)</string>
+ <string name="MuteObject">(object)</string>
+ <string name="MuteGroup">(group)</string>
+
+ <!-- Region/Estate Covenant -->
+ <string name="RegionNoCovenant">There is no Covenant provided for this Estate.</string>
+ <string name="RegionNoCovenantOtherOwner">There is no Covenant provided for this Estate. The land on this estate is being sold by the Estate owner, not Linden Lab. Please contact the Estate Owner for sales details.</string>
+ <string name="covenant_last_modified">Last Modified:</string>
+ <string name="none_text"> (none) </string>
+ <string name="never_text"> (never) </string>
+
+ <!--Region Details-->
+ <string name="GroupOwned">Group Owned</string>
+ <string name="Public">Public</string>
+
+ <!-- panel classified -->
+ <string name="ClassifiedClicksTxt">Clicks: [TELEPORT] teleport, [MAP] map, [PROFILE] profile</string>
+ <string name="ClassifiedUpdateAfterPublish">(will update after publish)</string>
+
+ <!-- group voting dialog -->
+ <string name="GroupVoteYes">Yes</string>
+ <string name="GroupVoteNo">No</string>
+ <string name="GroupVoteNoActiveProposals">There are currently no active proposals</string>
+ <string name="GroupVoteNoArchivedProposals">There are currently no archived proposals</string>
+ <string name="GroupVoteRetrievingArchivedProposals">Retrieving archived proposals</string>
+ <string name="GroupVoteRetrievingActiveProposals">Retrieving active proposals</string>
+
+ <!-- Multi Preview Floater -->
+ <string name="MultiPreviewTitle">Preview</string>
+ <string name="MultiPropertiesTitle">Properties</string>
+
+ <!-- inventory offer -->
+ <string name="InvOfferAnObjectNamed">An object named</string>
+ <string name="InvOfferOwnedByGroup">owned by the group</string>
+ <string name="InvOfferOwnedByUnknownGroup">owned by an unknown group</string>
+ <string name="InvOfferOwnedBy">owned by</string>
+ <string name="InvOfferOwnedByUnknownUser">owned by an unknown user</string>
+ <string name="InvOfferGaveYou">gave you</string>
+ <string name="InvOfferYouDecline">You decline</string>
+ <string name="InvOfferFrom">from</string>
+
+ <!-- group money -->
+ <string name="GroupMoneyTotal">Total</string>
+ <string name="GroupMoneyBought">bought</string>
+ <string name="GroupMoneyPaidYou">paid you</string>
+ <string name="GroupMoneyPaidInto">paid into</string>
+ <string name="GroupMoneyBoughtPassTo">bought pass to</string>
+ <string name="GroupMoneyPaidFeeForEvent">paid fee for event</string>
+ <string name="GroupMoneyPaidPrizeForEvent">paid prize for event</string>
+ <string name="GroupMoneyBalance">Balance</string>
+ <string name="GroupMoneyCredits">Credits</string>
+ <string name="GroupMoneyDebits">Debits</string>
+
+ <!-- viewer object -->
+ <string name="ViewerObjectContents">Contents</string>
+
+ <!-- Viewer menu -->
+ <string name="AcquiredItems">Acquired Items</string>
+ <string name="Cancel">Cancel</string>
+ <string name="UploadingCosts">Uploading %s costs</string>
+ <string name="UnknownFileExtension">
+ Unknown file extension .%s
+Expected .wav, .tga, .bmp, .jpg, .jpeg, or .bvh
+ </string>
+
+ <!-- Previews -->
+ <string name="FileSaved">File Saved</string>
+ <string name="Receiving">Receiving</string>
+
+ <!-- status bar , Time -->
+ <string name="AM">AM</string>
+ <string name="PM">PM</string>
+ <string name="PST">PST</string>
+ <string name="PDT">PDT</string>
+
+ <!-- Directions, HUD -->
+ <string name="Forward">Forward</string>
+ <string name="Left">Left</string>
+ <string name="Right">Right</string>
+ <string name="Back">Back</string>
+ <string name="North">North</string>
+ <string name="South">South</string>
+ <string name="West">West</string>
+ <string name="East">East</string>
+ <string name="Up">Up</string>
+ <string name="Down">Down</string>
+
+ <!-- Search Category Strings -->
+ <string name="Any Category">Any Category</string>
+ <string name="Shopping">Shopping</string>
+ <string name="Land Rental">Land Rental</string>
+ <string name="Property Rental">Property Rental</string>
+ <string name="Special Attraction">Special Attraction</string>
+ <string name="New Products">New Products</string>
+ <string name="Employment">Employment</string>
+ <string name="Wanted">Wanted</string>
+ <string name="Service">Service</string>
+ <string name="Personal">Personal</string>
+
+ <!-- PARCEL_CATEGORY_UI_STRING -->
+ <string name="None">None</string>
+ <string name="Linden Location">Linden Location</string>
+ <string name="Adult">Adult</string>
+ <string name="Arts&amp;Culture">Arts &amp; Culture</string>
+ <string name="Business">Business</string>
+ <string name="Educational">Educational</string>
+ <string name="Gaming">Gaming</string>
+ <string name="Hangout">Hangout</string>
+ <string name="Newcomer Friendly">Newcomer Friendly</string>
+ <string name="Parks&amp;Nature">Parks &amp; Nature</string>
+ <string name="Residential">Residential</string>
+ <!--<string name="Shopping">Shopping</string> -->
+ <string name="Stage">Stage</string>
+ <string name="Other">Other</string>
+ <string name="Any">Any</string>
+
+ <!-- puncutations -->
+ <string name=":">:</string>
+ <string name=",">,</string>
+ <string name="...">...</string>
+ <string name="***">***</string>
+ <string name="(">(</string>
+ <string name=")">)</string>
+ <string name=".">.</string>
+ <string name="'">'</string>
+ <string name="---">---</string>
+
+ <!-- OSMessageBox messages -->
+ <string name="MBCmdLineError">
+ An error was found parsing the command line.
+Please see: http://wiki.secondlife.com/wiki/Client_parameters
+Error:
+ </string>
+ <string name="MBCmdLineUsg">[SECOND_LIFE] Command line usage:</string>
+ <string name="MBUnableToAccessFile">
+ [SECOND_LIFE] is unable to access a file that it needs.
+
+This can be because you somehow have multiple copies running, or your system incorrectly thinks a file is open.
+If this message persists, restart your computer and try again.
+If it continues to persist, you may need to completely uninstall [SECOND_LIFE] and reinstall it.
+ </string>
+ <string name="MBFatalError">Fatal Error</string>
+ <string name="MBRequiresAltiVec"> [SECOND_LIFE] requires a processor with AltiVec (G4 or later).</string>
+ <string name="MBAlreadyRunning">
+ [SECOND_LIFE] is already running.
+Check your task bar for a minimized copy of the program.
+If this message persists, restart your computer.
+ </string>
+ <string name="MBFrozenCrashed">
+ [SECOND_LIFE] appears to have frozen or crashed on the previous run.
+Would you like to send a crash report?
+ </string>
+ <string name="MBAlert">Alert</string>
+ <string name="MBNoDirectX">
+ [SECOND_LIFE] is unable to detect DirectX 9.0b or greater.
+[SECOND_LIFE] uses DirectX to detect hardware and/or outdated drivers that can cause stability problems, poor performance and crashes. While you can run [SECOND_LIFE] without it, we highly recommend running with DirectX 9.0b.
+
+Do you wish to continue?
+ </string>
+ <string name="MBWarning">Warning</string>
+ <string name="MBNoAutoUpdate">
+ Automatic updating is not yet implemented for Linux.
+Please download the latest version from www.secondlife.com.
+ </string>
+ <string name="MBRegClassFailed">RegisterClass failed</string>
+ <string name="MBError">Error</string>
+ <string name="MBFullScreenErr">
+ Unable to run fullscreen at [WIDTH] x [HEIGHT].
+Running in window.
+ </string>
+ <string name="MBDestroyWinFailed">Shutdown Error while destroying window (DestroyWindow() failed)</string>
+ <string name="MBShutdownErr">Shutdown Error</string>
+ <string name="MBDevContextErr">Can't make GL device context</string>
+ <string name="MBPixelFmtErr">Can't find suitable pixel format</string>
+ <string name="MBPixelFmtDescErr">Can't get pixel format description</string>
+ <string name="MBTrueColorWindow">
+ [SECOND_LIFE] requires True Color (32-bit) to run in a window.
+Please go to Control Panels &gt; Display &gt; Settings and set the screen to 32-bit color.
+Alternately, if you choose to run fullscreen, [SECOND_LIFE] will automatically adjust the screen each time it runs.
+ </string>
+ <string name="MBAlpha">
+ [SECOND_LIFE] is unable to run because it can't get an 8 bit alpha channel. Usually this is due to video card driver issues.
+Please make sure you have the latest video card drivers installed.
+Also be sure your monitor is set to True Color (32-bit) in Control Panels &gt; Display &gt; Settings.
+If you continue to receive this message, contact customer support.
+ </string>
+ <string name="MBPixelFmtSetErr">Can't set pixel format</string>
+ <string name="MBGLContextErr">Can't create GL rendering context</string>
+ <string name="MBGLContextActErr">Can't activate GL rendering context</string>
+ <string name="MBVideoDrvErr">
+ [SECOND_LIFE] is unable to run because your video card drivers did not install properly, are out of date, or are for unsupported hardware. Please make sure you have the latest video card drivers and even if you do have the latest, try reinstalling them.
+
+If you continue to receive this message, contact customer support.
+ </string>
+
+ <!-- Group Information -->
+
+
+ <!-- Locale Information -->
+ <string name="MicrosoftLocale">english</string>
+ <string name="DarwinLocale">C</string>
+ <string name="LinuxLocale">C</string>
+
+ <!--
+ datetimeToCodes["wkday"] = "%a"; // Thu
+ datetimeToCodes["weekday"] = "%A"; // Thursday
+ datetimeToCodes["year4"] = "%Y"; // 2009
+ datetimeToCodes["year"] = "%Y"; // 2009
+ datetimeToCodes["year2"] = "%y"; // 09
+ datetimeToCodes["mth"] = "%b"; // Aug
+ datetimeToCodes["month"] = "%B"; // August
+ datetimeToCodes["mthnum"] = "%m"; // 08
+ datetimeToCodes["day"] = "%d"; // 31
+ datetimeToCodes["hour24"] = "%H"; // 14
+ datetimeToCodes["hour"] = "%H"; // 14
+ datetimeToCodes["hour12"] = "%I"; // 02
+ datetimeToCodes["min"] = "%M"; // 59
+ datetimeToCodes["ampm"] = "%p"; // AM
+ datetimeToCodes["second"] = "%S"; // 59
+ datetimeToCodes["timezone"] = "%Z"; // PST
+ -->
+
+ <string name="TimeHour">hour,datetime,slt</string>
+ <string name="TimeMin">min,datetime,slt</string>
+ <string name="TimeYear">year,datetime,slt</string>
+ <string name="TimeDay">day,datetime,slt</string>
+ <string name="TimeMonth">mthnum,datetime,slt</string>
+ <string name="TimeWeek">wkday,datetime,slt</string>
+ <string name="TimeAMPM">ampm,datetime,slt</string>
+ <string name="TimeHour12">hour12,datetime,slt</string>
+
+ <string name="LTimeMthNum">mthnum,datetime,local</string>
+ <string name="LTimeWeek">wkday,datetime,local</string>
+ <string name="LTimeMonth">mth,datetime,local</string>
+ <string name="LTimeDay">day,datetime,local</string>
+ <string name="LTimeSec">second,datetime,local</string>
+ <string name="LTimeHour">hour,datetime,local</string>
+ <string name="LTimeMin">min,datetime,local</string>
+ <string name="LTimeYear">year,datetime,local</string>
+ <string name="LTimeSec">second,datetime,local</string>
+
+ <string name="UTCTimeWeek">weekday,datetime,utc</string>
+ <string name="UTCTimeDay">day,datetime,utc</string>
+ <string name="UTCTimeMth">mth,datetime,utc</string>
+ <string name="UTCTimeYr">year,datetime,utc</string>
+ <string name="UTCTimeHr">hour,datetime,utc</string>
+ <string name="UTCTimeMin">min,datetime,utc</string>
+ <string name="UTCTimeSec">second,datetime,utc</string>
+ <string name="UTCTimeTimezone">timezone,datetime,utc</string>
+</strings>
diff --git a/indra/newview/skins/default/xui/en/teleport_strings.xml b/indra/newview/skins/default/xui/en/teleport_strings.xml
new file mode 100644
index 0000000000..616dc1a1d4
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/teleport_strings.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<teleport_messages>
+ <message_set name="errors">
+ <message name="invalid_tport">
+ Problem encountered processing your teleport request. You may
+need to log back in before you can teleport. If you continue
+to get this message, please check the Tech Support FAQ at:
+www.secondlife.com/support
+ </message>
+ <message name="invalid_region_handoff">
+ Problem encountered processing your region crossing. You may
+need to log back in before you can cross regions. If you continue
+to get this message, please check the Tech Support FAQ at:
+www.secondlife.com/support.
+ </message>
+ <message name="blocked_tport">
+ Sorry, teleport is currently blocked. Try again in a moment.
+If you still cannot teleport, please log out and log back in to
+resolve the problem.
+ </message>
+ <message name="nolandmark_tport">
+ Sorry, but system was unable to locate landmark destination.
+ </message>
+ <message name="timeout_tport">
+ Sorry, but system was unable to complete the teleport connection.
+Try again in a moment.
+ </message>
+ <message name="noaccess_tport">
+ Sorry, you do not have access to that teleport destination.
+ </message>
+ <message name="missing_attach_tport">
+ Your attachments have not arrived yet. Try waiting for a few
+more seconds or log out and back in again before attempting
+to teleport.
+ </message>
+ <message name="too_many_uploads_tport">
+ The asset queue in this region is currently clogged so your teleport
+request will not be able to succeed in a timely manner. Please try again
+in a few minutes or go to a less busy area.
+ </message>
+ <message name="expired_tport">
+ Sorry, but the system was unable to complete your teleport request
+in a timely fashion. Please try again in a few minutes.
+ </message>
+ <message name="expired_region_handoff">
+ Sorry, but the system was unable to complete your region crossing
+in a timely fashion. Please try again in a few minutes.
+ </message>
+ <message name="no_host">
+ Unable to find teleport destination. The destination may be
+temporarily unavailable or no longer exists. Please try again
+in a few minutes.
+ </message>
+ <message name="no_inventory_host">
+ The inventory system is currently unavailable.
+ </message>
+ </message_set>
+ <message_set name="progress">
+ <message name="sending_dest">
+ Sending to destination.
+ </message>
+ <message name="redirecting">
+ Redirecting to different location.
+ </message>
+ <message name="relaying">
+ Relaying to destination.
+ </message>
+ <message name="sending_home">
+ Sending home location request.
+ </message>
+ <message name="sending_landmark">
+ Sending landmark location request.
+ </message>
+ <message name="completing">
+ Completing teleport.
+ </message>
+ <message name="resolving">
+ Resolving destination.
+ </message>
+ <message name="contacting">
+ Contacting new region.
+ </message>
+ <message name="arriving">
+ Arriving...
+ </message>
+ <message name="requesting">
+ Requesting Teleport...
+ </message>
+ </message_set>
+</teleport_messages>
diff --git a/indra/newview/skins/default/xui/en/widgets/button.xml b/indra/newview/skins/default/xui/en/widgets/button.xml
new file mode 100644
index 0000000000..a1e074fae2
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/button.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<button image_unselected="button_enabled_32x128.tga"
+ image_selected="button_enabled_selected_32x128.tga"
+ image_disabled_selected="button_disabled_32x128.tga"
+ image_disabled="button_disabled_32x128.tga"
+ label_color="ButtonLabelColor"
+ label_color_selected="ButtonLabelSelectedColor"
+ label_color_disabled="ButtonLabelDisabledColor"
+ label_color_disabled_selected="ButtonLabelSelectedDisabledColor"
+ highlight_color="ButtonUnselectedFgColor"
+ image_color="ButtonImageColor"
+ image_color_disabled="ButtonImageColor"
+ flash_color="ButtonFlashBgColor"
+ hover_glow_amount="0.15"
+ halign="center"
+ scale_image="true">
+</button>
diff --git a/indra/newview/skins/default/xui/en/widgets/check_box.xml b/indra/newview/skins/default/xui/en/widgets/check_box.xml
new file mode 100644
index 0000000000..ff01dcebd8
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/check_box.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<check_box text_enabled_color="LabelTextColor"
+ text_disabled_color="LabelDisabledColor"
+ font="SansSerifSmall"
+ follows="left|top">
+ <check_box.label_text name="checkbox label"/>
+ <check_box.check_button name="CheckboxCtrl Button"
+ commit_on_return="false"
+ label=""
+ is_toggle="true"
+ hover_glow_amount="0.35"
+ font="SansSerif"
+ scale_image="false"
+ image_unselected="checkbox_enabled_false.tga"
+ image_selected="checkbox_enabled_true.tga"
+ image_disabled="checkbox_disabled_false.tga"
+ image_disabled_selected="checkbox_disabled_true.tga"/>
+</check_box>
diff --git a/indra/newview/skins/default/xui/en/widgets/color_swatch.xml b/indra/newview/skins/default/xui/en/widgets/color_swatch.xml
new file mode 100644
index 0000000000..304eda2d97
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/color_swatch.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<color_swatch alpha_background_image="color_swatch_alpha.tga"
+ border_color="DefaultHighlightLight"
+ name="color_swatch">
+ <color_swatch.caption_text name="caption"
+ font="SansSerifSmall"
+ follows="left|right|bottom"/>
+ <color_swatch.border name="border"
+ bevel_type="in"/>
+</color_swatch>
diff --git a/indra/newview/skins/default/xui/en/widgets/combo_box.xml b/indra/newview/skins/default/xui/en/widgets/combo_box.xml
new file mode 100644
index 0000000000..8a8f3f7f2c
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/combo_box.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<combo_box font="SansSerifSmall"
+ arrow_image="combobox_arrow.tga"
+ list_position="below"
+ max_chars="20"
+ follows="left|top">
+ <combo_box.combo_button name="Combobox Button"
+ hover_glow_amount="0.15"
+ font="SansSerifSmall"
+ halign="left"
+ scale_image="true"
+ image_unselected="square_btn_32x128.tga"
+ image_selected="square_btn_selected_32x128.tga"
+ image_disabled="square_btn_32x128.tga"
+ image_disabled_selected="square_btn_selected_32x128.tga"
+ image_overlay="combobox_arrow.tga"
+ image_overlay_alignment="right"/>
+ <combo_box.combo_list bg_writeable_color="white"/>
+ <combo_box.combo_editor name="Combo Text Entry"
+ select_on_focus="true"
+ font="SansSerifSmall"/>
+</combo_box>
diff --git a/indra/newview/skins/default/xui/en/widgets/drop_down.xml b/indra/newview/skins/default/xui/en/widgets/drop_down.xml
new file mode 100644
index 0000000000..c35d15ec92
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/drop_down.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<drop_down text_enabled_color="LabelTextColor"
+ text_disabled_color="LabelDisabledColor"
+ font="SansSerifSmall"
+ allow_text_entry="false"
+ follows="left|top">
+ <drop_down.combo_button name="Combobox Button"
+ hover_glow_amount="0.15"
+ font="SansSerifSmall"
+ halign="left"
+ scale_image="true"
+ image_unselected="square_btn_32x128.tga"
+ image_selected="square_btn_selected_32x128.tga"
+ image_disabled="square_btn_32x128.tga"
+ image_disabled_selected="square_btn_selected_32x128.tga"
+ image_overlay="combobox_arrow.tga"
+ image_overlay_alignment="right"/>
+ <drop_down.combo_list bg_writeable_color="white"/>
+ <drop_down.combo_editor name="Combo Text Entry" visible="false" select_on_focus="true"/>
+</drop_down>
diff --git a/indra/newview/skins/default/xui/en/widgets/flyout_button.xml b/indra/newview/skins/default/xui/en/widgets/flyout_button.xml
new file mode 100644
index 0000000000..e0033058c8
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/flyout_button.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<flyout_button list_position="below">
+ <action_button scale_image="true"
+ image_selected="flyout_btn_left_selected.tga"
+ image_unselected="flyout_btn_left.tga"
+ image_disabled="flyout_btn_left_disabled.tga"/>
+ <combo_button image_selected="flyout_btn_right_selected.tga"
+ image_unselected="flyout_btn_right.tga"
+ image_disabled="flyout_btn_right_disabled.tga"
+ pad_right="6"
+ tab_stop="false"/>
+</flyout_button>
+
diff --git a/indra/newview/skins/default/xui/en/widgets/icon.xml b/indra/newview/skins/default/xui/en/widgets/icon.xml
new file mode 100644
index 0000000000..adb743a628
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/icon.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<icon color="1.0 1.0 1.0 1.0"
+ tab_stop="false"
+ mouse_opaque="false"
+ name="icon"
+ follows="left|top">
+</icon>
diff --git a/indra/newview/skins/default/xui/en/widgets/line_editor.xml b/indra/newview/skins/default/xui/en/widgets/line_editor.xml
new file mode 100644
index 0000000000..11081ae308
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/line_editor.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<line_editor background_image="sm_rounded_corners_simple.tga"
+ select_on_focus="false"
+ handle_edit_keys_directly="false"
+ commit_on_focus_lost="true"
+ ignore_tab="true"
+ cursor_color="TextCursorColor"
+ text_color="TextFgColor"
+ text_readonly_color="TextFgReadOnlyColor"
+ text_tentative_color="TextFgTentativeColor"
+ bg_readonly_color="TextBgReadOnlyColor"
+ bg_writeable_color="TextBgWriteableColor"
+ bg_focus_color="TextBgFocusColor"
+ mouse_opaque="true"
+ name="line_editor"
+ font="SansSerifSmall">
+ <line_editor.border bevel_style="in"/>
+</line_editor>
diff --git a/indra/newview/skins/default/xui/en/widgets/location_input.xml b/indra/newview/skins/default/xui/en/widgets/location_input.xml
new file mode 100644
index 0000000000..32f5a18d1c
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/location_input.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<!--
+*TODO: Replace hardcoded buttons width/height with getting this info from the button images.
+ Currently that doesn't work because LLUIImage::getWidth/getHeight() return 1 for the images.
+-->
+<location_input font="SansSerifSmall"
+ add_landmark_image_enabled="icon_event_adult.tga"
+ add_landmark_image_disabled="icon_event.tga"
+ add_landmark_hpad="4"
+ allow_text_entry="true"
+ arrow_image="combobox_arrow.tga"
+ list_position="below"
+ show_text_as_tentative="false"
+ max_chars="20"
+ follows="left|top">
+ <location_input.background name="Background"
+ visible="true"
+ label=""
+ follows="left|top|right"
+ image_unselected="navbar_bg_center.tga"
+ image_selected="navbar_bg_center.tga"
+ image_disabled="navbar_bg_center.tga"
+ image_disabled_selected="navbar_bg_center.tga"
+ image_hover_selected="navbar_bg_center.tga"
+ image_hover_unselected="navbar_bg_center.tga" />
+ <location_input.info_button name="Place Information"
+ label=""
+ tool_tip="About current location"
+ width="20"
+ height="20"
+ follows="left|top"
+ image_overlay="map_infohub.tga"
+ image_unselected="navbar_bg_left.tga"
+ image_selected="navbar_bg_left.tga"
+ image_hover_selected="navbar_bg_left.tga"
+ image_hover_unselected="navbar_bg_left.tga"
+ image_disabled_selected="navbar_bg_left.tga"
+ image_disabled="navbar_bg_left.tga" />
+ <location_input.add_landmark_button name="Add Landmark"
+ label=""
+ width="16"
+ height="16"
+ tool_tip="Add to My Landmarks"
+ follows="right|top"
+ scale_image="false" />
+ <location_input.combo_button name="Location History"
+ label=""
+ tool_tip="My Location History"
+ width="20"
+ height="20"
+ image_overlay="navbar_history.tga"
+ image_overlay_alignment="center"
+ image_unselected="navbar_bg_right.tga"
+ image_selected="navbar_bg_right.tga"
+ image_disabled="navbar_bg_right.tga"
+ image_disabled_selected="navbar_bg_right.tga"
+ image_hover_selected="navbar_bg_right.tga"
+ image_hover_unselected="navbar_bg_right.tga" />
+ <location_input.combo_list bg_writeable_color="white"/>
+ <location_input.combo_editor name="Combo Text Entry"
+ select_on_focus="true"
+ font="SansSerifSmall"
+ bevel_style="none"
+ border_style="line"
+ border_thickness="0" />
+</location_input>
diff --git a/indra/newview/skins/default/xui/en/widgets/menu.xml b/indra/newview/skins/default/xui/en/widgets/menu.xml
new file mode 100644
index 0000000000..10bc124ea3
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/menu.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<menu bg_color="MenuDefaultBgColor"
+ bg_visible="true"
+ drop_shadow="true"
+ tear_off="false">
+</menu>
diff --git a/indra/newview/skins/default/xui/en/widgets/menu_item_call.xml b/indra/newview/skins/default/xui/en/widgets/menu_item_call.xml
new file mode 100644
index 0000000000..24bda97f44
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/menu_item_call.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<menu_item_call enabled_color="MenuItemEnabledColor"
+ disabled_color="MenuItemDisabledColor"
+ highlight_bg_color="MenuItemHighlightBgColor"
+ highlight_fg_color="MenuItemHighlightFgColor">
+</menu_item_call>
diff --git a/indra/newview/skins/default/xui/en/widgets/menu_item_check.xml b/indra/newview/skins/default/xui/en/widgets/menu_item_check.xml
new file mode 100644
index 0000000000..f6b06cb50b
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/menu_item_check.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<menu_item_check enabled_color="MenuItemEnabledColor"
+ disabled_color="MenuItemDisabledColor"
+ highlight_bg_color="MenuItemHighlightBgColor"
+ highlight_fg_color="MenuItemHighlightFgColor">
+</menu_item_check>
diff --git a/indra/newview/skins/default/xui/en/widgets/menu_item_separator.xml b/indra/newview/skins/default/xui/en/widgets/menu_item_separator.xml
new file mode 100644
index 0000000000..e5cea476da
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/menu_item_separator.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<menu_item_separator enabled_color="MenuItemEnabledColor"
+ disabled_color="MenuItemDisabledColor"
+ highlight_bg_color="MenuItemHighlightBgColor"
+ highlight_fg_color="MenuItemHighlightFgColor">
+</menu_item_separator>
diff --git a/indra/newview/skins/default/xui/en/widgets/multi_slider.xml b/indra/newview/skins/default/xui/en/widgets/multi_slider.xml
new file mode 100644
index 0000000000..e0900b48f3
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/multi_slider.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<multi_slider text_color="LabelTextColor"
+ text_disabled_color="LabelDisabledColor"
+ draw_track="true"
+ use_triangle="false"
+ font="SansSerifSmall"/>
diff --git a/indra/newview/skins/default/xui/en/widgets/multi_slider_bar.xml b/indra/newview/skins/default/xui/en/widgets/multi_slider_bar.xml
new file mode 100644
index 0000000000..04a2cd635c
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/multi_slider_bar.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<multi_slider_bar track_color="MultiSliderTrackColor"
+ thumb_disabled_color="MultiSliderDisabledThumbColor"
+ thumb_outline_color="MultiSliderThumbOutlineColor"
+ thumb_center_color="MultiSliderThumbCenterColor"
+ thumb_center_selected_color="MultiSliderThumbCenterSelectedColor"
+ triangle_color="MultiSliderTriangleColor"
+ draw_track="true"
+ use_triangle="false"
+ thumb_width="8"/>
diff --git a/indra/newview/skins/default/xui/en/widgets/name_editor.xml b/indra/newview/skins/default/xui/en/widgets/name_editor.xml
new file mode 100644
index 0000000000..21ba5c77f8
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/name_editor.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<name_editor default_text="(retrieving)"/> \ No newline at end of file
diff --git a/indra/newview/skins/default/xui/en/widgets/panel.xml b/indra/newview/skins/default/xui/en/widgets/panel.xml
new file mode 100644
index 0000000000..b81a70b845
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/panel.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel bg_opaque_color="PanelFocusBackgroundColor"
+ bg_alpha_color="PanelDefaultBackgroundColor"
+ background_visible="false"
+ background_opaque="false"/> \ No newline at end of file
diff --git a/indra/newview/skins/default/xui/en/widgets/progress_bar.xml b/indra/newview/skins/default/xui/en/widgets/progress_bar.xml
new file mode 100644
index 0000000000..3344de06b0
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/progress_bar.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<progress_bar image_bar="rounded_square.tga"
+ image_fill="progressbar_fill.tga"
+ image_shadow="rounded_square_soft.tga"
+ color_bar.red="0.5764"
+ color_bar.green="0.6627"
+ color_bar.blue="0.8352"
+ color_bar.alpha="1"
+ color_bar2.red="0.5764"
+ color_bar2.green="0.6627"
+ color_bar2.blue="0.8352"
+ color_bar2.alpha="1"
+ color_shadow.red="0.2000"
+ color_shadow.green="0.2000"
+ color_shadow.blue="0.4000"
+ color_shadow="1"
+ color_bg.red="0.3254"
+ color_bg.green="0.4000"
+ color_bg.blue="0.5058"
+ color_bg.alpha="1"
+ />
diff --git a/indra/newview/skins/default/xui/en/widgets/radio_group.xml b/indra/newview/skins/default/xui/en/widgets/radio_group.xml
new file mode 100644
index 0000000000..2d851042a5
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/radio_group.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<radio_group draw_border="true"
+ name="radio_group"
+ mouse_opaque="true"
+ follows="left|top"
+ font="SansSerifSmall"/>
diff --git a/indra/newview/skins/default/xui/en/widgets/radio_item.xml b/indra/newview/skins/default/xui/en/widgets/radio_item.xml
new file mode 100644
index 0000000000..0a27ca509b
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/radio_item.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<radio_item follows="left|top">
+ <radio_item.label_text name="Radio Item label"/>
+ <radio_item.check_button name="Radio control button"
+ image_unselected="radio_active_false.tga"
+ image_selected="radio_active_true.tga"
+ image_disabled="radio_inactive_false.tga"
+ image_disabled_selected="radio_inactive_true.tga"/>
+</radio_item>
diff --git a/indra/newview/skins/default/xui/en/widgets/scroll_bar.xml b/indra/newview/skins/default/xui/en/widgets/scroll_bar.xml
new file mode 100644
index 0000000000..a6c9a56dfd
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/scroll_bar.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<scroll_bar thumb_image="rounded_square.tga"
+ track_image="rounded_square.tga"
+ track_color="ScrollbarTrackColor"
+ thumb_color="ScrollbarThumbColor"
+ thickness="16">
+ <up_button image_unselected="scrollbutton_up_out_blue.tga"
+ image_selected="scrollbutton_up_in_blue.tga"
+ scale_image="true"/>
+ <down_button image_unselected="scrollbutton_down_out_blue.tga"
+ image_selected="scrollbutton_down_in_blue.tga"
+ scale_image="true"/>
+ <left_button image_unselected="scrollbutton_left_out_blue.tga"
+ image_selected="scrollbutton_left_in_blue.tga"
+ scale_image="true"/>
+ <right_button image_unselected="scrollbutton_right_out_blue.tga"
+ image_selected="scrollbutton_right_in_blue.tga"
+ scale_image="true"/>
+</scroll_bar>
diff --git a/indra/newview/skins/default/xui/en/widgets/scroll_container.xml b/indra/newview/skins/default/xui/en/widgets/scroll_container.xml
new file mode 100644
index 0000000000..cb9ef04797
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/scroll_container.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<scroll_container color="black"
+ opaque="false"/>
diff --git a/indra/newview/skins/default/xui/en/widgets/scroll_list.xml b/indra/newview/skins/default/xui/en/widgets/scroll_list.xml
new file mode 100644
index 0000000000..9e2c52acca
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/scroll_list.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<scroll_list fg_unselected_color="ScrollUnselectedColor"
+ fg_selected_color="ScrollSelectedFGColor"
+ bg_selected_color="ScrollSelectedBGColor"
+ fg_disable_color="ScrollDisabledColor"
+ bg_writeable_color="ScrollBgWriteableColor"
+ bg_read_only_color="ScrollBgReadOnlyColor"
+ bg_stripe_color="ScrollBGStripeColor"
+ hovered_color="ScrollHoveredColor"
+ highlighted_color="ScrollHighlightedColor"
+ column_padding="5"
+ draw_stripes="true"
+ background_visible="true"
+ heading_height="20"
+ draw_border="true"
+ draw_heading="false"/>
diff --git a/indra/newview/skins/default/xui/en/widgets/search_editor.xml b/indra/newview/skins/default/xui/en/widgets/search_editor.xml
new file mode 100644
index 0000000000..10080e5e39
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/search_editor.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<search_editor select_on_focus="true">
+ <clear_search_button image_unselected="icn_clear_lineeditor.tga"
+ image_selected="close_inactive_blue.tga"
+ image_color="TextFgTentativeColor"/>
+</search_editor>
diff --git a/indra/newview/skins/default/xui/en/widgets/side_tray.xml b/indra/newview/skins/default/xui/en/widgets/side_tray.xml
new file mode 100644
index 0000000000..e3b70ba6e2
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/side_tray.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<side_tray tab_btn_image="sidebar_tab_left.tga"
+ tab_btn_image_selected="sidebar_tab_left_selected.tga"
+ tab_btn_width = "32"
+ tab_btn_height = "32"
+ tab_btn_margin = "0"
+ >
+</side_tray>
diff --git a/indra/newview/skins/default/xui/en/widgets/simple_text_editor.xml b/indra/newview/skins/default/xui/en/widgets/simple_text_editor.xml
new file mode 100644
index 0000000000..20af3bb58f
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/simple_text_editor.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<simple_text_editor cursor_color="TextCursorColor"
+ default_color="TextDefaultColor"
+ text_color="TextFgColor"
+ text_readonly_color="TextFgReadOnlyColor"
+ bg_readonly_color="TextBgReadOnlyColor"
+ bg_writeable_color="TextBgWriteableColor"
+ bg_focus_color="TextBgFocusColor"
+ hide_border="false"
+ hide_scrollbar="false"
+ font="SansSerif"/>
diff --git a/indra/newview/skins/default/xui/en/widgets/slider.xml b/indra/newview/skins/default/xui/en/widgets/slider.xml
new file mode 100644
index 0000000000..f735d09476
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/slider.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<slider name="slider"
+ can_edit_text="false"
+ font="SansSerifSmall"
+ volume="false"
+ mouse_opaque="true"
+ show_text="true"
+ text_color="LabelTextColor"
+ text_disabled_color="LabelDisabledColor">
+ <slider.value_editor name="slider editor"
+ max_length="10"
+ follows="left|bottom"/>
+ <slider.value_text name="slider text"
+ follows="left|bottom"/>
+ <slider.slider_label name="slider label"/>
+</slider>
diff --git a/indra/newview/skins/default/xui/en/widgets/slider_bar.xml b/indra/newview/skins/default/xui/en/widgets/slider_bar.xml
new file mode 100644
index 0000000000..ba9ad21cc0
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/slider_bar.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<slider_bar track_color="SliderTrackColor"
+ thumb_outline_color="SliderThumbOutlineColor"
+ thumb_center_color="SliderThumbCenterColor"
+ thumb_image="icn_slide-thumb_dark.tga"
+ track_image="icn_slide-groove_dark.tga"
+ track_highlight_image="icn_slide-highlight.tga"/>
diff --git a/indra/newview/skins/default/xui/en/widgets/spinner.xml b/indra/newview/skins/default/xui/en/widgets/spinner.xml
new file mode 100644
index 0000000000..29bf1e8052
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/spinner.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<spinner text_enabled_color="LabelTextColor"
+ text_disabled_color="LabelDisabledColor"
+ decimal_digits="3"
+ label_width="40"/> \ No newline at end of file
diff --git a/indra/newview/skins/default/xui/en/widgets/tab_container.xml b/indra/newview/skins/default/xui/en/widgets/tab_container.xml
new file mode 100644
index 0000000000..8245e5ff23
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/tab_container.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<tab_container tab_min_width="60"
+ tab_max_width="150"
+ tab_top_image_unselected="tab_top_blue.tga"
+ tab_top_image_selected="tab_top_selected_blue.tga"
+ tab_bottom_image_unselected="tab_bottom_blue.tga"
+ tab_bottom_image_selected="tab_bottom_selected_blue.tga"
+ tab_left_image_unselected="tab_left.tga"
+ tab_left_image_selected="tab_left_selected.tga"/> \ No newline at end of file
diff --git a/indra/newview/skins/default/xui/en/widgets/text.xml b/indra/newview/skins/default/xui/en/widgets/text.xml
new file mode 100644
index 0000000000..3d98cd66f9
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/text.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<text name="text_box"
+ font="SansSerifSmall"
+ font_shadow="soft"
+ tab_stop="false"
+ halign="left"
+ hover_color="LabelSelectedColor"
+ disabled_color="LabelDisabledColor"
+ background_color="FloaterDefaultBackgroundColor"
+ border_color="DefaultHighlightLight"
+ use_ellipses="false"
+ bg_visible="false"
+ border_drop_shadow_visible="false"
+ border_visible="false"
+ hover="false"
+ text_color="LabelTextColor"/>
diff --git a/indra/newview/skins/default/xui/en/widgets/text_editor.xml b/indra/newview/skins/default/xui/en/widgets/text_editor.xml
new file mode 100644
index 0000000000..dc4c430546
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/text_editor.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<line_editor background_image="sm_rounded_corners_simple.tga"
+ select_on_focus="false"
+ handle_edit_keys_directly="false"
+ commit_on_focus_lost="true"
+ ignore_tab="true"
+ cursor_color="TextCursorColor"
+ text_color="TextFgColor"
+ text_readonly_color="TextFgReadOnlyColor"
+ text_tentative_color="TextFgTentativeColor"
+ bg_readonly_color="TextBgReadOnlyColor"
+ bg_writeable_color="TextBgWriteableColor"
+ bg_focus_color="TextBgFocusColor"
+ mouse_opaque="true"
+ name="line_editor"
+ font="SansSerifSmall">
+ <line_editor.border bevel_style="in"
+ follows="all"/>
+</line_editor>
diff --git a/indra/newview/skins/default/xui/en/widgets/texture_picker.xml b/indra/newview/skins/default/xui/en/widgets/texture_picker.xml
new file mode 100644
index 0000000000..33c3475eb2
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/texture_picker.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<texture_picker border_color="DefaultHighlightLight">
+ <multiselect_text font="SansSerifSmall"/>
+ <caption_text text="Multiple"
+ halign="center"
+ font="SansSerifSmall"/>
+ <border bevel_style="in"/>
+</texture_picker>
+
diff --git a/indra/newview/skins/default/xui/en/widgets/view_border.xml b/indra/newview/skins/default/xui/en/widgets/view_border.xml
new file mode 100644
index 0000000000..0b0a9beb95
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/view_border.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<view_border highlight_light_color="DefaultHighlightLight"
+ highlight_dark_color="DefaultHighlightDark"
+ shadow_light_color="DefaultShadowLight"
+ shadow_dark_color="DefaultShadowDark"
+ border_thickness="1"
+ border_style="line"
+ bevel_style="out"/> \ No newline at end of file
diff --git a/indra/newview/skins/default/xui/en/widgets/web_browser.xml b/indra/newview/skins/default/xui/en/widgets/web_browser.xml
new file mode 100644
index 0000000000..118d63bbf0
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/web_browser.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<web_browser border_visible="true"/>
diff --git a/indra/newview/skins/default/xui/en/xui_version.xml b/indra/newview/skins/default/xui/en/xui_version.xml
new file mode 100644
index 0000000000..0e777751d3
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/xui_version.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<xui_version>
+ 1.0
+</xui_version>
diff --git a/indra/newview/skins/default/xui/es/floater_about.xml b/indra/newview/skins/default/xui/es/floater_about.xml
index 0b3143a0e8..d6fbc38752 100644
--- a/indra/newview/skins/default/xui/es/floater_about.xml
+++ b/indra/newview/skins/default/xui/es/floater_about.xml
@@ -28,7 +28,7 @@
Voice chat Audio coding: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C)
- Me las apañaré con un poco de ayuda de mis amigos. -- Richard Starkey
+ Para tener éxito en los negocios, se atrevido, se el primero, se diferente. (Henry Marchant)
</text_editor>
<string name="you_are_at">
Está en [POSITION]
diff --git a/indra/newview/skins/default/xui/es/floater_about_land.xml b/indra/newview/skins/default/xui/es/floater_about_land.xml
index 93a463e5a6..3e3b8df646 100644
--- a/indra/newview/skins/default/xui/es/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/es/floater_about_land.xml
@@ -8,6 +8,18 @@
<text length="1" name="Description:" type="string">
Descripción:
</text>
+ <text name="LandType">
+ Tipo:
+ </text>
+ <text name="LandTypeText">
+ Mainland / Homestead
+ </text>
+ <text name="ContentRating">
+ Calificación:
+ </text>
+ <text name="ContentRatingText">
+ &apos;Adult&apos;
+ </text>
<text length="1" name="Owner:" type="string">
Propietario:
</text>
@@ -29,7 +41,7 @@
No está en venta.
</text>
<text length="1" name="For Sale: Price L$[PRICE]." type="string">
- Precio: [PRICE] L$
+ Precio: [PRICE] L$ ([PRICE_PER_SQM] L$/m²).
</text>
<button label="Vender el terreno..." label_selected="Vender el terreno..." name="Sell Land..."/>
<text length="1" name="For sale to" type="string">
@@ -41,7 +53,7 @@
<text length="1" name="Selling with no objects in parcel." type="string">
Los objetos no se incluyen en la venta.
</text>
- <button label="Cancelar la venta del terreno" label_selected="Cancelar la venta del terreno" name="Cancel Land Sale"/>
+ <button font="SansSerifSmall" left="275" width="165" label="Cancelar la venta del terreno" label_selected="Cancelar la venta del terreno" name="Cancel Land Sale"/>
<text length="1" name="Claimed:" type="string">
Reclamada:
</text>
@@ -60,9 +72,9 @@
<text length="1" name="DwellText" type="string">
0
</text>
- <button label="Comprar terreno..." label_selected="Comprar terreno..." name="Buy Land..."/>
+ <button label="Comprar terreno..." label_selected="Comprar terreno..." left="130" name="Buy Land..." width="125"/>
<button label="Comprar para el grupo..." label_selected="Comprar para el grupo..." name="Buy For Group..."/>
- <button label="Comprar un pase..." label_selected="Comprar un pase..." name="Buy Pass..." tool_tip="Un pase le da acceso temporal a este terreno."/>
+ <button label="Comprar un pase..." label_selected="Comprar un pase..." left="130" width="125" name="Buy Pass..." tool_tip="Un pase le da acceso temporal a este terreno."/>
<button label="Abandonar el terreno..." label_selected="Abandonar el terreno..." name="Abandon Land..."/>
<button label="Reclamar el terreno..." label_selected="Reclamar el terreno..." name="Reclaim Land..."/>
<button label="Venta Linden..." label_selected="Venta Linden..." name="Linden Sale..." tool_tip="El terreno debe estar en propiedad, con contenido, y no estar en subasta."/>
@@ -108,36 +120,60 @@ Vaya al menú Mundo &gt; Acerca del terreno o seleccione otra parcela para ver s
</string>
</panel>
<panel label="Contrato" name="land_covenant_panel">
+ <text name="estate_section_lbl">
+ Estado:
+ </text>
+ <text length="1" name="estate_name_lbl" type="string">
+ Nombre:
+ </text>
+ <text length="1" name="estate_name_text" type="string">
+ mainland
+ </text>
+ <text length="1" name="estate_owner_lbl" type="string">
+ Propietario:
+ </text>
+ <text length="1" name="estate_owner_text" type="string">
+ (nadie)
+ </text>
+ <text_editor length="1" name="covenant_editor" type="string">
+ No se ha aportado un contrato para este estado.
+ </text_editor>
<text length="1" name="covenant_timestamp_text" type="string">
Última modificación, Dic Miér 31 16:00:00 1969
</text>
- <text length="1" name="region_name_lbl" type="string">
+ <text name="region_section_lbl">
Región:
</text>
+ <text length="1" name="region_name_lbl" type="string">
+ Nombre:
+ </text>
<text length="1" name="region_name_text" type="string">
leyla
</text>
- <text length="1" name="estate_name_lbl" type="string">
- Estado:
+ <text name="region_landtype_lbl">
+ Tipo:
</text>
- <text length="1" name="estate_name_text" type="string">
- mainland
+ <text name="region_landtype_text">
+ Mainland / Homestead
</text>
- <text length="1" name="estate_owner_lbl" type="string">
- Propietario del estado:
+ <text name="region_maturity_lbl">
+ Calificación:
</text>
- <text length="1" name="estate_owner_text" type="string">
- (nadie)
+ <text name="region_maturity_text">
+ &apos;Adult&apos;
+ </text>
+ <text name="resellable_lbl">
+ Revender:
</text>
<text length="1" name="resellable_clause" type="string">
- El terreno comprado en esta región no se podrá revender.
+ El terreno de esta región no se podrá revender.
+ </text>
+ <text name="changeable_lbl">
+ Dividir:
</text>
<text length="1" name="changeable_clause" type="string">
- El terreno comprado en esta región no se podrá unir/dividir.
+ El terreno de esta región no se podrá unir/dividir.
</text>
- <text_editor length="1" name="covenant_editor" type="string">
- No se ha aportado un contrato para este estado.
- </text_editor>
<string name="can_resell">
El terreno comprado en esta región se podrá revender.
</string>
@@ -148,7 +184,7 @@ Vaya al menú Mundo &gt; Acerca del terreno o seleccione otra parcela para ver s
El terreno comprado en esta región se podrá unir o dividir.
</string>
<string name="can_not_change">
- PEl terreno comprado en esta región no se podrá unir o dividir.
+ El terreno comprado en esta región no se podrá unir o dividir.
</string>
</panel>
<panel label="Objetos" name="land_objects_panel">
@@ -158,7 +194,7 @@ Vaya al menú Mundo &gt; Acerca del terreno o seleccione otra parcela para ver s
<text length="1" name="Simulator primitive usage:" type="string">
Simulador de uso de prims:
</text>
- <text name="objects_available">
+ <text name="objects_available" left="214" width="230" >
[COUNT] de un máximo de [MAX] ([AVAILABLE] disponibles)
</text>
<string name="objects_available_text">
@@ -167,56 +203,57 @@ Vaya al menú Mundo &gt; Acerca del terreno o seleccione otra parcela para ver s
<string name="objects_deleted_text">
[COUNT] de un máximo de [MAX] ([DELETED] se borrarán)
</string>
- <text length="1" name="Primitives parcel supports:" type="string">
+ <text length="1" name="Primitives parcel supports:" type="string" width="200">
Prims que admite la parcela:
</text>
- <text name="object_contrib_text">
+ <text name="object_contrib_text" left="214" width="152">
[COUNT]
</text>
<text length="1" name="Primitives on parcel:" type="string">
Prims en la parcela:
</text>
- <text name="total_objects_text">
+ <text name="total_objects_text" left="214" width="48">
[COUNT]
</text>
- <text length="1" name="Owned by parcel owner:" type="string">
+ <text length="1" name="Owned by parcel owner:" type="string" left="14" width="180" >
Del propietario de la parcela:
</text>
- <text name="owner_objects_text">
+ <text name="owner_objects_text" left="214" width="48">
[COUNT]
</text>
- <button label="Mostrar" label_selected="Mostrar" name="ShowOwner"/>
- <button label="Devolver..." label_selected="Devolver..." name="ReturnOwner..." tool_tip="Devolver los objetos a sus propietarios."/>
- <text length="1" name="Set to group:" type="string">
+ <button label="Mostrar" label_selected="Mostrar" name="ShowOwner" right="-135" width="60"/>
+ <button label="Devolver..." label_selected="Devolver..." name="ReturnOwner..." tool_tip="Devolver los objetos a sus propietarios." right="-10" width="119"/>
+ <text length="1" name="Set to group:" type="string" left="14" width="180">
Del grupo:
</text>
- <text name="group_objects_text">
+ <text name="group_objects_text" left="214" width="48">
[COUNT]
</text>
- <button label="Mostrar" label_selected="Mostrar" name="ShowGroup"/>
- <button label="Devolver..." label_selected="Devolver..." name="ReturnGroup..." tool_tip="Devolver los objetos a sus propietarios."/>
- <text length="1" name="Owned by others:" type="string">
+ <button label="Mostrar" label_selected="Mostrar" name="ShowGroup" right="-135" width="60"/>
+ <button label="Devolver..." label_selected="Devolver..." name="ReturnGroup..." tool_tip="Devolver los objetos a sus propietarios." right="-10" width="119"/>
+ <text length="1" name="Owned by others:" type="string" left="14" width="128">
Propiedad de otros:
</text>
- <text name="other_objects_text">
+ <text name="other_objects_text" left="214" width="48">
[COUNT]
</text>
- <button label="Mostrar" label_selected="Mostrar" name="ShowOther"/>
- <button label="Devolver..." label_selected="Devolver..." name="ReturnOther..." tool_tip="Devolver los objetos a sus propietarios."/>
- <text length="1" name="Selected / sat upon:" type="string">
+ <button label="Mostrar" label_selected="Mostrar" name="ShowOther" right="-135" width="60"/>
+ <button label="Devolver..." label_selected="Devolver..." name="ReturnOther..." tool_tip="Devolver los objetos a sus propietarios." right="-10" width="119"/>
+ <text length="1" name="Selected / sat upon:" type="string" left="14" width="193" >
Seleccionados / con gente sentada:
</text>
- <text name="selected_objects_text">
+ <text name="selected_objects_text" left="214" width="48">
[COUNT]
</text>
- <text name="Autoreturn">
+ <text name="Autoreturn" left="4" width="412" >
Autodevolución de objetos a otros residentes (minutos; 0 la desactiva):
</text>
- <text length="1" name="Object Owners:" type="string">
+ <line_editor name="clean other time" right="-20" />
+ <text length="1" name="Object Owners:" type="string" width="150">
Propietarios de los objetos:
</text>
- <button label="Actualizar la lista" label_selected="Actualizar la lista" name="Refresh List"/>
- <button label="Devolver los objetos..." label_selected="Devolver los objetos..." name="Return objects..."/>
+ <button label="Actualizar la lista" label_selected="Actualizar la lista" name="Refresh List" left="158"/>
+ <button label="Devolver los objetos..." label_selected="Devolver los objetos..." name="Return objects..." left="270" width="164"/>
<name_list name="owner list">
<column label="Tipo" name="type"/>
<column label="Nombre" name="name"/>
@@ -231,31 +268,81 @@ Vaya al menú Mundo &gt; Acerca del terreno o seleccione otra parcela para ver s
<check_box label="Editar el terreno" name="edit land check" tool_tip="Si se marca, cualquiera podrá modificar su terreno. Mejor dejarlo desmarcado, pues usted siempre puede modificar su terreno."/>
<check_box label="Crear hitos" name="check landmark"/>
<check_box label="Volar" name="check fly" tool_tip="Si se marca, los residentes podrán volar en su terreno. Si no, sólo podrán volar al cruzarlo o hasta que aterricen en él."/>
- <text length="1" name="allow_label2" type="string">
+ <text length="1" name="allow_label2" type="string" left="162" >
Crear objetos:
</text>
- <check_box label="Todos los residentes" name="edit objects check"/>
- <check_box label="El grupo" name="edit group objects check"/>
- <text length="1" name="allow_label3" type="string">
+ <check_box label="Todos los residentes" name="edit objects check" left="255" />
+ <check_box label="El grupo" name="edit group objects check" left="385" />
+ <text length="1" name="allow_label3" type="string" left="162">
Dejar objetos:
</text>
- <check_box label="Todos los residentes" name="all object entry check"/>
- <check_box label="El grupo" name="group object entry check"/>
- <text length="1" name="allow_label4" type="string">
+ <check_box label="Todos los residentes" name="all object entry check" left="255"/>
+ <check_box label="El grupo" name="group object entry check" left="385"/>
+ <text length="1" name="allow_label4" type="string" left="162">
Ejecutar scripts:
</text>
- <check_box label="Todos los residentes" name="check other scripts"/>
- <check_box label="El grupo" name="check group scripts"/>
+ <check_box label="Todos los residentes" name="check other scripts" left="255"/>
+ <check_box label="El grupo" name="check group scripts" left="385"/>
<text length="1" name="land_options_label" type="string">
Opciones del terreno:
</text>
<check_box label="Seguro (sin daño)" name="check safe" tool_tip="Si se marca, convierte el terreno en &apos;seguro&apos;, desactivando el daño en combate. Si no, se activa el daño en combate."/>
<check_box label="Sin &apos;empujones&apos;" name="PushRestrictCheck" tool_tip="Previene scripts que empujen. Marcando esta opción prevendrá que en su terreno haya comportamientos destructivos."/>
<check_box label="Mostrar la parcela en Buscar (30 L$/semana) en" name="ShowDirectoryCheck" tool_tip="Let people see this parcel in search results"/>
+ <string name="search_enabled_tooltip">
+ Permitir que aparezca esta parcela en los resultados de la búsqueda
+ </string>
+ <string name="search_disabled_small_tooltip">
+ Esta opción está desactivada porque la parcela tiene 128 m² o menos.
+Sólo las parcelas más grandes pueden listarse en la búsqueda.
+ </string>
+ <string name="search_disabled_permissions_tooltip">
+ Esta opción no esta activada porque usted no puede modificar las opciones de la parcela.
+ </string>
+ <combo_box name="land category with adult">
+ <combo_item name="AnyCategory">
+ Cualquier categoría
+ </combo_item>
+ <combo_item name="LindenLocation">
+ Localización Linden
+ </combo_item>
+ <combo_item name="Adult">
+ &apos;Adult&apos;
+ </combo_item>
+ <combo_item name="Arts&amp;Culture">
+ Arte y Cultura
+ </combo_item>
+ <combo_item name="Business">
+ Negocios
+ </combo_item>
+ <combo_item name="Educational">
+ Educativo
+ </combo_item>
+ <combo_item name="Gaming">
+ Juegos de azar
+ </combo_item>
+ <combo_item name="Hangout">
+ Entretenimiento
+ </combo_item>
+ <combo_item name="NewcomerFriendly">
+ Para recién llegados
+ </combo_item>
+ <combo_item name="Parks&amp;Nature">
+ Parques y Naturaleza
+ </combo_item>
+ <combo_item name="Residential">
+ Residencial
+ </combo_item>
+ <combo_item name="Shopping">
+ Compras
+ </combo_item>
+ <combo_item name="Other">
+ Otra
+ </combo_item>
+ </combo_box>
<combo_box name="land category">
<combo_box.item name="AnyCategory" label="Cualquier categoría"/>
<combo_box.item name="LindenLocation" label="Localización Linden"/>
-
<combo_box.item name="Arts&amp;Culture" label="Arte y Cultura"/>
<combo_box.item name="Business" label="Negocios"/>
<combo_box.item name="Educational" label="Educativo"/>
@@ -268,7 +355,19 @@ Vaya al menú Mundo &gt; Acerca del terreno o seleccione otra parcela para ver s
<combo_box.item name="Other" label="Otra"/>
</combo_box>
<button label="?" label_selected="?" name="?"/>
- <check_box name="MatureCheck" />
+ <check_box label="Contenido &apos;Mature&apos;" name="MatureCheck" tool_tip=""/>
+ <string name="mature_check_mature">
+ Contenido &apos;Mature&apos;
+ </string>
+ <string name="mature_check_adult">
+ Contenido &apos;Adult&apos;
+ </string>
+ <string name="mature_check_mature_tooltip">
+ La información o el contenido de su parcela se considera &apos;Mature&apos;.
+ </string>
+ <string name="mature_check_adult_tooltip">
+ La información o el contenido de su parcela se considera &apos;Adult&apos;.
+ </string>
<text length="1" name="Snapshot:" type="string">
Foto:
</text>
@@ -297,64 +396,60 @@ Vaya al menú Mundo &gt; Acerca del terreno o seleccione otra parcela para ver s
</string>
</panel>
<panel label="Media" name="land_media_panel">
- <text name="with media:">
+ <text name="with media:" width="85">
Tipo de media:
</text>
- <combo_box name="media type" tool_tip="Especifique si la URL es una película, una web, u otro media"/>
- <text name="at URL:">
+ <combo_box name="media type" tool_tip="Especifique si la URL es una película, una web, u otro media" left="97" />
+ <text name="at URL:" width="85">
URL del media:
</text>
+ <line_editor left="97" name="media_url"/>
<button label="Definir..." label_selected="Definir..." name="set_media_url"/>
<text name="Description:">
Descripción:
</text>
- <line_editor name="url_description" tool_tip="Texto a mostrar cerca del botón play/cargar"/>
+ <line_editor name="url_description" tool_tip="Texto a mostrar cerca del botón play/cargar" left="97" />
<text length="1" name="Media texture:" type="string">
Cambiar
la textura:
</text>
- <texture_picker label="" name="media texture" tool_tip="Pulse para elegir una imagen"/>
- <text name="replace_texture_help">
- (Los objetos que usen esta textura mostrarán la película o la web
-cuando pulse la flecha de play)
+ <texture_picker label="" name="media texture" tool_tip="Pulse para elegir una imagen" left="97" />
+ <text name="replace_texture_help" width="285">
+ (Los objetos que usen esta textura mostrarán la
+película o la web cuando pulse la flecha de play.)
</text>
<text name="Options:">
Opciones de
los media:
</text>
- <check_box label="Escala automática" name="media_auto_scale" tool_tip="Marcando esta opción, se ajustará el tamaño del contenido automáticamente. Puede ser ligeramente más lento y con menor calidad visual, pero no tendrá que ajustar ni alinear ninguna textura."/>
+ <check_box left="97" label="Escala automática" name="media_auto_scale" tool_tip="Marcando esta opción, se ajustará el tamaño del contenido automáticamente. Puede ser ligeramente más lento y con menor calidad visual, pero no tendrá que ajustar ni alinear ninguna textura."/>
<check_box label="Media en bucle" name="media_loop" tool_tip="Ejecuta el media en bucle: cuando acaba su ejecución, vuelve a empezar."/>
- <check_box label="Ocultar la URL del media" name="hide_media_url" tool_tip="Marcando esta opción esconderá en la información de esta parcela -a quien no esté autorizado a verla- la URL del media. Note que esto no está disponible para HTML."/>
+ <check_box left="97" label="Ocultar la URL del media" name="hide_media_url" tool_tip="Marcando esta opción esconderá en la información de esta parcela -a quien no esté autorizado a verla- la URL del media. Note que esto no está disponible para HTML."/>
<check_box label="Ocultar la URL de la música" name="hide_music_url" tool_tip="Marcando esta opción esconderá en la información de esta parcela -a quien no esté autorizado a verla- la URL de la música"/>
- <text name="media_size" tool_tip="Tamaño en el que mostrar las web (marque 0 para por defecto).">
+ <text name="media_size" tool_tip="Tamaño en el que mostrar las web (marque 0 para por defecto)." left="102" width="120">
Tamaño del media:
</text>
- <spinner name="media_size_width" tool_tip="Tamaño en el que mostrar las web (marque 0 para por defecto)."/>
+ <spinner left_delta="104" name="media_size_width" tool_tip="Tamaño en el que mostrar las web (marque 0 para por defecto)."/>
<spinner name="media_size_height" tool_tip="Tamaño en el que mostrar las web (marque 0 para por defecto)."/>
<text name="pixels">
píxeles
</text>
- <text name="MusicURL:">
- URL de la música:
+ <text name="MusicURL:" bottom_delta="-28" >
+ URL de la
+música:
</text>
+ <line_editor bottom_delta="-12" left="97" name="music_url"/>
<text name="Sound:">
Sonido:
</text>
- <check_box label="Limitar el sonido a sólo esta parcela" name="check sound local"/>
+ <check_box left="97" label="Limitar los gestos y los sonidos de objetos a esta parcela" name="check sound local"/>
+ <button label="?" label_selected="?" name="?" left="424"/>
<text name="Voice settings:">
Voz:
</text>
- <radio_group name="parcel_voice_channel">
- <radio_item name="Estate">
- Usar el canal del estado
- </radio_item>
- <radio_item name="Private">
- Usar un canal privado
- </radio_item>
- <radio_item name="Disabled">
- Desactivar el audio ambiental en esta parcela
- </radio_item>
- </radio_group>
+ <check_box left="97" label="Activar la voz" name="parcel_enable_voice_channel"/>
+ <check_box left="97" label="Activar la voz (establecido por el Estado)" name="parcel_enable_voice_channel_is_estate_disabled"/>
+ <check_box left="117" label="Limitar la voz a esta parcela" name="parcel_enable_voice_channel_parcel"/>
</panel>
<panel label="Acceso" name="land_access_panel">
<text length="1" name="Limit access to this parcel to:" type="string">
diff --git a/indra/newview/skins/default/xui/es/floater_animation_preview.xml b/indra/newview/skins/default/xui/es/floater_animation_preview.xml
index 73ed06d1f7..5a03aa6370 100644
--- a/indra/newview/skins/default/xui/es/floater_animation_preview.xml
+++ b/indra/newview/skins/default/xui/es/floater_animation_preview.xml
@@ -6,14 +6,14 @@
<text name="description_label">
Descripción:
</text>
- <spinner label="Prioridad" name="priority" tool_tip="Controle qué otras animaciones pueden ser anuladas por ésta."/>
- <check_box label="Bucle" name="loop_check" tool_tip="Haga esta animación en bucle."/>
- <spinner label="Empieza(%)" name="loop_in_point" tool_tip="Indique el punto en el que la animación empieza el bucle."/>
- <spinner label="Acaba(%)" name="loop_out_point" tool_tip="Indique el punto en el que la animación acaba el bucle."/>
+ <spinner label_width="72" width="110" label="Prioridad:" name="priority" tool_tip="Controle qué otras animaciones pueden ser anuladas por ésta."/>
+ <check_box left="8" label="Bucle:" name="loop_check" tool_tip="Haga esta animación en bucle."/>
+ <spinner label_width="65" left="65" width="116" label="Empieza(%)" name="loop_in_point" tool_tip="Indique el punto en el que la animación empieza el bucle."/>
+ <spinner label_width="50" left="185" label="Acaba(%)" name="loop_out_point" tool_tip="Indique el punto en el que la animación acaba el bucle."/>
<text name="hand_label">
Posición de las manos
</text>
- <combo_box label="" name="hand_pose_combo" tool_tip="Control de lo que hacen las manos durante la animación.">
+ <combo_box left_delta="120" width="164" name="hand_pose_combo" tool_tip="Control de lo que hacen las manos durante la animación.">
<combo_box.item name="Spread" label="Extendidas"/>
<combo_box.item name="Relaxed" label="Relajadas"/>
<combo_box.item name="PointBoth" label="Ambas señalan"/>
@@ -31,7 +31,7 @@
<text name="emote_label">
Expresión
</text>
- <combo_box label="" name="emote_combo" tool_tip="Controle qué hace la cara durante la animación.">
+ <combo_box left_delta="120" width="164" name="emote_combo" tool_tip="Controle qué hace la cara durante la animación.">
<combo_box.item name="[None]" label="Nada]"/>
<combo_box.item name="Aaaaah" label="Aaaaah"/>
<combo_box.item name="Afraid" label="Con miedo"/>
@@ -53,24 +53,25 @@
<combo_box.item name="Wink" label="Guiño"/>
<combo_box.item name="Worry" label="Preocupación"/>
</combo_box>
- <text name="preview_label">
+ <text name="preview_label" width="250">
Vista previa mientras
</text>
- <combo_box label="" name="preview_base_anim" tool_tip="Compruebe cómo se comporta su animación a la vez que el avatar realiza acciones comunes.">
+ <combo_box left_delta="120" width="130" name="preview_base_anim" tool_tip="Compruebe cómo se comporta su animación a la vez que el avatar realiza acciones comunes.">
<combo_box.item name="Standing" label="Estar de pie"/>
<combo_box.item name="Walking" label="Caminar"/>
<combo_box.item name="Sitting" label="Estar sentado"/>
<combo_box.item name="Flying" label="Volar"/>
</combo_box>
- <spinner label="Combinar (sec)" name="ease_in_time" tool_tip="Tiempo (en segundos) en el que se combinan las animaciones."/>
- <spinner label="Dejar de combinar (sec)" name="ease_out_time" tool_tip="Tiempo (en segundos) en el que dejan de combinarse las animaciones."/>
- <button label="" name="play_btn" tool_tip="Mover/Pausar su animación."/>
+ <spinner label_width="125" width="192" label="Combinar (sec)" name="ease_in_time" tool_tip="Tiempo (en segundos) en el que se combinan las animaciones."/>
+ <spinner bottom_delta="-20" label_width="125" left="10" width="192" label="Dejar de combinar (sec)" name="ease_out_time" tool_tip="Tiempo (en segundos) en el que dejan de combinarse las animaciones."/>
+ <button bottom_delta="-32" name="play_btn" tool_tip="Mover/Pausar su animación."/>
<button label="" name="stop_btn" tool_tip="Parar la repetición de la animación"/>
<slider label="" name="playback_slider"/>
<text name="bad_animation_text">
No se ha podido leer el archivo de la animación.
-Recomendamos usar archivos BVH exportados de Poser 4.
+Recomendamos usar archivos BVH exportados de
+Poser 4.
</text>
<button label="Cancelar" name="cancel_btn"/>
<button label="Subir ([AMOUNT] L$)" name="ok_btn"/>
diff --git a/indra/newview/skins/default/xui/es/floater_avatar_picker.xml b/indra/newview/skins/default/xui/es/floater_avatar_picker.xml
index a75243cb38..105111f29f 100644
--- a/indra/newview/skins/default/xui/es/floater_avatar_picker.xml
+++ b/indra/newview/skins/default/xui/es/floater_avatar_picker.xml
@@ -1,15 +1,40 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="avatarpicker" title="Elegir a un residente">
- <text name="instruct_search_resident_name">
- Escriba parte del nombre del residente:
- </text>
- <button label="Encontrar" label_selected="Encontrar" name="Find"/>
- <text name="Or select their calling card:">
- O elija una tarjeta de visita:
- </text>
- <button label="Cerrar" label_selected="Cerrar" name="Close"/>
+ <tab_container name="ResidentChooserTabs">
+ <panel label="Buscar" name="SearchPanel">
+ <text name="InstructSearchResidentName">
+ Escriba parte del nombre del residente:
+ </text>
+ <button label="Buscar" label_selected="Buscar" name="Find"/>
+ </panel>
+ <panel label="Tarjetas de visita" name="CallingCardsPanel">
+ <text name="InstructSelectCallingCard">
+ Elija una tarjeta de visita:
+ </text>
+ </panel>
+ <panel label="Cercanos" name="NearMePanel">
+ <text name="InstructSelectResident">
+ Seleccionar un residente cercano:
+ </text>
+ <button label="Actualizar la lista" label_selected="Actualizar la lista" name="Refresh"/>
+ <slider label="Alcance" name="near_me_range"/>
+ <text name="meters">
+ Metros
+ </text>
+ </panel>
+ </tab_container>
<button label="Elegir" label_selected="Elegir" name="Select"/>
- <string name="NotFound">
+ <button label="Cancelar" label_selected="Cancelar" name="Cancel"/>
+ <string name="not_found">
No se ha encontrado &apos;[TEXT]&apos;
</string>
+ <string name="no_one_near">
+ No hay nadie cerca
+ </string>
+ <string name="no_results">
+ Sin resultados
+ </string>
+ <string name="searching">
+ Buscando...
+ </string>
</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_beacons.xml b/indra/newview/skins/default/xui/es/floater_beacons.xml
index aeb1250997..9282cb04a6 100644
--- a/indra/newview/skins/default/xui/es/floater_beacons.xml
+++ b/indra/newview/skins/default/xui/es/floater_beacons.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="beacons" title="Balizas">
- <panel name="beacons_panel">
- <check_box label="Objetos con script sólo al tocarlos" name="touch_only"/>
- <check_box label="Objetos con script" name="scripted"/>
- <check_box label="Objetos materiales" name="physical"/>
- <check_box label="Fuentes de sonido" name="sounds"/>
- <check_box label="Fuentes de partículas" name="particles"/>
- <check_box label="Activar los realzados" name="highlights"/>
- <check_box label="Activar las balizas" name="beacons"/>
- <text name="beacon_width_label">
- Ancho de la baliza:
- </text>
- </panel>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="beacons" title="Balizas">
+ <panel name="beacons_panel">
+ <check_box label="Objetos con script sólo al tocarlos" name="touch_only"/>
+ <check_box label="Objetos con script" name="scripted"/>
+ <check_box label="Objetos materiales" name="physical"/>
+ <check_box label="Fuentes de sonido" name="sounds"/>
+ <check_box label="Fuentes de partículas" name="particles"/>
+ <check_box label="Activar los realzados" name="highlights"/>
+ <check_box label="Activar las balizas" name="beacons"/>
+ <text name="beacon_width_label">
+ Ancho de la baliza:
+ </text>
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_bulk_perms.xml b/indra/newview/skins/default/xui/es/floater_bulk_perms.xml
new file mode 100644
index 0000000000..3251713074
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/floater_bulk_perms.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floaterbulkperms" title="Cambio masivo de los permisos del contenido">
+ <text name="applyto">
+ Tipos de contenido
+ </text>
+ <check_box label="Animación" name="check_animation"/>
+ <check_box label="Partes del cuerpo" name="check_bodypart"/>
+ <check_box label="Ropa" name="check_clothing"/>
+ <check_box label="Gestos" name="check_gesture"/>
+ <check_box label="Hitos" name="check_landmark"/>
+ <check_box label="Notas" name="check_notecard"/>
+ <check_box label="Objetos" name="check_object"/>
+ <check_box label="Scripts" name="check_script"/>
+ <check_box label="Sonidos" name="check_sound"/>
+ <check_box label="Texturas" name="check_texture"/>
+ <button label="Marcar todo" label_selected="Todo" name="check_all"/>
+ <button label="Desmarcar todo" label_selected="Ninguno" name="check_none"/>
+ <text name="newperms">
+ Permisos nuevos
+ </text>
+ <check_box label="Compartir con el grupo" name="share_with_group"/>
+ <check_box label="Permitir a cualquiera que lo copie" name="everyone_copy"/>
+ <text name="NextOwnerLabel">
+ El próximo propietario puede:
+ </text>
+ <check_box label="Modificarlo" name="next_owner_modify"/>
+ <check_box label="Copiarlo" name="next_owner_copy"/>
+ <check_box label="Revenderlo/Darlo" name="next_owner_transfer"/>
+ <button label="Ayuda" name="help"/>
+ <button label="Aplicar" name="apply"/>
+ <button label="Cerrar" name="close"/>
+ <string name="nothing_to_modify_text">
+ Lo seleccionado tiene contenidos no editables.
+ </string>
+ <string name="status_text">
+ Configurando los permisos de [NAME]
+ </string>
+ <string name="start_text">
+ Iniciando el cambio de permisos solicitado...
+ </string>
+ <string name="done_text">
+ Finalizado el cambio de permisos solicitado.
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_buy_currency.xml b/indra/newview/skins/default/xui/es/floater_buy_currency.xml
index 03a6d511ab..b26a9c7494 100644
--- a/indra/newview/skins/default/xui/es/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/es/floater_buy_currency.xml
@@ -3,10 +3,10 @@
<text name="info_buying">
Comprando dinero:
</text>
- <text name="info_cannot_buy">
+ <text name="info_cannot_buy" left="5" right="-5">
No puede comprar en este momento:
</text>
- <text name="info_need_more">
+ <text name="info_need_more" left="5" right="-5">
Necesita más dinero:
</text>
<text name="error_message">
@@ -16,8 +16,8 @@
<text name="contacting">
Contactando con el LindeX...
</text>
- <text name="buy_action_unknown">
- Comprar L$ en el sistema LindeX de cambio de moneda
+ <text name="buy_action_unknown" right="-5">
+ Comprar L$ en el sistema LindeX de cambio
</text>
<text name="buy_action">
[NAME] [PRICE] L$
@@ -52,7 +52,7 @@
<text name="total_amount">
[AMT] L$
</text>
- <text name="purchase_warning_repurchase">
+ <text name="purchase_warning_repurchase" right="-10">
Confirmando esta compra sólo compra la moneda.
Tendrá que intentar de nuevo la operación.
</text>
diff --git a/indra/newview/skins/default/xui/es/floater_buy_land.xml b/indra/newview/skins/default/xui/es/floater_buy_land.xml
index 4203bc850c..7ee15955eb 100644
--- a/indra/newview/skins/default/xui/es/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/es/floater_buy_land.xml
@@ -3,33 +3,40 @@
<text name="region_name_label">
Región:
</text>
- <text name="region_name_text">
+ <text name="region_name_text" left="565">
(desconocida)
</text>
+ <text name="region_type_label">
+ Tipo:
+ </text>
+ <text name="region_type_text" left="565">
+ (desconocido)
+ </text>
<text name="estate_name_label">
Estado:
</text>
- <text name="estate_name_text">
+ <text name="estate_name_text" left="565">
(desconocido)
</text>
- <text name="estate_owner_label">
+ <text name="estate_owner_label" width="115" right="565">
Propietario del estado:
</text>
- <text name="estate_owner_text">
+ <text name="estate_owner_text" left="565" >
(desconocido)
</text>
<text name="resellable_changeable_label">
El terreno comprado en esta región:
</text>
<text name="resellable_clause">
- El terreno comprado en esta región puede o no puede ser revendido.
+ Podrá o no revenderse.
</text>
<text name="changeable_clause">
- puede o no puede ser unido o subdividido.
+ Podrá o no unirse o dividirse.
</text>
<text name="covenant_text">
Deve aceptar el Contrato del Estado:
</text>
+ <text left="470" name="covenant_timestamp_text"/>
<text_editor name="covenant_editor">
Cargando...
</text_editor>
@@ -50,7 +57,9 @@
Precio:
</text>
<text name="info_price">
- 1500 L$, objetos incluidos
+ 1500 L$
+(1.1 L$/m²)
+incluyendo los objetos
</text>
<text name="info_action">
Al comprar este terreno:
@@ -74,8 +83,8 @@
Aumenta su cuota mensual por uso de terreno a 40 US$/mes.
</text>
<text name="land_use_reason">
- Usted es propietario de 1.309 m² de terreno.
-Esta parcela tiene 512 m² de terreno.
+ Usted posee 1309 m² de terreno.
+Esta parcela mide 512 m².
</text>
<text name="purchase_action">
Pagar al residente Joe 4.000 L$ por el terreno
@@ -178,7 +187,7 @@ Inténtelo seleccionando un área más pequeña.
Pagar por este terreno [AMOUNT] L$ a [SELLER]
</string>
<string name="buy_for_US">
- Comprar [AMOUNT] L$ por, aprox., [AMOUNT2] US$ ,
+ Comprar [AMOUNT] L$ por, aprox., [AMOUNT2] US$,
</string>
<string name="parcel_meters">
Esta parcela tiene [AMOUNT] m².
@@ -196,6 +205,14 @@ admite [AMOUNT2] objetos
<string name="sold_with_objects">
vendido con los objetos
</string>
+ <string name="sold_without_objects">
+ objetos no incluidos
+ </string>
+ <string name="info_price_string">
+ [PRICE] L$
+([PRICE_PER_SQM] L$/m²)
+[SOLD_WITH_OBJECTS]
+ </string>
<string name="insufficient_land_credits">
Antes de que se complete la compra, el grupo [GROUP] necesitará
los suficientes créditos de uso en contribución de terreno
diff --git a/indra/newview/skins/default/xui/es/floater_camera.xml b/indra/newview/skins/default/xui/es/floater_camera.xml
index 11461af586..0246f0d440 100644
--- a/indra/newview/skins/default/xui/es/floater_camera.xml
+++ b/indra/newview/skins/default/xui/es/floater_camera.xml
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="move floater" title="">
- <string name="rotate_tooltip">
- Girar la cámara alrededor de lo enfocado
- </string>
- <string name="zoom_tooltip">
- Hacer zoom con la cámara en lo enfocado
- </string>
- <string name="move_tooltip">
- Mover la cámara arriba y abajo, izquierda y derecha.
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="move floater" title="">
+ <string name="rotate_tooltip">
+ Girar la cámara alrededor de lo enfocado
+ </string>
+ <string name="zoom_tooltip">
+ Hacer zoom con la cámara en lo enfocado
+ </string>
+ <string name="move_tooltip">
+ Mover la cámara arriba y abajo, izquierda y derecha.
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_customize.xml b/indra/newview/skins/default/xui/es/floater_customize.xml
index 4922d08178..5efc989eff 100644
--- a/indra/newview/skins/default/xui/es/floater_customize.xml
+++ b/indra/newview/skins/default/xui/es/floater_customize.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater customize" title="Apariencia">
- <tab_container name="customize tab container">
+<floater name="floater customize" title="Apariencia" width="527">
+ <tab_container name="customize tab container" width="525">
<panel label="Partes del cuerpo" name="body_parts_placeholder"/>
- <panel label="Forma" name="Shape">
+ <panel label="Forma" name="Shape" width="389">
<button label="Restablecer" label_selected="Restablecer" name="Revert"/>
<button label="Cuerpo" label_selected="Cuerpo" name="Body"/>
<button label="Cabeza" label_selected="Cabeza" name="Head"/>
@@ -14,14 +14,9 @@
<button label="Torso" label_selected="Torso" name="Torso"/>
<button label="Piernas" label_selected="Piernas" name="Legs"/>
<radio_group name="sex radio">
- <radio_item length="1" name="radio" type="string">
- Mujer
- </radio_item>
- <radio_item length="1" name="radio2" type="string">
- Varón
- </radio_item>
+ <radio_item length="1" name="radio" type="string" label="Mujer" />
+ <radio_item length="1" name="radio2" type="string" label="Varón" />
</radio_group>
- <button label="Aleatoria" label_selected="Aleatoria" name="Randomize"/>
<text length="1" name="title" type="string">
[DESC]
</text>
@@ -38,21 +33,24 @@
Situada en [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Póngase una forma nueva arrastrando una desde su inventario hasta su avatar. O parta de cero creando una nueva y vistiéndola.
+ Póngase una forma nueva arrastrando una desde su inventario hasta su
+avatar. O parta de cero creando una nueva y vistiéndola.
</text>
<text length="1" name="no modify instructions" type="string">
No tiene permiso para modificar este ítem.
</text>
+ <text name="Item Action Label" right="107">
+ Forma:
+ </text>
<button label="Crear una forma nueva" label_selected="Crear una forma nueva" name="Create New"/>
- <button label="Quitarla" label_selected="Quitarla" name="Take Off"/>
- <button label="Guardar" label_selected="Guardar" name="Save"/>
- <button label="Guardar como" label_selected="Guardar como" name="Save As"/>
+ <button left="113" label="Guardar" label_selected="Guardar" name="Save"/>
+ <button left="199" width="102" label="Guardar como..." label_selected="Guardar como..." name="Save As"/>
</panel>
<panel label="Piel" name="Skin">
- <button label="Color de piel" label_selected="Color de piel" name="Skin Color"/>
- <button label="Detalles faciales" label_selected="Detalles faciales" name="Face Detail"/>
- <button label="Maquillaje" label_selected="Maquillaje" name="Makeup"/>
- <button label="Detalles del cuerpo" label_selected="Detalles del cuerpo" name="Body Detail"/>
+ <button label="Color de piel" label_selected="Color de piel" name="Skin Color" width="115"/>
+ <button label="Detalles faciales" label_selected="Detalles faciales" name="Face Detail" width="115"/>
+ <button label="Maquillaje" label_selected="Maquillaje" name="Makeup" width="115"/>
+ <button label="Detalles del cuerpo" label_selected="Detalles del cuerpo" name="Body Detail" width="115"/>
<text length="1" name="title" type="string">
[DESC]
</text>
@@ -69,19 +67,21 @@
Situada en [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Póngase otra piel arrastrando una desde su inventario hasta su avatar. O parta de cero creando una nueva y vistiéndola.
+ Póngase otra piel arrastrando una desde su inventario hasta su
+avatar. O parta de cero creando una nueva y vistiéndola.
</text>
<text length="1" name="no modify instructions" type="string">
No tiene permiso para modificar este ítem.
</text>
- <texture_picker label="Tatuajes de la cabeza" name="Head Tattoos" tool_tip="Pulse para elegir una imagen"/>
- <texture_picker label="Tatuajes superiores" name="Upper Tattoos" tool_tip="Pulse para elegir una imagen"/>
- <texture_picker label="Tatuajes inferiores" name="Lower Tattoos" tool_tip="Pulse para elegir una imagen"/>
- <button label="Aleatoria" label_selected="Aleatoria" name="Randomize"/>
+ <text name="Item Action Label" right="107">
+ Piel:
+ </text>
+ <texture_picker width="90" label="Tatuaje: cabeza" name="Head Tattoos" tool_tip="Pulse para elegir una imagen"/>
+ <texture_picker width="90" label="Tatuaje: superior" name="Upper Tattoos" tool_tip="Pulse para elegir una imagen"/>
+ <texture_picker width="90" label="Tatuaje: inferior" name="Lower Tattoos" tool_tip="Pulse para elegir una imagen"/>
<button label="Crear una piel nueva" label_selected="Crear una piel nueva" name="Create New"/>
- <button label="Quitarla" label_selected="Quitarla" name="Take Off"/>
- <button label="Guardar" label_selected="Guardar" name="Save"/>
- <button label="Guardar como" label_selected="Guardar como" name="Save As"/>
+ <button left="113" label="Guardar" label_selected="Guardar" name="Save"/>
+ <button left="199" width="102" label="Guardar como..." label_selected="Guardar como..." name="Save As"/>
<button label="Restablecer" label_selected="Restablecer" name="Revert"/>
</panel>
<panel label="Pelo" name="Hair">
@@ -105,17 +105,19 @@
Situado en [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Póngase otro pelo arrastrando uno desde su inventario hasta su avatar. O parta de cero creando uno nueva y vistiéndolo.
+ Póngase otro pelo arrastrando uno desde su inventario hasta su
+avatar. O parta de cero creando uno nueva y vistiéndolo.
</text>
<text length="1" name="no modify instructions" type="string">
No tiene permiso para modificar este ítem.
</text>
+ <text name="Item Action Label" right="107">
+ Pelo:
+ </text>
<texture_picker label="Textura" name="Texture" tool_tip="Pulse para elegir una imagen"/>
- <button label="Aleatorio" label_selected="Aleatorio" name="Randomize"/>
<button label="Crear un pelo nuevo" label_selected="Crear un pelo nuevo" name="Create New"/>
- <button label="Quitarlo" label_selected="Quitarlo" name="Take Off"/>
- <button label="Guardar" label_selected="Guardar" name="Save"/>
- <button label="Guardar como" label_selected="Guardar como" name="Save As"/>
+ <button left="113" label="Guardar" label_selected="Guardar" name="Save"/>
+ <button left="199" width="102" label="Guardar como..." label_selected="Guardar como..." name="Save As"/>
<button label="Restablecer" label_selected="Restablecer" name="Revert"/>
</panel>
<panel label="Ojos" name="Eyes">
@@ -135,17 +137,19 @@
Situados en [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Póngase otros ojos arrastrando unos desde su inventario hasta su avatar. O parta de cero creando unos nuevos y vistiéndoselos.
+ Póngase otros ojos arrastrando unos desde su inventario hasta su
+avatar. O parta de cero creando unos nuevos y vistiéndoselos.
</text>
<text length="1" name="no modify instructions" type="string">
No tiene permiso para modificar este ítem.
</text>
+ <text name="Item Action Label" right="107">
+ Ojos:
+ </text>
<texture_picker label="Iris" name="Iris" tool_tip="Pulse para elegir una imagen"/>
- <button label="Aleatorios" label_selected="Aleatorios" name="Randomize"/>
<button label="Crear unos ojos nuevos" label_selected="Crear unos ojos nuevos" name="Create New"/>
- <button label="Quitarlos" label_selected="Quitarlos" name="Take Off"/>
- <button label="Guardar" label_selected="Guardar" name="Save"/>
- <button label="Guardar como" label_selected="Guardar como" name="Save As"/>
+ <button left="113" label="Guardar" label_selected="Guardar" name="Save"/>
+ <button left="199" width="102" label="Guardar como..." label_selected="Guardar como..." name="Save As"/>
<button label="Restablecer" label_selected="Restablecer" name="Revert"/>
</panel>
<panel label="Ropa" name="clothes_placeholder"/>
@@ -154,8 +158,8 @@
<color_swatch label="Color/Tinte" name="Color/Tint" tool_tip="Pulse para abrir el selector de color"/>
<button label="Crear una falda nueva" label_selected="Crear una falda nueva" name="Create New"/>
<button label="Quitarla" label_selected="Quitarla" name="Take Off"/>
- <button label="Guardar" label_selected="Guardar" name="Save"/>
- <button label="Guardar como" label_selected="Guardar como" name="Save As"/>
+ <button left="113" label="Guardar" label_selected="Guardar" name="Save"/>
+ <button left="199" width="102" label="Guardar como..." label_selected="Guardar como..." name="Save As"/>
<button label="Restablecer" label_selected="Restablecer" name="Revert"/>
<text length="1" name="title" type="string">
[DESC]
@@ -173,19 +177,23 @@
Situada en [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Póngase otra camisa arrastrando una desde su inventario hasta su avatar. O parta de cero creando una nueva y vistiéndola.
+ Póngase otra camisa arrastrando una desde su inventario hasta su
+avatar. O parta de cero creando una nueva y vistiéndola.
</text>
<text length="1" name="no modify instructions" type="string">
No tiene permiso para modificar este ítem.
</text>
+ <text name="Item Action Label" right="107">
+ Camisa:
+ </text>
</panel>
<panel label="Pantalones" name="Pants">
<texture_picker label="Tela" name="Fabric" tool_tip="Pulse para elegir una imagen"/>
<color_swatch label="Color/Tinte" name="Color/Tint" tool_tip="Pulse para abrir el selector de color"/>
- <button label="Crear unos pantalones nuevos" label_selected="Crear unos pantalones nuevos" name="Create New"/>
+ <button label="Crear unos pantalones nuevos" label_selected="Crear unos pantalones nuevos" name="Create New" width="185"/>
<button label="Quitarlos" label_selected="Quitarlos" name="Take Off"/>
- <button label="Guardar" label_selected="Guardar" name="Save"/>
- <button label="Guardar como" label_selected="Guardar como" name="Save As"/>
+ <button left="113" label="Guardar" label_selected="Guardar" name="Save"/>
+ <button left="199" width="102" label="Guardar como..." label_selected="Guardar como..." name="Save As"/>
<button label="Restablecer" label_selected="Restablecer" name="Revert"/>
<text length="1" name="title" type="string">
[DESC]
@@ -203,13 +211,17 @@
Situados en [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Póngase otros pantalones arrastrando unos desde su inventario hasta su avatar. O parta de cero creando unos nuevos y vistiéndoselos.
+ Póngase otros pantalones arrastrando unos desde su inventario hasta su
+avatar. O parta de cero creando unos nuevos y vistiéndoselos.
</text>
<text length="1" name="no modify instructions" type="string">
No tiene permiso para modificar este ítem.
</text>
+ <text name="Item Action Label" right="107">
+ Pantalones:
+ </text>
</panel>
- <panel label="Shoes" name="Shoes">
+ <panel label="Zapatos" name="Shoes">
<text length="1" name="title" type="string">
[DESC]
</text>
@@ -226,17 +238,21 @@
Situados en [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Póngase otros zapatos arrastrando unos desde su inventario hasta su avatar. O parta de cero creando unos nuevos y vistiéndoselos.
+ Póngase otros zapatos arrastrando unos desde su inventario hasta su
+avatar. O parta de cero creando unos nuevos y vistiéndoselos.
</text>
<text length="1" name="no modify instructions" type="string">
No tiene permiso para modificar este ítem.
</text>
+ <text name="Item Action Label" right="107">
+ Zapatos:
+ </text>
<texture_picker label="Tela" name="Fabric" tool_tip="Pulse para elegir una imagen"/>
<color_swatch label="Color/Tinte" name="Color/Tint" tool_tip="Pulse para abrir el selector de color"/>
<button label="Crear unos zapatos nuevos" label_selected="Crear unos zapatos nuevos" name="Create New"/>
<button label="Quitarlos" label_selected="Quitarlos" name="Take Off"/>
- <button label="Guardar" label_selected="Guardar" name="Save"/>
- <button label="Guardar como" label_selected="Guardar como" name="Save As"/>
+ <button left="113" label="Guardar" label_selected="Guardar" name="Save"/>
+ <button left="199" width="102" label="Guardar como..." label_selected="Guardar como..." name="Save As"/>
<button label="Restablecer" label_selected="Restablecer" name="Revert"/>
</panel>
<panel label="Calcetines" name="Socks">
@@ -256,17 +272,21 @@
Situados en [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Póngase otros calcetines arrastrando unos desde su inventario hasta su avatar. O parta de cero creando unos nuevos y vistiéndoselos.
+ Póngase otros calcetines arrastrando unos desde su inventario hasta su
+avatar. O parta de cero creando unos nuevos y vistiéndoselos.
</text>
<text length="1" name="no modify instructions" type="string">
No tiene permiso para modificar este ítem.
</text>
+ <text name="Item Action Label" right="107">
+ Calcetines:
+ </text>
<texture_picker label="Tela" name="Fabric" tool_tip="Pulse para elegir una imagen"/>
<color_swatch label="Color/Tinte" name="Color/Tint" tool_tip="Pulse para abrir el selector de color"/>
- <button label="Crear unos calcetines nuevos" label_selected="Crear unos calcetines nuevos" name="Create New"/>
+ <button label="Crear unos calcetines nuevos" label_selected="Crear unos calcetines nuevos" name="Create New" width="185"/>
<button label="Quitarlos" label_selected="Quitarlos" name="Take Off"/>
- <button label="Guardar" label_selected="Guardar" name="Save"/>
- <button label="Guardar como" label_selected="Guardar como" name="Save As"/>
+ <button left="113" label="Guardar" label_selected="Guardar" name="Save"/>
+ <button left="199" width="102" label="Guardar como..." label_selected="Guardar como..." name="Save As"/>
<button label="Restablecer" label_selected="Restablecer" name="Revert"/>
</panel>
<panel label="Chaqueta" name="Jacket">
@@ -286,18 +306,22 @@
Situada en [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Póngase otra chaqueta arrastrando una desde su inventario hasta su avatar. O parta de cero creando una nueva y vistiéndola.
+ Póngase otra chaqueta arrastrando una desde su inventario hasta su
+avatar. O parta de cero creando una nueva y vistiéndola.
</text>
<text length="1" name="no modify instructions" type="string">
No tiene permiso para modificar este ítem.
</text>
+ <text name="Item Action Label" right="107">
+ Chaqueta:
+ </text>
<texture_picker label="Tela superior" name="Upper Fabric" tool_tip="Pulse para elegir una imagen"/>
<texture_picker label="Tela inferior" name="Lower Fabric" tool_tip="Pulse para elegir una imagen"/>
<color_swatch label="Color/Tinte" name="Color/Tint" tool_tip="Pulse para abrir el selector de color"/>
<button label="Crear una chaqueta nueva" label_selected="Crear una chaqueta nueva" name="Create New"/>
<button label="Quitarla" label_selected="Quitarla" name="Take Off"/>
- <button label="Guardar" label_selected="Guardar" name="Save"/>
- <button label="Guardar como" label_selected="Guardar como" name="Save As"/>
+ <button left="113" label="Guardar" label_selected="Guardar" name="Save"/>
+ <button left="199" width="102" label="Guardar como..." label_selected="Guardar como..." name="Save As"/>
<button label="Restablecer" label_selected="Restablecer" name="Revert"/>
</panel>
<panel label="Guantes" name="Gloves">
@@ -317,17 +341,21 @@
Situados en [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Póngase otros guantes arrastrando unos desde su inventario hasta su avatar. O parta de cero creando unos nuevos y vistiéndoselos.
+ Póngase otros guantes arrastrando unos desde su inventario hasta su
+avatar. O parta de cero creando unos nuevos y vistiéndoselos.
</text>
<text length="1" name="no modify instructions" type="string">
No tiene permiso para modificar este ítem.
</text>
+ <text name="Item Action Label" right="107">
+ Guantes:
+ </text>
<texture_picker label="Tela" name="Fabric" tool_tip="Pulse para elegir una imagen"/>
<color_swatch label="Color/Tinte" name="Color/Tint" tool_tip="Pulse para abrir el selector de color"/>
<button label="Crear unos guantes nuevos" label_selected="Crear unos guantes nuevos" name="Create New"/>
<button label="Quitarlos" label_selected="Quitarlos" name="Take Off"/>
- <button label="Guardar" label_selected="Guardar" name="Save"/>
- <button label="Guardar como" label_selected="Guardar como" name="Save As"/>
+ <button left="113" label="Guardar" label_selected="Guardar" name="Save"/>
+ <button left="199" width="102" label="Guardar como..." label_selected="Guardar como..." name="Save As"/>
<button label="Restablecer" label_selected="Restablecer" name="Revert"/>
</panel>
<panel label="Camiseta" name="Undershirt">
@@ -347,17 +375,21 @@
Situada en [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Póngase otra camiseta arrastrando una desde su inventario hasta su avatar. O parta de cero creando una nueva y vistiéndola.
+ Póngase otra camiseta arrastrando una desde su inventario hasta su
+avatar. O parta de cero creando una nueva y vistiéndola.
</text>
<text length="1" name="no modify instructions" type="string">
No tiene permiso para modificar este ítem.
</text>
+ <text name="Item Action Label" right="107">
+ Camiseta:
+ </text>
<texture_picker label="Tela" name="Fabric" tool_tip="Pulse para elegir una imagen"/>
<color_swatch label="Color/Tinte" name="Color/Tint" tool_tip="Pulse para abrir el selector de color"/>
<button label="Crear una camiseta nueva" label_selected="Crear una camiseta nueva" name="Create New"/>
<button label="Quitarla" label_selected="Quitarla" name="Take Off"/>
- <button label="Guardar" label_selected="Guardar" name="Save"/>
- <button label="Guardar como" label_selected="Guardar como" name="Save As"/>
+ <button left="113" label="Guardar" label_selected="Guardar" name="Save"/>
+ <button left="199" width="102" label="Guardar como..." label_selected="Guardar como..." name="Save As"/>
<button label="Restablecer" label_selected="Restablecer" name="Revert"/>
</panel>
<panel label="Ropa interior" name="Underpants">
@@ -377,17 +409,21 @@
Situada en [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Póngase otra ropa interior arrastrando una desde su inventario hasta su avatar. O parta de cero creando una nueva y vistiéndola.
+ Póngase otra ropa interior arrastrando una desde su inventario hasta su
+avatar. O parta de cero creando una nueva y vistiéndola.
</text>
<text length="1" name="no modify instructions" type="string">
No tiene permiso para modificar este ítem.
</text>
+ <text name="Item Action Label" right="107">
+ Ropa interior:
+ </text>
<texture_picker label="Tela" name="Fabric" tool_tip="Pulse para elegir una imagen"/>
<color_swatch label="Color/Tinte" name="Color/Tint" tool_tip="Pulse para abrir el selector de color"/>
- <button label="Crear una ropa interior nueva" label_selected="Crear una ropa interior nueva" name="Create New"/>
+ <button label="Crear una ropa interior nueva" label_selected="Crear una ropa interior nueva" name="Create New" width="185"/>
<button label="Quitarla" label_selected="Quitarla" name="Take Off"/>
- <button label="Guardar" label_selected="Guardar" name="Save"/>
- <button label="Guardar como" label_selected="Guardar como" name="Save As"/>
+ <button left="113" label="Guardar" label_selected="Guardar" name="Save"/>
+ <button left="199" width="102" label="Guardar como..." label_selected="Guardar como..." name="Save As"/>
<button label="Restablecer" label_selected="Restablecer" name="Revert"/>
</panel>
<panel label="Falda" name="Skirt">
@@ -407,21 +443,26 @@
Situada en [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Póngase otra falda arrastrando una desde su inventario hasta su avatar. O parta de cero creando una nueva y vistiéndola.
+ Póngase otra falda arrastrando una desde su inventario hasta su
+avatar. O parta de cero creando una nueva y vistiéndola.
</text>
<text length="1" name="no modify instructions" type="string">
No tiene permiso para modificar este ítem.
</text>
+ <text name="Item Action Label" right="107">
+ Falda:
+ </text>
<texture_picker label="Tela" name="Fabric" tool_tip="Pulse para elegir una imagen"/>
<color_swatch label="Color/Tinte" name="Color/Tint" tool_tip="Pulse para abrir el selector de color"/>
<button label="Crear una falda nueva" label_selected="Crear una falda nueva" name="Create New"/>
<button label="Quitarla" label_selected="Quitarla" name="Take Off"/>
- <button label="Guardar" label_selected="Guardar" name="Save"/>
- <button label="Guardar como" label_selected="Guardar como" name="Save As"/>
+ <button left="113" label="Guardar" label_selected="Guardar" name="Save"/>
+ <button left="199" width="102" label="Guardar como..." label_selected="Guardar como..." name="Save As"/>
<button label="Restablecer" label_selected="Restablecer" name="Revert"/>
</panel>
</tab_container>
- <button label="Cerrar" label_selected="Cerrar" name="Close"/>
- <button label="Guardar todo" label_selected="Guardar todo" name="Save All"/>
- <button label="Hacer un vestuario" label_selected="Hacer un vestuario" name="Make Outfit"/>
+ <scroll_container left="230" name="panel_container"/>
+ <button label="Cancelar" label_selected="Cancelar" name="Cancel"/>
+ <button label="OK" label_selected="OK" name="Ok"/>
+ <button label="Hacer un vestuario..." label_selected="Hacer un vestuario..." name="Make Outfit" width="130"/>
</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/es/floater_day_cycle_options.xml
index ce3f7a617a..dd74505239 100644
--- a/indra/newview/skins/default/xui/es/floater_day_cycle_options.xml
+++ b/indra/newview/skins/default/xui/es/floater_day_cycle_options.xml
@@ -1,94 +1,94 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Day Cycle Floater" title="Editor del ciclo de un día">
- <tab_container name="Day Cycle Tabs">
- <panel label="Ciclo de un día" name="Day Cycle">
- <button label="?" name="WLDayCycleHelp"/>
- <text name="WL12am">
- 12 am
- </text>
- <text name="WL3am">
- 3 am
- </text>
- <text name="WL6am">
- 6 am
- </text>
- <text name="WL9amHash">
- 9 am
- </text>
- <text name="WL12pmHash">
- 12 pm
- </text>
- <text name="WL3pm">
- 3 pm
- </text>
- <text name="WL6pm">
- 6 pm
- </text>
- <text name="WL9pm">
- 9 pm
- </text>
- <text name="WL12am2">
- 12 am
- </text>
- <text name="WL12amHash">
- |
- </text>
- <text name="WL3amHash">
- I
- </text>
- <text name="WL6amHash">
- |
- </text>
- <text name="WL9amHash2">
- I
- </text>
- <text name="WL12pmHash2">
- |
- </text>
- <text name="WL3pmHash">
- I
- </text>
- <text name="WL6pmHash">
- |
- </text>
- <text name="WL9pmHash">
- I
- </text>
- <text name="WL12amHash2">
- |
- </text>
- <button label="Añadir un punto" label_selected="Añadir un punto" name="WLAddKey"/>
- <button label="Quitar un punto" label_selected="Quitar un punto" name="WLDeleteKey"/>
- <text name="WLCurKeyFrameText">
- Configuración del fotograma clave:
- </text>
- <text name="WLCurKeyTimeText">
- Hora clave:
- </text>
- <spinner label="Hora" name="WLCurKeyHour"/>
- <spinner label="Min." name="WLCurKeyMin"/>
- <text name="WLCurKeyTimeText2">
- Modelo predefinido:
- </text>
- <combo_box label="Predefinido" name="WLKeyPresets"/>
- <text name="DayCycleText">
- Intervalo:
- </text>
- <combo_box label="5 min." name="WLSnapOptions"/>
- <text name="DayCycleText2">
- Duración del ciclo:
- </text>
- <spinner label="Hora" name="WLLengthOfDayHour"/>
- <spinner label="Min." name="WLLengthOfDayMin"/>
- <spinner label="Seg." name="WLLengthOfDaySec"/>
- <text name="DayCycleText3">
- Vista previa:
- </text>
- <button label="Probar" label_selected="Probar" name="WLAnimSky"/>
- <button label="Parar" label_selected="Parar" name="WLStopAnimSky"/>
- <button label="Usar el horario del estado" label_selected="Ir al horario del estado" name="WLUseLindenTime"/>
- <button label="Guardar este tipo de día" label_selected="Guardar este tipo de día" name="WLSaveDayCycle"/>
- <button label="Cargar y probar un tipo de día" label_selected="Cargar y probar un tipo de día" name="WLLoadDayCycle"/>
- </panel>
- </tab_container>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Day Cycle Floater" title="Editor del ciclo de un día">
+ <tab_container name="Day Cycle Tabs">
+ <panel label="Ciclo de un día" name="Day Cycle">
+ <button label="?" name="WLDayCycleHelp"/>
+ <text name="WL12am">
+ 12 am
+ </text>
+ <text name="WL3am">
+ 3 am
+ </text>
+ <text name="WL6am">
+ 6 am
+ </text>
+ <text name="WL9amHash">
+ 9 am
+ </text>
+ <text name="WL12pmHash">
+ 12 pm
+ </text>
+ <text name="WL3pm">
+ 3 pm
+ </text>
+ <text name="WL6pm">
+ 6 pm
+ </text>
+ <text name="WL9pm">
+ 9 pm
+ </text>
+ <text name="WL12am2">
+ 12 am
+ </text>
+ <text name="WL12amHash">
+ |
+ </text>
+ <text name="WL3amHash">
+ I
+ </text>
+ <text name="WL6amHash">
+ |
+ </text>
+ <text name="WL9amHash2">
+ I
+ </text>
+ <text name="WL12pmHash2">
+ |
+ </text>
+ <text name="WL3pmHash">
+ I
+ </text>
+ <text name="WL6pmHash">
+ |
+ </text>
+ <text name="WL9pmHash">
+ I
+ </text>
+ <text name="WL12amHash2">
+ |
+ </text>
+ <button label="Añadir un punto" label_selected="Añadir un punto" name="WLAddKey"/>
+ <button label="Quitar un punto" label_selected="Quitar un punto" name="WLDeleteKey"/>
+ <text name="WLCurKeyFrameText">
+ Configuración del fotograma clave:
+ </text>
+ <text name="WLCurKeyTimeText">
+ Hora clave:
+ </text>
+ <spinner label="Hora" name="WLCurKeyHour"/>
+ <spinner label="Min." name="WLCurKeyMin"/>
+ <text name="WLCurKeyTimeText2">
+ Modelo predefinido:
+ </text>
+ <combo_box label="Predefinido" name="WLKeyPresets"/>
+ <text name="DayCycleText">
+ Intervalo:
+ </text>
+ <combo_box label="5 min." name="WLSnapOptions"/>
+ <text name="DayCycleText2">
+ Duración del ciclo:
+ </text>
+ <spinner label="Hora" name="WLLengthOfDayHour"/>
+ <spinner label="Min." name="WLLengthOfDayMin"/>
+ <spinner label="Seg." name="WLLengthOfDaySec"/>
+ <text name="DayCycleText3">
+ Vista previa:
+ </text>
+ <button label="Probar" label_selected="Probar" name="WLAnimSky"/>
+ <button label="Parar" label_selected="Parar" name="WLStopAnimSky"/>
+ <button label="Usar el horario del estado" label_selected="Ir al horario del estado" name="WLUseLindenTime"/>
+ <button label="Guardar este tipo de día" label_selected="Guardar este tipo de día" name="WLSaveDayCycle"/>
+ <button label="Cargar y probar un tipo de día" label_selected="Cargar y probar un tipo de día" name="WLLoadDayCycle"/>
+ </panel>
+ </tab_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_device_settings.xml b/indra/newview/skins/default/xui/es/floater_device_settings.xml
index 7b21d0dd65..e8989f44ef 100644
--- a/indra/newview/skins/default/xui/es/floater_device_settings.xml
+++ b/indra/newview/skins/default/xui/es/floater_device_settings.xml
@@ -1,2 +1,2 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_device_settings" title="Configuración de los dispositivos del chat de voz"/>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_device_settings" title="Configuración de los dispositivos del chat de voz"/>
diff --git a/indra/newview/skins/default/xui/es/floater_env_settings.xml b/indra/newview/skins/default/xui/es/floater_env_settings.xml
index 4a51ba260e..8b9bfe7362 100644
--- a/indra/newview/skins/default/xui/es/floater_env_settings.xml
+++ b/indra/newview/skins/default/xui/es/floater_env_settings.xml
@@ -1,23 +1,23 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Environment Editor Floater" title="Editor del entorno">
- <text name="EnvTimeText">
- Duración de un día
- </text>
- <text name="EnvTimeText2">
- 12:00 PM
- </text>
- <text name="EnvCloudText">
- Nubosidad
- </text>
- <text name="EnvWaterColorText">
- Color del agua
- </text>
- <color_swatch label="" name="EnvWaterColor" tool_tip="Pulse para abrir el selector de color"/>
- <text name="EnvWaterFogText">
- Claridad del agua
- </text>
- <button label="Usar el horario del estado" name="EnvUseEstateTimeButton"/>
- <button label="Cielo avanzado" name="EnvAdvancedSkyButton"/>
- <button label="Agua avanzada" name="EnvAdvancedWaterButton"/>
- <button label="?" name="EnvSettingsHelpButton"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Environment Editor Floater" title="Editor del entorno">
+ <text name="EnvTimeText">
+ Duración de un día
+ </text>
+ <text name="EnvTimeText2">
+ 12:00 PM
+ </text>
+ <text name="EnvCloudText">
+ Nubosidad
+ </text>
+ <text name="EnvWaterColorText">
+ Color del agua
+ </text>
+ <color_swatch label="" name="EnvWaterColor" tool_tip="Pulse para abrir el selector de color"/>
+ <text name="EnvWaterFogText">
+ Claridad del agua
+ </text>
+ <button label="Usar el horario del estado" name="EnvUseEstateTimeButton"/>
+ <button label="Cielo avanzado" name="EnvAdvancedSkyButton"/>
+ <button label="Agua avanzada" name="EnvAdvancedWaterButton"/>
+ <button label="?" name="EnvSettingsHelpButton"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_font_test.xml b/indra/newview/skins/default/xui/es/floater_font_test.xml
new file mode 100644
index 0000000000..e6b8087b60
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/floater_font_test.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="contents" title="Prueba de fuentes">
+ <text name="linea">
+ OverrideTest, debería de aparecer aquí en Times. (Desde default/xui/en-us)
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_hardware_settings.xml b/indra/newview/skins/default/xui/es/floater_hardware_settings.xml
index 197b3a8f39..29750ee737 100644
--- a/indra/newview/skins/default/xui/es/floater_hardware_settings.xml
+++ b/indra/newview/skins/default/xui/es/floater_hardware_settings.xml
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Hardware Settings Floater" title="Configuración del hardware">
- <text name="Filtering:">
- Filtrado:
- </text>
- <check_box label="Filtrado anisotrópico (más lento si se activa)" name="ani"/>
- <text name="Antialiasing:">
- Antialiasing:
- </text>
- <combo_box label="Antialiasing" name="fsaa">
- <combo_box.item name="FSAADisabled" label="Desactivado"/>
- <combo_box.item name="2x" label="2x"/>
- <combo_box.item name="4x" label="4x"/>
- <combo_box.item name="8x" label="8x"/>
- <combo_box.item name="16x" label="16x"/>
- </combo_box>
- <spinner label="Gamma:" name="gamma"/>
- <text name="(brightness, lower is brighter)">
- (brillo; menor es más brillante, 0=predeterminado)
- </text>
- <text name="Enable VBO:">
- Activar VBO:
- </text>
- <check_box label="Activar OpenGL Vertex Buffer Objects" name="vbo" tool_tip="En hardware moderno, habilitar esta opción mejora el rendimiento. Pero en hardware antiguo, el habilitarlo hace que, frecuentemente, se obtenga una implementación pobre de VBO, lo que puede provocarle caídas."/>
- <slider label="Memoria para texturas (MB):" name="GrapicsCardTextureMemory" tool_tip="Cantidad de memoria asignada a las texturas. Por defecto es la memoria de la tarjeta de vídeo. Reducir esta cantidad puede mejorar el rendimiento, pero también puede hacer que las texturas se vean borrosas."/>
- <spinner label="Intensidad de la niebla:" name="fog"/>
- <button label="OK" label_selected="OK" name="OK"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Hardware Settings Floater" title="Configuración del hardware">
+ <text name="Filtering:">
+ Filtrado:
+ </text>
+ <check_box label="Filtrado anisotrópico (más lento si se activa)" name="ani"/>
+ <text name="Antialiasing:">
+ Antialiasing:
+ </text>
+ <combo_box label="Antialiasing" name="fsaa" width="94">
+ <combo_box.item name="FSAADisabled" label="Desactivado"/>
+ <combo_box.item name="2x" label="2x"/>
+ <combo_box.item name="4x" label="4x"/>
+ <combo_box.item name="8x" label="8x"/>
+ <combo_box.item name="16x" label="16x"/>
+ </combo_box>
+ <spinner label="Gamma:" name="gamma"/>
+ <text name="(brightness, lower is brighter)">
+ (brillo; menor es más brillante, 0=predeterminado)
+ </text>
+ <text name="Enable VBO:">
+ Activar VBO:
+ </text>
+ <check_box label="Activar OpenGL Vertex Buffer Objects" name="vbo" tool_tip="En hardware moderno, habilitar esta opción mejora el rendimiento. Pero en hardware antiguo, el habilitarlo hace que, frecuentemente, se obtenga una implementación pobre de VBO, lo que puede provocarle caídas."/>
+ <slider label_width="150" left="10" width="300" label="Memoria para texturas (MB):" name="GrapicsCardTextureMemory" tool_tip="Cantidad de memoria asignada a las texturas. Por defecto es la memoria de la tarjeta de vídeo. Reducir esta cantidad puede mejorar el rendimiento, pero también puede hacer que las texturas se vean borrosas."/>
+ <spinner label="Intensidad de la niebla:" name="fog"/>
+ <button label="OK" label_selected="OK" name="OK"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_hud.xml b/indra/newview/skins/default/xui/es/floater_hud.xml
index c75867956b..d31bcedf05 100644
--- a/indra/newview/skins/default/xui/es/floater_hud.xml
+++ b/indra/newview/skins/default/xui/es/floater_hud.xml
@@ -1,2 +1,2 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_hud" title="Tutorial"/>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_hud" title="Tutorial"/>
diff --git a/indra/newview/skins/default/xui/es/floater_image_preview.xml b/indra/newview/skins/default/xui/es/floater_image_preview.xml
index cd036fc050..6d51a800b7 100644
--- a/indra/newview/skins/default/xui/es/floater_image_preview.xml
+++ b/indra/newview/skins/default/xui/es/floater_image_preview.xml
@@ -7,9 +7,10 @@
Descripción:
</text>
<text name="preview_label">
- Previsualizar la imagen como:
+ Previsualizar la
+imagen como:
</text>
- <combo_box label="Tipo de ropa" name="clothing_type_combo">
+ <combo_box label="Tipo de ropa" name="clothing_type_combo" left="100" width="186">
<combo_box.item name="Image" label="Imagen" />
<combo_box.item name="Hair" label="Pelo" />
<combo_box.item name="FemaleHead" label="Cabeza de mujer" />
@@ -24,9 +25,10 @@
<text name="bad_image_text">
Imposible leer la imagen.
-Pruebe a guardar la imagen como Targa (.tga) de 24 bites.
+Pruebe a guardar la imagen como Targa (.tga)
+de 24 bites.
</text>
<check_box label="Usar compresión sin pérdida" name="lossless_check"/>
<button label="Cancelar" name="cancel_btn"/>
- <button label="Subir ([AMOUNT] 10L$)" name="ok_btn"/>
+ <button label="Subir ([AMOUNT]L$)" name="ok_btn"/>
</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_inspect.xml b/indra/newview/skins/default/xui/es/floater_inspect.xml
index 01d56fa26d..7a9f76de0f 100644
--- a/indra/newview/skins/default/xui/es/floater_inspect.xml
+++ b/indra/newview/skins/default/xui/es/floater_inspect.xml
@@ -1,11 +1,11 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="inspect" title="Examinar objetos">
- <scroll_list name="object_list" tool_tip="Seleccione un objeto de esta lista para realzarlo en el mundo">
- <column label="Nombre del objeto" name="object_name"/>
- <column label="Nombre del propietario" name="owner_name"/>
- <column label="Nombre del creador" name="creator_name"/>
- <column label="Fecha de creación" name="creation_date"/>
- </scroll_list>
- <button label="Ver el perfil del propietario..." label_selected="" name="button owner" tool_tip="Ver el perfil del propietario del objeto realzado"/>
- <button label="Ver el perfil del creadir..." label_selected="" name="button creator" tool_tip="Ver el perfil del creador original del objeto realzado"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="inspect" title="Examinar objetos">
+ <scroll_list name="object_list" tool_tip="Seleccione un objeto de esta lista para realzarlo en el mundo">
+ <column label="Nombre del objeto" name="object_name"/>
+ <column label="Nombre del propietario" name="owner_name"/>
+ <column label="Nombre del creador" name="creator_name"/>
+ <column label="Fecha de creación" name="creation_date"/>
+ </scroll_list>
+ <button label="Ver el perfil del propietario..." label_selected="" name="button owner" tool_tip="Ver el perfil del propietario del objeto realzado"/>
+ <button label="Ver el perfil del creadir..." label_selected="" name="button creator" tool_tip="Ver el perfil del creador original del objeto realzado"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/es/floater_inventory_item_properties.xml
index dfe0b8e520..4df3ca2cf6 100644
--- a/indra/newview/skins/default/xui/es/floater_inventory_item_properties.xml
+++ b/indra/newview/skins/default/xui/es/floater_inventory_item_properties.xml
@@ -30,7 +30,7 @@
Usted puede:
</text>
<check_box label="Modificarlo" name="CheckOwnerModify"/>
- <check_box label="Copiarlo" name="CheckOwnerCopy"/>
+ <check_box left_delta="88" label="Copiarlo" name="CheckOwnerCopy"/>
<check_box label="Venderlo/darlo" name="CheckOwnerTransfer"/>
<text name="BaseMaskDebug">
B:
@@ -49,23 +49,19 @@
</text>
<check_box label="Compartir con el grupo" name="CheckShareWithGroup"/>
<check_box label="Permitir a cualquiera que lo copie" name="CheckEveryoneCopy"/>
- <text name="NextOwnerLabel">
+ <text name="NextOwnerLabel" width="230">
El próximo propietario puede:
</text>
<check_box label="Modificarlo" name="CheckNextOwnerModify"/>
- <check_box label="Copiarlo" name="CheckNextOwnerCopy"/>
+ <check_box left_delta="88" label="Copiarlo" name="CheckNextOwnerCopy"/>
<check_box label="Revenderlo/darlo" name="CheckNextOwnerTransfer"/>
<text name="SaleLabel">
Marcar ítem como:
</text>
<check_box label="En venta" name="CheckPurchase"/>
- <radio_group name="RadioSaleType">
- <radio_item name="radio">
- Original
- </radio_item>
- <radio_item name="radio2">
- Copia
- </radio_item>
+ <radio_group name="RadioSaleType" left_delta="88" >
+ <radio_item name="radio" label="Original" />
+ <radio_item name="radio2" label="Copia" />
</radio_group>
<text name="TextPrice">
Precio: L$
diff --git a/indra/newview/skins/default/xui/es/floater_joystick.xml b/indra/newview/skins/default/xui/es/floater_joystick.xml
index 3c9b5c3810..527485e57d 100644
--- a/indra/newview/skins/default/xui/es/floater_joystick.xml
+++ b/indra/newview/skins/default/xui/es/floater_joystick.xml
@@ -1,83 +1,85 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Joystick" title="Configuración del joystick">
- <check_box name="enable_joystick">
- Activar el joystick:
- </check_box>
- <spinner label="Mapping: X" name="JoystickAxis1"/>
- <spinner label="Mapping: Y" name="JoystickAxis2"/>
- <spinner label="Mapping: Z" name="JoystickAxis0"/>
- <spinner label="Mapping: arriba/abajo" name="JoystickAxis4"/>
- <spinner label="Mapping: izq./der." name="JoystickAxis5"/>
- <spinner label="Mapping: giro" name="JoystickAxis3"/>
- <spinner label="Mapping: zoom" name="JoystickAxis6"/>
- <check_box label="Zoom directo" name="ZoomDirect"/>
- <check_box label="Cursor 3D" name="Cursor3D"/>
- <check_box label="Nivel automático" name="AutoLeveling"/>
- <text name="Control Modes:">
- Modos de control:
- </text>
- <check_box name="JoystickAvatarEnabled">
- Avatar
- </check_box>
- <check_box name="JoystickBuildEnabled">
- Construir
- </check_box>
- <check_box name="JoystickFlycamEnabled">
- Flycam
- </check_box>
- <text name="XScale">
- Escala: X
- </text>
- <text name="YScale">
- Escala: Y
- </text>
- <text name="ZScale">
- Escala: Z
- </text>
- <text name="PitchScale">
- Escala: arriba/abajo
- </text>
- <text name="YawScale">
- Escala: izq./der.
- </text>
- <text name="RollScale">
- Escala: giro
- </text>
- <text name="XDeadZone">
- Zona muerta X
- </text>
- <text name="YDeadZone">
- Zona muerta Y
- </text>
- <text name="ZDeadZone">
- Zona muerta Z
- </text>
- <text name="PitchDeadZone">
- Zona muerta arriba/abajo
- </text>
- <text name="YawDeadZone">
- Zona muerta izq./der
- </text>
- <text name="RollDeadZone">
- Zona muerta giro
- </text>
- <text name="Feathering">
- Rigidez
- </text>
- <text name="ZoomScale2">
- Escala: zoom
- </text>
- <text name="ZoomDeadZone">
- Zona muerta zoom
- </text>
- <button label="Predeterminados del SpaceNavigator" name="SpaceNavigatorDefaults"/>
- <string name="JoystickMonitor">
- Monitor del joystick
- </string>
- <string name="Axis">
- Eje [NUM]
- </string>
- <string name="NoDevice">
- no se ha detectado el dispositivo
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Joystick" title="Configuración del joystick">
+ <check_box name="enable_joystick">
+ Activar el joystick:
+ </check_box>
+ <spinner label="Mapping: X" name="JoystickAxis1"/>
+ <spinner label="Mapping: Y" name="JoystickAxis2"/>
+ <spinner label="Mapping: Z" name="JoystickAxis0"/>
+ <spinner label="Mapping: arriba/abajo" name="JoystickAxis4"/>
+ <spinner label="Mapping: izq./der." name="JoystickAxis5"/>
+ <spinner label="Mapping: giro" name="JoystickAxis3"/>
+ <spinner label="Mapping: zoom" name="JoystickAxis6"/>
+ <check_box label="Zoom directo" name="ZoomDirect"/>
+ <check_box label="Cursor 3D" name="Cursor3D"/>
+ <check_box label="Nivel automático" name="AutoLeveling"/>
+ <text name="Control Modes:">
+ Modos de control:
+ </text>
+ <check_box name="JoystickAvatarEnabled">
+ Avatar
+ </check_box>
+ <check_box name="JoystickBuildEnabled">
+ Construir
+ </check_box>
+ <check_box name="JoystickFlycamEnabled">
+ Flycam
+ </check_box>
+ <text name="XScale">
+ Escala: X
+ </text>
+ <text name="YScale">
+ Escala: Y
+ </text>
+ <text name="ZScale">
+ Escala: Z
+ </text>
+ <text name="PitchScale">
+ Escala: arriba/abajo
+ </text>
+ <text name="YawScale">
+ Escala: izq./der.
+ </text>
+ <text name="RollScale">
+ Escala: giro
+ </text>
+ <text name="XDeadZone">
+ Zona muerta X
+ </text>
+ <text name="YDeadZone">
+ Zona muerta Y
+ </text>
+ <text name="ZDeadZone">
+ Zona muerta Z
+ </text>
+ <text name="PitchDeadZone">
+ Zona muerta arriba/abajo
+ </text>
+ <text name="YawDeadZone">
+ Zona muerta izq./der
+ </text>
+ <text name="RollDeadZone">
+ Zona muerta giro
+ </text>
+ <text name="Feathering">
+ Rigidez
+ </text>
+ <text name="ZoomScale2">
+ Escala: zoom
+ </text>
+ <text name="ZoomDeadZone">
+ Zona muerta zoom
+ </text>
+ <button label="Predeterminados del SpaceNavigator" name="SpaceNavigatorDefaults"/>
+ <button label="OK" label_selected="OK" name="ok_btn"/>
+ <button label="Cancelar" label_selected="Cancelar" name="cancel_btn"/>
+ <string name="JoystickMonitor">
+ Monitor del joystick
+ </string>
+ <string name="Axis">
+ Eje [NUM]
+ </string>
+ <string name="NoDevice">
+ no se ha detectado el dispositivo
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_lagmeter.xml b/indra/newview/skins/default/xui/es/floater_lagmeter.xml
index 76043423bc..7d499750de 100644
--- a/indra/newview/skins/default/xui/es/floater_lagmeter.xml
+++ b/indra/newview/skins/default/xui/es/floater_lagmeter.xml
@@ -1,152 +1,152 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_lagmeter" title="Medidor del lag">
- <button label="" label_selected="" name="client_lagmeter" tool_tip="Estado del lag del cliente"/>
- <text name="client">
- Cliente:
- </text>
- <text name="client_text">
- Normal
- </text>
- <button label="" label_selected="" name="network_lagmeter" tool_tip="Estado del lag de la red"/>
- <text name="network">
- Red:
- </text>
- <text name="network_text">
- Normal
- </text>
- <button label="" label_selected="" name="server_lagmeter" tool_tip="Estado del lag del servidor"/>
- <text name="server">
- Servidor:
- </text>
- <text name="server_text">
- Normal
- </text>
- <button label="?" name="server_help"/>
- <button label="&gt;&gt;" name="minimize"/>
- <string name="max_title_msg">
- Medidor del lag
- </string>
- <string name="max_width_px">
- 360
- </string>
- <string name="min_title_msg">
- Lag
- </string>
- <string name="min_width_px">
- 90
- </string>
- <string name="client_text_msg">
- Cliente
- </string>
- <string name="client_frame_rate_critical_fps">
- 10
- </string>
- <string name="client_frame_rate_warning_fps">
- 15
- </string>
- <string name="client_frame_time_window_bg_msg">
- Normal, ventana en segundo plano
- </string>
- <string name="client_frame_time_critical_msg">
- Frames del cliente valorados por debajo de [CLIENT_FRAME_RATE_CRITICAL]
- </string>
- <string name="client_frame_time_warning_msg">
- Frames del cliente valorados entre [CLIENT_FRAME_RATE_CRITICAL] y [CLIENT_FRAME_RATE_WARNING]
- </string>
- <string name="client_frame_time_normal_msg">
- Normal
- </string>
- <string name="client_draw_distance_cause_msg">
- Posible causa: distancia de dibujo fijada muy alta
- </string>
- <string name="client_texture_loading_cause_msg">
- Posible causa: imágenes cargándose
- </string>
- <string name="client_texture_memory_cause_msg">
- Posible causa: demasiadas imágenes en la memoria
- </string>
- <string name="client_complex_objects_cause_msg">
- Posible causa: demasiados objetos complejos en la escena
- </string>
- <string name="network_text_msg">
- Red
- </string>
- <string name="network_packet_loss_critical_pct">
- 10
- </string>
- <string name="network_packet_loss_warning_pct">
- 5
- </string>
- <string name="network_packet_loss_critical_msg">
- La conexión deja caer más del [NETWORK_PACKET_LOSS_CRITICAL]% de los paquetes
- </string>
- <string name="network_packet_loss_warning_msg">
- La conexión deja caer [NETWORK_PACKET_LOSS_WARNING]%-[NETWORK_PACKET_LOSS_CRITICAL]% de los paquetes
- </string>
- <string name="network_performance_normal_msg">
- Normal
- </string>
- <string name="network_ping_critical_ms">
- 600
- </string>
- <string name="network_ping_warning_ms">
- 300
- </string>
- <string name="network_ping_critical_msg">
- El tiempo de conexión -ping- supera los [NETWORK_PING_CRITICAL] ms
- </string>
- <string name="network_ping_warning_msg">
- El tiempo de conexión -ping- es de [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] ms
- </string>
- <string name="network_packet_loss_cause_msg">
- Quizá una mala conexión o un ancho de banda fijado demasiado alto.
- </string>
- <string name="network_ping_cause_msg">
- Quizá una mala conexión o una aplicación de archivos compartidos.
- </string>
- <string name="server_text_msg">
- Servidor
- </string>
- <string name="server_frame_rate_critical_fps">
- 20
- </string>
- <string name="server_frame_rate_warning_fps">
- 30
- </string>
- <string name="server_single_process_max_time_ms">
- 20
- </string>
- <string name="server_frame_time_critical_msg">
- Frecuencia del simulador -framerate- por debajo de [SERVER_FRAME_RATE_CRITICAL]
- </string>
- <string name="server_frame_time_warning_msg">
- Frecuencia del simulador -framerate- entre [SERVER_FRAME_RATE_CRITICAL] y [SERVER_FRAME_RATE_WARNING]
- </string>
- <string name="server_frame_time_normal_msg">
- Normal
- </string>
- <string name="server_physics_cause_msg">
- Posible causa: demasiados objetos físicos
- </string>
- <string name="server_scripts_cause_msg">
- Posible causa: demasiados objetos con script
- </string>
- <string name="server_net_cause_msg">
- Posible causa: demasiado tráfico en la red
- </string>
- <string name="server_agent_cause_msg">
- Posible causa: demasiada gente moviéndose en la región
- </string>
- <string name="server_images_cause_msg">
- Posible causa: demasiados cálculos de imáganes
- </string>
- <string name="server_generic_cause_msg">
- Posible causa: carga del simulador muy pesada
- </string>
- <string name="smaller_label">
- &gt;&gt;
- </string>
- <string name="bigger_label">
- &lt;&lt;
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_lagmeter" title="Medidor del lag">
+ <button label="" label_selected="" name="client_lagmeter" tool_tip="Estado del lag del cliente"/>
+ <text name="client">
+ Cliente:
+ </text>
+ <text name="client_text">
+ Normal
+ </text>
+ <button label="" label_selected="" name="network_lagmeter" tool_tip="Estado del lag de la red"/>
+ <text name="network">
+ Red:
+ </text>
+ <text name="network_text">
+ Normal
+ </text>
+ <button label="" label_selected="" name="server_lagmeter" tool_tip="Estado del lag del servidor"/>
+ <text name="server">
+ Servidor:
+ </text>
+ <text name="server_text">
+ Normal
+ </text>
+ <button label="?" name="server_help"/>
+ <button label="&gt;&gt;" name="minimize"/>
+ <string name="max_title_msg">
+ Medidor del lag
+ </string>
+ <string name="max_width_px">
+ 360
+ </string>
+ <string name="min_title_msg">
+ Lag
+ </string>
+ <string name="min_width_px">
+ 90
+ </string>
+ <string name="client_text_msg">
+ Cliente
+ </string>
+ <string name="client_frame_rate_critical_fps">
+ 10
+ </string>
+ <string name="client_frame_rate_warning_fps">
+ 15
+ </string>
+ <string name="client_frame_time_window_bg_msg">
+ Normal, ventana en segundo plano
+ </string>
+ <string name="client_frame_time_critical_msg">
+ Frames del cliente valorados por debajo de [CLIENT_FRAME_RATE_CRITICAL]
+ </string>
+ <string name="client_frame_time_warning_msg">
+ Frames del cliente valorados entre [CLIENT_FRAME_RATE_CRITICAL] y [CLIENT_FRAME_RATE_WARNING]
+ </string>
+ <string name="client_frame_time_normal_msg">
+ Normal
+ </string>
+ <string name="client_draw_distance_cause_msg">
+ Posible causa: distancia de dibujo fijada muy alta
+ </string>
+ <string name="client_texture_loading_cause_msg">
+ Posible causa: imágenes cargándose
+ </string>
+ <string name="client_texture_memory_cause_msg">
+ Posible causa: demasiadas imágenes en la memoria
+ </string>
+ <string name="client_complex_objects_cause_msg">
+ Posible causa: demasiados objetos complejos en la escena
+ </string>
+ <string name="network_text_msg">
+ Red
+ </string>
+ <string name="network_packet_loss_critical_pct">
+ 10
+ </string>
+ <string name="network_packet_loss_warning_pct">
+ 5
+ </string>
+ <string name="network_packet_loss_critical_msg">
+ La conexión deja caer más del [NETWORK_PACKET_LOSS_CRITICAL]% de los paquetes
+ </string>
+ <string name="network_packet_loss_warning_msg">
+ La conexión deja caer [NETWORK_PACKET_LOSS_WARNING]%-[NETWORK_PACKET_LOSS_CRITICAL]% de los paquetes
+ </string>
+ <string name="network_performance_normal_msg">
+ Normal
+ </string>
+ <string name="network_ping_critical_ms">
+ 600
+ </string>
+ <string name="network_ping_warning_ms">
+ 300
+ </string>
+ <string name="network_ping_critical_msg">
+ El tiempo de conexión -ping- supera los [NETWORK_PING_CRITICAL] ms
+ </string>
+ <string name="network_ping_warning_msg">
+ El tiempo de conexión -ping- es de [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] ms
+ </string>
+ <string name="network_packet_loss_cause_msg">
+ Quizá una mala conexión o un ancho de banda fijado demasiado alto.
+ </string>
+ <string name="network_ping_cause_msg">
+ Quizá una mala conexión o una aplicación de archivos compartidos.
+ </string>
+ <string name="server_text_msg">
+ Servidor
+ </string>
+ <string name="server_frame_rate_critical_fps">
+ 20
+ </string>
+ <string name="server_frame_rate_warning_fps">
+ 30
+ </string>
+ <string name="server_single_process_max_time_ms">
+ 20
+ </string>
+ <string name="server_frame_time_critical_msg">
+ Frecuencia del simulador -framerate- por debajo de [SERVER_FRAME_RATE_CRITICAL]
+ </string>
+ <string name="server_frame_time_warning_msg">
+ Frecuencia del simulador -framerate- entre [SERVER_FRAME_RATE_CRITICAL] y [SERVER_FRAME_RATE_WARNING]
+ </string>
+ <string name="server_frame_time_normal_msg">
+ Normal
+ </string>
+ <string name="server_physics_cause_msg">
+ Posible causa: demasiados objetos físicos
+ </string>
+ <string name="server_scripts_cause_msg">
+ Posible causa: demasiados objetos con script
+ </string>
+ <string name="server_net_cause_msg">
+ Posible causa: demasiado tráfico en la red
+ </string>
+ <string name="server_agent_cause_msg">
+ Posible causa: demasiada gente moviéndose en la región
+ </string>
+ <string name="server_images_cause_msg">
+ Posible causa: demasiados cálculos de imáganes
+ </string>
+ <string name="server_generic_cause_msg">
+ Posible causa: carga del simulador muy pesada
+ </string>
+ <string name="smaller_label">
+ &gt;&gt;
+ </string>
+ <string name="bigger_label">
+ &lt;&lt;
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_land_holdings.xml b/indra/newview/skins/default/xui/es/floater_land_holdings.xml
index 7c18e63155..5c08b04055 100644
--- a/indra/newview/skins/default/xui/es/floater_land_holdings.xml
+++ b/indra/newview/skins/default/xui/es/floater_land_holdings.xml
@@ -1,8 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="land holdings floater" title="Mi terreno">
<scroll_list name="parcel list">
- <column label="Nombre" name="name"/>
- <column label="Localización" name="location"/>
+ <column label="Nombre de la parcela" name="name"/>
+ <column label="Región" name="location"/>
+ <column label="Tipo" name="type"/>
<column label="Superficie" name="area"/>
<column label="" name="hidden"/>
</scroll_list>
diff --git a/indra/newview/skins/default/xui/es/floater_lsl_guide.xml b/indra/newview/skins/default/xui/es/floater_lsl_guide.xml
index d1e67a4a8e..c1e431f274 100644
--- a/indra/newview/skins/default/xui/es/floater_lsl_guide.xml
+++ b/indra/newview/skins/default/xui/es/floater_lsl_guide.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="script ed float" title="Wiki de LSL">
- <check_box label="Seguir al cursor" name="lock_check"/>
- <combo_box label="Bloquear" name="history_combo"/>
- <button label="Atrás" name="back_btn"/>
- <button label="Adelante" name="fwd_btn"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="script ed float" title="Wiki de LSL">
+ <check_box label="Seguir al cursor" name="lock_check"/>
+ <combo_box label="Bloquear" name="history_combo"/>
+ <button label="Atrás" name="back_btn"/>
+ <button label="Adelante" name="fwd_btn"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_media_browser.xml b/indra/newview/skins/default/xui/es/floater_media_browser.xml
index 8a6725c308..9b60b28537 100644
--- a/indra/newview/skins/default/xui/es/floater_media_browser.xml
+++ b/indra/newview/skins/default/xui/es/floater_media_browser.xml
@@ -1,19 +1,19 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_about" title="Navegador">
- <layout_stack name="stack1">
- <layout_panel name="nav_controls">
- <button label="Atrás" name="back"/>
- <button label="Adelante" name="forward"/>
- <button label="Actualizar" name="reload"/>
- <button label="Ir" name="go"/>
- </layout_panel>
- <layout_panel name="parcel_owner_controls">
- <button label="Enviar a la parcela la URL actual" name="assign"/>
- </layout_panel>
- <layout_panel name="external_controls">
- <button label="Abrir en mi navegador" name="open_browser"/>
- <check_box label="Abrir siempre en mi navegador" name="open_always"/>
- <button label="Cerrar" name="close"/>
- </layout_panel>
- </layout_stack>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_about" title="Navegador">
+ <layout_stack name="stack1">
+ <layout_panel name="nav_controls">
+ <button label="Atrás" name="back"/>
+ <button label="Adelante" name="forward"/>
+ <button label="Actualizar" name="reload"/>
+ <button label="Ir" name="go"/>
+ </layout_panel>
+ <layout_panel name="parcel_owner_controls">
+ <button label="Enviar a la parcela la URL actual" name="assign"/>
+ </layout_panel>
+ <layout_panel name="external_controls">
+ <button label="Abrir en mi navegador" name="open_browser"/>
+ <check_box label="Abrir siempre en mi navegador" name="open_always"/>
+ <button label="Cerrar" name="close"/>
+ </layout_panel>
+ </layout_stack>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_mem_leaking.xml b/indra/newview/skins/default/xui/es/floater_mem_leaking.xml
index 9a114eadb2..a2791d6432 100644
--- a/indra/newview/skins/default/xui/es/floater_mem_leaking.xml
+++ b/indra/newview/skins/default/xui/es/floater_mem_leaking.xml
@@ -1,18 +1,18 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="MemLeak" title="Prueba de la fuga de memoria">
- <spinner label="Velocidad de la fuga (bites por fotograma):" name="leak_speed"/>
- <spinner label="Fuga de memoria máx. (MB):" name="max_leak"/>
- <text name="total_leaked_label">
- Fuga de memoria actual: [SIZE] KB
- </text>
- <text name="note_label_1">
- [NOTE1]
- </text>
- <text name="note_label_2">
- [NOTE2]
- </text>
- <button label="Empezar" name="start_btn"/>
- <button label="Parar" name="stop_btn"/>
- <button label="Liberar" name="release_btn"/>
- <button label="Cerrar" name="close_btn"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="MemLeak" title="Prueba de la fuga de memoria">
+ <spinner label="Velocidad de la fuga (bites por fotograma):" name="leak_speed"/>
+ <spinner label="Fuga de memoria máx. (MB):" name="max_leak"/>
+ <text name="total_leaked_label">
+ Fuga de memoria actual: [SIZE] KB
+ </text>
+ <text name="note_label_1">
+ [NOTE1]
+ </text>
+ <text name="note_label_2">
+ [NOTE2]
+ </text>
+ <button label="Empezar" name="start_btn"/>
+ <button label="Parar" name="stop_btn"/>
+ <button label="Liberar" name="release_btn"/>
+ <button label="Cerrar" name="close_btn"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_mute_object.xml b/indra/newview/skins/default/xui/es/floater_mute_object.xml
index f475fc9406..a2b87b67ab 100644
--- a/indra/newview/skins/default/xui/es/floater_mute_object.xml
+++ b/indra/newview/skins/default/xui/es/floater_mute_object.xml
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="mute by name" title="Ignorar un objeto según su nombre">
- <text name="message">
- Ignorar según el nombre sólo afecta al chat y los MI del objeto, no a sus sonidos.
-Debe escribir exactamente el nombre del objeto.
- </text>
- <line_editor name="object_name">
- Nombre del objeto
- </line_editor>
- <button label="OK" name="OK"/>
- <button label="Cancelar" name="Cancel"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="mute by name" title="Ignorar un objeto según su nombre">
+ <text name="message">
+ Ignorar según el nombre sólo afecta al chat y los MI del objeto, no a sus sonidos.
+Debe escribir exactamente el nombre del objeto.
+ </text>
+ <line_editor name="object_name">
+ Nombre del objeto
+ </line_editor>
+ <button label="OK" name="OK"/>
+ <button label="Cancelar" name="Cancel"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_my_friends.xml b/indra/newview/skins/default/xui/es/floater_my_friends.xml
index 4615496bd3..d555eed305 100644
--- a/indra/newview/skins/default/xui/es/floater_my_friends.xml
+++ b/indra/newview/skins/default/xui/es/floater_my_friends.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_my_friends" title="Contactos">
- <tab_container name="friends_and_groups">
- <panel label="Amigos" name="friends_panel"/>
- <panel label="Grupos" name="groups_panel"/>
- </tab_container>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_my_friends" title="Contactos">
+ <tab_container name="friends_and_groups">
+ <panel label="Amigos" name="friends_panel"/>
+ <panel label="Grupos" name="groups_panel"/>
+ </tab_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_perm_prefs.xml b/indra/newview/skins/default/xui/es/floater_perm_prefs.xml
new file mode 100644
index 0000000000..4a3977be3d
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/floater_perm_prefs.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="perm prefs" title="Permisos de subida por defecto">
+ <panel label="Permisos" name="permissions">
+ <button label="?" label_selected="?" name="help"/>
+ <check_box label="Compartir con el grupo" name="share_with_group"/>
+ <check_box label="Permitir a cualquiera que lo copie" name="everyone_copy"/>
+ <text name="NextOwnerLabel">
+ El próximo propietario puede:
+ </text>
+ <check_box label="Modificarlo" name="next_owner_modify"/>
+ <check_box label="Copiarlo" name="next_owner_copy"/>
+ <check_box label="Revenderlo/Darlo" name="next_owner_transfer"/>
+ </panel>
+ <button label="OK" label_selected="OK" name="ok"/>
+ <button label="Cancelar" label_selected="Cancelar" name="cancel"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_post_process.xml b/indra/newview/skins/default/xui/es/floater_post_process.xml
index 9f52c47334..acac2b2bf9 100644
--- a/indra/newview/skins/default/xui/es/floater_post_process.xml
+++ b/indra/newview/skins/default/xui/es/floater_post_process.xml
@@ -1,53 +1,53 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Post-Process Floater" title="Configuración del procesamiento">
- <tab_container name="Post-Process Tabs">
- <panel label="Color del filtro" name="wmiColorFilterPanel">
- <check_box label="Activar" name="wmiColorFilterToggle"/>
- <text name="wmiColorFilterBrightnessText">
- Brillo
- </text>
- <text name="wmiColorFilterSaturationText">
- Saturación
- </text>
- <text name="wmiColorFilterContrastText">
- Contraste
- </text>
- <text name="wmiColorFilterBaseText">
- Color base del contraste
- </text>
- <slider label="R" name="wmiColorFilterBaseR"/>
- <slider label="V" name="wmiColorFilterBaseG"/>
- <slider label="A" name="wmiColorFilterBaseB"/>
- <slider label="I" name="wmiColorFilterBaseI"/>
- </panel>
- <panel label="Visión nocturna" name="wmiNightVisionPanel">
- <check_box label="Activar" name="wmiNightVisionToggle"/>
- <text name="wmiNightVisionBrightMultText">
- Amplificación de luz
- </text>
- <text name="wmiNightVisionNoiseSizeText">
- Cantidad de ruido
- </text>
- <text name="wmiNightVisionNoiseStrengthText">
- Intensidad del ruido
- </text>
- </panel>
- <panel label="Bloom" name="wmiBloomPanel">
- <check_box label="Activar" name="wmiBloomToggle"/>
- <text name="wmiBloomExtractText">
- Extracción de la luminosidad
- </text>
- <text name="wmiBloomSizeText">
- Bloom: cantidad
- </text>
- <text name="wmiBloomStrengthText">
- Bloom: intensidad
- </text>
- </panel>
- <panel label="Extras" name="Extras">
- <button label="Cargar efecto" label_selected="Cargar efecto" name="PPLoadEffect"/>
- <button label="Guardar efecto" label_selected="Guardar efecto" name="PPSaveEffect"/>
- <line_editor label="Nombre del efecto" name="PPEffectNameEditor"/>
- </panel>
- </tab_container>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Post-Process Floater" title="Configuración del procesamiento">
+ <tab_container name="Post-Process Tabs">
+ <panel label="Color del filtro" name="wmiColorFilterPanel">
+ <check_box label="Activar" name="wmiColorFilterToggle"/>
+ <text name="wmiColorFilterBrightnessText">
+ Brillo
+ </text>
+ <text name="wmiColorFilterSaturationText">
+ Saturación
+ </text>
+ <text name="wmiColorFilterContrastText">
+ Contraste
+ </text>
+ <text name="wmiColorFilterBaseText">
+ Color base del contraste
+ </text>
+ <slider label="R" name="wmiColorFilterBaseR"/>
+ <slider label="V" name="wmiColorFilterBaseG"/>
+ <slider label="A" name="wmiColorFilterBaseB"/>
+ <slider label="I" name="wmiColorFilterBaseI"/>
+ </panel>
+ <panel label="Visión nocturna" name="wmiNightVisionPanel">
+ <check_box label="Activar" name="wmiNightVisionToggle"/>
+ <text name="wmiNightVisionBrightMultText">
+ Amplificación de luz
+ </text>
+ <text name="wmiNightVisionNoiseSizeText">
+ Cantidad de ruido
+ </text>
+ <text name="wmiNightVisionNoiseStrengthText">
+ Intensidad del ruido
+ </text>
+ </panel>
+ <panel label="Bloom" name="wmiBloomPanel">
+ <check_box label="Activar" name="wmiBloomToggle"/>
+ <text name="wmiBloomExtractText">
+ Extracción de la luminosidad
+ </text>
+ <text name="wmiBloomSizeText">
+ Bloom: cantidad
+ </text>
+ <text name="wmiBloomStrengthText">
+ Bloom: intensidad
+ </text>
+ </panel>
+ <panel label="Extras" name="Extras">
+ <button label="Cargar efecto" label_selected="Cargar efecto" name="PPLoadEffect"/>
+ <button label="Guardar efecto" label_selected="Guardar efecto" name="PPSaveEffect"/>
+ <line_editor label="Nombre del efecto" name="PPEffectNameEditor"/>
+ </panel>
+ </tab_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_preview_classified.xml b/indra/newview/skins/default/xui/es/floater_preview_classified.xml
index 691a9b5243..f2fa38ead8 100644
--- a/indra/newview/skins/default/xui/es/floater_preview_classified.xml
+++ b/indra/newview/skins/default/xui/es/floater_preview_classified.xml
@@ -1,2 +1,2 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="classified_preview" title="Información clasificada"/>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="classified_preview" title="Información clasificada"/>
diff --git a/indra/newview/skins/default/xui/es/floater_preview_event.xml b/indra/newview/skins/default/xui/es/floater_preview_event.xml
index d6a0e978d9..7f727b0502 100644
--- a/indra/newview/skins/default/xui/es/floater_preview_event.xml
+++ b/indra/newview/skins/default/xui/es/floater_preview_event.xml
@@ -1,2 +1,2 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="event_preview" title="Información de eventos"/>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="event_preview" title="Información de eventos"/>
diff --git a/indra/newview/skins/default/xui/es/floater_preview_gesture.xml b/indra/newview/skins/default/xui/es/floater_preview_gesture.xml
index 4513fc6f3c..0e43ce536c 100644
--- a/indra/newview/skins/default/xui/es/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/es/floater_preview_gesture.xml
@@ -15,15 +15,15 @@
<text name="trigger_label">
Palabra clave:
</text>
- <text name="replace_text" tool_tip="Reemplaza la/s palabra/s clave con estas palabras. Por ejemplo, si cambia la palabra clave &apos;hola&apos; por &apos;qué tal&apos;, se cambiará en el chat &apos;Quise decir hola&apos; por &apos;Quise decir qué tal&apos; en cuanto realice el gesto.">
+ <text left="208" name="replace_text" tool_tip="Reemplaza la/s palabra/s clave con estas palabras. Por ejemplo, si cambia la palabra clave &apos;hola&apos; por &apos;qué tal&apos;, se cambiará en el chat &apos;Quise decir hola&apos; por &apos;Quise decir qué tal&apos; en cuanto realice el gesto.">
Reemplazar por:
</text>
<line_editor name="replace_editor" tool_tip="Reemplaza la/s palabra/s clave con estas palabras. Por ejemplo, si cambia la palabra clave &apos;hola&apos; por &apos;qué tal&apos;, se cambiará en el chat &apos;Quise decir hola&apos; por &apos;Quise decir qué tal&apos; en cuanto realice el gesto."/>
<text name="key_label">
Atajo de teclado:
</text>
- <combo_box label="Ninguno" name="modifier_combo"/>
- <combo_box label="Ninguno" name="key_combo"/>
+ <combo_box label="Ninguno" name="modifier_combo" left="116" width="76"/>
+ <combo_box label="Ninguno" name="key_combo" width="76" left_delta="80"/>
<text name="library_label">
Biblioteca:
</text>
@@ -44,17 +44,15 @@ Esperar
Todos los pasos suceden a la vez,
a menos que añada pasos de espera.
</text>
+ <text left="230" name="options_text" width="200" />
<radio_group name="animation_trigger_type">
- <radio_item name="start">
- Empezar
- </radio_item>
- <radio_item name="stop">
- Parar
- </radio_item>
+ <radio_item name="start" label="Empezar" />
+ <radio_item name="stop" label="Parar" />
</radio_group>
- <check_box label="hasta que las animaciones estén hechas" name="wait_anim_check"/>
- <check_box label="tiempo en segundos" name="wait_time_check"/>
- <check_box label="Disponible" name="active_check" tool_tip="Los gestos disponibles pueden realizarse escribiendo en el chat su frase clave o pulsando su tecla de acceso rápido. Generalmente, los gestos pasan a no disponibles cuando hay un conflicto de teclas."/>
- <button label="Vista previa" name="preview_btn"/>
+ <check_box bottom_delta="34" label="hasta que las animaciones &#10;estén hechas" name="wait_anim_check"/>
+ <check_box bottom_delta="-30" label="tiempo en segundos" name="wait_time_check"/>
+ <line_editor left_delta="130" name="wait_time_editor" />
+ <check_box left="130" label="Disponible" name="active_check" tool_tip="Los gestos disponibles pueden realizarse escribiendo en el chat su frase clave o pulsando su tecla de acceso rápido. Generalmente, los gestos pasan a no disponibles cuando hay un conflicto de teclas."/>
+ <button label="Vista previa" name="preview_btn" width="85"/>
<button label="Guardar" name="save_btn"/>
</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_region_info.xml b/indra/newview/skins/default/xui/es/floater_region_info.xml
index 1fb7924532..b5a85378c2 100644
--- a/indra/newview/skins/default/xui/es/floater_region_info.xml
+++ b/indra/newview/skins/default/xui/es/floater_region_info.xml
@@ -1,2 +1,2 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="regioninfo" title="Región/Estado"/>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="regioninfo" title="Región/Estado"/>
diff --git a/indra/newview/skins/default/xui/es/floater_report_abuse.xml b/indra/newview/skins/default/xui/es/floater_report_abuse.xml
index 1d3244524f..caa0f2a748 100644
--- a/indra/newview/skins/default/xui/es/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/es/floater_report_abuse.xml
@@ -40,9 +40,9 @@
<combo_box.item name="Select_category" label="Elegir la categoría"/>
<combo_box.item name="Age__Age_play" label="Edad &gt; Jugar a ser niño"/>
<combo_box.item name="Age__Adult_resident_on_Teen_Second_Life" label="Edad &gt; Residente adulto en Teen Second Life"/>
-
-
-
+ <combo_item name="Age__Underage_resident_outside_of_Teen_Second_Life">
+ Edad &gt; Residente menor de edad fuera de Teen Second Life
+ </combo_item>
<combo_box.item name="Assault__Combat_sandbox___unsafe_area" label="Ataque &gt; Sandbox de combate / Zona no segura"/>
<combo_box.item name="Assault__Safe_area" label="Ataque &gt; Zona segura"/>
<combo_box.item name="Assault__Weapons_testing_sandbox" label="Ataque &gt; Sandbox de prueba de armas"/>
@@ -66,13 +66,13 @@
<combo_box.item name="Harassment__Solicting_inciting_others_to_violate_ToS" label="Acoso &gt; Incitar a, o pedir, que otros violen las Condiciones del Servicio"/>
<combo_box.item name="Harassment__Verbal_abuse" label="Acoso &gt; Abuso verbal"/>
<combo_box.item name="Indecency__Broadly_offensive_content_or_conduct" label="Indecencia &gt; En general, contenido o conducta ofensivos"/>
-
-
-
<combo_box.item name="Indecency__Inappropriate_avatar_name" label="Indecencia &gt; Nombre inapropiado del avatar"/>
-
-
-
+ <combo_item name="Indecency__Mature_content_in_PG_region">
+ Indecencia &gt; Contenido o conducta inapropiada en una región &apos;PG&apos;
+ </combo_item>
+ <combo_item name="Indecency__Inappropriate_content_in_Mature_region">
+ Indecencia &gt; Contenido o conducta inapropiada en una región &apos;Mature&apos;
+ </combo_item>
<combo_box.item name="Intellectual_property_infringement_Content_Removal" label="Infracción de la propiedad intelectual &gt; Eliminación de contenidos"/>
<combo_box.item name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit" label="Infracción de la propiedad intelectual &gt; CopyBot o Exploit (programa malicioso) de permisos"/>
<combo_box.item name="Intolerance" label="Intolerancia"/>
@@ -98,7 +98,9 @@
Detalles:
</text>
<text name="bug_aviso">
- Por favor, sea muy concreto sobre la fecha, la localización, la naturaleza de la infracción, el aportar textos relevantes del chat o los MI, y, si es posible, seleccione el objeto.
+ Por favor, sea muy concreto sobre la fecha, la localización,
+la naturaleza de la infracción, el aportar textos relevantes
+del chat o los MI, y, si es posible, seleccione el objeto.
</text>
<text name="incomplete_title">
Nota: las denuncias incompletas no se investigarán.
diff --git a/indra/newview/skins/default/xui/es/floater_select_key.xml b/indra/newview/skins/default/xui/es/floater_select_key.xml
index 3cb8794bfe..132985864c 100644
--- a/indra/newview/skins/default/xui/es/floater_select_key.xml
+++ b/indra/newview/skins/default/xui/es/floater_select_key.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="modal container" title="">
- <button label="Cancelar" label_selected="Cancelar" name="Cancel"/>
- <text name="Save item as:">
- Pulse una tecla para seleccionar
- </text>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="modal container" title="">
+ <button label="Cancelar" label_selected="Cancelar" name="Cancel"/>
+ <text name="Save item as:">
+ Pulse una tecla para seleccionar
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_sell_land.xml b/indra/newview/skins/default/xui/es/floater_sell_land.xml
index 4127fafc98..6d1122a771 100644
--- a/indra/newview/skins/default/xui/es/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/es/floater_sell_land.xml
@@ -15,6 +15,7 @@
<text name="info_action">
Vender esta parcela:
</text>
+ <icon bottom_delta="-56" name="step_price" />
<text name="price_label">
Marque un precio:
</text>
@@ -43,17 +44,14 @@
¿Vender los objetos con el terreno?
</text>
<text name="sell_objects_text">
- Los objetos transferibles del propietario del terreno cambiarán de propietario.
- </text>
- <radio_group name="sell_objects">
- <radio_item name="no">
- No, mantener la propiedad de los objetos
- </radio_item>
- <radio_item name="yes">
- Sí, vender los objetos con el terreno
- </radio_item>
+ Los objetos transferibles del propietario del terreno cambiarán
+de propietario.
+ </text>
+ <radio_group name="sell_objects" bottom_delta="-58" >
+ <radio_item name="no" label="No, mantener la propiedad de los objetos" />
+ <radio_item name="yes" label="Sí, vender los objetos con el terreno" />
</radio_group>
- <button label="Mostrar los objetos" name="show_objects"/>
+ <button label="Mostrar los objetos" name="show_objects" width="120"/>
<text name="nag_message_label">
RECUERDE: todas las ventas son definitivas.
</text>
diff --git a/indra/newview/skins/default/xui/es/floater_settings_debug.xml b/indra/newview/skins/default/xui/es/floater_settings_debug.xml
index b87ee1bffc..1d5ad2f34c 100644
--- a/indra/newview/skins/default/xui/es/floater_settings_debug.xml
+++ b/indra/newview/skins/default/xui/es/floater_settings_debug.xml
@@ -9,5 +9,5 @@
<spinner label="x" name="val_spinner_2"/>
<spinner label="x" name="val_spinner_3"/>
<spinner label="x" name="val_spinner_4"/>
- <button label="Volver a las opciones por defecto" name="default_btn"/>
+ <button label="Volver a las opciones por defecto" name="default_btn" width="210"/>
</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_snapshot.xml b/indra/newview/skins/default/xui/es/floater_snapshot.xml
index 9d60b84688..c1ace23503 100644
--- a/indra/newview/skins/default/xui/es/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/es/floater_snapshot.xml
@@ -4,15 +4,9 @@
Destino de la foto
</text>
<radio_group label="Tipo de la foto" name="snapshot_type_radio">
- <radio_item name="postcard">
- Enviar por correo electrónico
- </radio_item>
- <radio_item name="texture">
- Guardarla en su inventario ([AMOUNT] L$)
- </radio_item>
- <radio_item name="local">
- Guardarla en su disco duro
- </radio_item>
+ <radio_item name="postcard" label="Enviar por correo electrónico" />
+ <radio_item name="texture" label="Guardarla en su inventario ([AMOUNT] L$)" />
+ <radio_item name="local" label="Guardarla en su disco duro" />
</radio_group>
<text name="file_size_label">
Tamaño del archivo: [SIZE] KB
@@ -62,8 +56,8 @@
<combo_box.item name="JPEG" label="JPEG"/>
<combo_box.item name="BMP" label="BMP"/>
</combo_box>
- <spinner label="Ancho" name="snapshot_width"/>
- <spinner label="Alto" name="snapshot_height"/>
+ <spinner label="Ancho" name="snapshot_width" label_width="41" width="101"/>
+ <spinner label="Alto" name="snapshot_height" label_width="30" width="90" left="121"/>
<check_box label="Mantener las proporciones" name="keep_aspect_check"/>
<slider label="Calidad de la imagen" name="image_quality_slider"/>
<text name="layer_type_label">
@@ -75,10 +69,10 @@
<combo_box.item name="ObjectMattes" label="Bandas negras"/>
</combo_box>
<check_box label="Incluir la interfaz en la foto" name="ui_check"/>
- <check_box label="Incluir los HUD en la foto" name="hud_check"/>
- <check_box label="Mantenerla abierta tras guardarla" name="keep_open_check"/>
- <check_box label="Congelar la toma (vista previa en pantalla completa)" name="freeze_frame_check"/>
- <check_box label="Actualizar automáticamente" name="auto_snapshot_check"/>
+ <check_box bottom_delta="-17" label="Incluir los HUD en la foto" name="hud_check"/>
+ <check_box bottom_delta="-17" label="Mantenerla abierta tras guardarla" name="keep_open_check"/>
+ <check_box bottom_delta="-17" label="Congelar la toma &#10;(vista previa en pantalla completa)" name="freeze_frame_check"/>
+ <check_box bottom_delta="-29" label="Actualizar automáticamente" name="auto_snapshot_check"/>
<string name="unknown">
desconocido
</string>
diff --git a/indra/newview/skins/default/xui/es/floater_sound_preview.xml b/indra/newview/skins/default/xui/es/floater_sound_preview.xml
index 3e92b2423d..e69ac10123 100644
--- a/indra/newview/skins/default/xui/es/floater_sound_preview.xml
+++ b/indra/newview/skins/default/xui/es/floater_sound_preview.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Name/Description" title="sound.wav">
+<floater name="Sound Preview" title="sound.wav">
<text name="name_label">
Nombre:
</text>
diff --git a/indra/newview/skins/default/xui/es/floater_statistics.xml b/indra/newview/skins/default/xui/es/floater_statistics.xml
new file mode 100644
index 0000000000..6e644cacf1
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/floater_statistics.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="stats floater" title="Estadísticas"/>
diff --git a/indra/newview/skins/default/xui/es/floater_tools.xml b/indra/newview/skins/default/xui/es/floater_tools.xml
index 3b6bf732be..15c66c8366 100644
--- a/indra/newview/skins/default/xui/es/floater_tools.xml
+++ b/indra/newview/skins/default/xui/es/floater_tools.xml
@@ -17,12 +17,18 @@
<check_box label="Elegir la cara" name="radio select face"/>
<check_box label="Editar las partes enlazadas" name="checkbox edit linked parts"/>
<text name="text ruler mode">
- Modo de ajuste:
+ Ajuste:
</text>
<combo_box name="combobox grid mode">
- <combo_box.item name="World" label="Mundo"/>
- <combo_box.item name="Local" label="Local"/>
- <combo_box.item name="Reference" label="Referencia"/>
+ <combo_item name="World">
+ Mundo
+ </combo_item>
+ <combo_item name="Local">
+ Local
+ </combo_item>
+ <combo_item name="Reference">
+ Referencia
+ </combo_item>
</combo_box>
<check_box label="Estirar ambos lados" name="checkbox uniform"/>
<check_box label="Estirar las texturas" name="checkbox stretch textures"/>
@@ -46,29 +52,33 @@
<button label="" label_selected="" name="ToolRing" tool_tip="Cono truncado"/>
<button label="" label_selected="" name="ToolTree" tool_tip="Árbol"/>
<button label="" label_selected="" name="ToolGrass" tool_tip="Hierba"/>
- <check_box label="Mantener esta herramienta" name="checkbox sticky"/>
- <check_box label="Copiar la selección" name="checkbox copy selection"/>
- <check_box label="Copia centrada" name="checkbox copy centers"/>
- <check_box label="Copia girada" name="checkbox copy rotates"/>
+ <check_box label="Mantener seleccionado" name="checkbox sticky"/>
+ <check_box label="Copia seleccionada" name="checkbox copy selection"/>
+ <check_box label="Centrada" name="checkbox copy centers"/>
+ <check_box label="Girada" name="checkbox copy rotates"/>
<check_box label="Seleccionar el terreno" name="radio select land"/>
- <check_box label="Nivelar el terreno" name="radio flatten"/>
- <check_box label="Elevar el terreno" name="radio raise"/>
- <check_box label="Bajar el terreno" name="radio lower"/>
- <check_box label="Suavizar el terreno" name="radio smooth"/>
- <check_box label="Escarpar el terreno" name="radio noise"/>
- <check_box label="Restablecer el terreno" name="radio revert"/>
- <combo_box name="combobox brush size">
- <combo_box.item name="Small" label="Pequeño"/>
- <combo_box.item name="Medium" label="Medio"/>
- <combo_box.item name="Large" label="Grande"/>
- </combo_box>
+ <check_box label="Nivelar" name="radio flatten"/>
+ <check_box label="Elevar" name="radio raise"/>
+ <check_box label="Bajar" name="radio lower"/>
+ <check_box label="Suavizar" name="radio smooth"/>
+ <check_box label="Escarpar" name="radio noise"/>
+ <check_box label="Restablecer" name="radio revert"/>
+ <button label="Aplicar" label_selected="Aplicar" name="button apply to selection" tool_tip="Modificar el terreno seleccionado"/>
+ <text name="Bulldozer:">
+ Bulldozer:
+ </text>
+ <text name="Dozer Size:">
+ Tamaño
+ </text>
<text name="Strength:">
- Fuerza:
+ Fuerza
+ </text>
+ <text name="obj_count">
+ Objetos seleccionados: [COUNT]
+ </text>
+ <text name="prim_count">
+ primitivas: [COUNT]
</text>
- <button label="Aplicar a lo seleccionado" label_selected="Aplicar a lo seleccionado" name="button apply to selection" tool_tip="Modificar el terreno seleccionado"/>
- <check_box label="Mostrar los propietarios" name="checkbox show owners"/>
- <button label="Más &gt;&gt;" name="button more" tool_tip="Opciones avanzadas"/>
- <button label="&lt;&lt; Menos" name="button less" tool_tip="Opciones avanzadas"/>
<tab_container name="Object Info Tabs">
<panel label="General" name="General">
<text name="Name:">
@@ -98,16 +108,13 @@
Los Linden
</text>
<button label="Configurar..." label_selected="Configurar..." name="button set group"/>
- <text name="prim info">
- 1 objeto, 1 prim
- </text>
<text name="Permissions:">
Permisos:
</text>
<text name="perm_modify">
Puede modificar este objeto.
</text>
- <check_box label="Compartir con el grupo" name="checkbox share with group" tool_tip="Permitir a los miembros del grupo mover, modificar, copiar, y borrar."/>
+ <check_box label="Compartir con el grupo" name="checkbox share with group" tool_tip="Permitir que todos los miembros del grupo compartan y utilicen sus permisos sobre este objeto. Debe transferirlo para activar las restricciones según los roles."/>
<string name="text deed continued">
Transferir...
</string>
@@ -143,13 +150,27 @@
Al pulsarlo con el botón izquierdo:
</text>
<combo_box name="clickaction">
- <combo_box.item name="Touch/grab(default)" label="Tocar/Agarrar (por defecto)"/>
- <combo_box.item name="Sitonobject" label="Sentarse en el objeto"/>
- <combo_box.item name="Buyobject" label="Comprar el objeto"/>
- <combo_box.item name="Payobject" label="Pagar al objeto"/>
- <combo_box.item name="Open" label="Abrirlo"/>
- <combo_box.item name="Play" label="Ejecutar los media de la parcela"/>
- <combo_box.item name="Opemmedia" label="Abrir los media de la parcela"/>
+ <combo_item name="Touch/grab(default)">
+ Tocar/Agarrar (por defecto)
+ </combo_item>
+ <combo_item name="Sitonobject">
+ Sentarse en el objeto
+ </combo_item>
+ <combo_item name="Buyobject">
+ Comprar el objeto
+ </combo_item>
+ <combo_item name="Payobject">
+ Pagar al objeto
+ </combo_item>
+ <combo_item name="Open">
+ Abrirlo
+ </combo_item>
+ <combo_item name="Play">
+ Ejecutar los media de la parcela
+ </combo_item>
+ <combo_item name="Opemmedia">
+ Abrir los media de la parcela
+ </combo_item>
</combo_box>
<text name="B:">
B:
@@ -233,29 +254,59 @@
Material
</text>
<combo_box name="material">
- <combo_box.item name="Stone" label="Piedra"/>
- <combo_box.item name="Metal" label="Metal"/>
- <combo_box.item name="Glass" label="Vidrio"/>
- <combo_box.item name="Wood" label="Madera"/>
- <combo_box.item name="Flesh" label="Carne"/>
- <combo_box.item name="Plastic" label="Plástico"/>
- <combo_box.item name="Rubber" label="Goma"/>
+ <combo_item name="Stone">
+ Piedra
+ </combo_item>
+ <combo_item name="Metal">
+ Metal
+ </combo_item>
+ <combo_item name="Glass">
+ Vidrio
+ </combo_item>
+ <combo_item name="Wood">
+ Madera
+ </combo_item>
+ <combo_item name="Flesh">
+ Carne
+ </combo_item>
+ <combo_item name="Plastic">
+ Plástico
+ </combo_item>
+ <combo_item name="Rubber">
+ Goma
+ </combo_item>
</combo_box>
<text name="label basetype">
Tipo de objeto para construir
</text>
<combo_box name="comboBaseType">
- <combo_box.item name="Box" label="Caja"/>
- <combo_box.item name="Cylinder" label="Cilindro"/>
- <combo_box.item name="Prism" label="Prisma"/>
- <combo_box.item name="Sphere" label="Esfera"/>
- <combo_box.item name="Torus" label="Toroide"/>
- <combo_box.item name="Tube" label="Tubo"/>
- <combo_box.item name="Ring" label="Cono truncado"/>
- <combo_box.item name="Sculpted" label="Sculpted"/>
+ <combo_item name="Box">
+ Caja
+ </combo_item>
+ <combo_item name="Cylinder">
+ Cilindro
+ </combo_item>
+ <combo_item name="Prism">
+ Prisma
+ </combo_item>
+ <combo_item name="Sphere">
+ Esfera
+ </combo_item>
+ <combo_item name="Torus">
+ Toroide
+ </combo_item>
+ <combo_item name="Tube">
+ Tubo
+ </combo_item>
+ <combo_item name="Ring">
+ Cono truncado
+ </combo_item>
+ <combo_item name="Sculpted">
+ Sculpted
+ </combo_item>
</combo_box>
<text name="text cut">
- Inicio y Fin del corte
+ Corte: Inicio y Fin
</text>
<spinner label="I" name="cut begin"/>
<spinner label="F" name="cut end"/>
@@ -269,13 +320,21 @@
Forma del hueco
</text>
<combo_box name="hole">
- <combo_box.item name="Default" label="Por defecto"/>
- <combo_box.item name="Circle" label="Círculo"/>
- <combo_box.item name="Square" label="Cuadrado"/>
- <combo_box.item name="Triangle" label="Triángulo"/>
+ <combo_item name="Default">
+ Por defecto
+ </combo_item>
+ <combo_item name="Circle">
+ Círculo
+ </combo_item>
+ <combo_item name="Square">
+ Cuadrado
+ </combo_item>
+ <combo_item name="Triangle">
+ Triángulo
+ </combo_item>
</combo_box>
<text name="text twist">
- Inicio y Fin de la torsión
+ La torsión: Inicio y Fin
</text>
<spinner label="I" name="Twist Begin"/>
<spinner label="F" name="Twist End"/>
@@ -293,11 +352,14 @@
<spinner label="X" name="Shear X"/>
<spinner label="Y" name="Shear Y"/>
<text name="advanced_cut">
- Inicio y Fin del corte del perfil
+ Corte del perfil: Inicio y Fin
</text>
<text name="advanced_dimple">
Horadar: Inicio y Fin
</text>
+ <text name="advanced_slice">
+ Cortar: Inicio y Fin
+ </text>
<spinner label="I" name="Path Limit Begin"/>
<spinner label="F" name="Path Limit End"/>
<text name="text taper2">
@@ -318,11 +380,21 @@
Tipo de unión
</text>
<combo_box name="sculpt type control">
- <combo_box.item name="None" label="ninguna)"/>
- <combo_box.item name="Sphere" label="Esfera"/>
- <combo_box.item name="Torus" label="Toroide"/>
- <combo_box.item name="Plane" label="Plano"/>
- <combo_box.item name="Cylinder" label="Cilindro"/>
+ <combo_item name="None">
+ (ninguna)
+ </combo_item>
+ <combo_item name="Sphere">
+ Esfera
+ </combo_item>
+ <combo_item name="Torus">
+ Toroide
+ </combo_item>
+ <combo_item name="Plane">
+ Plano
+ </combo_item>
+ <combo_item name="Cylinder">
+ Cilindro
+ </combo_item>
</combo_box>
</panel>
<panel label="Características" name="Features">
@@ -364,40 +436,88 @@
Detallado
</text>
<combo_box name="combobox texgen">
- <combo_box.item name="Default" label="Por defecto"/>
- <combo_box.item name="Planar" label="Plano"/>
+ <combo_item name="Default">
+ Por defecto
+ </combo_item>
+ <combo_item name="Planar">
+ Plano
+ </combo_item>
</combo_box>
<text name="label shininess">
Brillantez
</text>
<combo_box name="combobox shininess">
- <combo_box.item name="None" label="Ninguna"/>
- <combo_box.item name="Low" label="Baja"/>
- <combo_box.item name="Medium" label="Media"/>
- <combo_box.item name="High" label="Alta"/>
+ <combo_item name="None">
+ Ninguna
+ </combo_item>
+ <combo_item name="Low">
+ Baja
+ </combo_item>
+ <combo_item name="Medium">
+ Media
+ </combo_item>
+ <combo_item name="High">
+ Alta
+ </combo_item>
</combo_box>
<text name="label bumpiness">
Relieve
</text>
<combo_box name="combobox bumpiness">
- <combo_box.item name="None" label="Ninguno"/>
- <combo_box.item name="Brightness" label="Brillo"/>
- <combo_box.item name="Darkness" label="Oscuro"/>
- <combo_box.item name="woodgrain" label="grano de madera"/>
- <combo_box.item name="bark" label="corteza"/>
- <combo_box.item name="bricks" label="ladrillos"/>
- <combo_box.item name="checker" label="cajero"/>
- <combo_box.item name="concrete" label="cemento"/>
- <combo_box.item name="crustytile" label="azulejería"/>
- <combo_box.item name="cutstone" label="piedra cortada"/>
- <combo_box.item name="discs" label="discos"/>
- <combo_box.item name="gravel" label="grava"/>
- <combo_box.item name="petridish" label="placa de Petri"/>
- <combo_box.item name="siding" label="revestimiento"/>
- <combo_box.item name="stonetile" label="baldosa de piedra"/>
- <combo_box.item name="stucco" label="estuco"/>
- <combo_box.item name="suction" label="succión"/>
- <combo_box.item name="weave" label="tejido"/>
+ <combo_item name="None">
+ Ninguno
+ </combo_item>
+ <combo_item name="Brightness">
+ Brillo
+ </combo_item>
+ <combo_item name="Darkness">
+ Oscuro
+ </combo_item>
+ <combo_item name="woodgrain">
+ grano de madera
+ </combo_item>
+ <combo_item name="bark">
+ corteza
+ </combo_item>
+ <combo_item name="bricks">
+ ladrillos
+ </combo_item>
+ <combo_item name="checker">
+ cajero
+ </combo_item>
+ <combo_item name="concrete">
+ cemento
+ </combo_item>
+ <combo_item name="crustytile">
+ azulejería
+ </combo_item>
+ <combo_item name="cutstone">
+ piedra cortada
+ </combo_item>
+ <combo_item name="discs">
+ discos
+ </combo_item>
+ <combo_item name="gravel">
+ grava
+ </combo_item>
+ <combo_item name="petridish">
+ placa de Petri
+ </combo_item>
+ <combo_item name="siding">
+ revestimiento
+ </combo_item>
+ <combo_item name="stonetile">
+ baldosa de piedra
+ </combo_item>
+ <combo_item name="stucco">
+ estuco
+ </combo_item>
+ <combo_item name="suction">
+ succión
+ </combo_item>
+ <combo_item name="weave">
+ tejido
+ </combo_item>
</combo_box>
<text name="tex scale">
Repeticiones por cara
@@ -431,21 +551,33 @@
<button label="Alinear" label_selected="Alinear" name="button align"/>
</panel>
<panel label="Contenido" name="Contents">
- <button label="Script nuevo..." label_selected="Script nuevo..." name="button new script"/>
+ <button label="Script nuevo" label_selected="Script nuevo" name="button new script"/>
+ <button label="Permisos..." name="button permissions"/>
</panel>
</tab_container>
<panel name="land info panel">
+ <text name="label_parcel_info">
+ Información de la parcela
+ </text>
<text name="label_area_price">
Precio: [PRICE] L$ por [AREA] m²
</text>
<text name="label_area">
Superficie: [AREA] m²
</text>
- <button label="Comprar terreno..." label_selected="Comprar terreno..." name="button buy land"/>
- <button label="Abandonar el terreno..." label_selected="Abandonar el terreno..." name="button abandon land"/>
+ <button label="Acerca del terreno..." label_selected="Acerca del terreno..." name="button about land"/>
+ <check_box label="Mostrar los propietarios" name="checkbox show owners" tool_tip="El color de las parcelas es según su propietario"/>
+ <button label="?" label_selected="?" name="button show owners help"/>
+ <text name="label_parcel_modify">
+ Modificar la parcela
+ </text>
<button label="Subdividir..." label_selected="Subdividir..." name="button subdivide land"/>
<button label="Unir..." label_selected="Unir..." name="button join land"/>
- <button label="Acerca del terreno..." label_selected="Acerca del terreno..." name="button about land"/>
+ <text name="label_parcel_trans">
+ Transacciones de terreno
+ </text>
+ <button label="Comprar terreno..." label_selected="Comprar terreno..." name="button buy land"/>
+ <button label="Abandonar el terreno..." label_selected="Abandonar el terreno..." name="button abandon land"/>
</panel>
<string name="status_rotate">
Arrastre las bandas de color para girar el objeto
@@ -463,10 +595,10 @@
Pulse y arrastre para cambiar el punto de vista
</string>
<string name="status_grab">
- Arrastre para mover objetos: Ctrl, verticalmente; Ctrl-Mayús., horizontalmente
+ Arrastre para mover objetos: Ctrl, verticalmente; Ctrl-Mayús., para girarlos.
</string>
<string name="status_place">
- Pulse en el mundo para crear; mayús. y pulsar para seleccionar
+ Pulse en el mundo para construir
</string>
<string name="status_selectland">
Pulse y arrastre para seleccionar el terreno
diff --git a/indra/newview/skins/default/xui/es/floater_url_entry.xml b/indra/newview/skins/default/xui/es/floater_url_entry.xml
index 538ce56760..abdd69b090 100644
--- a/indra/newview/skins/default/xui/es/floater_url_entry.xml
+++ b/indra/newview/skins/default/xui/es/floater_url_entry.xml
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="url_entry" title="">
- <text name="media_label">
- URL para media:
- </text>
- <button label="OK" name="ok_btn"/>
- <button label="Cancelar" name="cancel_btn"/>
- <button label="Limpiar" name="clear_btn"/>
- <text name="loading_label">
- Cargando...
- </text>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="url_entry" title="">
+ <text name="media_label">
+ URL para media:
+ </text>
+ <button label="OK" name="ok_btn"/>
+ <button label="Cancelar" name="cancel_btn"/>
+ <button label="Limpiar" name="clear_btn"/>
+ <text name="loading_label">
+ Cargando...
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_water.xml b/indra/newview/skins/default/xui/es/floater_water.xml
index a6198ccfd9..5a759af5ff 100644
--- a/indra/newview/skins/default/xui/es/floater_water.xml
+++ b/indra/newview/skins/default/xui/es/floater_water.xml
@@ -1,88 +1,88 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Water Floater" title="Editor avanzado del agua">
- <text name="KeyFramePresetsText">
- Agua predefinida:
- </text>
- <button label="Nueva" label_selected="Nueva" name="WaterNewPreset"/>
- <button label="Guardar" label_selected="Guardar" name="WaterSavePreset"/>
- <button label="Borrar" label_selected="Borrar" name="WaterDeletePreset"/>
- <tab_container name="Water Tabs">
- <panel label="Configuraciones" name="Settings">
- <text name="BHText">
- Color del agua
- </text>
- <button label="?" name="WaterFogColorHelp"/>
- <color_swatch label="" name="WaterFogColor" tool_tip="Pulse para abrir el selector de color"/>
- <text name="WaterFogDensText">
- Transparencia
- </text>
- <button label="?" name="WaterFogDensityHelp"/>
- <text name="WaterUnderWaterFogModText">
- Modificar la claridad del agua
- </text>
- <button label="?" name="WaterUnderWaterFogModHelp"/>
- <text name="BDensText">
- Tamaño de las ondulaciones
- </text>
- <button label="?" name="WaterNormalScaleHelp"/>
- <text name="BHText2">
- 1
- </text>
- <text name="BHText3">
- 2
- </text>
- <text name="BHText4">
- 3
- </text>
- <text name="HDText">
- Escala de Fresnel
- </text>
- <button label="?" name="WaterFresnelScaleHelp"/>
- <text name="FresnelOffsetText">
- Coeficiente de reflexión
- </text>
- <button label="?" name="WaterFresnelOffsetHelp"/>
- <text name="DensMultText">
- Refracción de la superficie
- </text>
- <button label="?" name="WaterScaleAboveHelp"/>
- <text name="WaterScaleBelowText">
- Refracción bajo la superficie
- </text>
- <button label="?" name="WaterScaleBelowHelp"/>
- <text name="MaxAltText">
- Desenfoque
- </text>
- <button label="?" name="WaterBlurMultiplierHelp"/>
- </panel>
- <panel label="Imagen" name="Waves">
- <text name="BHText">
- Sentido de la onda grande
- </text>
- <button label="?" name="WaterWave1Help"/>
- <text name="WaterWave1DirXText">
- X
- </text>
- <text name="WaterWave1DirYText">
- Y
- </text>
- <text name="BHText2">
- Sentido de la onda pequeña
- </text>
- <button label="?" name="WaterWave2Help"/>
- <text name="WaterWave2DirXText">
- X
- </text>
- <text name="WaterWave2DirYText">
- Y
- </text>
- <text name="BHText3">
- Vista Normal
- </text>
- <button label="?" name="WaterNormalMapHelp"/>
- </panel>
- </tab_container>
- <string name="WLDefaultWaterNames">
- Default:Glassy:Pond:Murky:Second Plague:SNAKE!!!:Valdez
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Water Floater" title="Editor avanzado del agua">
+ <text name="KeyFramePresetsText">
+ Agua predefinida:
+ </text>
+ <button label="Nueva" label_selected="Nueva" name="WaterNewPreset"/>
+ <button label="Guardar" label_selected="Guardar" name="WaterSavePreset"/>
+ <button label="Borrar" label_selected="Borrar" name="WaterDeletePreset"/>
+ <tab_container name="Water Tabs">
+ <panel label="Configuraciones" name="Settings">
+ <text name="BHText">
+ Color del agua
+ </text>
+ <button label="?" name="WaterFogColorHelp"/>
+ <color_swatch label="" name="WaterFogColor" tool_tip="Pulse para abrir el selector de color"/>
+ <text name="WaterFogDensText">
+ Transparencia
+ </text>
+ <button label="?" name="WaterFogDensityHelp"/>
+ <text name="WaterUnderWaterFogModText">
+ Modificar la claridad del agua
+ </text>
+ <button label="?" name="WaterUnderWaterFogModHelp"/>
+ <text name="BDensText">
+ Tamaño de las ondulaciones
+ </text>
+ <button label="?" name="WaterNormalScaleHelp"/>
+ <text name="BHText2">
+ 1
+ </text>
+ <text name="BHText3">
+ 2
+ </text>
+ <text name="BHText4">
+ 3
+ </text>
+ <text name="HDText">
+ Escala de Fresnel
+ </text>
+ <button label="?" name="WaterFresnelScaleHelp"/>
+ <text name="FresnelOffsetText">
+ Coeficiente de reflexión
+ </text>
+ <button label="?" name="WaterFresnelOffsetHelp"/>
+ <text name="DensMultText">
+ Refracción de la superficie
+ </text>
+ <button label="?" name="WaterScaleAboveHelp"/>
+ <text name="WaterScaleBelowText">
+ Refracción bajo la superficie
+ </text>
+ <button label="?" name="WaterScaleBelowHelp"/>
+ <text name="MaxAltText">
+ Desenfoque
+ </text>
+ <button label="?" name="WaterBlurMultiplierHelp"/>
+ </panel>
+ <panel label="Imagen" name="Waves">
+ <text name="BHText">
+ Sentido de la onda grande
+ </text>
+ <button label="?" name="WaterWave1Help"/>
+ <text name="WaterWave1DirXText">
+ X
+ </text>
+ <text name="WaterWave1DirYText">
+ Y
+ </text>
+ <text name="BHText2">
+ Sentido de la onda pequeña
+ </text>
+ <button label="?" name="WaterWave2Help"/>
+ <text name="WaterWave2DirXText">
+ X
+ </text>
+ <text name="WaterWave2DirYText">
+ Y
+ </text>
+ <text name="BHText3">
+ Vista Normal
+ </text>
+ <button label="?" name="WaterNormalMapHelp"/>
+ </panel>
+ </tab_container>
+ <string name="WLDefaultWaterNames">
+ Default:Glassy:Pond:Murky:Second Plague:SNAKE!!!:Valdez
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_windlight_options.xml b/indra/newview/skins/default/xui/es/floater_windlight_options.xml
index 223a8e6db2..79b70d4d59 100644
--- a/indra/newview/skins/default/xui/es/floater_windlight_options.xml
+++ b/indra/newview/skins/default/xui/es/floater_windlight_options.xml
@@ -1,189 +1,189 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="WindLight floater" title="Editor avanzado del cielo">
- <text name="KeyFramePresetsText">
- Cielos definidos:
- </text>
- <button label="Nuevo" label_selected="Nuevo" name="WLNewPreset"/>
- <button label="Guardar" label_selected="Guardar" name="WLSavePreset"/>
- <button label="Borrar" label_selected="Borrar" name="WLDeletePreset"/>
- <button label="Editor del ciclo de un día" label_selected="Editor del ciclo de un día" name="WLDayCycleMenuButton"/>
- <tab_container name="WindLight Tabs">
- <panel label="Atmósfera" name="Atmosphere">
- <text name="BHText">
- Coloración
- </text>
- <button label="?" name="WLBlueHorizonHelp"/>
- <text name="BHText2">
- R
- </text>
- <text name="BHText3">
- V
- </text>
- <text name="BHText4">
- A
- </text>
- <text name="BHText5">
- I
- </text>
- <text name="BDensText">
- Cantidad de bruma
- </text>
- <button label="?" name="WLHazeHorizonHelp"/>
- <text name="BDensText2">
- Saturación
- </text>
- <button label="?" name="WLBlueDensityHelp"/>
- <text name="BHText6">
- R
- </text>
- <text name="BHText7">
- V
- </text>
- <text name="BHText8">
- A
- </text>
- <text name="BHText9">
- I
- </text>
- <text name="HDText">
- Densidad de la bruma
- </text>
- <button label="?" name="WLHazeDensityHelp"/>
- <text name="DensMultText">
- Densidad
- </text>
- <button label="?" name="WLDensityMultHelp"/>
- <text name="WLDistanceMultText">
- Distancia
- </text>
- <button label="?" name="WLDistanceMultHelp"/>
- <text name="MaxAltText">
- Altitud máx.
- </text>
- <button label="?" name="WLMaxAltitudeHelp"/>
- </panel>
- <panel label="Iluminación" name="Lighting">
- <text name="SLCText">
- Color del Sol y de la Luna
- </text>
- <button label="?" name="WLSunlightColorHelp"/>
- <text name="BHText">
- R
- </text>
- <text name="BHText2">
- V
- </text>
- <text name="BHText3">
- A
- </text>
- <text name="BHText4">
- I
- </text>
- <text name="TODText">
- Posición del Sol y la Luna
- </text>
- <button label="?" name="WLTimeOfDayHelp"/>
- <text name="WLAmbientText">
- Ambiental
- </text>
- <button label="?" name="WLAmbientHelp"/>
- <text name="BHText5">
- R
- </text>
- <text name="BHText6">
- V
- </text>
- <text name="BHText7">
- A
- </text>
- <text name="BHText8">
- I
- </text>
- <text name="WLEastAngleText">
- Ángulo de elevación
- </text>
- <button label="?" name="WLEastAngleHelp"/>
- <text name="SunGlowText">
- Resplandor del Sol
- </text>
- <button label="?" name="WLSunGlowHelp"/>
- <slider label="Visión" name="WLGlowB"/>
- <slider label="Tamaño" name="WLGlowR"/>
- <text name="SceneGammaText">
- Gamma de la escena
- </text>
- <button label="?" name="WLSceneGammaHelp"/>
- <text name="WLStarText">
- Brillo de las estrellas
- </text>
- <button label="?" name="WLStarBrightnessHelp"/>
- </panel>
- <panel label="Nubes" name="Clouds">
- <text name="WLCloudColorText">
- Color de las nubes
- </text>
- <button label="?" name="WLCloudColorHelp"/>
- <text name="BHText">
- R
- </text>
- <text name="BHText2">
- V
- </text>
- <text name="BHText3">
- A
- </text>
- <text name="BHText4">
- I
- </text>
- <text name="WLCloudColorText2">
- Posición/Densidad de las nubes
- </text>
- <button label="?" name="WLCloudDensityHelp"/>
- <text name="BHText5">
- X
- </text>
- <text name="BHText6">
- Y
- </text>
- <text name="BHText7">
- D
- </text>
- <text name="WLCloudCoverageText">
- Nubosidad
- </text>
- <button label="?" name="WLCloudCoverageHelp"/>
- <text name="WLCloudScaleText">
- Altitud de las nubes
- </text>
- <button label="?" name="WLCloudScaleHelp"/>
- <text name="WLCloudDetailText">
- Detalle de las nubes (Posición/Densidad)
- </text>
- <button label="?" name="WLCloudDetailHelp"/>
- <text name="BHText8">
- X
- </text>
- <text name="BHText9">
- Y
- </text>
- <text name="BHText10">
- D
- </text>
- <text name="WLCloudScrollXText">
- Velocidad de las nubes: X
- </text>
- <button label="?" name="WLCloudScrollXHelp"/>
- <check_box label="Bloquear" name="WLCloudLockX"/>
- <text name="WLCloudScrollYText">
- Velocidad de las nubes: Y
- </text>
- <button label="?" name="WLCloudScrollYHelp"/>
- <check_box label="Bloquear" name="WLCloudLockY"/>
- <check_box label="Incluir nubes clásicas" name="DrawClassicClouds"/>
- <button label="?" name="WLClassicCloudsHelp"/>
- </panel>
- </tab_container>
- <string name="WLDefaultSkyNames">
- A-12AM:A-12PM:A-3AM:A-3PM:A-4.30PM:A-6AM:A-6PM:A-9AM:A-9PM:Barcelona:Blizzard:Blue Midday:Coastal Afternoon:Coastal Sunset:Default:Desert Sunset:Fine Day:Fluffy Big Clouds:Foggy:Funky Funky:Funky Funky Funky:Gelatto:Ghost:Incongruent Truths:Midday 1:Midday 2:Midday 3:Midday 4:Night:Pirate:Purple:Sailor&apos;s Delight:Sheer Sensuality
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="WindLight floater" title="Editor avanzado del cielo">
+ <text name="KeyFramePresetsText">
+ Cielos definidos:
+ </text>
+ <button label="Nuevo" label_selected="Nuevo" name="WLNewPreset"/>
+ <button label="Guardar" label_selected="Guardar" name="WLSavePreset"/>
+ <button label="Borrar" label_selected="Borrar" name="WLDeletePreset"/>
+ <button label="Editor del ciclo de un día" label_selected="Editor del ciclo de un día" name="WLDayCycleMenuButton"/>
+ <tab_container name="WindLight Tabs">
+ <panel label="Atmósfera" name="Atmosphere">
+ <text name="BHText">
+ Coloración
+ </text>
+ <button label="?" name="WLBlueHorizonHelp"/>
+ <text name="BHText2">
+ R
+ </text>
+ <text name="BHText3">
+ V
+ </text>
+ <text name="BHText4">
+ A
+ </text>
+ <text name="BHText5">
+ I
+ </text>
+ <text name="BDensText">
+ Cantidad de bruma
+ </text>
+ <button label="?" name="WLHazeHorizonHelp"/>
+ <text name="BDensText2">
+ Saturación
+ </text>
+ <button label="?" name="WLBlueDensityHelp"/>
+ <text name="BHText6">
+ R
+ </text>
+ <text name="BHText7">
+ V
+ </text>
+ <text name="BHText8">
+ A
+ </text>
+ <text name="BHText9">
+ I
+ </text>
+ <text name="HDText">
+ Densidad de la bruma
+ </text>
+ <button label="?" name="WLHazeDensityHelp"/>
+ <text name="DensMultText">
+ Densidad
+ </text>
+ <button label="?" name="WLDensityMultHelp"/>
+ <text name="WLDistanceMultText">
+ Distancia
+ </text>
+ <button label="?" name="WLDistanceMultHelp"/>
+ <text name="MaxAltText">
+ Altitud máx.
+ </text>
+ <button label="?" name="WLMaxAltitudeHelp"/>
+ </panel>
+ <panel label="Iluminación" name="Lighting">
+ <text name="SLCText">
+ Color del Sol y de la Luna
+ </text>
+ <button label="?" name="WLSunlightColorHelp"/>
+ <text name="BHText">
+ R
+ </text>
+ <text name="BHText2">
+ V
+ </text>
+ <text name="BHText3">
+ A
+ </text>
+ <text name="BHText4">
+ I
+ </text>
+ <text name="TODText">
+ Posición del Sol y la Luna
+ </text>
+ <button label="?" name="WLTimeOfDayHelp"/>
+ <text name="WLAmbientText">
+ Ambiental
+ </text>
+ <button label="?" name="WLAmbientHelp"/>
+ <text name="BHText5">
+ R
+ </text>
+ <text name="BHText6">
+ V
+ </text>
+ <text name="BHText7">
+ A
+ </text>
+ <text name="BHText8">
+ I
+ </text>
+ <text name="WLEastAngleText">
+ Ángulo de elevación
+ </text>
+ <button label="?" name="WLEastAngleHelp"/>
+ <text name="SunGlowText">
+ Resplandor del Sol
+ </text>
+ <button label="?" name="WLSunGlowHelp"/>
+ <slider label="Visión" name="WLGlowB"/>
+ <slider label="Tamaño" name="WLGlowR"/>
+ <text name="SceneGammaText">
+ Gamma de la escena
+ </text>
+ <button label="?" name="WLSceneGammaHelp"/>
+ <text name="WLStarText">
+ Brillo de las estrellas
+ </text>
+ <button label="?" name="WLStarBrightnessHelp"/>
+ </panel>
+ <panel label="Nubes" name="Clouds">
+ <text name="WLCloudColorText">
+ Color de las nubes
+ </text>
+ <button label="?" name="WLCloudColorHelp"/>
+ <text name="BHText">
+ R
+ </text>
+ <text name="BHText2">
+ V
+ </text>
+ <text name="BHText3">
+ A
+ </text>
+ <text name="BHText4">
+ I
+ </text>
+ <text name="WLCloudColorText2">
+ Posición/Densidad de las nubes
+ </text>
+ <button label="?" name="WLCloudDensityHelp"/>
+ <text name="BHText5">
+ X
+ </text>
+ <text name="BHText6">
+ Y
+ </text>
+ <text name="BHText7">
+ D
+ </text>
+ <text name="WLCloudCoverageText">
+ Nubosidad
+ </text>
+ <button label="?" name="WLCloudCoverageHelp"/>
+ <text name="WLCloudScaleText">
+ Altitud de las nubes
+ </text>
+ <button label="?" name="WLCloudScaleHelp"/>
+ <text name="WLCloudDetailText">
+ Detalle de las nubes (Posición/Densidad)
+ </text>
+ <button label="?" name="WLCloudDetailHelp"/>
+ <text name="BHText8">
+ X
+ </text>
+ <text name="BHText9">
+ Y
+ </text>
+ <text name="BHText10">
+ D
+ </text>
+ <text name="WLCloudScrollXText">
+ Velocidad de las nubes: X
+ </text>
+ <button label="?" name="WLCloudScrollXHelp"/>
+ <check_box label="Bloquear" name="WLCloudLockX"/>
+ <text name="WLCloudScrollYText">
+ Velocidad de las nubes: Y
+ </text>
+ <button label="?" name="WLCloudScrollYHelp"/>
+ <check_box label="Bloquear" name="WLCloudLockY"/>
+ <check_box label="Incluir nubes clásicas" name="DrawClassicClouds"/>
+ <button label="?" name="WLClassicCloudsHelp"/>
+ </panel>
+ </tab_container>
+ <string name="WLDefaultSkyNames">
+ A-12AM:A-12PM:A-3AM:A-3PM:A-4.30PM:A-6AM:A-6PM:A-9AM:A-9PM:Barcelona:Blizzard:Blue Midday:Coastal Afternoon:Coastal Sunset:Default:Desert Sunset:Fine Day:Fluffy Big Clouds:Foggy:Funky Funky:Funky Funky Funky:Gelatto:Ghost:Incongruent Truths:Midday 1:Midday 2:Midday 3:Midday 4:Night:Pirate:Purple:Sailor&apos;s Delight:Sheer Sensuality
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_world_map.xml b/indra/newview/skins/default/xui/es/floater_world_map.xml
index 9893bcfba9..3bfae282cb 100644
--- a/indra/newview/skins/default/xui/es/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/es/floater_world_map.xml
@@ -4,42 +4,29 @@
<panel label="Objetos" name="objects_mapview"/>
<panel label="Terreno" name="terrain_mapview"/>
</tab_container>
- <text name="land_for_sale_label">
- Terreno en venta
- </text>
- <text name="auction_label">
- Subasta
- </text>
<text name="you_label">
Usted
</text>
<text name="home_label">
Base
</text>
- <button label="Ir a la Base" label_selected="Ir a la Base" name="Go Home" tool_tip="Teleportar a su Base"/>
- <text name="person_label">
- Persona
- </text>
- <check_box label=" " name="people_chk"/>
- <text name="infohub_label">
- Punto de Información
- </text>
- <check_box label=" " name="infohub_chk"/>
- <text name="telehub_label">
- Punto de Teleporte
+ <text name="auction_label">
+ Subasta
</text>
- <check_box label=" " name="telehubchk"/>
- <text name="land_for_sale_label2">
+ <text name="land_for_sale_label">
Terreno en venta
</text>
- <check_box label=" " name="land_for_sale_chk"/>
+ <button label="Ir a la Base" label_selected="Ir a la Base" name="Go Home" tool_tip="Teleportar a su Base"/>
+ <check_box label="Residente" name="people_chk"/>
+ <check_box label="Punto de Info" name="infohub_chk"/>
+ <check_box label="Punto de Teleporte" name="telehubchk"/>
+ <check_box label="Terreno en venta" name="land_for_sale_chk"/>
<text name="events_label">
- Eventos
+ Eventos:
</text>
- <check_box label=" " name="event_chk"/>
-
-
- <check_box name="event_mature_chk"/>
+ <check_box label="&apos;PG&apos;" name="event_chk"/>
+ <check_box label="&apos;Mature&apos;" name="event_mature_chk"/>
+ <check_box label="&apos;Adult&apos;" name="event_adult_chk"/>
<combo_box label="Amigos conectados" name="friend combo" tool_tip="Amigo a mostrar en el mapa">
<combo_box.item name="none_selected" label="Amigos conectados" />
</combo_box>
diff --git a/indra/newview/skins/default/xui/es/menu_inventory.xml b/indra/newview/skins/default/xui/es/menu_inventory.xml
index a503429ff9..557123d4f8 100644
--- a/indra/newview/skins/default/xui/es/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/es/menu_inventory.xml
@@ -55,6 +55,7 @@
<menu_item_call label="Activar" name="Activate"/>
<menu_item_call label="Desactivar" name="Deactivate"/>
<menu_item_call label="Quitarse" name="Detach From Yourself"/>
+ <menu_item_call label="Volver a la última posición" name="Restore to Last Position"/>
<menu_item_call label="Ponerse" name="Object Wear"/>
<menu label="Anexar a" name="Attach To"/>
<menu label="Anexar como HUD" name="Attach To HUD"/>
diff --git a/indra/newview/skins/default/xui/es/menu_login.xml b/indra/newview/skins/default/xui/es/menu_login.xml
index 460ddac93a..a60e41d896 100644
--- a/indra/newview/skins/default/xui/es/menu_login.xml
+++ b/indra/newview/skins/default/xui/es/menu_login.xml
@@ -1,13 +1,13 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<menu_bar name="Login Menu">
- <menu label="Archivo" name="File">
- <menu_item_call label="Salir" name="Quit"/>
- </menu>
- <menu label="Editar" name="Edit">
- <menu_item_call label="Preferencias..." name="Preferences..."/>
- </menu>
- <menu label="Ayuda" name="Help">
- <menu_item_call label="Ayuda de Second Life" name="Second Life Help"/>
- <menu_item_call label="Acerca de Second Life..." name="About Second Life..."/>
- </menu>
-</menu_bar>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu_bar name="Login Menu">
+ <menu label="Archivo" name="File">
+ <menu_item_call label="Salir" name="Quit"/>
+ </menu>
+ <menu label="Editar" name="Edit">
+ <menu_item_call label="Preferencias..." name="Preferences..."/>
+ </menu>
+ <menu label="Ayuda" name="Help">
+ <menu_item_call label="Ayuda de Second Life" name="Second Life Help"/>
+ <menu_item_call label="Acerca de Second Life..." name="About Second Life..."/>
+ </menu>
+</menu_bar>
diff --git a/indra/newview/skins/default/xui/es/menu_mini_map.xml b/indra/newview/skins/default/xui/es/menu_mini_map.xml
new file mode 100644
index 0000000000..19061cea06
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/menu_mini_map.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="popup">
+ <menu_item_call label="Zoom cerca" name="Zoom Close"/>
+ <menu_item_call label="Zoom medio" name="Zoom Medium"/>
+ <menu_item_call label="Zoom lejos" name="Zoom Far"/>
+ <menu_item_call label="Parar la búsqueda" name="Stop Tracking"/>
+ <menu_item_call label="Perfil..." name="Profile"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/es/menu_slurl.xml b/indra/newview/skins/default/xui/es/menu_slurl.xml
index 9a38cb4477..5c5900ae56 100644
--- a/indra/newview/skins/default/xui/es/menu_slurl.xml
+++ b/indra/newview/skins/default/xui/es/menu_slurl.xml
@@ -1,6 +1,6 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<menu name="Popup">
- <menu_item_call label="Acerca de la URL" name="about_url"/>
- <menu_item_call label="Teleportar a la URL" name="teleport_to_url"/>
- <menu_item_call label="Mostrar en el mapa" name="show_on_map"/>
-</menu>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="Popup">
+ <menu_item_call label="Acerca de la URL" name="about_url"/>
+ <menu_item_call label="Teleportar a la URL" name="teleport_to_url"/>
+ <menu_item_call label="Mostrar en el mapa" name="show_on_map"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/es/menu_viewer.xml b/indra/newview/skins/default/xui/es/menu_viewer.xml
index 1721701c9f..0712440e1f 100644
--- a/indra/newview/skins/default/xui/es/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/es/menu_viewer.xml
@@ -3,10 +3,12 @@
<menu label="Archivo" name="File">
<tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~"/>
<menu label="Subir" name="upload">
- <menu_item_call label="Subir imagen ([COST] L$)..." name="Upload Image"/>
- <menu_item_call label="Subir sonido ([COST] L$)..." name="Upload Sound"/>
- <menu_item_call label="Subir animación ([COST] L$)..." name="Upload Animation"/>
- <menu_item_call label="Subida masiva ([COST] L$ por archivo)..." name="Bulk Upload"/>
+ <menu_item_call label="Imagen ([COST] L$)..." name="Upload Image"/>
+ <menu_item_call label="Sonido ([COST] L$)..." name="Upload Sound"/>
+ <menu_item_call label="Animación ([COST] L$)..." name="Upload Animation"/>
+ <menu_item_call label="Masiva ([COST] L$ por archivo)..." name="Bulk Upload"/>
+ <menu_item_separator label="-----------" name="separator"/>
+ <menu_item_call label="Definir los permisos por defecto..." name="perm prefs"/>
</menu>
<menu_item_separator label="-----------" name="separator"/>
<menu_item_call label="Cerrar la ventana" name="Close Window"/>
@@ -81,6 +83,7 @@
<menu_item_separator label="-----------" name="separator3"/>
<menu_item_check label="Estadísticas" name="Statistics Bar"/>
<menu_item_check label="Límites de las parcelas" name="Property Lines"/>
+ <menu_item_check label="Líneas de prohibición" name="Banlines"/>
<menu_item_check label="Propietarios del terreno" name="Land Owners"/>
<menu_item_separator label="-----------" name="separator4"/>
<menu label="Información adicional" name="Hover Tips">
@@ -113,7 +116,7 @@
<menu_item_separator label="-----------" name="separator3"/>
<menu_item_call label="Pasar al estado ausente" name="Set Away"/>
<menu_item_call label="Pasar al estado ocupado" name="Set Busy"/>
- <menu_item_call label="Parar todas las animaciones" name="Stop All Animations"/>
+ <menu_item_call label="Parar la animación de mi avatar" name="Stop Animating My Avatar"/>
<menu_item_call label="Recuperar las teclas" name="Release Keys"/>
<menu_item_separator label="-----------" name="separator4"/>
<menu_item_call label="Historial de mi cuenta..." name="Account History..."/>
@@ -164,7 +167,6 @@
<menu_item_call label="Zoom en lo seleccionado" name="Zoom to Selection"/>
<menu_item_call label="Comprar el objeto" name="Menu Object Take"/>
<menu_item_call label="Coger una copia" name="Take Copy"/>
- <menu_item_call label="Devolver una copia del objeto a mi inventario" name="Save Object Back to My Inventory"/>
<menu_item_call label="Devolver una copia del objeto a los contenidos de donde salió" name="Save Object Back to Object Contents"/>
<menu_item_separator label="-----------" name="separator6"/>
<menu_item_call label="Ver en una ventana los errores o alertas de los scripts" name="Show Script Warning/Error Window"/>
diff --git a/indra/newview/skins/default/xui/es/mime_types.xml b/indra/newview/skins/default/xui/es/mime_types.xml
index 204d9b8935..85ff4cfb48 100644
--- a/indra/newview/skins/default/xui/es/mime_types.xml
+++ b/indra/newview/skins/default/xui/es/mime_types.xml
@@ -1,230 +1,230 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<mimetypes name="default">
- <widgetset name="web">
- <label name="web_label">
- Contenido web
- </label>
- <tooltip name="web_tooltip">
- Esta localización tiene contenido web
- </tooltip>
- <playtip name="web_playtip">
- Mostrar el contenido web
- </playtip>
- </widgetset>
- <widgetset name="movie">
- <label name="movie_label">
- Película
- </label>
- <tooltip name="movie_tooltip">
- Aquí hay una película que puede ver
- </tooltip>
- <playtip name="movie_playtip">
- Ver la película
- </playtip>
- </widgetset>
- <widgetset name="none">
- <label name="none_label">
- No hay contenido
- </label>
- <tooltip name="none_tooltip">
- Aquí no hay multimedia
- </tooltip>
- </widgetset>
- <widgetset name="image">
- <label name="image_label">
- Imagen
- </label>
- <tooltip name="image_tooltip">
- Esta localización tiene una imagen
- </tooltip>
- <playtip name="image_playtip">
- Ver la imagen de esta localización
- </playtip>
- </widgetset>
- <widgetset name="audio">
- <label name="audio_label">
- Audio
- </label>
- <tooltip name="audio_tooltip">
- Esta localización tiene audio
- </tooltip>
- <playtip name="audio_playtip">
- Escuchar el audio de esta localización
- </playtip>
- </widgetset>
- <scheme name="rtsp">
- <label name="rtsp_label">
- Real Time Streaming
- </label>
- </scheme>
- <mimetype name="blank">
- <label name="blank_label">
- - Ninguno -
- </label>
- </mimetype>
- <mimetype name="none/none">
- <label name="none/none_label">
- - Ninguno -
- </label>
- </mimetype>
- <mimetype name="audio/*">
- <label name="audio2_label">
- Audio
- </label>
- </mimetype>
- <mimetype name="video/*">
- <label name="video2_label">
- Vídeo
- </label>
- </mimetype>
- <mimetype name="image/*">
- <label name="image2_label">
- Imagen
- </label>
- </mimetype>
- <mimetype name="video/vnd.secondlife.qt.legacy">
- <label name="vnd.secondlife.qt.legacy_label">
- Película (QuickTime)
- </label>
- </mimetype>
- <mimetype name="application/javascript">
- <label name="application/javascript_label">
- Javascript
- </label>
- </mimetype>
- <mimetype name="application/ogg">
- <label name="application/ogg_label">
- Audio/Video Ogg
- </label>
- </mimetype>
- <mimetype name="application/pdf">
- <label name="application/pdf_label">
- Documento PDF
- </label>
- </mimetype>
- <mimetype name="application/postscript">
- <label name="application/postscript_label">
- Documento Postscript
- </label>
- </mimetype>
- <mimetype name="application/rtf">
- <label name="application/rtf_label">
- Texto enriquecido (RTF)
- </label>
- </mimetype>
- <mimetype name="application/smil">
- <label name="application/smil_label">
- Synchronized Multimedia Integration Language (SMIL)
- </label>
- </mimetype>
- <mimetype name="application/xhtml+xml">
- <label name="application/xhtml+xml_label">
- Página web (XHTML)
- </label>
- </mimetype>
- <mimetype name="application/x-director">
- <label name="application/x-director_label">
- Macromedia Director
- </label>
- </mimetype>
- <mimetype name="application/x-shockwave-flash">
- <label name="application/x-shockwave-flash_label">
- Flash
- </label>
- </mimetype>
- <mimetype name="audio/mid">
- <label name="audio/mid_label">
- Audio (MIDI)
- </label>
- </mimetype>
- <mimetype name="audio/mpeg">
- <label name="audio/mpeg_label">
- Audio (MP3)
- </label>
- </mimetype>
- <mimetype name="audio/x-aiff">
- <label name="audio/x-aiff_label">
- Audio (AIFF)
- </label>
- </mimetype>
- <mimetype name="audio/x-wav">
- <label name="audio/x-wav_label">
- Audio (WAV)
- </label>
- </mimetype>
- <mimetype name="image/bmp">
- <label name="image/bmp_label">
- Imagen (BMP)
- </label>
- </mimetype>
- <mimetype name="image/gif">
- <label name="image/gif_label">
- Imagen (GIF)
- </label>
- </mimetype>
- <mimetype name="image/jpeg">
- <label name="image/jpeg_label">
- Imagen (JPEG)
- </label>
- </mimetype>
- <mimetype name="image/png">
- <label name="image/png_label">
- Imagen (PNG)
- </label>
- </mimetype>
- <mimetype name="image/svg+xml">
- <label name="image/svg+xml_label">
- Imagen (SVG)
- </label>
- </mimetype>
- <mimetype name="image/tiff">
- <label name="image/tiff_label">
- Imagen (TIFF)
- </label>
- </mimetype>
- <mimetype name="text/html">
- <label name="text/html_label">
- Página web
- </label>
- </mimetype>
- <mimetype name="text/plain">
- <label name="text/plain_label">
- Texto
- </label>
- </mimetype>
- <mimetype name="text/xml">
- <label name="text/xml_label">
- XML
- </label>
- </mimetype>
- <mimetype name="video/mpeg">
- <label name="video/mpeg_label">
- Película (MPEG)
- </label>
- </mimetype>
- <mimetype name="video/mp4">
- <label name="video/mp4_label">
- Película (MP4)
- </label>
- </mimetype>
- <mimetype name="video/quicktime">
- <label name="video/quicktime_label">
- Película (QuickTime)
- </label>
- </mimetype>
- <mimetype name="video/x-ms-asf">
- <label name="video/x-ms-asf_label">
- Película (Windows Media ASF)
- </label>
- </mimetype>
- <mimetype name="video/x-ms-wmv">
- <label name="video/x-ms-wmv_label">
- Película (Windows Media WMV)
- </label>
- </mimetype>
- <mimetype name="video/x-msvideo">
- <label name="video/x-msvideo_label">
- Película (AVI)
- </label>
- </mimetype>
-</mimetypes>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<mimetypes name="default">
+ <widgetset name="web">
+ <label name="web_label">
+ Contenido web
+ </label>
+ <tooltip name="web_tooltip">
+ Esta localización tiene contenido web
+ </tooltip>
+ <playtip name="web_playtip">
+ Mostrar el contenido web
+ </playtip>
+ </widgetset>
+ <widgetset name="movie">
+ <label name="movie_label">
+ Película
+ </label>
+ <tooltip name="movie_tooltip">
+ Aquí hay una película que puede ver
+ </tooltip>
+ <playtip name="movie_playtip">
+ Ver la película
+ </playtip>
+ </widgetset>
+ <widgetset name="none">
+ <label name="none_label">
+ No hay contenido
+ </label>
+ <tooltip name="none_tooltip">
+ Aquí no hay multimedia
+ </tooltip>
+ </widgetset>
+ <widgetset name="image">
+ <label name="image_label">
+ Imagen
+ </label>
+ <tooltip name="image_tooltip">
+ Esta localización tiene una imagen
+ </tooltip>
+ <playtip name="image_playtip">
+ Ver la imagen de esta localización
+ </playtip>
+ </widgetset>
+ <widgetset name="audio">
+ <label name="audio_label">
+ Audio
+ </label>
+ <tooltip name="audio_tooltip">
+ Esta localización tiene audio
+ </tooltip>
+ <playtip name="audio_playtip">
+ Escuchar el audio de esta localización
+ </playtip>
+ </widgetset>
+ <scheme name="rtsp">
+ <label name="rtsp_label">
+ Real Time Streaming
+ </label>
+ </scheme>
+ <mimetype name="blank">
+ <label name="blank_label">
+ - Ninguno -
+ </label>
+ </mimetype>
+ <mimetype name="none/none">
+ <label name="none/none_label">
+ - Ninguno -
+ </label>
+ </mimetype>
+ <mimetype name="audio/*">
+ <label name="audio2_label">
+ Audio
+ </label>
+ </mimetype>
+ <mimetype name="video/*">
+ <label name="video2_label">
+ Vídeo
+ </label>
+ </mimetype>
+ <mimetype name="image/*">
+ <label name="image2_label">
+ Imagen
+ </label>
+ </mimetype>
+ <mimetype name="video/vnd.secondlife.qt.legacy">
+ <label name="vnd.secondlife.qt.legacy_label">
+ Película (QuickTime)
+ </label>
+ </mimetype>
+ <mimetype name="application/javascript">
+ <label name="application/javascript_label">
+ Javascript
+ </label>
+ </mimetype>
+ <mimetype name="application/ogg">
+ <label name="application/ogg_label">
+ Audio/Video Ogg
+ </label>
+ </mimetype>
+ <mimetype name="application/pdf">
+ <label name="application/pdf_label">
+ Documento PDF
+ </label>
+ </mimetype>
+ <mimetype name="application/postscript">
+ <label name="application/postscript_label">
+ Documento Postscript
+ </label>
+ </mimetype>
+ <mimetype name="application/rtf">
+ <label name="application/rtf_label">
+ Texto enriquecido (RTF)
+ </label>
+ </mimetype>
+ <mimetype name="application/smil">
+ <label name="application/smil_label">
+ Synchronized Multimedia Integration Language (SMIL)
+ </label>
+ </mimetype>
+ <mimetype name="application/xhtml+xml">
+ <label name="application/xhtml+xml_label">
+ Página web (XHTML)
+ </label>
+ </mimetype>
+ <mimetype name="application/x-director">
+ <label name="application/x-director_label">
+ Macromedia Director
+ </label>
+ </mimetype>
+ <mimetype name="application/x-shockwave-flash">
+ <label name="application/x-shockwave-flash_label">
+ Flash
+ </label>
+ </mimetype>
+ <mimetype name="audio/mid">
+ <label name="audio/mid_label">
+ Audio (MIDI)
+ </label>
+ </mimetype>
+ <mimetype name="audio/mpeg">
+ <label name="audio/mpeg_label">
+ Audio (MP3)
+ </label>
+ </mimetype>
+ <mimetype name="audio/x-aiff">
+ <label name="audio/x-aiff_label">
+ Audio (AIFF)
+ </label>
+ </mimetype>
+ <mimetype name="audio/x-wav">
+ <label name="audio/x-wav_label">
+ Audio (WAV)
+ </label>
+ </mimetype>
+ <mimetype name="image/bmp">
+ <label name="image/bmp_label">
+ Imagen (BMP)
+ </label>
+ </mimetype>
+ <mimetype name="image/gif">
+ <label name="image/gif_label">
+ Imagen (GIF)
+ </label>
+ </mimetype>
+ <mimetype name="image/jpeg">
+ <label name="image/jpeg_label">
+ Imagen (JPEG)
+ </label>
+ </mimetype>
+ <mimetype name="image/png">
+ <label name="image/png_label">
+ Imagen (PNG)
+ </label>
+ </mimetype>
+ <mimetype name="image/svg+xml">
+ <label name="image/svg+xml_label">
+ Imagen (SVG)
+ </label>
+ </mimetype>
+ <mimetype name="image/tiff">
+ <label name="image/tiff_label">
+ Imagen (TIFF)
+ </label>
+ </mimetype>
+ <mimetype name="text/html">
+ <label name="text/html_label">
+ Página web
+ </label>
+ </mimetype>
+ <mimetype name="text/plain">
+ <label name="text/plain_label">
+ Texto
+ </label>
+ </mimetype>
+ <mimetype name="text/xml">
+ <label name="text/xml_label">
+ XML
+ </label>
+ </mimetype>
+ <mimetype name="video/mpeg">
+ <label name="video/mpeg_label">
+ Película (MPEG)
+ </label>
+ </mimetype>
+ <mimetype name="video/mp4">
+ <label name="video/mp4_label">
+ Película (MP4)
+ </label>
+ </mimetype>
+ <mimetype name="video/quicktime">
+ <label name="video/quicktime_label">
+ Película (QuickTime)
+ </label>
+ </mimetype>
+ <mimetype name="video/x-ms-asf">
+ <label name="video/x-ms-asf_label">
+ Película (Windows Media ASF)
+ </label>
+ </mimetype>
+ <mimetype name="video/x-ms-wmv">
+ <label name="video/x-ms-wmv_label">
+ Película (Windows Media WMV)
+ </label>
+ </mimetype>
+ <mimetype name="video/x-msvideo">
+ <label name="video/x-msvideo_label">
+ Película (AVI)
+ </label>
+ </mimetype>
+</mimetypes>
diff --git a/indra/newview/skins/default/xui/es/notifications.xml b/indra/newview/skins/default/xui/es/notifications.xml
index aa17835ea7..d7e480c653 100644
--- a/indra/newview/skins/default/xui/es/notifications.xml
+++ b/indra/newview/skins/default/xui/es/notifications.xml
@@ -1,5759 +1,3076 @@
-<?xml version="1.0" ?><notifications>
-
- <global name="skipnexttime">
-
- No mostrarme esto otra vez
- </global>
-
- <global name="alwayschoose">
-
- Elegir siempre esta opción
- </global>
-
- <template name="okbutton">
- <form>
- <button
- name="OK"
- text="$yestext"/>
- </form>
- </template>
-
- <template name="okignore">
- <form>
- <button
- name="OK"
- text="$yestext"/>
- <ignore text="$ignoretext"/>
- </form>
- </template>
-
- <template name="okcancelbuttons">
- <form>
- <button
- name="OK"
- text="$yestext"/>
- <button
- name="Cancel"
- text="$notext"/>
- </form>
- </template>
-
- <template name="okcancelignore">
- <form>
- <button
- name="OK"
- text="$yestext"/>
- <button
- name="Cancel"
- text="$notext"/>
- <ignore text="$ignoretext"/>
- </form>
- </template>
-
- <template name="okhelpbuttons">
- <form>
- <button
- name="OK"
- text="$yestext"/>
- <button
- name="Help"
- text="$helptext"/>
- </form>
- </template>
-
- <template name="yesnocancelbuttons">
- <form>
- <button
- name="Yes"
- text="$yestext"/>
- <button
- name="No"
- text="$notext"/>
- <button
- name="Cancel"
- text="$canceltext"/>
- </form>
- </template>
-
- <notification
- functor="GenericAcknowledge"
-
- name="MissingAlert"
- >
-&apos;[_NAME]&apos; se ha perdido en notifications.xml.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="FloaterNotFound"
- >
-Error: no se pudieron encontrar estos controles:
-
-[CONTROLS]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="TutorialNotFound"
- >
-Actualmente, no hay un tutorial disponible.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GenericAlert"
- >
-[MESSAGE]
- </notification>
-
- <notification
-
- name="GenericAlertYesCancel"
- >
-[MESSAGE]
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Sí"/>
- </notification>
-
- <notification
-
- name="WearableSave"
- >
-¿Guardar los cambios en las ropas o partes del cuerpo actuales?
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="No guardarlos"
- yestext="Guardarlos"/>
- </notification>
-
- <notification
-
- name="CompileQueueSaveText"
- >
-Hubo un problema al subir el texto de un script por la siguiente razón: [REASON]. Por favor, inténtelo más tarde.
- </notification>
-
- <notification
-
- name="CompileQueueSaveBytecode"
- >
-Hubo un problema al subir el script compilado por la siguiente razón: [REASON]. Por favor, inténtelo más tarde.
- </notification>
-
- <notification
-
- name="WriteAnimationFail"
- >
-Hubo un problema al escribir los datos de la animación. Por favor, inténtelo más tarde.
- </notification>
-
- <notification
-
- name="UploadAuctionSnapshotFail"
- >
-Hubo un problema al subir la foto de la subasta por la siguiente razón: [REASON]
- </notification>
-
- <notification
-
- name="UnableToViewContentsMoreThanOne"
- >
-No se puede ver a la vez los contenidos de más de un ítem. Por favor, elija un solo objeto y vuelva a intentarlo.
- </notification>
-
- <notification
-
- name="SaveClothingBodyChanges"
- >
-¿Guardar todos los cambios en la ropa y partes del cuerpo?
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="No guardarlos"
- yestext="Guardarlos todos"/>
- </notification>
-
- <notification
-
- name="GrantModifyRights"
- >
-Al conceder derechos de modificación a otro residente le autoriza a cambiar, borrar, o coger CUALQUIER objeto que usted tenga en el mundo. Sea MUY cuidadoso dando este permiso. ¿Quiere conceder derechos de modificación a [FIRST_NAME] [LAST_NAME]?
- <usetemplate
- name="okcancelbuttons"
- notext="No"
- yestext="Sí"/>
- </notification>
-
- <notification
-
- name="GrantModifyRightsMultiple"
- >
-Al conceder derechos de modificación a otros residentes les autoriza a cambiar, borrar, o coger CUALQUIER objeto que usted tenga en el mundo. Sea MUY cuidadoso dando este permiso. ¿Quiere conceder derechos de modificación a los residentes seleccionados?
- <usetemplate
- name="okcancelbuttons"
- notext="No"
- yestext="Sí"/>
- </notification>
-
- <notification
-
- name="RevokeModifyRights"
- >
-¿Quiere revocar los derechos de modificación a [FIRST_NAME] [LAST_NAME]?
- <usetemplate
- name="okcancelbuttons"
- notext="No"
- yestext="Sí"/>
- </notification>
-
- <notification
-
- name="RevokeModifyRightsMultiple"
- >
-¿Quiere revocar los derechos de modificación a los residentes seleccionados?
- <usetemplate
- name="okcancelbuttons"
- notext="No"
- yestext="Sí"/>
- </notification>
-
- <notification
-
- name="UnableToCreateGroup"
- >
-No se ha podido crear el grupo.
-[MESSAGE]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="PanelGroupApply"
- >
-[NEEDS_APPLY_MESSAGE]
-[WANT_APPLY_MESSAGE]
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="Ignorar los cambios"
- yestext="Aplicar los cambios"/>
- </notification>
-
- <notification
-
- name="MustSpecifyGroupNoticeSubject"
- >
-Para enviar un aviso de grupo debe especificar un asunto.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="AddGroupOwnerWarning"
- >
-Va a añadir miembros al rol de [ROLE_NAME].
-No podrá removérseles de ese rol, sino que deberán renunciar a él por sí mismos.
-¿Está seguro de que quiere seguir?
- <usetemplate
- ignoretext="Cuando se añaden miembros del grupo al rol de propietario"
- name="okcancelignore"
- notext="No"
- yestext="Sí"/>
- </notification>
-
- <notification
-
- name="AssignDangerousActionWarning"
- >
-Va a añadir la capacidad &apos;[ACTION_NAME]&apos; al rol &apos;[ROLE_NAME]&apos;.
-
- *ATENCIÓN*
- Todos los miembros con esta capacidad podrán asignarse a sí mismos -y a otros miembros- roles con mayores poderes de los que actualmente tienen. Potencialmente, podrían elevarse hasta poderes cercanos a los del propietario. Asegúrese de lo que está haciendo antes de otorgar esta capacidad.
-¿Añadir esta capacidad a &apos;[ROLE_NAME]&apos;?
- <usetemplate
- name="okcancelbuttons"
- notext="No"
- yestext="Sí"/>
- </notification>
-
- <notification
-
- name="AssignDangerousAbilityWarning"
- >
-Va a añadir la capacidad &apos;[ACTION_NAME]&apos; al rol &apos;[ROLE_NAME]&apos;.
-
- *ATENCIÓN*
- Todos los miembros con esta capacidad podrán asignarse a sí mismos -y a otros miembros- todas las capacidades, elevándose hasta poderes cercanos a los del propietario.
-¿Añadir esta capacidad a &apos;[ROLE_NAME]&apos;?
- <usetemplate
- name="okcancelbuttons"
- notext="No"
- yestext="Sí"/>
- </notification>
-
- <notification
-
- name="ClickPublishHelpLand"
- >
-Seleccionar &quot;Publicar en la web&quot;
-Marcando este ítem, se mostrará:
-- esta parcela en los resultados de la búsqueda
-- los objetos públicos de esta parcela
-- esta parcela en la búsqueda de la web
- </notification>
-
- <notification
-
- name="ClickPublishHelpLandDisabled"
- >
-No puede hacer que esta parcela aparezca en la búsqueda, porque está situada en una región que lo prohíbe.
- </notification>
-
- <notification
-
- name="ClickPublishHelpAvatar"
- >
-Al seleccionar &quot;Mostrar en Buscar&quot; se mostrará:
-- mi perfil en los resultados de la búsqueda
-- un enlace a mi perfil en las páginas públicas de grupo
- </notification>
-
- <notification
-
- name="ClickPartnerHelpAvatar"
- >
-Puede proponérselo a otro residente o disolver su relación con un/a compañero/a en el sitio web de [SECOND_LIFE].
-
-¿Ir al sitio web de Second Life para tener más información sobre este asunto?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Ir a la página"/>
- </notification>
-
- <notification
-
- name="ClickWebProfileHelpAvatar"
- >
-Si este residente ha indicado una URL para mostrar un perfil en la web, usted puede:
- * Pulsar &apos;Cargar&apos; para ver la página en esta pestaña web.
- * Pulsar Cargar &gt; &apos;En un navegador externo&apos; para ver la página en su navegador por defecto.
- * Pulsar Cargar &gt; &apos;URL Inicio&apos; para volver al perfil en la web de este residente si usted ha estado navegando por otros sitios.
-
-Cuando esté viendo su propio perfil, puede introducir cualquier URL como su perfil web, y pulsar OK para fijarla.
-Los demás residentes podrán visitar la URL que usted haya elegido cuando vean su perfil.
- </notification>
-
- <notification
-
- name="JoinGroupCanAfford"
- >
-Entrar a este grupo cuesta [COST] L$.
-¿Quiere hacerlo??
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Entrar"/>
- </notification>
-
- <notification
-
- name="JoinGroupCannotAfford"
- >
-Entrar a este grupo cuesta [COST] L$.
-No tiene dinero suficiente para entrar.
- </notification>
-
- <notification
-
- name="LandBuyPass"
- >
-Por [COST] L$ puede entrar a este terreno (&apos;[PARCEL_NAME]&apos;) durante [TIME] horas. ¿Comprar un pase?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SalePriceRestriction"
- >
-El precio de venta tiene que ser mayor de 0 L$ si la venta es a cualquiera.
-Por favor, elija a alguien concreto como comprador si la venta es por 0 L$.
- </notification>
-
- <notification
-
- name="ConfirmLandSaleChange"
-
- >
-Los [LAND_SIZE] m² de terreno seleccionados se van a poner a la venta.
-Su precio de venta será de [SALE_PRICE] L$, y se autorizará la compra sólo a [NAME].
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmLandSaleToAnyoneChange"
- >
-ATENCIÓN: Al pulsar &apos;vender a cualquiera&apos;, su terreno estará disponible para toda la comunidad de Second Life, incluso para quienes no están en esta región.
-
-Los [LAND_SIZE] m² de terreno seleccionados se van a poner a la venta.
-Su precio de venta será de [SALE_PRICE] L$, y se autorizará la compra a [NAME].
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsDeededToGroup"
- >
-¿Está seguro de que quiere devolver todos los objetos de esta parcela que estén compartidos con el grupo &apos;[NAME]&apos; al inventario de su propietario anterior?
-
-*ATENCIÓN* ¡Esto borrará los objetos no transferibles que se hayan cedido al grupo!
-
-Objetos: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsOwnedByUser"
- >
-¿Está seguro de que quiere devolver al inventario de &apos;[NAME]&apos; todos los objetos que sean de su propiedad en esta parcela?
-
-Objetos: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsOwnedBySelf"
- >
-¿Está seguro de que quiere devolver a su inventario todos los objetos de los que usted es propietario en esta parcela?
-
-Objetos: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsNotOwnedBySelf"
- >
-¿Está seguro de que quiere devolver todos los objetos de los que usted NO es propietario en esta parcela al inventario de sus propietarios?
-Los objetos transferibles que se hayan transferido al grupo se devolverán a sus propietarios previos.
-
-*ATENCIÓN* ¡Esto borrará los objetos no transferibles que se hayan cedido al grupo!
-
-Objetos: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsNotOwnedByUser"
- >
-¿Está seguro de que quiere devolver todos los objetos de esta parcela que NO sean propiedad de [NAME] al inventario de su propietario?
-Los objetos transferibles que se hayan transferido al grupo se devolverán a sus propietarios previos.
-
-*ATENCIÓN* ¡Esto borrará los objetos no transferibles que se hayan cedido al grupo!
-
-Objetos: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnAllTopObjects"
- >
-¿Está seguro de que quiere devolver al inventario de su propietario todos los objetos de la lista?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="DisableAllTopObjects"
- >
-¿Está seguro de que quiere desactivar todos los objetos de esta región?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsNotOwnedByGroup"
- >
-¿Devolver a sus propietarios los objetos de esta parcela que NO estén compartidos con el grupo [NAME]?
-
-Objetos: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="UnableToDisableOutsideScripts"
- >
-No se pueden desactivar los scripts.
-Toda esta región tiene activado el &apos;daño&apos;.
-Para que funcionen las armas los scripts deben estar activados.
- </notification>
-
- <notification
-
- name="MustBeInParcel"
- >
-Para configurar el Punto de llegada de la parcela,
-debe estar usted dentro de ella.
- </notification>
-
- <notification
-
- name="PromptRecipientEmail"
- >
-Por favor, escriba una dirección de correo electrónica válida para el/los receptor/es.
- </notification>
-
- <notification
-
- name="PromptSelfEmail"
- >
-Por favor, escriba su dirección de correo electrónico.
- </notification>
-
- <notification
-
- name="PromptMissingSubjMsg"
- >
-¿Foto por correo electrónico con el asunto o el mensaje por defecto?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ErrorProcessingSnapshot"
- >
-Error al procesar los datos de la foto.
- </notification>
-
- <notification
-
- name="ErrorEncodingSnapshot"
- >
-Error al codificar la foto.
- </notification>
-
- <notification
-
- name="ErrorUploadingPostcard"
- >
-Hubo un problema al enviar la foto por la siguiente razón: [REASON]
- </notification>
-
- <notification
-
- name="ErrorUploadingReportScreenshot"
- >
-Hubo un problema al subir la captura de pantalla del informe por la siguiente razón: [REASON]
- </notification>
-
- <notification
-
- name="MustAgreeToLogIn"
- >
-Debe estar de acuerdo con las Condiciones del Servicio para continuar el inicio de sesión en [SECOND_LIFE].
- </notification>
-
- <notification
-
- name="CouldNotPutOnOutfit"
- >
-No se ha podido ponerle el vestuario.
-La carpeta del vestuario contiene partes del cuerpo, u objetos a anexar o que no son ropa.
- </notification>
-
- <notification
-
- name="CannotWearTrash"
- >
-No puede vestirse ropas o partes del cuerpo que están en la Papelera
- </notification>
-
- <notification
-
- name="CannotWearInfoNotComplete"
- >
-No puede vestirse este ítem porque aún no se ha cargado. Por favor, reinténtelo en un minuto.
- </notification>
-
- <notification
-
- name="MustHaveAccountToLogIn"
- >
-¡Vaya! Algo se quedó en blanco.
-Debe escribir tanto el nombre como el apellido de su avatar, los dos.
-
-Necesita una cuenta para entrar en [SECOND_LIFE]. ¿Quiere crear una ahora?
- <usetemplate
- name="okcancelbuttons"
- notext="Volver a intentarlo"
- yestext="Crear una cuenta nueva"/>
- </notification>
-
- <notification
-
- name="AddClassified"
- >
-Los anuncios clasificados aparecen durante una semana en la sección &apos;Clasificados&apos; del directorio Buscar y en www.secondlife.com.
-Rellene su anuncio y pulse &apos;Publicar...&apos; para añadirlo al directorio.
-Cuando pulse Publicar, se le preguntará por un precio a pagar.
-El pagar más hará que su anuncio aparezca más arriba en la lista, y que también aparezca más arriba cuando la gente busque por palabras clave.
- <usetemplate
- ignoretext="Cuando se añade un nuevo Clasificado"
- name="okcancelignore"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="DeleteClassified"
- >
-¿Borrar el clasificado &apos;[NAME]&apos;?
-No se reembolsan las cuotas pagadas.
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ClassifiedSave"
- >
-¿Guardar los cambios en el clasificado [NAME]?
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="No guardar"
- yestext="Guardar"/>
- </notification>
-
- <notification
-
- name="DeleteAvatarPick"
- >
-¿Borrar el destacado [PICK]?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="PromptGoToEventsPage"
- >
-¿Ir a la web de eventos de [SECOND_LIFE]?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SelectProposalToView"
- >
-Por favor, seleccione qué propuesta quiere ver.
- </notification>
-
- <notification
-
- name="SelectHistoryItemToView"
- >
-Por favor, seleccione un ítem del historial para verlo.
- </notification>
-
- <notification
-
- name="ResetShowNextTimeDialogs"
- >
-¿Quiere reactivar todas estas ventanas emergentes, incluso las que marcó previamente como &apos;No mostrarme más esto&apos;?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SkipShowNextTimeDialogs"
- >
-¿Quiere activar todas las ventanas emergentes que puedan habilitarse?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CacheWillClear"
- >
-La caché se limpiará cuando reinicie [SECOND_LIFE].
- </notification>
-
- <notification
-
- name="CacheWillBeMoved"
- >
-La caché se moverá cuando reinicie [SECOND_LIFE].
-Nota: esto limpiará la caché.
- </notification>
-
- <notification
-
- name="ChangeConnectionPort"
- >
-Las configuraciones del puerto tendrán efecto cuando reinicie [SECOND_LIFE].
- </notification>
-
- <notification
-
- name="ChangeSkin"
- >
-La nueva apariencia se verá cuando reinicie [SECOND_LIFE].
- </notification>
-
- <notification
-
- name="GoToAuctionPage"
- >
-¿Ir a la página web de [SECOND_LIFE] para ver los detalles de la subasta
-o hacer una puja?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SaveChanges"
- >
-¿Guardar los cambios?
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="No guardar"
- yestext="Guardar"/>
- </notification>
-
- <notification
-
- name="GestureSaveFailedTooManySteps"
- >
-Fallo al guardar el gesto.
-Este gesto tiene demasiados pasos.
-Intente quitarle algunos, y vuelva a guardarlo.
- </notification>
-
- <notification
-
- name="GestureSaveFailedTryAgain"
- >
-Fallo al guardar el gesto. Por favor, reinténtelo en un minuto.
- </notification>
-
- <notification
-
- name="GestureSaveFailedObjectNotFound"
- >
-No se ha podido guardar el gesto porque no se pudo encontrar el objeto o el objeto asociado.
-El objeto debe de haber sido borrado o estar fuera de rango (&apos;out of range&apos;).
- </notification>
-
- <notification
-
- name="GestureSaveFailedReason"
- >
-Al guardar un gesto, hubo un problema por: [REASON]. Por favor, reintente guardarlo más tarde.
- </notification>
-
- <notification
-
- name="SaveNotecardFailObjectNotFound"
- >
-No se ha podido guardar la nota porque no se pudo encontrar el objeto o el objeto asociado del inventario.
-El objeto debe de haber sido borrado o estar fuera de rango (&apos;out of range&apos;).
- </notification>
-
- <notification
-
- name="SaveNotecardFailReason"
- >
-Al guardar una nota, hubo un problema por: [REASON]. Por favor, reintente guardarla más tarde.
- </notification>
-
- <notification
-
- name="ScriptCannotUndo"
- >
-No se han podido deshacer todos los cambios en su versión del script.
-¿Quiere cargar la última versión guardada en el servidor?
-(**Cuidado** No podrá deshacer esta operación).
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SaveScriptFailReason"
- >
-Al guardar un script, hubo un problema por: [REASON]. Por favor, reintente guardarlo más tarde.
- </notification>
-
- <notification
-
- name="SaveScriptFailObjectNotFound"
- >
-No se ha podido guardar el script porque no se pudo encontrar el objeto que incluye.
-El objeto debe de haber sido borrado o estar fuera de rango (&apos;out of range&apos;)..
- </notification>
-
- <notification
-
- name="SaveBytecodeFailReason"
- >
-Al guardar un script compilado, hubo un problema por: [REASON]. Por favor, reintente guardarlo más tarde..
- </notification>
-
- <notification
-
- name="CouldNotStartStopScript"
- >
-No se ha podido correr o parar el script porque no se pudo encontrar el objeto que incluye.
-El objeto debe de haber sido borrado o estar fuera de rango (&apos;out of range&apos;)..
- </notification>
-
- <notification
-
- name="CannotDownloadFile"
- >
-No se ha podido descargar el archivo.
- </notification>
-
- <notification
-
- name="CannotWriteFile"
- >
-No se ha podido escribir el archivo [[FILE]]
- </notification>
-
- <notification
-
- name="UnsupportedHardware"
- >
-Atención: su sistema no tiene los requerimientos mínimos que necesita Second Life. Si sigue usando Second Life, tendrá un funcionamiento pobre. Desafortunadamente, no podemos ofrecer soporte técnico para configuraciones inadecuadas del sistema.
-
-MINSPECS
-Para más información, ¿quiere visitar [_URL]?
- <url option="0" name="url">
-
- http://secondlife.com/support/sysreqs.php?lang=es
- </url>
- <usetemplate
- ignoretext="Cuando se detecte hardware no adecuado"
- name="okcancelignore"
- notext="No"
- yestext="Sí"/>
- </notification>
-
- <notification
-
- name="UnknownGPU"
- >
-En este momento, desconocemos la tarjeta gráfica de su sistema.
-Con frecuencia, esto se debe a hardware nuevo que no hemos podido revisar aún.
-Es muy probable que Second Life funcione correctamente, pero deberá ajustar sus configuraciones gráficas a lo que sea más apropiado.
-(Menú Editar &gt; Preferencias &gt; Gráficos).
- <form name="form">
- <ignore name="ignore"
- text="Cuando se detecte una tarjeta gráfica desconocida"/>
- </form>
- </notification>
-
- <notification
-
- name="DisplaySettingsNoShaders"
- >
-[SECOND_LIFE] se cayó al inicializar los drivers gráficos.
-La calidad de los gráficos deberá establecerse en un nivel bajo para prevenir algunos errores frecuentes en los drivers.
-Esto desactivará algunas opciones gráficas.
-Le recomendamos que actualice los drivers de su tarjeta gráfica.
-La calidad gráfica puede configurarse en Preferencias &gt; Gráficos.
- </notification>
-
- <notification
-
- name="RegionNoTerraforming"
- >
-En la región [REGION] no se permite modificar el terreno.
- </notification>
-
- <notification
-
- name="CannotCopyWarning"
- >
-No tiene permiso para copiar este ítem.
-Si lo da, lo perderá de su inventario.
-¿Realmente quiere darlo?
- <usetemplate
- name="okcancelbuttons"
- notext="No"
- yestext="Sí"/>
- </notification>
-
- <notification
-
- name="CannotGiveItem"
- >
-No se ha podido dar el ítem del inventario.
- </notification>
-
- <notification
-
- name="TransactionCancelled"
- >
-Transacción cancelada.
- </notification>
-
- <notification
-
- name="TooManyItems"
- >
-En una única transferencia del inventario, no puede dar más de 42 ítems.
- </notification>
-
- <notification
-
- name="NoItems"
- >
-No tiene permiso para transferir el ítem seleccionado.
- </notification>
-
- <notification
-
- name="CannotCopyCountItems"
- >
-No tiene permiso para copiar [COUNT] de los
-ítems seleccionados. Si los da, los perderá de su inventario.
-¿Realmente quiere darlos?
- <usetemplate
- name="okcancelbuttons"
- notext="No"
- yestext="Sí"/>
- </notification>
-
- <notification
-
- name="CannotGiveCategory"
- >
-No tiene permiso para transferir
-la carpeta seleccionada.
- </notification>
-
- <notification
-
- name="FreezeAvatar"
- >
-¿Congelar a este avatar?
-Temporalmente, será incapaz de moverse, usar el chat, o interactuar con el mundo.
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="Descongelarle"
- yestext="Congelarle"/>
- </notification>
-
- <notification
-
- name="FreezeAvatarFullname"
- >
-¿Congelar a [AVATAR_NAME]?
-Temporalmente, será incapaz de moverse, usar el chat, o interactuar con el mundo.
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="Descongelarle"
- yestext="Congelarle"/>
- </notification>
-
- <notification
-
- name="EjectAvatarFullname"
- >
-¿Expulsar a [AVATAR_NAME] de su terreno?
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="Expulsar y Prohibir el acceso"
- yestext="Expulsar"/>
- </notification>
-
- <notification
-
- name="EjectAvatarNoBan"
- >
-¿Expulsar a este avatar de su terreno?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Expulsar"/>
- </notification>
-
- <notification
-
- name="EjectAvatarFullnameNoBan"
- >
-¿Expulsar a [AVATAR_NAME] de su terreno?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Expulsar"/>
- </notification>
-
- <notification
-
- name="AcquireErrorTooManyObjects"
- >
-ERROR &apos;ACQUIRE&apos;: Hay demasiados objetos seleccionados.
- </notification>
-
- <notification
-
- name="AcquireErrorObjectSpan"
- >
-ERROR &apos;ACQUIRE&apos;: Los objetos están en más de una región.
-Por favor, mueva todos los objetos a adquirir a la
-misma región.
- </notification>
-
- <notification
-
- name="PromptGoToCurrencyPage"
- >
-[EXTRA]
-
-¿Ir a [URL] para informarse sobre la compra de moneda?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="UnableToLinkObjects"
- >
-No se pudo enlazar estos [COUNT] objetos.
-Puede enlazar [MAX] objetos como máximo.
- </notification>
-
- <notification
-
- name="CannotLinkIncompleteSet"
- >
-Sólo puede enlazar objetos completos (no sus partes), y debe
-seleccionar más de uno.
- </notification>
-
- <notification
-
- name="CannotLinkModify"
- >
-Imposible enlazarlos, porque no tiene permiso para modificar
-todos los objetos.
-
-Por favor, asegúrese de que no hay ninguno bloqueado, y de que es el propietario de todos.
- </notification>
-
- <notification
-
- name="CannotLinkDifferentOwners"
- >
-Imposible enlazarlos, porque hay objetos de distintos propietarios.
-
-Por favor, asegúrese de que es propietario de todos los objetos seleccionados.
- </notification>
-
- <notification
-
- name="NoFileExtension"
- >
-No hay extensión de archivo en: &apos;[FILE]&apos;
-
-Por favor, asegúrese de que la extensión del archivo es correcta.
- </notification>
-
- <notification
-
- name="InvalidFileExtension"
- >
-Extensión inválida de archivo: [EXTENSION]
-Podría ser [VALIDS]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CannotUploadSoundFile"
- >
-Ni se pudo abrir el archivo de sonido que se ha subido para leer:
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileNotRIFF"
- >
-No parece que el archivo sea un archivo RIFF WAVE:
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileNotPCM"
- >
-No parece que el archivo sea un archivo de audio PCM WAVE:
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidChannelCount"
- >
-El archivo no tiene un número de canales válido (debe ser mono o estéreo):
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidSampleRate"
- >
-No parece que el archivo tenga una frecuencia de muestreo (sample rate) adecuada (debe de ser 44.1k):
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidWordSize"
- >
-No parece que el archivo tenga un tamaño de palabra (word size) adecuado (debe de ser de 8 o 16 bites):
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidHeader"
- >
-No se encontró el fragmento &apos;data&apos; en la cabecera del WAV:
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidTooLong"
- >
-El archivo de audio es demasiado largo (10 segundos como máximo):
-[FILE]
- </notification>
-
- <notification
-
- name="ProblemWithFile"
- >
-Problemas con el archivo [FILE]:
-
-[ERROR]
- </notification>
-
- <notification
-
- name="CannotOpenTemporarySoundFile"
- >
-No se ha podido abrir para su escritura el archivo comprimido de sonido: [FILE]
- </notification>
-
- <notification
-
- name="UnknownVorbisEncodeFailure"
- >
-Códec Vorbis desconocido, fallo en : [FILE]
- </notification>
-
- <notification
-
- name="CorruptResourceFile"
- >
-Archivo con los recursos corruptos: [FILE]
- </notification>
-
- <notification
-
- name="UnknownResourceFileVersion"
- >
-Versión de archivo desconocida para el recurso Linden en el archivo: [FILE]
- </notification>
-
- <notification
-
- name="UnableToCreateOutputFile"
- >
-No se ha podido crear el archivo de salida: [FILE]
- </notification>
-
- <notification
-
- name="DoNotSupportBulkAnimationUpload"
- >
-Actualmente, no ofrecemos la posibilidad de subida masiva de archivos de animación.
- </notification>
-
- <notification
-
- name="CannotUploadReason"
- >
-No se ha podido subir [FILE] por la siguiente razón: [REASON]
-Por favor, inténtelo más tarde.
- </notification>
-
- <notification
-
- name="CannotCreateLandmarkNotOwner"
- >
-No puede crear un hito aquí porque el propietario del terreno no lo permite.
- </notification>
-
- <notification
-
- name="CannotRecompileSelectObjectsNoScripts"
- >
-No se pudo &apos;recompilar&apos;.
-Seleccione un objeto con script.
- </notification>
-
- <notification
-
- name="CannotRecompileSelectObjectsNoPermission"
- >
-No se pudo &apos;recompilar&apos;.
-
-Seleccione objetos con scripts en los que usted tenga permiso para modificarlos.
- </notification>
-
- <notification
-
- name="CannotResetSelectObjectsNoScripts"
- >
-No se pudo &apos;reiniciar&apos;.
-
-Seleccione objetos con scripts.
- </notification>
-
- <notification
-
- name="CannotResetSelectObjectsNoPermission"
- >
-No se pudo &apos;reiniciar&apos;.
-
-Seleccione objetos con scripts en los que usted tenga permiso para modificarlos.
- </notification>
-
- <notification
-
- name="CannotSetRunningSelectObjectsNoScripts"
- >
-No se puede configurar ningún script como &apos;ejecutándose&apos;.
-
-Seleccione objetos con scripts.
- </notification>
-
- <notification
-
- name="CannotSetRunningNotSelectObjectsNoScripts"
- >
-No se puede configurar ningún script como &apos;no ejecutándose&apos;.
-
-Seleccione objetos con scripts.
- </notification>
-
- <notification
-
- name="NoFrontmostFloater"
- >
-No hay nada a guardar.
- </notification>
-
- <notification
-
- name="SeachFilteredOnShortWords"
- >
-Se ha modificado su búsqueda,
-eliminando las palabras demasiado cortas.
-
-Buscando: [FINALQUERY]
- </notification>
-
- <notification
-
- name="SeachFilteredOnShortWordsEmpty"
- >
-Los términos de su búsqueda son muy cortos,
-por lo que no se ha hecho la búsqueda.
- </notification>
-
- <notification
-
- name="CouldNotTeleportReason"
- >
-No se ha podido teleportar.
-[REASON]
- </notification>
-
- <notification
-
- name="CannotSetLandOwnerNothingSelected"
- >
-No se ha podido configurar el propietario del terreno:
-no se ha seleccionado una parcela.
- </notification>
-
- <notification
-
- name="CannotSetLandOwnerMultipleRegions"
- >
-No se ha podido obtener la propiedad del terreno porque la selección se extiende por varias regiones. Por favor, seleccione un área más pequeña y reinténtelo.
- </notification>
-
- <notification
-
- name="ForceOwnerAuctionWarning"
- >
-Está parcela está siendo subastada. Forzar su propiedad cancelará la subasta y, probablemente, disguste a algunos residentes que ya hayan empezado a pujar. ¿Forzar la propiedad?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CannotContentifyNothingSelected"
- >
-No se ha podido &apos;contentify&apos;:
-no se ha seleccionado una parcela.
- </notification>
-
- <notification
-
- name="CannotContentifyNoRegion"
- >
-No se ha podido &apos;contentify&apos;:
-no se ha seleccionado una región.
- </notification>
-
- <notification
-
- name="CannotReleaseLandNothingSelected"
- >
-No se ha podido abandonar el terreno:
-no se ha seleccionado una parcela.
- </notification>
-
- <notification
-
- name="CannotReleaseLandNoRegion"
- >
-No se ha podido abandonar el terreno:
-no se ha podido encontrar la región.
- </notification>
-
- <notification
-
- name="CannotBuyLandNothingSelected"
- >
-Imposible comprar terreno:
-no se ha seleccionado una parcela.
- </notification>
-
- <notification
-
- name="CannotBuyLandNoRegion"
- >
-Imposible comprar terreno:
-no se ha podido encontrar en qué región está.
- </notification>
-
- <notification
-
- name="CannotCloseFloaterBuyLand"
- >
-No puede cerrar la ventana de Comprar terreno hasta que Second Life calcule el precio de esta transacción.
- </notification>
-
- <notification
-
- name="CannotDeedLandNothingSelected"
- >
-No se ha podido transferir el terreno:
-no se ha seleccionado una parcela.
- </notification>
-
- <notification
-
- name="CannotDeedLandNoGroup"
- >
-No se ha podido transferir el terreno:
-no ha seleccionado un grupo.
- </notification>
-
- <notification
-
- name="CannotDeedLandNoRegion"
- >
-No se ha podido transferir el terreno:
-Ha sido imposible encontrar en qué región está.
-Por favor, para informar de esto use Herramientas -&gt; Informar de un fallo.
- </notification>
-
- <notification
-
- name="CannotDeedLandMultipleSelected"
- >
-No se ha podido transferir el terreno:
-ha seleccionado varias parcelas.
-
-Inténtelo seleccionando sólo una.
- </notification>
-
- <notification
-
- name="ParcelCanPlayMedia"
- >
-Esta localización puede mostrar media en streaming.
-Los media en streaming necesitan una conexión a internet rápida.
-
-Si hay media, ¿reproducirlos en streaming?
-(Puede cambiar más adelante esta opción en Preferencias &gt; Audio y Vídeo).
- <usetemplate
- name="okcancelbuttons"
- notext="Desactivar"
- yestext="Ejecutar los media"/>
- </notification>
-
- <notification
-
- name="CannotDeedLandWaitingForServer"
- >
-No se ha podido transferir el terreno:
-esperando que el servidor informe acerca de la propiedad.
-
-Por favor, vuelva a intentarlo.
- </notification>
-
- <notification
-
- name="CannotDeedLandNoTransfer"
- >
-No se ha podido transferir el terreno:
-En la región [REGION] no se permite transferir terrenos.
- </notification>
-
- <notification
-
- name="CannotReleaseLandWatingForServer"
- >
-No se ha podido abandonar el terreno:
-esperando que el servidor actualice la información de la parcela.
-
-Vuelva a intentarlo en unos segundos.
- </notification>
-
- <notification
-
- name="CannotReleaseLandSelected"
- >
-No se ha podido abandonar el terreno:
-no es propietario de todas las parcelas seleccionadas.
-
-Por favor, seleccione una sola parcela.
- </notification>
-
- <notification
-
- name="CannotReleaseLandDontOwn"
- >
-No se ha podido abandonar el terreno:
-no tiene permisos sobre esta parcela.
-Las parcelas de su propiedad se muestran en verde.
- </notification>
-
- <notification
-
- name="CannotReleaseLandRegionNotFound"
- >
-No se ha podido abandonar el terreno:
-Ha sido imposible encontrar en qué región está.
-
-Por favor, para informar de esto use Herramientas &gt; Informar de un fallo.
- </notification>
-
- <notification
-
- name="CannotReleaseLandNoTransfer"
- >
-No se ha podido abandonar el terreno:
-En la región [REGION] no se permite transferir terrenos.
- </notification>
-
- <notification
-
- name="CannotReleaseLandPartialSelection"
- >
-No se ha podido abandonar el terreno:
-debe seleccionar toda la parcela.
-
-Seleccione una parcela completa, o divídala primero.
- </notification>
-
- <notification
-
- name="ReleaseLandWarning"
- >
-Va a abandonar [AREA] m² de terreno.
-Al hacerlo, la quitará de entre sus posesiones de terreno, pero no recibirá ningún L$.
-
-¿Abandonar este terreno?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CannotDivideLandNothingSelected"
- >
-No se ha podido dividir el terreno:
-
-No ha seleccionado ninguna parcela.
- </notification>
-
- <notification
-
- name="CannotDivideLandPartialSelection"
- >
-No se ha podido dividir el terreno:
-
-Ha seleccionado una parcela entera.
-Inténtelo seleccionando una parte.
- </notification>
-
- <notification
-
- name="LandDivideWarning"
- >
-Dividir este terreno lo separará en dos parcelas, cada una de las cuales tendrá su propia configuración. Tras esta operación, algunas configuraciones volverán a las existentes por defecto.
-
-¿Dividir el terreno?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CannotDivideLandNoRegion"
- >
-No se ha podido dividir el terreno:
-Ha sido imposible encontrar en qué región está.
-
-Por favor, para informar de esto use Herramientas -&gt; Informar de un fallo.
- </notification>
-
- <notification
-
- name="CannotJoinLandNoRegion"
- >
-No se ha podido unir el terreno:
-Ha sido imposible encontrar en qué región está.
-
-Por favor, para informar de esto use Herramientas -&gt; Informar de un fallo.
- </notification>
-
- <notification
-
- name="CannotJoinLandNothingSelected"
- >
-No se ha podido unir el terreno:
-No hay parcelas seleccionadas.
- </notification>
-
- <notification
-
- name="CannotJoinLandEntireParcelSelected"
- >
-No se ha podido unir el terreno:
-Sólo ha seleccionado una parcela.
-
-Seleccione terreno que incluya algo de ambas parcelas.
- </notification>
-
- <notification
-
- name="CannotJoinLandSelection"
- >
-No se ha podido unir el terreno:
-Debe seleccionar más de una parcela.
-
-Seleccione terreno que incluya algo de ambas parcelas.
- </notification>
-
- <notification
-
- name="JoinLandWarning"
- >
-Al unir este terreno creará una parcela más grande formada por todas aquellas que tengan parte en el rectángulo seleccionado.
-Deberá reconfigurar el nombre y las opciones de la nueva parcela.
-
-¿Unir el terreno?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmNotecardSave"
- >
-Esta nota debe guardarse antes de que se la pueda copiar o ver. ¿Guardar la nota?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmItemCopy"
- >
-¿Copiar este ítem a su inventario?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Copiar"/>
- </notification>
-
- <notification
-
- name="ResolutionSwitchFail"
- >
-Fallo al cambiar la resolución a [RESX] por [RESY]
- </notification>
-
- <notification
-
- name="ErrorUndefinedGrasses"
- >
-Error, hierbas no definidas: [SPECIES]
- </notification>
-
- <notification
-
- name="ErrorUndefinedTrees"
- >
-Error, árboles no definidos: [SPECIES]
- </notification>
-
- <notification
-
- name="CannotSaveWearableOutOfSpace"
- >
-No se ha podido guardar el archivo &apos;[NAME]&apos;. Tendrá que liberar algo de espacio en su ordenador y guardarlo de nuevo.
- </notification>
-
- <notification
-
- name="CannotSaveToAssetStore"
- >
-No se ha podido guardar [NAME] en la base central de almacenamiento.
-Esto es, generalmente, un fallo temporal. Por favor, reinténtelo en unos pocos minutos.
-
-Si persiste el problema, por favor, pulse en en el menú &apos;Herramientas &gt; Informar de un fallo&apos; y aporte detalles sobre la configuración de su conexión.
- </notification>
-
- <notification
-
- name="YouHaveBeenLoggedOut"
- >
-Se ha cerrado su sesión en [SECOND_LIFE]:
- [MESSAGE]
-Aún puede ver el chat y los MI existentes pulsando &apos;Ver MI y Chat&apos;. Si no, pulse &apos;Salir&apos; para dejar inmediatemente [SECOND_LIFE].
- <usetemplate
- name="okcancelbuttons"
- notext="Salir"
- yestext="Ver MI y Chat"/>
- </notification>
-
- <notification
-
- name="OnlyOfficerCanBuyLand"
- >
-No se ha podido comprar terreno para el grupo:
-usted no tiene el permiso de comprar terreno para el grupo que tiene activado actualmente.
- </notification>
-
- <notification
-
- label="Añadir como amigo"
- name="AddFriend"
- >
-Los amigos pueden darse permiso para localizarse en el mapa y para saber si el otro está conectado.
-
-¿Ofrecer a [NAME] que sea su amigo?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Añadir como amigo"
- name="AddFriendWithMessage"
- >
-Los amigos pueden darse permiso para localizarse en el mapa y para saber si el otro está conectado.
-
-¿Ofrecer a [NAME] que sea su amigo?
- <form name="form">
- <input name="message" type="text">
-¿Quieres formar parte de mis amigos?
- </input>
- <button
-
-
- name="Offer"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- name="RemoveFromFriends"
- >
-¿Quiere quitar a [FIRST_NAME] [LAST_NAME] de su lista de amigos?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="RemoveMultipleFromFriends"
- >
-¿Quiere quitar a varios amigos de su lista de amigos?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GodDeleteAllScriptedPublicObjectsByUser"
- >
-¿Está seguro de que quiere borrar todos los objetos con script que sean propiedad de
-** [AVATAR_NAME] **
-en todos los otros terrenos de este sim?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GodDeleteAllScriptedObjectsByUser"
- >
-¿Está seguro de que quiere BORRAR TODOS los objetos con script que sean propiedad de
-** [AVATAR_NAME] **
-en TODO EL TERRENO de este sim?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GodDeleteAllObjectsByUser"
- >
-¿Está seguro de que quiere BORRAR TODOS los objetos (con script o no) que sean propiedad de
-** [AVATAR_NAME] **
-en TODO EL TERRENO de este sim?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BlankClassifiedName"
- >
-Debe especificar un nombre para su clasificado.
- </notification>
-
- <notification
-
- name="MinClassifiedPrice"
- >
-El pago para aparecer en la lista debe ser de, al menos, [MIN_PRICE] L$.
-
-Por favor, elija un pago mayor.
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLock"
- >
-Al menos uno de los ítems que ha seleccionado está bloqueado.
-
-¿Está seguro de que quiere borrar estos ítems?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteNoCopy"
- >
-Al menos uno de los ítems que ha seleccionado no es copiable.
-
-¿Está seguro de que quiere borrar estos ítems?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteNoOwn"
- >
-No es el propietario de, al menos, uno de los ítems que ha seleccionado.
-
-¿Está seguro de que quiere borrar estos ítems?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLockNoCopy"
- >
-Al menos un objeto está bloqueado.
-Al menos un objeto no es copiable.
-
-¿Está seguro de que quiere borrar estos ítems?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLockNoOwn"
- >
-Al menos un objeto está bloqueado.
-No es propietario de, al menos, un objeto.
-
-¿Está seguro de que quiere borrar estos ítems?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteNoCopyNoOwn"
- >
-Al menos un objeto no es copiable.
-No es propietario de, al menos, un objeto.
-
-¿Está seguro de que quiere borrar estos ítems?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLockNoCopyNoOwn"
- >
-Al menos un objeto está bloqueado.
-Al menos un objeto no es copiable.
-No es propietario de, al menos, un objeto.
-
-¿Está seguro de que quiere borrar estos ítems?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectTakeLock"
- >
-Al menos un objeto está bloqueado.
-
-¿Está seguro de que quiere tomar estos ítems?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectTakeNoOwn"
- >
-No es el propietario de todos los objetos que está tomando.
-Si sigue, se aplicarán los permisos marcados para el próximo propietario, y es posible que se restrinja su posibilidad de hacer modificaciones o copias.
-
-¿Está seguro de que quiere tomar estos ítems?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectTakeLockNoOwn"
- >
-Al menos un objeto está bloqueado.
-No es el propietario de todos los objetos que está tomando.
-Si sigue, se aplicarán los permisos marcados para el próximo propietario, y es posible que se restrinja su posibilidad de hacer modificaciones o copias
-Con todo, puede tomar lo actualmente seleccionado.
-
-¿Está seguro de que quiere tomar estos ítems?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CantBuyLandAcrossMultipleRegions"
- >
-No se ha podido hacer la compra porque el terreno seleccionado se extiende por varias regiones.
-
-Por favor, seleccione un área más pequeña y reinténtelo.
- </notification>
-
- <notification
-
- name="DeedLandToGroup"
- >
-Al transferir esta parcela, se requerirá al grupo que tenga y mantenga el crédito suficiente para uso de terreno.
-El precio de compra de la parcela no se reembolsa al propietario.
-Si se vende una parcela transferida, el precio de venta se dividirá a partes iguales entre los miembros del grupo.
-
-¿Transferir estos [AREA] m² de terreno al grupo
-&apos;[GROUP_NAME]&apos;?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="DeedLandToGroupWithContribution"
- >
-Al transferir esta parcela, se requerirá al grupo que tenga y mantenga el crédito suficiente para uso de terreno.
-La tranferencia incluirá, a la vez, una contribucíon de terreno al grupo de &apos;[FIRST_NAME] [LAST_NAME]&apos;.
-El precio de compra de la parcela no se reembolsa al propietario.
-Si se vende una parcela transferida, el precio de venta se dividirá a partes iguales entre los miembros del grupo.
-
-¿Transferir estos [AREA] m² de terreno al grupo &apos;[GROUP_NAME]&apos;?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="DisplaySetToSafe"
- >
-Las configuraciones que se muestran se han fijado en los niveles guardados, pues usted especificó la opción de guardarlos.
- </notification>
-
- <notification
-
- name="DisplaySetToRecommended"
- >
-Las configuraciones que se muestran se han fijado en los niveles recomendados para la configuración de su sistema.
- </notification>
-
- <notification
-
- name="ErrorMessage"
- >
-[ERROR_MESSAGE]
- </notification>
-
- <notification
-
- name="AvatarMoved"
- >
-Su localización [TYPE] no está disponible en estos momentos. [HELP]
-Ha sido llevado a una región cercana.
- </notification>
-
- <notification
-
- name="ClothingLoading"
- >
-Aún está descargándose su ropa.
-Puede usar normalmente [SECOND_LIFE], los demás residentes le verán correctamente.
- <form name="form">
- <ignore name="ignore"
- text="Cuando está llevando mucho tiempo descargar la ropa"/>
- </form>
- </notification>
-
- <notification
-
- name="FirstRun"
- >
-Se ha completado la instalación de [SECOND_LIFE].
-
-Si esta es la primera vez que usa [SECOND_LIFE], deberá crear una cuenta antes de que pueda iniciar una sesión.
-¿Volver a www.secondlife.com para crear una cuenta nueva?
- <usetemplate
- name="okcancelbuttons"
- notext="Continuar"
- yestext="Cuenta nueva..."/>
- </notification>
-
- <notification
-
- name="LoginPacketNeverReceived"
- >
-Tenemos problemas de conexión. Puede deberse a un problema de su conexión a internet o de los servidores de Second Life.
-
-Puede revisar su conexión a internet y volver a intentarlo en unos minutos. Pulse Ayuda para conectarse a nuestro sitio de Sporte, o pulse Teleportar para intentar teleportarse a su Base.
- <form name="form">
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Help"
- text="Ayuda"/>
- <button
-
- name="Teleport"
- text="Teleportar"/>
- </form>
- </notification>
-
- <notification
-
- name="WelcomeChooseSex"
- >
-Su personaje aparecerá en un momento.
-
-Para caminar, use las teclas del cursor.
-En cualquier momento, puede pulsar la tecla F1 para conseguir ayuda o para aprender más acerca de [SECOND_LIFE].
-Por favor, elija el avatar masculino o femenino.
-Puede cambiar más adelante su elección.
- <usetemplate
- name="okcancelbuttons"
- notext="Mujer"
- yestext="Varón"/>
- </notification>
-
- <notification
-
- name="NotEnoughCurrency"
- >
-[NAME] cuesta [PRICE] L$. No tiene suficientes L$ para hacer eso.
- </notification>
-
- <notification
-
- name="GrantedModifyRights"
- >
-Se le ha concedido el privilegio de modificar los objetos de [FIRST_NAME] [LAST_NAME].
- </notification>
-
- <notification
-
- name="RevokedModifyRights"
- >
-Ha sido revocado su privilegio de modificar los objetos de [FIRST_NAME] [LAST_NAME].
- </notification>
-
- <notification
-
- name="FlushMapVisibilityCaches"
- >
-Esto limpiará las caches del mapa en esta región.
-Esto sólo es realmente útil para cuestiones de depuración (&apos;debugging&apos;).
-(A efectos prácticos, espere 5 minutos, y el mapa de cualquiera se actualizará después de que reinicie sesión).
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="OnlyCopyContentsOfSingleItem"
- >
-No se puede copiar a la vez los contenidos de más de un objeto.
-Por favor, selección sólo uno y reinténtelo.
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="KickUsersFromRegion"
- >
-¿Teleportar a su base a todos los residentes en esta región?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="EstateObjectReturn"
- >
-¿Está seguro de que quiere devolver los objetos propiedad de
-[USER_NAME] ?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="InvalidTerrainBitDepth"
- >
-No se han podido configurar las texturas de la región:
-La textura del terreno [TEXTURE_NUM] tiene una profundidad de bites inválida: [TEXTURE_BIT_DEPTH].
-
-Cambie la textura [TEXTURE_NUM] por una imagen de 24-bit y 512x512 o menor, y pulse de nuevo &quot;Aplicar&quot; .
- </notification>
-
- <notification
-
- name="InvalidTerrainSize"
- >
-No se han podido configurar las texturas de la región:
-La textura del terreno [TEXTURE_NUM] es demasiado grande: [TEXTURE_SIZE_X]x[TEXTURE_SIZE_Y].
-
-Cambie la textura [TEXTURE_NUM] por una imagen de 24-bit y 512x512 o menor, y pulse de nuevo &quot;Aplicar&quot; .
- </notification>
-
- <notification
-
- name="RawUploadStarted"
- >
-Ha empezado la subida. Dependiendo de la velocidad de su conexión, llevará unos dos minutos.
- </notification>
-
- <notification
-
- name="ConfirmBakeTerrain"
- >
-¿Realmente quiere predeterminar el terreno actual, haciéndolo el centro de los limites para elevarlo y rebajarlo, y el terreno por defecto para la herramienta &apos;Revertir&apos;?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="MaxAllowedAgentOnRegion"
- >
-Sólo puede tener [MAX_AGENTS] residentes autorizados.
- </notification>
-
- <notification
-
- name="MaxBannedAgentsOnRegion"
- >
-Sólo puede tener [MAX_BANNED] residentes no admitidos.
- </notification>
-
- <notification
-
- name="MaxAgentOnRegionBatch"
- >
-Fallo al intentar añadir [NUM_ADDED] agentes:
-Se superan en [NUM_EXCESS] los [MAX_AGENTS] permitidos en [LIST_TYPE].
- </notification>
-
- <notification
-
- name="MaxAllowedGroupsOnRegion"
- >
-Sólo puede tener [MAX_GROUPS] grupos permitidos.
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Predeterminar"/>
- </notification>
-
- <notification
-
- name="MaxManagersOnRegion"
- >
-Sólo puede tener [MAX_MANAGER] administradores del estado.
- </notification>
-
- <notification
-
- name="OwnerCanNotBeDenied"
- >
-No se puede añadir a la lista de residentes no admitidos al propietario del estado.
- </notification>
-
- <notification
-
- name="CanNotChangeAppearanceUntilLoaded"
- >
-No puede cambiar la apariencia hasta que no se carguen la ropa y la forma.
- </notification>
-
- <notification
-
- name="ClassifiedMustBeAlphanumeric"
- >
-El nombre de su anuncio clasificado debe empezar o con un número o con una letra de la A a la Z. No se permiten signos de puntuación.
- </notification>
-
- <notification
-
- name="CantSetBuyObject"
- >
-No puede configurar el Comprar el objeto, porque éste no está en venta.
-Por favor, ponga en venta el objeto y reinténtelo.
- </notification>
-
- <notification
-
- name="FinishedRawDownload"
- >
-Acabada la descarga del archivo raw de terreno en:
-[DOWNLOAD_PATH].
- </notification>
-
- <notification
-
- name="DownloadWindowsMandatory"
- >
-Está disponible una versión nueva de [SECOND_LIFE].
-[MESSAGE]
-Debe descargar esta actualización para usar [SECOND_LIFE].
- <usetemplate
- name="okcancelbuttons"
- notext="Salir"
- yestext="Descargarla"/>
- </notification>
-
- <notification
-
- name="DownloadWindows"
- >
-Está disponible una versión actualizada de [SECOND_LIFE].
-[MESSAGE]
-Esta actualización no es obligatoria, pero le sugerimos instalarla para mejorar el rendimiento y la estabilidad.
- <usetemplate
- name="okcancelbuttons"
- notext="Continuar"
- yestext="Descargarla"/>
- </notification>
-
- <notification
-
- name="DownloadWindowsReleaseForDownload"
- >
-Está disponible una versión actualizada de [SECOND_LIFE].
-[MESSAGE]
-Esta actualización no es obligatoria, pero le sugerimos instalarla para mejorar el rendimiento y la estabilidad.
- <usetemplate
- name="okcancelbuttons"
- notext="Continuar"
- yestext="Descargarla"/>
- </notification>
-
- <notification
-
- name="DownloadMacMandatory"
- >
-Está disponible una versión nueva de [SECOND_LIFE].
-[MESSAGE]
-Debe descargar esta actualización para usar [SECOND_LIFE].
-
-¿Descargarla a su carpeta de aplicaciones?
- <usetemplate
- name="okcancelbuttons"
- notext="Salir"
- yestext="Descargarla"/>
- </notification>
-
- <notification
-
- name="DownloadMac"
- >
-Está disponible una versión actualizada de [SECOND_LIFE].
-[MESSAGE]
-Esta actualización no es obligatoria, pero le sugerimos instalarla para mejorar el rendimiento y la estabilidad.
-
-¿Descargarla a su carpeta de aplicaciones?
- <usetemplate
- name="okcancelbuttons"
- notext="Continuar"
- yestext="Descargarla"/>
- </notification>
-
- <notification
-
- name="DownloadMacReleaseForDownload"
- >
-Está disponible una versión actualizada de [SECOND_LIFE].
-[MESSAGE]
-Esta actualización no es obligatoria, pero le sugerimos instalarla para mejorar el rendimiento y la estabilidad.
-
-¿Descargarla a su carpeta de aplicaciones?
- <usetemplate
- name="okcancelbuttons"
- notext="Continuar"
- yestext="Descargarla"/>
- </notification>
-
- <notification
-
- name="DeedObjectToGroup"
- >
-Transferir este objeto al grupo hará que:
-* Reciba los L$ pagados en el objeto
- <usetemplate
- ignoretext="Cuando se transfieren objetos a los grupos"
- name="okcancelignore"
- notext="Cancelar"
- yestext="Transferir"/>
- </notification>
-
- <notification
-
- name="WebLaunchExternalTarget"
- >
-¿Abrir el navegador de su sistema para ver este contenido?
- <usetemplate
- ignoretext="Cuando se abra el navegador de su sistema para ver una página web"
- name="okcancelignore"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchJoinNow"
- >
-¿Ir a www.secondlife.com para administrar su cuenta?
- <usetemplate
- ignoretext="Cuando se abra el navegador para administrar su cuenta"
- name="okcancelignore"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchBugReport101"
- >
-Visite el wiki de [SECOND_LIFE] y aprenda cómo informar correctamente de fallos.
- <usetemplate
- ignoretext="Cuando se abra el navegador para ver el wiki de Informes de fallos - instrucciones"
- name="okcancelignore"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchSecurityIssues"
- >
-Visite el wiki de [SECOND_LIFE] para más detalles sobre cómo informar de una cuestión de seguridad.
- <usetemplate
- ignoretext="Cuando se abra el navegador para ver el wiki de cuestiones de seguridad"
- name="okcancelignore"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchQAWiki"
- >
-Visite el wiki QA de [SECOND_LIFE].
- <usetemplate
- ignoretext="Cuando se abra el navegador para ver el wiki QA"
- name="okcancelignore"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchPublicIssue"
- >
-Visite el Public Issue Tracker (sistema público de seguimiento de incidencias) de [SECOND_LIFE], donde podrá informar de errores y otros asuntos.
- <usetemplate
- ignoretext="Cuando se abra el navegador para ver el Public Issue Tracker"
- name="okcancelignore"
- notext="Cancelar"
- yestext="Ir a la página"/>
- </notification>
-
- <notification
-
- name="WebLaunchPublicIssueHelp"
- >
-Visite el wiki de [SECOND_LIFE] para informarse de cómo usar el Public Issue Tracker (sistema público de seguimiento de incidencias).
- <usetemplate
- ignoretext="Cuando se abra el navegador para ver el wiki del Public Issue Tracker"
- name="okcancelignore"
- notext="Cancelar"
- yestext="Ir a la página"/>
- </notification>
-
- <notification
-
- name="WebLaunchSupportWiki"
- >
-Para ver las últimas noticias e informaciones, ¿ir la Blog oficial?
- <usetemplate
- ignoretext="Cuando se abra el navegador para ver el blog"
- name="okcancelignore"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchLSLGuide"
- >
-¿Ir a la Guía de programación para encontrar ayuda?
- <usetemplate
- ignoretext="Cuando se abra el navegador para ver la Guía de programación"
- name="okcancelignore"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchLSLWiki"
- >
-¿Ir al portal de LSL para encontrar ayuda sobre programación?
- <usetemplate
- ignoretext="Cuando se abra el navegador para ver el portal de programación"
- name="okcancelignore"
- notext="Cancelar"
- yestext="Ir a la página"/>
- </notification>
-
- <notification
-
- name="ReturnToOwner"
- >
-¿Está seguro de que quiere devolver los objetos seleccionados a sus propietarios? Los objetos transferibles que se hayan cedido volverán a sus propietarios anteriores.
-
-*ATENCIÓN* ¡Serán borrados los objetos no transferibles que estén cedidos!
- <usetemplate
- ignoretext="Cuando se devuelvan los objetos a sus propietarios"
- name="okcancelignore"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GroupLeaveConfirmMember"
- >
-Actualmente, usted es miembro del grupo [GROUP].
-¿Dejar el grupo?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmKick"
- >
-¿DE VERDAD quiere expulsar a todos los usuarios de este grid?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Expulsar a todos los usuarios"/>
- </notification>
-
- <notification
-
- name="MuteLinden"
- >
-Perdón, pero no puede ignorar a un Linden.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Fallo al ignorar un objeto según el nombre"
- name="MuteByNameFailed"
- >
-Ya ha ignorado ese nombre.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="RemoveItemWarn"
- >
-Aunque esté permitido, borrar contenidos puede dañar el objeto.
-¿Quiere borrar ese ítem?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CantOfferCallingCard"
- >
-En este momento, no se puede ofrecer una tarjeta de visita. Por favor, reinténtelo en un momento.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CantOfferFriendship"
- >
-En este momento, no se puede ofrecer el ser amigo. Por favor, reinténtelo en un momento.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BusyModeSet"
- >
-Pasar al modo ocupado.
-Se ocultará el chat y los mensajes instantáneos. Los mensajes instantáneos recibirán su Respuesta en el modo ocupado. Todos los ofrecimientos de teleporte serán rehusados. Todas las ofertas de inventario irán a su Papelera.
- <usetemplate
- ignoretext="Cuando se pasa al modo ocupado"
- name="okignore"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="JoinedTooManyGroupsMember"
- >
-Pertenece a demasiados grupos para poder entrar en otro. Por favor, salga de al menos uno antes de entrar en éste, o rehúse la oferta. Para salir de un grupo, seleccione la opción &apos;Grupos...&apos; en el menú &apos;Editar&apos;.
-[NAME] le ha invitado a ser miembro de un grupo.
-[INVITE]
- <usetemplate
- name="okcancelbuttons"
- notext="Rehusar"
- yestext="Entrar"/>
- </notification>
-
- <notification
-
- name="KickUser"
- >
-¿Con qué mensaje se expulsará a este usuario?
- <form name="form">
- <input name="message" type="text">
-Un administrador le ha desconectado.
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- name="KickAllUsers"
- >
-¿Con qué mensaje se expulsará a cualquiera que esté actualmente en el grid?
- <form name="form">
- <input name="message" type="text">
-Un administrador le ha desconectado.
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- name="FreezeUser"
- >
-¿Con qué mensaje se congelará a este usuario?
- <form name="form">
- <input name="message" type="text">
-Ha sido usted congelado. No puede moverse o escribir en el chat. Un administrador contactará con usted a través de un mensaje instantáneo (MI).
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- name="UnFreezeUser"
- >
-¿Con qué mensaje se descongelará a este usuario?
- <form name="form">
- <input name="message" type="text">
-Ya no está usted congelado.
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- name="OfferTeleport"
- >
-¿Ofrecer teleporte a su posición con este mensaje?
- <form name="form">
- <input name="message" type="text">
-Ven conmigo a [REGION]
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- name="OfferTeleportFromGod"
- >
-¿Convocar a este usuario a su posición?
- <form name="form">
- <input name="message" type="text">
-Ven conmigo a [REGION]
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- name="TeleportFromLandmark"
- >
-¿Está seguro de que quiere teleportarse?
- <usetemplate
- ignoretext="Cuando está teleportando desde un hito del inventario"
- name="okcancelignore"
- notext="Cancelar"
- yestext="Teleportar"/>
- </notification>
-
- <notification
-
- label="Mensaje a todo el estado"
- name="MessageEstate"
- >
-Escriba un anuncio breve que se enviará a todo el que esté en su estado.
- <form name="form">
- <input name="message" type="text"/>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- label="Cambiar un estado Linden"
- name="ChangeLindenEstate"
- >
-Va a hacer cambios en un estado propiedad de Linden (mainland, grid teen, orientación, etc.).
-
-Esto es EXTREMADAMENTE PELIGROSO, porque puede afectar radicalmente al funcionamiento de los usuarios. En mainland, se cambiarán miles de regiones, y se provocará un colapso en el espacio del servidor.
-
-¿Proceder?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Cambiar el acceso a un estado Linden"
- name="ChangeLindenAccess"
- >
-Va a cambiar la lista de acceso de un estado propiedad de Linden (mainland, grid teen, orientación, etc.).
-
-Esto es PELIGROSO, y sólo debe hacerse para deshacerse de ataques que permitan sacar o meter en el grid objetos o L$.
-Se cambiarán miles de regiones, y se provocará un colapso en el espacio del servidor.
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Seleccionar el estado"
- name="EstateAllowedAgentAdd"
- >
-¿Añadir a la lista de permitidos sólo para este estado o para [ALL_ESTATES]?
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="Todos los estados"
- yestext="Este estado"/>
- </notification>
-
- <notification
-
- label="Seleccionar el estado"
- name="EstateAllowedAgentRemove"
- >
-¿Quitar de la lista de permitidos sólo para este estado o para [ALL_ESTATES]?
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="Todos los estados"
- yestext="Este estado"/>
- </notification>
-
- <notification
-
- label="Seleccionar el estado"
- name="EstateAllowedGroupAdd"
- >
-¿Añadir a la lista de grupos permitidos sólo para este estado o para [ALL_ESTATES]?
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="Todos los estados"
- yestext="Este estado"/>
- </notification>
-
- <notification
-
- label="Seleccionar el estado"
- name="EstateAllowedGroupRemove"
- >
-¿Quitar de la lista de grupos permitidos sólo para este estado o para [ALL_ESTATES]?
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="Todos los estados"
- yestext="Este estado"/>
- </notification>
-
- <notification
-
- label="Seleccionar el estado"
- name="EstateBannedAgentAdd"
- >
-¿Denegar el acceso sólo a este estado o a [ALL_ESTATES]?
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="Todos los estados"
- yestext="Este estado"/>
- </notification>
-
- <notification
-
- label="Seleccionar el estado"
- name="EstateBannedAgentRemove"
- >
-¿Quitar de la lista de prohibición de acceso a este residente para que acceda sólo a este estado o a [ALL_ESTATES]?
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="Todos los estados"
- yestext="Este estado"/>
- </notification>
-
- <notification
-
- label="Seleccionar el estado"
- name="EstateManagerAdd"
- >
-¿Añadir al administrador del estado sólo para este estado o para [ALL_ESTATES]?
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="Todos los estados"
- yestext="Este estado"/>
- </notification>
-
- <notification
-
- label="Seleccionar el estado"
- name="EstateManagerRemove"
- >
-¿Remover al administrador del estado sólo para este estado o para [ALL_ESTATES]?
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="Todos los estados"
- yestext="Este estado"/>
- </notification>
-
- <notification
-
- label="Confirmar la expulsión"
- name="EstateKickUser"
- >
-¿Echar a [EVIL_USER] de este estado?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="EstateChangeCovenant"
- >
-¿Está seguro de que quiere cambiar el contrato del estado?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ProblemImportingEstateCovenant"
- >
-Hay problemas al importar el contrato del estado.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <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="ProblemAddingEstateGeneric"
- >
-Hay problemas en este añadir a la lista del estado. Uno o más estados deben de tener llena la lista.
- </notification>
-
- <notification
-
- name="UnableToLoadNotecard"
- >
-En este momento no se puede cargar la nota.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="NotAllowedToViewNotecard"
- >
-Permisos insuficientes para ver la nota asociada a la ID solicitada.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="MissingNotecardAssetID"
- >
-Se ha perdido en la base de datos la ID de la nota.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="PublishClassified"
- >
-Recuerde: las cuotas que se pagan por los clasificados no son reembolsables.
-
-¿Publicar ahora este anuncio por [AMOUNT] L$?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
-
-
- <notification
-
- label="Confirmar el reinicio"
- name="ConfirmRestart"
- >
-¿Verdaderamente quiere reiniciar la región de aquí a 2 minutos?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Mensaje a toda la región"
- name="MessageRegion"
- >
-Escriba un anuncio breve que se enviará a todo el que esté en esta región.
- <form name="form">
- <input name="message" type="text"/>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- label="No permitir modificar el terreno"
- name="HelpRegionBlockTerraform"
- >
-Si se marca está casilla, los propietarios de terreno no podrán modificarlo, independientemente de lo que esté configurado en cada parcela.
-
-Por defecto: off
- </notification>
-
- <notification
-
- label="Prohibir volar"
- name="HelpRegionBlockFly"
- >
-Si se marca esta casilla, estará prohibido volar en la región, independientemente de lo que esté configurado en cada parcela.
-
-Por defecto: off
- </notification>
-
- <notification
-
- label="Permitir el daño"
- name="HelpRegionAllowDamage"
- >
-Si se marca la casilla, el sistema de &apos;vida&apos; afecta a todas las parcelas independientemente de lo que tenga marcado cada una.
-Si la casilla no está marcada, el propietario de cada parcela podrá decidir si activa en ella el sistema de &apos;vida&apos;.
-
-Por defecto: off
- </notification>
-
- <notification
-
- label="Nº máximo de avatares"
- name="HelpRegionAgentLimit"
- >
-Configura el número máximo de avatares que se permite en esta región.
-El funcionamiento puede variar según el número de avatares que estén presentes.
-
-Por defecto: 40
- </notification>
-
- <notification
-
- label="Plus de objetos"
- name="HelpRegionObjectBonus"
- >
-El plus de objetos es un multiplicador de los prims permitidos en cualquier parcela.
-El rango permitido es de 1 a 10. Fijándolo en &apos;1&apos;, se permiten 117 objetos en cada parcela de 512 m². Fijándolo en &apos;2&apos;, se permiten 234 (el doble), y así sucesivamente. El número máximo de objetos permitidos en una región sigue siendo de 15.000, sea cual sea el plus.
-Una vez establecido, tenga en cuenta que reducir el plus de objetos puede causar que se devuelvan o borren objetos.
-
-Por defecto: 1.0
- </notification>
-
-
-
- <notification
-
- label="Impedir &apos;empujar&apos;"
- name="HelpRegionRestrictPushObject"
- >
-Esta casilla controla en toda la región los permisos para que haya &apos;empujones&apos;.
-Cuando está activada, los residentes sólo pueden ser empujados por sí mismos o por el propietario de la parcela.
-(&apos;Empujar&apos; se refiere a la función llPushObject() del LSL).
-
-Por defecto: Off
- </notification>
-
- <notification
-
- label="Unir/Dividir parcelas"
- name="HelpParcelChanges"
- >
-Esta casilla determina si las parcelas que no son del propietario del estado pueden puede unirse o subdividirse.
-Si no se marca esta opción:
- * Sólo los propietarios o los administradores del estado pueden unir o dividir parcelas.
- * Sólo podrán unir o dividir las parcelas pertenecientes al propietario o a un grupo en el que tengan los poderes adecuados.
-Si se marca esta opción:
- * Todo los propietarios de parcelas podrán unir o dividir las que posean.
- * En parcelas propiedad de un grupo, quienes tengan los poderes adecuados podrán unirlas o dividirlas.
-
-Por defecto: Marcado
- </notification>
-
- <notification
-
- label="No mostrar en la búsqueda"
- name="HelpRegionSearch"
- >
-Marcando esta casilla bloqueará que los propietarios de parcelas puedan listarlas en la búsqueda.
-
-Por defecto: Off
- </notification>
-
- <notification
-
- label="Cambiada la calificación de la región"
- name="RegionMaturityChange"
- >
-Se ha actualizado la calificación de esta región.
-Llevará algún tiempo que el cambio se refleje en el mapa.
- </notification>
-
- <notification
-
- label="Reventa de terreno"
- name="HelpRegionLandResell"
- >
-Los propietarios y los administradores del estado pueden poner en venta cualquier terreno que posea el propietario del estado.
-Si se desmarca esta opción, los compradores no podrán revender el terreno que compren en esta región.
-Si se marca esta opción, los compradores podrán revender el terreno que compren en esta región.
-
-Por defecto: Deshabilitado
- </notification>
-
- <notification
-
- label="Desactivar los scripts"
- name="HelpRegionDisableScripts"
- >
-Cuando el rendimiento de un sim es pobre, el culpable puede ser un script. Abra Estadísticas (Ctrl-May-1). Mire Simulator Physics FPS. Si es menor de 45, abre el panel Time, en la parte inferior de las Estadísticas. Si ve que Script Time está en 25 ms o más alto, pulse el botón Listar los scripts según su uso, y verá el nombre y la posición de los scripts que pueden estar causando el bajo rendimiento.
-
-Marcando la casilla Desactivar los scripts y pulsando el botón Aplicar, se desactivarán temporalmente en esta región todos los scripts.
-Debe hacer esto para viajar a la posición que ha visto en la Lista de scripts según su uso. Cuando llegue, investigue el script para determinar si es él quien causa el problema. Deberá contactar con el propietario del script, o borrar o devolver el objeto.
-Desmarque la casilla Desactivar los scripts y pulse Aplicar para reactivar los scripts en la región.
-
-Por defecto: off
- </notification>
-
- <notification
-
- label="Desactivar las colisiones"
- name="HelpRegionDisableCollisions"
- >
-Cuando el rendimiento de un sim es pobre, la culpa puede estar en los objetos físicos. Abra Estadísticas (Ctrl-May-1). Mire Simulator Physics FPS. Si es menor de 45, abre el panel Time, en la parte inferior de las Estadísticas. Si ve que Sim Time (Physics) está en 20 ms o más alto, pulse el botón Listar los objetos que colisionan, y verá el nombre y la posición de los objetos que pueden estar causando el bajo rendimiento.
-
-Marcando la casilla Desactivar las colisiones y pulsando el botón Aplicar, se desactivarán temporalmente las colisiones entre objetos.
-Debe hacer esto para viajar a la localización que se ha avisado en la Lista de objetos que colisionan. Cuando llegue, investigue el objeto:
-¿está colisionando constantemente con otros objetos? Deberá contactar con el propietario del objeto, o borrarlo o devolverlo.
-Desmarque la casilla Desactivar las colisiones y pulse Aplicar para reactivar las colisiones en la región.
-
-Por defecto: off
- </notification>
-
- <notification
-
- label="Desactivar la física"
- name="HelpRegionDisablePhysics"
- >
-Desactivar la física es parecido a Desactivar las colisiones, pero se desactivan todas las simulaciones físicas: no sólo se detiene la colisión de objetos, sino que también se provoca que los avatares no puedan moverse.
-
-Esto debería usarse sólo cuando Desactivar las colisiones no ha aportado a la región suficiente rendimiento para investigar un problema con las propiedades físicas o los objetos que colisionan.
-
-Cuando acabe, no se olvide de reactivar la física, o los avatares seguirán sin poderse mover.
-
-Por defecto: off
- </notification>
-
- <notification
-
- label="Objetos que colisionan"
- name="HelpRegionTopColliders"
- >
-Muestra una lista de aquellos objetos con más colisiones potenciales con otros objetos. Estos objetos pueden ralentizar el rendimiento.
-Seleccione Ver &gt; Estadísticas, y mire Simulator &gt; Time &gt; Sim Time (Physics) para ver si se están empleando en &apos;physics&apos; más de 20 ms.
- </notification>
-
- <notification
-
- label="Listar los scripts"
- name="HelpRegionTopScripts"
- >
-Muestra una lista de los objetos que más tiempo emplean en ejecutar scripts de LSL. Estos objetos pueden ralentizar el rendimiento.
-Seleccione Ver &gt; Estadísticas, y mire Simulator &gt; Time &gt; Script Time para ver si se están empleando más de 25 ms.
- </notification>
-
- <notification
-
- label="Reiniciar la región"
- name="HelpRegionRestart"
- >
-Reinicia los procesos del servidor en que corre esta región tras dos minutos de advertencia previa. Se desconectará a todos los residentes que estén en la región. La región guardará sus datos, y debería volver en unos 90 segundos.
-
-Reiniciar la región no solventa la mayoría de los problemas de rendimiento, y, normalmente, debe utilizarse sólo cuando se indique.
- </notification>
-
- <notification
-
- label="Nivel del agua"
- name="HelpRegionWaterHeight"
- >
-Es el nivel, en metros, del agua. Si se marca en algo distinto de 20, y usted tiene al lado el agua del mundo o un &apos;vacío&apos;, habrá una diferencia visible.
-
-Por defecto: 20
- </notification>
-
- <notification
-
- label="Elevación del terreno"
- name="HelpRegionTerrainRaise"
- >
-Es la distancia que, en metros, los propietarios de parcelas pueden elevar su terreno sobre la altura del terreno inicialmente creado.
-
-Por defecto: 4
- </notification>
-
- <notification
-
- label="Rebaje del terreno"
- name="HelpRegionTerrainLower"
- >
-Es la distancia que, en metros, los propietarios de parcelas pueden bajar su terreno sobre la altura del terreno inicialmente creado.
-
-Por defecto: -4
- </notification>
-
- <notification
-
- label="Subir un RAW para el terreno"
- name="HelpRegionUploadRaw"
- >
-Este botón carga un archivo .RAW en la región en que usted está.
-El archivo debe tener las dimensiones correctas (RGB, 256x256) y 13 canales. La forma mejor de crear un archivo de terreno es descargar el archivo RAW existente. Un buen inicio es modificar el canal rojo -red- (altura del terreno), y subirlo.
-
-La carga puede llevar unos 45 segundos. Fíjese que subir un archivo de terreno *no* moverá los objetos que haya en el terreno, sólo el terreno mismo y los permisos asociados a las parcelas.
-Por tanto, puede que algunos objetos acaben enterrados..
-
-Para más información sobre la edición de las alturas del terreno, consulte la ayuda F1.
- </notification>
-
- <notification
-
- label="Descargar el RAW del terreno"
- name="HelpRegionDownloadRaw"
- >
-Este botón descarga un archivo de esta región con los datos de alturas, dimensiones de las parcelas, estado de las parcelas en venta, y algunos permisos de las parcelas. Al abrir el archivo en un programa como Photoshop debe especificar las dimensiones del documento: RGB, 256x256 con 13 canales.
-Este archivo de terreno no puede abrirse de otro modo.
-
-Para más información sobre la edición de las alturas del terreno, consulte la ayuda F1.
- </notification>
-
- <notification
-
- label="Usar el Sol del estado"
- name="HelpRegionUseEstateSun"
- >
-Esta casilla hace que la posición del Sol en la región sea la misma que la del resto del estado.
-
-Por defecto: on
- </notification>
-
- <notification
-
- label="Fijar el Sol"
- name="HelpRegionFixedSun"
- >
-Esta casilla fija la posición del Sol en la posición del deslizable Fase, y detiene su movimiento.
-
-Por defecto: off
- </notification>
-
- <notification
-
- label="Predeterminar este terreno"
- name="HelpRegionBakeTerrain"
- >
-Este botón salva la forma actual del terreno como nueva forma por defecto para la región. Una vez predeterminado, el terreno puede volver a esa forma cada vez que usted u otros usan la opción &apos;Revertir&apos; en Editar el terreno. El terreno predeterminado también marca el punto medio para elevar y bajar los límites.
- </notification>
-
- <notification
-
- label="Administradores del estado"
- name="HelpEstateEstateManager"
- >
-Un administrador del estado es un residente en el que usted delega controles de la región y configuraciones del estado. Un administrador del estado puede cambiar algunas configuraciones de estos paneles, excepto las de subir, descargar, y predeterminar el terreno. Y, concretamente, puede autorizar o expulsar a residentes de su estado.
-
-Sólo el propietario del estado puede añadir o remover administradores, nadie más.
-Por favor, elija sólo a residentes en quienes confíe, pues usted será el responsable último de sus acciones.
- </notification>
-
- <notification
-
- label="Usar el horario global"
- name="HelpEstateUseGlobalTime"
- >
-Esta casilla hace que, en su estado, el Sol tenga la misma posición que en los estados propiedad de Linden, &apos;mainland&apos;.
-
-Por defecto: on
- </notification>
-
- <notification
-
- label="Fijar el Sol"
- name="HelpEstateFixedSun"
- >
-Esta casilla fija la posición del Sol en la posición del deslizable Fase, y detiene su movimiento.
- </notification>
-
- <notification
-
- label="Acceso público"
- name="HelpEstateExternallyVisible"
- >
-Esta casilla habilita a cualquier residente que esté en otro estado pueda entrar en éste sin tener que estar en una lista de acceso.
-
-Por defecto: on
- </notification>
-
- <notification
-
- label="Permitir el teleporte a cualquier punto"
- name="HelpEstateAllowDirectTeleport"
- >
-Cuando esta marcado, los residentes puede teleportarse directamente a cualquier punto de su estado. Si se desmarca, los residentes se teleportarán al Punto de Teleporte más cercano.
-
-Por defecto: off
- </notification>
-
- <notification
-
- label="Autorizar el acceso"
- name="HelpEstateAllowResident"
- >
-El acceso a este estado se limitará a los residentes aquí enumerados y a cualquier grupo de abajo. Esta configuración sólo funciona cuando está desmarcado Acceso público.
- </notification>
-
- <notification
-
- label="Autorizar el acceso de grupo"
- name="HelpEstateAllowGroup"
- >
-El acceso a este estado se limitará a los grupos aquí enumerados y a cualquier residente de abajo. Esta configuración sólo funciona cuando está desmarcado Acceso público.
- </notification>
-
- <notification
-
- label="Dirección de correo para infracciones"
- name="HelpEstateAbuseEmailAddress"
- >
-Aportando aquí una dirección de correo válida, se hará que las Denuncias de Infracción en este estado se envíen a esa dirección.
-Si se deja en blanco, las Denuncias de Infracción se enviarán sólo a Linden Lab.
- </notification>
-
- <notification
-
- label="Denegar el acceso"
- name="HelpEstateBanResident"
- >
-A los residentes en esta lista se les niega el acceso a su estado, independientemente de cualquier otra configuración.
- </notification>
-
- <notification
-
- label="Autorizar el chat de voz"
- name="HelpEstateVoiceChat"
- >
-Se autoriza a las parcelas del estado a tener sus propios canales de voz en los que los residentes puedan hablar y oír a otros residentes.
-
-Por defecto: off
- </notification>
-
- <notification
-
- label="Desajuste en la versión de voz"
- name="VoiceVersionMismatch"
- >
-En esta región, la versión de Second Life no es compatible con el chat de voz. Para que el chat de voz funcione correctamente, debe actualizar Second Life.
- </notification>
-
- <notification
-
- label="Contrato del estado"
- name="HelpEstateCovenant"
- >
-Definir un contrato del estado le permite vender parcelas del mismo. Si no existe un contrato, no puede vender terreno.
-La nota para su contrato puede estar vacía si es que no quiere aplicar reglas, avisos a los compradores, o cualquier otra cosa relacionada con el terreno antes de que sea comprado.
-
-Puede usar un contrato para comunicar al posible comprador reglas, pautas, información cultural, o, simplemente, sus propias expectativas.
-Así, puede hablarse de parcelación, normas de las construcciones, formas de pago, u otra información que considere que el nuevo propietario debe saber y con la que debe estar de acuerdo antes de hacer la compra.
-
-Para poder finalizar la compra, el comprador debe aceptar el contrato marcando la casilla adecuada. Los contratos de los estados son siempre visibles en la información Acerca del terreno en todas las parcelas.
- </notification>
-
- <notification
-
- label="No se pudo comprar los objetos"
- name="BuyObjectOneOwner"
- >
-No se pueden comprar a la vez objetos de propietarios diferentes.
-Por favor, seleccione sólo un objeto y vuelva a intentarlo.
- </notification>
-
- <notification
-
- label="No se pudo comprar el contenido"
- name="BuyContentsOneOnly"
- >
-No se puede comprar a la vez los contenidos de más de un objeto.
-Por favor, seleccione sólo un objeto y vuelva a intentarlo.
- </notification>
-
- <notification
-
- label="No se pudo comprar el contenido"
- name="BuyContentsOneOwner"
- >
-No se pueden comprar a la vez objetos de propietarios diferentes.
-Por favor, seleccione sólo un objeto y vuelva a intentarlo.
- </notification>
-
- <notification
-
- name="BuyOriginal"
- >
-¿Comprar el objeto original de [OWNER] por [PRICE] L$?
-Usted pasará a ser el propietario de este objeto.
-Podrá:
- Modificarlo: [MODIFYPERM]
- Copiarlo: [COPYPERM]
- Revenderlo o darlo: [RESELLPERM]
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyOriginalNoOwner"
- >
-¿Comprar el objeto original por [PRICE] L$?
-Usted pasará a ser el propietario de este objeto.
-Podrá:
- Modificarlo: [MODIFYPERM]
- Copiarlo: [COPYPERM]
- Revenderlo o darlo: [RESELLPERM]
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyCopy"
- >
-¿Comprar una copia de [OWNER] por [PRICE] L$?
-El objeto se copiará a su inventario.
-Podrá:
- Modificarlo: [MODIFYPERM]
- Copiarlo: [COPYPERM]
- Revenderlo o darlo: [RESELLPERM]
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyCopyNoOwner"
- >
-¿Comprar una copia por [PRICE] L$?
-El objeto se copiará a su inventario.
-Podrá:
- Modificarlo: [MODIFYPERM]
- Copiarlo: [COPYPERM]
- Revenderlo o darlo: [RESELLPERM]
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyContents"
- >
-¿Comprar los contenidos de [OWNER] por [PRICE] L$?
-Serán copiados a su inventario.
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyContentsNoOwner"
- >
-¿Comprar los contenidos por [PRICE] L$?
-Serán copiados a su inventario.
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmPurchase"
- >
-Esta transacción hará que:
-[ACTION]
-
-¿Está seguro de querer hacer esta compra?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmPurchasePassword"
- type="password">
-Esta transacción hará que:
-[ACTION]
-
-¿Está seguro de querer hacer esta compra?
-Por favor, vuelva a escribir su contraseña y pulse OK.
- <form name="form">
- <input
- name="message"
- type="password"/>
- <button
-
-
- name="ConfirmPurchase"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- name="SetPickLocation"
- >
-Nota:
-Ha actualizado la posición de este Destacado, pero los otros detalles permanecen con sus valores originales.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="MoveInventoryFromObject"
- >
-Ha elegido ítems &apos;no copiables&apos; de su inventario. Esos ítems se quitarán de su inventario, no se copiarán.
-
-¿Mover el/los ítem/s del inventario?
- <usetemplate
- ignoretext="Cuando mueva objetos &apos;no copiables&apos; del inventario"
- name="okcancelignore"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="MoveInventoryFromScriptedObject"
- >
-Ha elegido ítems &apos;no copiables&apos; de su inventario. Esos ítems se moverán a su inventario, no se copiarán.
-Dado que estos objetos tienen scripts, moverlos a su inventario puede provocar un mal funcionamiento del script.
-
-¿Mover el/los ítem/s del inventario?
- <usetemplate
- ignoretext="Cuando mueva objetos con script &apos;no copiables&apos; del inventario"
- name="okcancelignore"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ClickActionNotPayable"
- >
-Atención: la acción Pagar al objeto al pulsar ha sido marcada, pero sólo funcionará si se añade un script con un evento money().
- <form name="form">
- <ignore name="ignore"
- text="Cuando configure &apos;Pagar&apos; en objetos sin el evento money()"/>
- </form>
- </notification>
-
- <notification
-
- name="OpenObjectCannotCopy"
- >
-En este objeto, no hay ítems que esté autorizado a copiar.
- </notification>
-
- <notification
-
- name="WebLaunchAccountHistory"
- >
-¿Ir al sitio web de Second Life para ver el historial de su cuenta?
- <usetemplate
- ignoretext="Cuando se cargue la página web del historial de la cuenta"
- name="okcancelignore"
- notext="Cancelar"
- yestext="Ir a la página"/>
- </notification>
-
- <notification
-
- name="ClickOpenF1Help"
- >
-¿Visitar el sitio web de Soporte de Second Life?
- <usetemplate
- ignoretext="Cuando visite el sitio web de Soporte de Second Life."
- name="okcancelignore"
- notext="Cancelar"
- yestext="Ir"/>
- </notification>
-
- <notification
-
- name="ConfirmQuit"
- >
-¿Está seguro de que quiere salir?
- <usetemplate
- ignoretext="Cuando esté saliendo de Second Life."
- name="okcancelignore"
- notext="Continuar"
- yestext="Salir"/>
- </notification>
-
- <notification
-
- name="HelpReportAbuseEmailLL"
- >
-Use esta herramienta para denunciar violaciones de las Normas de la Comunidad y las Condiciones del Servicio. Vea:
-
-http://secondlife.com/corporate/tos.php
-http://secondlife.com/corporate/cs.php
-
-Se investigan y resuelven todas las infracciones denunciadas de las Normas de la Comunidad y las Condiciones del Servicio. Puede ver la resolución tomada en el Informe de Incidentes, en:
-
-http://secondlife.com/support/incidentreport.php
- </notification>
-
- <notification
-
- name="HelpReportAbuseEmailEO"
- >
-IMPORTANTE: Esta denuncia no irá a Linden Lab, sino al propietario de la región en la que usted se encuentra actualmente.
-
-Como un servicio a los residentes y visitantes, el propietario de la región ha elegido recibir y resolver todas las enuncias que se originen en esta región. Linden Lab no investigará las denuncias que usted envíe desde aquí.
-
-El propietario de la región resolverá las denuncias basándose en las reglas locales de la región, tal como se detallan en el Contrato del estado.
-(Puede ver el Contrato yendo al menú Mundo y eligiendo Acerca del terreno).
-
-La resolución de esta denuncia se aplica exclusivamente a esta región; el acceso de los residentes a otras áreas de Second Life no se verá afectado por el resultado de esta denuncia. Únicamente Linden Lab puede impedir el acceso a la totalidad de Second Life.
- </notification>
-
- <notification
-
- name="HelpReportBug"
- >
-Use esta herramienta *sólo* para informar de cuestiones técnicas que no se comportan como se describe o era esperable. Por favor, aporte todos los detalles que pueda.
-Deberá responder al correo electrónico de auto respuesta para añadir más detalles a su informe.
-
-Todos los informes de fallos serán investigados y evaluados. No se contestará por correo electrónico.
-
-Si tiene algún problema técnico, por favor, contacte con Soporte en:
-
-http://secondlife.com/community/support.php
-
-Nota: no se investigarán los informes incompletos.
- </notification>
-
- <notification
-
- name="HelpReportAbuseSelectCategory"
- >
-Por favor, elija una categoría para esta denuncia de infracción.
-Seleccionar una categoría nos ayuda a clasificar y procesar las denuncias de infracciones.
- </notification>
-
- <notification
-
- name="HelpReportBugSelectCategory"
- >
-Por favor, elija una categoría para este fallo.
-Seleccionar una categoría nos ayuda a clasificar y procesar los informes de fallos.
- </notification>
-
- <notification
-
- name="HelpReportAbuseAbuserNameEmpty"
- >
-Por favor, escriba el nombre del infractor.
-Aportar el dato preciso nos ayuda a clasificar y procesar las denuncias de infracciones.
- </notification>
-
- <notification
-
- name="HelpReportAbuseAbuserLocationEmpty"
- >
-Por favor, escriba la localización donde tuvo lugar la infracción.
-Aportar el dato preciso nos ayuda a clasificar y procesar las denuncias de infracciones.
- </notification>
-
- <notification
-
- name="HelpReportAbuseSummaryEmpty"
- >
-Por favor, escriba un resumen de la infracción que ha habido.
-Aportar un resumen preciso nos ayuda a clasificar y procesar las denuncias de infracciones.
- </notification>
-
- <notification
-
- name="HelpReportBugSummaryEmpty"
- >
-Por favor, escriba un resumen del fallo.
-Aportar un resumen preciso nos ayuda a clasificar y procesar los informes de fallos.
- </notification>
-
- <notification
-
- name="HelpReportAbuseDetailsEmpty"
- >
-Por favor, escriba una descripción minuciosa de la infracción que ha habido.
-Sea tan específico como pueda, incluyendo los nombres y los detalles implicados en el incidente que denuncia.
-Aportar una descripción precisa nos ayuda a clasificar y procesar las denuncias de infracciones.
- </notification>
-
- <notification
-
- name="HelpReportBugDetailsEmpty"
- >
-Por favor, escriba una descripción minuciosa del fallo.
-Sea tan específico como pueda, incluyendo -si es posible- los pasos que permitan reproducir el fallo.
-Aportar una descripción precisa nos ayuda a clasificar y procesar los informes de fallos.
- </notification>
-
- <notification
-
- name="HelpReportAbuseContainsCopyright"
- >
-Estimado Residente:
-
-Parece que está usted denunciando una violación de la propiedad intelectual. Por favor, asegúrese de que su denuncia es correcto.
-
-(1) El proceso de la denuncia. Debe enviar una denuncia de infracción si cree que un Residente está reventando el sistema de permisos de Second Life, por ejemplo, usando un CopyBot u otras herramientas parecidas para copiar, infringiendo los derechos de propiedad intelectual. El Equipo de Infracciones (Abuse Team) investiga y lleva a cabo las acciones disciplinarias apropiadas ante toda acción que viole las las Normas de la Comunidad de Second Life o las Condiciones del Servicio. Sin embargo, el Equipo de Infracciones ni gestiona ni responde a las solicitudes de eliminar contenidos del mundo de Second Life.
-
-(2) El DMCA o Proceso de Eliminación de Contenido. Para solicitar que se elimine algún contenido de Second Life, DEBE enviar una notificación válida de infracción tal y como se explica en nuestra DMCA Policy en http://secondlife.com/corporate/dmca.php.
-
-Si todavía quiere seguir con el proceso de infracción, por favor, cierre esta ventana y acabe de enviar su denuncia. En concreto, debe seleccionar la categoría &apos;CopyBot o Programa para saltarse los permisos&apos;.
-
-Gracias,
-
-Linden Lab
- </notification>
-
- <notification
-
- name="FailedRequirementsCheck"
- >
-Han desaparecido de [FLOATER] estos componentes:
-[COMPONENTS]
- </notification>
-
- <notification
-
- label="Reemplazar el anexado actual"
- name="ReplaceAttachment"
- >
-En ese punto de su cuerpo ya hay un objeto anexado. ¿Quiere reemplazarlo por el objeto que ha elegido?
- <form name="form">
- <ignore name="ignore"
- save_option="true"
- text="Cuando se reemplacen anexados existentes"/>
- <button
-
- ignore="Reemplazar automaticamente"
-
- name="Yes"
- text="OK"/>
- <button
- ignore="Nunca reemplazar"
-
- name="No"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- label="¡Aviso! Modo Ocupado"
- name="BusyModePay"
- >
-Usted está en el modo Ocupado. Por tanto, no recibirá ningún ítem a cambio de esta pago.
-
-¿Quiere salir del modo Ocupado ante de completar esta transacción?
- <form name="form">
- <ignore name="ignore"
- save_option="true"
- text="Cuando se esté pagando a un objeto o persona en el modo Ocupado"/>
- <button
-
- ignore="Siempre salir del modo Ocupado"
-
- name="Yes"
- text="OK"/>
- <button
- ignore="Nunca salir del modo Ocupado"
-
- name="No"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- name="ConfirmEmptyTrash"
- >
-¿Está seguro de que quiere vaciar definitivamente el contenido de su Papelera?
- <usetemplate
- ignoretext="Cuando se vacíe la Papelera"
- name="okcancelignore"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmClearBrowserCache"
- >
-¿Está seguro de que quiere limpiar la caché de su navegador?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Sí"/>
- </notification>
-
- <notification
-
- name="ConfirmClearCookies"
- >
-¿Está seguro de que quiere limpiar sus cookies?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Sí"/>
- </notification>
-
- <notification
-
- name="ConfirmClearMediaUrlList"
- >
-¿Está seguro de que quiere vaciar su lista de URL guardadas?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Sí"/>
- </notification>
-
- <notification
-
- name="ConfirmEmptyLostAndFound"
- >
-¿Está seguro de que quiere eliminar permanentemente el contenido de su carpeta Objetos Perdidos?
- <usetemplate
- ignoretext="Cuando se vacíe la carpeta del inventario Objetos Perdidos"
- name="okcancelignore"
- notext="No"
- yestext="Sí"/>
- </notification>
-
- <notification
-
- name="CopySLURL"
- >
-Se ha copiado a su portapapeles la siguiente SLurl:
- [SLURL]
-
-Publíquela en una página web para que otros puedan acceder fácilmente a esta posición, o pruébela usted mismo pegándola en la barra de direcciones de su navegador.
- <form name="form">
- <ignore name="ignore"
- text="Cuando se copie una SLurl al portapapeles"/>
- </form>
- </notification>
-
- <notification
-
- name="GraphicsPreferencesHelp"
- >
-Este panel controla el tamaño de la ventana, y la resolución y la calidad de los gráficos del cliente. La interfaz Preferencias &gt; Gráficos le permite escoger entre cuatro niveles gráficos: Bajo, Medio, Alto, y Ultra. También puede personalizar sus configuraciones gráficas marcando la casilla Personalizar y adaptando estas configuraciones:
-
-Efectos: activa o desactiva varios tipos de shaders.
-
-Objetos reflejados: determina qué objetos reflejará el agua.
-
-Renderización del avatar: muestra opciones que afectan a cómo renderiza el cliente los avatares.
-
-Distancia de dibujo: afecta a cuán lejos de su punto de vista se renderizarán los objetos en la escena.
-
-Núm. máx. de partículas: define el número máximo de partículas que podrá ver a la vez en su pantalla.
-
-Calidad del procesamiento: define la resolución con que se renderiza el brillo.
-
-Detalle de la malla: define la cantidad de dettales o número de triángulos usados para renderizar algunos objetos. Cuanto más alto sea el valor, más detalle, pero más tiempo para renderizar.
-
-Detalles de la iluminación: determina que tipo de luces quiere usted que se rendericen.
-
-Nivel de detalle del terreno: marca con cuánto detalle quiere ver la textura del terreno.
- </notification>
-
- <notification
-
- name="WLSavePresetAlert"
- >
-¿Quiere sobrescribir la preselección guardada?
- <usetemplate
- name="okcancelbuttons"
- notext="No"
- yestext="Sí"/>
- </notification>
-
- <notification
-
- name="WLDeletePresetAlert"
- >
-¿Quiere borrar [SKY]?
- <usetemplate
- name="okcancelbuttons"
- notext="No"
- yestext="Sí"/>
- </notification>
-
- <notification
-
- name="WLNoEditDefault"
- >
-No puede editar ni borrar una preselección por defecto.
- </notification>
-
- <notification
-
- name="WLMissingSky"
- >
-Este archivo del ciclo de un día se refiere a un archivo perdido de cielo: [SKY].
- </notification>
-
- <notification
-
- name="PPSaveEffectAlert"
- >
-Ya existe un efecto de procesamiento. ¿Desea sobreescribirlo?
- <usetemplate
- name="okcancelbuttons"
- notext="No"
- yestext="Sí"/>
- </notification>
-
- <notification
-
- name="HelpEditSky"
- >
-Edite los deslizables del WindLight para crear y guardar configuraciones del cielo.
- </notification>
-
- <notification
-
- name="HelpEditDayCycle"
- >
-Define cómo se verán los cielos a lo largo del día.
- </notification>
-
- <notification
-
- name="EnvSettingsHelpButton"
- >
-Estas configuraciones ajustan la forma en que usted ve el medio ambiente localmente, en su ordenador. Su tarjeta gráfica debe admitir shaders de la atmósfera (&apos;atmospheric shaders&apos;) para poder acceder a esta configuración.
-
-Ajuste el deslizable &quot;Duración de un día&quot; para cambiar localmente, en su visor, las etapas del día.
-
-Ajuste el deslizable &quot;Nubosidad&quot; para controlar cuántas nubes cubren el cielo.
-
-Pulse un color en el selector de &quot;Color del agua&quot; para cambiar el color de la misma.
-
-Ajuste el deslizable &quot;Claridad del agua&quot; para controlar el nivel de claridad del agua bajo la superficie.
-
-Pulse &quot;Usar el horario del estado&quot; para devolver los valores del día al tiempo actual de la región y seguir a partir de él.
-
-Pulse &quot;Cielo avanzado&quot; para abrir un editor con configuraciones avanzadas para el cielo.
-
-Pulse &quot;Agua avanzada&quot; para abrir un editor con configuraciones avanzadas para el agua.
- </notification>
-
- <notification
-
- name="HelpDayCycle"
- >
-El Editor del ciclo del día le permite controlar el cielo de Second Life durante el ciclo día/noche. Este es el ciclo que usa el deslizable Duración de un día del Editor del entorno.
-
-El Editor del ciclo del día trabaja configurando fotogramas clave (&apos;keyframes&apos;): nodos (representados por los puntos grises en la línea del tiempo) cada uno de los cuales tiene asociado un Cielo definido. Según progresa la Duración de un día, el WindLight realiza la &quot;animación&quot; del cielo interpolándose entre esos fotogramas clave.
-
-La flecha amarilla sobre la línea del tiempo representa lo que usted ve actualmente, basándose en la Duración de un día. Púlsela y muévela para ver cómo cambia la animación del día. Puede añadir o borrar fotogramas clave pulsando los botones Añadir un punto o Quitar un punto, situados a la derecha de la línea del tiempo.
-
-Puede establecer la posición en el tiempo de cualquier fotograma clave moviéndolo a lo largo de la línea del tiempo, o configurando manualmente su valor por su valor manualmente en el recuadro Configuración del fotograma clave. También en ese recuadro podrá asociar el fotograma clave a un modelo predefinido de WindLight.
-
-La Duración del ciclo establece la duración total de un &quot;día&quot;. Marcar un valor bajo (por ejemplo, 2 min.) hará que las 24 horas de su línea del tiempo se animen ¡en sólo dos minutos reales! Una vez que esté satisfecho con su ciclo de la línea del tiempo y los fotogramas clave, utilice los botones Probar y Parar para obtener una vista previa de los resultados. Recuerde que también puede mover la flecha amarilla de encima de la línea del tiempo para ver el ciclo de la animación. El botón Usar el horario del estado sincronizará su ciclo de duración de un día con el ciclo del estado.
-
-Cuando todo esté a su gusto, puede guardar esos datos y cargarlos luego usando los botones Guardar este tipo de día y Cargar un tipo de día. Note que, por el momento, sólo podemos permitir un ciclo de un día.
- </notification>
-
- <notification
-
- name="HelpBlueHorizon"
- >
-Use los deslizables Rojo/Verde/Azul (RVA) para ajustar el color del cielo. Puede usar el deslizable de Intensidad (I) para moverlos al unísono.
- </notification>
-
- <notification
-
- name="HelpHazeHorizon"
- >
-La Cantidad de bruma es uno de los parámetros más útiles para ajustar el nivel de luz de la escena. Es eficaz para simular muchos ajustes de la exposición, como la claridad en un ambiente nublado o de nevisca, o las tonalidades del una flor Iris aún cerrada.
- </notification>
-
- <notification
-
- name="HelpBlueDensity"
- >
-La Saturación afecta a la densidad global de la saturación de color del cielo y la niebla. Si mueve el deslizable Intensidad (I) a la derecha, los colores serán más vivos y brillantes. Si lo mueve a la izquierda, se irán decolorando hasta llegar incluso al blanco y negro. Si desea ajustar el balance de color del cielo, puede controlar la saturación de cada elemento usando el deslizable Rojo/Verde/Azul (RVA).
- </notification>
-
- <notification
-
- name="HelpHazeDensity"
- >
-La Densidad de la bruma controla lo sombrío de la atmósfera, su neblina. Es eficaz para simular escenas con mucho humo o contaminantes, y también para simular niebla y llovizna.
- </notification>
-
- <notification
-
- name="HelpDensityMult"
- >
-La Densidad puede usarse para definir globalmente la &apos;pesadez&apos; de la atmósfera. Los ajustes bajos dan sensación de un &quot;aire limpio&quot;, y los altos de pesadez, de esmog.
- </notification>
-
- <notification
-
- name="HelpDistanceMult"
- >
-Ajusta a qué distancia se percibe el WindLight. El valor cero desactiva la influencia del WindLight en el terreno y los objetos. Los valores superiores a 1 simulan mayores distancias a las que afectan los efectos atmosféricos
- </notification>
-
- <notification
-
- name="HelpMaxAltitude"
- >
-La Altitud máx. ajusta hasta que altura el WindLight realiza sus cálculos para computar la iluminación atmosférica. En las últimas horas del día, es útil para ajustar la &quot;profundidad&quot; a la que aparece el Sol.
- </notification>
-
- <notification
-
- name="HelpSunlightColor"
- >
-Ajusta en la escena la intensidad y el color de las luces directas.
- </notification>
-
- <notification
-
- name="HelpSunAmbient"
- >
-Ajusta en la escena la intensidad y el color de la luz ambiental.
- </notification>
-
- <notification
-
- name="HelpSunGlow"
- >
-El deslizable Tamaño controla el tamaño del Sol.
-El deslizable Visión controla cómo se ve de borroso el Sol en el cielo.
- </notification>
-
- <notification
-
- name="HelpSceneGamma"
- >
-Ajusta la distribución de luz y oscuridad en la pantalla.
- </notification>
-
- <notification
-
- name="HelpStarBrightness"
- >
-Ajusta el brillo de las estrellas en el cielo.
- </notification>
-
- <notification
-
- name="HelpTimeOfDay"
- >
-Controla la posición del Sol en el cielo. Es parecido a la elevación.
- </notification>
-
- <notification
-
- name="HelpEastAngle"
- >
-Controla la posición del Sol en el cielo. Es parecido al acimut.
- </notification>
-
- <notification
-
- name="HelpCloudColor"
- >
-Edita el color de las nubes. En general, es recomendable mantenerlas blanquecinas.
-Pero, vaya, diviértase si quiere.
- </notification>
-
- <notification
-
- name="HelpCloudDetail"
- >
-Controla el detalle de las capas superiores de la imagen en la imagen principal de las nubes. X e Y controlan su posición. D (Densidad) controla la densidad o la fracturación con que aparecen las nubes.
- </notification>
-
- <notification
-
- name="HelpCloudDensity"
- >
-Le permite controlar la posición de las nubes con los deslizables X e Y, y su desnidad con el deslizable D.
- </notification>
-
- <notification
-
- name="HelpCloudCoverage"
- >
-Controla cuánto cubren el cielo las nubes.
- </notification>
-
- <notification
-
- name="HelpCloudScale"
- >
-Controla el tamaño de la imagen de las nubes en la bóveda celeste.
- </notification>
-
- <notification
-
- name="HelpCloudScrollX"
- >
-Controla la velocidad de las nubes al moverse en la dirección del eje X.
- </notification>
-
- <notification
-
- name="HelpCloudScrollY"
- >
-Controla la velocidad de las nubes al moverse en la dirección del eje Y.
- </notification>
-
- <notification
-
- name="HelpClassicClouds"
- >
-Marque esta casilla para activar la aparición de las nubes clásicas de Second Life junto a las nubes del WindLight.
- </notification>
-
- <notification
-
- name="HelpWaterFogColor"
- >
-Elije el color del agua bajo la superficie.
- </notification>
-
- <notification
-
- name="HelpWaterFogDensity"
- >
-Controla la densidad de la claridad del agua, y a qué distancia puede verse bajo ella.
- </notification>
-
- <notification
-
- name="HelpUnderWaterFogMod"
- >
-Modifica el efecto de Transparencia para controlar cuán lejos su avatar puede ver bajo el agua.
- </notification>
-
- <notification
-
- name="HelpWaterGlow"
- >
-Controla la cantidad de brillo de la superficie del agua.
- </notification>
-
- <notification
-
- name="HelpWaterNormalScale"
- >
-Controla el tamaño de las tres ondulaciones que componen el agua.
- </notification>
-
- <notification
-
- name="HelpWaterFresnelScale"
- >
-Controla cuánta luz se refleja desde diferentes ángulos.
- </notification>
-
- <notification
-
- name="HelpWaterFresnelOffset"
- >
-Controla cuánta intensidad de luz se refleja.
- </notification>
-
- <notification
-
- name="HelpWaterScaleAbove"
- >
-Controla la cantidad de luz refractada mirando la superficie del agua desde arriba.
- </notification>
-
- <notification
-
- name="HelpWaterScaleBelow"
- >
-Controla la cantidad de luz refractada mirando la superficie del agua desde debajo.
- </notification>
-
- <notification
-
- name="HelpWaterBlurMultiplier"
- >
-Controla cómo se mezclan las ondas y los reflejos.
- </notification>
-
- <notification
-
- name="HelpWaterNormalMap"
- >
-Controla cuál es la capa de &apos;vista normal&apos; del agua, para determinar las reflexiones/refracciones.
- </notification>
-
- <notification
-
- name="HelpWaterWave1"
- >
-Controla hacia adónde y a qué velocidad se mueve en los ejes X e Y la versión en tamaño grande de la &apos;vista normal&apos;.
- </notification>
-
- <notification
-
- name="HelpWaterWave2"
- >
-Controla hacia adónde y a qué velocidad se mueve en los ejes X e Y la versión en tamaño pequeño de la &apos;vista normal&apos;.
- </notification>
-
- <notification
-
- name="NewSkyPreset"
- >
-Dame un nombre para el cielo nuevo.
- <form name="form">
- <input name="message" type="text">
-Preselección nueva
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- name="ExistsSkyPresetAlert"
- >
-¡Esa preselección ya existe!
- </notification>
-
- <notification
-
- name="NewWaterPreset"
- >
-Dame un nombre para la nueva preselección de agua.
- <form name="form">
- <input name="message" type="text">
-Preselección nueva
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- name="ExistsWaterPresetAlert"
- >
-¡Esa preselección ya existe!
- </notification>
-
- <notification
-
- name="WaterNoEditDefault"
- >
-No puede editar o borrar una preselección por defecto.
- </notification>
-
- <notification
-
- name="ChatterBoxSessionStartError"
- >
-No se puede empezar una nueva sesión de chat con [RECIPIENT].
-[REASON]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ChatterBoxSessionEventError"
- >
-[EVENT]
-[REASON]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ForceCloseChatterBoxSession"
- >
-Debe cerrarse su sesión de chat con [NAME].
-[REASON]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="Cannot_Purchase_an_Attachment"
- >
-No se pueden comprar los ítems que aún forman parte de un objeto anexado.
- </notification>
-
- <notification
-
- label="Acerca de las solicitudes de autorización de débito"
- name="DebitPermissionDetails"
- >
-Al admitir esta petición, le da permiso a un script para que coja dólares Linden (L$) de su cuenta. Para revocar este permiso, el propietario del objeto debe eliminarlo o reiniciar ese script del objeto.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="AutoWearNewClothing"
- >
-¿Quiere vestirse automáticamente el ítem de ropa nueva que ha creado?
- <usetemplate
- ignoretext="Vestirme automáticamente la ropa nueva"
- name="okcancelignore"
- notext="No"
- yestext="Sí"/>
- </notification>
-
- <notification
-
- name="NotAgeVerified"
- >
-Para acceder a esta parcela, se debe haber verificado su edad.
-¿Quiere visitar la web de Second Life para verificar su edad?
-
-[_URL]
- <url option="0" name="url">
-
- https://secondlife.com/account/verification.php
- </url>
- <usetemplate
- ignoretext="Advertir de la falta de la verificación de edad"
- name="okcancelignore"
- notext="No"
- yestext="Sí"/>
- </notification>
-
- <notification
-
- name="Cannot enter parcel: no payment info on file"
- >
-Antes de que pueda acceder a esta parcela, se requiere que usted tenga archivada su información de pago.
-¿Quiere visitar la web de Second Life para actualizar esto?
-
-[_URL]
- <url option="0" name="url">
-
- https://secondlife.com/account/index.php?lang=es
- </url>
- <usetemplate
- ignoretext="Advertir de la falta de información de pago"
- name="okcancelignore"
- notext="No"
- yestext="Sí"/>
- </notification>
-
- <notification
-
- name="MissingString"
- >
-La cadena [STRING_NAME] Ha desaparecido de strings.xml
- </notification>
-
- <notification
-
- name="SystemMessageTip"
- >
-[MESSAGE]
- </notification>
-
- <notification
-
- name="Cancelled"
- >
-Cancelado
- </notification>
-
- <notification
-
- name="CancelledSit"
- >
-Cancelado el sentarse
- </notification>
-
- <notification
-
- name="CancelledAttach"
- >
-Candelado el anexar
- </notification>
-
- <notification
-
- name="ReplacedMissingWearable"
- >
-Reemplazadas las ropas o partes del cuerpo perdidas con sus equivalentes por defecto.
- </notification>
-
- <notification
-
- name="GroupNotice"
- >
-Asunto: [SUBJECT], Mensaje: [MESSAGE]
- </notification>
-
- <notification
-
- name="FriendOnline"
- >
-[FIRST] [LAST] está conectado
- </notification>
-
- <notification
-
- name="FriendOffline"
- >
-[FIRST] [LAST] no está conectado
- </notification>
-
- <notification
-
- name="AddSelfFriend"
- >
-No se puede añadir como amigo a usted mismo.
- </notification>
-
- <notification
-
- name="UploadingAuctionSnapshot"
- >
-Subiendo fotos del mundo y del sitio web...
-(tardará unos 5 minutos).
- </notification>
-
- <notification
-
- name="UploadPayment"
- >
-Ha pagado [AMOUNT] LS por la subida.
- </notification>
-
- <notification
-
- name="UploadWebSnapshotDone"
- >
-Completada la subida de la foto del sitio web.
- </notification>
-
- <notification
-
- name="UploadSnapshotDone"
- >
-Completada la subida de la foto del mundo.
- </notification>
-
- <notification
-
- name="TerrainDownloaded"
- >
-Se ha descargado Terrain.raw
- </notification>
-
- <notification
-
- name="GestureMissing"
- >
-El gesto [NAME] ha desaparecido de la base de datos.
- </notification>
-
- <notification
-
- name="UnableToLoadGesture"
- >
-No se ha podido cargar el gesto [NAME].
-Por favor, vuelva a intentarlo.
- </notification>
-
- <notification
-
- name="LandmarkMissing"
- >
-El hito ha desaparecido de la base de datos.
- </notification>
-
- <notification
-
- name="UnableToLoadLandmark"
- >
-No se ha podido cargar el hito. Por favor, vuelva a intentarlo.
- </notification>
-
- <notification
-
- name="CapsKeyOn"
- >
-Tiene pulsada su tecla de bloqueo de mayúsculas, lo que influirá en cómo escriba la contraseña.
-Quizá quiera soltar esa tecla.
- </notification>
-
- <notification
-
- name="NotecardMissing"
- >
-La nota ha desaparecido de la base de datos.
- </notification>
-
- <notification
-
- name="NotecardNoPermissions"
- >
-No tiene permisos suficientes para ver la nota.
- </notification>
-
- <notification
-
- name="RezItemNoPermissions"
- >
-No tiene permisos suficientes para renderizar el objeto.
- </notification>
-
- <notification
-
- name="UnableToLoadNotecard"
- >
-No se ha podido cargar la nota.
-Por favor, vuelva a intentarlo.
- </notification>
-
- <notification
-
- name="ScriptMissing"
- >
-El script ha desaparecido de la base de datos.
- </notification>
-
- <notification
-
- name="ScriptNoPermissions"
- >
-No tiene permisos suficientes para ver el script.
- </notification>
-
- <notification
-
- name="UnableToLoadScript"
- >
-No se ha podido cargar el script. Por favor, vuelva a intentarlo.
- </notification>
-
- <notification
-
- name="IncompleteInventory"
- >
-Los contenidos que está usted ofreciendo aún no están disponibles. Por favor, vuelva a ofrecerlos en un minuto.
- </notification>
-
- <notification
-
- name="CannotModifyProtectedCategories"
- >
-No puede modificar categorías que están protegidas.
- </notification>
-
- <notification
-
- name="CannotRemoveProtectedCategories"
- >
-No puede quitar categorías que están protegidas.
- </notification>
-
- <notification
-
- name="OfferedCard"
- >
-Ha ofrecido una tarjeta de visita a [FIRST] [LAST]
- </notification>
-
- <notification
-
- name="UnableToBuyWhileDownloading"
- >
-No se puede comprar un objeto mientras se descargan sus datos.
-Por favor, vuelva a intentarlo.
- </notification>
-
- <notification
-
- name="UnableToLinkWhileDownloading"
- >
-No se puede enlazar un objeto mientras se descargan sus datos.
-Por favor, vuelva a intentarlo.
- </notification>
-
- <notification
-
- name="CannotBuyObjectsFromDifferentOwners"
- >
-No puede comprar a la vez objetos de diferentes propietarios.
-Por favor, elija sólo uno.
- </notification>
-
- <notification
-
- name="ObjectNotForSale"
- >
-El objeto no aparece como puesto a la venta.
- </notification>
-
- <notification
-
- name="EnteringGodMode"
- >
-Entrando en el modo administrativo, nivel [LEVEL]
- </notification>
-
- <notification
-
- name="LeavingGodMode"
- >
-Saliendo del modo administrativo, nivel [LEVEL]
- </notification>
-
- <notification
-
- name="CopyFailed"
- >
-No se ha hecho la copia porque usted no tiene permiso para hacerla
- </notification>
-
- <notification
-
- name="InventoryAccepted"
- >
-[NAME] ha aceptado su oferta del inventario.
- </notification>
-
- <notification
-
- name="InventoryDeclined"
- >
-[NAME] ha rehusado su oferta del inventario.
- </notification>
-
- <notification
-
- name="ObjectMessage"
- >
-[NAME]: [MESSAGE]
- </notification>
-
- <notification
-
- name="CallingCardAccepted"
- >
-Se ha aceptado su tarjeta de visita.
- </notification>
-
- <notification
-
- name="CallingCardDeclined"
- >
-Se ha rehusado su tarjeta de visita.
- </notification>
-
- <notification
-
- name="TeleportToLandmark"
- >
-Ahora que ha llegado a mainland (los continentes), puede teleportarse a localizaciones como &apos;[NAME]&apos; pulsando el botón Inventario de la esquina inferior derecha de su pantalla, y, después, seleccionando la carpeta Hitos.
-Pulse dos veces en el hito y, luego, pulse en Teleportar para viajar hasta allí.
- </notification>
-
- <notification
-
- name="TeleportToPerson"
- >
-Ahora que ha llegado a mainland (los continentes), puede contactar con residentes como &apos;[NAME]&apos; pulsando el botón Inventario de la esquina inferior derecha de su pantalla, y, después, seleccionando la carpeta Tarjetas de visita.
-Pulse dos veces en la tarjeta, pulse en Mensaje Instantáneo, y escriba un mensaje.
- </notification>
-
- <notification
-
- name="CantSelectLandFromMultipleRegions"
- >
-No puede seleccionar un terreno que cruce las fronteras entre servidores.
-Inténtelo seleccionando un trozo más pequeño de terreno.
- </notification>
-
- <notification
-
- name="GroupVote"
- >
-[NAME] ha propuesto votar:
-[MESSAGE]
- <form name="form">
- <button
-
- name="VoteNow"
- text="Votar ahora"/>
- <button
-
- name="Later"
- text="Más tarde"/>
- </form>
- </notification>
-
- <notification
-
- name="SystemMessage"
- >
-[MESSAGE]
- </notification>
-
- <notification
-
- name="EventNotification"
- >
-Notificación de un evento:
-
-[NAME]
-[DATE]
- <form name="form">
- <button
-
- name="Teleport"
- text="Teleportar"/>
- <button
-
- name="Description"
- text="Descripción"/>
- <button
-
- name="Cancel"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- name="TransferObjectsHighlighted"
- >
-En estos momentos, están realzados todos los objetos de esta parcela que serán transferidos al comprador de la misma.
-
-* No están realzados los árboles y hierbas que se transferirán.
- <form name="form">
- <button
-
- name="Done"
- text="Hecho"/>
- </form>
- </notification>
-
- <notification
-
- name="DeactivatedGesturesTrigger"
- >
-Desactivados los gestos que tienen el mismo botón:
-[NAMES]
- </notification>
-
- <notification
-
- name="NoQuickTime"
- >
-No se ve como instalado en su sistema el software QuickTime de Apple.
-Si quiere ver por streaming elementos multimedia en las parcelas que los tengan, debe ir al sitio web de QuickTime (http://www.apple.com/quicktime) e instalar el QuickTime Player.
- </notification>
-
- <notification
-
- name="OwnedObjectsReturned"
- >
-Se han devuelto a su inventario los objetos de los que usted era propietario en la parcela seleccionada.
- </notification>
-
- <notification
-
- name="OtherObjectsReturned"
- >
-Se han devuelto a su inventario los objetos de los que usted era propietario en la parcela propiedad de [FIRST] [LAST].
- </notification>
-
- <notification
-
- name="OtherObjectsReturned2"
- >
-Se han devuelto a su propietario los objetos que, en la parcela seleccionada, eran propiedad del residente &apos;[NAME]&apos;.
- </notification>
-
- <notification
-
- name="GroupObjectsReturned"
- >
-Se han devuelto a los inventarios de sus propietarios los objetos que estaban compartidos con el grupo [GROUPNAME] en la parcela seleccionada.
-Los objetos transferibles que se transfirieron al grupo se han devuelto a sus propietarios anteriores.
-Los objetos no transferibles que se transfirieron al grupo han sido borrados.
- </notification>
-
- <notification
-
- name="UnOwnedObjectsReturned"
- >
-Se han devuelto a sus propietarios los objetos de los que usted NO era propietario en la parcela seleccionada.
- </notification>
-
- <notification
-
- name="NotSafe"
- >
-Este es un terreno con el daño autorizado (&apos;no seguro&apos;).
-Aquí puede ser herido. Si muere, será teleportado a su Base.
- </notification>
-
- <notification
-
- name="NoFly"
- >
-En este terreno no se permite volar (&apos;no volar&apos;).
-Aquí no debe volar.
- </notification>
-
- <notification
-
- name="PushRestricted"
- >
-Este terreno es &apos;Sin empujones&apos;.
-No puede empujar a otros a menos que sea el propietario del terreno.
- </notification>
-
- <notification
-
- name="NoVoice"
- >
-Este terreno tiene desactivada la voz.
- </notification>
-
- <notification
-
- name="NoBuild"
- >
-Este terreno tiene desactivado el construir (&apos;no construir&apos;).
-Aquí no puede crear objetos.
- </notification>
-
- <notification
-
- name="ScriptsStopped"
- >
-Un administrador ha detenido temporalmente los scripts en esta región.
- </notification>
-
- <notification
-
- name="ScriptsNotRunning"
- >
-En esta región no se está ejecutando ningún script.
- </notification>
-
- <notification
-
- name="NoOutsideScripts"
- >
-Esta región tiene desactivados los scripts de otros
-(&apos;no scripts de otros&apos;).
-No se ejecutará ningún script que no pertenezca al propietario del terreno.
- </notification>
-
- <notification
-
- name="ClaimPublicLand"
- >
-Sólo puede reclamar terreno público en la región en que está usted.
- </notification>
-
- <notification
-
- name="ObjectGiveItem"
- >
-Un objeto llamado [OBJECTFROMNAME], propiedad de [FIRST] [LAST], le ha dado un/a [OBJECTTYPE] de nombre [OBJECTNAME].
- <form name="form">
- <button
-
- name="Keep"
- text="Guardar"/>
- <button
-
- name="Discard"
- text="Descartar"/>
- <button
-
- name="Mute"
- text="Ignorar"/>
- </form>
- </notification>
-
- <notification
-
- name="ObjectGiveItemUnknownUser"
- >
-Un objeto llamado [OBJECTFROMNAME], propiedad de (un usuario desconocido), le ha dado un/a [OBJECTTYPE] de nombre [OBJECTNAME].
- <form name="form">
- <button
-
- name="Keep"
- text="Guardar"/>
- <button
-
- name="Discard"
- text="Descartar"/>
- <button
-
- name="Mute"
- text="Ignorar"/>
- </form>
- </notification>
-
- <notification
-
- name="UserGiveItem"
- >
-[NAME] le ha dado un/a [OBJECTTYPE] de nombre &apos;[OBJECTNAME]&apos;.
- <form name="form">
- <button
-
- name="Keep"
- text="Guardar"/>
- <button
-
- name="Discard"
- text="Descartar"/>
- <button
-
- name="Mute"
- text="Ignorar"/>
- </form>
- </notification>
-
- <notification
-
- name="GodMessage"
- >
-[NAME]
-[MESSAGE]
- </notification>
-
- <notification
-
- name="JoinGroup"
- >
-[MESSAGE]
- <form name="form">
- <button
-
- name="Join"
- text="Entrar"/>
- <button
-
- name="Decline"
- text="Rehusar"/>
- <button
-
- name="Info"
- text="Información"/>
- </form>
- </notification>
-
- <notification
-
- name="TeleportOffered"
- >
-[NAME] se ha ofrecido a teleportarle hasta su posición:
-
-[MESSAGE]
- <form name="form">
- <button
-
- name="Teleport"
- text="Teleportar"/>
- <button
-
- name="Cancel"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- name="GotoURL"
- >
-[MESSAGE]
-[URL]
- <form name="form">
- <button
-
- name="Later"
- text="Más tarde"/>
- <button
-
- name="GoNow..."
- text="Ir ahora..."/>
- </form>
- </notification>
-
- <notification
-
- name="OfferFriendship"
- >
-[NAME] le está ofreciendo amistad.
-
-[MESSAGE]
-
-(Por defecto, usted podrá ver si están conectados los demás).
- <form name="form">
- <button
-
- name="Accept"
- text="Aceptar"/>
- <button
-
- name="Decline"
- text="Rehusar"/>
- </form>
- </notification>
-
- <notification
-
- name="OfferFriendshipNoMessage"
- >
-[NAME] le está ofreciendo amistad.
-
-(Por defecto, usted podrá ver si están conectados los demás).
- <form name="form">
- <button
-
- name="Accept"
- text="Aceptar"/>
- <button
-
- name="Decline"
- text="Rehusar"/>
- </form>
- </notification>
-
- <notification
-
- name="FriendshipAccepted"
- >
-[NAME] ha aceptado su oferta de amistad.
- </notification>
-
- <notification
-
- name="FriendshipDeclined"
- >
-[NAME] ha rehusado su oferta de amistad.
- </notification>
-
- <notification
-
- name="OfferCallingCard"
- >
-[FIRST] [LAST] le está ofreciendo su tarjeta de visita.
-Esto añadirá un ítem a su inventario para que pueda enviar rápidamente a este residente un MI.
- <form name="form">
- <button
-
- name="Accept"
- text="Aceptar"/>
- <button
-
- name="Decline"
- text="Rehusar"/>
- </form>
- </notification>
-
- <notification
-
- name="RegionRestartMinutes"
-
-
- >
-La región se reiniciará en [MINUTES] minutos.
-Si permanece en esta región, será desconectado.
- </notification>
-
- <notification
-
- name="RegionRestartSeconds"
-
-
- >
-La región se reiniciará en [SECONDS] segundos.
-Si permanece en esta región, será desconectado.
- </notification>
-
- <notification
-
- name="LoadWebPage"
- >
-¿Cargar la página web [URL]?
-
-[MESSAGE]
-
-Del objeto: [OBJECTNAME]; propiedad de: [NAME]?
- <form name="form">
- <button
-
- name="Gotopage"
- text="Ir a la página"/>
- <button
-
- name="Cancel"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- name="FailedToFindWearableUnnamed"
- >
-Búsqueda fallida de [TYPE] en la base de datos.
- </notification>
-
- <notification
-
- name="FailedToFindWearable"
- >
-Búsqueda fallida de [TYPE] de nombre [DESC] en la base de datos.
- </notification>
-
- <notification
-
- name="ScriptQuestion"
- >
-&apos;[OBJECTNAME]&apos;, un objeto propiedad de &apos;[NAME]&apos;, querría:
-
-[QUESTIONS]
-¿Está de acuerdo?
- <form name="form">
- <button
-
- name="Yes"
- text="Sí"/>
- <button
-
- name="No"
- text="No"/>
- <button
-
- name="Mute"
- text="Ignorar"/>
- </form>
- </notification>
-
- <notification
-
- name="ScriptQuestionCaution"
- >
-&apos;[OBJECTNAME]&apos;, un objeto propiedad de &apos;[NAME]&apos;, querría:
-
-[QUESTIONS]
-Si no confía en este objeto y su creador, debe denegar la solicitud. Para más información, pulse el botón Detalles.
-
-¿Autorizar esta petición?
- <form name="form">
- <button
-
- name="Grant"
- text="Autorizar"/>
- <button
-
- name="Deny"
- text="Denegar"/>
- <button
-
- name="Details"
- text="Detalles..."/>
- </form>
- </notification>
-
- <notification
-
- name="ScriptDialog"
- >
-&apos;[TITLE]&apos; de [FIRST] [LAST]
-[MESSAGE]
- <form name="form">
- <button
-
- name="Ignore"
- text="Ignorar"/>
- </form>
- </notification>
-
- <notification
-
- name="ScriptDialogGroup"
- >
-&apos;[TITLE]&apos; de [GROUPNAME]&apos;
-[MESSAGE]
- <form name="form">
- <button
-
- name="Ignore"
- text="Ignorar"/>
- </form>
- </notification>
-
- <notification
-
- name="FirstBalanceIncrease"
- >
-Ha recibido [AMOUNT] L$.
-Pueden darle L$ tanto objetos como otros usuarios.
-Su balance se muestra en la esquina superior derecha de la pantalla.
- </notification>
-
- <notification
-
- name="FirstBalanceDecrease"
- >
-Ha pagado [AMOUNT] L$.
-Su balance se muestra en la esquina superior derecha de la pantalla.
- </notification>
-
- <notification
-
- name="FirstSit"
- >
-Está sentado.
-Use las teclas del cursor (o AWSD) para cambiar el punto de vista.
-Pulde el botón &apos;Levantarse&apos; para ponerse de pie.
- </notification>
-
- <notification
-
- name="FirstMap"
- >
-Pulse el mapa y arrástrelo para desplazarlo.
-Púlselo dos veces para teleportarse.
-Use los controles de la derecha para encontrar sitios y mostrar diferentes fondos.
- </notification>
-
- <notification
-
- name="FirstBuild"
- >
-Usted puede construir objetos nuevos en algunas zonas de [SECOND_LIFE].
-Use las herramientas de arriba a la izquierda para construir, y pruebe a cambiar rápidamente entre ellas pulsando Ctrl o Alt.
-Pulse Esc para dejar de construir.
- </notification>
-
- <notification
-
- name="FirstLeftClickNoHit"
- >
-En algunos objetos concretos, al pulsarlos con el botón izquierdo del ratón interacciona con ellos.
-Si el puntero del ratón pasa a ser una mano puede interactuar con el objeto.
-El botón derecho del ratón siempre muestra un menú con cosas que usted puede hacer.
- </notification>
-
- <notification
-
- name="FirstTeleport"
- >
-Esta región no permite teleportarse de un punto a otro, por lo que ha sido llevado al Punto de Teleporte más cercano.
-Su destinado está señalado con una columna de luz roja.
-Siga la flecha roja hasta llegar a la columna, o pulse la flecha para hacerla desaparecer.
- </notification>
-
- <notification
-
- name="FirstOverrideKeys"
- >
-A partir de ahora, sus teclas de movimiento las gestiona un objeto.
-Pruebe las teclas del cursor o AWSD para ver qué hacen.
-Algunos objetos (las pistolas, por ejemplo) le pedirán que, para usarlos, entre usted en vista subjetiva. Pulse &apos;M&apos; para hacerlo.
- </notification>
-
- <notification
-
- name="FirstAppearance"
- >
-Está modificando su apariencia.
-Use las teclas del cursor para girar el punto de vista y hacer zoom.
-Cuando acabe, pulse &apos;Guardar todo&apos; para salvar su apariencia y salir del modificarla.
-Puede modificar su apariencia tantas veces como quiera.
- </notification>
-
- <notification
-
- name="FirstInventory"
- >
-Este es su inventario. Tiene objetos, notas, ropas, y otras cosas de su propiedad.
-* Para vestirse un objeto o un vestuario completo, arrástrelo hasta usted mismo.
-* Para colocar un objeto en el mundo, arrástrelo hasta el suelo.
-* Para leer una nota, pulse dos veces en ella.
- </notification>
-
- <notification
-
- name="FirstSandbox"
- >
-Esta es una región &apos;sandbox&apos; (zona de pruebas).
-Los objetos que construya aquí pueden ser eliminados cuando salga de esta zona, pues los sandbox se limpian regularmente. Por favor, tenga en cuenta la información que hay arriba de su pantalla junto al nombre de la región.
-
-Las regiones sandbox no son frecuentes, y están señalizadas.
- </notification>
-
- <notification
-
- name="FirstFlexible"
- >
-Este objeto es flexible.
-Los objetos flexibles no pueden ser materiales, y serán inmateriales hasta que se desmarque la casilla de flexibles.
- </notification>
-
- <notification
-
- name="FirstDebugMenus"
- >
-Ha activado el menú Avanzado.
-Contiene herramientas útiles para los desarrolladores que trabajan mejorando Second Life.
-Para pasar este menú a una ventana, pulse Ctrl-Alt-D. En un Mac, pulse Cmd-Opt-Shift-D.
- </notification>
-
- <notification
-
- name="FirstSculptedPrim"
- >
-Está editando un prim &apos;sculpted&apos;.
-Los prim sculpted requieren una textura especial para tomar forma.
-Puede encontrar ejemplos de texturas sculpted en la biblioteca del inventario.
- </notification>
-
- <notification
-
- name="FirstMedia"
- >
-Ha empezado a reproducir media. Puede hacer que los media se reproduzcan automáticamente en la pestaña Audio y Vídeo de la ventana de preferencias. Note que tal cosa puede suponer un riesgo de seguridad en los sitios multimedia en los que no confíe.
- </notification>
-
- <notification
-
- name="MaxListSelectMessage"
- >
-Puede seleccionar un máximo de [MAX_SELECT] ítems de esta lista.
- </notification>
-
- <notification
-
- name="VoiceInviteP2P"
- >
-[NAME] le está invitando a un chat de voz.
-Pulse Aceptar para coger la llamada o Rehusar para declinar la invitación. Pulse Ignorar para ignorar a quien llama.
- <form name="form">
- <button
-
- name="Accept"
- text="Aceptar"/>
- <button
-
- name="Decline"
- text="Rehusar"/>
- <button
-
- name="Mute"
- text="Ignorar"/>
- </form>
- </notification>
-
- <notification
-
- name="AutoUnmuteByIM"
- >
-[FIRST] [LAST], a quien ha enviado un mensaje instantáneo, ha dejado automáticamente de estar ignorado.
- </notification>
-
- <notification
-
- name="AutoUnmuteByMoney"
- >
-[FIRST] [LAST], a quien ha dado dinero, ha dejado automáticamente de estar ignorado.
- </notification>
-
- <notification
-
- name="AutoUnmuteByInventory"
- >
-[FIRST] [LAST], a quien ha ofrecido algo del inventario, ha dejado automáticamente de estar ignorado.
- </notification>
-
- <notification
-
- name="VoiceInviteGroup"
- >
-[NAME] ha empezado un chat de voz con el grupo [GROUP].
-Pulse Aceptar para coger la llamada o Rehusar para declinar la invitación. Pulse Ignorar para ignorar a quien llama.
- <form name="form">
- <button
-
- name="Accept"
- text="Aceptar"/>
- <button
-
- name="Decline"
- text="Rehusar"/>
- <button
-
- name="Mute"
- text="Ignorar"/>
- </form>
- </notification>
-
- <notification
-
- name="VoiceInviteAdHoc"
- >
-[NAME] ha empezado un chat de voz en multiconferencia.
-Pulse Aceptar para coger la llamada o Rehusar para declinar la invitación. Pulse Ignorar para ignorar a este usuario.
- <form name="form">
- <button
-
- name="Accept"
- text="Aceptar"/>
- <button
-
- name="Decline"
- text="Rehusar"/>
- <button
-
- name="Mute"
- text="Ignorar"/>
- </form>
- </notification>
-
- <notification
-
- name="InviteAdHoc"
- >
-[NAME] le está invitando a un chat en multiconferencia.
-Pulse Aceptar para entrar al chat o Rehusar para declinar la invitación. Pulse Ignorar para ignorar a este usuario.
- <form name="form">
- <button
-
- name="Accept"
- text="Aceptar"/>
- <button
-
- name="Decline"
- text="Rehusar"/>
- <button
-
- name="Mute"
- text="Ignorar"/>
- </form>
- </notification>
-
- <notification
-
- name="VoiceChannelFull"
- >
-El chat de voz al que está intentando entrar, [VOICE_CHANNEL_NAME], ha llegado a su capacidad máxima. Por favor, inténtelo más tarde.
- </notification>
-
- <notification
-
- name="ProximalVoiceChannelFull"
- >
-Lo sentimos. Este área ha llegado a su capacidad máxima de conversaciones por voz. Por favor, intente usar la voz en otra zona.
- </notification>
-
- <notification
-
- name="VoiceChannelDisconnected"
- >
-Ha sido desconectado del [VOICE_CHANNEL_NAME]. Va a ser reconectado al chat de voz del mundo.
- </notification>
-
- <notification
-
- name="VoiceChannelDisconnectedP2P"
- >
-[VOICE_CHANNEL_NAME] ha colgado la llamada. Usted va a ser reconectado al chat de voz del mundo.
- </notification>
-
- <notification
-
- name="P2PCallDeclined"
- >
-[VOICE_CHANNEL_NAME] ha rehusado su llamada. Usted va a ser reconectado al chat de voz del mundo.
- </notification>
-
- <notification
-
- name="P2PCallNoAnswer"
- >
-[VOICE_CHANNEL_NAME] no está disponible para coger su llamada. Usted va a ser reconectado al chat de voz del mundo.
- </notification>
-
- <notification
-
- name="VoiceChannelJoinFailed"
- >
-Fallo al conectar al [VOICE_CHANNEL_NAME]; por favor, inténtelo más tarde. Usted va a ser reconectado al chat de voz del mundo.
- </notification>
-
- <notification
-
- name="VoiceLoginRetry"
- >
-Estamos creando un canal de voz para usted. Se puede tardar hasta un minuto.
- </notification>
-
- <notification
-
- name="Cannot enter parcel: not a group member"
- >
-No puede entrar en esta parcela, no es miembro del grupo adecuado.
- </notification>
-
- <notification
-
- name="Cannot enter parcel: banned"
- >
-No puede entrar en esta parcela, se le ha prohibido el acceso.
- </notification>
-
- <notification
-
- name="Cannot enter parcel: not on access list"
- >
-No puede entrar en esta parcela, no está en la lista de acceso.
- </notification>
-
- <notification
-
- name="VoiceNotAllowed"
- >
-No tiene permiso para conectarse al chat de voz de [VOICE_CHANNEL_NAME].
- </notification>
-
- <notification
-
- name="VoiceCallGenericError"
- >
-Ha ocurrido un error intentando conectarle al [VOICE_CHANNEL_NAME]. Por favor, inténtelo más tarde.
- </notification>
-
- <notification
-
- name="ServerVersionChanged"
- >
-La región en la que ha entrado se ejecuta en un simulador con una versión diferente. Pulse este mensaje para ver más detalles.
- </notification>
-
- <notification
-
- name="UnableToOpenCommandURL"
- >
-No puede abrirse desde este navegador la URL que ha pulsado.
- </notification>
-
- <global name="UnsupportedCPU">
-- La velocidad de su CPU no cumple los requerimientos mínimos.
- </global>
-
- <global name="UnsupportedGLRequirements">
-Parece que no tiene los requerimientos de hardware apropiados para Second Life. Second Life requiere una tarjeta gráfica OpenGL que admita texturas múltiples (&apos;multitexture support&apos;). Si la tiene, compruebe que tiene los últimos drivers para su tarjeta gráfica, así como los últimos parches y &apos;service packs&apos; para su sistema operativo.
-
-Si los problemas persisten, por favor, acuda a: http://www.secondlife.com/support
- </global>
-
- <global name="UnsupportedCPUAmount">
-796
- </global>
-
- <global name="UnsupportedRAMAmount">
-510
- </global>
-
- <global name="UnsupportedGPU">
-- Su tarjeta gráfica no cumple los requerimientos mínimos.
- </global>
-
- <global name="UnsupportedRAM">
-- La memoria de su sistema no cumple los requerimientos mínimos.
- </global>
-
- <global name="PermYes">
-Sí
- </global>
-
- <global name="PermNo">
-No
- </global>
-</notifications>
-
+<?xml version="1.0" encoding="utf-8"?>
+<notifications>
+ <global name="skipnexttime">
+ No mostrarme esto otra vez
+ </global>
+ <global name="alwayschoose">
+ Elegir siempre esta opción
+ </global>
+ <template name="okbutton">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ </form>
+ </template>
+
+ <template name="okignore">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <ignore text="$ignoretext"/>
+ </form>
+ </template>
+
+ <template name="okcancelbuttons">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <button
+ name="Cancel"
+ text="$notext"/>
+ </form>
+ </template>
+
+ <template name="okcancelignore">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <button
+ name="Cancel"
+ text="$notext"/>
+ <ignore text="$ignoretext"/>
+ </form>
+ </template>
+
+ <template name="okhelpbuttons">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <button
+ name="Help"
+ text="$helptext"/>
+ </form>
+ </template>
+
+ <template name="yesnocancelbuttons">
+ <form>
+ <button
+ name="Yes"
+ text="$yestext"/>
+ <button
+ name="No"
+ text="$notext"/>
+ <button
+ name="Cancel"
+ text="$canceltext"/>
+ </form>
+ </template>
+ <notification functor="GenericAcknowledge" label="Mensaje de alerta desconocida" name="MissingAlert">
+ Su versión de Second Life no sabe cómo mostrar el mensaje de alerta que acaba de recibir.
+
+Detalles del error: no se ha encontrado en notifications.xml la alerta llamada &apos;[_NAME]&apos;.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="FloaterNotFound">
+ Error: no se pudieron encontrar estos controles:
+
+[CONTROLS]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="TutorialNotFound">
+ Actualmente, no hay un tutorial disponible.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="GenericAlert">
+ [MESSAGE]
+ </notification>
+ <notification name="GenericAlertYesCancel">
+ [MESSAGE]
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Sí"/>
+ </notification>
+ <notification name="BadInstallation">
+ Ha habido un error al actualizar Second Life. Por favor, descargue la última versión desde secondlife.com.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="LoginFailedNoNetwork">
+ Error de red: no se ha podido conectar.
+&apos;[DIAGNOSTIC]&apos;
+Por favor, revise su conexión a internet.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="MessageTemplateNotFound">
+ No se ha encontrado la plantilla de mensaje [PATH].
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="WearableSave">
+ ¿Guardar los cambios en las ropas o partes del cuerpo actuales?
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="No guardarlos" yestext="Guardarlos"/>
+ </notification>
+ <notification name="CompileQueueSaveText">
+ Hubo un problema al subir el texto de un script por la siguiente razón: [REASON]. Por favor, inténtelo más tarde.
+ </notification>
+ <notification name="CompileQueueSaveBytecode">
+ Hubo un problema al subir el script compilado por la siguiente razón: [REASON]. Por favor, inténtelo más tarde.
+ </notification>
+ <notification name="WriteAnimationFail">
+ Hubo un problema al escribir los datos de la animación. Por favor, inténtelo más tarde.
+ </notification>
+ <notification name="UploadAuctionSnapshotFail">
+ Hubo un problema al subir la foto de la subasta por la siguiente razón: [REASON]
+ </notification>
+ <notification name="UnableToViewContentsMoreThanOne">
+ No se puede ver a la vez los contenidos de más de un ítem. Por favor, elija un solo objeto y vuelva a intentarlo.
+ </notification>
+ <notification name="SaveClothingBodyChanges">
+ ¿Guardar todos los cambios en la ropa y partes del cuerpo?
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="No guardarlos" yestext="Guardarlos todos"/>
+ </notification>
+ <notification name="GrantModifyRights">
+ Al conceder derechos de modificación a otro residente le autoriza a cambiar, borrar, o coger CUALQUIER objeto que usted tenga en el mundo. Sea MUY cuidadoso dando este permiso. ¿Quiere conceder derechos de modificación a [FIRST_NAME] [LAST_NAME]?
+ <usetemplate name="okcancelbuttons" notext="No" yestext="Sí"/>
+ </notification>
+ <notification name="GrantModifyRightsMultiple">
+ Al conceder derechos de modificación a otros residentes les autoriza a cambiar, borrar, o coger CUALQUIER objeto que usted tenga en el mundo. Sea MUY cuidadoso dando este permiso. ¿Quiere conceder derechos de modificación a los residentes seleccionados?
+ <usetemplate name="okcancelbuttons" notext="No" yestext="Sí"/>
+ </notification>
+ <notification name="RevokeModifyRights">
+ ¿Quiere revocar los derechos de modificación a [FIRST_NAME] [LAST_NAME]?
+ <usetemplate name="okcancelbuttons" notext="No" yestext="Sí"/>
+ </notification>
+ <notification name="RevokeModifyRightsMultiple">
+ ¿Quiere revocar los derechos de modificación a los residentes seleccionados?
+ <usetemplate name="okcancelbuttons" notext="No" yestext="Sí"/>
+ </notification>
+ <notification name="UnableToCreateGroup">
+ No se ha podido crear el grupo.
+[MESSAGE]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="PanelGroupApply">
+ [NEEDS_APPLY_MESSAGE]
+[WANT_APPLY_MESSAGE]
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="Ignorar los cambios" yestext="Aplicar los cambios"/>
+ </notification>
+ <notification name="MustSpecifyGroupNoticeSubject">
+ Para enviar un aviso de grupo debe especificar un asunto.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="AddGroupOwnerWarning">
+ Va a añadir miembros al rol de [ROLE_NAME].
+No podrá removérseles de ese rol, sino que deberán renunciar a él por sí mismos.
+¿Está seguro de que quiere seguir?
+ <usetemplate ignoretext="Cuando se añaden miembros del grupo al rol de propietario" name="okcancelignore" notext="No" yestext="Sí"/>
+ </notification>
+ <notification name="AssignDangerousActionWarning">
+ Va a añadir la capacidad &apos;[ACTION_NAME]&apos; al rol &apos;[ROLE_NAME]&apos;.
+
+ *ATENCIÓN*
+ Todos los miembros con esta capacidad podrán asignarse a sí mismos -y a otros miembros- roles con mayores poderes de los que actualmente tienen. Potencialmente, podrían elevarse hasta poderes cercanos a los del propietario. Asegúrese de lo que está haciendo antes de otorgar esta capacidad.
+¿Añadir esta capacidad a &apos;[ROLE_NAME]&apos;?
+ <usetemplate name="okcancelbuttons" notext="No" yestext="Sí"/>
+ </notification>
+ <notification name="AssignDangerousAbilityWarning">
+ Va a añadir la capacidad &apos;[ACTION_NAME]&apos; al rol &apos;[ROLE_NAME]&apos;.
+
+ *ATENCIÓN*
+ Todos los miembros con esta capacidad podrán asignarse a sí mismos -y a otros miembros- todas las capacidades, elevándose hasta poderes cercanos a los del propietario.
+¿Añadir esta capacidad a &apos;[ROLE_NAME]&apos;?
+ <usetemplate name="okcancelbuttons" notext="No" yestext="Sí"/>
+ </notification>
+ <notification name="ClickPublishHelpLand">
+ Seleccionar &quot;Publicar en la web&quot;
+Marcando este ítem, se mostrará:
+- esta parcela en los resultados de la búsqueda
+- los objetos públicos de esta parcela
+- esta parcela en la búsqueda de la web
+ </notification>
+ <notification name="ClickSoundHelpLand">
+ Los media y la música sólo pueden disfrutarse dentro de la parcela. Según el nivel de calificación de los residentes, las opciones de sonido y de voz pueden ceñirse a la parcela u oírse fuera de ella. ¿Quiere ir a la Base de Conocimientos para aprender más sobre cómo configurar estas opciones?
+ <url name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=5046
+ </url>
+ <usetemplate
+ name="okcancelbuttons"
+ yestext="Ir a la Base de Conocimientos"
+ notext="Cerrar" />
+ </notification>
+ <notification name="ClickSearchHelpAll">
+ Los resultados de la búsqueda se organizan según la pestaña en que esté, su nivel de calificación, la categoría elegida, y otros factores. Para más detalles, vea, por favor, la Base de Conocimientos.
+ <url name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=4722
+ </url>
+ <usetemplate
+ name="okcancelbuttons"
+ yestext="Ir a la Base de Conocimientos"
+ notext="Cerrar" />
+ </notification>
+ <notification name="ClickPublishHelpLandDisabled">
+ No puede hacer que esta parcela aparezca en la búsqueda, porque está situada en una región que lo prohíbe.
+ </notification>
+ <notification name="ClickPublishHelpAvatar">
+ Al seleccionar &quot;Mostrar en Buscar&quot; se mostrará:
+- mi perfil en los resultados de la búsqueda
+- un enlace a mi perfil en las páginas públicas de grupo
+ </notification>
+ <notification name="ClickPartnerHelpAvatar">
+ Puede proponérselo a otro residente o disolver su relación con un/a compañero/a en el sitio web de [SECOND_LIFE].
+
+¿Ir al sitio web de Second Life para tener más información sobre este asunto?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Ir a la página"/>
+ </notification>
+ <notification name="ClickUploadHelpPermissions">
+ Sus permisos por defecto no funcionarán en regiones antiguas.
+ </notification>
+ <notification name="ClickWebProfileHelpAvatar">
+ Si este residente ha indicado una URL para mostrar un perfil en la web, usted puede:
+ * Pulsar &apos;Cargar&apos; para ver la página en esta pestaña web.
+ * Pulsar Cargar &gt; &apos;En un navegador externo&apos; para ver la página en su navegador por defecto.
+ * Pulsar Cargar &gt; &apos;URL Inicio&apos; para volver al perfil en la web de este residente si usted ha estado navegando por otros sitios.
+
+Cuando esté viendo su propio perfil, puede introducir cualquier URL como su perfil web, y pulsar OK para fijarla.
+Los demás residentes podrán visitar la URL que usted haya elegido cuando vean su perfil.
+ </notification>
+ <notification name="JoinGroupCanAfford">
+ Entrar a este grupo cuesta [COST] L$.
+¿Quiere hacerlo??
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Entrar"/>
+ </notification>
+ <notification name="JoinGroupCannotAfford">
+ Entrar a este grupo cuesta [COST] L$.
+No tiene dinero suficiente para entrar.
+ </notification>
+ <notification name="LandBuyPass">
+ Por [COST] L$ puede entrar a este terreno (&apos;[PARCEL_NAME]&apos;) durante [TIME] horas. ¿Comprar un pase?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="SalePriceRestriction">
+ El precio de venta tiene que ser mayor de 0 L$ si la venta es a cualquiera.
+Por favor, elija a alguien concreto como comprador si la venta es por 0 L$.
+ </notification>
+ <notification name="ConfirmLandSaleChange">
+ Los [LAND_SIZE] m² de terreno seleccionados se van a poner a la venta.
+Su precio de venta será de [SALE_PRICE] L$, y se autorizará la compra sólo a [NAME].
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmLandSaleToAnyoneChange">
+ ATENCIÓN: Al pulsar &apos;vender a cualquiera&apos;, su terreno estará disponible para toda la comunidad de Second Life, incluso para quienes no están en esta región.
+
+Los [LAND_SIZE] m² de terreno seleccionados se van a poner a la venta.
+Su precio de venta será de [SALE_PRICE] L$, y se autorizará la compra a [NAME].
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsDeededToGroup">
+ ¿Está seguro de que quiere devolver todos los objetos de esta parcela que estén compartidos con el grupo &apos;[NAME]&apos; al inventario de su propietario anterior?
+
+*ATENCIÓN* ¡Esto borrará los objetos no transferibles que se hayan cedido al grupo!
+
+Objetos: [N]
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsOwnedByUser">
+ ¿Está seguro de que quiere devolver al inventario de &apos;[NAME]&apos; todos los objetos que sean de su propiedad en esta parcela?
+
+Objetos: [N]
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsOwnedBySelf">
+ ¿Está seguro de que quiere devolver a su inventario todos los objetos de los que usted es propietario en esta parcela?
+
+Objetos: [N]
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsNotOwnedBySelf">
+ ¿Está seguro de que quiere devolver todos los objetos de los que usted NO es propietario en esta parcela al inventario de sus propietarios?
+Los objetos transferibles que se hayan transferido al grupo se devolverán a sus propietarios previos.
+
+*ATENCIÓN* ¡Esto borrará los objetos no transferibles que se hayan cedido al grupo!
+
+Objetos: [N]
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsNotOwnedByUser">
+ ¿Está seguro de que quiere devolver todos los objetos de esta parcela que NO sean propiedad de [NAME] al inventario de su propietario?
+Los objetos transferibles que se hayan transferido al grupo se devolverán a sus propietarios previos.
+
+*ATENCIÓN* ¡Esto borrará los objetos no transferibles que se hayan cedido al grupo!
+
+Objetos: [N]
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="ReturnAllTopObjects">
+ ¿Está seguro de que quiere devolver al inventario de su propietario todos los objetos de la lista?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="DisableAllTopObjects">
+ ¿Está seguro de que quiere desactivar todos los objetos de esta región?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsNotOwnedByGroup">
+ ¿Devolver a sus propietarios los objetos de esta parcela que NO estén compartidos con el grupo [NAME]?
+
+Objetos: [N]
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="UnableToDisableOutsideScripts">
+ No se pueden desactivar los scripts.
+Toda esta región tiene activado el &apos;daño&apos;.
+Para que funcionen las armas los scripts deben estar activados.
+ </notification>
+ <notification name="MustBeInParcel">
+ Para configurar el Punto de llegada de la parcela,
+debe estar usted dentro de ella.
+ </notification>
+ <notification name="PromptRecipientEmail">
+ Por favor, escriba una dirección de correo electrónica válida para el/los receptor/es.
+ </notification>
+ <notification name="PromptSelfEmail">
+ Por favor, escriba su dirección de correo electrónico.
+ </notification>
+ <notification name="PromptMissingSubjMsg">
+ ¿Foto por correo electrónico con el asunto o el mensaje por defecto?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="ErrorProcessingSnapshot">
+ Error al procesar los datos de la foto.
+ </notification>
+ <notification name="ErrorEncodingSnapshot">
+ Error al codificar la foto.
+ </notification>
+ <notification name="ErrorUploadingPostcard">
+ Hubo un problema al enviar la foto por la siguiente razón: [REASON]
+ </notification>
+ <notification name="ErrorUploadingReportScreenshot">
+ Hubo un problema al subir la captura de pantalla del informe por la siguiente razón: [REASON]
+ </notification>
+ <notification name="MustAgreeToLogIn">
+ Debe estar de acuerdo con las Condiciones del Servicio para continuar el inicio de sesión en [SECOND_LIFE].
+ </notification>
+ <notification name="CouldNotPutOnOutfit">
+ No se ha podido ponerle el vestuario.
+La carpeta del vestuario contiene partes del cuerpo, u objetos a anexar o que no son ropa.
+ </notification>
+ <notification name="CannotWearTrash">
+ No puede vestirse ropas o partes del cuerpo que están en la Papelera
+ </notification>
+ <notification name="CannotWearInfoNotComplete">
+ No puede vestirse este ítem porque aún no se ha cargado. Por favor, reinténtelo en un minuto.
+ </notification>
+ <notification name="MustHaveAccountToLogIn">
+ ¡Vaya! Algo se quedó en blanco.
+Debe escribir tanto el nombre como el apellido de su avatar, los dos.
+
+Necesita una cuenta para entrar en [SECOND_LIFE]. ¿Quiere crear una ahora?
+ <usetemplate name="okcancelbuttons" notext="Volver a intentarlo" yestext="Crear una cuenta nueva"/>
+ </notification>
+ <notification name="AddClassified">
+ Los anuncios clasificados aparecen durante una semana en la sección &apos;Clasificados&apos; del directorio Buscar y en www.secondlife.com.
+Rellene su anuncio y pulse &apos;Publicar...&apos; para añadirlo al directorio.
+Cuando pulse Publicar, se le preguntará por un precio a pagar.
+El pagar más hará que su anuncio aparezca más arriba en la lista, y que también aparezca más arriba cuando la gente busque por palabras clave.
+ <usetemplate ignoretext="Cuando se añade un nuevo Clasificado" name="okcancelignore" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="DeleteClassified">
+ ¿Borrar el clasificado &apos;[NAME]&apos;?
+No se reembolsan las cuotas pagadas.
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="ClassifiedSave">
+ ¿Guardar los cambios en el clasificado [NAME]?
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="No guardar" yestext="Guardar"/>
+ </notification>
+ <notification name="DeleteAvatarPick">
+ ¿Borrar el destacado [PICK]?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="PromptGoToEventsPage">
+ ¿Ir a la web de eventos de [SECOND_LIFE]?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="SelectProposalToView">
+ Por favor, seleccione qué propuesta quiere ver.
+ </notification>
+ <notification name="SelectHistoryItemToView">
+ Por favor, seleccione un ítem del historial para verlo.
+ </notification>
+ <notification name="ResetShowNextTimeDialogs">
+ ¿Quiere reactivar todas estas ventanas emergentes, incluso las que marcó previamente como &apos;No mostrarme más esto&apos;?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="SkipShowNextTimeDialogs">
+ ¿Quiere activar todas las ventanas emergentes que puedan habilitarse?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="CacheWillClear">
+ La caché se limpiará cuando reinicie [SECOND_LIFE].
+ </notification>
+ <notification name="CacheWillBeMoved">
+ La caché se moverá cuando reinicie [SECOND_LIFE].
+Nota: esto limpiará la caché.
+ </notification>
+ <notification name="ChangeConnectionPort">
+ Las configuraciones del puerto tendrán efecto cuando reinicie [SECOND_LIFE].
+ </notification>
+ <notification name="ChangeSkin">
+ La nueva apariencia se verá cuando reinicie [SECOND_LIFE].
+ </notification>
+ <notification name="GoToAuctionPage">
+ ¿Ir a la página web de [SECOND_LIFE] para ver los detalles de la subasta
+o hacer una puja?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="SaveChanges">
+ ¿Guardar los cambios?
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="No guardar" yestext="Guardar"/>
+ </notification>
+ <notification name="GestureSaveFailedTooManySteps">
+ Fallo al guardar el gesto.
+Este gesto tiene demasiados pasos.
+Intente quitarle algunos, y vuelva a guardarlo.
+ </notification>
+ <notification name="GestureSaveFailedTryAgain">
+ Fallo al guardar el gesto. Por favor, reinténtelo en un minuto.
+ </notification>
+ <notification name="GestureSaveFailedObjectNotFound">
+ No se ha podido guardar el gesto porque no se pudo encontrar el objeto o el objeto asociado.
+El objeto debe de haber sido borrado o estar fuera de rango (&apos;out of range&apos;).
+ </notification>
+ <notification name="GestureSaveFailedReason">
+ Al guardar un gesto, hubo un problema por: [REASON]. Por favor, reintente guardarlo más tarde.
+ </notification>
+ <notification name="SaveNotecardFailObjectNotFound">
+ No se ha podido guardar la nota porque no se pudo encontrar el objeto o el objeto asociado del inventario.
+El objeto debe de haber sido borrado o estar fuera de rango (&apos;out of range&apos;).
+ </notification>
+ <notification name="SaveNotecardFailReason">
+ Al guardar una nota, hubo un problema por: [REASON]. Por favor, reintente guardarla más tarde.
+ </notification>
+ <notification name="ScriptCannotUndo">
+ No se han podido deshacer todos los cambios en su versión del script.
+¿Quiere cargar la última versión guardada en el servidor?
+(**Cuidado** No podrá deshacer esta operación).
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="SaveScriptFailReason">
+ Al guardar un script, hubo un problema por: [REASON]. Por favor, reintente guardarlo más tarde.
+ </notification>
+ <notification name="SaveScriptFailObjectNotFound">
+ No se ha podido guardar el script porque no se pudo encontrar el objeto que incluye.
+El objeto debe de haber sido borrado o estar fuera de rango (&apos;out of range&apos;)..
+ </notification>
+ <notification name="SaveBytecodeFailReason">
+ Al guardar un script compilado, hubo un problema por: [REASON]. Por favor, reintente guardarlo más tarde..
+ </notification>
+ <notification name="CouldNotStartStopScript">
+ No se ha podido correr o parar el script porque no se pudo encontrar el objeto que incluye.
+El objeto debe de haber sido borrado o estar fuera de rango (&apos;out of range&apos;)..
+ </notification>
+ <notification name="CannotDownloadFile">
+ No se ha podido descargar el archivo.
+ </notification>
+ <notification name="CannotWriteFile">
+ No se ha podido escribir el archivo [[FILE]]
+ </notification>
+ <notification name="UnsupportedHardware">
+ Atención: su sistema no tiene los requerimientos mínimos que necesita Second Life. Si sigue usando Second Life, tendrá un funcionamiento pobre. Desafortunadamente, no podemos ofrecer soporte técnico para configuraciones inadecuadas del sistema.
+
+MINSPECS
+Para más información, ¿quiere visitar [_URL]?
+ <url name="url" option="0">
+ http://secondlife.com/support/sysreqs.php?lang=es
+ </url>
+ <usetemplate ignoretext="Cuando se detecte hardware no adecuado" name="okcancelignore" notext="No" yestext="Sí"/>
+ </notification>
+ <notification name="UnknownGPU">
+ En este momento, desconocemos la tarjeta gráfica de su sistema.
+Con frecuencia, esto se debe a hardware nuevo que no hemos podido revisar aún.
+Es muy probable que Second Life funcione correctamente, pero deberá ajustar sus configuraciones gráficas a lo que sea más apropiado.
+(Menú Editar &gt; Preferencias &gt; Gráficos).
+ <form name="form">
+ <ignore name="ignore" text="Cuando se detecte una tarjeta gráfica desconocida"/>
+ </form>
+ </notification>
+ <notification name="DisplaySettingsNoShaders">
+ [SECOND_LIFE] se cayó al inicializar los drivers gráficos.
+La calidad de los gráficos deberá establecerse en un nivel bajo para prevenir algunos errores frecuentes en los drivers.
+Esto desactivará algunas opciones gráficas.
+Le recomendamos que actualice los drivers de su tarjeta gráfica.
+La calidad gráfica puede configurarse en Preferencias &gt; Gráficos.
+ </notification>
+ <notification name="RegionNoTerraforming">
+ En la región [REGION] no se permite modificar el terreno.
+ </notification>
+ <notification name="CannotCopyWarning">
+ No tiene permiso para copiar este ítem.
+Si lo da, lo perderá de su inventario.
+¿Realmente quiere darlo?
+ <usetemplate name="okcancelbuttons" notext="No" yestext="Sí"/>
+ </notification>
+ <notification name="CannotGiveItem">
+ No se ha podido dar el ítem del inventario.
+ </notification>
+ <notification name="TransactionCancelled">
+ Transacción cancelada.
+ </notification>
+ <notification name="TooManyItems">
+ En una única transferencia del inventario, no puede dar más de 42 ítems.
+ </notification>
+ <notification name="NoItems">
+ No tiene permiso para transferir el ítem seleccionado.
+ </notification>
+ <notification name="CannotCopyCountItems">
+ No tiene permiso para copiar [COUNT] de los
+ítems seleccionados. Si los da, los perderá de su inventario.
+¿Realmente quiere darlos?
+ <usetemplate name="okcancelbuttons" notext="No" yestext="Sí"/>
+ </notification>
+ <notification name="CannotGiveCategory">
+ No tiene permiso para transferir
+la carpeta seleccionada.
+ </notification>
+ <notification name="FreezeAvatar">
+ ¿Congelar a este avatar?
+Temporalmente, será incapaz de moverse, usar el chat, o interactuar con el mundo.
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="Descongelarle" yestext="Congelarle"/>
+ </notification>
+ <notification name="FreezeAvatarFullname">
+ ¿Congelar a [AVATAR_NAME]?
+Temporalmente, será incapaz de moverse, usar el chat, o interactuar con el mundo.
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="Descongelarle" yestext="Congelarle"/>
+ </notification>
+ <notification name="EjectAvatarFullname">
+ ¿Expulsar a [AVATAR_NAME] de su terreno?
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="Expulsar y Prohibir el acceso" yestext="Expulsar"/>
+ </notification>
+ <notification name="EjectAvatarNoBan">
+ ¿Expulsar a este avatar de su terreno?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Expulsar"/>
+ </notification>
+ <notification name="EjectAvatarFullnameNoBan">
+ ¿Expulsar a [AVATAR_NAME] de su terreno?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Expulsar"/>
+ </notification>
+ <notification name="AcquireErrorTooManyObjects">
+ ERROR &apos;ACQUIRE&apos;: Hay demasiados objetos seleccionados.
+ </notification>
+ <notification name="AcquireErrorObjectSpan">
+ ERROR &apos;ACQUIRE&apos;: Los objetos están en más de una región.
+Por favor, mueva todos los objetos a adquirir a la
+misma región.
+ </notification>
+ <notification name="PromptGoToCurrencyPage">
+ [EXTRA]
+
+¿Ir a [URL] para informarse sobre la compra de moneda?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="UnableToLinkObjects">
+ No se pudo enlazar estos [COUNT] objetos.
+Puede enlazar [MAX] objetos como máximo.
+ </notification>
+ <notification name="CannotLinkIncompleteSet">
+ Sólo puede enlazar objetos completos (no sus partes), y debe
+seleccionar más de uno.
+ </notification>
+ <notification name="CannotLinkModify">
+ Imposible enlazarlos, porque no tiene permiso para modificar
+todos los objetos.
+
+Por favor, asegúrese de que no hay ninguno bloqueado, y de que es el propietario de todos.
+ </notification>
+ <notification name="CannotLinkDifferentOwners">
+ Imposible enlazarlos, porque hay objetos de distintos propietarios.
+
+Por favor, asegúrese de que es propietario de todos los objetos seleccionados.
+ </notification>
+ <notification name="NoFileExtension">
+ No hay extensión de archivo en: &apos;[FILE]&apos;
+
+Por favor, asegúrese de que la extensión del archivo es correcta.
+ </notification>
+ <notification name="InvalidFileExtension">
+ Extensión inválida de archivo: [EXTENSION]
+Podría ser [VALIDS]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="CannotUploadSoundFile">
+ Ni se pudo abrir el archivo de sonido que se ha subido para leer:
+[FILE]
+ </notification>
+ <notification name="SoundFileNotRIFF">
+ No parece que el archivo sea un archivo RIFF WAVE:
+[FILE]
+ </notification>
+ <notification name="SoundFileNotPCM">
+ No parece que el archivo sea un archivo de audio PCM WAVE:
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidChannelCount">
+ El archivo no tiene un número de canales válido (debe ser mono o estéreo):
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidSampleRate">
+ No parece que el archivo tenga una frecuencia de muestreo (sample rate) adecuada (debe de ser 44.1k):
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidWordSize">
+ No parece que el archivo tenga un tamaño de palabra (word size) adecuado (debe de ser de 8 o 16 bites):
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidHeader">
+ No se encontró el fragmento &apos;data&apos; en la cabecera del WAV:
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidTooLong">
+ El archivo de audio es demasiado largo (10 segundos como máximo):
+[FILE]
+ </notification>
+ <notification name="ProblemWithFile">
+ Problemas con el archivo [FILE]:
+
+[ERROR]
+ </notification>
+ <notification name="CannotOpenTemporarySoundFile">
+ No se ha podido abrir para su escritura el archivo comprimido de sonido: [FILE]
+ </notification>
+ <notification name="UnknownVorbisEncodeFailure">
+ Códec Vorbis desconocido, fallo en : [FILE]
+ </notification>
+ <notification name="CannotEncodeFile">
+ No se puede codificar el archivo: [FILE]
+ </notification>
+ <notification name="CorruptResourceFile">
+ Archivo con los recursos corruptos: [FILE]
+ </notification>
+ <notification name="UnknownResourceFileVersion">
+ Versión de archivo desconocida para el recurso Linden en el archivo: [FILE]
+ </notification>
+ <notification name="UnableToCreateOutputFile">
+ No se ha podido crear el archivo de salida: [FILE]
+ </notification>
+ <notification name="DoNotSupportBulkAnimationUpload">
+ Actualmente, no ofrecemos la posibilidad de subida masiva de archivos de animación.
+ </notification>
+ <notification name="CannotUploadReason">
+ No se ha podido subir [FILE] por la siguiente razón: [REASON]
+Por favor, inténtelo más tarde.
+ </notification>
+ <notification name="CannotCreateLandmarkNotOwner">
+ No puede crear un hito aquí porque el propietario del terreno no lo permite.
+ </notification>
+ <notification name="CannotRecompileSelectObjectsNoScripts">
+ No se pudo &apos;recompilar&apos;.
+Seleccione un objeto con script.
+ </notification>
+ <notification name="CannotRecompileSelectObjectsNoPermission">
+ No se pudo &apos;recompilar&apos;.
+
+Seleccione objetos con scripts en los que usted tenga permiso para modificarlos.
+ </notification>
+ <notification name="CannotResetSelectObjectsNoScripts">
+ No se pudo &apos;reiniciar&apos;.
+
+Seleccione objetos con scripts.
+ </notification>
+ <notification name="CannotResetSelectObjectsNoPermission">
+ No se pudo &apos;reiniciar&apos;.
+
+Seleccione objetos con scripts en los que usted tenga permiso para modificarlos.
+ </notification>
+ <notification name="CannotSetRunningSelectObjectsNoScripts">
+ No se puede configurar ningún script como &apos;ejecutándose&apos;.
+
+Seleccione objetos con scripts.
+ </notification>
+ <notification name="CannotSetRunningNotSelectObjectsNoScripts">
+ No se puede configurar ningún script como &apos;no ejecutándose&apos;.
+
+Seleccione objetos con scripts.
+ </notification>
+ <notification name="NoFrontmostFloater">
+ No hay nada a guardar.
+ </notification>
+ <notification name="SeachFilteredOnShortWords">
+ Se ha modificado su búsqueda,
+eliminando las palabras demasiado cortas.
+
+Buscando: [FINALQUERY]
+ </notification>
+ <notification name="SeachFilteredOnShortWordsEmpty">
+ Los términos de su búsqueda son muy cortos,
+por lo que no se ha hecho la búsqueda.
+ </notification>
+ <notification name="CouldNotTeleportReason">
+ No se ha podido teleportar.
+[REASON]
+ </notification>
+
+ <notification name="invalid_tport">
+Ha habido un problema al procesar su petición de teleporte. Debe volver a iniciar sesión para poder teleportarse. Si le sigue apareciendo este mensaje, revise, por favor, las preguntas frecuentes en el Soporte técnico:
+www.secondlife.com/support
+ </notification>
+ <notification name="invalid_region_handoff">
+Ha habido un problema al procesar su paso a otra región. Debe volver a iniciar sesión para poder pasar de región a región. Si le sigue apareciendo este mensaje, revise, por favor, las preguntas frecuentes en el Soporte técnico:
+www.secondlife.com/support
+ </notification>
+ <notification name="blocked_tport">
+Lo sentimos, en estos momentos los teleportes están bloqueados. Vuelva a intentarlo en un momento. Si sigue sin poder teleportarse, desconéctese y vuelva a iniciar sesión para solucionar el problema.
+ </notification>
+ <notification name="nolandmark_tport">
+Lo sentimos, pero el sistema no ha podido localizar el destino de este hito.
+ </notification>
+ <notification name="timeout_tport">
+Lo sentimos, pero el sistema no ha podido completar el teleporte.
+Vuelva a intentarlo en un momento.
+ </notification>
+ <notification name="noaccess_tport">
+Lo sentimos, pero usted no tiene acceso al destino de este teleporte.
+ </notification>
+ <notification name="missing_attach_tport">
+Aún no han llegado sus objetos anexados. Espere unos segundos más o desconéctese y vuelva a iniciar sesión antes de teleportarse.
+ </notification>
+ <notification name="too_many_uploads_tport">
+La cola de espera en esta región está actualmente obstruida, por lo que su petición de teleporte no se atenderá en un tiempo prudencial. Por favor, vuelva a intentarlo en unos minutos o vaya a una zona menos ocupada.
+ </notification>
+ <notification name="expired_tport">
+Lo sentimos, pero el sistema no ha podido atender a su petición de teleporte en un tiempo prudencial. Por favor, vuelva a intentarlo en unos pocos minutos.
+ </notification>
+ <notification name="expired_region_handoff">
+Lo sentimos, pero el sistema no ha podido completar su paso a otra región en un tiempo prudencial. Por favor, vuelva a intentarlo en unos pocos minutos.
+ </notification>
+ <notification name="no_host">
+Ha sido imposible encontrar el destino del teleporte: o está desactivado temporalmente o ya no existe. Por favor, vuelva a intentarlo en unos pocos minutos.
+ </notification>
+ <notification name="no_inventory_host">
+En estos momentos no está disponible el sistema del inventario.
+ </notification>
+
+
+ <notification name="CannotSetLandOwnerNothingSelected">
+ No se ha podido configurar el propietario del terreno:
+no se ha seleccionado una parcela.
+ </notification>
+ <notification name="CannotSetLandOwnerMultipleRegions">
+ No se ha podido obtener la propiedad del terreno porque la selección se extiende por varias regiones. Por favor, seleccione un área más pequeña y reinténtelo.
+ </notification>
+ <notification name="ForceOwnerAuctionWarning">
+ Está parcela está siendo subastada. Forzar su propiedad cancelará la subasta y, probablemente, disguste a algunos residentes que ya hayan empezado a pujar. ¿Forzar la propiedad?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="CannotContentifyNothingSelected">
+ No se ha podido &apos;contentify&apos;:
+no se ha seleccionado una parcela.
+ </notification>
+ <notification name="CannotContentifyNoRegion">
+ No se ha podido &apos;contentify&apos;:
+no se ha seleccionado una región.
+ </notification>
+ <notification name="CannotReleaseLandNothingSelected">
+ No se ha podido abandonar el terreno:
+no se ha seleccionado una parcela.
+ </notification>
+ <notification name="CannotReleaseLandNoRegion">
+ No se ha podido abandonar el terreno:
+no se ha podido encontrar la región.
+ </notification>
+ <notification name="CannotBuyLandNothingSelected">
+ Imposible comprar terreno:
+no se ha seleccionado una parcela.
+ </notification>
+ <notification name="CannotBuyLandNoRegion">
+ Imposible comprar terreno:
+no se ha podido encontrar en qué región está.
+ </notification>
+ <notification name="CannotCloseFloaterBuyLand">
+ No puede cerrar la ventana de Comprar terreno hasta que Second Life calcule el precio de esta transacción.
+ </notification>
+ <notification name="CannotDeedLandNothingSelected">
+ No se ha podido transferir el terreno:
+no se ha seleccionado una parcela.
+ </notification>
+ <notification name="CannotDeedLandNoGroup">
+ No se ha podido transferir el terreno:
+no ha seleccionado un grupo.
+ </notification>
+ <notification name="CannotDeedLandNoRegion">
+ No se ha podido transferir el terreno:
+Ha sido imposible encontrar en qué región está.
+Por favor, para informar de esto use Herramientas -&gt; Informar de un fallo.
+ </notification>
+ <notification name="CannotDeedLandMultipleSelected">
+ No se ha podido transferir el terreno:
+ha seleccionado varias parcelas.
+
+Inténtelo seleccionando sólo una.
+ </notification>
+ <notification name="ParcelCanPlayMedia">
+ Esta localización puede mostrar media en streaming.
+Los media en streaming necesitan una conexión a internet rápida.
+
+Si hay media, ¿reproducirlos en streaming?
+(Puede cambiar más adelante esta opción en Preferencias &gt; Audio y Vídeo).
+ <usetemplate name="okcancelbuttons" notext="Desactivar" yestext="Ejecutar los media"/>
+ </notification>
+ <notification name="CannotDeedLandWaitingForServer">
+ No se ha podido transferir el terreno:
+esperando que el servidor informe acerca de la propiedad.
+
+Por favor, vuelva a intentarlo.
+ </notification>
+ <notification name="CannotDeedLandNoTransfer">
+ No se ha podido transferir el terreno:
+En la región [REGION] no se permite transferir terrenos.
+ </notification>
+ <notification name="CannotReleaseLandWatingForServer">
+ No se ha podido abandonar el terreno:
+esperando que el servidor actualice la información de la parcela.
+
+Vuelva a intentarlo en unos segundos.
+ </notification>
+ <notification name="CannotReleaseLandSelected">
+ No se ha podido abandonar el terreno:
+no es propietario de todas las parcelas seleccionadas.
+
+Por favor, seleccione una sola parcela.
+ </notification>
+ <notification name="CannotReleaseLandDontOwn">
+ No se ha podido abandonar el terreno:
+no tiene permisos sobre esta parcela.
+Las parcelas de su propiedad se muestran en verde.
+ </notification>
+ <notification name="CannotReleaseLandRegionNotFound">
+ No se ha podido abandonar el terreno:
+Ha sido imposible encontrar en qué región está.
+
+Por favor, para informar de esto use Herramientas &gt; Informar de un fallo.
+ </notification>
+ <notification name="CannotReleaseLandNoTransfer">
+ No se ha podido abandonar el terreno:
+En la región [REGION] no se permite transferir terrenos.
+ </notification>
+ <notification name="CannotReleaseLandPartialSelection">
+ No se ha podido abandonar el terreno:
+debe seleccionar toda la parcela.
+
+Seleccione una parcela completa, o divídala primero.
+ </notification>
+ <notification name="ReleaseLandWarning">
+ Va a abandonar [AREA] m² de terreno.
+Al hacerlo, la quitará de entre sus posesiones de terreno, pero no recibirá ningún L$.
+
+¿Abandonar este terreno?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="CannotDivideLandNothingSelected">
+ No se ha podido dividir el terreno:
+
+No ha seleccionado ninguna parcela.
+ </notification>
+ <notification name="CannotDivideLandPartialSelection">
+ No se ha podido dividir el terreno:
+
+Ha seleccionado una parcela entera.
+Inténtelo seleccionando una parte.
+ </notification>
+ <notification name="LandDivideWarning">
+ Dividir este terreno lo separará en dos parcelas, cada una de las cuales tendrá su propia configuración. Tras esta operación, algunas configuraciones volverán a las existentes por defecto.
+
+¿Dividir el terreno?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="CannotDivideLandNoRegion">
+ No se ha podido dividir el terreno:
+Ha sido imposible encontrar en qué región está.
+
+Por favor, para informar de esto use Herramientas -&gt; Informar de un fallo.
+ </notification>
+ <notification name="CannotJoinLandNoRegion">
+ No se ha podido unir el terreno:
+Ha sido imposible encontrar en qué región está.
+
+Por favor, para informar de esto use Herramientas -&gt; Informar de un fallo.
+ </notification>
+ <notification name="CannotJoinLandNothingSelected">
+ No se ha podido unir el terreno:
+No hay parcelas seleccionadas.
+ </notification>
+ <notification name="CannotJoinLandEntireParcelSelected">
+ No se ha podido unir el terreno:
+Sólo ha seleccionado una parcela.
+
+Seleccione terreno que incluya algo de ambas parcelas.
+ </notification>
+ <notification name="CannotJoinLandSelection">
+ No se ha podido unir el terreno:
+Debe seleccionar más de una parcela.
+
+Seleccione terreno que incluya algo de ambas parcelas.
+ </notification>
+ <notification name="JoinLandWarning">
+ Al unir este terreno creará una parcela más grande formada por todas aquellas que tengan parte en el rectángulo seleccionado.
+Deberá reconfigurar el nombre y las opciones de la nueva parcela.
+
+¿Unir el terreno?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="ShowOwnersHelp">
+ Mostrar los propietarios:
+El color de las parcelas indica el tipo de propietario.
+
+Verde = Su terreno
+Agua = Terreno de su&apos;s grupo&apos;s
+Rojo = Propiedad de otros
+Amarillo = En venta
+Morado = Para subasta
+Gris = Público
+ </notification>
+ <notification name="ConfirmNotecardSave">
+ Esta nota debe guardarse antes de que se la pueda copiar o ver. ¿Guardar la nota?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmItemCopy">
+ ¿Copiar este ítem a su inventario?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Copiar"/>
+ </notification>
+ <notification name="ResolutionSwitchFail">
+ Fallo al cambiar la resolución a [RESX] por [RESY]
+ </notification>
+ <notification name="ErrorUndefinedGrasses">
+ Error, hierbas no definidas: [SPECIES]
+ </notification>
+ <notification name="ErrorUndefinedTrees">
+ Error, árboles no definidos: [SPECIES]
+ </notification>
+ <notification name="CannotSaveWearableOutOfSpace">
+ No se ha podido guardar el archivo &apos;[NAME]&apos;. Tendrá que liberar algo de espacio en su ordenador y guardarlo de nuevo.
+ </notification>
+ <notification name="CannotSaveToAssetStore">
+ No se ha podido guardar [NAME] en la base central de almacenamiento.
+Esto es, generalmente, un fallo temporal. Por favor, reinténtelo en unos pocos minutos.
+
+Si persiste el problema, por favor, pulse en en el menú &apos;Herramientas &gt; Informar de un fallo&apos; y aporte detalles sobre la configuración de su conexión.
+ </notification>
+ <notification name="YouHaveBeenLoggedOut">
+ Se ha cerrado su sesión en [SECOND_LIFE]:
+ [MESSAGE]
+Aún puede ver el chat y los MI existentes pulsando &apos;Ver MI y Chat&apos;. Si no, pulse &apos;Salir&apos; para dejar inmediatemente [SECOND_LIFE].
+ <usetemplate name="okcancelbuttons" notext="Salir" yestext="Ver MI y Chat"/>
+ </notification>
+ <notification name="OnlyOfficerCanBuyLand">
+ No se ha podido comprar terreno para el grupo:
+usted no tiene el permiso de comprar terreno para el grupo que tiene activado actualmente.
+ </notification>
+ <notification label="Añadir como amigo" name="AddFriend">
+ Los amigos pueden darse permiso para localizarse en el mapa y para saber si el otro está conectado.
+
+¿Ofrecer a [NAME] que sea su amigo?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification label="Añadir como amigo" name="AddFriendWithMessage">
+ Los amigos pueden darse permiso para localizarse en el mapa y para saber si el otro está conectado.
+
+¿Ofrecer a [NAME] que sea su amigo?
+ <form name="form">
+ <input name="message" type="text">
+ ¿Quieres formar parte de mis amigos?
+ </input>
+ <button name="Offer" text="OK"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification name="RemoveFromFriends">
+ ¿Quiere quitar a [FIRST_NAME] [LAST_NAME] de su lista de amigos?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="RemoveMultipleFromFriends">
+ ¿Quiere quitar a varios amigos de su lista de amigos?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="GodDeleteAllScriptedPublicObjectsByUser">
+ ¿Está seguro de que quiere borrar todos los objetos con script que sean propiedad de
+** [AVATAR_NAME] **
+en todos los otros terrenos de este sim?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="GodDeleteAllScriptedObjectsByUser">
+ ¿Está seguro de que quiere BORRAR TODOS los objetos con script que sean propiedad de
+** [AVATAR_NAME] **
+en TODO EL TERRENO de este sim?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="GodDeleteAllObjectsByUser">
+ ¿Está seguro de que quiere BORRAR TODOS los objetos (con script o no) que sean propiedad de
+** [AVATAR_NAME] **
+en TODO EL TERRENO de este sim?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="BlankClassifiedName">
+ Debe especificar un nombre para su clasificado.
+ </notification>
+ <notification name="MinClassifiedPrice">
+ El pago para aparecer en la lista debe ser de, al menos, [MIN_PRICE] L$.
+
+Por favor, elija un pago mayor.
+ </notification>
+ <notification name="ConfirmObjectDeleteLock">
+ Al menos uno de los ítems que ha seleccionado está bloqueado.
+
+¿Está seguro de que quiere borrar estos ítems?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteNoCopy">
+ Al menos uno de los ítems que ha seleccionado no es copiable.
+
+¿Está seguro de que quiere borrar estos ítems?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteNoOwn">
+ No es el propietario de, al menos, uno de los ítems que ha seleccionado.
+
+¿Está seguro de que quiere borrar estos ítems?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteLockNoCopy">
+ Al menos un objeto está bloqueado.
+Al menos un objeto no es copiable.
+
+¿Está seguro de que quiere borrar estos ítems?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteLockNoOwn">
+ Al menos un objeto está bloqueado.
+No es propietario de, al menos, un objeto.
+
+¿Está seguro de que quiere borrar estos ítems?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteNoCopyNoOwn">
+ Al menos un objeto no es copiable.
+No es propietario de, al menos, un objeto.
+
+¿Está seguro de que quiere borrar estos ítems?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteLockNoCopyNoOwn">
+ Al menos un objeto está bloqueado.
+Al menos un objeto no es copiable.
+No es propietario de, al menos, un objeto.
+
+¿Está seguro de que quiere borrar estos ítems?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectTakeLock">
+ Al menos un objeto está bloqueado.
+
+¿Está seguro de que quiere tomar estos ítems?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectTakeNoOwn">
+ No es el propietario de todos los objetos que está tomando.
+Si sigue, se aplicarán los permisos marcados para el próximo propietario, y es posible que se restrinja su posibilidad de hacer modificaciones o copias.
+
+¿Está seguro de que quiere tomar estos ítems?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectTakeLockNoOwn">
+ Al menos un objeto está bloqueado.
+No es el propietario de todos los objetos que está tomando.
+Si sigue, se aplicarán los permisos marcados para el próximo propietario, y es posible que se restrinja su posibilidad de hacer modificaciones o copias
+Con todo, puede tomar lo actualmente seleccionado.
+
+¿Está seguro de que quiere tomar estos ítems?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="CantBuyLandAcrossMultipleRegions">
+ No se ha podido hacer la compra porque el terreno seleccionado se extiende por varias regiones.
+
+Por favor, seleccione un área más pequeña y reinténtelo.
+ </notification>
+ <notification name="DeedLandToGroup">
+ Al transferir esta parcela, se requerirá al grupo que tenga y mantenga el crédito suficiente para uso de terreno.
+El precio de compra de la parcela no se reembolsa al propietario.
+Si se vende una parcela transferida, el precio de venta se dividirá a partes iguales entre los miembros del grupo.
+
+¿Transferir estos [AREA] m² de terreno al grupo
+&apos;[GROUP_NAME]&apos;?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="DeedLandToGroupWithContribution">
+ Al transferir esta parcela, se requerirá al grupo que tenga y mantenga el crédito suficiente para uso de terreno.
+La tranferencia incluirá, a la vez, una contribucíon de terreno al grupo de &apos;[FIRST_NAME] [LAST_NAME]&apos;.
+El precio de compra de la parcela no se reembolsa al propietario.
+Si se vende una parcela transferida, el precio de venta se dividirá a partes iguales entre los miembros del grupo.
+
+¿Transferir estos [AREA] m² de terreno al grupo &apos;[GROUP_NAME]&apos;?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="DisplaySetToSafe">
+ Las configuraciones que se muestran se han fijado en los niveles guardados, pues usted especificó la opción de guardarlos.
+ </notification>
+ <notification name="DisplaySetToRecommended">
+ Las configuraciones que se muestran se han fijado en los niveles recomendados para la configuración de su sistema.
+ </notification>
+ <notification name="ErrorMessage">
+ [ERROR_MESSAGE]
+ </notification>
+ <notification name="AvatarMoved">
+ Su localización [TYPE] no está disponible en estos momentos. [HELP]
+Ha sido llevado a una región cercana.
+ </notification>
+ <notification name="ClothingLoading">
+ Aún está descargándose su ropa.
+Puede usar normalmente [SECOND_LIFE], los demás residentes le verán correctamente.
+ <form name="form">
+ <ignore name="ignore" text="Cuando está llevando mucho tiempo descargar la ropa"/>
+ </form>
+ </notification>
+ <notification name="FirstRun">
+ Se ha completado la instalación de [SECOND_LIFE].
+
+Si esta es la primera vez que usa [SECOND_LIFE], deberá crear una cuenta antes de que pueda iniciar una sesión.
+¿Volver a www.secondlife.com para crear una cuenta nueva?
+ <usetemplate name="okcancelbuttons" notext="Continuar" yestext="Cuenta nueva..."/>
+ </notification>
+ <notification name="LoginPacketNeverReceived">
+ Tenemos problemas de conexión. Puede deberse a un problema de su conexión a internet o de los servidores de Second Life.
+
+Puede revisar su conexión a internet y volver a intentarlo en unos minutos. Pulse Ayuda para conectarse a nuestro sitio de Sporte, o pulse Teleportar para intentar teleportarse a su Base.
+ <form name="form">
+ <button name="OK" text="OK"/>
+ <button name="Help" text="Ayuda"/>
+ <button name="Teleport" text="Teleportar"/>
+ </form>
+ </notification>
+ <notification name="WelcomeChooseSex">
+ Su personaje aparecerá en un momento.
+
+Para caminar, use las teclas del cursor.
+En cualquier momento, puede pulsar la tecla F1 para conseguir ayuda o para aprender más acerca de [SECOND_LIFE].
+Por favor, elija el avatar masculino o femenino.
+Puede cambiar más adelante su elección.
+ <usetemplate name="okcancelbuttons" notext="Mujer" yestext="Varón"/>
+ </notification>
+ <notification name="NotEnoughCurrency">
+ [NAME] cuesta [PRICE] L$. No tiene suficientes L$ para hacer eso.
+ </notification>
+ <notification name="GrantedModifyRights">
+ Se le ha concedido el privilegio de modificar los objetos de [FIRST_NAME] [LAST_NAME].
+ </notification>
+ <notification name="RevokedModifyRights">
+ Ha sido revocado su privilegio de modificar los objetos de [FIRST_NAME] [LAST_NAME].
+ </notification>
+ <notification name="FlushMapVisibilityCaches">
+ Esto limpiará las caches del mapa en esta región.
+Esto sólo es realmente útil para cuestiones de depuración (&apos;debugging&apos;).
+(A efectos prácticos, espere 5 minutos, y el mapa de cualquiera se actualizará después de que reinicie sesión).
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="BuyOneObjectOnly">
+ No se puede comprar más de un objeto a la vez. Por favor, seleccione sólo un objeto y vuelva a intentarlo.
+ </notification>
+ <notification name="OnlyCopyContentsOfSingleItem">
+ No se puede copiar a la vez los contenidos de más de un objeto.
+Por favor, selección sólo uno y reinténtelo.
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="KickUsersFromRegion">
+ ¿Teleportar a su base a todos los residentes en esta región?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="EstateObjectReturn">
+ ¿Está seguro de que quiere devolver los objetos propiedad de
+[USER_NAME] ?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="InvalidTerrainBitDepth">
+ No se han podido configurar las texturas de la región:
+La textura del terreno [TEXTURE_NUM] tiene una profundidad de bites inválida: [TEXTURE_BIT_DEPTH].
+
+Cambie la textura [TEXTURE_NUM] por una imagen de 24-bit y 512x512 o menor, y pulse de nuevo &quot;Aplicar&quot; .
+ </notification>
+ <notification name="InvalidTerrainSize">
+ No se han podido configurar las texturas de la región:
+La textura del terreno [TEXTURE_NUM] es demasiado grande: [TEXTURE_SIZE_X]x[TEXTURE_SIZE_Y].
+
+Cambie la textura [TEXTURE_NUM] por una imagen de 24-bit y 512x512 o menor, y pulse de nuevo &quot;Aplicar&quot; .
+ </notification>
+ <notification name="RawUploadStarted">
+ Ha empezado la subida. Dependiendo de la velocidad de su conexión, llevará unos dos minutos.
+ </notification>
+ <notification name="ConfirmBakeTerrain">
+ ¿Realmente quiere predeterminar el terreno actual, haciéndolo el centro de los limites para elevarlo y rebajarlo, y el terreno por defecto para la herramienta &apos;Revertir&apos;?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="MaxAllowedAgentOnRegion">
+ Sólo puede tener [MAX_AGENTS] residentes autorizados.
+ </notification>
+ <notification name="MaxBannedAgentsOnRegion">
+ Sólo puede tener [MAX_BANNED] residentes no admitidos.
+ </notification>
+ <notification name="MaxAgentOnRegionBatch">
+ Fallo al intentar añadir [NUM_ADDED] agentes:
+Se superan en [NUM_EXCESS] los [MAX_AGENTS] permitidos en [LIST_TYPE].
+ </notification>
+ <notification name="MaxAllowedGroupsOnRegion">
+ Sólo puede tener [MAX_GROUPS] grupos permitidos.
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Predeterminar"/>
+ </notification>
+ <notification name="MaxManagersOnRegion">
+ Sólo puede tener [MAX_MANAGER] administradores del estado.
+ </notification>
+ <notification name="OwnerCanNotBeDenied">
+ No se puede añadir a la lista de residentes no admitidos al propietario del estado.
+ </notification>
+ <notification name="CanNotChangeAppearanceUntilLoaded">
+ No puede cambiar la apariencia hasta que no se carguen la ropa y la forma.
+ </notification>
+ <notification name="ClassifiedMustBeAlphanumeric">
+ El nombre de su anuncio clasificado debe empezar o con un número o con una letra de la A a la Z. No se permiten signos de puntuación.
+ </notification>
+ <notification name="CantSetBuyObject">
+ No puede configurar el Comprar el objeto, porque éste no está en venta.
+Por favor, ponga en venta el objeto y reinténtelo.
+ </notification>
+ <notification name="FinishedRawDownload">
+ Acabada la descarga del archivo raw de terreno en:
+[DOWNLOAD_PATH].
+ </notification>
+ <notification name="DownloadWindowsMandatory">
+ Está disponible una versión nueva de [SECOND_LIFE].
+[MESSAGE]
+Debe descargar esta actualización para usar [SECOND_LIFE].
+ <usetemplate name="okcancelbuttons" notext="Salir" yestext="Descargarla"/>
+ </notification>
+ <notification name="DownloadWindows">
+ Está disponible una versión actualizada de [SECOND_LIFE].
+[MESSAGE]
+Esta actualización no es obligatoria, pero le sugerimos instalarla para mejorar el rendimiento y la estabilidad.
+ <usetemplate name="okcancelbuttons" notext="Continuar" yestext="Descargarla"/>
+ </notification>
+ <notification name="DownloadWindowsReleaseForDownload">
+ Está disponible una versión actualizada de [SECOND_LIFE].
+[MESSAGE]
+Esta actualización no es obligatoria, pero le sugerimos instalarla para mejorar el rendimiento y la estabilidad.
+ <usetemplate name="okcancelbuttons" notext="Continuar" yestext="Descargarla"/>
+ </notification>
+ <notification name="DownloadMacMandatory">
+ Está disponible una versión nueva de [SECOND_LIFE].
+[MESSAGE]
+Debe descargar esta actualización para usar [SECOND_LIFE].
+
+¿Descargarla a su carpeta de aplicaciones?
+ <usetemplate name="okcancelbuttons" notext="Salir" yestext="Descargarla"/>
+ </notification>
+ <notification name="DownloadMac">
+ Está disponible una versión actualizada de [SECOND_LIFE].
+[MESSAGE]
+Esta actualización no es obligatoria, pero le sugerimos instalarla para mejorar el rendimiento y la estabilidad.
+
+¿Descargarla a su carpeta de aplicaciones?
+ <usetemplate name="okcancelbuttons" notext="Continuar" yestext="Descargarla"/>
+ </notification>
+ <notification name="DownloadMacReleaseForDownload">
+ Está disponible una versión actualizada de [SECOND_LIFE].
+[MESSAGE]
+Esta actualización no es obligatoria, pero le sugerimos instalarla para mejorar el rendimiento y la estabilidad.
+
+¿Descargarla a su carpeta de aplicaciones?
+ <usetemplate name="okcancelbuttons" notext="Continuar" yestext="Descargarla"/>
+ </notification>
+ <notification name="DeedObjectToGroup">
+ Transferir este objeto al grupo hará que:
+* Reciba los L$ pagados en el objeto
+ <usetemplate ignoretext="Cuando se transfieren objetos a los grupos" name="okcancelignore" notext="Cancelar" yestext="Transferir"/>
+ </notification>
+ <notification name="WebLaunchExternalTarget">
+ ¿Abrir el navegador de su sistema para ver este contenido?
+ <usetemplate ignoretext="Cuando se abra el navegador de su sistema para ver una página web" name="okcancelignore" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchJoinNow">
+ ¿Ir a www.secondlife.com para administrar su cuenta?
+ <usetemplate ignoretext="Cuando se abra el navegador para administrar su cuenta" name="okcancelignore" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchBugReport101">
+ Visite el wiki de [SECOND_LIFE] y aprenda cómo informar correctamente de fallos.
+ <usetemplate ignoretext="Cuando se abra el navegador para ver el wiki de Informes de fallos - instrucciones" name="okcancelignore" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchSecurityIssues">
+ Visite el wiki de [SECOND_LIFE] para más detalles sobre cómo informar de una cuestión de seguridad.
+ <usetemplate ignoretext="Cuando se abra el navegador para ver el wiki de cuestiones de seguridad" name="okcancelignore" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchQAWiki">
+ Visite el wiki QA de [SECOND_LIFE].
+ <usetemplate ignoretext="Cuando se abra el navegador para ver el wiki QA" name="okcancelignore" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchPublicIssue">
+ Visite el Public Issue Tracker (sistema público de seguimiento de incidencias) de [SECOND_LIFE], donde podrá informar de errores y otros asuntos.
+ <usetemplate ignoretext="Cuando se abra el navegador para ver el Public Issue Tracker" name="okcancelignore" notext="Cancelar" yestext="Ir a la página"/>
+ </notification>
+ <notification name="WebLaunchPublicIssueHelp">
+ Visite el wiki de [SECOND_LIFE] para informarse de cómo usar el Public Issue Tracker (sistema público de seguimiento de incidencias).
+ <usetemplate ignoretext="Cuando se abra el navegador para ver el wiki del Public Issue Tracker" name="okcancelignore" notext="Cancelar" yestext="Ir a la página"/>
+ </notification>
+ <notification name="WebLaunchSupportWiki">
+ Para ver las últimas noticias e informaciones, ¿ir la Blog oficial?
+ <usetemplate ignoretext="Cuando se abra el navegador para ver el blog" name="okcancelignore" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchLSLGuide">
+ ¿Ir a la Guía de programación para encontrar ayuda?
+ <usetemplate ignoretext="Cuando se abra el navegador para ver la Guía de programación" name="okcancelignore" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchLSLWiki">
+ ¿Ir al portal de LSL para encontrar ayuda sobre programación?
+ <usetemplate ignoretext="Cuando se abra el navegador para ver el portal de programación" name="okcancelignore" notext="Cancelar" yestext="Ir a la página"/>
+ </notification>
+ <notification name="ReturnToOwner">
+ ¿Está seguro de que quiere devolver los objetos seleccionados a sus propietarios? Los objetos transferibles que se hayan cedido volverán a sus propietarios anteriores.
+
+*ATENCIÓN* ¡Serán borrados los objetos no transferibles que estén cedidos!
+ <usetemplate ignoretext="Cuando se devuelvan los objetos a sus propietarios" name="okcancelignore" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="GroupLeaveConfirmMember">
+ Actualmente, usted es miembro del grupo [GROUP].
+¿Dejar el grupo?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmKick">
+ ¿DE VERDAD quiere expulsar a todos los usuarios de este grid?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Expulsar a todos los usuarios"/>
+ </notification>
+ <notification name="MuteLinden">
+ Perdón, pero no puede ignorar a un Linden.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="CannotStartAuctionAlreadyForSale">
+ No puede empezar una subasta en una parcela que ya está en venta. Desactive la venta de terreno si está seguro de querer iniciar una subasta.
+ </notification>
+ <notification label="Fallo al ignorar un objeto según el nombre" name="MuteByNameFailed">
+ Ya ha ignorado ese nombre.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="RemoveItemWarn">
+ Aunque esté permitido, borrar contenidos puede dañar el objeto.
+¿Quiere borrar ese ítem?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="CantOfferCallingCard">
+ En este momento, no se puede ofrecer una tarjeta de visita. Por favor, reinténtelo en un momento.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="CantOfferFriendship">
+ En este momento, no se puede ofrecer el ser amigo. Por favor, reinténtelo en un momento.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="BusyModeSet">
+ Pasar al modo ocupado.
+Se ocultará el chat y los mensajes instantáneos. Los mensajes instantáneos recibirán su Respuesta en el modo ocupado. Todos los ofrecimientos de teleporte serán rehusados. Todas las ofertas de inventario irán a su Papelera.
+ <usetemplate ignoretext="Cuando se pasa al modo ocupado" name="okignore" yestext="OK"/>
+ </notification>
+ <notification name="JoinedTooManyGroupsMember">
+ Pertenece a demasiados grupos para poder entrar en otro. Por favor, salga de al menos uno antes de entrar en éste, o rehúse la oferta. Para salir de un grupo, seleccione la opción &apos;Grupos...&apos; en el menú &apos;Editar&apos;.
+[NAME] le ha invitado a ser miembro de un grupo.
+[INVITE]
+ <usetemplate name="okcancelbuttons" notext="Rehusar" yestext="Entrar"/>
+ </notification>
+ <notification name="KickUser">
+ ¿Con qué mensaje se expulsará a este usuario?
+ <form name="form">
+ <input name="message" type="text">
+ Un administrador le ha desconectado.
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification name="KickAllUsers">
+ ¿Con qué mensaje se expulsará a cualquiera que esté actualmente en el grid?
+ <form name="form">
+ <input name="message" type="text">
+ Un administrador le ha desconectado.
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification name="FreezeUser">
+ ¿Con qué mensaje se congelará a este usuario?
+ <form name="form">
+ <input name="message" type="text">
+ Ha sido usted congelado. No puede moverse o escribir en el chat. Un administrador contactará con usted a través de un mensaje instantáneo (MI).
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification name="UnFreezeUser">
+ ¿Con qué mensaje se descongelará a este usuario?
+ <form name="form">
+ <input name="message" type="text">
+ Ya no está usted congelado.
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification name="OfferTeleport">
+ ¿Ofrecer teleporte a su posición con este mensaje?
+ <form name="form">
+ <input name="message" type="text">
+ Ven conmigo a [REGION]
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification name="OfferTeleportFromGod">
+ ¿Convocar a este usuario a su posición?
+ <form name="form">
+ <input name="message" type="text">
+ Ven conmigo a [REGION]
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification name="TeleportFromLandmark">
+ ¿Está seguro de que quiere teleportarse?
+ <usetemplate ignoretext="Cuando está teleportando desde un hito del inventario" name="okcancelignore" notext="Cancelar" yestext="Teleportar"/>
+ </notification>
+ <notification label="Mensaje a todo el estado" name="MessageEstate">
+ Escriba un anuncio breve que se enviará a todo el que esté en su estado.
+ <form name="form">
+ <input name="message" type="text"/>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification label="Cambiar un estado Linden" name="ChangeLindenEstate">
+ Va a hacer cambios en un estado propiedad de Linden (mainland, grid teen, orientación, etc.).
+
+Esto es EXTREMADAMENTE PELIGROSO, porque puede afectar radicalmente al funcionamiento de los usuarios. En mainland, se cambiarán miles de regiones, y se provocará un colapso en el espacio del servidor.
+
+¿Proceder?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification label="Cambiar el acceso a un estado Linden" name="ChangeLindenAccess">
+ Va a cambiar la lista de acceso de un estado propiedad de Linden (mainland, grid teen, orientación, etc.).
+
+Esto es PELIGROSO, y sólo debe hacerse para deshacerse de ataques que permitan sacar o meter en el grid objetos o L$.
+Se cambiarán miles de regiones, y se provocará un colapso en el espacio del servidor.
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification label="Seleccionar el estado" name="EstateAllowedAgentAdd">
+ ¿Añadir a la lista de permitidos sólo para este estado o para [ALL_ESTATES]?
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="Todos los estados" yestext="Este estado"/>
+ </notification>
+ <notification label="Seleccionar el estado" name="EstateAllowedAgentRemove">
+ ¿Quitar de la lista de permitidos sólo para este estado o para [ALL_ESTATES]?
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="Todos los estados" yestext="Este estado"/>
+ </notification>
+ <notification label="Seleccionar el estado" name="EstateAllowedGroupAdd">
+ ¿Añadir a la lista de grupos permitidos sólo para este estado o para [ALL_ESTATES]?
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="Todos los estados" yestext="Este estado"/>
+ </notification>
+ <notification label="Seleccionar el estado" name="EstateAllowedGroupRemove">
+ ¿Quitar de la lista de grupos permitidos sólo para este estado o para [ALL_ESTATES]?
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="Todos los estados" yestext="Este estado"/>
+ </notification>
+ <notification label="Seleccionar el estado" name="EstateBannedAgentAdd">
+ ¿Denegar el acceso sólo a este estado o a [ALL_ESTATES]?
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="Todos los estados" yestext="Este estado"/>
+ </notification>
+ <notification label="Seleccionar el estado" name="EstateBannedAgentRemove">
+ ¿Quitar de la lista de prohibición de acceso a este residente para que acceda sólo a este estado o a [ALL_ESTATES]?
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="Todos los estados" yestext="Este estado"/>
+ </notification>
+ <notification label="Seleccionar el estado" name="EstateManagerAdd">
+ ¿Añadir al administrador del estado sólo para este estado o para [ALL_ESTATES]?
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="Todos los estados" yestext="Este estado"/>
+ </notification>
+ <notification label="Seleccionar el estado" name="EstateManagerRemove">
+ ¿Remover al administrador del estado sólo para este estado o para [ALL_ESTATES]?
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="Todos los estados" yestext="Este estado"/>
+ </notification>
+ <notification label="Confirmar la expulsión" name="EstateKickUser">
+ ¿Echar a [EVIL_USER] de este estado?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="EstateChangeCovenant">
+ ¿Está seguro de que quiere cambiar el contrato del estado?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="RegionEntryAccessBlocked">
+ Usted no está autorizado en esa región por su nivel de calificación. Puede deberse a que no hay información validada de su edad.
+
+Por favor, compruebe que tiene instalado el último visor, y vaya a la Base de Conocimientos para más detalles sobre el acceso a zonas con este nivel de calificación.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="RegionEntryAccessBlocked_KB">
+ Usted no está autorizado en esa región por su nivel de calificación.
+
+¿Quiere ir a la Base de Conocimientos para aprender más sobre el nivel de calificación?
+ <url name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=6010
+ </url>
+ <usetemplate
+ name="okcancelignore"
+ yestext="Ir a la Base de Conocimientos"
+ notext="Cerrar"
+ ignoretext="Cuando la entrada a la región está bloqueada por el nivel de calificación"/>
+ </notification>
+ <notification name="RegionEntryAccessBlocked_Notify">
+ Usted no está autorizado en esa región por su nivel de calificación.
+ </notification>
+ <notification name="RegionEntryAccessBlocked_Change">
+ Usted no está autorizado en esa región por su nivel de calificación..
+
+Puede pulsar &apos;Cambiar preferencia&apos; para aumentar su nivel de calificación y poder entrar. Desde ese momento, podrá buscar y acceder a contenido [REGIONMATURITY]. Si más adelante quiere deshacer esta configuración, vaya a Editar &gt; Preferencias... &gt; General.
+ <form>
+ <button
+ name="OK"
+ text="Cambiar preferencia"/>
+ <button
+ default="true"
+ name="Cancel"
+ text="Cerrar"/>
+ <ignore text="Cuando la entrada a la región está bloqueada por la preferencia del nivel de calificación"/>
+ </form>
+ </notification>
+ <notification name="LandClaimAccessBlocked">
+ Usted no puede reclamar este terreno por su nivel de calificación. Puede deberse a que no hay información validada de su edad.
+
+Por favor, compruebe que tiene instalado el último visor, y vaya a la Base de Conocimientos para más detalles sobre el acceso a zonas con este nivel de calificación.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="LandClaimAccessBlocked_KB">
+ No puede reclamar este terreno por sus nivel de calificación.
+
+¿Quiere ir a la Base de Conocimientos para más información sobre el nivel de calificación?
+ <url name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=6010
+ </url>
+ <usetemplate
+ name="okcancelignore"
+ yestext="Ir a la Base de Conocimientos"
+ notext="Cerrar"
+ ignoretext="Cuando el reclamar terreno está bloqueado por el nivel de calificación"/>
+ </notification>
+ <notification name="LandClaimAccessBlocked_Notify">
+ Por su nivel de calificación, usted no puede reclamar este terreno.
+ </notification>
+ <notification name="LandClaimAccessBlocked_Change">
+ No puede reclamar este terreno por sus preferencias de nivel de calificación.
+
+Puede pulsar &apos;Cambiar preferencia&apos; para aumentar su nivel de calificación y poder entrar. Desde ese momento, podrá buscar y acceder a contenido [REGIONMATURITY]. Si más adelante quiere deshacer esta configuración, vaya a Editar &gt; Preferencias... &gt; General..
+ <usetemplate
+ name="okcancelignore"
+ yestext="Cambiar preferencia"
+ notext="Cerrar"
+ ignoretext="Cuando el reclamar terreno está bloqueado por la preferencia del nivel de calificación"/>
+ </notification>
+ <notification name="LandBuyAccessBlocked">
+ Usted no puede comprar este terreno por su nivel de calificación. Puede deberse a que no hay información validada de su edad.
+
+Por favor, compruebe que tiene instalado el último visor, y vaya a la Base de Conocimientos para más detalles sobre el acceso a zonas con este nivel de calificación.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="LandBuyAccessBlocked_KB">
+ No puede comprar este terreno por sus preferencias de nivel de calificación.
+
+¿Quiere ir a la Base de Conocimientos para más información sobre el nivel de calificación?
+ <url name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=6010
+ </url>
+ <usetemplate
+ name="okcancelignore"
+ yestext="Ir a la Base de Conocimientos"
+ notext="Cerrar"
+ ignoretext="Cuando la compra de terreno está bloqueada por el nivel de calificación"/>
+ </notification>
+ <notification name="LandBuyAccessBlocked_Notify">
+ No puede comprar este terreno por su nivel de calificación.
+ </notification>
+ <notification name="LandBuyAccessBlocked_Change">
+ No puede comprar este terreno por sus preferencias de nivel de calificación.
+
+Puede pulsar &apos;Cambiar preferencia&apos; para aumentar su nivel de calificación y poder entrar. Desde ese momento, podrá buscar y acceder a contenido [REGIONMATURITY]. Si más adelante quiere deshacer esta configuración, vaya a Editar &gt; Preferencias... &gt; General.
+ <usetemplate
+ name="okcancelignore"
+ yestext="Cambiar preferencia"
+ notext="Cerrar"
+ ignoretext="Cuando la compra de terreno está bloqueada por la preferencia del nivel de calificación"/>
+ </notification>
+ <notification name="TooManyPrimsSelected">
+ &quot;Hay seleccionadas demasiadas primitivas. Por favor, seleccione [MAX_PRIM_COUNT] o menos, y reinténtelo.&quot;
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="ProblemImportingEstateCovenant">
+ Hay problemas al importar el contrato del estado.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <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="ProblemAddingEstateGeneric">
+ Hay problemas en este añadir a la lista del estado. Uno o más estados deben de tener llena la lista.
+ </notification>
+ <notification name="UnableToLoadNotecardAsset">
+ En este momento, no se pueden cargar los datos de la&apos;s nota&apos;s.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="NotAllowedToViewNotecard">
+ Permisos insuficientes para ver la nota asociada a la ID solicitada.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="MissingNotecardAssetID">
+ Se ha perdido en la base de datos la ID de la nota.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="PublishClassified">
+ Recuerde: las cuotas que se pagan por los clasificados no son reembolsables.
+
+¿Publicar ahora este anuncio por [AMOUNT] L$?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="SetClassifiedMature">
+ ¿Este anuncio tiene contenido &apos;Mature&apos;?
+ <usetemplate
+ canceltext="Cancelar"
+ name="yesnocancelbuttons"
+ notext="No"
+ yestext="Sí"/>
+ </notification>
+ <notification name="SetGroupMature">
+ ¿Este grupo tiene contenido &apos;Mature&apos;?
+ <usetemplate
+ canceltext="Cancelar"
+ name="yesnocancelbuttons"
+ notext="No"
+ yestext="Sí"/>
+ </notification>
+ <notification label="Confirmar el reinicio" name="ConfirmRestart">
+ ¿Verdaderamente quiere reiniciar la región de aquí a 2 minutos?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification label="Mensaje a toda la región" name="MessageRegion">
+ Escriba un anuncio breve que se enviará a todo el que esté en esta región.
+ <form name="form">
+ <input name="message" type="text"/>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification label="No permitir modificar el terreno" name="HelpRegionBlockTerraform">
+ Si se marca está casilla, los propietarios de terreno no podrán modificarlo, independientemente de lo que esté configurado en cada parcela.
+
+Por defecto: off
+ </notification>
+ <notification label="Prohibir volar" name="HelpRegionBlockFly">
+ Si se marca esta casilla, estará prohibido volar en la región, independientemente de lo que esté configurado en cada parcela.
+
+Por defecto: off
+ </notification>
+ <notification label="Cambio múltiple de permisos del contenido" name="HelpBulkPermission">
+ La herramienta de cambio múltiple de permisos le ayuda a cambiar con rapidez los permisos de varios de los objetos contenidos en el objeto u objetos que seleccione. Pero fíjese que sólo configurará los permisos de los ítems que están en el contenido de los objetos seleccionados, no los de esos objetos que los contienen.
+
+Note también que los permisos no se aplicarán a los contenidos que puedan tener cada uno de los ítems. Lo que haga sólo afectará a los ítems que estén exactamente en el primer nivel de contenidos.
+
+Puede elegir qué clase de ítems modificar usando la lista &apos;Tipos de contenido&apos; here. Las imágenes se consideran incluidas si selecciona Texturas.
+
+* Esta herramienta sólo puede cambiar los permisos de aquellos ítems de los que usted esté autorizado a cambiarlos.
+* No puede otorgar al siguiente propietario permisos que usted no tenga ya.
+* Los permisos para el nuevo propietario son, en principio, una solicitud. Si alguno de los ítems no puede coger todos esos permisos solicitados, no cambiará ninguno de los permisos que tenga.
+
+Cuando esté listo para efectuar el cambio múltiple de permisos, pulse &apos;Aplicar&apos; y espere a que se muestren los resultados.
+
+SSi cierra la ventana de Cambio múltiple de permisos mientras se están cambiando, se cancelará la operación.
+ </notification>
+ <notification label="Permitir el daño" name="HelpRegionAllowDamage">
+ Si se marca la casilla, el sistema de &apos;vida&apos; afecta a todas las parcelas independientemente de lo que tenga marcado cada una.
+Si la casilla no está marcada, el propietario de cada parcela podrá decidir si activa en ella el sistema de &apos;vida&apos;.
+
+Por defecto: off
+ </notification>
+ <notification label="Nº máximo de avatares" name="HelpRegionAgentLimit">
+ Configura el número máximo de avatares que se permite en esta región.
+El funcionamiento puede variar según el número de avatares que estén presentes.
+
+Por defecto: 40
+ </notification>
+ <notification label="Plus de objetos" name="HelpRegionObjectBonus">
+ El plus de objetos es un multiplicador de los prims permitidos en cualquier parcela.
+El rango permitido es de 1 a 10. Fijándolo en &apos;1&apos;, se permiten 117 objetos en cada parcela de 512 m². Fijándolo en &apos;2&apos;, se permiten 234 (el doble), y así sucesivamente. El número máximo de objetos permitidos en una región sigue siendo de 15.000, sea cual sea el plus.
+Una vez establecido, tenga en cuenta que reducir el plus de objetos puede causar que se devuelvan o borren objetos.
+
+Por defecto: 1.0
+ </notification>
+ <notification label="Calificación" name="HelpRegionMaturity">
+ Configura el nivel de calificación de la región, tal como se verá en la barra superior del visor de cualquier residente, y en los datos que mostrará el mapa del mundo cuando se pase el cursor sobre esta región. Esta configuración también afecta al acceso a esta región y a los resultados de la búsqueda. Los demás residentes sólo entrarán en las regiones o verán aquellos resultados de la búsqueda que tengan el mismo nivel de calificación que ellos han elegido en sus preferencias.
+
+Puede llevar algún tiempo que este cambio se refleje en el mapa.
+ </notification>
+ <notification label="Impedir &apos;empujar&apos;" name="HelpRegionRestrictPushObject">
+ Esta casilla controla en toda la región los permisos para que haya &apos;empujones&apos;.
+Cuando está activada, los residentes sólo pueden ser empujados por sí mismos o por el propietario de la parcela.
+(&apos;Empujar&apos; se refiere a la función llPushObject() del LSL).
+
+Por defecto: Off
+ </notification>
+ <notification label="Unir/Dividir parcelas" name="HelpParcelChanges">
+ Esta casilla determina si las parcelas que no son del propietario del estado pueden puede unirse o subdividirse.
+Si no se marca esta opción:
+ * Sólo los propietarios o los administradores del estado pueden unir o dividir parcelas.
+ * Sólo podrán unir o dividir las parcelas pertenecientes al propietario o a un grupo en el que tengan los poderes adecuados.
+Si se marca esta opción:
+ * Todo los propietarios de parcelas podrán unir o dividir las que posean.
+ * En parcelas propiedad de un grupo, quienes tengan los poderes adecuados podrán unirlas o dividirlas.
+
+Por defecto: Marcado
+ </notification>
+ <notification label="No mostrar en la búsqueda" name="HelpRegionSearch">
+ Marcando esta casilla bloqueará que los propietarios de parcelas puedan listarlas en la búsqueda.
+
+Por defecto: Off
+ </notification>
+ <notification label="Cambiada la calificación de la región" name="RegionMaturityChange">
+ Se ha actualizado la calificación de esta región.
+Llevará algún tiempo que el cambio se refleje en el mapa.
+ </notification>
+ <notification label="Reventa de terreno" name="HelpRegionLandResell">
+ Los propietarios y los administradores del estado pueden poner en venta cualquier terreno que posea el propietario del estado.
+Si se desmarca esta opción, los compradores no podrán revender el terreno que compren en esta región.
+Si se marca esta opción, los compradores podrán revender el terreno que compren en esta región.
+
+Por defecto: Deshabilitado
+ </notification>
+ <notification label="Desactivar los scripts" name="HelpRegionDisableScripts">
+ Cuando el rendimiento de un sim es pobre, el culpable puede ser un script. Abra Estadísticas (Ctrl-May-1). Mire Simulator Physics FPS. Si es menor de 45, abre el panel Time, en la parte inferior de las Estadísticas. Si ve que Script Time está en 25 ms o más alto, pulse el botón Listar los scripts según su uso, y verá el nombre y la posición de los scripts que pueden estar causando el bajo rendimiento.
+
+Marcando la casilla Desactivar los scripts y pulsando el botón Aplicar, se desactivarán temporalmente en esta región todos los scripts.
+Debe hacer esto para viajar a la posición que ha visto en la Lista de scripts según su uso. Cuando llegue, investigue el script para determinar si es él quien causa el problema. Deberá contactar con el propietario del script, o borrar o devolver el objeto.
+Desmarque la casilla Desactivar los scripts y pulse Aplicar para reactivar los scripts en la región.
+
+Por defecto: off
+ </notification>
+ <notification label="Desactivar las colisiones" name="HelpRegionDisableCollisions">
+ Cuando el rendimiento de un sim es pobre, la culpa puede estar en los objetos físicos. Abra Estadísticas (Ctrl-May-1). Mire Simulator Physics FPS. Si es menor de 45, abre el panel Time, en la parte inferior de las Estadísticas. Si ve que Sim Time (Physics) está en 20 ms o más alto, pulse el botón Listar los objetos que colisionan, y verá el nombre y la posición de los objetos que pueden estar causando el bajo rendimiento.
+
+Marcando la casilla Desactivar las colisiones y pulsando el botón Aplicar, se desactivarán temporalmente las colisiones entre objetos.
+Debe hacer esto para viajar a la localización que se ha avisado en la Lista de objetos que colisionan. Cuando llegue, investigue el objeto:
+¿está colisionando constantemente con otros objetos? Deberá contactar con el propietario del objeto, o borrarlo o devolverlo.
+Desmarque la casilla Desactivar las colisiones y pulse Aplicar para reactivar las colisiones en la región.
+
+Por defecto: off
+ </notification>
+ <notification label="Desactivar la física" name="HelpRegionDisablePhysics">
+ Desactivar la física es parecido a Desactivar las colisiones, pero se desactivan todas las simulaciones físicas: no sólo se detiene la colisión de objetos, sino que también se provoca que los avatares no puedan moverse.
+
+Esto debería usarse sólo cuando Desactivar las colisiones no ha aportado a la región suficiente rendimiento para investigar un problema con las propiedades físicas o los objetos que colisionan.
+
+Cuando acabe, no se olvide de reactivar la física, o los avatares seguirán sin poderse mover.
+
+Por defecto: off
+ </notification>
+ <notification label="Objetos que colisionan" name="HelpRegionTopColliders">
+ Muestra una lista de aquellos objetos con más colisiones potenciales con otros objetos. Estos objetos pueden ralentizar el rendimiento.
+Seleccione Ver &gt; Estadísticas, y mire Simulator &gt; Time &gt; Sim Time (Physics) para ver si se están empleando en &apos;physics&apos; más de 20 ms.
+ </notification>
+ <notification label="Listar los scripts" name="HelpRegionTopScripts">
+ Muestra una lista de los objetos que más tiempo emplean en ejecutar scripts de LSL. Estos objetos pueden ralentizar el rendimiento.
+Seleccione Ver &gt; Estadísticas, y mire Simulator &gt; Time &gt; Script Time para ver si se están empleando más de 25 ms.
+ </notification>
+ <notification label="Reiniciar la región" name="HelpRegionRestart">
+ Reinicia los procesos del servidor en que corre esta región tras dos minutos de advertencia previa. Se desconectará a todos los residentes que estén en la región. La región guardará sus datos, y debería volver en unos 90 segundos.
+
+Reiniciar la región no solventa la mayoría de los problemas de rendimiento, y, normalmente, debe utilizarse sólo cuando se indique.
+ </notification>
+ <notification label="Nivel del agua" name="HelpRegionWaterHeight">
+ Es el nivel, en metros, del agua. Si se marca en algo distinto de 20, y usted tiene al lado el agua del mundo o un &apos;vacío&apos;, habrá una diferencia visible.
+
+Por defecto: 20
+ </notification>
+ <notification label="Elevación del terreno" name="HelpRegionTerrainRaise">
+ Es la distancia que, en metros, los propietarios de parcelas pueden elevar su terreno sobre la altura del terreno inicialmente creado.
+
+Por defecto: 4
+ </notification>
+ <notification label="Rebaje del terreno" name="HelpRegionTerrainLower">
+ Es la distancia que, en metros, los propietarios de parcelas pueden bajar su terreno sobre la altura del terreno inicialmente creado.
+
+Por defecto: -4
+ </notification>
+ <notification label="Subir un RAW para el terreno" name="HelpRegionUploadRaw">
+ Este botón carga un archivo .RAW en la región en que usted está.
+El archivo debe tener las dimensiones correctas (RGB, 256x256) y 13 canales. La forma mejor de crear un archivo de terreno es descargar el archivo RAW existente. Un buen inicio es modificar el canal rojo -red- (altura del terreno), y subirlo.
+
+La carga puede llevar unos 45 segundos. Fíjese que subir un archivo de terreno *no* moverá los objetos que haya en el terreno, sólo el terreno mismo y los permisos asociados a las parcelas.
+Por tanto, puede que algunos objetos acaben enterrados..
+
+Para más información sobre la edición de las alturas del terreno, consulte la ayuda F1.
+ </notification>
+ <notification label="Descargar el RAW del terreno" name="HelpRegionDownloadRaw">
+ Este botón descarga un archivo de esta región con los datos de alturas, dimensiones de las parcelas, estado de las parcelas en venta, y algunos permisos de las parcelas. Al abrir el archivo en un programa como Photoshop debe especificar las dimensiones del documento: RGB, 256x256 con 13 canales.
+Este archivo de terreno no puede abrirse de otro modo.
+
+Para más información sobre la edición de las alturas del terreno, consulte la ayuda F1.
+ </notification>
+ <notification label="Usar el Sol del estado" name="HelpRegionUseEstateSun">
+ Esta casilla hace que la posición del Sol en la región sea la misma que la del resto del estado.
+
+Por defecto: on
+ </notification>
+ <notification label="Fijar el Sol" name="HelpRegionFixedSun">
+ Esta casilla fija la posición del Sol en la posición del deslizable Fase, y detiene su movimiento.
+
+Por defecto: off
+ </notification>
+ <notification label="Predeterminar este terreno" name="HelpRegionBakeTerrain">
+ Este botón salva la forma actual del terreno como nueva forma por defecto para la región. Una vez predeterminado, el terreno puede volver a esa forma cada vez que usted u otros usan la opción &apos;Revertir&apos; en Editar el terreno. El terreno predeterminado también marca el punto medio para elevar y bajar los límites.
+ </notification>
+ <notification label="Administradores del estado" name="HelpEstateEstateManager">
+ Un administrador del estado es un residente en el que usted delega controles de la región y configuraciones del estado. Un administrador del estado puede cambiar algunas configuraciones de estos paneles, excepto las de subir, descargar, y predeterminar el terreno. Y, concretamente, puede autorizar o expulsar a residentes de su estado.
+
+Sólo el propietario del estado puede añadir o remover administradores, nadie más.
+Por favor, elija sólo a residentes en quienes confíe, pues usted será el responsable último de sus acciones.
+ </notification>
+ <notification label="Usar el horario global" name="HelpEstateUseGlobalTime">
+ Esta casilla hace que, en su estado, el Sol tenga la misma posición que en los estados propiedad de Linden, &apos;mainland&apos;.
+
+Por defecto: on
+ </notification>
+ <notification label="Fijar el Sol" name="HelpEstateFixedSun">
+ Esta casilla fija la posición del Sol en la posición del deslizable Fase, y detiene su movimiento.
+ </notification>
+ <notification label="Acceso público" name="HelpEstateExternallyVisible">
+ Esta casilla habilita a cualquier residente que esté en otro estado pueda entrar en éste sin tener que estar en una lista de acceso.
+
+Por defecto: on
+ </notification>
+ <notification label="Permitir el teleporte a cualquier punto" name="HelpEstateAllowDirectTeleport">
+ Cuando esta marcado, los residentes puede teleportarse directamente a cualquier punto de su estado. Si se desmarca, los residentes se teleportarán al Punto de Teleporte más cercano.
+
+Por defecto: off
+ </notification>
+ <notification label="Autorizar el acceso" name="HelpEstateAllowResident">
+ El acceso a este estado se limitará a los residentes aquí enumerados y a cualquier grupo de abajo. Esta configuración sólo funciona cuando está desmarcado Acceso público.
+ </notification>
+ <notification label="Autorizar el acceso de grupo" name="HelpEstateAllowGroup">
+ El acceso a este estado se limitará a los grupos aquí enumerados y a cualquier residente de abajo. Esta configuración sólo funciona cuando está desmarcado Acceso público.
+ </notification>
+ <notification label="Dirección de correo para infracciones" name="HelpEstateAbuseEmailAddress">
+ Aportando aquí una dirección de correo válida, se hará que las Denuncias de Infracción en este estado se envíen a esa dirección.
+Si se deja en blanco, las Denuncias de Infracción se enviarán sólo a Linden Lab.
+ </notification>
+ <notification label="Denegar el acceso" name="HelpEstateBanResident">
+ A los residentes en esta lista se les niega el acceso a su estado, independientemente de cualquier otra configuración.
+ </notification>
+ <notification label="Autorizar el chat de voz" name="HelpEstateVoiceChat">
+ Se autoriza a las parcelas del estado a tener sus propios canales de voz en los que los residentes puedan hablar y oír a otros residentes.
+
+Por defecto: off
+ </notification>
+ <notification label="Desajuste en la versión de voz" name="VoiceVersionMismatch">
+ En esta región, la versión de Second Life no es compatible con el chat de voz. Para que el chat de voz funcione correctamente, debe actualizar Second Life.
+ </notification>
+ <notification label="Contrato del estado" name="HelpEstateCovenant">
+ Definir un contrato del estado le permite vender parcelas del mismo. Si no existe un contrato, no puede vender terreno.
+La nota para su contrato puede estar vacía si es que no quiere aplicar reglas, avisos a los compradores, o cualquier otra cosa relacionada con el terreno antes de que sea comprado.
+
+Puede usar un contrato para comunicar al posible comprador reglas, pautas, información cultural, o, simplemente, sus propias expectativas.
+Así, puede hablarse de parcelación, normas de las construcciones, formas de pago, u otra información que considere que el nuevo propietario debe saber y con la que debe estar de acuerdo antes de hacer la compra.
+
+Para poder finalizar la compra, el comprador debe aceptar el contrato marcando la casilla adecuada. Los contratos de los estados son siempre visibles en la información Acerca del terreno en todas las parcelas.
+ </notification>
+ <notification label="No se pudo comprar los objetos" name="BuyObjectOneOwner">
+ No se pueden comprar a la vez objetos de propietarios diferentes.
+Por favor, seleccione sólo un objeto y vuelva a intentarlo.
+ </notification>
+ <notification label="No se pudo comprar el contenido" name="BuyContentsOneOnly">
+ No se puede comprar a la vez los contenidos de más de un objeto.
+Por favor, seleccione sólo un objeto y vuelva a intentarlo.
+ </notification>
+ <notification label="No se pudo comprar el contenido" name="BuyContentsOneOwner">
+ No se pueden comprar a la vez objetos de propietarios diferentes.
+Por favor, seleccione sólo un objeto y vuelva a intentarlo.
+ </notification>
+ <notification name="BuyOriginal">
+ ¿Comprar el objeto original de [OWNER] por [PRICE] L$?
+Usted pasará a ser el propietario de este objeto.
+Podrá:
+ Modificarlo: [MODIFYPERM]
+ Copiarlo: [COPYPERM]
+ Revenderlo o darlo: [RESELLPERM]
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="BuyOriginalNoOwner">
+ ¿Comprar el objeto original por [PRICE] L$?
+Usted pasará a ser el propietario de este objeto.
+Podrá:
+ Modificarlo: [MODIFYPERM]
+ Copiarlo: [COPYPERM]
+ Revenderlo o darlo: [RESELLPERM]
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="BuyCopy">
+ ¿Comprar una copia de [OWNER] por [PRICE] L$?
+El objeto se copiará a su inventario.
+Podrá:
+ Modificarlo: [MODIFYPERM]
+ Copiarlo: [COPYPERM]
+ Revenderlo o darlo: [RESELLPERM]
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="BuyCopyNoOwner">
+ ¿Comprar una copia por [PRICE] L$?
+El objeto se copiará a su inventario.
+Podrá:
+ Modificarlo: [MODIFYPERM]
+ Copiarlo: [COPYPERM]
+ Revenderlo o darlo: [RESELLPERM]
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="BuyContents">
+ ¿Comprar los contenidos de [OWNER] por [PRICE] L$?
+Serán copiados a su inventario.
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="BuyContentsNoOwner">
+ ¿Comprar los contenidos por [PRICE] L$?
+Serán copiados a su inventario.
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmPurchase">
+ Esta transacción hará que:
+[ACTION]
+
+¿Está seguro de querer hacer esta compra?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmPurchasePassword" type="password">
+ Esta transacción hará que:
+[ACTION]
+
+¿Está seguro de querer hacer esta compra?
+Por favor, vuelva a escribir su contraseña y pulse OK.
+ <form name="form">
+ <input name="message" type="password"/>
+ <button name="ConfirmPurchase" text="OK"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification name="SetPickLocation">
+ Nota:
+Ha actualizado la posición de este Destacado, pero los otros detalles permanecen con sus valores originales.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="MoveInventoryFromObject">
+ Ha elegido ítems &apos;no copiables&apos; de su inventario. Esos ítems se quitarán de su inventario, no se copiarán.
+
+¿Mover el/los ítem/s del inventario?
+ <usetemplate ignoretext="Cuando mueva objetos &apos;no copiables&apos; del inventario" name="okcancelignore" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="MoveInventoryFromScriptedObject">
+ Ha elegido ítems &apos;no copiables&apos; de su inventario. Esos ítems se moverán a su inventario, no se copiarán.
+Dado que estos objetos tienen scripts, moverlos a su inventario puede provocar un mal funcionamiento del script.
+
+¿Mover el/los ítem/s del inventario?
+ <usetemplate ignoretext="Cuando mueva objetos con script &apos;no copiables&apos; del inventario" name="okcancelignore" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="ClickActionNotPayable">
+ Atención: la acción Pagar al objeto al pulsar ha sido marcada, pero sólo funcionará si se añade un script con un evento money().
+ <form name="form">
+ <ignore name="ignore" text="Cuando configure &apos;Pagar&apos; en objetos sin el evento money()"/>
+ </form>
+ </notification>
+ <notification name="OpenObjectCannotCopy">
+ En este objeto, no hay ítems que esté autorizado a copiar.
+ </notification>
+ <notification name="WebLaunchAccountHistory">
+ ¿Ir al sitio web de Second Life para ver el historial de su cuenta?
+ <usetemplate ignoretext="Cuando se cargue la página web del historial de la cuenta" name="okcancelignore" notext="Cancelar" yestext="Ir a la página"/>
+ </notification>
+ <notification name="ClickOpenF1Help">
+ ¿Visitar el sitio web de Soporte de Second Life?
+ <usetemplate ignoretext="Cuando visite el sitio web de Soporte de Second Life." name="okcancelignore" notext="Cancelar" yestext="Ir"/>
+ </notification>
+ <notification name="ConfirmQuit">
+ ¿Está seguro de que quiere salir?
+ <usetemplate ignoretext="Cuando esté saliendo de Second Life." name="okcancelignore" notext="Continuar" yestext="Salir"/>
+ </notification>
+ <notification name="HelpReportAbuseEmailLL">
+ Use esta herramienta para denunciar violaciones de las Normas de la Comunidad y las Condiciones del Servicio. Vea:
+
+http://secondlife.com/corporate/tos.php
+http://secondlife.com/corporate/cs.php
+
+Se investigan y resuelven todas las infracciones denunciadas de las Normas de la Comunidad y las Condiciones del Servicio. Puede ver la resolución tomada en el Informe de Incidentes, en:
+
+http://secondlife.com/support/incidentreport.php
+ </notification>
+ <notification name="HelpReportAbuseEmailEO">
+ IMPORTANTE: Esta denuncia no irá a Linden Lab, sino al propietario de la región en la que usted se encuentra actualmente.
+
+Como un servicio a los residentes y visitantes, el propietario de la región ha elegido recibir y resolver todas las enuncias que se originen en esta región. Linden Lab no investigará las denuncias que usted envíe desde aquí.
+
+El propietario de la región resolverá las denuncias basándose en las reglas locales de la región, tal como se detallan en el Contrato del estado.
+(Puede ver el Contrato yendo al menú Mundo y eligiendo Acerca del terreno).
+
+La resolución de esta denuncia se aplica exclusivamente a esta región; el acceso de los residentes a otras áreas de Second Life no se verá afectado por el resultado de esta denuncia. Únicamente Linden Lab puede impedir el acceso a la totalidad de Second Life.
+ </notification>
+ <notification name="HelpReportBug">
+ Use esta herramienta *sólo* para informar de cuestiones técnicas que no se comportan como se describe o era esperable. Por favor, aporte todos los detalles que pueda.
+Deberá responder al correo electrónico de auto respuesta para añadir más detalles a su informe.
+
+Todos los informes de fallos serán investigados y evaluados. No se contestará por correo electrónico.
+
+Si tiene algún problema técnico, por favor, contacte con Soporte en:
+
+http://secondlife.com/community/support.php
+
+Nota: no se investigarán los informes incompletos.
+ </notification>
+ <notification name="HelpReportAbuseSelectCategory">
+ Por favor, elija una categoría para esta denuncia de infracción.
+Seleccionar una categoría nos ayuda a clasificar y procesar las denuncias de infracciones.
+ </notification>
+ <notification name="HelpReportBugSelectCategory">
+ Por favor, elija una categoría para este fallo.
+Seleccionar una categoría nos ayuda a clasificar y procesar los informes de fallos.
+ </notification>
+ <notification name="HelpReportAbuseAbuserNameEmpty">
+ Por favor, escriba el nombre del infractor.
+Aportar el dato preciso nos ayuda a clasificar y procesar las denuncias de infracciones.
+ </notification>
+ <notification name="HelpReportAbuseAbuserLocationEmpty">
+ Por favor, escriba la localización donde tuvo lugar la infracción.
+Aportar el dato preciso nos ayuda a clasificar y procesar las denuncias de infracciones.
+ </notification>
+ <notification name="HelpReportAbuseSummaryEmpty">
+ Por favor, escriba un resumen de la infracción que ha habido.
+Aportar un resumen preciso nos ayuda a clasificar y procesar las denuncias de infracciones.
+ </notification>
+ <notification name="HelpReportBugSummaryEmpty">
+ Por favor, escriba un resumen del fallo.
+Aportar un resumen preciso nos ayuda a clasificar y procesar los informes de fallos.
+ </notification>
+ <notification name="HelpReportAbuseDetailsEmpty">
+ Por favor, escriba una descripción minuciosa de la infracción que ha habido.
+Sea tan específico como pueda, incluyendo los nombres y los detalles implicados en el incidente que denuncia.
+Aportar una descripción precisa nos ayuda a clasificar y procesar las denuncias de infracciones.
+ </notification>
+ <notification name="HelpReportBugDetailsEmpty">
+ Por favor, escriba una descripción minuciosa del fallo.
+Sea tan específico como pueda, incluyendo -si es posible- los pasos que permitan reproducir el fallo.
+Aportar una descripción precisa nos ayuda a clasificar y procesar los informes de fallos.
+ </notification>
+ <notification name="HelpReportAbuseContainsCopyright">
+ Estimado Residente:
+
+Parece que está usted denunciando una violación de la propiedad intelectual. Por favor, asegúrese de que su denuncia es correcto.
+
+(1) El proceso de la denuncia. Debe enviar una denuncia de infracción si cree que un Residente está reventando el sistema de permisos de Second Life, por ejemplo, usando un CopyBot u otras herramientas parecidas para copiar, infringiendo los derechos de propiedad intelectual. El Equipo de Infracciones (Abuse Team) investiga y lleva a cabo las acciones disciplinarias apropiadas ante toda acción que viole las las Normas de la Comunidad de Second Life o las Condiciones del Servicio. Sin embargo, el Equipo de Infracciones ni gestiona ni responde a las solicitudes de eliminar contenidos del mundo de Second Life.
+
+(2) El DMCA o Proceso de Eliminación de Contenido. Para solicitar que se elimine algún contenido de Second Life, DEBE enviar una notificación válida de infracción tal y como se explica en nuestra DMCA Policy en http://secondlife.com/corporate/dmca.php.
+
+Si todavía quiere seguir con el proceso de infracción, por favor, cierre esta ventana y acabe de enviar su denuncia. En concreto, debe seleccionar la categoría &apos;CopyBot o Programa para saltarse los permisos&apos;.
+
+Gracias,
+
+Linden Lab
+ </notification>
+ <notification name="FailedRequirementsCheck">
+ Han desaparecido de [FLOATER] estos componentes:
+[COMPONENTS]
+ </notification>
+ <notification label="Reemplazar el anexado actual" name="ReplaceAttachment">
+ En ese punto de su cuerpo ya hay un objeto anexado. ¿Quiere reemplazarlo por el objeto que ha elegido?
+ <form name="form">
+ <ignore name="ignore" save_option="true" text="Cuando se reemplacen anexados existentes"/>
+ <button ignore="Reemplazar automaticamente" name="Yes" text="OK"/>
+ <button ignore="Nunca reemplazar" name="No" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification label="¡Aviso! Modo Ocupado" name="BusyModePay">
+ Usted está en el modo Ocupado. Por tanto, no recibirá ningún ítem a cambio de esta pago.
+
+¿Quiere salir del modo Ocupado ante de completar esta transacción?
+ <form name="form">
+ <ignore name="ignore" save_option="true" text="Cuando se esté pagando a un objeto o persona en el modo Ocupado"/>
+ <button ignore="Siempre salir del modo Ocupado" name="Yes" text="OK"/>
+ <button ignore="Nunca salir del modo Ocupado" name="No" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification name="ConfirmEmptyTrash">
+ ¿Está seguro de que quiere vaciar definitivamente el contenido de su Papelera?
+ <usetemplate ignoretext="Cuando se vacíe la Papelera" name="okcancelignore" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmClearBrowserCache">
+ ¿Está seguro de que quiere limpiar la caché de su navegador?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Sí"/>
+ </notification>
+ <notification name="ConfirmClearCookies">
+ ¿Está seguro de que quiere limpiar sus cookies?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Sí"/>
+ </notification>
+ <notification name="ConfirmClearMediaUrlList">
+ ¿Está seguro de que quiere vaciar su lista de URL guardadas?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Sí"/>
+ </notification>
+ <notification name="ConfirmEmptyLostAndFound">
+ ¿Está seguro de que quiere eliminar permanentemente el contenido de su carpeta Objetos Perdidos?
+ <usetemplate ignoretext="Cuando se vacíe la carpeta del inventario Objetos Perdidos" name="okcancelignore" notext="No" yestext="Sí"/>
+ </notification>
+ <notification name="CopySLURL">
+ Se ha copiado a su portapapeles la siguiente SLurl:
+ [SLURL]
+
+Publíquela en una página web para que otros puedan acceder fácilmente a esta posición, o pruébela usted mismo pegándola en la barra de direcciones de su navegador.
+ <form name="form">
+ <ignore name="ignore" text="Cuando se copie una SLurl al portapapeles"/>
+ </form>
+ </notification>
+ <notification name="GraphicsPreferencesHelp">
+ Este panel controla el tamaño de la ventana, y la resolución y la calidad de los gráficos del cliente. La interfaz Preferencias &gt; Gráficos le permite escoger entre cuatro niveles gráficos: Bajo, Medio, Alto, y Ultra. También puede personalizar sus configuraciones gráficas marcando la casilla Personalizar y adaptando estas configuraciones:
+
+Efectos: activa o desactiva varios tipos de shaders.
+
+Objetos reflejados: determina qué objetos reflejará el agua.
+
+Renderización del avatar: muestra opciones que afectan a cómo renderiza el cliente los avatares.
+
+Distancia de dibujo: afecta a cuán lejos de su punto de vista se renderizarán los objetos en la escena.
+
+Núm. máx. de partículas: define el número máximo de partículas que podrá ver a la vez en su pantalla.
+
+Calidad del procesamiento: define la resolución con que se renderiza el brillo.
+
+Detalle de la malla: define la cantidad de dettales o número de triángulos usados para renderizar algunos objetos. Cuanto más alto sea el valor, más detalle, pero más tiempo para renderizar.
+
+Detalles de la iluminación: determina que tipo de luces quiere usted que se rendericen.
+
+Nivel de detalle del terreno: marca con cuánto detalle quiere ver la textura del terreno.
+ </notification>
+ <notification name="WLSavePresetAlert">
+ ¿Quiere sobrescribir la preselección guardada?
+ <usetemplate name="okcancelbuttons" notext="No" yestext="Sí"/>
+ </notification>
+ <notification name="WLDeletePresetAlert">
+ ¿Quiere borrar [SKY]?
+ <usetemplate name="okcancelbuttons" notext="No" yestext="Sí"/>
+ </notification>
+ <notification name="WLNoEditDefault">
+ No puede editar ni borrar una preselección por defecto.
+ </notification>
+ <notification name="WLMissingSky">
+ Este archivo del ciclo de un día se refiere a un archivo perdido de cielo: [SKY].
+ </notification>
+ <notification name="PPSaveEffectAlert">
+ Ya existe un efecto de procesamiento. ¿Desea sobreescribirlo?
+ <usetemplate name="okcancelbuttons" notext="No" yestext="Sí"/>
+ </notification>
+ <notification name="HelpEditSky">
+ Edite los deslizables del WindLight para crear y guardar configuraciones del cielo.
+ </notification>
+ <notification name="HelpEditDayCycle">
+ Define cómo se verán los cielos a lo largo del día.
+ </notification>
+ <notification name="EnvSettingsHelpButton">
+ Estas configuraciones ajustan la forma en que usted ve el medio ambiente localmente, en su ordenador. Su tarjeta gráfica debe admitir shaders de la atmósfera (&apos;atmospheric shaders&apos;) para poder acceder a esta configuración.
+
+Ajuste el deslizable &quot;Duración de un día&quot; para cambiar localmente, en su visor, las etapas del día.
+
+Ajuste el deslizable &quot;Nubosidad&quot; para controlar cuántas nubes cubren el cielo.
+
+Pulse un color en el selector de &quot;Color del agua&quot; para cambiar el color de la misma.
+
+Ajuste el deslizable &quot;Claridad del agua&quot; para controlar el nivel de claridad del agua bajo la superficie.
+
+Pulse &quot;Usar el horario del estado&quot; para devolver los valores del día al tiempo actual de la región y seguir a partir de él.
+
+Pulse &quot;Cielo avanzado&quot; para abrir un editor con configuraciones avanzadas para el cielo.
+
+Pulse &quot;Agua avanzada&quot; para abrir un editor con configuraciones avanzadas para el agua.
+ </notification>
+ <notification name="HelpDayCycle">
+ El Editor del ciclo del día le permite controlar el cielo de Second Life durante el ciclo día/noche. Este es el ciclo que usa el deslizable Duración de un día del Editor del entorno.
+
+El Editor del ciclo del día trabaja configurando fotogramas clave (&apos;keyframes&apos;): nodos (representados por los puntos grises en la línea del tiempo) cada uno de los cuales tiene asociado un Cielo definido. Según progresa la Duración de un día, el WindLight realiza la &quot;animación&quot; del cielo interpolándose entre esos fotogramas clave.
+
+La flecha amarilla sobre la línea del tiempo representa lo que usted ve actualmente, basándose en la Duración de un día. Púlsela y muévela para ver cómo cambia la animación del día. Puede añadir o borrar fotogramas clave pulsando los botones Añadir un punto o Quitar un punto, situados a la derecha de la línea del tiempo.
+
+Puede establecer la posición en el tiempo de cualquier fotograma clave moviéndolo a lo largo de la línea del tiempo, o configurando manualmente su valor por su valor manualmente en el recuadro Configuración del fotograma clave. También en ese recuadro podrá asociar el fotograma clave a un modelo predefinido de WindLight.
+
+La Duración del ciclo establece la duración total de un &quot;día&quot;. Marcar un valor bajo (por ejemplo, 2 min.) hará que las 24 horas de su línea del tiempo se animen ¡en sólo dos minutos reales! Una vez que esté satisfecho con su ciclo de la línea del tiempo y los fotogramas clave, utilice los botones Probar y Parar para obtener una vista previa de los resultados. Recuerde que también puede mover la flecha amarilla de encima de la línea del tiempo para ver el ciclo de la animación. El botón Usar el horario del estado sincronizará su ciclo de duración de un día con el ciclo del estado.
+
+Cuando todo esté a su gusto, puede guardar esos datos y cargarlos luego usando los botones Guardar este tipo de día y Cargar un tipo de día. Note que, por el momento, sólo podemos permitir un ciclo de un día.
+ </notification>
+ <notification name="HelpBlueHorizon">
+ Use los deslizables Rojo/Verde/Azul (RVA) para ajustar el color del cielo. Puede usar el deslizable de Intensidad (I) para moverlos al unísono.
+ </notification>
+ <notification name="HelpHazeHorizon">
+ La Cantidad de bruma es uno de los parámetros más útiles para ajustar el nivel de luz de la escena. Es eficaz para simular muchos ajustes de la exposición, como la claridad en un ambiente nublado o de nevisca, o las tonalidades del una flor Iris aún cerrada.
+ </notification>
+ <notification name="HelpBlueDensity">
+ La Saturación afecta a la densidad global de la saturación de color del cielo y la niebla. Si mueve el deslizable Intensidad (I) a la derecha, los colores serán más vivos y brillantes. Si lo mueve a la izquierda, se irán decolorando hasta llegar incluso al blanco y negro. Si desea ajustar el balance de color del cielo, puede controlar la saturación de cada elemento usando el deslizable Rojo/Verde/Azul (RVA).
+ </notification>
+ <notification name="HelpHazeDensity">
+ La Densidad de la bruma controla lo sombrío de la atmósfera, su neblina. Es eficaz para simular escenas con mucho humo o contaminantes, y también para simular niebla y llovizna.
+ </notification>
+ <notification name="HelpDensityMult">
+ La Densidad puede usarse para definir globalmente la &apos;pesadez&apos; de la atmósfera. Los ajustes bajos dan sensación de un &quot;aire limpio&quot;, y los altos de pesadez, de esmog.
+ </notification>
+ <notification name="HelpDistanceMult">
+ Ajusta a qué distancia se percibe el WindLight. El valor cero desactiva la influencia del WindLight en el terreno y los objetos. Los valores superiores a 1 simulan mayores distancias a las que afectan los efectos atmosféricos
+ </notification>
+ <notification name="HelpMaxAltitude">
+ La Altitud máx. ajusta hasta que altura el WindLight realiza sus cálculos para computar la iluminación atmosférica. En las últimas horas del día, es útil para ajustar la &quot;profundidad&quot; a la que aparece el Sol.
+ </notification>
+ <notification name="HelpSunlightColor">
+ Ajusta en la escena la intensidad y el color de las luces directas.
+ </notification>
+ <notification name="HelpSunAmbient">
+ Ajusta en la escena la intensidad y el color de la luz ambiental.
+ </notification>
+ <notification name="HelpSunGlow">
+ El deslizable Tamaño controla el tamaño del Sol.
+El deslizable Visión controla cómo se ve de borroso el Sol en el cielo.
+ </notification>
+ <notification name="HelpSceneGamma">
+ Ajusta la distribución de luz y oscuridad en la pantalla.
+ </notification>
+ <notification name="HelpStarBrightness">
+ Ajusta el brillo de las estrellas en el cielo.
+ </notification>
+ <notification name="HelpTimeOfDay">
+ Controla la posición del Sol en el cielo. Es parecido a la elevación.
+ </notification>
+ <notification name="HelpEastAngle">
+ Controla la posición del Sol en el cielo. Es parecido al acimut.
+ </notification>
+ <notification name="HelpCloudColor">
+ Edita el color de las nubes. En general, es recomendable mantenerlas blanquecinas.
+Pero, vaya, diviértase si quiere.
+ </notification>
+ <notification name="HelpCloudDetail">
+ Controla el detalle de las capas superiores de la imagen en la imagen principal de las nubes. X e Y controlan su posición. D (Densidad) controla la densidad o la fracturación con que aparecen las nubes.
+ </notification>
+ <notification name="HelpCloudDensity">
+ Le permite controlar la posición de las nubes con los deslizables X e Y, y su desnidad con el deslizable D.
+ </notification>
+ <notification name="HelpCloudCoverage">
+ Controla cuánto cubren el cielo las nubes.
+ </notification>
+ <notification name="HelpCloudScale">
+ Controla el tamaño de la imagen de las nubes en la bóveda celeste.
+ </notification>
+ <notification name="HelpCloudScrollX">
+ Controla la velocidad de las nubes al moverse en la dirección del eje X.
+ </notification>
+ <notification name="HelpCloudScrollY">
+ Controla la velocidad de las nubes al moverse en la dirección del eje Y.
+ </notification>
+ <notification name="HelpClassicClouds">
+ Marque esta casilla para activar la aparición de las nubes clásicas de Second Life junto a las nubes del WindLight.
+ </notification>
+ <notification name="HelpWaterFogColor">
+ Elije el color del agua bajo la superficie.
+ </notification>
+ <notification name="HelpWaterFogDensity">
+ Controla la densidad de la claridad del agua, y a qué distancia puede verse bajo ella.
+ </notification>
+ <notification name="HelpUnderWaterFogMod">
+ Modifica el efecto de Transparencia para controlar cuán lejos su avatar puede ver bajo el agua.
+ </notification>
+ <notification name="HelpWaterGlow">
+ Controla la cantidad de brillo de la superficie del agua.
+ </notification>
+ <notification name="HelpWaterNormalScale">
+ Controla el tamaño de las tres ondulaciones que componen el agua.
+ </notification>
+ <notification name="HelpWaterFresnelScale">
+ Controla cuánta luz se refleja desde diferentes ángulos.
+ </notification>
+ <notification name="HelpWaterFresnelOffset">
+ Controla cuánta intensidad de luz se refleja.
+ </notification>
+ <notification name="HelpWaterScaleAbove">
+ Controla la cantidad de luz refractada mirando la superficie del agua desde arriba.
+ </notification>
+ <notification name="HelpWaterScaleBelow">
+ Controla la cantidad de luz refractada mirando la superficie del agua desde debajo.
+ </notification>
+ <notification name="HelpWaterBlurMultiplier">
+ Controla cómo se mezclan las ondas y los reflejos.
+ </notification>
+ <notification name="HelpWaterNormalMap">
+ Controla cuál es la capa de &apos;vista normal&apos; del agua, para determinar las reflexiones/refracciones.
+ </notification>
+ <notification name="HelpWaterWave1">
+ Controla hacia adónde y a qué velocidad se mueve en los ejes X e Y la versión en tamaño grande de la &apos;vista normal&apos;.
+ </notification>
+ <notification name="HelpWaterWave2">
+ Controla hacia adónde y a qué velocidad se mueve en los ejes X e Y la versión en tamaño pequeño de la &apos;vista normal&apos;.
+ </notification>
+ <notification name="NewSkyPreset">
+ Dame un nombre para el cielo nuevo.
+ <form name="form">
+ <input name="message" type="text">
+ Preselección nueva
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification name="ExistsSkyPresetAlert">
+ ¡Esa preselección ya existe!
+ </notification>
+ <notification name="NewWaterPreset">
+ Dame un nombre para la nueva preselección de agua.
+ <form name="form">
+ <input name="message" type="text">
+ Preselección nueva
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification name="ExistsWaterPresetAlert">
+ ¡Esa preselección ya existe!
+ </notification>
+ <notification name="WaterNoEditDefault">
+ No puede editar o borrar una preselección por defecto.
+ </notification>
+ <notification name="ChatterBoxSessionStartError">
+ No se puede empezar una nueva sesión de chat con [RECIPIENT].
+[REASON]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="ChatterBoxSessionEventError">
+ [EVENT]
+[REASON]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="ForceCloseChatterBoxSession">
+ Debe cerrarse su sesión de chat con [NAME].
+[REASON]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="Cannot_Purchase_an_Attachment">
+ No se pueden comprar los ítems que aún forman parte de un objeto anexado.
+ </notification>
+ <notification label="Acerca de las solicitudes de autorización de débito" name="DebitPermissionDetails">
+ Al admitir esta petición, le da permiso a un script para que coja dólares Linden (L$) de su cuenta. Para revocar este permiso, el propietario del objeto debe eliminarlo o reiniciar ese script del objeto.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="AutoWearNewClothing">
+ ¿Quiere vestirse automáticamente el ítem de ropa nueva que ha creado?
+ <usetemplate ignoretext="Vestirme automáticamente la ropa nueva" name="okcancelignore" notext="No" yestext="Sí"/>
+ </notification>
+ <notification name="NotAgeVerified">
+ Para acceder a esta parcela, se debe haber verificado su edad.
+¿Quiere visitar la web de Second Life para verificar su edad?
+
+[_URL]
+ <url name="url" option="0">
+ https://secondlife.com/account/verification.php
+ </url>
+ <usetemplate ignoretext="Advertir de la falta de la verificación de edad" name="okcancelignore" notext="No" yestext="Sí"/>
+ </notification>
+ <notification name="Cannot enter parcel: no payment info on file">
+ Antes de que pueda acceder a esta parcela, se requiere que usted tenga archivada su información de pago.
+¿Quiere visitar la web de Second Life para actualizar esto?
+
+[_URL]
+ <url name="url" option="0">
+ https://secondlife.com/account/index.php?lang=es
+ </url>
+ <usetemplate ignoretext="Advertir de la falta de información de pago" name="okcancelignore" notext="No" yestext="Sí"/>
+ </notification>
+ <notification name="MissingString">
+ La cadena [STRING_NAME] Ha desaparecido de strings.xml
+ </notification>
+ <notification name="SystemMessageTip">
+ [MESSAGE]
+ </notification>
+ <notification name="Cancelled">
+ Cancelado
+ </notification>
+ <notification name="CancelledSit">
+ Cancelado el sentarse
+ </notification>
+ <notification name="CancelledAttach">
+ Candelado el anexar
+ </notification>
+ <notification name="ReplacedMissingWearable">
+ Reemplazadas las ropas o partes del cuerpo perdidas con sus equivalentes por defecto.
+ </notification>
+ <notification name="GroupNotice">
+ Asunto: [SUBJECT], Mensaje: [MESSAGE]
+ </notification>
+ <notification name="FriendOnline">
+ [FIRST] [LAST] está conectado
+ </notification>
+ <notification name="FriendOffline">
+ [FIRST] [LAST] no está conectado
+ </notification>
+ <notification name="AddSelfFriend">
+ No se puede añadir como amigo a usted mismo.
+ </notification>
+ <notification name="UploadingAuctionSnapshot">
+ Subiendo fotos del mundo y del sitio web...
+(tardará unos 5 minutos).
+ </notification>
+ <notification name="UploadPayment">
+ Ha pagado [AMOUNT] LS por la subida.
+ </notification>
+ <notification name="UploadWebSnapshotDone">
+ Completada la subida de la foto del sitio web.
+ </notification>
+ <notification name="UploadSnapshotDone">
+ Completada la subida de la foto del mundo.
+ </notification>
+ <notification name="TerrainDownloaded">
+ Se ha descargado Terrain.raw
+ </notification>
+ <notification name="GestureMissing">
+ El gesto [NAME] ha desaparecido de la base de datos.
+ </notification>
+ <notification name="UnableToLoadGesture">
+ No se ha podido cargar el gesto [NAME].
+Por favor, vuelva a intentarlo.
+ </notification>
+ <notification name="LandmarkMissing">
+ El hito ha desaparecido de la base de datos.
+ </notification>
+ <notification name="UnableToLoadLandmark">
+ No se ha podido cargar el hito. Por favor, vuelva a intentarlo.
+ </notification>
+ <notification name="CapsKeyOn">
+ Tiene pulsada su tecla de bloqueo de mayúsculas, lo que influirá en cómo escriba la contraseña.
+Quizá quiera soltar esa tecla.
+ </notification>
+ <notification name="NotecardMissing">
+ La nota ha desaparecido de la base de datos.
+ </notification>
+ <notification name="NotecardNoPermissions">
+ No tiene permisos suficientes para ver la nota.
+ </notification>
+ <notification name="RezItemNoPermissions">
+ No tiene permisos suficientes para renderizar el objeto.
+ </notification>
+ <notification name="UnableToLoadNotecard">
+ En este momento no se puede cargar la nota.
+ </notification>
+ <notification name="ScriptMissing">
+ El script ha desaparecido de la base de datos.
+ </notification>
+ <notification name="ScriptNoPermissions">
+ No tiene permisos suficientes para ver el script.
+ </notification>
+ <notification name="UnableToLoadScript">
+ No se ha podido cargar el script. Por favor, vuelva a intentarlo.
+ </notification>
+ <notification name="IncompleteInventory">
+ Los contenidos que está usted ofreciendo aún no están disponibles. Por favor, vuelva a ofrecerlos en un minuto.
+ </notification>
+ <notification name="CannotModifyProtectedCategories">
+ No puede modificar categorías que están protegidas.
+ </notification>
+ <notification name="CannotRemoveProtectedCategories">
+ No puede quitar categorías que están protegidas.
+ </notification>
+ <notification name="OfferedCard">
+ Ha ofrecido una tarjeta de visita a [FIRST] [LAST]
+ </notification>
+ <notification name="UnableToBuyWhileDownloading">
+ No se puede comprar un objeto mientras se descargan sus datos.
+Por favor, vuelva a intentarlo.
+ </notification>
+ <notification name="UnableToLinkWhileDownloading">
+ No se puede enlazar un objeto mientras se descargan sus datos.
+Por favor, vuelva a intentarlo.
+ </notification>
+ <notification name="CannotBuyObjectsFromDifferentOwners">
+ No puede comprar a la vez objetos de diferentes propietarios.
+Por favor, elija sólo uno.
+ </notification>
+ <notification name="ObjectNotForSale">
+ El objeto no aparece como puesto a la venta.
+ </notification>
+ <notification name="EnteringGodMode">
+ Entrando en el modo administrativo, nivel [LEVEL]
+ </notification>
+ <notification name="LeavingGodMode">
+ Saliendo del modo administrativo, nivel [LEVEL]
+ </notification>
+ <notification name="CopyFailed">
+ No se ha hecho la copia porque usted no tiene permiso para hacerla
+ </notification>
+ <notification name="InventoryAccepted">
+ [NAME] ha aceptado su oferta del inventario.
+ </notification>
+ <notification name="InventoryDeclined">
+ [NAME] ha rehusado su oferta del inventario.
+ </notification>
+ <notification name="ObjectMessage">
+ [NAME]: [MESSAGE]
+ </notification>
+ <notification name="CallingCardAccepted">
+ Se ha aceptado su tarjeta de visita.
+ </notification>
+ <notification name="CallingCardDeclined">
+ Se ha rehusado su tarjeta de visita.
+ </notification>
+ <notification name="TeleportToLandmark">
+ Ahora que ha llegado a mainland (los continentes), puede teleportarse a localizaciones como &apos;[NAME]&apos; pulsando el botón Inventario de la esquina inferior derecha de su pantalla, y, después, seleccionando la carpeta Hitos.
+Pulse dos veces en el hito y, luego, pulse en Teleportar para viajar hasta allí.
+ </notification>
+ <notification name="TeleportToPerson">
+ Ahora que ha llegado a mainland (los continentes), puede contactar con residentes como &apos;[NAME]&apos; pulsando el botón Inventario de la esquina inferior derecha de su pantalla, y, después, seleccionando la carpeta Tarjetas de visita.
+Pulse dos veces en la tarjeta, pulse en Mensaje Instantáneo, y escriba un mensaje.
+ </notification>
+ <notification name="CantSelectLandFromMultipleRegions">
+ No puede seleccionar un terreno que cruce las fronteras entre servidores.
+Inténtelo seleccionando un trozo más pequeño de terreno.
+ </notification>
+ <notification name="SearchWordBanned">
+ Se han excluido algunos términos de su búsqueda debido a restricciones en el contenido, según se especifica en las Normas de la Comunidad.
+ </notification>
+ <notification name="NoContentToSearch">
+ Por favor, elija al menos un tipo de contenido a buscar (&apos;PG&apos;, &apos;Mature&apos;, o &apos;Adult&apos;).
+ </notification>
+ <notification name="GroupVote">
+ [NAME] ha propuesto votar:
+[MESSAGE]
+ <form name="form">
+ <button name="VoteNow" text="Votar ahora"/>
+ <button name="Later" text="Más tarde"/>
+ </form>
+ </notification>
+ <notification name="SystemMessage">
+ [MESSAGE]
+ </notification>
+ <notification name="EventNotification">
+ Notificación de un evento:
+
+[NAME]
+[DATE]
+ <form name="form">
+ <button name="Teleport" text="Teleportar"/>
+ <button name="Description" text="Descripción"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification name="TransferObjectsHighlighted">
+ En estos momentos, están realzados todos los objetos de esta parcela que serán transferidos al comprador de la misma.
+
+* No están realzados los árboles y hierbas que se transferirán.
+ <form name="form">
+ <button name="Done" text="Hecho"/>
+ </form>
+ </notification>
+ <notification name="DeactivatedGesturesTrigger">
+ Desactivados los gestos que tienen el mismo botón:
+[NAMES]
+ </notification>
+ <notification name="NoQuickTime">
+ No se ve como instalado en su sistema el software QuickTime de Apple.
+Si quiere ver por streaming elementos multimedia en las parcelas que los tengan, debe ir al sitio web de QuickTime (http://www.apple.com/quicktime) e instalar el QuickTime Player.
+ </notification>
+ <notification name="OwnedObjectsReturned">
+ Se han devuelto a su inventario los objetos de los que usted era propietario en la parcela seleccionada.
+ </notification>
+ <notification name="OtherObjectsReturned">
+ Se han devuelto a su inventario los objetos de los que usted era propietario en la parcela propiedad de [FIRST] [LAST].
+ </notification>
+ <notification name="OtherObjectsReturned2">
+ Se han devuelto a su propietario los objetos que, en la parcela seleccionada, eran propiedad del residente &apos;[NAME]&apos;.
+ </notification>
+ <notification name="GroupObjectsReturned">
+ Se han devuelto a los inventarios de sus propietarios los objetos que estaban compartidos con el grupo [GROUPNAME] en la parcela seleccionada.
+Los objetos transferibles que se transfirieron al grupo se han devuelto a sus propietarios anteriores.
+Los objetos no transferibles que se transfirieron al grupo han sido borrados.
+ </notification>
+ <notification name="UnOwnedObjectsReturned">
+ Se han devuelto a sus propietarios los objetos de los que usted NO era propietario en la parcela seleccionada.
+ </notification>
+ <notification name="NotSafe">
+ Este es un terreno con el daño autorizado (&apos;no seguro&apos;).
+Aquí puede ser herido. Si muere, será teleportado a su Base.
+ </notification>
+ <notification name="NoFly">
+ En este terreno no se permite volar (&apos;no volar&apos;).
+Aquí no debe volar.
+ </notification>
+ <notification name="PushRestricted">
+ Este terreno es &apos;Sin empujones&apos;.
+No puede empujar a otros a menos que sea el propietario del terreno.
+ </notification>
+ <notification name="NoVoice">
+ Este terreno tiene desactivada la voz.
+ </notification>
+ <notification name="NoBuild">
+ Este terreno tiene desactivado el construir (&apos;no construir&apos;).
+Aquí no puede crear objetos.
+ </notification>
+ <notification name="ScriptsStopped">
+ Un administrador ha detenido temporalmente los scripts en esta región.
+ </notification>
+ <notification name="ScriptsNotRunning">
+ En esta región no se está ejecutando ningún script.
+ </notification>
+ <notification name="NoOutsideScripts">
+ Esta región tiene desactivados los scripts de otros
+(&apos;no scripts de otros&apos;).
+No se ejecutará ningún script que no pertenezca al propietario del terreno.
+ </notification>
+ <notification name="ClaimPublicLand">
+ Sólo puede reclamar terreno público en la región en que está usted.
+ </notification>
+ <notification name="RegionTPAccessBlocked">
+ No está autorizado en esa región por su nivel de calificación. Debe validar su edad y/o instalar el último visor.
+
+Por favor, vaya a la Base de Conocimientos para más detalles sobre el acceso a zonas con este nivel de calificación.
+ </notification>
+ <notification name="URBannedFromRegion">
+ Se le ha prohibido el acceso a la región.
+ </notification>
+ <notification name="NoTeenGridAccess">
+ Su cuenta no puede conectarse a esta región del grid teen.
+ </notification>
+ <notification name="NoHelpIslandTP">
+ No puede teleportarse de vuelta a la Help Island (&apos;Isla de Ayuda&apos;).
+Vaya a la &apos;Help Island Public&apos; (&apos;Isla Pública de Ayuda&apos;) para repetir el tutorial.
+ </notification>
+ <notification name="ImproperPaymentStatus">
+ No tiene el estado de pago adecuado para entrar a esta región.
+ </notification>
+ <notification name="MustGetAgeRgion">
+ Debe haber verificado su edad para entrar a esta región.
+ </notification>
+ <notification name="MustGetAgeParcel">
+ Debe haber verificado su edad para entrar a esta parcela.
+ </notification>
+ <notification name="NoDestRegion">
+ No se ha encontrada la región de destino.
+ </notification>
+ <notification name="NotAllowedInDest">
+ No está autorizado en el destino.
+ </notification>
+ <notification name="RegionParcelBan">
+ No puede cruzar la región por una parcela con el acceso prohibido. Intente otro camino.
+ </notification>
+ <notification name="TelehubRedirect">
+ Ha sido redirigido a un punto de teleporte.
+ </notification>
+ <notification name="CouldntTPCloser">
+ No se puede teleportar a un destino tan cercano.
+ </notification>
+ <notification name="TPCancelled">
+ Teleporte cancelado.
+ </notification>
+ <notification name="FullRegionTryAgain">
+ En estos momentos, está llena la región a la que intenta entrar.
+Por favor, reinténtelo en unos momentos.
+ </notification>
+ <notification name="GeneralFailure">
+ Fallo general.
+ </notification>
+ <notification name="RoutedWrongRegion">
+ Mal dirigido a la región. Por favor, reinténtelo.
+ </notification>
+ <notification name="NoValidAgentID">
+ ID de agente inválida.
+ </notification>
+ <notification name="NoValidSession">
+ ID de sesión inválido.
+ </notification>
+ <notification name="NoValidCircuit">
+ Circuito de código inválido.
+ </notification>
+ <notification name="NoValidTimestamp">
+ Fecha inválida.
+ </notification>
+ <notification name="NoPendingConnection">
+ No se puede crear la conexión.
+ </notification>
+ <notification name="InternalUsherError">
+ Se ha producido un error interno al intentar acceder al destino de su teleporte. Puede que, en este momento, el servicio de Second Life tenga problemas.
+ </notification>
+ <notification name="NoGoodTPDestination">
+ No se puede encontrar en esta región un buen destino para el teleporte.
+ </notification>
+ <notification name="InternalErrorRegionResolver">
+ Ha sucedido un error interno al manejar las coordenadas globales de su petición de teleporte. Puede que, en este momento, el servicio de Second Life tenga problemas.
+ </notification>
+ <notification name="NoValidLanding">
+ No se ha podido encontrar un punto de aterrizaje válido.
+ </notification>
+ <notification name="NoValidParcel">
+ No se ha podido encontrar una parcela válida.
+ </notification>
+ <notification name="ObjectGiveItem">
+ Un objeto llamado [OBJECTFROMNAME], propiedad de [FIRST] [LAST], le ha dado un/a [OBJECTTYPE] de nombre [OBJECTNAME].
+ <form name="form">
+ <button name="Keep" text="Guardar"/>
+ <button name="Discard" text="Descartar"/>
+ <button name="Mute" text="Ignorar"/>
+ </form>
+ </notification>
+ <notification name="ObjectGiveItemUnknownUser">
+ Un objeto llamado [OBJECTFROMNAME], propiedad de (un usuario desconocido), le ha dado un/a [OBJECTTYPE] de nombre [OBJECTNAME].
+ <form name="form">
+ <button name="Keep" text="Guardar"/>
+ <button name="Discard" text="Descartar"/>
+ <button name="Mute" text="Ignorar"/>
+ </form>
+ </notification>
+ <notification name="UserGiveItem">
+ [NAME] le ha dado un/a [OBJECTTYPE] de nombre &apos;[OBJECTNAME]&apos;.
+ <form name="form">
+ <button name="Keep" text="Guardar"/>
+ <button name="Discard" text="Descartar"/>
+ <button name="Mute" text="Ignorar"/>
+ </form>
+ </notification>
+ <notification name="GodMessage">
+ [NAME]
+[MESSAGE]
+ </notification>
+ <notification name="JoinGroup">
+ [MESSAGE]
+ <form name="form">
+ <button name="Join" text="Entrar"/>
+ <button name="Decline" text="Rehusar"/>
+ <button name="Info" text="Información"/>
+ </form>
+ </notification>
+ <notification name="TeleportOffered">
+ [NAME] se ha ofrecido a teleportarle hasta su posición:
+
+[MESSAGE]
+ <form name="form">
+ <button name="Teleport" text="Teleportar"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification name="GotoURL">
+ [MESSAGE]
+[URL]
+ <form name="form">
+ <button name="Later" text="Más tarde"/>
+ <button name="GoNow..." text="Ir ahora..."/>
+ </form>
+ </notification>
+ <notification name="OfferFriendship">
+ [NAME] le está ofreciendo amistad.
+
+[MESSAGE]
+
+(Por defecto, usted podrá ver si están conectados los demás).
+ <form name="form">
+ <button name="Accept" text="Aceptar"/>
+ <button name="Decline" text="Rehusar"/>
+ </form>
+ </notification>
+ <notification name="OfferFriendshipNoMessage">
+ [NAME] le está ofreciendo amistad.
+
+(Por defecto, usted podrá ver si están conectados los demás).
+ <form name="form">
+ <button name="Accept" text="Aceptar"/>
+ <button name="Decline" text="Rehusar"/>
+ </form>
+ </notification>
+ <notification name="FriendshipAccepted">
+ [NAME] ha aceptado su oferta de amistad.
+ </notification>
+ <notification name="FriendshipDeclined">
+ [NAME] ha rehusado su oferta de amistad.
+ </notification>
+ <notification name="OfferCallingCard">
+ [FIRST] [LAST] le está ofreciendo su tarjeta de visita.
+Esto añadirá un ítem a su inventario para que pueda enviar rápidamente a este residente un MI.
+ <form name="form">
+ <button name="Accept" text="Aceptar"/>
+ <button name="Decline" text="Rehusar"/>
+ </form>
+ </notification>
+ <notification name="RegionRestartMinutes">
+ La región se reiniciará en [MINUTES] minutos.
+Si permanece en esta región, será desconectado.
+ </notification>
+ <notification name="RegionRestartSeconds">
+ La región se reiniciará en [SECONDS] segundos.
+Si permanece en esta región, será desconectado.
+ </notification>
+ <notification name="LoadWebPage">
+ ¿Cargar la página web [URL]?
+
+[MESSAGE]
+
+Del objeto: [OBJECTNAME]; propiedad de: [NAME]?
+ <form name="form">
+ <button name="Gotopage" text="Cargar"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification name="FailedToFindWearableUnnamed">
+ Búsqueda fallida de [TYPE] en la base de datos.
+ </notification>
+ <notification name="FailedToFindWearable">
+ Búsqueda fallida de [TYPE] de nombre [DESC] en la base de datos.
+ </notification>
+ <notification name="InvalidWearable">
+ El ítem que intenta llevar usa una característica que su visor no puede leer. Por favor, actualice su versión de Second Life para llevar este ítem.
+ </notification>
+ <notification name="ScriptQuestion">
+ &apos;[OBJECTNAME]&apos;, un objeto propiedad de &apos;[NAME]&apos;, querría:
+
+[QUESTIONS]
+¿Está de acuerdo?
+ <form name="form">
+ <button name="Yes" text="Sí"/>
+ <button name="No" text="No"/>
+ <button name="Mute" text="Ignorar"/>
+ </form>
+ </notification>
+ <notification name="ScriptQuestionCaution">
+ &apos;[OBJECTNAME]&apos;, un objeto propiedad de &apos;[NAME]&apos;, querría:
+
+[QUESTIONS]
+Si no confía en este objeto y su creador, debe denegar la solicitud. Para más información, pulse el botón Detalles.
+
+¿Autorizar esta petición?
+ <form name="form">
+ <button name="Grant" text="Autorizar"/>
+ <button name="Deny" text="Denegar"/>
+ <button name="Details" text="Detalles..."/>
+ </form>
+ </notification>
+ <notification name="ScriptDialog">
+ &apos;[TITLE]&apos; de [FIRST] [LAST]
+[MESSAGE]
+ <form name="form">
+ <button name="Ignore" text="Ignorar"/>
+ </form>
+ </notification>
+ <notification name="ScriptDialogGroup">
+ &apos;[TITLE]&apos; de [GROUPNAME]&apos;
+[MESSAGE]
+ <form name="form">
+ <button name="Ignore" text="Ignorar"/>
+ </form>
+ </notification>
+ <notification name="FirstBalanceIncrease">
+ Ha recibido [AMOUNT] L$.
+Pueden darle L$ tanto objetos como otros usuarios.
+Su balance se muestra en la esquina superior derecha de la pantalla.
+ </notification>
+ <notification name="FirstBalanceDecrease">
+ Ha pagado [AMOUNT] L$.
+Su balance se muestra en la esquina superior derecha de la pantalla.
+ </notification>
+ <notification name="FirstSit">
+ Está sentado.
+Use las teclas del cursor (o AWSD) para cambiar el punto de vista.
+Pulde el botón &apos;Levantarse&apos; para ponerse de pie.
+ </notification>
+ <notification name="FirstMap">
+ Pulse el mapa y arrástrelo para desplazarlo.
+Púlselo dos veces para teleportarse.
+Use los controles de la derecha para encontrar sitios y mostrar diferentes fondos.
+ </notification>
+ <notification name="FirstBuild">
+ Usted puede construir objetos nuevos en algunas zonas de [SECOND_LIFE].
+Use las herramientas de arriba a la izquierda para construir, y pruebe a cambiar rápidamente entre ellas pulsando Ctrl o Alt.
+Pulse Esc para dejar de construir.
+ </notification>
+ <notification name="FirstLeftClickNoHit">
+ En algunos objetos concretos, al pulsarlos con el botón izquierdo del ratón interacciona con ellos.
+Si el puntero del ratón pasa a ser una mano puede interactuar con el objeto.
+El botón derecho del ratón siempre muestra un menú con cosas que usted puede hacer.
+ </notification>
+ <notification name="FirstTeleport">
+ Esta región no permite teleportarse de un punto a otro, por lo que ha sido llevado al Punto de Teleporte más cercano.
+Su destinado está señalado con una columna de luz roja.
+Siga la flecha roja hasta llegar a la columna, o pulse la flecha para hacerla desaparecer.
+ </notification>
+ <notification name="FirstOverrideKeys">
+ A partir de ahora, sus teclas de movimiento las gestiona un objeto.
+Pruebe las teclas del cursor o AWSD para ver qué hacen.
+Algunos objetos (las pistolas, por ejemplo) le pedirán que, para usarlos, entre usted en vista subjetiva. Pulse &apos;M&apos; para hacerlo.
+ </notification>
+ <notification name="FirstAppearance">
+ Está modificando su apariencia.
+Use las teclas del cursor para girar el punto de vista y hacer zoom.
+Cuando acabe, pulse &apos;Guardar todo&apos; para salvar su apariencia y salir del modificarla.
+Puede modificar su apariencia tantas veces como quiera.
+ </notification>
+ <notification name="FirstInventory">
+ Este es su inventario. Tiene objetos, notas, ropas, y otras cosas de su propiedad.
+* Para vestirse un objeto o un vestuario completo, arrástrelo hasta usted mismo.
+* Para colocar un objeto en el mundo, arrástrelo hasta el suelo.
+* Para leer una nota, pulse dos veces en ella.
+ </notification>
+ <notification name="FirstSandbox">
+ Esta es una región &apos;sandbox&apos; (zona de pruebas).
+Los objetos que construya aquí pueden ser eliminados cuando salga de esta zona, pues los sandbox se limpian regularmente. Por favor, tenga en cuenta la información que hay arriba de su pantalla junto al nombre de la región.
+
+Las regiones sandbox no son frecuentes, y están señalizadas.
+ </notification>
+ <notification name="FirstFlexible">
+ Este objeto es flexible.
+Los objetos flexibles no pueden ser materiales, y serán inmateriales hasta que se desmarque la casilla de flexibles.
+ </notification>
+ <notification name="FirstDebugMenus">
+ Ha activado el menú Avanzado.
+Contiene herramientas útiles para los desarrolladores que trabajan mejorando Second Life.
+Para pasar este menú a una ventana, pulse Ctrl-Alt-D. En un Mac, pulse Cmd-Opt-Shift-D.
+ </notification>
+ <notification name="FirstSculptedPrim">
+ Está editando un prim &apos;sculpted&apos;.
+Los prim sculpted requieren una textura especial para tomar forma.
+Puede encontrar ejemplos de texturas sculpted en la biblioteca del inventario.
+ </notification>
+ <notification name="FirstMedia">
+ Ha empezado a reproducir media. Puede hacer que los media se reproduzcan automáticamente en la pestaña Audio y Vídeo de la ventana de preferencias. Note que tal cosa puede suponer un riesgo de seguridad en los sitios multimedia en los que no confíe.
+ </notification>
+ <notification name="MaxListSelectMessage">
+ Puede seleccionar un máximo de [MAX_SELECT] ítems de esta lista.
+ </notification>
+ <notification name="VoiceInviteP2P">
+ [NAME] le está invitando a un chat de voz.
+Pulse Aceptar para coger la llamada o Rehusar para declinar la invitación. Pulse Ignorar para ignorar a quien llama.
+ <form name="form">
+ <button name="Accept" text="Aceptar"/>
+ <button name="Decline" text="Rehusar"/>
+ <button name="Mute" text="Ignorar"/>
+ </form>
+ </notification>
+ <notification name="AutoUnmuteByIM">
+ [FIRST] [LAST], a quien ha enviado un mensaje instantáneo, ha dejado automáticamente de estar ignorado.
+ </notification>
+ <notification name="AutoUnmuteByMoney">
+ [FIRST] [LAST], a quien ha dado dinero, ha dejado automáticamente de estar ignorado.
+ </notification>
+ <notification name="AutoUnmuteByInventory">
+ [FIRST] [LAST], a quien ha ofrecido algo del inventario, ha dejado automáticamente de estar ignorado.
+ </notification>
+ <notification name="VoiceInviteGroup">
+ [NAME] ha empezado un chat de voz con el grupo [GROUP].
+Pulse Aceptar para coger la llamada o Rehusar para declinar la invitación. Pulse Ignorar para ignorar a quien llama.
+ <form name="form">
+ <button name="Accept" text="Aceptar"/>
+ <button name="Decline" text="Rehusar"/>
+ <button name="Mute" text="Ignorar"/>
+ </form>
+ </notification>
+ <notification name="VoiceInviteAdHoc">
+ [NAME] ha empezado un chat de voz en multiconferencia.
+Pulse Aceptar para coger la llamada o Rehusar para declinar la invitación. Pulse Ignorar para ignorar a este usuario.
+ <form name="form">
+ <button name="Accept" text="Aceptar"/>
+ <button name="Decline" text="Rehusar"/>
+ <button name="Mute" text="Ignorar"/>
+ </form>
+ </notification>
+ <notification name="InviteAdHoc">
+ [NAME] le está invitando a un chat en multiconferencia.
+Pulse Aceptar para entrar al chat o Rehusar para declinar la invitación. Pulse Ignorar para ignorar a este usuario.
+ <form name="form">
+ <button name="Accept" text="Aceptar"/>
+ <button name="Decline" text="Rehusar"/>
+ <button name="Mute" text="Ignorar"/>
+ </form>
+ </notification>
+ <notification name="VoiceChannelFull">
+ El chat de voz al que está intentando entrar, [VOICE_CHANNEL_NAME], ha llegado a su capacidad máxima. Por favor, inténtelo más tarde.
+ </notification>
+ <notification name="ProximalVoiceChannelFull">
+ Lo sentimos. Este área ha llegado a su capacidad máxima de conversaciones por voz. Por favor, intente usar la voz en otra zona.
+ </notification>
+ <notification name="VoiceChannelDisconnected">
+ Ha sido desconectado del [VOICE_CHANNEL_NAME]. Va a ser reconectado al chat de voz del mundo.
+ </notification>
+ <notification name="VoiceChannelDisconnectedP2P">
+ [VOICE_CHANNEL_NAME] ha colgado la llamada. Usted va a ser reconectado al chat de voz del mundo.
+ </notification>
+ <notification name="P2PCallDeclined">
+ [VOICE_CHANNEL_NAME] ha rehusado su llamada. Usted va a ser reconectado al chat de voz del mundo.
+ </notification>
+ <notification name="P2PCallNoAnswer">
+ [VOICE_CHANNEL_NAME] no está disponible para coger su llamada. Usted va a ser reconectado al chat de voz del mundo.
+ </notification>
+ <notification name="VoiceChannelJoinFailed">
+ Fallo al conectar al [VOICE_CHANNEL_NAME]; por favor, inténtelo más tarde. Usted va a ser reconectado al chat de voz del mundo.
+ </notification>
+ <notification name="VoiceLoginRetry">
+ Estamos creando un canal de voz para usted. Se puede tardar hasta un minuto.
+ </notification>
+ <notification name="Cannot enter parcel: not a group member">
+ No puede entrar en esta parcela, no es miembro del grupo adecuado.
+ </notification>
+ <notification name="Cannot enter parcel: banned">
+ No puede entrar en esta parcela, se le ha prohibido el acceso.
+ </notification>
+ <notification name="Cannot enter parcel: not on access list">
+ No puede entrar en esta parcela, no está en la lista de acceso.
+ </notification>
+ <notification name="VoiceNotAllowed">
+ No tiene permiso para conectarse al chat de voz de [VOICE_CHANNEL_NAME].
+ </notification>
+ <notification name="VoiceCallGenericError">
+ Ha ocurrido un error intentando conectarle al [VOICE_CHANNEL_NAME]. Por favor, inténtelo más tarde.
+ </notification>
+ <notification name="ServerVersionChanged">
+ La región en la que ha entrado se ejecuta en un simulador con una versión diferente. Pulse este mensaje para ver más detalles.
+ </notification>
+ <notification name="UnableToOpenCommandURL">
+ No puede abrirse desde este navegador la URL que ha pulsado.
+ </notification>
+ <global name="UnsupportedCPU">
+ - La velocidad de su CPU no cumple los requerimientos mínimos.
+ </global>
+ <global name="UnsupportedGLRequirements">
+ Parece que no tiene los requerimientos de hardware apropiados para Second Life. Second Life requiere una tarjeta gráfica OpenGL que admita texturas múltiples (&apos;multitexture support&apos;). Si la tiene, compruebe que tiene los últimos drivers para su tarjeta gráfica, así como los últimos parches y &apos;service packs&apos; para su sistema operativo.
+
+Si los problemas persisten, por favor, acuda a: http://www.secondlife.com/support
+ </global>
+ <global name="UnsupportedCPUAmount">
+ 796
+ </global>
+ <global name="UnsupportedRAMAmount">
+ 510
+ </global>
+ <global name="UnsupportedGPU">
+ - Su tarjeta gráfica no cumple los requerimientos mínimos.
+ </global>
+ <global name="UnsupportedRAM">
+ - La memoria de su sistema no cumple los requerimientos mínimos.
+ </global>
+ <global name="PermYes">
+ Sí
+ </global>
+ <global name="PermNo">
+ No
+ </global>
+</notifications>
diff --git a/indra/newview/skins/default/xui/es/panel_audio_device.xml b/indra/newview/skins/default/xui/es/panel_audio_device.xml
index 9d6b02a316..d20a0af4fb 100644
--- a/indra/newview/skins/default/xui/es/panel_audio_device.xml
+++ b/indra/newview/skins/default/xui/es/panel_audio_device.xml
@@ -1,25 +1,25 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="device_settings">
- <text name="Audio Devices">
- Dispositivos de sonido
- </text>
- <text name="Input device (microphone):">
- Dispositivo de entrada (micrófono):
- </text>
- <text name="Output device (speakers):">
- Dispositivo de salida (altavoces):
- </text>
- <text name="Input level:">
- Volumen de entrada
- </text>
- <text_editor name="voice_intro_text1">
- Ajuste el deslizable para controlar el volumen con el que usted le sonará a otros residentes. Para probar el volumen de entrada, basta con que hable al micrófono.
- </text_editor>
- <volume_slider name="mic_volume_slider" tool_tip="Cambie el volumen usando este deslizable"/>
- <text name="wait_text">
- Por favor, espere
- </text>
- <string name="default_text">
- Por defecto
- </string>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="device_settings">
+ <text name="Audio Devices">
+ Dispositivos de sonido
+ </text>
+ <text name="Input device (microphone):">
+ Dispositivo de entrada (micrófono):
+ </text>
+ <text name="Output device (speakers):">
+ Dispositivo de salida (altavoces):
+ </text>
+ <text name="Input level:">
+ Volumen de entrada
+ </text>
+ <text_editor name="voice_intro_text1">
+ Ajuste el deslizable para controlar el volumen con el que usted le sonará a otros residentes. Para probar el volumen de entrada, basta con que hable al micrófono.
+ </text_editor>
+ <volume_slider name="mic_volume_slider" tool_tip="Cambie el volumen usando este deslizable"/>
+ <text name="wait_text">
+ Por favor, espere
+ </text>
+ <string name="default_text">
+ Por defecto
+ </string>
+</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_friends.xml b/indra/newview/skins/default/xui/es/panel_friends.xml
index 010cd7a634..ea5c7d1e4f 100644
--- a/indra/newview/skins/default/xui/es/panel_friends.xml
+++ b/indra/newview/skins/default/xui/es/panel_friends.xml
@@ -1,20 +1,20 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="friends">
- <string name="Multiple">
- Varios amigos...
- </string>
- <scroll_list name="friend_list" tool_tip="Para seleccionar a varios amigos, mantenga pulsado Ctrl o Mays. mientras les va pulsando.">
- <column name="icon_online_status" tool_tip="Estado de conexión"/>
- <column label="Nombre" name="friend_name" tool_tip="Nombre"/>
- <column name="icon_visible_online" tool_tip="El amigo puede ver cuándo está conectado"/>
- <column name="icon_visible_map" tool_tip="El amigo puede localizarle en el mapa"/>
- <column name="icon_edit_mine" tool_tip="El amigo puede editar, borrar o tomar sus objetos"/>
- <column name="icon_edit_theirs" tool_tip="Puede editar los objetos de este amigo"/>
- </scroll_list>
- <button label="MI/Llamada" name="im_btn" tool_tip="Abrir sesión de mensajes instantáneos"/>
- <button label="Perfil" name="profile_btn" tool_tip="Mostrar la imagen, los grupos, y otra información"/>
- <button label="Teleportar..." name="offer_teleport_btn" tool_tip="Ofrecer a este amigo teleportarle hasta su posición"/>
- <button label="Pagar..." name="pay_btn" tool_tip="Dar dólares Linden (L$) a este amigo"/>
- <button label="Quitar..." name="remove_btn" tool_tip="Quitar a esta persona de su lista de amigos"/>
- <button label="Añadir..." name="add_btn" tool_tip="Ofrecer ser mi amigo a un residente"/>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="friends">
+ <string name="Multiple">
+ Varios amigos...
+ </string>
+ <scroll_list name="friend_list" tool_tip="Para seleccionar a varios amigos, mantenga pulsado Ctrl o Mays. mientras les va pulsando.">
+ <column name="icon_online_status" tool_tip="Estado de conexión"/>
+ <column label="Nombre" name="friend_name" tool_tip="Nombre"/>
+ <column name="icon_visible_online" tool_tip="El amigo puede ver cuándo está conectado"/>
+ <column name="icon_visible_map" tool_tip="El amigo puede localizarle en el mapa"/>
+ <column name="icon_edit_mine" tool_tip="El amigo puede editar, borrar o tomar sus objetos"/>
+ <column name="icon_edit_theirs" tool_tip="Puede editar los objetos de este amigo"/>
+ </scroll_list>
+ <button label="MI/Llamada" name="im_btn" tool_tip="Abrir sesión de mensajes instantáneos"/>
+ <button label="Perfil" name="profile_btn" tool_tip="Mostrar la imagen, los grupos, y otra información"/>
+ <button label="Teleportar..." name="offer_teleport_btn" tool_tip="Ofrecer a este amigo teleportarle hasta su posición"/>
+ <button label="Pagar..." name="pay_btn" tool_tip="Dar dólares Linden (L$) a este amigo"/>
+ <button label="Quitar..." name="remove_btn" tool_tip="Quitar a esta persona de su lista de amigos"/>
+ <button label="Añadir..." name="add_btn" tool_tip="Ofrecer ser mi amigo a un residente"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_group_general.xml b/indra/newview/skins/default/xui/es/panel_group_general.xml
index 865dad9028..e5fd4b3aae 100644
--- a/indra/newview/skins/default/xui/es/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/es/panel_group_general.xml
@@ -49,8 +49,17 @@ Ponga su ratón sobre las opciones para más información.
<check_box label="Inscripción libre" name="open_enrollement" tool_tip="Definir si se admiten al grupo nuevos miembros sin que sea preciso invitárseles."/>
<check_box label="Cuota de inscripción en L$" name="check_enrollment_fee" tool_tip="Define si se requiere una cuota para entrar al grupo."/>
<spinner name="spin_enrollment_fee" tool_tip="Cuando está marcado &apos;Cuota de inscripción&apos;, los miembros nuevos deben pagar esta cuota para entrar al grupo."/>
-
-
+ <combo_box name="group_mature_check" tool_tip="Establece si la información de su grupo es &apos;mature&apos;.">
+ <combo_item name="select_mature">
+ - Elegir Calificación -
+ </combo_item>
+ <combo_item name="mature">
+ Contenido &apos;Mature&apos;
+ </combo_item>
+ <combo_item name="pg">
+ Contenido &apos;PG&apos;
+ </combo_item>
+ </combo_box>
<panel name="title_container">
<text name="active_title_label">
Mi etiqueta activa
diff --git a/indra/newview/skins/default/xui/es/panel_group_invite.xml b/indra/newview/skins/default/xui/es/panel_group_invite.xml
index 66329c4f2b..5f5f2c6e2e 100644
--- a/indra/newview/skins/default/xui/es/panel_group_invite.xml
+++ b/indra/newview/skins/default/xui/es/panel_group_invite.xml
@@ -3,9 +3,9 @@
<text name="help_text">
Puede seleccionar a varios residentes para
invitarles a su grupo. Para empezar, pulse
-&apos;Abrir el selector de personas&apos;.
+&apos;Abrir el selector de residentes&apos;.
</text>
- <button label="Abrir el selector de personas" name="add_button" tool_tip=""/>
+ <button label="Abrir el selector de residentes" name="add_button" tool_tip=""/>
<name_list name="invitee_list" tool_tip="Para seleccionar a varios residentes, mantenga pulsada la tecla Ctrl y vaya pulsando sus nombres."/>
<button label="Eliminar de la lista a los seleccionados" name="remove_button" tool_tip="Elimina los residentes seleccionados de la lista de invitaciones."/>
<text name="role_text">
diff --git a/indra/newview/skins/default/xui/es/panel_group_land_money.xml b/indra/newview/skins/default/xui/es/panel_group_land_money.xml
index 436a79d429..32473b8133 100644
--- a/indra/newview/skins/default/xui/es/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/es/panel_group_land_money.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Terreno y L$" name="land_money_tab">
<string name="help_text">
- Se listan las parcelas propiedad del grupo, detallando las contribuciones. Aparece una advertencia si el Terreno total en uso es menor que o igual a la Contribución total. Las pestañas &apos;Planeamiento&apos;, &apos;Detalles&apos; y &apos;Ventas&apos; aportan información sobre las finanzas del grupo.
+ Se listan las parcelas propiedad del grupo, detallando las contribuciones. Aparece una advertencia si el Terreno total en uso es menor que o igual a la Contribución total. Las pestañas &apos;Planificación&apos;, &apos;Detalles&apos; y &apos;Ventas&apos; aportan información sobre las finanzas del grupo
</string>
<button label="?" name="help_button"/>
<string name="cant_view_group_land_text">
@@ -17,8 +17,9 @@
Terreno propiedad del grupo
</text>
<scroll_list name="group_parcel_list">
- <column label="Nombre de la parcela" name="name"/>
+ <column label="Parcela" name="name"/>
<column label="Región" name="location"/>
+ <column label="Tipo" name="type"/>
<column label="Superficie" name="area"/>
<column label="" name="hidden"/>
</scroll_list>
@@ -57,6 +58,11 @@
L$ del grupo
</text>
<tab_container name="group_money_tab_container">
+ <panel label="Planificación" name="group_money_planning_tab">
+ <text_editor name="group_money_planning_text">
+ Calculando...
+ </text_editor>
+ </panel>
<panel label="Detalles" name="group_money_details_tab">
<text_editor name="group_money_details_text">
Calculando...
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 4c3e40ecc2..8cc1a4ba9d 100644
--- a/indra/newview/skins/default/xui/es/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/es/panel_group_roles.xml
@@ -49,7 +49,7 @@
<column label="Cuotas donadas" name="donated"/>
<column label="Última conexión" name="online"/>
</name_list>
- <button label="Invitar a una nueva persona..." name="member_invite"/>
+ <button label="Invitar a un nuevo miembro..." name="member_invite"/>
<button label="Expulsar del grupo" name="member_eject"/>
<string name="help_text">
Puede añadir o quitar los roles asignados a los miembros.
diff --git a/indra/newview/skins/default/xui/es/panel_groups.xml b/indra/newview/skins/default/xui/es/panel_groups.xml
index 27240a49b6..1259ded62f 100644
--- a/indra/newview/skins/default/xui/es/panel_groups.xml
+++ b/indra/newview/skins/default/xui/es/panel_groups.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="groups">
- <text name="groupdesc">
- El grupo que tiene activado actualmente se muestra en negrilla
- </text>
- <text name="groupcount">
- Pertenece a [COUNT] grupo/s (de un máximo de [MAX]).
- </text>
- <button label="MI/Llamar" name="IM" tool_tip="Abrir una sesión de mensajes instantáneos"/>
- <button label="Información" name="Info"/>
- <button label="Activar" name="Activate"/>
- <button label="Abandonar" name="Leave"/>
- <button label="Crear..." name="Create"/>
- <button label="Buscar..." name="Search..."/>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="groups">
+ <text name="groupdesc">
+ El grupo que tiene activado actualmente se muestra en negrilla
+ </text>
+ <text name="groupcount">
+ Pertenece a [COUNT] grupo/s (de un máximo de [MAX]).
+ </text>
+ <button label="MI/Llamar" name="IM" tool_tip="Abrir una sesión de mensajes instantáneos"/>
+ <button label="Información" name="Info"/>
+ <button label="Activar" name="Activate"/>
+ <button label="Abandonar" name="Leave"/>
+ <button label="Crear..." name="Create"/>
+ <button label="Buscar..." name="Search..."/>
+</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_preferences_chat.xml b/indra/newview/skins/default/xui/es/panel_preferences_chat.xml
index 0e092e58a2..b8c9cc5b44 100644
--- a/indra/newview/skins/default/xui/es/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_chat.xml
@@ -1,18 +1,13 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Chat de texto" name="chat">
<text length="1" name="text_box" type="string">
- Tamaño de la fuente del chat:
+ Tamaño de la fuente
+del chat:
</text>
<radio_group name="chat_font_size">
- <radio_item name="radio">
- Pequeño
- </radio_item>
- <radio_item name="radio2">
- Medio
- </radio_item>
- <radio_item name="radio3">
- Grande
- </radio_item>
+ <radio_item name="radio" label="Pequeño" />
+ <radio_item name="radio2" label="Medio" />
+ <radio_item name="radio3" label="Grande" />
</radio_group>
<text length="1" name="text_box2" type="string">
Color del chat:
@@ -35,7 +30,7 @@
</text>
<spinner label="Quitar el chat tras" name="fade_chat_time" label_width="95" width="145" />
<text length="1" name="text_box4" type="string" left="297" >
- (s)
+ (seg.)
</text>
<text length="1" name="text_box5" type="string">
(# líneas)
diff --git a/indra/newview/skins/default/xui/es/panel_preferences_general.xml b/indra/newview/skins/default/xui/es/panel_preferences_general.xml
index 62a2959e13..b711821e5f 100644
--- a/indra/newview/skins/default/xui/es/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_general.xml
@@ -27,10 +27,28 @@
</text>
<check_box label="Resolución independiente del tamaño" name="ui_auto_scale"/>
<spinner label="Ausente tras:" name="afk_timeout_spinner"/>
- <check_box label="Girar el minimapa" name="rotate_mini_map_checkbox"/>
<check_box label="Avisar cuando gasto o recibo dólares Linden (L$)" name="notify_money_change_checkbox"/>
- <check_box label="Usar los colores del SO" name="use_system_color_picker_checkbox" tool_tip="Usar los colores del propio sistema operativo en vez de los propios de Second Life."/>
- <check_box label="Incluir una ventana de búsqueda en la barra superior" name="show_search_panel" tool_tip="Muestra el panel de búsqueda insertado."/>
+ <text name="maturity_desired_label" bottom="-312">
+ Calificación:
+ </text>
+ <text name="maturity_desired_prompt" bottom="-312">
+ Quiero acceder a
+contenido calificado:
+ </text>
+ <combo_box name="maturity_desired_combobox" bottom="-330" left="274">
+ <combo_item name="Desired_Adult">
+ &apos;PG&apos;, &apos;Mature&apos; y &apos;Adult&apos;
+ </combo_item>
+ <combo_item name="Desired_Mature">
+ &apos;PG&apos; y &apos;Mature&apos;
+ </combo_item>
+ <combo_item name="Desired_PG">
+ sólo &apos;PG&apos;
+ </combo_item>
+ </combo_box>
+ <text name="maturity_desired_textbox" bottom="-324" left="274">
+ sólo &apos;PG&apos;
+ </text>
<text length="1" name="start_location_textbox" type="string">
Posición inicial:
</text>
@@ -49,7 +67,7 @@
<text length="1" name="language_textbox" type="string">
Idioma:
</text>
- <text length="1" name="language_textbox2" type="string" left_delta="313" >
+ <text left_delta="313" length="1" name="language_textbox2" type="string">
(Tendrá efecto tras reiniciar)
</text>
<string name="region_name_prompt">
@@ -73,6 +91,21 @@
<combo_box.item length="1" name="Chinese" type="string" label="中文 (简体) (Chino) - Beta"/>
<combo_box.item length="1" name="(Japanese)" type="string" label="日本語 (Japonés) - Beta"/>
<combo_box.item length="1" name="(Korean)" type="string" label="한국어 (Coreano) - Beta"/>
+ <combo_item name="Italian">
+ Italiano - Beta
+ </combo_item>
+ <combo_item name="Dutch">
+ Nederlands (Neerlandés) - Beta
+ </combo_item>
+ </combo_item>
+ <combo_item name="Russian">
+ Русский (Ruso) - Beta
+ </combo_item>
+ <combo_item name="Turkish">
+ Türkçe (Turco) - Beta
+ </combo_item>
+ <combo_item name="Ukrainian">
+ Українська (Ucraniano) - Beta
</combo_box>
<check_box label="Compartir el idioma con los objetos" name="language_is_public" tool_tip="Hace que los objetos con script del mundo sepan su idioma preferido."/>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml
index 3965df3697..7e19c6dd6b 100644
--- a/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml
@@ -2,13 +2,13 @@
<panel label="Gráficos" name="Display panel">
<button label="?" name="GraphicsPreferencesHelpButton"/>
<check_box label="Abrir Second Life en una ventana" name="windowed mode"/>
- <text_editor name="FullScreenInfo">
+ <text_editor name="FullScreenInfo" width="480">
Si no está marcado, el visor se mostrará en pantalla completa cuando inicie sesión.
</text_editor>
<text name="WindowSizeLabel">
Tamaño de la ventana:
</text>
- <combo_box name="windowsize combo">
+ <combo_box left="124" name="windowsize combo">
<combo_box.item name="640x480" label="640x480"/>
<combo_box.item name="800x600" label="800x600"/>
<combo_box.item name="720x480" label="720x480 (NTSC)"/>
@@ -18,23 +18,24 @@
<text name="DisplayResLabel">
Resolución:
</text>
+ <combo_box left="124" name="fullscreen combo" />
<text name="AspectRatioLabel1" tool_tip="ancho / alto">
Proporción:
</text>
- <combo_box name="aspect_ratio" tool_tip="ancho / alto">
+ <combo_box left="124" name="aspect_ratio" tool_tip="ancho / alto">
<combo_box.item length="1" name="4:3(StandardCRT)" type="string" label="4:3 (Standard CRT)"/>
<combo_box.item length="1" name="5:4(1280x1024LCD)" type="string" label="5:4 (1280x1024 LCD)"/>
<combo_box.item name="8:5(Widescreen)" label="8:5 (Widescreen)"/>
<combo_box.item length="1" name="16:9(Widescreen)" type="string" label="16:9 (Widescreen)"/>
</combo_box>
- <check_box label="Detectar automáticamente la proporción" name="aspect_auto_detect"/>
+ <check_box label="Detectar automáticamente &#10;la proporción" name="aspect_auto_detect" left="295" />
<text name="HigherText">
Calidad y
</text>
<text name="QualityText">
Rendimiento:
</text>
- <text name="FasterText">
+ <text name="FasterText" left="95">
El más rápido
</text>
<text name="ShadersPrefText">
@@ -49,11 +50,11 @@
<text name="ShadersPrefText4">
Ultra
</text>
- <text name="HigherText2">
+ <text name="HigherText2" left="325" >
Más alto
</text>
- <text name="QualityText2">
- Calidad
+ <text name="QualityText2" left="325" >
+ calidad
</text>
<check_box label="Personalizar" name="CustomSettings"/>
<text name="ShadersText">
@@ -67,18 +68,10 @@
Objetos reflejados:
</text>
<radio_group name="ReflectionDetailRadio">
- <radio_item name="0">
- Terreno y árboles
- </radio_item>
- <radio_item name="1">
- Todos los objetos estáticos
- </radio_item>
- <radio_item name="2">
- Todos los avatares y objetos
- </radio_item>
- <radio_item name="3">
- Todo
- </radio_item>
+ <radio_item name="0" label="Terreno y árboles" />
+ <radio_item name="1" label="Todos los objetos estáticos" />
+ <radio_item name="2" label="Todos los avatares y objetos" />
+ <radio_item name="3" label="Todo" />
</radio_group>
<text name="AvatarRenderingText">
Renderización del avatar:
@@ -94,16 +87,16 @@
</text>
<slider label="Distancia de dibujo:" name="DrawDistance"/>
<slider label="Núm. máx. de partículas:" name="MaxParticleCount"/>
- <slider label="Calidad del procesamiento:" name="RenderPostProcess"/>
+ <slider label="Calidad del procesamiento:" name="RenderPostProcess" label_width="142"/>
<text name="MeshDetailText">
Detalle de la malla:
</text>
- <slider label="Objetos:" name="ObjectMeshDetail"/>
- <slider label="Prims flexibles:" name="FlexibleMeshDetail"/>
- <slider label="Árboles:" name="TreeMeshDetail"/>
- <slider label="Avatares:" name="AvatarMeshDetail"/>
- <slider label="Terreno:" name="TerrainMeshDetail"/>
- <slider label="Cielo:" name="SkyMeshDetail"/>
+ <slider label=" Objetos:" name="ObjectMeshDetail"/>
+ <slider label=" Prims flexibles:" name="FlexibleMeshDetail"/>
+ <slider label=" Árboles:" name="TreeMeshDetail"/>
+ <slider label=" Avatares:" name="AvatarMeshDetail"/>
+ <slider label=" Terreno:" name="TerrainMeshDetail"/>
+ <slider label=" Cielo:" name="SkyMeshDetail"/>
<text name="PostProcessText">
Baja
</text>
@@ -125,30 +118,23 @@
<text name="SkyMeshDetailText">
Bajo
</text>
- <text name="LightingDetailText">
+ <text name="LightingDetailText" width="135">
Detalles de la iluminación:
</text>
<radio_group name="LightingDetailRadio">
- <radio_item name="SunMoon">
- Sólo el Sol y la Luna
- </radio_item>
- <radio_item name="LocalLights">
- Puntos de luz cercanos
- </radio_item>
+ <radio_item name="SunMoon" label="Sólo el Sol y la Luna" />
+ <radio_item name="LocalLights" label="Puntos de luz cercanos" />
</radio_group>
<text name="TerrainDetailText">
- Nivel de detalle del terreno:
- </text>
- <radio_group name="TerrainDetailRadio">
- <radio_item name="0">
- Bajo
- </radio_item>
- <radio_item name="2">
- Alto
- </radio_item>
+ Nivel de detalle del
+ terreno:
+ </text>
+ <radio_group name="TerrainDetailRadio" left_delta="60">
+ <radio_item name="0" label="Bajo" />
+ <radio_item name="2" label="Alto" />
</radio_group>
- <button label="Configuraciones recomendadas" name="Defaults"/>
- <button label="Opciones del hardware" label_selected="Opciones del hardware" name="GraphicsHardwareButton"/>
+ <button label="Configuraciones recomendadas" name="Defaults" width="195" left="110"/>
+ <button label="Opciones del hardware" label_selected="Opciones del hardware" name="GraphicsHardwareButton" left="315"/>
<string name="resolution_format">
[RES_X] x [RES_Y]
</string>
diff --git a/indra/newview/skins/default/xui/es/panel_region_covenant.xml b/indra/newview/skins/default/xui/es/panel_region_covenant.xml
index e353f6cdec..3f9e782bd7 100644
--- a/indra/newview/skins/default/xui/es/panel_region_covenant.xml
+++ b/indra/newview/skins/default/xui/es/panel_region_covenant.xml
@@ -1,50 +1,80 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Contrato" name="Covenant">
+ <text name="estate_section_lbl">
+ Estado:
+ </text>
+ <text name="estate_name_lbl">
+ Nombre:
+ </text>
+ <text name="estate_name_text">
+ mainland
+ </text>
+ <text name="estate_owner_lbl">
+ Propietario:
+ </text>
+ <text name="estate_owner_text">
+ (nadie)
+ </text>
+ <text name="estate_cov_lbl">
+ Contrato:
+ </text>
+ <text name="covenant_timestamp_text">
+ Última modificación el miér. 31 de dic. de 1969, 16:00:00
+ </text>
+ <button label="?" name="covenant_help"/>
+ <text_editor name="covenant_editor">
+ No se ha aportado un contrato para este estado.
+ </text_editor>
+ <button label="Cambiar" name="reset_covenant"/>
<text name="covenant_help_text">
- Los cambios que se hagan en la información del contrato se mostrarán en todas las parcelas del estado.
+ Los cambios en el contrato se mostrarán en todas las parcelas del estado.
</text>
- <text name="region_name_lbl">
+ <text name="covenant_instructions">
+ Para cambiar el contrato de este estado, arrastre y suelte una nota.
+ </text>
+ <text name="region_section_lbl">
Región:
</text>
+ <text name="region_name_lbl">
+ Nombre:
+ </text>
<text name="region_name_text">
- (desconocida)
+ leyla
</text>
- <text name="estate_name_lbl">
- Estado:
+ <text name="region_landtype_lbl">
+ Tipo:
</text>
- <text name="estate_name_text">
- (desconocido)
+ <text name="region_landtype_text">
+ Mainland / Homestead
</text>
- <text name="covenent_instructions">
- Para cambiar el contrato de este estado, arrastre y suelte una nota.
+ <text name="region_maturity_lbl">
+ Calificación:
</text>
- <button label="?" name="covenant_help"/>
- <button label="Cambiar" name="reset_covenant"/>
- <text name="estate_owner_lbl">
- Propietario del estado:
+ <text name="region_maturity_text">
+ &apos;Adult&apos;
</text>
- <text name="estate_owner_text">
- (desconocido)
+ <text name="resellable_lbl">
+ Revender:
</text>
<text name="resellable_clause">
- El terreno comprado en esta región se podrá o no revender.
+ El terreno de esta región no se podrá revender.
+ </text>
+ <text name="changeable_lbl">
+ Dividir:
</text>
<text name="changeable_clause">
- El terreno comprado en esta región se podrá o no unir o subdividir.
+ El terreno de esta región no se podrá unir/dividir.
</text>
- <text_editor name="covenant_editor">
- Cargando...
- </text_editor>
- <text name="can_resell">
+ <string name="can_resell">
El terreno comprado en esta región se podrá revender.
- </text>
- <text name="can_not_resell">
+ </string>
+ <string name="can_not_resell">
El terreno comprado en esta región no se podrá revender.
- </text>
- <text name="can_change">
+ </string>
+ <string name="can_change">
El terreno comprado en esta región se podrá unir o subdividir.
- </text>
- <text name="can_not_change">
+ </string>
+ <string name="can_not_change">
El terreno comprado en esta región no se podrá unir ni subdividir.
- </text>
+ </string>
</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 9ff7c97fc7..64169e427b 100644
--- a/indra/newview/skins/default/xui/es/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/es/panel_region_general.xml
@@ -12,6 +12,12 @@
<text name="version_channel_text">
desconocida
</text>
+ <text name="region_type_lbl">
+ Tipo:
+ </text>
+ <text name="region_type">
+ desconocido
+ </text>
<check_box label="No permitir modificar el terreno" name="block_terraform_check"/>
<button label="?" name="terraform_help"/>
<check_box label="Prohibir volar" name="block_fly_check"/>
@@ -33,10 +39,17 @@
<text label="Calificación" name="access_text">
Calificación:
</text>
-
-
-
-
+ <combo_box label="&apos;Mature&apos;" name="access_combo">
+ <combo_item name="Adult">
+ &apos;Adult&apos;
+ </combo_item>
+ <combo_item name="Mature">
+ &apos;Mature&apos;
+ </combo_item>
+ <combo_item name="PG">
+ &apos;PG&apos;
+ </combo_item>
+ </combo_box>
<button label="?" name="access_help"/>
<button label="Aplicar" name="apply_btn"/>
<button label="Teleportar a su Base a un usuario..." name="kick_btn"/>
diff --git a/indra/newview/skins/default/xui/es/strings.xml b/indra/newview/skins/default/xui/es/strings.xml
index 07ae44409f..4793f6c661 100644
--- a/indra/newview/skins/default/xui/es/strings.xml
+++ b/indra/newview/skins/default/xui/es/strings.xml
@@ -1,421 +1,486 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<!-- This file contains strings that used to be hardcoded in the source.
- It is only for those strings which don&apos;t belong in a floater.
- For example, the strings used in avatar chat bubbles, and strings
- that are returned from one component and may appear in many places-->
-<strings>
- <string name="LoginInProgress">
- Iniciando la sesión. [APP_NAME] debe de aparecer congelado. Por favor, espere.
- </string>
- <string name="LoginAuthenticating">
- Autenticando
- </string>
- <string name="LoginMaintenance">
- Realizando el mantenimiento de la cuenta...
- </string>
- <string name="LoginAttempt">
- Ha fallado el intento previo de iniciar sesión. Iniciando sesión, intento [NUMBER]
- </string>
- <string name="LoginPrecaching">
- Cargando el mundo...
- </string>
- <string name="LoginInitializingBrowser">
- Iniciando el navegador web incorporado...
- </string>
- <string name="LoginInitializingMultimedia">
- Iniciando multimedia...
- </string>
- <string name="LoginVerifyingCache">
- Comprobando los archivos de la caché (puede tardar entre 60 y 90 segundos)...
- </string>
- <string name="LoginProcessingResponse">
- Procesando la respuesta...
- </string>
- <string name="LoginInitializingWorld">
- Iniciando el mundo...
- </string>
- <string name="LoginDecodingImages">
- Decodificando las imágenes...
- </string>
- <string name="LoginInitializingQuicktime">
- Iniciando QuickTime...
- </string>
- <string name="LoginQuicktimeNotFound">
- No se ha encontrado QuickTime. Imposible iniciarlo.
- </string>
- <string name="LoginQuicktimeOK">
- QuickTime se ha iniciado adecuadamente.
- </string>
- <string name="LoginWaitingForRegionHandshake">
- Esperando la conexión con la región...
- </string>
- <string name="LoginConnectingToRegion">
- Conectando con la región...
- </string>
- <string name="LoginDownloadingClothing">
- Descargando la ropa...
- </string>
- <string name="LoginFailedNoNetwork">
- Error de red: no se ha podido conectar; por favor, revise su conexión a internet.
- </string>
- <string name="AgentLostConnection">
- Esta región puede estar teniendo problemas. Por favor, compruebe su conexión a internet.
- </string>
- <string name="TooltipPerson">
- Persona
- </string>
- <string name="TooltipNoName">
- (sin nombre)
- </string>
- <string name="TooltipOwner">
- Propietario:
- </string>
- <string name="TooltipPublic">
- Público
- </string>
- <string name="TooltipIsGroup">
- (Grupo)
- </string>
- <string name="TooltipFlagScript">
- Script
- </string>
- <string name="TooltipFlagPhysics">
- Propiedades físicas
- </string>
- <string name="TooltipFlagTouch">
- Tocar
- </string>
- <string name="TooltipFlagL$">
- L$
- </string>
- <string name="TooltipFlagDropInventory">
- Desplegar el inventario
- </string>
- <string name="TooltipFlagPhantom">
- Inmaterial
- </string>
- <string name="TooltipFlagTemporary">
- Temporal
- </string>
- <string name="TooltipFlagRightClickMenu">
- (pulse el botón derecho del ratón para ver el menú)
- </string>
- <string name="TooltipFreeToCopy">
- Copia gratis
- </string>
- <string name="TooltipForSaleL$">
- En venta: [AMOUNT] L$
- </string>
- <string name="TooltipForSaleMsg">
- En venta: [MESSAGE]
- </string>
- <string name="TooltipFlagGroupBuild">
- Construir el grupo
- </string>
- <string name="TooltipFlagNoBuild">
- No construir
- </string>
- <string name="TooltipFlagNoEdit">
- Construir el grupo
- </string>
- <string name="TooltipFlagNotSafe">
- No seguro
- </string>
- <string name="TooltipFlagNoFly">
- No volar
- </string>
- <string name="TooltipFlagGroupScripts">
- Scripts el grupo
- </string>
- <string name="TooltipFlagNoScripts">
- No scripts
- </string>
- <string name="TooltipLand">
- Terreno:
- </string>
- <string name="TooltipMustSingleDrop">
- Aquí se puede arrastrar sólo un ítem
- </string>
- <string name="RetrievingData">
- Reintentando...
- </string>
- <string name="ReleaseNotes">
- Notas de la versión
- </string>
- <string name="LoadingData">
- Cargando...
- </string>
- <string name="AvatarNameNobody">
- (nadie)
- </string>
- <string name="AvatarNameWaiting">
- (esperando)
- </string>
- <string name="AvatarNameHippos">
- (hipopótamos)
- </string>
- <string name="GroupNameNone">
- (ninguno)
- </string>
- <string name="AssetErrorNone">
- No hay ningún error
- </string>
- <string name="AssetErrorRequestFailed">
- Petición de asset: fallida
- </string>
- <string name="AssetErrorNonexistentFile">
- Petición de asset: el archivo no existe
- </string>
- <string name="AssetErrorNotInDatabase">
- Petición de asset: no se encontró el asset en la base de datos
- </string>
- <string name="AssetErrorEOF">
- Fin del archivo
- </string>
- <string name="AssetErrorCannotOpenFile">
- No puede abrirse el archivo
- </string>
- <string name="AssetErrorFileNotFound">
- No se ha encontrado el archivo
- </string>
- <string name="AssetErrorTCPTimeout">
- Tiempo de transferencia del archivo
- </string>
- <string name="AssetErrorCircuitGone">
- Circuito desconectado
- </string>
- <string name="AssetErrorUnknownStatus">
- Estado desconocido
- </string>
- <string name="AvatarEditingApparance">
- (Modificando la apariencia)
- </string>
- <string name="AvatarAway">
- Ausente
- </string>
- <string name="AvatarBusy">
- Ocupado
- </string>
- <string name="AvatarMuted">
- Ignorado
- </string>
- <string name="anim_express_afraid">
- Susto
- </string>
- <string name="anim_express_anger">
- Enfado
- </string>
- <string name="anim_away">
- Ausente
- </string>
- <string name="anim_backflip">
- Salto mortal atrás
- </string>
- <string name="anim_express_laugh">
- Carcajada
- </string>
- <string name="anim_express_toothsmile">
- Gran sonrisa
- </string>
- <string name="anim_blowkiss">
- Mandar un beso
- </string>
- <string name="anim_express_bored">
- Aburrimiento
- </string>
- <string name="anim_bow">
- Reverencia
- </string>
- <string name="anim_clap">
- Aplauso
- </string>
- <string name="anim_courtbow">
- Reverencia floreada
- </string>
- <string name="anim_express_cry">
- Llanto
- </string>
- <string name="anim_dance1">
- Baile 1
- </string>
- <string name="anim_dance2">
- Baile 2
- </string>
- <string name="anim_dance3">
- Baile 3
- </string>
- <string name="anim_dance4">
- Baile 4
- </string>
- <string name="anim_dance5">
- Baile 5
- </string>
- <string name="anim_dance6">
- Baile 6
- </string>
- <string name="anim_dance7">
- Baile 7
- </string>
- <string name="anim_dance8">
- Baile 8
- </string>
- <string name="anim_express_disdain">
- Desdén
- </string>
- <string name="anim_drink">
- Beber
- </string>
- <string name="anim_express_embarrased">
- Azorarse
- </string>
- <string name="anim_angry_fingerwag">
- Negar con el dedo
- </string>
- <string name="anim_fist_pump">
- Éxito con el puño
- </string>
- <string name="anim_yoga_float">
- Yoga flotando
- </string>
- <string name="anim_express_frown">
- Fruncir el ceño
- </string>
- <string name="anim_impatient">
- Impaciente
- </string>
- <string name="anim_jumpforjoy">
- Salto de alegría
- </string>
- <string name="anim_kissmybutt">
- Bésame el culo
- </string>
- <string name="anim_express_kiss">
- Besar
- </string>
- <string name="anim_laugh_short">
- Reír
- </string>
- <string name="anim_musclebeach">
- Sacar músculo
- </string>
- <string name="anim_no_unhappy">
- No (con enfado)
- </string>
- <string name="anim_no_head">
- No
- </string>
- <string name="anim_nyanya">
- Ña-Ña-Ña
- </string>
- <string name="anim_punch_onetwo">
- Puñetazo uno-dos
- </string>
- <string name="anim_express_open_mouth">
- Abrir la boca
- </string>
- <string name="anim_peace">
- &apos;V&apos; con los dedos
- </string>
- <string name="anim_point_you">
- Señalar a otro/a
- </string>
- <string name="anim_point_me">
- Señalarse
- </string>
- <string name="anim_punch_l">
- Puñetazo izquierdo
- </string>
- <string name="anim_punch_r">
- Puñetazo derecho
- </string>
- <string name="anim_rps_countdown">
- PPT cuenta
- </string>
- <string name="anim_rps_paper">
- PPT papel
- </string>
- <string name="anim_rps_rock">
- PPT piedra
- </string>
- <string name="anim_rps_scissors">
- PPT tijera
- </string>
- <string name="anim_express_repulsed">
- Repulsa
- </string>
- <string name="anim_kick_roundhouse_r">
- Patada circular
- </string>
- <string name="anim_express_sad">
- Triste
- </string>
- <string name="anim_salute">
- Saludo militar
- </string>
- <string name="anim_shout">
- Gritar
- </string>
- <string name="anim_express_shrug">
- Encogerse de hombros
- </string>
- <string name="anim_express_smile">
- Sonreír
- </string>
- <string name="anim_smoke_idle">
- Fumar: en la mano
- </string>
- <string name="anim_smoke_inhale">
- Fumar
- </string>
- <string name="anim_smoke_throw_down">
- Fumar: tirar el cigarro
- </string>
- <string name="anim_express_surprise">
- Sorpresa
- </string>
- <string name="anim_sword_strike_r">
- Estocadas
- </string>
- <string name="anim_angry_tantrum">
- Berrinche
- </string>
- <string name="anim_express_tongue_out">
- Sacar la lengua
- </string>
- <string name="anim_hello">
- Agitar la mano
- </string>
- <string name="anim_whisper">
- Cuchichear
- </string>
- <string name="anim_whistle">
- Pitar
- </string>
- <string name="anim_express_wink">
- Guiño
- </string>
- <string name="anim_wink_hollywood">
- Guiño (Hollywood)
- </string>
- <string name="anim_express_worry">
- Preocuparse
- </string>
- <string name="anim_yes_happy">
- Sí (contento)
- </string>
- <string name="anim_yes_head">
- Sí
- </string>
- <string name="texture_loading">
- Cargando...
- </string>
- <string name="worldmap_offline">
- Desconectado/a
- </string>
- <string name="whisper">
- susurra:
- </string>
- <string name="shout">
- grita:
- </string>
-</strings>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- This file contains strings that used to be hardcoded in the source.
+ It is only for those strings which do not belong in a floater.
+ For example, the strings used in avatar chat bubbles, and strings
+ that are returned from one component and may appear in many places-->
+<strings>
+ <string name="LoginInProgress">
+ Iniciando la sesión. [APP_NAME] debe de aparecer congelado. Por favor, espere.
+ </string>
+ <string name="LoginAuthenticating">
+ Autenticando
+ </string>
+ <string name="LoginMaintenance">
+ Realizando el mantenimiento de la cuenta...
+ </string>
+ <string name="LoginAttempt">
+ Ha fallado el intento previo de iniciar sesión. Iniciando sesión, intento [NUMBER]
+ </string>
+ <string name="LoginPrecaching">
+ Cargando el mundo...
+ </string>
+ <string name="LoginInitializingBrowser">
+ Iniciando el navegador web incorporado...
+ </string>
+ <string name="LoginInitializingMultimedia">
+ Iniciando multimedia...
+ </string>
+ <string name="LoginVerifyingCache">
+ Comprobando los archivos de la caché (puede tardar entre 60 y 90 segundos)...
+ </string>
+ <string name="LoginProcessingResponse">
+ Procesando la respuesta...
+ </string>
+ <string name="LoginInitializingWorld">
+ Iniciando el mundo...
+ </string>
+ <string name="LoginDecodingImages">
+ Decodificando las imágenes...
+ </string>
+ <string name="LoginInitializingQuicktime">
+ Iniciando QuickTime...
+ </string>
+ <string name="LoginQuicktimeNotFound">
+ No se ha encontrado QuickTime. Imposible iniciarlo.
+ </string>
+ <string name="LoginQuicktimeOK">
+ QuickTime se ha iniciado adecuadamente.
+ </string>
+ <string name="LoginWaitingForRegionHandshake">
+ Esperando la conexión con la región...
+ </string>
+ <string name="LoginConnectingToRegion">
+ Conectando con la región...
+ </string>
+ <string name="LoginDownloadingClothing">
+ Descargando la ropa...
+ </string>
+ <string name="AgentLostConnection">
+ Esta región puede estar teniendo problemas. Por favor, compruebe su conexión a internet.
+ </string>
+ <string name="TooltipPerson">
+ Persona
+ </string>
+ <string name="TooltipNoName">
+ (sin nombre)
+ </string>
+ <string name="TooltipOwner">
+ Propietario:
+ </string>
+ <string name="TooltipPublic">
+ Público
+ </string>
+ <string name="TooltipIsGroup">
+ (Grupo)
+ </string>
+ <string name="TooltipFlagScript">
+ Script
+ </string>
+ <string name="TooltipFlagPhysics">
+ Propiedades físicas
+ </string>
+ <string name="TooltipFlagTouch">
+ Tocar
+ </string>
+ <string name="TooltipFlagL$">
+ L$
+ </string>
+ <string name="TooltipFlagDropInventory">
+ Desplegar el inventario
+ </string>
+ <string name="TooltipFlagPhantom">
+ Inmaterial
+ </string>
+ <string name="TooltipFlagTemporary">
+ Temporal
+ </string>
+ <string name="TooltipFlagRightClickMenu">
+ (pulse el botón derecho del ratón para ver el menú)
+ </string>
+ <string name="TooltipFreeToCopy">
+ Copia gratis
+ </string>
+ <string name="TooltipForSaleL$">
+ En venta: [AMOUNT] L$
+ </string>
+ <string name="TooltipForSaleMsg">
+ En venta: [MESSAGE]
+ </string>
+ <string name="TooltipFlagGroupBuild">
+ Construir el grupo
+ </string>
+ <string name="TooltipFlagNoBuild">
+ No construir
+ </string>
+ <string name="TooltipFlagNoEdit">
+ Construir el grupo
+ </string>
+ <string name="TooltipFlagNotSafe">
+ No seguro
+ </string>
+ <string name="TooltipFlagNoFly">
+ No volar
+ </string>
+ <string name="TooltipFlagGroupScripts">
+ Scripts el grupo
+ </string>
+ <string name="TooltipFlagNoScripts">
+ No scripts
+ </string>
+ <string name="TooltipLand">
+ Terreno:
+ </string>
+ <string name="TooltipMustSingleDrop">
+ Aquí se puede arrastrar sólo un ítem
+ </string>
+ <string name="RetrievingData">
+ Reintentando...
+ </string>
+ <string name="ReleaseNotes">
+ Notas de la versión
+ </string>
+ <string name="LoadingData">
+ Cargando...
+ </string>
+ <string name="AvatarNameNobody">
+ (nadie)
+ </string>
+ <string name="AvatarNameWaiting">
+ (esperando)
+ </string>
+ <string name="AvatarNameHippos">
+ (hipopótamos)
+ </string>
+ <string name="GroupNameNone">
+ (ninguno)
+ </string>
+ <string name="AssetErrorNone">
+ No hay ningún error
+ </string>
+ <string name="AssetErrorRequestFailed">
+ Petición de asset: fallida
+ </string>
+ <string name="AssetErrorNonexistentFile">
+ Petición de asset: el archivo no existe
+ </string>
+ <string name="AssetErrorNotInDatabase">
+ Petición de asset: no se encontró el asset en la base de datos
+ </string>
+ <string name="AssetErrorEOF">
+ Fin del archivo
+ </string>
+ <string name="AssetErrorCannotOpenFile">
+ No puede abrirse el archivo
+ </string>
+ <string name="AssetErrorFileNotFound">
+ No se ha encontrado el archivo
+ </string>
+ <string name="AssetErrorTCPTimeout">
+ Tiempo de transferencia del archivo
+ </string>
+ <string name="AssetErrorCircuitGone">
+ Circuito desconectado
+ </string>
+ <string name="AssetErrorPriceMismatch">
+ No concuerda el precio en el visor y en el servidor
+ </string>
+ <string name="AssetErrorUnknownStatus">
+ Estado desconocido
+ </string>
+ <string name="AvatarEditingApparance">
+ (Modificando la apariencia)
+ </string>
+ <string name="AvatarAway">
+ Ausente
+ </string>
+ <string name="AvatarBusy">
+ Ocupado
+ </string>
+ <string name="AvatarMuted">
+ Ignorado
+ </string>
+ <string name="anim_express_afraid">
+ Susto
+ </string>
+ <string name="anim_express_anger">
+ Enfado
+ </string>
+ <string name="anim_away">
+ Ausente
+ </string>
+ <string name="anim_backflip">
+ Salto mortal atrás
+ </string>
+ <string name="anim_express_laugh">
+ Carcajada
+ </string>
+ <string name="anim_express_toothsmile">
+ Gran sonrisa
+ </string>
+ <string name="anim_blowkiss">
+ Mandar un beso
+ </string>
+ <string name="anim_express_bored">
+ Aburrimiento
+ </string>
+ <string name="anim_bow">
+ Reverencia
+ </string>
+ <string name="anim_clap">
+ Aplauso
+ </string>
+ <string name="anim_courtbow">
+ Reverencia floreada
+ </string>
+ <string name="anim_express_cry">
+ Llanto
+ </string>
+ <string name="anim_dance1">
+ Baile 1
+ </string>
+ <string name="anim_dance2">
+ Baile 2
+ </string>
+ <string name="anim_dance3">
+ Baile 3
+ </string>
+ <string name="anim_dance4">
+ Baile 4
+ </string>
+ <string name="anim_dance5">
+ Baile 5
+ </string>
+ <string name="anim_dance6">
+ Baile 6
+ </string>
+ <string name="anim_dance7">
+ Baile 7
+ </string>
+ <string name="anim_dance8">
+ Baile 8
+ </string>
+ <string name="anim_express_disdain">
+ Desdén
+ </string>
+ <string name="anim_drink">
+ Beber
+ </string>
+ <string name="anim_express_embarrased">
+ Azorarse
+ </string>
+ <string name="anim_angry_fingerwag">
+ Negar con el dedo
+ </string>
+ <string name="anim_fist_pump">
+ Éxito con el puño
+ </string>
+ <string name="anim_yoga_float">
+ Yoga flotando
+ </string>
+ <string name="anim_express_frown">
+ Fruncir el ceño
+ </string>
+ <string name="anim_impatient">
+ Impaciente
+ </string>
+ <string name="anim_jumpforjoy">
+ Salto de alegría
+ </string>
+ <string name="anim_kissmybutt">
+ Bésame el culo
+ </string>
+ <string name="anim_express_kiss">
+ Besar
+ </string>
+ <string name="anim_laugh_short">
+ Reír
+ </string>
+ <string name="anim_musclebeach">
+ Sacar músculo
+ </string>
+ <string name="anim_no_unhappy">
+ No (con enfado)
+ </string>
+ <string name="anim_no_head">
+ No
+ </string>
+ <string name="anim_nyanya">
+ Ña-Ña-Ña
+ </string>
+ <string name="anim_punch_onetwo">
+ Puñetazo uno-dos
+ </string>
+ <string name="anim_express_open_mouth">
+ Abrir la boca
+ </string>
+ <string name="anim_peace">
+ &apos;V&apos; con los dedos
+ </string>
+ <string name="anim_point_you">
+ Señalar a otro/a
+ </string>
+ <string name="anim_point_me">
+ Señalarse
+ </string>
+ <string name="anim_punch_l">
+ Puñetazo izquierdo
+ </string>
+ <string name="anim_punch_r">
+ Puñetazo derecho
+ </string>
+ <string name="anim_rps_countdown">
+ PPT cuenta
+ </string>
+ <string name="anim_rps_paper">
+ PPT papel
+ </string>
+ <string name="anim_rps_rock">
+ PPT piedra
+ </string>
+ <string name="anim_rps_scissors">
+ PPT tijera
+ </string>
+ <string name="anim_express_repulsed">
+ Repulsa
+ </string>
+ <string name="anim_kick_roundhouse_r">
+ Patada circular
+ </string>
+ <string name="anim_express_sad">
+ Triste
+ </string>
+ <string name="anim_salute">
+ Saludo militar
+ </string>
+ <string name="anim_shout">
+ Gritar
+ </string>
+ <string name="anim_express_shrug">
+ Encogerse de hombros
+ </string>
+ <string name="anim_express_smile">
+ Sonreír
+ </string>
+ <string name="anim_smoke_idle">
+ Fumar: en la mano
+ </string>
+ <string name="anim_smoke_inhale">
+ Fumar
+ </string>
+ <string name="anim_smoke_throw_down">
+ Fumar: tirar el cigarro
+ </string>
+ <string name="anim_express_surprise">
+ Sorpresa
+ </string>
+ <string name="anim_sword_strike_r">
+ Estocadas
+ </string>
+ <string name="anim_angry_tantrum">
+ Berrinche
+ </string>
+ <string name="anim_express_tongue_out">
+ Sacar la lengua
+ </string>
+ <string name="anim_hello">
+ Agitar la mano
+ </string>
+ <string name="anim_whisper">
+ Cuchichear
+ </string>
+ <string name="anim_whistle">
+ Pitar
+ </string>
+ <string name="anim_express_wink">
+ Guiño
+ </string>
+ <string name="anim_wink_hollywood">
+ Guiño (Hollywood)
+ </string>
+ <string name="anim_express_worry">
+ Preocuparse
+ </string>
+ <string name="anim_yes_happy">
+ Sí (contento)
+ </string>
+ <string name="anim_yes_head">
+ Sí
+ </string>
+ <string name="texture_loading">
+ Cargando...
+ </string>
+ <string name="worldmap_offline">
+ Desconectado/a
+ </string>
+ <string name="whisper">
+ susurra:
+ </string>
+ <string name="shout">
+ grita:
+ </string>
+ <string name="SIM_ACCESS_PG">
+ &apos;PG&apos;
+ </string>
+ <string name="SIM_ACCESS_MATURE">
+ &apos;Mature&apos;
+ </string>
+ <string name="SIM_ACCESS_ADULT">
+ &apos;Adult&apos;
+ </string>
+ <string name="SIM_ACCESS_DOWN">
+ Desconectado
+ </string>
+ <string name="SIM_ACCESS_MIN">
+ Desconocido
+ </string>
+ <string name="land_type_unknown">
+ (desconocido)
+ </string>
+ <string name="covenant_never_modified">Última modificación: (nunca)</string>
+ <string name="covenant_modified">Última modificación: </string>
+ <string name="all_files">
+ Todos los archivos
+ </string>
+ <string name="sound_files">
+ Sonidos
+ </string>
+ <string name="animation_files">
+ Animaciones
+ </string>
+ <string name="image_files">
+ Imágenes
+ </string>
+ <string name="save_file_verb">
+ Guardar
+ </string>
+ <string name="load_file_verb">
+ Cargar
+ </string>
+ <string name="targa_image_files">
+ Imágenes Targa
+ </string>
+ <string name="bitmap_image_files">
+ Imágenes de mapa de bits
+ </string>
+ <string name="avi_movie_file">
+ Archivo de película AVI
+ </string>
+ <string name="xaf_animation_file">
+ Archivo de anim. XAF
+ </string>
+ <string name="xml_file">
+ Archivo XML
+ </string>
+ <string name="dot_raw_file">
+ Archivo RAW
+ </string>
+ <string name="compressed_image_files">
+ Imágenes comprimidas
+ </string>
+ <string name="load_files">
+ Cargar archivos
+ </string>
+ <string name="choose_the_directory">
+ Elegir directorio
+ </string>
+</strings>
diff --git a/indra/newview/skins/default/xui/es/teleport_strings.xml b/indra/newview/skins/default/xui/es/teleport_strings.xml
index 27c87f2ebd..6cf5437e3c 100644
--- a/indra/newview/skins/default/xui/es/teleport_strings.xml
+++ b/indra/newview/skins/default/xui/es/teleport_strings.xml
@@ -1,74 +1,76 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<teleport_messages>
- <message_set name="errors">
- <message name="invalid_tport">
- Ha habido un problema al procesar su petición de teleporte. Debe volver a iniciar sesión para poder teleportarse. Si le sigue apareciendo este mensaje, revise, por favor, las preguntas frecuentes en el Soporte técnico: www.secondlife.com/support
- </message>
- <message name="invalid_region_handoff">
- Ha habido un problema al procesar su paso a otra región. Debe volver a iniciar sesión para poder pasar de región a región. Si le sigue apareciendo este mensaje, revise, por favor, las preguntas frecuentes en el Soporte técnico: www.secondlife.com/support
- </message>
- <message name="blocked_tport">
- Lo sentimos, en estos momentos los teleportes están bloqueados. Vuelva a intentarlo en un momento. Si sigue sin poder teleportarse, desconéctese y vuelva a iniciar sesión para solucionar el problema.
- </message>
- <message name="nolandmark_tport">
- Lo sentimos, pero el sistema no ha podido localizar el destino de este hito.
- </message>
- <message name="timeout_tport">
- Lo sentimos, pero el sistema no ha podido completar el teleporte.
-Vuelva a intentarlo en un momento.
- </message>
- <message name="noaccess_tport">
- Lo sentimos, pero usted no tiene acceso al destino de este teleporte.
- </message>
- <message name="missing_attach_tport">
- Aún no han llegado sus objetos anexados. Espere unos segundos más o desconéctese y vuelva a iniciar sesión antes de teleportarse.
- </message>
- <message name="too_many_uploads_tport">
- La cola de espera en esta región está actualmente obstruida, por lo que su petición de teleporte no se atenderá en un tiempo prudencial. Por favor, vuelva a intentarlo en unos minutos o vaya a una zona menos ocupada.
- </message>
- <message name="expired_tport">
- Lo sentimos, pero el sistema no ha podido atender a su petición de teleporte en un tiempo prudencial. Por favor, vuelva a intentarlo en unos pocos minutos.
- </message>
- <message name="expired_region_handoff">
- Lo sentimos, pero el sistema no ha podido completar su paso a otra región en un tiempo prudencial. Por favor, vuelva a intentarlo en unos pocos minutos.
- </message>
- <message name="no_host">
- Ha sido imposible encontrar el destino del teleporte: o está desactivado temporalmente o ya no existe. Por favor, vuelva a intentarlo en unos pocos minutos.
- </message>
- <message name="no_inventory_host">
- En estos momentos no está disponible el sistema del inventario.
- </message>
- </message_set>
- <message_set name="progress">
- <message name="sending_dest">
- Llevando al destino.
- </message>
- <message name="redirecting">
- Redireccionando a una posición diferente.
- </message>
- <message name="relaying">
- Reorientando el destino.
- </message>
- <message name="sending_home">
- Enviando la petición de posición de la Base.
- </message>
- <message name="sending_landmark">
- Enviando la petición de posición del hito.
- </message>
- <message name="completing">
- Completando el teleporte.
- </message>
- <message name="resolving">
- Especificando el destino.
- </message>
- <message name="contacting">
- Contactando con la nueva región.
- </message>
- <message name="arriving">
- Llegando...
- </message>
- <message name="requesting">
- Solicitando teleporte...
- </message>
- </message_set>
-</teleport_messages>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<teleport_messages>
+ <message_set name="errors">
+ <message name="invalid_tport">
+ Ha habido un problema al procesar su petición de teleporte. Debe volver a iniciar sesión para poder teleportarse. Si le sigue apareciendo este mensaje, revise, por favor, las preguntas frecuentes en el Soporte técnico:
+www.secondlife.com/support
+ </message>
+ <message name="invalid_region_handoff">
+ Ha habido un problema al procesar su paso a otra región. Debe volver a iniciar sesión para poder pasar de región a región. Si le sigue apareciendo este mensaje, revise, por favor, las preguntas frecuentes en el Soporte técnico:
+www.secondlife.com/support
+ </message>
+ <message name="blocked_tport">
+ Lo sentimos, en estos momentos los teleportes están bloqueados. Vuelva a intentarlo en un momento. Si sigue sin poder teleportarse, desconéctese y vuelva a iniciar sesión para solucionar el problema.
+ </message>
+ <message name="nolandmark_tport">
+ Lo sentimos, pero el sistema no ha podido localizar el destino de este hito.
+ </message>
+ <message name="timeout_tport">
+ Lo sentimos, pero el sistema no ha podido completar el teleporte.
+Vuelva a intentarlo en un momento.
+ </message>
+ <message name="noaccess_tport">
+ Lo sentimos, pero usted no tiene acceso al destino de este teleporte.
+ </message>
+ <message name="missing_attach_tport">
+ Aún no han llegado sus objetos anexados. Espere unos segundos más o desconéctese y vuelva a iniciar sesión antes de teleportarse.
+ </message>
+ <message name="too_many_uploads_tport">
+ La cola de espera en esta región está actualmente obstruida, por lo que su petición de teleporte no se atenderá en un tiempo prudencial. Por favor, vuelva a intentarlo en unos minutos o vaya a una zona menos ocupada.
+ </message>
+ <message name="expired_tport">
+ Lo sentimos, pero el sistema no ha podido atender a su petición de teleporte en un tiempo prudencial. Por favor, vuelva a intentarlo en unos pocos minutos.
+ </message>
+ <message name="expired_region_handoff">
+ Lo sentimos, pero el sistema no ha podido completar su paso a otra región en un tiempo prudencial. Por favor, vuelva a intentarlo en unos pocos minutos.
+ </message>
+ <message name="no_host">
+ Ha sido imposible encontrar el destino del teleporte: o está desactivado temporalmente o ya no existe. Por favor, vuelva a intentarlo en unos pocos minutos.
+ </message>
+ <message name="no_inventory_host">
+ En estos momentos no está disponible el sistema del inventario.
+ </message>
+ </message_set>
+ <message_set name="progress">
+ <message name="sending_dest">
+ Llevando al destino.
+ </message>
+ <message name="redirecting">
+ Redireccionando a una posición diferente.
+ </message>
+ <message name="relaying">
+ Reorientando el destino.
+ </message>
+ <message name="sending_home">
+ Enviando la petición de posición de la Base.
+ </message>
+ <message name="sending_landmark">
+ Enviando la petición de posición del hito.
+ </message>
+ <message name="completing">
+ Completando el teleporte.
+ </message>
+ <message name="resolving">
+ Especificando el destino.
+ </message>
+ <message name="contacting">
+ Contactando con la nueva región.
+ </message>
+ <message name="arriving">
+ Llegando...
+ </message>
+ <message name="requesting">
+ Solicitando teleporte...
+ </message>
+ </message_set>
+</teleport_messages>
diff --git a/indra/newview/skins/default/xui/fr/floater_about.xml b/indra/newview/skins/default/xui/fr/floater_about.xml
index 1565e7cd68..d627571ae9 100644
--- a/indra/newview/skins/default/xui/fr/floater_about.xml
+++ b/indra/newview/skins/default/xui/fr/floater_about.xml
@@ -20,13 +20,14 @@
SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
xmlrpc-epi Copyright (C) 2000 Epinions, Inc.
zlib Copyright (C) 1995-2002 Jean-loup Gailly et Mark Adler.
-
+ google-perftools Copyright (c) 2005, Google Inc.
+
Tous droits réservés. Voir licenses.txt pour plus de détails.
Codage Audio du chat vocal : Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C)
- Je m&apos;en sors avec un peu d&apos;aide de mes amis. --Richard Starkey
+ Pour réussir dans les affaires, soyez audacieux, créatif et différent. - Henry Marchant
</text_editor>
<string name="you_are_at">
Votre position : [POSITION]
diff --git a/indra/newview/skins/default/xui/fr/floater_about_land.xml b/indra/newview/skins/default/xui/fr/floater_about_land.xml
index d48a4ae22a..a556fa4173 100644
--- a/indra/newview/skins/default/xui/fr/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/fr/floater_about_land.xml
@@ -10,6 +10,18 @@
Description :
</text>
<text_editor name="Description"/>
+ <text name="LandType">
+ Type :
+ </text>
+ <text name="LandTypeText">
+ Continent / Homestead
+ </text>
+ <text name="ContentRating">
+ Catégorie :
+ </text>
+ <text name="ContentRatingText">
+ Adult
+ </text>
<text length="1" name="Owner:" type="string">
Propriétaire :
</text>
@@ -45,7 +57,7 @@
<text length="1" name="Selling with no objects in parcel." type="string">
Objets non inclus dans la vente.
</text>
- <button label="Annuler la vente du terrain" label_selected="Annuler la vente du terrain" name="Cancel Land Sale" width="165" left="275"/>
+ <button label="Annuler la vente du terrain" label_selected="Annuler la vente du terrain" left="275" name="Cancel Land Sale" width="165"/>
<text length="1" name="Claimed:" type="string">
Acquis :
</text>
@@ -53,7 +65,7 @@
Tue Aug 15 13:47:25 2006
</text>
<text length="1" name="PriceLabel" type="string">
- Surface :
+ Superficie :
</text>
<text length="1" name="PriceText" type="string">
4048 m²
@@ -64,9 +76,9 @@
<text length="1" name="DwellText" type="string">
0
</text>
- <button label="Acheter le terrain..." label_selected="Acheter le terrain..." name="Buy Land..." width="125" left="130"/>
+ <button label="Acheter le terrain..." label_selected="Acheter le terrain..." left="130" name="Buy Land..." width="125"/>
<button label="Acheter pour le groupe..." label_selected="Acheter pour le groupe..." name="Buy For Group..."/>
- <button label="Acheter un pass..." label_selected="Acheter un pass..." name="Buy Pass..." tool_tip="Un pass vous donne un accès temporaire à ce terrain." width="125" left="130"/>
+ <button label="Acheter un pass..." label_selected="Acheter un pass..." left="130" name="Buy Pass..." tool_tip="Un pass vous donne un accès temporaire à ce terrain." width="125"/>
<button label="Abandonner le terrain..." label_selected="Abandonner le terrain..." name="Abandon Land..."/>
<button label="Redemander le terrain..." label_selected="Redemander le terrain…" name="Reclaim Land..."/>
<button label="Vente Linden..." label_selected="Vente Linden..." name="Linden Sale..." tool_tip="Le terrain doit être la propriété d&apos;un résident, avoir un contenu défini et ne pas être aux enchères."/>
@@ -112,17 +124,11 @@ Allez dans le menu Monde &gt; À propos du terrain ou sélectionnez une autre pa
</string>
</panel>
<panel label="Règlement" name="land_covenant_panel">
- <text length="1" name="covenant_timestamp_text" type="string">
- Last Modified Wed Dec 31 16:00:00 1969
- </text>
- <text length="1" name="region_name_lbl" type="string">
- Région :
- </text>
- <text length="1" name="region_name_text" type="string">
- leyla
+ <text name="estate_section_lbl">
+ Domaine :
</text>
<text length="1" name="estate_name_lbl" type="string">
- Domaine :
+ Nom :
</text>
<text length="1" name="estate_name_text" type="string">
continent
@@ -133,15 +139,45 @@ Allez dans le menu Monde &gt; À propos du terrain ou sélectionnez une autre pa
<text length="1" name="estate_owner_text" type="string">
(aucun)
</text>
+ <text_editor length="1" name="covenant_editor" type="string">
+ Il n&apos;y a aucun règlement pour ce domaine.
+ </text_editor>
+ <text length="1" name="covenant_timestamp_text" type="string">
+ Last Modified Wed Dec 31 16:00:00 1969
+ </text>
+ <text name="region_section_lbl">
+ Région :
+ </text>
+ <text length="1" name="region_name_lbl" type="string">
+ Nom :
+ </text>
+ <text length="1" name="region_name_text" type="string">
+ leyla
+ </text>
+ <text name="region_landtype_lbl">
+ Type :
+ </text>
+ <text name="region_landtype_text">
+ Continent / Homestead
+ </text>
+ <text name="region_maturity_lbl">
+ Catégorie :
+ </text>
+ <text name="region_maturity_text">
+ Adult
+ </text>
+ <text name="resellable_lbl">
+ Revendre :
+ </text>
<text length="1" name="resellable_clause" type="string">
- Le terrain acheté dans cette région ne peut être revendu.
+ Le terrain dans cette région ne peut être revendu.
+ </text>
+ <text name="changeable_lbl">
+ Sous-diviser :
</text>
<text length="1" name="changeable_clause" type="string">
- Le terrain acheté dans cette région ne peut être revendu/divisé.
+ Le terrain dans cette région ne peut être fusionné/divisé.
</text>
- <text_editor length="1" name="covenant_editor" type="string">
- Il n&apos;y a aucun règlement pour ce domaine.
- </text_editor>
<string name="can_resell">
Le terrain acheté dans cette région peut être revendu.
</string>
@@ -149,10 +185,12 @@ Allez dans le menu Monde &gt; À propos du terrain ou sélectionnez une autre pa
Le terrain acheté dans cette région ne peut pas être revendu.
</string>
<string name="can_change">
- Le terrain acheté dans cette région peut être fusionné ou divisé.
+ Le terrain acheté dans cette région peut être fusionné
+ou divisé.
</string>
<string name="can_not_change">
- Le terrain acheté dans cette région ne peut pas être fusionné ou divisé.
+ Le terrain acheté dans cette région ne peut pas être fusionné
+ou divisé.
</string>
</panel>
<panel label="Objets" name="land_objects_panel">
@@ -162,7 +200,7 @@ Allez dans le menu Monde &gt; À propos du terrain ou sélectionnez une autre pa
<text length="1" name="Simulator primitive usage:" type="string">
Prims utilisées sur la parcelle :
</text>
- <text name="objects_available" left="214" width="230">
+ <text left="214" name="objects_available" width="230">
[COUNT] sur [MAX] ([AVAILABLE] disponibles)
</text>
<string name="objects_available_text">
@@ -174,49 +212,49 @@ Allez dans le menu Monde &gt; À propos du terrain ou sélectionnez une autre pa
<text length="1" name="Primitives parcel supports:" type="string" width="200">
Prims max. sur la parcelle :
</text>
- <text length="1" name="object_contrib_text" type="string" left="214" width="152">
+ <text left="214" length="1" name="object_contrib_text" type="string" width="152">
[COUNT]
</text>
<text length="1" name="Primitives on parcel:" type="string">
Prims sur la parcelle :
</text>
- <text length="1" name="total_objects_text" type="string" left="214" width="48">
+ <text left="214" length="1" name="total_objects_text" type="string" width="48">
[COUNT]
</text>
- <text length="1" name="Owned by parcel owner:" type="string" left="14" width="180">
+ <text left="14" length="1" name="Owned by parcel owner:" type="string" width="180">
Appartenant au propriétaire :
</text>
- <text length="1" name="owner_objects_text" type="string" left="214" width="48">
+ <text left="214" length="1" name="owner_objects_text" type="string" width="48">
[COUNT]
</text>
<button label="Afficher" label_selected="Afficher" name="ShowOwner" right="-135" width="60"/>
- <button label="Renvoyer..." label_selected="Renvoyer..." name="ReturnOwner..." tool_tip="Renvoyer les objets à leurs propriétaires." right="-10" width="119"/>
- <text length="1" name="Set to group:" type="string" left="14" width="180">
- Donnés au groupe :
+ <button label="Renvoyer..." label_selected="Renvoyer..." name="ReturnOwner..." right="-10" tool_tip="Renvoyer les objets à leurs propriétaires." width="119"/>
+ <text left="14" length="1" name="Set to group:" type="string" width="180">
+ Données au groupe :
</text>
- <text length="1" name="group_objects_text" type="string" left="214" width="48">
+ <text left="214" length="1" name="group_objects_text" type="string" width="48">
[COUNT]
</text>
- <button label="Afficher" label_selected="Afficher" name="ShowGroup" width="60" right="-135"/>
- <button label="Renvoyer..." label_selected="Renvoyer..." name="ReturnGroup..." tool_tip="Renvoyer les objets à leurs propriétaires." right="-10" width="119"/>
- <text length="1" name="Owned by others:" type="string" left="14" width="128">
+ <button label="Afficher" label_selected="Afficher" name="ShowGroup" right="-135" width="60"/>
+ <button label="Renvoyer..." label_selected="Renvoyer..." name="ReturnGroup..." right="-10" tool_tip="Renvoyer les objets à leurs propriétaires." width="119"/>
+ <text left="14" length="1" name="Owned by others:" type="string" width="128">
Appartenant à d&apos;autres :
</text>
- <text length="1" name="other_objects_text" type="string" left="214" width="48">
+ <text left="214" length="1" name="other_objects_text" type="string" width="48">
[COUNT]
</text>
<button label="Afficher" label_selected="Afficher" name="ShowOther" right="-135" width="60"/>
- <button label="Renvoyer..." label_selected="Renvoyer..." name="ReturnOther..." tool_tip="Renvoyer les objets à leurs propriétaires." right="-10" width="119"/>
- <text length="1" name="Selected / sat upon:" type="string" left="14" width="193">
- Sélectionnés/où quelqu&apos;un est assis :
+ <button label="Renvoyer..." label_selected="Renvoyer..." name="ReturnOther..." right="-10" tool_tip="Renvoyer les objets à leurs propriétaires." width="119"/>
+ <text left="14" length="1" name="Selected / sat upon:" type="string" width="193">
+ Sélectionnées/où quelqu&apos;un est assis :
</text>
- <text length="1" name="selected_objects_text" type="string" left="214" width="48">
+ <text left="214" length="1" name="selected_objects_text" type="string" width="48">
[COUNT]
</text>
- <text name="Autoreturn" width="412" left="4">
- Renvoi automatique des objets d&apos;autres résidents (minutes, 0 pour désactiver) :
+ <text left="4" name="Autoreturn" width="412">
+ Renvoi automatique des objets des autres résidents (min., 0 pour désactiver) :
</text>
- <line_editor name="clean other time" right="-6" width="36" />
+ <line_editor name="clean other time" right="-6" width="36"/>
<text length="1" name="Object Owners:" type="string">
Propriétaires :
</text>
@@ -237,65 +275,155 @@ Allez dans le menu Monde &gt; À propos du terrain ou sélectionnez une autre pa
<check_box label="Modifier le terrain" name="edit land check" tool_tip="Si cette option est cochée, n&apos;importe qui peut terraformer votre terrain. Il vaut mieux ne pas cocher cette option pour toujours pouvoir modifer votre propre terrain."/>
<check_box label="Créer des repères" name="check landmark"/>
<check_box label="Voler" name="check fly" tool_tip="Si cette option est cochée, les résidents peuvent voler sur votre terrain. Si elle n&apos;est pas cochée, ils ne pourront voler que lorsqu&apos;ils arrivent et passent au dessus de votre terrain."/>
- <text name="allow_label2" left="152">
+ <text left="152" name="allow_label2">
Créer des objets :
</text>
- <check_box label="Tous les résidents" name="edit objects check" left="285"/>
- <check_box label="Groupe" name="edit group objects check" left="395"/>
- <text name="allow_label3" left="152" width="134">
+ <check_box label="Tous les résidents" left="285" name="edit objects check"/>
+ <check_box label="Groupe" left="395" name="edit group objects check"/>
+ <text left="152" name="allow_label3" width="134">
Laisser entrer des objets :
</text>
- <check_box label="Tous les résidents" name="all object entry check" left="285"/>
- <check_box label="Groupe" name="group object entry check" left="395"/>
- <text name="allow_label4" left="152">
+ <check_box label="Tous les résidents" left="285" name="all object entry check"/>
+ <check_box label="Groupe" left="395" name="group object entry check"/>
+ <text left="152" name="allow_label4">
Exécuter des scripts :
</text>
- <check_box label="Tous les résidents" name="check other scripts" left="285"/>
- <check_box label="Groupe" name="check group scripts" left="395"/>
+ <check_box label="Tous les résidents" left="285" name="check other scripts"/>
+ <check_box label="Groupe" left="395" name="check group scripts"/>
<text length="1" name="land_options_label" type="string">
Options du terrain :
</text>
<check_box label="Sécurisé (pas de dégâts)" name="check safe" tool_tip="Si cette option est cochée, le terrain est sécurisé et il n&apos;y pas de risques de dommages causés par des combats. Si elle est décochée, des dommages causés par les combats peuvent avoir lieu."/>
- <check_box label="Pas de bousculades" left="14" bottom="-140"
- name="PushRestrictCheck" tool_tip="Empêche l&apos;utilisation de scripts causant des bousculades. Cette option est utile pour empêcher les comportements abusifs sur votre terrain."/>
- <check_box label="Afficher dans la recherche (30 L$/semaine) sous" name="ShowDirectoryCheck" tool_tip="Afficher la parcelle dans les résultats de recherche" bottom="-160"/>
- <combo_box name="land category" left="286" width="146" bottom="-160">
- <combo_box.item name="AnyCategory" label="Toutes catégories"/>
- <combo_box.item name="LindenLocation" label="Appartenant aux Lindens"/>
-
-
- <combo_box.item name="Arts&amp;Culture" label="Art et Culture"/>
- <combo_box.item name="Business" label="Affaires"/>
- <combo_box.item name="Educational" label="Éducation"/>
- <combo_box.item name="Gaming" label="Jeux"/>
- <combo_box.item name="Hangout" label="Favoris"/>
- <combo_box.item name="NewcomerFriendly" label="Accueil pour les nouveaux"/>
- <combo_box.item name="Parks&amp;Nature" label="Parcs et Nature"/>
- <combo_box.item name="Residential" label="Résidentiel"/>
- <combo_box.item name="Shopping" label="Shopping"/>
- <combo_box.item name="Other" label="Autre"/>
+ <check_box bottom="-140" label="Pas de bousculades" left="14" name="PushRestrictCheck" tool_tip="Empêche l&apos;utilisation de scripts causant des bousculades. Cette option est utile pour empêcher les comportements abusifs sur votre terrain."/>
+ <check_box bottom="-160" label="Afficher dans la recherche (30 L$/semaine) sous" name="ShowDirectoryCheck" tool_tip="Afficher la parcelle dans les résultats de recherche"/>
+ <string name="search_enabled_tooltip">
+ Permettre aux autres résidents de voir cette parcelle dans les résultats de recherche
+ </string>
+ <string name="search_disabled_small_tooltip">
+ Cette option est désactivée car la superficie de cette parcelle est inférieure ou égale à 128 m².
+Seules les parcelles de grande taille peuvent apparaître dans la recherche.
+ </string>
+ <string name="search_disabled_permissions_tooltip">
+ Cette option est désactivée car vous ne pouvez pas modifier les options de cette parcelle.
+ </string>
+ <combo_box bottom="-160" left="286" name="land category with adult" width="146">
+ <combo_item name="AnyCategory">
+ Toutes catégories
+ </combo_item>
+ <combo_item name="LindenLocation">
+ Appartenant aux Lindens
+ </combo_item>
+ <combo_item name="Adult">
+ Adult
+ </combo_item>
+ <combo_item name="Arts&amp;Culture">
+ Art et Culture
+ </combo_item>
+ <combo_item name="Business">
+ Affaires
+ </combo_item>
+ <combo_item name="Educational">
+ Éducation
+ </combo_item>
+ <combo_item name="Gaming">
+ Jeux
+ </combo_item>
+ <combo_item name="Hangout">
+ Favoris
+ </combo_item>
+ <combo_item name="NewcomerFriendly">
+ Accueil pour les nouveaux
+ </combo_item>
+ <combo_item name="Parks&amp;Nature">
+ Parcs et Nature
+ </combo_item>
+ <combo_item name="Residential">
+ Résidentiel
+ </combo_item>
+ <combo_item name="Shopping">
+ Shopping
+ </combo_item>
+ <combo_item name="Other">
+ Autre
+ </combo_item>
</combo_box>
- <button label="?" label_selected="?" name="?" left="436" bottom="-160"/>
- <check_box name="MatureCheck" bottom="-180"/>
- <text length="1" name="Snapshot:" type="string" bottom="-200">
+ <combo_box bottom="-160" left="286" name="land category" width="146">
+ <combo_item name="AnyCategory">
+ Toutes catégories
+ </combo_item>
+ <combo_item name="LindenLocation">
+ Appartenant aux Lindens
+ </combo_item>
+ <combo_item name="Arts&amp;Culture">
+ Art et Culture
+ </combo_item>
+ <combo_item name="Business">
+ Affaires
+ </combo_item>
+ <combo_item name="Educational">
+ Éducation
+ </combo_item>
+ <combo_item name="Gaming">
+ Jeux
+ </combo_item>
+ <combo_item name="Hangout">
+ Favoris
+ </combo_item>
+ <combo_item name="NewcomerFriendly">
+ Accueil pour les nouveaux
+ </combo_item>
+ <combo_item name="Parks&amp;Nature">
+ Parcs et Nature
+ </combo_item>
+ <combo_item name="Residential">
+ Résidentiel
+ </combo_item>
+ <combo_item name="Shopping">
+ Shopping
+ </combo_item>
+ <combo_item name="Other">
+ Autre
+ </combo_item>
+ </combo_box>
+ <button bottom="-160" label="?" label_selected="?" left="436" name="?"/>
+ <check_box bottom="-180" label="Contenu Mature" name="MatureCheck" tool_tip=""/>
+ <string name="mature_check_mature">
+ Contenu Mature
+ </string>
+ <string name="mature_check_adult">
+ Contenu Adult
+ </string>
+ <string name="mature_check_mature_tooltip">
+ Les informations ou contenu de votre parcelle sont classés Mature.
+ </string>
+ <string name="mature_check_adult_tooltip">
+ Les informations ou contenu de votre parcelle sont classés Adult.
+ </string>
+ <text bottom="-200" length="1" name="Snapshot:" type="string">
Photo :
</text>
- <texture_picker label="" name="snapshot_ctrl" tool_tip="Cliquez pour sélectionner une image" bottom="-319"/>
- <text name="landing_point" bottom="-323">
+ <texture_picker bottom="-319" label="" name="snapshot_ctrl" tool_tip="Cliquez pour sélectionner une image"/>
+ <text bottom="-323" name="landing_point">
Lieu d&apos;arrivée : [LANDING]
</text>
<string name="landing_point_none">
(aucun)
</string>
- <button label="Définir" label_selected="Définir" name="Set" tool_tip="Définit le point d&apos;arrivée des visiteurs. Définit l&apos;emplacement de votre avatar sur ce terrain." bottom="-323"/>
- <button label="Annuler" label_selected="Annuler" name="Clear" tool_tip="Libérer le lieu d&apos;arrivée." bottom="-323"/>
- <text length="1" name="Teleport Routing: " type="string" bottom="-343">
+ <button bottom="-323" label="Définir" label_selected="Définir" name="Set" tool_tip="Définit le point d&apos;arrivée des visiteurs. Définit l&apos;emplacement de votre avatar sur ce terrain."/>
+ <button bottom="-323" label="Annuler" label_selected="Annuler" name="Clear" tool_tip="Libérer le lieu d&apos;arrivée."/>
+ <text bottom="-343" length="1" name="Teleport Routing: " type="string">
Règles de téléportation :
</text>
- <combo_box name="landing type" tool_tip="Vous permet de paramétrer les téléportations sur votre terrain." left="140" width="140" bottom="-343">
- <combo_box.item length="1" name="Blocked" type="string" label="Bloqué"/>
- <combo_box.item length="1" name="LandingPoint" type="string" label="Lieu d&apos;arrivée fixe"/>
- <combo_box.item length="1" name="Anywhere" type="string" label="Lieu d&apos;arrivée libre"/>
+ <combo_box bottom="-343" left="140" name="landing type" tool_tip="Vous permet de paramétrer les téléportations sur votre terrain." width="140">
+ <combo_item length="1" name="Blocked" type="string">
+ Bloqué
+ </combo_item>
+ <combo_item length="1" name="LandingPoint" type="string">
+ Lieu d&apos;arrivée fixe
+ </combo_item>
+ <combo_item length="1" name="Anywhere" type="string">
+ Lieu d&apos;arrivée libre
+ </combo_item>
</combo_box>
<string name="push_restrict_text">
Pas de bousculades
@@ -308,22 +436,22 @@ Allez dans le menu Monde &gt; À propos du terrain ou sélectionnez une autre pa
<text name="with media:" width="85">
Type de média :
</text>
- <combo_box name="media type" tool_tip="Indiquez s&apos;il s&apos;agit de l&apos;URL d&apos;un film, d&apos;une page web ou autre" left="97"/>
+ <combo_box left="97" name="media type" tool_tip="Indiquez s&apos;il s&apos;agit de l&apos;URL d&apos;un film, d&apos;une page web ou autre"/>
<text name="mime_type"/>
<text name="at URL:" width="85">
URL du média :
</text>
- <line_editor name="media_url" left="97"/>
+ <line_editor left="97" name="media_url"/>
<button label="Définir..." label_selected="Définir..." name="set_media_url"/>
<text name="Description:">
Description :
</text>
- <line_editor name="url_description" tool_tip="Texte affiché à côté du bouton Jouer/Charger" left="97"/>
+ <line_editor left="97" name="url_description" tool_tip="Texte affiché à côté du bouton Jouer/Charger"/>
<text length="1" name="Media texture:" type="string">
Remplacer
la texture :
</text>
- <texture_picker label="" name="media texture" tool_tip="Cliquez pour sélectionner une image" left="97"/>
+ <texture_picker label="" left="97" name="media texture" tool_tip="Cliquez pour sélectionner une image"/>
<text name="replace_texture_help">
(Les objets avec cette texture affichent le film ou
la page web quand vous cliquez sur la flèche Jouer.)
@@ -332,41 +460,34 @@ la page web quand vous cliquez sur la flèche Jouer.)
Options
média :
</text>
- <check_box left="97" label="Échelle automatique" name="media_auto_scale" tool_tip="Si vous sélectionnez cette option, le contenu de cette parcelle sera automatiquement mis à l&apos;échelle. La qualité visuelle sera peut-être amoindrie mais vous n&apos;aurez à faire aucune autre mise à l&apos;échelle ou alignement."/>
+ <check_box label="Échelle automatique" left="97" name="media_auto_scale" tool_tip="Si vous sélectionnez cette option, le contenu de cette parcelle sera automatiquement mis à l&apos;échelle. La qualité visuelle sera peut-être amoindrie mais vous n&apos;aurez à faire aucune autre mise à l&apos;échelle ou alignement."/>
<check_box label="Média en boucle" name="media_loop" tool_tip="Jouer le média en boucle. Lorsque le média aura fini de jouer, il recommencera."/>
- <check_box left="97" label="Masquer l&apos;URL du média" name="hide_media_url" tool_tip="Si vous cochez cette option, les personnes non autorisées à accéder aux infos de cette parcelle ne verront pas l&apos;URL du média. Cette option n&apos;est pas disponible pour les fichiers HTML."/>
+ <check_box label="Masquer l&apos;URL du média" left="97" name="hide_media_url" tool_tip="Si vous cochez cette option, les personnes non autorisées à accéder aux infos de cette parcelle ne verront pas l&apos;URL du média. Cette option n&apos;est pas disponible pour les fichiers HTML."/>
<check_box label="Masquer l&apos;URL de la musique" name="hide_music_url" tool_tip="Si vous cochez cette option, les personnes non autorisées à accéder aux infos de cette parcelle ne verront pas l&apos;URL de la musique."/>
- <text name="media_size" tool_tip="Taille du média Web, laisser 0 pour la valeur par défaut." width="105" left="102">
+ <text left="102" name="media_size" tool_tip="Taille du média Web, laisser 0 pour la valeur par défaut." width="105">
Taille du média :
</text>
- <spinner name="media_size_width" tool_tip="Taille du média Web, laisser 0 pour la valeur par défaut." left_delta="89"/>
+ <spinner left_delta="89" name="media_size_width" tool_tip="Taille du média Web, laisser 0 pour la valeur par défaut."/>
<spinner name="media_size_height" tool_tip="Taille du média Web, laisser 0 pour la valeur par défaut."/>
<text name="pixels">
pixels
</text>
- <text name="MusicURL:" bottom_delta="-28">
+ <text bottom_delta="-28" name="MusicURL:">
URL de la
musique :
</text>
- <line_editor name="music_url" left="97" bottom_delta="-12"/>
+ <line_editor bottom_delta="-12" left="97" name="music_url"/>
<text name="Sound:">
Son :
</text>
- <check_box label="Limiter le son ambiant à cette parcelle" name="check sound local" left="97" />
+ <check_box label="Limiter les gestes et sons d&apos;objet à cette parcelle" left="97" name="check sound local"/>
+ <button label="?" label_selected="?" left="378" name="?"/>
<text name="Voice settings:">
Voix :
</text>
- <radio_group name="parcel_voice_channel" left="97" width="310">
- <radio_item name="Estate">
- Utiliser le canal du domaine
- </radio_item>
- <radio_item name="Private">
- Utiliser un canal privé
- </radio_item>
- <radio_item name="Disabled">
- Désactiver les canaux audios
- </radio_item>
- </radio_group>
+ <check_box label="Activer le chat vocal" left="97" name="parcel_enable_voice_channel"/>
+ <check_box label="Activer le chat vocal (contrôlé par le domaine)" left="97" name="parcel_enable_voice_channel_is_estate_disabled"/>
+ <check_box label="Limiter le chat vocal à cette parcelle" left="117" name="parcel_enable_voice_channel_parcel"/>
</panel>
<panel label="Accès" name="land_access_panel">
<text length="1" name="Limit access to this parcel to:" type="string">
@@ -384,8 +505,12 @@ musique :
<check_box label="Autoriser l&apos;accès au groupe : [GROUP]" name="GroupCheck" tool_tip="Définir le groupe à l&apos;onglet Général."/>
<check_box label="Vendre des pass à :" name="PassCheck" tool_tip="Autoriser un accès temporaire à cette parcelle"/>
<combo_box name="pass_combo">
- <combo_box.item name="Anyone" label="Tout le monde"/>
- <combo_box.item name="Group" label="Groupe"/>
+ <combo_item name="Anyone">
+ Tout le monde
+ </combo_item>
+ <combo_item name="Group">
+ Groupe
+ </combo_item>
</combo_box>
<spinner label="Prix en L$ :" name="PriceSpin"/>
<spinner label="Durée en heures :" name="HoursSpin"/>
diff --git a/indra/newview/skins/default/xui/fr/floater_avatar_picker.xml b/indra/newview/skins/default/xui/fr/floater_avatar_picker.xml
index 82d715d941..01b4c944f3 100644
--- a/indra/newview/skins/default/xui/fr/floater_avatar_picker.xml
+++ b/indra/newview/skins/default/xui/fr/floater_avatar_picker.xml
@@ -1,21 +1,42 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="avatarpicker" title="Choisir le résident">
- <text name="Type part of the person&apos;s name:">
- Entrez les premières lettres du nom de la personne :
- </text>
- <text name="instruct_search_resident_name">
- Saisissez une partie du nom du résident :
- </text>
- <button label="Chercher" label_selected="Chercher" name="Find"/>
- <text name="Or select a calling card:">
- Ou sélectionnez une carte de visite :
- </text>
- <text name="Or select their calling card:">
- Ou sélectionnez une carte de visite :
- </text>
+ <tab_container name="ResidentChooserTabs">
+ <panel label="Rechercher" name="SearchPanel">
+ <text name="InstructSearchResidentName">
+ Saisissez une partie du nom du résident :
+ </text>
+ <button label="Trouver" label_selected="Trouver" name="Find"/>
+ </panel>
+ <panel label="Cartes de visite" name="CallingCardsPanel">
+ <text name="InstructSelectCallingCard">
+ Sélectionnez une carte de visite :
+ </text>
+ </panel>
+ <panel label="Près de moi" name="NearMePanel">
+ <text name="InstructSelectResident">
+ Choisir un résident
+près de vous :
+ </text>
+ <button font="SansSerifSmall" label="Rafraîchir la liste" label_selected="Rafraîchir la liste" name="Refresh" left_delta="10" width="105"/>
+ <slider label="Distance" name="near_me_range" bottom_delta="-36"/>
+ <text name="meters">
+ mètres
+ </text>
+ <scroll_list bottom_delta="-169" height="159" name="NearMe" />
+ </panel>
+ </tab_container>
<button label="Sélectionner" label_selected="Sélectionner" name="Select"/>
- <button label="Fermer" label_selected="Fermer" name="Close"/>
- <text name="NotFound">
+ <button label="Annuler" label_selected="Annuler" name="Cancel"/>
+ <string name="not_found">
&apos;[TEXT]&apos; introuvable
- </text>
+ </string>
+ <string name="no_one_near">
+ Il n'y a personne près de vous
+ </string>
+ <string name="no_results">
+ Aucun résultat
+ </string>
+ <string name="searching">
+ Recherche...
+ </string>
</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_avatar_textures.xml b/indra/newview/skins/default/xui/fr/floater_avatar_textures.xml
index 929bc31d9c..f4e3a1615c 100644
--- a/indra/newview/skins/default/xui/fr/floater_avatar_textures.xml
+++ b/indra/newview/skins/default/xui/fr/floater_avatar_textures.xml
@@ -1,38 +1,31 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="avatar_texture_debug" title="Textures de l&apos;avatar">
- <text name="">
- Baked Textures
- </text>
- <text name="">
- Composite Textures
- </text>
- <text name="baked_label">
+ <text name="label">
Textures fixées
</text>
<text name="composite_label">
Textures composées
</text>
- <texture_picker label="Tête" name="baked_head" />
- <texture_picker label="Maquillage" name="head_bodypaint" />
- <texture_picker label="Cheveux" name="hair" />
- <button label="Vider" label_selected="Vider" name="Dump" />
- <texture_picker label="Yeux" name="baked_eyes" />
- <texture_picker label="Œil" name="eye_texture" />
- <texture_picker label="Haut du corps" name="baked_upper_body" />
- <texture_picker label="Tatouage haut du corps" name="upper_bodypaint" />
- <texture_picker label="Tricot" name="undershirt" />
- <texture_picker label="Gants" name="gloves" />
- <texture_picker label="Chemise" name="shirt" />
- <texture_picker label="Veste (en haut)" name="upper_jacket" />
- <texture_picker label="
-Bas du corps
-" name="baked_lower_body" />
- <texture_picker label="Tatouage bas du corps" name="lower_bodypaint" />
- <texture_picker label="Sous-vêtements" name="underpants" />
- <texture_picker label="Chaussettes" name="socks" />
- <texture_picker label="Chaussures" name="shoes" />
- <texture_picker label="Pantalon" name="pants" />
- <texture_picker label="Veste" name="jacket" />
- <texture_picker label="Jupe" name="baked_skirt" />
- <texture_picker label="Jupe" name="skirt_texture" />
+ <button label="Vider ces ID dans la console" label_selected="Vider" name="Dump" left="-185" width="175"/>
+ <texture_picker label="Cheveux" name="hair-baked"/>
+ <texture_picker label="Cheveux" name="hair"/>
+ <texture_picker label="Tête" name="head-baked"/>
+ <texture_picker label="Maquillage" name="head bodypaint"/>
+ <texture_picker label="Yeux" name="eyes-baked"/>
+ <texture_picker label="Œil" name="iris"/>
+ <texture_picker label="Haut du corps" name="upper-baked"/>
+ <texture_picker label="Tatouage (haut du corps)" name="upper bodypaint"/>
+ <texture_picker label="Tricot" name="undershirt"/>
+ <texture_picker label="Gants" name="gloves"/>
+ <texture_picker label="Chemise" name="shirt"/>
+ <texture_picker label="Veste (haut)" name="upper jacket"/>
+ <texture_picker label="Bas du corps" name="lower-baked"/>
+ <texture_picker label="Tatouage (bas du corps)" name="lower bodypaint"/>
+ <texture_picker label="Sous-vêtements" name="underpants"/>
+ <texture_picker label="Chaussettes" name="socks"/>
+ <texture_picker label="Chaussures" name="shoes"/>
+ <texture_picker label="Pantalon" name="pants"/>
+ <texture_picker label="Veste" name="lower jacket"/>
+ <texture_picker label="Jupe" name="skirt-baked"/>
+ <texture_picker label="Jupe" name="skirt"/>
</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_beacons.xml b/indra/newview/skins/default/xui/fr/floater_beacons.xml
index 76e05a26ec..0b060983ee 100644
--- a/indra/newview/skins/default/xui/fr/floater_beacons.xml
+++ b/indra/newview/skins/default/xui/fr/floater_beacons.xml
@@ -5,8 +5,8 @@
<check_box label="Objets scriptés" name="scripted"/>
<check_box label="Objets physiques" name="physical"/>
<check_box label="Sources sonores" name="sounds"/>
- <check_box label="Sources des particules" name="particles"/>
- <check_box label="Montrer les surbrillances" name="highlights"/>
+ <check_box label="Sources de particules" name="particles"/>
+ <check_box label="Mettre en surbrillance" name="highlights"/>
<check_box label="Montrer les balises" name="beacons"/>
<text name="beacon_width_label">
Largeur de la balise :
diff --git a/indra/newview/skins/default/xui/fr/floater_bulk_perms.xml b/indra/newview/skins/default/xui/fr/floater_bulk_perms.xml
index 34588c78eb..b868aa33ad 100644
--- a/indra/newview/skins/default/xui/fr/floater_bulk_perms.xml
+++ b/indra/newview/skins/default/xui/fr/floater_bulk_perms.xml
@@ -1,40 +1,44 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floaterbulkperms" title="Changement des permissions relatives au contenu">
- <text name="applyto">
- Types de contenu
- </text>
- <check_box label="Animation" name="check_animation"/>
- <check_box label="Parties du corps" name="check_bodypart"/>
- <check_box label="Habits" name="check_clothing"/>
- <check_box label="Gestes" name="check_gesture"/>
- <check_box label="Repères" name="check_landmark"/>
- <check_box label="Notes" name="check_notecard"/>
- <check_box label="Objets" name="check_object"/>
- <check_box label="Scripts" name="check_script"/>
- <check_box label="Sons" name="check_sound"/>
- <check_box label="Textures" name="check_texture"/>
- <button label="Tout cocher" label_selected="Tout" name="check_all"/>
- <button label="Tout décocher" label_selected="Aucun" name="check_none"/>
- <check_box label="Partager avec le groupe" name="share_with_group"/>
- <check_box label="Autoriser tout le monde à copier" name="everyone_copy"/>
- <text name="NextOwnerLabel">
- Le prochain propriétaire pourra :
- </text>
- <check_box label="Modifier" name="next_owner_modify"/>
- <check_box label="Copier" name="next_owner_copy"/>
- <check_box label="Revendre/Donner" name="next_owner_transfer"/>
- <button label="Appliquer" name="apply"/>
- <button label="Fermer" name="close"/>
- <string name="nothing_to_modify_text">
- La sélection contient des contenus non modifiables.
- </string>
- <string name="status_text">
- Permissions paramétrées sur [NAME]
- </string>
- <string name="start_text">
- Demande de changement des permissions lancée...
- </string>
- <string name="done_text">
- Demande de changement des permissions finie.
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floaterbulkperms" title="Changement des droits relatifs au contenu">
+ <text name="applyto">
+ Types de contenu
+ </text>
+ <check_box label="Animation" name="check_animation"/>
+ <check_box label="Parties du corps" name="check_bodypart"/>
+ <check_box label="Habits" name="check_clothing"/>
+ <check_box label="Gestes" name="check_gesture"/>
+ <check_box label="Repères" name="check_landmark"/>
+ <check_box label="Notes" name="check_notecard"/>
+ <check_box label="Objets" name="check_object"/>
+ <check_box label="Scripts" name="check_script"/>
+ <check_box label="Sons" name="check_sound"/>
+ <check_box label="Textures" name="check_texture"/>
+ <button label="Tout cocher" label_selected="Tout" name="check_all"/>
+ <button label="Tout décocher" label_selected="Aucun" name="check_none"/>
+ <text name="newperms">
+ Nouveaux droits
+ </text>
+ <check_box label="Partager avec le groupe" name="share_with_group"/>
+ <check_box label="Autoriser tout le monde à copier" name="everyone_copy"/>
+ <text name="NextOwnerLabel">
+ Le prochain propriétaire pourra :
+ </text>
+ <check_box label="Modifier" name="next_owner_modify"/>
+ <check_box label="Copier" name="next_owner_copy"/>
+ <check_box label="Revendre/Donner" name="next_owner_transfer"/>
+ <button label="Aide" name="help"/>
+ <button label="Appliquer" name="apply"/>
+ <button label="Fermer" name="close"/>
+ <string name="nothing_to_modify_text">
+ La sélection contient des contenus non modifiables.
+ </string>
+ <string name="status_text">
+ Permissions paramétrées sur [NAME]
+ </string>
+ <string name="start_text">
+ Demande de changement des droits lancée...
+ </string>
+ <string name="done_text">
+ Demande de changement des droits finie.
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_buy_contents.xml b/indra/newview/skins/default/xui/fr/floater_buy_contents.xml
index 3d55a1ef70..916b270500 100644
--- a/indra/newview/skins/default/xui/fr/floater_buy_contents.xml
+++ b/indra/newview/skins/default/xui/fr/floater_buy_contents.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_buy_contents" title="Acheter des contenus">
+<floater name="floater_buy_contents" title="Acheter ce contenu">
<text name="contains_text">
[NAME] contient :
</text>
diff --git a/indra/newview/skins/default/xui/fr/floater_buy_currency.xml b/indra/newview/skins/default/xui/fr/floater_buy_currency.xml
index 9ae924c28a..85d67218d3 100644
--- a/indra/newview/skins/default/xui/fr/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/fr/floater_buy_currency.xml
@@ -23,13 +23,13 @@
[NAME] L$ [PRICE]
</text>
<text name="currency_action">
- Acheter des L$
+ Acheter
</text>
- <line_editor name="currency_amt">
+ <line_editor name="currency_amt" width="65">
1234
</line_editor>
- <text name="currency_est" width="138">
- pour environ [USD] US$
+ <text name="currency_est" width="138" left_delta="68">
+ L$ pour environ [USD] US$
</text>
<text name="getting_data" width="138">
Obtention des données...
@@ -52,11 +52,12 @@
<text name="total_amount">
[AMT] L$
</text>
- <text name="purchase_warning_repurchase">
- En confirmant cette transaction, vous achetez uniquement les devises.
-Vous devrez recommencer cette opération.
+ <text name="purchase_warning_repurchase" height="48" bottom_delta="-64" right="-10">
+ En confirmant cette transaction, vous achetez
+uniquement les devises. Vous devrez recommencer
+cette opération.
</text>
- <text name="purchase_warning_notenough">
+ <text name="purchase_warning_notenough" bottom_delta="16">
Vous n&apos;achetez pas assez de devises.
Veuillez saisir un montant plus élevé.
</text>
diff --git a/indra/newview/skins/default/xui/fr/floater_buy_land.xml b/indra/newview/skins/default/xui/fr/floater_buy_land.xml
index 4741fadc62..aaf1577114 100644
--- a/indra/newview/skins/default/xui/fr/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/fr/floater_buy_land.xml
@@ -6,6 +6,12 @@
<text name="region_name_text">
(inconnue)
</text>
+ <text name="region_type_label">
+ Type :
+ </text>
+ <text name="region_type_text">
+ (inconnu)
+ </text>
<text name="estate_name_label">
Domaine :
</text>
@@ -22,14 +28,15 @@
Terrain acheté dans cette région :
</text>
<text name="resellable_clause">
- Le terrain acheté dans cette région peut être revendu ou pas.
+ Peut être revendu ou pas.
</text>
<text name="changeable_clause">
- peut être fusionné/divisé ou pas.
+ Peut être fusionné/divisé ou pas.
</text>
<text name="covenant_text">
Vous devez accepter le règlement du domaine :
</text>
+ <text left="470" name="covenant_timestamp_text"/>
<text_editor name="covenant_editor">
Chargement...
</text_editor>
@@ -54,7 +61,7 @@
(1,1 L$/m²)
vendu avec objets
</text>
- <text name="info_action" width="275">
+ <text name="info_action" width="380">
Si vous achetez ce terrain :
</text>
<text name="error_message">
@@ -72,12 +79,12 @@
<combo_box.item name="US$7.50/month,billedquarterly" label="7,50 US$/mois, facturation trimestrielle"/>
<combo_box.item name="US$6.00/month,billedannually" label="6,00 US$/mois, facturation annuelle"/>
</combo_box>
- <text name="land_use_action" right="430" width="210">
+ <text name="land_use_action">
Augmentez vos frais d&apos;occupation de terrain à 40 US$/mois.
</text>
<text name="land_use_reason">
- Vous possédez un terrain de 1,309 mètres carrés.
-Cette parcelle fait 512 mètres carrés.
+ Vous êtes propriétaire de 1 309 m² de terrain.
+Cette parcelle fait 512 m².
</text>
<text name="purchase_action">
Payez au résident X 4 000 L$ pour le terrain
@@ -156,7 +163,7 @@ Sélectionnez une zone plus petite.
Si vous achetez ce terrain :
</string>
<string name="buying_for_group">
- Achat de terrain pour le groupe :
+ Si vous achetez le terrain pour le groupe :
</string>
<string name="cannot_buy_now">
Impossible d&apos;acheter maintenant :
@@ -210,7 +217,7 @@ peuvent contenir [AMOUNT2] prims
Ce groupe, [GROUP], aura besoin de suffisamment de crédit pour payer les frais d&apos;occupation de terrain avant que l&apos;achat de cette parcelle ne soit finalisé.
</string>
<string name="have_enough_lindens">
- Vous avez [AMOUNT]L$, ce qui est suffisant pour acheter ce terrain.
+ Vous avez [AMOUNT] L$, ce qui est suffisant pour acheter ce terrain.
</string>
<string name="not_enough_lindens">
Vous n&apos;avez que [AMOUNT] L$ et vous avez besoin de [AMOUNT2] L$ de plus.
diff --git a/indra/newview/skins/default/xui/fr/floater_customize.xml b/indra/newview/skins/default/xui/fr/floater_customize.xml
index e718907709..b1d7edbe52 100644
--- a/indra/newview/skins/default/xui/fr/floater_customize.xml
+++ b/indra/newview/skins/default/xui/fr/floater_customize.xml
@@ -1,14 +1,9 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater customize" title="Apparence" width="563">
- <tab_container name="customize tab container" tab_min_width="165" width="561">
- <panel label="Parties du corps"/>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater customize" title="Apparence" width="548">
+ <tab_container name="customize tab container" tab_min_width="150" width="546">
<panel label="Parties du corps" name="body_parts_placeholder"/>
- <panel label="Silhouette" left="169" name="Shape" width="389">
- <button label="Créer une silhouette" label_selected="Créer une silhouette" name="Create New" width="140"/>
- <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
- <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
- <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" name="Save As" width="105"/>
- <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert" width="82"/>
+ <panel label="Silhouette" left="154" name="Shape" width="389">
+ <button label="Rétablir" label_selected="Rétablir" left="305" name="Revert" width="82"/>
<button label="Corps" label_selected="Corps" name="Body"/>
<button label="Tête" label_selected="Tête" name="Head"/>
<button label="Yeux" label_selected="Yeux" name="Eyes"/>
@@ -18,7 +13,14 @@
<button label="Menton" label_selected="Menton" name="Chin"/>
<button label="Torse" label_selected="Torse" name="Torso"/>
<button label="Jambes" label_selected="Jambes" name="Legs"/>
- <button label="Aléatoire" label_selected="Aléatoire" name="Randomize"/>
+ <radio_group name="sex radio">
+ <radio_item length="1" name="radio" type="string">
+ Femme
+ </radio_item>
+ <radio_item length="1" name="radio2" type="string">
+ Homme
+ </radio_item>
+ </radio_group>
<text length="1" name="title" type="string">
[DESC]
</text>
@@ -36,32 +38,24 @@
</text>
<text length="1" name="not worn instructions" type="string">
Pour changer de silhouette, faites-en glisser une à partir de votre
-inventaire jusqu&apos;à votre avatar. Vous pouvez aussi en créer une nouvelle et la porter.
-une nouvelle et de la porter.
+inventaire jusqu&apos;à votre avatar. Vous pouvez aussi en créer une nouvelle
+et de la porter.
</text>
<text length="1" name="no modify instructions" type="string">
Vous n&apos;avez pas la permission de modifier cet objet.
</text>
- <radio_group name="sex radio">
- <radio_item length="1" name="radio" type="string">
- Femme
- </radio_item>
- <radio_item length="1" name="radio2" type="string">
- Homme
- </radio_item>
- </radio_group>
+ <text name="Item Action Label" right="92">
+ Silhouette :
+ </text>
+ <button label="Créer une silhouette" label_selected="Créer une silhouette" name="Create New"/>
+ <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
+ <button label="Enregistrer sous..." label_selected="Enregistrer sous..." left="188" name="Save As" width="111"/>
</panel>
<panel label="Peau" name="Skin">
- <button label="Créer une peau" label_selected="Créer une peau" name="Create New"/>
- <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
- <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
- <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" name="Save As" width="105"/>
- <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert" width="82"/>
<button label="Couleur" label_selected="Couleur" name="Skin Color" width="84"/>
<button label="Détails visage" label_selected="Détails visage" name="Face Detail" width="84"/>
<button label="Maquillage" label_selected="Maquillage" name="Makeup" width="84"/>
<button label="Détails corps" label_selected="Détails corps" name="Body Detail" width="84"/>
- <button label="Aléatoire" label_selected="Aléatoire" name="Randomize" width="84"/>
<text length="1" name="title" type="string">
[DESC]
</text>
@@ -84,21 +78,22 @@ Vous pouvez aussi en créer une nouvelle et la porter.
<text length="1" name="no modify instructions" type="string">
Vous n&apos;avez pas la permission de modifier cet objet.
</text>
+ <text name="Item Action Label" right="92">
+ Peau :
+ </text>
<texture_picker label="Tatouages tête" name="Head Tattoos" tool_tip="Cliquez pour sélectionner une image" width="78"/>
<texture_picker label="Tatouages haut" name="Upper Tattoos" tool_tip="Cliquez pour sélectionner une image" width="78"/>
<texture_picker label="Tatouages bas" name="Lower Tattoos" tool_tip="Cliquez pour sélectionner une image" width="78"/>
+ <button label="Créer une peau" label_selected="Créer une peau" name="Create New"/>
+ <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
+ <button label="Enregistrer sous..." label_selected="Enregistrer sous..." left="188" name="Save As" width="111"/>
+ <button label="Rétablir" label_selected="Rétablir" left="305" name="Revert" width="82"/>
</panel>
<panel label="Cheveux" name="Hair">
- <button label="Créer des cheveux" label_selected="Créer des cheveux" name="Create New"/>
- <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
- <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
- <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" name="Save As" width="105"/>
- <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert" width="82"/>
<button label="Couleur" label_selected="Couleur" name="Color"/>
<button label="Style" label_selected="Style" name="Style"/>
<button label="Sourcils" label_selected="Sourcils" name="Eyebrows"/>
<button label="Pilosité" label_selected="Pilosité" name="Facial"/>
- <button label="Aléatoire" label_selected="Aléatoire" name="Randomize"/>
<text length="1" name="title" type="string">
[DESC]
</text>
@@ -116,21 +111,22 @@ Vous pouvez aussi en créer une nouvelle et la porter.
</text>
<text length="1" name="not worn instructions" type="string">
Pour changer de chevelure, faites-en glisser une de votre inventaire
-jusqu&apos;à votre avatar. Vous pouvez aussi en créer une
-nouvelle et la porter.
+jusqu&apos;à votre avatar. Vous pouvez aussi en créer une nouvelle
+et la porter.
</text>
<text length="1" name="no modify instructions" type="string">
Vous n&apos;avez pas la permission de modifier cet objet.
</text>
+ <text name="Item Action Label" right="92">
+ Cheveux :
+ </text>
<texture_picker label="Texture" name="Texture" tool_tip="Cliquez pour sélectionner une image"/>
+ <button label="Créer des cheveux" label_selected="Créer des cheveux" name="Create New"/>
+ <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
+ <button label="Enregistrer sous..." label_selected="Enregistrer sous..." left="188" name="Save As" width="111"/>
+ <button label="Rétablir" label_selected="Rétablir" left="305" name="Revert" width="82"/>
</panel>
<panel label="Yeux" name="Eyes">
- <button label="Créer des yeux" label_selected="Créer des yeux" name="Create New"/>
- <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
- <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
- <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" name="Save As" width="105"/>
- <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert" width="82"/>
- <button label="Aléatoire" label_selected="Aléatoire" name="Randomize"/>
<text length="1" name="title" type="string">
[DESC]
</text>
@@ -147,22 +143,30 @@ nouvelle et la porter.
Emplacement : [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Pour changer vos yeux, faites-les glisser de votre inventaire
-jusqu&apos;à votre avatar. Vous pouvez aussi en créer de nouveaux et les porter.
+ Pour changer vos yeux, faites-les glisser de votre inventaire jusqu&apos;à
+votre avatar. Vous pouvez aussi en créer de nouveaux et les porter.
</text>
<text length="1" name="no modify instructions" type="string">
Vous n&apos;avez pas la permission de modifier cet objet.
</text>
+ <text name="Item Action Label" right="92">
+ Yeux :
+ </text>
<texture_picker label="Iris" name="Iris" tool_tip="Cliquez pour sélectionner une image"/>
+ <button label="Créer des yeux" label_selected="Créer des yeux" name="Create New"/>
+ <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
+ <button label="Enregistrer sous..." label_selected="Enregistrer sous..." left="188" name="Save As" width="111"/>
+ <button label="Rétablir" label_selected="Rétablir" left="305" name="Revert" width="82"/>
</panel>
- <panel label="Vêtements"/>
<panel label="Habits" name="clothes_placeholder"/>
<panel label="Chemise" name="Shirt">
+ <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image" width="74"/>
+ <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74"/>
<button label="Créer une chemise" label_selected="Créer une chemise" name="Create New"/>
<button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
<button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
- <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" name="Save As" width="105"/>
- <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert" width="82"/>
+ <button label="Enregistrer sous..." label_selected="Enregistrer sous..." left="188" name="Save As" width="111"/>
+ <button label="Rétablir" label_selected="Rétablir" left="305" name="Revert" width="82"/>
<text length="1" name="title" type="string">
[DESC]
</text>
@@ -185,15 +189,18 @@ jusqu&apos;à votre avatar. Vous pouvez aussi en créer une nouvelle et la porte
<text length="1" name="no modify instructions" type="string">
Vous n&apos;avez pas la permission de modifier cet objet.
</text>
- <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74"/>
- <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image" width="74"/>
+ <text name="Item Action Label" right="92">
+ Chemise :
+ </text>
</panel>
<panel label="Pantalon" name="Pants">
+ <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image" width="74"/>
+ <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74"/>
<button label="Créer un pantalon" label_selected="Créer un pantalon" name="Create New"/>
<button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
<button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
- <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" name="Save As" width="105"/>
- <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert" width="82"/>
+ <button label="Enregistrer sous..." label_selected="Enregistrer sous..." left="188" name="Save As" width="111"/>
+ <button label="Rétablir" label_selected="Rétablir" left="305" name="Revert" width="82"/>
<text length="1" name="title" type="string">
[DESC]
</text>
@@ -216,15 +223,11 @@ jusqu&apos;à votre avatar. Vous pouvez aussi en créer un nouveau et le porter.
<text length="1" name="no modify instructions" type="string">
Vous n&apos;avez pas la permission de modifier cet objet.
</text>
- <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74"/>
- <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image" width="74"/>
+ <text name="Item Action Label" right="92">
+ Pantalon :
+ </text>
</panel>
<panel label="Chaussures" name="Shoes">
- <button label="Créer des chaussures" label_selected="Créer des chaussures" name="Create New" width="140"/>
- <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
- <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
- <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" name="Save As" width="105"/>
- <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert" width="82"/>
<text length="1" name="title" type="string">
[DESC]
</text>
@@ -248,15 +251,18 @@ nouvelle paire et la porter.
<text length="1" name="no modify instructions" type="string">
Vous n&apos;avez pas la permission de modifier cet objet.
</text>
- <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74"/>
+ <text name="Item Action Label" right="92">
+ Chaussures :
+ </text>
<texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image" width="74"/>
- </panel>
- <panel label="Chaussettes" name="Socks">
- <button label="Créer des chaussettes" label_selected="Créer des chaussettes" name="Create New" width="140"/>
+ <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74"/>
+ <button label="Créer des chaussures" label_selected="Créer des chaussures" name="Create New" />
<button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
<button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
- <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" name="Save As" width="105"/>
- <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert" width="82"/>
+ <button label="Enregistrer sous..." label_selected="Enregistrer sous..." left="188" name="Save As" width="111"/>
+ <button label="Rétablir" label_selected="Rétablir" left="305" name="Revert" width="82"/>
+ </panel>
+ <panel label="Chaussettes" name="Socks">
<text length="1" name="title" type="string">
[DESC]
</text>
@@ -280,15 +286,18 @@ nouvelle paire et la porter.
<text length="1" name="no modify instructions" type="string">
Vous n&apos;avez pas la permission de modifier cet objet.
</text>
- <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74"/>
+ <text name="Item Action Label" right="92">
+ Chaussettes :
+ </text>
<texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image" width="74"/>
- </panel>
- <panel label="Veste" name="Jacket">
- <button label="Créer une veste" label_selected="Créer une veste" name="Create New"/>
+ <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74"/>
+ <button label="Créer des chaussettes" label_selected="Créer des chaussettes" name="Create New"/>
<button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
<button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
- <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" name="Save As" width="105"/>
- <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert" width="82"/>
+ <button label="Enregistrer sous..." label_selected="Enregistrer sous..." left="188" name="Save As" width="111"/>
+ <button label="Rétablir" label_selected="Rétablir" left="305" name="Revert" width="82"/>
+ </panel>
+ <panel label="Veste" name="Jacket">
<text length="1" name="title" type="string">
[DESC]
</text>
@@ -305,23 +314,25 @@ nouvelle paire et la porter.
Emplacement : [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Pour changer de veste, faites-en glisser une de votre inventaire
-jusqu&apos;à votre avatar. Vous pouvez aussi en créer une
-nouvelle et la porter.
+ Pour changer de veste, faites-en glisser une de votre inventaire jusqu&apos;à
+votre avatar. Vous pouvez aussi en créer une nouvelle et la porter.
</text>
<text length="1" name="no modify instructions" type="string">
Vous n&apos;avez pas la permission de modifier cet objet.
</text>
- <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="81"/>
+ <text name="Item Action Label" right="92">
+ Veste :
+ </text>
<texture_picker label="Tissu (dessus)" name="Upper Fabric" tool_tip="Cliquez pour sélectionner une image" width="81"/>
<texture_picker label="Tissu (dessous)" name="Lower Fabric" tool_tip="Cliquez pour sélectionner une image" width="81"/>
- </panel>
- <panel label="Gants" name="Gloves">
- <button label="Créer des gants" label_selected="Créer des gants" name="Create New"/>
+ <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="81"/>
+ <button label="Créer une veste" label_selected="Créer une veste" name="Create New"/>
<button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
<button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
- <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" name="Save As" width="105"/>
- <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert" width="82"/>
+ <button label="Enregistrer sous..." label_selected="Enregistrer sous..." left="188" name="Save As" width="111"/>
+ <button label="Rétablir" label_selected="Rétablir" left="305" name="Revert" width="82"/>
+ </panel>
+ <panel label="Gants" name="Gloves">
<text length="1" name="title" type="string">
[DESC]
</text>
@@ -339,21 +350,23 @@ nouvelle et la porter.
</text>
<text length="1" name="not worn instructions" type="string">
Pour changer de gants, faites-en glisser une paire à partir de votre
-inventaire. Vous pouvez aussi en créer une nouvelle paire
-et la porter.
+inventaire. Vous pouvez aussi en créer une nouvelle paire et la porter.
</text>
<text length="1" name="no modify instructions" type="string">
Vous n&apos;avez pas la permission de modifier cet objet.
</text>
- <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74"/>
+ <text name="Item Action Label" right="92">
+ Gants :
+ </text>
<texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image" width="74"/>
- </panel>
- <panel label="Sous-vêtements (homme)" name="Undershirt">
- <button label="Créer des sous-vêtements" label_selected="Créer des sous-vêtements" name="Create New" width="166"/>
+ <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74"/>
+ <button label="Créer des gants" label_selected="Créer des gants" name="Create New"/>
<button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
<button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
- <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" name="Save As" width="105"/>
- <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert" width="82"/>
+ <button label="Enregistrer sous..." label_selected="Enregistrer sous..." left="188" name="Save As" width="111"/>
+ <button label="Rétablir" label_selected="Rétablir" left="305" name="Revert" width="82"/>
+ </panel>
+ <panel label="Sous-vêtements (haut)" name="Undershirt">
<text length="1" name="title" type="string">
[DESC]
</text>
@@ -376,15 +389,19 @@ votre inventaire. Vous pouvez aussi en créer des nouveaux et les porter.
<text length="1" name="no modify instructions" type="string">
Vous n&apos;avez pas la permission de modifier cet objet.
</text>
- <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74"/>
+ <text name="Item Action Label" right="92" bottom="-470">
+ Sous-vêtements
+(haut) :
+ </text>
<texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image" width="74"/>
- </panel>
- <panel label="Sous-vêtements (femme)" name="Underpants">
- <button label="Créer des sous-vêtements" label_selected="Créer des sous-vêtements" name="Create New" width="166"/>
+ <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74"/>
+ <button label="Créer des sous-vêtements" label_selected="Créer des sous-vêtements" name="Create New"/>
<button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
<button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
- <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" name="Save As" width="105"/>
- <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert" width="82"/>
+ <button label="Enregistrer sous..." label_selected="Enregistrer sous..." left="188" name="Save As" width="111"/>
+ <button label="Rétablir" label_selected="Rétablir" left="305" name="Revert" width="82"/>
+ </panel>
+ <panel label="Sous-vêtements (bas)" name="Underpants">
<text length="1" name="title" type="string">
[DESC]
</text>
@@ -407,15 +424,19 @@ votre inventaire. Vous pouvez aussi en créer des nouveaux et les porter.
<text length="1" name="no modify instructions" type="string">
Vous n&apos;avez pas la permission de modifier cet objet.
</text>
- <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74"/>
+ <text name="Item Action Label" right="92" bottom="-470">
+ Sous-vêtements
+(bas) :
+ </text>
<texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image" width="74"/>
- </panel>
- <panel label="Jupe" name="Skirt">
- <button label="Créer une jupe" label_selected="Créer une jupe" name="Create New"/>
+ <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74"/>
+ <button label="Créer des sous-vêtements" label_selected="Créer des sous-vêtements" name="Create New"/>
<button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
<button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
- <button label="Enregistrer sous" label_selected="Enregistrer sous" left="188" name="Save As" width="105"/>
- <button label="Rétablir" label_selected="Rétablir" left="299" name="Revert" width="82"/>
+ <button label="Enregistrer sous..." label_selected="Enregistrer sous..." left="188" name="Save As" width="111"/>
+ <button label="Rétablir" label_selected="Rétablir" left="305" name="Revert" width="82"/>
+ </panel>
+ <panel label="Jupe" name="Skirt">
<text length="1" name="title" type="string">
[DESC]
</text>
@@ -438,12 +459,20 @@ Vous pouvez aussi en créer une nouvelle et la porter.
<text length="1" name="no modify instructions" type="string">
Vous n&apos;avez pas la permission de modifier cet objet.
</text>
- <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74"/>
+ <text name="Item Action Label" right="92">
+ Jupe :
+ </text>
<texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image" width="74"/>
+ <color_swatch label="Couleur/Teinte" name="Color/Tint" tool_tip="Cliquer pour ouvrir le sélecteur de couleurs" width="74"/>
+ <button label="Créer une jupe" label_selected="Créer une jupe" name="Create New"/>
+ <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
+ <button label="Enregistrer" label_selected="Enregistrer" left="100" name="Save" width="82"/>
+ <button label="Enregistrer sous..." label_selected="Enregistrer sous..." left="188" name="Save As" width="111"/>
+ <button label="Rétablir" label_selected="Rétablir" left="305" name="Revert" width="82"/>
</panel>
</tab_container>
- <scroll_container left="266" name="panel_container"/>
- <button label="Créer un ensemble" label_selected="Créer un ensemble" name="Make Outfit" right="-252" width="115"/>
- <button label="Tout enregistrer" label_selected="Tout enregistrer" name="Save All" right="-131" width="115"/>
- <button label="Fermer" label_selected="Fermer" name="Close" width="115"/>
+ <scroll_container left="251" name="panel_container"/>
+ <button label="Annuler" label_selected="Annuler" name="Cancel"/>
+ <button label="OK" label_selected="OK" name="Ok"/>
+ <button label="Créer un ensemble..." label_selected="Créer un ensemble..." name="Make Outfit" left="152" width="125"/>
</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_font_test.xml b/indra/newview/skins/default/xui/fr/floater_font_test.xml
index fce3615725..11eb11a0d7 100644
--- a/indra/newview/skins/default/xui/fr/floater_font_test.xml
+++ b/indra/newview/skins/default/xui/fr/floater_font_test.xml
@@ -1,10 +1,6 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater can_close="true" can_drag_on_left="false" can_minimize="true" can_resize="true"
- height="800" min_height="175" min_width="154" name="contents"
- title="Font Test" width="500">
-
-<text name="linea" font="OverrideTest" follows="left|top|right" bottom_delta="-20" left="16" height="16">
-OverrideTest, should be timesbd, from default/xui/fr
-</text>
-
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="contents" title="Test de la police">
+ <text name="linea">
+ OverrideTest, Times-BOLD doit être sélectionné ici. (De default/xui/fr)
+ </text>
</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_god_tools.xml b/indra/newview/skins/default/xui/fr/floater_god_tools.xml
index 5799e1a757..4f43be47ea 100644
--- a/indra/newview/skins/default/xui/fr/floater_god_tools.xml
+++ b/indra/newview/skins/default/xui/fr/floater_god_tools.xml
@@ -16,7 +16,7 @@
<check_box label="Visible" name="check visible" tool_tip="Cochez pour rendre la région visible aux non-admins." bottom_delta="-32"/>
<check_box label="Dégâts" name="check damage" tool_tip="Cochez pour activer les dégâts dans cette région."/>
<check_box label="Bloquer le suivi de trafic" name="block dwell" tool_tip="Cochez pour que la région ne comptabilise pas le trafic."/>
- <check_box label="Bloquer le terraformage" name="block terraform" tool_tip="Cochez pour empêcher les personnes de terraformer leur terrain"/>
+ <check_box label="Interdire le terraformage" name="block terraform" tool_tip="Cochez pour empêcher les personnes de terraformer leur terrain"/>
<check_box label="Bac à sable" name="is sandbox" tool_tip="Basculer cette région en bac à sable."/>
<button label="Figer le terrain" label_selected="Figer le terrain" name="Bake Terrain" tool_tip="Enregistrer le terrain actuel comme terrain par défaut." width="118" />
<button label="Rétablir le terrain" label_selected="Rétablir le terrain" name="Revert Terrain" tool_tip="Remplacer le terrain actuel avec le terrain par défaut." width="118" />
@@ -60,17 +60,17 @@
</text>
<check_box label="Désactiver les &#10;scripts" name="disable scripts" tool_tip="Cochez pour désactiver tous les scripts dans cette région"/>
<check_box label="Désactiver les &#10;collisions" name="disable collisions" tool_tip="Cochez pour désactiver les collisions entre non-avatars dans cette région"/>
- <check_box label="Désactiver les &#10;propriétés physiques" name="disable physics" tool_tip="Cochez pour désactiver toutes les propriétés physiques dans cette région"/>
+ <check_box label="Désactiver la &#10;physique" name="disable physics" tool_tip="Cochez pour désactiver tous les effets liés à la physique dans cette région"/>
<button label="Appliquer" label_selected="Appliquer" name="Apply" tool_tip="Cliquez ici pour appliquer les modifications effectuées ci-dessus." bottom="-85"/>
<button label="Définir la cible" label_selected="Définir la cible" name="Set Target" tool_tip="Définir l&apos;avatar cible pour la suppression de l&apos;objet."/>
<text name="target_avatar_name">
(aucune cible)
</text>
- <button label="Supprimer tous les objets scriptés de la cible sur les terrains des autres" label_selected="Supprimer tous les objets scriptés de la cible sur les terrains des autres" name="Delete Target&apos;s Scripted Objects On Others Land" tool_tip="Supprimer tous les objets scriptés appartenant à la cible sur les terrains ne lui appartenant pas. Les objets non reproductibles seront renvoyés."/>
- <button label="Supprimer les objets scriptés de la cible sur *tous* les terrains" label_selected="Supprimer les objets scriptés de la cible sur *tous* les terrains" name="Delete Target&apos;s Scripted Objects On *Any* Land" tool_tip="Supprimer les objets scriptés appartenant à la cible dans cette région. Les objets non reproductibles seront renvoyés."/>
- <button label="Supprimer *tous* les objets de la cible" label_selected="Supprimer *tous* les objets de la cible" name="Delete *ALL* Of Target&apos;s Objects" tool_tip="Supprimer tous les objets appartenant à la cible dans cette région. Les objets non reproductibles seront renvoyés."/>
- <button width="300" label="Afficher les objets souvent responsables de collision" label_selected="Afficher les objets souvent responsables de collision" name="Get Top Colliders" tool_tip="Dresse une liste des objets avec les callbacks les plus fréquents. "/>
- <button width="300" label="Afficher les scripts fréquemment utilisés" label_selected="Afficher les scripts fréquemment utilisés" name="Get Top Scripts" tool_tip="Dresse une liste des objets qui passent le plus de temps à exécuter des scripts."/>
+ <button label="Supprimer tous les objets scriptés de la cible sur les terrains des autres" label_selected="Supprimer tous les objets scriptés de la cible sur les terrains des autres" name="Delete Target&apos;s Scripted Objects On Others Land" tool_tip="Supprimer tous les objets scriptés appartenant à la cible sur les terrains ne lui appartenant pas. Les objets non copiables seront renvoyés."/>
+ <button label="Supprimer les objets scriptés de la cible sur *tous* les terrains" label_selected="Supprimer les objets scriptés de la cible sur *tous* les terrains" name="Delete Target&apos;s Scripted Objects On *Any* Land" tool_tip="Supprimer les objets scriptés appartenant à la cible dans cette région. Les objets non copiables seront renvoyés."/>
+ <button label="Supprimer *tous* les objets de la cible" label_selected="Supprimer *tous* les objets de la cible" name="Delete *ALL* Of Target&apos;s Objects" tool_tip="Supprimer tous les objets appartenant à la cible dans cette région. Les objets non copiables seront renvoyés."/>
+ <button width="300" label="Afficher les collisions les plus consommatrices" label_selected="Afficher les collisions les plus consommatrices" name="Get Top Colliders" tool_tip="Dresse une liste des objets avec les callbacks les plus fréquents. "/>
+ <button width="300" label="Afficher les objets scriptés les plus consommateurs" label_selected="Afficher les objets scriptés les plus consommateurs" name="Get Top Scripts" tool_tip="Dresse une liste des objets qui passent le plus de temps à exécuter des scripts."/>
<button width="300" label="Résumé des scripts" label_selected="Résumé des scripts" name="Scripts digest" tool_tip="Dresse une liste des scripts et de leurs occurrences."/>
</panel>
<panel label="Requête" name="request">
diff --git a/indra/newview/skins/default/xui/fr/floater_im.xml b/indra/newview/skins/default/xui/fr/floater_im.xml
index 0c9ea2c913..a116c43f3f 100644
--- a/indra/newview/skins/default/xui/fr/floater_im.xml
+++ b/indra/newview/skins/default/xui/fr/floater_im.xml
@@ -16,7 +16,7 @@
Erreur lors de la requête, veuillez réessayer ultérieurement.
</string>
<string name="insufficient_perms_error">
- Vous n&apos;avez pas les permissions requises.
+ Vous n&apos;avez pas les droits requis.
</string>
<string name="session_does_not_exist_error">
La session a expiré
diff --git a/indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml
index 92dbc36a03..ec83d5bcaa 100644
--- a/indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml
+++ b/indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml
@@ -60,12 +60,8 @@
</text>
<check_box label="À vendre" name="CheckPurchase"/>
<radio_group name="RadioSaleType">
- <radio_item name="radio">
- Original
- </radio_item>
- <radio_item name="radio2">
- Copie
- </radio_item>
+ <radio_item name="radio" label="Original" />
+ <radio_item name="radio2" label="Copie" />
</radio_group>
<text name="TextPrice">
Prix : L$
diff --git a/indra/newview/skins/default/xui/fr/floater_land_holdings.xml b/indra/newview/skins/default/xui/fr/floater_land_holdings.xml
index 4a63abf4e1..9c4f4ee966 100644
--- a/indra/newview/skins/default/xui/fr/floater_land_holdings.xml
+++ b/indra/newview/skins/default/xui/fr/floater_land_holdings.xml
@@ -1,21 +1,20 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="land holdings floater" title="Mes terrains">
<scroll_list name="parcel list">
- <column label="Nom" name="name" />
- <column label="Emplacement" name="location" />
- <column label="Surface" name="area" />
- <column label="" name="hidden" />
+ <column label="Nom de la parcelle" name="name"/>
+ <column label="Région" name="location"/>
+ <column label="Type" name="type"/>
+ <column label="Surface" name="area"/>
+ <column label="" name="hidden"/>
</scroll_list>
- <button label="Téléporter" label_selected="Téléporter" name="Teleport"
- tool_tip="Téléportez-vous au milieu de ce terrain." />
- <button label="Voir sur la carte" label_selected="Voir sur la carte" name="Show on Map"
- tool_tip="Affichez ce terrain sur la carte du monde." />
+ <button label="Téléporter" label_selected="Téléporter" name="Teleport" tool_tip="Téléportez-vous au milieu de ce terrain."/>
+ <button label="Voir sur la carte" label_selected="Voir sur la carte" name="Show on Map" tool_tip="Affichez ce terrain sur la carte du monde."/>
<text name="contrib_label">
Vos contributions :
</text>
<scroll_list name="grant list">
- <column label="Groupe" name="group" />
- <column label="Surface" name="area" />
+ <column label="Groupe" name="group"/>
+ <column label="Surface" name="area"/>
</scroll_list>
<text name="allowed_label">
Surface de terrain autorisée avec votre compte :
diff --git a/indra/newview/skins/default/xui/fr/floater_live_lsleditor.xml b/indra/newview/skins/default/xui/fr/floater_live_lsleditor.xml
index 2ca6a85ea4..e2e2a9af9a 100644
--- a/indra/newview/skins/default/xui/fr/floater_live_lsleditor.xml
+++ b/indra/newview/skins/default/xui/fr/floater_live_lsleditor.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="script ed float" title="Script : Nouveau script">
- <button label="Redéfinir" label_selected="Redéfinir" name="Reset" width="100" left="390"/>
+ <button label="Réinitialiser" label_selected="Réinitialiser" name="Reset" width="100" left="390"/>
<check_box label="Exécution en cours" name="running" left="4"/>
<check_box label="Mono" name="mono" left="130"/>
<string name="not_allowed">
diff --git a/indra/newview/skins/default/xui/fr/floater_notification.xml b/indra/newview/skins/default/xui/fr/floater_notification.xml
index 06ee37907d..7ca2dc3a64 100644
--- a/indra/newview/skins/default/xui/fr/floater_notification.xml
+++ b/indra/newview/skins/default/xui/fr/floater_notification.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="notification" title="Console de notifications">
- <text_editor name="payload">
- Chargement..
- </text_editor>
- <combo_box label="Réponse" name="response"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="notification" title="Console de notifications">
+ <text_editor name="payload">
+ Chargement..
+ </text_editor>
+ <combo_box label="Réponse" name="response"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_notifications_console.xml b/indra/newview/skins/default/xui/fr/floater_notifications_console.xml
index d3af484f61..7262fe8fe2 100644
--- a/indra/newview/skins/default/xui/fr/floater_notifications_console.xml
+++ b/indra/newview/skins/default/xui/fr/floater_notifications_console.xml
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="notifications_console" title="Console de notifications">
- <combo_box label="Sélectionner le type de notification" name="notification_types"/>
- <button label="Ajouter" name="add_notification"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="notifications_console" title="Console de notifications">
+ <combo_box label="Sélectionner le type de notification" name="notification_types" width="412"/>
+ <button label="Ajouter" name="add_notification" left="417" width="78"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_perm_prefs.xml b/indra/newview/skins/default/xui/fr/floater_perm_prefs.xml
index 46554033f9..9ea970d89d 100644
--- a/indra/newview/skins/default/xui/fr/floater_perm_prefs.xml
+++ b/indra/newview/skins/default/xui/fr/floater_perm_prefs.xml
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="perm prefs" title="Permissions par défaut">
- <panel label="Permissions" name="permissions">
- <button label="?" label_selected="?" name="help"/>
- <check_box label="Partager avec le groupe" name="share_with_group"/>
- <check_box label="Autoriser tout le monde à copier" name="everyone_copy"/>
- <text name="NextOwnerLabel">
- Le prochain propriétaire pourra :
- </text>
- <check_box label="Modifier" name="next_owner_modify"/>
- <check_box label="Copier" name="next_owner_copy"/>
- <check_box label="Revendre/Donner" name="next_owner_transfer"/>
- </panel>
- <button label="OK" label_selected="OK" name="ok"/>
- <button label="Annuler" label_selected="Annuler" name="cancel"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="perm prefs" title="Droits par défaut">
+ <panel label="Droits" name="permissions">
+ <button label="?" label_selected="?" name="help"/>
+ <check_box label="Partager avec le groupe" name="share_with_group"/>
+ <check_box label="Autoriser tout le monde à copier" name="everyone_copy"/>
+ <text name="NextOwnerLabel">
+ Le prochain propriétaire pourra :
+ </text>
+ <check_box label="Modifier" name="next_owner_modify"/>
+ <check_box label="Copier" name="next_owner_copy"/>
+ <check_box label="Revendre/Donner" name="next_owner_transfer"/>
+ </panel>
+ <button label="OK" label_selected="OK" name="ok"/>
+ <button label="Annuler" label_selected="Annuler" name="cancel"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_preview_gesture.xml b/indra/newview/skins/default/xui/fr/floater_preview_gesture.xml
index 5322993b0b..b2c3d18cbd 100644
--- a/indra/newview/skins/default/xui/fr/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/fr/floater_preview_gesture.xml
@@ -49,15 +49,12 @@ simultanément, sauf si vous
ajoutez des pauses.
</text>
<radio_group name="animation_trigger_type">
- <radio_item name="start">
- Commencer
- </radio_item>
- <radio_item name="stop">
- Stop
- </radio_item>
+ <radio_item name="start" label="Commencer" />
+ <radio_item name="stop" label="Stop" />
</radio_group>
<check_box label="jusqu&apos;à la fin des animations" name="wait_anim_check" />
<check_box label="temps en secondes" name="wait_time_check" />
+ <line_editor left_delta="130" name="wait_time_editor" />
<check_box label="Actifs" name="active_check"
tool_tip="Les gestes actifs peuvent être déclenchés en saisissant leur raccourci dans le chat ou en appuyant sur les raccourcis. Les gestes deviennent généralement inactifs lorsqu&apos;il y a un conflit entre les raccourcis." />
<button label="Prévisualiser" name="preview_btn" width="86" />
diff --git a/indra/newview/skins/default/xui/fr/floater_report_abuse.xml b/indra/newview/skins/default/xui/fr/floater_report_abuse.xml
index 0fce7a15cc..628f308f88 100644
--- a/indra/newview/skins/default/xui/fr/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/fr/floater_report_abuse.xml
@@ -37,51 +37,123 @@
Hendrerit Vulputate
</text>
<combo_box name="category_combo" tool_tip="Choisissez la catégorie qui décrit le mieux ce rapport">
- <combo_box.item name="Select_category" label="Sélectionnez une catégorie"/>
- <combo_box.item name="Age__Age_play" label="Âge &gt; « Age play »"/>
- <combo_box.item name="Age__Adult_resident_on_Teen_Second_Life" label="Âge &gt; Résident adulte sur Second Life pour adolescents"/>
-
-
-
- <combo_box.item name="Assault__Combat_sandbox___unsafe_area" label="Assaut &gt; Bac à sable utilisé pour des combats/zone non sécurisée"/>
- <combo_box.item name="Assault__Safe_area" label="Assaut &gt; Zone sécurisée"/>
- <combo_box.item name="Assault__Weapons_testing_sandbox" label="Assaut &gt; Bac à sable pour tests d&apos;armes à feu"/>
- <combo_box.item name="Commerce__Failure_to_deliver_product_or_service" label="Commerce &gt; Incapacité à fournir un produit ou service"/>
- <combo_box.item name="Disclosure__Real_world_information" label="Divulgation &gt; Informations sur la vie réelle"/>
- <combo_box.item name="Disclosure__Remotely_monitoring chat" label="Divulgation &gt; Écoute d&apos;un chat à distance"/>
- <combo_box.item name="Disclosure__Second_Life_information_chat_IMs" label="Divulgation &gt; Informations sur Second Life/chat/IM"/>
- <combo_box.item name="Disturbing_the_peace__Unfair_use_of_region_resources" label="Trouble de la paix &gt; Utilisation inadéquate des ressources de la région"/>
- <combo_box.item name="Disturbing_the_peace__Excessive_scripted_objects" label="Trouble de la paix &gt; Nombre d&apos;objets scriptés excessif"/>
- <combo_box.item name="Disturbing_the_peace__Object_littering" label="Trouble de la paix &gt; Abandon d&apos;objets"/>
- <combo_box.item name="Disturbing_the_peace__Repetitive_spam" label="Trouble de la paix &gt; Spam à répétition"/>
- <combo_box.item name="Disturbing_the_peace__Unwanted_advert_spam" label="Trouble de la paix &gt; Spam à caractère commercial"/>
- <combo_box.item name="Fraud__L$" label="Fraude &gt; L$"/>
- <combo_box.item name="Fraud__Land" label="Fraude &gt; Terrain"/>
- <combo_box.item name="Fraud__Pyramid_scheme_or_chain_letter" label="Fraude &gt; Vente pyramidale ou lettre-chaîne"/>
- <combo_box.item name="Fraud__US$" label="Fraude &gt; US$"/>
- <combo_box.item name="Harassment__Advert_farms___visual_spam" label="Harcèlement &gt; Spam visuel"/>
- <combo_box.item name="Harassment__Defaming_individuals_or_groups" label="Harcèlement &gt; Diffamation envers des individus ou des groupes"/>
- <combo_box.item name="Harassment__Impeding_movement" label="Harcèlement &gt; Immobilisation"/>
- <combo_box.item name="Harassment__Sexual_harassment" label="Harcèlement &gt; Harcèlement sexuel"/>
- <combo_box.item name="Harassment__Solicting_inciting_others_to_violate_ToS" label="Harcèlement &gt; Incitation à enfreindre les Conditions d&apos;utilisation"/>
- <combo_box.item name="Harassment__Verbal_abuse" label="Harcèlement &gt; Abus verbal"/>
- <combo_box.item name="Indecency__Broadly_offensive_content_or_conduct" label="Indécence &gt; Contenu ou comportement offensifs"/>
-
-
-
- <combo_box.item name="Indecency__Inappropriate_avatar_name" label="Indécence &gt; Nom d&apos;avatar inapproprié"/>
-
-
-
- <combo_box.item name="Intellectual_property_infringement_Content_Removal" label="Violation de droits de propriété intellectuelle &gt; Suppression de contenu"/>
- <combo_box.item name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit" label="Violation de droits de propriété intellectuelle &gt; CopyBot ou exploitation abusive des permissions"/>
- <combo_box.item name="Intolerance" label="Intolérance"/>
- <combo_box.item name="Land__Abuse_of_sandbox_resources" label="Terrain &gt; Utilisation abusive des ressources du bac à sable"/>
- <combo_box.item name="Land__Encroachment__Objects_textures" label="Terrain &gt; Empiètement &gt; Objets/textures"/>
- <combo_box.item name="Land__Encroachment__Particles" label="Terrain &gt; Empiètement &gt; Particules"/>
- <combo_box.item name="Land__Encroachment__Trees_plants" label="Terrain &gt; Empiètement &gt; Arbres/plantes"/>
- <combo_box.item name="Wagering_gambling" label="Paris/jeux d&apos;argent"/>
- <combo_box.item name="Other" label="Autre"/>
+ <combo_item name="Select_category">
+ Sélectionnez une catégorie
+ </combo_item>
+ <combo_item name="Age__Age_play">
+ Âge &gt; « Age play »
+ </combo_item>
+ <combo_item name="Age__Adult_resident_on_Teen_Second_Life">
+ Âge &gt; Résident adulte sur Second Life pour adolescents
+ </combo_item>
+ <combo_item name="Age__Underage_resident_outside_of_Teen_Second_Life">
+ Âge &gt; Resident mineur en dehors de Teen Second Life
+ </combo_item>
+ <combo_item name="Assault__Combat_sandbox___unsafe_area">
+ Assaut &gt; Bac à sable utilisé pour des combats/zone non sécurisée
+ </combo_item>
+ <combo_item name="Assault__Safe_area">
+ Assaut &gt; Zone sécurisée
+ </combo_item>
+ <combo_item name="Assault__Weapons_testing_sandbox">
+ Assaut &gt; Bac à sable pour tests d&apos;armes à feu
+ </combo_item>
+ <combo_item name="Commerce__Failure_to_deliver_product_or_service">
+ Commerce &gt; Incapacité à fournir un produit ou service
+ </combo_item>
+ <combo_item name="Disclosure__Real_world_information">
+ Divulgation &gt; Informations sur la vie réelle
+ </combo_item>
+ <combo_item name="Disclosure__Remotely_monitoring chat">
+ Divulgation &gt; Écoute d&apos;un chat à distance
+ </combo_item>
+ <combo_item name="Disclosure__Second_Life_information_chat_IMs">
+ Divulgation &gt; Informations sur Second Life/chat/IM
+ </combo_item>
+ <combo_item name="Disturbing_the_peace__Unfair_use_of_region_resources">
+ Trouble de la paix &gt; Utilisation inadéquate des ressources de la région
+ </combo_item>
+ <combo_item name="Disturbing_the_peace__Excessive_scripted_objects">
+ Trouble de la paix &gt; Nombre d&apos;objets scriptés excessif
+ </combo_item>
+ <combo_item name="Disturbing_the_peace__Object_littering">
+ Trouble de la paix &gt; Abandon d&apos;objets
+ </combo_item>
+ <combo_item name="Disturbing_the_peace__Repetitive_spam">
+ Trouble de la paix &gt; Spam à répétition
+ </combo_item>
+ <combo_item name="Disturbing_the_peace__Unwanted_advert_spam">
+ Trouble de la paix &gt; Spam à caractère commercial
+ </combo_item>
+ <combo_item name="Fraud__L$">
+ Fraude &gt; L$
+ </combo_item>
+ <combo_item name="Fraud__Land">
+ Fraude &gt; Terrain
+ </combo_item>
+ <combo_item name="Fraud__Pyramid_scheme_or_chain_letter">
+ Fraude &gt; Vente pyramidale ou lettre-chaîne
+ </combo_item>
+ <combo_item name="Fraud__US$">
+ Fraude &gt; US$
+ </combo_item>
+ <combo_item name="Harassment__Advert_farms___visual_spam">
+ Harcèlement &gt; Spam visuel
+ </combo_item>
+ <combo_item name="Harassment__Defaming_individuals_or_groups">
+ Harcèlement &gt; Diffamation envers des individus ou des groupes
+ </combo_item>
+ <combo_item name="Harassment__Impeding_movement">
+ Harcèlement &gt; Immobilisation
+ </combo_item>
+ <combo_item name="Harassment__Sexual_harassment">
+ Harcèlement &gt; Harcèlement sexuel
+ </combo_item>
+ <combo_item name="Harassment__Solicting_inciting_others_to_violate_ToS">
+ Harcèlement &gt; Incitation à enfreindre les Conditions d&apos;utilisation
+ </combo_item>
+ <combo_item name="Harassment__Verbal_abuse">
+ Harcèlement &gt; Abus verbal
+ </combo_item>
+ <combo_item name="Indecency__Broadly_offensive_content_or_conduct">
+ Indécence &gt; Contenu ou comportement offensifs
+ </combo_item>
+ <combo_item name="Indecency__Inappropriate_avatar_name">
+ Indécence &gt; Nom d&apos;avatar inapproprié
+ </combo_item>
+ <combo_item name="Indecency__Mature_content_in_PG_region">
+ Indécence &gt; Contenu ou conduite inappropriés dans une région PG
+ </combo_item>
+ <combo_item name="Indecency__Inappropriate_content_in_Mature_region">
+ Indécence &gt; Contenu ou conduite inappropriés dans une région Mature
+ </combo_item>
+ <combo_item name="Intellectual_property_infringement_Content_Removal">
+ Violation de droits de propriété intellectuelle &gt; Suppression de contenu
+ </combo_item>
+ <combo_item name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit">
+ Violation de droits de propriété intellectuelle &gt; CopyBot ou exploitation abusive des droits
+ </combo_item>
+ <combo_item name="Intolerance">
+ Intolérance
+ </combo_item>
+ <combo_item name="Land__Abuse_of_sandbox_resources">
+ Terrain &gt; Utilisation abusive des ressources du bac à sable
+ </combo_item>
+ <combo_item name="Land__Encroachment__Objects_textures">
+ Terrain &gt; Empiètement &gt; Objets/textures
+ </combo_item>
+ <combo_item name="Land__Encroachment__Particles">
+ Terrain &gt; Empiètement &gt; Particules
+ </combo_item>
+ <combo_item name="Land__Encroachment__Trees_plants">
+ Terrain &gt; Empiètement &gt; Arbres/plantes
+ </combo_item>
+ <combo_item name="Wagering_gambling">
+ Paris/jeux d&apos;argent
+ </combo_item>
+ <combo_item name="Other">
+ Autre
+ </combo_item>
</combo_box>
<text name="abuser_name_title">
Nom du contrevenant :
diff --git a/indra/newview/skins/default/xui/fr/floater_sell_land.xml b/indra/newview/skins/default/xui/fr/floater_sell_land.xml
index 186a278671..6ef12fab4a 100644
--- a/indra/newview/skins/default/xui/fr/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/fr/floater_sell_land.xml
@@ -1,15 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="sell land" title="Vendre terrain">
- <text name="info_parcel_label" width="48">
+ <text name="info_parcel_label">
Parcelle :
</text>
- <text name="info_parcel" left="66">
+ <text name="info_parcel">
PARCEL NAME
</text>
<text name="info_size_label">
Taille :
</text>
- <text name="info_size" left="66">
+ <text name="info_size">
[AREA] m²
</text>
<text name="info_action" bottom_delta="-60">
@@ -50,16 +50,12 @@ spécifique.
de propriétaire.
</text>
<radio_group name="sell_objects" right="430" bottom_delta="-54">
- <radio_item name="no">
- Non, rester le propriétaire des objets
- </radio_item>
- <radio_item name="yes">
- Oui, vendre les objets avec le terrain
- </radio_item>
+ <radio_item name="no" label="Non, rester le propriétaire des objets" />
+ <radio_item name="yes" label="Oui, vendre les objets avec le terrain" />
</radio_group>
<button label="Afficher les objets" name="show_objects" right="420" width="120"/>
<text name="nag_message_label" bottom_delta="-30">
- Rappel : Toute vente est définitive.
+ Rappel : toute vente est définitive.
</text>
<button label="Mettre le terrain en vente" name="sell_btn" width="165"/>
<button label="Annuler" name="cancel_btn"/>
diff --git a/indra/newview/skins/default/xui/fr/floater_snapshot.xml b/indra/newview/skins/default/xui/fr/floater_snapshot.xml
index e6f9c27e97..90feea91e0 100644
--- a/indra/newview/skins/default/xui/fr/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/fr/floater_snapshot.xml
@@ -4,15 +4,9 @@
Destination de la photo
</text>
<radio_group label="Type de photo" name="snapshot_type_radio" width="228">
- <radio_item name="postcard">
- Envoyer par e-mail
- </radio_item>
- <radio_item name="texture">
- Enregistrer dans votre inventaire ([AMOUNT] L$)
- </radio_item>
- <radio_item name="local">
- Enregistrer sur votre disque dur
- </radio_item>
+ <radio_item name="postcard" label="Envoyer par e-mail" />
+ <radio_item name="texture" label="Enregistrer dans votre inventaire ([AMOUNT] L$)" />
+ <radio_item name="local" label="Enregistrer sur votre disque dur" />
</radio_group>
<button label="Plus &gt;&gt;" name="more_btn" tool_tip="Options avancées"/>
<button label="&lt;&lt; Moins" name="less_btn" tool_tip="Options avancées"/>
diff --git a/indra/newview/skins/default/xui/fr/floater_sound_preview.xml b/indra/newview/skins/default/xui/fr/floater_sound_preview.xml
index eb2383b1bc..1ab3a4a714 100644
--- a/indra/newview/skins/default/xui/fr/floater_sound_preview.xml
+++ b/indra/newview/skins/default/xui/fr/floater_sound_preview.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Name/Description" title="sound.wav">
+<floater name="Sound Preview" title="sound.wav">
<text name="name_label">
Nom :
</text>
@@ -12,17 +12,9 @@
Débit (kbps) :
</text>
<radio_group name="bitrate">
- <radio_item name="32">
- 32
- </radio_item>
- <radio_item name="64">
- 64
- </radio_item>
- <radio_item name="96">
- 96
- </radio_item>
- <radio_item name="128">
- 128
- </radio_item>
+ <radio_item name="32" label="32" />
+ <radio_item name="64" label="64" />
+ <radio_item name="96" label="96" />
+ <radio_item name="128" label="128" />
</radio_group>
</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_statistics.xml b/indra/newview/skins/default/xui/fr/floater_statistics.xml
new file mode 100644
index 0000000000..0768c3ace4
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/floater_statistics.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="stats floater" title="Statistiques"/>
diff --git a/indra/newview/skins/default/xui/fr/floater_tools.xml b/indra/newview/skins/default/xui/fr/floater_tools.xml
index a9b7e79ba6..8c462fc6ec 100644
--- a/indra/newview/skins/default/xui/fr/floater_tools.xml
+++ b/indra/newview/skins/default/xui/fr/floater_tools.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="toolbox floater" title="">
+<floater name="toolbox floater" title="" short_title="Construire">
<button label="" label_selected="" name="button focus" tool_tip="Mise au point"/>
<button label="" label_selected="" name="button move" tool_tip="Déplacer"/>
<button label="" label_selected="" name="button edit" tool_tip="Modifier"/>
@@ -29,11 +29,10 @@
<check_box label="Utiliser la grille" name="checkbox snap to grid"/>
<button label="Options..." label_selected="Options..." name="Options..."/>
<text name="text status">
- Faîtes glisser pour déplacer, Maj-faire glisser pour
- copier.
+ Glissez pour déplacer, Maj-glissez pour copier.
</text>
<button label="" label_selected="" name="ToolCube" tool_tip="Cube"/>
- <button label="" label_selected="" name="ToolPrism" tool_tip="Prisme"/>
+ <button label="" label_selected="" name="ToolPrism" tool_tip="Prisme droit"/>
<button label="" label_selected="" name="ToolPyramid" tool_tip="Pyramide"/>
<button label="" label_selected="" name="ToolTetrahedron" tool_tip="Tétraèdre"/>
<button label="" label_selected="" name="ToolCylinder" tool_tip="Cylindre"/>
@@ -58,7 +57,7 @@
<check_box label="Lisser" name="radio smooth"/>
<check_box label="Bosseler" name="radio noise"/>
<check_box label="Annuler modification" name="radio revert"/>
- <button label="Appliquer" label_selected="Appliquer" name="button apply to selection" tool_tip="Modifier le terrain sélectionné"/>
+ <button label="Appliquer" label_selected="Appliquer" name="button apply to selection" tool_tip="Modifier le terrain sélectionné" left="176"/>
<text name="Bulldozer:">
Bulldozer :
</text>
@@ -104,12 +103,12 @@
</text>
<button label="Définir..." label_selected="Définir..." name="button set group"/>
<text name="Permissions:">
- Autorisations :
+ Droits :
</text>
<text name="perm_modify">
Vous pouvez modifier cet objet.
</text>
- <check_box label="Partager avec le groupe" name="checkbox share with group" tool_tip="Autoriser les membres du groupe à déplacer, copier et supprimer."/>
+ <check_box label="Partager avec le groupe" name="checkbox share with group" tool_tip="Autorisez tous les membres du groupe choisi à utiliser et à partager vos droits pour cet objet. Pour activer les restrictions de rôles, vous devez d&apos;abord cliquer sur Transférer."/>
<string name="text deed continued">
Transférer...
</string>
@@ -125,15 +124,9 @@
Prix : L$
</text>
<radio_group name="sale type">
- <radio_item name="Original">
- Original
- </radio_item>
- <radio_item name="Copy">
- Copie
- </radio_item>
- <radio_item name="Contents">
- Contenus
- </radio_item>
+ <radio_item name="Original" label="Original" />
+ <radio_item name="Copy" label="Copie" />
+ <radio_item name="Contents" label="Contenus" />
</radio_group>
<text name="Next owner can:">
Le prochain propriétaire pourra :
@@ -439,7 +432,7 @@
</panel>
<panel label="Contenu" name="Contents">
<button label="Nouveau script" label_selected="Nouveau script..." name="button new script"/>
- <button label="Permissions..." name="button permissions"/>
+ <button label="Droits..." name="button permissions"/>
</panel>
</tab_container>
<panel name="land info panel">
@@ -452,43 +445,43 @@
<text name="label_area">
Surface : [AREA] m²
</text>
- <button label="À propos du terrain..." label_selected="À propos du terrain..." name="button about land" width="132"/>
+ <button label="À propos du terrain..." label_selected="À propos du terrain..." name="button about land" width="142"/>
<check_box label="Afficher les propriétaires" name="checkbox show owners" tool_tip="Colorie les parcelles en fonction de leur propriétaire"/>
- <button label="?" label_selected="?" name="button show owners help"/>
+ <button label="?" label_selected="?" name="button show owners help" left_delta="154"/>
<text name="label_parcel_modify">
Modifier la parcelle
</text>
- <button label="Diviser..." label_selected="Diviser..." name="button subdivide land" width="132"/>
- <button label="Fusionner..." label_selected="Fusionner..." name="button join land" width="132"/>
+ <button label="Diviser..." label_selected="Diviser..." name="button subdivide land" width="142"/>
+ <button label="Fusionner..." label_selected="Fusionner..." name="button join land" width="142"/>
<text name="label_parcel_trans">
Transactions
</text>
- <button label="Acheter le terrain..." label_selected="Acheter le terrain..." name="button buy land" width="132"/>
- <button label="Abandonner le terrain..." label_selected="Abandonner le terrain..." name="button abandon land" width="132"/>
+ <button label="Acheter le terrain..." label_selected="Acheter le terrain..." name="button buy land" width="142"/>
+ <button label="Abandonner le terrain..." label_selected="Abandonner le terrain..." name="button abandon land" width="142"/>
</panel>
<string name="status_rotate">
Pour faire tourner l&apos;objet, faîtes glisser les bandes de couleur.
</string>
<string name="status_scale">
- Pour étirer le côté sélectionné, cliquez et faites glisser
+ Pour étirer le côté sélectionné, cliquez et faites glisser.
</string>
<string name="status_move">
- Faîtes glisser pour déplacer, Maj-faire glisser pour copier.
+ Glissez pour déplacer, Maj-glissez pour copier.
</string>
<string name="status_modifyland">
- Cliquez et maintenez pour modifier le terrain
+ Cliquez et maintenez pour modifier le terrain.
</string>
<string name="status_camera">
- Cliquez et faites glisser pour changer l&apos;affichage
+ Cliquez et faites glisser pour changer l&apos;affichage.
</string>
<string name="status_grab">
- Faîtes glisser pour déplacer, appuyez sur Ctrl pour soulever, Crtl-Maj pour pivoter
+ Glisser pour déplacer, Ctrl pour soulever, Crtl-Maj pour pivoter.
</string>
<string name="status_place">
- Cliquez dans le monde pour construire
+ Cliquez dans le monde pour construire.
</string>
<string name="status_selectland">
- Cliquez et faites glisser pour sélectionner le terrain
+ Cliquez et faites glisser pour sélectionner le terrain.
</string>
<string name="grid_screen_text">
Écran
diff --git a/indra/newview/skins/default/xui/fr/floater_top_objects.xml b/indra/newview/skins/default/xui/fr/floater_top_objects.xml
index 3be281b6c2..69a3d0cd18 100644
--- a/indra/newview/skins/default/xui/fr/floater_top_objects.xml
+++ b/indra/newview/skins/default/xui/fr/floater_top_objects.xml
@@ -16,17 +16,17 @@
</text>
<button label="Afficher balise" name="show_beacon_btn"/>
<text name="obj_name_text">
- Nom :
+ Objet :
</text>
<button label="Filtre" name="filter_object_btn"/>
<text name="owner_name_text">
- Nom :
+ Propriétaire :
</text>
<button label="Filtre" name="filter_owner_btn"/>
<button label="Renvoyer" name="return_selected_btn"/>
- <button label="Renvoyer tous" name="return_all_btn"/>
+ <button label="Tout renvoyer" name="return_all_btn"/>
<button label="Désactiver" name="disable_selected_btn"/>
- <button label="Désactiver tous" name="disable_all_btn"/>
+ <button label="Tout désactiver" name="disable_all_btn"/>
<button label="Rafraîchir" name="refresh_btn"/>
<string name="top_scripts_title">
Scripts principaux
@@ -41,10 +41,10 @@
Heure Mono
</string>
<string name="top_colliders_title">
- Objets souvent responsables de collision
+ Collisions les plus consommatrices
</string>
<string name="top_colliders_text">
- [COUNT] objets souvent responsables de collisions
+ [COUNT] collisions les plus consommatrices
</string>
<string name="colliders_score_label">
Score
diff --git a/indra/newview/skins/default/xui/fr/floater_tos.xml b/indra/newview/skins/default/xui/fr/floater_tos.xml
index b77838d92c..dc4bd8cf2b 100644
--- a/indra/newview/skins/default/xui/fr/floater_tos.xml
+++ b/indra/newview/skins/default/xui/fr/floater_tos.xml
@@ -3,12 +3,8 @@
<button label="Continuer" label_selected="Continuer" name="Continue" />
<button label="Annuler" label_selected="Annuler" name="Cancel" />
<radio_group name="tos_agreement">
- <radio_item name="radio_disagree">
- Je n&apos;accepte pas les Conditions Générales d&apos;Utilisation
- </radio_item>
- <radio_item name="radio_agree">
- J&apos;accepte les Conditions Générales d&apos;Utilisation
- </radio_item>
+ <radio_item name="radio_disagree" label="Je n&apos;accepte pas les Conditions Générales d&apos;Utilisation" />
+ <radio_item name="radio_agree" label="J&apos;accepte les Conditions Générales d&apos;Utilisation" />
</radio_group>
<text name="tos_title">
Acceptation des Conditions Générales d&apos;Utilisation
diff --git a/indra/newview/skins/default/xui/fr/floater_world_map.xml b/indra/newview/skins/default/xui/fr/floater_world_map.xml
index 642a258a6f..d7ffe9205d 100644
--- a/indra/newview/skins/default/xui/fr/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/fr/floater_world_map.xml
@@ -4,14 +4,6 @@
<panel label="Objets" name="objects_mapview" width="953"/>
<panel label="Terrain" name="terrain_mapview" width="953"/>
</tab_container>
- <icon left="973" name="square"/>
- <text name="land_for_sale_label">
- Terrain à vendre
- </text>
- <icon left="1113" name="square2"/>
- <text name="auction_label">
- Terrain aux enchères
- </text>
<icon left="973" name="self"/>
<text name="you_label">
Vous
@@ -20,38 +12,32 @@
<text name="home_label">
Domicile
</text>
- <button label="Aller chez moi" label_selected="Aller chez moi" name="Go Home" tool_tip="Vous téléporte à votre domicile"/>
- <text name="classifieds_label">
- Petites annonces
+ <icon left="973" name="square2"/>
+ <text name="auction_label">
+ Terrain aux enchères
</text>
- <icon left="977" name="person"/>
- <text name="person_label">
- Résident
+ <icon left="1105" name="square"/>
+ <text name="land_for_sale_label">
+ Terrain à vendre
</text>
- <check_box label=" " left_delta="60" name="people_chk"/>
+ <button label="Aller chez moi" label_selected="Aller chez moi" name="Go Home" tool_tip="Vous téléporte à votre domicile"/>
+ <icon left="977" name="person"/>
+ <check_box label="Résident" name="people_chk"/>
<icon left="973" name="infohub"/>
- <text name="infohub_label">
- Infohub
- </text>
- <check_box label=" " left_delta="60" name="infohub_chk"/>
+ <check_box label="Infohub" name="infohub_chk"/>
<icon left="973" name="telehub"/>
- <text name="telehub_label">
- Téléhub
- </text>
- <check_box label=" " left_delta="60" name="telehubchk"/>
- <icon left="1113" name="landforsale"/>
- <text name="land_for_sale_label2">
- Terrain à vendre
- </text>
- <check_box label=" " name="land_for_sale_chk"/>
- <icon left="1113" name="event"/>
- <text name="events_label">
- Événements
+ <check_box label="Téléhub" name="telehubchk"/>
+ <icon left="973" name="landforsale"/>
+ <check_box label="Terrain à vendre" name="land_for_sale_chk"/>
+ <text name="events_label" left="1099">
+ Événements :
</text>
- <check_box label=" " name="event_chk"/>
- <icon left="1113" name="events_mature_icon"/>
-
- <check_box name="event_mature_chk"/>
+ <icon left="1121" name="event"/>
+ <check_box label="PG" name="event_chk"/>
+ <icon left="1121" name="events_mature_icon"/>
+ <check_box label="Mature" name="event_mature_chk"/>
+ <icon left="1121" name="events_adult_icon"/>
+ <check_box label="Adult" name="event_adult_chk"/>
<icon left="973" name="avatar_icon"/>
<combo_box label="Amis connectés" name="friend combo" tool_tip="Ami à afficher sur la carte" width="232">
<combo_box.item name="none_selected" label="Amis connectés" />
@@ -73,13 +59,13 @@
<text left="973" name="location_label">
Emplacement :
</text>
- <spinner left="993" name="spin x" tool_tip="Coordonnées des X du lieu à afficher sur la carte"/>
- <spinner left="993" name="spin y" tool_tip="Coordonnées des Y du lieu à afficher sur la carte"/>
- <spinner left="993" name="spin z" tool_tip="Coordonnées des Z du lieu à afficher sur la carte"/>
+ <spinner left="1078" name="spin x" tool_tip="Coordonnées des X du lieu à afficher sur la carte"/>
+ <spinner name="spin y" tool_tip="Coordonnées des Y du lieu à afficher sur la carte"/>
+ <spinner name="spin z" tool_tip="Coordonnées des Z du lieu à afficher sur la carte"/>
<button label="Téléporter" label_selected="Téléporter" left="-270" name="Teleport" tool_tip="Téléporter à l&apos;endroit sélectionné"/>
<button label="Afficher la destination" label_selected="Afficher la destination" name="Show Destination" tool_tip="Centrer la carte sur l&apos;endroit sélectionné" width="165"/>
<button label="Effacer" label_selected="Effacer" left="-270" name="Clear" tool_tip="Arrêter de suivre"/>
<button label="Afficher mon emplacement" label_selected="Afficher mon emplacement" name="Show My Location" tool_tip="Centrer la carte sur l&apos;emplacement de votre avatar" width="165"/>
- <button label="Copier la SLURL dans le presse-papier" left="-270" name="copy_slurl" tool_tip="Copier l&apos;emplacement actuel comme SLURL pour l&apos;utiliser sur le Web." width="262"/>
+ <button label="Copier la SLURL dans le presse-papiers" left="-270" name="copy_slurl" tool_tip="Copier l&apos;emplacement actuel comme SLURL pour l&apos;utiliser sur le Web." width="262"/>
<slider label="Zoom" left="-270" name="zoom slider"/>
</floater>
diff --git a/indra/newview/skins/default/xui/fr/menu_login.xml b/indra/newview/skins/default/xui/fr/menu_login.xml
index 3b904b6802..b3169714c3 100644
--- a/indra/newview/skins/default/xui/fr/menu_login.xml
+++ b/indra/newview/skins/default/xui/fr/menu_login.xml
@@ -7,7 +7,7 @@
<menu_item_call label="Préférences..." name="Preferences..." />
</menu>
<menu label="Aide" name="Help">
- <menu_item_call label="Aide Second Life" name="Second Life Help" />
+ <menu_item_call label="Aide de Second Life" name="Second Life Help" />
<menu_item_call label="À propos de Second Life..." name="About Second Life..." />
</menu>
</menu_bar>
diff --git a/indra/newview/skins/default/xui/fr/menu_mini_map.xml b/indra/newview/skins/default/xui/fr/menu_mini_map.xml
new file mode 100644
index 0000000000..36107885f4
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/menu_mini_map.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="popup">
+ <menu_item_call label="Zoom rapproché" name="Zoom Close"/>
+ <menu_item_call label="Zoom moyen" name="Zoom Medium"/>
+ <menu_item_call label="Zoom éloigné" name="Zoom Far"/>
+ <menu_item_call label="Arrêter de suivre" name="Stop Tracking"/>
+ <menu_item_call label="Profil..." name="Profile"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_viewer.xml b/indra/newview/skins/default/xui/fr/menu_viewer.xml
index f0a4541e6b..959cc5764c 100644
--- a/indra/newview/skins/default/xui/fr/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/fr/menu_viewer.xml
@@ -8,7 +8,7 @@
<menu_item_call label="Animation ([COST] L$)..." name="Upload Animation"/>
<menu_item_call label="Lot ([COST] L$ par fichier)..." name="Bulk Upload"/>
<menu_item_separator label="-----------" name="separator"/>
- <menu_item_call label="Définir les permissions par défaut..." name="perm prefs"/>
+ <menu_item_call label="Définir les droits par défaut..." name="perm prefs"/>
</menu>
<menu_item_separator label="-----------" name="separator"/>
<menu_item_call label="Fermer la fenêtre" name="Close Window"/>
@@ -83,6 +83,7 @@
<menu_item_separator label="-----------" name="separator3"/>
<menu_item_check label="Statistiques" name="Statistics Bar"/>
<menu_item_check label="Limites des parcelles" name="Property Lines"/>
+ <menu_item_check label="Barrières d&apos;interdiction d&apos;accès" name="Banlines"/>
<menu_item_check label="Propriétaires fonciers" name="Land Owners"/>
<menu_item_separator label="-----------" name="separator4"/>
<menu label="Infobulles" name="Hover Tips">
@@ -170,7 +171,6 @@
<menu_item_call label="Zoom sur la sélection" name="Zoom to Selection"/>
<menu_item_call label="Acheter l&apos;objet" name="Menu Object Take"/>
<menu_item_call label="Prendre une copie" name="Take Copy"/>
- <menu_item_call label="Remplacer l&apos;objet dans mon inventaire" name="Save Object Back to My Inventory"/>
<menu_item_call label="Remplacer l&apos;objet dans le contenu de l&apos;objet" name="Save Object Back to Object Contents"/>
<menu_item_separator label="-----------" name="separator6"/>
<menu_item_call label="Afficher la fenêtre d&apos;alertes/erreurs de script" name="Show Script Warning/Error Window"/>
@@ -183,12 +183,14 @@
<menu_item_call label="Désactiver les scripts dans la sélection" name="Set Scripts to Not Running in Selection"/>
</menu>
<menu label="Aide" name="Help">
- <menu_item_call label="Aide Second Life" name="Second Life Help"/>
+ <menu_item_call label="Aide de Second Life" name="Second Life Help"/>
<menu_item_call label="Didacticiel" name="Tutorial"/>
<menu_item_separator label="-----------" name="separator"/>
<menu_item_call label="Blog officiel..." name="Official Linden Blog..."/>
<menu_item_separator label="-----------" name="separator2"/>
- <menu_item_call label="Aide sur le LSL..." name="Scripting Portal..."/>
+ <menu_item_call label="Aide sur le LSL..." name="Scripting Portal...">
+ <on_click name="ScriptingPortal_url" userdata="WebLaunchLSLWiki,http://wiki.secondlife.com/wiki/LSL_Portal/fr" />
+ </menu_item_call>
<menu_item_separator label="-----------" name="separator3"/>
<menu_item_call label="Signaler une infraction..." name="Report Abuse..."/>
<menu_item_call label="Collisions, coups et bousculades…" name="Bumps, Pushes &amp;amp; Hits..."/>
@@ -196,9 +198,13 @@
<menu_item_separator label="-----------" name="separator7"/>
<menu label="Signaler des bugs" name="Bug Reporting">
<menu_item_call label="Ouvrir un JIRA..." name="Public Issue Tracker..."/>
- <menu_item_call label="Comment utiliser JIRA ?" name="Publc Issue Tracker Help..."/>
+ <menu_item_call label="Comment utiliser JIRA ?" name="Publc Issue Tracker Help...">
+ <on_click name="PublicIssueTrackerHelp_url" userdata="WebLaunchPublicIssueHelp,http://wiki.secondlife.com/wiki/Issue_tracker/fr" />
+ </menu_item_call>
<menu_item_separator label="-----------" name="separator7"/>
- <menu_item_call label="Comment signaler des bugs ?" name="Bug Reporing 101..."/>
+ <menu_item_call label="Comment signaler des bugs ?" name="Bug Reporing 101...">
+ <on_click name="BugReporting101_url" userdata="WebLaunchBugReport101,http://wiki.secondlife.com/wiki/Bug_Reporting_101/fr"/>
+ </menu_item_call>
<menu_item_call label="Comment signaler un problème de sécurité ?" name="Security Issues...">
<on_click name="SecurityIssues_url" userdata="WebLaunchSecurityIssues,http://wiki.secondlife.com/wiki/Security_issues/fr"/>
</menu_item_call>
diff --git a/indra/newview/skins/default/xui/fr/notifications.xml b/indra/newview/skins/default/xui/fr/notifications.xml
index f40ed13203..ac8d0cc605 100644
--- a/indra/newview/skins/default/xui/fr/notifications.xml
+++ b/indra/newview/skins/default/xui/fr/notifications.xml
@@ -1,5732 +1,3009 @@
-<?xml version="1.0" ?><notifications>
-
- <global name="skipnexttime">
-
- Ne plus afficher
- </global>
-
- <global name="alwayschoose">
-
- Toujours choisir cette option
- </global>
-
- <template name="okbutton">
- <form>
- <button
- name="OK"
- text="$yestext"/>
- </form>
- </template>
-
- <template name="okignore">
- <form>
- <button
- name="OK"
- text="$yestext"/>
- <ignore text="$ignoretext"/>
- </form>
- </template>
-
- <template name="okcancelbuttons">
- <form>
- <button
- name="OK"
- text="$yestext"/>
- <button
- name="Cancel"
- text="$notext"/>
- </form>
- </template>
-
- <template name="okcancelignore">
- <form>
- <button
- name="OK"
- text="$yestext"/>
- <button
- name="Cancel"
- text="$notext"/>
- <ignore text="$ignoretext"/>
- </form>
- </template>
-
- <template name="okhelpbuttons">
- <form>
- <button
- name="OK"
- text="$yestext"/>
- <button
- name="Help"
- text="$helptext"/>
- </form>
- </template>
-
- <template name="yesnocancelbuttons">
- <form>
- <button
- name="Yes"
- text="$yestext"/>
- <button
- name="No"
- text="$notext"/>
- <button
- name="Cancel"
- text="$canceltext"/>
- </form>
- </template>
-
- <notification
- functor="GenericAcknowledge"
-
- name="MissingAlert"
- >
-Le erreur &apos;[_NAME]&apos; n&apos;est pas dans le fichier notifications.xml.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="FloaterNotFound"
- >
-Erreur floater : impossible de trouver les contrôles suivants :
-
-[CONTROLS]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="TutorialNotFound"
- >
-Aucun didacticiel n&apos;est disponible actuellement.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GenericAlert"
- >
-[MESSAGE]
- </notification>
-
- <notification
-
- name="GenericAlertYesCancel"
- >
-[MESSAGE]
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="Oui"/>
- </notification>
-
- <notification
-
- name="WearableSave"
- >
-Enregistrer les changements dans la partie du corps/les habits actuels ?
- <usetemplate
- canceltext="Cancel"
- name="yesnocancelbuttons"
- notext="Ne pas enregistrer"
- yestext="Enregistrer"/>
- </notification>
-
- <notification
-
- name="CompileQueueSaveText"
- >
-Une erreur est survenue lors du chargement du texte pour un script, suite au problème suivant : [REASON]. Veuillez réessayer ultérieurement.
- </notification>
-
- <notification
-
- name="CompileQueueSaveBytecode"
- >
-Une erreur est survenue lors du chargement du script compilé, suite au problème suivant : [REASON]. Veuillez réessayer ultérieurement.
- </notification>
-
- <notification
-
- name="WriteAnimationFail"
- >
-Une erreur est survenue lors de l&apos;écriture des données d&apos;animation. Veuillez réessayer ultérieurement.
- </notification>
-
- <notification
-
- name="UploadAuctionSnapshotFail"
- >
-Un problème est survenu lors du chargement du script compilé, suite au problème suivant : [REASON]
- </notification>
-
- <notification
-
- name="UnableToViewContentsMoreThanOne"
- >
-Impossible d&apos;afficher les contenus de plus d&apos;un objet à la fois.
-Veuillez ne sélectionner qu&apos;un seul objet.
- </notification>
-
- <notification
-
- name="SaveClothingBodyChanges"
- >
-Enregistrer tous les changements dans les habits/parties du corps ?
- <usetemplate
- canceltext="Annuler"
- name="yesnocancelbuttons"
- notext="Ne pas enregistrer"
- yestext="Tout enregistrer"/>
- </notification>
-
- <notification
-
- name="GrantModifyRights"
- >
-Lorsque vous accordez des droits d&apos;édition à un autre résident, vous lui permettez de changer, supprimer ou prendre n&apos;importe lequel de vos objets dans le Monde. Réfléchissez bien avant d&apos;accorder ces droits.
-Souhaitez-vous accorder des droits d&apos;édition à [FIRST_NAME] [LAST_NAME] ?
- <usetemplate
- name="okcancelbuttons"
- notext="Non"
- yestext="Oui"/>
- </notification>
-
- <notification
-
- name="GrantModifyRightsMultiple"
- >
-Lorsque vous accordez des droits d&apos;édition à un autre résident, vous lui permettez de changer n&apos;importe lequel de vos objets dans le Monde. Réfléchissez bien avant d&apos;accorder ces droits.
-Souhaitez-vous accorder des droits d&apos;édition aux résidents selectionnés ?
- <usetemplate
- name="okcancelbuttons"
- notext="Non"
- yestext="Oui"/>
- </notification>
-
- <notification
-
- name="RevokeModifyRights"
- >
-Souhaitez-vous retirer les droits d&apos;édition à [FIRST_NAME] [LAST_NAME] ?
- <usetemplate
- name="okcancelbuttons"
- notext="Non"
- yestext="Oui"/>
- </notification>
-
- <notification
-
- name="RevokeModifyRightsMultiple"
- >
-Souhaitez-vous retirer les droits d&apos;édition aux résidents selectionnés ?
- <usetemplate
- name="okcancelbuttons"
- notext="Non"
- yestext="Oui"/>
- </notification>
-
- <notification
-
- name="UnableToCreateGroup"
- >
-Impossible de créer le groupe.
-[MESSAGE]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="PanelGroupApply"
- >
-[NEEDS_APPLY_MESSAGE]
-[WANT_APPLY_MESSAGE]
- <usetemplate
- canceltext="Annuler"
- name="yesnocancelbuttons"
- notext="Ignorer les modifications"
- yestext="Enregistrer les modifications"/>
- </notification>
-
- <notification
-
- name="MustSpecifyGroupNoticeSubject"
- >
-Pour envoyer une notice au groupe, vous devez indiquer un sujet.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="AddGroupOwnerWarning"
- >
-Vous êtes sur le point d&apos;ajouter des membres du groupe dans le rôle de [ROLE_NAME].
-Les membres ne peuvent pas être destitués de ce rôle.
-Ils doivent donner eux-mêmes leur démission.
-Êtes-vous certain de vouloir continuer ?
- <usetemplate
- ignoretext="Lorsque vous donnez à des membres du groupe le rôle de « propriétaire »"
- name="okcancelignore"
- notext="Non"
- yestext="Oui"/>
- </notification>
-
- <notification
-
- name="AssignDangerousActionWarning"
- >
-Vous êtes sur le point d&apos;ajouter le pouvoir « [ACTION_NAME] » au rôle « [ROLE_NAME] ».
- *Avertissement*
- Tout membre disposant de ce pouvoir peut s&apos;affecter lui-même, ainsi que tout autre membre, à des rôles disposant de pouvoirs plus importants, et accéder potentiellement à des pouvoirs proches de ceux d&apos;un propriétaire. Assurez-vous de bien comprendre ce que vous faites avant d&apos;attribuer ce pouvoir.
-
-Ajouter ce pouvoir à « [ROLE_NAME] » ?
- <usetemplate
- name="okcancelbuttons"
- notext="Non"
- yestext="Oui"/>
- </notification>
-
- <notification
-
- name="AssignDangerousAbilityWarning"
- >
-Vous êtes sur le point d&apos;ajouter le pouvoir « [ACTION_NAME] » au rôle « [ROLE_NAME] ».
-
- *Avertissement*
- Tout membre dans un rôle avec ce pouvoir peut s&apos;attribuer à lui-même, ainsi qu&apos;à tout autre membre, Tous les pouvoirs, et accéder potentiellement à des pouvoirs proches de ceux d&apos;un propriétaire.
-
-Ajouter ce pouvoir à « [ROLE_NAME] » ?
- <usetemplate
- name="okcancelbuttons"
- notext="Non"
- yestext="Oui"/>
- </notification>
-
- <notification
-
- name="ClickPublishHelpLand"
- >
-Sélectionner l&apos;option Afficher dans la recherche
-En cochant cette case, votre parcelle apparaîtra :
-- dans les résultats de recherche ;
-- dans les objets publics ;
-- dans la recherche web.
- </notification>
-
- <notification
-
- name="ClickPublishHelpLandDisabled"
- >
-Cette parcelle ne peut pas apparaître dans la recherche car elle est dans une région où cela n&apos;est pas autorisé.
- </notification>
-
- <notification
-
- name="ClickPublishHelpAvatar"
- >
-Si vous sélectionnez Afficher dans la recherche :
-- votre profil apparaîtra dans les résultats de recherche ;
-- un lien vers votre profil apparaîtra dans les pages de groupe publiques.
- </notification>
-
- <notification
-
- name="ClickPartnerHelpAvatar"
- >
-Vous pouvez proposer à un autre résident de devenir votre partenaire ou dissoudre un partenariat existant à partir du site de [SECOND_LIFE].
-
-Aller sur le site de Second Life pour avoir plus d&apos;informations sur les partenariats ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="Aller sur cette page"/>
- </notification>
-
- <notification
-
- name="ClickWebProfileHelpAvatar"
- >
-Si ce résident a défini une URL de profil web, vous pouvez :
- * Cliquer sur Charger pour afficher la page dans cet onglet ;
- * Cliquer sur Charger &gt; Dans un navigateur externe, pour afficher la page dans votre navigateur par défaut ;
- * Cliquer sur Charger &gt; URL du domicile, pour retourner au profil web du résident.
-
-Lorsque vous êtes dans votre propre profil, vous pouvez définir n&apos;importe quelle URL comme profil web. Pour cela, saisissez l&apos;URL et cliquez sur OK.
-Les autres résidents peuvent visiter l&apos;URL que vous avez définie en regardant votre profil.
- </notification>
-
- <notification
-
- name="JoinGroupCanAfford"
- >
-Rejoindre ce groupe coûte [COST] L$.
-Voulez-vous continuer ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="Rejoindre"/>
- </notification>
-
- <notification
-
- name="JoinGroupCannotAfford"
- >
-Rejoindre ce groupe coûte [COST] L$.
-Vous n&apos;avez pas suffisamment de L$ pour rejoindre ce groupe.
- </notification>
-
- <notification
-
- name="LandBuyPass"
- >
-Pour [COST] L$ vous pouvez pénétrer sur ce terrain ([PARCEL_NAME]) et y rester [TIME] heures. Acheter un pass ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SalePriceRestriction"
- >
-Pour rendre l&apos;annonce disponible à tous, le prix de vente doit être supérieur à 0 L$.
-Si le prix de vente est de 0 L$, vous devez choisir un acheteur spécifique.
- </notification>
-
- <notification
-
- name="ConfirmLandSaleChange"
-
- >
-Le terrain sélectionné, de [LAND_SIZE] m², est mis en vente.
-Votre prix de vente sera de [SALE_PRICE] L$ et la vente sera disponible à [NAME].
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmLandSaleToAnyoneChange"
- >
-Attention : en cliquant sur Vendre à n&apos;importe qui, vous rendez votre terrain disponible à toute la communauté de Second Life, même aux personnes qui ne sont pas dans cette région.
-
-Le terrain sélectionné, de [LAND_SIZE] m², est mis en vente.
-Votre prix de vente sera de [SALE_PRICE] L$ et la vente sera disponible à [NAME].
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsDeededToGroup"
- >
-Êtes-vous certain de vouloir renvoyer tous les objets partagés par le groupe [NAME] sur cette parcelle dans l&apos;inventaire du propriétaire précédent ?
-
-*Avertissement* Tous les objets non transférables cédés au groupe seront supprimés !
-
-Objets : [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsOwnedByUser"
- >
-Etes-vous certain de vouloir renvoyer tous les objets que [NAME] possède sur cette parcelle dans son inventaire ?
-
-Objets : [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsOwnedBySelf"
- >
-Êtes-vous certain de vouloir renvoyer tous les objets que vous possédez sur cette parcelle dans votre inventaire ?
-
-Objets : [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsNotOwnedBySelf"
- >
-Êtes-vous certain de vouloir renvoyer tous les objets que vous ne possédez pas sur cette parcelle dans l&apos;inventaire de leur propriétaire ?
-Les objets transférables cédés à un groupe seront renvoyés aux propriétaires précédents.
-
-*Avertissement* Tous les objets non transférables cédés au groupe seront supprimés !
-
-Objets : [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsNotOwnedByUser"
- >
-Êtes-vous certain de vouloir renvoyer tous les objets que [NAME] ne possède pas sur cette parcelle dans l&apos;inventaire de leur propriétaire ?
-Les objets transférables cédés à un groupe seront renvoyés aux propriétaires précédents.
-
-*Avertissement* Tous les objets non transférables cédés au groupe seront supprimés !
-
-Objets : [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnAllTopObjects"
- >
-Êtes-vous certain de vouloir renvoyer tous les objets de la liste dans l&apos;inventaire de leur propriétaire ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="DisableAllTopObjects"
- >
-Êtes-vous certain de vouloir désactiver tous les objets dans cette région ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsNotOwnedByGroup"
- >
-Renvoyer les objets de cette parcelle qui ne sont pas partagés avec le groupe [NAME] à leur propriétaire ?
-
-Objets : [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="UnableToDisableOutsideScripts"
- >
-Impossible de désactiver les scripts.
-Les dégâts sont autorisés dans toute la région.
-Pour que les armes fonctionnent, les scripts doivent être autorisés.
- </notification>
-
- <notification
-
- name="MustBeInParcel"
- >
-Pour définir le point d&apos;atterrissage, vous devez vous trouver à l&apos;intérieur de la parcelle.
- </notification>
-
- <notification
-
- name="PromptRecipientEmail"
- >
-Veuillez saisir une adresse e-mail valide pour le(s) destinataire(s).
- </notification>
-
- <notification
-
- name="PromptSelfEmail"
- >
-Veuillez saisir votre adresse e-mail.
- </notification>
-
- <notification
-
- name="PromptMissingSubjMsg"
- >
-Envoyer la photo avec le sujet ou le message par défaut ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ErrorProcessingSnapshot"
- >
-Erreur dans le traitement des données de la photo
- </notification>
-
- <notification
-
- name="ErrorEncodingSnapshot"
- >
-Erreur d&apos;encodage de la photo.
- </notification>
-
- <notification
-
- name="ErrorUploadingPostcard"
- >
-Une erreur est survenue lors du chargement du script compilé, suite au problème suivant : [REASON]
- </notification>
-
- <notification
-
- name="ErrorUploadingReportScreenshot"
- >
-Une erreur est survenue lors du chargement de la capture d&apos;écran destinée au rapport, suite au problème suivant : [REASON]
- </notification>
-
- <notification
-
- name="MustAgreeToLogIn"
- >
-Pour vous connecter à [SECOND_LIFE], vous devez accepter les Conditions d&apos;utilisation.
- </notification>
-
- <notification
-
- name="CouldNotPutOnOutfit"
- >
-Impossible de mettre cet ensemble.
-Ce dossier ne contient pas d&apos;habits, de parties du corps ni de pièces jointes.
- </notification>
-
- <notification
-
- name="CannotWearTrash"
- >
-Vous ne pouvez pas porter d&apos;habits ni de parties du corps se trouvant dans la corbeille.
- </notification>
-
- <notification
-
- name="CannotWearInfoNotComplete"
- >
-Vous ne pouvez pas porter cet article car il n&apos;a pas encore été chargé. Veuillez réessayer dans une minute.
- </notification>
-
- <notification
-
- name="MustHaveAccountToLogIn"
- >
-Oups! Vous avez oublié de fournir certaines informations.
-Vous devez saisir le nom et le prénom de votre avatar.
-
-Pour entrer dans [SECOND_LIFE], vous devez avoir un compte. Voulez-vous en créer un maintenant ?
- <usetemplate
- name="okcancelbuttons"
- notext="Réessayer"
- yestext="Créer un compte"/>
- </notification>
-
- <notification
-
- name="AddClassified"
- >
-Les petites annonces sont publiées à l&apos;onglet Petites annonces de la section Recherche pendant une semaine.
-Rédigez votre annonce, puis cliquez sur Publier pour l&apos;ajouter à la liste des annonces.
-Au moment de cliquer sur Publier, vous serez invité à payer des frais.
-Plus vous payez cher, plus votre annonce est visible dans la liste ainsi que dans les résultats de recherche de mots-clés.
- <usetemplate
- ignoretext="Lors de l&apos;ajout d&apos;une nouvelle petite annonce"
- name="okcancelignore"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="DeleteClassified"
- >
-Supprimer l&apos;annonce [NAME] ?
-Une fois payés, les frais ne sont pas remboursables.
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ClassifiedSave"
- >
-Enregistrer les changements dans l&apos;annonce [NAME] ?
- <usetemplate
- canceltext="Annuler"
- name="yesnocancelbuttons"
- notext="Ne pas enregistrer"
- yestext="Enregistrer"/>
- </notification>
-
- <notification
-
- name="DeleteAvatarPick"
- >
-Supprimer le favori [PICK] ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="PromptGoToEventsPage"
- >
-Aller à la page web de [SECOND_LIFE] réservée aux événements ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SelectProposalToView"
- >
-Veuillez sélectionner une proposition.
- </notification>
-
- <notification
-
- name="SelectHistoryItemToView"
- >
-Veuillez sélectionner un historique.
- </notification>
-
- <notification
-
- name="ResetShowNextTimeDialogs"
- >
-Souhaitez-vous réactiver tous les pop-ups que vous aviez désactivés ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SkipShowNextTimeDialogs"
- >
-Voulez-vous désactiver tous les pop-ups qui peuvent être évités ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CacheWillClear"
- >
-Le cache sera vidé après le redémarrage de [SECOND_LIFE].
- </notification>
-
- <notification
-
- name="CacheWillBeMoved"
- >
-Le cache sera déplacé après le redémarrage de [SECOND_LIFE].
-Remarque : cela videra le cache.
- </notification>
-
- <notification
-
- name="ChangeConnectionPort"
- >
-Les paramètres du port prendront effet après le redémarrage de [SECOND_LIFE].
- </notification>
-
- <notification
-
- name="ChangeSkin"
- >
-Le nouveau thème apparaîtra après le redémarrage de [SECOND_LIFE].
- </notification>
-
- <notification
-
- name="GoToAuctionPage"
- >
-Aller à la page web de [SECOND_LIFE] pour voir le détail des enchères ou enchérir ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SaveChanges"
- >
-Enregistrer les changements ?
- <usetemplate
- canceltext="Annuler"
- name="yesnocancelbuttons"
- notext="Ne pas enregistrer"
- yestext="Enregistrer"/>
- </notification>
-
- <notification
-
- name="GestureSaveFailedTooManySteps"
- >
-L&apos;enregistrement du geste a échoué.
-Il y a trop d&apos;étapes dans ce geste.
-Essayez d&apos;en supprimer quelques-unes.
- </notification>
-
- <notification
-
- name="GestureSaveFailedTryAgain"
- >
-L&apos;enregistrement du geste a échoué. Veuillez réessayer dans une minute.
- </notification>
-
- <notification
-
- name="GestureSaveFailedObjectNotFound"
- >
-Le geste n&apos;a pas pu être enregistré car l&apos;objet ou l&apos;inventaire de l&apos;objet associé n&apos;a pas été trouvé.
-L&apos;objet est peut-être inaccessible ou a peut-être été supprimé.
- </notification>
-
- <notification
-
- name="GestureSaveFailedReason"
- >
-Une erreur est survenue lors de l&apos;enregistrement du geste, suite au problème suivant : [REASON]. Essayez d&apos;enregistrer votre geste ultérieurement.
- </notification>
-
- <notification
-
- name="SaveNotecardFailObjectNotFound"
- >
-La note n&apos;a pas pu être enregistrée car l&apos;objet ou l&apos;inventaire de l&apos;objet associé n&apos;a pas été trouvé.
-L&apos;objet est peut-être inaccessible ou a peut-être été supprimé.
- </notification>
-
- <notification
-
- name="SaveNotecardFailReason"
- >
-Une erreur est survenue lors de l&apos;enregistrement de la note, suite au problème suivant : [REASON]. Essayez d&apos;enregistrer votre note ultérieurement.
- </notification>
-
- <notification
-
- name="ScriptCannotUndo"
- >
-Impossible d&apos;annuler tous les changements dans votre version du script.
-Souhaitez-vous charger la dernière version enregistrée sur le serveur ?
-(**Attention** Cette opération est irréversible.)
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SaveScriptFailReason"
- >
-Une erreur est survenue lors de l&apos;enregistrement du script, suite au problème suivant : [REASON]. Essayez d&apos;enregistrer votre script ultérieurement.
- </notification>
-
- <notification
-
- name="SaveScriptFailObjectNotFound"
- >
-Impossible d&apos;enregistrer le script car l&apos;objet qui le contient est introuvable.
-L&apos;objet est peut-être inaccessible ou a peut-être été supprimé.
- </notification>
-
- <notification
-
- name="SaveBytecodeFailReason"
- >
-Une erreur est survenue lors de l&apos;enregistrement du script compilé, suite au problème suivant : [REASON]. Essayez d&apos;enregistrer votre script ultérieurement.
- </notification>
-
- <notification
-
- name="CouldNotStartStopScript"
- >
-Impossible de lancer ou d&apos;arrêter le script car l&apos;objet qui le contient est introuvable.
-L&apos;objet est peut-être inaccessible ou a peut-être été supprimé.
- </notification>
-
- <notification
-
- name="CannotDownloadFile"
- >
-Impossible de télécharger le fichier
- </notification>
-
- <notification
-
- name="CannotWriteFile"
- >
-Impossible d&apos;écrire le fichier [[FILE]]
- </notification>
-
- <notification
-
- name="UnsupportedHardware"
- >
-Avertissement : vous n&apos;avez pas la configuration système requise pour utiliser Second Life. Si vous continuez à utiliser Second Life, votre performance risque d&apos;être moindre. Malheureusement, nous n&apos;offrons aucune assistance pour les problèmes de configuration système.
-
-MINSPECS
-Voulez-vous visiter [_URL] pour plus d&apos;informations ?
- <url option="0" name="url">
-
- http://secondlife.com/support/sysreqs.php?lang=fr
- </url>
- <usetemplate
- ignoretext="Lors de la détection de matériel non pris en charge"
- name="okcancelignore"
- notext="Non"
- yestext="Oui"/>
- </notification>
-
- <notification
-
- name="UnknownGPU"
- >
-Votre système contient une carte graphique que nous ne connaissons pas actuellement.
-Cela est souvent le cas avec le nouveau materiel qui n&apos;a pas encore été testé.
-Vous pourrez probablement utiliser Second Life sans problème, mais vous devrez peut-être ajuster les paramètres de vos graphiques.
-(Menu Édition &gt; Préférences &gt; Graphiques).
- <form name="form">
- <ignore name="ignore"
- text="Lors de la détection d&apos;une carte graphique inconnue"/>
- </form>
- </notification>
-
- <notification
-
- name="DisplaySettingsNoShaders"
- >
-[SECOND_LIFE] a planté lors de l&apos;initialisation des drivers graphiques.
-La qualité des graphiques sera paramétrée sur Faible pour éviter certaines erreurs de driver fréquentes.
-Certaines fonctionnalités graphiques seront donc désactivées.
-Nous vous recommandons de mettre à jour les drivers de votre carte graphique.
-La qualité des graphiques peut être augmentée à la section Préférences &gt; Graphiques
- </notification>
-
- <notification
-
- name="RegionNoTerraforming"
- >
-Le terraformage est interdit dans la région [REGION].
- </notification>
-
- <notification
-
- name="CannotCopyWarning"
- >
-Vous n&apos;êtes pas autorisé à copier cet objet et il disparaîtra de votre inventaire si vous le donnez. Souhaitez-vous vraiment offrir cet objet ?
- <usetemplate
- name="okcancelbuttons"
- notext="Non"
- yestext="Oui"/>
- </notification>
-
- <notification
-
- name="CannotGiveItem"
- >
-Impossible de donner l&apos;objet de l&apos;inventaire.
- </notification>
-
- <notification
-
- name="TransactionCancelled"
- >
-Transaction annulée.
- </notification>
-
- <notification
-
- name="TooManyItems"
- >
-Impossible de donner plus de 42 objets au cours d&apos;un seul transfert d&apos;inventaire.
- </notification>
-
- <notification
-
- name="NoItems"
- >
-Vous n&apos;êtes pas autorisé à transférer les objets sélectionnés.
- </notification>
-
- <notification
-
- name="CannotCopyCountItems"
- >
-Vous n&apos;êtes pas autorisé à copier [COUNT] des objets sélectionnés. Ces objets disparaîtront de votre inventaire.
-Souhaitez-vous vraiment donner ces objets ?
- <usetemplate
- name="okcancelbuttons"
- notext="Non"
- yestext="Oui"/>
- </notification>
-
- <notification
-
- name="CannotGiveCategory"
- >
-Vous n&apos;êtes pas autorisé à transférer le dossier sélectionné.
- </notification>
-
- <notification
-
- name="FreezeAvatar"
- >
-Geler cet avatar ?
-Il ou elle ne pourra temporairement plus bouger, chatter, ou interagir dans le Monde.
- <usetemplate
- canceltext="Annuler"
- name="yesnocancelbuttons"
- notext="Dégeler"
- yestext="Geler"/>
- </notification>
-
- <notification
-
- name="FreezeAvatarFullname"
- >
-Geler [AVATAR_NAME] ?
-Il ou elle ne pourra temporairement plus bouger, chatter, ou interagir dans le Monde.
- <usetemplate
- canceltext="Annuler"
- name="yesnocancelbuttons"
- notext="Dégeler"
- yestext="Geler"/>
- </notification>
-
- <notification
-
- name="EjectAvatarFullname"
- >
-Expulser [AVATAR_NAME] de votre terrain ?
- <usetemplate
- canceltext="Annuler"
- name="yesnocancelbuttons"
- notext="Expulser et bannir"
- yestext="Expulser"/>
- </notification>
-
- <notification
-
- name="EjectAvatarNoBan"
- >
-Expulser cet avatar de votre terrain ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="Expulser"/>
- </notification>
-
- <notification
-
- name="EjectAvatarFullnameNoBan"
- >
-Expulser [AVATAR_NAME] de votre terrain ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="Expulser"/>
- </notification>
-
- <notification
-
- name="AcquireErrorTooManyObjects"
- >
-Erreur d&apos;acquisition : trop d&apos;objets sélectionnés.
- </notification>
-
- <notification
-
- name="AcquireErrorObjectSpan"
- >
-Erreur d&apos;acquisition : les objets sont répartis dans plus d&apos;une région.
-Veuillez mettre tous les objets que vous souhaitez acquérir dans la même région.
- </notification>
-
- <notification
-
- name="PromptGoToCurrencyPage"
- >
-[EXTRA]
-
-Aller sur [URL] pour obtenir des informations sur l&apos;achat de devises ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="UnableToLinkObjects"
- >
-Impossible de lier ces [COUNT] objets.
-Vous pouvez lier un maximum de [MAX] objets.
- </notification>
-
- <notification
-
- name="CannotLinkIncompleteSet"
- >
-Vous ne pouvez lier que des ensembles d&apos;objets complets et vous devez choisir un minimum de deux objets.
- </notification>
-
- <notification
-
- name="CannotLinkModify"
- >
-Impossible de lier car vous n&apos;avez pas la permission de modifier tous les objets.
-
-Assurez-vous que vous êtes le propriétaire de tous les objets et qu&apos;aucun d&apos;eux n&apos;est verrouillé.
- </notification>
-
- <notification
-
- name="CannotLinkDifferentOwners"
- >
-Impossible de lier car les objets n&apos;ont pas tous le même propriétaire.
-
-Assurez-vous que vous êtes le propriétaire de tous les objets sélectionnés.
- </notification>
-
- <notification
-
- name="NoFileExtension"
- >
-Pas d&apos;extension pour le fichier suivant : &apos;[FILE]&apos;
-
-Assurez-vous que le fichier a l&apos;extension correcte.
- </notification>
-
- <notification
-
- name="InvalidFileExtension"
- >
-Extension de fichier [EXTENSION] invalide
-[VALIDS] attendu
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CannotUploadSoundFile"
- >
-Impossible de lire le fichier son chargé :
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileNotRIFF"
- >
-Il semble que le fichier ne soit pas un fichier RIFF WAVE :
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileNotPCM"
- >
-Il semble que le fichier ne soit pas un fichier audio PCM WAVE :
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidChannelCount"
- >
-Le fichier contient un nombre de canaux invalide (doit être mono ou stéréo) :
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidSampleRate"
- >
-Le fichier ne semble pas être pris en charge (doit être 44,1 k) :
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidWordSize"
- >
-Le fichier ne semble pas être pris en charge (doit faire 8 ou 16 bit) :
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidHeader"
- >
-Impossible de trouver les données dans l&apos;en-tête WAV :
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidTooLong"
- >
-Le fichier audio est trop long (10 secondes maximum) :
-[FILE]
- </notification>
-
- <notification
-
- name="ProblemWithFile"
- >
-Problème avec le fichier [FILE] :
-
-[ERROR]
- </notification>
-
- <notification
-
- name="CannotOpenTemporarySoundFile"
- >
-Impossible d&apos;ouvrir le fichier son compressé temporaire : [FILE]
- </notification>
-
- <notification
-
- name="UnknownVorbisEncodeFailure"
- >
-Échec d&apos;encodage Vorbis inconnu sur : [FILE]
- </notification>
-
- <notification
-
- name="CorruptResourceFile"
- >
-Fichier ressource corrompu : [FILE]
- </notification>
-
- <notification
-
- name="UnknownResourceFileVersion"
- >
-Version de fichier ressource Linden inconnu : [FILE]
- </notification>
-
- <notification
-
- name="UnableToCreateOutputFile"
- >
-Impossible de créer le fichier de sortie : [FILE]
- </notification>
-
- <notification
-
- name="DoNotSupportBulkAnimationUpload"
- >
-Actuellement, nous ne prenons pas en charge le chargement de lots de fichiers d&apos;animation.
- </notification>
-
- <notification
-
- name="CannotUploadReason"
- >
-Impossible de charger [FILE] suite au problème suivant : [REASON]
-Veuillez réessayer ultérieurement.
- </notification>
-
- <notification
-
- name="CannotCreateLandmarkNotOwner"
- >
-Vous ne pouvez pas créer de repère ici car le propriétaire du terrain ne l&apos;autorise pas.
- </notification>
-
- <notification
-
- name="CannotRecompileSelectObjectsNoScripts"
- >
-Impossible d&apos;effectuer les recompilations.
-Sélectionnez un objet avec un script.
- </notification>
-
- <notification
-
- name="CannotRecompileSelectObjectsNoPermission"
- >
-Impossible d&apos;effectuer les recompilations.
-
-Sélectionnez des objets qui ont des scripts et que vous pouvez modifier.
- </notification>
-
- <notification
-
- name="CannotResetSelectObjectsNoScripts"
- >
-Impossible d&apos;effectuer la réinitialisation.
-
-Veuillez sélectionner des objets avec des scripts.
- </notification>
-
- <notification
-
- name="CannotResetSelectObjectsNoPermission"
- >
-Impossible d&apos;effectuer la réinitialisation.
-
-Sélectionnez des objets qui ont des scripts et que vous pouvez modifier.
- </notification>
-
- <notification
-
- name="CannotSetRunningSelectObjectsNoScripts"
- >
-Impossible de définir les scripts sur « exécution ».
-
-Veuillez sélectionner des objets avec des scripts.
- </notification>
-
- <notification
-
- name="CannotSetRunningNotSelectObjectsNoScripts"
- >
-Impossible de définir les scripts sur « non-exécution ».
-
-Veuillez sélectionner des objets avec des scripts.
- </notification>
-
- <notification
-
- name="NoFrontmostFloater"
- >
-Aucun floater frontmost à sauvegarder.
- </notification>
-
- <notification
-
- name="SeachFilteredOnShortWords"
- >
-Votre requête a été modifiée et les mots trops courts ont été supprimés.
-
-Recherche effectuée : [FINALQUERY]
- </notification>
-
- <notification
-
- name="SeachFilteredOnShortWordsEmpty"
- >
-Vos termes de recherche étaient trop courts et aucune recherche n&apos;a été effectuée.
- </notification>
-
- <notification
-
- name="CouldNotTeleportReason"
- >
-Impossible de téléporter.
-[REASON]
- </notification>
-
- <notification
-
- name="CannotSetLandOwnerNothingSelected"
- >
-Impossible de définir le propriétaire foncier :
-aucune parcelle sélectionnée.
- </notification>
-
- <notification
-
- name="CannotSetLandOwnerMultipleRegions"
- >
-Impossible de définir un propriétaire car la sélection couvre plusieurs régions. Veuillez sélectionner une zone plus petite et réessayer.
- </notification>
-
- <notification
-
- name="ForceOwnerAuctionWarning"
- >
-Cette parcelle est mise aux enchères. Définir un propriétaire annulerait les enchères, ce qui pourrait être gênant pour certains résidents si ces dernières ont commencé. Souhaitez-vous définir un propriétaire ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CannotContentifyNothingSelected"
- >
-Problème :
-Aucune parcelle sélectionnée.
- </notification>
-
- <notification
-
- name="CannotContentifyNoRegion"
- >
-Problème :
-Aucune région sélectionnée.
- </notification>
-
- <notification
-
- name="CannotReleaseLandNothingSelected"
- >
-Impossible d&apos;abandonner le terrain :
-aucune parcelle sélectionnée.
- </notification>
-
- <notification
-
- name="CannotReleaseLandNoRegion"
- >
-Impossible d&apos;abandonner le terrain :
-la région est introuvable.
- </notification>
-
- <notification
-
- name="CannotBuyLandNothingSelected"
- >
-Impossible d&apos;acheter le terrain :
-aucune parcelle sélectionnée.
- </notification>
-
- <notification
-
- name="CannotBuyLandNoRegion"
- >
-Impossible d&apos;acheter le terrain :
-la région dans laquelle il est situé est introuvable.
- </notification>
-
- <notification
-
- name="CannotCloseFloaterBuyLand"
- >
-Vous ne pouvez pas fermer la fenêtre Acheter le terrain avant que Second Life n&apos;estime le montant de cette transaction.
- </notification>
-
- <notification
-
- name="CannotDeedLandNothingSelected"
- >
-Cession du terrain impossible :
-aucune parcelle sélectionnée.
- </notification>
-
- <notification
-
- name="CannotDeedLandNoGroup"
- >
-Cession du terrain impossible :
-aucun groupe sélectionné.
- </notification>
-
- <notification
-
- name="CannotDeedLandNoRegion"
- >
-Cession du terrain impossible :
-la région dans laquelle il est situé est introuvable.
-Veuillez utiliser Aide &gt; Signaler des bugs pour signaler le problème.
- </notification>
-
- <notification
-
- name="CannotDeedLandMultipleSelected"
- >
-Cession du terrain impossible :
-plusieurs parcelles sélectionnées.
-
-Essayez de ne sélectionner qu&apos;une seule parcelle.
- </notification>
-
- <notification
-
- name="ParcelCanPlayMedia"
- >
-Cette parcelle propose des flux de média.
-Pour jouer des flux de média, il faut avoir une connexion internet rapide.
-
-Jouer les flux de média lorsqu&apos;ils sont disponibles ?
-(Vous pourrez modifier cette option ultérieurement sous Préférences &gt; Audio et Vidéo.)
- <usetemplate
- name="okcancelbuttons"
- notext="Désactiver"
- yestext="Jouer le média"/>
- </notification>
-
- <notification
-
- name="CannotDeedLandWaitingForServer"
- >
-Cession du terrain impossible :
-rapport de propriété sur le point d&apos;être envoyé par le serveur.
-
-Merci de réessayer.
- </notification>
-
- <notification
-
- name="CannotDeedLandNoTransfer"
- >
-Cession du terrain impossible :
-la cession de terrain est interdite dans la région [REGION].
- </notification>
-
- <notification
-
- name="CannotReleaseLandWatingForServer"
- >
-Impossible d&apos;abandonner le terrain :
-mise à jour des informations sur la parcelle sur le point d&apos;être envoyée par le serveur.
-
-Veuillez réessayer dans quelques secondes.
- </notification>
-
- <notification
-
- name="CannotReleaseLandSelected"
- >
-Impossible d&apos;abandonner le terrain :
-vous n&apos;êtes pas le propriétaire des parcelles sélectionnées.
-
-Veuillez sélectionner une seule parcelle.
- </notification>
-
- <notification
-
- name="CannotReleaseLandDontOwn"
- >
-Impossible d&apos;abandonner le terrain :
-vous n&apos;avez pas la permission de libérer cette parcelle.
-Les parcelles qui vous appartiennent sont en vert.
- </notification>
-
- <notification
-
- name="CannotReleaseLandRegionNotFound"
- >
-Impossible d&apos;abandonner le terrain :
-la région dans laquelle il est situé est introuvable.
-
-Veuillez utiliser Aide &gt; Signaler un bug pour signaler le problème.
- </notification>
-
- <notification
-
- name="CannotReleaseLandNoTransfer"
- >
-Impossible d&apos;abandonner le terrain :
-le transfert de terrain est interdit dans la région [REGION].
- </notification>
-
- <notification
-
- name="CannotReleaseLandPartialSelection"
- >
-Impossible d&apos;abandonner le terrain :
-vous devez sélectionner une parcelle entière pour la libérer.
-
-Sélectionnez toute la parcelle ou divisez-la d&apos;abord.
- </notification>
-
- <notification
-
- name="ReleaseLandWarning"
- >
-Vous vous apprêtez à libérer [AREA] m² de terrain.
-Si vous libérez cette parcelle, elle sera supprimée de votre patrimoine, mais vous ne recevrez pas de L$.
-
-Libérer ce terrain ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CannotDivideLandNothingSelected"
- >
-Division du terrain impossible :
-
-aucune parcelle sélectionnée.
- </notification>
-
- <notification
-
- name="CannotDivideLandPartialSelection"
- >
-Division du terrain impossible :
-
-Toute la parcelle est sélectionnée.
-Sélectionnez une partie de la parcelle uniquement.
- </notification>
-
- <notification
-
- name="LandDivideWarning"
- >
-Si vous divisez ce terrain, cette parcelle sera partagée en deux et chaque parcelle pourra avoir ses propres paramètres. Après cette opération, certains paramètres reviendront aux paramètres par défaut.
-
-Diviser le terrain ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CannotDivideLandNoRegion"
- >
-Division du terrain impossible :
-la région dans laquelle il est situé est introuvable.
-
-Veuillez utiliser Aide &gt; Signaler un bug pour signaler le problème.
- </notification>
-
- <notification
-
- name="CannotJoinLandNoRegion"
- >
-Impossible de fusionner le terrain :
-la région dans laquelle il est situé est introuvable.
-
-Veuillez utiliser Aide &gt; Signaler un bug pour signaler le problème.
- </notification>
-
- <notification
-
- name="CannotJoinLandNothingSelected"
- >
-Impossible de fusionner le terrain :
-aucune parcelle sélectionnée.
- </notification>
-
- <notification
-
- name="CannotJoinLandEntireParcelSelected"
- >
-Impossible de fusionner le terrain :
-vous avez sélectionné une seule parcelle.
-
-Sélectionnez le terrain sur les deux parcelles.
- </notification>
-
- <notification
-
- name="CannotJoinLandSelection"
- >
-Impossible de fusionner le terrain :
-vous devez sélectionner au moins deux parcelles.
-
-Sélectionnez le terrain sur les deux parcelles.
- </notification>
-
- <notification
-
- name="JoinLandWarning"
- >
-En fusionnant ce terrain, vous créerez une grande parcelle composée de toutes les parcelles se trouvant dans le rectangle sélectionné.
-Vous devrez réinitialiser le nom et les options de la nouvelle parcelle.
-
-Fusionner le terrain ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmNotecardSave"
- >
-Cette note doit être sauvegardée avant que l&apos;objet ne puisse être copié ou visualisé. Enregistrer la note ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmItemCopy"
- >
-Copier cet objet dans votre inventaire ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="Copier"/>
- </notification>
-
- <notification
-
- name="ResolutionSwitchFail"
- >
-Échec du changement de résolution (à [RESX], de [RESY])
- </notification>
-
- <notification
-
- name="ErrorUndefinedGrasses"
- >
-Erreur : herbes non identifiées : [SPECIES]
- </notification>
-
- <notification
-
- name="ErrorUndefinedTrees"
- >
-Erreur : arbres non identifiés : [SPECIES]
- </notification>
-
- <notification
-
- name="CannotSaveWearableOutOfSpace"
- >
-Impossible de sauvegarder [NAME]. Pour pouvoir sauvegarder ce fichier, vous devez d&apos;abord libérer de la mémoire sur votre ordinateur.
- </notification>
-
- <notification
-
- name="CannotSaveToAssetStore"
- >
-Impossible de sauvegarder le fichier [NAME] dans la base de données centrale.
-Cette erreur est généralement temporaire. Veuillez éditer et sauvegarder l&apos;élément endossable à nouveau d&apos;ici quelques minutes.
-
-Si le problème persiste, veuillez cliquer sur Aide | Signaler un bug dans le menu déroulant en indiquant les détails de votre connexion.
- </notification>
-
- <notification
-
- name="YouHaveBeenLoggedOut"
- >
-Vous avez été déconnecté(e) de [SECOND_LIFE] :
- [MESSAGE]
-Vous pouvez afficher vos messages instantanés et votre chat en cliquant sur Afficher IM et chat. Sinon, cliquez sur Quitter pour quitter immédiatement [SECOND_LIFE].
- <usetemplate
- name="okcancelbuttons"
- notext="Quitter"
- yestext="Afficher IM et chat"/>
- </notification>
-
- <notification
-
- name="OnlyOfficerCanBuyLand"
- >
-Impossible d&apos;acheter du terrain pour le groupe :
-Vous n&apos;avez pas la permission d&apos;acheter de terrain pour votre groupe.
- </notification>
-
- <notification
-
- label="Devenir amis"
- name="AddFriend"
- >
-Vous pouvez suivre les déplacements de vos amis sur la carte et voir lorsqu&apos;ils se connectent.
-
-Proposer à [NAME] de devenir votre ami(e) ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Devenir amis"
- name="AddFriendWithMessage"
- >
-Vous pouvez suivre les déplacements de vos amis sur la carte et voir lorsqu&apos;ils se connectent.
-
-Proposer à [NAME] de devenir votre ami(e) ?
- <form name="form">
- <input name="message" type="text">
-Voulez-vous être mon ami(e) ?
- </input>
- <button
-
-
- name="Offer"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annuler"/>
- </form>
- </notification>
-
- <notification
-
- name="RemoveFromFriends"
- >
-Voulez-vous supprimer [FIRST_NAME] [LAST_NAME] de votre liste d&apos;amis ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="RemoveMultipleFromFriends"
- >
-Voulez-vous supprimer plusieurs résidents de votre liste d&apos;amis ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GodDeleteAllScriptedPublicObjectsByUser"
- >
-Êtes-vous certain de vouloir supprimer tous les objets scriptés appartenant à ** [AVATAR_NAME] ** sur tous les terrains des autres résidents dans cette région ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GodDeleteAllScriptedObjectsByUser"
- >
-Êtes-vous certain de vouloir supprimer tous les objets scriptés appartenant à ** [AVATAR_NAME] ** sur tous les terrains de cette région ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GodDeleteAllObjectsByUser"
- >
-Êtes-vous certain de vouloir supprimer tous les objets (scriptés ou pas) appartenant à ** [AVATAR_NAME] ** sur tous les terrains de cette région ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BlankClassifiedName"
- >
-Vous devez choisir un nom pour votre petite annonce.
- </notification>
-
- <notification
-
- name="MinClassifiedPrice"
- >
-Le coût de l&apos;annonce doit être de [MIN_PRICE] L$ minimum.
-
-Veuillez saisir un montant plus élevé.
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLock"
- >
-Au moins un des objets que vous avez sélectionnés est verrouillé.
-
-Êtes-vous certain de vouloir supprimer ces objets ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteNoCopy"
- >
-Au moins un des objets que vous avez sélectionnés n&apos;est pas reproductible.
-
-Êtes-vous certain de vouloir supprimer ces objets ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteNoOwn"
- >
-Au moins un des objets que vous avez sélectionnés ne vous appartient pas.
-
-Êtes-vous certain de vouloir supprimer ces objets ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLockNoCopy"
- >
-Au moins un des objets est verrouillé.
-Au moins un des objets n&apos;est pas reproductible.
-
-Êtes-vous certain de vouloir supprimer ces objets ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLockNoOwn"
- >
-Au moins un des objets est verrouillé.
-Au moins un des objets ne vous appartient pas.
-
-Êtes-vous certain de vouloir supprimer ces objets ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteNoCopyNoOwn"
- >
-Au moins un des objets n&apos;est pas reproductible.
-Au moins un des objets ne vous appartient pas.
-
-Êtes-vous certain de vouloir supprimer ces objets ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLockNoCopyNoOwn"
- >
-Au moins un des objets est verrouillé.
-Au moins un des objets n&apos;est pas reproductible.
-Au moins un des objets ne vous appartient pas.
-
-Êtes-vous certain de vouloir supprimer ces objets ?
- <usetemplate
- name="okcancelbuttons"
- notext="annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectTakeLock"
- >
-Au moins un des objets est verrouillé.
-
-Êtes-vous certain de vouloir prendre ces objets ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectTakeNoOwn"
- >
-Vous n&apos;êtes pas le propriétaire de tous les objets que vous prenez.
-Si vous continuez, les permissions accordées au prochain propriétaire entreront en vigueur et vous risquez de ne plus pouvoir modifier ou copier les objets.
-
-Êtes-vous certain de vouloir prendre ces objets ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectTakeLockNoOwn"
- >
-Au moins un des objets est verrouillé.
-Vous n&apos;êtes pas le propriétaire de tous les objets que vous prenez.
-Si vous continuez, les permissions accordées au prochain propriétaire entreront en vigueur et vous risquez de ne plus pouvoir modifier ou copier les objets.
-Par contre, vous pouvez prendre les objets sélectionnés.
-
-Êtes-vous certain de vouloir prendre ces objets ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CantBuyLandAcrossMultipleRegions"
- >
-Impossible d&apos;acheter le terrain car la sélection couvre plusieurs régions.
-
-Veuillez sélectionner une zone plus petite et réessayer.
- </notification>
-
- <notification
-
- name="DeedLandToGroup"
- >
-Si vous cédez ce terrain, le groupe devra avoir les moyens de le prendre en charge.
-Le prix de la vente du terrain n&apos;est pas remboursé par le propriétaire. Si la parcelle que vous cédez se vend, le prix de la vente sera divisé en parts égales parmi les membres du groupe.
-
-Céder ces [AREA] m² de terrain au groupe [GROUP_NAME] ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="DeedLandToGroupWithContribution"
- >
-Si vous cédez ce terrain, le groupe devra avoir les moyens de le prendre en charge.
-La cession incluera une contribution de terrain simultanée au groupe de [FIRST_NAME] [LAST_NAME].
-Le prix de la vente du terrain n&apos;est pas remboursé par le propriétaire. Si la parcelle que vous cédez se vend, le prix de la vente sera divisé en parts égales parmi les membres du groupe.
-
-Céder ces [AREA] m² de terrain au groupe [GROUP_NAME] ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="DisplaySetToSafe"
- >
-Les paramètres d&apos;affichage sont au niveau le plus sûr, comme vous l&apos;aviez indiqué.
- </notification>
-
- <notification
-
- name="DisplaySetToRecommended"
- >
-Vos paramètres d&apos;affichage ont été réglés avec une marge de sécurité en fonction de votre configuration système.
- </notification>
-
- <notification
-
- name="ErrorMessage"
- >
-[ERROR_MESSAGE]
- </notification>
-
- <notification
-
- name="AvatarMoved"
- >
-L&apos;emplacement [TYPE] n&apos;est pas disponible actuellement. [HELP]
-Vous avez été déplacé dans une région voisine.
- </notification>
-
- <notification
-
- name="ClothingLoading"
- >
-Vos habits sont toujours en train d&apos;être téléchargés.
-Vous pouvez utiliser [SECOND_LIFE] sans problème, les autres résidents vous voient normalement.
- <form name="form">
- <ignore name="ignore"
- text="Lorsque les habits prennent longtemps à télécharger"/>
- </form>
- </notification>
-
- <notification
-
- name="FirstRun"
- >
-L&apos;installation de [SECOND_LIFE] est terminée.
-
-S&apos;il s&apos;agit de la première fois que vous utilisez [SECOND_LIFE], vous devrez créer un compte avant de pouvoir vous connecter.
-Retourner sur www.secondlife.com pour créer un nouveau compte ?
- <usetemplate
- name="okcancelbuttons"
- notext="Continuer"
- yestext="Nouveau compte..."/>
- </notification>
-
- <notification
-
- name="LoginPacketNeverReceived"
- >
-Vous avez des problèmes à vous connecter. Il peut s&apos;agir d&apos;un problème avec votre connexion internet ou les serveurs de Second Life.
-
-Nous vous conseillons de vérifier votre connexion Internet et de réessayer dans quelques minutes, de cliquer sur Aide, ou bien de cliquer sur Téléporter pour être téléporté vers votre domicile.
- <form name="form">
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Help"
- text="Aide"/>
- <button
-
- name="Teleport"
- text="Téléporter"/>
- </form>
- </notification>
-
- <notification
-
- name="WelcomeChooseSex"
- >
-Votre personnage va apparaître dans un moment.
-
-Pour marcher, utilisez les flèches de direction.
-Appuyez sur F1 pour obtenir de l&apos;aide ou en savoir plus sur [SECOND_LIFE].
-Choisissez un avatar homme ou femme.
-Vous pourrez revenir sur votre décision plus tard.
- <usetemplate
- name="okcancelbuttons"
- notext="Femme"
- yestext="Homme"/>
- </notification>
-
- <notification
-
- name="NotEnoughCurrency"
- >
-[NAME] [PRICE] L$ Vous n&apos;avez pas suffisamment de L$ pour faire cela.
- </notification>
-
- <notification
-
- name="GrantedModifyRights"
- >
-Vous avez reçu la permission de modifier les objets de [FIRST_NAME] [LAST_NAME].
- </notification>
-
- <notification
-
- name="RevokedModifyRights"
- >
-Vous n&apos;avez plus la permission de modifier les objets de [FIRST_NAME] [LAST_NAME].
- </notification>
-
- <notification
-
- name="FlushMapVisibilityCaches"
- >
-Cela videra le cache cartographique de cette région.
-Cela n&apos;est vraiment utile que pour faire du débugage.
-(En production, attendez 5 minutes. Les cartes seront mises à jour après reconnexion.)
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="OnlyCopyContentsOfSingleItem"
- >
-Impossible de copier les contenus de plus d&apos;un objet à la fois.
-Veuillez ne sélectionner qu&apos;un seul objet.
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="KickUsersFromRegion"
- >
-Téléporter tous les résidents de cette région chez eux ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="EstateObjectReturn"
- >
-Etes-vous certain de vouloir renvoyer les objets appartenant à [USER_NAME] ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="InvalidTerrainBitDepth"
- >
-Impossible de definir les textures de la région :
-La texture du terrain [TEXTURE_NUM] a une profondeur invalide ([TEXTURE_BIT_DEPTH]).
-
-Remplacer la texture [TEXTURE_NUM] avec une image de 24 bits, 512 X 512, ou plus petite, puis cliquez à nouveau sur Appliquer.
- </notification>
-
- <notification
-
- name="InvalidTerrainSize"
- >
-Impossible de definir les textures de la région :
-La texture du terrain [TEXTURE_NUM] est trop volumineuse ([TEXTURE_SIZE_X] X [TEXTURE_SIZE_Y]).
-
-Remplacer la texture [TEXTURE_NUM] avec une image de 24 bits, 512 X 512, ou plus petite, puis cliquez à nouveau sur Appliquer.
- </notification>
-
- <notification
-
- name="RawUploadStarted"
- >
-Le chargement a commencé. Cela va prendre une à deux minutes,
-suivant votre vitesse de connexion.
- </notification>
-
- <notification
-
- name="ConfirmBakeTerrain"
- >
-Etes-vous sûr(e) de vouloir figer le relief actuel, en faire le point central des limites d&apos;élévation/abaissement de relief et la valeur par défaut du bouton Annuler modification ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="MaxAllowedAgentOnRegion"
- >
-Vous ne pouvez pas autoriser plus de [MAX_AGENTS] résidents.
- </notification>
-
- <notification
-
- name="MaxBannedAgentsOnRegion"
- >
-Vous ne pouvez pas bannir plus de [MAX_BANNED] résidents.
- </notification>
-
- <notification
-
- name="MaxAgentOnRegionBatch"
- >
-Echec lors de la tentative d&apos;ajout de [NUM_ADDED] agents :
-Dépasse la limite fixée à [MAX_AGENTS] [LIST_TYPE] de [NUM_EXCESS].
- </notification>
-
- <notification
-
- name="MaxAllowedGroupsOnRegion"
- >
-Vous ne pouvez pas avoir plus que [MAX_GROUPS] groupes autorisés.
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="Figer"/>
- </notification>
-
- <notification
-
- name="MaxManagersOnRegion"
- >
-Vous ne pouvez avoir que [MAX_MANAGER] gérants de domaine.
- </notification>
-
- <notification
-
- name="OwnerCanNotBeDenied"
- >
-Impossible d&apos;ajouter le propriétaire du domaine à la liste des résidents bannis.
- </notification>
-
- <notification
-
- name="CanNotChangeAppearanceUntilLoaded"
- >
-Impossible de changer d&apos;apparence jusqu&apos;à ce que les habits et la silhouette soient chargés.
- </notification>
-
- <notification
-
- name="ClassifiedMustBeAlphanumeric"
- >
-Le nom de votre petite annonce doit commencer par un chiffre ou une lettre (A à Z). La ponctuation n&apos;est pas autorisée.
- </notification>
-
- <notification
-
- name="CantSetBuyObject"
- >
-Cet objet n&apos;est pas à vendre.
-Veuillez choisir un objet à vendre et réessayer.
- </notification>
-
- <notification
-
- name="FinishedRawDownload"
- >
-Chargement du fichier de terrain raw effectué vers :
-[DOWNLOAD_PATH].
- </notification>
-
- <notification
-
- name="DownloadWindowsMandatory"
- >
-Une nouvelle version de [SECOND_LIFE] est disponible.
-[MESSAGE]
-Pour utiliser [SECOND_LIFE] vous devez télécharger cette mise à jour.
- <usetemplate
- name="okcancelbuttons"
- notext="Quitter"
- yestext="Télécharger"/>
- </notification>
-
- <notification
-
- name="DownloadWindows"
- >
-Une mise à jour de [SECOND_LIFE] est disponible.
-[MESSAGE]
-Cette mise à jour n&apos;est pas requise mais si vous voulez une meilleure performance et plus de stabilité, nous vous recommandons de l&apos;installer.
- <usetemplate
- name="okcancelbuttons"
- notext="Continuer"
- yestext="Télécharger"/>
- </notification>
-
- <notification
-
- name="DownloadWindowsReleaseForDownload"
- >
-Une mise à jour de [SECOND_LIFE] est disponible.
-[MESSAGE]
-Cette mise à jour n&apos;est pas requise mais si vous voulez une meilleure performance et plus de stabilité, nous vous recommandons de l&apos;installer.
- <usetemplate
- name="okcancelbuttons"
- notext="Continuer"
- yestext="Télécharger"/>
- </notification>
-
- <notification
-
- name="DownloadMacMandatory"
- >
-Une nouvelle version de [SECOND_LIFE] est disponible.
-[MESSAGE]
-Pour utiliser [SECOND_LIFE] vous devez télécharger cette mise à jour.
-
-Télécharger vers le dossier Applications ?
- <usetemplate
- name="okcancelbuttons"
- notext="Quitter"
- yestext="Télécharger"/>
- </notification>
-
- <notification
-
- name="DownloadMac"
- >
-Une mise à jour de [SECOND_LIFE] est disponible.
-[MESSAGE]
-Cette mise à jour n&apos;est pas requise mais si vous voulez une meilleure performance et plus de stabilité, nous vous recommandons de l&apos;installer.
-
-Télécharger vers le dossier Applications ?
- <usetemplate
- name="okcancelbuttons"
- notext="Continuer"
- yestext="Télécharger"/>
- </notification>
-
- <notification
-
- name="DownloadMacReleaseForDownload"
- >
-Une mise à jour de [SECOND_LIFE] est disponible.
-[MESSAGE]
-Cette mise à jour n&apos;est pas requise mais si vous voulez une meilleure performance et plus de stabilité, nous vous recommandons de l&apos;installer.
-
-Télécharger vers le dossier Applications ?
- <usetemplate
- name="okcancelbuttons"
- notext="Continuer"
- yestext="Télécharger"/>
- </notification>
-
- <notification
-
- name="DeedObjectToGroup"
- >
-Si vous cédez cet objet, le groupe :
-* recevra les L$ versés pour l&apos;objet ;
- <usetemplate
- ignoretext="Lors de la cession d&apos;objets au groupe"
- name="okcancelignore"
- notext="Annuler"
- yestext="Céder"/>
- </notification>
-
- <notification
-
- name="WebLaunchExternalTarget"
- >
-Ouvrir votre navigateur web système pour afficher ce contenu ?
- <usetemplate
- ignoretext="Lors de l&apos;ouverture de votre navigateur système pour afficher une page web"
- name="okcancelignore"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchJoinNow"
- >
-Aller sur www.secondlife.com pour gérer votre compte ?
- <usetemplate
- ignoretext="Lors de l&apos;ouverture du navigateur web pour gérer votre compte"
- name="okcancelignore"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchBugReport101"
- >
-Pour apprendre à signaler correctement des bugs, consultez le Wiki de [SECOND_LIFE].
- <usetemplate
- ignoretext="Lors de l&apos;ouverture du navigateur web pour consulter le Wiki et apprendre à signaler des bugs"
- name="okcancelignore"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchSecurityIssues"
- >
-Pour apprendre à signaler un problème de sécurité, consultez le Wiki de [SECOND_LIFE].
- <usetemplate
- ignoretext="Lors de l&apos;ouverture du navigateur web pour consulter la page Wiki sur les problèmes de sécurité."
- name="okcancelignore"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchQAWiki"
- >
-Consultez le Wiki sur l&apos;Assurance Qualité de [SECOND_LIFE].
- <usetemplate
- ignoretext="Lors de l&apos;ouverture du navigateur web pour consulter la page Wiki sur l&apos;Assurance Qualité."
- name="okcancelignore"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchPublicIssue"
- >
-Pour signaler des bugs et autres problèmes, utilisez le JIRA de [SECOND_LIFE].
- <usetemplate
- ignoretext="Lors de l&apos;ouverture du navigateur web pour consulter le JIRA"
- name="okcancelignore"
- notext="Annuler"
- yestext="Aller sur cette page"/>
- </notification>
-
- <notification
-
- name="WebLaunchPublicIssueHelp"
- >
-Pour apprendre à utiliser JIRA, consultez le Wiki de [SECOND_LIFE].
- <usetemplate
- ignoretext="Lors de l&apos;ouverture du navigateur web pour consulter la page Wiki sur le JIRA"
- name="okcancelignore"
- notext="Annuler"
- yestext="Aller sur cette page"/>
- </notification>
-
- <notification
-
- name="WebLaunchSupportWiki"
- >
-Visitez le blog officiel des Lindens pour les dernières nouvelles et informations.
- <usetemplate
- ignoretext="Lors de l&apos;ouverture du navigateur web pour consulter le blog"
- name="okcancelignore"
- notext="Annuler"
- yestext="Aller à la page"/>
- </notification>
-
- <notification
-
- name="WebLaunchLSLGuide"
- >
-Consulter le Guide guide pour l&apos;écriture de scripts pour obtenir de l&apos;aide ?
- <usetemplate
- ignoretext="Lors de l&apos;ouverture du navigateur web pour voir le Guide pour l&apos;écriture de scripts"
- name="okcancelignore"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchLSLWiki"
- >
-Consulter le Wiki LSL pour de l&apos;aide sur les scripts ?
- <usetemplate
- ignoretext="Lors de l&apos;ouverture du navigateur web pour consulter le Guide sur l&apos;écriture de scripts"
- name="okcancelignore"
- notext="Annuler"
- yestext="Aller à la page"/>
- </notification>
-
- <notification
-
- name="ReturnToOwner"
- >
-Êtes-vous certain de vouloir renvoyer les objets sélectionnés à leur propriétaire ? Les objets donnés transférables seront renvoyés à leur ancien propriétaire.
-
-*Avertissement* Les objets non transférables seront supprimés !
- <usetemplate
- ignoretext="Lors du renvoi d&apos;objets à leurs propriétaires"
- name="okcancelignore"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GroupLeaveConfirmMember"
- >
-Vous êtes actuellement membre du groupe [GROUP].
-Quitter le groupe ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmKick"
- >
-Souhaitez-vous vraiment éjecter tous les utilisateurs de la grille ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="Éjecter tous"/>
- </notification>
-
- <notification
-
- name="MuteLinden"
- >
-Désolé, vous ne pouvez pas ignorer un Linden.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Échec de la fonction Ignorer les objets par nom"
- name="MuteByNameFailed"
- >
-Vous ignorez déjà ce résident.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="RemoveItemWarn"
- >
-Si vous supprimez des contenus, vous risquez d&apos;endommager l&apos;objet. Souhaitez-vous supprimer cet objet ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CantOfferCallingCard"
- >
-Impossible d&apos;offrir une carte de visite actuellement. Veuillez réessayer dans un moment.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CantOfferFriendship"
- >
-Impossible de proposer votre amitié actuellement. Veuillez réessayer dans un moment.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BusyModeSet"
- >
-Mode occupé activé.
-Les chats et les messages instantanés ne s&apos;afficheront pas. Les messages instantanés génèreront la réponse en mode occupé que vous avez créée. Toutes les offres de téléportation seront refusées. Toutes les offres d&apos;inventaire iront dans la corbeille.
- <usetemplate
- ignoretext="Lors de l&apos;utilisation du mode Occupé"
- name="okignore"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="JoinedTooManyGroupsMember"
- >
-Vous appartenez déjà à un nombre élevé de groupes et nous ne pouvez pas en rejoindre un nouveau. Avant de pouvoir rejoindre ce groupe, vous devez en quitter un ou refuser cette offre.
-Pour quitter un groupe, sélectionnez l&apos;option Groupe dans le menu Éditer.
-[NAME] vous invite à rejoindre un groupe.
-[INVITE]
- <usetemplate
- name="okcancelbuttons"
- notext="Refuser"
- yestext="Rejoindre"/>
- </notification>
-
- <notification
-
- name="KickUser"
- >
-Éjecter cet utilisateur avec quel message ?
- <form name="form">
- <input name="message" type="text">
-Un administrateur vous a déconnecté.
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annuler"/>
- </form>
- </notification>
-
- <notification
-
- name="KickAllUsers"
- >
-Éjecter tous les résidents actuellement en ligne avec quel message ?
- <form name="form">
- <input name="message" type="text">
-Un administrateur vous a déconnecté.
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annuler"/>
- </form>
- </notification>
-
- <notification
-
- name="FreezeUser"
- >
-Geler cet utilisateur avec quel message ?
- <form name="form">
- <input name="message" type="text">
-Vous avez été gelé. Vous ne pouvez ni bouger ni chatter. Un administrateur va vous envoyer un message instantané (IM).
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annuler"/>
- </form>
- </notification>
-
- <notification
-
- name="UnFreezeUser"
- >
-Dégeler cet utilisateur avec quel message ?
- <form name="form">
- <input name="message" type="text">
-Vous n&apos;êtes plus gelé.
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annuler"/>
- </form>
- </notification>
-
- <notification
-
- name="OfferTeleport"
- >
-Proposez une téléportation avec le message suivant ?
- <form name="form">
- <input name="message" type="text">
-On se rejoint à [REGION] ?
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annuler"/>
- </form>
- </notification>
-
- <notification
-
- name="OfferTeleportFromGod"
- >
-Demander au résident de venir vous rejoindre ?
- <form name="form">
- <input name="message" type="text">
-On se rejoint à [REGION] ?
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annuler"/>
- </form>
- </notification>
-
- <notification
-
- name="TeleportFromLandmark"
- >
-Êtes-vous certain de vouloir être téléporté ?
- <usetemplate
- ignoretext="Lors de la téléportation depuis un repère de l&apos;inventaire"
- name="okcancelignore"
- notext="Annuler"
- yestext="Téléporter"/>
- </notification>
-
- <notification
-
- label="Envoyer un message à tout le monde dans votre domaine"
- name="MessageEstate"
- >
-Saisissez un message court qui sera envoyé à tous les résidents se trouvant actuellement sur votre domaine.
- <form name="form">
- <input name="message" type="text"/>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annuler"/>
- </form>
- </notification>
-
- <notification
-
- label="Modifier un domaine Linden"
- name="ChangeLindenEstate"
- >
-Vous vous apprêtez à modifier un domaine appartenant aux Lindens (continent, zone réservée aux ados, orientation etc.).
-
-Cela est extrêmement délicat car l&apos;expérience des résidents est en jeu. Sur le continent, cela modifiera des milliers de régions et sera difficile à digérer pour le serveur.
-
-Continuer ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Modifier l&apos;accès à un domaine Linden"
- name="ChangeLindenAccess"
- >
-Vous vous apprêtez à modifier la liste d&apos;accès à un domaine appartenant aux Linden (continent, zone réservée aux ados, orientation etc.).
-
-Cette action est délicate et ne doit être effectuée que pour appeler le hack autorisant des objets/L$ à être transférés à l&apos;intérieur/extérieur de la grille.
-Cette action modifiera des milliers de régions et sera difficile à digérer pour le serveur.
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Choisir le domaine"
- name="EstateAllowedAgentAdd"
- >
-Ajouter à la liste des résidents autorisés uniquement pour ce domaine ou pour [ALL_ESTATES] ?
- <usetemplate
- canceltext="Annuler"
- name="yesnocancelbuttons"
- notext="Tous les domaines"
- yestext="Ce domaine"/>
- </notification>
-
- <notification
-
- label="Choisir le domaine"
- name="EstateAllowedAgentRemove"
- >
-Supprimer de la liste des résidents autorisés uniquement pour ce domaine ou pour [ALL_ESTATES] ?
- <usetemplate
- canceltext="Annuler"
- name="yesnocancelbuttons"
- notext="Tous les domaines"
- yestext="Ce domaine"/>
- </notification>
-
- <notification
-
- label="Choisir le domaine"
- name="EstateAllowedGroupAdd"
- >
-Ajouter à la liste des groupes autorisés uniquement pour ce domaine ou pour [ALL_ESTATES] ?
- <usetemplate
- canceltext="Annuler"
- name="yesnocancelbuttons"
- notext="Tous les domaines"
- yestext="Ce domaine"/>
- </notification>
-
- <notification
-
- label="Choisir le domaine"
- name="EstateAllowedGroupRemove"
- >
-Supprimer de la liste des groupes autorisés uniquement pour ce domaine ou pour [ALL_ESTATES] ?
- <usetemplate
- canceltext="Annuler"
- name="yesnocancelbuttons"
- notext="Tous les domaines"
- yestext="Ce domaine"/>
- </notification>
-
- <notification
-
- label="Choisir le domaine"
- name="EstateBannedAgentAdd"
- >
-Refuser l&apos;accès à ce domaine uniquement ou à [ALL_ESTATES] ?
- <usetemplate
- canceltext="Annuler"
- name="yesnocancelbuttons"
- notext="Tous les domaines"
- yestext="Ce domaine"/>
- </notification>
-
- <notification
-
- label="Choisir le domaine"
- name="EstateBannedAgentRemove"
- >
-Supprimer ce résident de la liste des résidents bannis pour ce domaine uniquement ou pour [ALL_ESTATES] ?
- <usetemplate
- canceltext="Annuler"
- name="yesnocancelbuttons"
- notext="Tous les domaines"
- yestext="Ce domaine"/>
- </notification>
-
- <notification
-
- label="Choisir le domaine"
- name="EstateManagerAdd"
- >
-Ajouter un gérant de domaine pour ce domaine uniquement ou pour [ALL_ESTATES] ?
- <usetemplate
- canceltext="Annuler"
- name="yesnocancelbuttons"
- notext="Tous les domaines"
- yestext="Ce domaine"/>
- </notification>
-
- <notification
-
- label="Choisir le domaine"
- name="EstateManagerRemove"
- >
-Supprimer le gérant de domaine pour ce domaine uniquement ou pour [ALL_ESTATES] ?
- <usetemplate
- canceltext="Annuler"
- name="yesnocancelbuttons"
- notext="Tous les domaines"
- yestext="Ce domaine"/>
- </notification>
-
- <notification
-
- label="Confirmer"
- name="EstateKickUser"
- >
-Éjecter [EVIL_USER] de ce domaine ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="EstateChangeCovenant"
- >
-Êtes-vous certain de vouloir modifier le règlement du domaine ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ProblemImportingEstateCovenant"
- >
-Problème lors de l&apos;importation du règlement du domaine.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <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="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>
-
- <notification
-
- name="UnableToLoadNotecard"
- >
-Impossible de lire les données de la note actuellement.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="NotAllowedToViewNotecard"
- >
-Permissions pour afficher la note insuffisantes.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="MissingNotecardAssetID"
- >
-Les références de la note ne se trouvent pas dans la base de données.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="PublishClassified"
- >
-Rappel : les frais pour passer des petites annonces ne sont pas remboursables.
-
-Publier cette petite annonce maintenant pour [AMOUNT] L$ ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
-
-
- <notification
-
- label="Confirmer le redémarrage"
- name="ConfirmRestart"
- >
-Souhaitez-vous vraiment redémarrer cette région dans 2 minutes ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Envoyer un message à tout le monde dans cette région"
- name="MessageRegion"
- >
-Saisissez une message court qui sera envoyé à tous les résidents se trouvant actuellement dans cette région.
- <form name="form">
- <input name="message" type="text"/>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annuler"/>
- </form>
- </notification>
-
- <notification
-
- label="Bloquer le terraformage"
- name="HelpRegionBlockTerraform"
- >
-Si vous cochez cette case, les propriétaires ne pourront plus terraformer leur terrain, quels que soient leurs paramètres à la section Modifier le terrain.
-
-Défaut : désactivé
- </notification>
-
- <notification
-
- label="Interdire le vol"
- name="HelpRegionBlockFly"
- >
-Si vous cochez cette case, les résidents ne pourront plus voler dans cette région, quels que soient leurs paramètres.
-
-Défaut : désactivé
- </notification>
-
- <notification
-
- label="Autoriser les dégâts"
- name="HelpRegionAllowDamage"
- >
-Si vous cochez cette case, l&apos;alerte santé est désactivée sur toutes les parcelles quels que soient les paramètres individuels de la parcelle. Si la case n&apos;est pas cochée, les propriétaires de parcelles peuvent quand même activer l&apos;alerte santé de manière individuelle sur leurs parcelles.
-
-Défaut : désactivé
- </notification>
-
- <notification
-
- label="Nombre limite d&apos;avatars"
- name="HelpRegionAgentLimit"
- >
-Définit le nombre maximum d&apos;avatars autorisés dans cette région.
-La performance peut varier en fonction du nombre d&apos;avatars présents.
-
-Défaut : 40
- </notification>
-
- <notification
-
- label="Bonus objet"
- name="HelpRegionObjectBonus"
- >
-Le bonus objet est le multiplicateur de prims autorisés sur une parcelle donnée. L&apos;échelle autorisée est comprise entre 1 et 10. Lorsque ce chiffre est de 1, chaque parcelle de 512 m² peut contenir 117 objets. S&apos;il est de 2, chaque parcelle peut contenir 234 objets, ou deux fois plus, et ainsi de suite. Le nombre maximum d&apos;objets autorisés dans une région est de 15 000, quel que soit le bonus objet. Attention : si vous définissez un bonus objet et décidez ensuite de le diminuer, cela peut entraîner la suppression ou le renvoi d&apos;objets.
-
-Défaut : 1.0
- </notification>
-
-
-
- <notification
-
- label="Interdire les bousculades"
- name="HelpRegionRestrictPushObject"
- >
-Cette case permet de restreindre les bousculades dans toute une région.
-Lorsqu&apos;elle est cochée, les résidents ne peuvent être bousculés que par eux-mêmes ou par le propriétaire de la région.
-(Bousculer fait référence à la fonction LSL llPushObjet().)
-
-Défaut : Désactivé
- </notification>
-
- <notification
-
- label="Fusionner/Diviser des parcelles"
- name="HelpParcelChanges"
- >
-Cette case permet de choisir si les parcelles n&apos;appartenant pas au gérant du domaine peuvent ou pas être fusionnées ou divisées.
-Si cette case n&apos;est pas cochée :
- * Seuls les propriétaires ou gérants de domaine peuvent fusionner ou diviser des parcelles.
- * Ils ne peuvent fusionner ou diviser que les parcelles du propriétaire,
- ou celles d&apos;un groupe dans lequel il ont les pouvoirs nécessaires.
-Si cette case est cochée :
- * Tous les propriétaires peuvent fusionner ou diviser leurs parcelles.
- * Pour les parcelles du groupe, les résidents avec les pouvoirs nécessaires
- peuvent fusionner ou diviser les parcelles.
-
-Défaut : Cochée
- </notification>
-
- <notification
-
- label="Ne pas montrer dans les résultats de recherche"
- name="HelpRegionSearch"
- >
-Si vous cochez cette option, les propriétaires ne pourront pas faire apparaître leurs parcelles dans les résultats de recherche.
-Défaut : Désactivé
- </notification>
-
- <notification
-
- label="Maturité de la région modifiée"
- name="RegionMaturityChange"
- >
-Le niveau de maturité de cette région a été mis à jour.
-Ce changement n&apos;apparaîtra pas immédiatement sur la carte.
- </notification>
-
- <notification
-
- label="Revente de terrain"
- name="HelpRegionLandResell"
- >
-Les propriétaires et gérants de domaine peuvent vendre n&apos;importe quel terrain appartenant à un propriétaire de domaine.
-Si cette option n&apos;est pas cochée, les acheteurs ne peuvent pas revendre leur terrain dans cette région.
-Si cette option est cochée, les acheteurs peuvent revendre leur terrain dans cette région.
-
-Défaut : Ne pas autoriser
- </notification>
-
- <notification
-
- label="Désactiver les scripts"
- name="HelpRegionDisableScripts"
- >
-Lorsque la performance d&apos;une sim est faible, cela vient peut-être d&apos;un script. Ouvrez la section Statistiques (Ctrl-Maj-1). Consultez le Simulateur de propriétés physiques FPS.
-S&apos;il est en dessous de 45, ouvrez le panel Heure situé en bas de la barre de statistiques. Si le script Heure indique 25mn ou moins, cliquez sur le bouton Afficher les scripts fréquemment utilisés. Vous verrez le nom et l&apos;emplacement des scripts qui sont peut-être à l&apos;origine du problème.
-
-Si vous cochez la case Désactiver les scripts et que vous appuyez sur Appliquer, tous les scripts de cette région seront temporairement désactivés. Vous devrez peut-être faire cela pour aller dans un endroit où se trouve un script fréquemment utilisé. Une fois arrivé, cherchez à savoir si le script est bien à l&apos;origine du problème. Pour cela, vous devrez peut-être contacter le propriétaire du script ou bien supprimer ou renvoyer l&apos;objet.
-Décochez la case Désactiver le script, puis cliquez sur Appliquer pour réactiver tous les scripts dans la région.
-
-Défaut : désactivé
- </notification>
-
- <notification
-
- label="Désactiver les collisions"
- name="HelpRegionDisableCollisions"
- >
-Lorsque la performance d&apos;une sim est faible, cela vient peut-être des objets physiques.
-Ouvrez la barre de statistiques (Ctrl-Maj-1). Consultez le Simulateur de propriétés physiques FPS. S&apos;il est en dessous de 45, ouvrez le panel Heure situé en bas de la barre de statistiques. Si le script Heure indique 25mn ou moins, cliquez sur le bouton Afficher les objets souvent responsables de collision.
-Vous verrez le nom et l&apos;emplacement des objets physiques qui sont peut-être à l&apos;origine du problème.
-
-Si vous décochez la case Désactiver les collisions et que vous appuyez sur Appliquer, toutes les collisions entre objets seront désactivées. Vous devrez peut-être faire cela pour aller dans un endroit où se trouve un objet souvent responsable de collision. Une fois arrivé, cherchez à savoir si l&apos;objet est sans cesse en collision avec d&apos;autres objets. Pour cela, vous devrez peut-être contacter le propriétaire de l&apos;objet ou bien supprimer ou renvoyer l&apos;objet.
-Décochez la case Désactiver les collision, puis cliquez sur Appliquer pour réactiver les collisions dans la région.
-
-Défaut : désactivé
- </notification>
-
- <notification
-
- label="Désactiver les propriétés physiques"
- name="HelpRegionDisablePhysics"
- >
-L&apos;option Désactiver les propriétés physiques est similaire à l&apos;option Désactiver les collisions sauf qu&apos;elle englobe toutes les simulations physiques. Cela signifie que les objets n&apos;entreront plus en collision et que les avatars ne pourront plus bouger.
-
-Vous ne devriez utiliser cette option que lorsque l&apos;option Désactiver les collisions ne rend pas sufisamment de performance à la région pour résoudre un problème de physique ou trouver les objets souvent responsables de collisions.
-
-Une fois que vous avez fini, n&apos;oubliez pas de réactiver les propriétés physiques sinon vos avatars ne pourront pas bouger.
-
-Défaut : désactivé
- </notification>
-
- <notification
-
- label="Objets souvent responsables de collision"
- name="HelpRegionTopColliders"
- >
-Montre une liste des objets qui ont le plus de chances d&apos;entrer en collision avec d&apos;autres objets. Ces objets peuvent ralentir votre performance. Sélectionnez Affichage &gt; Statistiques et regardez sous Simulator &gt; Time &gt; Sim Time (Physics) pour voir si les propriétés physiques prennent plus de 20 ms.
- </notification>
-
- <notification
-
- label="Scripts souvent utilisés"
- name="HelpRegionTopScripts"
- >
-Dresse une liste des objets qui passent le plus de temps à exécuter des scripts LSL. Ces objets peuvent ralentir votre performance.
-Sélectionnez Affichage &gt; Statistiques et regardez sous Simulator &gt; Time &gt; Script Time pour voir si les scripts prennent plus de 25 ms.
- </notification>
-
- <notification
-
- label="Redémarrer la région"
- name="HelpRegionRestart"
- >
-Redémarre le serveur en charge de la région après un avertissement de deux minutes. Tous les résidents dans cette région seront déconnectés. Les données de la région seront sauvegardées et réapparaîtront au bout de 90 secondes.
-
-Le redémarrage la région ne permet pas de résoudre la plupart des problèmes de performance. Les redémarrages ne doivent avoir lieu que si cela est vraiment nécessaire.
- </notification>
-
- <notification
-
- label="Niveau de l&apos;eau"
- name="HelpRegionWaterHeight"
- >
-Il s&apos;agit de la hauteur de l&apos;eau en mètres.
-Si ce paramètre est différent de 20 et que vous avez de l&apos;eau adjacente au bord du monde ou de l&apos;eau « vide », il y aura un espace vide visible.
-
-
-Défaut : 20
- </notification>
-
- <notification
-
- label="Surélévation du terrain"
- name="HelpRegionTerrainRaise"
- >
-Il s&apos;agit de la distance (en mètres) à laquelle les propriétaires de parcelle peuvent surélever leur terrain, par rapport au terrain « figé » dont la hauteur est fixée par défaut.
-
-Défaut : 4
- </notification>
-
- <notification
-
- label="Abaisser le terrain"
- name="HelpRegionTerrainLower"
- >
-Il s&apos;agit de la distance (en mètres) à laquelle les propriétaires de parcelle peuvent abaisser leur terrain, par rapport au terrain « figé » dont la hauteur est fixée par défaut.
-
-Défaut : -4
- </notification>
-
- <notification
-
- label="Charger le terrain au format RAW"
- name="HelpRegionUploadRaw"
- >
-Ce bouton permet de charger un fichier .RAW dans la région où vous vous trouvez.
-Ce fichier doit avoir les bonnes dimensions (RGB, 256 x 256) et 13 canaux. Le meilleur moyen de créer un fichier terrain est de télécharger le fichier RAW existant. Un bon moyen est de modifier le canal rouge (hauteur terrain) et de le charger.
-
-Le chargement peut prendre jusqu&apos;à 45 secondes. Veuillez noter que le chargement d&apos;un fichier terrain ne déplacera pas les objets qui se trouvent sur le terrain, mais seulement le terrain et les permissions associées aux parcelles. Certains objets risquent d&apos;aller sous la terre.
-
-Pour en savoir plus sur la modification de la hauteur des terrains d&apos;une région, consultez l&apos;Aide F1.
- </notification>
-
- <notification
-
- label="Télécharger le terrain au format RAW"
- name="HelpRegionDownloadRaw"
- >
-Ce bouton permet de télécharger un fichier contenant les données relatives à la hauteur du terrain, dimensions de la parcelle, les mises en vente ainsi que certaines permissions relatives à la parcelle pour cette région. Lorsque vous ouvrez le fichier avec un programme tel que Photoshop, vous devez indiquer les dimensions du document qui sont les suivantes : RGB, 256 x 256 avec 13 canaux. Le fichier terrain ne peut pas être ouvert différemment.
-
-Pour en savoir plus sur la modification de la hauteur des terrains d&apos;une région, consultez l&apos;Aide F1.
- </notification>
-
- <notification
-
- label="Utiliser le soleil du domaine"
- name="HelpRegionUseEstateSun"
- >
-Si vous cochez cette case, la position du soleil dans cette région sera la même que dans le reste du domaine.
-
-Défaut : activé
- </notification>
-
- <notification
-
- label="Soleil fixe"
- name="HelpRegionFixedSun"
- >
-Si vous cochez cette case, la position du soleil se fixe sur celle du curseur Phase et le soleil arrête de bouger.
-
-Défaut : désactivé
- </notification>
-
- <notification
-
- label="Figer le terrain"
- name="HelpRegionBakeTerrain"
- >
-Ce bouton permet d&apos;enregistrer la forme actuelle du terrain comme nouvelle forme par défaut pour la région. Une fois figé, le terrain peut reprendre la forme enregistrée à partir de l&apos;option Rétablir le terrain à la section Modifer le terrain. Le terrain figé est aussi le point de référence pour les limites de surélévation et d&apos;abaissement.
- </notification>
-
- <notification
-
- label="Gérants du domaine"
- name="HelpEstateEstateManager"
- >
-Un gérant de domaine est un résident chargé du contrôle de la région et des paramètres du domaine. Un gérant de domaine peut modifier tous les paramètres, mais ne peut pas charger, télécharger ni figer de terrain. Un des pouvoirs principaux du gérant est de bannir ou d&apos;autoriser un résident sur votre domaine.
-
-Seuls les propriétaires de domaine peuvent ajouter ou supprimer des gérants de domaine. Lorsque vous choisissez un gérant de domaine, prenez un résident en qui vous avez confiance car vous serez en quelque sorte responsable de ses actions.
- </notification>
-
- <notification
-
- label="Utiliser le temps universel"
- name="HelpEstateUseGlobalTime"
- >
-Cette case permet au soleil de votre domaine de suivre la position du soleil sur les domaines Linden du continent.
-
-Défaut : activé
- </notification>
-
- <notification
-
- label="Soleil fixe"
- name="HelpEstateFixedSun"
- >
-Si vous cochez cette case, la position du soleil se fixe sur celle du curseur Phase et le soleil arrête de bouger.
- </notification>
-
- <notification
-
- label="Accès public"
- name="HelpEstateExternallyVisible"
- >
-Cette option vous permet de choisir quels résidents d&apos;autres domaines peuvent pénétrer sur votre domaine sans devoir être ajoutés à la liste d&apos;accès.
-
-Défaut : activé
- </notification>
-
- <notification
-
- label="Autoriser la téléportation directe"
- name="HelpEstateAllowDirectTeleport"
- >
-Lorsqu&apos;elle est cochée, cette option permet aux résidents d&apos;être téléportés à n&apos;importe quel endroit sur votre domaine. Lorsque cette option n&apos;est pas cochée, les résidents sont téléportés au téléhub le plus proche.
-
-Défaut : désactivé
- </notification>
-
- <notification
-
- label="Autoriser l&apos;accès"
- name="HelpEstateAllowResident"
- >
-L&apos;accès à ce domaine sera réservé aux résidents figurant dans cette liste et aux groupes ci-dessous.
-Cette option n&apos;est disponible que lorsque la case Accès public est décochée.
- </notification>
-
- <notification
-
- label="Autoriser l&apos;accès de groupe"
- name="HelpEstateAllowGroup"
- >
-L&apos;accès à ce domaine sera réservé aux groupes figurant dans cette liste et aux résidents ci-dessous. Cette option n&apos;est disponible que lorsque la case Accès public est décochée.
- </notification>
-
- <notification
-
- label="Adresse e-mail où signaler une infraction"
- name="HelpEstateAbuseEmailAddress"
- >
-Si vous utilisez une adresse e-mail valide, les rapports d&apos;infraction de ce domaine iront à cette adresse.
-Si vous laissez ce champ vide, les rapports d&apos;infraction seront envoyés à Linden Lab uniquement.
- </notification>
-
- <notification
-
- label="Refuser l&apos;accès"
- name="HelpEstateBanResident"
- >
-Les résidents figurant sur cette liste ne peuvent pas pénétrer sur votre domaine, quels que soient les autres paramètres.
- </notification>
-
- <notification
-
- label="Autoriser les chats vocaux"
- name="HelpEstateVoiceChat"
- >
-Les parcelles de ce domaine peuvent avoir leurs propres canaux vocaux, ce qui permet aux résidents de communiquer avec leurs voisins.
-
-Défaut : désactivé
- </notification>
-
- <notification
-
- label="Versions de voix non compatibles"
- name="VoiceVersionMismatch"
- >
-Cette version de Second Life n&apos;est pas compatible avec la fonctionnalité de chat vocal dans cette région. Vous devez mettre à jour Second Life pour que le chat vocal fonctionne correctement.
- </notification>
-
- <notification
-
- label="Règlement du domaine"
- name="HelpEstateCovenant"
- >
-Définir un règlement pour le domaine vous permet de vendre les parcelles de ce domaine. S&apos;il n&apos;y a pas de règlement, vous ne pouvez pas vendre le terrain. Si vous ne souhaitez pas indiquer de règlement ou donner de conseils aux acheteurs, laissez la section relative au règlement vide.
-
-Un règlement sert à communiquer des règles, des lignes directrices ou informations culturelles, ou simplement à expliquer vos attentes à un acheteur potentiel. Il peut s&apos;agir de régulations concernant la construction, les options de paiement ou tout autre information que vous souhaitez faire passer au résident avant que l&apos;achat n&apos;ait lieu.
-
-L&apos;acheteur est tenu d&apos;accepter le règlement en cochant une case avant de pouvoir finaliser l&apos;achat. Les règlements, lorsqu&apos;ils existent, apparaissent toujours dans la boîte de dialogue À propos du terrain.
- </notification>
-
- <notification
-
- label="Impossible d&apos;acheter des objets"
- name="BuyObjectOneOwner"
- >
-Impossible d&apos;acheter simultanément des objets de propriétaires différents.
-Veuillez ne sélectionner qu&apos;un seul objet.
- </notification>
-
- <notification
-
- label="Impossible d&apos;acheter des contenus"
- name="BuyContentsOneOnly"
- >
-Impossible d&apos;acheter les contenus de plus d&apos;un objet à la fois.
-Veuillez ne sélectionner qu&apos;un seul objet.
- </notification>
-
- <notification
-
- label="Impossible d&apos;acheter des contenus"
- name="BuyContentsOneOwner"
- >
-Impossible d&apos;acheter simultanément des objets de propriétaires différents.
-Veuillez ne sélectionner qu&apos;un seul objet.
- </notification>
-
- <notification
-
- name="BuyOriginal"
- >
-Acheter l&apos;objet original pour [PRICE] L$ à [PRICE] ?
-Vous deviendrez le propriétaire de cet objet.
-Vous pourrez :
- Modifier : [MODIFYPERM]
- Copier : [COPYPERM]
- Revendre ou donner : [RESELLPERM]
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyOriginalNoOwner"
- >
-Acheter l&apos;objet original pour [PRICE] L$ ?
-Vous deviendrez le propriétaire de cet objet.
-Vous pourrez :
- Modifier : [MODIFYPERM]
- Copier : [COPYPERM]
- Revendre ou donner : [RESELLPERM]
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyCopy"
- >
-Acheter une copie pour [PRICE] L$ à [OWNER] ?
-L&apos;objet sera copié dans votre inventaire.
-Vous pourrez :
- Modifier : [MODIFYPERM]
- Copier : [COPYPERM]
- Revendre ou donner : [RESELLPERM]
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyCopyNoOwner"
- >
-Acheter une copie pour [PRICE] L$ ?
-L&apos;objet sera copié dans votre inventaire.
-Vous pourrez :
- Modifier : [MODIFYPERM]
- Copier : [COPYPERM]
- Revendre ou donner : [RESELLPERM]
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyContents"
- >
-Acheter des contenus pour [PRICE] L$ à [OWNER] ?
-Ils seront copiés dans votre inventaire.
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyContentsNoOwner"
- >
-Acheter des contenus pour [PRICE] L$ ?
-Ils seront copiés dans votre inventaire.
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmPurchase"
- >
-Suite à cette transaction, vous allez :
-[ACTION]
-
-Êtes-vous certain de vouloir effectuer cette transaction ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmPurchasePassword"
- type="password">
-Suite à cette transaction, vous allez :
-[ACTION]
-
-Êtes-vous certain de vouloir effectuer cette transaction ?
-Veuillez saisir à nouveau votre mot de passe et cliquer sur OK.
- <form name="form">
- <button
- name="ConfirmPurchase"
- text="OK"/>
- <button
- name="Cancel"
- text="Annuler"/>
- </form>
- </notification>
-
- <notification
-
- name="SetPickLocation"
- >
-Remarque :
-Vous avez mis à jour l&apos;emplacement de ce favori mais les autres détails resteront inchangés.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="MoveInventoryFromObject"
- >
-Vous avez sélectionné des objets de l&apos;inventaire qui ne peuvent pas être copiés.
-Ces objets seront déplacés vers votre inventaire, et non pas copiés.
-
-Déplacer les objets de l&apos;inventaire ?
- <usetemplate
- ignoretext="Lors du transfert d&apos;un inventaire non reproductible depuis des objets"
- name="okcancelignore"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="MoveInventoryFromScriptedObject"
- >
-Vous avez sélectionné des objets de l&apos;inventaire qui ne peuvent pas être copiés. Ces objets seront déplacés vers votre inventaire, et non pas copiés.
-Étant donné que l&apos;objet est scripté, déplacer ces objets vers votre inventaire risque de causer des problèmes au niveau du script.
-
-Déplacer les objets de l&apos;inventaire ?
- <usetemplate
- ignoretext="Lors du transfert d&apos;un inventaire non reproductible depuis des objets scriptés"
- name="okcancelignore"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ClickActionNotPayable"
- >
-Avertissement : l&apos;action du clic Payer l&apos;objet a été défini mais ne fonctionnera que si un script est ajouté avec l&apos;event money().
- <form name="form">
- <ignore name="ignore"
- text="Lors du paramétrage de la fonction Payer sur des objets sans événement monétaire"/>
- </form>
- </notification>
-
- <notification
-
- name="OpenObjectCannotCopy"
- >
-Vous n&apos;êtes autorisé à copier aucun élément dans cet objet.
- </notification>
-
- <notification
-
- name="WebLaunchAccountHistory"
- >
-Aller sur le site de Second Life pour consulter l&apos;historique de votre compte ?
- <usetemplate
- ignoretext="Lors du chargement de la page web contenant l&apos;historique de votre compte"
- name="okcancelignore"
- notext="Annuler"
- yestext="Aller sur cette page"/>
- </notification>
-
- <notification
-
- name="ClickOpenF1Help"
- >
-Visiter les pages d&apos;aide de Second Life ?
- <usetemplate
- ignoretext="Lors de la visite des pages d&apos;aide de Second Life"
- name="okcancelignore"
- notext="Annuler"
- yestext="Aller"/>
- </notification>
-
- <notification
-
- name="ConfirmQuit"
- >
-Êtes-vous certain de vouloir quitter ?
- <usetemplate
- ignoretext="Lorsque vous quittez Second Life"
- name="okcancelignore"
- notext="Continuer"
- yestext="Quitter"/>
- </notification>
-
- <notification
-
- name="HelpReportAbuseEmailLL"
- >
-Utilisez cet outil pour signaler des infractions aux Conditions d&apos;utilisation et aux Règles de la communauté. Voir :
-
-http://secondlife.com/corporate/tos.php
-http://secondlife.com/corporate/cs.php
-
-Lorsqu&apos;elles sont signalées, toutes les infractions aux Conditions d&apos;utilisation et aux Règles de la communauté font l&apos;objet d&apos;une enquête et sont résolues. Pour accéder aux détails de la résolution d&apos;un incident, allez sur :
-
-http://secondlife.com/support/incidentreport.php
- </notification>
-
- <notification
-
- name="HelpReportAbuseEmailEO"
- >
-Important : ce rapport ira au propriétaire de la région dans laquelle vous êtes et non à Linden Lab.
-
-Pour aider les résidents et les visiteurs, le propriétaire de la région dans laquelle vous êtes a choisi de recevoir et de s&apos;occuper de tous les rapports envoyés à partir de cette région. Linden Lab n&apos;enquêtera pas sur les rapports que vous envoyez à partir de cet endroit.
-
-Le propriétaire de la région traitera les rapports en fonction des règles de cette région, comme indiqué dans le réglement du domaine.
-(Les réglements sont visibles à partir du menu Monde &gt; À propos du terrain.)
-
-La résolution de ce rapport ne s&apos;applique qu&apos;à cette région ; L&apos;accès aux autres endroits de Second Life ne sera pas affecté par les résultats de cette enquête. Seul Linden Lab peut interdire l&apos;accès à l&apos;ensemble de Second Life.
- </notification>
-
- <notification
-
- name="HelpReportBug"
- >
-N&apos;utilisez cet outil que pour signaler des problèmes techniques et soyez aussi précis que possible.
-Vous pouvez répondre à l&apos;e-mail automatique pour ajouter des détails à votre rapport.
-
-Tous les bugs signalés sont reproduits et évalués. Aucune réponse ne sera envoyée par e-mail.
-
-Si vous avez un problème technique, veuillez contacter le service clientèle à :
-
-http://secondlife.com/community/support.php
-
-Remarque : les rapports incomplets ne feront pas l&apos;objet d&apos;une enquête.
- </notification>
-
- <notification
-
- name="HelpReportAbuseSelectCategory"
- >
-Veuillez choisir une catégorie pour ce rapport d&apos;infraction.
-Le choix d&apos;une catégorie nous permet de traiter les rapports d&apos;infraction plus rapidement.
- </notification>
-
- <notification
-
- name="HelpReportBugSelectCategory"
- >
-Veuillez choisir une catégorie pour ce bug.
-Le choix d&apos;une catégorie nous permet de traiter les bugs plus rapidement.
- </notification>
-
- <notification
-
- name="HelpReportAbuseAbuserNameEmpty"
- >
-Veuillez saisir le nom du contrevenant.
-Lorsque nous avons le nom du contrevenant, nous sommes en mesure de traiter les rapports plus rapidement.
- </notification>
-
- <notification
-
- name="HelpReportAbuseAbuserLocationEmpty"
- >
-Veuillez indiquer l&apos;endroit où l&apos;infraction a eu lieu.
-Les informations précises et exactes nous permettent de traiter les rapports plus rapidement.
- </notification>
-
- <notification
-
- name="HelpReportAbuseSummaryEmpty"
- >
-Veuillez saisir un récapitulatif de l&apos;infraction.
-Les récapitulatifs précis nous permettent de traiter les rapports plus rapidement.
- </notification>
-
- <notification
-
- name="HelpReportBugSummaryEmpty"
- >
-Veuillez saisir un récapitulatif du bug.
-Les récapitulatifs précis nous permettent de résoudre les bugs plus rapidement.
- </notification>
-
- <notification
-
- name="HelpReportAbuseDetailsEmpty"
- >
-Veuillez saisir une description détaillée de l&apos;infraction.
-Soyez aussi précis que possible et essayez de fournir des noms ainsi que des détails sur l&apos;incident que vous signalez.
-Les descriptions précises nous permettent de traiter les rapports plus rapidement.
- </notification>
-
- <notification
-
- name="HelpReportBugDetailsEmpty"
- >
-Veuillez saisir une description détaillée du bug.
-Soyez aussi spécifique que possible et essayez d&apos;indiquer les étapes à suivre pour reproduire le bug.
-Les descriptions précises nous permettent de résoudre les bugs plus rapidement.
- </notification>
-
- <notification
-
- name="HelpReportAbuseContainsCopyright"
- >
-Cher résident,
-
-Il semble que vous souhaitiez reporter une infraction à des droits de propriété intellectuelle. Pour signaler correctement cette infraction :
-
-(1) Remplissez un rapport d&apos;infraction. Vous pouvez soumettre un rapport d&apos;infraction si vous pensez qu&apos;un résident exploite le système de permissions de Second Life, par exemple en utilisant un CopyBot ou des outils similaires pour enfreindre des droits de propriété intellectuelle. Notre équipe chargée des infractions mènera une enquête et prendra les mesures nécessaires à l&apos;encontre du résident non respectueux des Conditions d&apos;utilisation ou des règles de la communauté. Sachez toutefois que l&apos;équipe chargée des infractions ne supprimera pas de contenu à l&apos;intérieur de Second Life.
-
-(2) Demandez à ce que du contenu à l&apos;intérieur de Second Life soit supprimé. Pour demander à ce que du contenu soit supprimé de Second Life, vous devez soumettre un rapport d&apos;infraction valide, tel que fourni dans notre Règlement contre les violations des droit d&apos;auteurs (DMCA), à http://secondlife.com/corporate/dmca.php.
-
-Si vous souhaitez toujours reporter cette infraction, veuillez fermer cette fenêtre et soumettre votre rapport. Vous devrez peut-être sélectionner la catégorie CopyBot ou exploitation abusive des permissions.
-
-Merci,
-
-Linden Lab
- </notification>
-
- <notification
-
- name="FailedRequirementsCheck"
- >
-Les composantes requises suivantes ne se trouvent pas dans [FLOATER]:
-[COMPONENTS]
- </notification>
-
- <notification
-
- label="Remplacer la pièce-jointe existante"
- name="ReplaceAttachment"
- >
-Vous avez déjà un objet sur cette partie du corps.
-Voulez-vous le remplacer par l&apos;objet sélectionné ?
- <form name="form">
- <ignore name="ignore"
- save_option="true"
- text="Lors du remplacement de pièces-jointes existantes"/>
- <button
- ignore="Remplacer automatiquement"
- name="Yes"
- text="OK"/>
- <button
- ignore="Ne jamais remplacer"
- name="No"
- text="Annuler"/>
- </form>
- </notification>
-
- <notification
-
- label="Réponse si occupé(e)"
- name="BusyModePay"
- >
-Vous êtes en mode occupé et vous ne recevrez donc aucun objet en échange de ce paiement.
-
-Souhaitez-vous quitter le mode occupé avant de terminer cette transaction ?
- <form name="form">
- <ignore name="ignore"
- save_option="true"
- text="Lorsque vous envoyez de l&apos;argent à une personne en mode Occupé"/>
- <button
- ignore="Toujours quitter le mode occupé"
- name="Yes"
- text="OK"/>
- <button
- ignore="Ne jamais quitter le mode occupé"
- name="No"
- text="Annuler"/>
- </form>
- </notification>
-
- <notification
-
- name="ConfirmEmptyTrash"
- >
-Êtes-vous certain de vouloir supprimer le contenu de votre corbeille de manière permanente  ?
- <usetemplate
- ignoretext="Lorsque vous videz la corbeille de l&apos;inventaire"
- name="okcancelignore"
- notext="Annuler"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmClearBrowserCache"
- >
-Êtes-vous certain de vouloir vider le cache de votre navigateur ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="Oui"/>
- </notification>
-
- <notification
-
- name="ConfirmClearCookies"
- >
-Êtes-vous certain de vouloir supprimer vos cookies ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="Oui"/>
- </notification>
-
- <notification
-
- name="ConfirmClearMediaUrlList"
- >
-Êtes-vous certain de vouloir supprimer la liste des URL enregistrées ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuler"
- yestext="Oui"/>
- </notification>
-
- <notification
-
- name="ConfirmEmptyLostAndFound"
- >
-Êtes-vous certain de vouloir supprimer le contenu de votre dossier Objets trouvés de manière permanente ?
- <usetemplate
- ignoretext="Losque vous videz le dossier Objets trouvés dans votre inventaire"
- name="okcancelignore"
- notext="Non"
- yestext="Oui"/>
- </notification>
-
- <notification
-
- name="CopySLURL"
- >
-La SLURL suivante a été copiée dans votre presse-papier :
- [SLURL]
-
-Mettez-la dans une page web pour permettre aux autres résidents d&apos;accéder facilement à cet endroit ou bien collez-la dans la barre d&apos;adresse de votre navigateur.
- <form name="form">
- <ignore name="ignore"
- text="Lorsque vous copiez une SLURL dans votre presse-papier"/>
- </form>
- </notification>
-
- <notification
-
- name="GraphicsPreferencesHelp"
- >
-Ce menu permet de contrôler la taille de la fenêtre et la résolution, ainsi que la qualité des graphiques client. Les préférences de l&apos;interface graphique vous permettent de choisir entre 4 niveaux de graphiques : Faible, Moyen, Élevé et Ultra. Personnalisez vos options graphiques en cliquant sur le bouton Personnaliser et en changeant les paramètres suivants :
-
-Effets : active ou désactive les différents types de shaders pixels.
-
-Objets reflétés : définit le type d&apos;objets reflétés dans l&apos;eau.
-
-Rendu de l&apos;avatar : définit les options qui influent sur la manière dont le client rend les avatars.
-
-Limite d&apos;affichage : la distance à laquelle vous voyez les objets s&apos;afficher dans la scène.
-
-Nombre de particules max. : définit le nombre maximum de particules que vous pouvez voir à la fois sur votre écran.
-
-Qualité post-traitement : définit la résolution du rayonnement.
-
-Détails des rendus : définit le niveau de détail ou le nombre de polygones utilisés dans le rendu de certains objets. Une valeur plus élevée prendra plus de temps pour apparaître, mais permettra d&apos;avoir des objets plus détaillés.
-
-Sources lumineuses : définit les types de lumières que vous souhaitez faire apparaître.
-
-Rendu du terrain : définit le niveau de détail que vous souhaitez utiliser dans la texture du terrain.
- </notification>
-
- <notification
-
- name="WLSavePresetAlert"
- >
-Voulez-vous écraser l&apos;option précédemment enregistrée ?
- <usetemplate
- name="okcancelbuttons"
- notext="Non"
- yestext="Oui"/>
- </notification>
-
- <notification
-
- name="WLDeletePresetAlert"
- >
-Voulez-vous supprimer [SKY] ?
- <usetemplate
- name="okcancelbuttons"
- notext="Non"
- yestext="Oui"/>
- </notification>
-
- <notification
-
- name="WLNoEditDefault"
- >
-Vous ne pouvez pas éditer ou supprimer un préréglage par défaut.
- </notification>
-
- <notification
-
- name="WLMissingSky"
- >
-Une dossier semble manquer au Cycle du jour : [SKY].
- </notification>
-
- <notification
-
- name="PPSaveEffectAlert"
- >
-Certains effets post-traitement existent. Voulez-vous quand même écraser ce fichier ?
- <usetemplate
- name="okcancelbuttons"
- notext="Non"
- yestext="Oui"/>
- </notification>
-
- <notification
-
- name="HelpEditSky"
- >
-Pour créer et sauvegarder plusieurs ciels, utilisez les curseurs WindLight.
- </notification>
-
- <notification
-
- name="HelpEditDayCycle"
- >
-Choisissez quel ciel apparaît au cours de la journée.
- </notification>
-
- <notification
-
- name="EnvSettingsHelpButton"
- >
-Ces paramètres permettent de modifier l&apos;environnement local sur votre ordinateur. Pour que vous ayez accès à tous les paramètres, votre carte graphique doit prendre en charge les effets atmosphériques.
-
-Pour changer les différentes phases de la journée sur votre visualisateur, utilisez le curseur Heure de la journée.
-
-Le curseur Couverture nuageuse permet de contrôler le nombre de nuages dans le ciel.
-
-L&apos;option Couleur de l&apos;eau vous permet de modifier la couleur de l&apos;eau grâce au sélecteur de couleurs.
-
-Le curseur Brouillard dans l&apos;eau permet de contrôler la densité du brouillard sous l&apos;eau.
-
-Pour synchroniser l&apos;heure du jour sur celle de la région, cliquez sur Utiliser heure domaine.
-
-En cliquant sur le bouton Ciel Avancé, vous aurez accès à tous les réglages relatifs au ciel.
-
-En cliquant sur le bouton Eau Avancée, vous aurez accès à tous les réglages relatifs à l&apos;eau.
- </notification>
-
- <notification
-
- name="HelpDayCycle"
- >
-L&apos;éditeur du cycle du jour vous permet de contrôler le ciel au cours du cycle jour/nuit de second Life. C&apos;est ce même cycle qui est contrôlé par le curseur Heure de la journée dans l&apos;éditeur d&apos;environnement basique.
-
-L&apos;éditeur du jour fonctionne grâce au réglage d&apos;images-clés. Ces images-clés sont représentées par les marques grises sur la ligne du temps et ont des préréglages qui leurs sont associées. Au cours de la journée et de la nuit, le ciel WindLight s&apos;anime en passant d&apos;une clé à l&apos;autre.
-
-La flèche jaune au dessus de la ligne du temps représente votre vue actuelle, basée sur l&apos;heure de la journée. Cliquez et faites glisser pour voir l&apos;animation au cours de votre journée. Ajoutez ou supprimez des clés en appuyant sur les boutons Ajouter clé ou Supprimer clé, à droite de la ligne du temps.
-
-Vous pouvez définir la position d&apos;une clé en la faisant glisser le long de la ligne du temps ou en définissant manuellement ses valeurs dans la section Réglages des images-clés. Dans cette même section, vous pouvez associer chaque clé au préréglage WindLight respectif.
-
-La Durée du cycle contrôle la durée d&apos;une « journée ». Si vous choisissez une valeur basse (2mn par exemple), cela signifie que toutes les animations de votre journée de 24h se dérouleront en 2mn seulement ! Une fois satisfait de vos choix, utilisez les boutons Jouer et Stop ! pour prévisualiser les résultats. Pour voir l&apos;animation, vous pouvez aussi bouger la flèche jaune au dessus de la ligne du temps. Si vous sélectionnez l&apos;option Utiliser heure domaine, vous synchronisez la durée de votre journée et votre heure avec celle du cycle du jour du domaine.
-
-Une fois que vous êtes satisfait de votre Cycle du jour, vous pouvez le sauvegarder et le charger grâce aux boutons Enregistrer jour test et Charger Jour Test. Veuillez noter que pour l&apos;instant, nous ne pouvez avoir qu&apos;un seul Cycle du jour.
- </notification>
-
- <notification
-
- name="HelpBlueHorizon"
- >
-Utilisez les curseurs Rouge/Vert/Bleu (RVB) pour ajuster la couleur du ciel. Pour déplacer les trois curseurs en même temps, utilisez le curseur Intensité.
- </notification>
-
- <notification
-
- name="HelpHazeHorizon"
- >
-Le paramètre Quantité de brume est l&apos;un des plus utiles pour ajuster l&apos;exposition lumineuse de la scène.
-Il permet de simuler de nombreux paramètres d&apos;exposition, tels que les voiles blancs créés par le soleil ou des lumières plus foncées.
- </notification>
-
- <notification
-
- name="HelpBlueDensity"
- >
-La Densité du bleu affecte la saturation générale des couleurs du ciel et du brouillard. Si vous déplacez le curseur Intensité (I) vers la droite, les couleurs deviennent plus vives et plus vibrantes. Si vous le déplacez complètement à gauche, les couleurs deviennent plus fades, puis finalement noires et blanches. Pour paramétrer avec précision la couleur du ciel, vous pouvez contrôler chacun des éléments de la saturation à l&apos;aide des curseurs Rouge/Vert/Bleu (RVB).
- </notification>
-
- <notification
-
- name="HelpHazeDensity"
- >
-Le paramètre Densité de la brume permet de contrôler le niveau de brume grisâtre dans l&apos;atmosphère. Ce paramètre est utile pour simuler les scènes dans lesquelles il y a beaucoup de fumée et de substances polluantes émises par l&apos;homme. Il est également utile pour simuler le brouillard et la brume.
- </notification>
-
- <notification
-
- name="HelpDensityMult"
- >
-Utilisez le Multiplicateur de densité pour modifier la densité atmosphérique générale. Une valeur basse donne l&apos;impression d&apos;un air « léger » alors qu&apos;une valeur élevée donne l&apos;impression d&apos;un air « lourd » et enfumé.
- </notification>
-
- <notification
-
- name="HelpDistanceMult"
- >
-Ajuste la distance perçue par WindLight.
-La valeur zéro désactive l&apos;influence de WindLight sur le terrain et les objets.
-Les valeurs supérieures à 1 simulent des distances plus importantes pour des effets atmosphériques plus épais.
- </notification>
-
- <notification
-
- name="HelpMaxAltitude"
- >
-L&apos;Altitude max. ajuste les calculs de WindLight lors de la computation de la lumière atmosphérique. Quand la fin de la journée approche, il est utile pour ajuster la « profondeur » du coucher de soleil.
- </notification>
-
- <notification
-
- name="HelpSunlightColor"
- >
-Ajuste la couleur et l&apos;intensité de la lumière directe de la scène.
- </notification>
-
- <notification
-
- name="HelpSunAmbient"
- >
-Ajuste la couleur et l&apos;intensité de la lumière atmosphérique ambiante.
- </notification>
-
- <notification
-
- name="HelpSunGlow"
- >
-Le curseur Taille contrôle la taille du soleil.
-Le curseur Netteté permet de rendre le soleil plus ou moins flou dans le ciel.
- </notification>
-
- <notification
-
- name="HelpSceneGamma"
- >
-Ajuste la distribution de clair et de foncé sur l&apos;écran.
- </notification>
-
- <notification
-
- name="HelpStarBrightness"
- >
-Vous permet de contrôler l&apos;intensité des étoiles dans le ciel.
- </notification>
-
- <notification
-
- name="HelpTimeOfDay"
- >
-Contrôle la position du soleil dans le ciel.
-Même chose que l&apos;élévation.
- </notification>
-
- <notification
-
- name="HelpEastAngle"
- >
-Contrôle la position du soleil dans le ciel.
-Même chose que l&apos;azimut.
- </notification>
-
- <notification
-
- name="HelpCloudColor"
- >
-Modifie la couleur des nuages. Il est recommandé de laisser les nuages en blanc mais vous pouvez aussi faire preuve de créativité...
- </notification>
-
- <notification
-
- name="HelpCloudDetail"
- >
-Contrôle le détail de l&apos;image placée sur l&apos;image du nuage principal. X et Y contrôlent sa position. D (Densité) permet de rendre les nuages plus ou moins pleins ou plus ou moins fracturés.
- </notification>
-
- <notification
-
- name="HelpCloudDensity"
- >
-Vous permet de contrôler la position des nuages avec les curseurs X et Y ainsi que leur densité avec le curseur D.
- </notification>
-
- <notification
-
- name="HelpCloudCoverage"
- >
-Contrôle la surface du ciel couverte par les nuages.
- </notification>
-
- <notification
-
- name="HelpCloudScale"
- >
-Contrôle l&apos;échelle de l&apos;image des nuages sur le dôme du ciel.
- </notification>
-
- <notification
-
- name="HelpCloudScrollX"
- >
-Contrôle la vitesse des nuages sur l&apos;axe des X.
- </notification>
-
- <notification
-
- name="HelpCloudScrollY"
- >
-Contrôle la vitesse des nuages sur l&apos;axe des Y.
- </notification>
-
- <notification
-
- name="HelpClassicClouds"
- >
-Cochez cette option pour utiliser les anciens nuages de Second Life en plus des nuages WindLight.
- </notification>
-
- <notification
-
- name="HelpWaterFogColor"
- >
-Permet de sélectionner la couleur du brouillard sous l&apos;eau.
- </notification>
-
- <notification
-
- name="HelpWaterFogDensity"
- >
-Contrôle la densité du brouillard sous l&apos;eau, ainsi que votre visibilité.
- </notification>
-
- <notification
-
- name="HelpUnderWaterFogMod"
- >
-Modifie l&apos;effet créé par l&apos;option Densité du brouillard pour contrôler votre visibilité quand votre avatar est sous l&apos;eau.
- </notification>
-
- <notification
-
- name="HelpWaterGlow"
- >
-Contrôle l&apos;éclat de l&apos;eau à la surface.
- </notification>
-
- <notification
-
- name="HelpWaterNormalScale"
- >
-Contrôle l&apos;échelle des trois vaguelettes qui forment l&apos;eau.
- </notification>
-
- <notification
-
- name="HelpWaterFresnelScale"
- >
-Contrôle la quantité de lumière réfléchie à des angles différents.
- </notification>
-
- <notification
-
- name="HelpWaterFresnelOffset"
- >
-Contrôle l&apos;intensité de la lumière réfléchie.
- </notification>
-
- <notification
-
- name="HelpWaterScaleAbove"
- >
-Contrôle la quantité de lumière réfractée lorsque votre avatar regarde au dessus de l&apos;eau.
- </notification>
-
- <notification
-
- name="HelpWaterScaleBelow"
- >
-Contrôle la quantité de lumière réfractée lorsque votre avatar est sous l&apos;eau.
- </notification>
-
- <notification
-
- name="HelpWaterBlurMultiplier"
- >
-Contrôle le mélange reflets/vagues.
- </notification>
-
- <notification
-
- name="HelpWaterNormalMap"
- >
-Contrôle quelle normal map est posée sur l&apos;eau pour déterminer la réflection/réfraction.
- </notification>
-
- <notification
-
- name="HelpWaterWave1"
- >
-Contrôle dans quelle direction et à quelle vitesse la version grande échelle de la normal map se déplace sur l&apos;axe des X et l&apos;axe des Y.
- </notification>
-
- <notification
-
- name="HelpWaterWave2"
- >
-Contrôle dans quelle direction et à quelle vitesse la version grande échelle de la normal map se déplace sur l&apos;axe des X et l&apos;axe des Y.
- </notification>
-
- <notification
-
- name="NewSkyPreset"
- >
-Nommez le nouveau ciel.
- <form name="form">
- <input name="message" type="text">
-Nouveau préréglage
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annuler"/>
- </form>
- </notification>
-
- <notification
-
- name="ExistsSkyPresetAlert"
- >
-Ce préréglage existe déjà !
- </notification>
-
- <notification
-
- name="NewWaterPreset"
- >
-Nommez ce nouveau préréglage d&apos;eau.
- <form name="form">
- <input name="message" type="text">
-Nouveau préréglage
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annuler"/>
- </form>
- </notification>
-
- <notification
-
- name="ExistsWaterPresetAlert"
- >
-Ce préréglage existe déjà !
- </notification>
-
- <notification
-
- name="WaterNoEditDefault"
- >
-Vous ne pouvez pas éditer ou supprimer un préréglage par défaut.
- </notification>
-
- <notification
-
- name="ChatterBoxSessionStartError"
- >
-Impossible de démarrer une nouvelle session de chat avec [RECIPIENT].
-[REASON]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ChatterBoxSessionEventError"
- >
-[EVENT]
-[REASON]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ForceCloseChatterBoxSession"
- >
-Vous devez terminer votre session de chat avec [NAME].
-[REASON]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="Cannot_Purchase_an_Attachment"
- >
-Les objets qui font partie d&apos;une pièce-jointe ne peuvent pas être achetés.
- </notification>
-
- <notification
-
- label="À propos des requêtes pour les permissions de débit"
- name="DebitPermissionDetails"
- >
-Accepter cette requête donne au script la permission de prélever des dollars Linden (L$) sur votre compte de manière continue. Pour révoquer cette permission, le propriétaire de l&apos;objet doit supprimer l&apos;objet ou bien réinitialiser les scripts dans l&apos;objet.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="AutoWearNewClothing"
- >
-Voulez-vous automatiquement porter l&apos;habit que vous créez ?
- <usetemplate
- ignoretext="Porter automatiquement"
- name="okcancelignore"
- notext="Non"
- yestext="Oui"/>
- </notification>
-
- <notification
-
- name="NotAgeVerified"
- >
-Pour que vous puissiez accéder à cette parcelle, votre âge doit être vérifié.
-Voulez-vous aller sur le site de Second Life pour vérifier votre âge ?
-
-[_URL]
- <url option="0" name="url">
-
- https://secondlife.com/account/verification.php?lang=fr
- </url>
- <usetemplate
- ignoretext="Avertir si l&apos;âge n&apos;a pas été vérifié"
- name="okcancelignore"
- notext="Non"
- yestext="Oui"/>
- </notification>
-
- <notification
-
- name="Cannot enter parcel: no payment info on file"
- >
-Avant de pouvoir pénétrer sur cette parcelle, vous devez enregistrer vos informations de paiement.
-Voulez-vous aller sur le site de Second Life pour enregistrer ces informations ?
-
-[_URL]
- <url option="0" name="url">
-
- https://secondlife.com/account/index.php?lang=fr
- </url>
- <usetemplate
- ignoretext="Avertir si les informations de paiement ne sont pas fournies"
- name="okcancelignore"
- notext="Non"
- yestext="Oui"/>
- </notification>
-
- <notification
-
- name="MissingString"
- >
-The string [STRING_NAME] is missing from strings.xml
- </notification>
-
- <notification
-
- name="SystemMessageTip"
- >
-[MESSAGE]
- </notification>
-
- <notification
-
- name="Cancelled"
- >
-Annulé
- </notification>
-
- <notification
-
- name="CancelledSit"
- >
-Action annulée
- </notification>
-
- <notification
-
- name="CancelledAttach"
- >
-Attachement annulé
- </notification>
-
- <notification
-
- name="ReplacedMissingWearable"
- >
-Habits et parties du corps manquants remplacés par les éléments par défaut.
- </notification>
-
- <notification
-
- name="GroupNotice"
- >
-Sujet : [SUBJECT], Message : [MESSAGE]
- </notification>
-
- <notification
-
- name="FriendOnline"
- >
-[FIRST] [LAST] est connecté(e)
- </notification>
-
- <notification
-
- name="FriendOffline"
- >
-[FIRST] [LAST] est déconnecté(e)
- </notification>
-
- <notification
-
- name="AddSelfFriend"
- >
-Vous ne pouvez pas devenir ami avec vous-même.
- </notification>
-
- <notification
-
- name="UploadingAuctionSnapshot"
- >
-Importation de photos SL et Web en cours
-(prend environ 5 minutes…)
- </notification>
-
- <notification
-
- name="UploadPayment"
- >
-Le chargement a coûté [AMOUNT] L$.
- </notification>
-
- <notification
-
- name="UploadWebSnapshotDone"
- >
-Photo Web importée
- </notification>
-
- <notification
-
- name="UploadSnapshotDone"
- >
-Photo SL importée
- </notification>
-
- <notification
-
- name="TerrainDownloaded"
- >
-Fichier terrain.raw téléchargé
- </notification>
-
- <notification
-
- name="GestureMissing"
- >
-Geste [NAME] absent de la base de données.
- </notification>
-
- <notification
-
- name="UnableToLoadGesture"
- >
-Impossible de charger le geste [NAME].
-Merci de réessayer.
- </notification>
-
- <notification
-
- name="LandmarkMissing"
- >
-Repère absent de la base de données.
- </notification>
-
- <notification
-
- name="UnableToLoadLandmark"
- >
-Impossible de charger le repère. Merci de réessayer.
- </notification>
-
- <notification
-
- name="CapsKeyOn"
- >
-La touche Verr.maj est activée.
-Ce mode modifie le mot de passe que vous saisissez, vous devriez le quitter.
- </notification>
-
- <notification
-
- name="NotecardMissing"
- >
-Note absente de la base de données.
- </notification>
-
- <notification
-
- name="NotecardNoPermissions"
- >
-Permissions insuffisantes pour voir la note.
- </notification>
-
- <notification
-
- name="RezItemNoPermissions"
- >
-Permissions insuffisantes pour rezzer l&apos;objet.
- </notification>
-
- <notification
-
- name="UnableToLoadNotecard"
- >
-Impossible de charger la note.
-Merci de réessayer.
- </notification>
-
- <notification
-
- name="ScriptMissing"
- >
-Script absent de la base de données.
- </notification>
-
- <notification
-
- name="ScriptNoPermissions"
- >
-Permissions insuffisantes pour voir le script.
- </notification>
-
- <notification
-
- name="UnableToLoadScript"
- >
-Impossible de charger le script. Merci de réessayer.
- </notification>
-
- <notification
-
- name="IncompleteInventory"
- >
-Tous les éléments que vous souhaitez transférer ne sont pas encore disponibles sur le serveur.
-Merci d&apos;essayer à nouveau dans une minute.
- </notification>
-
- <notification
-
- name="CannotModifyProtectedCategories"
- >
-Vous ne pouvez pas modifier de catégories protégées.
- </notification>
-
- <notification
-
- name="CannotRemoveProtectedCategories"
- >
-Vous ne pouvez pas supprimer de catégories protégées.
- </notification>
-
- <notification
-
- name="OfferedCard"
- >
-Vous avez offert votre carte de visite à [FIRST] [LAST]
- </notification>
-
- <notification
-
- name="UnableToBuyWhileDownloading"
- >
-Achat impossible durant le chargement de l&apos;objet.
-Merci de réessayer.
- </notification>
-
- <notification
-
- name="UnableToLinkWhileDownloading"
- >
-Impossible de lier durant le chargement de l&apos;objet.
-Merci de réessayer.
- </notification>
-
- <notification
-
- name="CannotBuyObjectsFromDifferentOwners"
- >
-Impossible d&apos;acheter simultanément des objets de propriétaires différents. Veuillez sélectionner un seul objet.
- </notification>
-
- <notification
-
- name="ObjectNotForSale"
- >
-Cet objet ne semble pas à vendre.
- </notification>
-
- <notification
-
- name="EnteringGodMode"
- >
-Activation du mode divin : niveau [LEVEL]
- </notification>
-
- <notification
-
- name="LeavingGodMode"
- >
-Désactivation du mode divin : niveau [LEVEL]
- </notification>
-
- <notification
-
- name="CopyFailed"
- >
-Copie impossible, permissions insuffisantes.
- </notification>
-
- <notification
-
- name="InventoryAccepted"
- >
-[NAME] a accepté votre envoi.
- </notification>
-
- <notification
-
- name="InventoryDeclined"
- >
-[NAME] a refusé votre envoi.
- </notification>
-
- <notification
-
- name="ObjectMessage"
- >
-[NAME]: [MESSAGE]
- </notification>
-
- <notification
-
- name="CallingCardAccepted"
- >
-Votre carte de visite a été acceptée.
- </notification>
-
- <notification
-
- name="CallingCardDeclined"
- >
-Votre carte de visite a été refusée.
- </notification>
-
- <notification
-
- name="TeleportToLandmark"
- >
-A présent que vous êtes sur le continent, vous pouvez voyager par téléportation (vers [NAME] par exemple). Cliquez sur le bouton Inventaire en bas à droite de l&apos;écran puis sélectionnez le dossier Repères (Landmarks).
-Choisissez un repère, double-cliquez dessus et cliquez sur Téléporter.
- </notification>
-
- <notification
-
- name="TeleportToPerson"
- >
-A présent que vous êtes sur le continent, vous pouvez contacter des résidents (tel [NAME] par exemple). Cliquez sur le bouton Inventaire en bas à droite de l&apos;écran puis sélectionnez le dossier Cartes de visite (Calling Cards).
-Choisissez en une, double-cliquez dessus et cliquez sur Message Instantané.
- </notification>
-
- <notification
-
- name="CantSelectLandFromMultipleRegions"
- >
-Vous ne pouvez pas sélectionner de terrain en dehors des limites du serveur.
-Veuillez sélectionner un terrain plus petit.
- </notification>
-
- <notification
-
- name="GroupVote"
- >
-[NAME] a proposé un vote pour :
-[MESSAGE]
- <form name="form">
- <button
-
- name="VoteNow"
- text="Voter"/>
- <button
-
- name="Later"
- text="Plus tard"/>
- </form>
- </notification>
-
- <notification
-
- name="SystemMessage"
- >
-[MESSAGE]
- </notification>
-
- <notification
-
- name="EventNotification"
- >
-Avis d&apos;événement :
-
-[NAME]
-[DATE]
- <form name="form">
- <button
-
- name="Teleport"
- text="Téléporter"/>
- <button
-
- name="Description"
- text="Description"/>
- <button
-
- name="Cancel"
- text="Annuler"/>
- </form>
- </notification>
-
- <notification
-
- name="TransferObjectsHighlighted"
- >
-Tous les objets de cette parcelle qui seront transférés à l&apos;acheteur sont maintenant mis en surbrillance.
-
-* Les arbres et la pelouse qui seront transférés ne sont pas mis en surbrillance.
- <form name="form">
- <button
-
- name="Done"
- text="Transfert effectué"/>
- </form>
- </notification>
-
- <notification
-
- name="DeactivatedGesturesTrigger"
- >
-Gestes désactivés ayant le même mot-clé :
-[NAMES]
- </notification>
-
- <notification
-
- name="NoQuickTime"
- >
-Le logiciel Apple QuickTime ne semble pas installé sur votre système.
-Pour voir les vidéos sur les terrains qui le permettent, allez sur le site de QuickTime (http://www.apple.com/fr/quicktime/download) et installez le lecteur QuickTime.
- </notification>
-
- <notification
-
- name="OwnedObjectsReturned"
- >
-Les objets que vous possédez sur la parcelle de terrain sélectionnée ont été renvoyés dans votre inventaire.
- </notification>
-
- <notification
-
- name="OtherObjectsReturned"
- >
-Les objets que vous possédez sur la parcelle de terrain appartenant à [FIRST] [LAST] ont été renvoyés dans votre inventaire.
- </notification>
-
- <notification
-
- name="OtherObjectsReturned2"
- >
-Les objets sur la parcelle appartenant à « [NAME] » ont étés renvoyés à leur propriétaire.
- </notification>
-
- <notification
-
- name="GroupObjectsReturned"
- >
-Les objets sélectionnés sur la parcelle de terrain partagée avec le groupe [GROUPNAME] ont été renvoyés dans l&apos;inventaire de leur propriétaire.
-Les objets donnés transférables ont étés renvoyés à leur propriétaire.
-Les objets non transférables donnés au groupe ont étés supprimés.
- </notification>
-
- <notification
-
- name="UnOwnedObjectsReturned"
- >
-Les objets sélectionnés sur la parcelle et qui ne sont pas à vous ont été rendus à leurs propriétaires.
- </notification>
-
- <notification
-
- name="NotSafe"
- >
-Les dégâts sont autorisés sur ce terrain (« non sécurisé »).
-Vous pouvez être blessé ici. Si vous décédez, vous serez téléporté à votre domicile.
- </notification>
-
- <notification
-
- name="NoFly"
- >
-Le vol est interdit sur ce terrain (« pas de vol »).
-Vous ne pouvez pas voler ici.
- </notification>
-
- <notification
-
- name="PushRestricted"
- >
-Les bousculades sont interdites sur ce terrain.
-Vous ne pouvez pas pousser les autres à moins que vous soyez propriétaire de ce terrain.
- </notification>
-
- <notification
-
- name="NoVoice"
- >
-La voix est désactivée sur ce terrain.
- </notification>
-
- <notification
-
- name="NoBuild"
- >
-Le mode construction sur ce terrain est désactivé (« pas de construction »).
-Vous ne pouvez pas créer d&apos;objets ici.
- </notification>
-
- <notification
-
- name="ScriptsStopped"
- >
-Un administrateur a temporairement stoppé les scripts dans cette région.
- </notification>
-
- <notification
-
- name="ScriptsNotRunning"
- >
-Aucun script ne fonctionne dans cette région.
- </notification>
-
- <notification
-
- name="NoOutsideScripts"
- >
-Les scripts externes sont désactivés sur ce terrain (« pas de scripts externes »).
-Aucun script n&apos;est exécuté à part ceux du propriétaire du terrain.
- </notification>
-
- <notification
-
- name="ClaimPublicLand"
- >
-Vous ne pouvez réclamer qu&apos;un terrain public dans la région où vous vous trouvez actuellement.
- </notification>
-
- <notification
-
- name="ObjectGiveItem"
- >
-Un objet appelé [OBJECTFROMNAME] appartenant à [FIRST] [LAST] vous a donné un [OBJECTTYPE] appelé [OBJECTNAME].
- <form name="form">
- <button
-
- name="Keep"
- text="Garder"/>
- <button
-
- name="Discard"
- text="Jeter"/>
- <button
-
- name="Mute"
- text="Ignorer"/>
- </form>
- </notification>
-
- <notification
-
- name="ObjectGiveItemUnknownUser"
- >
-L&apos;objet [OBJECTFROMNAME] appartenant à un utilisateur inconnu vous a donné un(e) [OBJECTTYPE] nommé(e) [OBJECTNAME].
- <form name="form">
- <button
-
- name="Keep"
- text="Garder"/>
- <button
-
- name="Discard"
- text="Jeter"/>
- <button
-
- name="Mute"
- text="Ignorer"/>
- </form>
- </notification>
-
- <notification
-
- name="UserGiveItem"
- >
-[NAME] vous a donné un(e) [OBJECTTYPE] nommé(e) [OBJECTNAME].
- <form name="form">
- <button
-
- name="Keep"
- text="Garder"/>
- <button
-
- name="Discard"
- text="Jeter"/>
- <button
-
- name="Mute"
- text="Ignorer"/>
- </form>
- </notification>
-
- <notification
-
- name="GodMessage"
- >
-[NAME]
-[MESSAGE]
- </notification>
-
- <notification
-
- name="JoinGroup"
- >
-[MESSAGE]
- <form name="form">
- <button
-
- name="Join"
- text="Rejoindre"/>
- <button
-
- name="Decline"
- text="Refuser"/>
- <button
-
- name="Info"
- text="Infos"/>
- </form>
- </notification>
-
- <notification
-
- name="TeleportOffered"
- >
-[NAME] vous propose de le/la rejoindre par téléportation :
-
-[MESSAGE]
- <form name="form">
- <button
-
- name="Teleport"
- text="Téléporter"/>
- <button
-
- name="Cancel"
- text="Annuler"/>
- </form>
- </notification>
-
- <notification
-
- name="GotoURL"
- >
-[MESSAGE]
-[URL]
- <form name="form">
- <button
-
- name="Later"
- text="Plus tard"/>
- <button
-
- name="GoNow..."
- text="Y aller maintenant..."/>
- </form>
- </notification>
-
- <notification
-
- name="OfferFriendship"
- >
-[NAME] vous demande de devenir son ami(e).
-
-[MESSAGE]
-
-(Par défaut, vous pourrez voir lorsque vous êtes tous deux connectés.)
- <form name="form">
- <button
-
- name="Accept"
- text="Accepter"/>
- <button
-
- name="Decline"
- text="Refuser"/>
- </form>
- </notification>
-
- <notification
-
- name="OfferFriendshipNoMessage"
- >
-[NAME] vous demande de devenir son ami.
-
-(Par défaut, vous pourrez voir quand vous êtes tous deux connectés)
- <form name="form">
- <button
-
- name="Accept"
- text="Accepter"/>
- <button
-
- name="Decline"
- text="Refuser"/>
- </form>
- </notification>
-
- <notification
-
- name="FriendshipAccepted"
- >
-[NAME] a accepté votre amitié.
- </notification>
-
- <notification
-
- name="FriendshipDeclined"
- >
-[NAME] a refusé votre amitié.
- </notification>
-
- <notification
-
- name="OfferCallingCard"
- >
-[FIRST] [LAST] vous offre sa carte de visite.
-Cela ajoute un marque-page dans votre inventaire, ce qui vous permet d&apos;envoyer rapidement un IM à ce résident.
- <form name="form">
- <button
-
- name="Accept"
- text="Accepter"/>
- <button
-
- name="Decline"
- text="Refuser"/>
- </form>
- </notification>
-
- <notification
-
- name="RegionRestartMinutes"
-
-
- >
-La région va redémarrer dans [MINUTES] minutes.
-Si vous restez dans cette région, vous serez déconnecté(e).
- </notification>
-
- <notification
-
- name="RegionRestartSeconds"
-
-
- >
-La région va redémarrer dans [SECONDS] secondes.
-Si vous restez dans cette région, vous serez déconnecté(e).
- </notification>
-
- <notification
-
- name="LoadWebPage"
- >
-Charger cette page web [URL] ?
-
-[MESSAGE]
-
-Venant de l&apos;objet : [OBJECTNAME], appartenant à : [NAME]?
- <form name="form">
- <button
-
- name="Gotopage"
- text="Aller sur cette page"/>
- <button
-
- name="Cancel"
- text="Annuler"/>
- </form>
- </notification>
-
- <notification
-
- name="FailedToFindWearableUnnamed"
- >
-La recherche du [TYPE] dans la base de données a échoué.
- </notification>
-
- <notification
-
- name="FailedToFindWearable"
- >
-La recherche du [TYPE] nommé(e) [DESC] dans la base de données a échoué.
- </notification>
-
- <notification
-
- name="ScriptQuestion"
- >
-&apos;[OBJECTNAME]&apos;, un objet appartenant à &apos;[NAME]&apos;, aimerait :
-
-[QUESTIONS]
-Acceptez-vous ?
- <form name="form">
- <button
-
- name="Yes"
- text="Oui"/>
- <button
-
- name="No"
- text="Non"/>
- <button
-
- name="Mute"
- text="Ignorer"/>
- </form>
- </notification>
-
- <notification
-
- name="ScriptQuestionCaution"
- >
-[OBJECTNAME], un objet appartenant à [NAME], aimerait :
-
-[QUESTIONS]
-Si vous n&apos;avez pas confiance en cet objet ni en son créateur, vous devriez refuser cette requête. Pour plus d&apos;informations, cliquez sur le bouton Détails.
-
-Accepter cette requête ?
- <form name="form">
- <button
-
- name="Grant"
- text="Accepter"/>
- <button
-
- name="Deny"
- text="Refuser"/>
- <button
-
- name="Details"
- text="Détails..."/>
- </form>
- </notification>
-
- <notification
-
- name="ScriptDialog"
- >
-&apos;[TITLE]&apos; de [FIRST] [LAST]
-[MESSAGE]
- <form name="form">
- <button
-
- name="Ignore"
- text="Ignorer"/>
- </form>
- </notification>
-
- <notification
-
- name="ScriptDialogGroup"
- >
-&apos;[TITLE]&apos; de [GROUPNAME]
-[MESSAGE]
- <form name="form">
- <button
-
- name="Ignore"
- text="Ignorer"/>
- </form>
- </notification>
-
- <notification
-
- name="FirstBalanceIncrease"
- >
-Vous venez de recevoir [AMOUNT] L$.
-Des objets et des utilisateurs peuvent vous donner des L$.
-Votre solde est affiché dans le coin en haut à droite de l&apos;écran.
- </notification>
-
- <notification
-
- name="FirstBalanceDecrease"
- >
-Vous venez de payer [AMOUNT] L$.
-Votre solde est affiché dans le coin en haut à droite de l&apos;écran.
- </notification>
-
- <notification
-
- name="FirstSit"
- >
-Vous êtes assis(e).
-Utilisez les touches de direction (ou AWSD) pour changer la vue.
-Pour vous lever, cliquez sur le bouton Me lever.
- </notification>
-
- <notification
-
- name="FirstMap"
- >
-Cliquez et faites glisser pour faire défiler la carte.
-Double-cliquez pour vous téléporter.
-Utilisez les contrôles à droite pour trouver des choses et afficher différents arrière-plans.
- </notification>
-
- <notification
-
- name="FirstBuild"
- >
-Vous pouvez construire des objets dans certaines zones de [SECOND_LIFE].
-Utilisez les outils en haut à gauche pour construire, et gardez la touche Ctrl ou Alt enfoncée pour passer rapidement d&apos;un outil à l&apos;autre.
-Appuyez sur la touche Esc pour arrêter de construire.
- </notification>
-
- <notification
-
- name="FirstLeftClickNoHit"
- >
-Cliquer à gauche permet d&apos;interagir avec certains objets.
-Si le pointeur de la souris se transforme en main, vous pouvez interagir avec l&apos;objet.
-Cliquer à droite fait toujours apparaître un menu des choses que vous pouvez faire.
- </notification>
-
- <notification
-
- name="FirstTeleport"
- >
-Cette région n&apos;autorise pas la téléportation de point à point. Vous avez donc été transporté au téléhub le plus proche.
-Votre destination est marquée par une grande balise.
-Suivez la flèche rouge vers la balise ou cliquez sur la flèche pour faire disparaître la balise.
- </notification>
-
- <notification
-
- name="FirstOverrideKeys"
- >
-Vos mouvements sont maintenant pris en charge par un objet.
-Essayez les flèches de votre clavier ou AWSD pour voir à quoi elles servent.
-Certains objets (comme les armes) nécessitent l&apos;activation du mode Vue subjective pour être utilisés.
-Pour cela, appuyez sur la touche M.
- </notification>
-
- <notification
-
- name="FirstAppearance"
- >
-Vous êtes en train d&apos;éditer votre apparence.
-Pour tourner et zoomer, utilisez les flèches de direction.
-Lorsque vous avez terminé, appuyez sur Enregistrer tout pour sauvegarder votre apparence et sortir.
-Vous pouvez modifier votre apparence aussi souvent que vous le souhaitez.
- </notification>
-
- <notification
-
- name="FirstInventory"
- >
-Il s&apos;agit de votre inventaire qui contient des objets, notes, vêtements, et autres possessions.
-* Pour porter un objet ou le dossier contenant un ensemble complet, faites-le glisser sur vous-même.
-* Pour mettre un objet dans le monde, faites-le glisser sur le sol.
-* Pour lire une note, double-cliquez dessus.
- </notification>
-
- <notification
-
- name="FirstSandbox"
- >
-Cette région est un bac à sable.
-Les objets que vous construisez ici peuvent être supprimés quand vous partez. Les bacs à sable sont nettoyés régulièrement, veuillez lire les informations en haut de l&apos;écran à côté du nom de la région.
-
-Les régions bacs à sable sont rares et sont signalées par des panneaux.
- </notification>
-
- <notification
-
- name="FirstFlexible"
- >
-Cet objet est flexible.
-Les objets flexibles ne peuvent pas avoir de propriétés physiques et doivent rester fantômes jusqu&apos;à ce que la case Fantôme soit décochée.
- </notification>
-
- <notification
-
- name="FirstDebugMenus"
- >
-Vous avez activé le menu Avancé.
-Ce menu contient des fonctionnalités utiles pour les développeurs qui travaillent sur Second Life.
-Pour activer/désactiver ce menu sous Windows, appuyez sur Ctrl-Alt-D. Sur un Mac, appuyez sur Cmd-Opt-Maj-D
- </notification>
-
- <notification
-
- name="FirstSculptedPrim"
- >
-Vous êtes en train d&apos;éditer un sculptie.
-Pour spécifier la forme d&apos;un sculptie, vous devez utiliser une texture spécifique.
-Vous trouverez des textures dans la bibliothèque de votre inventaire.
- </notification>
-
- <notification
-
- name="FirstMedia"
- >
-Vous avez lancé la lecture d&apos;un média. Dans le menu Préférences, à l&apos;onglet Audio/Vidéo, vous pouvez choisir de lire automatiquement les médias. Notez que cela peut être risqué lorsque les médias viennent de sites que vous ne connaissez pas.
- </notification>
-
- <notification
-
- name="MaxListSelectMessage"
- >
-Vous ne pouvez sélectionner que [MAX_SELECT] objets maximum dans cette liste.
- </notification>
-
- <notification
-
- name="VoiceInviteP2P"
- >
-[NAME] vous invite à un chat vocal.
-Pour y participer, cliquez sur Accepter. Sinon, cliquez sur Refuser. Pour ignorer cette personne, cliquez sur Ignorer.
- <form name="form">
- <button
-
- name="Accept"
- text="Accepter"/>
- <button
-
- name="Decline"
- text="Refuser"/>
- <button
-
- name="Mute"
- text="Ignorer"/>
- </form>
- </notification>
-
- <notification
-
- name="AutoUnmuteByIM"
- >
-[FIRST] [LAST] a reçu un message instantané et n&apos;est donc plus ignoré.
- </notification>
-
- <notification
-
- name="AutoUnmuteByMoney"
- >
-[FIRST] [LAST] a reçu de l&apos;argent et n&apos;est donc plus ignoré.
- </notification>
-
- <notification
-
- name="AutoUnmuteByInventory"
- >
-[FIRST] [LAST] a reçu un inventaire et n&apos;est donc plus ignoré.
- </notification>
-
- <notification
-
- name="VoiceInviteGroup"
- >
-[NAME] a rejoint un chat vocal avec le groupe [GROUP].
-Pour y participer, cliquez sur Accepter. Sinon, cliquez sur Refuser. Pour ignorer cette personne, cliquez sur Ignorer.
- <form name="form">
- <button
-
- name="Accept"
- text="Accepter"/>
- <button
-
- name="Decline"
- text="Refuser"/>
- <button
-
- name="Mute"
- text="Ignorer"/>
- </form>
- </notification>
-
- <notification
-
- name="VoiceInviteAdHoc"
- >
-[NAME] a rejoint un chat vocal avec conférence.
-Pour y participer, cliquez sur Accepter. Sinon, cliquez sur Refuser. Pour ignorer cet utilisateur, cliquez sur Ignorer.
- <form name="form">
- <button
-
- name="Accept"
- text="Accepter"/>
- <button
-
- name="Decline"
- text="Refuser"/>
- <button
-
- name="Mute"
- text="Ignorer"/>
- </form>
- </notification>
-
- <notification
-
- name="InviteAdHoc"
- >
-[NAME] vous invite à un chat conférence.
-Pour y participer, cliquez sur Accepter. Sinon, cliquez sur Refuser. Pour ignorer cet utilisateur, cliquez sur Ignorer.
- <form name="form">
- <button
-
- name="Accept"
- text="Accepter"/>
- <button
-
- name="Decline"
- text="Refuser"/>
- <button
-
- name="Mute"
- text="Ignorer"/>
- </form>
- </notification>
-
- <notification
-
- name="VoiceChannelFull"
- >
-L&apos;appel auquel vous essayez de participer, [VOICE_CHANNEL_NAME], a atteint le nombre maximum de participants. Veuillez réessayer ultérieurement.
- </notification>
-
- <notification
-
- name="ProximalVoiceChannelFull"
- >
-Nous sommes désolés. Le nombre maximum de conversations vocales a été atteint dans cette zone. Veuillez trouver un autre endroit pour discuter.
- </notification>
-
- <notification
-
- name="VoiceChannelDisconnected"
- >
-Vous avez été déconnecté(e) de [VOICE_CHANNEL_NAME]. Vous allez maintenant être reconnecté au chat vocal spatial.
- </notification>
-
- <notification
-
- name="VoiceChannelDisconnectedP2P"
- >
-[VOICE_CHANNEL_NAME] a mis fin à l&apos;appel. Vous allez maintenant être reconnecté au chat vocal spatial.
- </notification>
-
- <notification
-
- name="P2PCallDeclined"
- >
-[VOICE_CHANNEL_NAME] a refusé votre appel. Vous allez maintenant être reconnecté au chat vocal spatial.
- </notification>
-
- <notification
-
- name="P2PCallNoAnswer"
- >
-[VOICE_CHANNEL_NAME] ne peut pas prendre votre appel. Vous allez maintenant être reconnecté au chat vocal spatial.
- </notification>
-
- <notification
-
- name="VoiceChannelJoinFailed"
- >
-Echec de la connexion avec [VOICE_CHANNEL_NAME], veuillez réessayer ultérieurement. Vous allez maintenant être reconnecté au chat vocal spatial.
- </notification>
-
- <notification
-
- name="VoiceLoginRetry"
- >
-Nous sommes en train de créer un canal vocal pour vous. Veuillez patienter quelques instants.
- </notification>
-
- <notification
-
- name="Cannot enter parcel: not a group member"
- >
-Vous ne pouvez pas pénétrer sur ce terrain car vous n&apos;êtes pas membre du groupe adéquat.
- </notification>
-
- <notification
-
- name="Cannot enter parcel: banned"
- >
-Vous ne pouvez pas pénétrer sur ce terrain car l&apos;accès vous y est interdit.
- </notification>
-
- <notification
-
- name="Cannot enter parcel: not on access list"
- >
-Vous ne pouvez pas pénétrer sur ce terrain car vous n&apos;avez pas les droits d&apos;accès requis.
- </notification>
-
- <notification
-
- name="VoiceNotAllowed"
- >
-Vous n&apos;êtes pas autorisé à vous connecter au chat vocal pour [VOICE_CHANNEL_NAME].
- </notification>
-
- <notification
-
- name="VoiceCallGenericError"
- >
-Une erreur est survenue pendant la connexion au chat vocal pour [VOICE_CHANNEL_NAME]. Veuillez réessayer ultérieurement.
- </notification>
-
- <notification
-
- name="ServerVersionChanged"
- >
-La région dans laquelle vous avez pénétré utilise une version de simulateur différente. Pour plus de détails, cliquez sur ce message.
- </notification>
-
- <notification
-
- name="UnableToOpenCommandURL"
- >
-L&apos;URL sur laquelle vous avez cliqué ne peut pas être ouverte dans ce navigateur.
- </notification>
-
- <global name="UnsupportedCPU">
-- Votre processeur ne remplit pas les conditions minimum requises.
- </global>
-
- <global name="UnsupportedGLRequirements">
-Vous semblez ne pas avoir le matériel requis pour utiliser Second Life. Second Life requiert une carte graphique OpenGL avec une prise en charge du multitexturing. Si vous avez une telle carte, assurez-vous que vous avez aussi les drivers les plus récents pour la carte, ainsi que les service packs et les patchs pour votre système d&apos;exploitation.
-
-Si vous avez toujours des problèmes, veuillez consulter la page suivante : http://www.secondlife.com/support
- </global>
-
- <global name="UnsupportedCPUAmount">
-796
- </global>
-
- <global name="UnsupportedRAMAmount">
-510
- </global>
-
- <global name="UnsupportedGPU">
-- Votre carte graphique ne remplit pas les conditions minimum requises.
- </global>
-
- <global name="UnsupportedRAM">
-- Votre mémoire système ne remplit pas les conditions minimum requises.
- </global>
-
- <global name="PermYes">
-Oui
- </global>
-
- <global name="PermNo">
-Non
- </global>
-</notifications>
+<?xml version="1.0" encoding="utf-8"?>
+<notifications>
+ <global name="skipnexttime">
+ Ne plus afficher
+ </global>
+ <global name="alwayschoose">
+ Toujours choisir cette option
+ </global>
+ <template name="okbutton">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ </form>
+ </template>
+
+ <template name="okignore">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <ignore text="$ignoretext"/>
+ </form>
+ </template>
+
+ <template name="okcancelbuttons">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <button
+ name="Cancel"
+ text="$notext"/>
+ </form>
+ </template>
+
+ <template name="okcancelignore">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <button
+ name="Cancel"
+ text="$notext"/>
+ <ignore text="$ignoretext"/>
+ </form>
+ </template>
+
+ <template name="okhelpbuttons">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <button
+ name="Help"
+ text="$helptext"/>
+ </form>
+ </template>
+
+ <template name="yesnocancelbuttons">
+ <form>
+ <button
+ name="Yes"
+ text="$yestext"/>
+ <button
+ name="No"
+ text="$notext"/>
+ <button
+ name="Cancel"
+ text="$canceltext"/>
+ </form>
+ </template>
+ <notification functor="GenericAcknowledge" label="Message d&apos;alerte inconnu" name="MissingAlert">
+ Votre version de Second Life ne peut afficher ce message d&apos;erreur.
+
+Détails de l&apos;erreur : L&apos;alerte, appelée &apos;[_NAME]&apos; est introuvable dans notifications.xml.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="FloaterNotFound">
+ Erreur floater : impossible de trouver les contrôles suivants :
+
+[CONTROLS]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="TutorialNotFound">
+ Aucun didacticiel n&apos;est disponible actuellement.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="GenericAlert">
+ [MESSAGE]
+ </notification>
+ <notification name="GenericAlertYesCancel">
+ [MESSAGE]
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="Oui"/>
+ </notification>
+ <notification name="BadInstallation">
+ Une erreur est survenue lors de la mise à jour de Second Life. Veuillez télécharger la dernière version depuis secondlife.com.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="LoginFailedNoNetwork">
+ Erreur réseau : impossible d&apos;établir une connexion.
+&apos;[DIAGNOSTIC]&apos;
+Veuillez vérifier votre connexion.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="MessageTemplateNotFound">
+ Le modèle de message [PATH] est introuvable.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="WearableSave">
+ Enregistrer les changements dans la partie du corps/les habits actuels ?
+ <usetemplate canceltext="Cancel" name="yesnocancelbuttons" notext="Ne pas enregistrer" yestext="Enregistrer"/>
+ </notification>
+ <notification name="CompileQueueSaveText">
+ Une erreur est survenue lors du chargement du texte pour un script, suite au problème suivant : [REASON]. Veuillez réessayer ultérieurement.
+ </notification>
+ <notification name="CompileQueueSaveBytecode">
+ Une erreur est survenue lors du chargement du script compilé, suite au problème suivant : [REASON]. Veuillez réessayer ultérieurement.
+ </notification>
+ <notification name="WriteAnimationFail">
+ Une erreur est survenue lors de l&apos;écriture des données d&apos;animation. Veuillez réessayer ultérieurement.
+ </notification>
+ <notification name="UploadAuctionSnapshotFail">
+ Un problème est survenu lors du chargement du script compilé, suite au problème suivant : [REASON]
+ </notification>
+ <notification name="UnableToViewContentsMoreThanOne">
+ Impossible d&apos;afficher les contenus de plus d&apos;un objet à la fois.
+Veuillez ne sélectionner qu&apos;un seul objet.
+ </notification>
+ <notification name="SaveClothingBodyChanges">
+ Enregistrer tous les changements dans les habits/parties du corps ?
+ <usetemplate canceltext="Annuler" name="yesnocancelbuttons" notext="Ne pas enregistrer" yestext="Tout enregistrer"/>
+ </notification>
+ <notification name="GrantModifyRights">
+ Lorsque vous accordez des droits d&apos;édition à un autre résident, vous lui permettez de changer, supprimer ou prendre n&apos;importe lequel de vos objets dans le Monde. Réfléchissez bien avant d&apos;accorder ces droits.
+Souhaitez-vous accorder des droits d&apos;édition à [FIRST_NAME] [LAST_NAME] ?
+ <usetemplate name="okcancelbuttons" notext="Non" yestext="Oui"/>
+ </notification>
+ <notification name="GrantModifyRightsMultiple">
+ Lorsque vous accordez des droits d&apos;édition à un autre résident, vous lui permettez de changer n&apos;importe lequel de vos objets dans le Monde. Réfléchissez bien avant d&apos;accorder ces droits.
+Souhaitez-vous accorder des droits d&apos;édition aux résidents selectionnés ?
+ <usetemplate name="okcancelbuttons" notext="Non" yestext="Oui"/>
+ </notification>
+ <notification name="RevokeModifyRights">
+ Souhaitez-vous retirer les droits d&apos;édition à [FIRST_NAME] [LAST_NAME] ?
+ <usetemplate name="okcancelbuttons" notext="Non" yestext="Oui"/>
+ </notification>
+ <notification name="RevokeModifyRightsMultiple">
+ Souhaitez-vous retirer les droits d&apos;édition aux résidents selectionnés ?
+ <usetemplate name="okcancelbuttons" notext="Non" yestext="Oui"/>
+ </notification>
+ <notification name="UnableToCreateGroup">
+ Impossible de créer le groupe.
+[MESSAGE]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="PanelGroupApply">
+ [NEEDS_APPLY_MESSAGE]
+[WANT_APPLY_MESSAGE]
+ <usetemplate canceltext="Annuler" name="yesnocancelbuttons" notext="Ignorer les modifications" yestext="Enregistrer les modifications"/>
+ </notification>
+ <notification name="MustSpecifyGroupNoticeSubject">
+ Pour envoyer une notice au groupe, vous devez indiquer un sujet.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="AddGroupOwnerWarning">
+ Vous êtes sur le point d&apos;ajouter des membres du groupe dans le rôle de [ROLE_NAME].
+Les membres ne peuvent pas être destitués de ce rôle.
+Ils doivent donner eux-mêmes leur démission.
+Êtes-vous certain de vouloir continuer ?
+ <usetemplate ignoretext="Lorsque vous donnez à des membres du groupe le rôle de « propriétaire »" name="okcancelignore" notext="Non" yestext="Oui"/>
+ </notification>
+ <notification name="AssignDangerousActionWarning">
+ Vous êtes sur le point d&apos;ajouter le pouvoir « [ACTION_NAME] » au rôle « [ROLE_NAME] ».
+ *Avertissement*
+ Tout membre disposant de ce pouvoir peut s&apos;affecter lui-même, ainsi que tout autre membre, à des rôles disposant de pouvoirs plus importants, et accéder potentiellement à des pouvoirs proches de ceux d&apos;un propriétaire. Assurez-vous de bien comprendre ce que vous faites avant d&apos;attribuer ce pouvoir.
+
+Ajouter ce pouvoir à « [ROLE_NAME] » ?
+ <usetemplate name="okcancelbuttons" notext="Non" yestext="Oui"/>
+ </notification>
+ <notification name="AssignDangerousAbilityWarning">
+ Vous êtes sur le point d&apos;ajouter le pouvoir « [ACTION_NAME] » au rôle « [ROLE_NAME] ».
+
+ *Avertissement*
+ Tout membre dans un rôle avec ce pouvoir peut s&apos;attribuer à lui-même, ainsi qu&apos;à tout autre membre, Tous les pouvoirs, et accéder potentiellement à des pouvoirs proches de ceux d&apos;un propriétaire.
+
+Ajouter ce pouvoir à « [ROLE_NAME] » ?
+ <usetemplate name="okcancelbuttons" notext="Non" yestext="Oui"/>
+ </notification>
+ <notification name="ClickPublishHelpLand">
+ Sélectionner l&apos;option Afficher dans la recherche
+En cochant cette case, votre parcelle apparaîtra :
+- dans les résultats de recherche ;
+- dans les objets publics ;
+- dans la recherche web.
+ </notification>
+ <notification name="ClickSoundHelpLand">
+ La musique et le média ne peuvent être utilisés que sur cette parcelle. Les options Son et Voix peuvent être limités à la parcelle ou seront entendus par les résidents en dehors de la parcelle, en fonction de leur catégorie d&apos;accès. Souhaitez-vous en savoir plus sur le paramétrage de ces options ?
+ <url name="url">
+ http://wiki.secondlife.com/wiki/M%C3%A9dias_sur_la_parcelle_(KB)
+ </url>
+ <usetemplate name="okcancelbuttons" notext="Fermer" yestext="Consulter les pages d&apos;aide"/>
+ </notification>
+ <notification name="ClickSearchHelpAll">
+ Les résultats de recherche sont organisés en fonction de l&apos;onglet dans lequel vous vous trouvez, votre catégorie d&apos;accès, la catégorie choisie, ainsi que d&apos;autres facteurs. Pour plus de détails, veuillez consulter les pages d&apos;aide.
+ <url name="url">
+ http://wiki.secondlife.com/wiki/FAQ_sur_la_recherche_(KB)
+ </url>
+ <usetemplate name="okcancelbuttons" notext="Fermer" yestext="Consulter les pages d&apos;aide"/>
+ </notification>
+ <notification name="ClickPublishHelpLandDisabled">
+ Cette parcelle ne peut pas apparaître dans la recherche car elle est dans une région où cela n&apos;est pas autorisé.
+ </notification>
+ <notification name="ClickPublishHelpAvatar">
+ Si vous sélectionnez Afficher dans la recherche :
+- votre profil apparaîtra dans les résultats de recherche ;
+- un lien vers votre profil apparaîtra dans les pages de groupe publiques.
+ </notification>
+ <notification name="ClickPartnerHelpAvatar">
+ Vous pouvez proposer à un autre résident de devenir votre partenaire ou dissoudre un partenariat existant à partir du site de [SECOND_LIFE].
+
+Aller sur le site de Second Life pour avoir plus d&apos;informations sur les partenariats ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="Aller sur cette page"/>
+ </notification>
+ <notification name="ClickUploadHelpPermissions">
+ Il est possible que vos droits par défaut ne fonctionnent pas dans les anciennes régions.
+ </notification>
+ <notification name="ClickWebProfileHelpAvatar">
+ Si ce résident a défini une URL de profil web, vous pouvez :
+ * Cliquer sur Charger pour afficher la page dans cet onglet ;
+ * Cliquer sur Charger &gt; Dans un navigateur externe, pour afficher la page dans votre navigateur par défaut ;
+ * Cliquer sur Charger &gt; URL du domicile, pour retourner au profil web du résident.
+
+Lorsque vous êtes dans votre propre profil, vous pouvez définir n&apos;importe quelle URL comme profil web. Pour cela, saisissez l&apos;URL et cliquez sur OK.
+Les autres résidents peuvent visiter l&apos;URL que vous avez définie en regardant votre profil.
+ </notification>
+ <notification name="JoinGroupCanAfford">
+ Rejoindre ce groupe coûte [COST] L$.
+Voulez-vous continuer ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="Rejoindre"/>
+ </notification>
+ <notification name="JoinGroupCannotAfford">
+ Rejoindre ce groupe coûte [COST] L$.
+Vous n&apos;avez pas suffisamment de L$ pour rejoindre ce groupe.
+ </notification>
+ <notification name="LandBuyPass">
+ Pour [COST] L$ vous pouvez pénétrer sur ce terrain ([PARCEL_NAME]) et y rester [TIME] heures. Acheter un pass ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="SalePriceRestriction">
+ Pour rendre l&apos;annonce disponible à tous, le prix de vente doit être supérieur à 0 L$.
+Si le prix de vente est de 0 L$, vous devez choisir un acheteur spécifique.
+ </notification>
+ <notification name="ConfirmLandSaleChange">
+ Le terrain sélectionné, de [LAND_SIZE] m², est mis en vente.
+Votre prix de vente sera de [SALE_PRICE] L$ et la vente sera disponible à [NAME].
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmLandSaleToAnyoneChange">
+ Attention : en cliquant sur Vendre à n&apos;importe qui, vous rendez votre terrain disponible à toute la communauté de Second Life, même aux personnes qui ne sont pas dans cette région.
+
+Le terrain sélectionné, de [LAND_SIZE] m², est mis en vente.
+Votre prix de vente sera de [SALE_PRICE] L$ et la vente sera disponible à [NAME].
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsDeededToGroup">
+ Êtes-vous certain de vouloir renvoyer tous les objets partagés par le groupe [NAME] sur cette parcelle dans l&apos;inventaire du propriétaire précédent ?
+
+*Avertissement* Tous les objets non transférables cédés au groupe seront supprimés !
+
+Objets : [N]
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsOwnedByUser">
+ Etes-vous certain de vouloir renvoyer tous les objets que [NAME] possède sur cette parcelle dans son inventaire ?
+
+Objets : [N]
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsOwnedBySelf">
+ Êtes-vous certain de vouloir renvoyer tous les objets que vous possédez sur cette parcelle dans votre inventaire ?
+
+Objets : [N]
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsNotOwnedBySelf">
+ Êtes-vous certain de vouloir renvoyer tous les objets que vous ne possédez pas sur cette parcelle dans l&apos;inventaire de leur propriétaire ?
+Les objets transférables cédés à un groupe seront renvoyés aux propriétaires précédents.
+
+*Avertissement* Tous les objets non transférables cédés au groupe seront supprimés !
+
+Objets : [N]
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsNotOwnedByUser">
+ Êtes-vous certain de vouloir renvoyer tous les objets que [NAME] ne possède pas sur cette parcelle dans l&apos;inventaire de leur propriétaire ?
+Les objets transférables cédés à un groupe seront renvoyés aux propriétaires précédents.
+
+*Avertissement* Tous les objets non transférables cédés au groupe seront supprimés !
+
+Objets : [N]
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="ReturnAllTopObjects">
+ Êtes-vous certain de vouloir renvoyer tous les objets de la liste dans l&apos;inventaire de leur propriétaire ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="DisableAllTopObjects">
+ Êtes-vous certain de vouloir désactiver tous les objets dans cette région ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsNotOwnedByGroup">
+ Renvoyer les objets de cette parcelle qui ne sont pas partagés avec le groupe [NAME] à leur propriétaire ?
+
+Objets : [N]
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="UnableToDisableOutsideScripts">
+ Impossible de désactiver les scripts.
+Les dégâts sont autorisés dans toute la région.
+Pour que les armes fonctionnent, les scripts doivent être autorisés.
+ </notification>
+ <notification name="MustBeInParcel">
+ Pour définir le point d&apos;atterrissage, vous devez vous trouver à l&apos;intérieur de la parcelle.
+ </notification>
+ <notification name="PromptRecipientEmail">
+ Veuillez saisir une adresse e-mail valide pour le(s) destinataire(s).
+ </notification>
+ <notification name="PromptSelfEmail">
+ Veuillez saisir votre adresse e-mail.
+ </notification>
+ <notification name="PromptMissingSubjMsg">
+ Envoyer la photo avec le sujet ou le message par défaut ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="ErrorProcessingSnapshot">
+ Erreur dans le traitement des données de la photo
+ </notification>
+ <notification name="ErrorEncodingSnapshot">
+ Erreur d&apos;encodage de la photo.
+ </notification>
+ <notification name="ErrorUploadingPostcard">
+ Une erreur est survenue lors du chargement du script compilé, suite au problème suivant : [REASON]
+ </notification>
+ <notification name="ErrorUploadingReportScreenshot">
+ Une erreur est survenue lors du chargement de la capture d&apos;écran destinée au rapport, suite au problème suivant : [REASON]
+ </notification>
+ <notification name="MustAgreeToLogIn">
+ Pour vous connecter à [SECOND_LIFE], vous devez accepter les Conditions d&apos;utilisation.
+ </notification>
+ <notification name="CouldNotPutOnOutfit">
+ Impossible de mettre cet ensemble.
+Ce dossier ne contient pas d&apos;habits, de parties du corps ni de pièces jointes.
+ </notification>
+ <notification name="CannotWearTrash">
+ Vous ne pouvez pas porter d&apos;habits ni de parties du corps se trouvant dans la corbeille.
+ </notification>
+ <notification name="CannotWearInfoNotComplete">
+ Vous ne pouvez pas porter cet article car il n&apos;a pas encore été chargé. Veuillez réessayer dans une minute.
+ </notification>
+ <notification name="MustHaveAccountToLogIn">
+ Oups! Vous avez oublié de fournir certaines informations.
+Vous devez saisir le nom et le prénom de votre avatar.
+
+Pour entrer dans [SECOND_LIFE], vous devez avoir un compte. Voulez-vous en créer un maintenant ?
+ <usetemplate name="okcancelbuttons" notext="Réessayer" yestext="Créer un compte"/>
+ </notification>
+ <notification name="AddClassified">
+ Les petites annonces sont publiées à l&apos;onglet Petites annonces de la section Recherche pendant une semaine.
+Rédigez votre annonce, puis cliquez sur Publier pour l&apos;ajouter à la liste des annonces.
+Au moment de cliquer sur Publier, vous serez invité à payer des frais.
+Plus vous payez cher, plus votre annonce est visible dans la liste ainsi que dans les résultats de recherche de mots-clés.
+ <usetemplate ignoretext="Lors de l&apos;ajout d&apos;une nouvelle petite annonce" name="okcancelignore" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="DeleteClassified">
+ Supprimer l&apos;annonce [NAME] ?
+Une fois payés, les frais ne sont pas remboursables.
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="ClassifiedSave">
+ Enregistrer les changements dans l&apos;annonce [NAME] ?
+ <usetemplate canceltext="Annuler" name="yesnocancelbuttons" notext="Ne pas enregistrer" yestext="Enregistrer"/>
+ </notification>
+ <notification name="DeleteAvatarPick">
+ Supprimer le favori [PICK] ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="PromptGoToEventsPage">
+ Aller à la page web de [SECOND_LIFE] réservée aux événements ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="SelectProposalToView">
+ Veuillez sélectionner une proposition.
+ </notification>
+ <notification name="SelectHistoryItemToView">
+ Veuillez sélectionner un historique.
+ </notification>
+ <notification name="ResetShowNextTimeDialogs">
+ Souhaitez-vous réactiver tous les pop-ups que vous aviez désactivés ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="SkipShowNextTimeDialogs">
+ Voulez-vous désactiver tous les pop-ups qui peuvent être évités ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="CacheWillClear">
+ Le cache sera vidé après le redémarrage de [SECOND_LIFE].
+ </notification>
+ <notification name="CacheWillBeMoved">
+ Le cache sera déplacé après le redémarrage de [SECOND_LIFE].
+Remarque : cela videra le cache.
+ </notification>
+ <notification name="ChangeConnectionPort">
+ Les paramètres du port prendront effet après le redémarrage de [SECOND_LIFE].
+ </notification>
+ <notification name="ChangeSkin">
+ Le nouveau thème apparaîtra après le redémarrage de [SECOND_LIFE].
+ </notification>
+ <notification name="GoToAuctionPage">
+ Aller à la page web de [SECOND_LIFE] pour voir le détail des enchères ou enchérir ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="SaveChanges">
+ Enregistrer les changements ?
+ <usetemplate canceltext="Annuler" name="yesnocancelbuttons" notext="Ne pas enregistrer" yestext="Enregistrer"/>
+ </notification>
+ <notification name="GestureSaveFailedTooManySteps">
+ L&apos;enregistrement du geste a échoué.
+Il y a trop d&apos;étapes dans ce geste.
+Essayez d&apos;en supprimer quelques-unes.
+ </notification>
+ <notification name="GestureSaveFailedTryAgain">
+ L&apos;enregistrement du geste a échoué. Veuillez réessayer dans une minute.
+ </notification>
+ <notification name="GestureSaveFailedObjectNotFound">
+ Le geste n&apos;a pas pu être enregistré car l&apos;objet ou l&apos;inventaire de l&apos;objet associé n&apos;a pas été trouvé.
+L&apos;objet est peut-être inaccessible ou a peut-être été supprimé.
+ </notification>
+ <notification name="GestureSaveFailedReason">
+ Une erreur est survenue lors de l&apos;enregistrement du geste, suite au problème suivant : [REASON]. Essayez d&apos;enregistrer votre geste ultérieurement.
+ </notification>
+ <notification name="SaveNotecardFailObjectNotFound">
+ La note n&apos;a pas pu être enregistrée car l&apos;objet ou l&apos;inventaire de l&apos;objet associé n&apos;a pas été trouvé.
+L&apos;objet est peut-être inaccessible ou a peut-être été supprimé.
+ </notification>
+ <notification name="SaveNotecardFailReason">
+ Une erreur est survenue lors de l&apos;enregistrement de la note, suite au problème suivant : [REASON]. Essayez d&apos;enregistrer votre note ultérieurement.
+ </notification>
+ <notification name="ScriptCannotUndo">
+ Impossible d&apos;annuler tous les changements dans votre version du script.
+Souhaitez-vous charger la dernière version enregistrée sur le serveur ?
+(**Attention** Cette opération est irréversible.)
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="SaveScriptFailReason">
+ Une erreur est survenue lors de l&apos;enregistrement du script, suite au problème suivant : [REASON]. Essayez d&apos;enregistrer votre script ultérieurement.
+ </notification>
+ <notification name="SaveScriptFailObjectNotFound">
+ Impossible d&apos;enregistrer le script car l&apos;objet qui le contient est introuvable.
+L&apos;objet est peut-être inaccessible ou a peut-être été supprimé.
+ </notification>
+ <notification name="SaveBytecodeFailReason">
+ Une erreur est survenue lors de l&apos;enregistrement du script compilé, suite au problème suivant : [REASON]. Essayez d&apos;enregistrer votre script ultérieurement.
+ </notification>
+ <notification name="CouldNotStartStopScript">
+ Impossible de lancer ou d&apos;arrêter le script car l&apos;objet qui le contient est introuvable.
+L&apos;objet est peut-être inaccessible ou a peut-être été supprimé.
+ </notification>
+ <notification name="CannotDownloadFile">
+ Impossible de télécharger le fichier
+ </notification>
+ <notification name="CannotWriteFile">
+ Impossible d&apos;écrire le fichier [[FILE]]
+ </notification>
+ <notification name="UnsupportedHardware">
+ Avertissement : vous n&apos;avez pas la configuration système requise pour utiliser Second Life. Si vous continuez à utiliser Second Life, votre performance risque d&apos;être moindre. Malheureusement, nous n&apos;offrons aucune assistance pour les problèmes de configuration système.
+
+MINSPECS
+Voulez-vous visiter [_URL] pour plus d&apos;informations ?
+ <url name="url" option="0">
+ http://secondlife.com/support/sysreqs.php?lang=fr
+ </url>
+ <usetemplate ignoretext="Lors de la détection de matériel non pris en charge" name="okcancelignore" notext="Non" yestext="Oui"/>
+ </notification>
+ <notification name="UnknownGPU">
+ Votre système contient une carte graphique que nous ne connaissons pas actuellement.
+Cela est souvent le cas avec le nouveau materiel qui n&apos;a pas encore été testé.
+Vous pourrez probablement utiliser Second Life sans problème, mais vous devrez peut-être ajuster les paramètres de vos graphiques.
+(Menu Édition &gt; Préférences &gt; Graphiques).
+ <form name="form">
+ <ignore name="ignore" text="Lors de la détection d&apos;une carte graphique inconnue"/>
+ </form>
+ </notification>
+ <notification name="DisplaySettingsNoShaders">
+ [SECOND_LIFE] a planté lors de l&apos;initialisation des drivers graphiques.
+La qualité des graphiques sera paramétrée sur Faible pour éviter certaines erreurs de driver fréquentes.
+Certaines fonctionnalités graphiques seront donc désactivées.
+Nous vous recommandons de mettre à jour les drivers de votre carte graphique.
+La qualité des graphiques peut être augmentée à la section Préférences &gt; Graphiques
+ </notification>
+ <notification name="RegionNoTerraforming">
+ Le terraformage est interdit dans la région [REGION].
+ </notification>
+ <notification name="CannotCopyWarning">
+ Vous n&apos;êtes pas autorisé à copier cet objet et il disparaîtra de votre inventaire si vous le donnez. Souhaitez-vous vraiment offrir cet objet ?
+ <usetemplate name="okcancelbuttons" notext="Non" yestext="Oui"/>
+ </notification>
+ <notification name="CannotGiveItem">
+ Impossible de donner l&apos;objet de l&apos;inventaire.
+ </notification>
+ <notification name="TransactionCancelled">
+ Transaction annulée.
+ </notification>
+ <notification name="TooManyItems">
+ Impossible de donner plus de 42 objets au cours d&apos;un seul transfert d&apos;inventaire.
+ </notification>
+ <notification name="NoItems">
+ Vous n&apos;êtes pas autorisé à transférer les objets sélectionnés.
+ </notification>
+ <notification name="CannotCopyCountItems">
+ Vous n&apos;êtes pas autorisé à copier [COUNT] des objets sélectionnés. Ces objets disparaîtront de votre inventaire.
+Souhaitez-vous vraiment donner ces objets ?
+ <usetemplate name="okcancelbuttons" notext="Non" yestext="Oui"/>
+ </notification>
+ <notification name="CannotGiveCategory">
+ Vous n&apos;êtes pas autorisé à transférer le dossier sélectionné.
+ </notification>
+ <notification name="FreezeAvatar">
+ Geler cet avatar ?
+Il ou elle ne pourra temporairement plus bouger, chatter, ou interagir dans le Monde.
+ <usetemplate canceltext="Annuler" name="yesnocancelbuttons" notext="Dégeler" yestext="Geler"/>
+ </notification>
+ <notification name="FreezeAvatarFullname">
+ Geler [AVATAR_NAME] ?
+Il ou elle ne pourra temporairement plus bouger, chatter, ou interagir dans le Monde.
+ <usetemplate canceltext="Annuler" name="yesnocancelbuttons" notext="Dégeler" yestext="Geler"/>
+ </notification>
+ <notification name="EjectAvatarFullname">
+ Expulser [AVATAR_NAME] de votre terrain ?
+ <usetemplate canceltext="Annuler" name="yesnocancelbuttons" notext="Expulser et bannir" yestext="Expulser"/>
+ </notification>
+ <notification name="EjectAvatarNoBan">
+ Expulser cet avatar de votre terrain ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="Expulser"/>
+ </notification>
+ <notification name="EjectAvatarFullnameNoBan">
+ Expulser [AVATAR_NAME] de votre terrain ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="Expulser"/>
+ </notification>
+ <notification name="AcquireErrorTooManyObjects">
+ Erreur d&apos;acquisition : trop d&apos;objets sélectionnés.
+ </notification>
+ <notification name="AcquireErrorObjectSpan">
+ Erreur d&apos;acquisition : les objets sont répartis dans plus d&apos;une région.
+Veuillez mettre tous les objets que vous souhaitez acquérir dans la même région.
+ </notification>
+ <notification name="PromptGoToCurrencyPage">
+ [EXTRA]
+
+Aller sur [URL] pour obtenir des informations sur l&apos;achat de devises ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="UnableToLinkObjects">
+ Impossible de lier ces [COUNT] objets.
+Vous pouvez lier un maximum de [MAX] objets.
+ </notification>
+ <notification name="CannotLinkIncompleteSet">
+ Vous ne pouvez lier que des ensembles d&apos;objets complets et vous devez choisir un minimum de deux objets.
+ </notification>
+ <notification name="CannotLinkModify">
+ Impossible de lier car vous n&apos;avez pas le droit de modifier tous les objets.
+
+Assurez-vous que vous êtes le propriétaire de tous les objets et qu&apos;aucun d&apos;eux n&apos;est verrouillé.
+ </notification>
+ <notification name="CannotLinkDifferentOwners">
+ Impossible de lier car les objets n&apos;ont pas tous le même propriétaire.
+
+Assurez-vous que vous êtes le propriétaire de tous les objets sélectionnés.
+ </notification>
+ <notification name="NoFileExtension">
+ Pas d&apos;extension pour le fichier suivant : &apos;[FILE]&apos;
+
+Assurez-vous que le fichier a l&apos;extension correcte.
+ </notification>
+ <notification name="InvalidFileExtension">
+ Extension de fichier [EXTENSION] invalide
+[VALIDS] attendu
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="CannotUploadSoundFile">
+ Impossible de lire le fichier son chargé :
+[FILE]
+ </notification>
+ <notification name="SoundFileNotRIFF">
+ Il semble que le fichier ne soit pas un fichier RIFF WAVE :
+[FILE]
+ </notification>
+ <notification name="SoundFileNotPCM">
+ Il semble que le fichier ne soit pas un fichier audio PCM WAVE :
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidChannelCount">
+ Le fichier contient un nombre de canaux invalide (doit être mono ou stéréo) :
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidSampleRate">
+ Le fichier ne semble pas être pris en charge (doit être 44,1 k) :
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidWordSize">
+ Le fichier ne semble pas être pris en charge (doit faire 8 ou 16 bit) :
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidHeader">
+ Impossible de trouver les données dans l&apos;en-tête WAV :
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidTooLong">
+ Le fichier audio est trop long (10 secondes maximum) :
+[FILE]
+ </notification>
+ <notification name="ProblemWithFile">
+ Problème avec le fichier [FILE] :
+
+[ERROR]
+ </notification>
+ <notification name="CannotOpenTemporarySoundFile">
+ Impossible d&apos;ouvrir le fichier son compressé temporaire : [FILE]
+ </notification>
+ <notification name="UnknownVorbisEncodeFailure">
+ Échec d&apos;encodage Vorbis inconnu sur : [FILE]
+ </notification>
+ <notification name="CannotEncodeFile">
+ Impossible d&apos;encoder le fichier : [FILE]
+ </notification>
+ <notification name="CorruptResourceFile">
+ Fichier ressource corrompu : [FILE]
+ </notification>
+ <notification name="UnknownResourceFileVersion">
+ Version de fichier ressource Linden inconnu : [FILE]
+ </notification>
+ <notification name="UnableToCreateOutputFile">
+ Impossible de créer le fichier de sortie : [FILE]
+ </notification>
+ <notification name="DoNotSupportBulkAnimationUpload">
+ Actuellement, nous ne prenons pas en charge le chargement de lots de fichiers d&apos;animation.
+ </notification>
+ <notification name="CannotUploadReason">
+ Impossible de charger [FILE] suite au problème suivant : [REASON]
+Veuillez réessayer ultérieurement.
+ </notification>
+ <notification name="CannotCreateLandmarkNotOwner">
+ Vous ne pouvez pas créer de repère ici car le propriétaire du terrain ne l&apos;autorise pas.
+ </notification>
+ <notification name="CannotRecompileSelectObjectsNoScripts">
+ Impossible d&apos;effectuer les recompilations.
+Sélectionnez un objet avec un script.
+ </notification>
+ <notification name="CannotRecompileSelectObjectsNoPermission">
+ Impossible d&apos;effectuer les recompilations.
+
+Sélectionnez des objets qui ont des scripts et que vous pouvez modifier.
+ </notification>
+ <notification name="CannotResetSelectObjectsNoScripts">
+ Impossible d&apos;effectuer la réinitialisation.
+
+Veuillez sélectionner des objets avec des scripts.
+ </notification>
+ <notification name="CannotResetSelectObjectsNoPermission">
+ Impossible d&apos;effectuer la réinitialisation.
+
+Sélectionnez des objets qui ont des scripts et que vous pouvez modifier.
+ </notification>
+ <notification name="CannotSetRunningSelectObjectsNoScripts">
+ Impossible de définir les scripts sur « exécution ».
+
+Veuillez sélectionner des objets avec des scripts.
+ </notification>
+ <notification name="CannotSetRunningNotSelectObjectsNoScripts">
+ Impossible de définir les scripts sur « non-exécution ».
+
+Veuillez sélectionner des objets avec des scripts.
+ </notification>
+ <notification name="NoFrontmostFloater">
+ Aucun floater frontmost à sauvegarder.
+ </notification>
+ <notification name="SeachFilteredOnShortWords">
+ Votre requête a été modifiée et les mots trops courts ont été supprimés.
+
+Recherche effectuée : [FINALQUERY]
+ </notification>
+ <notification name="SeachFilteredOnShortWordsEmpty">
+ Vos termes de recherche étaient trop courts et aucune recherche n&apos;a été effectuée.
+ </notification>
+ <notification name="CouldNotTeleportReason">
+ Impossible de téléporter.
+[REASON]
+ </notification>
+ <notification name="invalid_tport">
+ Nous avons rencontré des problèmes en essayant de vous téléporter. Vous devrez peut-être vous reconnecter avant de pouvoir être téléporté. Si vous continuez à recevoir ce message, veuillez consulter le Support à la page suivante :
+www.secondlife.com/support
+ </notification>
+ <notification name="invalid_region_handoff">
+ Nous avons rencontré des problèmes en essayant de vous téléporter. Vous devrez peut-être vous reconnecter avant de pouvoir être téléporté. Si vous continuez à recevoir ce message, veuillez consulter le Support à la page suivante :
+www.secondlife.com/support
+ </notification>
+ <notification name="blocked_tport">
+ Désolé, la téléportation est bloquée actuellement. Veuillez réessayer dans un moment.
+Si vous ne parvenez toujours pas à être téléporté, déconnectez-vous puis reconnectez-vous pour résoudre le problème.
+ </notification>
+ <notification name="nolandmark_tport">
+ Désolé, le système n&apos;a pas réussi à localiser la destination de votre repère.
+ </notification>
+ <notification name="timeout_tport">
+ Désolé, la connexion vers votre lieu de téléportation n&apos;a pas abouti.
+Veuillez réessayer dans un moment.
+ </notification>
+ <notification name="noaccess_tport">
+ Désolé, vous n&apos;avez pas accès à cette destination.
+ </notification>
+ <notification name="missing_attach_tport">
+ Vos pieces-jointes ne sont pas encore arrivées. Attendez quelques secondes de plus ou déconnectez-vous puis reconnectez-vous avant d&apos;essayer de vous téléporter.
+ </notification>
+ <notification name="too_many_uploads_tport">
+ Le trafic vers cette région est bouché en ce moment. Votre téléportation ne pourra pas avoir lieu immédiatement. Veuillez réessayer dans quelques minutes ou bien aller dans une zone moins fréquentée.
+ </notification>
+ <notification name="expired_tport">
+ Désolé, votre demande de téléportation n&apos;a pas abouti assez rapidement. Veuillez réessayer dans quelques minutes.
+ </notification>
+ <notification name="expired_region_handoff">
+ Désolé, votre demande pour passer dans une autre région n&apos;a pas abouti assez rapidement. Veuillez réessayer dans quelques minutes.
+ </notification>
+ <notification name="no_host">
+ Impossible de trouver la destination de la téléportation. Il est possible que cette destination soit temporairement indisponible ou qu&apos;elle n&apos;existe plus. Veuillez réessayer dans quelques minutes.
+ </notification>
+ <notification name="no_inventory_host">
+ L&apos;inventaire est temporairement indisponible.
+ </notification>
+ <notification name="CannotSetLandOwnerNothingSelected">
+ Impossible de définir le propriétaire foncier :
+aucune parcelle sélectionnée.
+ </notification>
+ <notification name="CannotSetLandOwnerMultipleRegions">
+ Impossible de définir un propriétaire car la sélection couvre plusieurs régions. Veuillez sélectionner une zone plus petite et réessayer.
+ </notification>
+ <notification name="ForceOwnerAuctionWarning">
+ Cette parcelle est mise aux enchères. Définir un propriétaire annulerait les enchères, ce qui pourrait être gênant pour certains résidents si ces dernières ont commencé. Souhaitez-vous définir un propriétaire ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="CannotContentifyNothingSelected">
+ Problème :
+Aucune parcelle sélectionnée.
+ </notification>
+ <notification name="CannotContentifyNoRegion">
+ Problème :
+Aucune région sélectionnée.
+ </notification>
+ <notification name="CannotReleaseLandNothingSelected">
+ Impossible d&apos;abandonner le terrain :
+aucune parcelle sélectionnée.
+ </notification>
+ <notification name="CannotReleaseLandNoRegion">
+ Impossible d&apos;abandonner le terrain :
+la région est introuvable.
+ </notification>
+ <notification name="CannotBuyLandNothingSelected">
+ Impossible d&apos;acheter le terrain :
+aucune parcelle sélectionnée.
+ </notification>
+ <notification name="CannotBuyLandNoRegion">
+ Impossible d&apos;acheter le terrain :
+la région dans laquelle il est situé est introuvable.
+ </notification>
+ <notification name="CannotCloseFloaterBuyLand">
+ Vous ne pouvez pas fermer la fenêtre Acheter le terrain avant que Second Life n&apos;estime le montant de cette transaction.
+ </notification>
+ <notification name="CannotDeedLandNothingSelected">
+ Cession du terrain impossible :
+aucune parcelle sélectionnée.
+ </notification>
+ <notification name="CannotDeedLandNoGroup">
+ Cession du terrain impossible :
+aucun groupe sélectionné.
+ </notification>
+ <notification name="CannotDeedLandNoRegion">
+ Cession du terrain impossible :
+la région dans laquelle il est situé est introuvable.
+Veuillez utiliser Aide &gt; Signaler des bugs pour signaler le problème.
+ </notification>
+ <notification name="CannotDeedLandMultipleSelected">
+ Cession du terrain impossible :
+plusieurs parcelles sélectionnées.
+
+Essayez de ne sélectionner qu&apos;une seule parcelle.
+ </notification>
+ <notification name="ParcelCanPlayMedia">
+ Cette parcelle propose des flux média.
+Pour jouer des flux média, il faut avoir une connexion internet rapide.
+
+Jouer les flux média lorsqu&apos;ils sont disponibles ?
+(Vous pourrez modifier cette option ultérieurement sous Préférences &gt; Audio et vidéo.)
+ <usetemplate name="okcancelbuttons" notext="Désactiver" yestext="Jouer le média"/>
+ </notification>
+ <notification name="CannotDeedLandWaitingForServer">
+ Cession du terrain impossible :
+rapport de propriété sur le point d&apos;être envoyé par le serveur.
+
+Merci de réessayer.
+ </notification>
+ <notification name="CannotDeedLandNoTransfer">
+ Cession du terrain impossible :
+la cession de terrain est interdite dans la région [REGION].
+ </notification>
+ <notification name="CannotReleaseLandWatingForServer">
+ Impossible d&apos;abandonner le terrain :
+mise à jour des informations sur la parcelle sur le point d&apos;être envoyée par le serveur.
+
+Veuillez réessayer dans quelques secondes.
+ </notification>
+ <notification name="CannotReleaseLandSelected">
+ Impossible d&apos;abandonner le terrain :
+vous n&apos;êtes pas le propriétaire des parcelles sélectionnées.
+
+Veuillez sélectionner une seule parcelle.
+ </notification>
+ <notification name="CannotReleaseLandDontOwn">
+ Impossible d&apos;abandonner le terrain :
+vous n&apos;avez pas le droit de libérer cette parcelle.
+Les parcelles qui vous appartiennent sont en vert.
+ </notification>
+ <notification name="CannotReleaseLandRegionNotFound">
+ Impossible d&apos;abandonner le terrain :
+la région dans laquelle il est situé est introuvable.
+
+Veuillez utiliser Aide &gt; Signaler un bug pour signaler le problème.
+ </notification>
+ <notification name="CannotReleaseLandNoTransfer">
+ Impossible d&apos;abandonner le terrain :
+le transfert de terrain est interdit dans la région [REGION].
+ </notification>
+ <notification name="CannotReleaseLandPartialSelection">
+ Impossible d&apos;abandonner le terrain :
+vous devez sélectionner une parcelle entière pour la libérer.
+
+Sélectionnez toute la parcelle ou divisez-la d&apos;abord.
+ </notification>
+ <notification name="ReleaseLandWarning">
+ Vous vous apprêtez à libérer [AREA] m² de terrain.
+Si vous libérez cette parcelle, elle sera supprimée de votre patrimoine, mais vous ne recevrez pas de L$.
+
+Libérer ce terrain ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="CannotDivideLandNothingSelected">
+ Division du terrain impossible :
+
+aucune parcelle sélectionnée.
+ </notification>
+ <notification name="CannotDivideLandPartialSelection">
+ Division du terrain impossible :
+
+Toute la parcelle est sélectionnée.
+Sélectionnez une partie de la parcelle uniquement.
+ </notification>
+ <notification name="LandDivideWarning">
+ Si vous divisez ce terrain, cette parcelle sera partagée en deux et chaque parcelle pourra avoir ses propres paramètres. Après cette opération, certains paramètres reviendront aux paramètres par défaut.
+
+Diviser le terrain ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="CannotDivideLandNoRegion">
+ Division du terrain impossible :
+la région dans laquelle il est situé est introuvable.
+
+Veuillez utiliser Aide &gt; Signaler un bug pour signaler le problème.
+ </notification>
+ <notification name="CannotJoinLandNoRegion">
+ Impossible de fusionner le terrain :
+la région dans laquelle il est situé est introuvable.
+
+Veuillez utiliser Aide &gt; Signaler un bug pour signaler le problème.
+ </notification>
+ <notification name="CannotJoinLandNothingSelected">
+ Impossible de fusionner le terrain :
+aucune parcelle sélectionnée.
+ </notification>
+ <notification name="CannotJoinLandEntireParcelSelected">
+ Impossible de fusionner le terrain :
+vous avez sélectionné une seule parcelle.
+
+Sélectionnez le terrain sur les deux parcelles.
+ </notification>
+ <notification name="CannotJoinLandSelection">
+ Impossible de fusionner le terrain :
+vous devez sélectionner au moins deux parcelles.
+
+Sélectionnez le terrain sur les deux parcelles.
+ </notification>
+ <notification name="JoinLandWarning">
+ En fusionnant ce terrain, vous créerez une grande parcelle composée de toutes les parcelles se trouvant dans le rectangle sélectionné.
+Vous devrez réinitialiser le nom et les options de la nouvelle parcelle.
+
+Fusionner le terrain ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="ShowOwnersHelp">
+ Afficher les propriétaires :
+La couleur des parcelles indique le type de propriété.
+
+Vert = votre terrain
+Turquoise = le terrain de votre groupe
+Rouge = appartenant à d&apos;autres
+Jaune = en vente
+Mauve = aux enchères
+Gris = public
+ </notification>
+ <notification name="ConfirmNotecardSave">
+ Cette note doit être sauvegardée avant que l&apos;objet ne puisse être copié ou visualisé. Enregistrer la note ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmItemCopy">
+ Copier cet objet dans votre inventaire ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="Copier"/>
+ </notification>
+ <notification name="ResolutionSwitchFail">
+ Échec du changement de résolution (à [RESX], de [RESY])
+ </notification>
+ <notification name="ErrorUndefinedGrasses">
+ Erreur : herbes non identifiées : [SPECIES]
+ </notification>
+ <notification name="ErrorUndefinedTrees">
+ Erreur : arbres non identifiés : [SPECIES]
+ </notification>
+ <notification name="CannotSaveWearableOutOfSpace">
+ Impossible de sauvegarder [NAME]. Pour pouvoir sauvegarder ce fichier, vous devez d&apos;abord libérer de la mémoire sur votre ordinateur.
+ </notification>
+ <notification name="CannotSaveToAssetStore">
+ Impossible de sauvegarder le fichier [NAME] dans la base de données centrale.
+Cette erreur est généralement temporaire. Veuillez éditer et sauvegarder l&apos;élément endossable à nouveau d&apos;ici quelques minutes.
+
+Si le problème persiste, veuillez cliquer sur Aide | Signaler un bug dans le menu déroulant en indiquant les détails de votre connexion.
+ </notification>
+ <notification name="YouHaveBeenLoggedOut">
+ Vous avez été déconnecté(e) de [SECOND_LIFE] :
+ [MESSAGE]
+Vous pouvez afficher vos messages instantanés et votre chat en cliquant sur Afficher IM et chat. Sinon, cliquez sur Quitter pour quitter immédiatement [SECOND_LIFE].
+ <usetemplate name="okcancelbuttons" notext="Quitter" yestext="Afficher IM et chat"/>
+ </notification>
+ <notification name="OnlyOfficerCanBuyLand">
+ Impossible d&apos;acheter du terrain pour le groupe :
+Vous n&apos;avez pas le droit d&apos;acheter de terrain pour votre groupe.
+ </notification>
+ <notification label="Devenir amis" name="AddFriend">
+ Vous pouvez suivre les déplacements de vos amis sur la carte et voir lorsqu&apos;ils se connectent.
+
+Proposer à [NAME] de devenir votre ami(e) ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification label="Devenir amis" name="AddFriendWithMessage">
+ Vous pouvez suivre les déplacements de vos amis sur la carte et voir lorsqu&apos;ils se connectent.
+
+Proposer à [NAME] de devenir votre ami(e) ?
+ <form name="form">
+ <input name="message" type="text">
+ Voulez-vous être mon ami(e) ?
+ </input>
+ <button name="Offer" text="OK"/>
+ <button name="Cancel" text="Annuler"/>
+ </form>
+ </notification>
+ <notification name="RemoveFromFriends">
+ Voulez-vous supprimer [FIRST_NAME] [LAST_NAME] de votre liste d&apos;amis ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="RemoveMultipleFromFriends">
+ Voulez-vous supprimer plusieurs résidents de votre liste d&apos;amis ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="GodDeleteAllScriptedPublicObjectsByUser">
+ Êtes-vous certain de vouloir supprimer tous les objets scriptés appartenant à ** [AVATAR_NAME] ** sur tous les terrains des autres résidents dans cette région ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="GodDeleteAllScriptedObjectsByUser">
+ Êtes-vous certain de vouloir supprimer tous les objets scriptés appartenant à ** [AVATAR_NAME] ** sur tous les terrains de cette région ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="GodDeleteAllObjectsByUser">
+ Êtes-vous certain de vouloir supprimer tous les objets (scriptés ou pas) appartenant à ** [AVATAR_NAME] ** sur tous les terrains de cette région ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="BlankClassifiedName">
+ Vous devez choisir un nom pour votre petite annonce.
+ </notification>
+ <notification name="MinClassifiedPrice">
+ Le coût de l&apos;annonce doit être de [MIN_PRICE] L$ minimum.
+
+Veuillez saisir un montant plus élevé.
+ </notification>
+ <notification name="ConfirmObjectDeleteLock">
+ Au moins un des objets que vous avez sélectionnés est verrouillé.
+
+Êtes-vous certain de vouloir supprimer ces objets ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteNoCopy">
+ Au moins un des objets que vous avez sélectionnés n&apos;est pas copiable.
+
+Êtes-vous certain de vouloir supprimer ces objets ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteNoOwn">
+ Au moins un des objets que vous avez sélectionnés ne vous appartient pas.
+
+Êtes-vous certain de vouloir supprimer ces objets ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteLockNoCopy">
+ Au moins un des objets est verrouillé.
+Au moins un des objets n&apos;est pas copiable.
+
+Êtes-vous certain de vouloir supprimer ces objets ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteLockNoOwn">
+ Au moins un des objets est verrouillé.
+Au moins un des objets ne vous appartient pas.
+
+Êtes-vous certain de vouloir supprimer ces objets ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteNoCopyNoOwn">
+ Au moins un des objets n&apos;est pas copiable.
+Au moins un des objets ne vous appartient pas.
+
+Êtes-vous certain de vouloir supprimer ces objets ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteLockNoCopyNoOwn">
+ Au moins un des objets est verrouillé.
+Au moins un des objets n&apos;est pas copiable.
+Au moins un des objets ne vous appartient pas.
+
+Êtes-vous certain de vouloir supprimer ces objets ?
+ <usetemplate name="okcancelbuttons" notext="annuler" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectTakeLock">
+ Au moins un des objets est verrouillé.
+
+Êtes-vous certain de vouloir prendre ces objets ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectTakeNoOwn">
+ Vous n&apos;êtes pas le propriétaire de tous les objets que vous prenez.
+Si vous continuez, les droits accordés au prochain propriétaire seront activés et vous risquez de ne plus pouvoir modifier ou copier les objets.
+
+Êtes-vous certain de vouloir prendre ces objets ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectTakeLockNoOwn">
+ Au moins un des objets est verrouillé.
+Vous n&apos;êtes pas le propriétaire de tous les objets que vous prenez.
+Si vous continuez, les droits accordés au prochain propriétaire seront activés et vous risquez de ne plus pouvoir modifier ou copier les objets.
+Par contre, vous pouvez prendre les objets sélectionnés.
+
+Êtes-vous certain de vouloir prendre ces objets ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="CantBuyLandAcrossMultipleRegions">
+ Impossible d&apos;acheter le terrain car la sélection couvre plusieurs régions.
+
+Veuillez sélectionner une zone plus petite et réessayer.
+ </notification>
+ <notification name="DeedLandToGroup">
+ Si vous cédez ce terrain, le groupe devra avoir les moyens de le prendre en charge.
+Le prix de la vente du terrain n&apos;est pas remboursé par le propriétaire. Si la parcelle que vous cédez se vend, le prix de la vente sera divisé en parts égales parmi les membres du groupe.
+
+Céder ces [AREA] m² de terrain au groupe [GROUP_NAME] ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="DeedLandToGroupWithContribution">
+ Si vous cédez ce terrain, le groupe devra avoir les moyens de le prendre en charge.
+La cession incluera une contribution de terrain simultanée au groupe de [FIRST_NAME] [LAST_NAME].
+Le prix de la vente du terrain n&apos;est pas remboursé par le propriétaire. Si la parcelle que vous cédez se vend, le prix de la vente sera divisé en parts égales parmi les membres du groupe.
+
+Céder ces [AREA] m² de terrain au groupe [GROUP_NAME] ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="DisplaySetToSafe">
+ Les paramètres d&apos;affichage sont au niveau le plus sûr, comme vous l&apos;aviez indiqué.
+ </notification>
+ <notification name="DisplaySetToRecommended">
+ Vos paramètres d&apos;affichage ont été réglés avec une marge de sécurité en fonction de votre configuration système.
+ </notification>
+ <notification name="ErrorMessage">
+ [ERROR_MESSAGE]
+ </notification>
+ <notification name="AvatarMoved">
+ L&apos;emplacement [TYPE] n&apos;est pas disponible actuellement. [HELP]
+Vous avez été déplacé dans une région voisine.
+ </notification>
+ <notification name="ClothingLoading">
+ Vos habits sont toujours en train d&apos;être téléchargés.
+Vous pouvez utiliser [SECOND_LIFE] sans problème, les autres résidents vous voient normalement.
+ <form name="form">
+ <ignore name="ignore" text="Lorsque les habits prennent longtemps à télécharger"/>
+ </form>
+ </notification>
+ <notification name="FirstRun">
+ L&apos;installation de [SECOND_LIFE] est terminée.
+
+S&apos;il s&apos;agit de la première fois que vous utilisez [SECOND_LIFE], vous devrez créer un compte avant de pouvoir vous connecter.
+Retourner sur www.secondlife.com pour créer un nouveau compte ?
+ <usetemplate name="okcancelbuttons" notext="Continuer" yestext="Nouveau compte..."/>
+ </notification>
+ <notification name="LoginPacketNeverReceived">
+ Vous avez des problèmes à vous connecter. Il peut s&apos;agir d&apos;un problème avec votre connexion internet ou les serveurs de Second Life.
+
+Nous vous conseillons de vérifier votre connexion Internet et de réessayer dans quelques minutes, de cliquer sur Aide, ou bien de cliquer sur Téléporter pour être téléporté vers votre domicile.
+ <form name="form">
+ <button name="OK" text="OK"/>
+ <button name="Help" text="Aide"/>
+ <button name="Teleport" text="Téléporter"/>
+ </form>
+ </notification>
+ <notification name="WelcomeChooseSex">
+ Votre personnage va apparaître dans un moment.
+
+Pour marcher, utilisez les flèches de direction.
+Appuyez sur F1 pour obtenir de l&apos;aide ou en savoir plus sur [SECOND_LIFE].
+Choisissez un avatar homme ou femme.
+Vous pourrez revenir sur votre décision plus tard.
+ <usetemplate name="okcancelbuttons" notext="Femme" yestext="Homme"/>
+ </notification>
+ <notification name="NotEnoughCurrency">
+ [NAME] [PRICE] L$ Vous n&apos;avez pas suffisamment de L$ pour faire cela.
+ </notification>
+ <notification name="GrantedModifyRights">
+ Vous avez reçu le droit de modifier les objets de [FIRST_NAME] [LAST_NAME].
+ </notification>
+ <notification name="RevokedModifyRights">
+ Vous n&apos;avez plus le droit de modifier les objets de [FIRST_NAME] [LAST_NAME].
+ </notification>
+ <notification name="FlushMapVisibilityCaches">
+ Cela videra le cache cartographique de cette région.
+Cela n&apos;est vraiment utile que pour faire du débugage.
+(En production, attendez 5 minutes. Les cartes seront mises à jour après reconnexion.)
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="BuyOneObjectOnly">
+ Impossible d&apos;acheter plus d&apos;un objet à la fois. Veuillez ne sélectionner qu&apos;un seul objet.
+ </notification>
+ <notification name="OnlyCopyContentsOfSingleItem">
+ Impossible de copier les contenus de plus d&apos;un objet à la fois.
+Veuillez ne sélectionner qu&apos;un seul objet.
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="KickUsersFromRegion">
+ Téléporter tous les résidents de cette région chez eux ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="EstateObjectReturn">
+ Etes-vous certain de vouloir renvoyer les objets appartenant à [USER_NAME] ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="InvalidTerrainBitDepth">
+ Impossible de definir les textures de la région :
+La texture du terrain [TEXTURE_NUM] a une profondeur invalide ([TEXTURE_BIT_DEPTH]).
+
+Remplacer la texture [TEXTURE_NUM] avec une image de 24 bits, 512 X 512, ou plus petite, puis cliquez à nouveau sur Appliquer.
+ </notification>
+ <notification name="InvalidTerrainSize">
+ Impossible de definir les textures de la région :
+La texture du terrain [TEXTURE_NUM] est trop volumineuse ([TEXTURE_SIZE_X] X [TEXTURE_SIZE_Y]).
+
+Remplacer la texture [TEXTURE_NUM] avec une image de 24 bits, 512 X 512, ou plus petite, puis cliquez à nouveau sur Appliquer.
+ </notification>
+ <notification name="RawUploadStarted">
+ Le chargement a commencé. Cela va prendre une à deux minutes,
+suivant votre vitesse de connexion.
+ </notification>
+ <notification name="ConfirmBakeTerrain">
+ Etes-vous sûr(e) de vouloir figer le relief actuel, en faire le point central des limites d&apos;élévation/abaissement de relief et la valeur par défaut du bouton Annuler modification ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="MaxAllowedAgentOnRegion">
+ Vous ne pouvez pas autoriser plus de [MAX_AGENTS] résidents.
+ </notification>
+ <notification name="MaxBannedAgentsOnRegion">
+ Vous ne pouvez pas bannir plus de [MAX_BANNED] résidents.
+ </notification>
+ <notification name="MaxAgentOnRegionBatch">
+ Echec lors de la tentative d&apos;ajout de [NUM_ADDED] agents :
+Dépasse la limite fixée à [MAX_AGENTS] [LIST_TYPE] de [NUM_EXCESS].
+ </notification>
+ <notification name="MaxAllowedGroupsOnRegion">
+ Vous ne pouvez pas avoir plus que [MAX_GROUPS] groupes autorisés.
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="Figer"/>
+ </notification>
+ <notification name="MaxManagersOnRegion">
+ Vous ne pouvez avoir que [MAX_MANAGER] gérants de domaine.
+ </notification>
+ <notification name="OwnerCanNotBeDenied">
+ Impossible d&apos;ajouter le propriétaire du domaine à la liste des résidents bannis.
+ </notification>
+ <notification name="CanNotChangeAppearanceUntilLoaded">
+ Impossible de changer d&apos;apparence jusqu&apos;à ce que les habits et la silhouette soient chargés.
+ </notification>
+ <notification name="ClassifiedMustBeAlphanumeric">
+ Le nom de votre petite annonce doit commencer par un chiffre ou une lettre (A à Z). La ponctuation n&apos;est pas autorisée.
+ </notification>
+ <notification name="CantSetBuyObject">
+ Cet objet n&apos;est pas à vendre.
+Veuillez choisir un objet à vendre et réessayer.
+ </notification>
+ <notification name="FinishedRawDownload">
+ Chargement du fichier de terrain raw effectué vers :
+[DOWNLOAD_PATH].
+ </notification>
+ <notification name="DownloadWindowsMandatory">
+ Une nouvelle version de [SECOND_LIFE] est disponible.
+[MESSAGE]
+Pour utiliser [SECOND_LIFE] vous devez télécharger cette mise à jour.
+ <usetemplate name="okcancelbuttons" notext="Quitter" yestext="Télécharger"/>
+ </notification>
+ <notification name="DownloadWindows">
+ Une mise à jour de [SECOND_LIFE] est disponible.
+[MESSAGE]
+Cette mise à jour n&apos;est pas requise mais si vous voulez une meilleure performance et plus de stabilité, nous vous recommandons de l&apos;installer.
+ <usetemplate name="okcancelbuttons" notext="Continuer" yestext="Télécharger"/>
+ </notification>
+ <notification name="DownloadWindowsReleaseForDownload">
+ Une mise à jour de [SECOND_LIFE] est disponible.
+[MESSAGE]
+Cette mise à jour n&apos;est pas requise mais si vous voulez une meilleure performance et plus de stabilité, nous vous recommandons de l&apos;installer.
+ <usetemplate name="okcancelbuttons" notext="Continuer" yestext="Télécharger"/>
+ </notification>
+ <notification name="DownloadMacMandatory">
+ Une nouvelle version de [SECOND_LIFE] est disponible.
+[MESSAGE]
+Pour utiliser [SECOND_LIFE] vous devez télécharger cette mise à jour.
+
+Télécharger vers le dossier Applications ?
+ <usetemplate name="okcancelbuttons" notext="Quitter" yestext="Télécharger"/>
+ </notification>
+ <notification name="DownloadMac">
+ Une mise à jour de [SECOND_LIFE] est disponible.
+[MESSAGE]
+Cette mise à jour n&apos;est pas requise mais si vous voulez une meilleure performance et plus de stabilité, nous vous recommandons de l&apos;installer.
+
+Télécharger vers le dossier Applications ?
+ <usetemplate name="okcancelbuttons" notext="Continuer" yestext="Télécharger"/>
+ </notification>
+ <notification name="DownloadMacReleaseForDownload">
+ Une mise à jour de [SECOND_LIFE] est disponible.
+[MESSAGE]
+Cette mise à jour n&apos;est pas requise mais si vous voulez une meilleure performance et plus de stabilité, nous vous recommandons de l&apos;installer.
+
+Télécharger vers le dossier Applications ?
+ <usetemplate name="okcancelbuttons" notext="Continuer" yestext="Télécharger"/>
+ </notification>
+ <notification name="DeedObjectToGroup">
+ Si vous cédez cet objet, le groupe :
+* recevra les L$ versés pour l&apos;objet ;
+ <usetemplate ignoretext="Lors de la cession d&apos;objets au groupe" name="okcancelignore" notext="Annuler" yestext="Céder"/>
+ </notification>
+ <notification name="WebLaunchExternalTarget">
+ Ouvrir votre navigateur web système pour afficher ce contenu ?
+ <usetemplate ignoretext="Lors de l&apos;ouverture de votre navigateur système pour afficher une page web" name="okcancelignore" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchJoinNow">
+ Aller sur www.secondlife.com pour gérer votre compte ?
+ <usetemplate ignoretext="Lors de l&apos;ouverture du navigateur web pour gérer votre compte" name="okcancelignore" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchBugReport101">
+ Pour apprendre à signaler correctement des bugs, consultez le Wiki de [SECOND_LIFE].
+ <usetemplate ignoretext="Lors de l&apos;ouverture du navigateur web pour consulter le Wiki et apprendre à signaler des bugs" name="okcancelignore" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchSecurityIssues">
+ Pour apprendre à signaler un problème de sécurité, consultez le Wiki de [SECOND_LIFE].
+ <usetemplate ignoretext="Lors de l&apos;ouverture du navigateur web pour consulter la page Wiki sur les problèmes de sécurité." name="okcancelignore" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchQAWiki">
+ Consultez le Wiki sur l&apos;Assurance Qualité de [SECOND_LIFE].
+ <usetemplate ignoretext="Lors de l&apos;ouverture du navigateur web pour consulter la page Wiki sur l&apos;Assurance Qualité." name="okcancelignore" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchPublicIssue">
+ Pour signaler des bugs et autres problèmes, utilisez le JIRA de [SECOND_LIFE].
+ <usetemplate ignoretext="Lors de l&apos;ouverture du navigateur web pour consulter le JIRA" name="okcancelignore" notext="Annuler" yestext="Aller sur cette page"/>
+ </notification>
+ <notification name="WebLaunchPublicIssueHelp">
+ Pour apprendre à utiliser JIRA, consultez le Wiki de [SECOND_LIFE].
+ <usetemplate ignoretext="Lors de l&apos;ouverture du navigateur web pour consulter la page Wiki sur le JIRA" name="okcancelignore" notext="Annuler" yestext="Aller sur cette page"/>
+ </notification>
+ <notification name="WebLaunchSupportWiki">
+ Visitez le blog officiel des Lindens pour les dernières nouvelles et informations.
+ <usetemplate ignoretext="Lors de l&apos;ouverture du navigateur web pour consulter le blog" name="okcancelignore" notext="Annuler" yestext="Aller à la page"/>
+ </notification>
+ <notification name="WebLaunchLSLGuide">
+ Consulter le Guide guide pour l&apos;écriture de scripts pour obtenir de l&apos;aide ?
+ <usetemplate ignoretext="Lors de l&apos;ouverture du navigateur web pour voir le Guide pour l&apos;écriture de scripts" name="okcancelignore" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchLSLWiki">
+ Consulter le Wiki LSL pour de l&apos;aide sur les scripts ?
+ <usetemplate ignoretext="Lors de l&apos;ouverture du navigateur web pour consulter le Guide sur l&apos;écriture de scripts" name="okcancelignore" notext="Annuler" yestext="Aller à la page"/>
+ </notification>
+ <notification name="ReturnToOwner">
+ Êtes-vous certain de vouloir renvoyer les objets sélectionnés à leur propriétaire ? Les objets donnés transférables seront renvoyés à leur ancien propriétaire.
+
+*Avertissement* Les objets non transférables seront supprimés !
+ <usetemplate ignoretext="Lors du renvoi d&apos;objets à leurs propriétaires" name="okcancelignore" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="GroupLeaveConfirmMember">
+ Vous êtes actuellement membre du groupe [GROUP].
+Quitter le groupe ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmKick">
+ Souhaitez-vous vraiment éjecter tous les utilisateurs de la grille ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="Éjecter tous"/>
+ </notification>
+ <notification name="MuteLinden">
+ Désolé, vous ne pouvez pas ignorer un Linden.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="CannotStartAuctionAlreadyForSale">
+ Vous ne pouvez pas démarrer des enchères sur une parcelle déjà en vente. Si vous êtes certain de vouloir démarrer des enchères, mettez fin à la vente.
+ </notification>
+ <notification label="Échec de la fonction Ignorer les objets par nom" name="MuteByNameFailed">
+ Vous ignorez déjà ce résident.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="RemoveItemWarn">
+ Si vous supprimez des contenus, vous risquez d&apos;endommager l&apos;objet. Souhaitez-vous supprimer cet objet ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="CantOfferCallingCard">
+ Impossible d&apos;offrir une carte de visite actuellement. Veuillez réessayer dans un moment.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="CantOfferFriendship">
+ Impossible de proposer votre amitié actuellement. Veuillez réessayer dans un moment.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="BusyModeSet">
+ Mode occupé activé.
+Les chats et les messages instantanés ne s&apos;afficheront pas. Vous répondrez aux messages instantanés en utilisant la réponse automatique que vous avez créée. Toutes les propositions de téléportation seront refusées. Tous objets envoyés iront dans la corbeille.
+ <usetemplate ignoretext="Lors de l&apos;utilisation du mode Occupé" name="okignore" yestext="OK"/>
+ </notification>
+ <notification name="JoinedTooManyGroupsMember">
+ Vous appartenez déjà à un nombre élevé de groupes et nous ne pouvez pas en rejoindre un nouveau. Avant de pouvoir rejoindre ce groupe, vous devez en quitter un ou refuser cette offre.
+Pour quitter un groupe, sélectionnez l&apos;option Groupe dans le menu Éditer.
+[NAME] vous invite à rejoindre un groupe.
+[INVITE]
+ <usetemplate name="okcancelbuttons" notext="Refuser" yestext="Rejoindre"/>
+ </notification>
+ <notification name="KickUser">
+ Éjecter cet utilisateur avec quel message ?
+ <form name="form">
+ <input name="message" type="text">
+ Un administrateur vous a déconnecté.
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annuler"/>
+ </form>
+ </notification>
+ <notification name="KickAllUsers">
+ Éjecter tous les résidents actuellement en ligne avec quel message ?
+ <form name="form">
+ <input name="message" type="text">
+ Un administrateur vous a déconnecté.
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annuler"/>
+ </form>
+ </notification>
+ <notification name="FreezeUser">
+ Geler cet utilisateur avec quel message ?
+ <form name="form">
+ <input name="message" type="text">
+ Vous avez été gelé. Vous ne pouvez ni bouger ni chatter. Un administrateur va vous envoyer un message instantané (IM).
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annuler"/>
+ </form>
+ </notification>
+ <notification name="UnFreezeUser">
+ Dégeler cet utilisateur avec quel message ?
+ <form name="form">
+ <input name="message" type="text">
+ Vous n&apos;êtes plus gelé.
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annuler"/>
+ </form>
+ </notification>
+ <notification name="OfferTeleport">
+ Proposez une téléportation avec le message suivant ?
+ <form name="form">
+ <input name="message" type="text">
+ On se rejoint à [REGION] ?
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annuler"/>
+ </form>
+ </notification>
+ <notification name="OfferTeleportFromGod">
+ Demander au résident de venir vous rejoindre ?
+ <form name="form">
+ <input name="message" type="text">
+ On se rejoint à [REGION] ?
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annuler"/>
+ </form>
+ </notification>
+ <notification name="TeleportFromLandmark">
+ Êtes-vous certain de vouloir être téléporté ?
+ <usetemplate ignoretext="Lors de la téléportation depuis un repère de l&apos;inventaire" name="okcancelignore" notext="Annuler" yestext="Téléporter"/>
+ </notification>
+ <notification label="Envoyer un message à tout le monde dans votre domaine" name="MessageEstate">
+ Saisissez un message court qui sera envoyé à tous les résidents se trouvant actuellement sur votre domaine.
+ <form name="form">
+ <input name="message" type="text"/>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annuler"/>
+ </form>
+ </notification>
+ <notification label="Modifier un domaine Linden" name="ChangeLindenEstate">
+ Vous vous apprêtez à modifier un domaine appartenant aux Lindens (continent, zone réservée aux ados, orientation etc.).
+
+Cela est extrêmement délicat car l&apos;expérience des résidents est en jeu. Sur le continent, cela modifiera des milliers de régions et sera difficile à digérer pour le serveur.
+
+Continuer ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification label="Modifier l&apos;accès à un domaine Linden" name="ChangeLindenAccess">
+ Vous vous apprêtez à modifier la liste d&apos;accès à un domaine appartenant aux Linden (continent, zone réservée aux ados, orientation etc.).
+
+Cette action est délicate et ne doit être effectuée que pour appeler le hack autorisant des objets/L$ à être transférés à l&apos;intérieur/extérieur de la grille.
+Cette action modifiera des milliers de régions et sera difficile à digérer pour le serveur.
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification label="Choisir le domaine" name="EstateAllowedAgentAdd">
+ Ajouter à la liste des résidents autorisés uniquement pour ce domaine ou pour [ALL_ESTATES] ?
+ <usetemplate canceltext="Annuler" name="yesnocancelbuttons" notext="Tous les domaines" yestext="Ce domaine"/>
+ </notification>
+ <notification label="Choisir le domaine" name="EstateAllowedAgentRemove">
+ Supprimer de la liste des résidents autorisés uniquement pour ce domaine ou pour [ALL_ESTATES] ?
+ <usetemplate canceltext="Annuler" name="yesnocancelbuttons" notext="Tous les domaines" yestext="Ce domaine"/>
+ </notification>
+ <notification label="Choisir le domaine" name="EstateAllowedGroupAdd">
+ Ajouter à la liste des groupes autorisés uniquement pour ce domaine ou pour [ALL_ESTATES] ?
+ <usetemplate canceltext="Annuler" name="yesnocancelbuttons" notext="Tous les domaines" yestext="Ce domaine"/>
+ </notification>
+ <notification label="Choisir le domaine" name="EstateAllowedGroupRemove">
+ Supprimer de la liste des groupes autorisés uniquement pour ce domaine ou pour [ALL_ESTATES] ?
+ <usetemplate canceltext="Annuler" name="yesnocancelbuttons" notext="Tous les domaines" yestext="Ce domaine"/>
+ </notification>
+ <notification label="Choisir le domaine" name="EstateBannedAgentAdd">
+ Refuser l&apos;accès à ce domaine uniquement ou à [ALL_ESTATES] ?
+ <usetemplate canceltext="Annuler" name="yesnocancelbuttons" notext="Tous les domaines" yestext="Ce domaine"/>
+ </notification>
+ <notification label="Choisir le domaine" name="EstateBannedAgentRemove">
+ Supprimer ce résident de la liste des résidents bannis pour ce domaine uniquement ou pour [ALL_ESTATES] ?
+ <usetemplate canceltext="Annuler" name="yesnocancelbuttons" notext="Tous les domaines" yestext="Ce domaine"/>
+ </notification>
+ <notification label="Choisir le domaine" name="EstateManagerAdd">
+ Ajouter un gérant de domaine pour ce domaine uniquement ou pour [ALL_ESTATES] ?
+ <usetemplate canceltext="Annuler" name="yesnocancelbuttons" notext="Tous les domaines" yestext="Ce domaine"/>
+ </notification>
+ <notification label="Choisir le domaine" name="EstateManagerRemove">
+ Supprimer le gérant de domaine pour ce domaine uniquement ou pour [ALL_ESTATES] ?
+ <usetemplate canceltext="Annuler" name="yesnocancelbuttons" notext="Tous les domaines" yestext="Ce domaine"/>
+ </notification>
+ <notification label="Confirmer" name="EstateKickUser">
+ Éjecter [EVIL_USER] de ce domaine ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="EstateChangeCovenant">
+ Êtes-vous certain de vouloir modifier le règlement du domaine ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="RegionEntryAccessBlocked">
+ Votre catégorie d&apos;accès ne vous autorise pas à pénétrer dans cette région. Cela vient peut-être du fait qu&apos;il manquait des informations pour valider votre âge.
+
+Vérifiez que vous avez la toute dernière version du client et consultez les pages d&apos;aide pour savoir comment accéder aux zones ayant ce niveau d&apos;accès.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="RegionEntryAccessBlocked_KB">
+ Votre catégorie d&apos;accès ne vous permet pas de pénétrer dans cette région.
+
+Souhaitez-vous en savoir plus sur les différentes catégories d&apos;accès ?
+ <url name="url">
+ http://wiki.secondlife.com/wiki/Pr%C3%A9sentation_des_cat%C3%A9gories_de_contenu_(KB)
+ </url>
+ <usetemplate ignoretext="Lorsque l&apos;accès à une région est bloqué à cause de la catégorie d&apos;accès" name="okcancelignore" notext="Fermer" yestext="Consulter les pages d&apos;aide"/>
+ </notification>
+ <notification name="RegionEntryAccessBlocked_Notify">
+ Votre catégorie d&apos;accès ne vous permet pas de pénétrer dans cette région.
+ </notification>
+ <notification name="RegionEntryAccessBlocked_Change">
+ Votre catégorie d&apos;accès ne vous permet pas de pénétrer dans cette région.
+
+En cliquant sur Modifier les préférences, vous pourrez changer votre catégorie d&apos;accès et pénétrer dans la région. À partir de maintenant, vous pouvez rechercher et accéder au contenu [REGIONMATURITY]. Vous pouvez modifier ce paramètre à partir du menu Édition &gt; Préférences... &gt; Général.
+ <form name="form">
+ <button
+ name="OK"
+ text="Modifier les Préférences"/>
+ <button
+ default="true"
+ name="Cancel"
+ text="Fermer"/>
+ <ignore name="ignore" text="Lorsque l&apos;accès à une région est bloqué à cause des préférences concernant la catégorie d&apos;accès"/>
+ </form>
+ </notification>
+ <notification name="LandClaimAccessBlocked">
+ Votre catégorie d&apos;accès ne vous permet pas de réclamer cette région. Cela vient peut-être du fait qu&apos;il manquait des informations pour valider votre âge.
+
+Vérifiez que vous avez la toute dernière version du client et consultez les pages d&apos;aide pour savoir comment accéder aux zones ayant ce niveau d&apos;accès.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="LandClaimAccessBlocked_KB">
+ Votre catégorie d&apos;accès ne vous permet pas de réclamer cette région.
+
+Souhaitez-vous en savoir plus sur les différentes catégories d&apos;accès ?
+ <url name="url">
+ http://wiki.secondlife.com/wiki/Pr%C3%A9sentation_des_cat%C3%A9gories_de_contenu_(KB)
+ </url>
+ <usetemplate ignoretext="Lorsqu&apos;une région ne peut pas être réclamée à cause de la catégorie d&apos;accès" name="okcancelignore" notext="Fermer" yestext="Consulter les pages d&apos;aide"/>
+ </notification>
+ <notification name="LandClaimAccessBlocked_Notify">
+ Votre catégorie d&apos;accès ne vous autorise pas à réclamer cette région.
+ </notification>
+ <notification name="LandClaimAccessBlocked_Change">
+ Votre catégorie d&apos;accès ne vous permet pas de réclamer cette région.
+
+En cliquant sur Modifier les préférences, vous pourrez changer votre catégorie d&apos;accès et pénétrer dans la région. À partir de maintenant, vous pouvez rechercher et accéder au contenu [REGIONMATURITY]. Vous pouvez modifier ce paramètre à partir du menu Édition &gt; Préférences... &gt; Général.
+ <usetemplate ignoretext="Lorsqu&apos;une région ne peut pas être réclamée à cause des préférences concernant la catégorie d&apos;accès" name="okcancelignore" notext="Fermer" yestext="Modifier les Préférences"/>
+ </notification>
+ <notification name="LandBuyAccessBlocked">
+ Votre catégorie d&apos;accès ne vous permet pas d&apos;acheter cette région. Cela vient peut-être du fait qu&apos;il manquait des informations pour valider votre âge.
+
+Vérifiez que vous avez la toute dernière version du client et consultez les pages d&apos;aide pour savoir comment accéder aux zones ayant ce niveau d&apos;accès.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="LandBuyAccessBlocked_KB">
+ Votre catégorie d&apos;accès ne vous permet pas d&apos;acheter cette région.
+
+Souhaitez-vous en savoir plus sur les différentes catégories d&apos;accès ?
+ <url name="url">
+ http://wiki.secondlife.com/wiki/Pr%C3%A9sentation_des_cat%C3%A9gories_de_contenu_(KB)
+ </url>
+ <usetemplate ignoretext="Lorsqu&apos;une région ne peut pas être achetée à cause de la catégorie d&apos;accès" name="okcancelignore" notext="Fermer" yestext="Consulter les pages d&apos;aide"/>
+ </notification>
+ <notification name="LandBuyAccessBlocked_Notify">
+ Votre catégorie d&apos;accès ne vous permet pas d&apos;acheter cette région.
+ </notification>
+ <notification name="LandBuyAccessBlocked_Change">
+ Votre catégorie d&apos;accès ne vous autorise pas à acheter cette région.
+
+En cliquant sur Modifier les préférences, vous pourrez changer votre catégorie d&apos;accès et pénétrer dans la région. À partir de maintenant, vous pouvez rechercher et accéder au contenu [REGIONMATURITY]. Vous pouvez modifier ce paramètre à partir du menu Édition &gt; Préférences... &gt; Général.
+ <usetemplate ignoretext="Lorsqu&apos;une région ne peut pas être achetée à cause des préférences concernant la catégorie d&apos;accès" name="okcancelignore" notext="Fermer" yestext="Modifier les Préférences"/>
+ </notification>
+ <notification name="TooManyPrimsSelected">
+ &quot;Vous avez sélectionné trop de prims. Veuillez sélectionner au maximum [MAX_PRIM_COUNT] prims et réessayer.&quot;
+ </notification>
+ <notification name="ProblemImportingEstateCovenant">
+ Problème lors de l&apos;importation du règlement du domaine.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <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="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>
+ <notification name="UnableToLoadNotecardAsset">
+ Impossible de charger les données de la note actuellement.
+ </notification>
+ <notification name="NotAllowedToViewNotecard">
+ Permissions pour afficher la note insuffisantes.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="MissingNotecardAssetID">
+ Les références de la note ne se trouvent pas dans la base de données.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="PublishClassified">
+ Rappel : les frais pour passer des petites annonces ne sont pas remboursables.
+
+Publier cette petite annonce maintenant pour [AMOUNT] L$ ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="SetClassifiedMature">
+ Cette petite annonce contient-elle du contenu Mature ?
+ <usetemplate canceltext="Annuler" name="yesnocancelbuttons" notext="Non" yestext="Oui"/>
+ </notification>
+ <notification name="SetGroupMature">
+ Ce groupe contient-il du contenu Mature ?
+ <usetemplate canceltext="Annuler" name="yesnocancelbuttons" notext="Non" yestext="Oui"/>
+ </notification>
+ <notification label="Confirmer le redémarrage" name="ConfirmRestart">
+ Souhaitez-vous vraiment redémarrer cette région dans 2 minutes ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification label="Envoyer un message à la région" name="MessageRegion">
+ Saisissez une message qui sera envoyé à tous les résidents présents dans cette région.
+ <form name="form">
+ <input name="message" type="text"/>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annuler"/>
+ </form>
+ </notification>
+ <notification label="Interdire le terraformage" name="HelpRegionBlockTerraform">
+ Si vous cochez cette case, les propriétaires ne pourront plus terraformer leur terrain, quel que soit le paramétrage individuel des parcelles.
+
+Valeur par défaut : désactivé
+ </notification>
+ <notification label="Interdire le vol" name="HelpRegionBlockFly">
+ Si vous cochez cette case, les résidents ne pourront plus voler dans cette région, quel que soit le paramétrage individuel des parcelles.
+
+Valeur par défaut : désactivé
+ </notification>
+ <notification label="Modifications groupées des droits relatifs au contenu" name="HelpBulkPermission">
+ L&apos;outil Modifications groupées des droits vous permet de modifier rapidement et simultanément les droits dans les contenus des objets séléctionnés. Notez toutefois que vous paramétrez uniquement les droits des objets dans les Contenus des objets sélectionnés, et non les droits sur les objets eux-mêmes.
+
+Notez aussi que les droits ne s&apos;appliquent pas aux contenus imbriqués dans les objets contenus. Votre requête ne porte que sur les objets de premier niveau.
+
+Vous pouvez sélectionner quels types d&apos;objets modifier à la section Types de contenu. Les photos sont incluses quand vous sélectionnez Textures.
+
+* Cet outil ne vous permettra de changer que les droits des objets que vous êtes autorisés à modifier.
+* Vous ne pouvez pas accorder de droits que vous n&apos;avez pas au prochain propriétaire.
+* Les droits accordés au prochain propriétaire de sont que des requêtes. Si un objet ne peut recevoir tous les nouveaux droits, aucun de ses droits ne changera.
+
+Lorsque vous êtes prêt à modifier tous les droits, cliquez sur Appliquer et attendez de voir s&apos;afficher les résultats.
+
+Si vous fermez la fenêtre des modifications groupées alors que les droits sont en train d&apos;être modifiés, vous suspendez l&apos;opération.
+ </notification>
+ <notification label="Autoriser les dégâts" name="HelpRegionAllowDamage">
+ Si vous cochez cette case, les résidents peuvent subir des dégâts dans toute la région quel que soit le paramétrage individuel des parcelles. Si la case n&apos;est pas cochée, les propriétaires sont libres d&apos;activer ou non cette option sur leur parcelle.
+
+Valeur par défaut : désactivé
+ </notification>
+ <notification label="Nombre maximum d&apos;avatars" name="HelpRegionAgentLimit">
+ Définit le nombre maximum d&apos;avatars autorisés dans cette région.
+La performance peut varier en fonction du nombre d&apos;avatars présents.
+
+Valeur par défaut : 40
+ </notification>
+ <notification label="Bonus objet" name="HelpRegionObjectBonus">
+ Le bonus objet est le multiplicateur de prims autorisées sur une parcelle donnée. L&apos;échelle autorisée est comprise entre 1 et 10. Lorsque ce chiffre est de 1, chaque parcelle de 512 m² peut contenir 117 prims. S&apos;il est de 2, chaque parcelle peut contenir 234 prims, ou deux fois plus, et ainsi de suite. Le nombre maximum de prims autorisées dans une région est de 15 000, quel que soit le bonus objet. Attention : si vous définissez un bonus objet et décidez ensuite de le diminuer, cela peut entraîner la suppression ou le renvoi d&apos;objets.
+
+Valeur par défaut : 1.0
+ </notification>
+ <notification label="Accès" name="HelpRegionMaturity">
+ Définit la catégorie d&apos;accès de la région, telle qu&apos;affichée dans la barre de menu en haut du client et dans les infobulles de la carte lorsque vous passez votre curseur au-dessus de cette région. Ce paramètre affecte aussi l&apos;accès à cette région et les résultats de recherche. Les autres résidents ne peuvent pénétrer que dans les régions ou n&apos;afficher que les résultats de recherche ayant la même catégorie d&apos;accès que celle indiquée dans leurs Préférences.
+
+Ce changement n&apos;apparaîtra pas immédiatement sur la carte.
+ </notification>
+ <notification label="Interdire les bousculades" name="HelpRegionRestrictPushObject">
+ Cette case permet de restreindre les bousculades dans toute une région.
+Lorsqu&apos;elle est cochée, les résidents ne peuvent être bousculés que par d&apos;autres résidents ou par le propriétaire de la parcelle.
+(Bousculer fait référence à la fonction LSL llPushObjet().)
+
+Valeur par défaut : désactivé
+ </notification>
+ <notification label="Fusionner/Diviser des parcelles" name="HelpParcelChanges">
+ Cette case permet de choisir si les parcelles n&apos;appartenant pas au gérant du domaine peuvent ou pas être fusionnées ou divisées.
+Si cette case n&apos;est pas cochée :
+ * Seuls les propriétaires ou gérants de domaine peuvent fusionner ou diviser des parcelles.
+ * Ils ne peuvent fusionner ou diviser que les parcelles du propriétaire,
+ ou celles d&apos;un groupe dans lequel ils ont les pouvoirs nécessaires.
+ Si cette case est cochée :
+ * Tous les propriétaires peuvent fusionner ou diviser leurs parcelles.
+ * Pour les parcelles appartenant à un groupe, les membres avec les pouvoirs nécessaires peuvent fusionner ou diviser les parcelles.
+
+Valeur par défaut : activée
+ </notification>
+ <notification label="Ne pas afficher dans la recherche" name="HelpRegionSearch">
+ Si vous cochez cette option, les propriétaires ne pourront pas faire apparaître leurs parcelles dans les résultats de recherche.
+Valeur par défaut : désactivé
+ </notification>
+ <notification label="Catégorie de la région modifiée" name="RegionMaturityChange">
+ La catégorie d&apos;accès de cette région a été mise à jour.
+Ce changement n&apos;apparaîtra pas immédiatement sur la carte.
+ </notification>
+ <notification label="Revente de terrain" name="HelpRegionLandResell">
+ Les propriétaires et gérants de domaine peuvent vendre n&apos;importe quel terrain appartenant au propriétaire du domaine.
+Si cette option n&apos;est pas cochée, les propriétaires ne peuvent pas revendre leur parcelle.
+Si cette option est cochée, les propriétaires sont libres de revendre leur parcelle.
+
+Valeur par défaut : désactivé
+ </notification>
+ <notification label="Désactiver les scripts" name="HelpRegionDisableScripts">
+ Lorsque la performance d&apos;une région est faible, cela peut venir d&apos;un script. Ouvrez la section Statistiques (Ctrl-Maj-1) et vérifiez le FPS Physique (Physics FPS) de la section Simulateur.
+Si le FPS est en dessous de 45, ouvrez la section Time située en fin de liste. Si le Script Time est au dessus de 25ms, cliquez sur le bouton Afficher les objets scriptés les plus consommateurs. Vous verrez le nom et l&apos;emplacement des scripts éventuellement à l&apos;origine du problème.
+
+Si vous cochez la case Désactiver les scripts et que vous appuyez sur Appliquer, tous les scripts de cette région seront temporairement désactivés. Vous devrez peut-être faire cela le temps d&apos;arriver à l&apos;endroit su script en cause. Une fois sur place, assurez-vous que le script est bien à l&apos;origine du problème. Pour cela, vous devrez peut-être contacter le propriétaire du script ou bien supprimer ou renvoyer l&apos;objet.
+Décochez la case Désactiver le script, puis cliquez sur Appliquer pour réactiver tous les scripts dans la région.
+
+Valeur par défaut : désactivé
+ </notification>
+ <notification label="Désactiver les collisions" name="HelpRegionDisableCollisions">
+ Des objets physiques peuvent fortement réduire les performances d&apos;une région.
+Ouvrez la barre de statistiques (Ctrl-Maj-1) et vérifiez le FPS Physique (Physics FPS) de la section Simulateur.
+Si le FPS est en dessous de 45, ouvrez la section Time située en fin de liste. Si le Script Time est au dessus de 25ms, cliquez sur le bouton Afficher les collisions les plus consommatrices.
+Vous verrez le nom et l&apos;emplacement des objets physiques éventuellement à l&apos;origine du problème.
+
+Si vous décochez la case Désactiver les collisions et que vous cliquez sur Appliquer, toutes les collisions entre objets seront désactivées. Vous pourrez avoir besoin de cette fonction le temps d&apos;arriver à l&apos;emplacement des objets en cause. Une fois sur place, vérifiez que l&apos;&apos;objet est bien responsable du problème (entre-t-il sans cesse en collision avec d&apos;autres objets ?) Pour cela, vous devrez peut-être contacter le propriétaire de l&apos;objet ou bien supprimer ou renvoyer l&apos;objet.
+Décochez la case Désactiver les collisions, puis cliquez sur le bouton Appliquer pour réactiver les collisions dans la région.
+
+Valeur par défaut : désactivé
+ </notification>
+ <notification label="Désactiver la physique" name="HelpRegionDisablePhysics">
+ L&apos;option Désactiver la physique est similaire à l&apos;option Désactiver les collisions sauf qu&apos;elle englobe tous les effets liés à la physique. Cela signifie que les objets n&apos;entreront plus en collision et que les avatars ne pourront plus bouger.
+
+Vous ne devriez utiliser cette option que lorsque l&apos;option Désactiver les collisions n&apos;améliore pas sufisamment la performance de la région pour résoudre un problème de physique ou trouver les objets entrant en collision.
+
+Une fois que vous avez fini, n&apos;oubliez pas de réactiver les propriétés physiques sinon les avatars ne pourront pas bouger.
+
+Valeur par défaut : désactivé
+ </notification>
+ <notification label="Afficher les collisions les plus consommatrices" name="HelpRegionTopColliders">
+ Montre une liste des objets générant le plus de collisions avec d&apos;autres objets. Ces objets peuvent ralentir les performances de votre région. Sélectionnez Affichage &gt; Statistiques et regardez sous Simulator &gt; Time &gt; Sim Time (Physics) pour voir si le temps du moteur physique est au dessus de 20 ms.
+ </notification>
+ <notification label="Afficher les objets scriptés les plus consommateurs" name="HelpRegionTopScripts">
+ Dresse une liste des objets dont les scripts consomment le plus de ressources. Ces objets peuvent ralentir la performance de votre région.
+Sélectionnez Affichage &gt; Statistiques et regardez sous Simulator &gt; Time &gt; Script Time pour voir si le temps des scripts est au dessus de 25 ms.
+ </notification>
+ <notification label="Redémarrer la région" name="HelpRegionRestart">
+ Redémarre le serveur en charge de la région après deux minutes d&apos;avertissement. Tous les résidents dans cette région seront déconnectés. Les données de la région seront sauvegardées et réapparaîtront au bout de 90 secondes.
+
+Le redémarrage de la région ne permet pas de résoudre la plupart des problèmes de performance. Les redémarrages ne doivent avoir lieu qu&apos;en dernier recours.
+ </notification>
+ <notification label="Niveau de l&apos;eau" name="HelpRegionWaterHeight">
+ Il s&apos;agit de la hauteur de l&apos;eau en mètres.
+Si ce paramètre est différent de 20 et que vous avez de l&apos;eau adjacente au bord du monde ou de l&apos;eau « vide », il y aura un espace vide visible.
+
+
+Valeur par défaut : 20
+ </notification>
+ <notification label="Surélévation du terrain" name="HelpRegionTerrainRaise">
+ Il s&apos;agit de la distance (en mètres) à laquelle les propriétaires de parcelle peuvent surélever leur terrain, par rapport au terrain « figé » dont la hauteur est fixée par défaut.
+
+Valeur par défaut : 4
+ </notification>
+ <notification label="Abaisser le terrain" name="HelpRegionTerrainLower">
+ Il s&apos;agit de la distance (en mètres) à laquelle les propriétaires de parcelle peuvent abaisser leur terrain, par rapport au terrain « figé » dont la hauteur est fixée par défaut.
+
+Valeur par défaut : -4
+ </notification>
+ <notification label="Charger le terrain au format RAW" name="HelpRegionUploadRaw">
+ Ce bouton permet de charger un fichier .RAW dans la région où vous vous trouvez.
+Ce fichier doit avoir les bonnes dimensions (RGB, 256 x 256) et 13 canaux. Le meilleur moyen de créer un fichier terrain est de télécharger le fichier RAW existant. Un bon moyen est de modifier le canal rouge (hauteur terrain) et de le charger.
+
+Le chargement peut prendre jusqu&apos;à 45 secondes. Veuillez noter que le chargement d&apos;un fichier terrain ne déplacera pas les objets qui se trouvent sur le terrain, mais seulement le terrain et les droits associés aux parcelles. Certains objets risquent d&apos;aller sous la terre.
+
+Pour en savoir plus sur la modification de la hauteur des terrains d&apos;une région, consultez l&apos;Aide F1.
+ </notification>
+ <notification label="Télécharger le terrain au format RAW" name="HelpRegionDownloadRaw">
+ Ce bouton permet de télécharger un fichier contenant les données relatives à la hauteur du terrain, dimensions de la parcelle, les mises en vente ainsi que certains droits relatifs à la parcelle pour cette région. Lorsque vous ouvrez le fichier avec un programme tel que Photoshop, vous devez indiquer les dimensions du document qui sont les suivantes : RGB, 256 x 256 avec 13 canaux. Le fichier terrain ne peut pas être ouvert différemment.
+
+Pour en savoir plus sur la modification de la hauteur des terrains d&apos;une région, consultez l&apos;Aide F1.
+ </notification>
+ <notification label="Utiliser le soleil du domaine" name="HelpRegionUseEstateSun">
+ Si vous cochez cette case, la position du soleil dans cette région sera la même que dans le reste du domaine.
+
+Valeur par défaut : activé
+ </notification>
+ <notification label="Soleil fixe" name="HelpRegionFixedSun">
+ Si vous cochez cette case, la position du soleil se fixe sur celle du curseur Phase et le soleil arrête de bouger.
+
+Valeur par défaut : désactivé
+ </notification>
+ <notification label="Figer le terrain" name="HelpRegionBakeTerrain">
+ Ce bouton permet d&apos;enregistrer la forme actuelle du terrain comme nouvelle forme par défaut pour la région. Une fois figé, le terrain peut reprendre la forme enregistrée à partir de l&apos;option Rétablir le terrain à la section Modifer le terrain. Le terrain figé est aussi le point de référence pour les limites de surélévation et d&apos;abaissement.
+ </notification>
+ <notification label="Gérants du domaine" name="HelpEstateEstateManager">
+ Un gérant de domaine est un résident chargé du contrôle de la région et des paramètres du domaine. Un gérant de domaine peut modifier tous les paramètres, mais ne peut pas charger, télécharger ni figer de terrain. Un des pouvoirs principaux du gérant est de bannir ou d&apos;autoriser un résident sur votre domaine.
+
+Seuls les propriétaires de domaine peuvent ajouter ou supprimer des gérants de domaine. Lorsque vous choisissez un gérant de domaine, prenez un résident en qui vous avez confiance car vous serez en quelque sorte responsable de ses actions.
+ </notification>
+ <notification label="Utiliser le temps universel" name="HelpEstateUseGlobalTime">
+ Cette case permet au soleil de votre domaine de suivre la position du soleil sur les domaines Linden du continent.
+
+Valeur par défaut : activé
+ </notification>
+ <notification label="Soleil fixe" name="HelpEstateFixedSun">
+ Si vous cochez cette case, la position du soleil se fixe sur celle du curseur Phase et le soleil arrête de bouger.
+ </notification>
+ <notification label="Accès public" name="HelpEstateExternallyVisible">
+ Cette option vous permet de choisir quels résidents d&apos;autres domaines peuvent pénétrer sur votre domaine sans devoir être ajoutés à la liste d&apos;accès.
+
+Valeur par défaut : activé
+ </notification>
+ <notification label="Autoriser la téléportation directe" name="HelpEstateAllowDirectTeleport">
+ Lorsqu&apos;elle est cochée, cette option permet aux résidents d&apos;être téléportés à n&apos;importe quel endroit sur votre domaine. Lorsque cette option n&apos;est pas cochée, les résidents sont téléportés au téléhub le plus proche.
+
+Valeur par défaut : désactivé
+ </notification>
+ <notification label="Autoriser l&apos;accès" name="HelpEstateAllowResident">
+ L&apos;accès à ce domaine sera réservé aux résidents figurant dans cette liste et aux groupes ci-dessous.
+Cette option n&apos;est disponible que lorsque la case Accès public est décochée.
+ </notification>
+ <notification label="Autoriser l&apos;accès de groupe" name="HelpEstateAllowGroup">
+ L&apos;accès à ce domaine sera réservé aux groupes figurant dans cette liste et aux résidents ci-dessous. Cette option n&apos;est disponible que lorsque la case Accès public est décochée.
+ </notification>
+ <notification label="Adresse e-mail où signaler une infraction" name="HelpEstateAbuseEmailAddress">
+ Si vous utilisez une adresse e-mail valide, les rapports d&apos;infraction de ce domaine iront à cette adresse.
+Si vous laissez ce champ vide, les rapports d&apos;infraction seront envoyés à Linden Lab uniquement.
+ </notification>
+ <notification label="Refuser l&apos;accès" name="HelpEstateBanResident">
+ Les résidents figurant sur cette liste ne peuvent pas pénétrer sur votre domaine, quels que soient les autres paramètres.
+ </notification>
+ <notification label="Autoriser les chats vocaux" name="HelpEstateVoiceChat">
+ Les parcelles de ce domaine peuvent avoir leurs propres canaux vocaux, ce qui permet aux résidents de communiquer avec leurs voisins.
+
+Valeur par défaut : désactivé
+ </notification>
+ <notification label="Versions de voix non compatibles" name="VoiceVersionMismatch">
+ Cette version de Second Life n&apos;est pas compatible avec la fonctionnalité de chat vocal dans cette région. Vous devez mettre à jour Second Life pour que le chat vocal fonctionne correctement.
+ </notification>
+ <notification label="Règlement du domaine" name="HelpEstateCovenant">
+ Définir un règlement pour le domaine vous permet de vendre les parcelles de ce domaine. S&apos;il n&apos;y a pas de règlement, vous ne pouvez pas vendre le terrain. Si vous ne souhaitez pas indiquer de règlement ou donner de conseils aux acheteurs, laissez la section relative au règlement vide.
+
+Un règlement sert à communiquer des règles, des lignes directrices ou informations culturelles, ou simplement à expliquer vos attentes à un acheteur potentiel. Il peut s&apos;agir de régulations concernant la construction, les options de paiement ou tout autre information que vous souhaitez faire passer au résident avant que l&apos;achat n&apos;ait lieu.
+
+L&apos;acheteur est tenu d&apos;accepter le règlement en cochant une case avant de pouvoir finaliser l&apos;achat. Les règlements, lorsqu&apos;ils existent, apparaissent toujours dans la boîte de dialogue À propos du terrain.
+ </notification>
+ <notification label="Impossible d&apos;acheter des objets" name="BuyObjectOneOwner">
+ Impossible d&apos;acheter simultanément des objets de propriétaires différents.
+Veuillez ne sélectionner qu&apos;un seul objet.
+ </notification>
+ <notification label="Impossible d&apos;acheter des contenus" name="BuyContentsOneOnly">
+ Impossible d&apos;acheter les contenus de plus d&apos;un objet à la fois.
+Veuillez ne sélectionner qu&apos;un seul objet.
+ </notification>
+ <notification label="Impossible d&apos;acheter des contenus" name="BuyContentsOneOwner">
+ Impossible d&apos;acheter simultanément des objets de propriétaires différents.
+Veuillez ne sélectionner qu&apos;un seul objet.
+ </notification>
+ <notification name="BuyOriginal">
+ Acheter l&apos;objet original pour [PRICE] L$ à [PRICE] ?
+Vous deviendrez le propriétaire de cet objet.
+Vous pourrez :
+ Modifier : [MODIFYPERM]
+ Copier : [COPYPERM]
+ Revendre ou donner : [RESELLPERM]
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="BuyOriginalNoOwner">
+ Acheter l&apos;objet original pour [PRICE] L$ ?
+Vous deviendrez le propriétaire de cet objet.
+Vous pourrez :
+ Modifier : [MODIFYPERM]
+ Copier : [COPYPERM]
+ Revendre ou donner : [RESELLPERM]
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="BuyCopy">
+ Acheter une copie pour [PRICE] L$ à [OWNER] ?
+L&apos;objet sera copié dans votre inventaire.
+Vous pourrez :
+ Modifier : [MODIFYPERM]
+ Copier : [COPYPERM]
+ Revendre ou donner : [RESELLPERM]
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="BuyCopyNoOwner">
+ Acheter une copie pour [PRICE] L$ ?
+L&apos;objet sera copié dans votre inventaire.
+Vous pourrez :
+ Modifier : [MODIFYPERM]
+ Copier : [COPYPERM]
+ Revendre ou donner : [RESELLPERM]
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="BuyContents">
+ Acheter des contenus pour [PRICE] L$ à [OWNER] ?
+Ils seront copiés dans votre inventaire.
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="BuyContentsNoOwner">
+ Acheter des contenus pour [PRICE] L$ ?
+Ils seront copiés dans votre inventaire.
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmPurchase">
+ Suite à cette transaction, vous allez :
+[ACTION]
+
+Êtes-vous certain de vouloir effectuer cette transaction ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmPurchasePassword" type="password">
+ Suite à cette transaction, vous allez :
+[ACTION]
+
+Êtes-vous certain de vouloir effectuer cette transaction ?
+Veuillez saisir à nouveau votre mot de passe et cliquer sur OK.
+ <form name="form">
+ <button name="ConfirmPurchase" text="OK"/>
+ <button name="Cancel" text="Annuler"/>
+ </form>
+ </notification>
+ <notification name="SetPickLocation">
+ Remarque :
+vous avez mis à jour l&apos;emplacement de ce favori mais les autres détails resteront inchangés.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="MoveInventoryFromObject">
+ Vous avez sélectionné des objets non copiables.
+Ces objets seront déplacés dans votre inventaire et non pas copiés.
+
+Déplacer les objets de l&apos;inventaire ?
+ <usetemplate ignoretext="Lors du transfert d&apos;un inventaire non copiable depuis des objets" name="okcancelignore" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="MoveInventoryFromScriptedObject">
+ Vous avez sélectionné des objets de l&apos;inventaire qui ne peuvent pas être copiés. Ces objets seront déplacés vers votre inventaire, et non pas copiés.
+L&apos;objet les contenant est scripté, déplacer ces objets peut causer des problèmes au niveau du script.
+
+Déplacer les objets de l&apos;inventaire ?
+ <usetemplate ignoretext="Lors du transfert d&apos;un inventaire non copiable depuis des objets scriptés" name="okcancelignore" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="ClickActionNotPayable">
+ Avertissement : l&apos;action du clic Payer l&apos;objet a été défini mais ne fonctionnera que si un script est ajouté avec l&apos;event money().
+ <form name="form">
+ <ignore name="ignore" text="Lors du paramétrage de la fonction Payer sur des objets sans événement monétaire"/>
+ </form>
+ </notification>
+ <notification name="OpenObjectCannotCopy">
+ Vous n&apos;êtes autorisé à copier aucun élément dans cet objet.
+ </notification>
+ <notification name="WebLaunchAccountHistory">
+ Aller sur le site de Second Life pour consulter l&apos;historique de votre compte ?
+ <usetemplate ignoretext="Lors du chargement de la page web contenant l&apos;historique de votre compte" name="okcancelignore" notext="Annuler" yestext="Aller sur cette page"/>
+ </notification>
+ <notification name="ClickOpenF1Help">
+ Visiter les pages d&apos;aide de Second Life ?
+ <usetemplate ignoretext="Lors de la visite des pages d&apos;aide de Second Life" name="okcancelignore" notext="Annuler" yestext="Aller"/>
+ </notification>
+ <notification name="ConfirmQuit">
+ Êtes-vous certain de vouloir quitter ?
+ <usetemplate ignoretext="Lorsque vous quittez Second Life" name="okcancelignore" notext="Continuer" yestext="Quitter"/>
+ </notification>
+ <notification name="HelpReportAbuseEmailLL">
+ Utilisez cet outil pour signaler des infractions aux Conditions d&apos;utilisation et aux Règles de la communauté. Voir :
+
+http://secondlife.com/corporate/tos.php
+http://secondlife.com/corporate/cs.php
+
+Lorsqu&apos;elles sont signalées, toutes les infractions aux Conditions d&apos;utilisation et aux Règles de la communauté font l&apos;objet d&apos;une enquête et sont résolues. Pour accéder aux détails de la résolution d&apos;un incident, allez sur :
+
+http://secondlife.com/support/incidentreport.php
+ </notification>
+ <notification name="HelpReportAbuseEmailEO">
+ Important : ce rapport ira au propriétaire de la région dans laquelle vous êtes et non à Linden Lab.
+
+Pour aider les résidents et les visiteurs, le propriétaire de la région dans laquelle vous êtes a choisi de recevoir et de s&apos;occuper de tous les rapports envoyés à partir de cette région. Linden Lab n&apos;enquêtera pas sur les rapports que vous envoyez à partir de cet endroit.
+
+Le propriétaire de la région traitera les rapports en fonction des règles de cette région, comme indiqué dans le réglement du domaine.
+(Les réglements sont visibles à partir du menu Monde &gt; À propos du terrain.)
+
+La résolution de ce rapport ne s&apos;applique qu&apos;à cette région ; L&apos;accès aux autres endroits de Second Life ne sera pas affecté par les résultats de cette enquête. Seul Linden Lab peut interdire l&apos;accès à l&apos;ensemble de Second Life.
+ </notification>
+ <notification name="HelpReportBug">
+ N&apos;utilisez cet outil que pour signaler des problèmes techniques et soyez aussi précis que possible.
+Vous pouvez répondre à l&apos;e-mail automatique pour ajouter des détails à votre rapport.
+
+Tous les bugs signalés sont reproduits et évalués. Aucune réponse ne sera envoyée par e-mail.
+
+Si vous avez un problème technique, veuillez contacter le service clientèle à :
+
+http://secondlife.com/community/support.php
+
+Remarque : les rapports incomplets ne feront pas l&apos;objet d&apos;une enquête.
+ </notification>
+ <notification name="HelpReportAbuseSelectCategory">
+ Veuillez choisir une catégorie pour ce rapport d&apos;infraction.
+Le choix d&apos;une catégorie nous permet de traiter les rapports d&apos;infraction plus rapidement.
+ </notification>
+ <notification name="HelpReportBugSelectCategory">
+ Veuillez choisir une catégorie pour ce bug.
+Le choix d&apos;une catégorie nous permet de traiter les bugs plus rapidement.
+ </notification>
+ <notification name="HelpReportAbuseAbuserNameEmpty">
+ Veuillez saisir le nom du contrevenant.
+Lorsque nous avons le nom du contrevenant, nous sommes en mesure de traiter les rapports plus rapidement.
+ </notification>
+ <notification name="HelpReportAbuseAbuserLocationEmpty">
+ Veuillez indiquer l&apos;endroit où l&apos;infraction a eu lieu.
+Les informations précises et exactes nous permettent de traiter les rapports plus rapidement.
+ </notification>
+ <notification name="HelpReportAbuseSummaryEmpty">
+ Veuillez saisir un récapitulatif de l&apos;infraction.
+Les récapitulatifs précis nous permettent de traiter les rapports plus rapidement.
+ </notification>
+ <notification name="HelpReportBugSummaryEmpty">
+ Veuillez saisir un récapitulatif du bug.
+Les récapitulatifs précis nous permettent de résoudre les bugs plus rapidement.
+ </notification>
+ <notification name="HelpReportAbuseDetailsEmpty">
+ Veuillez saisir une description détaillée de l&apos;infraction.
+Soyez aussi précis que possible et essayez de fournir des noms ainsi que des détails sur l&apos;incident que vous signalez.
+Les descriptions précises nous permettent de traiter les rapports plus rapidement.
+ </notification>
+ <notification name="HelpReportBugDetailsEmpty">
+ Veuillez saisir une description détaillée du bug.
+Soyez aussi spécifique que possible et essayez d&apos;indiquer les étapes à suivre pour reproduire le bug.
+Les descriptions précises nous permettent de résoudre les bugs plus rapidement.
+ </notification>
+ <notification name="HelpReportAbuseContainsCopyright">
+ Cher résident,
+
+Il semble que vous souhaitiez reporter une infraction à des droits de propriété intellectuelle. Pour signaler correctement cette infraction :
+
+(1) Remplissez un rapport d&apos;infraction. Vous pouvez soumettre un rapport d&apos;infraction si vous pensez qu&apos;un résident exploite le système de droits de Second Life, par exemple en utilisant un CopyBot ou des outils similaires pour enfreindre des droits de propriété intellectuelle. Notre équipe chargée des infractions mènera une enquête et prendra les mesures nécessaires à l&apos;encontre du résident non respectueux des Conditions d&apos;utilisation ou des règles de la communauté. Sachez toutefois que l&apos;équipe chargée des infractions ne supprimera pas de contenu à l&apos;intérieur de Second Life.
+
+(2) Demandez à ce que du contenu à l&apos;intérieur de Second Life soit supprimé. Pour demander à ce que du contenu soit supprimé de Second Life, vous devez soumettre un rapport d&apos;infraction valide, tel que fourni dans notre Règlement contre les violations des droit d&apos;auteurs (DMCA), à http://secondlife.com/corporate/dmca.php.
+
+Si vous souhaitez toujours reporter cette infraction, veuillez fermer cette fenêtre et soumettre votre rapport. Vous devrez peut-être sélectionner la catégorie CopyBot ou exploitation abusive des droits.
+
+Merci,
+
+Linden Lab
+ </notification>
+ <notification name="FailedRequirementsCheck">
+ Les composantes requises suivantes ne se trouvent pas dans [FLOATER]:
+[COMPONENTS]
+ </notification>
+ <notification label="Remplacer la pièce-jointe existante" name="ReplaceAttachment">
+ Vous avez déjà un objet sur cette partie du corps.
+Voulez-vous le remplacer par l&apos;objet sélectionné ?
+ <form name="form">
+ <ignore name="ignore" save_option="true" text="Lors du remplacement de pièces-jointes existantes"/>
+ <button ignore="Remplacer automatiquement" name="Yes" text="OK"/>
+ <button ignore="Ne jamais remplacer" name="No" text="Annuler"/>
+ </form>
+ </notification>
+ <notification label="Réponse si occupé(e)" name="BusyModePay">
+ Vous êtes en mode occupé et vous ne recevrez donc aucun objet en échange de ce paiement.
+
+Souhaitez-vous quitter le mode occupé avant de terminer cette transaction ?
+ <form name="form">
+ <ignore name="ignore" save_option="true" text="Lorsque vous envoyez de l&apos;argent à une personne en mode Occupé"/>
+ <button ignore="Toujours quitter le mode occupé" name="Yes" text="OK"/>
+ <button ignore="Ne jamais quitter le mode occupé" name="No" text="Annuler"/>
+ </form>
+ </notification>
+ <notification name="ConfirmEmptyTrash">
+ Êtes-vous certain de vouloir supprimer le contenu de votre corbeille de manière permanente  ?
+ <usetemplate ignoretext="Lorsque vous videz la corbeille de l&apos;inventaire" name="okcancelignore" notext="Annuler" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmClearBrowserCache">
+ Êtes-vous certain de vouloir vider le cache de votre navigateur ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="Oui"/>
+ </notification>
+ <notification name="ConfirmClearCookies">
+ Êtes-vous certain de vouloir supprimer vos cookies ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="Oui"/>
+ </notification>
+ <notification name="ConfirmClearMediaUrlList">
+ Êtes-vous certain de vouloir supprimer la liste des URL enregistrées ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="Oui"/>
+ </notification>
+ <notification name="ConfirmEmptyLostAndFound">
+ Êtes-vous certain de vouloir supprimer le contenu de votre dossier Objets trouvés de manière permanente ?
+ <usetemplate ignoretext="Losque vous videz le dossier Objets trouvés dans votre inventaire" name="okcancelignore" notext="Non" yestext="Oui"/>
+ </notification>
+ <notification name="CopySLURL">
+ La SLURL suivante a été copiée dans votre presse-papiers :
+ [SLURL]
+
+Mettez-la dans une page web pour permettre aux autres résidents d&apos;accéder facilement à cet endroit ou bien collez-la dans la barre d&apos;adresse de votre navigateur.
+ <form name="form">
+ <ignore name="ignore" text="Lorsque vous copiez une SLURL dans votre presse-papier"/>
+ </form>
+ </notification>
+ <notification name="GraphicsPreferencesHelp">
+ Ce menu permet de contrôler la taille de la fenêtre et la résolution, ainsi que la qualité des graphiques client. Les préférences de l&apos;interface graphique vous permettent de choisir entre 4 niveaux de graphiques : Faible, Moyen, Élevé et Ultra. Personnalisez vos options graphiques en cliquant sur le bouton Personnaliser et en changeant les paramètres suivants :
+
+Effets : active ou désactive les différents types de shaders pixels.
+
+Objets reflétés : définit le type d&apos;objets reflétés dans l&apos;eau.
+
+Rendu de l&apos;avatar : définit les options qui influent sur la manière dont le client rend les avatars.
+
+Limite d&apos;affichage : la distance à laquelle vous voyez les objets s&apos;afficher dans la scène.
+
+Nombre de particules max. : définit le nombre maximum de particules que vous pouvez voir à la fois sur votre écran.
+
+Qualité post-traitement : définit la résolution du rayonnement.
+
+Détails des rendus : définit le niveau de détail ou le nombre de polygones utilisés dans le rendu de certains objets. Une valeur plus élevée prendra plus de temps pour apparaître, mais permettra d&apos;avoir des objets plus détaillés.
+
+Sources lumineuses : définit les types de lumières que vous souhaitez faire apparaître.
+
+Rendu du terrain : définit le niveau de détail que vous souhaitez utiliser dans la texture du terrain.
+ </notification>
+ <notification name="WLSavePresetAlert">
+ Voulez-vous écraser l&apos;option précédemment enregistrée ?
+ <usetemplate name="okcancelbuttons" notext="Non" yestext="Oui"/>
+ </notification>
+ <notification name="WLDeletePresetAlert">
+ Voulez-vous supprimer [SKY] ?
+ <usetemplate name="okcancelbuttons" notext="Non" yestext="Oui"/>
+ </notification>
+ <notification name="WLNoEditDefault">
+ Vous ne pouvez pas éditer ou supprimer un préréglage par défaut.
+ </notification>
+ <notification name="WLMissingSky">
+ Une dossier semble manquer au Cycle du jour : [SKY].
+ </notification>
+ <notification name="PPSaveEffectAlert">
+ Certains effets post-traitement existent. Voulez-vous quand même écraser ce fichier ?
+ <usetemplate name="okcancelbuttons" notext="Non" yestext="Oui"/>
+ </notification>
+ <notification name="HelpEditSky">
+ Pour créer et sauvegarder plusieurs ciels, utilisez les curseurs WindLight.
+ </notification>
+ <notification name="HelpEditDayCycle">
+ Choisissez quel ciel apparaît au cours de la journée.
+ </notification>
+ <notification name="EnvSettingsHelpButton">
+ Ces paramètres permettent de modifier l&apos;environnement local sur votre ordinateur. Pour que vous ayez accès à tous les paramètres, votre carte graphique doit prendre en charge les effets atmosphériques.
+
+Pour changer les différentes phases de la journée dans le client, utilisez le curseur Heure de la journée.
+
+Le curseur Couverture nuageuse permet de contrôler le nombre de nuages dans le ciel.
+
+L&apos;option Couleur de l&apos;eau vous permet de modifier la couleur de l&apos;eau grâce au sélecteur de couleurs.
+
+Le curseur Brouillard dans l&apos;eau permet de contrôler la densité du brouillard sous l&apos;eau.
+
+Pour synchroniser l&apos;heure du jour sur celle de la région, cliquez sur Utiliser heure domaine.
+
+En cliquant sur le bouton Ciel Avancé, vous aurez accès à tous les réglages relatifs au ciel.
+
+En cliquant sur le bouton Eau Avancée, vous aurez accès à tous les réglages relatifs à l&apos;eau.
+ </notification>
+ <notification name="HelpDayCycle">
+ L&apos;éditeur du cycle du jour vous permet de contrôler le ciel au cours du cycle jour/nuit de second Life. C&apos;est ce même cycle qui est contrôlé par le curseur Heure de la journée dans l&apos;éditeur d&apos;environnement basique.
+
+L&apos;éditeur du jour fonctionne grâce au réglage d&apos;images-clés. Ces images-clés sont représentées par les marques grises sur la ligne du temps et ont des préréglages qui leurs sont associées. Au cours de la journée et de la nuit, le ciel WindLight s&apos;anime en passant d&apos;une clé à l&apos;autre.
+
+La flèche jaune au dessus de la ligne du temps représente votre vue actuelle, basée sur l&apos;heure de la journée. Cliquez et faites glisser pour voir l&apos;animation au cours de votre journée. Ajoutez ou supprimez des clés en appuyant sur les boutons Ajouter clé ou Supprimer clé, à droite de la ligne du temps.
+
+Vous pouvez définir la position d&apos;une clé en la faisant glisser le long de la ligne du temps ou en définissant manuellement ses valeurs dans la section Réglages des images-clés. Dans cette même section, vous pouvez associer chaque clé au préréglage WindLight respectif.
+
+La Durée du cycle contrôle la durée d&apos;une « journée ». Si vous choisissez une valeur basse (2mn par exemple), cela signifie que toutes les animations de votre journée de 24h se dérouleront en 2mn seulement ! Une fois satisfait de vos choix, utilisez les boutons Jouer et Stop ! pour prévisualiser les résultats. Pour voir l&apos;animation, vous pouvez aussi bouger la flèche jaune au dessus de la ligne du temps. Si vous sélectionnez l&apos;option Utiliser heure domaine, vous synchronisez la durée de votre journée et votre heure avec celle du cycle du jour du domaine.
+
+Une fois que vous êtes satisfait de votre Cycle du jour, vous pouvez le sauvegarder et le charger grâce aux boutons Enregistrer jour test et Charger Jour Test. Veuillez noter que pour l&apos;instant, nous ne pouvez avoir qu&apos;un seul Cycle du jour.
+ </notification>
+ <notification name="HelpBlueHorizon">
+ Utilisez les curseurs Rouge/Vert/Bleu (RVB) pour ajuster la couleur du ciel. Pour déplacer les trois curseurs en même temps, utilisez le curseur Intensité.
+ </notification>
+ <notification name="HelpHazeHorizon">
+ Le paramètre Quantité de brume est l&apos;un des plus utiles pour ajuster l&apos;exposition lumineuse de la scène.
+Il permet de simuler de nombreux paramètres d&apos;exposition, tels que les voiles blancs créés par le soleil ou des lumières plus foncées.
+ </notification>
+ <notification name="HelpBlueDensity">
+ La Densité du bleu affecte la saturation générale des couleurs du ciel et du brouillard. Si vous déplacez le curseur Intensité (I) vers la droite, les couleurs deviennent plus vives et plus vibrantes. Si vous le déplacez complètement à gauche, les couleurs deviennent plus fades, puis finalement noires et blanches. Pour paramétrer avec précision la couleur du ciel, vous pouvez contrôler chacun des éléments de la saturation à l&apos;aide des curseurs Rouge/Vert/Bleu (RVB).
+ </notification>
+ <notification name="HelpHazeDensity">
+ Le paramètre Densité de la brume permet de contrôler le niveau de brume grisâtre dans l&apos;atmosphère. Ce paramètre est utile pour simuler les scènes dans lesquelles il y a beaucoup de fumée et de substances polluantes émises par l&apos;homme. Il est également utile pour simuler le brouillard et la brume.
+ </notification>
+ <notification name="HelpDensityMult">
+ Utilisez le Multiplicateur de densité pour modifier la densité atmosphérique générale. Une valeur basse donne l&apos;impression d&apos;un air « léger » alors qu&apos;une valeur élevée donne l&apos;impression d&apos;un air « lourd » et enfumé.
+ </notification>
+ <notification name="HelpDistanceMult">
+ Ajuste la distance perçue par WindLight.
+La valeur zéro désactive l&apos;influence de WindLight sur le terrain et les objets.
+Les valeurs supérieures à 1 simulent des distances plus importantes pour des effets atmosphériques plus épais.
+ </notification>
+ <notification name="HelpMaxAltitude">
+ L&apos;Altitude max. ajuste les calculs de WindLight lors de la computation de la lumière atmosphérique. Quand la fin de la journée approche, il est utile pour ajuster la « profondeur » du coucher de soleil.
+ </notification>
+ <notification name="HelpSunlightColor">
+ Ajuste la couleur et l&apos;intensité de la lumière directe de la scène.
+ </notification>
+ <notification name="HelpSunAmbient">
+ Ajuste la couleur et l&apos;intensité de la lumière atmosphérique ambiante.
+ </notification>
+ <notification name="HelpSunGlow">
+ Le curseur Taille contrôle la taille du soleil.
+Le curseur Netteté permet de rendre le soleil plus ou moins flou dans le ciel.
+ </notification>
+ <notification name="HelpSceneGamma">
+ Ajuste la distribution de clair et de foncé sur l&apos;écran.
+ </notification>
+ <notification name="HelpStarBrightness">
+ Vous permet de contrôler l&apos;intensité des étoiles dans le ciel.
+ </notification>
+ <notification name="HelpTimeOfDay">
+ Contrôle la position du soleil dans le ciel.
+Même chose que l&apos;élévation.
+ </notification>
+ <notification name="HelpEastAngle">
+ Contrôle la position du soleil dans le ciel.
+Même chose que l&apos;azimut.
+ </notification>
+ <notification name="HelpCloudColor">
+ Modifie la couleur des nuages. Il est recommandé de laisser les nuages en blanc mais vous pouvez aussi faire preuve de créativité...
+ </notification>
+ <notification name="HelpCloudDetail">
+ Contrôle le détail de l&apos;image placée sur l&apos;image du nuage principal. X et Y contrôlent sa position. D (Densité) permet de rendre les nuages plus ou moins pleins ou plus ou moins fracturés.
+ </notification>
+ <notification name="HelpCloudDensity">
+ Vous permet de contrôler la position des nuages avec les curseurs X et Y ainsi que leur densité avec le curseur D.
+ </notification>
+ <notification name="HelpCloudCoverage">
+ Contrôle la surface du ciel couverte par les nuages.
+ </notification>
+ <notification name="HelpCloudScale">
+ Contrôle l&apos;échelle de l&apos;image des nuages sur le dôme du ciel.
+ </notification>
+ <notification name="HelpCloudScrollX">
+ Contrôle la vitesse des nuages sur l&apos;axe des X.
+ </notification>
+ <notification name="HelpCloudScrollY">
+ Contrôle la vitesse des nuages sur l&apos;axe des Y.
+ </notification>
+ <notification name="HelpClassicClouds">
+ Cochez cette option pour utiliser les anciens nuages de Second Life en plus des nuages WindLight.
+ </notification>
+ <notification name="HelpWaterFogColor">
+ Permet de sélectionner la couleur du brouillard sous l&apos;eau.
+ </notification>
+ <notification name="HelpWaterFogDensity">
+ Contrôle la densité du brouillard sous l&apos;eau, ainsi que votre visibilité.
+ </notification>
+ <notification name="HelpUnderWaterFogMod">
+ Modifie l&apos;effet créé par l&apos;option Densité du brouillard pour contrôler votre visibilité quand votre avatar est sous l&apos;eau.
+ </notification>
+ <notification name="HelpWaterGlow">
+ Contrôle l&apos;éclat de l&apos;eau à la surface.
+ </notification>
+ <notification name="HelpWaterNormalScale">
+ Contrôle l&apos;échelle des trois vaguelettes qui forment l&apos;eau.
+ </notification>
+ <notification name="HelpWaterFresnelScale">
+ Contrôle la quantité de lumière réfléchie à des angles différents.
+ </notification>
+ <notification name="HelpWaterFresnelOffset">
+ Contrôle l&apos;intensité de la lumière réfléchie.
+ </notification>
+ <notification name="HelpWaterScaleAbove">
+ Contrôle la quantité de lumière réfractée lorsque votre avatar regarde au dessus de l&apos;eau.
+ </notification>
+ <notification name="HelpWaterScaleBelow">
+ Contrôle la quantité de lumière réfractée lorsque votre avatar est sous l&apos;eau.
+ </notification>
+ <notification name="HelpWaterBlurMultiplier">
+ Contrôle le mélange reflets/vagues.
+ </notification>
+ <notification name="HelpWaterNormalMap">
+ Contrôle quelle normal map est posée sur l&apos;eau pour déterminer la réflection/réfraction.
+ </notification>
+ <notification name="HelpWaterWave1">
+ Contrôle dans quelle direction et à quelle vitesse la version grande échelle de la normal map se déplace sur l&apos;axe des X et l&apos;axe des Y.
+ </notification>
+ <notification name="HelpWaterWave2">
+ Contrôle dans quelle direction et à quelle vitesse la version grande échelle de la normal map se déplace sur l&apos;axe des X et l&apos;axe des Y.
+ </notification>
+ <notification name="NewSkyPreset">
+ Nommez le nouveau ciel.
+ <form name="form">
+ <input name="message" type="text">
+ Nouveau préréglage
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annuler"/>
+ </form>
+ </notification>
+ <notification name="ExistsSkyPresetAlert">
+ Ce préréglage existe déjà !
+ </notification>
+ <notification name="NewWaterPreset">
+ Nommez ce nouveau préréglage d&apos;eau.
+ <form name="form">
+ <input name="message" type="text">
+ Nouveau préréglage
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annuler"/>
+ </form>
+ </notification>
+ <notification name="ExistsWaterPresetAlert">
+ Ce préréglage existe déjà !
+ </notification>
+ <notification name="WaterNoEditDefault">
+ Vous ne pouvez pas éditer ou supprimer un préréglage par défaut.
+ </notification>
+ <notification name="ChatterBoxSessionStartError">
+ Impossible de démarrer une nouvelle session de chat avec [RECIPIENT].
+[REASON]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="ChatterBoxSessionEventError">
+ [EVENT]
+[REASON]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="ForceCloseChatterBoxSession">
+ Vous devez terminer votre session de chat avec [NAME].
+[REASON]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="Cannot_Purchase_an_Attachment">
+ Les objets qui font partie d&apos;une pièce-jointe ne peuvent pas être achetés.
+ </notification>
+ <notification label="À propos des requêtes pour les autorisations de débit" name="DebitPermissionDetails">
+ Accepter cette requête donne au script l&apos;autorisation de prélever des dollars Linden (L$) sur votre compte de manière continue. Pour révoquer cette autorisation, le propriétaire de l&apos;objet doit supprimer l&apos;objet ou bien réinitialiser les scripts dans l&apos;objet.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="AutoWearNewClothing">
+ Voulez-vous automatiquement porter l&apos;habit que vous créez ?
+ <usetemplate ignoretext="Porter automatiquement" name="okcancelignore" notext="Non" yestext="Oui"/>
+ </notification>
+ <notification name="NotAgeVerified">
+ Pour que vous puissiez accéder à cette parcelle, votre âge doit être vérifié.
+Voulez-vous aller sur le site de Second Life pour vérifier votre âge ?
+
+[_URL]
+ <url name="url" option="0">
+ https://secondlife.com/account/verification.php?lang=fr
+ </url>
+ <usetemplate ignoretext="Avertir si l&apos;âge n&apos;a pas été vérifié" name="okcancelignore" notext="Non" yestext="Oui"/>
+ </notification>
+ <notification name="Cannot enter parcel: no payment info on file">
+ Avant de pouvoir pénétrer sur cette parcelle, vous devez enregistrer vos informations de paiement.
+Voulez-vous aller sur le site de Second Life pour enregistrer ces informations ?
+
+[_URL]
+ <url name="url" option="0">
+ https://secondlife.com/account/index.php?lang=fr
+ </url>
+ <usetemplate ignoretext="Avertir si les informations de paiement ne sont pas fournies" name="okcancelignore" notext="Non" yestext="Oui"/>
+ </notification>
+ <notification name="MissingString">
+ The string [STRING_NAME] is missing from strings.xml
+ </notification>
+ <notification name="SystemMessageTip">
+ [MESSAGE]
+ </notification>
+ <notification name="Cancelled">
+ Annulé
+ </notification>
+ <notification name="CancelledSit">
+ Action annulée
+ </notification>
+ <notification name="CancelledAttach">
+ Attachement annulé
+ </notification>
+ <notification name="ReplacedMissingWearable">
+ Habits et parties du corps manquants remplacés par les éléments par défaut.
+ </notification>
+ <notification name="GroupNotice">
+ Sujet : [SUBJECT], Message : [MESSAGE]
+ </notification>
+ <notification name="FriendOnline">
+ [FIRST] [LAST] est connecté(e)
+ </notification>
+ <notification name="FriendOffline">
+ [FIRST] [LAST] est déconnecté(e)
+ </notification>
+ <notification name="AddSelfFriend">
+ Vous ne pouvez pas devenir ami avec vous-même.
+ </notification>
+ <notification name="UploadingAuctionSnapshot">
+ Importation de photos SL et Web en cours
+(prend environ 5 minutes…)
+ </notification>
+ <notification name="UploadPayment">
+ Le chargement a coûté [AMOUNT] L$.
+ </notification>
+ <notification name="UploadWebSnapshotDone">
+ Photo Web importée
+ </notification>
+ <notification name="UploadSnapshotDone">
+ Photo SL importée
+ </notification>
+ <notification name="TerrainDownloaded">
+ Fichier terrain.raw téléchargé
+ </notification>
+ <notification name="GestureMissing">
+ Geste [NAME] absent de la base de données.
+ </notification>
+ <notification name="UnableToLoadGesture">
+ Impossible de charger le geste [NAME].
+Merci de réessayer.
+ </notification>
+ <notification name="LandmarkMissing">
+ Repère absent de la base de données.
+ </notification>
+ <notification name="UnableToLoadLandmark">
+ Impossible de charger le repère. Merci de réessayer.
+ </notification>
+ <notification name="CapsKeyOn">
+ La touche Verr.maj est activée.
+Ce mode modifie le mot de passe que vous saisissez, vous devriez le quitter.
+ </notification>
+ <notification name="NotecardMissing">
+ Note absente de la base de données.
+ </notification>
+ <notification name="NotecardNoPermissions">
+ Permissions insuffisantes pour voir la note.
+ </notification>
+ <notification name="RezItemNoPermissions">
+ Permissions insuffisantes pour rezzer l&apos;objet.
+ </notification>
+ <notification name="UnableToLoadNotecard">
+ Impossible de lire les données de la note actuellement.
+ </notification>
+ <notification name="ScriptMissing">
+ Script absent de la base de données.
+ </notification>
+ <notification name="ScriptNoPermissions">
+ Permissions insuffisantes pour voir le script.
+ </notification>
+ <notification name="UnableToLoadScript">
+ Impossible de charger le script. Merci de réessayer.
+ </notification>
+ <notification name="IncompleteInventory">
+ Tous les éléments que vous souhaitez transférer ne sont pas encore disponibles sur le serveur.
+Merci d&apos;essayer à nouveau dans une minute.
+ </notification>
+ <notification name="CannotModifyProtectedCategories">
+ Vous ne pouvez pas modifier de catégories protégées.
+ </notification>
+ <notification name="CannotRemoveProtectedCategories">
+ Vous ne pouvez pas supprimer de catégories protégées.
+ </notification>
+ <notification name="OfferedCard">
+ Vous avez offert votre carte de visite à [FIRST] [LAST]
+ </notification>
+ <notification name="UnableToBuyWhileDownloading">
+ Achat impossible durant le chargement de l&apos;objet.
+Merci de réessayer.
+ </notification>
+ <notification name="UnableToLinkWhileDownloading">
+ Impossible de lier durant le chargement de l&apos;objet.
+Merci de réessayer.
+ </notification>
+ <notification name="CannotBuyObjectsFromDifferentOwners">
+ Impossible d&apos;acheter simultanément des objets de propriétaires différents. Veuillez sélectionner un seul objet.
+ </notification>
+ <notification name="ObjectNotForSale">
+ Cet objet ne semble pas à vendre.
+ </notification>
+ <notification name="EnteringGodMode">
+ Activation du mode divin : niveau [LEVEL]
+ </notification>
+ <notification name="LeavingGodMode">
+ Désactivation du mode divin : niveau [LEVEL]
+ </notification>
+ <notification name="CopyFailed">
+ Copie impossible, droits insuffisants.
+ </notification>
+ <notification name="InventoryAccepted">
+ [NAME] a accepté votre envoi.
+ </notification>
+ <notification name="InventoryDeclined">
+ [NAME] a refusé votre envoi.
+ </notification>
+ <notification name="ObjectMessage">
+ [NAME]: [MESSAGE]
+ </notification>
+ <notification name="CallingCardAccepted">
+ Votre carte de visite a été acceptée.
+ </notification>
+ <notification name="CallingCardDeclined">
+ Votre carte de visite a été refusée.
+ </notification>
+ <notification name="TeleportToLandmark">
+ A présent que vous êtes sur le continent, vous pouvez voyager par téléportation (vers [NAME] par exemple). Cliquez sur le bouton Inventaire en bas à droite de l&apos;écran puis sélectionnez le dossier Repères (Landmarks).
+Choisissez un repère, double-cliquez dessus et cliquez sur Téléporter.
+ </notification>
+ <notification name="TeleportToPerson">
+ A présent que vous êtes sur le continent, vous pouvez contacter des résidents (tel [NAME] par exemple). Cliquez sur le bouton Inventaire en bas à droite de l&apos;écran puis sélectionnez le dossier Cartes de visite (Calling Cards).
+Choisissez en une, double-cliquez dessus et cliquez sur Message Instantané.
+ </notification>
+ <notification name="CantSelectLandFromMultipleRegions">
+ Vous ne pouvez pas sélectionner de terrain en dehors des limites du serveur.
+Veuillez sélectionner un terrain plus petit.
+ </notification>
+ <notification name="SearchWordBanned">
+ Certains termes de votre recherche ont été exclus car ils ne correspondaient pas aux standards fixés dans les Règles communautaires.
+ </notification>
+ <notification name="NoContentToSearch">
+ Veuillez sélectionner au moins un type de contenu à rechercher (PG, Mature ou Adulte)
+ </notification>
+ <notification name="GroupVote">
+ [NAME] a proposé un vote pour :
+[MESSAGE]
+ <form name="form">
+ <button name="VoteNow" text="Voter"/>
+ <button name="Later" text="Plus tard"/>
+ </form>
+ </notification>
+ <notification name="SystemMessage">
+ [MESSAGE]
+ </notification>
+ <notification name="EventNotification">
+ Avis d&apos;événement :
+
+[NAME]
+[DATE]
+ <form name="form">
+ <button name="Teleport" text="Téléporter"/>
+ <button name="Description" text="Description"/>
+ <button name="Cancel" text="Annuler"/>
+ </form>
+ </notification>
+ <notification name="TransferObjectsHighlighted">
+ Tous les objets de cette parcelle qui seront transférés à l&apos;acheteur sont maintenant mis en surbrillance.
+
+* Les arbres et la pelouse qui seront transférés ne sont pas mis en surbrillance.
+ <form name="form">
+ <button name="Done" text="Transfert effectué"/>
+ </form>
+ </notification>
+ <notification name="DeactivatedGesturesTrigger">
+ Gestes désactivés ayant le même mot-clé :
+[NAMES]
+ </notification>
+ <notification name="NoQuickTime">
+ Le logiciel Apple QuickTime ne semble pas installé sur votre système.
+Pour voir les vidéos sur les terrains qui le permettent, allez sur le site de QuickTime (http://www.apple.com/fr/quicktime/download) et installez le lecteur QuickTime.
+ </notification>
+ <notification name="OwnedObjectsReturned">
+ Les objets que vous possédez sur la parcelle de terrain sélectionnée ont été renvoyés dans votre inventaire.
+ </notification>
+ <notification name="OtherObjectsReturned">
+ Les objets que vous possédez sur la parcelle de terrain appartenant à [FIRST] [LAST] ont été renvoyés dans votre inventaire.
+ </notification>
+ <notification name="OtherObjectsReturned2">
+ Les objets sur la parcelle appartenant à « [NAME] » ont étés renvoyés à leur propriétaire.
+ </notification>
+ <notification name="GroupObjectsReturned">
+ Les objets sélectionnés sur la parcelle de terrain partagée avec le groupe [GROUPNAME] ont été renvoyés dans l&apos;inventaire de leur propriétaire.
+Les objets donnés transférables ont étés renvoyés à leur propriétaire.
+Les objets non transférables donnés au groupe ont étés supprimés.
+ </notification>
+ <notification name="UnOwnedObjectsReturned">
+ Les objets sélectionnés sur la parcelle et qui ne sont pas à vous ont été rendus à leurs propriétaires.
+ </notification>
+ <notification name="NotSafe">
+ Les dégâts sont autorisés sur ce terrain (« non sécurisé »).
+Vous pouvez être blessé ici. Si vous décédez, vous serez téléporté à votre domicile.
+ </notification>
+ <notification name="NoFly">
+ Le vol est interdit sur ce terrain (« pas de vol »).
+Vous ne pouvez pas voler ici.
+ </notification>
+ <notification name="PushRestricted">
+ Les bousculades sont interdites sur ce terrain.
+Vous ne pouvez pas pousser les autres à moins que vous soyez propriétaire de ce terrain.
+ </notification>
+ <notification name="NoVoice">
+ La voix est désactivée sur ce terrain.
+ </notification>
+ <notification name="NoBuild">
+ Le mode construction sur ce terrain est désactivé (« pas de construction »).
+Vous ne pouvez pas créer d&apos;objets ici.
+ </notification>
+ <notification name="ScriptsStopped">
+ Un administrateur a temporairement stoppé les scripts dans cette région.
+ </notification>
+ <notification name="ScriptsNotRunning">
+ Aucun script ne fonctionne dans cette région.
+ </notification>
+ <notification name="NoOutsideScripts">
+ Les scripts externes sont désactivés sur ce terrain (« pas de scripts externes »).
+Aucun script n&apos;est exécuté à part ceux du propriétaire du terrain.
+ </notification>
+ <notification name="ClaimPublicLand">
+ Vous ne pouvez réclamer qu&apos;un terrain public dans la région où vous vous trouvez actuellement.
+ </notification>
+ <notification name="RegionTPAccessBlocked">
+ Votre catégorie d&apos;accès ne vous autorise pas à pénétrer dans cette région. Vous devez sans doute procéder à la vérification de votre âge ou installer une version plus récente du client.
+
+Pour savoir comment accéder aux zones ayant un tel niveau d&apos;accès, veuillez consulter les pages d&apos;aide.
+ </notification>
+ <notification name="URBannedFromRegion">
+ Vous avez été banni de cette région.
+ </notification>
+ <notification name="NoTeenGridAccess">
+ Votre compte ne peut pas se connecter à cette région du Teen grid.
+ </notification>
+ <notification name="NoHelpIslandTP">
+ Vous ne pouvez pas retourner sur Help Island.
+Pour répéter le didacticiel, veuillez aller sur Help Island Public.
+ </notification>
+ <notification name="ImproperPaymentStatus">
+ Vous n&apos;avez pas le statut de paiement approprié pour pénétrer dans cette région.
+ </notification>
+ <notification name="MustGetAgeRgion">
+ Pour pouvoir pénétrer dans cette région, vous devez avoir procédé à la vérification de votre âge.
+ </notification>
+ <notification name="MustGetAgeParcel">
+ Pour pouvoir pénétrer sur cette parcelle, vous devez avoir procédé à la vérification de votre âge.
+ </notification>
+ <notification name="NoDestRegion">
+ Région de destination introuvable.
+ </notification>
+ <notification name="NotAllowedInDest">
+ Vous n&apos;êtes pas autorisé dans cette région.
+ </notification>
+ <notification name="RegionParcelBan">
+ Impossible de traverser une parcelle bannie. Veuillez trouver une autre solution.
+ </notification>
+ <notification name="TelehubRedirect">
+ Vous avez été redirigé vers un téléhub.
+ </notification>
+ <notification name="CouldntTPCloser">
+ Il n&apos;a pas été possible de vous téléporter vers une destination plus proche.
+ </notification>
+ <notification name="TPCancelled">
+ Téléportation annulée.
+ </notification>
+ <notification name="FullRegionTryAgain">
+ La région dans laquelle vous essayez de pénétrer est pleine actuellement.
+Veuillez réessayer dans quelques minutes.
+ </notification>
+ <notification name="GeneralFailure">
+ Panne générale.
+ </notification>
+ <notification name="RoutedWrongRegion">
+ Dirigé vers la mauvaise région. Merci de réessayer.
+ </notification>
+ <notification name="NoValidAgentID">
+ ID agent non valide.
+ </notification>
+ <notification name="NoValidSession">
+ ID de session non valide.
+ </notification>
+ <notification name="NoValidCircuit">
+ Aucun code de circuit valide.
+ </notification>
+ <notification name="NoValidTimestamp">
+ Timestamp non valide.
+ </notification>
+ <notification name="NoPendingConnection">
+ Impossible de créer la connexion en attente.
+ </notification>
+ <notification name="InternalUsherError">
+ Erreur interne lors de la tentative de connexion.
+ </notification>
+ <notification name="NoGoodTPDestination">
+ Impossible de trouver un lieu de téléportation valide dans cette région.
+ </notification>
+ <notification name="InternalErrorRegionResolver">
+ Une erreur interne est survenue lors de la résolution des coodonnées de la région.
+ </notification>
+ <notification name="NoValidLanding">
+ Impossible de trouver un point d&apos;atterrissage valide.
+ </notification>
+ <notification name="NoValidParcel">
+ Aucune parcelle valide n&apos;a été trouvée.
+ </notification>
+ <notification name="ObjectGiveItem">
+ Un objet appelé [OBJECTFROMNAME] appartenant à [FIRST] [LAST] vous a donné : [OBJECTTYPE] appelé(e) [OBJECTNAME].
+ <form name="form">
+ <button name="Keep" text="Garder"/>
+ <button name="Discard" text="Jeter"/>
+ <button name="Mute" text="Ignorer"/>
+ </form>
+ </notification>
+ <notification name="ObjectGiveItemUnknownUser">
+ L&apos;objet [OBJECTFROMNAME] appartenant à un utilisateur inconnu vous a donné un(e) [OBJECTTYPE] nommé(e) [OBJECTNAME].
+ <form name="form">
+ <button name="Keep" text="Garder"/>
+ <button name="Discard" text="Jeter"/>
+ <button name="Mute" text="Ignorer"/>
+ </form>
+ </notification>
+ <notification name="UserGiveItem">
+ [NAME] vous a donné un(e) [OBJECTTYPE] nommé(e) [OBJECTNAME].
+ <form name="form">
+ <button name="Keep" text="Garder"/>
+ <button name="Discard" text="Jeter"/>
+ <button name="Mute" text="Ignorer"/>
+ </form>
+ </notification>
+ <notification name="GodMessage">
+ [NAME]
+[MESSAGE]
+ </notification>
+ <notification name="JoinGroup">
+ [MESSAGE]
+ <form name="form">
+ <button name="Join" text="Rejoindre"/>
+ <button name="Decline" text="Refuser"/>
+ <button name="Info" text="Infos"/>
+ </form>
+ </notification>
+ <notification name="TeleportOffered">
+ [NAME] vous propose de le/la rejoindre par téléportation :
+
+[MESSAGE]
+ <form name="form">
+ <button name="Teleport" text="Téléporter"/>
+ <button name="Cancel" text="Annuler"/>
+ </form>
+ </notification>
+ <notification name="GotoURL">
+ [MESSAGE]
+[URL]
+ <form name="form">
+ <button name="Later" text="Plus tard"/>
+ <button name="GoNow..." text="Y aller maintenant..."/>
+ </form>
+ </notification>
+ <notification name="OfferFriendship">
+ [NAME] vous demande de devenir son ami(e).
+
+[MESSAGE]
+
+(Par défaut, vous pourrez voir lorsque vous êtes tous deux connectés.)
+ <form name="form">
+ <button name="Accept" text="Accepter"/>
+ <button name="Decline" text="Refuser"/>
+ </form>
+ </notification>
+ <notification name="OfferFriendshipNoMessage">
+ [NAME] vous demande de devenir son ami.
+
+(Par défaut, vous pourrez voir quand vous êtes tous deux connectés)
+ <form name="form">
+ <button name="Accept" text="Accepter"/>
+ <button name="Decline" text="Refuser"/>
+ </form>
+ </notification>
+ <notification name="FriendshipAccepted">
+ [NAME] a accepté votre amitié.
+ </notification>
+ <notification name="FriendshipDeclined">
+ [NAME] a refusé votre amitié.
+ </notification>
+ <notification name="OfferCallingCard">
+ [FIRST] [LAST] vous offre sa carte de visite.
+Cela ajoute un marque-page dans votre inventaire, ce qui vous permet d&apos;envoyer rapidement un IM à ce résident.
+ <form name="form">
+ <button name="Accept" text="Accepter"/>
+ <button name="Decline" text="Refuser"/>
+ </form>
+ </notification>
+ <notification name="RegionRestartMinutes">
+ La région va redémarrer dans [MINUTES] minutes.
+Si vous restez dans cette région, vous serez déconnecté(e).
+ </notification>
+ <notification name="RegionRestartSeconds">
+ La région va redémarrer dans [SECONDS] secondes.
+Si vous restez dans cette région, vous serez déconnecté(e).
+ </notification>
+ <notification name="LoadWebPage">
+ Charger cette page web [URL] ?
+
+[MESSAGE]
+
+Venant de l&apos;objet : [OBJECTNAME], appartenant à : [NAME]?
+ <form name="form">
+ <button name="Gotopage" text="Charger"/>
+ <button name="Cancel" text="Annuler"/>
+ </form>
+ </notification>
+ <notification name="FailedToFindWearableUnnamed">
+ La recherche du [TYPE] dans la base de données a échoué.
+ </notification>
+ <notification name="FailedToFindWearable">
+ La recherche du [TYPE] nommé(e) [DESC] dans la base de données a échoué.
+ </notification>
+ <notification name="InvalidWearable">
+ L&apos;objet que vous essayez de porter utilise une fonctionnalité que le client ne peut lire. Pour porter cet objet, veuillez télécharger une mise à jour du client.
+ </notification>
+ <notification name="ScriptQuestion">
+ &apos;[OBJECTNAME]&apos;, un objet appartenant à &apos;[NAME]&apos;, aimerait :
+
+[QUESTIONS]
+Acceptez-vous ?
+ <form name="form">
+ <button name="Yes" text="Oui"/>
+ <button name="No" text="Non"/>
+ <button name="Mute" text="Ignorer"/>
+ </form>
+ </notification>
+ <notification name="ScriptQuestionCaution">
+ [OBJECTNAME], un objet appartenant à [NAME], aimerait :
+
+[QUESTIONS]
+Si vous n&apos;avez pas confiance en cet objet ni en son créateur, vous devriez refuser cette requête. Pour plus d&apos;informations, cliquez sur le bouton Détails.
+
+Accepter cette requête ?
+ <form name="form">
+ <button name="Grant" text="Accepter"/>
+ <button name="Deny" text="Refuser"/>
+ <button name="Details" text="Détails..."/>
+ </form>
+ </notification>
+ <notification name="ScriptDialog">
+ &apos;[TITLE]&apos; de [FIRST] [LAST]
+[MESSAGE]
+ <form name="form">
+ <button name="Ignore" text="Ignorer"/>
+ </form>
+ </notification>
+ <notification name="ScriptDialogGroup">
+ &apos;[TITLE]&apos; de [GROUPNAME]
+[MESSAGE]
+ <form name="form">
+ <button name="Ignore" text="Ignorer"/>
+ </form>
+ </notification>
+ <notification name="FirstBalanceIncrease">
+ Vous venez de recevoir [AMOUNT] L$.
+Des objets et des utilisateurs peuvent vous donner des L$.
+Votre solde est affiché dans le coin supérieur droit de votre écran.
+ </notification>
+ <notification name="FirstBalanceDecrease">
+ Vous venez de payer [AMOUNT] L$.
+Votre solde est affiché dans le coin supérieur droit de votre écran.
+ </notification>
+ <notification name="FirstSit">
+ Vous êtes assis(e).
+Utilisez les touches de direction (ou AWSD) pour changer la vue.
+Pour vous lever, cliquez sur le bouton Me lever.
+ </notification>
+ <notification name="FirstMap">
+ Cliquez et faites glisser pour faire défiler la carte.
+Double-cliquez pour vous téléporter.
+Utilisez les contrôles à droite pour trouver des choses et afficher différents arrière-plans.
+ </notification>
+ <notification name="FirstBuild">
+ Vous pouvez construire des objets dans certaines zones de [SECOND_LIFE].
+Utilisez les outils en haut à gauche pour construire et gardez la touche Ctrl ou Alt enfoncée pour passer rapidement d&apos;un outil à l&apos;autre.
+Appuyez sur la touche Esc pour arrêter de construire.
+ </notification>
+ <notification name="FirstLeftClickNoHit">
+ Un clic gauche permet d&apos;interagir avec certains objets.
+Si le pointeur de la souris se transforme en main, vous pouvez interagir avec l&apos;objet.
+Un clic droit fait toujours apparaître un menu des choses que vous pouvez faire.
+ </notification>
+ <notification name="FirstTeleport">
+ Cette région n&apos;autorise pas la téléportation de point à point. Vous avez donc été transporté au téléhub le plus proche.
+Votre destination est marquée par une grande balise.
+Suivez la flèche rouge vers la balise ou cliquez sur la flèche pour faire disparaître la balise.
+ </notification>
+ <notification name="FirstOverrideKeys">
+ Vos mouvements sont maintenant pris en charge par un objet.
+Essayez les flèches de votre clavier ou AWSD pour voir à quoi elles servent.
+Certains objets (comme les armes) nécessitent l&apos;activation du mode Vue subjective pour être utilisés.
+Pour cela, appuyez sur la touche M.
+ </notification>
+ <notification name="FirstAppearance">
+ Vous êtes en train d&apos;éditer votre apparence.
+Pour tourner et zoomer, utilisez les flèches de direction.
+Lorsque vous avez terminé, appuyez sur Enregistrer tout pour sauvegarder votre apparence et sortir.
+Vous pouvez modifier votre apparence aussi souvent que vous le souhaitez.
+ </notification>
+ <notification name="FirstInventory">
+ Il s&apos;agit de votre inventaire qui contient des objets, notes, vêtements, et autres possessions.
+* Pour porter un objet ou le dossier contenant un ensemble complet, faites-le glisser sur vous-même.
+* Pour mettre un objet dans le monde, faites-le glisser sur le sol.
+* Pour lire une note, double-cliquez dessus.
+ </notification>
+ <notification name="FirstSandbox">
+ Cette région est un bac à sable.
+Les objets que vous construisez ici peuvent être supprimés quand vous partez. Les bacs à sable sont nettoyés régulièrement, veuillez lire les informations en haut de l&apos;écran à côté du nom de la région.
+
+Les régions bacs à sable sont rares et sont signalées par des panneaux.
+ </notification>
+ <notification name="FirstFlexible">
+ Cet objet est flexible.
+Les objets flexibles ne peuvent pas avoir de propriétés physiques et doivent rester fantômes jusqu&apos;à ce que la case Fantôme soit décochée.
+ </notification>
+ <notification name="FirstDebugMenus">
+ Vous avez activé le menu Avancé.
+Ce menu contient des fonctionnalités utiles pour les développeurs qui travaillent sur Second Life.
+Pour activer/désactiver ce menu sous Windows, appuyez sur Ctrl-Alt-D. Sur un Mac, appuyez sur Cmd-Opt-Maj-D
+ </notification>
+ <notification name="FirstSculptedPrim">
+ Vous êtes en train d&apos;éditer un sculptie.
+Pour modifier la forme d&apos;un sculptie, vous devez utiliser une texture spécifique.
+Vous trouverez des textures dans la bibliothèque de votre inventaire.
+ </notification>
+ <notification name="FirstMedia">
+ Vous avez lancé la lecture d&apos;un média. Dans le menu Préférences, à l&apos;onglet Audio et vidéo, vous pouvez choisir de lire automatiquement les médias. Notez que cela peut être risqué lorsque les médias viennent de sites que vous ne connaissez pas.
+ </notification>
+ <notification name="MaxListSelectMessage">
+ Vous ne pouvez sélectionner que [MAX_SELECT] objets maximum dans cette liste.
+ </notification>
+ <notification name="VoiceInviteP2P">
+ [NAME] vous invite à un chat vocal.
+Pour y participer, cliquez sur Accepter. Sinon, cliquez sur Refuser. Pour ignorer cette personne, cliquez sur Ignorer.
+ <form name="form">
+ <button name="Accept" text="Accepter"/>
+ <button name="Decline" text="Refuser"/>
+ <button name="Mute" text="Ignorer"/>
+ </form>
+ </notification>
+ <notification name="AutoUnmuteByIM">
+ [FIRST] [LAST] a reçu un message instantané et n&apos;est donc plus ignoré.
+ </notification>
+ <notification name="AutoUnmuteByMoney">
+ [FIRST] [LAST] a reçu de l&apos;argent et n&apos;est donc plus ignoré.
+ </notification>
+ <notification name="AutoUnmuteByInventory">
+ [FIRST] [LAST] a reçu un inventaire et n&apos;est donc plus ignoré.
+ </notification>
+ <notification name="VoiceInviteGroup">
+ [NAME] a rejoint un chat vocal avec le groupe [GROUP].
+Pour y participer, cliquez sur Accepter. Sinon, cliquez sur Refuser. Pour ignorer cette personne, cliquez sur Ignorer.
+ <form name="form">
+ <button name="Accept" text="Accepter"/>
+ <button name="Decline" text="Refuser"/>
+ <button name="Mute" text="Ignorer"/>
+ </form>
+ </notification>
+ <notification name="VoiceInviteAdHoc">
+ [NAME] a rejoint un chat vocal avec conférence.
+Pour y participer, cliquez sur Accepter. Sinon, cliquez sur Refuser. Pour ignorer cet utilisateur, cliquez sur Ignorer.
+ <form name="form">
+ <button name="Accept" text="Accepter"/>
+ <button name="Decline" text="Refuser"/>
+ <button name="Mute" text="Ignorer"/>
+ </form>
+ </notification>
+ <notification name="InviteAdHoc">
+ [NAME] vous invite à un chat conférence.
+Pour y participer, cliquez sur Accepter. Sinon, cliquez sur Refuser. Pour ignorer cet utilisateur, cliquez sur Ignorer.
+ <form name="form">
+ <button name="Accept" text="Accepter"/>
+ <button name="Decline" text="Refuser"/>
+ <button name="Mute" text="Ignorer"/>
+ </form>
+ </notification>
+ <notification name="VoiceChannelFull">
+ L&apos;appel auquel vous essayez de participer, [VOICE_CHANNEL_NAME], a atteint le nombre maximum de participants. Veuillez réessayer ultérieurement.
+ </notification>
+ <notification name="ProximalVoiceChannelFull">
+ Nous sommes désolés. Le nombre maximum de conversations vocales a été atteint dans cette zone. Veuillez trouver un autre endroit pour discuter.
+ </notification>
+ <notification name="VoiceChannelDisconnected">
+ Vous avez été déconnecté(e) de [VOICE_CHANNEL_NAME]. Vous allez maintenant être reconnecté au chat vocal spatial.
+ </notification>
+ <notification name="VoiceChannelDisconnectedP2P">
+ [VOICE_CHANNEL_NAME] a mis fin à l&apos;appel. Vous allez maintenant être reconnecté au chat vocal spatial.
+ </notification>
+ <notification name="P2PCallDeclined">
+ [VOICE_CHANNEL_NAME] a refusé votre appel. Vous allez maintenant être reconnecté au chat vocal spatial.
+ </notification>
+ <notification name="P2PCallNoAnswer">
+ [VOICE_CHANNEL_NAME] ne peut pas prendre votre appel. Vous allez maintenant être reconnecté au chat vocal spatial.
+ </notification>
+ <notification name="VoiceChannelJoinFailed">
+ Echec de la connexion avec [VOICE_CHANNEL_NAME], veuillez réessayer ultérieurement. Vous allez maintenant être reconnecté au chat vocal spatial.
+ </notification>
+ <notification name="VoiceLoginRetry">
+ Nous sommes en train de créer un canal vocal pour vous. Veuillez patienter quelques instants.
+ </notification>
+ <notification name="Cannot enter parcel: not a group member">
+ Vous ne pouvez pas pénétrer sur ce terrain car vous n&apos;êtes pas membre du groupe adéquat.
+ </notification>
+ <notification name="Cannot enter parcel: banned">
+ Vous ne pouvez pas pénétrer sur ce terrain car l&apos;accès vous y est interdit.
+ </notification>
+ <notification name="Cannot enter parcel: not on access list">
+ Vous ne pouvez pas pénétrer sur ce terrain car vous n&apos;avez pas les droits d&apos;accès requis.
+ </notification>
+ <notification name="VoiceNotAllowed">
+ Vous n&apos;êtes pas autorisé à vous connecter au chat vocal pour [VOICE_CHANNEL_NAME].
+ </notification>
+ <notification name="VoiceCallGenericError">
+ Une erreur est survenue pendant la connexion au chat vocal pour [VOICE_CHANNEL_NAME]. Veuillez réessayer ultérieurement.
+ </notification>
+ <notification name="ServerVersionChanged">
+ La région dans laquelle vous avez pénétré utilise une version de simulateur différente. Pour plus de détails, cliquez sur ce message.
+ </notification>
+ <notification name="UnableToOpenCommandURL">
+ L&apos;URL sur laquelle vous avez cliqué ne peut pas être ouverte dans ce navigateur.
+ </notification>
+ <global name="UnsupportedCPU">
+ - Votre processeur ne remplit pas les conditions minimum requises.
+ </global>
+ <global name="UnsupportedGLRequirements">
+ Vous semblez ne pas avoir le matériel requis pour utiliser Second Life. Second Life requiert une carte graphique OpenGL avec une prise en charge du multitexturing. Si vous avez une telle carte, assurez-vous que vous avez aussi les drivers les plus récents pour la carte, ainsi que les service packs et les patchs pour votre système d&apos;exploitation.
+
+Si vous avez toujours des problèmes, veuillez consulter la page suivante : http://www.secondlife.com/support
+ </global>
+ <global name="UnsupportedCPUAmount">
+ 796
+ </global>
+ <global name="UnsupportedRAMAmount">
+ 510
+ </global>
+ <global name="UnsupportedGPU">
+ - Votre carte graphique ne remplit pas les conditions minimum requises.
+ </global>
+ <global name="UnsupportedRAM">
+ - Votre mémoire système ne remplit pas les conditions minimum requises.
+ </global>
+ <global name="PermYes">
+ Oui
+ </global>
+ <global name="PermNo">
+ Non
+ </global>
+</notifications>
diff --git a/indra/newview/skins/default/xui/fr/panel_friends.xml b/indra/newview/skins/default/xui/fr/panel_friends.xml
index fa0d08bb97..cbeb10287d 100644
--- a/indra/newview/skins/default/xui/fr/panel_friends.xml
+++ b/indra/newview/skins/default/xui/fr/panel_friends.xml
@@ -6,15 +6,15 @@
<scroll_list name="friend_list" tool_tip="Pour sélectionner plusieurs amis, cliquez en maintenant la touche Maj ou Ctrl appuyée">
<column name="icon_online_status" tool_tip="Statut en ligne"/>
<column label="Nom" name="friend_name" tool_tip="Nom"/>
- <column name="icon_visible_online" tool_tip="Vos amis voient si vous êtes connecté(e)"/>
- <column name="icon_visible_map" tool_tip="Vos amis peuvent vous situer sur la carte"/>
- <column name="icon_edit_mine" tool_tip="Vos amis peuvent modifier, supprimer ou prendre vos objets"/>
+ <column name="icon_visible_online" tool_tip="Votre ami voit si vous êtes connecté(e)"/>
+ <column name="icon_visible_map" tool_tip="Votre ami peut vous situer sur la carte"/>
+ <column name="icon_edit_mine" tool_tip="Votre ami peut modifier, supprimer ou prendre vos objets"/>
<column name="icon_edit_theirs" tool_tip="Vous pouvez modifier les objets de cet ami"/>
</scroll_list>
- <button label="IM/Appel" name="im_btn" tool_tip="Ouvrez une session de messagerie instantanée"/>
- <button label="Profil" name="profile_btn" tool_tip="Affichez une photo, vos groupes et autres infos"/>
+ <button label="IM/Appel" name="im_btn" tool_tip="Envoyez un IM à ce résident"/>
+ <button label="Profil" name="profile_btn" tool_tip="Consultez le profil de ce résident (photos, groupes et autres infos)"/>
<button label="Téléporter..." name="offer_teleport_btn" tool_tip="Proposez à cet ami d&apos;être téléporté là où vous êtes"/>
<button label="Payer..." name="pay_btn" tool_tip="Donnez des L$ à cet ami"/>
- <button label="Supprimer..." name="remove_btn" tool_tip="Supprimez cette personne de votre liste d&apos;amis"/>
+ <button label="Supprimer..." name="remove_btn" tool_tip="Supprimez ce résident de votre liste d&apos;amis"/>
<button label="Ajouter..." name="add_btn" tool_tip="Demandez à un résident de devenir votre ami"/>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_group_general.xml b/indra/newview/skins/default/xui/fr/panel_group_general.xml
index 7c7efdc1f1..2b983ced80 100644
--- a/indra/newview/skins/default/xui/fr/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/fr/panel_group_general.xml
@@ -1,22 +1,20 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Général" name="general_tab">
- <text name="help_text">
+ <string name="help_text">
L&apos;onglet Général contient les infos générales et les préférences du groupe ainsi que la liste des propriétaires et des membres visibles.
-
- </text>
+ </string>
<string name="group_info_unchanged">
Le profil du groupe a changé.
</string>
<button label="?" label_selected="?" name="help_button"/>
- <line_editor label="Saisissez le nom du groupe ici" name="group_name_editor">
- Saisissez le nom du groupe ici
- </line_editor>
+ <line_editor label="Saisissez le nom du groupe ici" name="group_name_editor"/>
<text name="group_name">
Saisissez le nom du groupe ici
</text>
<text name="prepend_founded_by">
- Fondé par </text>
- <text name="founder_name" left_delta="54">
+ Fondé par
+ </text>
+ <text left_delta="54" name="founder_name">
(en attente)
</text>
<text name="group_charter_label">
@@ -28,12 +26,6 @@
</text_editor>
<button label="Rejoindre (0L$)" label_selected="Rejoindre (0L$)" name="join_button"/>
<button label="Affichage détaillé" label_selected="Affichage détaillé" name="info_button"/>
- <text>
- Propriétaires et membres visibles
- </text>
- <text>
- (Propriétaires affichés en gras)
- </text>
<text name="text_owners_and_visible_members">
Propriétaires et membres visibles
</text>
@@ -48,25 +40,21 @@
<text name="text_group_preferences">
Préférences
</text>
- <text name="incomplete_member_data_str">
- Extraction des données du résident en cours
- </text>
- <text name="confirm_group_create_str">
- La création de ce groupe coûte 100 L$.
-Êtes-vous vraiment certain de vouloir dépenser 100 L$ pour créer ce groupe ?
-Sachez que si personne ne rejoint ce groupe sous 48h, il sera démantelé et ne pourra plus être utilisé.
- </text>
- <text>
- Préférences
- </text>
<panel name="preferences_container">
<check_box label="Afficher dans la recherche" name="show_in_group_list" tool_tip="Afficher ce groupe dans les résultats de recherche."/>
- <check_box label="Publier sur le web" name="publish_on_web" tool_tip="Cochez pour publier les informations de ce groupe sur le web."/>
<check_box label="Inscription libre" name="open_enrollement" tool_tip="Indique si une invitation est nécessaire pour devenir membre de ce groupe."/>
<check_box label="Frais d&apos;inscription : L$" name="check_enrollment_fee" tool_tip="Indique s&apos;il y a des frais d&apos;inscription pour devenir membre."/>
<spinner name="spin_enrollment_fee" tool_tip="Si la case Frais d&apos;inscription est cochée, cela signifie qu&apos;il faut payer des frais pour devenir membre."/>
- <check_box name="mature" />
- <combo_box name="group_mature_check" width="195">
+ <combo_box name="group_mature_check" tool_tip="Indique si les informations sur votre groupe sont classées Mature." width="195">
+ <combo_item name="select_mature">
+ - Type de public -
+ </combo_item>
+ <combo_item name="mature">
+ Contenu Mature
+ </combo_item>
+ <combo_item name="pg">
+ Contenu PG
+ </combo_item>
</combo_box>
<panel name="title_container">
<text name="active_title_label">
@@ -77,4 +65,12 @@ Sachez que si personne ne rejoint ce groupe sous 48h, il sera démantelé et ne
<check_box label="Recevoir les notices" name="receive_notices" tool_tip="Cochez si vous souhaitez recevoir les notices envoyées au groupe. Décochez si ce groupe vous envoie des spams."/>
<check_box label="Afficher dans mon profil" name="list_groups_in_profile" tool_tip="Indique si vous voulez que ce groupe apparaisse dans votre profil"/>
</panel>
+ <string name="incomplete_member_data_str">
+ Extraction des données du résident en cours
+ </string>
+ <string name="confirm_group_create_str">
+ La création de ce groupe coûte 100 L$.
+Êtes-vous vraiment certain de vouloir dépenser 100 L$ pour créer ce groupe ?
+Sachez que si personne ne rejoint ce groupe sous 48h, il sera démantelé et ne pourra plus être utilisé.
+ </string>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_group_land_money.xml b/indra/newview/skins/default/xui/fr/panel_group_land_money.xml
index 7fd900acaa..551d11d588 100644
--- a/indra/newview/skins/default/xui/fr/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/fr/panel_group_land_money.xml
@@ -1,16 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Terrain et L$" name="land_money_tab">
- <text name="help_text">
+ <string name="help_text">
Les parcelles appartenant au groupe sont indiquées avec le détails des contributions. Un avertissement apparaît si la surface utilisée par le groupe est supérieure ou égale au total des contributions. Les onglets Planification, Détails et Ventes correspondent aux finances du groupe.
- </text>
+ </string>
<button label="?" name="help_button"/>
- <text name="cant_view_group_land_text">
+ <string name="cant_view_group_land_text">
Vous n&apos;avez pas la permission de voir quel terrain possède ce groupe.
- </text>
- <text name="cant_view_group_accounting_text">
+ </string>
+ <string name="cant_view_group_accounting_text">
Vous n&apos;avez pas la permission d&apos;accéder aux informations
financières de ce groupe.
- </text>
+ </string>
<string name="loading_txt">
Chargement...
</string>
@@ -18,8 +18,9 @@ financières de ce groupe.
Terrain du groupe
</text>
<scroll_list name="group_parcel_list">
- <column label="Nom de la parcelle" name="name"/>
+ <column label="Parcelle" name="name"/>
<column label="Région" name="location"/>
+ <column label="Type" name="type"/>
<column label="Surface" name="area"/>
<column label="" name="hidden"/>
</scroll_list>
@@ -45,9 +46,6 @@ financières de ce groupe.
<text name="your_contribution_label">
Votre contribution :
</text>
- <text name="your_contribution_max_value_append">
- mètres carrés
- </text>
<string name="land_contrib_error">
Impossible de définir votre don de terre.
</string>
diff --git a/indra/newview/skins/default/xui/fr/panel_notifications_channel.xml b/indra/newview/skins/default/xui/fr/panel_notifications_channel.xml
index 4b2dbd0d6e..5beb71981c 100644
--- a/indra/newview/skins/default/xui/fr/panel_notifications_channel.xml
+++ b/indra/newview/skins/default/xui/fr/panel_notifications_channel.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="notifications_panel">
- <layout_stack>
- <scroll_list name="notifications_list">
- <column label="Nom" name="name"/>
- <column label="Contenu" name="content"/>
- <column label="Date" name="date"/>
- </scroll_list>
- <scroll_list name="notification_rejects_list">
- <column label="Nom" name="name"/>
- <column label="Contenu" name="content"/>
- <column label="Date" name="date"/>
- </scroll_list>
- </layout_stack>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="notifications_panel">
+ <layout_stack name="stack1">
+ <scroll_list name="notifications_list">
+ <column label="Nom" name="name"/>
+ <column label="Contenu" name="content"/>
+ <column label="Date" name="date"/>
+ </scroll_list>
+ <scroll_list name="notification_rejects_list">
+ <column label="Nom" name="name"/>
+ <column label="Contenu" name="content"/>
+ <column label="Date" name="date"/>
+ </scroll_list>
+ </layout_stack>
+</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml b/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml
index d29ec67272..5fbd3cec22 100644
--- a/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml
@@ -5,15 +5,9 @@
du chat :
</text>
<radio_group name="chat_font_size">
- <radio_item length="1" name="radio" type="string">
- Petite
- </radio_item>
- <radio_item length="1" name="radio2" type="string">
- Moyenne
- </radio_item>
- <radio_item length="1" name="radio3" type="string">
- Grande
- </radio_item>
+ <radio_item length="1" name="radio" type="string" label="Petite" />
+ <radio_item length="1" name="radio2" type="string" label="Moyenne" />
+ <radio_item length="1" name="radio3" type="string" label="Grande" />
</radio_group>
<text length="1" name="text_box2" type="string">
Couleur du chat :
diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_general.xml b/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
index 9ab01b3189..7c366e8bdc 100644
--- a/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
@@ -29,6 +29,26 @@
<check_box label="Utiliser une échelle indépendante de la résolution" name="ui_auto_scale"/>
<spinner label="Absent(e) après :" name="afk_timeout_spinner"/>
<check_box label="M&apos;avertir lorsque je dépense ou reçois des L$" name="notify_money_change_checkbox"/>
+ <text name="maturity_desired_label">
+ Catégorie de contenu :
+ </text>
+ <text name="maturity_desired_prompt">
+ Je veux accéder au contenu classé :
+ </text>
+ <combo_box name="maturity_desired_combobox" left="340">
+ <combo_item name="Desired_Adult">
+ PG, Mature et Adult
+ </combo_item>
+ <combo_item name="Desired_Mature">
+ PG et Mature
+ </combo_item>
+ <combo_item name="Desired_PG">
+ PG uniquement
+ </combo_item>
+ </combo_box>
+ <text name="maturity_desired_textbox" left="340">
+ PG uniquement
+ </text>
<text length="1" name="start_location_textbox" type="string">
Lieu de départ :
</text>
@@ -74,6 +94,15 @@ de sélection :
<combo_box.item length="1" name="Chinese" type="string" label="中文 (简体) (Chinois) - Bêta"/>
<combo_box.item length="1" name="(Japanese)" type="string" label="日本語 (Japonais) - Bêta"/>
<combo_box.item length="1" name="(Korean)" type="string" label="한국어 (Coréen) - Bêta"/>
+ <combo_item name="Italian">
+ Italiano (Italien) - Bêta
+ </combo_item>
+ <combo_item name="Dutch">
+ Nederlands (Néerlandais) - Bêta
+ </combo_item>
+ </combo_item>
+ <combo_item name="Turkish">
+ Türkçe (Turc) - Bêta
</combo_box>
<check_box label="Partager la langue avec les objets" name="language_is_public" tool_tip="Cette option permet de faire connaître aux objets du Monde votre langue favorite."/>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml
index bf75fb58a3..cc9e2a8569 100644
--- a/indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml
@@ -86,18 +86,10 @@
Objets reflétés :
</text>
<radio_group name="ReflectionDetailRadio">
- <radio_item name="0">
- Terrain et Arbres
- </radio_item>
- <radio_item name="1">
- Objets statiques
- </radio_item>
- <radio_item name="2">
- Objets et avatars
- </radio_item>
- <radio_item name="3">
- Tout
- </radio_item>
+ <radio_item name="0" label="Terrain et Arbres" />
+ <radio_item name="1" label="Objets statiques" />
+ <radio_item name="2" label="Objets et avatars" />
+ <radio_item name="3" label="Tout" />
</radio_group>
<text name="AvatarRenderingText">
Rendu de l&apos;avatar :
@@ -148,23 +140,15 @@
Sources lumineuses :
</text>
<radio_group name="LightingDetailRadio">
- <radio_item name="SunMoon">
- Soleil et lune uniquement
- </radio_item>
- <radio_item name="LocalLights">
- Lumières à proximité
- </radio_item>
+ <radio_item name="SunMoon" label="Soleil et lune uniquement" />
+ <radio_item name="LocalLights" label="Lumières à proximité" />
</radio_group>
<text left="380" name="TerrainDetailText">
Rendu du terrain :
</text>
<radio_group name="TerrainDetailRadio">
- <radio_item name="0">
- Faible
- </radio_item>
- <radio_item name="2">
- Élevé
- </radio_item>
+ <radio_item name="0" label="Faible" />
+ <radio_item name="2" label="Élevé" />
</radio_group>
<button label="Paramètres recommandés" name="Defaults"/>
<button label="Configuration du matériel" label_selected="Configuration du matériel" name="GraphicsHardwareButton"/>
diff --git a/indra/newview/skins/default/xui/fr/panel_region_covenant.xml b/indra/newview/skins/default/xui/fr/panel_region_covenant.xml
index 557e88267d..f2ba297fd2 100644
--- a/indra/newview/skins/default/xui/fr/panel_region_covenant.xml
+++ b/indra/newview/skins/default/xui/fr/panel_region_covenant.xml
@@ -1,51 +1,82 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Règlement" name="Covenant">
- <text name="covenant_help_text" bottom="-25">
- Les changements apportés au règlement apparaîtront sur toutes les
-parcelles du domaine.
+ <text name="estate_section_lbl">
+ Domaine :
+ </text>
+ <text bottom_delta="-19" name="estate_name_lbl">
+ Nom :
+ </text>
+ <text name="estate_name_text">
+ continent
+ </text>
+ <text bottom_delta="-19" name="estate_owner_lbl">
+ Propriétaire :
+ </text>
+ <text name="estate_owner_text">
+ (aucun)
+ </text>
+ <text name="estate_cov_lbl">
+ Règlement :
+ </text>
+ <text name="covenant_timestamp_text">
+ Dernière modification le mercredi 31 décembre 1969 16:00:00
+ </text>
+ <button label="?" name="covenant_help"/>
+ <text_editor bottom="-263" height="178" name="covenant_editor">
+ Il n&apos;y a aucun règlement pour ce domaine.
+ </text_editor>
+ <button label="Réinitialiser" name="reset_covenant"/>
+ <text name="covenant_help_text">
+ Les changements apportés au règlement apparaîtront sur toutes
+ les parcelles du domaine.
</text>
- <text name="region_name_lbl" bottom_delta="-31">
+ <text bottom_delta="-31" name="covenant_instructions">
+ Faire glisser une note pour changer le règlement de ce domaine.
+ </text>
+ <text name="region_section_lbl">
Région :
</text>
+ <text name="region_name_lbl">
+ Nom :
+ </text>
<text name="region_name_text">
- (inconnue)
+ leyla
</text>
- <text name="estate_name_lbl" bottom_delta="-19">
- Domaine :
+ <text name="region_landtype_lbl">
+ Type :
</text>
- <text name="estate_name_text">
- (inconnu)
+ <text name="region_landtype_text">
+ Continent / Homestead
</text>
- <text name="covenent_instructions">
- Pour modifier le règlement de ce domaine, glissez-déposez une note.
+ <text name="region_maturity_lbl">
+ Catégorie :
</text>
- <button label="?" name="covenant_help" />
- <button label="Redéfinir" name="reset_covenant" />
- <text name="estate_owner_lbl" bottom_delta="-19">
- Propriétaire :
+ <text name="region_maturity_text">
+ Adult
</text>
- <text name="estate_owner_text">
- (inconnu)
+ <text name="resellable_lbl">
+ Revendre :
</text>
<text name="resellable_clause">
- Le terrain acheté dans cette région peut être revendu ou pas.
+ Le terrain dans cette région ne peut être revendu.
+ </text>
+ <text name="changeable_lbl">
+ Sous-diviser :
</text>
<text name="changeable_clause">
- Le terrain acheté dans cette région peut être fusionné/divisé ou pas.
+ Le terrain dans cette région ne peut être fusionné/divisé.
</text>
- <text_editor name="covenant_editor">
- Chargement...
- </text_editor>
- <text name="can_resell">
+ <string name="can_resell">
Le terrain acheté dans cette région peut être revendu.
- </text>
- <text name="can_not_resell">
+ </string>
+ <string name="can_not_resell">
Le terrain acheté dans cette région ne peut pas être revendu.
- </text>
- <text name="can_change">
+ </string>
+ <string name="can_change">
Le terrain acheté dans cette région peut être fusionné ou divisé.
- </text>
- <text name="can_not_change">
- Le terrain acheté dans cette région ne peut pas être fusionné ou divisé.
- </text>
+ </string>
+ <string name="can_not_change">
+ Le terrain acheté dans cette région ne peut pas être fusionné ou
+divisé.
+ </string>
</panel>
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 92f44fa0e2..1338ab9e71 100644
--- a/indra/newview/skins/default/xui/fr/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/fr/panel_region_debug.xml
@@ -10,7 +10,7 @@
<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 les propriétés &#10;physiques" name="disable_physics_check" tool_tip="Désactiver toutes les propriétés physiques dans cette région"/>
+ <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 label="Appliquer" name="apply_btn" bottom_delta="-38"/>
<text name="objret_text_lbl" bottom_delta="-42">
@@ -30,9 +30,9 @@
<check_box label="Ne renvoyer que les objets sur le terrain de quelqu&apos;un d&apos;autre" name="return_other_land" tool_tip="Ne renvoyer que les objets se trouvant sur le terrain de quelqu&apos;un d&apos;autre"/>
<check_box label="Renvoyer les objets 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="Afficher les objets souvent responsables de collision..." name="top_colliders_btn" tool_tip="Liste des objets avec le plus de collisions potentielles" width="320"/>
+ <button label="Afficher les collisions les plus consommatrices..." name="top_colliders_btn" tool_tip="Liste des objets avec le plus de collisions potentielles" width="320"/>
<button label="?" name="top_colliders_help" left="337"/>
- <button label="Afficher les objets exécutant le plus de scripts..." name="top_scripts_btn" tool_tip="Liste des objets qui passent le plus de temps à exécuter des scripts" width="320"/>
+ <button label="Afficher les objets scriptés les plus consommateurs..." name="top_scripts_btn" tool_tip="Liste des objets qui passent le plus de temps à exécuter des scripts" width="320"/>
<button label="?" name="top_scripts_help" left="337"/>
<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="?" name="restart_help" left="177" />
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 7f272ab431..6a8afd24ed 100644
--- a/indra/newview/skins/default/xui/fr/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/fr/panel_region_general.xml
@@ -12,7 +12,13 @@
<text name="version_channel_text">
(inconnu)
</text>
- <check_box label="Bloquer le terraformage" name="block_terraform_check"/>
+ <text name="region_type_lbl">
+ Type :
+ </text>
+ <text name="region_type">
+ (inconnu)
+ </text>
+ <check_box label="Interdire le terraformage" name="block_terraform_check"/>
<button label="?" name="terraform_help"/>
<check_box label="Interdire le vol" name="block_fly_check"/>
<button label="?" name="fly_help"/>
@@ -26,16 +32,24 @@
<button label="?" name="parcel_changes_help"/>
<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"/>
<button label="?" name="parcel_search_help"/>
- <spinner label="Nombre limite d&apos;avatars" name="agent_limit_spin" label_width="127" width="190"/>
+ <spinner label="Nombre maximum d&apos;avatars" label_width="127" name="agent_limit_spin" width="190"/>
<button label="?" name="agent_limit_help"/>
- <spinner label="Bonus objet" name="object_bonus_spin" label_width="127" width="190"/>
+ <spinner label="Bonus objet" label_width="127" name="object_bonus_spin" width="190"/>
<button label="?" name="object_bonus_help"/>
<text label="Maturité" name="access_text">
- Maturité :
+ Catégorie :
</text>
-
-
-
+ <combo_box label="Mature" name="access_combo">
+ <combo_item name="Adult">
+ Adult
+ </combo_item>
+ <combo_item name="Mature">
+ Mature
+ </combo_item>
+ <combo_item name="PG">
+ PG
+ </combo_item>
+ </combo_box>
<button label="?" name="access_help"/>
<button label="Appliquer" name="apply_btn"/>
<button label="Téléporter un résident chez lui..." name="kick_btn"/>
diff --git a/indra/newview/skins/default/xui/fr/role_actions.xml b/indra/newview/skins/default/xui/fr/role_actions.xml
index 4dd1288e18..a2df596773 100644
--- a/indra/newview/skins/default/xui/fr/role_actions.xml
+++ b/indra/newview/skins/default/xui/fr/role_actions.xml
@@ -48,7 +48,7 @@
name="group change identity" value="11" />
</action_set>
<action_set
- description="Ces pouvoirs permettent de transférer, modifier et vendre du terrain appartenant au groupe. Pour accéder au menu À propos du terrain, cliquez sur le nom de la parcelle en haut de l&apos;écran ou cliquez à droite sur le sol."
+ description="Ces pouvoirs permettent de transférer, modifier et vendre du terrain appartenant au groupe. Pour accéder au menu À propos du terrain, cliquez sur le nom de la parcelle en haut de l&apos;écran ou cliquez-droit sur le sol."
name="Parcel Management">
<action description="Transférer et acheter des parcelles pour le groupe"
longdescription="Transférez et achetez des parcelles pour le groupe à partir du menu À propos du terrain &gt; Général."
@@ -60,7 +60,7 @@
longdescription="Vendez des parcelles du groupe. Attention : ce pouvoir autorise la vente d&apos;un terrain appartenant au groupe. Ce terrain sera alors définitivement perdu. Assurez-vous de bien comprendre ce pouvoir avant de l&apos;attribuer."
name="land set sale info" value="14" />
<action description="Diviser et fusionner des parcelles"
- longdescription="Divisez et fusionnez des parcelles. Pour cela, cliquez à droite sur le sol, sélectionnez Modifier le terrain, et faites glisser votre souris sur l&apos;endroit que vous souhaitez modifier. Pour diviser le terrain, sélectionnez un endroit puis cliquez sur Diviser... Pour fusionner des parcelles, sélectionnez au moins deux parcelles adjacentes et cliquez sur Fusionner."
+ longdescription="Divisez et fusionnez des parcelles. Pour cela, cliquez-droit sur le sol, sélectionnez Modifier le terrain, et faites glisser votre souris sur l&apos;endroit que vous souhaitez modifier. Pour diviser le terrain, sélectionnez un endroit puis cliquez sur Diviser... Pour fusionner des parcelles, sélectionnez au moins deux parcelles adjacentes et cliquez sur Fusionner."
name="land divide join" value="15" />
</action_set>
<action_set
diff --git a/indra/newview/skins/default/xui/fr/strings.xml b/indra/newview/skins/default/xui/fr/strings.xml
index b0efe4f510..067c34294d 100644
--- a/indra/newview/skins/default/xui/fr/strings.xml
+++ b/indra/newview/skins/default/xui/fr/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- This file contains strings that used to be hardcoded in the source.
- It is only for those strings which don&apos;t belong in a floater.
+ It is only for those strings which do not belong in a floater.
For example, the strings used in avatar chat bubbles, and strings
that are returned from one component and may appear in many places-->
<strings>
@@ -95,7 +95,7 @@
Temporaire
</string>
<string name="TooltipFlagRightClickMenu">
- (cliquez à droite pour le menu)
+ (cliquez-droit pour le menu)
</string>
<string name="TooltipFreeToCopy">
Copie autorisée
@@ -418,6 +418,30 @@
<string name="shout">
crie :
</string>
+ <string name="SIM_ACCESS_PG">
+ PG
+ </string>
+ <string name="SIM_ACCESS_MATURE">
+ Mature
+ </string>
+ <string name="SIM_ACCESS_ADULT">
+ Adult
+ </string>
+ <string name="SIM_ACCESS_DOWN">
+ Hors ligne
+ </string>
+ <string name="SIM_ACCESS_MIN">
+ Inconnu
+ </string>
+ <string name="land_type_unknown">
+ (inconnu)
+ </string>
+ <string name="covenant_never_modified">
+ Dernière modification : (jamais)
+ </string>
+ <string name="covenant_modified">
+ Dernière modification :
+ </string>
<string name="all_files">
Tous fichiers
</string>
diff --git a/indra/newview/skins/default/xui/fr/teleport_strings.xml b/indra/newview/skins/default/xui/fr/teleport_strings.xml
index 91455297ad..810a32f64e 100644
--- a/indra/newview/skins/default/xui/fr/teleport_strings.xml
+++ b/indra/newview/skins/default/xui/fr/teleport_strings.xml
@@ -2,21 +2,16 @@
<teleport_messages name="">
<message_set name="errors">
<message name="invalid_tport">
- Nous avons rencontré des problèmes en essayant de vous téléporter. Vous devrez peut-être
-vous reconnecter avant de pouvoir être téléporté. Si vous continuez
-à recevoir ce message, veuillez consulter notre FAQ technique à la page suivante :
+ Nous avons rencontré des problèmes en essayant de vous téléporter. Vous devrez peut-être vous reconnecter avant de pouvoir être téléporté. Si vous continuez à recevoir ce message, veuillez consulter le Support à la page suivante :
www.secondlife.com/support
</message>
<message name="invalid_region_handoff">
- Nous avons rencontré des problèmes en essayant de vous téléporter. Vous devrez peut-être
-vous reconnecter avant de pouvoir être téléporté. Si vous continuez
-à recevoir ce message, veuillez consulter notre FAQ technique à la page suivante :
-www.secondlife.com/support.
+ Nous avons rencontré des problèmes en essayant de vous téléporter. Vous devrez peut-être vous reconnecter avant de pouvoir être téléporté. Si vous continuez à recevoir ce message, veuillez consulter le Support à la page suivante :
+www.secondlife.com/support
</message>
<message name="blocked_tport">
Désolé, la téléportation est bloquée actuellement. Veuillez réessayer dans un moment.
-Si vous ne parvenez toujours pas à être téléporté, déconnectez-vous puis reconnectez-vous
-pour résoudre le problème.
+Si vous ne parvenez toujours pas à être téléporté, déconnectez-vous puis reconnectez-vous pour résoudre le problème.
</message>
<message name="nolandmark_tport">
Désolé, le système n&apos;a pas réussi à localiser la destination de votre repère.
@@ -29,27 +24,19 @@ Veuillez réessayer dans un moment.
Désolé, vous n&apos;avez pas accès à cette destination.
</message>
<message name="missing_attach_tport">
- Vos pieces-jointes ne sont pas encore arrivées. Attendez quelques
-secondes de plus ou déconnectez-vous puis reconnectez-vous avant d&apos;essayer
-de vous téléporter.
+ Vos pieces-jointes ne sont pas encore arrivées. Attendez quelques secondes de plus ou déconnectez-vous puis reconnectez-vous avant d&apos;essayer de vous téléporter.
</message>
<message name="too_many_uploads_tport">
- Le trafic vers cette région est bouché en ce moment. Votre téléportation
-ne pourra pas avoir lieu immédiatement. Veuillez réessayer
-dans quelques minutes ou bien aller dans une zone moins fréquentée.
+ Le trafic vers cette région est bouché en ce moment. Votre téléportation ne pourra pas avoir lieu immédiatement. Veuillez réessayer dans quelques minutes ou bien aller dans une zone moins fréquentée.
</message>
<message name="expired_tport">
- Désolé, votre demande de téléportation n&apos;a pas abouti
-assez rapidement. Veuillez réessayer dans quelques minutes.
+ Désolé, votre demande de téléportation n&apos;a pas abouti assez rapidement. Veuillez réessayer dans quelques minutes.
</message>
<message name="expired_region_handoff">
- Désolé, votre demande pour passer dans une autre région n&apos;a pas abouti
-assez rapidement. Veuillez réessayer dans quelques minutes.
+ Désolé, votre demande pour passer dans une autre région n&apos;a pas abouti assez rapidement. Veuillez réessayer dans quelques minutes.
</message>
<message name="no_host">
- Impossible de trouver la destination de la téléportation. Il est possible que cette destination soit
-temporairement indisponible ou qu&apos;elle n&apos;existe plus. Veuillez réessayer
-dans quelques minutes.
+ Impossible de trouver la destination de la téléportation. Il est possible que cette destination soit temporairement indisponible ou qu&apos;elle n&apos;existe plus. Veuillez réessayer dans quelques minutes.
</message>
<message name="no_inventory_host">
L&apos;inventaire est temporairement indisponible.
diff --git a/indra/newview/skins/default/xui/it/floater_about.xml b/indra/newview/skins/default/xui/it/floater_about.xml
index 6eb77adaee..2ec8bc4dd8 100644
--- a/indra/newview/skins/default/xui/it/floater_about.xml
+++ b/indra/newview/skins/default/xui/it/floater_about.xml
@@ -1,36 +1,36 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_about" title="Informazioni su Second Life">
- <text_editor name="credits_editor">
- Second Life è offerto da Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Yang, T, Simone, Maestro, Scott, Charlene, Quixote, Amanda, Susan, Zed, Anne, Enkidu, Esbee, Joroan, Katelin, Roxie, Tay, Scarlet, Kevin, Johnny, Wolfgang, Andren, Bob, Howard, Merov, Rand, Ray, Michon, Newell, Galen, Dessie, Les and many others.
-
- Si ringraziano i seguenti residenti per aver contribuito a rendere questa versione la migliore possibile:
-
- 3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion
- APR Copyright (C) 2000-2004 The Apache Software Foundation
- cURL Copyright (C) 1996-2002, Daniel Stenberg, (daniel@haxx.se)
- DBus/dbus-glib Copyright (C) 2002, 2003 CodeFactory AB / Copyright (C) 2003, 2004 Red Hat, Inc.
- expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd.
- FreeType Copyright (C) 1996-2002, The FreeType Project (www.freetype.org).
- GL Copyright (C) 1999-2004 Brian Paul.
- Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited.
- jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW)
- jpeglib Copyright (C) 1991-1998, Thomas G. Lane.
- ogg/vorbis Copyright (C) 2001, Xiphophorus
- OpenSSL Copyright (C) 1998-2002 The OpenSSL Project.
- SDL Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga
- SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- xmlrpc-epi Copyright (C) 2000 Epinions, Inc.
- zlib Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler.
- google-perftools Copyright (c) 2005, Google Inc.
-
- Tutti i diritti riservati. Leggi licenses.txt per maggiori dettagli.
-
- Chat vocale Codifica audio: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C)
-
-
- Ce la farò con un piccolo aiuto dai miei amici. --Richard Starkey
- </text_editor>
- <string name="you_are_at">
- Sei a [POSITION]
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_about" title="Informazioni su Second Life">
+ <text_editor name="credits_editor">
+ Second Life è offerto da Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Yang, T, Simone, Maestro, Scott, Charlene, Quixote, Amanda, Susan, Zed, Anne, Enkidu, Esbee, Joroan, Katelin, Roxie, Tay, Scarlet, Kevin, Johnny, Wolfgang, Andren, Bob, Howard, Merov, Rand, Ray, Michon, Newell, Galen, Dessie, Les and many others.
+
+ Si ringraziano i seguenti residenti per aver contribuito a rendere questa versione la migliore possibile:
+
+ 3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion
+ APR Copyright (C) 2000-2004 The Apache Software Foundation
+ cURL Copyright (C) 1996-2002, Daniel Stenberg, (daniel@haxx.se)
+ DBus/dbus-glib Copyright (C) 2002, 2003 CodeFactory AB / Copyright (C) 2003, 2004 Red Hat, Inc.
+ expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd.
+ FreeType Copyright (C) 1996-2002, The FreeType Project (www.freetype.org).
+ GL Copyright (C) 1999-2004 Brian Paul.
+ Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited.
+ jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW)
+ jpeglib Copyright (C) 1991-1998, Thomas G. Lane.
+ ogg/vorbis Copyright (C) 2001, Xiphophorus
+ OpenSSL Copyright (C) 1998-2002 The OpenSSL Project.
+ SDL Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga
+ SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+ xmlrpc-epi Copyright (C) 2000 Epinions, Inc.
+ zlib Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler.
+ google-perftools Copyright (c) 2005, Google Inc.
+
+ Tutti i diritti riservati. Leggi licenses.txt per maggiori dettagli.
+
+ Chat vocale Codifica audio: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C)
+
+
+ Per avere successo nel business, sii coraggioso, sii il primo, sii differente. --Henry Marchant
+ </text_editor>
+ <string name="you_are_at">
+ Sei a [POSITION]
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_about_land.xml b/indra/newview/skins/default/xui/it/floater_about_land.xml
index e266aa2164..4f57067cd2 100644
--- a/indra/newview/skins/default/xui/it/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/it/floater_about_land.xml
@@ -1,394 +1,493 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floaterland" title="Informazioni sul terreno">
- <tab_container name="landtab">
- <panel label="Generale" name="land_general_panel">
- <text name="Name:">
- Nome:
- </text>
- <text name="Description:">
- Descrizione:
- </text>
- <text name="Owner:">
- Proprietario:
- </text>
- <text name="OwnerText">
- Leyla Linden
- </text>
- <button label="Profilo..." label_selected="Profilo..." name="Profile..."/>
- <text name="Group:">
- Gruppo:
- </text>
- <button label="Imposta..." label_selected="Imposta..." name="Set..."/>
- <check_box label="Permetti cessione al gruppo" name="check deed" tool_tip="Un funzionario del gruppo può cedere questa terra al gruppo stesso cosicchè essa sarà  supportata dalle terre del gruppo."/>
- <button label="Cedi..." label_selected="Cedi..." name="Deed..." tool_tip="Puoi solo offrire terra se sei un funzionario del gruppo selezionato."/>
- <check_box label="Il proprietario fa un contributo con la cessione" name="check contrib" tool_tip="Quando la terra è ceduta al gruppo, il proprietario precedente contribuisce con abbastanza allocazione di terra per supportarlo."/>
- <text name="For Sale:">
- In vendita:
- </text>
- <text name="Not for sale.">
- Non in vendita.
- </text>
- <text name="For Sale: Price L$[PRICE].">
- Prezzo: [PRICE] L$.
- </text>
- <button label="Vendi la terra..." label_selected="Vendi la terra..." name="Sell Land..."/>
- <text name="For sale to">
- In vendita a: [BUYER]
- </text>
- <text name="Sell with landowners objects in parcel.">
- Gli oggetti sono inclusi nella vendita.
- </text>
- <text name="Selling with no objects in parcel.">
- Gli oggetti non sono inclusi nella vendita.
- </text>
- <button label="Annulla la vendita del terreno" label_selected="Annulla la vendita del terreno" name="Cancel Land Sale"/>
- <text name="Claimed:">
- Presa in possesso il:
- </text>
- <text name="DateClaimText">
- Tue Aug 15 13:47:25 2006
- </text>
- <text name="PriceLabel">
- Area:
- </text>
- <text name="PriceText">
- 4048 m²
- </text>
- <text name="Traffic:">
- Traffico:
- </text>
- <text name="DwellText">
- 0
- </text>
- <button label="Acquista il terreno..." label_selected="Acquista il terreno..." name="Buy Land..."/>
- <button label="Acquista per il gruppo..." label_selected="Acquista per il gruppo..." name="Buy For Group..."/>
- <button label="Compra pass..." label_selected="Compra pass..." name="Buy Pass..." tool_tip="Un pass ti da un accesso temporaneo in questo territorio."/>
- <button label="Abbandona la terra..." label_selected="Abbandona la terra..." name="Abandon Land..."/>
- <button label="Reclama la terra..." label_selected="Reclama la terra..." name="Reclaim Land..."/>
- <button label="Vendita Linden..." label_selected="Vendita Linden..." name="Linden Sale..." tool_tip="La terra deve essere posseduta, con contenuto impostato, e non già messa in asta."/>
- <string name="new users only">
- Solo ai nuovi residenti
- </string>
- <string name="anyone">
- A chiunque
- </string>
- <string name="area_text">
- Area
- </string>
- <string name="area_size_text">
- [AREA] m²
- </string>
- <string name="auction_id_text">
- Asta n.: [ID]
- </string>
- <string name="need_tier_to_modify">
- Devi confermare l&apos;acquisto prima di poter modificare il terreno.
- </string>
- <string name="group_owned_text">
- (Posseduta dal gruppo)
- </string>
- <string name="profile_text">
- Profilo...
- </string>
- <string name="info_text">
- Info...
- </string>
- <string name="public_text">
- (pubblica)
- </string>
- <string name="none_text">
- (nessuno)
- </string>
- <string name="sale_pending_text">
- (vendita in corso)
- </string>
- <string name="no_selection_text">
- Nessun appezzamento selezionato.
-Vai al menu Mondo &gt; Informazioni sul terreno oppure seleziona un altro appezzamento per vederne i dettagli.
- </string>
- </panel>
- <panel label="Regolamento" name="land_covenant_panel">
- <text name="covenant_timestamp_text">
- Ultima modifica Wed Dec 31 16:00:00 1969
- </text>
- <text name="region_name_lbl">
- Regione:
- </text>
- <text name="region_name_text">
- leyla
- </text>
- <text name="estate_name_lbl">
- Proprietà immobiliare:
- </text>
- <text name="estate_name_text">
- Continente
- </text>
- <text name="estate_owner_lbl">
- Proprietario immobiliare:
- </text>
- <text name="estate_owner_text">
- (nessuno)
- </text>
- <text name="resellable_clause">
- La terra acquistata in questa regione non può essere rivenduta.
- </text>
- <text name="changeable_clause">
- La terra acquistata in questa regione non può essere unita o suddivisa.
- </text>
- <text_editor name="covenant_editor">
- Non c&apos;è nessun regolamento imposto in questa regione.
- </text_editor>
- <string name="can_resell">
- La terra acquistata in questa regione può essere rivenduta.
- </string>
- <string name="can_not_resell">
- La terra acquistata in questa regione non può essere rivenduta.
- </string>
- <string name="can_change">
- La terra acquistata in questa regione può essere unita o suddivisa.
- </string>
- <string name="can_not_change">
- La terra acquistata in questa regione non può essere unita o suddivisa.
- </string>
- </panel>
- <panel label="Oggetti" name="land_objects_panel">
- <text name="parcel_object_bonus">
- Fattore bonus degli oggetti della regione: [BONUS]
- </text>
- <text name="Simulator primitive usage:">
- Oggetti presenti sul simulatore:
- </text>
- <text name="objects_available">
- [COUNT] dei [MAX] ([AVAILABLE] dsponibili)
- </text>
- <string name="objects_available_text">
- [COUNT] dei [MAX] ([AVAILABLE] disponibili)
- </string>
- <string name="objects_deleted_text">
- [COUNT] dei [MAX] ([DELETED] saranno cancellati)
- </string>
- <text name="Primitives parcel supports:">
- Numero massimo degli oggetti che il simulatore supporta:
- </text>
- <text name="object_contrib_text">
- [COUNT]
- </text>
- <text name="Primitives on parcel:">
- Oggetti sul terreno:
- </text>
- <text name="total_objects_text">
- [COUNT]
- </text>
- <text name="Owned by parcel owner:">
- Posseduti dal proprietario:
- </text>
- <text name="owner_objects_text">
- [COUNT]
- </text>
- <button label="Mostra" label_selected="Mostra" name="ShowOwner"/>
- <button label="Restituisci..." label_selected="Restituisci..." name="ReturnOwner..." tool_tip="Restituisci gli oggetti ai loro proprietari."/>
- <text name="Set to group:">
- Imposta al gruppo:
- </text>
- <text name="group_objects_text">
- [COUNT]
- </text>
- <button label="Mostra" label_selected="Mostra" name="ShowGroup"/>
- <button label="Restituisci..." label_selected="Restituisci..." name="ReturnGroup..." tool_tip="Restituisci gli oggetti ai loro proprietari."/>
- <text name="Owned by others:">
- Posseduti da altri:
- </text>
- <text name="other_objects_text">
- [COUNT]
- </text>
- <button label="Mostra" label_selected="Mostra" name="ShowOther"/>
- <button label="Restituisci..." label_selected="Restituisci..." name="ReturnOther..." tool_tip="Restituisci gli oggetti ai loro proprietari."/>
- <text name="Selected / sat upon:">
- Selezionati / sui quali sei sopra:
- </text>
- <text name="selected_objects_text">
- [COUNT]
- </text>
- <text name="Autoreturn">
- Autorestituisci gli oggetti degli altri residenti (minuti, 0 per disabilitata):
- </text>
- <text name="Object Owners:">
- Proprietari degli oggetti:
- </text>
- <button label="Aggiorna Elenco" label_selected="Aggiorna Elenco" name="Refresh List"/>
- <button label="Restituisci oggetti..." label_selected="Restituisci oggetti..." name="Return objects..."/>
- <name_list name="owner list">
- <column label="Tipo" name="type"/>
- <column label="Nome" name="name"/>
- <column label="Conta" name="count"/>
- <column label="Più recenti" name="mostrecent"/>
- </name_list>
- </panel>
- <panel label="Opzioni" name="land_options_panel">
- <text name="allow_label">
- Permetti agli altri residenti di:
- </text>
- <check_box label="Modificare il terreno" name="edit land check" tool_tip="Se spuntato, chiunque può terraformare il tuo terreno. E&apos; preferibile lasciare questo quadrato non spuntato, dato che sarai sempre in grado di modificare il tuo terreno."/>
- <check_box label="Creare dei landmark" name="check landmark"/>
- <check_box label="Permetti il volo" name="check fly" tool_tip="Se spuntato, gli altri residenti potranno volare sul tuo terreno. Se non spuntato, potranno solamente arrivare in volo o sorvolare il terreno."/>
- <text name="allow_label2">
- Creare oggetti:
- </text>
- <check_box label="Tutti i residenti" name="edit objects check"/>
- <check_box label="Gruppo" name="edit group objects check"/>
- <text name="allow_label3">
- Entrata oggetti:
- </text>
- <check_box label="Tutti i residenti" name="all object entry check"/>
- <check_box label="Gruppo" name="group object entry check"/>
- <text name="allow_label4">
- Avere script attivi:
- </text>
- <check_box label="Tutti i residenti" name="check other scripts"/>
- <check_box label="Gruppo" name="check group scripts"/>
- <text name="land_options_label">
- Opzioni della terra:
- </text>
- <check_box label="Sicuro (senza danno)" name="check safe" tool_tip="Se spuntato, imposta il terreno su &apos;sicuro&apos;, disabilitando i danni da combattimento. Se non spuntato, viene abilitato il combattimento a morte."/>
- <check_box label="Nessuna spinta" name="PushRestrictCheck" tool_tip="Previeni i colpi. Selezionare questa opzione può essere utile per prevenire comportamenti dannosi sul tuo terreno."/>
- <check_box label="Mostra il luogo nella ricerca (30 L$/week) sotto" name="ShowDirectoryCheck" tool_tip="Lascia che questa terra sia vista dagli altri nei risultati di ricerca"/>
- <combo_box name="land category">
- <combo_box.item name="AnyCategory" label="Tutte le categorie"/>
- <combo_box.item name="LindenLocation" label="Luogo dei Linden"/>
-
- <combo_box.item name="Arts&amp;Culture" label="Arte &amp; Cultura"/>
- <combo_box.item name="Business" label="Affari"/>
- <combo_box.item name="Educational" label="Educazione"/>
- <combo_box.item name="Gaming" label="Gioco"/>
- <combo_box.item name="Hangout" label="Divertimento"/>
- <combo_box.item name="NewcomerFriendly" label="Accoglienza nuovi residenti"/>
- <combo_box.item name="Parks&amp;Nature" label="Parchi &amp; Natura"/>
- <combo_box.item name="Residential" label="Residenziale"/>
- <combo_box.item name="Shopping" label="Shopping"/>
- <combo_box.item name="Other" label="Altro"/>
- </combo_box>
- <button label="?" label_selected="?" name="?"/>
- <check_box name="MatureCheck" />
- <text name="Snapshot:">
- Fotografia:
- </text>
- <texture_picker label="" name="snapshot_ctrl" tool_tip="Clicca per scegliere una immagine"/>
- <text name="landing_point">
- Punto di atterraggio: [LANDING]
- </text>
- <string name="landing_point_none">
- (nessuno)
- </string>
- <button label="Imposta" label_selected="Imposta" name="Set" tool_tip="Imposta il punto di atterraggio dove arrivano i visitatori. Impostalo nel punto dove si trova il tuo avatar in questo terreno."/>
- <button label="Elimina" label_selected="Elimina" name="Clear" tool_tip="Elimina punto di atterraggio."/>
- <text name="Teleport Routing: ">
- Rotte dei teleport:
- </text>
- <combo_box name="landing type" tool_tip="Rotte dei teleport -- seleziona come vuoi organizzare i teleport nella tua terra.">
- <combo_box.item name="Blocked" label="Bloccati"/>
- <combo_box.item name="LandingPoint" label="Punto di atterraggio"/>
- <combo_box.item name="Anywhere" label="Ovunque"/>
- </combo_box>
- <string name="push_restrict_text">
- Nessuna spinta
- </string>
- <string name="push_restrict_region_text">
- Nessuna spinta (Impostazione regionale)
- </string>
- </panel>
- <panel label="Media" name="land_media_panel">
- <text name="with media:">
- Tipo di Media:
- </text>
- <combo_box name="media type" tool_tip="Specifica se l&apos;Url è un video, una pagina web, o un altro tipo di media"/>
- <text name="at URL:">
- Media URL:
- </text>
- <button label="Imposta..." label_selected="Imposta..." name="set_media_url"/>
- <text name="Description:">
- Descrizione:
- </text>
- <line_editor name="url_description" tool_tip="Testo che appare vicino al bottone play/carica"/>
- <text name="Media texture:">
- Cambia
-Texture:
- </text>
- <texture_picker label="" name="media texture" tool_tip="Clicca per scegliere un&apos;immagine"/>
- <text name="replace_texture_help">
- (Gli oggetti che hanno questa texture applicata mostreranno il video o
-la pagina web dopo che avrai cliccato sulla freccia play.)
- </text>
- <text name="Options:">
- Opzioni
-Media:
- </text>
- <check_box label="Auto ridimensiona" name="media_auto_scale" tool_tip="Spuntando questa opzione, nell&apos;appezzamento il contenuto media si ridimensionerà automaticamente. Potrebbe darsi che appaia un po&apos; più lento e che diminuisca la qualità visiva ma nessun altro riadattamento o allineamento della texture sarà necessario."/>
- <check_box label="Fai ripetere il video" name="media_loop" tool_tip="Fai ripetere il video continuamente. Quando il video è finito, reinizierà dal principio."/>
- <check_box label="Nascondi indirizzo url dei media" name="hide_media_url" tool_tip="Abilitando questa opzione nasconderai l&apos;indirizzo url dei media a tutte le persone non autorizzate a vedere le informazioni del terreno. Nota che questo non è disponibile per contenuto di tipo HTML."/>
- <check_box label="Nascondi indirizzo url della musica" name="hide_music_url" tool_tip="Abilitando questa opzione nasconderai l&apos;indirizzo url della musica a tutte le persone non autorizzate a vedere le informazioni del terreno."/>
- <text name="media_size" tool_tip="Aumenta grandezza per far vedere meglio i media web, lascia a 0 per impostare il default.">
- Grandezza Media:
- </text>
- <spinner name="media_size_width" tool_tip="Aumenta larghezza per far vedere meglio i media web, lascia a 0 per impostare il default."/>
- <spinner name="media_size_height" tool_tip="Aumenta altezza per far vedere meglio i media web, lascia a 0 per impostare il default."/>
- <text name="pixels">
- pixels
- </text>
- <text name="MusicURL:">
- URL Musica:
- </text>
- <text name="Sound:">
- Suono:
- </text>
- <check_box label="Restringi il suono dello spazio a questo terreno" name="check sound local"/>
- <text name="Voice settings:">
- Voice:
- </text>
- <radio_group name="parcel_voice_channel">
- <radio_item name="Estate">
- Usa il canale spaziale della regione
- </radio_item>
- <radio_item name="Private">
- Usa un canale privato
- </radio_item>
- <radio_item name="Disabled">
- Disabilita audio spaziale in questo terreno
- </radio_item>
- </radio_group>
- </panel>
- <panel label="Accesso" name="land_access_panel">
- <text name="Limit access to this parcel to:">
- Accesso a questo terreno
- </text>
- <check_box label="Permetti accesso pubblico" name="public_access"/>
- <text name="Only Allow">
- Blocca l&apos;accesso con:
- </text>
- <check_box label="Residenti che non hanno dato le proprie informazioni di pagamento alla Linden Lab" name="limit_payment" tool_tip="Manda via residenti non identificati."/>
- <check_box label="Residenti che non sono adulti con età verificata" name="limit_age_verified" tool_tip="Manda via residenti che non hanno verificato la loro età. Guarda il sito support.secondlife.com per ulteriori informazioni."/>
- <string name="estate_override">
- Una o più di queste impostazioni sono già impostate a livello regionale
- </string>
- <check_box label="Permetti accesso al gruppo: [Gruppo]" name="GroupCheck" tool_tip="Imposta il gruppo nel pannello generale."/>
- <check_box label="Vendi pass a:" name="PassCheck" tool_tip="Permetti in questo terreno l&apos;accesso temporaneo"/>
- <combo_box name="pass_combo">
- <combo_box.item name="Anyone" label="Chiunque"/>
- <combo_box.item name="Group" label="Gruppo"/>
- </combo_box>
- <spinner label="Prezzo in L$:" name="PriceSpin"/>
- <spinner label="Ore di accesso:" name="HoursSpin"/>
- <text label="Permetti sempre" name="AllowedText">
- Residenti permessi
- </text>
- <name_list name="AccessList" tool_tip="([LISTED] in elenco, [MAX] massimo)"/>
- <button label="Aggiungi..." label_selected="Aggiungi..." name="add_allowed"/>
- <button label="Rimuovi" label_selected="Rimuovi" name="remove_allowed"/>
- <text label="Blocca" name="BanCheck">
- Residenti bloccati
- </text>
- <name_list name="BannedList" tool_tip="([LISTED] in elenco, [MAX] massimo)"/>
- <button label="Aggiungi..." label_selected="Aggiungi..." name="add_banned"/>
- <button label="Rimuovi" label_selected="Rimuovi" name="remove_banned"/>
- </panel>
- </tab_container>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floaterland" title="Informazioni sul terreno">
+ <tab_container name="landtab">
+ <panel label="Generale" name="land_general_panel">
+ <text name="Name:">
+ Nome:
+ </text>
+ <text name="Description:">
+ Descrizione:
+ </text>
+ <text name="LandType">
+ Tipo:
+ </text>
+ <text name="LandTypeText" left="119">
+ Mainland / Homestead
+ </text>
+ <text name="ContentRating" width="115">
+ Categoria di accesso:
+ </text>
+ <text name="ContentRatingText" left="119">
+ Adult
+ </text>
+ <text name="Owner:">
+ Proprietario:
+ </text>
+ <text name="OwnerText" left="119" width="227">
+ Leyla Linden
+ </text>
+ <button label="Profilo..." label_selected="Profilo..." name="Profile..."/>
+ <text name="Group:">
+ Gruppo:
+ </text>
+ <text left="119" name="GroupText" width="227" />
+ <button label="Imposta..." label_selected="Imposta..." name="Set..."/>
+ <check_box left="119" label="Permetti cessione al gruppo" name="check deed" tool_tip="Un funzionario del gruppo può cedere questa terra al gruppo stesso cosicchè essa sarà  supportata dalle terre del gruppo."/>
+ <button label="Cedi..." label_selected="Cedi..." name="Deed..." tool_tip="Puoi solo offrire terra se sei un funzionario del gruppo selezionato."/>
+ <check_box left="119" label="Il proprietario fa un contributo con la cessione" name="check contrib" tool_tip="Quando la terra è ceduta al gruppo, il proprietario precedente contribuisce con abbastanza allocazione di terra per supportarlo."/>
+ <text name="For Sale:">
+ In vendita:
+ </text>
+ <text name="Not for sale." left="119">
+ Non in vendita.
+ </text>
+ <text name="For Sale: Price L$[PRICE]." left="119">
+ Prezzo: [PRICE]L$ ([PRICE_PER_SQM]L$/m²).
+ </text>
+ <text name="SalePending" left="119" width="321"/>
+ <button bottom="-242" label="Vendi la terra..." label_selected="Vendi la terra..." name="Sell Land..."/>
+ <text name="For sale to" left="119">
+ In vendita a: [BUYER]
+ </text>
+ <text name="Sell with landowners objects in parcel." width="240" left="119">
+ Gli oggetti sono inclusi nella vendita.
+ </text>
+ <text name="Selling with no objects in parcel." width="240" left="119">
+ Gli oggetti non sono inclusi nella vendita.
+ </text>
+ <button bottom="-242" font="SansSerifSmall" left="275" width="165" label="Annulla la vendita del terreno" label_selected="Annulla la vendita del terreno" name="Cancel Land Sale"/>
+ <text name="Claimed:" width="115">
+ Presa in possesso il:
+ </text>
+ <text name="DateClaimText" left="119">
+ Tue Aug 15 13:47:25 2006
+ </text>
+ <text name="PriceLabel">
+ Area:
+ </text>
+ <text name="PriceText" left="119" width="140">
+ 4048 m²
+ </text>
+ <text name="Traffic:">
+ Traffico:
+ </text>
+ <text name="DwellText" left="119" width="140">
+ 0
+ </text>
+ <button label="Acquista il terreno..." label_selected="Acquista il terreno..." left="130" name="Buy Land..." width="125"/>
+ <button label="Acquista per il gruppo..." label_selected="Acquista per il gruppo..." name="Buy For Group..."/>
+ <button label="Compra pass..." label_selected="Compra pass..." left="130" width="125" name="Buy Pass..." tool_tip="Un pass ti da un accesso temporaneo in questo territorio."/>
+ <button label="Abbandona la terra..." label_selected="Abbandona la terra..." name="Abandon Land..."/>
+ <button label="Reclama la terra..." label_selected="Reclama la terra..." name="Reclaim Land..."/>
+ <button label="Vendita Linden..." label_selected="Vendita Linden..." name="Linden Sale..." tool_tip="La terra deve essere posseduta, con contenuto impostato, e non già messa in asta."/>
+ <string name="new users only">
+ Solo ai nuovi residenti
+ </string>
+ <string name="anyone">
+ A chiunque
+ </string>
+ <string name="area_text">
+ Area
+ </string>
+ <string name="area_size_text">
+ [AREA] m²
+ </string>
+ <string name="auction_id_text">
+ Asta n.: [ID]
+ </string>
+ <string name="need_tier_to_modify">
+ Devi confermare l&apos;acquisto prima di poter modificare il terreno.
+ </string>
+ <string name="group_owned_text">
+ (Posseduta dal gruppo)
+ </string>
+ <string name="profile_text">
+ Profilo...
+ </string>
+ <string name="info_text">
+ Info...
+ </string>
+ <string name="public_text">
+ (pubblica)
+ </string>
+ <string name="none_text">
+ (nessuno)
+ </string>
+ <string name="sale_pending_text">
+ (vendita in corso)
+ </string>
+ <string name="no_selection_text">
+ Nessun appezzamento selezionato.
+Vai al menu Mondo &gt; Informazioni sul terreno oppure seleziona un altro appezzamento per vederne i dettagli.
+ </string>
+ </panel>
+ <panel label="Regolamento" name="land_covenant_panel">
+ <text name="estate_section_lbl">
+ Proprietà:
+ </text>
+ <text name="estate_name_lbl">
+ Nome:
+ </text>
+ <text name="estate_name_text">
+ Continente
+ </text>
+ <text name="estate_owner_lbl">
+ Proprietario:
+ </text>
+ <text name="estate_owner_text">
+ (nessuno)
+ </text>
+ <text_editor name="covenant_editor">
+ Non c&apos;è nessun regolamento imposto in questa regione.
+ </text_editor>
+ <text name="covenant_timestamp_text">
+ Ultima modifica Wed Dec 31 16:00:00 1969
+ </text>
+ <text name="region_section_lbl">
+ Regione:
+ </text>
+ <text name="region_name_lbl">
+ Nome:
+ </text>
+ <text name="region_name_text" left="125">
+ leyla
+ </text>
+ <text name="region_landtype_lbl">
+ Tipo:
+ </text>
+ <text name="region_landtype_text" left="125">
+ Mainland / Homestead
+ </text>
+ <text name="region_maturity_lbl" width="115">
+ Categoria di accesso:
+ </text>
+ <text name="region_maturity_text" left="125">
+ Adult
+ </text>
+ <text name="resellable_lbl">
+ Rivendita:
+ </text>
+ <text name="resellable_clause" left="125">
+ La terra in questa regione non può essere rivenduta.
+ </text>
+ <text name="changeable_lbl">
+ Suddividi:
+ </text>
+ <text name="changeable_clause" left="125">
+ La terra in questa regione non può essere unita/suddivisa.
+ </text>
+ <string name="can_resell">
+ La terra acquistata in questa regione può essere rivenduta.
+ </string>
+ <string name="can_not_resell">
+ La terra acquistata in questa regione non può essere rivenduta.
+ </string>
+ <string name="can_change">
+ La terra acquistata in questa regione può essere unita
+o suddivisa.
+ </string>
+ <string name="can_not_change">
+ La terra acquistata in questa regione non può essere unita
+o suddivisa.
+ </string>
+ </panel>
+ <panel label="Oggetti" name="land_objects_panel">
+ <text name="parcel_object_bonus">
+ Fattore bonus degli oggetti della regione: [BONUS]
+ </text>
+ <text name="Simulator primitive usage:">
+ Oggetti presenti sul simulatore:
+ </text>
+ <text name="objects_available" left="214" width="230" >
+ [COUNT] dei [MAX] ([AVAILABLE] dsponibili)
+ </text>
+ <string name="objects_available_text">
+ [COUNT] dei [MAX] ([AVAILABLE] disponibili)
+ </string>
+ <string name="objects_deleted_text">
+ [COUNT] dei [MAX] ([DELETED] saranno cancellati)
+ </string>
+ <text name="Primitives parcel supports:" width="200">
+ Oggetti che il terreno supporta:
+ </text>
+ <text name="object_contrib_text" left="214" width="152">
+ [COUNT]
+ </text>
+ <text name="Primitives on parcel:">
+ Oggetti sul terreno:
+ </text>
+ <text name="total_objects_text" left="214" width="48">
+ [COUNT]
+ </text>
+ <text name="Owned by parcel owner:" left="14" width="180" >
+ Posseduti dal proprietario:
+ </text>
+ <text name="owner_objects_text" left="214" width="48">
+ [COUNT]
+ </text>
+ <button label="Mostra" label_selected="Mostra" name="ShowOwner" right="-135" width="60"/>
+ <button label="Restituisci..." label_selected="Restituisci..." name="ReturnOwner..." tool_tip="Restituisci gli oggetti ai loro proprietari." right="-10" width="119"/>
+ <text name="Set to group:" left="14" width="180">
+ Imposta al gruppo:
+ </text>
+ <text name="group_objects_text" left="214" width="48">
+ [COUNT]
+ </text>
+ <button label="Mostra" label_selected="Mostra" name="ShowGroup" right="-135" width="60"/>
+ <button label="Restituisci..." label_selected="Restituisci..." name="ReturnGroup..." tool_tip="Restituisci gli oggetti ai loro proprietari." right="-10" width="119"/>
+ <text name="Owned by others:" left="14" width="180">
+ Posseduti da altri:
+ </text>
+ <text name="other_objects_text" left="214" width="48">
+ [COUNT]
+ </text>
+ <button label="Mostra" label_selected="Mostra" name="ShowOther" right="-135" width="60"/>
+ <button label="Restituisci..." label_selected="Restituisci..." name="ReturnOther..." tool_tip="Restituisci gli oggetti ai loro proprietari." right="-10" width="119"/>
+ <text name="Selected / sat upon:" left="14" width="193">
+ Selezionati / sui quali sei sopra:
+ </text>
+ <text name="selected_objects_text" left="214" width="48">
+ [COUNT]
+ </text>
+ <text name="Autoreturn" left="4" width="412">
+ Autorestituisci gli oggetti degli altri residenti (minuti, 0 per disabilitata):
+ </text>
+ <line_editor name="clean other time" right="-20" />
+ <text name="Object Owners:" width="150">
+ Proprietari degli oggetti:
+ </text>
+ <button label="Aggiorna Elenco" label_selected="Aggiorna Elenco" name="Refresh List" left="158"/>
+ <button label="Restituisci oggetti..." label_selected="Restituisci oggetti..." name="Return objects..." left="270" width="164"/>
+ <name_list name="owner list">
+ <column label="Tipo" name="type"/>
+ <column label="Nome" name="name"/>
+ <column label="Conta" name="count"/>
+ <column label="Più recenti" name="mostrecent"/>
+ </name_list>
+ </panel>
+ <panel label="Opzioni" name="land_options_panel">
+ <text name="allow_label">
+ Permetti agli altri residenti di:
+ </text>
+ <check_box label="Modificare il terreno" name="edit land check" tool_tip="Se spuntato, chiunque può terraformare il tuo terreno. E&apos; preferibile lasciare questo quadrato non spuntato, dato che sarai sempre in grado di modificare il tuo terreno."/>
+ <check_box label="Creare dei landmark" name="check landmark"/>
+ <check_box label="Permetti il volo" name="check fly" tool_tip="Se spuntato, gli altri residenti potranno volare sul tuo terreno. Se non spuntato, potranno solamente arrivare in volo o sorvolare il terreno."/>
+ <text name="allow_label2">
+ Creare oggetti:
+ </text>
+ <check_box label="Tutti i residenti" name="edit objects check"/>
+ <check_box label="Gruppo" name="edit group objects check"/>
+ <text name="allow_label3">
+ Entrata oggetti:
+ </text>
+ <check_box label="Tutti i residenti" name="all object entry check"/>
+ <check_box label="Gruppo" name="group object entry check"/>
+ <text name="allow_label4">
+ Avere script attivi:
+ </text>
+ <check_box label="Tutti i residenti" name="check other scripts"/>
+ <check_box label="Gruppo" name="check group scripts"/>
+ <text name="land_options_label">
+ Opzioni della terra:
+ </text>
+ <check_box label="Sicuro (senza danno)" name="check safe" tool_tip="Se spuntato, imposta il terreno su &apos;sicuro&apos;, disabilitando i danni da combattimento. Se non spuntato, viene abilitato il combattimento a morte."/>
+ <check_box label="Nessuna spinta" name="PushRestrictCheck" tool_tip="Previeni i colpi. Selezionare questa opzione può essere utile per prevenire comportamenti dannosi sul tuo terreno."/>
+ <check_box label="Mostra il luogo nella ricerca (30 L$/week) sotto" name="ShowDirectoryCheck" tool_tip="Lascia che questa terra sia vista dagli altri nei risultati di ricerca"/>
+ <string name="search_enabled_tooltip">
+ Fai in modo che la gente trovi questo terreno nei risultati della ricerca.
+ </string>
+ <string name="search_disabled_small_tooltip">
+ Questa opzione è disabilitata perchè questo terreno ha un&apos;area di 128 m² o inferiore.
+Solamente terreni più grandi possono essere abilitati nella ricerca.
+ </string>
+ <string name="search_disabled_permissions_tooltip">
+ Questa opzione è disabilitata perchè tu non puoi modificare le opzioni di questo terreno.
+ </string>
+ <combo_box name="land category with adult">
+ <combo_item name="AnyCategory">
+ Tutte le categorie
+ </combo_item>
+ <combo_item name="LindenLocation">
+ Luoghi Linden
+ </combo_item>
+ <combo_item name="Adult">
+ Adult
+ </combo_item>
+ <combo_item name="Arts&amp;Culture">
+ Arte &amp; Cultura
+ </combo_item>
+ <combo_item name="Business">
+ Affari
+ </combo_item>
+ <combo_item name="Educational">
+ Educazione
+ </combo_item>
+ <combo_item name="Gaming">
+ Giochi
+ </combo_item>
+ <combo_item name="Hangout">
+ Divertimento
+ </combo_item>
+ <combo_item name="NewcomerFriendly">
+ Ospitalità per i nuovi entrati
+ </combo_item>
+ <combo_item name="Parks&amp;Nature">
+ Parchi &amp; Natura
+ </combo_item>
+ <combo_item name="Residential">
+ Residenziale
+ </combo_item>
+ <combo_item name="Shopping">
+ Shopping
+ </combo_item>
+ <combo_item name="Other">
+ Altro
+ </combo_item>
+ </combo_box>
+ <combo_box name="land category">
+ <combo_box.item name="AnyCategory" label="Tutte le categorie"/>
+ <combo_box.item name="LindenLocation" label="Luogo dei Linden"/>
+ <combo_box.item name="Arts&amp;Culture" label="Arte &amp; Cultura"/>
+ <combo_box.item name="Business" label="Affari"/>
+ <combo_box.item name="Educational" label="Educazione"/>
+ <combo_box.item name="Gaming" label="Gioco"/>
+ <combo_box.item name="Hangout" label="Divertimento"/>
+ <combo_box.item name="NewcomerFriendly" label="Accoglienza nuovi residenti"/>
+ <combo_box.item name="Parks&amp;Nature" label="Parchi &amp; Natura"/>
+ <combo_box.item name="Residential" label="Residenziale"/>
+ <combo_box.item name="Shopping" label="Shopping"/>
+ <combo_box.item name="Other" label="Altro"/>
+ </combo_box>
+ <button label="?" label_selected="?" name="?"/>
+ <check_box label="Contenuto Mature" name="MatureCheck" tool_tip=" "/>
+ <string name="mature_check_mature">
+ Contenuto Mature
+ </string>
+ <string name="mature_check_adult">
+ Contenuto Adult
+ </string>
+ <string name="mature_check_mature_tooltip">
+ Il contenuto o le informazioni del tuo terreno sono considerate Mature.
+ </string>
+ <string name="mature_check_adult_tooltip">
+ Il contenuto o le informazioni del tuo terreno sono considerate Adult.
+ </string>
+ <text name="Snapshot:">
+ Fotografia:
+ </text>
+ <texture_picker label="" name="snapshot_ctrl" tool_tip="Clicca per scegliere una immagine"/>
+ <text name="landing_point">
+ Punto di atterraggio: [LANDING]
+ </text>
+ <string name="landing_point_none">
+ (nessuno)
+ </string>
+ <button width="60" label="Imposta" label_selected="Imposta" name="Set" tool_tip="Imposta il punto di atterraggio dove arrivano i visitatori. Impostalo nel punto dove si trova il tuo avatar in questo terreno."/>
+ <button width="60" left="301" label="Elimina" label_selected="Elimina" name="Clear" tool_tip="Elimina punto di atterraggio."/>
+ <text name="Teleport Routing: ">
+ Rotte dei teleport:
+ </text>
+ <combo_box width="140" name="landing type" tool_tip="Rotte dei teleport -- seleziona come vuoi organizzare i teleport nella tua terra.">
+ <combo_box.item name="Blocked" label="Bloccati"/>
+ <combo_box.item name="LandingPoint" label="Punto di atterraggio"/>
+ <combo_box.item name="Anywhere" label="Ovunque"/>
+ </combo_box>
+ <string name="push_restrict_text">
+ Nessuna spinta
+ </string>
+ <string name="push_restrict_region_text">
+ Nessuna spinta (Impostazione regionale)
+ </string>
+ </panel>
+ <panel label="Media" name="land_media_panel">
+ <text name="with media:" width="85">
+ Tipo di Media:
+ </text>
+ <combo_box left="97" name="media type" tool_tip="Specifica se l&apos;Url è un video, una pagina web, o un altro tipo di media"/>
+ <text name="at URL:" width="85">
+ URL Media:
+ </text>
+ <line_editor left="97" name="media_url"/>
+ <button label="Imposta..." label_selected="Imposta..." name="set_media_url" width="63"/>
+ <text name="Description:">
+ Descrizione:
+ </text>
+ <line_editor left="97" name="url_description" tool_tip="Testo che appare vicino al bottone play/carica"/>
+ <text name="Media texture:">
+ Cambia
+Texture:
+ </text>
+ <texture_picker left="97" label="" name="media texture" tool_tip="Clicca per scegliere un&apos;immagine"/>
+ <text name="replace_texture_help" width="285">
+ (Gli oggetti che hanno questa texture applicata
+mostreranno il video o la pagina web dopo che avrai
+cliccato sulla freccia play.)
+ </text>
+ <text name="Options:">
+ Opzioni
+Media:
+ </text>
+ <check_box left="94" label="Auto ridimensiona" name="media_auto_scale" tool_tip="Spuntando questa opzione, nell&apos;appezzamento il contenuto media si ridimensionerà automaticamente. Potrebbe darsi che appaia un po&apos; più lento e che diminuisca la qualità visiva ma nessun altro riadattamento o allineamento della texture sarà necessario."/>
+ <check_box left="265" label="Fai ripetere il video" name="media_loop" tool_tip="Fai ripetere il video continuamente. Quando il video è finito, reinizierà dal principio."/>
+ <check_box left="94" label="Nascondi indirizzo URL Media" name="hide_media_url" tool_tip="Abilitando questa opzione nasconderai l&apos;indirizzo url dei media a tutte le persone non autorizzate a vedere le informazioni del terreno. Nota che questo non è disponibile per contenuto di tipo HTML."/>
+ <check_box left="265" label="Nascondi indirizzo URL Musica" name="hide_music_url" tool_tip="Abilitando questa opzione nasconderai l&apos;indirizzo url della musica a tutte le persone non autorizzate a vedere le informazioni del terreno."/>
+ <text left="99" width="120" name="media_size" tool_tip="Aumenta grandezza per far vedere meglio i media web, lascia a 0 per impostare il default.">
+ Grandezza Media:
+ </text>
+ <spinner left_delta="104" name="media_size_width" tool_tip="Aumenta larghezza per far vedere meglio i media web, lascia a 0 per impostare il default."/>
+ <spinner name="media_size_height" tool_tip="Aumenta altezza per far vedere meglio i media web, lascia a 0 per impostare il default."/>
+ <text name="pixels">
+ pixels
+ </text>
+ <text name="MusicURL:">
+ URL Musica:
+ </text>
+ <line_editor left="97" name="music_url"/>
+ <text name="Sound:">
+ Suono:
+ </text>
+ <check_box left="94" label="Limita le gesture e i suoni degli oggetti in questo territorio" name="check sound local"/>
+ <button label="?" label_selected="?" name="?" left="420"/>
+ <text name="Voice settings:">
+ Voice:
+ </text>
+ <check_box left="94" label="Abilita il Voice" name="parcel_enable_voice_channel"/>
+ <check_box left="94" label="Abilita il Voice (stabilito su tutta la proprietà)" name="parcel_enable_voice_channel_is_estate_disabled"/>
+ <check_box left="114" label="Limita il voice a questa porzione di terreno" name="parcel_enable_voice_channel_parcel"/>
+ </panel>
+ <panel label="Accesso" name="land_access_panel">
+ <text name="Limit access to this parcel to:">
+ Accesso a questo terreno
+ </text>
+ <check_box label="Permetti accesso pubblico" name="public_access"/>
+ <text name="Only Allow">
+ Blocca l&apos;accesso con Residenti:
+ </text>
+ <check_box label="Che non hanno dato le proprie informazioni di pagamento alla Linden Lab" name="limit_payment" tool_tip="Manda via residenti non identificati."/>
+ <check_box label="Che non sono adulti con età verificata" name="limit_age_verified" tool_tip="Manda via residenti che non hanno verificato la loro età. Guarda il sito support.secondlife.com per ulteriori informazioni."/>
+ <string name="estate_override">
+ Una o più di queste impostazioni sono già impostate a livello regionale
+ </string>
+ <check_box label="Permetti accesso al gruppo: [GROUP]" name="GroupCheck" tool_tip="Imposta il gruppo nel pannello generale."/>
+ <check_box label="Vendi pass a:" name="PassCheck" tool_tip="Permetti in questo terreno l&apos;accesso temporaneo"/>
+ <combo_box name="pass_combo">
+ <combo_box.item name="Anyone" label="Chiunque"/>
+ <combo_box.item name="Group" label="Gruppo"/>
+ </combo_box>
+ <spinner label="Prezzo in L$:" name="PriceSpin"/>
+ <spinner label="Ore di accesso:" name="HoursSpin"/>
+ <text label="Permetti sempre" name="AllowedText">
+ Residenti permessi
+ </text>
+ <name_list name="AccessList" tool_tip="([LISTED] in elenco, [MAX] massimo)"/>
+ <button label="Aggiungi..." label_selected="Aggiungi..." name="add_allowed"/>
+ <button label="Rimuovi" label_selected="Rimuovi" name="remove_allowed"/>
+ <text label="Blocca" name="BanCheck">
+ Residenti bloccati
+ </text>
+ <name_list name="BannedList" tool_tip="([LISTED] in elenco, [MAX] massimo)"/>
+ <button label="Aggiungi..." label_selected="Aggiungi..." name="add_banned"/>
+ <button label="Rimuovi" label_selected="Rimuovi" name="remove_banned"/>
+ </panel>
+ </tab_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_animation_preview.xml b/indra/newview/skins/default/xui/it/floater_animation_preview.xml
index e72dd4aa20..b6d6148afb 100644
--- a/indra/newview/skins/default/xui/it/floater_animation_preview.xml
+++ b/indra/newview/skins/default/xui/it/floater_animation_preview.xml
@@ -1,89 +1,90 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Animation Preview" title="">
- <text name="name_label">
- Nome:
- </text>
- <text name="description_label">
- Descrizione:
- </text>
- <spinner label="Priorità" name="priority" tool_tip="Controlla quali altre animazioni possono essere annullate da questa animazione."/>
- <check_box label="Ciclica" name="loop_check" tool_tip="Rende questa animazione ciclica."/>
- <spinner label="In(%)" name="loop_in_point" tool_tip="Imposta il punto nell&apos;animazione in cui ritornare dopo ogni ciclo."/>
- <spinner label="Out(%)" name="loop_out_point" tool_tip="Imposta il punto nell&apos;animazione in cui terminare dopo ogni ciclo."/>
- <text name="hand_label">
- Postura della mano
- </text>
- <combo_box label="" name="hand_pose_combo" tool_tip="Controlla cosa fanno le mani durante l&apos;animazione.">
- <combo_box.item name="Spread" label="Aperte"/>
- <combo_box.item name="Relaxed" label="Rilassate"/>
- <combo_box.item name="PointBoth" label="Entrambe indicano"/>
- <combo_box.item name="Fist" label="Pugno"/>
- <combo_box.item name="RelaxedLeft" label="Sinistra Rilassata"/>
- <combo_box.item name="PointLeft" label="Sinistra Indica"/>
- <combo_box.item name="FistLeft" label="Sinistra a pugno"/>
- <combo_box.item name="RelaxedRight" label="Destra rilassata"/>
- <combo_box.item name="PointRight" label="Destra Indica"/>
- <combo_box.item name="FistRight" label="Destra a Pugno"/>
- <combo_box.item name="SaluteRight" label="Destra Saluta"/>
- <combo_box.item name="Typing" label="Digitano"/>
- <combo_box.item name="PeaceRight" label="Destra &apos;segno di pace&apos;"/>
- </combo_box>
- <text name="emote_label">
- Espressione
- </text>
- <combo_box label="" name="emote_combo" tool_tip="Controlla l&apos;espressione del viso durante l&apos;animazione.">
- <combo_box.item name="[None]" label="None]"/>
- <combo_box.item name="Aaaaah" label="Aaaaah"/>
- <combo_box.item name="Afraid" label="Paura"/>
- <combo_box.item name="Angry" label="Rabbia"/>
- <combo_box.item name="BigSmile" label="Sorriso Aperto"/>
- <combo_box.item name="Bored" label="Noia"/>
- <combo_box.item name="Cry" label="Pianto"/>
- <combo_box.item name="Disdain" label="Sdegno"/>
- <combo_box.item name="Embarrassed" label="Imbarazzo"/>
- <combo_box.item name="Frown" label="Accigliato"/>
- <combo_box.item name="Kiss" label="Bacio"/>
- <combo_box.item name="Laugh" label="Risata"/>
- <combo_box.item name="Plllppt" label="Linguaccia"/>
- <combo_box.item name="Repulsed" label="Repulsione"/>
- <combo_box.item name="Sad" label="Tristezza"/>
- <combo_box.item name="Shrug" label="Spallucce"/>
- <combo_box.item name="Smile" label="Sorriso"/>
- <combo_box.item name="Surprise" label="Sorpresa"/>
- <combo_box.item name="Wink" label="Ammiccamento"/>
- <combo_box.item name="Worry" label="Preoccupazione"/>
- </combo_box>
- <text name="preview_label">
- Vedi anteprima mentre
- </text>
- <combo_box label="" name="preview_base_anim" tool_tip="Da usarsi per controllare il comportamento dell&apos;animazione mentre l&apos;avatar svolge azioni abituali.">
- <combo_box.item name="Standing" label="In piedi"/>
- <combo_box.item name="Walking" label="Passeggia"/>
- <combo_box.item name="Sitting" label="Siede"/>
- <combo_box.item name="Flying" label="Vola"/>
- </combo_box>
- <spinner label="Avvio lento (sec)" name="ease_in_time" tool_tip="Tempo (in secondi) in cui le animazioni iniziano a sfumare."/>
- <spinner label="Arresto lento (sec)" name="ease_out_time" tool_tip="Tempo (in secondi) in cui le animazioni iniziano a sfumare."/>
- <button label="" name="play_btn" tool_tip="Attiva/sospendi l&apos;animazione."/>
- <button label="" name="stop_btn" tool_tip="Ferma la riproduzione dell&apos;animazione"/>
- <text name="bad_animation_text">
- Impossibile leggere il file dell&apos;animazione.
-
-Raccomandiamo file di tipo BVH esportati da Poser 4.
- </text>
- <button label="Annulla" name="cancel_btn"/>
- <button label="Importa ([AMOUNT]L$)" name="ok_btn"/>
- <string name="failed_to_initialize">
- Impossibile inizializzare la sequenza
- </string>
- <string name="anim_too_long">
- Il file dell&apos;animazione è lungo [LENGTH] secondi.
-
-La lunghezza massima è [MAX_LENGTH] secondi.
- </string>
- <string name="failed_file_read">
- Impossibile leggere il file dell&apos;animazione.
-
-[STATUS]
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Animation Preview" title="">
+ <text name="name_label">
+ Nome:
+ </text>
+ <text name="description_label">
+ Descrizione:
+ </text>
+ <spinner label_width="72" width="110" label="Priorità" name="priority" tool_tip="Controlla quali altre animazioni possono essere annullate da questa animazione."/>
+ <check_box label="Ciclica" name="loop_check" tool_tip="Rende questa animazione ciclica."/>
+ <spinner label="In(%)" name="loop_in_point" tool_tip="Imposta il punto nell&apos;animazione in cui ritornare dopo ogni ciclo."/>
+ <spinner label="Out(%)" name="loop_out_point" tool_tip="Imposta il punto nell&apos;animazione in cui terminare dopo ogni ciclo."/>
+ <text name="hand_label">
+ Postura della mano
+ </text>
+ <combo_box left_delta="100" width="184" name="hand_pose_combo" tool_tip="Controlla cosa fanno le mani durante l&apos;animazione.">
+ <combo_box.item name="Spread" label="Aperte"/>
+ <combo_box.item name="Relaxed" label="Rilassate"/>
+ <combo_box.item name="PointBoth" label="Entrambe indicano"/>
+ <combo_box.item name="Fist" label="Pugno"/>
+ <combo_box.item name="RelaxedLeft" label="Sinistra Rilassata"/>
+ <combo_box.item name="PointLeft" label="Sinistra Indica"/>
+ <combo_box.item name="FistLeft" label="Sinistra a pugno"/>
+ <combo_box.item name="RelaxedRight" label="Destra rilassata"/>
+ <combo_box.item name="PointRight" label="Destra Indica"/>
+ <combo_box.item name="FistRight" label="Destra a Pugno"/>
+ <combo_box.item name="SaluteRight" label="Destra Saluta"/>
+ <combo_box.item name="Typing" label="Digitano"/>
+ <combo_box.item name="PeaceRight" label="Destra &apos;segno di pace&apos;"/>
+ </combo_box>
+ <text name="emote_label">
+ Espressione
+ </text>
+ <combo_box left_delta="100" width="184" name="emote_combo" tool_tip="Controlla l&apos;espressione del viso durante l&apos;animazione.">
+ <combo_box.item name="[None]" label="None]"/>
+ <combo_box.item name="Aaaaah" label="Aaaaah"/>
+ <combo_box.item name="Afraid" label="Paura"/>
+ <combo_box.item name="Angry" label="Rabbia"/>
+ <combo_box.item name="BigSmile" label="Sorriso Aperto"/>
+ <combo_box.item name="Bored" label="Noia"/>
+ <combo_box.item name="Cry" label="Pianto"/>
+ <combo_box.item name="Disdain" label="Sdegno"/>
+ <combo_box.item name="Embarrassed" label="Imbarazzo"/>
+ <combo_box.item name="Frown" label="Accigliato"/>
+ <combo_box.item name="Kiss" label="Bacio"/>
+ <combo_box.item name="Laugh" label="Risata"/>
+ <combo_box.item name="Plllppt" label="Linguaccia"/>
+ <combo_box.item name="Repulsed" label="Repulsione"/>
+ <combo_box.item name="Sad" label="Tristezza"/>
+ <combo_box.item name="Shrug" label="Spallucce"/>
+ <combo_box.item name="Smile" label="Sorriso"/>
+ <combo_box.item name="Surprise" label="Sorpresa"/>
+ <combo_box.item name="Wink" label="Ammiccamento"/>
+ <combo_box.item name="Worry" label="Preoccupazione"/>
+ </combo_box>
+ <text name="preview_label" width="250">
+ Vedi anteprima mentre
+ </text>
+ <combo_box left_delta="154" width="130" name="preview_base_anim" tool_tip="Da usarsi per controllare il comportamento dell&apos;animazione mentre l&apos;avatar svolge azioni abituali.">
+ <combo_box.item name="Standing" label="In piedi"/>
+ <combo_box.item name="Walking" label="Passeggia"/>
+ <combo_box.item name="Sitting" label="Siede"/>
+ <combo_box.item name="Flying" label="Vola"/>
+ </combo_box>
+ <spinner label_width="125" width="192" label="Avvio lento (sec)" name="ease_in_time" tool_tip="Tempo (in secondi) in cui le animazioni iniziano a sfumare."/>
+ <spinner bottom_delta="-20" label_width="125" left="10" width="192" label="Arresto lento (sec)" name="ease_out_time" tool_tip="Tempo (in secondi) in cui le animazioni iniziano a sfumare."/>
+ <button bottom_delta="-32" name="play_btn" tool_tip="Attiva/sospendi l&apos;animazione."/>
+ <button label="" name="stop_btn" tool_tip="Ferma la riproduzione dell&apos;animazione"/>
+ <text name="bad_animation_text">
+ Impossibile leggere il file dell&apos;animazione.
+
+Raccomandiamo file di tipo BVH esportati da
+Poser 4.
+ </text>
+ <button label="Annulla" name="cancel_btn"/>
+ <button label="Importa ([AMOUNT]L$)" name="ok_btn"/>
+ <string name="failed_to_initialize">
+ Impossibile inizializzare la sequenza
+ </string>
+ <string name="anim_too_long">
+ Il file dell&apos;animazione è lungo [LENGTH] secondi.
+
+La lunghezza massima è [MAX_LENGTH] secondi.
+ </string>
+ <string name="failed_file_read">
+ Impossibile leggere il file dell&apos;animazione.
+
+[STATUS]
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_auction.xml b/indra/newview/skins/default/xui/it/floater_auction.xml
index 84b89d9e1f..edbb9ab9a9 100644
--- a/indra/newview/skins/default/xui/it/floater_auction.xml
+++ b/indra/newview/skins/default/xui/it/floater_auction.xml
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_auction" title="Inizia a vendere terra Linden">
- <check_box label="Includi barriere di selezione gialle" name="fence_check"/>
- <button label="Fotografia" label_selected="Fotografia" name="snapshot_btn"/>
- <button label="OK" label_selected="OK" name="ok_btn"/>
- <string name="already for sale">
- Non puoi mettere in asta terreni che sono già in vendita.
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_auction" title="Inizia a vendere terra Linden">
+ <check_box label="Includi barriere di selezione gialle" name="fence_check"/>
+ <button label="Fotografia" label_selected="Fotografia" name="snapshot_btn"/>
+ <button label="OK" label_selected="OK" name="ok_btn"/>
+ <string name="already for sale">
+ Non puoi mettere in asta terreni che sono già in vendita.
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_avatar_picker.xml b/indra/newview/skins/default/xui/it/floater_avatar_picker.xml
index 947f2b7b2c..4e63c3b7d6 100644
--- a/indra/newview/skins/default/xui/it/floater_avatar_picker.xml
+++ b/indra/newview/skins/default/xui/it/floater_avatar_picker.xml
@@ -1,15 +1,40 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="avatarpicker" title="Scegli residente">
- <text name="instruct_search_resident_name">
- Scrivi parte del nome del residente:
- </text>
- <button label="Trova" label_selected="Trova" name="Find"/>
- <text name="Or select their calling card:">
- Oppure seleziona un biglietto da visita:
- </text>
- <button label="Chiudi" label_selected="Chiudi" name="Close"/>
- <button label="Seleziona" label_selected="Seleziona" name="Select"/>
- <string name="NotFound">
- &apos;[TEXT]&apos; non trovato
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="avatarpicker" title="Scegli residente">
+ <tab_container name="ResidentChooserTabs">
+ <panel label="Cerca" name="SearchPanel">
+ <text name="InstructSearchResidentName">
+ Scrivi parte del nome del residente:
+ </text>
+ <button label="Trova" label_selected="Trova" name="Find"/>
+ </panel>
+ <panel label="Biglietti da visita" name="CallingCardsPanel">
+ <text name="InstructSelectCallingCard">
+ Seleziona un biglietto da visita:
+ </text>
+ </panel>
+ <panel label="Vicino a me" name="NearMePanel">
+ <text name="InstructSelectResident">
+ Seleziona un residente nelle vicinanze:
+ </text>
+ <button label="Aggiorna la lista" label_selected="Aggiorna l&apos;elenco" name="Refresh"/>
+ <slider label="Range" name="near_me_range"/>
+ <text name="meters">
+ Metri
+ </text>
+ </panel>
+ </tab_container>
+ <button label="Seleziona" label_selected="Seleziona" name="Select"/>
+ <button label="Annulla" label_selected="Annulla" name="Cancel"/>
+ <string name="not_found">
+ &apos;[TEXT]&apos; non trovato
+ </string>
+ <string name="no_one_near">
+ Nessuno è vicino
+ </string>
+ <string name="no_results">
+ Nessun risultato
+ </string>
+ <string name="searching">
+ Ricerca...
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_avatar_textures.xml b/indra/newview/skins/default/xui/it/floater_avatar_textures.xml
index cb1326aa4e..281f436224 100644
--- a/indra/newview/skins/default/xui/it/floater_avatar_textures.xml
+++ b/indra/newview/skins/default/xui/it/floater_avatar_textures.xml
@@ -1,30 +1,30 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="avatar_texture_debug" title="Texture dell&apos;Avatar">
- <text name="baked_label">
- Texture Visualizzate
- </text>
- <text name="composite_label">
- Texture Composite
- </text>
- <texture_picker label="Testa" name="baked_head"/>
- <texture_picker label="Trucco" name="head_bodypaint"/>
- <texture_picker label="Capelli" name="hair"/>
- <button label="Deposito" label_selected="Deposito" name="Dump"/>
- <texture_picker label="Occhi" name="baked_eyes"/>
- <texture_picker label="Occhio" name="eye_texture"/>
- <texture_picker label="Parte superiore del corpo" name="baked_upper_body"/>
- <texture_picker label="Tatuaggio parte superiore del corpo" name="upper_bodypaint"/>
- <texture_picker label="Canottiera" name="undershirt"/>
- <texture_picker label="Guanti" name="gloves"/>
- <texture_picker label="Maglietta" name="shirt"/>
- <texture_picker label="Giacca, parte superiore" name="upper_jacket"/>
- <texture_picker label="Parte inferiore del corpo" name="baked_lower_body"/>
- <texture_picker label="Tatuaggio parte inferiore del corpo" name="lower_bodypaint"/>
- <texture_picker label="Mutande" name="underpants"/>
- <texture_picker label="Calze" name="socks"/>
- <texture_picker label="Scarpe" name="shoes"/>
- <texture_picker label="Pantaloni" name="pants"/>
- <texture_picker label="Giacca" name="jacket"/>
- <texture_picker label="Gonna" name="baked_skirt"/>
- <texture_picker label="Gonna" name="skirt_texture"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="avatar_texture_debug" title="Texture dell&apos;Avatar">
+ <text name="baked_label">
+ Texture Visualizzate
+ </text>
+ <text name="composite_label">
+ Texture Composite
+ </text>
+ <texture_picker label="Testa" name="baked_head"/>
+ <texture_picker label="Trucco" name="head_bodypaint"/>
+ <texture_picker label="Capelli" name="hair"/>
+ <button label="Deposito" label_selected="Deposito" name="Dump"/>
+ <texture_picker label="Occhi" name="baked_eyes"/>
+ <texture_picker label="Occhio" name="eye_texture"/>
+ <texture_picker label="Parte superiore del corpo" name="baked_upper_body"/>
+ <texture_picker label="Tatuaggio parte superiore del corpo" name="upper_bodypaint"/>
+ <texture_picker label="Canottiera" name="undershirt"/>
+ <texture_picker label="Guanti" name="gloves"/>
+ <texture_picker label="Maglietta" name="shirt"/>
+ <texture_picker label="Giacca, parte superiore" name="upper_jacket"/>
+ <texture_picker label="Parte inferiore del corpo" name="baked_lower_body"/>
+ <texture_picker label="Tatuaggio parte inferiore del corpo" name="lower_bodypaint"/>
+ <texture_picker label="Mutande" name="underpants"/>
+ <texture_picker label="Calze" name="socks"/>
+ <texture_picker label="Scarpe" name="shoes"/>
+ <texture_picker label="Pantaloni" name="pants"/>
+ <texture_picker label="Giacca" name="jacket"/>
+ <texture_picker label="Gonna" name="baked_skirt"/>
+ <texture_picker label="Gonna" name="skirt_texture"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_beacons.xml b/indra/newview/skins/default/xui/it/floater_beacons.xml
index 5588d0a0a3..035b073729 100644
--- a/indra/newview/skins/default/xui/it/floater_beacons.xml
+++ b/indra/newview/skins/default/xui/it/floater_beacons.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="beacons" title="Segnali luminosi">
- <panel name="beacons_panel">
- <check_box label="Oggetti scriptati con solo &apos;tocca&apos; abilitato" name="touch_only"/>
- <check_box label="Oggetti scriptati" name="scripted"/>
- <check_box label="Oggetti fisici" name="physical"/>
- <check_box label="Sorgenti di suoni" name="sounds"/>
- <check_box label="Sorgenti di particelle" name="particles"/>
- <check_box label="Visualizza l&apos;evidenziato" name="highlights"/>
- <check_box label="Visualizza segnali" name="beacons"/>
- <text name="beacon_width_label">
- Ampiezza segnali:
- </text>
- </panel>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="beacons" title="Segnali luminosi">
+ <panel name="beacons_panel">
+ <check_box label="Oggetti scriptati con solo &apos;tocca&apos; abilitato" name="touch_only"/>
+ <check_box label="Oggetti scriptati" name="scripted"/>
+ <check_box label="Oggetti fisici" name="physical"/>
+ <check_box label="Sorgenti di suoni" name="sounds"/>
+ <check_box label="Sorgenti di particelle" name="particles"/>
+ <check_box label="Visualizza l&apos;evidenziato" name="highlights"/>
+ <check_box label="Visualizza segnali" name="beacons"/>
+ <text name="beacon_width_label">
+ Ampiezza segnali:
+ </text>
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_build_options.xml b/indra/newview/skins/default/xui/it/floater_build_options.xml
index fe5e23f832..340d70851c 100644
--- a/indra/newview/skins/default/xui/it/floater_build_options.xml
+++ b/indra/newview/skins/default/xui/it/floater_build_options.xml
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="build options floater" title="Opzioni della griglia">
- <spinner label="Unità di misura della griglia (metri)" name="GridResolution"/>
- <spinner label="Estensione della griglia (metri)" name="GridDrawSize"/>
- <check_box label="Abilita sotto-unità di movimento" name="GridSubUnit"/>
- <check_box label="Mostra piani d&apos;intersezione" name="GridCrossSection"/>
- <slider label="Trasparenza della griglia" name="GridOpacity"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="build options floater" title="Opzioni della griglia">
+ <spinner label="Unità di misura della griglia (metri)" name="GridResolution"/>
+ <spinner label="Estensione della griglia (metri)" name="GridDrawSize"/>
+ <check_box label="Abilita sotto-unità di movimento" name="GridSubUnit"/>
+ <check_box label="Mostra piani d&apos;intersezione" name="GridCrossSection"/>
+ <slider label="Trasparenza della griglia" name="GridOpacity"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_bulk_perms.xml b/indra/newview/skins/default/xui/it/floater_bulk_perms.xml
new file mode 100644
index 0000000000..7ca57f34b3
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/floater_bulk_perms.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floaterbulkperms" title="Modifica in massa i permessi del contenuto">
+ <text name="applyto">
+ Tipi di contenuto
+ </text>
+ <check_box label="Animazioni" name="check_animation"/>
+ <check_box label="Parti del corpo" name="check_bodypart"/>
+ <check_box label="Abiti" name="check_clothing"/>
+ <check_box label="Gesture" name="check_gesture"/>
+ <check_box label="Landmark" name="check_landmark"/>
+ <check_box label="Notecard" name="check_notecard"/>
+ <check_box label="Oggetti" name="check_object"/>
+ <check_box label="Script" name="check_script"/>
+ <check_box label="Suoni" name="check_sound"/>
+ <check_box label="Texture" name="check_texture"/>
+ <button label="Spunta tutti" label_selected="Tutti" name="check_all"/>
+ <button label="Togli la spunta a tutti" label_selected="Nessuno" name="check_none"/>
+ <text name="newperms">
+ Nuovi permessi
+ </text>
+ <check_box label="Condividi con il gruppo" name="share_with_group"/>
+ <check_box label="Permetti a tutti di copiare" name="everyone_copy"/>
+ <text name="NextOwnerLabel">
+ Il prossimo proprietario può:
+ </text>
+ <check_box label="Modificare" name="next_owner_modify"/>
+ <check_box label="Copiare" name="next_owner_copy"/>
+ <check_box label="Rivendere/Regalare" name="next_owner_transfer"/>
+ <button label="Aiuto" name="help"/>
+ <button label="Applica" name="apply"/>
+ <button label="Chiudi" name="close"/>
+ <string name="nothing_to_modify_text">
+ La selezione non contiene nessun contenuto modificabile.
+ </string>
+ <string name="status_text">
+ Impostazione permessi su [NAME]
+ </string>
+ <string name="start_text">
+ Avvio richiesta di modifica dei permessi...
+ </string>
+ <string name="done_text">
+ Conclusa richiesta di modifica dei permessi.
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_bumps.xml b/indra/newview/skins/default/xui/it/floater_bumps.xml
index 87be70ec37..d9ce29fa08 100644
--- a/indra/newview/skins/default/xui/it/floater_bumps.xml
+++ b/indra/newview/skins/default/xui/it/floater_bumps.xml
@@ -1,21 +1,21 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_bumps" title="Collisioni, spinte e colpi">
- <string name="none_detected">
- Nessuno rilevato
- </string>
- <string name="bump">
- [TIME] [FIRST] [LAST] ti ha urtato
- </string>
- <string name="llpushobject">
- [TIME] [FIRST] [LAST] ti ha spinto per mezzo di uno script
- </string>
- <string name="selected_object_collide">
- [TIME] [FIRST] [LAST] ti ha colpito con un oggetto
- </string>
- <string name="scripted_object_collide">
- [TIME] [FIRST] [LAST] ti ha colpito con un oggetto scriptato
- </string>
- <string name="physical_object_collide">
- [TIME] [FIRST] [LAST] ti ha colpito con un oggetto fisico
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_bumps" title="Collisioni, spinte e colpi">
+ <string name="none_detected">
+ Nessuno rilevato
+ </string>
+ <string name="bump">
+ [TIME] [FIRST] [LAST] ti ha urtato
+ </string>
+ <string name="llpushobject">
+ [TIME] [FIRST] [LAST] ti ha spinto per mezzo di uno script
+ </string>
+ <string name="selected_object_collide">
+ [TIME] [FIRST] [LAST] ti ha colpito con un oggetto
+ </string>
+ <string name="scripted_object_collide">
+ [TIME] [FIRST] [LAST] ti ha colpito con un oggetto scriptato
+ </string>
+ <string name="physical_object_collide">
+ [TIME] [FIRST] [LAST] ti ha colpito con un oggetto fisico
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_buy_contents.xml b/indra/newview/skins/default/xui/it/floater_buy_contents.xml
index 2aca4a57e4..dce10d5493 100644
--- a/indra/newview/skins/default/xui/it/floater_buy_contents.xml
+++ b/indra/newview/skins/default/xui/it/floater_buy_contents.xml
@@ -1,21 +1,21 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_buy_contents" title="Compra i contenuti">
- <text name="contains_text">
- [NAME] contiene:
- </text>
- <text name="buy_text">
- Compra per [AMOUNT]L$ da [NAME]?
- </text>
- <button label="Annulla" label_selected="Annulla" name="cancel_btn"/>
- <button label="Compra" label_selected="Compra" name="buy_btn"/>
- <check_box label="Indossa adesso l&apos;indumento" name="wear_check"/>
- <string name="no_copy_text">
- (non copiabile)
- </string>
- <string name="no_modify_text">
- (non modificabile)
- </string>
- <string name="no_transfer_text">
- (non traferibile)
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_buy_contents" title="Compra i contenuti">
+ <text name="contains_text">
+ [NAME] contiene:
+ </text>
+ <text name="buy_text">
+ Compra per [AMOUNT]L$ da [NAME]?
+ </text>
+ <button label="Annulla" label_selected="Annulla" name="cancel_btn"/>
+ <button label="Compra" label_selected="Compra" name="buy_btn"/>
+ <check_box label="Indossa adesso l&apos;indumento" name="wear_check"/>
+ <string name="no_copy_text">
+ (non copiabile)
+ </string>
+ <string name="no_modify_text">
+ (non modificabile)
+ </string>
+ <string name="no_transfer_text">
+ (non traferibile)
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_buy_currency.xml b/indra/newview/skins/default/xui/it/floater_buy_currency.xml
index ad92a8a478..aa840b4de4 100644
--- a/indra/newview/skins/default/xui/it/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/it/floater_buy_currency.xml
@@ -1,66 +1,69 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="buy currency" title="Acquista valuta">
- <text name="info_buying">
- Acquistando valuta:
- </text>
- <text name="info_cannot_buy">
- Non è possibile comprare ora
- </text>
- <text name="info_need_more">
- Hai bisogno di acquistare ulteriore contante:
- </text>
- <text name="error_message">
- Qualcosa non è andato a buon fine:
- </text>
- <button label="Vai al sito web" name="error_web"/>
- <text name="contacting">
- Sto contattando il LindeX...
- </text>
- <text name="buy_action_unknown">
- Compra L$ sul mercato delle valute LindeX
- </text>
- <text name="buy_action">
- [NAME] [PRICE]L$
- </text>
- <text name="currency_action">
- Compra L$
- </text>
- <line_editor name="currency_amt">
- 1234
- </line_editor>
- <text name="currency_est">
- per circa [USD]US$
- </text>
- <text name="getting_data">
- Dati in ricezione...
- </text>
- <text name="balance_label">
- Attualmente possiedi
- </text>
- <text name="balance_amount">
- [AMT]L$
- </text>
- <text name="buying_label">
- Stai comprando
- </text>
- <text name="buying_amount">
- [AMT]L$
- </text>
- <text name="total_label">
- Il tuo saldo sarà
- </text>
- <text name="total_amount">
- [AMT]L$
- </text>
- <text name="purchase_warning_repurchase">
- Confermando questa operazione si acquisterà solo la valuta. Per acquistare il bene, dovrai riprovare l&apos;operazione nuovamente.
- </text>
- <text name="purchase_warning_notenough">
- Non stai comprando abbastanza denaro. Devi aumentare l&apos;importo da acquistare.
- </text>
- <button label="Cancella" name="cancel_btn"/>
- <button label="Acquista" name="buy_btn"/>
- <string name="buy_currency">
- Compra [LINDENS] L$ per circa [USD] US$
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="buy currency" title="Acquista valuta">
+ <text name="info_buying">
+ Acquistando valuta:
+ </text>
+ <text name="info_cannot_buy" left="5" right="-5">
+ Non è possibile comprare ora
+ </text>
+ <text name="info_need_more" left="5" right="-5" font="SansSerifLarge">
+ Hai bisogno di acquistare ulteriore contante:
+ </text>
+ <text name="error_message">
+ Qualcosa non è andato a buon fine.
+ </text>
+ <button label="Vai al sito web" name="error_web"/>
+ <text name="contacting">
+ Sto contattando il LindeX...
+ </text>
+ <text name="buy_action_unknown">
+ Compra L$ sul mercato delle valute LindeX
+ </text>
+ <text name="buy_action">
+ [NAME] [PRICE]L$
+ </text>
+ <text name="currency_action">
+ Compra
+ </text>
+ <line_editor name="currency_amt">
+ 1234
+ </line_editor>
+ <text name="currency_est">
+ L$ per circa [USD]US$
+ </text>
+ <text name="getting_data">
+ Dati in ricezione...
+ </text>
+ <text name="balance_label">
+ Attualmente possiedi
+ </text>
+ <text name="balance_amount">
+ [AMT]L$
+ </text>
+ <text name="buying_label">
+ Stai comprando
+ </text>
+ <text name="buying_amount">
+ [AMT]L$
+ </text>
+ <text name="total_label">
+ Il tuo saldo sarà
+ </text>
+ <text name="total_amount">
+ [AMT]L$
+ </text>
+ <text name="purchase_warning_repurchase" height="48" bottom_delta="-64" right="-10">
+ Confermando questa operazione si acquisterà solo
+la valuta. Per acquistare il bene, dovrai riprovare
+l&apos;operazione nuovamente.
+ </text>
+ <text name="purchase_warning_notenough" bottom_delta="16">
+ Non stai comprando abbastanza denaro.
+Devi aumentare l&apos;importo da acquistare.
+ </text>
+ <button label="Cancella" name="cancel_btn"/>
+ <button label="Acquista" name="buy_btn"/>
+ <string name="buy_currency">
+ Compra [LINDENS] L$ per circa [USD] US$
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_buy_land.xml b/indra/newview/skins/default/xui/it/floater_buy_land.xml
index b85a776238..d6036c19dd 100644
--- a/indra/newview/skins/default/xui/it/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/it/floater_buy_land.xml
@@ -1,222 +1,238 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="buy land" title="Compra terra">
- <text name="region_name_label">
- Regione:
- </text>
- <text name="region_name_text">
- (sconosciuto)
- </text>
- <text name="estate_name_label">
- Proprietà:
- </text>
- <text name="estate_name_text">
- (sconosciuto)
- </text>
- <text name="estate_owner_label">
- Proprietario della regione
- </text>
- <text name="estate_owner_text">
- (sconosciuto)
- </text>
- <text name="resellable_changeable_label">
- Terra acquistata in questa regione:
- </text>
- <text name="resellable_clause">
- La terra acquistata in questa regione può o non può essere rivenduta
- </text>
- <text name="changeable_clause">
- Può o non può essere unita o suddivisa.
- </text>
- <text name="covenant_text">
- Devi accettare il regolamento della regione:
- </text>
- <text_editor name="covenant_editor">
- Attendi...
- </text_editor>
- <check_box label="Accetto il regolamento succitato." name="agree_covenant"/>
- <text name="info_parcel_label">
- Terreno:
- </text>
- <text name="info_parcel">
- Scotopteryx 138,204
- </text>
- <text name="info_size_label">
- Grandezza:
- </text>
- <text name="info_size">
- 1024 sq. m.
- </text>
- <text name="info_price_label">
- Prezzo:
- </text>
- <text name="info_price">
- 1500 L$, oggetti inclusi
- </text>
- <text name="info_action">
- Comprando questa terra:
- </text>
- <text name="error_message">
- Qualcosa non è andato a buon fine.
- </text>
- <button label="Vai al sito" name="error_web"/>
- <text name="account_action">
- Trasforma il tuo avatar in un membro premium.
- </text>
- <text name="account_reason">
- Solo i membri premium possono possedere terra.
- </text>
- <combo_box name="account_level">
- <combo_box.item name="US$9.95/month,billedmonthly" label="9.95 US$/mese, addebitati mensilmente"/>
- <combo_box.item name="US$7.50/month,billedquarterly" label="7.50 US$/mese, addebitati ogni quadrimestre"/>
- <combo_box.item name="US$6.00/month,billedannually" label="6.00 US$/mese, addebitati annualmente"/>
- </combo_box>
- <text name="land_use_action">
- Aumenta il tasso di pagamento mensile delle tasse d&apos;uso della terra a 40 US$/mese.
- </text>
- <text name="land_use_reason">
- Possiedi 1.309 metri quadri di terra.
-Questo appezzamento è di 512 metri quadri.
- </text>
- <text name="purchase_action">
- Paga il residente Joe 4000 L$ per la terra
- </text>
- <text name="currency_reason">
- Possiedi 2.100 L$.
- </text>
- <text name="currency_action">
- Compra ulteriori L$
- </text>
- <line_editor name="currency_amt">
- 1000
- </line_editor>
- <text name="currency_est">
- per circa [AMOUNT2] US$
- </text>
- <text name="currency_balance">
- Possiedi 2.100 L$.
- </text>
- <check_box label="Rimuovi [AMOUNT] metri quadri di contribuzione dal gruppo." name="remove_contribution"/>
- <button label="Compra" name="buy_btn"/>
- <button label="Annulla" name="cancel_btn"/>
- <string name="can_resell">
- Può essere rivenduta.
- </string>
- <string name="can_not_resell">
- Può non essere rivenduta.
- </string>
- <string name="can_change">
- Può essere unita o suddivisa.
- </string>
- <string name="can_not_change">
- Non può essere unita o suddivisa.
- </string>
- <string name="cant_buy_for_group">
- Non hai il permesso di comprare terra per il tuo gruppo attivo.
- </string>
- <string name="no_land_selected">
- Nessuna terra selezionata.
- </string>
- <string name="multiple_parcels_selected">
- Hai selezionato appezzamenti diversi.
-Prova a selezionare un&apos;area più piccola.
- </string>
- <string name="no_permission">
- Non hai il permesso di comprare terra per il tuo gruppo attivo.
- </string>
- <string name="parcel_not_for_sale">
- Il terreno selezionato non è in vendita.
- </string>
- <string name="group_already_owns">
- Il gruppo possiede già il terreno.
- </string>
- <string name="you_already_own">
- Possiedi già il terreno.
- </string>
- <string name="set_to_sell_to_other">
- Il terreno selezionato è già impostato per la vendita ad un altro gruppo.
- </string>
- <string name="no_public_land">
- L&apos;area selezionata non è pubblica.
- </string>
- <string name="not_owned_by_you">
- Hai selezionato una terra posseduta da un altro utente.
-Prova a selezionare un&apos;area più piccola.
- </string>
- <string name="processing">
- Stiamo elaborando il tuo acquisto...
-
-(Potrebbe volerci un minuto o due.)
- </string>
- <string name="fetching_error">
- C&apos;e stato un errore mentre si stavano ottenendo le informazioni sull&apos;acquisto della terra.
- </string>
- <string name="buying_will">
- Comprando questa terra:
- </string>
- <string name="buying_for_group">
- Comprando questa terra per il gruppo:
- </string>
- <string name="cannot_buy_now">
- Non puoi comprare ora:
- </string>
- <string name="not_for_sale">
- Non in vendita:
- </string>
- <string name="none_needed">
- nessuno necessario
- </string>
- <string name="must_upgrade">
- Il tuo tipo di account ha bisogno di un upgrade per possedere terra.
- </string>
- <string name="cant_own_land">
- Il tuo account può possedere terra.
- </string>
- <string name="land_holdings">
- Possiedi [BUYER] di metri quadri di terra.
- </string>
- <string name="pay_to_for_land">
- Paga [AMOUNT] L$ a [SELLER] per questa terra
- </string>
- <string name="buy_for_US">
- Compra [AMOUNT] L$ per appross. [AMOUNT2] US$,
- </string>
- <string name="parcel_meters">
- Questo terreno è di [AMOUNT] metri quadri.
- </string>
- <string name="premium_land">
- Questa terra è premium, e sarà  addebitata come [AMOUNT] metri quadri.
- </string>
- <string name="discounted_land">
- Questa terra è scontata, e sarà  addebitata come [AMOUNT] metri quadri.
- </string>
- <string name="meters_supports_object">
- [AMOUNT] metri quadri
-supporta [AMOUNT2] oggetti
- </string>
- <string name="sold_with_objects">
- venduta con oggetti
- </string>
- <string name="insufficient_land_credits">
- Il gruppo [GROUP] avrà bisogno di contribuzioni anticipate, mediante crediti d&apos;uso terriero,
-sufficienti a coprire l&apos;area del terreno prima che l&apos;acquisto
-sia completato.
- </string>
- <string name="have_enough_lindens">
- Hai [AMOUNT] L$, che sono sufficienti per comprare questa terra.
- </string>
- <string name="not_enough_lindens">
- Hai solo [AMOUNT] L$, ed hai bisogno di altri [AMOUNT2] L$.
- </string>
- <string name="balance_left">
- Dopo l&apos;acquisto, ti rimarranno [AMOUNT] L$.
- </string>
- <string name="balance_needed">
- Hai bisogno di acquistare almeno [AMOUNT] L$ per comprare questo terreno.
- </string>
- <string name="no_parcel_selected">
- (nessun terreno selezionato)
- </string>
- <string name="buy_currency">
- Compra [LINDENS] L$ per appross. [USD] US$
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="buy land" title="Compra terra">
+ <text name="region_name_label">
+ Regione:
+ </text>
+ <text name="region_name_text">
+ (sconosciuto)
+ </text>
+ <text name="region_type_label">
+ Tipo:
+ </text>
+ <text name="region_type_text">
+ (sconosciuto)
+ </text>
+ <text name="estate_name_label">
+ Proprietà:
+ </text>
+ <text name="estate_name_text">
+ (sconosciuto)
+ </text>
+ <text name="estate_owner_label" width="120" right="575">
+ Proprietario della regione:
+ </text>
+ <text name="estate_owner_text" left="580" width="155">
+ (sconosciuto)
+ </text>
+ <text name="resellable_changeable_label">
+ Terra acquistata in questa regione:
+ </text>
+ <text name="resellable_clause">
+ Può o non può essere rivenduta.
+ </text>
+ <text name="changeable_clause">
+ Può o non può essere unita o suddivisa.
+ </text>
+ <text name="covenant_text">
+ Devi accettare il regolamento della regione:
+ </text>
+ <text left="470" name="covenant_timestamp_text"/>
+ <text_editor name="covenant_editor">
+ Attendi...
+ </text_editor>
+ <check_box label="Accetto il regolamento succitato." name="agree_covenant"/>
+ <text name="info_parcel_label">
+ Terreno:
+ </text>
+ <text name="info_parcel">
+ Scotopteryx 138,204
+ </text>
+ <text name="info_size_label">
+ Grandezza:
+ </text>
+ <text name="info_size">
+ 1024 m²
+ </text>
+ <text name="info_price_label">
+ Prezzo:
+ </text>
+ <text name="info_price">
+ 1500 L$
+(1.1 L$/m²)
+venduta con gli oggetti
+ </text>
+ <text name="info_action">
+ Comprando questa terra:
+ </text>
+ <text name="error_message">
+ Qualcosa non è andato a buon fine.
+ </text>
+ <button label="Vai al sito" name="error_web"/>
+ <text name="account_action">
+ Trasforma il tuo avatar in un membro premium.
+ </text>
+ <text name="account_reason">
+ Solo i membri premium possono possedere terra.
+ </text>
+ <combo_box name="account_level">
+ <combo_box.item name="US$9.95/month,billedmonthly" label="9.95 US$/mese, addebitati mensilmente"/>
+ <combo_box.item name="US$7.50/month,billedquarterly" label="7.50 US$/mese, addebitati ogni quadrimestre"/>
+ <combo_box.item name="US$6.00/month,billedannually" label="6.00 US$/mese, addebitati annualmente"/>
+ </combo_box>
+ <text name="land_use_action">
+ Aumenta il tasso di pagamento mensile delle tasse d&apos;uso della terra a 40 US$/mese.
+ </text>
+ <text name="land_use_reason">
+ Possiedi 1309 m² di terra. Questa porzione è 512 m² di terra.
+ </text>
+ <text name="purchase_action">
+ Paga il residente Joe 4000 L$ per la terra
+ </text>
+ <text name="currency_reason">
+ Possiedi 2.100 L$.
+ </text>
+ <text name="currency_action" width="106">
+ Compra ulteriori L$
+ </text>
+ <line_editor name="currency_amt" left="174" width="80">
+ 1000
+ </line_editor>
+ <text name="currency_est">
+ per circa [AMOUNT2] US$
+ </text>
+ <text name="currency_balance">
+ Possiedi 2.100 L$.
+ </text>
+ <check_box label="Rimuovi [AMOUNT] metri quadri di contribuzione dal gruppo." name="remove_contribution"/>
+ <button label="Compra" name="buy_btn"/>
+ <button label="Annulla" name="cancel_btn"/>
+ <string name="can_resell">
+ Può essere rivenduta.
+ </string>
+ <string name="can_not_resell">
+ Può non essere rivenduta.
+ </string>
+ <string name="can_change">
+ Può essere unita o suddivisa.
+ </string>
+ <string name="can_not_change">
+ Non può essere unita o suddivisa.
+ </string>
+ <string name="cant_buy_for_group">
+ Non hai il permesso di comprare terra per il tuo gruppo attivo.
+ </string>
+ <string name="no_land_selected">
+ Nessuna terra selezionata.
+ </string>
+ <string name="multiple_parcels_selected">
+ Hai selezionato appezzamenti diversi.
+Prova a selezionare un&apos;area più piccola.
+ </string>
+ <string name="no_permission">
+ Non hai il permesso di comprare terra per il tuo gruppo attivo.
+ </string>
+ <string name="parcel_not_for_sale">
+ Il terreno selezionato non è in vendita.
+ </string>
+ <string name="group_already_owns">
+ Il gruppo possiede già il terreno.
+ </string>
+ <string name="you_already_own">
+ Possiedi già il terreno.
+ </string>
+ <string name="set_to_sell_to_other">
+ Il terreno selezionato è già impostato per la vendita ad un altro gruppo.
+ </string>
+ <string name="no_public_land">
+ L&apos;area selezionata non è pubblica.
+ </string>
+ <string name="not_owned_by_you">
+ Hai selezionato una terra posseduta da un altro utente.
+Prova a selezionare un&apos;area più piccola.
+ </string>
+ <string name="processing">
+ Stiamo elaborando il tuo acquisto...
+
+(Potrebbe volerci un minuto o due.)
+ </string>
+ <string name="fetching_error">
+ C&apos;e stato un errore mentre si stavano ottenendo le informazioni sull&apos;acquisto della terra.
+ </string>
+ <string name="buying_will">
+ Comprando questa terra:
+ </string>
+ <string name="buying_for_group">
+ Comprare la terra per il gruppo farà:
+ </string>
+ <string name="cannot_buy_now">
+ Non puoi comprare ora:
+ </string>
+ <string name="not_for_sale">
+ Non in vendita:
+ </string>
+ <string name="none_needed">
+ nessuno necessario
+ </string>
+ <string name="must_upgrade">
+ Il tuo tipo di account ha bisogno di un upgrade per possedere terra.
+ </string>
+ <string name="cant_own_land">
+ Il tuo account può possedere terra.
+ </string>
+ <string name="land_holdings">
+ Possiedi [BUYER] di metri quadri di terra.
+ </string>
+ <string name="pay_to_for_land">
+ Paga [AMOUNT] L$ a [SELLER] per questa terra
+ </string>
+ <string name="buy_for_US">
+ Comprare [AMOUNT] L$ per circa [AMOUNT2] US$,
+ </string>
+ <string name="parcel_meters">
+ Questo terreno è di [AMOUNT] metri quadri.
+ </string>
+ <string name="premium_land">
+ Questa terra è premium, e sarà  addebitata come [AMOUNT] metri quadri.
+ </string>
+ <string name="discounted_land">
+ Questa terra è scontata, e sarà  addebitata come [AMOUNT] metri quadri.
+ </string>
+ <string name="meters_supports_object">
+ [AMOUNT] metri quadri
+supporta [AMOUNT2] oggetti
+ </string>
+ <string name="sold_with_objects">
+ venduta con oggetti
+ </string>
+ <string name="sold_without_objects">
+ Oggetti non inclusi
+ </string>
+ <string name="info_price_string">
+ [PRICE] L$
+([PRICE_PER_SQM] L$/m²)
+[SOLD_WITH_OBJECTS]
+ </string>
+ <string name="insufficient_land_credits">
+ Il gruppo [GROUP] avrà bisogno di contribuzioni anticipate, mediante crediti d&apos;uso terriero,
+sufficienti a coprire l&apos;area del terreno prima che l&apos;acquisto
+sia completato.
+ </string>
+ <string name="have_enough_lindens">
+ Hai [AMOUNT] L$, che sono sufficienti per comprare questa terra.
+ </string>
+ <string name="not_enough_lindens">
+ Hai solo [AMOUNT] L$, ed hai bisogno di altri [AMOUNT2] L$.
+ </string>
+ <string name="balance_left">
+ Dopo l&apos;acquisto, ti rimarranno [AMOUNT] L$.
+ </string>
+ <string name="balance_needed">
+ Hai bisogno di acquistare almeno [AMOUNT] L$ per comprare questo terreno.
+ </string>
+ <string name="no_parcel_selected">
+ (nessun terreno selezionato)
+ </string>
+ <string name="buy_currency">
+ Compra [LINDENS] L$ per appross. [USD] US$
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_buy_object.xml b/indra/newview/skins/default/xui/it/floater_buy_object.xml
index c41581a529..90ff84a89c 100644
--- a/indra/newview/skins/default/xui/it/floater_buy_object.xml
+++ b/indra/newview/skins/default/xui/it/floater_buy_object.xml
@@ -1,26 +1,26 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="contents" title="Compra una copia dell&apos;oggetto">
- <text name="contents_text">
- e dei suoi contenuti:
- </text>
- <text name="buy_text">
- Compra per [AMOUNT]L$ da [NAME]?
- </text>
- <button label="Annulla" label_selected="Annulla" name="cancel_btn"/>
- <button label="Compra" label_selected="Compra" name="buy_btn"/>
- <string name="title_buy_text">
- Compra
- </string>
- <string name="title_buy_copy_text">
- Compra un copia di
- </string>
- <string name="no_copy_text">
- (non copiabile)
- </string>
- <string name="no_modify_text">
- (non modificabile)
- </string>
- <string name="no_transfer_text">
- (non trasferibile)
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="contents" title="Compra una copia dell&apos;oggetto">
+ <text name="contents_text">
+ e dei suoi contenuti:
+ </text>
+ <text name="buy_text">
+ Compra per [AMOUNT]L$ da [NAME]?
+ </text>
+ <button label="Annulla" label_selected="Annulla" name="cancel_btn"/>
+ <button label="Compra" label_selected="Compra" name="buy_btn"/>
+ <string name="title_buy_text">
+ Compra
+ </string>
+ <string name="title_buy_copy_text">
+ Compra un copia di
+ </string>
+ <string name="no_copy_text">
+ (non copiabile)
+ </string>
+ <string name="no_modify_text">
+ (non modificabile)
+ </string>
+ <string name="no_transfer_text">
+ (non trasferibile)
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_camera.xml b/indra/newview/skins/default/xui/it/floater_camera.xml
index fd2aa9bcf6..9655ed2211 100644
--- a/indra/newview/skins/default/xui/it/floater_camera.xml
+++ b/indra/newview/skins/default/xui/it/floater_camera.xml
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="move floater" title="">
- <string name="rotate_tooltip">
- Ruota la telecamera Intorno all&apos;Inquadratura
- </string>
- <string name="zoom_tooltip">
- Avvicina la telecamera nell&apos;inquadratura
- </string>
- <string name="move_tooltip">
- Muovi la telecamera su e giù e a sinistra e destra
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="move floater" title="">
+ <string name="rotate_tooltip">
+ Ruota la telecamera Intorno all&apos;Inquadratura
+ </string>
+ <string name="zoom_tooltip">
+ Avvicina la telecamera nell&apos;inquadratura
+ </string>
+ <string name="move_tooltip">
+ Muovi la telecamera su e giù e a sinistra e destra
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_choose_group.xml b/indra/newview/skins/default/xui/it/floater_choose_group.xml
index b6fbda411b..3b5fc79bd8 100644
--- a/indra/newview/skins/default/xui/it/floater_choose_group.xml
+++ b/indra/newview/skins/default/xui/it/floater_choose_group.xml
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="groups" title="Gruppi">
- <text name="groupdesc">
- Scegli un gruppo:
- </text>
- <button label="OK" label_selected="OK" name="OK"/>
- <button label="Annulla" label_selected="Annulla" name="Cancel"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="groups" title="Gruppi">
+ <text name="groupdesc">
+ Scegli un gruppo:
+ </text>
+ <button label="OK" label_selected="OK" name="OK"/>
+ <button label="Annulla" label_selected="Annulla" name="Cancel"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_color_picker.xml b/indra/newview/skins/default/xui/it/floater_color_picker.xml
index 14858182e9..93188c29ac 100644
--- a/indra/newview/skins/default/xui/it/floater_color_picker.xml
+++ b/indra/newview/skins/default/xui/it/floater_color_picker.xml
@@ -1,30 +1,38 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="ColorPicker" title="Tavolozza colori">
- <text name="r_val_text">
- Rosso:
- </text>
- <text name="g_val_text">
- Verde:
- </text>
- <text name="b_val_text">
- Blu:
- </text>
- <text name="h_val_text">
- Tonalità:
- </text>
- <text name="s_val_text">
- Saturazione:
- </text>
- <text name="l_val_text">
- Luminosità:
- </text>
- <check_box label="Applica Immediatamente" name="apply_immediate"/>
- <button label="Annulla" label_selected="Annulla" name="cancel_btn"/>
- <button label="Seleziona" label_selected="Seleziona" name="select_btn"/>
- <text name="Current color:">
- Colore attuale:
- </text>
- <text name="(Drag below to save.)">
- (Trascina qui sotto per salvare.)
- </text>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="ColorPicker" title="Tavolozza colori">
+ <text name="r_val_text">
+ Rosso:
+ </text>
+ <spinner left="84" name="rspin" width="47"/>
+ <text name="g_val_text">
+ Verde:
+ </text>
+ <spinner left="84" name="gspin" width="47"/>
+ <text name="b_val_text">
+ Blu:
+ </text>
+ <spinner left="84" name="bspin" width="47"/>
+ <text name="h_val_text">
+ Tonalità:
+ </text>
+ <spinner left="84" name="hspin" width="47"/>
+ <text name="s_val_text">
+ Saturazione:
+ </text>
+ <spinner left="84" name="sspin" width="47"/>
+ <text name="l_val_text">
+ Luminosità:
+ </text>
+ <spinner left="84" name="lspin" width="47"/>
+ <check_box label="Applica Immediatamente" name="apply_immediate"/>
+ <button left_delta="150" name="color_pipette" />
+ <button left_delta="55" label="Annulla" label_selected="Annulla" name="cancel_btn"/>
+ <button label="Seleziona" label_selected="Seleziona" name="select_btn"/>
+ <text name="Current color:">
+ Colore attuale:
+ </text>
+ <text name="(Drag below to save.)">
+ (Trascina qui sotto
+ per salvare.)
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_critical.xml b/indra/newview/skins/default/xui/it/floater_critical.xml
index 5ce9ff4de1..82850b0ada 100644
--- a/indra/newview/skins/default/xui/it/floater_critical.xml
+++ b/indra/newview/skins/default/xui/it/floater_critical.xml
@@ -1,11 +1,11 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="modal container" title="">
- <button label="Continua" label_selected="Continua" name="Continue"/>
- <button label="Annulla" label_selected="Annulla" name="Cancel"/>
- <text name="tos_heading">
- Per favore leggi attentamente il seguente messaggio.
- </text>
- <text_editor name="tos_text">
- TOS_TEXT
- </text_editor>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="modal container" title="">
+ <button label="Continua" label_selected="Continua" name="Continue"/>
+ <button label="Annulla" label_selected="Annulla" name="Cancel"/>
+ <text name="tos_heading">
+ Per favore leggi attentamente il seguente messaggio.
+ </text>
+ <text_editor name="tos_text">
+ TOS_TEXT
+ </text_editor>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_customize.xml b/indra/newview/skins/default/xui/it/floater_customize.xml
index 5af8373d0c..70fc27b3bb 100644
--- a/indra/newview/skins/default/xui/it/floater_customize.xml
+++ b/indra/newview/skins/default/xui/it/floater_customize.xml
@@ -1,427 +1,468 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater customize" title="Aspetto fisico">
- <tab_container name="customize tab container">
- <panel label="Parti del corpo" name="body_parts_placeholder"/>
- <panel label="Forma del corpo" name="Shape">
- <button label="Rimuovi le modifiche" label_selected="Rimuovi le modifiche" name="Revert"/>
- <button label="Corpo" label_selected="Corpo" name="Body"/>
- <button label="Testa" label_selected="Testa" name="Head"/>
- <button label="Occhi" label_selected="Occhi" name="Eyes"/>
- <button label="Orecchie" label_selected="Orecchie" name="Ears"/>
- <button label="Naso" label_selected="Naso" name="Nose"/>
- <button label="Bocca" label_selected="Bocca" name="Mouth"/>
- <button label="Mento" label_selected="Mento" name="Chin"/>
- <button label="Torso" label_selected="Torso" name="Torso"/>
- <button label="Gambe" label_selected="Gambe" name="Legs"/>
- <radio_group name="sex radio">
- <radio_item name="radio">
- Femmina
- </radio_item>
- <radio_item name="radio2">
- Maschio
- </radio_item>
- </radio_group>
- <button label="Casuale" label_selected="Casuale" name="Randomize"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: immodificabile
- </text>
- <text name="title_loading">
- [DESC]: in caricamento...
- </text>
- <text name="title_not_worn">
- [DESC]: non indossato
- </text>
- <text name="path">
- Ubicato in [PATH]
- </text>
- <text name="not worn instructions">
- Indossa una nuova Forma del Corpo trascinandone una dall&apos;inventario sul tuo avatar. In alternativa, puoi crearne una nuova ed indossarla.
- </text>
- <text name="no modify instructions">
- Non hai il permesso di modificare questo indumento.
- </text>
- <button label="Crea una nuova forma del corpo" label_selected="Crea una nuova forma del corpo" name="Create New"/>
- <button label="Togli" label_selected="Togli" name="Take Off"/>
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Salva come" label_selected="Salva come" name="Save As"/>
- </panel>
- <panel label="Pelle" name="Skin">
- <button label="Colore della pelle" label_selected="Colore della pelle" name="Skin Color"/>
- <button label="Dettagli della faccia" label_selected="Dettagli della faccia" name="Face Detail"/>
- <button label="Trucco" label_selected="Trucco" name="Makeup"/>
- <button label="Dettagli del corpo" label_selected="Dettagli del corpo" name="Body Detail"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: immodificabile
- </text>
- <text name="title_loading">
- [DESC]: in caricamento...
- </text>
- <text name="title_not_worn">
- [DESC]: non indossata
- </text>
- <text name="path">
- Ubicata in [PATH]
- </text>
- <text name="not worn instructions">
- Indossa una nuova pelle trascinandola dall&apos;inventario al tuo avatar. In alternativa, puoi crearne una nuova da zero ed indossarla.
- </text>
- <text name="no modify instructions">
- Non hai il permesso di modificare questo indumento.
- </text>
- <texture_picker label="Tatuaggi della testa" name="Head Tattoos" tool_tip="Clicca per scegliere un&apos;immagine"/>
- <texture_picker label="Tatuaggi superiori" name="Upper Tattoos" tool_tip="Clicca per scegliere un&apos;immagine"/>
- <texture_picker label="Tatuaggi inferiori" name="Lower Tattoos" tool_tip="Clicca per scegliere un&apos;immagine"/>
- <button label="Randomizza" label_selected="Randomizza" name="Randomize"/>
- <button label="Crea una nuova pelle" label_selected="Crea una nuova pelle" name="Create New"/>
- <button label="Togli" label_selected="Togli" name="Take Off"/>
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Salva come" label_selected="Salva come" name="Save As"/>
- <button label="Rimuovi l&apos;ultima modifica" label_selected="Rimuovi l&apos;ultima modifica" name="Revert"/>
- </panel>
- <panel label="Capelli" name="Hair">
- <button label="Capelli" label_selected="Colore" name="Color"/>
- <button label="Stile" label_selected="Stile" name="Style"/>
- <button label="Sopracciglia" label_selected="Sopracciglia" name="Eyebrows"/>
- <button label="Facciale" label_selected="Facciale" name="Facial"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: immodificabili
- </text>
- <text name="title_loading">
- [DESC]: in caricamento...
- </text>
- <text name="title_not_worn">
- [DESC]: non indossati
- </text>
- <text name="path">
- Ubicati in [PATH]
- </text>
- <text name="not worn instructions">
- Indossa dei nuovi capelli trascinandoli dall&apos;inventario al tuo avatar. In alternativa, puoi crearne di nuovi da zero ed indossarli.
- </text>
- <text name="no modify instructions">
- Non hai il permesso per modificare questo indumento.
- </text>
- <texture_picker label="Texture" name="Texture" tool_tip="Clicca per scegliere un&apos;immagine"/>
- <button label="Randomizza" label_selected="Randomizza" name="Randomize"/>
- <button label="Crea nuovi capelli" label_selected="Crea nuovi capelli" name="Create New"/>
- <button label="Togli" label_selected="Togli" name="Take Off"/>
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Salva come" label_selected="Salva come" name="Save As"/>
- <button label="Rimuovi l&apos;ultima modifica" label_selected="Rimuovi l&apos;ultima modifica" name="Revert"/>
- </panel>
- <panel label="Occhi" name="Eyes">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: immodificabili
- </text>
- <text name="title_loading">
- [DESC]: in caricamento...
- </text>
- <text name="title_not_worn">
- [DESC]: non indossati
- </text>
- <text name="path">
- Ubicati in [PATH]
- </text>
- <text name="not worn instructions">
- Indossa dei nuovi occhi trascinandoli dall&apos;inventario al tuo avatar. In alternativa, puoi crearne di nuovi da zero ed indossarli.
- </text>
- <text name="no modify instructions">
- Non hai il permesso di modificare questo indumento.
- </text>
- <texture_picker label="Iride" name="Iris" tool_tip="Clicca per scegliere un&apos;immagine"/>
- <button label="Randomizza" label_selected="Randomizza" name="Randomize"/>
- <button label="Crea nuovi occhi" label_selected="Crea nuovi occhi" name="Create New"/>
- <button label="Togli" label_selected="Togli" name="Take Off"/>
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Salva come" label_selected="Salva come" name="Save As"/>
- <button label="Rimuovi l&apos;ultima modifica" label_selected="Rimuovi l&apos;ultima modifica" name="Revert"/>
- </panel>
- <panel label="Vestiti" name="clothes_placeholder"/>
- <panel label="Camicia" name="Shirt">
- <texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere un&apos;immagine"/>
- <color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per scegliere un colore"/>
- <button label="Crea una nuova maglietta" label_selected="Crea una nuova maglietta" name="Create New"/>
- <button label="Togli" label_selected="Togli" name="Take Off"/>
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Salva come" label_selected="Salva come" name="Save As"/>
- <button label="Rimuovi l&apos;ultima modifica" label_selected="Rimuovi l&apos;ultima modifica" name="Revert"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: immodificabile
- </text>
- <text name="title_loading">
- [DESC]: in caricamento...
- </text>
- <text name="title_not_worn">
- [DESC]: non indossata
- </text>
- <text name="path">
- Ubicata in [PATH]
- </text>
- <text name="not worn instructions">
- Indossa una nuova maglietta trascinandola dall&apos;inventario al tuo avatar. In alternativa, puoi crearne una nuova da zero ed indossarla.
- </text>
- <text name="no modify instructions">
- Non hai il permesso di modificare questo indumento.
- </text>
- </panel>
- <panel label="Pantaloni" name="Pants">
- <texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere un&apos;immagine"/>
- <color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per scegliere un colore"/>
- <button label="Crea nuovi pantaloni" label_selected="Crea nuovi pantaloni" name="Create New"/>
- <button label="Togli" label_selected="Togli" name="Take Off"/>
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Salva come" label_selected="Salva come" name="Save As"/>
- <button label="Rimuovi l&apos;ultima modifica" label_selected="Rimuovi l&apos;ultima modifica" name="Revert"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: immodificabile
- </text>
- <text name="title_loading">
- [DESC]: in caricamento...
- </text>
- <text name="title_not_worn">
- [DESC]: non indossato
- </text>
- <text name="path">
- Ubicati in [PATH]
- </text>
- <text name="not worn instructions">
- Indossa dei nuovi pantaloni trascinandoli dall&apos;inventario al tuo avatar. In alternativa, puoi crearne uno paio nuovo da zero ed indossarlo.
- </text>
- <text name="no modify instructions">
- Non hai il permesso di modificare questo indumento.
- </text>
- </panel>
- <panel label="Scarpe" name="Shoes">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: immodificabili
- </text>
- <text name="title_loading">
- [DESC]: in caricamento...
- </text>
- <text name="title_not_worn">
- [DESC]: non indossate
- </text>
- <text name="path">
- Ubicate in [PATH]
- </text>
- <text name="not worn instructions">
- Indossa delle nuove scarpe trascinandole dall&apos;inventario al tuo avatar. In alternativa, puoi crearne uno paio nuovo da zero ed indossarlo.
- </text>
- <text name="no modify instructions">
- Non hai il permesso di modificare questo indumento.
- </text>
- <texture_picker label="&gt;Tessuto" name="Fabric" tool_tip="Clicca per scegliere un&apos;immagine"/>
- <color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per scegliere un colore"/>
- <button label="Crea nuove scarpe" label_selected="Crea nuove scarpe" name="Create New"/>
- <button label="Togli" label_selected="Togli" name="Take Off"/>
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Salva come" label_selected="Salva come" name="Save As"/>
- <button label="Rimuovi l&apos;ultima modifica" label_selected="Rimuovi l&apos;ultima modifica" name="Revert"/>
- </panel>
- <panel label="Calze" name="Socks">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: immodificabili
- </text>
- <text name="title_loading">
- [DESC]: in caricamento...
- </text>
- <text name="title_not_worn">
- [DESC]: non indossate
- </text>
- <text name="path">
- Ubicato in [PATH]
- </text>
- <text name="not worn instructions">
- Indossa delle nuove calze trascinandole dall&apos;inventario al tuo avatar. In alternativa, puoi crearne uno paio nuovo da zero ed indossarlo.
- </text>
- <text name="no modify instructions">
- Non hai il permesso di modificare questo indumento.
- </text>
- <texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere un&apos;immagine"/>
- <color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per scegliere un colore"/>
- <button label="Crea nuove calze" label_selected="Crea nuove calze" name="Create New"/>
- <button label="Togli" label_selected="Togli" name="Take Off"/>
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Salva come" label_selected="Salva come" name="Save As"/>
- <button label="Rimuovi l&apos;ultima modifica" label_selected="Rimuovi l&apos;ultima modifica" name="Revert"/>
- </panel>
- <panel label="Giacca" name="Jacket">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: immodificabile
- </text>
- <text name="title_loading">
- [DESC]: in caricamento...
- </text>
- <text name="title_not_worn">
- [DESC]: non indossata
- </text>
- <text name="path">
- Ubicata in [PATH]
- </text>
- <text name="not worn instructions">
- Indossa una nuova giacca trascinandola dall&apos;inventario al tuo avatar. In alternativa, puoi crearne una nuova da zero ed indossarla.
- </text>
- <text name="no modify instructions">
- Non hai il permesso di modificare questo indumento.
- </text>
- <texture_picker label="Tessuto, parte superiore" name="Upper Fabric" tool_tip="Clicca per scegliere un&apos;immagine"/>
- <texture_picker label="Tessuto, parte inferiore" name="Lower Fabric" tool_tip="Clicca per scegliere un&apos;immagine"/>
- <color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
- <button label="Crea una nuova giacca" label_selected="Crea una nuova giacca" name="Create New"/>
- <button label="Togli" label_selected="Togli" name="Take Off"/>
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Salva come" label_selected="Salva come" name="Save As"/>
- <button label="Rimuovi l&apos;ultima modifica" label_selected="Rimuovi l&apos;ultima modifica" name="Revert"/>
- </panel>
- <panel label="Guanti" name="Gloves">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: immodificabili
- </text>
- <text name="title_loading">
- [DESC]: in caricamento...
- </text>
- <text name="title_not_worn">
- [DESC]: non indossati
- </text>
- <text name="path">
- Ubicati in [PATH]
- </text>
- <text name="not worn instructions">
- Indossa dei nuovi guanti trascinandoli dall&apos;inventario al tuo avatar. In alternativa, puoi crearne un paio nuovo da zero ed indossarlo.
- </text>
- <text name="no modify instructions">
- Non hai il permesso di modificare questo indumento.
- </text>
- <texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere un&apos;immagine"/>
- <color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
- <button label="Crea nuovi guanti" label_selected="Crea nuovi guanti" name="Create New"/>
- <button label="Rimuovi l&apos;indumento" label_selected="Rimuovi l&apos;indumento" name="Take Off"/>
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Salva come" label_selected="Salva come" name="Save As"/>
- <button label="Rimuovi l&apos;ultima modifica" label_selected="Rimuovi l&apos;ultima modifica" name="Revert"/>
- </panel>
- <panel label="Canottiera" name="Undershirt">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: immodificabile
- </text>
- <text name="title_loading">
- [DESC]: in caricamento...
- </text>
- <text name="title_not_worn">
- [DESC]: non indossata
- </text>
- <text name="path">
- Ubicata in [PATH]
- </text>
- <text name="not worn instructions">
- Indossa una nuova canottiera trascinandola dall&apos;inventario al tuo avatar. In alternativa, puoi crearne una nuovo da zero ed indossarla.
- </text>
- <text name="no modify instructions">
- Non hai il permesso di modificare questo indumento.
- </text>
- <texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere un&apos;immagine"/>
- <color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
- <button label="Crea una nuova canottiera" label_selected="Crea una nuova canottiera" name="Create New"/>
- <button label="Rimuovi l&apos;indumento" label_selected="Rimuovi l&apos;indumento" name="Take Off"/>
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Salva come" label_selected="Salva come" name="Save As"/>
- <button label="Rimuovi l&apos;ultima modifica" label_selected="Rimuovi l&apos;ultima modifica" name="Revert"/>
- </panel>
- <panel label="Mutande" name="Underpants">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: immodificabili
- </text>
- <text name="title_loading">
- [DESC]: in caricamento...
- </text>
- <text name="title_not_worn">
- [DESC]: non indossate
- </text>
- <text name="path">
- Ubicato in [PATH]
- </text>
- <text name="not worn instructions">
- Indossa delle nuove mutande trascinandole dall&apos;inventario al tuo avatar. In alternativa, puoi crearne una paio nuovo da zero ed indossarlo.
- </text>
- <text name="no modify instructions">
- Non hai il permesso di modificare questo indumento.
- </text>
- <texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere un&apos;immagine"/>
- <color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
- <button label="Crea nuove mutande" label_selected="Crea nuove mutande" name="Create New"/>
- <button label="Rimuovi l&apos;indumento" label_selected="Rimuovi l&apos;indumento" name="Take Off"/>
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Salva come" label_selected="Salva come" name="Save As"/>
- <button label="Rimuovi l&apos;ultima modifica" label_selected="Rimuovi l&apos;ultima modifica" name="Revert"/>
- </panel>
- <panel label="Gonna" name="Skirt">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: immodificabile
- </text>
- <text name="title_loading">
- [DESC]: in caricamento...
- </text>
- <text name="title_not_worn">
- [DESC]: non indossata
- </text>
- <text name="path">
- Ubicata in [PATH]
- </text>
- <text name="not worn instructions">
- Indossa una nuova gonna trascinandola dall&apos;inventario al tuo avatar. In alternativa, puoi crearne una nuova da zero ed indossarla.
- </text>
- <text name="no modify instructions">
- Non hai il permesso di modificare questo indumento.
- </text>
- <texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere un&apos;immagine"/>
- <color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
- <button label="Crea una nuova gonna" label_selected="Crea una nuova gonna" name="Create New"/>
- <button label="Rimuovi l&apos;indumento" label_selected="Rimuovi l&apos;indumento" name="Take Off"/>
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Salva come" label_selected="Salva come" name="Save As"/>
- <button label="Rimuovi l&apos;ultima modifica" label_selected="Rimuovi l&apos;ultima modifica" name="Revert"/>
- </panel>
- </tab_container>
- <button label="Chiudi" label_selected="Chiudi" name="Close"/>
- <button label="Salva tutto" label_selected="Salva tutto" name="Save All"/>
- <button label="Crea outfit" label_selected="Crea outfit" name="Make Outfit"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater customize" title="Aspetto fisico" width="551">
+ <tab_container name="customize tab container" tab_min_width="120" width="549">
+ <panel label="Parti del corpo" name="body_parts_placeholder"/>
+ <panel label="Forma del corpo" name="Shape" left="124" width="389">
+ <button font="SansSerifSmall" width="120" left="267" label="Annulla le modifiche" label_selected="Annulla le modifiche" name="Revert"/>
+ <button label="Corpo" label_selected="Corpo" name="Body"/>
+ <button label="Testa" label_selected="Testa" name="Head"/>
+ <button label="Occhi" label_selected="Occhi" name="Eyes"/>
+ <button label="Orecchie" label_selected="Orecchie" name="Ears"/>
+ <button label="Naso" label_selected="Naso" name="Nose"/>
+ <button label="Bocca" label_selected="Bocca" name="Mouth"/>
+ <button label="Mento" label_selected="Mento" name="Chin"/>
+ <button label="Torso" label_selected="Torso" name="Torso"/>
+ <button label="Gambe" label_selected="Gambe" name="Legs"/>
+ <radio_group name="sex radio">
+ <radio_item name="radio" label="Femmina" />
+ <radio_item name="radio2" label="Maschio" />
+ </radio_group>
+ <text name="title">
+ [DESC]
+ </text>
+ <text name="title_no_modify">
+ [DESC]: immodificabile
+ </text>
+ <text name="title_loading">
+ [DESC]: in caricamento...
+ </text>
+ <text name="title_not_worn">
+ [DESC]: non indossato
+ </text>
+ <text name="path">
+ Ubicato in [PATH]
+ </text>
+ <text name="not worn instructions">
+ Indossa una nuova Forma del Corpo trascinandone una dall&apos;inventario
+sul tuo avatar. In alternativa, puoi crearne una nuova ed indossarla.
+ </text>
+ <text name="no modify instructions">
+ Non hai il permesso di modificare questo indumento.
+ </text>
+ <text name="Item Action Label" right="89">
+ Forma del corpo:
+ </text>
+ <button label="Crea una nuova forma del corpo" label_selected="Crea una nuova forma del corpo" name="Create New" width="190"/>
+ <button left="95" width="72" label="Salva" label_selected="Salva" name="Save"/>
+ <button left="171" label="Salva come..." label_selected="Salva come..." name="Save As"/>
+ </panel>
+ <panel label="Pelle" name="Skin">
+ <button label="Colore della pelle" label_selected="Colore della pelle" name="Skin Color" width="115"/>
+ <button label="Dettagli della faccia" label_selected="Dettagli della faccia" name="Face Detail" width="115"/>
+ <button label="Trucco" label_selected="Trucco" name="Makeup" width="115"/>
+ <button label="Dettagli del corpo" label_selected="Dettagli del corpo" name="Body Detail" width="115"/>
+ <text name="title">
+ [DESC]
+ </text>
+ <text name="title_no_modify">
+ [DESC]: immodificabile
+ </text>
+ <text name="title_loading">
+ [DESC]: in caricamento...
+ </text>
+ <text name="title_not_worn">
+ [DESC]: non indossata
+ </text>
+ <text name="path">
+ Ubicata in [PATH]
+ </text>
+ <text name="not worn instructions">
+ Indossa una nuova pelle trascinandola dall&apos;inventario al tuo avatar.
+In alternativa, puoi crearne una nuova da zero ed indossarla.
+ </text>
+ <text name="no modify instructions">
+ Non hai il permesso di modificare questo indumento.
+ </text>
+ <text name="Item Action Label" right="89">
+ Pelle:
+ </text>
+ <texture_picker width="96" label="Tatuaggi: testa" name="Head Tattoos" tool_tip="Clicca per scegliere un&apos;immagine"/>
+ <texture_picker width="96" label="Tatuaggi: superiori" name="Upper Tattoos" tool_tip="Clicca per scegliere un&apos;immagine"/>
+ <texture_picker width="96" label="Tatuaggi: inferiori" name="Lower Tattoos" tool_tip="Clicca per scegliere un&apos;immagine"/>
+ <button label="Crea una nuova pelle" label_selected="Crea una nuova pelle" name="Create New"/>
+ <button left="95" width="72" label="Salva" label_selected="Salva" name="Save"/>
+ <button left="171" label="Salva come..." label_selected="Salva come..." name="Save As"/>
+ <button font="SansSerifSmall" width="120" left="267" label="Annulla le modifiche" label_selected="Annulla le modifiche" name="Revert"/>
+ </panel>
+ <panel label="Capelli" name="Hair">
+ <button label="Capelli" label_selected="Colore" name="Color"/>
+ <button label="Stile" label_selected="Stile" name="Style"/>
+ <button label="Sopracciglia" label_selected="Sopracciglia" name="Eyebrows"/>
+ <button label="Facciale" label_selected="Facciale" name="Facial"/>
+ <text name="title">
+ [DESC]
+ </text>
+ <text name="title_no_modify">
+ [DESC]: immodificabili
+ </text>
+ <text name="title_loading">
+ [DESC]: in caricamento...
+ </text>
+ <text name="title_not_worn">
+ [DESC]: non indossati
+ </text>
+ <text name="path">
+ Ubicati in [PATH]
+ </text>
+ <text name="not worn instructions">
+ Indossa dei nuovi capelli trascinandoli dall&apos;inventario al tuo avatar.
+In alternativa, puoi crearne di nuovi da zero ed indossarli.
+ </text>
+ <text name="no modify instructions">
+ Non hai il permesso per modificare questo indumento.
+ </text>
+ <text name="Item Action Label" right="89">
+ Capelli:
+ </text>
+ <texture_picker label="Texture" name="Texture" tool_tip="Clicca per scegliere un&apos;immagine"/>
+ <button label="Crea nuovi capelli" label_selected="Crea nuovi capelli" name="Create New"/>
+ <button left="95" width="72" label="Salva" label_selected="Salva" name="Save"/>
+ <button left="171" label="Salva come..." label_selected="Salva come..." name="Save As"/>
+ <button font="SansSerifSmall" width="120" left="267" label="Annulla le modifiche" label_selected="Annulla le modifiche" name="Revert"/>
+ </panel>
+ <panel label="Occhi" name="Eyes">
+ <text name="title">
+ [DESC]
+ </text>
+ <text name="title_no_modify">
+ [DESC]: immodificabili
+ </text>
+ <text name="title_loading">
+ [DESC]: in caricamento...
+ </text>
+ <text name="title_not_worn">
+ [DESC]: non indossati
+ </text>
+ <text name="path">
+ Ubicati in [PATH]
+ </text>
+ <text name="not worn instructions">
+ Indossa dei nuovi occhi trascinandoli dall&apos;inventario al tuo avatar.
+In alternativa, puoi crearne di nuovi da zero ed indossarli.
+ </text>
+ <text name="no modify instructions">
+ Non hai il permesso di modificare questo indumento.
+ </text>
+ <text name="Item Action Label" right="89">
+ Occhi:
+ </text>
+ <texture_picker label="Iride" name="Iris" tool_tip="Clicca per scegliere un&apos;immagine"/>
+ <button label="Crea nuovi occhi" label_selected="Crea nuovi occhi" name="Create New"/>
+ <button left="95" width="72" label="Salva" label_selected="Salva" name="Save"/>
+ <button left="171" label="Salva come..." label_selected="Salva come..." name="Save As"/>
+ <button font="SansSerifSmall" width="120" left="267" label="Annulla le modifiche" label_selected="Annulla le modifiche" name="Revert"/>
+ </panel>
+ <panel label="Vestiti" name="clothes_placeholder"/>
+ <panel label="Camicia" name="Shirt">
+ <texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere un&apos;immagine"/>
+ <color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per scegliere un colore"/>
+ <button label="Crea una nuova camicia" label_selected="Crea una nuova camicia" name="Create New"/>
+ <button label="Togli" label_selected="Togli" name="Take Off"/>
+ <button left="95" width="72" label="Salva" label_selected="Salva" name="Save"/>
+ <button left="171" label="Salva come..." label_selected="Salva come..." name="Save As"/>
+ <button font="SansSerifSmall" width="120" left="267" label="Annulla le modifiche" label_selected="Annulla le modifiche" name="Revert"/>
+ <text name="title">
+ [DESC]
+ </text>
+ <text name="title_no_modify">
+ [DESC]: immodificabile
+ </text>
+ <text name="title_loading">
+ [DESC]: in caricamento...
+ </text>
+ <text name="title_not_worn">
+ [DESC]: non indossata
+ </text>
+ <text name="path">
+ Ubicata in [PATH]
+ </text>
+ <text name="not worn instructions">
+ Indossa una nuova maglietta trascinandola dall&apos;inventario al tuo avatar.
+In alternativa, puoi crearne una nuova da zero ed indossarla.
+ </text>
+ <text name="no modify instructions">
+ Non hai il permesso di modificare questo indumento.
+ </text>
+ <text name="Item Action Label" right="89">
+ Camicia:
+ </text>
+ </panel>
+ <panel label="Pantaloni" name="Pants">
+ <texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere un&apos;immagine"/>
+ <color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per scegliere un colore"/>
+ <button label="Crea nuovi pantaloni" label_selected="Crea nuovi pantaloni" name="Create New" />
+ <button label="Togli" label_selected="Togli" name="Take Off"/>
+ <button left="95" width="72" label="Salva" label_selected="Salva" name="Save"/>
+ <button left="171" label="Salva come..." label_selected="Salva come..." name="Save As"/>
+ <button font="SansSerifSmall" width="120" left="267" label="Annulla le modifiche" label_selected="Annulla le modifiche" name="Revert"/>
+ <text name="title">
+ [DESC]
+ </text>
+ <text name="title_no_modify">
+ [DESC]: immodificabile
+ </text>
+ <text name="title_loading">
+ [DESC]: in caricamento...
+ </text>
+ <text name="title_not_worn">
+ [DESC]: non indossato
+ </text>
+ <text name="path">
+ Ubicati in [PATH]
+ </text>
+ <text name="not worn instructions">
+ Indossa dei nuovi pantaloni trascinandoli dall&apos;inventario al tuo avatar.
+In alternativa, puoi crearne uno paio nuovo da zero ed indossarlo.
+ </text>
+ <text name="no modify instructions">
+ Non hai il permesso di modificare questo indumento.
+ </text>
+ <text name="Item Action Label" right="89">
+ Pantaloni:
+ </text>
+ </panel>
+ <panel label="Scarpe" name="Shoes">
+ <text name="title">
+ [DESC]
+ </text>
+ <text name="title_no_modify">
+ [DESC]: immodificabili
+ </text>
+ <text name="title_loading">
+ [DESC]: in caricamento...
+ </text>
+ <text name="title_not_worn">
+ [DESC]: non indossate
+ </text>
+ <text name="path">
+ Ubicate in [PATH]
+ </text>
+ <text name="not worn instructions">
+ Indossa delle nuove scarpe trascinandole dall&apos;inventario al tuo avatar.
+In alternativa, puoi crearne uno paio nuovo da zero ed indossarlo.
+ </text>
+ <text name="no modify instructions">
+ Non hai il permesso di modificare questo indumento.
+ </text>
+ <text name="Item Action Label" right="89">
+ Scarpe:
+ </text>
+ <texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere un&apos;immagine"/>
+ <color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per scegliere un colore"/>
+ <button label="Crea nuove scarpe" label_selected="Crea nuove scarpe" name="Create New"/>
+ <button label="Togli" label_selected="Togli" name="Take Off"/>
+ <button left="95" width="72" label="Salva" label_selected="Salva" name="Save"/>
+ <button left="171" label="Salva come..." label_selected="Salva come..." name="Save As"/>
+ <button font="SansSerifSmall" width="120" left="267" label="Annulla le modifiche" label_selected="Annulla le modifiche" name="Revert"/>
+ </panel>
+ <panel label="Calze" name="Socks">
+ <text name="title">
+ [DESC]
+ </text>
+ <text name="title_no_modify">
+ [DESC]: immodificabili
+ </text>
+ <text name="title_loading">
+ [DESC]: in caricamento...
+ </text>
+ <text name="title_not_worn">
+ [DESC]: non indossate
+ </text>
+ <text name="path">
+ Ubicato in [PATH]
+ </text>
+ <text name="not worn instructions">
+ Indossa delle nuove calze trascinandole dall&apos;inventario al tuo avatar.
+In alternativa, puoi crearne uno paio nuovo da zero ed indossarlo.
+ </text>
+ <text name="no modify instructions">
+ Non hai il permesso di modificare questo indumento.
+ </text>
+ <text name="Item Action Label" right="89">
+ Calze:
+ </text>
+ <texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere un&apos;immagine"/>
+ <color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per scegliere un colore"/>
+ <button label="Crea nuove calze" label_selected="Crea nuove calze" name="Create New" />
+ <button label="Togli" label_selected="Togli" name="Take Off"/>
+ <button left="95" width="72" label="Salva" label_selected="Salva" name="Save"/>
+ <button left="171" label="Salva come..." label_selected="Salva come..." name="Save As"/>
+ <button font="SansSerifSmall" width="120" left="267" label="Annulla le modifiche" label_selected="Annulla le modifiche" name="Revert"/>
+ </panel>
+ <panel label="Giacca" name="Jacket">
+ <text name="title">
+ [DESC]
+ </text>
+ <text name="title_no_modify">
+ [DESC]: immodificabile
+ </text>
+ <text name="title_loading">
+ [DESC]: in caricamento...
+ </text>
+ <text name="title_not_worn">
+ [DESC]: non indossata
+ </text>
+ <text name="path">
+ Ubicata in [PATH]
+ </text>
+ <text name="not worn instructions">
+ Indossa una nuova giacca trascinandola dall&apos;inventario al tuo avatar.
+In alternativa, puoi crearne una nuova da zero ed indossarla.
+ </text>
+ <text name="no modify instructions">
+ Non hai il permesso di modificare questo indumento.
+ </text>
+ <text name="Item Action Label" right="89">
+ Giacca:
+ </text>
+ <texture_picker width="96" label="Tessuto: superiore" name="Upper Fabric" tool_tip="Clicca per scegliere un&apos;immagine"/>
+ <texture_picker width="96" label="Tessuto: inferiore" name="Lower Fabric" tool_tip="Clicca per scegliere un&apos;immagine"/>
+ <color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
+ <button label="Crea una nuova giacca" label_selected="Crea una nuova giacca" name="Create New"/>
+ <button label="Togli" label_selected="Togli" name="Take Off"/>
+ <button left="95" width="72" label="Salva" label_selected="Salva" name="Save"/>
+ <button left="171" label="Salva come..." label_selected="Salva come..." name="Save As"/>
+ <button font="SansSerifSmall" width="120" left="267" label="Annulla le modifiche" label_selected="Annulla le modifiche" name="Revert"/>
+ </panel>
+ <panel label="Guanti" name="Gloves">
+ <text name="title">
+ [DESC]
+ </text>
+ <text name="title_no_modify">
+ [DESC]: immodificabili
+ </text>
+ <text name="title_loading">
+ [DESC]: in caricamento...
+ </text>
+ <text name="title_not_worn">
+ [DESC]: non indossati
+ </text>
+ <text name="path">
+ Ubicati in [PATH]
+ </text>
+ <text name="not worn instructions">
+ Indossa dei nuovi guanti trascinandoli dall&apos;inventario al tuo avatar.
+In alternativa, puoi crearne un paio nuovo da zero ed indossarlo.
+ </text>
+ <text name="no modify instructions">
+ Non hai il permesso di modificare questo indumento.
+ </text>
+ <text name="Item Action Label" right="89">
+ Guanti:
+ </text>
+ <texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere un&apos;immagine"/>
+ <color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
+ <button label="Crea nuovi guanti" label_selected="Crea nuovi guanti" name="Create New"/>
+ <button width="115" font="SansSerifSmall" label="Rimuovi l&apos;indumento" label_selected="Rimuovi l&apos;indumento" name="Take Off"/>
+ <button left="95" width="72" label="Salva" label_selected="Salva" name="Save"/>
+ <button left="171" label="Salva come..." label_selected="Salva come..." name="Save As"/>
+ <button font="SansSerifSmall" width="120" left="267" label="Annulla le modifiche" label_selected="Annulla le modifiche" name="Revert"/>
+ </panel>
+ <panel label="Canottiera" name="Undershirt">
+ <text name="title">
+ [DESC]
+ </text>
+ <text name="title_no_modify">
+ [DESC]: immodificabile
+ </text>
+ <text name="title_loading">
+ [DESC]: in caricamento...
+ </text>
+ <text name="title_not_worn">
+ [DESC]: non indossata
+ </text>
+ <text name="path">
+ Ubicata in [PATH]
+ </text>
+ <text name="not worn instructions">
+ Indossa una nuova canottiera trascinandola dall&apos;inventario al tuo avatar.
+In alternativa, puoi crearne una nuovo da zero ed indossarla.
+ </text>
+ <text name="no modify instructions">
+ Non hai il permesso di modificare questo indumento.
+ </text>
+ <text name="Item Action Label" right="89">
+ Canottiera:
+ </text>
+ <texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere un&apos;immagine"/>
+ <color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
+ <button label="Crea una nuova canottiera" label_selected="Crea una nuova canottiera" name="Create New"/>
+ <button width="115" font="SansSerifSmall" label="Rimuovi l&apos;indumento" label_selected="Rimuovi l&apos;indumento" name="Take Off"/>
+ <button left="95" width="72" label="Salva" label_selected="Salva" name="Save"/>
+ <button left="171" label="Salva come..." label_selected="Salva come..." name="Save As"/>
+ <button font="SansSerifSmall" width="120" left="267" label="Annulla le modifiche" label_selected="Annulla le modifiche" name="Revert"/>
+ </panel>
+ <panel label="Mutande" name="Underpants">
+ <text name="title">
+ [DESC]
+ </text>
+ <text name="title_no_modify">
+ [DESC]: immodificabili
+ </text>
+ <text name="title_loading">
+ [DESC]: in caricamento...
+ </text>
+ <text name="title_not_worn">
+ [DESC]: non indossate
+ </text>
+ <text name="path">
+ Ubicato in [PATH]
+ </text>
+ <text name="not worn instructions">
+ Indossa delle nuove mutande trascinandole dall&apos;inventario al tuo avatar.
+In alternativa, puoi crearne una paio nuovo da zero ed indossarlo.
+ </text>
+ <text name="no modify instructions">
+ Non hai il permesso di modificare questo indumento.
+ </text>
+ <text name="Item Action Label" right="89">
+ Mutande:
+ </text>
+ <texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere un&apos;immagine"/>
+ <color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
+ <button label="Crea nuove mutande" label_selected="Crea nuove mutande" name="Create New"/>
+ <button width="115" font="SansSerifSmall" label="Rimuovi l&apos;indumento" label_selected="Rimuovi l&apos;indumento" name="Take Off"/>
+ <button left="95" width="72" label="Salva" label_selected="Salva" name="Save"/>
+ <button left="171" label="Salva come..." label_selected="Salva come..." name="Save As"/>
+ <button font="SansSerifSmall" width="120" left="267" label="Annulla le modifiche" label_selected="Annulla le modifiche" name="Revert"/>
+ </panel>
+ <panel label="Gonna" name="Skirt">
+ <text name="title">
+ [DESC]
+ </text>
+ <text name="title_no_modify">
+ [DESC]: immodificabile
+ </text>
+ <text name="title_loading">
+ [DESC]: in caricamento...
+ </text>
+ <text name="title_not_worn">
+ [DESC]: non indossata
+ </text>
+ <text name="path">
+ Ubicata in [PATH]
+ </text>
+ <text name="not worn instructions">
+ Indossa una nuova gonna trascinandola dall&apos;inventario al tuo avatar.
+In alternativa, puoi crearne una nuova da zero ed indossarla.
+ </text>
+ <text name="no modify instructions">
+ Non hai il permesso di modificare questo indumento.
+ </text>
+ <text name="Item Action Label" right="89">
+ Gonna:
+ </text>
+ <texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere un&apos;immagine"/>
+ <color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per scegliere il colore"/>
+ <button label="Crea una nuova gonna" label_selected="Crea una nuova gonna" name="Create New"/>
+ <button width="115" font="SansSerifSmall" label="Rimuovi l&apos;indumento" label_selected="Rimuovi l&apos;indumento" name="Take Off"/>
+ <button left="95" width="72" label="Salva" label_selected="Salva" name="Save"/>
+ <button left="171" label="Salva come..." label_selected="Salva come..." name="Save As"/>
+ <button font="SansSerifSmall" width="120" left="267" label="Annulla le modifiche" label_selected="Annulla le modifiche" name="Revert"/>
+ </panel>
+ </tab_container>
+ <scroll_container left="254" name="panel_container"/>
+ <button label="Annulla" label_selected="Annulla" name="Cancel"/>
+ <button label="OK" label_selected="OK" name="Ok"/>
+ <button label="Crea Outfit..." label_selected="Crea Outfit..." name="Make Outfit" left="122" />
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/it/floater_day_cycle_options.xml
index 9b10e8f6a5..cac43c9b8a 100644
--- a/indra/newview/skins/default/xui/it/floater_day_cycle_options.xml
+++ b/indra/newview/skins/default/xui/it/floater_day_cycle_options.xml
@@ -1,94 +1,94 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Day Cycle Floater" title="Editor delle ciclo giorno/notte">
- <tab_container name="Day Cycle Tabs">
- <panel label="Ciclo giorno/notte" name="Day Cycle">
- <button label="?" name="WLDayCycleHelp"/>
- <text name="WL12am">
- 12
- </text>
- <text name="WL3am">
- 3
- </text>
- <text name="WL6am">
- 6
- </text>
- <text name="WL9amHash">
- 9
- </text>
- <text name="WL12pmHash">
- 24
- </text>
- <text name="WL3pm">
- 15
- </text>
- <text name="WL6pm">
- 18
- </text>
- <text name="WL9pm">
- 21
- </text>
- <text name="WL12am2">
- 12
- </text>
- <text name="WL12amHash">
- |
- </text>
- <text name="WL3amHash">
- I
- </text>
- <text name="WL6amHash">
- |
- </text>
- <text name="WL9amHash2">
- I
- </text>
- <text name="WL12pmHash2">
- |
- </text>
- <text name="WL3pmHash">
- I
- </text>
- <text name="WL6pmHash">
- |
- </text>
- <text name="WL9pmHash">
- I
- </text>
- <text name="WL12amHash2">
- |
- </text>
- <button label="Aggiungi voce" label_selected="Aggiungi voce" name="WLAddKey"/>
- <button label="Cancella voce" label_selected="Cancella voce" name="WLDeleteKey"/>
- <text name="WLCurKeyFrameText">
- Impostazioni del fotogramma chiave:
- </text>
- <text name="WLCurKeyTimeText">
- Tempo:
- </text>
- <spinner label="Ora" name="WLCurKeyHour"/>
- <spinner label="Min" name="WLCurKeyMin"/>
- <text name="WLCurKeyTimeText2">
- Impostazione chiave:
- </text>
- <combo_box label="Programma:" name="WLKeyPresets"/>
- <text name="DayCycleText">
- Raggruppa:
- </text>
- <combo_box label="5 min" name="WLSnapOptions"/>
- <text name="DayCycleText2">
- Lunghezza del ciclo:
- </text>
- <spinner label="Ore" name="WLLengthOfDayHour"/>
- <spinner label="Min" name="WLLengthOfDayMin"/>
- <spinner label="Sec" name="WLLengthOfDaySec"/>
- <text name="DayCycleText3">
- Anteprima:
- </text>
- <button label="Avvia" label_selected="Avvia" name="WLAnimSky"/>
- <button label="Arresta!" label_selected="Arresta" name="WLStopAnimSky"/>
- <button label="Usa l&apos;ora della proprietà" label_selected="Vai all&apos;ora della proprietà" name="WLUseLindenTime"/>
- <button label="Salva il test del giorno" label_selected="Salva il test del giorno" name="WLSaveDayCycle"/>
- <button label="Carica il test del giorno" label_selected="Carica il test del giorno" name="WLLoadDayCycle"/>
- </panel>
- </tab_container>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Day Cycle Floater" title="Editor delle ciclo giorno/notte">
+ <tab_container name="Day Cycle Tabs">
+ <panel label="Ciclo giorno/notte" name="Day Cycle">
+ <button label="?" name="WLDayCycleHelp"/>
+ <text name="WL12am">
+ 12
+ </text>
+ <text name="WL3am">
+ 3
+ </text>
+ <text name="WL6am">
+ 6
+ </text>
+ <text name="WL9amHash">
+ 9
+ </text>
+ <text name="WL12pmHash">
+ 24
+ </text>
+ <text name="WL3pm">
+ 15
+ </text>
+ <text name="WL6pm">
+ 18
+ </text>
+ <text name="WL9pm">
+ 21
+ </text>
+ <text name="WL12am2">
+ 12
+ </text>
+ <text name="WL12amHash">
+ |
+ </text>
+ <text name="WL3amHash">
+ I
+ </text>
+ <text name="WL6amHash">
+ |
+ </text>
+ <text name="WL9amHash2">
+ I
+ </text>
+ <text name="WL12pmHash2">
+ |
+ </text>
+ <text name="WL3pmHash">
+ I
+ </text>
+ <text name="WL6pmHash">
+ |
+ </text>
+ <text name="WL9pmHash">
+ I
+ </text>
+ <text name="WL12amHash2">
+ |
+ </text>
+ <button label="Aggiungi voce" label_selected="Aggiungi voce" name="WLAddKey"/>
+ <button label="Cancella voce" label_selected="Cancella voce" name="WLDeleteKey"/>
+ <text name="WLCurKeyFrameText">
+ Impostazioni del fotogramma chiave:
+ </text>
+ <text name="WLCurKeyTimeText">
+ Tempo:
+ </text>
+ <spinner label="Ora" name="WLCurKeyHour"/>
+ <spinner label="Min" name="WLCurKeyMin"/>
+ <text name="WLCurKeyTimeText2">
+ Impostazione chiave:
+ </text>
+ <combo_box label="Programma:" name="WLKeyPresets"/>
+ <text name="DayCycleText">
+ Raggruppa:
+ </text>
+ <combo_box label="5 min" name="WLSnapOptions"/>
+ <text name="DayCycleText2">
+ Lunghezza del ciclo:
+ </text>
+ <spinner label="Ore" name="WLLengthOfDayHour"/>
+ <spinner label="Min" name="WLLengthOfDayMin"/>
+ <spinner label="Sec" name="WLLengthOfDaySec"/>
+ <text name="DayCycleText3">
+ Anteprima:
+ </text>
+ <button label="Avvia" label_selected="Avvia" name="WLAnimSky"/>
+ <button label="Arresta!" label_selected="Arresta" name="WLStopAnimSky"/>
+ <button label="Usa l&apos;ora della proprietà" label_selected="Vai all&apos;ora della proprietà" name="WLUseLindenTime"/>
+ <button label="Salva il test del giorno" label_selected="Salva il test del giorno" name="WLSaveDayCycle"/>
+ <button label="Carica il test del giorno" label_selected="Carica il test del giorno" name="WLLoadDayCycle"/>
+ </panel>
+ </tab_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_device_settings.xml b/indra/newview/skins/default/xui/it/floater_device_settings.xml
index e1109c38b3..cbf965bf93 100644
--- a/indra/newview/skins/default/xui/it/floater_device_settings.xml
+++ b/indra/newview/skins/default/xui/it/floater_device_settings.xml
@@ -1,2 +1,2 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_device_settings" title="Impostazioni dispositivi Voice Chat"/>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_device_settings" title="Impostazioni dispositivi Voice Chat"/>
diff --git a/indra/newview/skins/default/xui/it/floater_env_settings.xml b/indra/newview/skins/default/xui/it/floater_env_settings.xml
index df5a835f51..58fbff5dc9 100644
--- a/indra/newview/skins/default/xui/it/floater_env_settings.xml
+++ b/indra/newview/skins/default/xui/it/floater_env_settings.xml
@@ -1,23 +1,23 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Environment Editor Floater" title="Editor dell&apos;ambiente">
- <text name="EnvTimeText">
- Ora del giorno
- </text>
- <text name="EnvTimeText2">
- 12:00 PM
- </text>
- <text name="EnvCloudText">
- Intensità delle Nuvole
- </text>
- <text name="EnvWaterColorText">
- Colore dell&apos;Acqua
- </text>
- <color_swatch label="" name="EnvWaterColor" tool_tip="Clicca per aprire la tavolozza dei colori"/>
- <text name="EnvWaterFogText">
- Nebbiosità dell&apos;acqua
- </text>
- <button label="Usa orario della regione" name="EnvUseEstateTimeButton"/>
- <button label="Cielo avanzato" name="EnvAdvancedSkyButton"/>
- <button label="Acqua avanzata" name="EnvAdvancedWaterButton"/>
- <button label="?" name="EnvSettingsHelpButton"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Environment Editor Floater" title="Editor dell&apos;ambiente">
+ <text name="EnvTimeText">
+ Ora del giorno
+ </text>
+ <text name="EnvTimeText2">
+ 12:00 PM
+ </text>
+ <text name="EnvCloudText">
+ Intensità delle Nuvole
+ </text>
+ <text name="EnvWaterColorText">
+ Colore dell&apos;Acqua
+ </text>
+ <color_swatch label="" name="EnvWaterColor" tool_tip="Clicca per aprire la tavolozza dei colori"/>
+ <text name="EnvWaterFogText">
+ Nebbiosità dell&apos;acqua
+ </text>
+ <button label="Usa orario della regione" name="EnvUseEstateTimeButton"/>
+ <button label="Cielo avanzato" name="EnvAdvancedSkyButton"/>
+ <button label="Acqua avanzata" name="EnvAdvancedWaterButton"/>
+ <button label="?" name="EnvSettingsHelpButton"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_font_test.xml b/indra/newview/skins/default/xui/it/floater_font_test.xml
new file mode 100644
index 0000000000..27b87a931d
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/floater_font_test.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="contents" title="Tipo di carattere per test">
+ <text name="linea">
+ OverrideTest, dovrebbe apparire qui come Times. (Dal default/xui/en-us)
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_gesture.xml b/indra/newview/skins/default/xui/it/floater_gesture.xml
index 258bbcb990..27008e97a1 100644
--- a/indra/newview/skins/default/xui/it/floater_gesture.xml
+++ b/indra/newview/skins/default/xui/it/floater_gesture.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="gestures" title="Gesture attive">
- <text name="help_label">
- Fai doppio click su una gesture per azionare animazioni e suoni.
- </text>
- <scroll_list name="gesture_list">
- <column label="Frase scatenante" name="trigger"/>
- <column label="Pulsante" name="shortcut"/>
- <column label="Nome" name="name"/>
- </scroll_list>
- <button label="Nuova" name="new_gesture_btn"/>
- <button label="Modifica" name="edit_btn"/>
- <button label="Play" name="play_btn"/>
- <button label="Stop" name="stop_btn"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="gestures" title="Gesture attive">
+ <text name="help_label">
+ Fai doppio click su una gesture per azionare animazioni e suoni.
+ </text>
+ <scroll_list name="gesture_list">
+ <column label="Frase scatenante" name="trigger"/>
+ <column label="Pulsante" name="shortcut"/>
+ <column label="Nome" name="name"/>
+ </scroll_list>
+ <button label="Nuova" name="new_gesture_btn"/>
+ <button label="Modifica" name="edit_btn"/>
+ <button label="Play" name="play_btn"/>
+ <button label="Stop" name="stop_btn"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_hardware_settings.xml b/indra/newview/skins/default/xui/it/floater_hardware_settings.xml
index 699a6e80ef..688f9137a2 100644
--- a/indra/newview/skins/default/xui/it/floater_hardware_settings.xml
+++ b/indra/newview/skins/default/xui/it/floater_hardware_settings.xml
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Hardware Settings Floater" title="Impostazioni Hardware">
- <text name="Filtering:">
- Filtraggio:
- </text>
- <check_box label="Filtraggio Anisotropico (rallenta se attivato)" name="ani"/>
- <text name="Antialiasing:">
- Antialiasing:
- </text>
- <combo_box label="Antialiasing" name="fsaa">
- <combo_box.item name="FSAADisabled" label="Disattivato"/>
- <combo_box.item name="2x" label="2x"/>
- <combo_box.item name="4x" label="4x"/>
- <combo_box.item name="8x" label="8x"/>
- <combo_box.item name="16x" label="16x"/>
- </combo_box>
- <spinner label="Gamma:" name="gamma"/>
- <text name="(brightness, lower is brighter)">
- (luminosità, più basso = più luminoso, 0=default)
- </text>
- <text name="Enable VBO:">
- Attiva VBO:
- </text>
- <check_box label="Attiva oggetti OpenGL Vertex Buffer" name="vbo" tool_tip="Attivandolo su un hardware moderno aumenta la performance. Ma, su un vecchio hardware, spesso l&apos;implementazione dei VBO è scarsa e potresti avere dei crash quando è attivato."/>
- <slider label="Memoria Texture (MB):" name="GrapicsCardTextureMemory" tool_tip="Quantità di memoria allocata per le texture. Impostata di default sulla memoria della scheda grafica. Ridurla può aumentare la performance, ma può anche rendere le texture sfocate."/>
- <spinner label="Indice della distanza della nebbia:" name="fog"/>
- <button label="OK" label_selected="OK" name="OK"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Hardware Settings Floater" title="Impostazioni Hardware">
+ <text name="Filtering:">
+ Filtraggio:
+ </text>
+ <check_box label="Filtraggio Anisotropico (rallenta se attivato)" name="ani"/>
+ <text name="Antialiasing:">
+ Antialiasing:
+ </text>
+ <combo_box label="Antialiasing" name="fsaa" width="94">
+ <combo_box.item name="FSAADisabled" label="Disattivato"/>
+ <combo_box.item name="2x" label="2x"/>
+ <combo_box.item name="4x" label="4x"/>
+ <combo_box.item name="8x" label="8x"/>
+ <combo_box.item name="16x" label="16x"/>
+ </combo_box>
+ <spinner label="Gamma:" name="gamma"/>
+ <text name="(brightness, lower is brighter)">
+ (Luminosità, più basso = più luminoso, 0=default)
+ </text>
+ <text name="Enable VBO:">
+ Attiva VBO:
+ </text>
+ <check_box label="Attiva oggetti OpenGL Vertex Buffer" name="vbo" tool_tip="Attivandolo su un hardware moderno aumenta la performance. Ma, su un vecchio hardware, spesso l&apos;implementazione dei VBO è scarsa e potresti avere dei crash quando è attivato."/>
+ <slider label="Memoria Texture (MB):" name="GrapicsCardTextureMemory" tool_tip="Quantità di memoria allocata per le texture. Impostata di default sulla memoria della scheda grafica. Ridurla può aumentare la performance, ma può anche rendere le texture sfocate."/>
+ <spinner label="Indice della distanza &#10;della nebbia:" name="fog"/>
+ <button label="OK" label_selected="OK" name="OK"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_hud.xml b/indra/newview/skins/default/xui/it/floater_hud.xml
index c75867956b..d31bcedf05 100644
--- a/indra/newview/skins/default/xui/it/floater_hud.xml
+++ b/indra/newview/skins/default/xui/it/floater_hud.xml
@@ -1,2 +1,2 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_hud" title="Tutorial"/>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_hud" title="Tutorial"/>
diff --git a/indra/newview/skins/default/xui/it/floater_im.xml b/indra/newview/skins/default/xui/it/floater_im.xml
index b617128b29..2a9862fe7c 100644
--- a/indra/newview/skins/default/xui/it/floater_im.xml
+++ b/indra/newview/skins/default/xui/it/floater_im.xml
@@ -1,45 +1,45 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<multi_floater name="im_floater" title="">
- <string name="only_user_message">
- Sei l&apos;unico utente di questa sessione.
- </string>
- <string name="offline_message">
- [FIRST] [LAST] è offline.
- </string>
- <string name="invite_message">
- Clicca il tasto [BUTTON NAME] per accettare/connetterti a questa voice chat.
- </string>
- <string name="muted_message">
- Hai mutato questo residente. L&apos;invio di un messaggio lo riabiliterà automaticamente.
- </string>
- <string name="generic_request_error">
- Errore durante la richiesta, riprova più tardi.
- </string>
- <string name="insufficient_perms_error">
- Non hai sufficienti permessi.
- </string>
- <string name="session_does_not_exist_error">
- Questa sessione non esiste più
- </string>
- <string name="no_ability_error">
- Non hai questa abilitazione.
- </string>
- <string name="not_a_mod_error">
- Non sei un moderatore.
- </string>
- <string name="muted_error">
- Un moderatore di gruppo ti ha disabilitato dalla chat di testo.
- </string>
- <string name="add_session_event">
- Impossibile aggiungere utenti alla chat con [RECIPIENT].
- </string>
- <string name="message_session_event">
- Impossibile inviare il messaggio nella chat con [RECIPIENT].
- </string>
- <string name="removed_from_group">
- Sei stato espulso dal gruppo.
- </string>
- <string name="close_on_no_ability">
- Non hai più le abilitazioni per rimanere nella sessione chat.
- </string>
-</multi_floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<multi_floater name="im_floater" title="">
+ <string name="only_user_message">
+ Sei l&apos;unico utente di questa sessione.
+ </string>
+ <string name="offline_message">
+ [FIRST] [LAST] è offline.
+ </string>
+ <string name="invite_message">
+ Clicca il tasto [BUTTON NAME] per accettare/connetterti a questa voice chat.
+ </string>
+ <string name="muted_message">
+ Hai mutato questo residente. L&apos;invio di un messaggio lo riabiliterà automaticamente.
+ </string>
+ <string name="generic_request_error">
+ Errore durante la richiesta, riprova più tardi.
+ </string>
+ <string name="insufficient_perms_error">
+ Non hai sufficienti permessi.
+ </string>
+ <string name="session_does_not_exist_error">
+ Questa sessione non esiste più
+ </string>
+ <string name="no_ability_error">
+ Non hai questa abilitazione.
+ </string>
+ <string name="not_a_mod_error">
+ Non sei un moderatore.
+ </string>
+ <string name="muted_error">
+ Un moderatore di gruppo ti ha disabilitato dalla chat di testo.
+ </string>
+ <string name="add_session_event">
+ Impossibile aggiungere utenti alla chat con [RECIPIENT].
+ </string>
+ <string name="message_session_event">
+ Impossibile inviare il messaggio nella chat con [RECIPIENT].
+ </string>
+ <string name="removed_from_group">
+ Sei stato espulso dal gruppo.
+ </string>
+ <string name="close_on_no_ability">
+ Non hai più le abilitazioni per rimanere nella sessione chat.
+ </string>
+</multi_floater>
diff --git a/indra/newview/skins/default/xui/it/floater_image_preview.xml b/indra/newview/skins/default/xui/it/floater_image_preview.xml
index a4bacba91f..8ee3181bce 100644
--- a/indra/newview/skins/default/xui/it/floater_image_preview.xml
+++ b/indra/newview/skins/default/xui/it/floater_image_preview.xml
@@ -1,32 +1,33 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Image Preview" title="">
- <text name="name_label">
- Nome:
- </text>
- <text name="description_label">
- Descrizione:
- </text>
- <text name="preview_label">
- Anteprima dell&apos;immagine come:
- </text>
- <combo_box label="Tipo d&apos;abito" name="clothing_type_combo">
- <combo_box.item name="Image" label="Immagine"/>
- <combo_box.item name="Hair" label="Capelli"/>
- <combo_box.item name="FemaleHead" label="Testa femminile"/>
- <combo_box.item name="FemaleUpperBody" label="Corpo femminile superiore"/>
- <combo_box.item name="FemaleLowerBody" label="Corpo femminile inferiore"/>
- <combo_box.item name="MaleHead" label="Testa maschile"/>
- <combo_box.item name="MaleUpperBody" label="Corpo maschile superiore"/>
- <combo_box.item name="MaleLowerBody" label="Corpo maschile inferiore"/>
- <combo_box.item name="Skirt" label="Gonna"/>
- <combo_box.item name="SculptedPrim" label="Oggetto sculpt"/>
- </combo_box>
- <text name="bad_image_text">
- Non è stato possibile leggere l&apos;immagine.
-
-Prova a salvare in formato targa (.tga) a 24 bit.
- </text>
- <check_box label="Usa compressione ottimizzata" name="lossless_check"/>
- <button label="Annulla" name="cancel_btn"/>
- <button label="Carica ([AMOUNT] L$)" name="ok_btn"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Image Preview" title="">
+ <text name="name_label">
+ Nome:
+ </text>
+ <text name="description_label">
+ Descrizione:
+ </text>
+ <text name="preview_label">
+ Anteprima dell&apos;
+immagine come:
+ </text>
+ <combo_box label="Tipo d&apos;abito" name="clothing_type_combo" left="120" width="166">
+ <combo_box.item name="Image" label="Immagine"/>
+ <combo_box.item name="Hair" label="Capelli"/>
+ <combo_box.item name="FemaleHead" label="Testa femminile"/>
+ <combo_box.item name="FemaleUpperBody" label="Corpo femminile superiore"/>
+ <combo_box.item name="FemaleLowerBody" label="Corpo femminile inferiore"/>
+ <combo_box.item name="MaleHead" label="Testa maschile"/>
+ <combo_box.item name="MaleUpperBody" label="Corpo maschile superiore"/>
+ <combo_box.item name="MaleLowerBody" label="Corpo maschile inferiore"/>
+ <combo_box.item name="Skirt" label="Gonna"/>
+ <combo_box.item name="SculptedPrim" label="Oggetto sculpt"/>
+ </combo_box>
+ <text name="bad_image_text">
+ Non è stato possibile leggere l&apos;immagine.
+
+Prova a salvare in formato targa (.tga) a 24 bit.
+ </text>
+ <check_box label="Usa compressione ottimizzata" name="lossless_check"/>
+ <button label="Annulla" name="cancel_btn"/>
+ <button label="Carica ([AMOUNT] L$)" name="ok_btn"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_inspect.xml b/indra/newview/skins/default/xui/it/floater_inspect.xml
index 17a0a71719..cbf2935c77 100644
--- a/indra/newview/skins/default/xui/it/floater_inspect.xml
+++ b/indra/newview/skins/default/xui/it/floater_inspect.xml
@@ -1,11 +1,11 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="inspect" title="Ispeziona oggetti">
- <scroll_list name="object_list" tool_tip="Seleziona un oggetto da questo elenco per evidenziarlo inworld">
- <column label="Nome dell&apos;oggetto" name="object_name"/>
- <column label="Nome del proprietario" name="owner_name"/>
- <column label="Nome del creatore" name="creator_name"/>
- <column label="Data di creazione" name="creation_date"/>
- </scroll_list>
- <button label="Vedi il profilo del proprietario..." label_selected="" name="button owner" tool_tip="Vedi il profilo del proprietario dell&apos;oggetto evidenziato"/>
- <button label="Vedi il profilo del creatore..." label_selected="" name="button creator" tool_tip="Vedi il profilo del creatore originale dell&apos;oggetto evidenziato"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="inspect" title="Ispeziona oggetti">
+ <scroll_list name="object_list" tool_tip="Seleziona un oggetto da questo elenco per evidenziarlo inworld">
+ <column label="Nome dell&apos;oggetto" name="object_name"/>
+ <column label="Nome del proprietario" name="owner_name"/>
+ <column label="Nome del creatore" name="creator_name"/>
+ <column label="Data di creazione" name="creation_date"/>
+ </scroll_list>
+ <button label="Vedi il profilo del proprietario..." label_selected="" name="button owner" tool_tip="Vedi il profilo del proprietario dell&apos;oggetto evidenziato"/>
+ <button label="Vedi il profilo del creatore..." label_selected="" name="button creator" tool_tip="Vedi il profilo del creatore originale dell&apos;oggetto evidenziato"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_inventory.xml b/indra/newview/skins/default/xui/it/floater_inventory.xml
index bb7d387f22..f21f213497 100644
--- a/indra/newview/skins/default/xui/it/floater_inventory.xml
+++ b/indra/newview/skins/default/xui/it/floater_inventory.xml
@@ -1,47 +1,47 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Inventory" title="Inventario">
- <search_editor label="Scrivi qui per cercare" name="inventory search editor"/>
- <tab_container name="inventory filter tabs">
- <inventory_panel label="Tutti gli elementi" name="All Items"/>
- <inventory_panel label="Elementi recenti" name="Recent Items"/>
- </tab_container>
- <menu_bar name="Inventory Menu">
- <menu label="File" name="File">
- <menu_item_call label="Apri" name="Open"/>
- <menu_item_call label="Nuova finestra" name="New Window"/>
- <menu_item_call label="Mostra Filtri" name="Show Filters"/>
- <menu_item_call label="Azzera Filtri" name="Reset Current"/>
- <menu_item_call label="Chiudi tutte le cartelle" name="Close All Folders"/>
- <menu_item_call label="Svuota Cestino" name="Empty Trash"/>
- </menu>
- <menu label="Crea" name="Create">
- <menu_item_call label="Nuova Cartella" name="New Folder"/>
- <menu_item_call label="Nuovo Script" name="New Script"/>
- <menu_item_call label="Nuova Nota" name="New Note"/>
- <menu_item_call label="Nuova Gesture" name="New Gesture"/>
- <menu name="New Clothes">
- <menu_item_call label="Nuova Camicia" name="New Shirt"/>
- <menu_item_call label="Nuovi Pantaloni" name="New Pants"/>
- <menu_item_call label="Nuove Scarpe" name="New Shoes"/>
- <menu_item_call label="Nuove Calze" name="New Socks"/>
- <menu_item_call label="Nuova Giacca" name="New Jacket"/>
- <menu_item_call label="Nuova Gonna" name="New Skirt"/>
- <menu_item_call label="Nuovi Guanti" name="New Gloves"/>
- <menu_item_call label="Nuova Canottiera" name="New Undershirt"/>
- <menu_item_call label="Nuove Mutande" name="New Underpants"/>
- </menu>
- <menu name="New Body Parts">
- <menu_item_call label="Nuova Forma del Corpo" name="New Shape"/>
- <menu_item_call label="Nuova Pelle" name="New Skin"/>
- <menu_item_call label="Nuovi Capelli" name="New Hair"/>
- <menu_item_call label="Nuovi Occhi" name="New Eyes"/>
- </menu>
- </menu>
- <menu label="Ordinamento" name="Sort">
- <menu_item_check label="Per nome" name="By Name"/>
- <menu_item_check label="Per data" name="By Date"/>
- <menu_item_check label="Cartelle sempre per nome" name="Folders Always By Name"/>
- <menu_item_check label="Cartelle di sistema sempre in cima" name="System Folders To Top"/>
- </menu>
- </menu_bar>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Inventory" title="Inventario">
+ <search_editor label="Scrivi qui per cercare" name="inventory search editor"/>
+ <tab_container name="inventory filter tabs">
+ <inventory_panel label="Tutti gli elementi" name="All Items"/>
+ <inventory_panel label="Elementi recenti" name="Recent Items"/>
+ </tab_container>
+ <menu_bar name="Inventory Menu">
+ <menu label="File" name="File">
+ <menu_item_call label="Apri" name="Open"/>
+ <menu_item_call label="Nuova finestra" name="New Window"/>
+ <menu_item_call label="Mostra Filtri" name="Show Filters"/>
+ <menu_item_call label="Azzera Filtri" name="Reset Current"/>
+ <menu_item_call label="Chiudi tutte le cartelle" name="Close All Folders"/>
+ <menu_item_call label="Svuota Cestino" name="Empty Trash"/>
+ </menu>
+ <menu label="Crea" name="Create">
+ <menu_item_call label="Nuova Cartella" name="New Folder"/>
+ <menu_item_call label="Nuovo Script" name="New Script"/>
+ <menu_item_call label="Nuova Nota" name="New Note"/>
+ <menu_item_call label="Nuova Gesture" name="New Gesture"/>
+ <menu name="New Clothes">
+ <menu_item_call label="Nuova Camicia" name="New Shirt"/>
+ <menu_item_call label="Nuovi Pantaloni" name="New Pants"/>
+ <menu_item_call label="Nuove Scarpe" name="New Shoes"/>
+ <menu_item_call label="Nuove Calze" name="New Socks"/>
+ <menu_item_call label="Nuova Giacca" name="New Jacket"/>
+ <menu_item_call label="Nuova Gonna" name="New Skirt"/>
+ <menu_item_call label="Nuovi Guanti" name="New Gloves"/>
+ <menu_item_call label="Nuova Canottiera" name="New Undershirt"/>
+ <menu_item_call label="Nuove Mutande" name="New Underpants"/>
+ </menu>
+ <menu name="New Body Parts">
+ <menu_item_call label="Nuova Forma del Corpo" name="New Shape"/>
+ <menu_item_call label="Nuova Pelle" name="New Skin"/>
+ <menu_item_call label="Nuovi Capelli" name="New Hair"/>
+ <menu_item_call label="Nuovi Occhi" name="New Eyes"/>
+ </menu>
+ </menu>
+ <menu label="Ordinamento" name="Sort">
+ <menu_item_check label="Per nome" name="By Name"/>
+ <menu_item_check label="Per data" name="By Date"/>
+ <menu_item_check label="Cartelle sempre per nome" name="Folders Always By Name"/>
+ <menu_item_check label="Cartelle di sistema sempre in cima" name="System Folders To Top"/>
+ </menu>
+ </menu_bar>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/it/floater_inventory_item_properties.xml
index 1312cac3c5..e32f57e9f4 100644
--- a/indra/newview/skins/default/xui/it/floater_inventory_item_properties.xml
+++ b/indra/newview/skins/default/xui/it/floater_inventory_item_properties.xml
@@ -1,85 +1,81 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="item properties" title="Proprietà dell&apos;oggetto nell&apos;inventario">
- <text name="LabelItemNameTitle">
- Nome:
- </text>
- <text name="LabelItemDescTitle">
- Descrizione:
- </text>
- <text name="LabelCreatorTitle">
- Creatore:
- </text>
- <text name="LabelCreatorName">
- Nicole Linden
- </text>
- <button label="Profilo..." label_selected="" name="BtnCreator"/>
- <text name="LabelOwnerTitle">
- proprietario:
- </text>
- <text name="LabelOwnerName">
- Thrax Linden
- </text>
- <button label="Profilo..." label_selected="" name="BtnOwner"/>
- <text name="LabelAcquiredTitle">
- Acquisito:
- </text>
- <text name="LabelAcquiredDate">
- Wed May 24 12:50:46 2006
- </text>
- <text name="OwnerLabel">
- Tu puoi:
- </text>
- <check_box label="Modificare" name="CheckOwnerModify"/>
- <check_box label="Copiare" name="CheckOwnerCopy"/>
- <check_box label="Rivendere/Regalare" name="CheckOwnerTransfer"/>
- <text name="BaseMaskDebug">
- B:
- </text>
- <text name="OwnerMaskDebug">
- O:
- </text>
- <text name="GroupMaskDebug">
- G:
- </text>
- <text name="EveryoneMaskDebug">
- E:
- </text>
- <text name="NextMaskDebug">
- N:
- </text>
- <check_box label="Condividi con il gruppo" name="CheckShareWithGroup"/>
- <check_box label="Permetti a tutti di copiare" name="CheckEveryoneCopy"/>
- <text name="NextOwnerLabel">
- Il prossimo proprietario può:
- </text>
- <check_box label="Modificare" name="CheckNextOwnerModify"/>
- <check_box label="Copiare" name="CheckNextOwnerCopy"/>
- <check_box label="Rivendere/Regalare" name="CheckNextOwnerTransfer"/>
- <text name="SaleLabel">
- Metti l&apos;oggetto:
- </text>
- <check_box label="In vendita" name="CheckPurchase"/>
- <radio_group name="RadioSaleType">
- <radio_item name="radio">
- Originale
- </radio_item>
- <radio_item name="radio2">
- Copia
- </radio_item>
- </radio_group>
- <text name="TextPrice">
- Prezzo: L$
- </text>
- <string name="unknown">
- (sconosciuto)
- </string>
- <string name="public">
- (pubblico)
- </string>
- <string name="you_can">
- Tu puoi:
- </string>
- <string name="owner_can">
- Il proprietario può:
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="item properties" title="Proprietà dell&apos;oggetto nell&apos;inventario">
+ <text name="LabelItemNameTitle">
+ Nome:
+ </text>
+ <text name="LabelItemDescTitle">
+ Descrizione:
+ </text>
+ <text name="LabelCreatorTitle">
+ Creatore:
+ </text>
+ <text name="LabelCreatorName">
+ Nicole Linden
+ </text>
+ <button label="Profilo..." label_selected="" name="BtnCreator"/>
+ <text name="LabelOwnerTitle">
+ proprietario:
+ </text>
+ <text name="LabelOwnerName">
+ Thrax Linden
+ </text>
+ <button label="Profilo..." label_selected="" name="BtnOwner"/>
+ <text name="LabelAcquiredTitle">
+ Acquisito:
+ </text>
+ <text name="LabelAcquiredDate">
+ Wed May 24 12:50:46 2006
+ </text>
+ <text name="OwnerLabel">
+ Tu puoi:
+ </text>
+ <check_box label="Modificare" name="CheckOwnerModify"/>
+ <check_box left_delta="88" label="Copiare" name="CheckOwnerCopy"/>
+ <check_box label="Rivendere/Regalare" name="CheckOwnerTransfer"/>
+ <text name="BaseMaskDebug">
+ B:
+ </text>
+ <text name="OwnerMaskDebug">
+ O:
+ </text>
+ <text name="GroupMaskDebug">
+ G:
+ </text>
+ <text name="EveryoneMaskDebug">
+ E:
+ </text>
+ <text name="NextMaskDebug">
+ N:
+ </text>
+ <check_box label="Condividi con il gruppo" name="CheckShareWithGroup"/>
+ <check_box label="Permetti a tutti di copiare" name="CheckEveryoneCopy"/>
+ <text name="NextOwnerLabel" width="230">
+ Il prossimo proprietario può:
+ </text>
+ <check_box label="Modificare" name="CheckNextOwnerModify"/>
+ <check_box left_delta="88" label="Copiare" name="CheckNextOwnerCopy"/>
+ <check_box label="Rivendere/Regalare" name="CheckNextOwnerTransfer"/>
+ <text name="SaleLabel">
+ Metti l&apos;oggetto:
+ </text>
+ <check_box label="In vendita" name="CheckPurchase"/>
+ <radio_group name="RadioSaleType" left_delta="88" >
+ <radio_item name="radio" label="Originale" />
+ <radio_item name="radio2" label="Copia" />
+ </radio_group>
+ <text name="TextPrice">
+ Prezzo: L$
+ </text>
+ <string name="unknown">
+ (sconosciuto)
+ </string>
+ <string name="public">
+ (pubblico)
+ </string>
+ <string name="you_can">
+ Tu puoi:
+ </string>
+ <string name="owner_can">
+ Il proprietario può:
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/it/floater_inventory_view_finder.xml
index 2311f68993..935e1d7049 100644
--- a/indra/newview/skins/default/xui/it/floater_inventory_view_finder.xml
+++ b/indra/newview/skins/default/xui/it/floater_inventory_view_finder.xml
@@ -1,24 +1,24 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Inventory Finder" title="Inventario_Cose_recenti">
- <check_box label="Animazioni" name="check_animation"/>
- <check_box label="Biglietti da visita" name="check_calling_card"/>
- <check_box label="Abiti" name="check_clothing"/>
- <check_box label="Gesture" name="check_gesture"/>
- <check_box label="Landmark" name="check_landmark"/>
- <check_box label="Notecard" name="check_notecard"/>
- <check_box label="Oggetti" name="check_object"/>
- <check_box label="Script" name="check_script"/>
- <check_box label="Suoni" name="check_sound"/>
- <check_box label="Texture" name="check_texture"/>
- <check_box label="Fotografie" name="check_snapshot"/>
- <button label="Tutto" label_selected="Tutto" name="All"/>
- <button label="Nulla" label_selected="Nulla" name="None"/>
- <check_box label="Mostra sempre le cartelle" name="check_show_empty"/>
- <check_box label="Dall&apos;ultima sconnessione" name="check_since_logoff"/>
- <text name="- OR -">
- - Oppure -
- </text>
- <spinner label="Ore fa" name="spin_hours_ago"/>
- <spinner label="Giorni fa" name="spin_days_ago"/>
- <button label="Chiudi" label_selected="Chiudi" name="Close"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Inventory Finder" title="Inventario_Cose_recenti">
+ <check_box label="Animazioni" name="check_animation"/>
+ <check_box label="Biglietti da visita" name="check_calling_card"/>
+ <check_box label="Abiti" name="check_clothing"/>
+ <check_box label="Gesture" name="check_gesture"/>
+ <check_box label="Landmark" name="check_landmark"/>
+ <check_box label="Notecard" name="check_notecard"/>
+ <check_box label="Oggetti" name="check_object"/>
+ <check_box label="Script" name="check_script"/>
+ <check_box label="Suoni" name="check_sound"/>
+ <check_box label="Texture" name="check_texture"/>
+ <check_box label="Fotografie" name="check_snapshot"/>
+ <button label="Tutto" label_selected="Tutto" name="All"/>
+ <button label="Nulla" label_selected="Nulla" name="None"/>
+ <check_box label="Mostra sempre le cartelle" name="check_show_empty"/>
+ <check_box label="Dall&apos;ultima sconnessione" name="check_since_logoff"/>
+ <text name="- OR -">
+ - Oppure -
+ </text>
+ <spinner label="Ore fa" name="spin_hours_ago"/>
+ <spinner label="Giorni fa" name="spin_days_ago"/>
+ <button label="Chiudi" label_selected="Chiudi" name="Close"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_joystick.xml b/indra/newview/skins/default/xui/it/floater_joystick.xml
index 6f2ee1668f..dcd637f199 100644
--- a/indra/newview/skins/default/xui/it/floater_joystick.xml
+++ b/indra/newview/skins/default/xui/it/floater_joystick.xml
@@ -1,83 +1,85 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Joystick" title="Configurazione Joystick">
- <check_box name="enable_joystick">
- Abilita Joystick:
- </check_box>
- <spinner label="Mapping asse X" name="JoystickAxis1"/>
- <spinner label="Mapping asse Y" name="JoystickAxis2"/>
- <spinner label="Mapping asse Z" name="JoystickAxis0"/>
- <spinner label="Mapping della direzione o Pitch" name="JoystickAxis4"/>
- <spinner label="Mapping dell&apos;altitudine o Yaw" name="JoystickAxis5"/>
- <spinner label="Mapping del Roll" name="JoystickAxis3"/>
- <spinner label="Mapping dello Zoom" name="JoystickAxis6"/>
- <check_box label="Zoom diretto" name="ZoomDirect"/>
- <check_box label="Cursore 3D" name="Cursor3D"/>
- <check_box label="Auto livellamento" name="AutoLeveling"/>
- <text name="Control Modes:">
- Modalità di controllo:
- </text>
- <check_box name="JoystickAvatarEnabled">
- Avatar
- </check_box>
- <check_box name="JoystickBuildEnabled">
- Costruire
- </check_box>
- <check_box name="JoystickFlycamEnabled">
- Camera dall&apos;alto
- </check_box>
- <text name="XScale">
- Regolazione X
- </text>
- <text name="YScale">
- Regolazione Y
- </text>
- <text name="ZScale">
- Regolazione Z
- </text>
- <text name="PitchScale">
- Regolazione della direzione o Pitch
- </text>
- <text name="YawScale">
- Regolazione dell&apos;altitudine o Yaw
- </text>
- <text name="RollScale">
- Regolazione del Roll
- </text>
- <text name="XDeadZone">
- Angolo morto X
- </text>
- <text name="YDeadZone">
- Angolo morto Y
- </text>
- <text name="ZDeadZone">
- Angolo morto Z
- </text>
- <text name="PitchDeadZone">
- Angolo morto della direzione o Pitch
- </text>
- <text name="YawDeadZone">
- Angolo morto dell&apos;altitudine o Yaw
- </text>
- <text name="RollDeadZone">
- Angolo morto del Roll
- </text>
- <text name="Feathering">
- Smussamento
- </text>
- <text name="ZoomScale2">
- Regolazione dello zoom
- </text>
- <text name="ZoomDeadZone">
- Angolo morto dello zoom
- </text>
- <button label="SpaceNavigator Defaults" name="SpaceNavigatorDefaults"/>
- <string name="JoystickMonitor">
- Monitor del Joystick
- </string>
- <string name="Axis">
- Assi [NUM]
- </string>
- <string name="NoDevice">
- nessun dispositivo trovato
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Joystick" title="Configurazione Joystick">
+ <check_box name="enable_joystick">
+ Abilita Joystick:
+ </check_box>
+ <spinner label="Mapping asse X" name="JoystickAxis1"/>
+ <spinner label="Mapping asse Y" name="JoystickAxis2"/>
+ <spinner label="Mapping asse Z" name="JoystickAxis0"/>
+ <spinner label="Mapping della direzione o Pitch" name="JoystickAxis4"/>
+ <spinner label="Mapping dell&apos;altitudine o Yaw" name="JoystickAxis5"/>
+ <spinner label="Mapping del Roll" name="JoystickAxis3"/>
+ <spinner label="Mapping dello Zoom" name="JoystickAxis6"/>
+ <check_box label="Zoom diretto" name="ZoomDirect"/>
+ <check_box label="Cursore 3D" name="Cursor3D"/>
+ <check_box label="Auto livellamento" name="AutoLeveling"/>
+ <text name="Control Modes:">
+ Modalità di controllo:
+ </text>
+ <check_box name="JoystickAvatarEnabled">
+ Avatar
+ </check_box>
+ <check_box name="JoystickBuildEnabled">
+ Costruire
+ </check_box>
+ <check_box name="JoystickFlycamEnabled">
+ Camera dall&apos;alto
+ </check_box>
+ <text name="XScale">
+ Regolazione X
+ </text>
+ <text name="YScale">
+ Regolazione Y
+ </text>
+ <text name="ZScale">
+ Regolazione Z
+ </text>
+ <text name="PitchScale">
+ Regolazione della direzione o Pitch
+ </text>
+ <text name="YawScale">
+ Regolazione dell&apos;altitudine o Yaw
+ </text>
+ <text name="RollScale">
+ Regolazione del Roll
+ </text>
+ <text name="XDeadZone">
+ Angolo morto X
+ </text>
+ <text name="YDeadZone">
+ Angolo morto Y
+ </text>
+ <text name="ZDeadZone">
+ Angolo morto Z
+ </text>
+ <text name="PitchDeadZone">
+ Angolo morto della direzione o Pitch
+ </text>
+ <text name="YawDeadZone">
+ Angolo morto dell&apos;altitudine o Yaw
+ </text>
+ <text name="RollDeadZone">
+ Angolo morto del Roll
+ </text>
+ <text name="Feathering">
+ Smussamento
+ </text>
+ <text name="ZoomScale2">
+ Regolazione dello zoom
+ </text>
+ <text name="ZoomDeadZone">
+ Angolo morto dello zoom
+ </text>
+ <button label="SpaceNavigator Defaults" name="SpaceNavigatorDefaults"/>
+ <button label="OK" label_selected="OK" name="ok_btn"/>
+ <button label="Annulla" label_selected="Annulla" name="cancel_btn"/>
+ <string name="JoystickMonitor">
+ Monitor del Joystick
+ </string>
+ <string name="Axis">
+ Assi [NUM]
+ </string>
+ <string name="NoDevice">
+ nessun dispositivo trovato
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_lagmeter.xml b/indra/newview/skins/default/xui/it/floater_lagmeter.xml
index b45ec00d9a..d14f12ea4a 100644
--- a/indra/newview/skins/default/xui/it/floater_lagmeter.xml
+++ b/indra/newview/skins/default/xui/it/floater_lagmeter.xml
@@ -1,152 +1,152 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_lagmeter" title="Misuratore del lag">
- <button label="" label_selected="" name="client_lagmeter" tool_tip="Stato del lag del programma in locale"/>
- <text name="client">
- Programma in locale:
- </text>
- <text name="client_text">
- Normale
- </text>
- <button label="" label_selected="" name="network_lagmeter" tool_tip="Stato del lag del network"/>
- <text name="network">
- Network:
- </text>
- <text name="network_text">
- Normale
- </text>
- <button label="" label_selected="" name="server_lagmeter" tool_tip="Stato del lag del server"/>
- <text name="server">
- Server:
- </text>
- <text name="server_text">
- Normale
- </text>
- <button label="?" name="server_help"/>
- <button label="&gt;&gt;" name="minimize"/>
- <string name="max_title_msg">
- Misuratore del lag
- </string>
- <string name="max_width_px">
- 360
- </string>
- <string name="min_title_msg">
- Lag
- </string>
- <string name="min_width_px">
- 90
- </string>
- <string name="client_text_msg">
- Programma in locale
- </string>
- <string name="client_frame_rate_critical_fps">
- 10
- </string>
- <string name="client_frame_rate_warning_fps">
- 15
- </string>
- <string name="client_frame_time_window_bg_msg">
- Normale, finestra sullo sfondo
- </string>
- <string name="client_frame_time_critical_msg">
- Velocità dei frame del programma in locale al di sotto di [CLIENT_FRAME_RATE_CRITICAL]
- </string>
- <string name="client_frame_time_warning_msg">
- Velocità dei frame del programma in locale tra [CLIENT_FRAME_RATE_CRITICAL] e [CLIENT_FRAME_RATE_WARNING]
- </string>
- <string name="client_frame_time_normal_msg">
- Normale
- </string>
- <string name="client_draw_distance_cause_msg">
- Possibile causa: Campo visivo impostato troppo alto
- </string>
- <string name="client_texture_loading_cause_msg">
- Possibile causa: Caricamento immagini
- </string>
- <string name="client_texture_memory_cause_msg">
- Possibile causa: Troppe immagini in memoria
- </string>
- <string name="client_complex_objects_cause_msg">
- Possibile causa: Troppi oggetti complessi intorno
- </string>
- <string name="network_text_msg">
- Network
- </string>
- <string name="network_packet_loss_critical_pct">
- 10
- </string>
- <string name="network_packet_loss_warning_pct">
- 5
- </string>
- <string name="network_packet_loss_critical_msg">
- La connessione sta calando al di sotto del [NETWORK_PACKET_LOSS_CRITICAL]% di pacchetti
- </string>
- <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
- </string>
- <string name="network_performance_normal_msg">
- Normale
- </string>
- <string name="network_ping_critical_ms">
- 600
- </string>
- <string name="network_ping_warning_ms">
- 300
- </string>
- <string name="network_ping_critical_msg">
- Il tempo di ping della connessione è al di sopra di [NETWORK_PING_CRITICAL] ms
- </string>
- <string name="network_ping_warning_msg">
- Il tempo di ping della connessione è tra [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] ms
- </string>
- <string name="network_packet_loss_cause_msg">
- Possibile cattiva connessione o la larghezza di banda impostata nelle preferenze troppo alta.
- </string>
- <string name="network_ping_cause_msg">
- Possibile cattiva connessione o l&apos;apertura di un programma di scambio files.
- </string>
- <string name="server_text_msg">
- Server
- </string>
- <string name="server_frame_rate_critical_fps">
- 20
- </string>
- <string name="server_frame_rate_warning_fps">
- 30
- </string>
- <string name="server_single_process_max_time_ms">
- 20
- </string>
- <string name="server_frame_time_critical_msg">
- Velocità del simulatore al di sotto di [SERVER_FRAME_RATE_CRITICAL]
- </string>
- <string name="server_frame_time_warning_msg">
- Velocità del simulatore tra [SERVER_FRAME_RATE_CRITICAL] e [SERVER_FRAME_RATE_WARNING]
- </string>
- <string name="server_frame_time_normal_msg">
- Normale
- </string>
- <string name="server_physics_cause_msg">
- Possibile causa: troppi oggetti fisici
- </string>
- <string name="server_scripts_cause_msg">
- Possibile causa: troppi oggetti scriptati
- </string>
- <string name="server_net_cause_msg">
- Possibile causa: eccessivo traffico sulla rete
- </string>
- <string name="server_agent_cause_msg">
- Possibile causa: troppi residenti in movimento nella regione
- </string>
- <string name="server_images_cause_msg">
- Possibile causa: troppe elaborazioni di immagini
- </string>
- <string name="server_generic_cause_msg">
- Possibile causa: carico eccessivo del simulatore
- </string>
- <string name="smaller_label">
- &gt;&gt;
- </string>
- <string name="bigger_label">
- &lt;&lt;
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_lagmeter" title="Misuratore del lag">
+ <button label="" label_selected="" name="client_lagmeter" tool_tip="Stato del lag del programma in locale"/>
+ <text name="client">
+ Programma in locale:
+ </text>
+ <text name="client_text">
+ Normale
+ </text>
+ <button label="" label_selected="" name="network_lagmeter" tool_tip="Stato del lag del network"/>
+ <text name="network">
+ Network:
+ </text>
+ <text name="network_text">
+ Normale
+ </text>
+ <button label="" label_selected="" name="server_lagmeter" tool_tip="Stato del lag del server"/>
+ <text name="server">
+ Server:
+ </text>
+ <text name="server_text">
+ Normale
+ </text>
+ <button label="?" name="server_help"/>
+ <button label="&gt;&gt;" name="minimize"/>
+ <string name="max_title_msg">
+ Misuratore del lag
+ </string>
+ <string name="max_width_px">
+ 360
+ </string>
+ <string name="min_title_msg">
+ Lag
+ </string>
+ <string name="min_width_px">
+ 90
+ </string>
+ <string name="client_text_msg">
+ Programma in locale
+ </string>
+ <string name="client_frame_rate_critical_fps">
+ 10
+ </string>
+ <string name="client_frame_rate_warning_fps">
+ 15
+ </string>
+ <string name="client_frame_time_window_bg_msg">
+ Normale, finestra sullo sfondo
+ </string>
+ <string name="client_frame_time_critical_msg">
+ Velocità dei frame del programma in locale al di sotto di [CLIENT_FRAME_RATE_CRITICAL]
+ </string>
+ <string name="client_frame_time_warning_msg">
+ Velocità dei frame del programma in locale tra [CLIENT_FRAME_RATE_CRITICAL] e [CLIENT_FRAME_RATE_WARNING]
+ </string>
+ <string name="client_frame_time_normal_msg">
+ Normale
+ </string>
+ <string name="client_draw_distance_cause_msg">
+ Possibile causa: Campo visivo impostato troppo alto
+ </string>
+ <string name="client_texture_loading_cause_msg">
+ Possibile causa: Caricamento immagini
+ </string>
+ <string name="client_texture_memory_cause_msg">
+ Possibile causa: Troppe immagini in memoria
+ </string>
+ <string name="client_complex_objects_cause_msg">
+ Possibile causa: Troppi oggetti complessi intorno
+ </string>
+ <string name="network_text_msg">
+ Network
+ </string>
+ <string name="network_packet_loss_critical_pct">
+ 10
+ </string>
+ <string name="network_packet_loss_warning_pct">
+ 5
+ </string>
+ <string name="network_packet_loss_critical_msg">
+ La connessione sta calando al di sotto del [NETWORK_PACKET_LOSS_CRITICAL]% di pacchetti
+ </string>
+ <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
+ </string>
+ <string name="network_performance_normal_msg">
+ Normale
+ </string>
+ <string name="network_ping_critical_ms">
+ 600
+ </string>
+ <string name="network_ping_warning_ms">
+ 300
+ </string>
+ <string name="network_ping_critical_msg">
+ Il tempo di ping della connessione è al di sopra di [NETWORK_PING_CRITICAL] ms
+ </string>
+ <string name="network_ping_warning_msg">
+ Il tempo di ping della connessione è tra [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] ms
+ </string>
+ <string name="network_packet_loss_cause_msg">
+ Possibile cattiva connessione o la larghezza di banda impostata nelle preferenze troppo alta.
+ </string>
+ <string name="network_ping_cause_msg">
+ Possibile cattiva connessione o l&apos;apertura di un programma di scambio files.
+ </string>
+ <string name="server_text_msg">
+ Server
+ </string>
+ <string name="server_frame_rate_critical_fps">
+ 20
+ </string>
+ <string name="server_frame_rate_warning_fps">
+ 30
+ </string>
+ <string name="server_single_process_max_time_ms">
+ 20
+ </string>
+ <string name="server_frame_time_critical_msg">
+ Velocità del simulatore al di sotto di [SERVER_FRAME_RATE_CRITICAL]
+ </string>
+ <string name="server_frame_time_warning_msg">
+ Velocità del simulatore tra [SERVER_FRAME_RATE_CRITICAL] e [SERVER_FRAME_RATE_WARNING]
+ </string>
+ <string name="server_frame_time_normal_msg">
+ Normale
+ </string>
+ <string name="server_physics_cause_msg">
+ Possibile causa: troppi oggetti fisici
+ </string>
+ <string name="server_scripts_cause_msg">
+ Possibile causa: troppi oggetti scriptati
+ </string>
+ <string name="server_net_cause_msg">
+ Possibile causa: eccessivo traffico sulla rete
+ </string>
+ <string name="server_agent_cause_msg">
+ Possibile causa: troppi residenti in movimento nella regione
+ </string>
+ <string name="server_images_cause_msg">
+ Possibile causa: troppe elaborazioni di immagini
+ </string>
+ <string name="server_generic_cause_msg">
+ Possibile causa: carico eccessivo del simulatore
+ </string>
+ <string name="smaller_label">
+ &gt;&gt;
+ </string>
+ <string name="bigger_label">
+ &lt;&lt;
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_land_holdings.xml b/indra/newview/skins/default/xui/it/floater_land_holdings.xml
index aa97f52806..6ac84b854f 100644
--- a/indra/newview/skins/default/xui/it/floater_land_holdings.xml
+++ b/indra/newview/skins/default/xui/it/floater_land_holdings.xml
@@ -1,38 +1,39 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="land holdings floater" title="Il mio terreno">
- <scroll_list name="parcel list">
- <column label="Nome" name="name"/>
- <column label="Luogo" name="location"/>
- <column label="Area" name="area"/>
- </scroll_list>
- <button label="Teletrasportati" label_selected="Teletrasportati" name="Teleport" tool_tip="Teletrasportati al centro di questo terreno."/>
- <button label="Mostra sulla mappa" label_selected="Mostra sulla mappa" name="Show on Map" tool_tip="Mostra questo terreno sulla mappa."/>
- <text name="contrib_label">
- Contributi ai tuoi gruppi:
- </text>
- <scroll_list name="grant list">
- <column label="Gruppo" name="group"/>
- <column label="Area" name="area"/>
- </scroll_list>
- <text name="allowed_label">
- Proprietà di terreni consentite per l&apos;attuale piano di pagamento:
- </text>
- <text name="allowed_text">
- [AREA] metri quadrati
- </text>
- <text name="current_label">
- Attuale proprietà di terreni:
- </text>
- <text name="current_text">
- [AREA] metri quadrati
- </text>
- <text name="available_label">
- Quantità disponibile per ulteriori acquisti di terreno:
- </text>
- <text name="available_text">
- [AREA] metri quadrati
- </text>
- <string name="area_string">
- [AREA] metri quadrati
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="land holdings floater" title="Il mio terreno">
+ <scroll_list name="parcel list">
+ <column label="Nome del terreno" name="name"/>
+ <column label="Regione" name="location"/>
+ <column label="Tipo" name="type"/>
+ <column label="Area" name="area"/>
+ </scroll_list>
+ <button label="Teletrasportati" label_selected="Teletrasportati" name="Teleport" tool_tip="Teletrasportati al centro di questo terreno."/>
+ <button label="Mostra sulla mappa" label_selected="Mostra sulla mappa" name="Show on Map" tool_tip="Mostra questo terreno sulla mappa."/>
+ <text name="contrib_label">
+ Contributi ai tuoi gruppi:
+ </text>
+ <scroll_list name="grant list">
+ <column label="Gruppo" name="group"/>
+ <column label="Area" name="area"/>
+ </scroll_list>
+ <text name="allowed_label">
+ Proprietà di terreni consentite per l&apos;attuale piano di pagamento:
+ </text>
+ <text name="allowed_text">
+ [AREA] metri quadrati
+ </text>
+ <text name="current_label">
+ Attuale proprietà di terreni:
+ </text>
+ <text name="current_text">
+ [AREA] metri quadrati
+ </text>
+ <text name="available_label">
+ Quantità disponibile per ulteriori acquisti di terreno:
+ </text>
+ <text name="available_text">
+ [AREA] metri quadrati
+ </text>
+ <string name="area_string">
+ [AREA] metri quadrati
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_live_lsleditor.xml b/indra/newview/skins/default/xui/it/floater_live_lsleditor.xml
index be94b59725..55195a00f1 100644
--- a/indra/newview/skins/default/xui/it/floater_live_lsleditor.xml
+++ b/indra/newview/skins/default/xui/it/floater_live_lsleditor.xml
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="script ed float" title="Script: Nuovo script">
- <button label="Ripristina" label_selected="Ripristina" name="Reset"/>
- <check_box label="In esecuzione" name="running"/>
- <check_box label="Mono" name="mono"/>
- <string name="not_allowed">
- Non sei autorizzato a visualizzare questo script.
- </string>
- <string name="script_running">
- In esecuzione
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="script ed float" title="Script: Nuovo script">
+ <button label="Ripristina" label_selected="Ripristina" name="Reset"/>
+ <check_box label="In esecuzione" name="running"/>
+ <check_box label="Mono" name="mono"/>
+ <string name="not_allowed">
+ Non sei autorizzato a visualizzare questo script.
+ </string>
+ <string name="script_running">
+ In esecuzione
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_lsl_guide.xml b/indra/newview/skins/default/xui/it/floater_lsl_guide.xml
index 3083fea0fe..6a27703ad6 100644
--- a/indra/newview/skins/default/xui/it/floater_lsl_guide.xml
+++ b/indra/newview/skins/default/xui/it/floater_lsl_guide.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="script ed float" title="LSL Wiki">
- <check_box label="Segui il cursore" name="lock_check"/>
- <combo_box label="Blocca" name="history_combo"/>
- <button label="Indietro" name="back_btn"/>
- <button label="Avanti" name="fwd_btn"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="script ed float" title="LSL Wiki">
+ <check_box label="Segui il cursore" name="lock_check"/>
+ <combo_box label="Blocca" name="history_combo"/>
+ <button label="Indietro" name="back_btn"/>
+ <button label="Avanti" name="fwd_btn"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_media_browser.xml b/indra/newview/skins/default/xui/it/floater_media_browser.xml
index 219b1c9d54..1c906f5a4d 100644
--- a/indra/newview/skins/default/xui/it/floater_media_browser.xml
+++ b/indra/newview/skins/default/xui/it/floater_media_browser.xml
@@ -1,19 +1,19 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_about" title="Browser multimediale">
- <layout_stack name="stack1">
- <layout_panel name="nav_controls">
- <button label="Indietro" name="back"/>
- <button label="Avanti" name="forward"/>
- <button label="Ricarica" name="reload"/>
- <button label="Vai" name="go"/>
- </layout_panel>
- <layout_panel name="parcel_owner_controls">
- <button label="Invia questo URL al terreno" name="assign"/>
- </layout_panel>
- <layout_panel name="external_controls">
- <button label="Apri nel web browser" name="open_browser"/>
- <check_box label="Apri sempre nel web browser" name="open_always"/>
- <button label="Chiudi" name="close"/>
- </layout_panel>
- </layout_stack>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_about" title="Browser multimediale">
+ <layout_stack name="stack1">
+ <layout_panel name="nav_controls">
+ <button label="Indietro" name="back"/>
+ <button label="Avanti" name="forward"/>
+ <button label="Ricarica" name="reload"/>
+ <button label="Vai" name="go"/>
+ </layout_panel>
+ <layout_panel name="parcel_owner_controls">
+ <button label="Invia questo URL al terreno" name="assign"/>
+ </layout_panel>
+ <layout_panel name="external_controls">
+ <button label="Apri nel web browser" name="open_browser"/>
+ <check_box label="Apri sempre nel web browser" name="open_always"/>
+ <button label="Chiudi" name="close"/>
+ </layout_panel>
+ </layout_stack>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_mem_leaking.xml b/indra/newview/skins/default/xui/it/floater_mem_leaking.xml
index e54566f1fa..4bd0e6ae6b 100644
--- a/indra/newview/skins/default/xui/it/floater_mem_leaking.xml
+++ b/indra/newview/skins/default/xui/it/floater_mem_leaking.xml
@@ -1,18 +1,18 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="MemLeak" title="Simulazione di perdità di memoria">
- <spinner label="Perdità di velocità (bytes per frame):" name="leak_speed"/>
- <spinner label="Memoria Persa Max (MB):" name="max_leak"/>
- <text name="total_leaked_label">
- Memoria persa attuale: [SIZE] KB
- </text>
- <text name="note_label_1">
- [NOTE1]
- </text>
- <text name="note_label_2">
- [NOTE2]
- </text>
- <button label="Inizia" name="start_btn"/>
- <button label="Stop" name="stop_btn"/>
- <button label="Rilascia" name="release_btn"/>
- <button label="Chiudi" name="close_btn"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="MemLeak" title="Simulazione di perdità di memoria">
+ <spinner label="Perdità di velocità (bytes per frame):" name="leak_speed"/>
+ <spinner label="Memoria Persa Max (MB):" name="max_leak"/>
+ <text name="total_leaked_label">
+ Memoria persa attuale: [SIZE] KB
+ </text>
+ <text name="note_label_1">
+ [NOTE1]
+ </text>
+ <text name="note_label_2">
+ [NOTE2]
+ </text>
+ <button label="Inizia" name="start_btn"/>
+ <button label="Stop" name="stop_btn"/>
+ <button label="Rilascia" name="release_btn"/>
+ <button label="Chiudi" name="close_btn"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_moveview.xml b/indra/newview/skins/default/xui/it/floater_moveview.xml
index 35d93f2a19..8a86947875 100644
--- a/indra/newview/skins/default/xui/it/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/it/floater_moveview.xml
@@ -1,11 +1,11 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="move floater" title="">
- <button label="" label_selected="" name="turn left btn" tool_tip="Gira a sinistra"/>
- <button label="" label_selected="" name="turn right btn" tool_tip="Gira a destra"/>
- <button label="" label_selected="" name="move up btn" tool_tip="Salta o vola in alto"/>
- <button label="" label_selected="" name="move down btn" tool_tip="Inchinati o vola in basso"/>
- <joystick_slide name="slide left btn" tool_tip="Vai a sinistra"/>
- <joystick_slide name="slide right btn" tool_tip="Vai a destra"/>
- <joystick_turn name="forward btn" tool_tip="Vai avanti"/>
- <joystick_turn name="backward btn" tool_tip="Vai indietro"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="move floater" title="">
+ <button label="" label_selected="" name="turn left btn" tool_tip="Gira a sinistra"/>
+ <button label="" label_selected="" name="turn right btn" tool_tip="Gira a destra"/>
+ <button label="" label_selected="" name="move up btn" tool_tip="Salta o vola in alto"/>
+ <button label="" label_selected="" name="move down btn" tool_tip="Inchinati o vola in basso"/>
+ <joystick_slide name="slide left btn" tool_tip="Vai a sinistra"/>
+ <joystick_slide name="slide right btn" tool_tip="Vai a destra"/>
+ <joystick_turn name="forward btn" tool_tip="Vai avanti"/>
+ <joystick_turn name="backward btn" tool_tip="Vai indietro"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_mute_object.xml b/indra/newview/skins/default/xui/it/floater_mute_object.xml
index a894079976..4b7370bad0 100644
--- a/indra/newview/skins/default/xui/it/floater_mute_object.xml
+++ b/indra/newview/skins/default/xui/it/floater_mute_object.xml
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="mute by name" title="Ignora l&apos;oggetto dal nome">
- <text name="message">
- Ignora per nome ha effetti sull&apos;oggetto in chat e IM, non nei suoni.
-Devi scrivere esattamente il nome dell&apos;oggetto.
- </text>
- <line_editor name="object_name">
- Nome dell&apos;oggetto
- </line_editor>
- <button label="Ok" name="OK"/>
- <button label="Annulla" name="Cancel"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="mute by name" title="Ignora l&apos;oggetto dal nome">
+ <text name="message">
+ Ignora per nome ha effetti sull&apos;oggetto in chat e IM, non nei suoni.
+Devi scrivere esattamente il nome dell&apos;oggetto.
+ </text>
+ <line_editor name="object_name">
+ Nome dell&apos;oggetto
+ </line_editor>
+ <button label="Ok" name="OK"/>
+ <button label="Annulla" name="Cancel"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_my_friends.xml b/indra/newview/skins/default/xui/it/floater_my_friends.xml
index f38a92b5db..a77b8aff80 100644
--- a/indra/newview/skins/default/xui/it/floater_my_friends.xml
+++ b/indra/newview/skins/default/xui/it/floater_my_friends.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_my_friends" title="Contatti">
- <tab_container name="friends_and_groups">
- <panel label="Amici" name="friends_panel"/>
- <panel label="Gruppi" name="groups_panel"/>
- </tab_container>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_my_friends" title="Contatti">
+ <tab_container name="friends_and_groups">
+ <panel label="Amici" name="friends_panel"/>
+ <panel label="Gruppi" name="groups_panel"/>
+ </tab_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_openobject.xml b/indra/newview/skins/default/xui/it/floater_openobject.xml
index 77d4c9d66d..d04a6f3632 100644
--- a/indra/newview/skins/default/xui/it/floater_openobject.xml
+++ b/indra/newview/skins/default/xui/it/floater_openobject.xml
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="objectcontents" title="Contenuto dell&apos;oggetto">
- <text name="object_name">
- [DESC]:
- </text>
- <button label="Copia nell&apos;inventario" label_selected="Copia nell&apos;inventario" name="copy_to_inventory_button"/>
- <button label="Copia ed indossa" label_selected="Copia ed indossa" name="copy_and_wear_button"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="objectcontents" title="Contenuto dell&apos;oggetto">
+ <text name="object_name">
+ [DESC]:
+ </text>
+ <button label="Copia nell&apos;inventario" label_selected="Copia nell&apos;inventario" name="copy_to_inventory_button"/>
+ <button label="Copia ed indossa" label_selected="Copia ed indossa" name="copy_and_wear_button"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_pay.xml b/indra/newview/skins/default/xui/it/floater_pay.xml
index c33f7f3d87..dbf374a67c 100644
--- a/indra/newview/skins/default/xui/it/floater_pay.xml
+++ b/indra/newview/skins/default/xui/it/floater_pay.xml
@@ -1,21 +1,21 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Give Money" title="">
- <button label="1 L$" label_selected="1 L$" name="fastpay 1"/>
- <button label="5 L$" label_selected="5 L$" name="fastpay 5"/>
- <button label="10 L$" label_selected="10 L$" name="fastpay 10"/>
- <button label="20 L$" label_selected="20 L$" name="fastpay 20"/>
- <button label="Paga" label_selected="Paga" name="pay btn"/>
- <button label="Annulla" label_selected="Annulla" name="cancel btn"/>
- <text name="payee_label">
- Paga residente:
- </text>
- <text name="payee_name">
- [FIRST] [LAST]
- </text>
- <text name="fastpay text">
- Pagamento veloce:
- </text>
- <text name="amount text">
- Ammontare:
- </text>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Give Money" title="">
+ <button label="1 L$" label_selected="1 L$" name="fastpay 1"/>
+ <button label="5 L$" label_selected="5 L$" name="fastpay 5"/>
+ <button label="10 L$" label_selected="10 L$" name="fastpay 10"/>
+ <button label="20 L$" label_selected="20 L$" name="fastpay 20"/>
+ <button label="Paga" label_selected="Paga" name="pay btn"/>
+ <button label="Annulla" label_selected="Annulla" name="cancel btn"/>
+ <text name="payee_label">
+ Paga residente:
+ </text>
+ <text name="payee_name">
+ [FIRST] [LAST]
+ </text>
+ <text name="fastpay text">
+ Pagamento veloce:
+ </text>
+ <text name="amount text">
+ Ammontare:
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_pay_object.xml b/indra/newview/skins/default/xui/it/floater_pay_object.xml
index 8140ed64ab..021b2d7647 100644
--- a/indra/newview/skins/default/xui/it/floater_pay_object.xml
+++ b/indra/newview/skins/default/xui/it/floater_pay_object.xml
@@ -1,30 +1,30 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Give Money" title="">
- <text name="payee_group">
- Paga il gruppo:
- </text>
- <text name="payee_resident">
- Paga il residente:
- </text>
- <text name="payee_name">
- [FIRST] [LAST]
- </text>
- <text name="object_name_label">
- Mediante l&apos;oggetto:
- </text>
- <text name="object_name_text">
- ...
- </text>
- <text name="fastpay text">
- Pagamento diretto:
- </text>
- <text name="amount text">
- Ammontare:
- </text>
- <button label="1 L$" label_selected="1 L$" name="fastpay 1"/>
- <button label="5 L$" label_selected="5 L$" name="fastpay 5"/>
- <button label="10 L$" label_selected="10 L$" name="fastpay 10"/>
- <button label="20 L$" label_selected="20 L$" name="fastpay 20"/>
- <button label="Paga" label_selected="Paga" name="pay btn"/>
- <button label="Cancella" label_selected="Cancella" name="cancel btn"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Give Money" title="">
+ <text name="payee_group">
+ Paga il gruppo:
+ </text>
+ <text name="payee_resident">
+ Paga il residente:
+ </text>
+ <text name="payee_name">
+ [FIRST] [LAST]
+ </text>
+ <text name="object_name_label">
+ Mediante l&apos;oggetto:
+ </text>
+ <text name="object_name_text">
+ ...
+ </text>
+ <text name="fastpay text">
+ Pagamento diretto:
+ </text>
+ <text name="amount text">
+ Ammontare:
+ </text>
+ <button label="1 L$" label_selected="1 L$" name="fastpay 1"/>
+ <button label="5 L$" label_selected="5 L$" name="fastpay 5"/>
+ <button label="10 L$" label_selected="10 L$" name="fastpay 10"/>
+ <button label="20 L$" label_selected="20 L$" name="fastpay 20"/>
+ <button label="Paga" label_selected="Paga" name="pay btn"/>
+ <button label="Cancella" label_selected="Cancella" name="cancel btn"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_perm_prefs.xml b/indra/newview/skins/default/xui/it/floater_perm_prefs.xml
new file mode 100644
index 0000000000..8037481f37
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/floater_perm_prefs.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="perm prefs" title="Permessi di base di importazione">
+ <panel label="Permessi" name="permissions">
+ <button label="?" label_selected="?" name="help"/>
+ <check_box label="Condividi con il gruppo" name="share_with_group"/>
+ <check_box label="Permetti a chiunque di copiare" name="everyone_copy"/>
+ <text name="NextOwnerLabel">
+ Il prossimo possessore può:
+ </text>
+ <check_box label="Modificare" name="next_owner_modify"/>
+ <check_box label="Copiare" name="next_owner_copy"/>
+ <check_box label="Rivendere/Regalare" name="next_owner_transfer"/>
+ </panel>
+ <button label="OK" label_selected="OK" name="ok"/>
+ <button label="Annulla" label_selected="Annulla" name="cancel"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_post_process.xml b/indra/newview/skins/default/xui/it/floater_post_process.xml
index 80118160c9..226970041b 100644
--- a/indra/newview/skins/default/xui/it/floater_post_process.xml
+++ b/indra/newview/skins/default/xui/it/floater_post_process.xml
@@ -1,53 +1,53 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Post-Process Floater" title="Impostazioni di post-produzione">
- <tab_container name="Post-Process Tabs">
- <panel label="Filtro Colore" name="wmiColorFilterPanel">
- <check_box label="Abilita" name="wmiColorFilterToggle"/>
- <text name="wmiColorFilterBrightnessText">
- Luminosità
- </text>
- <text name="wmiColorFilterSaturationText">
- Saturazione
- </text>
- <text name="wmiColorFilterContrastText">
- Contrasto
- </text>
- <text name="wmiColorFilterBaseText">
- Colore Base Contrasto
- </text>
- <slider label="R" name="wmiColorFilterBaseR"/>
- <slider label="G" name="wmiColorFilterBaseG"/>
- <slider label="B" name="wmiColorFilterBaseB"/>
- <slider label="I" name="wmiColorFilterBaseI"/>
- </panel>
- <panel label="Visione Notturna" name="wmiNightVisionPanel">
- <check_box label="Abilita" name="wmiNightVisionToggle"/>
- <text name="wmiNightVisionBrightMultText">
- Amplificazione Multipla Luce
- </text>
- <text name="wmiNightVisionNoiseSizeText">
- Ampiezza disturbo
- </text>
- <text name="wmiNightVisionNoiseStrengthText">
- Forza disturbo
- </text>
- </panel>
- <panel label="Raggiatura" name="wmiBloomPanel">
- <check_box label="Abilita" name="wmiBloomToggle"/>
- <text name="wmiBloomExtractText">
- Estrazione luminosità
- </text>
- <text name="wmiBloomSizeText">
- Dimensione raggiatura
- </text>
- <text name="wmiBloomStrengthText">
- Forza raggiatura
- </text>
- </panel>
- <panel label="Extra" name="Extras">
- <button label="Carica effetto" label_selected="Carica effetto" name="PPLoadEffect"/>
- <button label="Salva effetto" label_selected="Salva effetto" name="PPSaveEffect"/>
- <line_editor label="Nome Effetto" name="PPEffectNameEditor"/>
- </panel>
- </tab_container>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Post-Process Floater" title="Impostazioni di post-produzione">
+ <tab_container name="Post-Process Tabs">
+ <panel label="Filtro Colore" name="wmiColorFilterPanel">
+ <check_box label="Abilita" name="wmiColorFilterToggle"/>
+ <text name="wmiColorFilterBrightnessText">
+ Luminosità
+ </text>
+ <text name="wmiColorFilterSaturationText">
+ Saturazione
+ </text>
+ <text name="wmiColorFilterContrastText">
+ Contrasto
+ </text>
+ <text name="wmiColorFilterBaseText">
+ Colore Base Contrasto
+ </text>
+ <slider label="R" name="wmiColorFilterBaseR"/>
+ <slider label="G" name="wmiColorFilterBaseG"/>
+ <slider label="B" name="wmiColorFilterBaseB"/>
+ <slider label="I" name="wmiColorFilterBaseI"/>
+ </panel>
+ <panel label="Visione Notturna" name="wmiNightVisionPanel">
+ <check_box label="Abilita" name="wmiNightVisionToggle"/>
+ <text name="wmiNightVisionBrightMultText">
+ Amplificazione Multipla Luce
+ </text>
+ <text name="wmiNightVisionNoiseSizeText">
+ Ampiezza disturbo
+ </text>
+ <text name="wmiNightVisionNoiseStrengthText">
+ Forza disturbo
+ </text>
+ </panel>
+ <panel label="Raggiatura" name="wmiBloomPanel">
+ <check_box label="Abilita" name="wmiBloomToggle"/>
+ <text name="wmiBloomExtractText">
+ Estrazione luminosità
+ </text>
+ <text name="wmiBloomSizeText">
+ Dimensione raggiatura
+ </text>
+ <text name="wmiBloomStrengthText">
+ Forza raggiatura
+ </text>
+ </panel>
+ <panel label="Extra" name="Extras">
+ <button label="Carica effetto" label_selected="Carica effetto" name="PPLoadEffect"/>
+ <button label="Salva effetto" label_selected="Salva effetto" name="PPSaveEffect"/>
+ <line_editor label="Nome Effetto" name="PPEffectNameEditor"/>
+ </panel>
+ </tab_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_postcard.xml b/indra/newview/skins/default/xui/it/floater_postcard.xml
index e2dc74b79c..b8769f5486 100644
--- a/indra/newview/skins/default/xui/it/floater_postcard.xml
+++ b/indra/newview/skins/default/xui/it/floater_postcard.xml
@@ -1,36 +1,36 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Postcard" title="Invia la fotografia via email">
- <text name="to_label">
- Email del destinatario:
- </text>
- <text name="from_label">
- La tua email:
- </text>
- <text name="name_label">
- Il tuo nome:
- </text>
- <text name="subject_label">
- Soggetto:
- </text>
- <line_editor label="Scrivi il soggetto qui." name="subject_form"/>
- <text name="msg_label">
- Messaggio:
- </text>
- <text_editor name="msg_form">
- Scrivi il messaggio qui.
- </text_editor>
- <text name="fine_print">
- Se il tuo destinatario si registrerà in SL, riceverai il relativo bonus.
- </text>
- <button label="Annulla" name="cancel_btn"/>
- <button label="Invia" name="send_btn"/>
- <string name="default_subject">
- Cartolina da Second Life.
- </string>
- <string name="default_message">
- Vieni a vedere!
- </string>
- <string name="upload_message">
- &quot;In spedizione...&quot;
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Postcard" title="Invia la fotografia via email">
+ <text name="to_label">
+ Email del destinatario:
+ </text>
+ <text name="from_label">
+ La tua email:
+ </text>
+ <text name="name_label">
+ Il tuo nome:
+ </text>
+ <text name="subject_label">
+ Soggetto:
+ </text>
+ <line_editor label="Scrivi il soggetto qui." name="subject_form"/>
+ <text name="msg_label">
+ Messaggio:
+ </text>
+ <text_editor name="msg_form">
+ Scrivi il messaggio qui.
+ </text_editor>
+ <text name="fine_print">
+ Se il tuo destinatario si registrerà in SL, riceverai il relativo bonus.
+ </text>
+ <button label="Annulla" name="cancel_btn"/>
+ <button label="Invia" name="send_btn"/>
+ <string name="default_subject">
+ Cartolina da Second Life.
+ </string>
+ <string name="default_message">
+ Vieni a vedere!
+ </string>
+ <string name="upload_message">
+ &quot;In spedizione...&quot;
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_preferences.xml b/indra/newview/skins/default/xui/it/floater_preferences.xml
index e89d1440a1..726b6dd70b 100644
--- a/indra/newview/skins/default/xui/it/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/it/floater_preferences.xml
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Preferences" title="Preferenze">
- <button label="OK" label_selected="OK" name="OK"/>
- <button label="Annulla" label_selected="Annulla" name="Cancel"/>
- <button label="Applica" label_selected="Applica" name="Apply"/>
- <button label="Informazioni..." label_selected="Informazioni..." name="About..."/>
- <button label="Aiuto" label_selected="Aiuto" name="Help"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Preferences" title="Preferenze">
+ <button label="OK" label_selected="OK" name="OK"/>
+ <button label="Annulla" label_selected="Annulla" name="Cancel"/>
+ <button label="Applica" label_selected="Applica" name="Apply"/>
+ <button label="Informazioni..." label_selected="Informazioni..." name="About..."/>
+ <button label="Aiuto" label_selected="Aiuto" name="Help"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_preview_animation.xml b/indra/newview/skins/default/xui/it/floater_preview_animation.xml
index 93235b7859..95a8a96066 100644
--- a/indra/newview/skins/default/xui/it/floater_preview_animation.xml
+++ b/indra/newview/skins/default/xui/it/floater_preview_animation.xml
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="preview_anim">
- <text name="desc txt">
- Descrizione:
- </text>
- <button label="Esegui inworld" label_selected="Ferma" name="Anim play btn" tool_tip="Esegui questa animazione così che altri possano vederla."/>
- <button label="Esegui localmente" label_selected="Ferma" name="Anim audition btn" tool_tip="Esegui questa animazione così che solo tu possa vederla."/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="preview_anim">
+ <text name="desc txt">
+ Descrizione:
+ </text>
+ <button label="Esegui inworld" label_selected="Ferma" name="Anim play btn" tool_tip="Esegui questa animazione così che altri possano vederla."/>
+ <button label="Esegui localmente" label_selected="Ferma" name="Anim audition btn" tool_tip="Esegui questa animazione così che solo tu possa vederla."/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_preview_classified.xml b/indra/newview/skins/default/xui/it/floater_preview_classified.xml
index 26e783a7c7..f78c70b1fe 100644
--- a/indra/newview/skins/default/xui/it/floater_preview_classified.xml
+++ b/indra/newview/skins/default/xui/it/floater_preview_classified.xml
@@ -1,2 +1,2 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="classified_preview" title="Informazione Riservata"/>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="classified_preview" title="Informazione Riservata"/>
diff --git a/indra/newview/skins/default/xui/it/floater_preview_event.xml b/indra/newview/skins/default/xui/it/floater_preview_event.xml
index 7fd3407d5e..7cc99a9fea 100644
--- a/indra/newview/skins/default/xui/it/floater_preview_event.xml
+++ b/indra/newview/skins/default/xui/it/floater_preview_event.xml
@@ -1,2 +1,2 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="event_preview" title="Informazione sull&apos;evento"/>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="event_preview" title="Informazione sull&apos;evento"/>
diff --git a/indra/newview/skins/default/xui/it/floater_preview_gesture.xml b/indra/newview/skins/default/xui/it/floater_preview_gesture.xml
index 13688c4c8d..60d3a7710e 100644
--- a/indra/newview/skins/default/xui/it/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/it/floater_preview_gesture.xml
@@ -1,61 +1,58 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="gesture_preview">
- <string name="stop_txt">
- Stop
- </string>
- <string name="preview_txt">
- Anteprima
- </string>
- <string name="none_text">
- -- Nulla --
- </string>
- <text name="desc_label">
- Descrizione:
- </text>
- <text name="trigger_label">
- Parole chiave:
- </text>
- <text name="replace_text" tool_tip="Sostituisci le parole chiave con questi termini. Per esempio, sostituire la parola chiave &apos;salve&apos; con &apos;ciao&apos; modificherà la chat &apos;Volevo solo dire salve&apos; in &apos;Volevo solo dire ciao&apos; e avvierà la gesture!">
- Sostituisci con:
- </text>
- <line_editor name="replace_editor" tool_tip="Sostituisci le parole chiave con questi termini. Per esempio, sostituire la parola chiave &apos;salve&apos; con &apos;ciao&apos; modificherà la chat &apos;Volevo solo dire salve&apos; in &apos;Volevo solo dire ciao&apos; e avvierà la gesture!"/>
- <text name="key_label">
- Scorciatoia da tastiera:
- </text>
- <combo_box label="Nessuno" name="modifier_combo"/>
- <combo_box label="Nessuno" name="key_combo"/>
- <text name="library_label">
- Libreria:
- </text>
- <text name="steps_label">
- Fasi:
- </text>
- <scroll_list name="library_list">
- Animation
-Suono
-Chat
-Pausa
- </scroll_list>
- <button label="Aggiungi &gt;&gt;" name="add_btn"/>
- <button label="Vai su" name="up_btn"/>
- <button label="Vai giù" name="down_btn"/>
- <button label="Elimina" name="delete_btn"/>
- <text name="help_label">
- Tutti i passi avvengono
-simultaneamente, a meno che tu
-non aggiunga pause.
- </text>
- <radio_group name="animation_trigger_type">
- <radio_item name="start">
- Avvio
- </radio_item>
- <radio_item name="stop">
- Stop
- </radio_item>
- </radio_group>
- <check_box label="finché le animazioni sono eseguite" name="wait_anim_check"/>
- <check_box label="tempo in secondi" name="wait_time_check"/>
- <check_box label="Attiva" name="active_check" tool_tip="Le gesture attivate possono essere eseguite scrivendo in chat la parola chiave o premendo i tasti chiave. Le gesture generalmente si disattivano quando c&apos;è un conflitto nei relativi tasti."/>
- <button label="Anteprima" name="preview_btn"/>
- <button label="Salva" name="save_btn"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="gesture_preview">
+ <string name="stop_txt">
+ Stop
+ </string>
+ <string name="preview_txt">
+ Anteprima
+ </string>
+ <string name="none_text">
+ -- Nulla --
+ </string>
+ <text name="desc_label">
+ Descrizione:
+ </text>
+ <text name="trigger_label">
+ Parole chiave:
+ </text>
+ <text left="208" name="replace_text" tool_tip="Sostituisci le parole chiave con questi termini. Per esempio, sostituire la parola chiave &apos;salve&apos; con &apos;ciao&apos; modificherà la chat &apos;Volevo solo dire salve&apos; in &apos;Volevo solo dire ciao&apos; e avvierà la gesture!">
+ Sostituisci con:
+ </text>
+ <line_editor name="replace_editor" tool_tip="Sostituisci le parole chiave con questi termini. Per esempio, sostituire la parola chiave &apos;salve&apos; con &apos;ciao&apos; modificherà la chat &apos;Volevo solo dire salve&apos; in &apos;Volevo solo dire ciao&apos; e avvierà la gesture!"/>
+ <text name="key_label">
+ Scorciatoia da tastiera:
+ </text>
+ <combo_box label="Nessuno" name="modifier_combo" left="156" width="76"/>
+ <combo_box label="Nessuno" name="key_combo" width="76" left_delta="80"/>
+ <text name="library_label">
+ Libreria:
+ </text>
+ <text name="steps_label">
+ Fasi:
+ </text>
+ <scroll_list name="library_list">
+ Animation
+Suono
+Chat
+Pausa
+ </scroll_list>
+ <button label="Aggiungi &gt;&gt;" name="add_btn"/>
+ <button label="Vai su" name="up_btn"/>
+ <button label="Vai giù" name="down_btn"/>
+ <button label="Elimina" name="delete_btn"/>
+ <text name="help_label">
+ Tutti i passi avvengono
+simultaneamente, a meno che tu
+non aggiunga pause.
+ </text>
+ <radio_group name="animation_trigger_type">
+ <radio_item name="start" label="Avvio" />
+ <radio_item name="stop" label="Stop" />
+ </radio_group>
+ <check_box left="226" label="finché le animazioni sono eseguite" name="wait_anim_check"/>
+ <check_box label="tempo in secondi" name="wait_time_check"/>
+ <line_editor left_delta="114" name="wait_time_editor" />
+ <check_box label="Attiva" name="active_check" tool_tip="Le gesture attivate possono essere eseguite scrivendo in chat la parola chiave o premendo i tasti chiave. Le gesture generalmente si disattivano quando c&apos;è un conflitto nei relativi tasti."/>
+ <button label="Anteprima" name="preview_btn"/>
+ <button label="Salva" name="save_btn"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_preview_notecard.xml b/indra/newview/skins/default/xui/it/floater_preview_notecard.xml
index 65131e41ed..b0608c8546 100644
--- a/indra/newview/skins/default/xui/it/floater_preview_notecard.xml
+++ b/indra/newview/skins/default/xui/it/floater_preview_notecard.xml
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="preview notecard" title="Nota:">
- <button label="Salva" label_selected="Salva" name="Save"/>
- <text name="desc txt">
- Descrizione:
- </text>
- <text_editor name="Notecard Editor">
- In caricamento...
- </text_editor>
- <string name="no_object">
- Impossibile trovare l&apos;oggetto che contiene questa nota.
- </string>
- <string name="not_allowed">
- Non ti è permesso vedere questa nota.
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="preview notecard" title="Nota:">
+ <button label="Salva" label_selected="Salva" name="Save"/>
+ <text name="desc txt">
+ Descrizione:
+ </text>
+ <text_editor name="Notecard Editor">
+ In caricamento...
+ </text_editor>
+ <string name="no_object">
+ Impossibile trovare l&apos;oggetto che contiene questa nota.
+ </string>
+ <string name="not_allowed">
+ Non ti è permesso vedere questa nota.
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_preview_sound.xml b/indra/newview/skins/default/xui/it/floater_preview_sound.xml
index 3a597ba193..5fd015f7fe 100644
--- a/indra/newview/skins/default/xui/it/floater_preview_sound.xml
+++ b/indra/newview/skins/default/xui/it/floater_preview_sound.xml
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="preview_sound">
- <text name="desc txt">
- Descrizione:
- </text>
- <button label="Avvia localmente" label_selected="Avvia localmente" name="Sound audition btn" tool_tip="Avvia questo suono in modo che sia ascoltato solo da te."/>
- <button label="Avvia inworld" label_selected="Avvia inworld" name="Sound play btn" tool_tip="Avvia questo suono in modo che sia ascoltato da tutti."/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="preview_sound">
+ <text name="desc txt">
+ Descrizione:
+ </text>
+ <button label="Avvia localmente" label_selected="Avvia localmente" name="Sound audition btn" tool_tip="Avvia questo suono in modo che sia ascoltato solo da te."/>
+ <button label="Avvia inworld" label_selected="Avvia inworld" name="Sound play btn" tool_tip="Avvia questo suono in modo che sia ascoltato da tutti."/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_preview_texture.xml b/indra/newview/skins/default/xui/it/floater_preview_texture.xml
index 94a50752c2..e3232730e2 100644
--- a/indra/newview/skins/default/xui/it/floater_preview_texture.xml
+++ b/indra/newview/skins/default/xui/it/floater_preview_texture.xml
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="preview_texture">
- <text name="desc txt">
- Descrizione:
- </text>
- <text name="dimensions">
- Dimensioni: [WIDTH] x [HEIGHT]
- </text>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="preview_texture">
+ <text name="desc txt">
+ Descrizione:
+ </text>
+ <text name="dimensions">
+ Dimensioni: [WIDTH] x [HEIGHT]
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_region_info.xml b/indra/newview/skins/default/xui/it/floater_region_info.xml
index 8972eedcef..a802550bf4 100644
--- a/indra/newview/skins/default/xui/it/floater_region_info.xml
+++ b/indra/newview/skins/default/xui/it/floater_region_info.xml
@@ -1,2 +1,2 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="regioninfo" title="Regione/Proprietà"/>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="regioninfo" title="Regione/Proprietà"/>
diff --git a/indra/newview/skins/default/xui/it/floater_report_abuse.xml b/indra/newview/skins/default/xui/it/floater_report_abuse.xml
index 74d07d4d4c..abcd953c13 100644
--- a/indra/newview/skins/default/xui/it/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/it/floater_report_abuse.xml
@@ -1,108 +1,109 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_report_abuse" title="Denuncia di Abuso">
- <check_box label="Includi una fotografia" name="screen_check"/>
- <text name="reporter_title">
- Segnalato da:
- </text>
- <text name="reporter_field">
- Loremipsum Dolorsitamut
- </text>
- <text name="sim_title">
- Regione:
- </text>
- <text name="sim_field">
- Nome Regione
- </text>
- <text name="pos_title">
- Posizione:
- </text>
- <text name="pos_field">
- {128.1, 128.1, 15.4}
- </text>
- <text name="select_object_label">
- Clicca sul pulsante e poi sull&apos;oggetto:
- </text>
- <button label="" label_selected="" name="pick_btn" tool_tip="Selezionatore di oggetti - Identifica un oggetto come argomento di questa segnalazione"/>
- <text name="object_name_label">
- Nome:
- </text>
- <text name="object_name">
- Consetetur Sadipscing
- </text>
- <text name="owner_name_label">
- Proprietario:
- </text>
- <text name="owner_name">
- Hendrerit Vulputate
- </text>
- <combo_box name="category_combo" tool_tip="Categoria -- scegli la categoria che descrive meglio questa segnalazione">
- <combo_box.item name="Select_category" label="Scegli la categoria"/>
- <combo_box.item name="Age__Age_play" label="Età &gt; Far finta di essere minore"/>
- <combo_box.item name="Age__Adult_resident_on_Teen_Second_Life" label="Età &gt; Residente adulto nella Teen Second Life"/>
-
-
-
- <combo_box.item name="Assault__Combat_sandbox___unsafe_area" label="Assalto &gt; sandbox da combattimento / area pericolosa"/>
- <combo_box.item name="Assault__Safe_area" label="Assalto &gt; Area sicura"/>
- <combo_box.item name="Assault__Weapons_testing_sandbox" label="Assalto &gt; Test di armi in sandbox"/>
- <combo_box.item name="Commerce__Failure_to_deliver_product_or_service" label="Commercio &gt; Problema nella consegna di un prodotto o servizio"/>
- <combo_box.item name="Disclosure__Real_world_information" label="Divulgazione &gt; Informazioni del mondo reale"/>
- <combo_box.item name="Disclosure__Remotely_monitoring chat" label="Divulgazione &gt; Monitoraggio remoto di chat"/>
- <combo_box.item name="Disclosure__Second_Life_information_chat_IMs" label="Divulgazione &gt; Informazione/chat/IMs di Second Life"/>
- <combo_box.item name="Disturbing_the_peace__Unfair_use_of_region_resources" label="Disturbo della quiete &gt; Uso sleale delle risorse di una regione"/>
- <combo_box.item name="Disturbing_the_peace__Excessive_scripted_objects" label="Disturbo della quiete &gt; Numero eccessivo di oggetti scriptati"/>
- <combo_box.item name="Disturbing_the_peace__Object_littering" label="Disturbo della quiete &gt; Oggetti messi a soqquadro"/>
- <combo_box.item name="Disturbing_the_peace__Repetitive_spam" label="Disturbo della quiete &gt; Spam continuato"/>
- <combo_box.item name="Disturbing_the_peace__Unwanted_advert_spam" label="Disturbo della quiete &gt; Spam pubblicitario non richiesto"/>
- <combo_box.item name="Fraud__L$" label="Truffa &gt; L$"/>
- <combo_box.item name="Fraud__Land" label="Truffa &gt; Terreno"/>
- <combo_box.item name="Fraud__Pyramid_scheme_or_chain_letter" label="Truffa &gt; Multilivello o catena di Sant&apos;Antonio"/>
- <combo_box.item name="Fraud__US$" label="Truffa &gt; Dollari US$"/>
- <combo_box.item name="Harassment__Advert_farms___visual_spam" label="Molestie &gt; Territori adibiti a pubblicità / spam visivo"/>
- <combo_box.item name="Harassment__Defaming_individuals_or_groups" label="Molestie &gt; Diffamazione di individui o gruppi"/>
- <combo_box.item name="Harassment__Impeding_movement" label="Molestie &gt; Impedimento di movimenti"/>
- <combo_box.item name="Harassment__Sexual_harassment" label="Molestie &gt; Molestie sessuali"/>
- <combo_box.item name="Harassment__Solicting_inciting_others_to_violate_ToS" label="Molestie &gt; Sollecitare/incitare altri a violare i Termini di Servizio"/>
- <combo_box.item name="Harassment__Verbal_abuse" label="Molestie &gt; Abusi verbali"/>
- <combo_box.item name="Indecency__Broadly_offensive_content_or_conduct" label="Indecenza &gt; Condotta o contenuti largamente offensivi"/>
-
-
-
- <combo_box.item name="Indecency__Inappropriate_avatar_name" label="Indecenza &gt; Nome di un avatar inappropriato"/>
-
-
-
- <combo_box.item name="Intellectual_property_infringement_Content_Removal" label="Violazione della proprietà intellettuale &gt; Rimozione contenuti"/>
- <combo_box.item name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit" label="Violazione della proprietà intellettuale &gt; CopyBot o sblocco di permessi"/>
- <combo_box.item name="Intolerance" label="Intolleranza"/>
- <combo_box.item name="Land__Abuse_of_sandbox_resources" label="Terreno &gt; Abuso delle risorse di una sandbox"/>
- <combo_box.item name="Land__Encroachment__Objects_textures" label="Terreno &gt; Invasione &gt; Oggetti/textures"/>
- <combo_box.item name="Land__Encroachment__Particles" label="Terreno &gt; Invasione &gt; Particelle"/>
- <combo_box.item name="Land__Encroachment__Trees_plants" label="Terreno &gt; Invasione &gt; Alberi/piante"/>
- <combo_box.item name="Wagering_gambling" label="Chiedere l&apos;elemosina/gioco d&apos;azzardo"/>
- <combo_box.item name="Other" label="Altro"/>
- </combo_box>
- <text name="abuser_name_title">
- Nome di chi ha commesso l&apos;abuso:
- </text>
- <button label="Scegli un residente" label_selected="" name="select_abuser" tool_tip="Scegli il nome di chi ha commesso l&apos;abuso dalla lista"/>
- <check_box label="Non conosco il nome di chi ha fatto l&apos;abuso" name="omit_abuser_name" tool_tip="Metti qui la spunta se non sei in grado di fornire il nome di chi ha fatto l&apos;abuso"/>
- <text name="abuser_name_title2">
- Luogo dell&apos;abuso:
- </text>
- <text name="sum_title">
- Riassunto:
- </text>
- <text name="dscr_title">
- Dettagli:
- </text>
- <text name="bug_aviso">
- Ti preghiamo di essere circostanziato riguardo data, luogo, natura
-dell&apos;abuso, testo rilevante di chat/IM, e, se possibile, indica l&apos;oggetto.
- </text>
- <text name="incomplete_title">
- Nota: Segnalazioni incomplete non saranno esaminate.
- </text>
- <button label="Annulla" label_selected="Annulla" name="cancel_btn"/>
- <button label="Segnala abuso" label_selected="Segnala abuso" name="send_btn"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_report_abuse" title="Denuncia di Abuso">
+ <check_box label="Includi una fotografia" name="screen_check"/>
+ <text name="reporter_title">
+ Segnalato da:
+ </text>
+ <text name="reporter_field">
+ Loremipsum Dolorsitamut
+ </text>
+ <text name="sim_title">
+ Regione:
+ </text>
+ <text name="sim_field">
+ Nome Regione
+ </text>
+ <text name="pos_title">
+ Posizione:
+ </text>
+ <text name="pos_field">
+ {128.1, 128.1, 15.4}
+ </text>
+ <text name="select_object_label">
+ Clicca sul pulsante e poi sull&apos;oggetto:
+ </text>
+ <button label="" label_selected="" name="pick_btn" tool_tip="Selezionatore di oggetti - Identifica un oggetto come argomento di questa segnalazione"/>
+ <text name="object_name_label">
+ Nome:
+ </text>
+ <text name="object_name">
+ Consetetur Sadipscing
+ </text>
+ <text name="owner_name_label">
+ Proprietario:
+ </text>
+ <text name="owner_name">
+ Hendrerit Vulputate
+ </text>
+ <combo_box name="category_combo" tool_tip="Categoria -- scegli la categoria che descrive meglio questa segnalazione">
+ <combo_box.item name="Select_category" label="Scegli la categoria"/>
+ <combo_box.item name="Age__Age_play" label="Età &gt; Far finta di essere minore"/>
+ <combo_box.item name="Age__Adult_resident_on_Teen_Second_Life" label="Età &gt; Residente adulto nella Teen Second Life"/>
+ <combo_item name="Age__Underage_resident_outside_of_Teen_Second_Life">
+ Età &gt; Residente minorenne al di fuori della &apos;Second Life per Teenager&apos;
+ </combo_item>
+ <combo_box.item name="Assault__Combat_sandbox___unsafe_area" label="Assalto &gt; sandbox da combattimento / area pericolosa"/>
+ <combo_box.item name="Assault__Safe_area" label="Assalto &gt; Area sicura"/>
+ <combo_box.item name="Assault__Weapons_testing_sandbox" label="Assalto &gt; Test di armi in sandbox"/>
+ <combo_box.item name="Commerce__Failure_to_deliver_product_or_service" label="Commercio &gt; Problema nella consegna di un prodotto o servizio"/>
+ <combo_box.item name="Disclosure__Real_world_information" label="Divulgazione &gt; Informazioni del mondo reale"/>
+ <combo_box.item name="Disclosure__Remotely_monitoring chat" label="Divulgazione &gt; Monitoraggio remoto di chat"/>
+ <combo_box.item name="Disclosure__Second_Life_information_chat_IMs" label="Divulgazione &gt; Informazione/chat/IMs di Second Life"/>
+ <combo_box.item name="Disturbing_the_peace__Unfair_use_of_region_resources" label="Disturbo della quiete &gt; Uso sleale delle risorse di una regione"/>
+ <combo_box.item name="Disturbing_the_peace__Excessive_scripted_objects" label="Disturbo della quiete &gt; Numero eccessivo di oggetti scriptati"/>
+ <combo_box.item name="Disturbing_the_peace__Object_littering" label="Disturbo della quiete &gt; Oggetti messi a soqquadro"/>
+ <combo_box.item name="Disturbing_the_peace__Repetitive_spam" label="Disturbo della quiete &gt; Spam continuato"/>
+ <combo_box.item name="Disturbing_the_peace__Unwanted_advert_spam" label="Disturbo della quiete &gt; Spam pubblicitario non richiesto"/>
+ <combo_box.item name="Fraud__L$" label="Truffa &gt; L$"/>
+ <combo_box.item name="Fraud__Land" label="Truffa &gt; Terreno"/>
+ <combo_box.item name="Fraud__Pyramid_scheme_or_chain_letter" label="Truffa &gt; Multilivello o catena di Sant&apos;Antonio"/>
+ <combo_box.item name="Fraud__US$" label="Truffa &gt; Dollari US$"/>
+ <combo_box.item name="Harassment__Advert_farms___visual_spam" label="Molestie &gt; Territori adibiti a pubblicità / spam visivo"/>
+ <combo_box.item name="Harassment__Defaming_individuals_or_groups" label="Molestie &gt; Diffamazione di individui o gruppi"/>
+ <combo_box.item name="Harassment__Impeding_movement" label="Molestie &gt; Impedimento di movimenti"/>
+ <combo_box.item name="Harassment__Sexual_harassment" label="Molestie &gt; Molestie sessuali"/>
+ <combo_box.item name="Harassment__Solicting_inciting_others_to_violate_ToS" label="Molestie &gt; Sollecitare/incitare altri a violare i Termini di Servizio"/>
+ <combo_box.item name="Harassment__Verbal_abuse" label="Molestie &gt; Abusi verbali"/>
+ <combo_box.item name="Indecency__Broadly_offensive_content_or_conduct" label="Indecenza &gt; Condotta o contenuti largamente offensivi"/>
+ <combo_box.item name="Indecency__Inappropriate_avatar_name" label="Indecenza &gt; Nome di un avatar inappropriato"/>
+ <combo_item name="Indecency__Mature_content_in_PG_region">
+ Indecenza &gt; Contenuto o condotta inappropriata in una regione PG
+ </combo_item>
+ <combo_item name="Indecency__Inappropriate_content_in_Mature_region">
+ Indecenza &gt; Contenuto o condotta inappropriata in una regione Mature
+ </combo_item>
+ <combo_box.item name="Intellectual_property_infringement_Content_Removal" label="Violazione della proprietà intellettuale &gt; Rimozione contenuti"/>
+ <combo_box.item name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit" label="Violazione della proprietà intellettuale &gt; CopyBot o sblocco di permessi"/>
+ <combo_box.item name="Intolerance" label="Intolleranza"/>
+ <combo_box.item name="Land__Abuse_of_sandbox_resources" label="Terreno &gt; Abuso delle risorse di una sandbox"/>
+ <combo_box.item name="Land__Encroachment__Objects_textures" label="Terreno &gt; Invasione &gt; Oggetti/textures"/>
+ <combo_box.item name="Land__Encroachment__Particles" label="Terreno &gt; Invasione &gt; Particelle"/>
+ <combo_box.item name="Land__Encroachment__Trees_plants" label="Terreno &gt; Invasione &gt; Alberi/piante"/>
+ <combo_box.item name="Wagering_gambling" label="Chiedere l&apos;elemosina/gioco d&apos;azzardo"/>
+ <combo_box.item name="Other" label="Altro"/>
+ </combo_box>
+ <text name="abuser_name_title">
+ Nome di chi ha commesso l&apos;abuso:
+ </text>
+ <button label="Scegli un residente" label_selected="" name="select_abuser" tool_tip="Scegli il nome di chi ha commesso l&apos;abuso dalla lista"/>
+ <check_box label="Non conosco il nome di chi ha fatto l&apos;abuso" name="omit_abuser_name" tool_tip="Metti qui la spunta se non sei in grado di fornire il nome di chi ha fatto l&apos;abuso"/>
+ <text name="abuser_name_title2">
+ Luogo dell&apos;abuso:
+ </text>
+ <text name="sum_title">
+ Riassunto:
+ </text>
+ <text name="dscr_title">
+ Dettagli:
+ </text>
+ <text name="bug_aviso">
+ Ti preghiamo di essere circostanziato riguardo data,
+luogo, natura dell&apos;abuso, testo rilevante di chat/IM, e,
+se possibile, indica l&apos;oggetto.
+ </text>
+ <text name="incomplete_title">
+ Nota: Segnalazioni incomplete non saranno esaminate.
+ </text>
+ <button label="Annulla" label_selected="Annulla" name="cancel_btn"/>
+ <button label="Segnala abuso" label_selected="Segnala abuso" name="send_btn"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_script_debug.xml b/indra/newview/skins/default/xui/it/floater_script_debug.xml
index f66a44a2ea..39736dde67 100644
--- a/indra/newview/skins/default/xui/it/floater_script_debug.xml
+++ b/indra/newview/skins/default/xui/it/floater_script_debug.xml
@@ -1,6 +1,6 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<multi_floater name="script debug floater" title="Avvisi/Errori Script">
- <tab_container name="Preview Tabs">
- <floater label="Script" name="all_scripts" title="[Tutti gli script]"/>
- </tab_container>
-</multi_floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<multi_floater name="script debug floater" title="Avvisi/Errori Script">
+ <tab_container name="Preview Tabs">
+ <floater label="Script" name="all_scripts" title="[Tutti gli script]"/>
+ </tab_container>
+</multi_floater>
diff --git a/indra/newview/skins/default/xui/it/floater_script_preview.xml b/indra/newview/skins/default/xui/it/floater_script_preview.xml
index ceead0ab53..20af60b2d4 100644
--- a/indra/newview/skins/default/xui/it/floater_script_preview.xml
+++ b/indra/newview/skins/default/xui/it/floater_script_preview.xml
@@ -1,6 +1,6 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="preview lsl text" title="Script: Script di rotazione">
- <text name="desc txt">
- Descrizione:
- </text>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="preview lsl text" title="Script: Script di rotazione">
+ <text name="desc txt">
+ Descrizione:
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_script_queue.xml b/indra/newview/skins/default/xui/it/floater_script_queue.xml
index 5695abe295..e5b38fea62 100644
--- a/indra/newview/skins/default/xui/it/floater_script_queue.xml
+++ b/indra/newview/skins/default/xui/it/floater_script_queue.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="queue" title="Progressione reset">
- <button label="Chiudi" label_selected="Chiudi" name="close"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="queue" title="Progressione reset">
+ <button label="Chiudi" label_selected="Chiudi" name="close"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_script_search.xml b/indra/newview/skins/default/xui/it/floater_script_search.xml
index f100ab7f51..ebd8ee359f 100644
--- a/indra/newview/skins/default/xui/it/floater_script_search.xml
+++ b/indra/newview/skins/default/xui/it/floater_script_search.xml
@@ -1,13 +1,13 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="script search" title="Cerca Script">
- <check_box label="Senza distinzione tra maiuscole e minuscole" name="case_text"/>
- <button label="Cerca" label_selected="Cerca" name="search_btn"/>
- <button label="Sostituisci" label_selected="Sostituisci" name="replace_btn"/>
- <button label="Sostituisci tutto" label_selected="Sostituisci tutto" name="replace_all_btn"/>
- <text name="txt">
- Cerca
- </text>
- <text name="txt2">
- Sostituisci
- </text>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="script search" title="Cerca Script">
+ <check_box label="Senza distinzione tra maiuscole e minuscole" name="case_text"/>
+ <button label="Cerca" label_selected="Cerca" name="search_btn"/>
+ <button label="Sostituisci" label_selected="Sostituisci" name="replace_btn"/>
+ <button label="Sostituisci tutto" label_selected="Sostituisci tutto" name="replace_all_btn"/>
+ <text name="txt">
+ Cerca
+ </text>
+ <text name="txt2">
+ Sostituisci
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_select_key.xml b/indra/newview/skins/default/xui/it/floater_select_key.xml
index bdc0b86a41..04a7726497 100644
--- a/indra/newview/skins/default/xui/it/floater_select_key.xml
+++ b/indra/newview/skins/default/xui/it/floater_select_key.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="modal container" title="">
- <button label="Annulla" label_selected="Annulla" name="Cancel"/>
- <text name="Save item as:">
- Premi un tasto per selezionare
- </text>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="modal container" title="">
+ <button label="Annulla" label_selected="Annulla" name="Cancel"/>
+ <text name="Save item as:">
+ Premi un tasto per selezionare
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_sell_land.xml b/indra/newview/skins/default/xui/it/floater_sell_land.xml
index 01c7fca0e6..d9cf612d33 100644
--- a/indra/newview/skins/default/xui/it/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/it/floater_sell_land.xml
@@ -1,62 +1,61 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="sell land" title="Vendi terra">
- <text name="info_parcel_label">
- Terreno:
- </text>
- <text name="info_parcel">
- NOME APPEZZAMENTO
- </text>
- <text name="info_size_label">
- Dimensioni:
- </text>
- <text name="info_size">
- [AREA] mq
- </text>
- <text name="info_action">
- Per vendere questo terreno:
- </text>
- <text name="price_label">
- Imposta prezzo:
- </text>
- <text name="price_text">
- Scegli un prezzo appropriato per questa terra.
- </text>
- <text name="price_ld">
- L$
- </text>
- <text name="price_per_m">
- ([PER_METER] L$ per metro quadro)
- </text>
- <text name="sell_to_label">
- Vendi la terra a:
- </text>
- <text name="sell_to_text">
- Scegli se vendere a tutti o ad un compratore in particolare.
- </text>
- <combo_box name="sell_to">
- <combo_box.item name="--selectone--" label="selezionane uno --"/>
- <combo_box.item name="Anyone" label="Chiunque"/>
- <combo_box.item name="Specificuser:" label="Utente specifico:"/>
- </combo_box>
- <button label="Seleziona..." name="sell_to_select_agent"/>
- <text name="sell_objects_label">
- Vendi gli oggetti con la terra?
- </text>
- <text name="sell_objects_text">
- Gli oggetti trasferibili del proprietario della terra sul terreno cambieranno proprietario.
- </text>
- <radio_group name="sell_objects">
- <radio_item name="no">
- No, voglio mantenere la proprietà degli oggetti
- </radio_item>
- <radio_item name="yes">
- Si, vendi gli oggetti con la terra
- </radio_item>
- </radio_group>
- <button label="Mostra oggetti" name="show_objects"/>
- <text name="nag_message_label">
- RICORDA: tutte le vendite sono definitive.
- </text>
- <button label="Metti la terra in vendita" name="sell_btn"/>
- <button label="Annulla" name="cancel_btn"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="sell land" title="Vendi terra">
+ <text name="info_parcel_label">
+ Terreno:
+ </text>
+ <text name="info_parcel" left="82">
+ NOME APPEZZAMENTO
+ </text>
+ <text name="info_size_label">
+ Dimensioni:
+ </text>
+ <text name="info_size" left="82">
+ [AREA] m²
+ </text>
+ <text height="28" name="info_action" bottom_delta="-57">
+ Per vendere questo
+terreno:
+ </text>
+ <icon bottom_delta="-86" name="step_price" />
+ <text name="price_label">
+ Imposta prezzo:
+ </text>
+ <text name="price_text">
+ Scegli un prezzo appropriato per questa terra.
+ </text>
+ <text name="price_ld">
+ L$
+ </text>
+ <text name="price_per_m">
+ ([PER_METER] L$ per metro quadro)
+ </text>
+ <text name="sell_to_label">
+ Vendi la terra a:
+ </text>
+ <text name="sell_to_text">
+ Scegli se vendere a tutti o ad un compratore in particolare.
+ </text>
+ <combo_box name="sell_to">
+ <combo_box.item name="--selectone--" label="selezionane uno --"/>
+ <combo_box.item name="Anyone" label="Chiunque"/>
+ <combo_box.item name="Specificuser:" label="Utente specifico:"/>
+ </combo_box>
+ <button label="Seleziona..." name="sell_to_select_agent"/>
+ <text name="sell_objects_label">
+ Vendi gli oggetti con la terra?
+ </text>
+ <text name="sell_objects_text">
+ Gli oggetti trasferibili del proprietario della terra sul terreno
+cambieranno proprietario.
+ </text>
+ <radio_group name="sell_objects" bottom_delta="-58" >
+ <radio_item name="no" label="No, voglio mantenere la proprietà degli oggetti" />
+ <radio_item name="yes" label="Si, vendi gli oggetti con la terra" />
+ </radio_group>
+ <button label="Mostra oggetti" name="show_objects"/>
+ <text name="nag_message_label">
+ RICORDA: tutte le vendite sono definitive.
+ </text>
+ <button label="Metti la terra in vendita" name="sell_btn"/>
+ <button label="Annulla" name="cancel_btn"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_settings_debug.xml b/indra/newview/skins/default/xui/it/floater_settings_debug.xml
index 0f101d8b81..6dd1b7978d 100644
--- a/indra/newview/skins/default/xui/it/floater_settings_debug.xml
+++ b/indra/newview/skins/default/xui/it/floater_settings_debug.xml
@@ -1,13 +1,13 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="settings_debug" title="Configurazioni per il debug">
- <combo_box name="boolean_combo">
- <combo_box.item name="TRUE" label="VERO"/>
- <combo_box.item name="FALSE" label="FALSO"/>
- </combo_box>
- <color_swatch label="Colore" name="color_swatch"/>
- <spinner label="x" name="val_spinner_1"/>
- <spinner label="x" name="val_spinner_2"/>
- <spinner label="x" name="val_spinner_3"/>
- <spinner label="x" name="val_spinner_4"/>
- <button label="Reimposta i valori di default" name="default_btn"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="settings_debug" title="Configurazioni per il debug">
+ <combo_box name="boolean_combo">
+ <combo_box.item name="TRUE" label="VERO"/>
+ <combo_box.item name="FALSE" label="FALSO"/>
+ </combo_box>
+ <color_swatch label="Colore" name="color_swatch"/>
+ <spinner label="x" name="val_spinner_1"/>
+ <spinner label="x" name="val_spinner_2"/>
+ <spinner label="x" name="val_spinner_3"/>
+ <spinner label="x" name="val_spinner_4"/>
+ <button label="Reimposta i valori di default" name="default_btn" width="210"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_snapshot.xml b/indra/newview/skins/default/xui/it/floater_snapshot.xml
index 1c24b53cd8..808158ff7e 100644
--- a/indra/newview/skins/default/xui/it/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/it/floater_snapshot.xml
@@ -1,85 +1,79 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Snapshot" title="Anteprima della fotografia">
- <text name="type_label">
- Destinazione della fotografia
- </text>
- <radio_group label="Tipo di fotografia" name="snapshot_type_radio">
- <radio_item name="postcard">
- Invia via email
- </radio_item>
- <radio_item name="texture">
- Salva nel tuo inventario ([AMOUNT] L$)
- </radio_item>
- <radio_item name="local">
- Salva sul tuo pc
- </radio_item>
- </radio_group>
- <text name="file_size_label">
- Grandezza del file: [SIZE] KB
- </text>
- <button label="Aggiorna la fotografia" name="new_snapshot_btn"/>
- <button label="Invia" name="send_btn"/>
- <button label="Salva ([AMOUNT] L$)" name="upload_btn"/>
- <flyout_button label="Salva" name="save_btn" tool_tip="Salva l&apos;immagine come file">
- <flyout_button_item name="save_item" label="Salva"/>
- <flyout_button_item name="saveas_item" label="Salva come..."/>
- </flyout_button>
- <button label="Annulla" name="discard_btn"/>
- <button label="Espandi &gt;&gt;" name="more_btn" tool_tip="Opzioni avanzate"/>
- <button label="&lt;&lt; Diminuisci" name="less_btn" tool_tip="Opzioni avanzate"/>
- <text name="type_label2">
- Grandezza
- </text>
- <text name="format_label">
- Formato
- </text>
- <combo_box label="Risoluzione" name="postcard_size_combo">
- <combo_box.item name="CurrentWindow" label="Finestra corrente"/>
- <combo_box.item name="640x480" label="640x480"/>
- <combo_box.item name="800x600" label="800x600"/>
- <combo_box.item name="1024x768" label="1024x768"/>
- <combo_box.item name="Custom" label="Personalizzata"/>
- </combo_box>
- <combo_box label="Risoluzione" name="texture_size_combo">
- <combo_box.item name="CurrentWindow" label="Finestra corrente"/>
- <combo_box.item name="Small(128x128)" label="Piccola (128x128)"/>
- <combo_box.item name="Medium(256x256)" label="Media (256x256)"/>
- <combo_box.item name="Large(512x512)" label="Larga (512x512)"/>
- <combo_box.item name="Custom" label="Personalizzata"/>
- </combo_box>
- <combo_box label="Risoluzione" name="local_size_combo">
- <combo_box.item name="CurrentWindow" label="Finestra corrente"/>
- <combo_box.item name="320x240" label="320x240"/>
- <combo_box.item name="640x480" label="640x480"/>
- <combo_box.item name="800x600" label="800x600"/>
- <combo_box.item name="1024x768" label="1024x768"/>
- <combo_box.item name="1280x1024" label="1280x1024"/>
- <combo_box.item name="1600x1200" label="1600x1200"/>
- <combo_box.item name="Custom" label="Personalizzata"/>
- </combo_box>
- <combo_box label="Formato" name="local_format_combo">
- <combo_box.item name="PNG" label="PNG"/>
- <combo_box.item name="JPEG" label="JPEG"/>
- <combo_box.item name="BMP" label="BMP"/>
- </combo_box>
- <spinner label="Larghezza" name="snapshot_width"/>
- <spinner label="Altezza" name="snapshot_height"/>
- <check_box label="Mantieni le proporzioni" name="keep_aspect_check"/>
- <slider label="Qualità d&apos;immagine" name="image_quality_slider"/>
- <text name="layer_type_label">
- Fotografa:
- </text>
- <combo_box label="Layer dell&apos;immagine" name="layer_types">
- <combo_box.item name="Colors" label="Colori"/>
- <combo_box.item name="Depth" label="Profondità"/>
- <combo_box.item name="ObjectMattes" label="Colori primari degli oggetti"/>
- </combo_box>
- <check_box label="Mostra l&apos;interfaccia nella fotografia" name="ui_check"/>
- <check_box label="Mostra i dispositivi indossati nella fotografia" name="hud_check"/>
- <check_box label="Mantieni aperto dopo aver salvato" name="keep_open_check"/>
- <check_box label="Blocca l&apos;anteprima (Anteprima a schermo intero)" name="freeze_frame_check"/>
- <check_box label="Auto-Aggiorna" name="auto_snapshot_check"/>
- <string name="unknown">
- sconosciuto
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Snapshot" title="Anteprima della fotografia" width="247">
+ <text name="type_label">
+ Destinazione della fotografia
+ </text>
+ <radio_group label="Tipo di fotografia" name="snapshot_type_radio" width="228">
+ <radio_item name="postcard" label="Invia via email" />
+ <radio_item name="texture" label="Salva nel tuo inventario ([AMOUNT] L$)" />
+ <radio_item name="local" label="Salva sul tuo pc" />
+ </radio_group>
+ <text name="file_size_label">
+ Grandezza del file: [SIZE] KB
+ </text>
+ <button label="Aggiorna la fotografia" name="new_snapshot_btn"/>
+ <button label="Invia" name="send_btn"/>
+ <button label="Salva ([AMOUNT] L$)" name="upload_btn"/>
+ <flyout_button label="Salva" name="save_btn" tool_tip="Salva l&apos;immagine come file" >
+ <flyout_button_item name="save_item" label="Salva"/>
+ <flyout_button_item name="saveas_item" label="Salva come..."/>
+ </flyout_button>
+ <button label="Annulla" name="discard_btn"/>
+ <button label="Espandi &gt;&gt;" name="more_btn" tool_tip="Opzioni avanzate"/>
+ <button label="&lt;&lt; Diminuisci" name="less_btn" tool_tip="Opzioni avanzate"/>
+ <text name="type_label2">
+ Grandezza
+ </text>
+ <text name="format_label">
+ Formato
+ </text>
+ <combo_box label="Risoluzione" name="postcard_size_combo">
+ <combo_box.item name="CurrentWindow" label="Finestra corrente"/>
+ <combo_box.item name="640x480" label="640x480"/>
+ <combo_box.item name="800x600" label="800x600"/>
+ <combo_box.item name="1024x768" label="1024x768"/>
+ <combo_box.item name="Custom" label="Personalizzata"/>
+ </combo_box>
+ <combo_box label="Risoluzione" name="texture_size_combo">
+ <combo_box.item name="CurrentWindow" label="Finestra corrente"/>
+ <combo_box.item name="Small(128x128)" label="Piccola (128x128)"/>
+ <combo_box.item name="Medium(256x256)" label="Media (256x256)"/>
+ <combo_box.item name="Large(512x512)" label="Larga (512x512)"/>
+ <combo_box.item name="Custom" label="Personalizzata"/>
+ </combo_box>
+ <combo_box label="Risoluzione" name="local_size_combo">
+ <combo_box.item name="CurrentWindow" label="Finestra corrente"/>
+ <combo_box.item name="320x240" label="320x240"/>
+ <combo_box.item name="640x480" label="640x480"/>
+ <combo_box.item name="800x600" label="800x600"/>
+ <combo_box.item name="1024x768" label="1024x768"/>
+ <combo_box.item name="1280x1024" label="1280x1024"/>
+ <combo_box.item name="1600x1200" label="1600x1200"/>
+ <combo_box.item name="Custom" label="Personalizzata"/>
+ </combo_box>
+ <combo_box label="Formato" name="local_format_combo">
+ <combo_box.item name="PNG" label="PNG"/>
+ <combo_box.item name="JPEG" label="JPEG"/>
+ <combo_box.item name="BMP" label="BMP"/>
+ </combo_box>
+ <spinner label="Larghezza" name="snapshot_width" label_width="58" width="116"/>
+ <spinner label="Altezza" name="snapshot_height" label_width="41" width="101" left="130"/>
+ <check_box label="Mantieni le proporzioni" name="keep_aspect_check"/>
+ <slider label="Qualità d&apos;immagine" name="image_quality_slider"/>
+ <text name="layer_type_label" width="55">
+ Fotografa:
+ </text>
+ <combo_box label="Layer dell&apos;immagine" name="layer_types" left="68" width="165">
+ <combo_box.item name="Colors" label="Colori"/>
+ <combo_box.item name="Depth" label="Profondità"/>
+ <combo_box.item name="ObjectMattes" label="Colori primari degli oggetti"/>
+ </combo_box>
+ <check_box label="Mostra l&apos;interfaccia nella fotografia" name="ui_check"/>
+ <check_box bottom_delta="-17" label="Mostra i dispositivi indossati nella foto" name="hud_check"/>
+ <check_box bottom_delta="-17" label="Mantieni aperto dopo aver salvato" name="keep_open_check"/>
+ <check_box bottom_delta="-17" label="Blocca l&apos;anteprima &#10;(Anteprima a schermo intero)" name="freeze_frame_check"/>
+ <check_box bottom_delta="-29" label="Auto-Aggiorna" name="auto_snapshot_check"/>
+ <string name="unknown">
+ sconosciuto
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_sound_preview.xml b/indra/newview/skins/default/xui/it/floater_sound_preview.xml
index 5c958da8a8..8611732983 100644
--- a/indra/newview/skins/default/xui/it/floater_sound_preview.xml
+++ b/indra/newview/skins/default/xui/it/floater_sound_preview.xml
@@ -1,11 +1,11 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Name/Description" title="sound.wav">
- <text name="name_label">
- Nome:
- </text>
- <text name="description_label">
- Descrizione:
- </text>
- <button label="Annulla" label_selected="Annulla" name="cancel_btn"/>
- <button label="Carica ([AMOUNT] L$)" label_selected="Carica ([AMOUNT] L$)" name="ok_btn"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Sound Preview" title="sound.wav">
+ <text name="name_label">
+ Nome:
+ </text>
+ <text name="description_label">
+ Descrizione:
+ </text>
+ <button label="Annulla" label_selected="Annulla" name="cancel_btn"/>
+ <button label="Carica ([AMOUNT] L$)" label_selected="Carica ([AMOUNT] L$)" name="ok_btn"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_statistics.xml b/indra/newview/skins/default/xui/it/floater_statistics.xml
new file mode 100644
index 0000000000..6083949b8c
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/floater_statistics.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="stats floater" title="Statistiche"/>
diff --git a/indra/newview/skins/default/xui/it/floater_telehub.xml b/indra/newview/skins/default/xui/it/floater_telehub.xml
index 0344ac9588..5de215522d 100644
--- a/indra/newview/skins/default/xui/it/floater_telehub.xml
+++ b/indra/newview/skins/default/xui/it/floater_telehub.xml
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="telehub" title="Telehub">
- <text name="status_text_connected">
- Telehub connesso all&apos;oggetto [OBJECT]
- </text>
- <text name="status_text_not_connected">
- Nessun telehub connesso.
- </text>
- <text name="help_text_connected">
- Per rimuovere, clicca Disconnetti.
- </text>
- <text name="help_text_not_connected">
- Seleziona l&apos;oggetto e clicca connetti Telehub.
- </text>
- <button label="Connetti Telehub" name="connect_btn"/>
- <button label="Disconnetti" name="disconnect_btn"/>
- <text name="spawn_points_text">
- Rigenera i punti (posizioni, non oggetti):
- </text>
- <button label="Aggiungi punti rigenerazione" name="add_spawn_point_btn"/>
- <button label="Rimuovi punti rigenerazione" name="remove_spawn_point_btn"/>
- <text name="spawn_point_help">
- Seleziona un oggetto e clicca su aggiungi per specificarne la posizione.
-Potrai quindi muovere o rimuovere l&apos;oggetto.
-Le posizioni sono relative al centro del telehub.
-Seleziona un elemento per vederne la posizione globale.
- </text>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="telehub" title="Telehub">
+ <text name="status_text_connected">
+ Telehub connesso all&apos;oggetto [OBJECT]
+ </text>
+ <text name="status_text_not_connected">
+ Nessun telehub connesso.
+ </text>
+ <text name="help_text_connected">
+ Per rimuovere, clicca Disconnetti.
+ </text>
+ <text name="help_text_not_connected">
+ Seleziona l&apos;oggetto e clicca connetti Telehub.
+ </text>
+ <button label="Connetti Telehub" name="connect_btn"/>
+ <button label="Disconnetti" name="disconnect_btn"/>
+ <text name="spawn_points_text">
+ Rigenera i punti (posizioni, non oggetti):
+ </text>
+ <button label="Aggiungi punti rigenerazione" name="add_spawn_point_btn"/>
+ <button label="Rimuovi punti rigenerazione" name="remove_spawn_point_btn"/>
+ <text name="spawn_point_help">
+ Seleziona un oggetto e clicca su aggiungi per specificarne la posizione.
+Potrai quindi muovere o rimuovere l&apos;oggetto.
+Le posizioni sono relative al centro del telehub.
+Seleziona un elemento per vederne la posizione globale.
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/it/floater_texture_ctrl.xml
index 48ac863832..65bc8ba41d 100644
--- a/indra/newview/skins/default/xui/it/floater_texture_ctrl.xml
+++ b/indra/newview/skins/default/xui/it/floater_texture_ctrl.xml
@@ -1,23 +1,23 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="texture picker" title="Preferiti: Immagine">
- <string name="choose_picture">
- Clicca per scegliere l&apos;immagine
- </string>
- <text name="Multiple">
- Molteplice
- </text>
- <text name="unknown">
- Dimensioni: [DIMENSIONS]
- </text>
- <button label="Default" label_selected="Default" name="Default"/>
- <button label="Niente" label_selected="Niente" name="None"/>
- <button label="Vuoto" label_selected="Vuoto" name="Blank"/>
- <check_box label="Visualizza Cartelle" name="show_folders_check"/>
- <search_editor label="Scrivi qui per cercare" name="inventory search editor"/>
- <check_box label="Applica Subito" name="apply_immediate_check"/>
- <button label="Annulla" label_selected="Annulla" name="Cancel"/>
- <button label="Seleziona" label_selected="Seleziona" name="Select"/>
- <string name="pick title">
- Scegli:
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="texture picker" title="Preferiti: Immagine">
+ <string name="choose_picture">
+ Clicca per scegliere l&apos;immagine
+ </string>
+ <text name="Multiple">
+ Molteplice
+ </text>
+ <text name="unknown">
+ Dimensioni: [DIMENSIONS]
+ </text>
+ <button label="Default" label_selected="Default" name="Default"/>
+ <button label="Niente" label_selected="Niente" name="None"/>
+ <button label="Vuoto" label_selected="Vuoto" name="Blank"/>
+ <check_box label="Visualizza Cartelle" name="show_folders_check"/>
+ <search_editor label="Scrivi qui per cercare" name="inventory search editor"/>
+ <check_box label="Applica Subito" name="apply_immediate_check"/>
+ <button label="Annulla" label_selected="Annulla" name="Cancel"/>
+ <button label="Seleziona" label_selected="Seleziona" name="Select"/>
+ <string name="pick title">
+ Scegli:
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_tools.xml b/indra/newview/skins/default/xui/it/floater_tools.xml
index 8bc9e511b5..a89ae9d803 100644
--- a/indra/newview/skins/default/xui/it/floater_tools.xml
+++ b/indra/newview/skins/default/xui/it/floater_tools.xml
@@ -1,489 +1,621 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="toolbox floater" title="">
- <button label="" label_selected="" name="button focus" tool_tip="Focus"/>
- <button label="" label_selected="" name="button move" tool_tip="Muoviti"/>
- <button label="" label_selected="" name="button edit" tool_tip="Modifica"/>
- <button label="" label_selected="" name="button create" tool_tip="Crea"/>
- <button label="" label_selected="" name="button land" tool_tip="Terra"/>
- <check_box label="Zoom" name="radio zoom"/>
- <check_box label="Guarda ruotando(Ctrl)" name="radio orbit"/>
- <check_box label="Guarda panoramicamente (Ctrl-Shift)" name="radio pan"/>
- <check_box label="Muovi" name="radio move"/>
- <check_box label="Alza (Ctrl)" name="radio lift"/>
- <check_box label="Gira intorno (Ctrl-Shift)" name="radio spin"/>
- <check_box label="Posizione" name="radio position"/>
- <check_box label="Ruota (Ctrl)" name="radio rotate"/>
- <check_box label="Ridimensiona (Ctrl-Shift)" name="radio stretch"/>
- <check_box label="Seleziona Texture" name="radio select face"/>
- <check_box label="Modifica parti unite" name="checkbox edit linked parts"/>
- <text name="text ruler mode">
- Modalità  regolo di precisione:
- </text>
- <combo_box name="combobox grid mode">
- <combo_box.item name="World" label="Globale"/>
- <combo_box.item name="Local" label="Locale"/>
- <combo_box.item name="Reference" label="Riferito a"/>
- </combo_box>
- <check_box label="Ridimensiona simmetricamente" name="checkbox uniform"/>
- <check_box label="Ridimensiona le Texture" name="checkbox stretch textures"/>
- <check_box label="Usa righello" name="checkbox snap to grid"/>
- <button label="Opzioni..." label_selected="Opzioni..." name="Options..."/>
- <text name="text status">
- Trascina per muovere, trascina+maiuscolo per copiare
- </text>
- <button label="" label_selected="" name="ToolCube" tool_tip="Cubo"/>
- <button label="" label_selected="" name="ToolPrism" tool_tip="Prisma"/>
- <button label="" label_selected="" name="ToolPyramid" tool_tip="Piramide"/>
- <button label="" label_selected="" name="ToolTetrahedron" tool_tip="Tetraedro"/>
- <button label="" label_selected="" name="ToolCylinder" tool_tip="Cilindro"/>
- <button label="" label_selected="" name="ToolHemiCylinder" tool_tip="Semicilindro"/>
- <button label="" label_selected="" name="ToolCone" tool_tip="Cono"/>
- <button label="" label_selected="" name="ToolHemiCone" tool_tip="Semicono"/>
- <button label="" label_selected="" name="ToolSphere" tool_tip="Sfera"/>
- <button label="" label_selected="" name="ToolHemiSphere" tool_tip="Semisfera"/>
- <button label="" label_selected="" name="ToolTorus" tool_tip="Toro"/>
- <button label="" label_selected="" name="ToolTube" tool_tip="Tubo"/>
- <button label="" label_selected="" name="ToolRing" tool_tip="Anello"/>
- <button label="" label_selected="" name="ToolTree" tool_tip="Albero"/>
- <button label="" label_selected="" name="ToolGrass" tool_tip="Erba"/>
- <check_box label="Mantieni lo strumento selezionato" name="checkbox sticky"/>
- <check_box label="Copia la selezione" name="checkbox copy selection"/>
- <check_box label="Centra la Copia" name="checkbox copy centers"/>
- <check_box label="Ruota la Copia" name="checkbox copy rotates"/>
- <check_box label="Seleziona il terreno" name="radio select land"/>
- <check_box label="Appiattisci il terreno" name="radio flatten"/>
- <check_box label="Alza il terreno" name="radio raise"/>
- <check_box label="Abbassa il terreno" name="radio lower"/>
- <check_box label="Uniforma il terreno" name="radio smooth"/>
- <check_box label="Corruga il terreno" name="radio noise"/>
- <check_box label="Ripristina il terreno" name="radio revert"/>
- <combo_box name="combobox brush size">
- <combo_box.item name="Small" label="Piccolo"/>
- <combo_box.item name="Medium" label="Medio"/>
- <combo_box.item name="Large" label="Grande"/>
- </combo_box>
- <text name="Strength:">
- Pressione:
- </text>
- <button label="Applica alla selezione" label_selected="Applica alla selezione" name="button apply to selection" tool_tip="Modifica il terreno selezionato"/>
- <check_box label="Mostra i proprietari" name="checkbox show owners"/>
- <button label="Espandi &gt;&gt;" name="button more" tool_tip="Opzioni avanzate"/>
- <button label="&lt;&lt; Restringi" name="button less" tool_tip="Opzioni avanzate"/>
- <tab_container name="Object Info Tabs">
- <panel label="Generale" name="General">
- <text name="Name:">
- Nome:
- </text>
- <text name="Description:">
- Descrizione:
- </text>
- <text name="Creator:">
- Creatore:
- </text>
- <text name="Creator Name">
- Thrax Linden
- </text>
- <button label="Profilo..." label_selected="Profilo..." name="button creator profile"/>
- <text name="Owner:">
- Proprietario:
- </text>
- <text name="Owner Name">
- Thrax Linden
- </text>
- <button label="Profilo..." label_selected="Profilo..." name="button owner profile"/>
- <text name="Group:">
- Gruppo:
- </text>
- <text name="Group Name Proxy">
- The Lindens
- </text>
- <button label="Imposta..." label_selected="Imposta..." name="button set group"/>
- <text name="prim info">
- 1 Oggetto, 1 Prim
- </text>
- <text name="Permissions:">
- Permessi:
- </text>
- <text name="perm_modify">
- Puoi modificare questo oggetto.
- </text>
- <check_box label="Condividi con il gruppo" name="checkbox share with group" tool_tip="Permetti ai membri del gruppo di muovere, modificare, copiare e cancellare."/>
- <string name="text deed continued">
- Cedi al gruppo...
- </string>
- <string name="text deed">
- Cedi al gruppo
- </string>
- <button label="Cedi al gruppo..." label_selected="Cedi al gruppo..." name="button deed" tool_tip="Gli oggetti condivisi con il gruppo possono essere ceduti da un funzionario del gruppo."/>
- <check_box label="Permetti a chiunque di spostare" name="checkbox allow everyone move"/>
- <check_box label="Permetti a chiunque di copiare" name="checkbox allow everyone copy"/>
- <check_box label="Mostra nella ricerca" name="search_check" tool_tip="Permetti che l&apos;oggetto sia visibile nella ricerca"/>
- <check_box label="In vendita" name="checkbox for sale"/>
- <text name="Cost">
- Prezzo: L$
- </text>
- <radio_group name="sale type">
- <radio_item name="Original">
- Originale
- </radio_item>
- <radio_item name="Copy">
- Copia
- </radio_item>
- <radio_item name="Contents">
- Contenuto
- </radio_item>
- </radio_group>
- <text name="Next owner can:">
- Il prossimo proprietario può:
- </text>
- <check_box label="Modificare" name="checkbox next owner can modify"/>
- <check_box label="Copiare" name="checkbox next owner can copy"/>
- <check_box label="Rivendere/Regalare" name="checkbox next owner can transfer"/>
- <text name="label click action">
- Se cliccato con il tasto sinistro del mouse
- </text>
- <combo_box name="clickaction">
- <combo_box.item name="Touch/grab(default)" label="Tocca/Afferra (default)"/>
- <combo_box.item name="Sitonobject" label="Siediti sull&apos;oggetto"/>
- <combo_box.item name="Buyobject" label="Compra l&apos;oggetto"/>
- <combo_box.item name="Payobject" label="Paga l&apos;oggetto"/>
- <combo_box.item name="Open" label="Apri"/>
- <combo_box.item name="Play" label="Attiva i multimedia del terreno"/>
- <combo_box.item name="Opemmedia" label="Apri i multimedia del terreno"/>
- </combo_box>
- <text name="B:">
- B:
- </text>
- <text name="O:">
- O;
- </text>
- <text name="G:">
- G:
- </text>
- <text name="E:">
- E:
- </text>
- <text name="N:">
- N:
- </text>
- <text name="F:">
- F:
- </text>
- <string name="text modify info 1">
- Puoi modificare questo oggetto.
- </string>
- <string name="text modify info 2">
- Puoi modificare questi oggetti.
- </string>
- <string name="text modify info 3">
- Non puoi modificare questo oggetto.
- </string>
- <string name="text modify info 4">
- Non puoi modificare questi oggetti.
- </string>
- <string name="text modify warning">
- Devi selezionare l&apos;intero oggetto per impostare i permessi.
- </string>
- <string name="Cost Default">
- Prezzo: L$
- </string>
- <string name="Cost Total">
- Prezzo totale: L$
- </string>
- <string name="Cost Per Unit">
- Prezzo per: L$
- </string>
- <string name="Cost Mixed">
- Prezzo misto
- </string>
- <string name="Sale Mixed">
- Vendita mista
- </string>
- </panel>
- <panel label="Oggetto" name="Object">
- <text name="select_single">
- Seleziona solo un prim per modificarne i parametri.
- </text>
- <text name="edit_object">
- Modifica i parametri dell&apos;oggetto:
- </text>
- <check_box label="Bloccato" name="checkbox locked" tool_tip="Previene lo spostamento o la cancellazione dell&apos;oggetto. Spesso utile mentre si costruisce per evitare involontarie modifiche."/>
- <check_box label="Fisico" name="Physical Checkbox Ctrl" tool_tip="Permette all&apos;oggetto di essere spostato e di subire gli effetti della gravità"/>
- <check_box label="Temporaneo" name="Temporary Checkbox Ctrl" tool_tip="Provoca la cancellazione dell&apos;oggetto 1 minuto dopo la sua creazione."/>
- <check_box label="Fantasma" name="Phantom Checkbox Ctrl" tool_tip="Rende l&apos;oggetto penetrabile dagli altri oggetti e dagli avatars"/>
- <text name="label position">
- Posizione (metri)
- </text>
- <spinner label="X" name="Pos X"/>
- <spinner label="Y" name="Pos Y"/>
- <spinner label="Z" name="Pos Z"/>
- <text name="label size">
- Dimensioni (metri)
- </text>
- <spinner label="X" name="Scale X"/>
- <spinner label="Y" name="Scale Y"/>
- <spinner label="Z" name="Scale Z"/>
- <text name="label rotation">
- Rotazione (gradi)
- </text>
- <spinner label="X" name="Rot X"/>
- <spinner label="Y" name="Rot Y"/>
- <spinner label="Z" name="Rot Z"/>
- <text name="label material">
- Materiale
- </text>
- <combo_box name="material">
- <combo_box.item name="Stone" label="Pietra"/>
- <combo_box.item name="Metal" label="Metallo"/>
- <combo_box.item name="Glass" label="Vetro"/>
- <combo_box.item name="Wood" label="Legno"/>
- <combo_box.item name="Flesh" label="Carne"/>
- <combo_box.item name="Plastic" label="Plastica"/>
- <combo_box.item name="Rubber" label="Gomma"/>
- </combo_box>
- <text name="label basetype">
- Forma di costruzione
- </text>
- <combo_box name="comboBaseType">
- <combo_box.item name="Box" label="Cubo"/>
- <combo_box.item name="Cylinder" label="Cilindro"/>
- <combo_box.item name="Prism" label="Prisma"/>
- <combo_box.item name="Sphere" label="Sfera"/>
- <combo_box.item name="Torus" label="Toro"/>
- <combo_box.item name="Tube" label="Tubo"/>
- <combo_box.item name="Ring" label="Anello"/>
- <combo_box.item name="Sculpted" label="Sculpted"/>
- </combo_box>
- <text name="text cut">
- Linea di taglio Inizio e Fine
- </text>
- <spinner label="I" name="cut begin"/>
- <spinner label="F" name="cut end"/>
- <text name="text hollow">
- Foro
- </text>
- <text name="text skew">
- Asimmetria
- </text>
- <text name="Hollow Shape">
- Forma del foro
- </text>
- <combo_box name="hole">
- <combo_box.item name="Default" label="Default"/>
- <combo_box.item name="Circle" label="Rotondo"/>
- <combo_box.item name="Square" label="Quadrato"/>
- <combo_box.item name="Triangle" label="Triangolare"/>
- </combo_box>
- <text name="text twist">
- Torsione Inizio e Fine
- </text>
- <spinner label="I" name="Twist Begin"/>
- <spinner label="F" name="Twist End"/>
- <text name="scale_taper">
- Avvicina i lati
- </text>
- <text name="scale_hole">
- Grandezza del foro
- </text>
- <spinner label="X" name="Taper Scale X"/>
- <spinner label="Y" name="Taper Scale Y"/>
- <text name="text topshear">
- Inclinazione
- </text>
- <spinner label="X" name="Shear X"/>
- <spinner label="Y" name="Shear Y"/>
- <text name="advanced_cut">
- Ritaglia il profilo Inizio e Fine
- </text>
- <text name="advanced_dimple">
- Scava Inizio e Fine
- </text>
- <spinner label="I" name="Path Limit Begin"/>
- <spinner label="F" name="Path Limit End"/>
- <text name="text taper2">
- Avvicina
- </text>
- <spinner label="X" name="Taper X"/>
- <spinner label="Y" name="Taper Y"/>
- <text name="text radius delta">
- Raggio
- </text>
- <text name="text revolutions">
- Rivoluzioni
- </text>
- <texture_picker label="Sculpt Texture" name="sculpt texture control" tool_tip="Clicca per scegliere un&apos;immagine"/>
- <check_box label="Rifletti" name="sculpt mirror control" tool_tip="Ribalta lo sculpted prim lungo l&apos;asse X."/>
- <check_box label="Rivolta" name="sculpt invert control" tool_tip="Inverte le normali dello sculpted prim, facendolo apparire rivoltato."/>
- <text name="label sculpt type">
- Tipo di congiunzione
- </text>
- <combo_box name="sculpt type control">
- <combo_box.item name="None" label="nessuna)"/>
- <combo_box.item name="Sphere" label="Sferica"/>
- <combo_box.item name="Torus" label="Toroidale"/>
- <combo_box.item name="Plane" label="Piana"/>
- <combo_box.item name="Cylinder" label="Cilindrica"/>
- </combo_box>
- </panel>
- <panel label="Caratteristiche" name="Features">
- <text name="select_single">
- Seleziona solo un prim per modificarne le caratteristiche.
- </text>
- <text name="edit_object">
- Modifica le caratteristiche dell&apos;oggetto:
- </text>
- <check_box label="Flessibilità" name="Flexible1D Checkbox Ctrl" tool_tip="Permette all&apos;oggetto di flettersi rispetto all&apos;asse Z. (solo lato client)"/>
- <spinner label="Morbidezza" name="FlexNumSections"/>
- <spinner label="Gravità" name="FlexGravity"/>
- <spinner label="Elasticità" name="FlexFriction"/>
- <spinner label="Sventolio" name="FlexWind"/>
- <spinner label="Tensione" name="FlexTension"/>
- <spinner label="Forza X" name="FlexForceX"/>
- <spinner label="Forza Y" name="FlexForceY"/>
- <spinner label="Forza Z" name="FlexForceZ"/>
- <check_box label="Luce" name="Light Checkbox Ctrl" tool_tip="Imposta l&apos;oggetto come sorgente di luce"/>
- <text name="label color">
- Colore
- </text>
- <color_swatch label="" name="colorswatch" tool_tip="Clicca per aprire la tavolozza dei colori"/>
- <spinner label="Intensità" name="Light Intensity"/>
- <spinner label="Raggio" name="Light Radius"/>
- <spinner label="Attenuazione" name="Light Falloff"/>
- </panel>
- <panel label="Texture" name="Texture">
- <texture_picker label="Texture" name="texture control" tool_tip="Clicca per scegliere un&apos;immagine"/>
- <color_swatch label="Colore" name="colorswatch" tool_tip="Clicca per aprire la tavolozza dei colori"/>
- <text name="color trans">
- Trasparenza %
- </text>
- <text name="glow label">
- Bagliore
- </text>
- <check_box label="Massima luminosità" name="checkbox fullbright"/>
- <text name="tex gen">
- Applicazione della texture
- </text>
- <combo_box name="combobox texgen">
- <combo_box.item name="Default" label="Default"/>
- <combo_box.item name="Planar" label="Planare"/>
- </combo_box>
- <text name="label shininess">
- Brillantezza
- </text>
- <combo_box name="combobox shininess">
- <combo_box.item name="None" label="Nessuna"/>
- <combo_box.item name="Low" label="Bassa"/>
- <combo_box.item name="Medium" label="Media"/>
- <combo_box.item name="High" label="Alta"/>
- </combo_box>
- <text name="label bumpiness">
- Rilievo
- </text>
- <combo_box name="combobox bumpiness">
- <combo_box.item name="None" label="Nessuna"/>
- <combo_box.item name="Brightness" label="Luminoso"/>
- <combo_box.item name="Darkness" label="Scuro"/>
- <combo_box.item name="woodgrain" label="Venature del legno"/>
- <combo_box.item name="bark" label="Corteccia"/>
- <combo_box.item name="bricks" label="Mattoni"/>
- <combo_box.item name="checker" label="Scacchi"/>
- <combo_box.item name="concrete" label="Cemento"/>
- <combo_box.item name="crustytile" label="Mattonella incrostata"/>
- <combo_box.item name="cutstone" label="Mosaico in pietra"/>
- <combo_box.item name="discs" label="Dischi"/>
- <combo_box.item name="gravel" label="Ghiaia"/>
- <combo_box.item name="petridish" label="Sassi"/>
- <combo_box.item name="siding" label="Listoni"/>
- <combo_box.item name="stonetile" label="Mattonelle in pietra"/>
- <combo_box.item name="stucco" label="Stucco"/>
- <combo_box.item name="suction" label="Cerchi rialzati"/>
- <combo_box.item name="weave" label="Trama"/>
- </combo_box>
- <text name="tex scale">
- Ripetizioni per faccia
- </text>
- <spinner label="Orizzontale (U)" name="TexScaleU"/>
- <check_box label="Inverti" name="checkbox flip s"/>
- <spinner label="Verticale (V)" name="TexScaleV"/>
- <check_box label="Inverti" name="checkbox flip t"/>
- <text name="tex rotate">
- Rotazione (Gradi)
- </text>
- <string name="string repeats per meter">
- Ripetizioni per metro
- </string>
- <string name="string repeats per face">
- Ripetizioni per faccia
- </string>
- <text name="rpt">
- Ripetizioni per metro
- </text>
- <button label="Applica" label_selected="Applica" name="button apply"/>
- <text name="tex offset">
- Offset
- </text>
- <spinner label="Orizzontale (U)" name="TexOffsetU"/>
- <spinner label="Verticale (V)" name="TexOffsetV"/>
- <text name="textbox autofix">
- Allinea texture dei media
-(deve prima caricarsi)
- </text>
- <button label="Allinea" label_selected="Allinea" name="button align"/>
- </panel>
- <panel label="Contenuto" name="Contents">
- <button label="Nuovo script..." label_selected="Nuovo script..." name="button new script"/>
- </panel>
- </tab_container>
- <panel name="land info panel">
- <text name="label_area_price">
- Prezzo: [PRICE] L$ per [AREA] mq.
- </text>
- <text name="label_area">
- Area: [AREA] mq.
- </text>
- <button label="Acquista il terreno..." label_selected="Acquista il terreno..." name="button buy land"/>
- <button label="Abbandona il terreno..." label_selected="Abbandona il terreno..." name="button abandon land"/>
- <button label="Suddividi..." label_selected="Suddividi..." name="button subdivide land"/>
- <button label="Unisci..." label_selected="Unisci..." name="button join land"/>
- <button label="Informazioni sul terreno..." label_selected="Informazioni sul terreno..." name="button about land"/>
- </panel>
- <string name="status_rotate">
- Sposta le fasce colorate per ruotare l&apos;oggetto
- </string>
- <string name="status_scale">
- Clicca e trascina per ridimensionare il lato selezionato
- </string>
- <string name="status_move">
- Trascina per spostare, maiuscolo+trascina per copiare
- </string>
- <string name="status_modifyland">
- Clicca e tieni premuto per modificare il terreno
- </string>
- <string name="status_camera">
- Clicca e sposta per cambiare visuale
- </string>
- <string name="status_grab">
- Trascina per spostare gli oggetti, Ctrl per sollevarli, Ctrl+maiuscolo per ruotarli
- </string>
- <string name="status_place">
- Clicca intorno per creare, Maiuscolo+click per selezionare
- </string>
- <string name="status_selectland">
- Clicca e trascina per selezionare il terreno
- </string>
- <string name="grid_screen_text">
- Schermo
- </string>
- <string name="grid_local_text">
- Locale
- </string>
- <string name="grid_world_text">
- Globale
- </string>
- <string name="grid_reference_text">
- Riferimento
- </string>
- <string name="grid_attachment_text">
- Accessorio
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="toolbox floater" title="">
+ <button label="" label_selected="" name="button focus" tool_tip="Focus"/>
+ <button label="" label_selected="" name="button move" tool_tip="Muoviti"/>
+ <button label="" label_selected="" name="button edit" tool_tip="Modifica"/>
+ <button label="" label_selected="" name="button create" tool_tip="Crea"/>
+ <button label="" label_selected="" name="button land" tool_tip="Terra"/>
+ <check_box label="Zoom" name="radio zoom"/>
+ <check_box label="Guarda ruotando(Ctrl)" name="radio orbit"/>
+ <check_box label="Guarda panoramicamente (Ctrl-Shift)" name="radio pan"/>
+ <check_box label="Muovi" name="radio move"/>
+ <check_box label="Alza (Ctrl)" name="radio lift"/>
+ <check_box label="Gira intorno (Ctrl-Shift)" name="radio spin"/>
+ <check_box label="Posizione" name="radio position"/>
+ <check_box label="Ruota (Ctrl)" name="radio rotate"/>
+ <check_box label="Ridimensiona (Ctrl-Shift)" name="radio stretch"/>
+ <check_box label="Seleziona Texture" name="radio select face"/>
+ <check_box label="Modifica parti unite" name="checkbox edit linked parts"/>
+ <text name="text ruler mode">
+ Modalità regolo di precisione:
+ </text>
+ <combo_box name="combobox grid mode">
+ <combo_item name="World">
+ Globale
+ </combo_item>
+ <combo_item name="Local">
+ Locale
+ </combo_item>
+ <combo_item name="Reference">
+ Riferito a
+ </combo_item>
+ </combo_box>
+ <check_box label="Ridimensiona simmetricamente" name="checkbox uniform"/>
+ <check_box label="Ridimensiona le Texture" name="checkbox stretch textures"/>
+ <check_box label="Usa righello" name="checkbox snap to grid"/>
+ <button label="Opzioni..." label_selected="Opzioni..." name="Options..."/>
+ <text name="text status">
+ Trascina per muovere, trascina+maiuscolo per copiare
+ </text>
+ <button label="" label_selected="" name="ToolCube" tool_tip="Cubo"/>
+ <button label="" label_selected="" name="ToolPrism" tool_tip="Prisma"/>
+ <button label="" label_selected="" name="ToolPyramid" tool_tip="Piramide"/>
+ <button label="" label_selected="" name="ToolTetrahedron" tool_tip="Tetraedro"/>
+ <button label="" label_selected="" name="ToolCylinder" tool_tip="Cilindro"/>
+ <button label="" label_selected="" name="ToolHemiCylinder" tool_tip="Semicilindro"/>
+ <button label="" label_selected="" name="ToolCone" tool_tip="Cono"/>
+ <button label="" label_selected="" name="ToolHemiCone" tool_tip="Semicono"/>
+ <button label="" label_selected="" name="ToolSphere" tool_tip="Sfera"/>
+ <button label="" label_selected="" name="ToolHemiSphere" tool_tip="Semisfera"/>
+ <button label="" label_selected="" name="ToolTorus" tool_tip="Toro"/>
+ <button label="" label_selected="" name="ToolTube" tool_tip="Tubo"/>
+ <button label="" label_selected="" name="ToolRing" tool_tip="Anello"/>
+ <button label="" label_selected="" name="ToolTree" tool_tip="Albero"/>
+ <button label="" label_selected="" name="ToolGrass" tool_tip="Erba"/>
+ <check_box label="Mantieni selezionato" name="checkbox sticky"/>
+ <check_box label="Copia la selezione" name="checkbox copy selection"/>
+ <check_box label="Centra" name="checkbox copy centers"/>
+ <check_box label="Ruota" name="checkbox copy rotates"/>
+ <check_box label="Seleziona il terreno" name="radio select land"/>
+ <check_box label="Appiattisci" name="radio flatten"/>
+ <check_box label="Eleva" name="radio raise"/>
+ <check_box label="Abbassa" name="radio lower"/>
+ <check_box label="Uniforma" name="radio smooth"/>
+ <check_box label="Ondula" name="radio noise"/>
+ <check_box label="Ripristina" name="radio revert"/>
+ <button label="Applica" label_selected="Applica" name="button apply to selection" tool_tip="Modifica il terreno selezionato"/>
+ <text name="Bulldozer:">
+ Bulldozer:
+ </text>
+ <text name="Dozer Size:">
+ Grandezza
+ </text>
+ <text name="Strength:">
+ Potenza
+ </text>
+ <text name="obj_count">
+ Oggetti selezionati: [COUNT]
+ </text>
+ <text name="prim_count">
+ primitive: [COUNT]
+ </text>
+ <tab_container name="Object Info Tabs">
+ <panel label="Generale" name="General">
+ <text name="Name:">
+ Nome:
+ </text>
+ <text name="Description:">
+ Descrizione:
+ </text>
+ <text name="Creator:">
+ Creatore:
+ </text>
+ <text name="Creator Name">
+ Thrax Linden
+ </text>
+ <button label="Profilo..." label_selected="Profilo..." name="button creator profile"/>
+ <text name="Owner:">
+ Proprietario:
+ </text>
+ <text name="Owner Name">
+ Thrax Linden
+ </text>
+ <button label="Profilo..." label_selected="Profilo..." name="button owner profile"/>
+ <text name="Group:">
+ Gruppo:
+ </text>
+ <text name="Group Name Proxy">
+ The Lindens
+ </text>
+ <button label="Imposta..." label_selected="Imposta..." name="button set group"/>
+ <text name="Permissions:">
+ Permessi:
+ </text>
+ <text name="perm_modify">
+ Puoi modificare questo oggetto.
+ </text>
+ <check_box label="Condividi con il gruppo" name="checkbox share with group" tool_tip="Permetti a tutti i membri del gruppo di condividere ed utilizzare i tuoi permessi per questo oggetto. Devi cederlo al gruppo per abilitare le restrizioni di ruolo."/>
+ <string name="text deed continued">
+ Cedi al gruppo...
+ </string>
+ <string name="text deed">
+ Cedi al gruppo
+ </string>
+ <button label="Cedi al gruppo..." label_selected="Cedi al gruppo..." name="button deed" tool_tip="Gli oggetti condivisi con il gruppo possono essere ceduti da un funzionario del gruppo."/>
+ <check_box label="Permetti a chiunque di spostare" name="checkbox allow everyone move"/>
+ <check_box label="Permetti a chiunque di copiare" name="checkbox allow everyone copy"/>
+ <check_box label="Mostra nella ricerca" name="search_check" tool_tip="Permetti che l&apos;oggetto sia visibile nella ricerca"/>
+ <check_box label="In vendita" name="checkbox for sale"/>
+ <text name="Cost">
+ Prezzo: L$
+ </text>
+ <radio_group name="sale type">
+ <radio_item name="Original">
+ Originale
+ </radio_item>
+ <radio_item name="Copy">
+ Copia
+ </radio_item>
+ <radio_item name="Contents">
+ Contenuto
+ </radio_item>
+ </radio_group>
+ <text name="Next owner can:">
+ Il prossimo proprietario può:
+ </text>
+ <check_box label="Modificare" name="checkbox next owner can modify"/>
+ <check_box label="Copiare" name="checkbox next owner can copy"/>
+ <check_box label="Rivendere/Regalare" name="checkbox next owner can transfer"/>
+ <text name="label click action">
+ Se cliccato con il tasto sinistro del mouse
+ </text>
+ <combo_box name="clickaction">
+ <combo_item name="Touch/grab(default)">
+ Tocca/Afferra (default)
+ </combo_item>
+ <combo_item name="Sitonobject">
+ Siediti sull&apos;oggetto
+ </combo_item>
+ <combo_item name="Buyobject">
+ Compra l&apos;oggetto
+ </combo_item>
+ <combo_item name="Payobject">
+ Paga l&apos;oggetto
+ </combo_item>
+ <combo_item name="Open">
+ Apri
+ </combo_item>
+ <combo_item name="Play">
+ Attiva i multimedia del terreno
+ </combo_item>
+ <combo_item name="Opemmedia">
+ Apri i multimedia del terreno
+ </combo_item>
+ </combo_box>
+ <text name="B:">
+ B:
+ </text>
+ <text name="O:">
+ O;
+ </text>
+ <text name="G:">
+ G:
+ </text>
+ <text name="E:">
+ E:
+ </text>
+ <text name="N:">
+ N:
+ </text>
+ <text name="F:">
+ F:
+ </text>
+ <string name="text modify info 1">
+ Puoi modificare questo oggetto.
+ </string>
+ <string name="text modify info 2">
+ Puoi modificare questi oggetti.
+ </string>
+ <string name="text modify info 3">
+ Non puoi modificare questo oggetto.
+ </string>
+ <string name="text modify info 4">
+ Non puoi modificare questi oggetti.
+ </string>
+ <string name="text modify warning">
+ Devi selezionare l&apos;intero oggetto per impostare i permessi.
+ </string>
+ <string name="Cost Default">
+ Prezzo: L$
+ </string>
+ <string name="Cost Total">
+ Prezzo totale: L$
+ </string>
+ <string name="Cost Per Unit">
+ Prezzo per: L$
+ </string>
+ <string name="Cost Mixed">
+ Prezzo misto
+ </string>
+ <string name="Sale Mixed">
+ Vendita mista
+ </string>
+ </panel>
+ <panel label="Oggetto" name="Object">
+ <text name="select_single">
+ Seleziona solo un prim per modificarne i parametri.
+ </text>
+ <text name="edit_object">
+ Modifica i parametri dell&apos;oggetto:
+ </text>
+ <check_box label="Bloccato" name="checkbox locked" tool_tip="Previene lo spostamento o la cancellazione dell&apos;oggetto. Spesso utile mentre si costruisce per evitare involontarie modifiche."/>
+ <check_box label="Fisico" name="Physical Checkbox Ctrl" tool_tip="Permette all&apos;oggetto di essere spostato e di subire gli effetti della gravità"/>
+ <check_box label="Temporaneo" name="Temporary Checkbox Ctrl" tool_tip="Provoca la cancellazione dell&apos;oggetto 1 minuto dopo la sua creazione."/>
+ <check_box label="Fantasma" name="Phantom Checkbox Ctrl" tool_tip="Rende l&apos;oggetto penetrabile dagli altri oggetti e dagli avatars"/>
+ <text name="label position">
+ Posizione (metri)
+ </text>
+ <spinner label="X" name="Pos X"/>
+ <spinner label="Y" name="Pos Y"/>
+ <spinner label="Z" name="Pos Z"/>
+ <text name="label size">
+ Dimensioni (metri)
+ </text>
+ <spinner label="X" name="Scale X"/>
+ <spinner label="Y" name="Scale Y"/>
+ <spinner label="Z" name="Scale Z"/>
+ <text name="label rotation">
+ Rotazione (gradi)
+ </text>
+ <spinner label="X" name="Rot X"/>
+ <spinner label="Y" name="Rot Y"/>
+ <spinner label="Z" name="Rot Z"/>
+ <text name="label material">
+ Materiale
+ </text>
+ <combo_box name="material">
+ <combo_item name="Stone">
+ Pietra
+ </combo_item>
+ <combo_item name="Metal">
+ Metallo
+ </combo_item>
+ <combo_item name="Glass">
+ Vetro
+ </combo_item>
+ <combo_item name="Wood">
+ Legno
+ </combo_item>
+ <combo_item name="Flesh">
+ Carne
+ </combo_item>
+ <combo_item name="Plastic">
+ Plastica
+ </combo_item>
+ <combo_item name="Rubber">
+ Gomma
+ </combo_item>
+ </combo_box>
+ <text name="label basetype">
+ Forma di costruzione
+ </text>
+ <combo_box name="comboBaseType">
+ <combo_item name="Box">
+ Cubo
+ </combo_item>
+ <combo_item name="Cylinder">
+ Cilindro
+ </combo_item>
+ <combo_item name="Prism">
+ Prisma
+ </combo_item>
+ <combo_item name="Sphere">
+ Sfera
+ </combo_item>
+ <combo_item name="Torus">
+ Toro
+ </combo_item>
+ <combo_item name="Tube">
+ Tubo
+ </combo_item>
+ <combo_item name="Ring">
+ Anello
+ </combo_item>
+ <combo_item name="Sculpted">
+ Sculpted
+ </combo_item>
+ </combo_box>
+ <text name="text cut">
+ Linea di taglio Inizio e Fine
+ </text>
+ <spinner label="I" name="cut begin"/>
+ <spinner label="F" name="cut end"/>
+ <text name="text hollow">
+ Foro
+ </text>
+ <text name="text skew">
+ Asimmetria
+ </text>
+ <text name="Hollow Shape">
+ Forma del foro
+ </text>
+ <combo_box name="hole">
+ <combo_item name="Default">
+ Default
+ </combo_item>
+ <combo_item name="Circle">
+ Rotondo
+ </combo_item>
+ <combo_item name="Square">
+ Quadrato
+ </combo_item>
+ <combo_item name="Triangle">
+ Triangolare
+ </combo_item>
+ </combo_box>
+ <text name="text twist">
+ Torsione Inizio e Fine
+ </text>
+ <spinner label="I" name="Twist Begin"/>
+ <spinner label="F" name="Twist End"/>
+ <text name="scale_taper">
+ Avvicina i lati
+ </text>
+ <text name="scale_hole">
+ Grandezza del foro
+ </text>
+ <spinner label="X" name="Taper Scale X"/>
+ <spinner label="Y" name="Taper Scale Y"/>
+ <text name="text topshear">
+ Inclinazione
+ </text>
+ <spinner label="X" name="Shear X"/>
+ <spinner label="Y" name="Shear Y"/>
+ <text name="advanced_cut">
+ Ritaglia il profilo Inizio e Fine
+ </text>
+ <text name="advanced_dimple">
+ Scava Inizio e Fine
+ </text>
+ <text name="advanced_slice">
+ Affetta Inizio e Fine
+ </text>
+ <spinner label="I" name="Path Limit Begin"/>
+ <spinner label="F" name="Path Limit End"/>
+ <text name="text taper2">
+ Avvicina
+ </text>
+ <spinner label="X" name="Taper X"/>
+ <spinner label="Y" name="Taper Y"/>
+ <text name="text radius delta">
+ Raggio
+ </text>
+ <text name="text revolutions">
+ Rivoluzioni
+ </text>
+ <texture_picker label="Sculpt Texture" name="sculpt texture control" tool_tip="Clicca per scegliere un&apos;immagine"/>
+ <check_box label="Rifletti" name="sculpt mirror control" tool_tip="Ribalta lo sculpted prim lungo l&apos;asse X."/>
+ <check_box label="Rivolta" name="sculpt invert control" tool_tip="Inverte le normali dello sculpted prim, facendolo apparire rivoltato."/>
+ <text name="label sculpt type">
+ Tipo di congiunzione
+ </text>
+ <combo_box name="sculpt type control">
+ <combo_item name="None">
+ (nessuna)
+ </combo_item>
+ <combo_item name="Sphere">
+ Sferica
+ </combo_item>
+ <combo_item name="Torus">
+ Toroidale
+ </combo_item>
+ <combo_item name="Plane">
+ Piana
+ </combo_item>
+ <combo_item name="Cylinder">
+ Cilindrica
+ </combo_item>
+ </combo_box>
+ </panel>
+ <panel label="Caratteristiche" name="Features">
+ <text name="select_single">
+ Seleziona solo un prim per modificarne le caratteristiche.
+ </text>
+ <text name="edit_object">
+ Modifica le caratteristiche dell&apos;oggetto:
+ </text>
+ <check_box label="Flessibilità" name="Flexible1D Checkbox Ctrl" tool_tip="Permette all&apos;oggetto di flettersi rispetto all&apos;asse Z. (solo lato client)"/>
+ <spinner label="Morbidezza" name="FlexNumSections"/>
+ <spinner label="Gravità" name="FlexGravity"/>
+ <spinner label="Elasticità" name="FlexFriction"/>
+ <spinner label="Sventolio" name="FlexWind"/>
+ <spinner label="Tensione" name="FlexTension"/>
+ <spinner label="Forza X" name="FlexForceX"/>
+ <spinner label="Forza Y" name="FlexForceY"/>
+ <spinner label="Forza Z" name="FlexForceZ"/>
+ <check_box label="Luce" name="Light Checkbox Ctrl" tool_tip="Imposta l&apos;oggetto come sorgente di luce"/>
+ <text name="label color">
+ Colore
+ </text>
+ <color_swatch label="" name="colorswatch" tool_tip="Clicca per aprire la tavolozza dei colori"/>
+ <spinner label="Intensità" name="Light Intensity"/>
+ <spinner label="Raggio" name="Light Radius"/>
+ <spinner label="Attenuazione" name="Light Falloff"/>
+ </panel>
+ <panel label="Texture" name="Texture">
+ <texture_picker label="Texture" name="texture control" tool_tip="Clicca per scegliere un&apos;immagine"/>
+ <color_swatch label="Colore" name="colorswatch" tool_tip="Clicca per aprire la tavolozza dei colori"/>
+ <text name="color trans">
+ Trasparenza %
+ </text>
+ <text name="glow label">
+ Bagliore
+ </text>
+ <check_box label="Massima luminosità" name="checkbox fullbright"/>
+ <text name="tex gen">
+ Applicazione della texture
+ </text>
+ <combo_box name="combobox texgen">
+ <combo_item name="Default">
+ Default
+ </combo_item>
+ <combo_item name="Planar">
+ Planare
+ </combo_item>
+ </combo_box>
+ <text name="label shininess">
+ Brillantezza
+ </text>
+ <combo_box name="combobox shininess">
+ <combo_item name="None">
+ Nessuna
+ </combo_item>
+ <combo_item name="Low">
+ Bassa
+ </combo_item>
+ <combo_item name="Medium">
+ Media
+ </combo_item>
+ <combo_item name="High">
+ Alta
+ </combo_item>
+ </combo_box>
+ <text name="label bumpiness">
+ Rilievo
+ </text>
+ <combo_box name="combobox bumpiness">
+ <combo_item name="None">
+ Nessuna
+ </combo_item>
+ <combo_item name="Brightness">
+ Luminoso
+ </combo_item>
+ <combo_item name="Darkness">
+ Scuro
+ </combo_item>
+ <combo_item name="woodgrain">
+ Venature del legno
+ </combo_item>
+ <combo_item name="bark">
+ Corteccia
+ </combo_item>
+ <combo_item name="bricks">
+ Mattoni
+ </combo_item>
+ <combo_item name="checker">
+ Scacchi
+ </combo_item>
+ <combo_item name="concrete">
+ Cemento
+ </combo_item>
+ <combo_item name="crustytile">
+ Mattonella incrostata
+ </combo_item>
+ <combo_item name="cutstone">
+ Mosaico in pietra
+ </combo_item>
+ <combo_item name="discs">
+ Dischi
+ </combo_item>
+ <combo_item name="gravel">
+ Ghiaia
+ </combo_item>
+ <combo_item name="petridish">
+ Sassi
+ </combo_item>
+ <combo_item name="siding">
+ Listoni
+ </combo_item>
+ <combo_item name="stonetile">
+ Mattonelle in pietra
+ </combo_item>
+ <combo_item name="stucco">
+ Stucco
+ </combo_item>
+ <combo_item name="suction">
+ Cerchi rialzati
+ </combo_item>
+ <combo_item name="weave">
+ Trama
+ </combo_item>
+ </combo_box>
+ <text name="tex scale">
+ Ripetizioni per faccia
+ </text>
+ <spinner label="Orizzontale (U)" name="TexScaleU"/>
+ <check_box label="Inverti" name="checkbox flip s"/>
+ <spinner label="Verticale (V)" name="TexScaleV"/>
+ <check_box label="Inverti" name="checkbox flip t"/>
+ <text name="tex rotate">
+ Rotazione (Gradi)
+ </text>
+ <string name="string repeats per meter">
+ Ripetizioni per metro
+ </string>
+ <string name="string repeats per face">
+ Ripetizioni per faccia
+ </string>
+ <text name="rpt">
+ Ripetizioni per metro
+ </text>
+ <button label="Applica" label_selected="Applica" name="button apply"/>
+ <text name="tex offset">
+ Offset
+ </text>
+ <spinner label="Orizzontale (U)" name="TexOffsetU"/>
+ <spinner label="Verticale (V)" name="TexOffsetV"/>
+ <text name="textbox autofix">
+ Allinea texture dei media
+(deve prima caricarsi)
+ </text>
+ <button label="Allinea" label_selected="Allinea" name="button align"/>
+ </panel>
+ <panel label="Contenuto" name="Contents">
+ <button label="Nuovo Script" label_selected="Nuovo script..." name="button new script"/>
+ <button label="Permessi..." name="button permissions"/>
+ </panel>
+ </tab_container>
+ <panel name="land info panel">
+ <text name="label_parcel_info">
+ Informazioni sul terreno
+ </text>
+ <text name="label_area_price">
+ Prezzo: [PRICE] L$ per [AREA] mq.
+ </text>
+ <text name="label_area">
+ Area: [AREA] mq.
+ </text>
+ <button label="Informazioni sul terreno..." label_selected="Informazioni sul terreno..." name="button about land"/>
+ <check_box label="Mostra i proprietari" name="checkbox show owners" tool_tip="Colora i terreni in base ai loro proprietari"/>
+ <button label="?" label_selected="?" name="button show owners help"/>
+ <text name="label_parcel_modify">
+ Modifica il terreno
+ </text>
+ <button label="Suddividi..." label_selected="Suddividi..." name="button subdivide land"/>
+ <button label="Unisci..." label_selected="Unisci..." name="button join land"/>
+ <text name="label_parcel_trans">
+ Transazioni del territorio
+ </text>
+ <button label="Acquista il terreno..." label_selected="Acquista il terreno..." name="button buy land"/>
+ <button label="Abbandona il terreno..." label_selected="Abbandona il terreno..." name="button abandon land"/>
+ </panel>
+ <string name="status_rotate">
+ Sposta le fasce colorate per ruotare l&apos;oggetto
+ </string>
+ <string name="status_scale">
+ Clicca e trascina per ridimensionare il lato selezionato
+ </string>
+ <string name="status_move">
+ Trascina per spostare, maiuscolo+trascina per copiare
+ </string>
+ <string name="status_modifyland">
+ Clicca e tieni premuto per modificare il terreno
+ </string>
+ <string name="status_camera">
+ Clicca e sposta per cambiare visuale
+ </string>
+ <string name="status_grab">
+ Trascina per muovere, Ctrl per alzare, Ctrl-Shift per ruotare
+ </string>
+ <string name="status_place">
+ Clicca inworld per costruire
+ </string>
+ <string name="status_selectland">
+ Clicca e trascina per selezionare il terreno
+ </string>
+ <string name="grid_screen_text">
+ Schermo
+ </string>
+ <string name="grid_local_text">
+ Locale
+ </string>
+ <string name="grid_world_text">
+ Globale
+ </string>
+ <string name="grid_reference_text">
+ Riferimento
+ </string>
+ <string name="grid_attachment_text">
+ Accessorio
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_top_objects.xml b/indra/newview/skins/default/xui/it/floater_top_objects.xml
index 95bb0e3597..ff6e9eb730 100644
--- a/indra/newview/skins/default/xui/it/floater_top_objects.xml
+++ b/indra/newview/skins/default/xui/it/floater_top_objects.xml
@@ -1,55 +1,55 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="top_objects" title="In caricamento...">
- <text name="title_text">
- In caricamento...
- </text>
- <scroll_list name="objects_list">
- <column label="Punteggio" name="score"/>
- <column label="Nome" name="name"/>
- <column label="Proprietario" name="owner"/>
- <column label="Ubicazione" name="location"/>
- <column label="Ora" name="time"/>
- <column label="Ora (Mono)" name="mono_time"/>
- </scroll_list>
- <text name="id_text">
- ID oggetto:
- </text>
- <button label="Mostra segnali luminosi" name="show_beacon_btn"/>
- <text name="obj_name_text">
- Nome oggetto:
- </text>
- <button label="Filtro" name="filter_object_btn"/>
- <text name="owner_name_text">
- Nome oggetto:
- </text>
- <button label="Filtro" name="filter_owner_btn"/>
- <button label="Restituisci selezionato" name="return_selected_btn"/>
- <button label="Restituisci tutti" name="return_all_btn"/>
- <button label="Disabilita selezionato" name="disable_selected_btn"/>
- <button label="Disabilita per tutti" name="disable_all_btn"/>
- <button label="Aggiorna" name="refresh_btn"/>
- <string name="top_scripts_title">
- Script pesanti
- </string>
- <string name="top_scripts_text">
- [COUNT] script richiedono un totale di [TIME] ms
- </string>
- <string name="scripts_score_label">
- Ora
- </string>
- <string name="scripts_mono_time_label">
- Ora &apos;Mono&apos;
- </string>
- <string name="top_colliders_title">
- Oggetti con maggiori collisioni
- </string>
- <string name="top_colliders_text">
- I [COUNT] oggetti che sperimentano il maggior numero di collisioni
- </string>
- <string name="colliders_score_label">
- Punteggio
- </string>
- <string name="none_descriptor">
- Nulla di rilevato.
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="top_objects" title="In caricamento...">
+ <text name="title_text">
+ In caricamento...
+ </text>
+ <scroll_list name="objects_list">
+ <column label="Punteggio" name="score"/>
+ <column label="Nome" name="name"/>
+ <column label="Proprietario" name="owner"/>
+ <column label="Ubicazione" name="location"/>
+ <column label="Ora" name="time"/>
+ <column label="Ora (Mono)" name="mono_time"/>
+ </scroll_list>
+ <text name="id_text">
+ ID oggetto:
+ </text>
+ <button label="Mostra segnali luminosi" name="show_beacon_btn"/>
+ <text name="obj_name_text">
+ Nome oggetto:
+ </text>
+ <button label="Filtro" name="filter_object_btn"/>
+ <text name="owner_name_text">
+ Nome oggetto:
+ </text>
+ <button label="Filtro" name="filter_owner_btn"/>
+ <button label="Restituisci selezionato" name="return_selected_btn"/>
+ <button label="Restituisci tutti" name="return_all_btn"/>
+ <button label="Disabilita selezionato" name="disable_selected_btn"/>
+ <button label="Disabilita per tutti" name="disable_all_btn"/>
+ <button label="Aggiorna" name="refresh_btn"/>
+ <string name="top_scripts_title">
+ Script pesanti
+ </string>
+ <string name="top_scripts_text">
+ [COUNT] script richiedono un totale di [TIME] ms
+ </string>
+ <string name="scripts_score_label">
+ Ora
+ </string>
+ <string name="scripts_mono_time_label">
+ Ora &apos;Mono&apos;
+ </string>
+ <string name="top_colliders_title">
+ Oggetti con maggiori collisioni
+ </string>
+ <string name="top_colliders_text">
+ I [COUNT] oggetti che sperimentano il maggior numero di collisioni
+ </string>
+ <string name="colliders_score_label">
+ Punteggio
+ </string>
+ <string name="none_descriptor">
+ Nulla di rilevato.
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_tos.xml b/indra/newview/skins/default/xui/it/floater_tos.xml
index da3f2e2c1f..76dbe86ee6 100644
--- a/indra/newview/skins/default/xui/it/floater_tos.xml
+++ b/indra/newview/skins/default/xui/it/floater_tos.xml
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="modal container" title="">
- <button label="Continua" label_selected="Continua" name="Continue"/>
- <button label="Annulla" label_selected="Annulla" name="Cancel"/>
- <check_box label="Accetto i Termini di Servizio" name="agree_chk"/>
- <text name="tos_heading">
- Leggi attentamente i seguenti Termini di Servizio . Per continuare ad entrare in Second Life,
-devi accettare l&apos;accordo.
- </text>
- <text_editor name="tos_text">
- TOS_TEXT
- </text_editor>
- <string name="real_url">
- http://secondlife.com/app/tos/
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="modal container" title="">
+ <button label="Continua" label_selected="Continua" name="Continue"/>
+ <button label="Annulla" label_selected="Annulla" name="Cancel"/>
+ <check_box label="Accetto i Termini di Servizio" name="agree_chk"/>
+ <text name="tos_heading">
+ Leggi attentamente i seguenti Termini di Servizio . Per continuare ad entrare in Second Life,
+devi accettare l&apos;accordo.
+ </text>
+ <text_editor name="tos_text">
+ TOS_TEXT
+ </text_editor>
+ <string name="real_url">
+ http://secondlife.com/app/tos/
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_url_entry.xml b/indra/newview/skins/default/xui/it/floater_url_entry.xml
index 0a757edf24..2968b19d80 100644
--- a/indra/newview/skins/default/xui/it/floater_url_entry.xml
+++ b/indra/newview/skins/default/xui/it/floater_url_entry.xml
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="url_entry" title="">
- <text name="media_label">
- Media URL:
- </text>
- <button label="OK" name="ok_btn"/>
- <button label="Annulla" name="cancel_btn"/>
- <button label="Cancella" name="clear_btn"/>
- <text name="loading_label">
- In caricamento...
- </text>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="url_entry" title="">
+ <text name="media_label">
+ Media URL:
+ </text>
+ <button label="OK" name="ok_btn"/>
+ <button label="Annulla" name="cancel_btn"/>
+ <button label="Cancella" name="clear_btn"/>
+ <text name="loading_label">
+ In caricamento...
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_water.xml b/indra/newview/skins/default/xui/it/floater_water.xml
index 0f2444ca70..6665d97e2a 100644
--- a/indra/newview/skins/default/xui/it/floater_water.xml
+++ b/indra/newview/skins/default/xui/it/floater_water.xml
@@ -1,88 +1,88 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Water Floater" title="Editor avanzato dell&apos;acqua">
- <text name="KeyFramePresetsText">
- Impostazioni predeterminate dell&apos;acqua:
- </text>
- <button label="Nuovo" label_selected="Nuovo" name="WaterNewPreset"/>
- <button label="Salva" label_selected="Salva" name="WaterSavePreset"/>
- <button label="Cancella" label_selected="Cancella" name="WaterDeletePreset"/>
- <tab_container name="Water Tabs">
- <panel label="Impostazioni" name="Settings">
- <text name="BHText">
- Colore della nebbiosità dell&apos;acqua
- </text>
- <button label="?" name="WaterFogColorHelp"/>
- <color_swatch label="" name="WaterFogColor" tool_tip="Clicca per aprire la selezione colore"/>
- <text name="WaterFogDensText">
- Esponente di densità  della nebbia dell&apos;acqua
- </text>
- <button label="?" name="WaterFogDensityHelp"/>
- <text name="WaterUnderWaterFogModText">
- Regolatore effetto nebbia subacquea
- </text>
- <button label="?" name="WaterUnderWaterFogModHelp"/>
- <text name="BDensText">
- Scala di riflessione delle onde
- </text>
- <button label="?" name="WaterNormalScaleHelp"/>
- <text name="BHText2">
- 1
- </text>
- <text name="BHText3">
- 2
- </text>
- <text name="BHText4">
- 3
- </text>
- <text name="HDText">
- Scala Fresnel
- </text>
- <button label="?" name="WaterFresnelScaleHelp"/>
- <text name="FresnelOffsetText">
- Offset Fresnel
- </text>
- <button label="?" name="WaterFresnelOffsetHelp"/>
- <text name="DensMultText">
- Scala di rifrazione nell&apos;acqua dall&apos;alto
- </text>
- <button label="?" name="WaterScaleAboveHelp"/>
- <text name="WaterScaleBelowText">
- Scala di rifrazione nell&apos;acqua dal basso
- </text>
- <button label="?" name="WaterScaleBelowHelp"/>
- <text name="MaxAltText">
- Moltiplicatore della sfocatura
- </text>
- <button label="?" name="WaterBlurMultiplierHelp"/>
- </panel>
- <panel label="Immagine" name="Waves">
- <text name="BHText">
- Direzione della grande onda
- </text>
- <button label="?" name="WaterWave1Help"/>
- <text name="WaterWave1DirXText">
- X
- </text>
- <text name="WaterWave1DirYText">
- Y
- </text>
- <text name="BHText2">
- Direzione della piccola onda
- </text>
- <button label="?" name="WaterWave2Help"/>
- <text name="WaterWave2DirXText">
- X
- </text>
- <text name="WaterWave2DirYText">
- Y
- </text>
- <text name="BHText3">
- Mappatura normale
- </text>
- <button label="?" name="WaterNormalMapHelp"/>
- </panel>
- </tab_container>
- <string name="WLDefaultWaterNames">
- Default:Glassy:Pond:Murky:Second Plague:SNAKE!!!:Valdez
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Water Floater" title="Editor avanzato dell&apos;acqua">
+ <text name="KeyFramePresetsText">
+ Impostazioni predeterminate dell&apos;acqua:
+ </text>
+ <button label="Nuovo" label_selected="Nuovo" name="WaterNewPreset"/>
+ <button label="Salva" label_selected="Salva" name="WaterSavePreset"/>
+ <button label="Cancella" label_selected="Cancella" name="WaterDeletePreset"/>
+ <tab_container name="Water Tabs">
+ <panel label="Impostazioni" name="Settings">
+ <text name="BHText">
+ Colore della nebbiosità dell&apos;acqua
+ </text>
+ <button label="?" name="WaterFogColorHelp"/>
+ <color_swatch label="" name="WaterFogColor" tool_tip="Clicca per aprire la selezione colore"/>
+ <text name="WaterFogDensText">
+ Esponente di densità  della nebbia dell&apos;acqua
+ </text>
+ <button label="?" name="WaterFogDensityHelp"/>
+ <text name="WaterUnderWaterFogModText">
+ Regolatore effetto nebbia subacquea
+ </text>
+ <button label="?" name="WaterUnderWaterFogModHelp"/>
+ <text name="BDensText">
+ Scala di riflessione delle onde
+ </text>
+ <button label="?" name="WaterNormalScaleHelp"/>
+ <text name="BHText2">
+ 1
+ </text>
+ <text name="BHText3">
+ 2
+ </text>
+ <text name="BHText4">
+ 3
+ </text>
+ <text name="HDText">
+ Scala Fresnel
+ </text>
+ <button label="?" name="WaterFresnelScaleHelp"/>
+ <text name="FresnelOffsetText">
+ Offset Fresnel
+ </text>
+ <button label="?" name="WaterFresnelOffsetHelp"/>
+ <text name="DensMultText">
+ Scala di rifrazione nell&apos;acqua dall&apos;alto
+ </text>
+ <button label="?" name="WaterScaleAboveHelp"/>
+ <text name="WaterScaleBelowText">
+ Scala di rifrazione nell&apos;acqua dal basso
+ </text>
+ <button label="?" name="WaterScaleBelowHelp"/>
+ <text name="MaxAltText">
+ Moltiplicatore della sfocatura
+ </text>
+ <button label="?" name="WaterBlurMultiplierHelp"/>
+ </panel>
+ <panel label="Immagine" name="Waves">
+ <text name="BHText">
+ Direzione della grande onda
+ </text>
+ <button label="?" name="WaterWave1Help"/>
+ <text name="WaterWave1DirXText">
+ X
+ </text>
+ <text name="WaterWave1DirYText">
+ Y
+ </text>
+ <text name="BHText2">
+ Direzione della piccola onda
+ </text>
+ <button label="?" name="WaterWave2Help"/>
+ <text name="WaterWave2DirXText">
+ X
+ </text>
+ <text name="WaterWave2DirYText">
+ Y
+ </text>
+ <text name="BHText3">
+ Mappatura normale
+ </text>
+ <button label="?" name="WaterNormalMapHelp"/>
+ </panel>
+ </tab_container>
+ <string name="WLDefaultWaterNames">
+ Default:Glassy:Pond:Murky:Second Plague:SNAKE!!!:Valdez
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_wearable_save_as.xml b/indra/newview/skins/default/xui/it/floater_wearable_save_as.xml
index 453a0bc8a4..dcb7620bd5 100644
--- a/indra/newview/skins/default/xui/it/floater_wearable_save_as.xml
+++ b/indra/newview/skins/default/xui/it/floater_wearable_save_as.xml
@@ -1,11 +1,11 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="modal container" title="">
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Annulla" label_selected="Annulla" name="Cancel"/>
- <text name="Save item as:">
- Salva oggetto come:
- </text>
- <line_editor name="name ed">
- Nuovo [DESC]
- </line_editor>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="modal container" title="">
+ <button label="Salva" label_selected="Salva" name="Save"/>
+ <button label="Annulla" label_selected="Annulla" name="Cancel"/>
+ <text name="Save item as:">
+ Salva oggetto come:
+ </text>
+ <line_editor name="name ed">
+ Nuovo [DESC]
+ </line_editor>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_windlight_options.xml b/indra/newview/skins/default/xui/it/floater_windlight_options.xml
index 37ada0f210..aa99e1d883 100644
--- a/indra/newview/skins/default/xui/it/floater_windlight_options.xml
+++ b/indra/newview/skins/default/xui/it/floater_windlight_options.xml
@@ -1,189 +1,189 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="WindLight floater" title="Editor avanzato del cielo">
- <text name="KeyFramePresetsText">
- Cieli predefiniti:
- </text>
- <button label="Nuovo" label_selected="Nuovo" name="WLNewPreset"/>
- <button label="Salva" label_selected="Salva" name="WLSavePreset"/>
- <button label="Elimina" label_selected="Elimina" name="WLDeletePreset"/>
- <button label="Editor del ciclo giorno/notte" label_selected="Editor del ciclo giorno/notte" name="WLDayCycleMenuButton"/>
- <tab_container name="WindLight Tabs">
- <panel label="Atmosfera" name="Atmosphere">
- <text name="BHText">
- Blu dell&apos;Orizzonte
- </text>
- <button label="?" name="WLBlueHorizonHelp"/>
- <text name="BHText2">
- R
- </text>
- <text name="BHText3">
- G
- </text>
- <text name="BHText4">
- B
- </text>
- <text name="BHText5">
- I
- </text>
- <text name="BDensText">
- Altezza della Foschia all&apos;Orizzonte
- </text>
- <button label="?" name="WLHazeHorizonHelp"/>
- <text name="BDensText2">
- Densità del Blu
- </text>
- <button label="?" name="WLBlueDensityHelp"/>
- <text name="BHText6">
- R
- </text>
- <text name="BHText7">
- G
- </text>
- <text name="BHText8">
- B
- </text>
- <text name="BHText9">
- I
- </text>
- <text name="HDText">
- Densità  della Foschia
- </text>
- <button label="?" name="WLHazeDensityHelp"/>
- <text name="DensMultText">
- Moltiplicatore di Densità
- </text>
- <button label="?" name="WLDensityMultHelp"/>
- <text name="WLDistanceMultText">
- Moltiplicatore della Distanza
- </text>
- <button label="?" name="WLDistanceMultHelp"/>
- <text name="MaxAltText">
- Altitudine Massima
- </text>
- <button label="?" name="WLMaxAltitudeHelp"/>
- </panel>
- <panel label="Illuminazione" name="Lighting">
- <text name="SLCText">
- Colore Sole/Luna
- </text>
- <button label="?" name="WLSunlightColorHelp"/>
- <text name="BHText">
- R
- </text>
- <text name="BHText2">
- G
- </text>
- <text name="BHText3">
- B
- </text>
- <text name="BHText4">
- I
- </text>
- <text name="TODText">
- Posizione Sole/Luna
- </text>
- <button label="?" name="WLTimeOfDayHelp"/>
- <text name="WLAmbientText">
- Ambiente
- </text>
- <button label="?" name="WLAmbientHelp"/>
- <text name="BHText5">
- R
- </text>
- <text name="BHText6">
- G
- </text>
- <text name="BHText7">
- B
- </text>
- <text name="BHText8">
- I
- </text>
- <text name="WLEastAngleText">
- Angolo Est
- </text>
- <button label="?" name="WLEastAngleHelp"/>
- <text name="SunGlowText">
- Corona intorno al sole
- </text>
- <button label="?" name="WLSunGlowHelp"/>
- <slider label="Focus" name="WLGlowB"/>
- <slider label="Grandezza" name="WLGlowR"/>
- <text name="SceneGammaText">
- Gamma della Scena
- </text>
- <button label="?" name="WLSceneGammaHelp"/>
- <text name="WLStarText">
- Luminosità  delle stelle
- </text>
- <button label="?" name="WLStarBrightnessHelp"/>
- </panel>
- <panel label="Nuvole" name="Clouds">
- <text name="WLCloudColorText">
- Colore delle Nuvole
- </text>
- <button label="?" name="WLCloudColorHelp"/>
- <text name="BHText">
- R
- </text>
- <text name="BHText2">
- G
- </text>
- <text name="BHText3">
- B
- </text>
- <text name="BHText4">
- I
- </text>
- <text name="WLCloudColorText2">
- Nuvole XY/Densità
- </text>
- <button label="?" name="WLCloudDensityHelp"/>
- <text name="BHText5">
- X
- </text>
- <text name="BHText6">
- Y
- </text>
- <text name="BHText7">
- D
- </text>
- <text name="WLCloudCoverageText">
- Copertura delle Nuvole
- </text>
- <button label="?" name="WLCloudCoverageHelp"/>
- <text name="WLCloudScaleText">
- Altitudine delle Nuvole
- </text>
- <button label="?" name="WLCloudScaleHelp"/>
- <text name="WLCloudDetailText">
- Dettagli Nuvole (XY/ Densità)
- </text>
- <button label="?" name="WLCloudDetailHelp"/>
- <text name="BHText8">
- X
- </text>
- <text name="BHText9">
- Y
- </text>
- <text name="BHText10">
- D
- </text>
- <text name="WLCloudScrollXText">
- Scorrimento delle nuvole X
- </text>
- <button label="?" name="WLCloudScrollXHelp"/>
- <check_box label="Blocca" name="WLCloudLockX"/>
- <text name="WLCloudScrollYText">
- Scorrimento delle nuvole Y
- </text>
- <button label="?" name="WLCloudScrollYHelp"/>
- <check_box label="Blocca" name="WLCloudLockY"/>
- <check_box label="Mostra le Nuvole Classiche" name="DrawClassicClouds"/>
- <button label="?" name="WLClassicCloudsHelp"/>
- </panel>
- </tab_container>
- <string name="WLDefaultSkyNames">
- A-12AM:A-12PM:A-3AM:A-3PM:A-4.30PM:A-6AM:A-6PM:A-9AM:A-9PM:Barcelona:Blizzard:Blue Midday:Coastal Afternoon:Coastal Sunset:Default:Desert Sunset:Fine Day:Fluffy Big Clouds:Foggy:Funky Funky:Funky Funky Funky:Gelatto:Ghost:Incongruent Truths:Midday 1:Midday 2:Midday 3:Midday 4:Night:Pirate:Purple:Sailor&apos;s Delight:Sheer Sensuality
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="WindLight floater" title="Editor avanzato del cielo">
+ <text name="KeyFramePresetsText">
+ Cieli predefiniti:
+ </text>
+ <button label="Nuovo" label_selected="Nuovo" name="WLNewPreset"/>
+ <button label="Salva" label_selected="Salva" name="WLSavePreset"/>
+ <button label="Elimina" label_selected="Elimina" name="WLDeletePreset"/>
+ <button label="Editor del ciclo giorno/notte" label_selected="Editor del ciclo giorno/notte" name="WLDayCycleMenuButton"/>
+ <tab_container name="WindLight Tabs">
+ <panel label="Atmosfera" name="Atmosphere">
+ <text name="BHText">
+ Blu dell&apos;Orizzonte
+ </text>
+ <button label="?" name="WLBlueHorizonHelp"/>
+ <text name="BHText2">
+ R
+ </text>
+ <text name="BHText3">
+ G
+ </text>
+ <text name="BHText4">
+ B
+ </text>
+ <text name="BHText5">
+ I
+ </text>
+ <text name="BDensText">
+ Altezza della Foschia all&apos;Orizzonte
+ </text>
+ <button label="?" name="WLHazeHorizonHelp"/>
+ <text name="BDensText2">
+ Densità del Blu
+ </text>
+ <button label="?" name="WLBlueDensityHelp"/>
+ <text name="BHText6">
+ R
+ </text>
+ <text name="BHText7">
+ G
+ </text>
+ <text name="BHText8">
+ B
+ </text>
+ <text name="BHText9">
+ I
+ </text>
+ <text name="HDText">
+ Densità  della Foschia
+ </text>
+ <button label="?" name="WLHazeDensityHelp"/>
+ <text name="DensMultText">
+ Moltiplicatore di Densità
+ </text>
+ <button label="?" name="WLDensityMultHelp"/>
+ <text name="WLDistanceMultText">
+ Moltiplicatore della Distanza
+ </text>
+ <button label="?" name="WLDistanceMultHelp"/>
+ <text name="MaxAltText">
+ Altitudine Massima
+ </text>
+ <button label="?" name="WLMaxAltitudeHelp"/>
+ </panel>
+ <panel label="Illuminazione" name="Lighting">
+ <text name="SLCText">
+ Colore Sole/Luna
+ </text>
+ <button label="?" name="WLSunlightColorHelp"/>
+ <text name="BHText">
+ R
+ </text>
+ <text name="BHText2">
+ G
+ </text>
+ <text name="BHText3">
+ B
+ </text>
+ <text name="BHText4">
+ I
+ </text>
+ <text name="TODText">
+ Posizione Sole/Luna
+ </text>
+ <button label="?" name="WLTimeOfDayHelp"/>
+ <text name="WLAmbientText">
+ Ambiente
+ </text>
+ <button label="?" name="WLAmbientHelp"/>
+ <text name="BHText5">
+ R
+ </text>
+ <text name="BHText6">
+ G
+ </text>
+ <text name="BHText7">
+ B
+ </text>
+ <text name="BHText8">
+ I
+ </text>
+ <text name="WLEastAngleText">
+ Angolo Est
+ </text>
+ <button label="?" name="WLEastAngleHelp"/>
+ <text name="SunGlowText">
+ Corona intorno al sole
+ </text>
+ <button label="?" name="WLSunGlowHelp"/>
+ <slider label="Focus" name="WLGlowB"/>
+ <slider label="Grandezza" name="WLGlowR"/>
+ <text name="SceneGammaText">
+ Gamma della Scena
+ </text>
+ <button label="?" name="WLSceneGammaHelp"/>
+ <text name="WLStarText">
+ Luminosità  delle stelle
+ </text>
+ <button label="?" name="WLStarBrightnessHelp"/>
+ </panel>
+ <panel label="Nuvole" name="Clouds">
+ <text name="WLCloudColorText">
+ Colore delle Nuvole
+ </text>
+ <button label="?" name="WLCloudColorHelp"/>
+ <text name="BHText">
+ R
+ </text>
+ <text name="BHText2">
+ G
+ </text>
+ <text name="BHText3">
+ B
+ </text>
+ <text name="BHText4">
+ I
+ </text>
+ <text name="WLCloudColorText2">
+ Nuvole XY/Densità
+ </text>
+ <button label="?" name="WLCloudDensityHelp"/>
+ <text name="BHText5">
+ X
+ </text>
+ <text name="BHText6">
+ Y
+ </text>
+ <text name="BHText7">
+ D
+ </text>
+ <text name="WLCloudCoverageText">
+ Copertura delle Nuvole
+ </text>
+ <button label="?" name="WLCloudCoverageHelp"/>
+ <text name="WLCloudScaleText">
+ Altitudine delle Nuvole
+ </text>
+ <button label="?" name="WLCloudScaleHelp"/>
+ <text name="WLCloudDetailText">
+ Dettagli Nuvole (XY/ Densità)
+ </text>
+ <button label="?" name="WLCloudDetailHelp"/>
+ <text name="BHText8">
+ X
+ </text>
+ <text name="BHText9">
+ Y
+ </text>
+ <text name="BHText10">
+ D
+ </text>
+ <text name="WLCloudScrollXText">
+ Scorrimento delle nuvole X
+ </text>
+ <button label="?" name="WLCloudScrollXHelp"/>
+ <check_box label="Blocca" name="WLCloudLockX"/>
+ <text name="WLCloudScrollYText">
+ Scorrimento delle nuvole Y
+ </text>
+ <button label="?" name="WLCloudScrollYHelp"/>
+ <check_box label="Blocca" name="WLCloudLockY"/>
+ <check_box label="Mostra le Nuvole Classiche" name="DrawClassicClouds"/>
+ <button label="?" name="WLClassicCloudsHelp"/>
+ </panel>
+ </tab_container>
+ <string name="WLDefaultSkyNames">
+ A-12AM:A-12PM:A-3AM:A-3PM:A-4.30PM:A-6AM:A-6PM:A-9AM:A-9PM:Barcelona:Blizzard:Blue Midday:Coastal Afternoon:Coastal Sunset:Default:Desert Sunset:Fine Day:Fluffy Big Clouds:Foggy:Funky Funky:Funky Funky Funky:Gelatto:Ghost:Incongruent Truths:Midday 1:Midday 2:Midday 3:Midday 4:Night:Pirate:Purple:Sailor&apos;s Delight:Sheer Sensuality
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_world_map.xml b/indra/newview/skins/default/xui/it/floater_world_map.xml
index f1074b16b5..088c8a7189 100644
--- a/indra/newview/skins/default/xui/it/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/it/floater_world_map.xml
@@ -1,59 +1,59 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="worldmap" title="Mappa">
- <tab_container name="maptab">
- <panel label="Oggetti" name="objects_mapview"/>
- <panel label="Terreno" name="terrain_mapview"/>
- </tab_container>
- <text name="land_for_sale_label">
- Terreno in vendita
- </text>
- <text name="auction_label">
- Asta
- </text>
- <text name="you_label">
- Tu
- </text>
- <text name="home_label">
- Casa
- </text>
- <button label="Vai a Casa" label_selected="Vai a Casa" name="Go Home" tool_tip="Teletrasportati a casa"/>
- <text name="person_label">
- Persona
- </text>
- <text name="infohub_label">
- Punto d&apos;informazione
- </text>
- <text name="telehub_label">
- Snodo di teleport
- </text>
- <text name="land_for_sale_label2">
- Terreno in vendita
- </text>
- <text name="events_label">
- Eventi
- </text>
-
- <combo_box label="Amici Online" name="friend combo" tool_tip="Amici da mostrare sulla mappa">
- <combo_box.item name="none_selected" label="Amici Online"/>
- </combo_box>
- <combo_box label="Landmark" name="landmark combo" tool_tip="Landmarks da mostrare sulla mappa">
- <combo_box.item name="none_selected" label="Landmark"/>
- </combo_box>
- <line_editor label="Cerca per nome di regione" name="location" tool_tip="Scrivi il nome di una regione"/>
- <button label="Cerca" name="DoSearch" tool_tip="Cerca regione"/>
- <text name="search_label">
- Cerca tra i risultati:
- </text>
- <text name="location_label">
- Luogo:
- </text>
- <spinner name="spin x" tool_tip="Coordinata X del luogo da mostrare sulla mappa"/>
- <spinner name="spin y" tool_tip="Coordinata Y del luogo da mostrare sulla mappa"/>
- <spinner name="spin z" tool_tip="Coordinata Z del luogo da mostrare sulla mappa"/>
- <button label="Teletrasporto" label_selected="Teletrasporto" name="Teleport" tool_tip="Teletrasporto al luogo prescelto"/>
- <button label="Mostra destinazione" label_selected="Mostra destinazione" name="Show Destination" tool_tip="Centra la mappa sul luogo prescelto"/>
- <button label="Pulisci" label_selected="Pulisci" name="Clear" tool_tip="Togli traccia"/>
- <button label="Mostra la mia posizione" label_selected="Mostra la mia posizione" name="Show My Location" tool_tip="Centra la mappa alla posizione del tuo avatar"/>
- <button label="Copia lo SLURL negli appunti" name="copy_slurl" tool_tip="Copia l&apos;attuale posizione quale SLURL utilizzabile nel web."/>
- <slider label="Zoom" name="zoom slider"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="worldmap" title="Mappa">
+ <tab_container name="maptab">
+ <panel label="Oggetti" name="objects_mapview"/>
+ <panel label="Terreno" name="terrain_mapview"/>
+ </tab_container>
+ <text name="you_label">
+ Tu
+ </text>
+ <text name="home_label">
+ Casa
+ </text>
+ <text name="auction_label">
+ Asta
+ </text>
+ <text name="land_for_sale_label">
+ Terreno in vendita
+ </text>
+ <button label="Vai a Casa" label_selected="Vai a Casa" name="Go Home" tool_tip="Teletrasportati a casa"/>
+ <check_box label="Residenti" name="people_chk"/>
+ <check_box label="Punto informativo" name="infohub_chk"/>
+ <check_box label="Punto di snodo &#10;di teletrasporto" name="telehubchk"/>
+ <icon bottom="-170" name="landforsale" />
+ <check_box label="Terra in vendita" name="land_for_sale_chk" bottom="-170"/>
+ <text name="events_label">
+ Eventi:
+ </text>
+ <check_box label="PG" name="event_chk"/>
+ <check_box label="Mature" name="event_mature_chk"/>
+ <check_box label="Adult" name="event_adult_chk"/>
+ <icon bottom="-200" name="avatar_icon" />
+ <combo_box label="Amici Online" name="friend combo" tool_tip="Amici da mostrare sulla mappa">
+ <combo_box.item name="none_selected" label="Amici Online"/>
+ </combo_box>
+ <combo_box label="Landmark" name="landmark combo" tool_tip="Landmarks da mostrare sulla mappa">
+ <combo_box.item name="none_selected" label="Landmark"/>
+ </combo_box>
+ <line_editor label="Cerca per nome di regione" name="location" tool_tip="Scrivi il nome di una regione"/>
+ <button label="Cerca" name="DoSearch" tool_tip="Cerca regione"/>
+ <text name="search_label">
+ Cerca tra i risultati:
+ </text>
+ <scroll_list name="search_results" bottom_delta="-310" height="304" >
+ <column label="" name="icon"/>
+ <column label="" name="sim_name"/>
+ </scroll_list>
+ <text name="location_label">
+ Luogo:
+ </text>
+ <spinner name="spin x" tool_tip="Coordinata X del luogo da mostrare sulla mappa"/>
+ <spinner name="spin y" tool_tip="Coordinata Y del luogo da mostrare sulla mappa"/>
+ <spinner name="spin z" tool_tip="Coordinata Z del luogo da mostrare sulla mappa"/>
+ <button font="SansSerifSmall" label="Teletrasporto" label_selected="Teletrasporto" name="Teleport" tool_tip="Teletrasporto al luogo prescelto"/>
+ <button font="SansSerifSmall" left_delta="91" width="135" label="Mostra destinazione" label_selected="Mostra destinazione" name="Show Destination" tool_tip="Centra la mappa sul luogo prescelto"/>
+ <button font="SansSerifSmall" label="Pulisci" label_selected="Pulisci" name="Clear" tool_tip="Togli traccia"/>
+ <button font="SansSerifSmall" left_delta="91" width="135" label="Mostra la mia posizione" label_selected="Mostra la mia posizione" name="Show My Location" tool_tip="Centra la mappa alla posizione del tuo avatar"/>
+ <button font="SansSerifSmall" label="Copia lo SLURL negli appunti" name="copy_slurl" tool_tip="Copia l&apos;attuale posizione quale SLURL utilizzabile nel web."/>
+ <slider label="Zoom" name="zoom slider"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/menu_inventory.xml b/indra/newview/skins/default/xui/it/menu_inventory.xml
index 396390e209..31b50e8d6b 100644
--- a/indra/newview/skins/default/xui/it/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/it/menu_inventory.xml
@@ -1,65 +1,66 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<menu name="Popup">
- <menu_item_call label="Compra" name="Task Buy"/>
- <menu_item_call label="Apri" name="Task Open"/>
- <menu_item_call label="Esegui" name="Task Play"/>
- <menu_item_call label="Proprietà" name="Task Properties"/>
- <menu_item_call label="Rinomina" name="Task Rename"/>
- <menu_item_call label="Elimina" name="Task Remove"/>
- <menu_item_call label="Svuota il Cestino" name="Empty Trash"/>
- <menu_item_call label="Svuota gli oggetti persi e ritrovati" name="Empty Lost And Found"/>
- <menu_item_call label="Nuova Cartella" name="New Folder"/>
- <menu_item_call label="Nuovo Script" name="New Script"/>
- <menu_item_call label="Nuova Notecard" name="New Note"/>
- <menu_item_call label="Nuova Gesture" name="New Gesture"/>
- <menu name="New Clothes">
- <menu_item_call label="Nuova Maglietta" name="New Shirt"/>
- <menu_item_call label="Nuovi Pantaloni" name="New Pants"/>
- <menu_item_call label="Nuove Scarpe" name="New Shoes"/>
- <menu_item_call label="Nuove Calze" name="New Socks"/>
- <menu_item_call label="Nuova Giacca" name="New Jacket"/>
- <menu_item_call label="Nuova Gonna" name="New Skirt"/>
- <menu_item_call label="Nuovi Guanti" name="New Gloves"/>
- <menu_item_call label="Nuova Canottiera" name="New Undershirt"/>
- <menu_item_call label="Nuove Mutande" name="New Underpants"/>
- </menu>
- <menu name="New Body Parts">
- <menu_item_call label="Nuova Forma del corpo" name="New Shape"/>
- <menu_item_call label="Nuova Pelle" name="New Skin"/>
- <menu_item_call label="Nuovi Capelli" name="New Hair"/>
- <menu_item_call label="Nuovi Occhi" name="New Eyes"/>
- </menu>
- <menu_item_call label="Teletrasportati" name="Landmark Open"/>
- <menu_item_call label="Apri" name="Animation Open"/>
- <menu_item_call label="Apri" name="Sound Open"/>
- <menu_item_call label="Elimina oggetto" name="Purge Item"/>
- <menu_item_call label="Ripristina oggetto" name="Restore Item"/>
- <menu_item_call label="Apri" name="Open"/>
- <menu_item_call label="Proprietà" name="Properties"/>
- <menu_item_call label="Rinomina" name="Rename"/>
- <menu_item_call label="Copia UUID dell&apos;oggetto" name="Copy Asset UUID"/>
- <menu_item_call label="Copia" name="Copy"/>
- <menu_item_call label="Incolla" name="Paste"/>
- <menu_item_call label="Cancella" name="Delete"/>
- <menu_item_call label="Togli gli oggetti" name="Take Off Items"/>
- <menu_item_call label="Aggiungi all&apos;outfit" name="Add To Outfit"/>
- <menu_item_call label="Sostituisci outfit" name="Replace Outfit"/>
- <menu_item_call label="Inizia la conferenza chat" name="Conference Chat Folder"/>
- <menu_item_call label="Esegui" name="Sound Play"/>
- <menu_item_call label="Informazioni sul landmark" name="Teleport To Landmark"/>
- <menu_item_call label="Esegui inworld" name="Animation Play"/>
- <menu_item_call label="Esegui localmente" name="Animation Audition"/>
- <menu_item_call label="Invia un Instant Message" name="Send Instant Message"/>
- <menu_item_call label="Offri teletrasporto..." name="Offer Teleport..."/>
- <menu_item_call label="Inizia una conferenza chat" name="Conference Chat"/>
- <menu_item_call label="Attiva" name="Activate"/>
- <menu_item_call label="Disattiva" name="Deactivate"/>
- <menu_item_call label="Stacca da te" name="Detach From Yourself"/>
- <menu_item_call label="Indossa" name="Object Wear"/>
- <menu label="Attacca a" name="Attach To"/>
- <menu label="Attacca all&apos;HUD" name="Attach To HUD"/>
- <menu_item_call label="Modifica" name="Wearable Edit"/>
- <menu_item_call label="Indossa" name="Wearable Wear"/>
- <menu_item_call label="Togli" name="Take Off"/>
- <menu_item_call label="--nessuna opzione--" name="--no options--"/>
-</menu>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="Popup">
+ <menu_item_call label="Compra" name="Task Buy"/>
+ <menu_item_call label="Apri" name="Task Open"/>
+ <menu_item_call label="Esegui" name="Task Play"/>
+ <menu_item_call label="Proprietà" name="Task Properties"/>
+ <menu_item_call label="Rinomina" name="Task Rename"/>
+ <menu_item_call label="Elimina" name="Task Remove"/>
+ <menu_item_call label="Svuota il Cestino" name="Empty Trash"/>
+ <menu_item_call label="Svuota gli oggetti persi e ritrovati" name="Empty Lost And Found"/>
+ <menu_item_call label="Nuova Cartella" name="New Folder"/>
+ <menu_item_call label="Nuovo Script" name="New Script"/>
+ <menu_item_call label="Nuova Notecard" name="New Note"/>
+ <menu_item_call label="Nuova Gesture" name="New Gesture"/>
+ <menu name="New Clothes">
+ <menu_item_call label="Nuova Maglietta" name="New Shirt"/>
+ <menu_item_call label="Nuovi Pantaloni" name="New Pants"/>
+ <menu_item_call label="Nuove Scarpe" name="New Shoes"/>
+ <menu_item_call label="Nuove Calze" name="New Socks"/>
+ <menu_item_call label="Nuova Giacca" name="New Jacket"/>
+ <menu_item_call label="Nuova Gonna" name="New Skirt"/>
+ <menu_item_call label="Nuovi Guanti" name="New Gloves"/>
+ <menu_item_call label="Nuova Canottiera" name="New Undershirt"/>
+ <menu_item_call label="Nuove Mutande" name="New Underpants"/>
+ </menu>
+ <menu name="New Body Parts">
+ <menu_item_call label="Nuova Forma del corpo" name="New Shape"/>
+ <menu_item_call label="Nuova Pelle" name="New Skin"/>
+ <menu_item_call label="Nuovi Capelli" name="New Hair"/>
+ <menu_item_call label="Nuovi Occhi" name="New Eyes"/>
+ </menu>
+ <menu_item_call label="Teletrasportati" name="Landmark Open"/>
+ <menu_item_call label="Apri" name="Animation Open"/>
+ <menu_item_call label="Apri" name="Sound Open"/>
+ <menu_item_call label="Elimina oggetto" name="Purge Item"/>
+ <menu_item_call label="Ripristina oggetto" name="Restore Item"/>
+ <menu_item_call label="Apri" name="Open"/>
+ <menu_item_call label="Proprietà" name="Properties"/>
+ <menu_item_call label="Rinomina" name="Rename"/>
+ <menu_item_call label="Copia UUID dell&apos;oggetto" name="Copy Asset UUID"/>
+ <menu_item_call label="Copia" name="Copy"/>
+ <menu_item_call label="Incolla" name="Paste"/>
+ <menu_item_call label="Cancella" name="Delete"/>
+ <menu_item_call label="Togli gli oggetti" name="Take Off Items"/>
+ <menu_item_call label="Aggiungi all&apos;outfit" name="Add To Outfit"/>
+ <menu_item_call label="Sostituisci outfit" name="Replace Outfit"/>
+ <menu_item_call label="Inizia la conferenza chat" name="Conference Chat Folder"/>
+ <menu_item_call label="Esegui" name="Sound Play"/>
+ <menu_item_call label="Informazioni sul landmark" name="Teleport To Landmark"/>
+ <menu_item_call label="Esegui inworld" name="Animation Play"/>
+ <menu_item_call label="Esegui localmente" name="Animation Audition"/>
+ <menu_item_call label="Invia un Instant Message" name="Send Instant Message"/>
+ <menu_item_call label="Offri teletrasporto..." name="Offer Teleport..."/>
+ <menu_item_call label="Inizia una conferenza chat" name="Conference Chat"/>
+ <menu_item_call label="Attiva" name="Activate"/>
+ <menu_item_call label="Disattiva" name="Deactivate"/>
+ <menu_item_call label="Stacca da te" name="Detach From Yourself"/>
+ <menu_item_call label="Ripristina all&apos;ultima posizione" name="Restore to Last Position"/>
+ <menu_item_call label="Indossa" name="Object Wear"/>
+ <menu label="Attacca a" name="Attach To"/>
+ <menu label="Attacca all&apos;HUD" name="Attach To HUD"/>
+ <menu_item_call label="Modifica" name="Wearable Edit"/>
+ <menu_item_call label="Indossa" name="Wearable Wear"/>
+ <menu_item_call label="Togli" name="Take Off"/>
+ <menu_item_call label="--nessuna opzione--" name="--no options--"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/it/menu_login.xml b/indra/newview/skins/default/xui/it/menu_login.xml
index 70b3ea528d..45ee43102a 100644
--- a/indra/newview/skins/default/xui/it/menu_login.xml
+++ b/indra/newview/skins/default/xui/it/menu_login.xml
@@ -1,13 +1,13 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<menu_bar name="Login Menu">
- <menu label="File" name="File">
- <menu_item_call label="Chiudi" name="Quit"/>
- </menu>
- <menu label="Modifica" name="Edit">
- <menu_item_call label="Preferenze...." name="Preferences..."/>
- </menu>
- <menu label="Aiuto" name="Help">
- <menu_item_call label="Aiuto di Second Life" name="Second Life Help"/>
- <menu_item_call label="Informazioni su Second Life..." name="About Second Life..."/>
- </menu>
-</menu_bar>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu_bar name="Login Menu">
+ <menu label="File" name="File">
+ <menu_item_call label="Chiudi" name="Quit"/>
+ </menu>
+ <menu label="Modifica" name="Edit">
+ <menu_item_call label="Preferenze...." name="Preferences..."/>
+ </menu>
+ <menu label="Aiuto" name="Help">
+ <menu_item_call label="Aiuto di Second Life" name="Second Life Help"/>
+ <menu_item_call label="Informazioni su Second Life..." name="About Second Life..."/>
+ </menu>
+</menu_bar>
diff --git a/indra/newview/skins/default/xui/it/menu_mini_map.xml b/indra/newview/skins/default/xui/it/menu_mini_map.xml
new file mode 100644
index 0000000000..1109f3f646
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/menu_mini_map.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="popup">
+ <menu_item_call label="Zoom ravvicinato" name="Zoom Close"/>
+ <menu_item_call label="Zoom Medio" name="Zoom Medium"/>
+ <menu_item_call label="Zoom Distante" name="Zoom Far"/>
+ <menu_item_call label="Ferma il puntamento" name="Stop Tracking"/>
+ <menu_item_call label="Profilo..." name="Profile"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/it/menu_slurl.xml b/indra/newview/skins/default/xui/it/menu_slurl.xml
index ed56599d37..283fd92b19 100644
--- a/indra/newview/skins/default/xui/it/menu_slurl.xml
+++ b/indra/newview/skins/default/xui/it/menu_slurl.xml
@@ -1,6 +1,6 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<menu name="Popup">
- <menu_item_call label="Informazioni sull&apos;indirizzo URL" name="about_url"/>
- <menu_item_call label="Teleportati all&apos;indirizzo URL" name="teleport_to_url"/>
- <menu_item_call label="Mostra sulla mappa" name="show_on_map"/>
-</menu>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="Popup">
+ <menu_item_call label="Informazioni sull&apos;indirizzo URL" name="about_url"/>
+ <menu_item_call label="Teleportati all&apos;indirizzo URL" name="teleport_to_url"/>
+ <menu_item_call label="Mostra sulla mappa" name="show_on_map"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/it/menu_viewer.xml b/indra/newview/skins/default/xui/it/menu_viewer.xml
index 21e587cbd5..3dd4e6a94b 100644
--- a/indra/newview/skins/default/xui/it/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/it/menu_viewer.xml
@@ -1,203 +1,205 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<menu_bar name="Main Menu">
- <menu label="File" name="File">
- <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~"/>
- <menu label="Carica" name="upload">
- <menu_item_call label="Carica immagine ([COST] L$)..." name="Upload Image"/>
- <menu_item_call label="Carica Suono ([COST] L$)..." name="Upload Sound"/>
- <menu_item_call label="Carica Animazione ([COST] L$)..." name="Upload Animation"/>
- <menu_item_call label="Caricamento multiplo ([COST] L$ per file)..." name="Bulk Upload"/>
- </menu>
- <menu_item_separator label="-----------" name="separator"/>
- <menu_item_call label="Chiudi la finestra" name="Close Window"/>
- <menu_item_call label="Chiudi tutte le finestre" name="Close All Windows"/>
- <menu_item_separator label="-----------" name="separator2"/>
- <menu_item_call label="Salva la texture come..." name="Save Texture As..."/>
- <menu_item_separator label="-----------" name="separator3"/>
- <menu_item_call label="Fai una fotografia" name="Take Snapshot"/>
- <menu_item_call label="Salva la fotografia sul tuo disco" name="Snapshot to Disk"/>
- <menu_item_separator label="-----------" name="separator4"/>
- <menu_item_call label="Disconnetti" name="Quit"/>
- </menu>
- <menu label="Modifica" name="Edit">
- <menu_item_call label="Annulla" name="Undo"/>
- <menu_item_call label="Ripeti" name="Redo"/>
- <menu_item_separator label="-----------" name="separator"/>
- <menu_item_call label="Taglia" name="Cut"/>
- <menu_item_call label="Copia" name="Copy"/>
- <menu_item_call label="Incolla" name="Paste"/>
- <menu_item_call label="Cancella" name="Delete"/>
- <menu_item_separator label="-----------" name="separator2"/>
- <menu_item_call label="Cerca..." name="Search..."/>
- <menu_item_separator label="-----------" name="separator3"/>
- <menu_item_call label="Seleziona tutto" name="Select All"/>
- <menu_item_call label="Deseleziona" name="Deselect"/>
- <menu_item_separator label="-----------" name="separator4"/>
- <menu_item_call label="Duplica" name="Duplicate"/>
- <menu_item_separator label="-----------" name="separator5"/>
- <menu label="Indossa l&apos;oggetto" name="Attach Object"/>
- <menu label="Togli l&apos;oggetto" name="Detach Object"/>
- <menu label="Spogliati dei vestiti" name="Take Off Clothing">
- <menu_item_call label="Maglietta" name="Shirt"/>
- <menu_item_call label="Pantaloni" name="Pants"/>
- <menu_item_call label="Scarpe" name="Shoes"/>
- <menu_item_call label="Calze" name="Socks"/>
- <menu_item_call label="Giacca" name="Jacket"/>
- <menu_item_call label="Guanti" name="Gloves"/>
- <menu_item_call label="Canottiera" name="Menu Undershirt"/>
- <menu_item_call label="Mutande" name="Menu Underpants"/>
- <menu_item_call label="Gonna" name="Skirt"/>
- <menu_item_call label="Tutti i vestiti" name="All Clothes"/>
- </menu>
- <menu_item_separator label="-----------" name="separator6"/>
- <menu_item_call label="Gesture..." name="Gestures..."/>
- <menu_item_call label="Profilo..." name="Profile..."/>
- <menu_item_call label="Aspetto fisico..." name="Appearance..."/>
- <menu_item_separator label="-----------" name="separator7"/>
- <menu_item_check label="Amici..." name="Friends..."/>
- <menu_item_call label="Gruppi..." name="Groups..."/>
- <menu_item_separator label="-----------" name="separator8"/>
- <menu_item_call label="Preferenze..." name="Preferences..."/>
- </menu>
- <menu label="Visualizza" name="View">
- <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~"/>
- <menu_item_call label="Visualizzazione in soggettiva" name="Mouselook"/>
- <menu_item_check label="Costruisci" name="Build"/>
- <menu_item_check label="Camera dall&apos;alto" name="Joystick Flycam"/>
- <menu_item_call label="Reimposta la visuale" name="Reset View"/>
- <menu_item_call label="Guarda l&apos;ultimo che ha parlato" name="Look at Last Chatter"/>
- <menu_item_separator label="-----------" name="separator"/>
- <menu_item_check label="Strumenti" name="Toolbar"/>
- <menu_item_check label="Chat locale" name="Chat History"/>
- <menu_item_check label="Comunica" name="Instant Message"/>
- <menu_item_check label="Inventario" name="Inventory"/>
- <menu_item_check label="Residenti con voice attivo" name="Active Speakers"/>
- <menu_item_check label="Muta la lista" name="Mute List"/>
- <menu_item_separator label="-----------" name="separator2"/>
- <menu_item_check label="Controlli della telecamera" name="Camera Controls"/>
- <menu_item_check label="Controlli dei movimenti" name="Movement Controls"/>
- <menu_item_check label="Mappa globale" name="World Map"/>
- <menu_item_check label="Mini-Mappa" name="Mini-Map"/>
- <menu_item_separator label="-----------" name="separator3"/>
- <menu_item_check label="Barra delle statistiche" name="Statistics Bar"/>
- <menu_item_check label="Confini della proprietÃ" name="Property Lines"/>
- <menu_item_check label="Proprietari dei terreni" name="Land Owners"/>
- <menu_item_separator label="-----------" name="separator4"/>
- <menu label="Suggerimenti" name="Hover Tips">
- <menu_item_check label="Mostra suggerimenti" name="Show Tips"/>
- <menu_item_separator label="-----------" name="separator"/>
- <menu_item_check label="Suggerimenti sul terreno" name="Land Tips"/>
- <menu_item_check label="Suggerimenti su tutti gli oggetti" name="Tips On All Objects"/>
- </menu>
- <menu_item_check label="Evidenzia oggetti trasparenti" name="Highlight Transparent"/>
- <menu_item_check label="Tracciatori" name="beacons"/>
- <menu_item_check label="Nascondi le particelle" name="Hide Particles"/>
- <menu_item_check label="Mostra dispositivi HUD indossati" name="Show HUD Attachments"/>
- <menu_item_separator label="-----------" name="separator5"/>
- <menu_item_call label="Zoom Avanti" name="Zoom In"/>
- <menu_item_call label="Zoom Default" name="Zoom Default"/>
- <menu_item_call label="Zoom Indietro" name="Zoom Out"/>
- <menu_item_separator label="-----------" name="separator6"/>
- <menu_item_call label="Alterna schermo intero" name="Toggle Fullscreen"/>
- <menu_item_call label="Reimposta la grandezza dell&apos;interfaccia al default" name="Set UI Size to Default"/>
- </menu>
- <menu label="Mondo" name="World">
- <menu_item_call label="Chat" name="Chat"/>
- <menu_item_check label="Corri sempre" name="Always Run"/>
- <menu_item_check label="Vola" name="Fly"/>
- <menu_item_separator label="-----------" name="separator"/>
- <menu_item_call label="Crea qui un landmark" name="Create Landmark Here"/>
- <menu_item_call label="Imposta la tua casa qui" name="Set Home to Here"/>
- <menu_item_separator label="-----------" name="separator2"/>
- <menu_item_call label="Teleportati a casa" name="Teleport Home"/>
- <menu_item_separator label="-----------" name="separator3"/>
- <menu_item_call label="Imposta come &apos;Assente&apos;" name="Set Away"/>
- <menu_item_call label="Imposta occupato" name="Set Busy"/>
- <menu_item_call label="Ferma tutte le animazioni" name="Stop All Animations"/>
- <menu_item_call label="Rilascia tutti i dispositivi" name="Release Keys"/>
- <menu_item_separator label="-----------" name="separator4"/>
- <menu_item_call label="Estratto conto..." name="Account History..."/>
- <menu_item_call label="Gestisci il mio account..." name="Manage My Account..."/>
- <menu_item_call label="Compra L$..." name="Buy and Sell L$..."/>
- <menu_item_separator label="-----------" name="separator5"/>
- <menu_item_call label="Il mio terreno..." name="My Land..."/>
- <menu_item_call label="Informazioni sul terreno..." name="About Land..."/>
- <menu_item_call label="Acquista il terreno..." name="Buy Land..."/>
- <menu_item_call label="Regione/Proprietà Immobiliari..." name="Region/Estate..."/>
- <menu_item_separator label="-----------" name="separator6"/>
- <menu label="Impostazioni dell&apos;ambiente" name="Environment Settings">
- <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="Reimposta al default della regione" name="Revert to Region Default"/>
- <menu_item_separator label="-----------" name="separator"/>
- <menu_item_call label="Editor dell&apos;ambiente" name="Environment Editor"/>
- </menu>
- </menu>
- <menu label="Strumenti" name="Tools">
- <menu label="Seleziona strumento" name="Select Tool">
- <menu_item_call label="Focalizza" name="Focus"/>
- <menu_item_call label="Muovi" name="Move"/>
- <menu_item_call label="Modifica" name="Edit"/>
- <menu_item_call label="Crea" name="Create"/>
- <menu_item_call label="Terra" name="Land"/>
- </menu>
- <menu_item_separator label="-----------" name="separator"/>
- <menu_item_check label="Seleziona solo i miei oggetti" name="Select Only My Objects"/>
- <menu_item_check label="Seleziona solo gli oggetti mobili" name="Select Only Movable Objects"/>
- <menu_item_check label="Seleziona solo se racchiuso" name="Select By Surrounding"/>
- <menu_item_check label="Mostra selezione nascosta" name="Show Hidden Selection"/>
- <menu_item_check label="Mostra raggio di luce per la selezione" name="Show Light Radius for Selection"/>
- <menu_item_check label="Mostra raggio di selezione" name="Show Selection Beam"/>
- <menu_item_separator label="-----------" name="separator2"/>
- <menu_item_check label="Allinea al righello" name="Snap to Grid"/>
- <menu_item_call label="Allinea l&apos;oggetto XY al righello" name="Snap Object XY to Grid"/>
- <menu_item_call label="Usa la selezione come righello" name="Use Selection for Grid"/>
- <menu_item_call label="Opzioni del righello..." name="Grid Options..."/>
- <menu_item_separator label="-----------" name="separator3"/>
- <menu_item_check label="Modifica parti di oggetti uniti" name="Edit Linked Parts"/>
- <menu_item_call label="Unisci" name="Link"/>
- <menu_item_call label="Dividi" name="Unlink"/>
- <menu_item_separator label="-----------" name="separator4"/>
- <menu_item_call label="Focalizza la selezione" name="Focus on Selection"/>
- <menu_item_call label="Fai zoom sulla selezione" name="Zoom to Selection"/>
- <menu_item_call label="Compra l&apos;oggetto" name="Menu Object Take"/>
- <menu_item_call label="Prendi una copia" name="Take Copy"/>
- <menu_item_call label="Salva nuovamente l&apos;oggetto nel mio inventario" name="Save Object Back to My Inventory"/>
- <menu_item_call label="Salva nuovamente l&apos;oggetto nel contenuto dell&apos;oggetto" name="Save Object Back to Object Contents"/>
- <menu_item_separator label="-----------" name="separator6"/>
- <menu_item_call label="Mostra avvisi script/finestra degli errori" name="Show Script Warning/Error Window"/>
- <menu label="Ricompila gli script nella selezione" name="Recompile Scripts in Selection">
- <menu_item_call label="Mono" name="Mono"/>
- <menu_item_call label="LSL" name="LSL"/>
- </menu>
- <menu_item_call label="Reimposta gli script nella selezione" name="Reset Scripts in Selection"/>
- <menu_item_call label="Attiva gli script nella selezione" name="Set Scripts to Running in Selection"/>
- <menu_item_call label="Disattiva gli script nella selezione" name="Set Scripts to Not Running in Selection"/>
- </menu>
- <menu label="Aiuto" name="Help">
- <menu_item_call label="Aiuto di Secondlife" name="Second Life Help"/>
- <menu_item_call label="Tutorial" name="Tutorial"/>
- <menu_item_separator label="-----------" name="separator"/>
- <menu_item_call label="Blog ufficiale Linden..." name="Official Linden Blog..."/>
- <menu_item_separator label="-----------" name="separator2"/>
- <menu_item_call label="Portale degli script..." name="Scripting Portal..."/>
- <menu_item_separator label="-----------" name="separator3"/>
- <menu_item_call label="Denuncia di abuso..." name="Report Abuse..."/>
- <menu_item_call label="Collisioni, Spinte &amp; Colpi..." name="Bumps, Pushes &amp;amp; Hits..."/>
- <menu_item_call label="Misuratore del lag" name="Lag Meter"/>
- <menu_item_separator label="-----------" name="separator7"/>
- <menu label="Segnalazione di un bug" name="Bug Reporting">
- <menu_item_call label="Registro pubblico errori..." name="Public Issue Tracker..."/>
- <menu_item_call label="Aiuto per il registro pubblico errori..." name="Publc Issue Tracker Help..."/>
- <menu_item_separator label="-----------" name="separator7"/>
- <menu_item_call label="Come fare la segnalazione di un bug..." name="Bug Reporing 101..."/>
- <menu_item_call label="Problematiche di sicurezza..." name="Security Issues..."/>
- <menu_item_call label="Wiki QA - controllo qualità..." name="QA Wiki..."/>
- <menu_item_separator label="-----------" name="separator9"/>
- <menu_item_call label="Segnala un bug..." name="Report Bug..."/>
- </menu>
- <menu_item_call label="Informazioni su Second Life..." name="About Second Life..."/>
- </menu>
-</menu_bar>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu_bar name="Main Menu">
+ <menu label="File" name="File">
+ <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~"/>
+ <menu label="Carica" name="upload">
+ <menu_item_call label="Immagine ([COST]L$)..." name="Upload Image"/>
+ <menu_item_call label="Suono ([COST]L$)..." name="Upload Sound"/>
+ <menu_item_call label="Animazione ([COST]L$)..." name="Upload Animation"/>
+ <menu_item_call label="Multiplo ([COST]L$ per file)..." name="Bulk Upload"/>
+ <menu_item_separator label="-----------" name="separator"/>
+ <menu_item_call label="Imposta i permessi di base..." name="perm prefs"/>
+ </menu>
+ <menu_item_separator label="-----------" name="separator"/>
+ <menu_item_call label="Chiudi la finestra" name="Close Window"/>
+ <menu_item_call label="Chiudi tutte le finestre" name="Close All Windows"/>
+ <menu_item_separator label="-----------" name="separator2"/>
+ <menu_item_call label="Salva la texture come..." name="Save Texture As..."/>
+ <menu_item_separator label="-----------" name="separator3"/>
+ <menu_item_call label="Fai una fotografia" name="Take Snapshot"/>
+ <menu_item_call label="Salva la fotografia sul tuo disco" name="Snapshot to Disk"/>
+ <menu_item_separator label="-----------" name="separator4"/>
+ <menu_item_call label="Disconnetti" name="Quit"/>
+ </menu>
+ <menu label="Modifica" name="Edit">
+ <menu_item_call label="Annulla" name="Undo"/>
+ <menu_item_call label="Ripeti" name="Redo"/>
+ <menu_item_separator label="-----------" name="separator"/>
+ <menu_item_call label="Taglia" name="Cut"/>
+ <menu_item_call label="Copia" name="Copy"/>
+ <menu_item_call label="Incolla" name="Paste"/>
+ <menu_item_call label="Cancella" name="Delete"/>
+ <menu_item_separator label="-----------" name="separator2"/>
+ <menu_item_call label="Cerca..." name="Search..."/>
+ <menu_item_separator label="-----------" name="separator3"/>
+ <menu_item_call label="Seleziona tutto" name="Select All"/>
+ <menu_item_call label="Deseleziona" name="Deselect"/>
+ <menu_item_separator label="-----------" name="separator4"/>
+ <menu_item_call label="Duplica" name="Duplicate"/>
+ <menu_item_separator label="-----------" name="separator5"/>
+ <menu label="Indossa l&apos;oggetto" name="Attach Object"/>
+ <menu label="Togli l&apos;oggetto" name="Detach Object"/>
+ <menu label="Spogliati dei vestiti" name="Take Off Clothing">
+ <menu_item_call label="Maglietta" name="Shirt"/>
+ <menu_item_call label="Pantaloni" name="Pants"/>
+ <menu_item_call label="Scarpe" name="Shoes"/>
+ <menu_item_call label="Calze" name="Socks"/>
+ <menu_item_call label="Giacca" name="Jacket"/>
+ <menu_item_call label="Guanti" name="Gloves"/>
+ <menu_item_call label="Canottiera" name="Menu Undershirt"/>
+ <menu_item_call label="Mutande" name="Menu Underpants"/>
+ <menu_item_call label="Gonna" name="Skirt"/>
+ <menu_item_call label="Tutti i vestiti" name="All Clothes"/>
+ </menu>
+ <menu_item_separator label="-----------" name="separator6"/>
+ <menu_item_call label="Gesture..." name="Gestures..."/>
+ <menu_item_call label="Profilo..." name="Profile..."/>
+ <menu_item_call label="Aspetto fisico..." name="Appearance..."/>
+ <menu_item_separator label="-----------" name="separator7"/>
+ <menu_item_check label="Amici..." name="Friends..."/>
+ <menu_item_call label="Gruppi..." name="Groups..."/>
+ <menu_item_separator label="-----------" name="separator8"/>
+ <menu_item_call label="Preferenze..." name="Preferences..."/>
+ </menu>
+ <menu label="Visualizza" name="View">
+ <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~"/>
+ <menu_item_call label="Visualizzazione in soggettiva" name="Mouselook"/>
+ <menu_item_check label="Costruisci" name="Build"/>
+ <menu_item_check label="Camera dall&apos;alto" name="Joystick Flycam"/>
+ <menu_item_call label="Reimposta la visuale" name="Reset View"/>
+ <menu_item_call label="Guarda l&apos;ultimo che ha parlato" name="Look at Last Chatter"/>
+ <menu_item_separator label="-----------" name="separator"/>
+ <menu_item_check label="Strumenti" name="Toolbar"/>
+ <menu_item_check label="Chat locale" name="Chat History"/>
+ <menu_item_check label="Comunica" name="Instant Message"/>
+ <menu_item_check label="Inventario" name="Inventory"/>
+ <menu_item_check label="Residenti con voice attivo" name="Active Speakers"/>
+ <menu_item_check label="Residenti ignorati &amp; Oggetti" name="Mute List"/>
+ <menu_item_separator label="-----------" name="separator2"/>
+ <menu_item_check label="Controlli della telecamera" name="Camera Controls"/>
+ <menu_item_check label="Controlli dei movimenti" name="Movement Controls"/>
+ <menu_item_check label="Mappa globale" name="World Map"/>
+ <menu_item_check label="Mini-Mappa" name="Mini-Map"/>
+ <menu_item_separator label="-----------" name="separator3"/>
+ <menu_item_check label="Barra delle statistiche" name="Statistics Bar"/>
+ <menu_item_check label="Confini della proprietÃ" name="Property Lines"/>
+ <menu_item_check label="Linee di confini privati" name="Banlines"/>
+ <menu_item_check label="Proprietari dei terreni" name="Land Owners"/>
+ <menu_item_separator label="-----------" name="separator4"/>
+ <menu label="Suggerimenti" name="Hover Tips">
+ <menu_item_check label="Mostra suggerimenti" name="Show Tips"/>
+ <menu_item_separator label="-----------" name="separator"/>
+ <menu_item_check label="Suggerimenti sul terreno" name="Land Tips"/>
+ <menu_item_check label="Suggerimenti su tutti gli oggetti" name="Tips On All Objects"/>
+ </menu>
+ <menu_item_check label="Evidenzia oggetti trasparenti" name="Highlight Transparent"/>
+ <menu_item_check label="Tracciatori" name="beacons"/>
+ <menu_item_check label="Nascondi le particelle" name="Hide Particles"/>
+ <menu_item_check label="Mostra dispositivi HUD indossati" name="Show HUD Attachments"/>
+ <menu_item_separator label="-----------" name="separator5"/>
+ <menu_item_call label="Zoom Avanti" name="Zoom In"/>
+ <menu_item_call label="Zoom Default" name="Zoom Default"/>
+ <menu_item_call label="Zoom Indietro" name="Zoom Out"/>
+ <menu_item_separator label="-----------" name="separator6"/>
+ <menu_item_call label="Alterna schermo intero" name="Toggle Fullscreen"/>
+ <menu_item_call label="Reimposta la grandezza dell&apos;interfaccia al default" name="Set UI Size to Default"/>
+ </menu>
+ <menu label="Mondo" name="World">
+ <menu_item_call label="Chat" name="Chat"/>
+ <menu_item_check label="Corri sempre" name="Always Run"/>
+ <menu_item_check label="Vola" name="Fly"/>
+ <menu_item_separator label="-----------" name="separator"/>
+ <menu_item_call label="Crea qui un landmark" name="Create Landmark Here"/>
+ <menu_item_call label="Imposta la tua casa qui" name="Set Home to Here"/>
+ <menu_item_separator label="-----------" name="separator2"/>
+ <menu_item_call label="Teleportati a casa" name="Teleport Home"/>
+ <menu_item_separator label="-----------" name="separator3"/>
+ <menu_item_call label="Imposta come &apos;Assente&apos;" name="Set Away"/>
+ <menu_item_call label="Imposta occupato" name="Set Busy"/>
+ <menu_item_call label="Ferma le animazioni sul mio avatar" name="Stop Animating My Avatar"/>
+ <menu_item_call label="Rilascia tutti i dispositivi" name="Release Keys"/>
+ <menu_item_separator label="-----------" name="separator4"/>
+ <menu_item_call label="Estratto conto..." name="Account History..."/>
+ <menu_item_call label="Gestisci il mio account..." name="Manage My Account..."/>
+ <menu_item_call label="Compra L$..." name="Buy and Sell L$..."/>
+ <menu_item_separator label="-----------" name="separator5"/>
+ <menu_item_call label="Il mio terreno..." name="My Land..."/>
+ <menu_item_call label="Informazioni sul terreno..." name="About Land..."/>
+ <menu_item_call label="Acquista il terreno..." name="Buy Land..."/>
+ <menu_item_call label="Regione/Proprietà Immobiliari..." name="Region/Estate..."/>
+ <menu_item_separator label="-----------" name="separator6"/>
+ <menu label="Impostazioni dell&apos;ambiente" name="Environment Settings">
+ <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="Reimposta al default della regione" name="Revert to Region Default"/>
+ <menu_item_separator label="-----------" name="separator"/>
+ <menu_item_call label="Editor dell&apos;ambiente" name="Environment Editor"/>
+ </menu>
+ </menu>
+ <menu label="Strumenti" name="Tools">
+ <menu label="Seleziona strumento" name="Select Tool">
+ <menu_item_call label="Focalizza" name="Focus"/>
+ <menu_item_call label="Muovi" name="Move"/>
+ <menu_item_call label="Modifica" name="Edit"/>
+ <menu_item_call label="Crea" name="Create"/>
+ <menu_item_call label="Terra" name="Land"/>
+ </menu>
+ <menu_item_separator label="-----------" name="separator"/>
+ <menu_item_check label="Seleziona solo i miei oggetti" name="Select Only My Objects"/>
+ <menu_item_check label="Seleziona solo gli oggetti mobili" name="Select Only Movable Objects"/>
+ <menu_item_check label="Seleziona solo se racchiuso" name="Select By Surrounding"/>
+ <menu_item_check label="Mostra selezione nascosta" name="Show Hidden Selection"/>
+ <menu_item_check label="Mostra raggio di luce per la selezione" name="Show Light Radius for Selection"/>
+ <menu_item_check label="Mostra raggio di selezione" name="Show Selection Beam"/>
+ <menu_item_separator label="-----------" name="separator2"/>
+ <menu_item_check label="Allinea al righello" name="Snap to Grid"/>
+ <menu_item_call label="Allinea l&apos;oggetto XY al righello" name="Snap Object XY to Grid"/>
+ <menu_item_call label="Usa la selezione come righello" name="Use Selection for Grid"/>
+ <menu_item_call label="Opzioni del righello..." name="Grid Options..."/>
+ <menu_item_separator label="-----------" name="separator3"/>
+ <menu_item_check label="Modifica parti di oggetti uniti" name="Edit Linked Parts"/>
+ <menu_item_call label="Unisci" name="Link"/>
+ <menu_item_call label="Dividi" name="Unlink"/>
+ <menu_item_separator label="-----------" name="separator4"/>
+ <menu_item_call label="Focalizza la selezione" name="Focus on Selection"/>
+ <menu_item_call label="Fai zoom sulla selezione" name="Zoom to Selection"/>
+ <menu_item_call label="Compra l&apos;oggetto" name="Menu Object Take"/>
+ <menu_item_call label="Prendi una copia" name="Take Copy"/>
+ <menu_item_call label="Salva nuovamente l&apos;oggetto nel contenuto dell&apos;oggetto" name="Save Object Back to Object Contents"/>
+ <menu_item_separator label="-----------" name="separator6"/>
+ <menu_item_call label="Mostra avvisi script/finestra degli errori" name="Show Script Warning/Error Window"/>
+ <menu label="Ricompila gli script nella selezione" name="Recompile Scripts in Selection">
+ <menu_item_call label="Mono" name="Mono"/>
+ <menu_item_call label="LSL" name="LSL"/>
+ </menu>
+ <menu_item_call label="Reimposta gli script nella selezione" name="Reset Scripts in Selection"/>
+ <menu_item_call label="Attiva gli script nella selezione" name="Set Scripts to Running in Selection"/>
+ <menu_item_call label="Disattiva gli script nella selezione" name="Set Scripts to Not Running in Selection"/>
+ </menu>
+ <menu label="Aiuto" name="Help">
+ <menu_item_call label="Aiuto di Secondlife" name="Second Life Help"/>
+ <menu_item_call label="Tutorial" name="Tutorial"/>
+ <menu_item_separator label="-----------" name="separator"/>
+ <menu_item_call label="Blog ufficiale Linden..." name="Official Linden Blog..."/>
+ <menu_item_separator label="-----------" name="separator2"/>
+ <menu_item_call label="Portale degli script..." name="Scripting Portal..."/>
+ <menu_item_separator label="-----------" name="separator3"/>
+ <menu_item_call label="Denuncia di abuso..." name="Report Abuse..."/>
+ <menu_item_call label="Collisioni, Spinte &amp; Colpi..." name="Bumps, Pushes &amp;amp; Hits..."/>
+ <menu_item_call label="Misuratore del lag" name="Lag Meter"/>
+ <menu_item_separator label="-----------" name="separator7"/>
+ <menu label="Segnalazione di un bug" name="Bug Reporting">
+ <menu_item_call label="Registro pubblico errori..." name="Public Issue Tracker..."/>
+ <menu_item_call label="Aiuto per il registro pubblico errori..." name="Publc Issue Tracker Help..."/>
+ <menu_item_separator label="-----------" name="separator7"/>
+ <menu_item_call label="Come fare la segnalazione di un bug..." name="Bug Reporing 101..."/>
+ <menu_item_call label="Problematiche di sicurezza..." name="Security Issues..."/>
+ <menu_item_call label="Wiki QA - controllo qualità..." name="QA Wiki..."/>
+ <menu_item_separator label="-----------" name="separator9"/>
+ <menu_item_call label="Segnala un bug..." name="Report Bug..."/>
+ </menu>
+ <menu_item_call label="Informazioni su Second Life..." name="About Second Life..."/>
+ </menu>
+</menu_bar>
diff --git a/indra/newview/skins/default/xui/it/mime_types.xml b/indra/newview/skins/default/xui/it/mime_types.xml
index 4de7d2a70c..5eda7a5752 100644
--- a/indra/newview/skins/default/xui/it/mime_types.xml
+++ b/indra/newview/skins/default/xui/it/mime_types.xml
@@ -1,230 +1,230 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<mimetypes name="default">
- <widgetset name="web">
- <label name="web_label">
- Contenuto Web
- </label>
- <tooltip name="web_tooltip">
- Questo luogo ha un contenuto web
- </tooltip>
- <playtip name="web_playtip">
- Visualizza il contenuto web
- </playtip>
- </widgetset>
- <widgetset name="movie">
- <label name="movie_label">
- Video
- </label>
- <tooltip name="movie_tooltip">
- C&apos;è un video da riprodurre qui.
- </tooltip>
- <playtip name="movie_playtip">
- Riproduci video
- </playtip>
- </widgetset>
- <widgetset name="none">
- <label name="none_label">
- Senza Contenuti
- </label>
- <tooltip name="none_tooltip">
- Nessun video qui
- </tooltip>
- </widgetset>
- <widgetset name="image">
- <label name="image_label">
- Immagine
- </label>
- <tooltip name="image_tooltip">
- C&apos;è un&apos;immagine in questo luogo
- </tooltip>
- <playtip name="image_playtip">
- Visualizza l&apos;immagine di questo posto
- </playtip>
- </widgetset>
- <widgetset name="audio">
- <label name="audio_label">
- Audio
- </label>
- <tooltip name="audio_tooltip">
- C&apos;è l&apos;audio in questo luogo
- </tooltip>
- <playtip name="audio_playtip">
- Riproduci l&apos;audio di questo posto
- </playtip>
- </widgetset>
- <scheme name="rtsp">
- <label name="rtsp_label">
- Streaming in tempo reale
- </label>
- </scheme>
- <mimetype name="blank">
- <label name="blank_label">
- - Nessuno -
- </label>
- </mimetype>
- <mimetype name="none/none">
- <label name="none/none_label">
- - Nessuno -
- </label>
- </mimetype>
- <mimetype name="audio/*">
- <label name="audio2_label">
- Audio
- </label>
- </mimetype>
- <mimetype name="video/*">
- <label name="video2_label">
- Video
- </label>
- </mimetype>
- <mimetype name="image/*">
- <label name="image2_label">
- Immagine
- </label>
- </mimetype>
- <mimetype name="video/vnd.secondlife.qt.legacy">
- <label name="vnd.secondlife.qt.legacy_label">
- Video (QuickTime)
- </label>
- </mimetype>
- <mimetype name="application/javascript">
- <label name="application/javascript_label">
- Javascript
- </label>
- </mimetype>
- <mimetype name="application/ogg">
- <label name="application/ogg_label">
- Ogg Audio/Video
- </label>
- </mimetype>
- <mimetype name="application/pdf">
- <label name="application/pdf_label">
- Documento PDF
- </label>
- </mimetype>
- <mimetype name="application/postscript">
- <label name="application/postscript_label">
- Documento Postscript
- </label>
- </mimetype>
- <mimetype name="application/rtf">
- <label name="application/rtf_label">
- Rich Text (RTF)
- </label>
- </mimetype>
- <mimetype name="application/smil">
- <label name="application/smil_label">
- Synchronized Multimedia Integration Language (SMIL)
- </label>
- </mimetype>
- <mimetype name="application/xhtml+xml">
- <label name="application/xhtml+xml_label">
- Pagina Web (XHTML)
- </label>
- </mimetype>
- <mimetype name="application/x-director">
- <label name="application/x-director_label">
- Macromedia Director
- </label>
- </mimetype>
- <mimetype name="application/x-shockwave-flash">
- <label name="application/x-shockwave-flash_label">
- Flash
- </label>
- </mimetype>
- <mimetype name="audio/mid">
- <label name="audio/mid_label">
- Audio (MIDI)
- </label>
- </mimetype>
- <mimetype name="audio/mpeg">
- <label name="audio/mpeg_label">
- Audio (MP3)
- </label>
- </mimetype>
- <mimetype name="audio/x-aiff">
- <label name="audio/x-aiff_label">
- Audio (AIFF)
- </label>
- </mimetype>
- <mimetype name="audio/x-wav">
- <label name="audio/x-wav_label">
- Audio (WAV)
- </label>
- </mimetype>
- <mimetype name="image/bmp">
- <label name="image/bmp_label">
- Immagine (BMP)
- </label>
- </mimetype>
- <mimetype name="image/gif">
- <label name="image/gif_label">
- Immagine (GIF)
- </label>
- </mimetype>
- <mimetype name="image/jpeg">
- <label name="image/jpeg_label">
- Immagine (JPEG)
- </label>
- </mimetype>
- <mimetype name="image/png">
- <label name="image/png_label">
- Immagine (PNG)
- </label>
- </mimetype>
- <mimetype name="image/svg+xml">
- <label name="image/svg+xml_label">
- Immagine (SVG)
- </label>
- </mimetype>
- <mimetype name="image/tiff">
- <label name="image/tiff_label">
- Immagine (TIFF)
- </label>
- </mimetype>
- <mimetype name="text/html">
- <label name="text/html_label">
- Pagina Web
- </label>
- </mimetype>
- <mimetype name="text/plain">
- <label name="text/plain_label">
- Testo
- </label>
- </mimetype>
- <mimetype name="text/xml">
- <label name="text/xml_label">
- XML
- </label>
- </mimetype>
- <mimetype name="video/mpeg">
- <label name="video/mpeg_label">
- Video (MPEG)
- </label>
- </mimetype>
- <mimetype name="video/mp4">
- <label name="video/mp4_label">
- Video (MP4)
- </label>
- </mimetype>
- <mimetype name="video/quicktime">
- <label name="video/quicktime_label">
- Video (QuickTime)
- </label>
- </mimetype>
- <mimetype name="video/x-ms-asf">
- <label name="video/x-ms-asf_label">
- Video (Windows Media ASF)
- </label>
- </mimetype>
- <mimetype name="video/x-ms-wmv">
- <label name="video/x-ms-wmv_label">
- Video (Windows Media WMV)
- </label>
- </mimetype>
- <mimetype name="video/x-msvideo">
- <label name="video/x-msvideo_label">
- Video (AVI)
- </label>
- </mimetype>
-</mimetypes>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<mimetypes name="default">
+ <widgetset name="web">
+ <label name="web_label">
+ Contenuto Web
+ </label>
+ <tooltip name="web_tooltip">
+ Questo luogo ha un contenuto web
+ </tooltip>
+ <playtip name="web_playtip">
+ Visualizza il contenuto web
+ </playtip>
+ </widgetset>
+ <widgetset name="movie">
+ <label name="movie_label">
+ Video
+ </label>
+ <tooltip name="movie_tooltip">
+ C&apos;è un video da riprodurre qui.
+ </tooltip>
+ <playtip name="movie_playtip">
+ Riproduci video
+ </playtip>
+ </widgetset>
+ <widgetset name="none">
+ <label name="none_label">
+ Senza Contenuti
+ </label>
+ <tooltip name="none_tooltip">
+ Nessun video qui
+ </tooltip>
+ </widgetset>
+ <widgetset name="image">
+ <label name="image_label">
+ Immagine
+ </label>
+ <tooltip name="image_tooltip">
+ C&apos;è un&apos;immagine in questo luogo
+ </tooltip>
+ <playtip name="image_playtip">
+ Visualizza l&apos;immagine di questo posto
+ </playtip>
+ </widgetset>
+ <widgetset name="audio">
+ <label name="audio_label">
+ Audio
+ </label>
+ <tooltip name="audio_tooltip">
+ C&apos;è l&apos;audio in questo luogo
+ </tooltip>
+ <playtip name="audio_playtip">
+ Riproduci l&apos;audio di questo posto
+ </playtip>
+ </widgetset>
+ <scheme name="rtsp">
+ <label name="rtsp_label">
+ Streaming in tempo reale
+ </label>
+ </scheme>
+ <mimetype name="blank">
+ <label name="blank_label">
+ - Nessuno -
+ </label>
+ </mimetype>
+ <mimetype name="none/none">
+ <label name="none/none_label">
+ - Nessuno -
+ </label>
+ </mimetype>
+ <mimetype name="audio/*">
+ <label name="audio2_label">
+ Audio
+ </label>
+ </mimetype>
+ <mimetype name="video/*">
+ <label name="video2_label">
+ Video
+ </label>
+ </mimetype>
+ <mimetype name="image/*">
+ <label name="image2_label">
+ Immagine
+ </label>
+ </mimetype>
+ <mimetype name="video/vnd.secondlife.qt.legacy">
+ <label name="vnd.secondlife.qt.legacy_label">
+ Video (QuickTime)
+ </label>
+ </mimetype>
+ <mimetype name="application/javascript">
+ <label name="application/javascript_label">
+ Javascript
+ </label>
+ </mimetype>
+ <mimetype name="application/ogg">
+ <label name="application/ogg_label">
+ Ogg Audio/Video
+ </label>
+ </mimetype>
+ <mimetype name="application/pdf">
+ <label name="application/pdf_label">
+ Documento PDF
+ </label>
+ </mimetype>
+ <mimetype name="application/postscript">
+ <label name="application/postscript_label">
+ Documento Postscript
+ </label>
+ </mimetype>
+ <mimetype name="application/rtf">
+ <label name="application/rtf_label">
+ Rich Text (RTF)
+ </label>
+ </mimetype>
+ <mimetype name="application/smil">
+ <label name="application/smil_label">
+ Synchronized Multimedia Integration Language (SMIL)
+ </label>
+ </mimetype>
+ <mimetype name="application/xhtml+xml">
+ <label name="application/xhtml+xml_label">
+ Pagina Web (XHTML)
+ </label>
+ </mimetype>
+ <mimetype name="application/x-director">
+ <label name="application/x-director_label">
+ Macromedia Director
+ </label>
+ </mimetype>
+ <mimetype name="application/x-shockwave-flash">
+ <label name="application/x-shockwave-flash_label">
+ Flash
+ </label>
+ </mimetype>
+ <mimetype name="audio/mid">
+ <label name="audio/mid_label">
+ Audio (MIDI)
+ </label>
+ </mimetype>
+ <mimetype name="audio/mpeg">
+ <label name="audio/mpeg_label">
+ Audio (MP3)
+ </label>
+ </mimetype>
+ <mimetype name="audio/x-aiff">
+ <label name="audio/x-aiff_label">
+ Audio (AIFF)
+ </label>
+ </mimetype>
+ <mimetype name="audio/x-wav">
+ <label name="audio/x-wav_label">
+ Audio (WAV)
+ </label>
+ </mimetype>
+ <mimetype name="image/bmp">
+ <label name="image/bmp_label">
+ Immagine (BMP)
+ </label>
+ </mimetype>
+ <mimetype name="image/gif">
+ <label name="image/gif_label">
+ Immagine (GIF)
+ </label>
+ </mimetype>
+ <mimetype name="image/jpeg">
+ <label name="image/jpeg_label">
+ Immagine (JPEG)
+ </label>
+ </mimetype>
+ <mimetype name="image/png">
+ <label name="image/png_label">
+ Immagine (PNG)
+ </label>
+ </mimetype>
+ <mimetype name="image/svg+xml">
+ <label name="image/svg+xml_label">
+ Immagine (SVG)
+ </label>
+ </mimetype>
+ <mimetype name="image/tiff">
+ <label name="image/tiff_label">
+ Immagine (TIFF)
+ </label>
+ </mimetype>
+ <mimetype name="text/html">
+ <label name="text/html_label">
+ Pagina Web
+ </label>
+ </mimetype>
+ <mimetype name="text/plain">
+ <label name="text/plain_label">
+ Testo
+ </label>
+ </mimetype>
+ <mimetype name="text/xml">
+ <label name="text/xml_label">
+ XML
+ </label>
+ </mimetype>
+ <mimetype name="video/mpeg">
+ <label name="video/mpeg_label">
+ Video (MPEG)
+ </label>
+ </mimetype>
+ <mimetype name="video/mp4">
+ <label name="video/mp4_label">
+ Video (MP4)
+ </label>
+ </mimetype>
+ <mimetype name="video/quicktime">
+ <label name="video/quicktime_label">
+ Video (QuickTime)
+ </label>
+ </mimetype>
+ <mimetype name="video/x-ms-asf">
+ <label name="video/x-ms-asf_label">
+ Video (Windows Media ASF)
+ </label>
+ </mimetype>
+ <mimetype name="video/x-ms-wmv">
+ <label name="video/x-ms-wmv_label">
+ Video (Windows Media WMV)
+ </label>
+ </mimetype>
+ <mimetype name="video/x-msvideo">
+ <label name="video/x-msvideo_label">
+ Video (AVI)
+ </label>
+ </mimetype>
+</mimetypes>
diff --git a/indra/newview/skins/default/xui/it/notifications.xml b/indra/newview/skins/default/xui/it/notifications.xml
index c5b84da4c9..786bfdf7ef 100644
--- a/indra/newview/skins/default/xui/it/notifications.xml
+++ b/indra/newview/skins/default/xui/it/notifications.xml
@@ -1,5795 +1,3089 @@
-<?xml version="1.0" ?><notifications>
-
- <global name="skipnexttime">
-
- Non mostrare più la prossima volta
- </global>
-
- <global name="alwayschoose">
-
- Scegli sempre questa opzione
- </global>
-
- <template name="okbutton">
- <form>
- <button
-
-
- name="OK"
- text="$yestext"/>
- </form>
- </template>
-
- <template name="okignore">
- <form>
- <button
-
-
- name="OK"
- text="$yestext"/>
- <ignore text="$ignoretext"/>
- </form>
- </template>
-
- <template name="okcancelbuttons">
- <form>
- <button
-
-
- name="OK"
- text="$yestext"/>
- <button
-
- name="Cancel"
- text="$notext"/>
- </form>
- </template>
-
- <template name="okcancelignore">
- <form>
- <button
-
-
- name="OK"
- text="$yestext"/>
- <button
-
- name="Cancel"
- text="$notext"/>
- <ignore text="$ignoretext"/>
- </form>
- </template>
-
- <template name="okhelpbuttons">
- <form>
- <button
-
-
- name="OK"
- text="$yestext"/>
- <button
-
- name="Help"
- text="$helptext"/>
- </form>
- </template>
-
- <template name="yesnocancelbuttons">
- <form>
- <button
-
-
- name="Yes"
- text="$yestext"/>
- <button
-
- name="No"
- text="$notext"/>
- <button
-
- name="Cancel"
- text="$canceltext"/>
- </form>
- </template>
-
- <notification
- functor="GenericAcknowledge"
-
- name="MissingAlert"
- >
-&apos;[_NAME]&apos; non trovato in notifications.xml.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="FloaterNotFound"
- >
-Errore visualizzazione finestra: Non trovati i seguenti controlli:
-
-[CONTROLS]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="TutorialNotFound"
- >
-Nessun tutorial disponibile al momento.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GenericAlert"
- >
-[MESSAGE]
- </notification>
-
- <notification
-
- name="GenericAlertYesCancel"
- >
-[MESSAGE]
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="Si"/>
- </notification>
-
- <notification
-
- name="WearableSave"
- >
-Salva i cambiamenti all&apos;attuale parte del corpo/abito?
- <usetemplate
- canceltext="Annulla"
- name="yesnocancelbuttons"
- notext="Non salvare"
- yestext="Salva"/>
- </notification>
-
- <notification
-
- name="CompileQueueSaveText"
- >
-C&apos;è stato un problema importando il testo di uno script per la seguente ragione: [REASON]. Riprova più tardi.
- </notification>
-
- <notification
-
- name="CompileQueueSaveBytecode"
- >
-C&apos;è stato un problema importando lo script compilato per la seguente ragione: [REASON]. Riprova più tardi.
- </notification>
-
- <notification
-
- name="WriteAnimationFail"
- >
-C&apos;è stato un problema di scrittura dati dell&apos;animazione. Riprova più tardi.
- </notification>
-
- <notification
-
- name="UploadAuctionSnapshotFail"
- >
-C&apos;è stato un problema importando la fotografia dell&apos;asta per la seguente ragione: [REASON]
- </notification>
-
- <notification
-
- name="UnableToViewContentsMoreThanOne"
- >
-Non è possibile vedere il contenuto di più di un elemento per volta.
-Scegli solo un oggetto e riprova.
- </notification>
-
- <notification
-
- name="SaveClothingBodyChanges"
- >
-Salva tutte le modifiche alle parti del corpo/abiti?
- <usetemplate
- canceltext="Annulla"
- name="yesnocancelbuttons"
- notext="Non Salvare"
- yestext="Salva Tutto"/>
- </notification>
-
- <notification
-
- name="GrantModifyRights"
- >
-Dare i diritti di modifica ad un altro residente gli consente di cambiare, cancellare o prendere QUALUNQUE oggetto che hai in Second Life. Fai MOLTA attenzione quando concedi questo permesso.
-Vuoi davvero dare i diritti di modifica a [FIRST_NAME] [LAST_NAME]?
- <usetemplate
- name="okcancelbuttons"
- notext="No"
- yestext="Si"/>
- </notification>
-
- <notification
-
- name="GrantModifyRightsMultiple"
- >
-Dare i diritti di modifica ad un altro residente gli consente di cambiare QUALUNQUE oggetto che hai in Second Life. Fai MOLTA attenzione quando concedi questo permesso.
-Vuoi davvero dare i diritti di modifica ai residenti selezionati?
- <usetemplate
- name="okcancelbuttons"
- notext="No"
- yestext="Si"/>
- </notification>
-
- <notification
-
- name="RevokeModifyRights"
- >
-Vuoi revocare i diritti di modifica dati a [FIRST_NAME] [LAST_NAME]?
- <usetemplate
- name="okcancelbuttons"
- notext="No"
- yestext="Si"/>
- </notification>
-
- <notification
-
- name="RevokeModifyRightsMultiple"
- >
-Vuoi revocare i permessi di modifica dati ai residenti selezionati?
- <usetemplate
- name="okcancelbuttons"
- notext="No"
- yestext="Si"/>
- </notification>
-
- <notification
-
- name="UnableToCreateGroup"
- >
-Non è possibile creare il gruppo.
-[MESSAGE]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="PanelGroupApply"
- >
-[NEEDS_APPLY_MESSAGE]
-[WANT_APPLY_MESSAGE]
- <usetemplate
- canceltext="Annulla"
- name="yesnocancelbuttons"
- notext="Ignora le modifiche"
- yestext="Applica le modifiche"/>
- </notification>
-
- <notification
-
- name="MustSpecifyGroupNoticeSubject"
- >
-Devi specificare un oggetto per mandare una notice al gruppo.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="AddGroupOwnerWarning"
- >
-Stai per aggiungere dei membri al ruolo [ROLE_NAME].
-Non si possono rimuovere membri da quel ruolo.
-I membri devono dimettersi volontariamente dal ruolo.
-Confermi l&apos;operazione?
- <usetemplate
- ignoretext="Quando si aggiungono membri al ruolo di proprietario"
- name="okcancelignore"
- notext="No"
- yestext="Si"/>
- </notification>
-
- <notification
-
- name="AssignDangerousActionWarning"
- >
-Stai per aggiungere il potere &apos;[ACTION_NAME]&apos; al ruolo &apos;[ROLE_NAME]&apos;.
-
- *ATTENZIONE*
- Ogni membro di un ruolo con questo potere può assegnare a sè stesso -- e a qualunque altro membro -- ruoli che hanno più poteri di quelli che hanno correntemente, potenzialmente consentendogli di avere quasi i poteri del proprietario. Accertati di sapere quello che stai facendo prima di assegnare questo potere.
-
-Aggiungi questo potere a &apos;[ROLE_NAME]&apos;?
- <usetemplate
- name="okcancelbuttons"
- notext="No"
- yestext="Si"/>
- </notification>
-
- <notification
-
- name="AssignDangerousAbilityWarning"
- >
-Stai per aggiungere il potere &apos;[ACTION_NAME]&apos; al ruolo &apos;[ROLE_NAME]&apos;.
-
- *ATTENZIONE*
- Ogni membro di un ruolo con questo potere può assegnare a sè stesso -- e a qualunque altro membro -- tutti i poteri, elevandosi al livello di quasi proprietario.
-
-Aggiungi questo potere a &apos;[ROLE_NAME]&apos;?
- <usetemplate
- name="okcancelbuttons"
- notext="No"
- yestext="Si"/>
- </notification>
-
- <notification
-
- name="ClickPublishHelpLand"
- >
-Selezionare &quot;Pubblica in Ricerca&quot;
-Marcando questo campo si mostrerà:
-- questo terreno nei risultati di ricerca
-- gli oggetti pubblici di questo terreno
-- questo terreno nella ricerca web
- </notification>
-
- <notification
-
- name="ClickPublishHelpLandDisabled"
- >
-Non puoi rendere questo terreno visibile nella ricerca perchè è in una regione che non lo consente.
- </notification>
-
- <notification
-
- name="ClickPublishHelpAvatar"
- >
-Scegliendo &quot;Mostra in Ricerca&quot; verrà mostrato:
-- il mio profilo nei risultati della ricerca
-- un link al mio profilo nelle pagine pubbliche del gruppo
- </notification>
-
- <notification
-
- name="ClickPartnerHelpAvatar"
- >
-Puoi proporre o cancellare una partnership con un altro/a residente attraverso il sito web [SECOND_LIFE].
-
-Vai al sito web di Second Life per ulteriori informazioni sulla partnership?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="Vai alla pagina"/>
- </notification>
-
- <notification
-
- name="ClickWebProfileHelpAvatar"
- >
-Se questo/a residente ha impostato una URL nel suo profilo puoi:
- * Cliccare &apos;Carica&apos; per vedere la pagina in questa finestra web.
- * Cliccare Carica &gt; &apos;nel browser esterno&apos; per vedere la pagina nel vostro browser web preimpostato.
- * Cliccare Carica &gt; &apos;URL Principale&apos; per ritornare alla pagina web del profile di questo/a Residente se hai cambiato pagina.
-
-Quando visiti il tuo profilo, puoi specificare qualunque URL come tuo profilo web e cliccare OK per impostarla.
-Altri residenti possono visitare la URL che hai impostato cliccando sul tuo profilo.
- </notification>
-
- <notification
-
- name="JoinGroupCanAfford"
- >
-Iscriversi a questo gruppo costa [COST]L$.
-Vuoi proseguire?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="Iscriviti"/>
- </notification>
-
- <notification
-
- name="JoinGroupCannotAfford"
- >
-Iscriversi a questo gruppo costa [COST]L$.
-Non hai abbastanza L$ per iscriverti a questo gruppo.
- </notification>
-
- <notification
-
- name="LandBuyPass"
- >
-Pagando [COST]L$ puoi entrare in questa terra (&apos;[PARCEL_NAME]&apos;) per [TIME] ore. Compri un pass?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SalePriceRestriction"
- >
-Il prezzo di vendita deve essere superiore a 0L$ se vendi a tutti.
-Seleziona una vendita individuale per vendere a 0L$.
- </notification>
-
- <notification
-
- name="ConfirmLandSaleChange"
-
- >
-Il terreno selezionato di [LAND_SIZE] m² sta per essere messo in vendita.
-Il tuo prezzo di vendità è [SALE_PRICE]L$ ed è autorizzato alla vendita a [NAME].
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmLandSaleToAnyoneChange"
- >
-ATTENZIONE: Cliccando &apos;vendi a tutti&apos; rende il tuo terrono disponibile all&apos;intera comunità di Second Life, anche non in questa regione.
-
-Il terreno selezionato di [LAND_SIZE] m² sta per essere messo in vendita.
-Il tuo prezzo di vendità è [SALE_PRICE]L$ ed è autorizzato alla vendita a [NAME].
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsDeededToGroup"
- >
-Confermi di volere restituire tutti gli oggetti condivisi con il gruppo &apos;[NAME]&apos; di questo terreno agli inventari dei proprietari precedenti?
-
-*ATTENZIONE* Questo cancellerà gli oggetti non trasferibili ceduti al gruppo!
-
-Oggetti: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsOwnedByUser"
- >
-Confermi di volere restituire tutti gli oggetti posseduti dal residente &apos;[NAME]&apos; in questo terreno al suo inventario?
-
-Oggetti: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsOwnedBySelf"
- >
-Confermi di volere restituire tutti gli oggetti posseduti da te in questo terreno, di nuovo nel tuo inventario?
-
-Oggetti: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsNotOwnedBySelf"
- >
-Confermi di volere restituire tutti gli oggetti di cui NON sei proprietario in questo terreno all&apos;inventario dei rispettivi proprietari?
-Gli oggetti trasferibili ceduti al gruppo verranno restituiti ai loro proprietari precedenti.
-
-*ATTENZIONE* Questo cancellerà gli oggetti non trasferibili ceduti al gruppo!
-
-Oggetti: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsNotOwnedByUser"
- >
-Confermi di volere restituire tutti gli oggetti NON posseduti da [NAME] in questo terreno nell&apos;inventario dei loro proprietari?
-Gli oggetti trasferibili ceduti al gruppo verranno restituiti ai loro proprietari precedenti.
-
-*ATTENZIONE* Questo cancellerà gli oggetti non trasferibili ceduti al gruppo!
-
-Oggetti: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnAllTopObjects"
- >
-Confermi di volere restituire tutti gli oggetti elencati nell&apos;inventario dei loro proprietari?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="DisableAllTopObjects"
- >
-Confermi di volere disabilitare tutti gli oggetti in questa regione?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsNotOwnedByGroup"
- >
-Restituisci gli oggetti in questo terreno che NON sono condivisi con il gruppo [NAME] ai loro proprietari?
-
-Oggetti: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="UnableToDisableOutsideScripts"
- >
-Non è possibile disabilitare gli script.
-L&apos;intera regione ha l&apos;abilitazione danni.
-Gli script devono essere autorizzati all&apos;esecuzione affinchè le armi funzionino.
- </notification>
-
- <notification
-
- name="MustBeInParcel"
- >
-Devi essere dentro il terreno per impostare il suo Punto di Atterraggio.
- </notification>
-
- <notification
-
- name="PromptRecipientEmail"
- >
-Introduci un indirizzo email per il destinatario/i.
- </notification>
-
- <notification
-
- name="PromptSelfEmail"
- >
-Introduci il tuo indirizzo email.
- </notification>
-
- <notification
-
- name="PromptMissingSubjMsg"
- >
-Invia la foto via email con soggetto o messaggio predefinito?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ErrorProcessingSnapshot"
- >
-Errore nell&apos;elaborazione della fotografia.
- </notification>
-
- <notification
-
- name="ErrorEncodingSnapshot"
- >
-Errore nella codifica della fotografia.
- </notification>
-
- <notification
-
- name="ErrorUploadingPostcard"
- >
-C&apos;è stato un problema inviando la fotografia per il seguente motivo: [REASON]
- </notification>
-
- <notification
-
- name="ErrorUploadingReportScreenshot"
- >
-C&apos;è stato un problema importando la foto del rapporto per il seguente motivo: [REASON]
- </notification>
-
- <notification
-
- name="MustAgreeToLogIn"
- >
-Devi accettare i Termini di Servizio prima di proseguire il collegamento con [SECOND_LIFE].
- </notification>
-
- <notification
-
- name="CouldNotPutOnOutfit"
- >
-Non è stato possibile indossare un equipaggiamento.
-La cartella equipaggiamento non contiene abbigliamento, parti del corpo o attachment.
- </notification>
-
- <notification
-
- name="CannotWearTrash"
- >
-Non puoi indossare abiti e parti del corpo che sono nel cestino
- </notification>
-
- <notification
-
- name="CannotWearInfoNotComplete"
- >
-Non puoi indossare quell&apos;elemento perchè non è ancora stato caricato. Riprova fra un minuto.
- </notification>
-
- <notification
-
- name="MustHaveAccountToLogIn"
- >
-Qualcosa è rimasto vuoto.
-Devi inserire sia il nome che il cognome del tuo avatar.
-
-Hai bisogno di un account per entrare in [SECOND_LIFE]. Ne vuoi creare uno adesso?
- <usetemplate
- name="okcancelbuttons"
- notext="Riprova"
- yestext="Crea un nuovo account"/>
- </notification>
-
- <notification
-
- name="AddClassified"
- >
-Gli annunci appaiono nella sezione &apos;Annunci&apos; della ricerca nel database e su www.secondlife.com per una settimana.
-Compila il tuo annuncio e clicca &apos;Pubblica...&apos; per aggiungerlo al database.
-Ti verrà chiesto un prezzo da pagare quando clicchi su Pubblica.
-Pagare un prezzo più alto fa sì che il tuo annuncio compaia più in alto nella lista, e che sia più facile da trovare quando la gente ricerca per parole chiavi.
- <usetemplate
- ignoretext="Mentre si aggiunge un annuncio"
- name="okcancelignore"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="DeleteClassified"
- >
-Cancella annuncio &apos;[NAME]&apos;?
-Non ci sono rimborsi per la tariffa pagata.
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ClassifiedSave"
- >
-Salva le modifiche all&apos;annuncio [NAME]?
- <usetemplate
- canceltext="Annulla"
- name="yesnocancelbuttons"
- notext="Non salvare"
- yestext="Salva"/>
- </notification>
-
- <notification
-
- name="DeleteAvatarPick"
- >
-Cancella il favorito [PICK]?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="PromptGoToEventsPage"
- >
-Vai alla pagina degli eventi di [SECOND_LIFE]?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SelectProposalToView"
- >
-Scegli una proposta da vedere.
- </notification>
-
- <notification
-
- name="SelectHistoryItemToView"
- >
-Scegli un item storico da vedere.
- </notification>
-
- <notification
-
- name="ResetShowNextTimeDialogs"
- >
-Vuoi riabilitare tutti le finestre di popup, che precedentemente hai indicato che &apos;Non vuoi vedere più&apos;?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SkipShowNextTimeDialogs"
- >
-Vuoi disabilitare tutti i popup che possono essere ignorati?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CacheWillClear"
- >
-La Cache verrà pulita dopo il riavvio di [SECOND_LIFE].
- </notification>
-
- <notification
-
- name="CacheWillBeMoved"
- >
-La Cache verrà traslocata dopo il riavvio di [SECOND_LIFE].
-Nota: Questo pulirà la cache.
- </notification>
-
- <notification
-
- name="ChangeConnectionPort"
- >
-Le impostazioni delle porte avranno effetto dopo il riavvio di [SECOND_LIFE].
- </notification>
-
- <notification
-
- name="ChangeSkin"
- >
-La nuova pelle apparità dopo il riavvio di [SECOND_LIFE].
- </notification>
-
- <notification
-
- name="GoToAuctionPage"
- >
-Vai alla pagina web [SECOND_LIFE] per vedere i dettagli dell&apos;asta oppure fai un&apos;offerta?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SaveChanges"
- >
-Salva le modifiche?
- <usetemplate
- canceltext="Annulla"
- name="yesnocancelbuttons"
- notext="Non salvare"
- yestext="Salva"/>
- </notification>
-
- <notification
-
- name="GestureSaveFailedTooManySteps"
- >
-Il salvataggio della Gesture è fallito.
-La gesture ha troppi passi.
-Prova a togliere qualche passo e quindi risalva.
- </notification>
-
- <notification
-
- name="GestureSaveFailedTryAgain"
- >
-Il salvataggio della gesture è fallito. Riprova fra un minuto.
- </notification>
-
- <notification
-
- name="GestureSaveFailedObjectNotFound"
- >
-Non è possibile salvare la gesture perchè non è stato trovato l&apos;oggetto o l&apos;inventario associato.
-L&apos;oggetto potrebbe essere troppo lontano oppure essere stato cancellato.
- </notification>
-
- <notification
-
- name="GestureSaveFailedReason"
- >
-C&apos;è stato un problema salvando la gesture a causa del seguente motivo: [REASON]. Riprova a salvare la gesture più tardi.
- </notification>
-
- <notification
-
- name="SaveNotecardFailObjectNotFound"
- >
-Non è possibile salvare la notecard perchè non è stato trovato l&apos;oggetto o l&apos;inventario associato.
-L&apos;oggetto potrebbe essere troppo lontano oppure essere stato cancellato.
- </notification>
-
- <notification
-
- name="SaveNotecardFailReason"
- >
-C&apos;è stato un problema salvando la notecard a causa del seguente motivo: [REASON]. Riprova a salvare la notecard più tardi.
- </notification>
-
- <notification
-
- name="ScriptCannotUndo"
- >
-Non è stato possibile annullare tutti i cambiamenti nella tua versione dello script.
-Vuoi ripristinare l&apos;ultima versione salvata sul server?
-(**Attenzione** Questa operazione non è reversibile)
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SaveScriptFailReason"
- >
-C&apos;è stato un problema salvando lo script a causa del seguente motivo : [REASON]. Riprova a salvare lo script più tardi.
- </notification>
-
- <notification
-
- name="SaveScriptFailObjectNotFound"
- >
-Non è stato possibile salvare lo script perchè l&apos;oggetto che lo contiene non è stato trovato.
-L&apos;oggetto potrebbe essere troppo lontano oppure essere stato cancellato.
- </notification>
-
- <notification
-
- name="SaveBytecodeFailReason"
- >
-C&apos;è stato un problema salvando lo script compilato a causa del seguente motivo: [REASON]. Riprova a salvare lo script più tardi.
- </notification>
-
- <notification
-
- name="CouldNotStartStopScript"
- >
-Non è stato possibile lanciare o fermare lo script perchè l&apos;oggetto che lo contiene non è stato trovato.
-L&apos;oggetto potrebbe essere troppo lontano oppure essere stato cancellato.
- </notification>
-
- <notification
-
- name="CannotDownloadFile"
- >
-Non è stato possibile scaricare il file
- </notification>
-
- <notification
-
- name="CannotWriteFile"
- >
-Non è stato possibile scrivere il file [[FILE]]
- </notification>
-
- <notification
-
- name="UnsupportedHardware"
- >
-Attenzione: Il tuo sistema non soddisfa i requisiti minimi per il funzionamento Second Life. Se continui ad usare Second Life, potresti osservare una lentezza eccessiva. Sfortunatamente non possiamo fornire supporto tecnico per configurazioni di sistema non supportate.
-
-MINSPECS
-Vuoi visitare [_URL] per maggiori informazioni?
- <url option="0" name="url">
-
- http://secondlife.com/support/sysreqs.php?lang=it
- </url>
- <usetemplate
- ignoretext="Mentre sto individuando hardware non supportato"
- name="okcancelignore"
- notext="No"
- yestext="Si"/>
- </notification>
-
- <notification
-
- name="UnknownGPU"
- >
-Il tuo sistema contiene una scheda grafica che attualmente non supportiamo.
-Questo succede spesso con nuovi prodotti che non siamo riusciti a verificare. Probabilmente Second Life funzionerà correttamente ma forse dovrai modificare le impostazioni grafiche in modo appropriato.
-(Modifica &gt; Preferenze &gt; Grafica).
- <form name="form">
- <ignore name="ignore"
- text="Mentre stavo valutando una scheda grafica sconosciuta"/>
- </form>
- </notification>
-
- <notification
-
- name="DisplaySettingsNoShaders"
- >
-[SECOND_LIFE] si è bloccata mentre stava inizializzando i driver grafici.
-La qualità grafica verrà impostata al valore basso per evitare alcuni degli errori più comuni con i driver.
-Questo però disabiliterà alcune funzioni grafiche.
-Ti raccomandiamo di aggiornare i driver della tua scheda grafica.
-La qualità grafica può essere aumentara in Preferenze &gt; Grafica.
- </notification>
-
- <notification
-
- name="RegionNoTerraforming"
- >
-La regione [REGION] non consente di terraformare.
- </notification>
-
- <notification
-
- name="CannotCopyWarning"
- >
-Non hai il permesso di copiare questo elemento e lo perderai dal tuo inventario se lo regali.
-Confermi veramente di offrire questo elemento?
- <usetemplate
- name="okcancelbuttons"
- notext="No"
- yestext="Si"/>
- </notification>
-
- <notification
-
- name="CannotGiveItem"
- >
-Impossibile consegnare l&apos;elemento dell&apos;inventario.
- </notification>
-
- <notification
-
- name="TransactionCancelled"
- >
-La transazione è stata annullata.
- </notification>
-
- <notification
-
- name="TooManyItems"
- >
-Non è possibile dare più di 42 elementi in un singolo trasferimento di inventario.
- </notification>
-
- <notification
-
- name="NoItems"
- >
-Non hai i permessi di trasferimento per gli elementi selezionati.
- </notification>
-
- <notification
-
- name="CannotCopyCountItems"
- >
-Non hai i permessi di copia per copiare [COUNT]
-degli elementi selezionati. Perderai questi elementi dal tuo inventario.
-Vuoi veramente perdere questi elementi?
- <usetemplate
- name="okcancelbuttons"
- notext="No"
- yestext="Si"/>
- </notification>
-
- <notification
-
- name="CannotGiveCategory"
- >
-Non hai i permessi per trasferire la cartella selezionata.
- </notification>
-
- <notification
-
- name="FreezeAvatar"
- >
-Immobilizza questo avatar?
-Non potrà temporaneamente muoversi, chiacchierare in chat, o interagire con il mondo.
- <usetemplate
- canceltext="Annulla"
- name="yesnocancelbuttons"
- notext="Smobilizza"
- yestext="Immobilizza"/>
- </notification>
-
- <notification
-
- name="FreezeAvatarFullname"
- >
-Immobilizza [AVATAR_NAME]?
-Non potrà temporaneamente muoversi, chiacchierare in chat, o interagire con il mondo.
- <usetemplate
- canceltext="Annulla"
- name="yesnocancelbuttons"
- notext="Smobilizza"
- yestext="Immobilizza"/>
- </notification>
-
- <notification
-
- name="EjectAvatarFullname"
- >
-Espelli [AVATAR_NAME] dal tuo terreno?
- <usetemplate
- canceltext="Annulla"
- name="yesnocancelbuttons"
- notext="Espelli e blocca"
- yestext="Espelli"/>
- </notification>
-
- <notification
-
- name="EjectAvatarNoBan"
- >
-Espelli questo avatar dal tuo terreno?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="Espelli"/>
- </notification>
-
- <notification
-
- name="EjectAvatarFullnameNoBan"
- >
-Espelli [AVATAR_NAME] dal tuo terreno?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="Espelli"/>
- </notification>
-
- <notification
-
- name="AcquireErrorTooManyObjects"
- >
-ERRORE DI ACQUISIZIONE: hai selezionato troppi oggetti.
- </notification>
-
- <notification
-
- name="AcquireErrorObjectSpan"
- >
-ERRORE DI ACQUISIZIONE: Gli oggetti sono a cavallo di più di una regione.
-Sposta tutti gli oggetti che vuoi acquisire su una sola regione.
- </notification>
-
- <notification
-
- name="PromptGoToCurrencyPage"
- >
-[EXTRA]
-
-Vuoi andare su [URL] per maggiori informazioni su come acquistare denaro?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="UnableToLinkObjects"
- >
-Impossibile unire questi [COUNT] oggetti.
-Puoi unire al massimo [MAX] oggetti.
- </notification>
-
- <notification
-
- name="CannotLinkIncompleteSet"
- >
-Puoi unire soltanto un insieme completo di oggetti, e devi selezionare più di un oggetto.
- </notification>
-
- <notification
-
- name="CannotLinkModify"
- >
-Impossibile unire perchè non hai il diritto di modifica su tutti gli oggetti.
-
-Accertati che nessuno sia bloccato e che li possiedi tutti.
- </notification>
-
- <notification
-
- name="CannotLinkDifferentOwners"
- >
-Impossibile unire perche non tutti gli oggetti hanno lo stesso proprietario.
-
-Accertati di possedere tutti gli oggetti selezionati.
- </notification>
-
- <notification
-
- name="NoFileExtension"
- >
-Manca l&apos;estensione per il file: &apos;[FILE]&apos;
-
-Accertati che il file abbia una estensione corretta.
- </notification>
-
- <notification
-
- name="InvalidFileExtension"
- >
-L&apos;estensione [EXTENSION] del file non è valida
-Attese [VALIDS]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CannotUploadSoundFile"
- >
-Impossibile aprire in lettura il file di suono importato:
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileNotRIFF"
- >
-Il file audio non sembra essere di tipo RIFF WAVE:
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileNotPCM"
- >
-Il file audio non sembra essere di tipo PCM WAVE:
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidChannelCount"
- >
-Il file ha un numero sbagliato di canali (deve essere mono oppure stereo):
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidSampleRate"
- >
-Il file non sembra essere della frequenza di campionamento supportata (deve essere 44.1k):
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidWordSize"
- >
-Il file non sembra avere una dimensione della parola supportata (deve essere a 8 o a 16 bit):
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidHeader"
- >
-Impossibile trovare il frammento &apos;data&apos; nell&apos;intestazione WAV:
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidTooLong"
- >
-Il file audio è troppo lungo (deve essere al massimo 10 secondi):
-[FILE]
- </notification>
-
- <notification
-
- name="ProblemWithFile"
- >
-Problemi con il file [FILE]:
-
-[ERROR]
- </notification>
-
- <notification
-
- name="CannotOpenTemporarySoundFile"
- >
-Impossibile aprire in scrittura il file temporaneamente compresso: [FILE]
- </notification>
-
- <notification
-
- name="UnknownVorbisEncodeFailure"
- >
-Errore di codifica Vorbis sconosciuta per: [FILE]
- </notification>
-
- <notification
-
- name="CorruptResourceFile"
- >
-File risorsa corrotto: [FILE]
- </notification>
-
- <notification
-
- name="UnknownResourceFileVersion"
- >
-Versione di risorsa Linden sconosciuta nel file: [FILE]
- </notification>
-
- <notification
-
- name="UnableToCreateOutputFile"
- >
-Impossibile creare il file in uscita: [FILE]
- </notification>
-
- <notification
-
- name="DoNotSupportBulkAnimationUpload"
- >
-Non supportiamo attualmente l&apos;upload multiplo di file di animazione.
- </notification>
-
- <notification
-
- name="CannotUploadReason"
- >
-Impossibile importare il file [FILE] a causa del seguente motivo: [REASON]
-Riprova più tardi.
- </notification>
-
- <notification
-
- name="CannotCreateLandmarkNotOwner"
- >
-Non puoi creare qui un landmark perchè il proprietario di questo terreno non lo consente.
- </notification>
-
- <notification
-
- name="CannotRecompileSelectObjectsNoScripts"
- >
-Impossibile fare la &apos;ricompilazione&apos;.
-Seleziona un oggetto con uno script.
- </notification>
-
- <notification
-
- name="CannotRecompileSelectObjectsNoPermission"
- >
-Impossibile fare la &apos;ricompilazione&apos;.
-
-Seleziona oggetti con script su cui hai i permessi di modifica.
- </notification>
-
- <notification
-
- name="CannotResetSelectObjectsNoScripts"
- >
-Impossibile fare &apos;ripristino&apos;.
-
-Seleziona oggetti con degli script.
- </notification>
-
- <notification
-
- name="CannotResetSelectObjectsNoPermission"
- >
-Impossibile fare &apos;ripristino&apos;.
-
-Seleziona oggetti con script su cui hai i permessi di modifica.
- </notification>
-
- <notification
-
- name="CannotSetRunningSelectObjectsNoScripts"
- >
-Impossibile mettere &apos;in esecuzione&apos; gli script.
-
-Seleziona oggetti con script.
- </notification>
-
- <notification
-
- name="CannotSetRunningNotSelectObjectsNoScripts"
- >
-Impossibile impostare script a &apos;non in esecuzione&apos;.
-
-Seleziona oggetti con script.
- </notification>
-
- <notification
-
- name="NoFrontmostFloater"
- >
-Non c&apos;è nessuna finestra in evidenza (in primo piano) da salvare.
- </notification>
-
- <notification
-
- name="SeachFilteredOnShortWords"
- >
-La tua ricerca è stata modificata.
-Le parole troppo corte sono state rimosse.
-
-Ho cercato: [FINALQUERY]
- </notification>
-
- <notification
-
- name="SeachFilteredOnShortWordsEmpty"
- >
-Le parole che hai usato per la ricerca sono troppo corte e non è stato possibile iniziare la ricerca.
- </notification>
-
- <notification
-
- name="CouldNotTeleportReason"
- >
-Impossibile eseguire il teleport.
-[REASON]
- </notification>
-
- <notification
-
- name="CannotSetLandOwnerNothingSelected"
- >
-Impossibile impostare il proprietario del terreno:
-Nessun terreno selezionato.
- </notification>
-
- <notification
-
- name="CannotSetLandOwnerMultipleRegions"
- >
-Impossibile forzare la proprietà del terreno perchè la selezione si estende su diverse regioni. Seleziona una area più piccola e riprova.
- </notification>
-
- <notification
-
- name="ForceOwnerAuctionWarning"
- >
-Questo terreno è venduta all&apos;asta. Forzare la proprietà cancellerà l&apos;asta e potrebbe disturbare residenti che abbiano già fatto offerte.
-Vuoi forzare la proprietà?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CannotContentifyNothingSelected"
- >
-Impossibile fare la contentificazione:
-Nessun terreno selezionato.
- </notification>
-
- <notification
-
- name="CannotContentifyNoRegion"
- >
-Impossibile fare la contentificazione:
-Nessuna regione selezionata.
- </notification>
-
- <notification
-
- name="CannotReleaseLandNothingSelected"
- >
-Impossibile abbandonare il terreno:
-Nessun terreno selezionato.
- </notification>
-
- <notification
-
- name="CannotReleaseLandNoRegion"
- >
-Impossibile abbandonare il terreno:
-Non riesco a trovare la regione.
- </notification>
-
- <notification
-
- name="CannotBuyLandNothingSelected"
- >
-Impossibile comprare il terreno:
-Nessun terreno selezionato.
- </notification>
-
- <notification
-
- name="CannotBuyLandNoRegion"
- >
-Impossibile comprare il terreno:
-Non riesco a trovare la regione dove è situato il terreno.
- </notification>
-
- <notification
-
- name="CannotCloseFloaterBuyLand"
- >
-Non puoi chiudere la finestra di Acquisto Terreno finchè Second Life non stima il prezzo di questa transazione.
- </notification>
-
- <notification
-
- name="CannotDeedLandNothingSelected"
- >
-Impossibile cedere il terreno:
-Nessun terreno selezionato.
- </notification>
-
- <notification
-
- name="CannotDeedLandNoGroup"
- >
-Impossibile cedere il terreno:
-Nessun gruppo selezionato.
- </notification>
-
- <notification
-
- name="CannotDeedLandNoRegion"
- >
-Impossibile cedere il terreno:
-Non riesco a trovare la regione dove è situato il terreno.
-Usa Strumenti -&gt; Segnala Bug per segnalare il problema.
- </notification>
-
- <notification
-
- name="CannotDeedLandMultipleSelected"
- >
-Impossibile cedere il terreno:
-Hai selezionato più di un terreno.
-
-Prova a selezionare un solo terreno.
- </notification>
-
- <notification
-
- name="ParcelCanPlayMedia"
- >
-Questo posto offre contenuto multimediale in streaming.
-Ricevere lo streaming multimediale richiede una connessione internet veloce.
-
-Vuoi vedere il contenuto multimediale quando è disponibile?
-(Puoi cambiare questa opzione in seguito scegliendo Preferenze &gt; Audio &amp; Video.)
- <usetemplate
- name="okcancelbuttons"
- notext="Disabilita"
- yestext="Abilita MultiMedia"/>
- </notification>
-
- <notification
-
- name="CannotDeedLandWaitingForServer"
- >
-Impossibile cedere il terreno:
-Sto aspettando il server per segnalare la proprietà.
-
-Riprova di nuovo.
- </notification>
-
- <notification
-
- name="CannotDeedLandNoTransfer"
- >
-Impossibile cedere il terreno:
-La regione [REGION] non consente il trasferimento di terreni.
- </notification>
-
- <notification
-
- name="CannotReleaseLandWatingForServer"
- >
-Impossibile abbandonare il terreno:
-Sto aspettando il server per aggiornare le informazioni del terreno.
-
-Riprova fra poco.
- </notification>
-
- <notification
-
- name="CannotReleaseLandSelected"
- >
-Impossibile abbandonare il terreno:
-Non possiedi tutti i terreni selezionati.
-
-Seleziona un solo terreno.
- </notification>
-
- <notification
-
- name="CannotReleaseLandDontOwn"
- >
-Impossibile abbandonare il terreno:
-Non hai i permessi per rilasciare questo terreno.
-I terreni di tua proprietà vengono visualizzati in verde.
- </notification>
-
- <notification
-
- name="CannotReleaseLandRegionNotFound"
- >
-Impossibile abbandonare il terreno:
-Non riesco a trovare la regione dove è situato il terreno.
-
-Usa Strumenti &gt; Segnala Bug segnalare questo problema.
- </notification>
-
- <notification
-
- name="CannotReleaseLandNoTransfer"
- >
-Impossibile abbandonare il terreno:
-La regione [REGION] non consente il trasferimento di terreni.
- </notification>
-
- <notification
-
- name="CannotReleaseLandPartialSelection"
- >
-Impossibile abbandonare il terreno:
-Devi selezionare un terreno intero per rilasciarla.
-
-Seleziona un terreno intero, oppure dividi prima il tuo terreno.
- </notification>
-
- <notification
-
- name="ReleaseLandWarning"
- >
-Stai per rilasciare [AREA] m² di terreno.
-Rilasciare questo appezzamento di terreno lo toglierà dalle tue proprietà, ma non ti verranno dati L$.
-
-Rilasciare questo terreno?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CannotDivideLandNothingSelected"
- >
-Impossibile dividere il terreno:
-
-Non sono stati selezionati terreni.
- </notification>
-
- <notification
-
- name="CannotDivideLandPartialSelection"
- >
-Impossibile dividere il terreno:
-
-Hai selezionato unintero terreno.
-Prova a selezionare unappezzamento di terreno.
- </notification>
-
- <notification
-
- name="LandDivideWarning"
- >
-La suddivisione di questo terreno lo dividerà in due parti ed ognuna potrà avere le sue impostazioni. Alcune impostazioni verranno reimpostate ai valori iniziali dopo l&apos;operazione.
-
-Dividi il terreno?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CannotDivideLandNoRegion"
- >
-Impossibile dividere il terreno:
-Non riesco a trovare la regione dove è situato.
-
-Usa Strumenti -&gt; Segnala Bug per segnalare il problema.
- </notification>
-
- <notification
-
- name="CannotJoinLandNoRegion"
- >
-Impossibile unire il terreno:
-Non riesco a trovare la regione dove è situato.
-
-Usa Strumenti -&gt; Segnala Bug per segnalare il problema.
- </notification>
-
- <notification
-
- name="CannotJoinLandNothingSelected"
- >
-Impossibile unire il terreno:
-Non hai selezionato terreno.
- </notification>
-
- <notification
-
- name="CannotJoinLandEntireParcelSelected"
- >
-Impossibile unire il terreno:
-Hai selezionato un solo terreno.
-
-Devi selezionare il terreno comprendendo entrambi gli appezzamenti.
- </notification>
-
- <notification
-
- name="CannotJoinLandSelection"
- >
-Impossibile unire il terreno:
-Devi selezionare più di un terreno.
-
-Devi selezionare il terreno comprendendo entrambi gli appezzamenti.
- </notification>
-
- <notification
-
- name="JoinLandWarning"
- >
-Unire questi appezzamenti creerà un terreno più grande a partire da tutti gli appezzamenti che si intersecano nel rettangolo selezionato.
-Dovrai reimpostare il nome e le opzioni del nuovo terreno.
-
-Unisci il terreno?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmNotecardSave"
- >
-Questa notecard deve essere salvata prima che l&apos;elemento possa essere copiato o visualizzato. Salva la notecard?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmItemCopy"
- >
-Copia questo elemento nel tuo inventario?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="Copia"/>
- </notification>
-
- <notification
-
- name="ResolutionSwitchFail"
- >
-Non sono riuscito a cambiare la risoluzione al valore [RESX] x [RESY]
- </notification>
-
- <notification
-
- name="ErrorUndefinedGrasses"
- >
-Errore: Erba sconosciuta: [SPECIES]
- </notification>
-
- <notification
-
- name="ErrorUndefinedTrees"
- >
-Errore: Alberi sconosciuti: [SPECIES]
- </notification>
-
- <notification
-
- name="CannotSaveWearableOutOfSpace"
- >
-Impossibile salvare &apos;[NAME]&apos; nel file di oggetti indossabili. Dovrai liberare dello spazio sul tuo computer e salvare di nuovo.
- </notification>
-
- <notification
-
- name="CannotSaveToAssetStore"
- >
-Impossibile salvare [NAME] nel database centrale.
-Normalmente questo problema è temporaneo. Riprova a generare la parte indossabile e a salvarla fra qualche minuto.
-
-Se questo problema persiste, clicca sul menu a tendina &apos;Strumenti &gt; Segnala Bug&apos; e fornisci i dettagli sulla tua configurazione di rete.
- </notification>
-
- <notification
-
- name="YouHaveBeenLoggedOut"
- >
-Sei stato sconnesso da [SECOND_LIFE]:
- [MESSAGE]
-Puoi ancora vedere i tuoi IM e la chat cliccando &apos;Vedi IM &amp; Chat&apos;. Altrimenti, clicca &apos;Esci&apos; per uscire immediatamente da [SECOND_LIFE].
- <usetemplate
- name="okcancelbuttons"
- notext="Esci"
- yestext="Vedi IM &amp; Chat"/>
- </notification>
-
- <notification
-
- name="OnlyOfficerCanBuyLand"
- >
-Impossibile comprare terreno per il gruppo:
-Non hai i permessi per comprare il terreno per il tuo gruppo attivo.
- </notification>
-
- <notification
-
- label="Aggiungi Amico"
- name="AddFriend"
- >
-Gli amici possono autorizzarsi a vedersi l&apos;un l&apos;altro sulla mappa e sapere quando sono collegati.
-
-Offri l&apos;amicizia a [NAME]?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Aggiungi Amico"
- name="AddFriendWithMessage"
- >
-Gli amici possono autorizzarsi a vedersi l&apos;un l&apos;altro sulla mappa e sapere quando sono collegati.
-
-Offri l&apos;amicizia a [NAME]?
- <form name="form">
- <input name="message" type="text">
-Vorresti essere mio amico?
- </input>
- <button
-
-
- name="Offer"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annulla"/>
- </form>
- </notification>
-
- <notification
-
- name="RemoveFromFriends"
- >
-Vuoi rimuovere remove [FIRST_NAME] [LAST_NAME] dalla lista dei tuoi amici?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="RemoveMultipleFromFriends"
- >
-Vuoi rimuovere gli amici selezionati dalla lista dei tuoi amici?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GodDeleteAllScriptedPublicObjectsByUser"
- >
-Confermi di volere cancellare tutti gli oggetti scriptati della proprietà di
-** [AVATAR_NAME] **
-su tutti gli altri terreni di questa sim?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GodDeleteAllScriptedObjectsByUser"
- >
-Confermi la CANCELLAZIONE di TUTTI gli oggetti scriptati posseduti da
-** [AVATAR_NAME] **
-su TUTTI I TERRENI di questa sim?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GodDeleteAllObjectsByUser"
- >
-Confermi la CANCELLAZIONE di TUTTI gli oggetti (scriptati o no) posseduti da
-** [AVATAR_NAME] **
-su TUTTI I TERRENI di questa sim?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BlankClassifiedName"
- >
-Devi specificare un nome per il tuo annuncio.
- </notification>
-
- <notification
-
- name="MinClassifiedPrice"
- >
-Il prezzo da pagare per essere messo in lista deve essere almeno [MIN_PRICE]L$.
-
-Introduci un prezzo più alto.
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLock"
- >
-Almeno uno degli elementi selezionati è bloccato.
-
-Confermi di voler cancellare questi elementi?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteNoCopy"
- >
-Almeno uno degli elementi selezionati non è copiabile.
-
-Confermi di voler cancellare questi elementi?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteNoOwn"
- >
-Non possiedi neanche uno degli oggetti selezionati.
-
-Confermi di voler cancellare questi elementi?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLockNoCopy"
- >
-Almeno un oggetto è bloccato.
-Almeno un oggetto è non copiabile.
-
-Confermi di voler cancellare questi elementi?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLockNoOwn"
- >
-Almeno un oggetto è bloccato.
-Non possiedi neanche un oggetto.
-
-Confermi di voler cancellare questi elementi?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancella"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteNoCopyNoOwn"
- >
-Almeno un oggetto non è copiabile.
-Non possiedi neanche un oggetto.
-
-Confermi di voler cancellare questi elementi?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLockNoCopyNoOwn"
- >
-Almeno un oggetto è bloccato.
-Almeno un oggetto è non copiabile.
-Non possiedi neanche un oggetto.
-
-Confermi di voler cancellare questi elementi?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectTakeLock"
- >
-Almeno un oggetto è bloccato.
-
-Confermi di voler prendere questi elementi?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectTakeNoOwn"
- >
-Non possiedi tutti gli oggetti che stai prendendo.
-Se continui, verranno applicate i permessi per il prossimo proprietario e di conseguenza potrebbero venire ristrette le tue possibilità di modificarli o di copiarli.
-
-Confermi di voler prendere questi elementi?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectTakeLockNoOwn"
- >
-Almeno un oggetto è bloccato.
-Non possiedi tutti gli oggetti che stai prendendo.
-Se continui, verranno applicate i permessi per il prossimo proprietario e di conseguenza potrebbero venire ristrette le tue possibilità di modificarli o di copiarli.
-Puoi comunque prendere gli oggetti selezionati.
-
-Confermi di voler prendere questi elementi?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CantBuyLandAcrossMultipleRegions"
- >
-Impossibile comprare il terreno perchè la selezione comprende più regioni.
-
-Seleziona un&apos;area più piccola e riprova.
- </notification>
-
- <notification
-
- name="DeedLandToGroup"
- >
-Cedendo questo terreno al gruppo sara richiesto ai componenti di avere e di mantenere il terreno con un credito sufficiente.
-Il prezzo di acquisto del terreno non è rifondibile al proprietario.
-Se una terreno ceduto al gruppo viene venduto, il prezzo di vendita verrà diviso in parti uguali fra i membri del gruppo.
-
-Cedi questo terreno di [AREA] m² al gruppo &apos;[GROUP_NAME]&apos;?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="DeedLandToGroupWithContribution"
- >
-Cedendo questo terreno al gruppo sara richiesto hai componenti di avere e di mantenere il terreno con un credito sufficiente.
-La cessione include un contributo simultaneo di terreno al gruppo da &apos;[FIRST_NAME] [LAST_NAME]&apos;.
-Il prezzo di acquisto del terreno non è rifondibile al proprietario.
-Se una terreno ceduto al gruppo viene venduto, il prezzo di vendita viene diviso in parti uguali fra i membri del gruppo.
-
-Cedi questo terreno di [AREA] m² al gruppo &apos;[GROUP_NAME]&apos;?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="DisplaySetToSafe"
- >
-Le impostazioni dello schermo sono state impostate a valori di sicurezza perchè hai specificato l&apos;opzione -safe.
- </notification>
-
- <notification
-
- name="DisplaySetToRecommended"
- >
-Le impostazioni dello schermo sono state impostate a valori ottimali basati sulla tua configurazione di sistema.
- </notification>
-
- <notification
-
- name="ErrorMessage"
- >
-[ERROR_MESSAGE]
- </notification>
-
- <notification
-
- name="AvatarMoved"
- >
-La tua locazione [TYPE] non è al momento disponibile.
-[HELP]
-Il tuo avatar è stato spostato in una regione vicina.
- </notification>
-
- <notification
-
- name="ClothingLoading"
- >
-I tuoi vestiti stanno ancora scaricandosi.
-Puoi usare [SECOND_LIFE] normalmente e gli altri utenti ti vedranno correttamente.
- <form name="form">
- <ignore name="ignore"
- text="se gli abiti ci impiegano troppo tempo a scaricarsi"/>
- </form>
- </notification>
-
- <notification
-
- name="FirstRun"
- >
-L&apos;installazione di [SECOND_LIFE] è completata.
-
-Se questa è la prima volta che usi [SECOND_LIFE], avari bisogno di creare un account prima di poterti collegare.
-Vai su www.secondlife.com per creare un nuovo account?
- <usetemplate
- name="okcancelbuttons"
- notext="Continua"
- yestext="Nuovo Account..."/>
- </notification>
-
- <notification
-
- name="LoginPacketNeverReceived"
- >
-Ci sono stati problemi durante la connessione. Potrebbero esserci problemi con la tua connessione ad internet oppure con i server di Second Life.
-
-Puoi controllare la tua connessione internet e riprovare fra qualche minuto, oppure cliccare su Aiuto per collegarti al nostro sito di supporto, oppure cliccare teleporta per cercare di teleportarti a casa.
- <form name="form">
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Help"
- text="Aiuto"/>
- <button
-
- name="Teleport"
- text="Teleportati"/>
- </form>
- </notification>
-
- <notification
-
- name="WelcomeChooseSex"
- >
-Il tuo avatar apparirà fra un attimo.
-
-Usa le frecce per camminare.
-Premi F1 in qualunque momento per aiuto o per apprendere altre cose su [SECOND_LIFE].
-Scegli l&apos;avatar maschile o femminile. Puoi sempre cambiare idea più tardi.
- <usetemplate
- name="okcancelbuttons"
- notext="Femminile"
- yestext="Maschile"/>
- </notification>
-
- <notification
-
- name="NotEnoughCurrency"
- >
-[NAME] [PRICE]L$ Non hai abbastanza L$ per farlo.
- </notification>
-
- <notification
-
- name="GrantedModifyRights"
- >
-Ti sono stati accordati i privilegi di modifica degli oggetti di [FIRST_NAME] [LAST_NAME].
- </notification>
-
- <notification
-
- name="RevokedModifyRights"
- >
-Ti sono stati revocati i privilegi di modifica degli oggetti di [FIRST_NAME] [LAST_NAME].
- </notification>
-
- <notification
-
- name="FlushMapVisibilityCaches"
- >
-Questo reinizializzerà la cache della mappa di questa regione.
-Funzione usata solo per il debug.
-(Per la produzione, attendere 5 minuti, dopo di che tutte le mappe di ognuno si aggiorneranno dopo la loro riconnessione)
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="OnlyCopyContentsOfSingleItem"
- >
-Impossibile copiare il contenuto di più di un elemento alla volta.
-Scegli solo un oggetto e riprova.
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="KickUsersFromRegion"
- >
-Teleporta a casa tutti i residenti in questa regione?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="EstateObjectReturn"
- >
-Confermi di voler restituire gli oggetti di proprietà di [USER_NAME] ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="InvalidTerrainBitDepth"
- >
-Impossibile impostare le texture della regione:
-La texture del terreno [TEXTURE_NUM] ha una profondità di bit pari a [TEXTURE_BIT_DEPTH] non corretta.
-
-Sostituisci la texture [TEXTURE_NUM] con una a 24-bit 512x512 o una immagine più piccola e quindi clicca nuovamente su &quot;Applica&quot;.
- </notification>
-
- <notification
-
- name="InvalidTerrainSize"
- >
-Impossibile impostare le texture di regione:
-La texture del terreno [TEXTURE_NUM] è troppo grande se a [TEXTURE_SIZE_X]x[TEXTURE_SIZE_Y].
-
-Sostituisci la texture [TEXTURE_NUM] con una a 24-bit 512x512 oppure con una immagine più piccola e quindi clicca di nuovo &quot;Applica&quot;.
- </notification>
-
- <notification
-
- name="RawUploadStarted"
- >
-Importazione iniziata. Può impiegare fino a due minuti, a seconda della velocità della tua connessione.
- </notification>
-
- <notification
-
- name="ConfirmBakeTerrain"
- >
-Vuoi veramente impostare come base il terreno corrente, impostarlo come riferimento per i limiti dei rialzi/abbassamenti di tutto il territorio ed il suo valore impostato come base per lo strumento &apos;Ripristina&apos;?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="MaxAllowedAgentOnRegion"
- >
-Puoi avere al massimo [MAX_AGENTS] residenti consentiti.
- </notification>
-
- <notification
-
- name="MaxBannedAgentsOnRegion"
- >
-Puoi avere al massimo [MAX_BANNED] residenti bloccati.
- </notification>
-
- <notification
-
- name="MaxAgentOnRegionBatch"
- >
-E&apos; fallito il tentativo di aggiungere [NUM_ADDED] avatar:
-Eccede il [MAX_AGENTS] [LIST_TYPE] limite di [NUM_EXCESS].
- </notification>
-
- <notification
-
- name="MaxAllowedGroupsOnRegion"
- >
-Puoi avere al massimo [MAX_GROUPS] gruppi.
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="Imposta come predefinito"/>
- </notification>
-
- <notification
-
- name="MaxManagersOnRegion"
- >
-Puoi avere al massimo [MAX_MANAGER] manager della proprietà immobiliare.
- </notification>
-
- <notification
-
- name="OwnerCanNotBeDenied"
- >
-Impossibile aggiungere i proprietari della proprietà immobiliare alla lista dei residenti bloccati.
- </notification>
-
- <notification
-
- name="CanNotChangeAppearanceUntilLoaded"
- >
-Impossibile cambiare l&apos;aspetto fisico finchè gli abiti e i vestiti non sono caricati.
- </notification>
-
- <notification
-
- name="ClassifiedMustBeAlphanumeric"
- >
-Il nome del tuo annuncio deve iniziare con una lettera da A a Z oppure con un numero.
-Non sono consentiti caratteri di punteggiatura.
- </notification>
-
- <notification
-
- name="CantSetBuyObject"
- >
-Impossibile impostare &apos;Compra l&apos;oggetto&apos;, perchè l&apos;oggetto non è in vendita.
-Imposta l&apos;oggetto per la vendita e riprova.
- </notification>
-
- <notification
-
- name="FinishedRawDownload"
- >
-Hai terminato di scaricare il file del terreno nella cartella:
-[DOWNLOAD_PATH].
- </notification>
-
- <notification
-
- name="DownloadWindowsMandatory"
- >
-E&apos; disponibile una nuova versione di [SECOND_LIFE].
-[MESSAGE]
-Devi scaricare questo aggiornamento per usare [SECOND_LIFE].
- <usetemplate
- name="okcancelbuttons"
- notext="Esci"
- yestext="Scarica l&apos;aggiornamento"/>
- </notification>
-
- <notification
-
- name="DownloadWindows"
- >
-E&apos; disponibile una versione aggiornata di [SECOND_LIFE].
-[MESSAGE]
-Questo aggiornamento non è obbligatorio, ma ti suggeriamo di installarlo per migliorarne le prestazioni e la stabilità.
- <usetemplate
- name="okcancelbuttons"
- notext="Continua"
- yestext="Scarica l&apos;aggiornamento"/>
- </notification>
-
- <notification
-
- name="DownloadWindowsReleaseForDownload"
- >
-E&apos; disponibile una versione aggiornata di [SECOND_LIFE].
-[MESSAGE]
-Questo aggiornamento non è obbligatorio, ma ti suggeriamo di installarlo per migliorarne le prestazioni e la stabilità.
- <usetemplate
- name="okcancelbuttons"
- notext="Continua"
- yestext="Scarica l&apos;aggiornamento"/>
- </notification>
-
- <notification
-
- name="DownloadMacMandatory"
- >
-E&apos; disponibile una nuova versione di [SECOND_LIFE].
-[MESSAGE]
-Devi scaricare questo aggiornamento per usare [SECOND_LIFE].
-
-Vuoi avviarne lo scaricamento nella tua cartella applicazioni?
- <usetemplate
- name="okcancelbuttons"
- notext="Esci"
- yestext="Scarica l&apos;aggiornamento"/>
- </notification>
-
- <notification
-
- name="DownloadMac"
- >
-E&apos; disponibile una versione aggiornata di [SECOND_LIFE].
-[MESSAGE]
-Questo aggiornamento non è obbligatorio, ma ti suggeriamo di installarlo per migliorarne le prestazioni e la stabilità.
-
-Vuoi avviarne lo scaricamento nella tua cartella applicazioni?
- <usetemplate
- name="okcancelbuttons"
- notext="Continua"
- yestext="Scarica l&apos;aggiornamento"/>
- </notification>
-
- <notification
-
- name="DownloadMacReleaseForDownload"
- >
-E&apos; disponibile una versione aggiornata di [SECOND_LIFE].
-[MESSAGE]
-Questo aggiornamento non è obbligatorio, ma ti suggeriamo di installarlo per migliorarne le prestazioni e la stabilità.
-
-Vuoi avviarne lo scaricamento nella tua cartella applicazioni?
- <usetemplate
- name="okcancelbuttons"
- notext="Continua"
- yestext="Scarica l&apos;aggiornamento"/>
- </notification>
-
- <notification
-
- name="DeedObjectToGroup"
- >
-La cessione di questo oggetto farà in modo che il gruppo:
-* Riceva i L$ pagati all&apos;oggetto
- <usetemplate
- ignoretext="Quando cedi oggetti ai gruppi"
- name="okcancelignore"
- notext="Annulla"
- yestext="Cedi"/>
- </notification>
-
- <notification
-
- name="WebLaunchExternalTarget"
- >
-Apri il tuo browser web per vedere questo contenuto?
- <usetemplate
- ignoretext="Quando apri il browser di sistema per vedere una pagina web"
- name="okcancelignore"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchJoinNow"
- >
-Vuoi andare su www.secondlife.com per gestire il tuo account?
- <usetemplate
- ignoretext="Quando lanci il browser web per gestire il tuo account"
- name="okcancelignore"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchBugReport101"
- >
-Visita la Wiki di [SECOND_LIFE] per imparare a segnalare un bug correttamente.
- <usetemplate
- ignoretext="Quando lanci il browser web per vedere la Wiki di segnalazione bug base"
- name="okcancelignore"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchSecurityIssues"
- >
-Visita la Wiki di [SECOND_LIFE] per i dettagli su come segnalare un problema di sicurezza.
- <usetemplate
- ignoretext="Quando lanci il browser web per vedere la Wiki sui problemi di sicurezza"
- name="okcancelignore"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchQAWiki"
- >
-Visita il controllo di qualità Wiki [SECOND_LIFE].
- <usetemplate
- ignoretext="Quando lanci il browser web per vedere il controllo di qualità Wiki"
- name="okcancelignore"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchPublicIssue"
- >
-Visita il registro pubblico dei problemi di [SECOND_LIFE], dove puoi segnalare bug ed altri problemi.
- <usetemplate
- ignoretext="Quando lanci il browser web per vedere il registro pubblico dei problemi"
- name="okcancelignore"
- notext="Annulla"
- yestext="Vai alla pagina"/>
- </notification>
-
- <notification
-
- name="WebLaunchPublicIssueHelp"
- >
-Visita la Wiki di [SECOND_LIFE] per le informazioni su come usare il registro pubblico dei problemi.
- <usetemplate
- ignoretext="Quando lanci il browser web per vedere la Wiki del registro pubblico dei problemi"
- name="okcancelignore"
- notext="Annulla"
- yestext="Vai alla pagina"/>
- </notification>
-
- <notification
-
- name="WebLaunchSupportWiki"
- >
-Vai al blog ufficiale Linden, per le ultime notizie ed informazioni.
- <usetemplate
- ignoretext="Quando lanci il browser web per vedere il blog"
- name="okcancelignore"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchLSLGuide"
- >
-Vai alla guida dello scripting per l&apos;aiuto sullo scripting?
- <usetemplate
- ignoretext="Quando lanci il browser web per vedere la guida dello scripting"
- name="okcancelignore"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchLSLWiki"
- >
-Vai al portale LSL per aiuto sullo scripting?
- <usetemplate
- ignoretext="Quando lanci il browser web per vedere il portale LSL"
- name="okcancelignore"
- notext="Annulla"
- yestext="Vai alla pagina"/>
- </notification>
-
- <notification
-
- name="ReturnToOwner"
- >
-Confermi di voler restituire gli oggetti selezionati ai loro proprietari? Gli oggetti trasferibili ceduti al gruppo, verranno restituiti ai proprietari precedenti.
-
-*ATTENZIONE* Gli oggetti ceduti non trasferibili verranno cancellati!
- <usetemplate
- ignoretext="Quando restituisci gli oggetti ai loro proprietari"
- name="okcancelignore"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GroupLeaveConfirmMember"
- >
-Sei attualmente un membro del gruppo [GROUP].
-Vuoi lasciare il gruppo?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmKick"
- >
-Vuoi VERAMENTE espellere tutti gli utenti dalla griglia?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="Espelli tutti gli utenti"/>
- </notification>
-
- <notification
-
- name="MuteLinden"
- >
-Mi dispiace, ma non puoi mutare un Linden.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Non è stato possibile mutare l&apos;oggetto per nome"
- name="MuteByNameFailed"
- >
-Hai già mutato questo nome.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="RemoveItemWarn"
- >
-Sebbene consentita, la cancellazione di contenuti può danneggiare l&apos;oggetto.
-Vuoi cancellare quell&apos;elemento?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CantOfferCallingCard"
- >
-Impossibile offrire un biglietto da visita in questo momento. Riprova fra poco.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CantOfferFriendship"
- >
-Impossibile offrire l&apos;amicizia in questo momento. Riprova fra poco.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BusyModeSet"
- >
-Impostata la modalità &apos;Occupato&apos;.
-La chat e i messaggi verranno nascosti. I messaggi IM riceveranno la risposta impostata per la modalità &apos;Occupato&apos;. Tutte le offerte di teleport verranno declinate. Tutte le offerte di inventario andranno nel cestino.
- <usetemplate
- ignoretext="Quando si imposta la modalità occupato"
- name="okignore"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="JoinedTooManyGroupsMember"
- >
-Sei membro di troppi gruppi per poterti unire ad uno nuovo.
-Abbandona almeno un gruppo prima di unirti a questo, oppure declina l&apos;offerta.
-Per abbandonare un gruppo seleziona l&apos;opzione &apos;Gruppi..&apos; dal menu &apos;Modifica&apos;.
-[NAME] ti ha invitato ad unirti ad un gruppo come membro.
-
-[INVITE]
- <usetemplate
- name="okcancelbuttons"
- notext="Declino"
- yestext="Unisciti"/>
- </notification>
-
- <notification
-
- name="KickUser"
- >
-Espelli questo utente con quale messaggio?
- <form name="form">
- <input name="message" type="text">
-Un amministratore ti ha disconnesso.
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annulla"/>
- </form>
- </notification>
-
- <notification
-
- name="KickAllUsers"
- >
-Espelli tutti quelli che sono sulla griglia con quale messaggio?
- <form name="form">
- <input name="message" type="text">
-Un amministratore ti ha disconnesso.
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annulla"/>
- </form>
- </notification>
-
- <notification
-
- name="FreezeUser"
- >
-Immobilizza questo utente con quale messaggio?
- <form name="form">
- <input name="message" type="text">
-Sei stato immobilizzato. Non puoi muoverti o usare la chat. Un amministratore ti contatterà con un messaggio (IM).
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annulla"/>
- </form>
- </notification>
-
- <notification
-
- name="UnFreezeUser"
- >
-Smobilizza questo utente con quale messaggio?
- <form name="form">
- <input name="message" type="text">
-Non sei più immobilizzato.
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annulla"/>
- </form>
- </notification>
-
- <notification
-
- name="OfferTeleport"
- >
-Offri un teleport nel posto dove sei con il seguente messaggio?
- <form name="form">
- <input name="message" type="text">
-Raggiungimi a [REGION]
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annulla"/>
- </form>
- </notification>
-
- <notification
-
- name="OfferTeleportFromGod"
- >
-Vuoi trasportare divinamente l&apos;utente nel posto dove sei?
- <form name="form">
- <input name="message" type="text">
-Raggiungimi in [REGION]
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annulla"/>
- </form>
- </notification>
-
- <notification
-
- name="TeleportFromLandmark"
- >
-Confermi di volerti teleportare?
- <usetemplate
- ignoretext="Quando ti teleporti da un landmark nell&apos;inventario"
- name="okcancelignore"
- notext="Annulla"
- yestext="Teleportati"/>
- </notification>
-
- <notification
-
- label="Manda un messaggio a tutti nella tua proprietà"
- name="MessageEstate"
- >
-Scrivi un annuncio breve che verrà mandato a tutti quelli che sono in questo momento nella tua proprietà.
- <form name="form">
- <input name="message" type="text"/>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annulla"/>
- </form>
- </notification>
-
- <notification
-
- label="Cambia la tipologia della proprietà Linden"
- name="ChangeLindenEstate"
- >
-Stai per cambiare la tipologia della proprietà Linden (mainland, griglia minorenni, orientamento, ecc.).
-
-Questo è ESTREMAMENTE PERICOLOSO perchè può cambiare radicalmente l&apos;esperienza degli utenti. Sulla mainland cambierà migliaia di regioni e produrrà seri problemi ai vari server.
-
-Confermi?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Cambia la tipologia Linden di accesso alla proprietà"
- name="ChangeLindenAccess"
- >
-Stai per cambiare la lista di accesso per una proprietà Linden (mainland, griglia minorenni, orientamento, ecc.).
-
-Questo è PERICOLOSO e dovrebbe essere fatto soltanto per poter lanciare il programma che consente agli oggetti/L$ di essere trasferiti fra griglie diverse.
-Cambierà migliaia di regioni e produrrà seri problemi ai vari server.
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Seleziona la proprietà"
- name="EstateAllowedAgentAdd"
- >
-Aggiungi alla lista di accesso solo per questa proprietà oppure per [ALL_ESTATES]?
- <usetemplate
- canceltext="Annulla"
- name="yesnocancelbuttons"
- notext="Tutte le proprietà"
- yestext="Questa proprietà"/>
- </notification>
-
- <notification
-
- label="Seleziona la proprietà"
- name="EstateAllowedAgentRemove"
- >
-Rimuovi dalla lista di accesso solo per questa proprietà oppure per [ALL_ESTATES]?
- <usetemplate
- canceltext="Annulla"
- name="yesnocancelbuttons"
- notext="Tutte le proprietà"
- yestext="Questa proprietà"/>
- </notification>
-
- <notification
-
- label="Seleziona la proprietà"
- name="EstateAllowedGroupAdd"
- >
-Aggiungi al gruppo di accesso solo per questa proprietà oppure per [ALL_ESTATES]?
- <usetemplate
- canceltext="Annulla"
- name="yesnocancelbuttons"
- notext="Tutte le proprietà"
- yestext="Questa proprietà"/>
- </notification>
-
- <notification
-
- label="Seleziona la proprietà"
- name="EstateAllowedGroupRemove"
- >
-Rimuovi dal gruppo di accesso solo per questa proprietà oppure per [ALL_ESTATES]?
- <usetemplate
- canceltext="Annulla"
- name="yesnocancelbuttons"
- notext="Tutte le proprietà"
- yestext="Questa proprietà"/>
- </notification>
-
- <notification
-
- label="Seleziona la proprietà"
- name="EstateBannedAgentAdd"
- >
-Rifiuta l&apos;accesso solo a questa proprietà oppure per [ALL_ESTATES]?
- <usetemplate
- canceltext="Annulla"
- name="yesnocancelbuttons"
- notext="Tutte le proprietà"
- yestext="Questa proprietà"/>
- </notification>
-
- <notification
-
- label="Seleziona la proprietà"
- name="EstateBannedAgentRemove"
- >
-Rimuovi questo residente dalla lista dei residenti bloccati nell&apos;accesso solo a questa proprietà oppure per [ALL_ESTATES]?
- <usetemplate
- canceltext="Annulla"
- name="yesnocancelbuttons"
- notext="Tutte le proprietà"
- yestext="Questa proprietà"/>
- </notification>
-
- <notification
-
- label="Seleziona la proprietà"
- name="EstateManagerAdd"
- >
-Aggiungi come gestore della proprietà solo a questa proprietà oppure per [ALL_ESTATES]?
- <usetemplate
- canceltext="Annulla"
- name="yesnocancelbuttons"
- notext="Tutte le proprietà"
- yestext="Questa proprietà"/>
- </notification>
-
- <notification
-
- label="Seleziona la proprietà"
- name="EstateManagerRemove"
- >
-Rimuovi come gestore della proprietà solo per questa proprietà oppure per [ALL_ESTATES]?
- <usetemplate
- canceltext="Annulla"
- name="yesnocancelbuttons"
- notext="Tutte le proprietà"
- yestext="Questa proprietà"/>
- </notification>
-
- <notification
-
- label="Conferma espulsione"
- name="EstateKickUser"
- >
-Espelli [EVIL_USER] da questa proprietà?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="EstateChangeCovenant"
- >
-Confermi di voler cambiare il Regolamento della proprietà?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ProblemImportingEstateCovenant"
- >
-Problemi nell&apos;importazione del regolamento della proprietà.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <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="ProblemAddingEstateGeneric"
- >
-Si sono riscontrati problemi nell&apos;aggiunta a questo elenco della proprietà. Una o più proprietà potrebbe avere una lista piena.
- </notification>
-
- <notification
-
- name="UnableToLoadNotecard"
- >
-Impossibile caricare la notecard in questo momento.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="NotAllowedToViewNotecard"
- >
-Permessi insufficienti per vedere la notecard associata con l&apos;asset ID richiesto.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="MissingNotecardAssetID"
- >
-L&apos;asset ID della notecard è mancante dal database.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="PublishClassified"
- >
-Ricorda: le tariffe per gli annunci non sono rimborsabili.
-
-Pubblica questo annuncio adesso per [AMOUNT]L$?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
-
-
-
-
- <notification
-
- label="Conferma il riavvio"
- name="ConfirmRestart"
- >
-Vuoi veramente far ripartire la regione in 2 minuti?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Manda un messaggio a tutti in questa regione"
- name="MessageRegion"
- >
-Scrivi un breve annuncio che verrà mandato a tutti in questa regione.
- <form name="form">
- <input name="message" type="text"/>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annulla"/>
- </form>
- </notification>
-
- <notification
-
- label="Blocca il terraforming"
- name="HelpRegionBlockTerraform"
- >
-Se questa casella è selezionata, i proprietari dei terreni non potranno terraformare il loro terreno indipendentemente dall&apos;impostazione locale di &apos;Modifica Terreno&apos;.
-
-Impostazione base: spenta
- </notification>
-
- <notification
-
- label="Blocca il volo"
- name="HelpRegionBlockFly"
- >
-Se questa casella è selezionata, le persone non potranno volare in questa regione indipendentemente dall&apos;impostazione locale di &apos;Volo&apos;.
-
-Impostazione base: spenta
- </notification>
-
- <notification
-
- label="Consenti Danni"
- name="HelpRegionAllowDamage"
- >
-Se questa casella è selezionata, il sistema del livello vitale su tutti i terreni sarà abilitato indipendentemente dalle impostazioni locali. Se la casella è lasciata vuota i proprietari dei singoli terreni individuali potranno comunque essere in grado di attivare il sistema di livello vitale sulla loro terra.
-
-Impostazione base: spenta
- </notification>
-
- <notification
-
- label="Limite avatar"
- name="HelpRegionAgentLimit"
- >
-Imposta il massimo numero di avatar consentito in questa regione.
-Le prestazioni possono variare a seconda del numero totale di avatar presenti.
-
-Impostazione base: 40
- </notification>
-
- <notification
-
- label="Coefficiente bonus oggetti"
- name="HelpRegionObjectBonus"
- >
-Il coefficiente bonus oggetti è un moltiplicatore per i prim consentiti su ogni terreno.
-Si può specificare da 1 a 10. Impostandolo ad 1, ogni terreno di 512m² consentià 117 oggetti. Impostandolo a 2, ogni terreno di 512m² ne consentirà 234 o il doppio, e così via. Il numero complessivo di oggetti consentiti per una regione rimane comunque 15.000 indipendentemente dal coefficiente di bonus.
-Una volta impostato, fai attenzione che abbassare il bonus può causare la cancellazione o restituzione di oggetti.
-
-Impostazione base: 1.0
- </notification>
-
-
-
- <notification
-
- label="Limita gli urti"
- name="HelpRegionRestrictPushObject"
- >
-Questa casella limita per tutta la regione i permessi di urto (spinte).
-Se abilitata, i residenti possono essere urtati/spinti solo da sè stessi o dal proprietario del terreno.
-(La spinta si riferisce all&apos;uso della funzione LSL llPushObject())
-
-Impostazione base: spenta
- </notification>
-
- <notification
-
- label="Unisci/Dividi terreno"
- name="HelpParcelChanges"
- >
-Questa casella imposta se i terreni non posseduti dal possessore della proprietà immobiliare possano essere unite o divise.
-Se questa opzione è deselezionata:
- * Soltanto i possessori o i manager della proprietà immobiliare possono unire o dividere i terreni.
- * Possono solo unire o dividere terreni che appartengono al proprietario, o ad un gruppo dove hanno poteri appropriati.
-Se questa opzione è selezionata:
- * Tutti i proprietari del terreno possono unire o dividere i terreni che possiedono.
- * Per i terreni di proprietà del gruppo, solo coloro con poteri appropriati possono unire o dividere il terreno.
-
-Impostazione base: Selezionata
- </notification>
-
- <notification
-
- label="Non mostrare in ricerca"
- name="HelpRegionSearch"
- >
-Selezionare questa casella bloccherà i proprietari dei terreni dal mettere in lista i loro terreni nella ricerca
-
-Impostazione base: spenta
- </notification>
-
- <notification
-
- label="Cambiato il contenuto Mature"
- name="RegionMaturityChange"
- >
-La classificazione del contenuto Mature di questa regione è stata aggiornata.
-Può essere necessario un po&apos; di tempo prima che questo cambiamento sia visibile sulle mappe.
- </notification>
-
- <notification
-
- label="Rivendita dei Terreni"
- name="HelpRegionLandResell"
- >
-I possessori e i manager della proprietà immobiliare possono vendere tutte le terre di cui sono proprietari.
-Se questa opzione è lasciata deselezionata i compratori non potranno rivendere le proprie terre in questa regione.
-Se questa opzione è selezionato i compratori possono rivendere i loro terreni in questa regione.
-
-Impostazione base: Non consentire
- </notification>
-
- <notification
-
- label="Disabilita gli script"
- name="HelpRegionDisableScripts"
- >
-Se le prestazioni di una sim sono basse, probabilmente è colpa di uno script. Apri la &apos;barra delle statistiche&apos; (Ctrl-Shift-1). Controlla il FPS della fisica del simulatore.
-Se è più basso di 45, apri il pannello &quot;Tempi&quot; collocato ln fondo alla &apos;barra delle statistiche&apos;
-Se il tempo per gli script è di 25 ms o più alto, clicca sul bottone &apos;individua script pesanti&apos;. Ti verrà dato il nome e l&apos;ubicazione degli script che probabilmente causano una cattiva prestazione.
-
-Selezionare la casella della disabilitazione script e, premendo il bottone applica, disabilitare temporaneamente tutti gli script in questa regione. Questo è necessario per poterti recare verso l&apos;ubicazione dello script definito nell&apos;elenco come &apos;script più pesante&apos;. Una volta arrivato all&apos;oggetto, studia lo script per capire se è quello che sta causando il problema. Potresti dover contattare il proprietario dello script oppure cancellare o restituire l&apos;oggetto.
-Disabilita la casella e quindi premere applica per riattivare gli script nella regione.
-
-Impostazione base: spento
- </notification>
-
- <notification
-
- label="Disabilita le collisioni"
- name="HelpRegionDisableCollisions"
- >
-Quando le prestazioni della sim sono basse, può darsi che la colpa sia di oggetti fisici.
-Apri la &apos;barra delle statistiche&apos; (Ctrl-Shift-1).
-Controlla il FPS della fisica del simulatore.
-Se è più basso di 45, apri il pannello &quot;Tempi&quot; collocato in fondo alla &apos;barra delle statistiche&apos;.
-Se il tempo della sim (fisica) risulta 20 ms o più, clicca sul bottone &quot;mostra gli oggetti che collidono di più&quot;.
-Ti verranno dati il nome e l&apos;ubicazione degli oggetti fisici che possono causare una cattiva prestazione.
-
-Selezionare la casella disabilita collisioni e, premendo il bottone applica, disabilitare temporaneamente le collisioni oggetto-oggetto. Questo è necessario per poterti recare verso l&apos;ubicazione dell&apos;oggetto che sta collidendo eccessivamente.
-Una volta arrivato sul posto, studia l&apos;oggetto - sta collidendo costantemente con altri oggetti? Potresti dover contattare il proprietario dell&apos;oggetto oppure cancellare o restituire l&apos;oggetto.
-Disabilitare la casella disabilita collisioni e quindi premere applica per riattivare le collisioni nella regione.
-
-Impostazione base: spento
- </notification>
-
- <notification
-
- label="Disabilita la fisica"
- name="HelpRegionDisablePhysics"
- >
-Disabilitare la fisica è simile alla disabilitazione delle collisioni eccetto che tutte le simulazioni fisiche sono disabilitate. Questo significa che non solo gli oggetti cessano di collidere, ma anche gli avatar non riusciranno più a muoversi.
-
-Questo dovrebbe essere utilizzato solo se il &apos;disabilita collisioni&apos; non restituisce abbastanza prestazioni alla regione dopo aver cercato un problema fisico o un oggetto che collide eccessivamente.
-
-Fai attenzione a riabilitare la fisica quando hai terminato, altrimenti nessun avatar riuscirà a muoversi.
-
-Impostazione base: spento
- </notification>
-
- <notification
-
- label="Oggetti con maggiori collisioni"
- name="HelpRegionTopColliders"
- >
-Mostra una lista di oggetti che sperimentano la maggior quantità di potenziali collisioni oggetto-oggetto. Questi oggetti possono abbassare le prestazioni.
-Seleziona Vista &gt; Barra Statistiche e guarda sotto Simulatore &gt; Tempi &gt; Tempo Sim (fisica) per controllare se un tempo di più di 20 ms è impiegato nella fisica.
- </notification>
-
- <notification
-
- label="Script pesanti"
- name="HelpRegionTopScripts"
- >
-Mostra una lista degli oggetti che occupano la maggior parte del loro tempo eseguendo script LSL. Questi oggetti possono abbassare le prestazioni.
-Seleziona Vista &gt; Barra statistiche e guarda sotto Simulatore &gt; Tempi &gt; Tempo Script per controllare se un tempo di più di 20 ms è impiegato per gli script.
- </notification>
-
- <notification
-
- label="Fai ripartire la regione"
- name="HelpRegionRestart"
- >
-Fai ripartire i processi del server che gestisce questa regione dopo un avvertimento di due minuti. Tutti i residenti nella regione verranno scollegati.
-La regione salverà i suoi dati e dovrebbe tornare attiva entro 90 secondi.
-
-Far ripartire la regione non risolverà i problemi maggiori delle prestazioni e dovrebbe essere fatta solo se necessario.
- </notification>
-
- <notification
-
- label="Altezza dell&apos;acqua"
- name="HelpRegionWaterHeight"
- >
-Questa è l&apos;altezza in metri del mare dove deve apparire l&apos;acqua.
-Se questa impostazione è diversa da 20 e l&apos;acqua circonda il confine di terra o acqua della tua sim, vedrai una discontinuità fra la sim e il mare.
-
-Impostazione base: 20
- </notification>
-
- <notification
-
- label="Sollevamento terreno"
- name="HelpRegionTerrainRaise"
- >
-Questa è l&apos;ulteriore altezza in metri entro la quale i proprietari di appezzamenti possono alzare il loro terreno partendo dall&apos;altezza preimpostata.
-
-Impostazione base: 4
- </notification>
-
- <notification
-
- label="Abbassamento terreno"
- name="HelpRegionTerrainLower"
- >
-Questa è l&apos;ulteriore altezza in metri entro la quale i proprietari di appezzamenti possono abbassare il loro terreno partendo dall&apos;altezza preimpostata.
-
-Impostazione base: -4
- </notification>
-
- <notification
-
- label="Importa terreno RAW"
- name="HelpRegionUploadRaw"
- >
-Questo bottone importa un file .RAW nella regione in cui sei.
-Il file deve avere le corrette dimensioni (RGB, 256x256) e 13 canali. Il modo migliore per creare un file di terreno è di scaricare un file RAW esistente. Un buon primo passo è quello di modificare il canale del rosso (altezza della terra), ed importarlo.
-
-L&apos;importazione può impiegare fino a 45 secondi. Nota che importare un file del terreno *non muoverà* gli oggetti che sono sulla sim, soltanto il terreno stesso e i permessi associati agli appezzamenti.
-Questo potrebbe far sì che gli oggetti vadano sotto terra.
-
-Per maggiori informazioni sulle modifiche dei campi dell&apos;altezza della regione, consulta il tasto F1 Aiuto.
- </notification>
-
- <notification
-
- label="Scarica il terreno RAW"
- name="HelpRegionDownloadRaw"
- >
-Questo bottone scarica un file che contiene i dati dell&apos;altezza, delle dimensioni, dello stato di vendita del terreno e di alcuni permessi degli appezzamenti di questa regione.
-Aprendo questo file in un programma come Photoshop devi specificare le dimensioni che sono: RGB, 256x256 con 13 channels. Questo file del terreno non può essere aperto in nessun altro modo.
-
-Per maggiori informazioni sulle modifiche dei campi dell&apos;altezza della regione, consulta il tasto F1 Aiuto.
- </notification>
-
- <notification
-
- label="Usa il sole della proprietà"
- name="HelpRegionUseEstateSun"
- >
-Questa casella fa si che la posizione del sole in questa regione coincida con la posizione del sole nel resto della proprietà.
-
-Impostazione base: attivo
- </notification>
-
- <notification
-
- label="Sole fisso"
- name="HelpRegionFixedSun"
- >
-Questa casella imposta la posizione del sole ad un valore definito nel cursore delle fasi e fa in modo che il sole non si muova.
-
-Impostazione base: spento
- </notification>
-
- <notification
-
- label="Crea il Terreno"
- name="HelpRegionBakeTerrain"
- >
-Questo bottone salva l&apos;attuale forma del terreno come impostazione base per la regione. Una volta creato, il terreno può riassumere la forma base ogni volta che che tu o altri dovessero usare l&apos;opzione &apos;Reimposta&apos; della modifica del terreno.
-Il terreno creato è anche il punto intermedio dei limiti di sollevamento ed abbassamento terreno.
- </notification>
-
- <notification
-
- label="Manager della proprietà"
- name="HelpEstateEstateManager"
- >
-Un manager della proprietà è un residente a cui avete delegato il controllo di una regione o di una proprietà. Un manager della proprietà può cambiare qualunque impostazione in queste finestre, eccezion fatta per l&apos;importazione, l&apos;esportazione e la creazione del terreno. In particolare, possono consentire o bloccare l&apos;accesso ai residenti nella tua proprietà.
-
-I manager della proprietà possono essere soltanto aggiunti o rimossi dal possessore della proprietà e non possono farlo loro l&apos;un l&apos;altro. Scegli solo residenti di cui ti fidi come manager della proprietà, dato che tu sarai responsabile per le loro azioni.
- </notification>
-
- <notification
-
- label="Usa l&apos;ora globale"
- name="HelpEstateUseGlobalTime"
- >
-Questa casella fa si che il sole nella vostra proprietà segua la stessa posizione della mainland Linden.
-
-Impostazione base: on
- </notification>
-
- <notification
-
- label="Sole Fisso"
- name="HelpEstateFixedSun"
- >
-Questa casella imposta la posizione del sole su una posizione del cursore di Fase del sole e lo blocca in quella posizione.
- </notification>
-
- <notification
-
- label="Accesso Pubblico"
- name="HelpEstateExternallyVisible"
- >
-Questa casella permette ai residenti che sono su altre regioni, di entrare in questa proprietà anche se non sono nella lista di accesso.
-
-Impostazione base: attivo
- </notification>
-
- <notification
-
- label="Consenti teleport diretto"
- name="HelpEstateAllowDirectTeleport"
- >
-Se selezionato, consente ai residenti di teleportarsi direttamente in qualunque punto di questa proprietà.
-Se deselezionato, i residenti si teleporteranno al più vicino snodo.
-
-Impostazione base: spento
- </notification>
-
- <notification
-
- label="Consenti accesso"
- name="HelpEstateAllowResident"
- >
-L&apos;accesso a questa proprietà verrà limitata solo ai residenti ed ai gruppi elencati più sotto. Questa impostazione è disponibile solo se l&apos;accesso pubblico è deselezionato.
- </notification>
-
- <notification
-
- label="Consenti Accesso di gruppo"
- name="HelpEstateAllowGroup"
- >
-L&apos;accesso a questa proprietà verrà limitata solo ai gruppi qui elencati e ai residenti loro appartenenti. Questa impostazione è disponibile soltanto se l&apos;accesso pubblico è deselezionato.
- </notification>
-
- <notification
-
- label="Indirizzo di posta email per le segnalazioni di abuso"
- name="HelpEstateAbuseEmailAddress"
- >
-Impostando qui un indirizzo di posta elettronica valido, farà si che le segnalazioni di abuso, fatte su questa proprietà, siano mandate a quell&apos;indirizzo.
-Lasciandolo vuoto causerà l&apos;invio delle segnalazioni di abuso soltanto ai Linden Lab.
- </notification>
-
- <notification
-
- label="Rifiuta accesso"
- name="HelpEstateBanResident"
- >
-I residenti su questa lista non saranno accettati nella tua proprietà, indipendentemente da qualunque altra impostazione.
- </notification>
-
- <notification
-
- label="Consenti la voice chat"
- name="HelpEstateVoiceChat"
- >
-I terreni di questa proprietà potranno avere i loro canali voce nei quali i residenti potranno parlare con gli avatar vicini.
-
-Impostazione base: spento
- </notification>
-
- <notification
-
- label="Versione voice non compatibile"
- name="VoiceVersionMismatch"
- >
-Questa versione di Second Life non è compatibile con le impostazioni di voice chat di questa regione. Per poter fare funzionare correttamente la chat voce devi aggiornare Second Life.
- </notification>
-
- <notification
-
- label="Regolamento della proprietà"
- name="HelpEstateCovenant"
- >
-Impostare un regolamento della proprietà ti consente di vendere i terreni all&apos;interno di quella proprietà. Se non imposti un regolamento, non puoi vendere i terreni. La notecard per il tuo regolamente può essere vuota se non desideri applicare nessuna regola o informare i compratori di cose inerenti la terra, prima dell&apos;acquisto.
-
-Un regolamento può essere usato per comunicare regole, linee guida, informazioni culturali o semplicemente ciò che ti aspetti dal possibile compratore. Questo può includere impostazioni in zone, regolamenti architettonici, opzioni di pagamento o qualunque altra informazione che ritieni importante che il nuovo proprietario debba aver visto e accettato prima dell&apos;acquisto.
-
-Il compratore deve accettare il regolamento selezionando la casella appropriata per poter completare l&apos;acquisto. I regolamenti delle proprietà sono sempre visibili nella finestra &quot;Informazioni sul terreno&quot; in tutti gli appezzamenti in cui è stato impostato.
- </notification>
-
- <notification
-
- label="Impossibile comprare oggetti"
- name="BuyObjectOneOwner"
- >
-Impossibile comprare oggetti da proprietari diversi nello stesso momento.
-Seleziona solo un oggetto e riprova.
- </notification>
-
- <notification
-
- label="Impossibile comprare il contenuto"
- name="BuyContentsOneOnly"
- >
-Impossibile comprare il contenuto di più di un oggetto per volta.
-Seleziona solo un oggetto e riprova.
- </notification>
-
- <notification
-
- label="Impossibile comprare il contenuto"
- name="BuyContentsOneOwner"
- >
-Impossibile comprare oggetti da proprietari differenti nello stesso momento.
-Scegli un solo oggetto e riprova.
- </notification>
-
- <notification
-
- name="BuyOriginal"
- >
-Compra l&apos;oggetto originale da [OWNER] per [PRICE]L$?
-Diventerai proprietario di questo oggetto.
-Sarai in grado di:
- Modificare: [MODIFYPERM]
- Copiare: [COPYPERM]
- Rivendere o regalare: [RESELLPERM]
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyOriginalNoOwner"
- >
-Compra l&apos;oggetto originale per [PRICE]L$?
-Diventerai proprietario di questo oggetto.
-Sarai in grado di:
- Modificare: [MODIFYPERM]
- Copiare: [COPYPERM]
- Rivendere o regalare: [RESELLPERM]
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyCopy"
- >
-Compra una copia da [OWNER] per [PRICE]L$?
-L&apos;oggetto verrà copiato nel tuo inventario.
-Sarai in grado di:
- Modificare: [MODIFYPERM]
- Copiare: [COPYPERM]
- Rivendere o regalare: [RESELLPERM]
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyCopyNoOwner"
- >
-Compra una copia per [PRICE]L$?
-L&apos;oggetto verrà copiato nel tuo inventario.
-Sarai in grado di:
- Modificare: [MODIFYPERM]
- Copiare: [COPYPERM]
- Rivendere o regalare: [RESELLPERM]
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyContents"
- >
-Compra il contenuto da [OWNER] per [PRICE]L$?
-Il contenuto verrà copiato nel tuo inventario.
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyContentsNoOwner"
- >
-Compra il contenuto per [PRICE]L$?
-Il contenuto verrà copiato nel tuo inventario.
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmPurchase"
- >
-Questa transazione farà:
-[ACTION]
-
-Confermi di voler procedere all&apos;acquisto?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmPurchasePassword"
- type="password">
-Questa transazione farà:
-[ACTION]
-
-Confermi di voler procedere all&apos;acquisto?
-Ridigita la tua password e premi OK.
- <form name="form">
- <input
- name="message"
- type="password"/>
- <button
-
-
- name="ConfirmPurchase"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annulla"/>
- </form>
- </notification>
-
- <notification
-
- name="SetPickLocation"
- >
-Nota:
-Hai aggiornato l&apos;ubicazione di questo preferito ma gli altri dettagli conserveranno il loro valore originale.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="MoveInventoryFromObject"
- >
-Hai selezionato elementi dall&apos;inventario &apos;non copiabili&apos;.
-Questi elementi verranno trasferiti nel tuo inventario, ma non copiati.
-
-Trasferisci gli elementi nell&apos;inventario?
- <usetemplate
- ignoretext="Quando si trasferiscono, dagli oggetti all&apos;inventario, elementi non copiabili"
- name="okcancelignore"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="MoveInventoryFromScriptedObject"
- >
-Hai selezionato elementi dell&apos;inventario non copiabili. Questi elementi verranno trasferiti nel tuo inventario, non verranno copiati.
-Dato che questo oggetto è scriptato, il trasferimento di questi elementi nel tuo inventario potrebbe causare un malfunzionamento degli script.
-
-Trasferisci gli elementi nell&apos;inventario?
- <usetemplate
- ignoretext="Quando si trasferiscono oggetti scriptati non copiabili nell&apos;inventario"
- name="okcancelignore"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ClickActionNotPayable"
- >
-Attenzione: L&apos;azione di pagamento automatico al click è stata impostata, ma funzionerà solo se aggiungi uno script con un evento money().
- <form name="form">
- <ignore name="ignore"
- text="Quando imposti il &quot;Pagamento&quot; di oggetti senza l&apos;evento money()"/>
- </form>
- </notification>
-
- <notification
-
- name="OpenObjectCannotCopy"
- >
-Non ci sono elementi in questo oggetto che tu possa copiare.
- </notification>
-
- <notification
-
- name="WebLaunchAccountHistory"
- >
-Vai nel sito web di Second Life per vedere il tuo estratto conto?
- <usetemplate
- ignoretext="Quando carichi la pagina web dell&apos;estratto conto"
- name="okcancelignore"
- notext="Annulla"
- yestext="Vai alla pagina"/>
- </notification>
-
- <notification
-
- name="ClickOpenF1Help"
- >
-Visita il sito di supporto di Second Life?
- <usetemplate
- ignoretext="Quando visiti il sito del supporto di Second Life."
- name="okcancelignore"
- notext="Annulla"
- yestext="Vai"/>
- </notification>
-
- <notification
-
- name="ConfirmQuit"
- >
-Confermi di voler uscire?
- <usetemplate
- ignoretext="Quando esci da Second Life."
- name="okcancelignore"
- notext="Continua"
- yestext="Esci"/>
- </notification>
-
- <notification
-
- name="HelpReportAbuseEmailLL"
- >
-Usa questo strumento per segnalare violazioni ai Termini di Servizio e agli standard della Comunità. Vedi:
-
-http://secondlife.com/corporate/tos.php
-http://secondlife.com/corporate/cs.php
-
-Tutte gli abusi ai Termini di Servizio e agli Standard della Comunità segnalati, sono indagati e risolti. Puoi controllare la risoluzione degli abusi visitando la pagina delle Risoluzioni degli Incidenti:
-
-http://secondlife.com/support/incidentreport.php
- </notification>
-
- <notification
-
- name="HelpReportAbuseEmailEO"
- >
-IMPORTANTE: questo rapporto verrà inviato al proprietario della regione dove sei in questo momento e non ai Linden Lab.
-
-Come servizio ai residenti e ai visitatori, il proprietario della regione in cui ti trovi, ha scelto di ricevere e risolvere le segnalazioni di abuso che nascono in questa regione. Il Linden Lab non investiga sulle segnalazione inviate da qui.
-
-Il proprietario della regione risolverà le segnalazione basandosi sulle regole locali di questa regione così come sono indicate dal regolamento della proprietà.
-(Puoi vedere il regolamento andando sul menu Mondo e selezionando Informazioni sul terreno.)
-
-La risoluzione di questa segnalazione verrà applicata solo in questa regione; L&apos;accesso dei residenti ad altre aree di Second Life non verrà influenzato dal risultato di questa segnalazione. Soltanto i Linden Lab possono restringere l&apos;accesso alla totalità di Second Life.
- </notification>
-
- <notification
-
- name="HelpReportBug"
- >
-Usa questo strumento per segnalare *soltanto* caratteristiche tecniche che non funzionano come descitto o atteso, fornisci quanti più dettagli è possibile, Puoi rispondere all&apos;email automatica aggiungendo ulteriori dettagli sulla tua segnalazione.
-
-Tutte le segnalazioni di bug sono investigate e valutate. Non vengono inviate risposte via email.
-
-Se hai difficoltà tecniche contatta il supporto:
-
-http://secondlife.com/community/support.php
-
-Nota: segnalazioni incomplete non verranno prese in considerazione
- </notification>
-
- <notification
-
- name="HelpReportAbuseSelectCategory"
- >
-Scegli una categoria per questa segnalazione di abuso.
-Scegliere una categoria, ci aiuta a gestire ed elaborare le segnalazioni di abuso.
- </notification>
-
- <notification
-
- name="HelpReportBugSelectCategory"
- >
-Scegli una categoria per questo bug.
-Scegliere una categoria, ci aiuta a gestire ed elaborare le segnalazioni di bug.
- </notification>
-
- <notification
-
- name="HelpReportAbuseAbuserNameEmpty"
- >
-Introduci il nome di chi abusa.
-Introducendo un valore accurato, ci aiuti a gestire ed elaborare le segnalazioni di abuso.
- </notification>
-
- <notification
-
- name="HelpReportAbuseAbuserLocationEmpty"
- >
-Inserisci il luogo dove l&apos;abuso è avvenuto.
-Introducendo un valore accurato, ci aiuti a gestire ed elaborare le segnalazioni di abuso.
- </notification>
-
- <notification
-
- name="HelpReportAbuseSummaryEmpty"
- >
-Inserisci un yiyolo descrittivo dell&apos;abuso che è avvenuto.
-Introducendo un titolo descrittivo accurato, ci aiuti a gestire ed elaborare le segnalazioni di abuso.
- </notification>
-
- <notification
-
- name="HelpReportBugSummaryEmpty"
- >
-Introduci una descrizione del bug.
-Introducendo una descrizione accurata ci aiuti a gestire ed elaborare le segnalazioni di bug.
- </notification>
-
- <notification
-
- name="HelpReportAbuseDetailsEmpty"
- >
-Inserisci una descrizione dettagliata dell&apos;abuso che è avvenuto.
-Devi essere il più specifico possibile, includendo i nomi e i dettagli dell&apos;incidente che stai segnalando.
-Inserendo una descrizione accurata ci aiuti a gestire ed elaborare le segnalazioni di abuso.
- </notification>
-
- <notification
-
- name="HelpReportBugDetailsEmpty"
- >
-Inserisci una descrizione dettagliata del bug.
-Devi essere il pià specifico possibile, includendo se possibil i passi per riprodurre il problema.
-Inserendo una descrizione accurata, ci aiuti a gestire ed elaborare le segnalazioni di bug.
- </notification>
-
- <notification
-
- name="HelpReportAbuseContainsCopyright"
- >
-Caro residente,
-
-Sembra che stai segnalando un problema di furto di proprietà intellettuale. Cerca di essere sicuro che la tua segnalazione stia riportando correttamente:
-
-(1) Il processo di abuso. Puoi sottomettere una segnalazione di abuso se ritieni che un residente stia sfruttando il sistema di permessi di Second Life, per esempio, usando CopyBot oppure simili strumenti di copia, per rubare i diritti della proprietà intellettuale. L&apos;ufficio Abusi investigherà e deciderà delle azioni disciplinari adeguate per comportamenti che violano gli standard di comunità di Second Life o i Termini di Servizio. Si tenga però presente che l&apos;ufficio Abusi non gestisce e non risponde alle richieste di rimozione di contenuto da Second Life.
-
-(2) Il processo di rimozione DMCA o processo di rimozione dei contenuti. Per richiedere la rimozione di contenuto da Second Life, DEVI sottomettere una notifica valida di furto intellettuale come definito nella nostra politica DMCA che trovi a http://secondlife.com/corporate/dmca.php.
-
-Se desideri egualmente continuare con il processo di abuso, chiudi questa finestra e termina di compilare la segnalazione. Potresti dover selezionare la categoria specifica &apos;CopyBot o Sfruttamento permessi&apos;.
-
-Grazie,
-La Linden Lab
- </notification>
-
- <notification
-
- name="FailedRequirementsCheck"
- >
-I seguenti componenti obbligatori sono mancanti da [FLOATER]:
-[COMPONENTS]
- </notification>
-
- <notification
-
- label="Sostituisci gli oggetti indossati"
- name="ReplaceAttachment"
- >
-C&apos;è già un oggetto indossato in questo punto del corpo.
-Vuoi sostituirlo con l&apos;oggetto selezionato?
- <form name="form">
- <ignore name="ignore"
- save_option="true"
- text="Quando avviene la sostituzione di un oggetto indossato già esistente"/>
- <button
-
-
-
- name="Yes"
- text="OK"/>
- <button
-
-
- name="No"
- text="Annulla"/>
- </form>
- </notification>
-
- <notification
-
- label="Avviso di &apos;Occupato&apos;"
- name="BusyModePay"
- >
-Sei in modalità &apos;Occupato&apos;, ciò significa che non riceverai ciò che attendi per questo pagamento.
-
-Desideri abbandonare la modalità &apos;Occupato&apos; prima di completare questa transazione?
- <form name="form">
- <ignore name="ignore"
- save_option="true"
- text="Quando avviene il pagamento di una persona o oggetto in modalità &apos;Occupato&apos;"/>
- <button
-
-
-
- name="Yes"
- text="OK"/>
- <button
-
-
- name="No"
- text="Abbandona"/>
- </form>
- </notification>
-
- <notification
-
- name="ConfirmEmptyTrash"
- >
-Confermi di volere permanentemente rimuovere il contenuto del tuo cartella Cestino?
- <usetemplate
- ignoretext="Quando svuoti la cartella cestino del tuo inventario"
- name="okcancelignore"
- notext="Annulla"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmClearBrowserCache"
- >
-Confermi di voler pulire la cache del tuo browser?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="Si"/>
- </notification>
-
- <notification
-
- name="ConfirmClearCookies"
- >
-Confermi di volere cancellare i tuoi cookie?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="Si"/>
- </notification>
-
- <notification
-
- name="ConfirmClearMediaUrlList"
- >
-Confermi di voler cancellare la lista degli URL salvati?
- <usetemplate
- name="okcancelbuttons"
- notext="Annulla"
- yestext="Si"/>
- </notification>
-
- <notification
-
- name="ConfirmEmptyLostAndFound"
- >
-Confermi di volere rimuovere permanentemente il contenuto della tua cartalla Persi e ritrovati?
- <usetemplate
- ignoretext="Quando cancelli la cartella persi e ritrovati del tuo inventario"
- name="okcancelignore"
- notext="No"
- yestext="Si"/>
- </notification>
-
- <notification
-
- name="CopySLURL"
- >
-Lo SLURL seguente è stato copiato nei tuoi appunti:
- [SLURL]
-
-Lo puoi inserire in una pagina web per dare ad altri modo di accedere a questo posto o puoi provare a copiarla nella barra indirizzi del tuo browser web.
- <form name="form">
- <ignore name="ignore"
- text="Quando copi lo SLURL negli appunti"/>
- </form>
- </notification>
-
- <notification
-
- name="GraphicsPreferencesHelp"
- >
-Questo pannello controlla la dimensione delle finestre, la risoluzione e la qualità della grafica del tuo browser. Le Preferenze &gt; Grafica consente di scegliere fra quattro livelli grafici: Basso, Medio, Alto, e Ultra. Puoi anche modificare le impostazioni grafiche selezionando la casella Personalizza e manipolando le seguenti impostazioni:
-
-Effetti grafici: Abilita o disabilita vari tipi di effetti grafici.
-
-Oggetti riflettenti: Imposta le tipologie di oggetti riflessi dall&apos;acqua.
-
-Visualizzazione Avatar: Imposta le opzioni che influenzano come il client visualizza gli avatar.
-
-Campo visivo: Imposta quanto lontano dalla tua posizione gli oggetti vengono visualizzati nella scena.
-
-Massima quantità di particelle: Imposta il valore massimo di particelle che puoi vedere contemporaneamente sullo schermo.
-
-Qualità post elaborazione: Imposta la risoluzione con il quale il bagliore è visualizzato.
-
-Dettaglio della retinatura: Imposta il dettaglio o il numero di triangoli che sono usati per visualizzare determinati oggetti. Un valore più alto impiega più tempo ad essere visualizzato, ma rende questi oggetti più dettagliati.
-
-Dettagli dell&apos;illuminazione: Seleziona quali tipi di luce vuoi visualizzare.
-
-Dettaglio del terreno: Imposta la quantità di dettagli che vuoi vedere per le texture del terreno.
- </notification>
-
- <notification
-
- name="WLSavePresetAlert"
- >
-Vuoi sovrascrivere le preimpostazioni salvate?
- <usetemplate
- name="okcancelbuttons"
- notext="No"
- yestext="Si"/>
- </notification>
-
- <notification
-
- name="WLDeletePresetAlert"
- >
-Vuoi cancellare [SKY]?
- <usetemplate
- name="okcancelbuttons"
- notext="No"
- yestext="Si"/>
- </notification>
-
- <notification
-
- name="WLNoEditDefault"
- >
-Non puoi modificare o cancellare una preimpostazione di fabbrica.
- </notification>
-
- <notification
-
- name="WLMissingSky"
- >
-Questo file di ciclo giornaliero fa riferimento ad un file di cielo mancante: [SKY].
- </notification>
-
- <notification
-
- name="PPSaveEffectAlert"
- >
-Effetto di post elaborazione già presente. Vuoi sovrascrivere?
- <usetemplate
- name="okcancelbuttons"
- notext="No"
- yestext="Si"/>
- </notification>
-
- <notification
-
- name="HelpEditSky"
- >
-Modifica i cursori di WindLight per creare e savare un insieme di cieli.
- </notification>
-
- <notification
-
- name="HelpEditDayCycle"
- >
-Scegli quale cielo impostare per ciclo giornaliero.
- </notification>
-
- <notification
-
- name="EnvSettingsHelpButton"
- >
-Queste impostazioni modificano il modo in cui l&apos;ambiente viene visto localmente sul tuo computer. La tua scheda grafica deve supportare gli effetti atmosferici per poter accedere a tutte le impostazioni.
-
-Modifica il cursore &quot;Ora del Giorno &quot; per cambiare la fase giornaliera locale sul client.
-
-Modifica il cursore &quot;Intensità delle nuvole&quot; per controllare la quantità di nuvole che coprono il cielo.
-
-Scegli un colore nella tavolozza colori per il &quot;colore dell&apos;acqua&quot; per cambiare il colore dell&apos;acqua.
-
-Modifica il cursore &quot;Nebbiosità dell&apos;acqua&quot; per controllare quanto densa è la nebbia sott&apos;acqua.
-
-Clicca &quot;Usa l&apos;ora della proprietà&quot; per sincronizzare il tempo del giorno con l&apos;ora del giorno della regione e collegarle stabilmente.
-
-Clicca &quot;Cielo avanzato&quot; per visualizzare un editor con le impostazioni avanzate per il cielo.
-
-Clicca &quot;Acqua Avanzata&quot; per visualizzare un editor con le impostazini avanzate per l&apos;acqua.
- </notification>
-
- <notification
-
- name="HelpDayCycle"
- >
-L&apos;editor del Ciclo Giorno/Notte permette di controllare il cielo durante il ciclo giornaliero di Second Life. Questo è il ciclo che è usato dal cursore dell&apos;editor base dell&apos;ambiente.
-
-L&apos;editor del ciclo giorno/notte funziona impostando i fotogrammi chiave. Questi sono nodi (rappresentati da tacche grige sul grafico temporale) che hanno delle preregolazioni associate del cielo. Man mano che l&apos;ora del giorno procede, il cielo di WindLight&quot;si anima&quot; interpolando i valori fra questi fotogrammi chiave.
-
-La freccia gialla sopra la linea del tempo rappresenta la tua vista corrente, basata sull&apos;ora del giorno. Cliccandola e spostandola vedrai come il giorno si animerebbe. Si può aggiungere o cancellare fotogrammi chiave cliccando sui tasti &apos;Aggiungi Fotogramma Chiave&apos; e &apos;Cancella Fotogramma Chiave&apos; alla destra della linea del tempo.
-
-Si possono impostare le posizioni temporali dei fotogrammi chiave spostandole lungo la linea del tempo o impostando il loro valore a mano nella finestra di impostazione dei fotogrammi chiave. All&apos;interno della finestra di impostazione si può associare il fotogramma chiave con le impostazioni corrispondenti di Wind Light.
-
-La durata del ciclo definisce la durata complessiva di un &quot;giorno&quot;. Impostando questo ad un valore basso (per esempio, 2 minuti) tutto il ciclo di 24 ore verrà completato in solo 2 minuti reali! Una volta soddisfatto dell tua linea del tempo e le impostazioni dei fotogrammi chiave, usa i bottoni Play e Stop per vederne in anteprima i risultati. Attenzione: si può sempre spostare la freccia gialla indicatrice del tempo sopra la linea del tempo per vedere il ciclo animarsi interattivamente. Scegliendo invece il pulsanto &apos;Usa il tempo della regione&apos; ci si sincronizza con il le durate del ciclo definite per questa regione.
-
-Una volta soddisfatto del ciclo giornaliero, puoi salvarlo o ricaricarlo con i bottoni &apos;Salva test del giorno&apos; e &apos;Carica il test del giorno&apos;. Attualmente è possibile definire un solo ciclo giorno/notte
- </notification>
-
- <notification
-
- name="HelpBlueHorizon"
- >
-Si usano i cursori RGB (Rosso/Verde/Blu) per modificare il colore del cielo. Si può usare il cursore I (Intensità) per alterare i tre cursori all&apos;unisono.
- </notification>
-
- <notification
-
- name="HelpHazeHorizon"
- >
-Altezza della foschia all&apos;orizzonte è uno dei parametri più utili per modificare l&apos;esposizione di luce complessiva nella scena.
-E&apos; utile per simulare molte impostazioni di esposizione, come la sovraesposizione del sole e impostazioni più scure a diaframma chiuso.
- </notification>
-
- <notification
-
- name="HelpBlueDensity"
- >
-La densità del blu influenza la saturazione complessiva del cielo e della nebbia. Se impostate il cursore (I) Intensità verso destra i colori diventeranno più brillanti e accesi. Se lo impostate tutto a sinistra, i colori diventeranno opachi e ultimamente si confonderanno con il bianco/nero. Se si vuole controllare in modo preciso l&apos;equilibro di colori del cielo, si può agire sui singoli elementi di saturazione utilizzando i tre cursori RGB (Rosso, Verde, Blu).
- </notification>
-
- <notification
-
- name="HelpHazeDensity"
- >
-La densità della foschia controlla il livello di foschia grigia generale nell&apos;atmosfera.
-E&apos; utile per simulare scene con un livello alto di fumo e di inquinamento di origine umana.
-E&apos; anche utile per simulare la nebbia e la foschia al mattino.
- </notification>
-
- <notification
-
- name="HelpDensityMult"
- >
-Il moltiplicatore di densità può essere usato per influenzare la densità atmosferica generale. Con valori bassi, crea la sensazione di &quot;aria sottile&quot;, con valori alti crea un effetto molto pesante, annebbiato.
- </notification>
-
- <notification
-
- name="HelpDistanceMult"
- >
-Modifica la distanza percepita da WindLight.
-Immettendo il valore zero si spegne l&apos;influenza di WindLight sul terreno e gli oggetti.
-Valori più grandi di 1 simulano distanze più grandi per effetti atmosferici più spessi.
- </notification>
-
- <notification
-
- name="HelpMaxAltitude"
- >
-Altitudine Massima modifica i calcoli di altezza che fa WindLight quando calcola l&apos;illuminazione atmosferica.
-In periodi successivi del giorno, è utile per modificare quanto &quot;profondo&quot; appaia il tramonto.
- </notification>
-
- <notification
-
- name="HelpSunlightColor"
- >
-Modifica il colore e l&apos;intensità della luce diretta nella scena.
- </notification>
-
- <notification
-
- name="HelpSunAmbient"
- >
-Modifica il colore e l&apos;intensità della luce atmosferica ambientale nella scena.
- </notification>
-
- <notification
-
- name="HelpSunGlow"
- >
-Il cursore Dimensione controlla la dimensione del sole.
-Lo slider &quot;Focus&quot; controlla quanto è offuscato il sole sopra il cielo.
- </notification>
-
- <notification
-
- name="HelpSceneGamma"
- >
-Modifica la distribuzione di luci e ombre nello schermo.
- </notification>
-
- <notification
-
- name="HelpStarBrightness"
- >
-Modifica la brillantezza delle stelle nel cielo.
- </notification>
-
- <notification
-
- name="HelpTimeOfDay"
- >
-Controlla la posizione del sole nel cielo.
-Simile all&apos;elevazione.
- </notification>
-
- <notification
-
- name="HelpEastAngle"
- >
-Controlla la posizione del sole nel cielo.
-Simile all&apos;azimuth.
- </notification>
-
- <notification
-
- name="HelpCloudColor"
- >
-Modifica il colore delle nuvole. Normalmente si raccomanda di mantenere un colore verso il bianco, ma puoi sbizzarrirti.
- </notification>
-
- <notification
-
- name="HelpCloudDetail"
- >
-Controlla l&apos;immagine dei dettagli che è sovraimposta sopra l&apos;immagine principale delle nuvole.
-X e Y controllano la sua posizione.
-D (Densità) controlla quanto gonfie o spezzettate appaiono le nuvole.
- </notification>
-
- <notification
-
- name="HelpCloudDensity"
- >
-Consente di controllare la posizione delle nuvole usando i cursori X e Y e quanto dense siano usando il cursore D.
- </notification>
-
- <notification
-
- name="HelpCloudCoverage"
- >
-Controlla quanto le nuvole coprono il cielo.
- </notification>
-
- <notification
-
- name="HelpCloudScale"
- >
-Controlla le dimensioni delle immagini delle nuvole sul cielo stellato.
- </notification>
-
- <notification
-
- name="HelpCloudScrollX"
- >
-Controlla la velocità delle nuvole lungo la direzione X.
- </notification>
-
- <notification
-
- name="HelpCloudScrollY"
- >
-Controlla la velocità delle nuvole lungo la direzione Y.
- </notification>
-
- <notification
-
- name="HelpClassicClouds"
- >
-Seleziona questa casella per consentire la visualizzazione delle nuvole nello stile classico in aggiunta alle nuvole Windlight.
- </notification>
-
- <notification
-
- name="HelpWaterFogColor"
- >
-Sceglie il Colore della nebbiosità dell&apos;acqua.
- </notification>
-
- <notification
-
- name="HelpWaterFogDensity"
- >
-Controlla la densità della foschia dell&apos;acqua e quanto lontano si può vedere sott&apos;acqua.
- </notification>
-
- <notification
-
- name="HelpUnderWaterFogMod"
- >
-Modifica l&apos;effetto dell&apos;Esponente Densità Vapore Acqueo per controllare quanto lontano può vedere il vostro avatar quando è sott&apos;acqua.
- </notification>
-
- <notification
-
- name="HelpWaterGlow"
- >
-Controlla la quantità del bagliore dell&apos;acqua.
- </notification>
-
- <notification
-
- name="HelpWaterNormalScale"
- >
-Controlla le dimensioni delle tre wavelet che compongono l&apos;acqua.
- </notification>
-
- <notification
-
- name="HelpWaterFresnelScale"
- >
-Controlla quanta luce è riflessa ad angoli differenti.
- </notification>
-
- <notification
-
- name="HelpWaterFresnelOffset"
- >
-Controlla quanta intensità di luce è riflessa.
- </notification>
-
- <notification
-
- name="HelpWaterScaleAbove"
- >
-Controlla quanta luce è rifratta guardando dal di sopra della superficie dell&apos;acqua.
- </notification>
-
- <notification
-
- name="HelpWaterScaleBelow"
- >
-Controlla quanta luce è rifratta guardando dal di sotto della superficie dell&apos;acqua.
- </notification>
-
- <notification
-
- name="HelpWaterBlurMultiplier"
- >
-Controlla come le onde e le riflessioni vengono miscelate.
- </notification>
-
- <notification
-
- name="HelpWaterNormalMap"
- >
-Controlla quale mappa normale è sovraimposta nell&apos;acqua per determinare le riflessioni/rifrazioni.
- </notification>
-
- <notification
-
- name="HelpWaterWave1"
- >
-Controlla dove e quanto velocemente la versione ingrandita della mappa normale si muove lungo le direzioni X e Y.
- </notification>
-
- <notification
-
- name="HelpWaterWave2"
- >
-Controlla dove e quanto velocemente la versione ridotta della mappa normale si muove lungo le direzioni X e Y.
- </notification>
-
- <notification
-
- name="NewSkyPreset"
- >
-Fornisci il nome per il nuovo cielo.
- <form name="form">
- <input name="message" type="text">
-Nuova preimpostazione
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annulla"/>
- </form>
- </notification>
-
- <notification
-
- name="ExistsSkyPresetAlert"
- >
-La preimpostazione esiste già!
- </notification>
-
- <notification
-
- name="NewWaterPreset"
- >
-Fornisci il nome per la nuova preregolazione del livello dell&apos;acqua.
- <form name="form">
- <input name="message" type="text">
-Nuova preimpostazione
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annulla"/>
- </form>
- </notification>
-
- <notification
-
- name="ExistsWaterPresetAlert"
- >
-La preimpostazione esiste già!
- </notification>
-
- <notification
-
- name="WaterNoEditDefault"
- >
-Non puoi modificare o cancellare una preimpostazione.
- </notification>
-
- <notification
-
- name="ChatterBoxSessionStartError"
- >
-Impossibile iniziare una nuova sessione di chat con [RECIPIENT].
-[REASON]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ChatterBoxSessionEventError"
- >
-[EVENT]
-[REASON]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ForceCloseChatterBoxSession"
- >
-La sessione chat con [NAME] deve chiudere.
-[REASON]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="Cannot_Purchase_an_Attachment"
- >
-Gli elementi non possono essere comprati mentre sono indossati.
- </notification>
-
- <notification
-
- label="Informazioni sulle richieste per il permesso di addebito"
- name="DebitPermissionDetails"
- >
-Accettare questa richiesta da allo script il permesso continuativo di prendere Linden dollar (L$) dal tuo account. Per revocare questo permesso, il proprietario dell&apos;oggetto deve cancellare l&apos;oggetto oppure reimpostare gli script nell&apos;oggetto.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="AutoWearNewClothing"
- >
-Vuoi indossare automaticamente i vestiti che crei?
- <usetemplate
- ignoretext="Indossa automaticamente i nuovi vestiti."
- name="okcancelignore"
- notext="No"
- yestext="Si"/>
- </notification>
-
- <notification
-
- name="NotAgeVerified"
- >
-La tua età deve essere verificata per poter entrare in questo territorio.
-Vuoi visitare il sito di Second Life per verificare la tua eta?
-
-[_URL]
- <url option="0" name="url">
-
- https://secondlife.com/account/verification.php
- </url>
- <usetemplate
- ignoretext="Avviso per mancanza della verifica dell&apos;età"
- name="okcancelignore"
- notext="No"
- yestext="Si"/>
- </notification>
-
- <notification
-
- name="Cannot enter parcel: no payment info on file"
- >
-Questo terreno richiede che tu abbia registrato le tue informazioni di pagamento prima che tu possa accedervi.
-Vuoi visitare il sito di Second Life per impostarle?
-
-[_URL]
- <url option="0" name="url">
-
- https://secondlife.com/account/index.php?lang=it
- </url>
- <usetemplate
- ignoretext="Avviso per mancanza di informazioni di pagamento registrato"
- name="okcancelignore"
- notext="No"
- yestext="Si"/>
- </notification>
-
- <notification
-
- name="MissingString"
- >
-La stringa [STRING_NAME] non è presente in strings.xml
- </notification>
-
- <notification
-
- name="SystemMessageTip"
- >
-[MESSAGE]
- </notification>
-
- <notification
-
- name="Cancelled"
- >
-Annullato
- </notification>
-
- <notification
-
- name="CancelledSit"
- >
-Seduta annullata
- </notification>
-
- <notification
-
- name="CancelledAttach"
- >
-Attaccamento annullato
- </notification>
-
- <notification
-
- name="ReplacedMissingWearable"
- >
-Gli abiti/parti del corpo mancanti sono stati sostituiti con quelli di default .
- </notification>
-
- <notification
-
- name="GroupNotice"
- >
-Oggetto: [SUBJECT], Messaggio: [MESSAGE]
- </notification>
-
- <notification
-
- name="FriendOnline"
- >
-[FIRST] [LAST] è Online
- </notification>
-
- <notification
-
- name="FriendOffline"
- >
-[FIRST] [LAST] è Offline
- </notification>
-
- <notification
-
- name="AddSelfFriend"
- >
-Non puoi aggiungere te stesso come amico.
- </notification>
-
- <notification
-
- name="UploadingAuctionSnapshot"
- >
-Sto importando le fotografie per l&apos;uso inworld e per il web...
-(Durata circa 5 minuti.)
- </notification>
-
- <notification
-
- name="UploadPayment"
- >
-Hai pagato [AMOUNT]L$ per il caricamento.
- </notification>
-
- <notification
-
- name="UploadWebSnapshotDone"
- >
-Il caricamento della fotografia nel sito web è andato a buon fine.
- </notification>
-
- <notification
-
- name="UploadSnapshotDone"
- >
-Il caricamento della fotografia inworld è andato a buon fine.
- </notification>
-
- <notification
-
- name="TerrainDownloaded"
- >
-Terrain.raw caricato
- </notification>
-
- <notification
-
- name="GestureMissing"
- >
-La gesture [NAME] non è stata trovata nel database.
- </notification>
-
- <notification
-
- name="UnableToLoadGesture"
- >
-Impossibile caricare la gesture [NAME].
-Riprova.
- </notification>
-
- <notification
-
- name="LandmarkMissing"
- >
-Landmark non trovato nel database.
- </notification>
-
- <notification
-
- name="UnableToLoadLandmark"
- >
-Impossibile caricare il Landmark di riferimento. Riprova.
- </notification>
-
- <notification
-
- name="CapsKeyOn"
- >
-Il tasto BLOC MAIUSC è attivato.
-Dato che questo tasto ha effetto su come scrivi la password, forse sarebbe preferibile disattivarlo.
- </notification>
-
- <notification
-
- name="NotecardMissing"
- >
-Notecard non trovata nel database.
- </notification>
-
- <notification
-
- name="NotecardNoPermissions"
- >
-Permessi insufficienti per visualizzare la notecard.
- </notification>
-
- <notification
-
- name="RezItemNoPermissions"
- >
-Permessi insufficienti per creare un oggetto.
- </notification>
-
- <notification
-
- name="UnableToLoadNotecard"
- >
-Impossibile caricare la notecard.
-Riprova.
- </notification>
-
- <notification
-
- name="ScriptMissing"
- >
-Script non trovato nel database.
- </notification>
-
- <notification
-
- name="ScriptNoPermissions"
- >
-Permessi insufficenti per visualizzare lo script.
- </notification>
-
- <notification
-
- name="UnableToLoadScript"
- >
-Impossibile caricare lo script. Riprova.
- </notification>
-
- <notification
-
- name="IncompleteInventory"
- >
-Il contenuto che stai offrendo per il momento non è localmente disponibile. Prova a rioffrire gli oggetti fra un minuto.
- </notification>
-
- <notification
-
- name="CannotModifyProtectedCategories"
- >
-Non è possibile modificare le categorie protette.
- </notification>
-
- <notification
-
- name="CannotRemoveProtectedCategories"
- >
-Non è possibile rimuovere le categorie protette.
- </notification>
-
- <notification
-
- name="OfferedCard"
- >
-Hai offerto un biglietto da visita a [FIRST] [LAST]
- </notification>
-
- <notification
-
- name="UnableToBuyWhileDownloading"
- >
-Impossibile acquistare l&apos;oggetto durante il download dei dati.
-Riprova.
- </notification>
-
- <notification
-
- name="UnableToLinkWhileDownloading"
- >
-Impossibile collegare l&apos;oggetto durante il download dei dati.
-Riprova.
- </notification>
-
- <notification
-
- name="CannotBuyObjectsFromDifferentOwners"
- >
-Non è possibile acquistare oggetti provenienti da diversi proprietari allo stesso tempo.
-Seleziona un oggetto singolo per volta.
- </notification>
-
- <notification
-
- name="ObjectNotForSale"
- >
-L&apos;oggetto non sembra essere in vendita
- </notification>
-
- <notification
-
- name="EnteringGodMode"
- >
-Entra in modalità divina, livello [LEVEL]
- </notification>
-
- <notification
-
- name="LeavingGodMode"
- >
-Esci dalla modalità divina, livello [LEVEL]
- </notification>
-
- <notification
-
- name="CopyFailed"
- >
-La copia non è riuscita perche non hai il permesso di copiare.
- </notification>
-
- <notification
-
- name="InventoryAccepted"
- >
-[NAME] ha accettato la tua offerta dall&apos;inventario.
- </notification>
-
- <notification
-
- name="InventoryDeclined"
- >
-[NAME] non ha accettato la tua offerta dall&apos;inventario.
- </notification>
-
- <notification
-
- name="ObjectMessage"
- >
-[NAME]: [MESSAGE]
- </notification>
-
- <notification
-
- name="CallingCardAccepted"
- >
-Il tuo biglietto da visita è stato accettato.
- </notification>
-
- <notification
-
- name="CallingCardDeclined"
- >
-Il tuo biglietto da visita non è stato accettato.
- </notification>
-
- <notification
-
- name="TeleportToLandmark"
- >
-Ora che hai raggiunto la mainland, puoi teleportarti in posti come &apos;[NAME]&apos; cliccando inventario in basso a destra del tuo schermo, e selezionando la cartella dei Landmarks.
-Fai doppio click su un landmark e poi clicca su Teleport per andare là.
- </notification>
-
- <notification
-
- name="TeleportToPerson"
- >
-Ora che hai raggiunto la mainland, puoi contattare residenti con &apos;[NAME]&apos; cliccando inventario in basso a destra del tuo schermo, e selezionando la cartella dei biglietti da visita.
-Fai doppio click sul biglietto, clicca su IM messaggio istantaneo, e scrivi il messaggio.
- </notification>
-
- <notification
-
- name="CantSelectLandFromMultipleRegions"
- >
-Non è possibile selezionare il terreno attraverso i confini del server.
-Prova a selezionare una parte di terreno più piccola.
- </notification>
-
- <notification
-
- name="GroupVote"
- >
-[NAME] ha proposto di votare su:
-[MESSAGE]
- <form name="form">
- <button
-
- name="VoteNow"
- text="Vota ora"/>
- <button
-
- name="Later"
- text="Successivo"/>
- </form>
- </notification>
-
- <notification
-
- name="SystemMessage"
- >
-[MESSAGE]
- </notification>
-
- <notification
-
- name="EventNotification"
- >
-Notifica eventi:
-
-[NAME]
-[DATE]
- <form name="form">
- <button
-
- name="Teleport"
- text="Teleport"/>
- <button
-
- name="Description"
- text="Descrizione"/>
- <button
-
- name="Cancel"
- text="Cancella"/>
- </form>
- </notification>
-
- <notification
-
- name="TransferObjectsHighlighted"
- >
-Tutti gli oggetti presenti sul terreno, che saranno trasferiti al compratore di questa terra, saranno ora evidenziati.
-
-* Gli alberi e l&apos;erba che cederai non saranno evidenziati.
- <form name="form">
- <button
-
- name="Done"
- text="Fatto"/>
- </form>
- </notification>
-
- <notification
-
- name="DeactivatedGesturesTrigger"
- >
-Usa lo stesso tasto per disattivare la gesture:
-[NAMES]
- </notification>
-
- <notification
-
- name="NoQuickTime"
- >
-Il software Apple QuickTime sembra non essere installato nel tuo sistema.
-Se desideri visualizzare il video streaming nei terreni supportati si consiglia di andare sul sito di QuickTime (http://www.apple.com/quicktime) e procedere con l&apos;installazione di QuickTime Player.
- </notification>
-
- <notification
-
- name="OwnedObjectsReturned"
- >
-Gli oggetti che possiedi sul terreno selezionato ti sono stati restituiti nell&apos;inventario.
- </notification>
-
- <notification
-
- name="OtherObjectsReturned"
- >
-Gli oggetti selezionati sul terreno che è di proprietà di [FIRST] [LAST] sono stati restituiti nel suo inventario.
- </notification>
-
- <notification
-
- name="OtherObjectsReturned2"
- >
-Gli oggetti selezionati sul terreno di proprietà del residente &apos;[NAME]&apos; sono stati restituiti al loro proprietario.
- </notification>
-
- <notification
-
- name="GroupObjectsReturned"
- >
-Gli oggetti selezionati sul terreno e condivisi con il gruppo [GROUPNAME] sono stati restituiti nell&apos;inventario dei propietari.
-Gli oggetti trasferibili ceduti sono stati restituiti ai proprietari precedenti.
-Gli oggetti non trasferibili che erano stati ceduti al gruppo sono stati cancellati.
- </notification>
-
- <notification
-
- name="UnOwnedObjectsReturned"
- >
-Gli oggetti selezionati sul terreno che non sono di tua proprietà sono stati restituiti ai loro proprietari.
- </notification>
-
- <notification
-
- name="NotSafe"
- >
-In questa terra il danno è abilitato (&apos;non sicura&apos;).
-Puoi farti male qui. Se muori, sarai teleportato a casa.
- </notification>
-
- <notification
-
- name="NoFly"
- >
-Questa terra ha il volo disabilitato (&apos;non puoi volare&apos;).
-Non è possibile volare qui.
- </notification>
-
- <notification
-
- name="PushRestricted"
- >
-Questa terra è &apos;Senza spinte&apos;.
-Non si puo spingere gli altri a meno che tu non sia propietario del terreno.
- </notification>
-
- <notification
-
- name="NoVoice"
- >
-Questa terra ha il voice disabilitato.
- </notification>
-
- <notification
-
- name="NoBuild"
- >
-Questo terreno ha la costruzione disabilitata (&apos;non puoi costruire&apos;).
-Non puoi costruire qui.
- </notification>
-
- <notification
-
- name="ScriptsStopped"
- >
-Un amministratore ha temporaneamente disabilitato gli script in questa regione.
- </notification>
-
- <notification
-
- name="ScriptsNotRunning"
- >
-In questa terra nessuno script è attivo.
- </notification>
-
- <notification
-
- name="NoOutsideScripts"
- >
-Questa land ha script esterni disabilitati.
-(&apos;nessuno script esterno&apos;).
-Nessuno script esterno funzionerà tranne quelli del propietario del terreno.
- </notification>
-
- <notification
-
- name="ClaimPublicLand"
- >
-Puoi solo prendere possesso di terra pubblica nella regione dove sei attualmente.
- </notification>
-
- <notification
-
- name="ObjectGiveItem"
- >
-Un oggetto chiamato [OBJECTFROMNAME] di proprietà di [FIRST] [LAST] ti ha dato un [OBJECTTYPE] che si chiama [OBJECTNAME].
- <form name="form">
- <button
-
- name="Keep"
- text="Prendi"/>
- <button
-
- name="Discard"
- text="Rifiuta"/>
- <button
-
- name="Mute"
- text="Muta"/>
- </form>
- </notification>
-
- <notification
-
- name="ObjectGiveItemUnknownUser"
- >
-Un oggetto chiamato [OBJECTFROMNAME] di proprietà di (un utente sconosciuto) ti ha dato un [OBJECTTYPE] che si chiama [OBJECTNAME].
- <form name="form">
- <button
-
- name="Keep"
- text="Prendi"/>
- <button
-
- name="Discard"
- text="Rifiuta"/>
- <button
-
- name="Mute"
- text="Muta"/>
- </form>
- </notification>
-
- <notification
-
- name="UserGiveItem"
- >
-[NAME] ti ha dato un [OBJECTTYPE] chiamato &apos;[OBJECTNAME]&apos;.
- <form name="form">
- <button
-
- name="Keep"
- text="Prendi"/>
- <button
-
- name="Discard"
- text="Rifiuta"/>
- <button
-
- name="Mute"
- text="Muta"/>
- </form>
- </notification>
-
- <notification
-
- name="GodMessage"
- >
-[NAME]
-[MESSAGE]
- </notification>
-
- <notification
-
- name="JoinGroup"
- >
-[MESSAGE]
- <form name="form">
- <button
-
- name="Join"
- text="Iscriviti"/>
- <button
-
- name="Decline"
- text="Rifiuta"/>
- <button
-
- name="Info"
- text="Info"/>
- </form>
- </notification>
-
- <notification
-
- name="TeleportOffered"
- >
-[NAME] ti ha offerto di teleportarti dove sta ora:
-
-[MESSAGE]
- <form name="form">
- <button
-
- name="Teleport"
- text="Teleport"/>
- <button
-
- name="Cancel"
- text="Cancella"/>
- </form>
- </notification>
-
- <notification
-
- name="GotoURL"
- >
-[MESSAGE]
-[URL]
- <form name="form">
- <button
-
- name="Later"
- text="Successivo"/>
- <button
-
- name="GoNow..."
- text="Vai ora..."/>
- </form>
- </notification>
-
- <notification
-
- name="OfferFriendship"
- >
-[NAME] ti ha offerto la sua amicizia.
-
-[MESSAGE]
-
-(Di default, potrete vedervi reciprocamente online.)
- <form name="form">
- <button
-
- name="Accept"
- text="Accetta"/>
- <button
-
- name="Decline"
- text="Rifiuta"/>
- </form>
- </notification>
-
- <notification
-
- name="OfferFriendshipNoMessage"
- >
-[NAME] ti ha offerto la sua amicizia.
-
-(Di default, potrete vedervi reciprocamente online.)
- <form name="form">
- <button
-
- name="Accept"
- text="Accetta"/>
- <button
-
- name="Decline"
- text="Rifiuta"/>
- </form>
- </notification>
-
- <notification
-
- name="FriendshipAccepted"
- >
-[NAME] ha accettato la tua offerta di amicizia.
- </notification>
-
- <notification
-
- name="FriendshipDeclined"
- >
-[NAME] ha rifiutato la tua offerta di amicizia.
- </notification>
-
- <notification
-
- name="OfferCallingCard"
- >
-[FIRST] [LAST] ti ha offerto il suo biglietto da visita.
-Questo aggiungerà un segnalibro nel tuo inventario.
-in modo da poter rapidamente inviargli un IM al residente.
- <form name="form">
- <button
-
- name="Accept"
- text="Accetta"/>
- <button
-
- name="Decline"
- text="Rifiuta"/>
- </form>
- </notification>
-
- <notification
-
- name="RegionRestartMinutes"
-
-
- >
-Il riavvio della regione avverrà tra [MINUTES] minuti.
-Se rimani in questa regione sarai disconnesso.
- </notification>
-
- <notification
-
- name="RegionRestartSeconds"
-
-
- >
-Il riavvio della regione avverrà tra [SECONDS] secondi.
-Se rimani in questa regione sarai disconnesso.
- </notification>
-
- <notification
-
- name="LoadWebPage"
- >
-Caricare pagina web [URL]?
-
-[MESSAGE]
-
-Dall&apos;oggetto: [OBJECTNAME], di: [NAME]?
- <form name="form">
- <button
-
- name="Gotopage"
- text="Vai alla pagina"/>
- <button
-
- name="Cancel"
- text="Annulla"/>
- </form>
- </notification>
-
- <notification
-
- name="FailedToFindWearableUnnamed"
- >
-Impossibile trovare [TYPE] nel database.
- </notification>
-
- <notification
-
- name="FailedToFindWearable"
- >
-Impossibile trovare [TYPE] chiamato [DESC] nel database.
- </notification>
-
- <notification
-
- name="ScriptQuestion"
- >
-&apos;[OBJECTNAME]&apos;, un oggetto di proprietà di &apos;[NAME]&apos;, vorrebbe:
-
-[QUESTIONS]
-Va bene?
- <form name="form">
- <button
-
- name="Yes"
- text="Si"/>
- <button
-
- name="No"
- text="No"/>
- <button
-
- name="Mute"
- text="Muta"/>
- </form>
- </notification>
-
- <notification
-
- name="ScriptQuestionCaution"
- >
-&apos;[OBJECTNAME]&apos;, un oggetto di proprietà di &apos;[NAME]&apos;, vorrebbe:
-
-[QUESTIONS]
-Se non ci si fida dell&apos;oggetto e del suo creatore, si dovrebbe negare la richiesta. Per ulteriori informazioni, fai clic sul pulsante &apos;Dettagli&apos;.
-
-Accettare tale richiesta?
- <form name="form">
- <button
-
- name="Grant"
- text="Accetta"/>
- <button
-
- name="Deny"
- text="Nega"/>
- <button
-
- name="Details"
- text="Dettagli..."/>
- </form>
- </notification>
-
- <notification
-
- name="ScriptDialog"
- >
-[FIRST] [LAST] &apos;[TITLE]&apos;
-[MESSAGE]
- <form name="form">
- <button
-
- name="Ignore"
- text="Ignora"/>
- </form>
- </notification>
-
- <notification
-
- name="ScriptDialogGroup"
- >
-[GROUPNAME] &apos;[TITLE]&apos;
-[MESSAGE]
- <form name="form">
- <button
-
- name="Ignore"
- text="Ignora"/>
- </form>
- </notification>
-
- <notification
-
- name="FirstBalanceIncrease"
- >
-Hai appena ricevuto [AMOUNT]L$.
-Gli oggetti e gli altri utenti possono darti L$.
-Il tuo saldo è indicato nell&apos;angolo in alto a destra dello schermo.
- </notification>
-
- <notification
-
- name="FirstBalanceDecrease"
- >
-Hai appena pagato [AMOUNT]L$.
-Il tuo saldo è indicato nell&apos;angolo in alto a destra dello schermo.
- </notification>
-
- <notification
-
- name="FirstSit"
- >
-Sei seduto.
-Utilizza i tasti freccia (o AWSD) per cambiare visualizzazione.
-Fai clic sul pulsante &apos;Alzati&apos; per rialzarti.
- </notification>
-
- <notification
-
- name="FirstMap"
- >
-Fai clic e trascina per scorrere la mappa.
-Doppio click per teleportarti.
-Utilizza i controlli sulla destra per trovare le cose e visualizzare sfondi differenti.
- </notification>
-
- <notification
-
- name="FirstBuild"
- >
-È possibile creare nuovi oggetti in alcune zone di [SECOND_LIFE].
-Utilizza gli strumenti in alto a sinistra per costruire, e prova a tenere premuto Ctrl o Alt per passare rapidamente tra uno strumento e l&apos;altro.
-Premi Esc per smettere di costruire.
- </notification>
-
- <notification
-
- name="FirstLeftClickNoHit"
- >
-Cliccare con il tasto sinistro fa interagire con particolari oggetti.
-Se il puntatore del mouse si trasforma in una mano, puoi interagire con l&apos;oggetto.
-Se fai clic col tasto destro ti verranno sempre mostrati menù con le cose che puoi fare.
- </notification>
-
- <notification
-
- name="FirstTeleport"
- >
-Questa regione non permette i teleport da punto a punto, cosi sei stato teletrasportato nel punto più vicino.
-La tua destinazione originale è comunque segnata da un segnale luminoso.
-Segui la freccia rossa per arrivare a destinazione, o fai clic sulla freccia per spegnerla.
- </notification>
-
- <notification
-
- name="FirstOverrideKeys"
- >
-I tuoi movimenti della tastiera vengono ora gestiti da un oggetto.
-Prova i tasti freccia o AWSD per vedere quello che fanno.
-Alcuni oggetti (come pistole) richiedono di andare in mouselook per il loro utilizzo.
-Premi &apos;M&apos; per farlo.
- </notification>
-
- <notification
-
- name="FirstAppearance"
- >
-Stai modificando il tuo aspetto.
-Per ruotare e fare uno zoom, utilizza le frecce della tastiera.
-Quando hai finito, premi &apos;Salva tutto&apos;
-per salvare il tuo look e uscire.
-Puoi modificare il tuo aspetto ogni qualvolta vuoi.
- </notification>
-
- <notification
-
- name="FirstInventory"
- >
-Questo è il tuo inventario, che contiene gli oggetti, notecard, abbigliamento, e altre cose che possiedi.
-* Per indossare un oggetto o un outfit completo contenuto in una cartella, trascinali su te stesso.
-* Per ricreare un oggetto inworld, trascinalo sul terreno.
-* Per leggere una notecard, fai doppio clic su di essa.
- </notification>
-
- <notification
-
- name="FirstSandbox"
- >
-Questa è una regione sandbox.
-Gli oggetti che costruisci qui, potrebbero essere cancellati dopo che lasci questa area, dato che le sandbox si autopuliscono regolarmente. Leggi le informazioni scritte al riguardo, vicino al nome della regione in alto sullo schermo.
-
-Le regioni sandbox sono rare, e sono contrassegnate da segnali.
- </notification>
-
- <notification
-
- name="FirstFlexible"
- >
-Questo oggetto è flessibile.
-Gli oggetti flessibili non possono essere fisici e devano essere fantasma fino a quando la casella di controllo della flessibilità verrà deselezionata.
- </notification>
-
- <notification
-
- name="FirstDebugMenus"
- >
-Hai attivato il menu Avanzato.
-Questo menu contiene funzioni utili per gli sviluppatori per il debug di Second Life.
-Per attivare o disattivare questo menu su Windows premere Ctrl-Alt-D. Su Mac premere Cmd-Opt-Shift-D.
- </notification>
-
- <notification
-
- name="FirstSculptedPrim"
- >
-Si sta modificando uno sculpted prim.
-Gli sculpted prim richiedono una speciale texture che ne specifichi la forma.
-Puoi trovare esempi di texture sculpted nella libreria dell&apos;inventario.
- </notification>
-
- <notification
-
- name="FirstMedia"
- >
-Hai iniziato la riproduzione dei media. I media possono essere impostati per essere riprodotti automaticamente nella finestra delle Preferenze sotto la voce Audio / Video. Questo può essere un rischio di sicurezza da media che non sono affidabili.
- </notification>
-
- <notification
-
- name="MaxListSelectMessage"
- >
-È possibile selezionare solo fino a [MAX_SELECT] oggetti da questa lista.
- </notification>
-
- <notification
-
- name="VoiceInviteP2P"
- >
-[NAME] ti ha invitato a una chiamata Voice.
-Fai clic su Accetta per partecipare alla chiamata o su Rifiuta per rifiutare l&apos;invito. fai clic sul pulsante Muta per mutare il chiamante.
- <form name="form">
- <button
-
- name="Accept"
- text="Accetta"/>
- <button
-
- name="Decline"
- text="Rifiuta"/>
- <button
-
- name="Mute"
- text="Muta"/>
- </form>
- </notification>
-
- <notification
-
- name="AutoUnmuteByIM"
- >
-A [FIRST] [LAST] e&apos; stato mandato un messaggio instantaneo ed è stato quindi automaticamente non mutato.
- </notification>
-
- <notification
-
- name="AutoUnmuteByMoney"
- >
-A [FIRST] [LAST] è stato dato del denaro ed è stato automaticamente non mutato.
- </notification>
-
- <notification
-
- name="AutoUnmuteByInventory"
- >
-A [FIRST] [LAST] é stato passato qualcosa dall&apos;inventario ed è stato automaticamente non mutato.
- </notification>
-
- <notification
-
- name="VoiceInviteGroup"
- >
-[NAME] ha iniziato una chiamata Voice-Chat con il gruppo [GROUP].
-Fai clic su Accetta per partecipare alla chiamata o Rifiuta per Rifiutare l&apos;invito. Fai clic sul pulsante muta per mutare il chiamante.
- <form name="form">
- <button
-
- name="Accept"
- text="Accetta"/>
- <button
-
- name="Decline"
- text="Rifiuta"/>
- <button
-
- name="Mute"
- text="Muta"/>
- </form>
- </notification>
-
- <notification
-
- name="VoiceInviteAdHoc"
- >
-[NAME] ha iniziato una chiamata Voice Chat mediante una conferenza chat..
-Fai clic su Accetta per partecipare alla chiamata o Rifiuta per Rifiutare l&apos;invito. Fai clic sul pulsante muta per mutare il chiamante.
- <form name="form">
- <button
-
- name="Accept"
- text="Accetta"/>
- <button
-
- name="Decline"
- text="Rifiuta"/>
- <button
-
- name="Mute"
- text="Muta"/>
- </form>
- </notification>
-
- <notification
-
- name="InviteAdHoc"
- >
-[NAME] ti ha invitato ad una conferenza chat.
-Fai clic su Accetta per partecipare alla chiamata o su Rifiuta per rifiutare l&apos;invito. Fai clic sul pulsante muta per mutare il chiamante.
- <form name="form">
- <button
-
- name="Accept"
- text="Accetta"/>
- <button
-
- name="Decline"
- text="Rifiuta"/>
- <button
-
- name="Mute"
- text="Muta"/>
- </form>
- </notification>
-
- <notification
-
- name="VoiceChannelFull"
- >
-La chiamata vocale a cui si sta cercando di unirsi, [VOICE_CHANNEL_NAME], ha raggiunto la capacità massima. Si prega di riprovare più tardi.
- </notification>
-
- <notification
-
- name="ProximalVoiceChannelFull"
- >
-Siamo spiacenti. Questa area ha raggiunto la capacità massima per le chiamate voice. Si prega di provare ad usare il voice in un&apos;altra area.
- </notification>
-
- <notification
-
- name="VoiceChannelDisconnected"
- >
-Sei stato disconnesso da [VOICE_CHANNEL_NAME]. Ora verrai riconnesso al canale voice chat pubblico.
- </notification>
-
- <notification
-
- name="VoiceChannelDisconnectedP2P"
- >
-[VOICE_CHANNEL_NAME] ha chiuso la chiamata. Ora verrai riconnesso al canale voice chat pubblico.
- </notification>
-
- <notification
-
- name="P2PCallDeclined"
- >
-[VOICE_CHANNEL_NAME] ha rifiutato la tua chiamata. Ora verrai riconnesso al canale voice chat pubblico.
- </notification>
-
- <notification
-
- name="P2PCallNoAnswer"
- >
-[VOICE_CHANNEL_NAME] non è disponibile per rispondere alla chiamata. Ora verrai riconnesso al canale voice chat pubblico.
- </notification>
-
- <notification
-
- name="VoiceChannelJoinFailed"
- >
-Impossibile connettersi con [VOICE_CHANNEL_NAME], si prega di riprovare più tardi. Ora verrai riconnesso al canale voice chat pubblico.
- </notification>
-
- <notification
-
- name="VoiceLoginRetry"
- >
-Stiamo creando una canale voice per te. Questo può richiedere fino a un minuto.
- </notification>
-
- <notification
-
- name="Cannot enter parcel: not a group member"
- >
-Non puoi entrare nel terreno, non sei un membro del gruppo appropriato.
- </notification>
-
- <notification
-
- name="Cannot enter parcel: banned"
- >
-Non puoi entrare nel terreno, sei stato bloccato.
- </notification>
-
- <notification
-
- name="Cannot enter parcel: not on access list"
- >
-Non puoi entrare nel terreno, non fai parte della lista di accesso.
- </notification>
-
- <notification
-
- name="VoiceNotAllowed"
- >
-Non hai il permesso di collegarti ad una voice chat con [VOICE_CHANNEL_NAME].
- </notification>
-
- <notification
-
- name="VoiceCallGenericError"
- >
-Si è verificato un errore durante il tentativo di collegarti a una voice chat con [VOICE_CHANNEL_NAME]. Riprova più tardi.
- </notification>
-
- <notification
-
- name="ServerVersionChanged"
- >
-La regione in cui sei entrato, gira su una versione di simulatore differente. Fai clic su questo messaggio per i dettagli.
- </notification>
-
- <notification
-
- name="UnableToOpenCommandURL"
- >
-L&apos;URL che hai selezionato non può essere aperto da questo browser.
- </notification>
-
- <global name="UnsupportedCPU">
-- La velocità della tua CPU non soddisfa i requisiti minimi.
- </global>
-
- <global name="UnsupportedGLRequirements">
-Sembra che tu non abbia i requisiti appropriati hardware per Second Life. Second Life ha bisogno di una scheda grafica OpenGL che abbia il supporto multitexture. Se ritieni di avere l&apos;hardware giusto verifica di avere installati i driver più aggiornati per la tua scheda grafica e gli aggiornamenti e service pack appropriati per il tuo sistema operativo.
-
-Se continui ad avere problemi, visita il sito: http://www.secondlife.com/support
- </global>
-
- <global name="UnsupportedCPUAmount">
-796
- </global>
-
- <global name="UnsupportedRAMAmount">
-510
- </global>
-
- <global name="UnsupportedGPU">
-- La tua scheda grafica non soddisfa i requisiti minimi.
- </global>
-
- <global name="UnsupportedRAM">
-- La memoria del tuo sistema non soddisfa i requisiti minimi.
- </global>
-
- <global name="PermYes">
-Si
- </global>
-
- <global name="PermNo">
-No
- </global>
-</notifications>
-
+<?xml version="1.0" encoding="utf-8"?>
+<notifications>
+ <global name="skipnexttime">
+ Non mostrare più la prossima volta
+ </global>
+ <global name="alwayschoose">
+ Scegli sempre questa opzione
+ </global>
+ <template name="okbutton">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ </form>
+ </template>
+
+ <template name="okignore">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <ignore text="$ignoretext"/>
+ </form>
+ </template>
+
+ <template name="okcancelbuttons">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <button
+ name="Cancel"
+ text="$notext"/>
+ </form>
+ </template>
+
+ <template name="okcancelignore">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <button
+ name="Cancel"
+ text="$notext"/>
+ <ignore text="$ignoretext"/>
+ </form>
+ </template>
+
+ <template name="okhelpbuttons">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <button
+ name="Help"
+ text="$helptext"/>
+ </form>
+ </template>
+
+ <template name="yesnocancelbuttons">
+ <form>
+ <button
+ name="Yes"
+ text="$yestext"/>
+ <button
+ name="No"
+ text="$notext"/>
+ <button
+ name="Cancel"
+ text="$canceltext"/>
+ </form>
+ </template>
+ <notification functor="GenericAcknowledge" label="Messaggio di allerta sconosciuto" name="MissingAlert">
+ La tua versione di Second Life non sa come visualizzare il messaggio di allerta appena ricevuto.
+
+Dettagli dell&apos;errore: il messaggio di allerta &apos;[_NAME]&apos; non è stato trovato in notifications.xml.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="FloaterNotFound">
+ Errore visualizzazione finestra: Non trovati i seguenti controlli:
+
+[CONTROLS]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="TutorialNotFound">
+ Nessun tutorial disponibile al momento.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="GenericAlert">
+ [MESSAGE]
+ </notification>
+ <notification name="GenericAlertYesCancel">
+ [MESSAGE]
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="Si"/>
+ </notification>
+ <notification name="BadInstallation">
+ Si è verificato un errore durante l&apos;aggiornamento di Second Life. Scarica l&apos;ultima versione da secondlife.com.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="LoginFailedNoNetwork">
+ Errore di rete: non è stato possibile stabilire una connessione.
+&apos;[DIAGNOSTIC]&apos;
+Per favore controlla la tua connessione.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="MessageTemplateNotFound">
+ Il modello di messaggio [PATH] non è stato trovato.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="WearableSave">
+ Salva i cambiamenti all&apos;attuale parte del corpo/abito?
+ <usetemplate canceltext="Annulla" name="yesnocancelbuttons" notext="Non salvare" yestext="Salva"/>
+ </notification>
+ <notification name="CompileQueueSaveText">
+ C&apos;è stato un problema importando il testo di uno script per la seguente ragione: [REASON]. Riprova più tardi.
+ </notification>
+ <notification name="CompileQueueSaveBytecode">
+ C&apos;è stato un problema importando lo script compilato per la seguente ragione: [REASON]. Riprova più tardi.
+ </notification>
+ <notification name="WriteAnimationFail">
+ C&apos;è stato un problema di scrittura dati dell&apos;animazione. Riprova più tardi.
+ </notification>
+ <notification name="UploadAuctionSnapshotFail">
+ C&apos;è stato un problema importando la fotografia dell&apos;asta per la seguente ragione: [REASON]
+ </notification>
+ <notification name="UnableToViewContentsMoreThanOne">
+ Non è possibile vedere il contenuto di più di un elemento per volta.
+Scegli solo un oggetto e riprova.
+ </notification>
+ <notification name="SaveClothingBodyChanges">
+ Salva tutte le modifiche alle parti del corpo/abiti?
+ <usetemplate canceltext="Annulla" name="yesnocancelbuttons" notext="Non Salvare" yestext="Salva Tutto"/>
+ </notification>
+ <notification name="GrantModifyRights">
+ Dare i diritti di modifica ad un altro residente gli consente di cambiare, cancellare o prendere QUALUNQUE oggetto che hai in Second Life. Fai MOLTA attenzione quando concedi questo permesso.
+Vuoi davvero dare i diritti di modifica a [FIRST_NAME] [LAST_NAME]?
+ <usetemplate name="okcancelbuttons" notext="No" yestext="Si"/>
+ </notification>
+ <notification name="GrantModifyRightsMultiple">
+ Dare i diritti di modifica ad un altro residente gli consente di cambiare QUALUNQUE oggetto che hai in Second Life. Fai MOLTA attenzione quando concedi questo permesso.
+Vuoi davvero dare i diritti di modifica ai residenti selezionati?
+ <usetemplate name="okcancelbuttons" notext="No" yestext="Si"/>
+ </notification>
+ <notification name="RevokeModifyRights">
+ Vuoi revocare i diritti di modifica dati a [FIRST_NAME] [LAST_NAME]?
+ <usetemplate name="okcancelbuttons" notext="No" yestext="Si"/>
+ </notification>
+ <notification name="RevokeModifyRightsMultiple">
+ Vuoi revocare i permessi di modifica dati ai residenti selezionati?
+ <usetemplate name="okcancelbuttons" notext="No" yestext="Si"/>
+ </notification>
+ <notification name="UnableToCreateGroup">
+ Non è possibile creare il gruppo.
+[MESSAGE]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="PanelGroupApply">
+ [NEEDS_APPLY_MESSAGE]
+[WANT_APPLY_MESSAGE]
+ <usetemplate canceltext="Annulla" name="yesnocancelbuttons" notext="Ignora le modifiche" yestext="Applica le modifiche"/>
+ </notification>
+ <notification name="MustSpecifyGroupNoticeSubject">
+ Devi specificare un oggetto per mandare una notice al gruppo.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="AddGroupOwnerWarning">
+ Stai per aggiungere dei membri al ruolo [ROLE_NAME].
+Non si possono rimuovere membri da quel ruolo.
+I membri devono dimettersi volontariamente dal ruolo.
+Confermi l&apos;operazione?
+ <usetemplate ignoretext="Quando si aggiungono membri al ruolo di proprietario" name="okcancelignore" notext="No" yestext="Si"/>
+ </notification>
+ <notification name="AssignDangerousActionWarning">
+ Stai per aggiungere il potere &apos;[ACTION_NAME]&apos; al ruolo &apos;[ROLE_NAME]&apos;.
+
+ *ATTENZIONE*
+ Ogni membro di un ruolo con questo potere può assegnare a sè stesso -- e a qualunque altro membro -- ruoli che hanno più poteri di quelli che hanno correntemente, potenzialmente consentendogli di avere quasi i poteri del proprietario. Accertati di sapere quello che stai facendo prima di assegnare questo potere.
+
+Aggiungi questo potere a &apos;[ROLE_NAME]&apos;?
+ <usetemplate name="okcancelbuttons" notext="No" yestext="Si"/>
+ </notification>
+ <notification name="AssignDangerousAbilityWarning">
+ Stai per aggiungere il potere &apos;[ACTION_NAME]&apos; al ruolo &apos;[ROLE_NAME]&apos;.
+
+ *ATTENZIONE*
+ Ogni membro di un ruolo con questo potere può assegnare a sè stesso -- e a qualunque altro membro -- tutti i poteri, elevandosi al livello di quasi proprietario.
+
+Aggiungi questo potere a &apos;[ROLE_NAME]&apos;?
+ <usetemplate name="okcancelbuttons" notext="No" yestext="Si"/>
+ </notification>
+ <notification name="ClickPublishHelpLand">
+ Selezionare &quot;Pubblica in Ricerca&quot;
+Marcando questo campo si mostrerà:
+- questo terreno nei risultati di ricerca
+- gli oggetti pubblici di questo terreno
+- questo terreno nella ricerca web
+ </notification>
+ <notification name="ClickSoundHelpLand">
+ I media e la musica possono essere fruiti solo all&apos;interno del terreno. Le opzioni dei suoni e del voice possono essere limitati al terreno o potranno essere sentiti dai residenti al di fuori del terreno, a seconda della loro categoria di accesso. Vuoi andare alla Knowledge Base per ulteriori informazioni su come impostare queste opzioni?
+ <url name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=5046
+ </url>
+ <usetemplate
+ name="okcancelbuttons"
+ yestext="Vai alla Knowledge Base"
+ notext="Chiudi" />
+ </notification>
+ <notification name="ClickSearchHelpAll">
+ I risultati della ricerca sono basati sul tipo di scheda nella quale ti trovi, la tua categoria di accesso, la categoria scelta e altri fattori. Per maggiori dettagli, vai alla Knowledge Base.
+ <url name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=4722
+ </url>
+ <usetemplate
+ name="okcancelbuttons"
+ yestext="Vai alla Knowledge Base"
+ notext="Chiudi" />
+ </notification>
+ <notification name="ClickPublishHelpLandDisabled">
+ Non puoi rendere questo terreno visibile nella ricerca perchè è in una regione che non lo consente.
+ </notification>
+ <notification name="ClickPublishHelpAvatar">
+ Scegliendo &quot;Mostra in Ricerca&quot; verrà mostrato:
+- il mio profilo nei risultati della ricerca
+- un link al mio profilo nelle pagine pubbliche del gruppo
+ </notification>
+ <notification name="ClickPartnerHelpAvatar">
+ Puoi proporre o cancellare una partnership con un altro/a residente attraverso il sito web [SECOND_LIFE].
+
+Vai al sito web di Second Life per ulteriori informazioni sulla partnership?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="Vai alla pagina"/>
+ </notification>
+ <notification name="ClickUploadHelpPermissions">
+ I tuoi permessi di base possono non funzionare nelle regioni più vecchie.
+ </notification>
+ <notification name="ClickWebProfileHelpAvatar">
+ Se questo/a residente ha impostato una URL nel suo profilo puoi:
+ * Cliccare &apos;Carica&apos; per vedere la pagina in questa finestra web.
+ * Cliccare Carica &gt; &apos;nel browser esterno&apos; per vedere la pagina nel vostro browser web preimpostato.
+ * Cliccare Carica &gt; &apos;URL Principale&apos; per ritornare alla pagina web del profile di questo/a Residente se hai cambiato pagina.
+
+Quando visiti il tuo profilo, puoi specificare qualunque URL come tuo profilo web e cliccare OK per impostarla.
+Altri residenti possono visitare la URL che hai impostato cliccando sul tuo profilo.
+ </notification>
+ <notification name="JoinGroupCanAfford">
+ Iscriversi a questo gruppo costa [COST]L$.
+Vuoi proseguire?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="Iscriviti"/>
+ </notification>
+ <notification name="JoinGroupCannotAfford">
+ Iscriversi a questo gruppo costa [COST]L$.
+Non hai abbastanza L$ per iscriverti a questo gruppo.
+ </notification>
+ <notification name="LandBuyPass">
+ Pagando [COST]L$ puoi entrare in questa terra (&apos;[PARCEL_NAME]&apos;) per [TIME] ore. Compri un pass?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="SalePriceRestriction">
+ Il prezzo di vendita deve essere superiore a 0L$ se vendi a tutti.
+Seleziona una vendita individuale per vendere a 0L$.
+ </notification>
+ <notification name="ConfirmLandSaleChange">
+ Il terreno selezionato di [LAND_SIZE] m² sta per essere messo in vendita.
+Il tuo prezzo di vendità è [SALE_PRICE]L$ ed è autorizzato alla vendita a [NAME].
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmLandSaleToAnyoneChange">
+ ATTENZIONE: Cliccando &apos;vendi a tutti&apos; rende il tuo terrono disponibile all&apos;intera comunità di Second Life, anche non in questa regione.
+
+Il terreno selezionato di [LAND_SIZE] m² sta per essere messo in vendita.
+Il tuo prezzo di vendità è [SALE_PRICE]L$ ed è autorizzato alla vendita a [NAME].
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsDeededToGroup">
+ Confermi di volere restituire tutti gli oggetti condivisi con il gruppo &apos;[NAME]&apos; di questo terreno agli inventari dei proprietari precedenti?
+
+*ATTENZIONE* Questo cancellerà gli oggetti non trasferibili ceduti al gruppo!
+
+Oggetti: [N]
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsOwnedByUser">
+ Confermi di volere restituire tutti gli oggetti posseduti dal residente &apos;[NAME]&apos; in questo terreno al suo inventario?
+
+Oggetti: [N]
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsOwnedBySelf">
+ Confermi di volere restituire tutti gli oggetti posseduti da te in questo terreno, di nuovo nel tuo inventario?
+
+Oggetti: [N]
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsNotOwnedBySelf">
+ Confermi di volere restituire tutti gli oggetti di cui NON sei proprietario in questo terreno all&apos;inventario dei rispettivi proprietari?
+Gli oggetti trasferibili ceduti al gruppo verranno restituiti ai loro proprietari precedenti.
+
+*ATTENZIONE* Questo cancellerà gli oggetti non trasferibili ceduti al gruppo!
+
+Oggetti: [N]
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsNotOwnedByUser">
+ Confermi di volere restituire tutti gli oggetti NON posseduti da [NAME] in questo terreno nell&apos;inventario dei loro proprietari?
+Gli oggetti trasferibili ceduti al gruppo verranno restituiti ai loro proprietari precedenti.
+
+*ATTENZIONE* Questo cancellerà gli oggetti non trasferibili ceduti al gruppo!
+
+Oggetti: [N]
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="ReturnAllTopObjects">
+ Confermi di volere restituire tutti gli oggetti elencati nell&apos;inventario dei loro proprietari?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="DisableAllTopObjects">
+ Confermi di volere disabilitare tutti gli oggetti in questa regione?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsNotOwnedByGroup">
+ Restituisci gli oggetti in questo terreno che NON sono condivisi con il gruppo [NAME] ai loro proprietari?
+
+Oggetti: [N]
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="UnableToDisableOutsideScripts">
+ Non è possibile disabilitare gli script.
+L&apos;intera regione ha l&apos;abilitazione danni.
+Gli script devono essere autorizzati all&apos;esecuzione affinchè le armi funzionino.
+ </notification>
+ <notification name="MustBeInParcel">
+ Devi essere dentro il terreno per impostare il suo Punto di Atterraggio.
+ </notification>
+ <notification name="PromptRecipientEmail">
+ Introduci un indirizzo email per il destinatario/i.
+ </notification>
+ <notification name="PromptSelfEmail">
+ Introduci il tuo indirizzo email.
+ </notification>
+ <notification name="PromptMissingSubjMsg">
+ Invia la foto via email con soggetto o messaggio predefinito?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="ErrorProcessingSnapshot">
+ Errore nell&apos;elaborazione della fotografia.
+ </notification>
+ <notification name="ErrorEncodingSnapshot">
+ Errore nella codifica della fotografia.
+ </notification>
+ <notification name="ErrorUploadingPostcard">
+ C&apos;è stato un problema inviando la fotografia per il seguente motivo: [REASON]
+ </notification>
+ <notification name="ErrorUploadingReportScreenshot">
+ C&apos;è stato un problema importando la foto del rapporto per il seguente motivo: [REASON]
+ </notification>
+ <notification name="MustAgreeToLogIn">
+ Devi accettare i Termini di Servizio prima di proseguire il collegamento con [SECOND_LIFE].
+ </notification>
+ <notification name="CouldNotPutOnOutfit">
+ Non è stato possibile indossare un equipaggiamento.
+La cartella equipaggiamento non contiene abbigliamento, parti del corpo o attachment.
+ </notification>
+ <notification name="CannotWearTrash">
+ Non puoi indossare abiti e parti del corpo che sono nel cestino
+ </notification>
+ <notification name="CannotWearInfoNotComplete">
+ Non puoi indossare quell&apos;elemento perchè non è ancora stato caricato. Riprova fra un minuto.
+ </notification>
+ <notification name="MustHaveAccountToLogIn">
+ Qualcosa è rimasto vuoto.
+Devi inserire sia il nome che il cognome del tuo avatar.
+
+Hai bisogno di un account per entrare in [SECOND_LIFE]. Ne vuoi creare uno adesso?
+ <usetemplate name="okcancelbuttons" notext="Riprova" yestext="Crea un nuovo account"/>
+ </notification>
+ <notification name="AddClassified">
+ Gli annunci appaiono nella sezione &apos;Annunci&apos; della ricerca nel database e su www.secondlife.com per una settimana.
+Compila il tuo annuncio e clicca &apos;Pubblica...&apos; per aggiungerlo al database.
+Ti verrà chiesto un prezzo da pagare quando clicchi su Pubblica.
+Pagare un prezzo più alto fa sì che il tuo annuncio compaia più in alto nella lista, e che sia più facile da trovare quando la gente ricerca per parole chiavi.
+ <usetemplate ignoretext="Mentre si aggiunge un annuncio" name="okcancelignore" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="DeleteClassified">
+ Cancella annuncio &apos;[NAME]&apos;?
+Non ci sono rimborsi per la tariffa pagata.
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="ClassifiedSave">
+ Salva le modifiche all&apos;annuncio [NAME]?
+ <usetemplate canceltext="Annulla" name="yesnocancelbuttons" notext="Non salvare" yestext="Salva"/>
+ </notification>
+ <notification name="DeleteAvatarPick">
+ Cancella il favorito [PICK]?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="PromptGoToEventsPage">
+ Vai alla pagina degli eventi di [SECOND_LIFE]?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="SelectProposalToView">
+ Scegli una proposta da vedere.
+ </notification>
+ <notification name="SelectHistoryItemToView">
+ Scegli un item storico da vedere.
+ </notification>
+ <notification name="ResetShowNextTimeDialogs">
+ Vuoi riabilitare tutti le finestre di popup, che precedentemente hai indicato che &apos;Non vuoi vedere più&apos;?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="SkipShowNextTimeDialogs">
+ Vuoi disabilitare tutti i popup che possono essere ignorati?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="CacheWillClear">
+ La Cache verrà pulita dopo il riavvio di [SECOND_LIFE].
+ </notification>
+ <notification name="CacheWillBeMoved">
+ La Cache verrà traslocata dopo il riavvio di [SECOND_LIFE].
+Nota: Questo pulirà la cache.
+ </notification>
+ <notification name="ChangeConnectionPort">
+ Le impostazioni delle porte avranno effetto dopo il riavvio di [SECOND_LIFE].
+ </notification>
+ <notification name="ChangeSkin">
+ La nuova pelle apparità dopo il riavvio di [SECOND_LIFE].
+ </notification>
+ <notification name="GoToAuctionPage">
+ Vai alla pagina web [SECOND_LIFE] per vedere i dettagli dell&apos;asta oppure fai un&apos;offerta?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="SaveChanges">
+ Salva le modifiche?
+ <usetemplate canceltext="Annulla" name="yesnocancelbuttons" notext="Non salvare" yestext="Salva"/>
+ </notification>
+ <notification name="GestureSaveFailedTooManySteps">
+ Il salvataggio della Gesture è fallito.
+La gesture ha troppi passi.
+Prova a togliere qualche passo e quindi risalva.
+ </notification>
+ <notification name="GestureSaveFailedTryAgain">
+ Il salvataggio della gesture è fallito. Riprova fra un minuto.
+ </notification>
+ <notification name="GestureSaveFailedObjectNotFound">
+ Non è possibile salvare la gesture perchè non è stato trovato l&apos;oggetto o l&apos;inventario associato.
+L&apos;oggetto potrebbe essere troppo lontano oppure essere stato cancellato.
+ </notification>
+ <notification name="GestureSaveFailedReason">
+ C&apos;è stato un problema salvando la gesture a causa del seguente motivo: [REASON]. Riprova a salvare la gesture più tardi.
+ </notification>
+ <notification name="SaveNotecardFailObjectNotFound">
+ Non è possibile salvare la notecard perchè non è stato trovato l&apos;oggetto o l&apos;inventario associato.
+L&apos;oggetto potrebbe essere troppo lontano oppure essere stato cancellato.
+ </notification>
+ <notification name="SaveNotecardFailReason">
+ C&apos;è stato un problema salvando la notecard a causa del seguente motivo: [REASON]. Riprova a salvare la notecard più tardi.
+ </notification>
+ <notification name="ScriptCannotUndo">
+ Non è stato possibile annullare tutti i cambiamenti nella tua versione dello script.
+Vuoi ripristinare l&apos;ultima versione salvata sul server?
+(**Attenzione** Questa operazione non è reversibile)
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="SaveScriptFailReason">
+ C&apos;è stato un problema salvando lo script a causa del seguente motivo : [REASON]. Riprova a salvare lo script più tardi.
+ </notification>
+ <notification name="SaveScriptFailObjectNotFound">
+ Non è stato possibile salvare lo script perchè l&apos;oggetto che lo contiene non è stato trovato.
+L&apos;oggetto potrebbe essere troppo lontano oppure essere stato cancellato.
+ </notification>
+ <notification name="SaveBytecodeFailReason">
+ C&apos;è stato un problema salvando lo script compilato a causa del seguente motivo: [REASON]. Riprova a salvare lo script più tardi.
+ </notification>
+ <notification name="CouldNotStartStopScript">
+ Non è stato possibile lanciare o fermare lo script perchè l&apos;oggetto che lo contiene non è stato trovato.
+L&apos;oggetto potrebbe essere troppo lontano oppure essere stato cancellato.
+ </notification>
+ <notification name="CannotDownloadFile">
+ Non è stato possibile scaricare il file
+ </notification>
+ <notification name="CannotWriteFile">
+ Non è stato possibile scrivere il file [[FILE]]
+ </notification>
+ <notification name="UnsupportedHardware">
+ Attenzione: Il tuo sistema non soddisfa i requisiti minimi per il funzionamento Second Life. Se continui ad usare Second Life, potresti osservare una lentezza eccessiva. Sfortunatamente non possiamo fornire supporto tecnico per configurazioni di sistema non supportate.
+
+MINSPECS
+Vuoi visitare [_URL] per maggiori informazioni?
+ <url name="url" option="0">
+ http://secondlife.com/support/sysreqs.php?lang=it
+ </url>
+ <usetemplate ignoretext="Mentre sto individuando hardware non supportato" name="okcancelignore" notext="No" yestext="Si"/>
+ </notification>
+ <notification name="UnknownGPU">
+ Il tuo sistema contiene una scheda grafica che attualmente non supportiamo.
+Questo succede spesso con nuovi prodotti che non siamo riusciti a verificare. Probabilmente Second Life funzionerà correttamente ma forse dovrai modificare le impostazioni grafiche in modo appropriato.
+(Modifica &gt; Preferenze &gt; Grafica).
+ <form name="form">
+ <ignore name="ignore" text="Mentre stavo valutando una scheda grafica sconosciuta"/>
+ </form>
+ </notification>
+ <notification name="DisplaySettingsNoShaders">
+ [SECOND_LIFE] si è bloccata mentre stava inizializzando i driver grafici.
+La qualità grafica verrà impostata al valore basso per evitare alcuni degli errori più comuni con i driver.
+Questo però disabiliterà alcune funzioni grafiche.
+Ti raccomandiamo di aggiornare i driver della tua scheda grafica.
+La qualità grafica può essere aumentara in Preferenze &gt; Grafica.
+ </notification>
+ <notification name="RegionNoTerraforming">
+ La regione [REGION] non consente di terraformare.
+ </notification>
+ <notification name="CannotCopyWarning">
+ Non hai il permesso di copiare questo elemento e lo perderai dal tuo inventario se lo regali.
+Confermi veramente di offrire questo elemento?
+ <usetemplate name="okcancelbuttons" notext="No" yestext="Si"/>
+ </notification>
+ <notification name="CannotGiveItem">
+ Impossibile consegnare l&apos;elemento dell&apos;inventario.
+ </notification>
+ <notification name="TransactionCancelled">
+ La transazione è stata annullata.
+ </notification>
+ <notification name="TooManyItems">
+ Non è possibile dare più di 42 elementi in un singolo trasferimento di inventario.
+ </notification>
+ <notification name="NoItems">
+ Non hai i permessi di trasferimento per gli elementi selezionati.
+ </notification>
+ <notification name="CannotCopyCountItems">
+ Non hai i permessi di copia per copiare [COUNT]
+degli elementi selezionati. Perderai questi elementi dal tuo inventario.
+Vuoi veramente perdere questi elementi?
+ <usetemplate name="okcancelbuttons" notext="No" yestext="Si"/>
+ </notification>
+ <notification name="CannotGiveCategory">
+ Non hai i permessi per trasferire la cartella selezionata.
+ </notification>
+ <notification name="FreezeAvatar">
+ Immobilizza questo avatar?
+Non potrà temporaneamente muoversi, chiacchierare in chat, o interagire con il mondo.
+ <usetemplate canceltext="Annulla" name="yesnocancelbuttons" notext="Smobilizza" yestext="Immobilizza"/>
+ </notification>
+ <notification name="FreezeAvatarFullname">
+ Immobilizza [AVATAR_NAME]?
+Non potrà temporaneamente muoversi, chiacchierare in chat, o interagire con il mondo.
+ <usetemplate canceltext="Annulla" name="yesnocancelbuttons" notext="Smobilizza" yestext="Immobilizza"/>
+ </notification>
+ <notification name="EjectAvatarFullname">
+ Espelli [AVATAR_NAME] dal tuo terreno?
+ <usetemplate canceltext="Annulla" name="yesnocancelbuttons" notext="Espelli e blocca" yestext="Espelli"/>
+ </notification>
+ <notification name="EjectAvatarNoBan">
+ Espelli questo avatar dal tuo terreno?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="Espelli"/>
+ </notification>
+ <notification name="EjectAvatarFullnameNoBan">
+ Espelli [AVATAR_NAME] dal tuo terreno?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="Espelli"/>
+ </notification>
+ <notification name="AcquireErrorTooManyObjects">
+ ERRORE DI ACQUISIZIONE: hai selezionato troppi oggetti.
+ </notification>
+ <notification name="AcquireErrorObjectSpan">
+ ERRORE DI ACQUISIZIONE: Gli oggetti sono a cavallo di più di una regione.
+Sposta tutti gli oggetti che vuoi acquisire su una sola regione.
+ </notification>
+ <notification name="PromptGoToCurrencyPage">
+ [EXTRA]
+
+Vuoi andare su [URL] per maggiori informazioni su come acquistare denaro?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="UnableToLinkObjects">
+ Impossibile unire questi [COUNT] oggetti.
+Puoi unire al massimo [MAX] oggetti.
+ </notification>
+ <notification name="CannotLinkIncompleteSet">
+ Puoi unire soltanto un insieme completo di oggetti, e devi selezionare più di un oggetto.
+ </notification>
+ <notification name="CannotLinkModify">
+ Impossibile unire perchè non hai il diritto di modifica su tutti gli oggetti.
+
+Accertati che nessuno sia bloccato e che li possiedi tutti.
+ </notification>
+ <notification name="CannotLinkDifferentOwners">
+ Impossibile unire perche non tutti gli oggetti hanno lo stesso proprietario.
+
+Accertati di possedere tutti gli oggetti selezionati.
+ </notification>
+ <notification name="NoFileExtension">
+ Manca l&apos;estensione per il file: &apos;[FILE]&apos;
+
+Accertati che il file abbia una estensione corretta.
+ </notification>
+ <notification name="InvalidFileExtension">
+ L&apos;estensione [EXTENSION] del file non è valida
+Attese [VALIDS]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="CannotUploadSoundFile">
+ Impossibile aprire in lettura il file di suono importato:
+[FILE]
+ </notification>
+ <notification name="SoundFileNotRIFF">
+ Il file audio non sembra essere di tipo RIFF WAVE:
+[FILE]
+ </notification>
+ <notification name="SoundFileNotPCM">
+ Il file audio non sembra essere di tipo PCM WAVE:
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidChannelCount">
+ Il file ha un numero sbagliato di canali (deve essere mono oppure stereo):
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidSampleRate">
+ Il file non sembra essere della frequenza di campionamento supportata (deve essere 44.1k):
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidWordSize">
+ Il file non sembra avere una dimensione della parola supportata (deve essere a 8 o a 16 bit):
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidHeader">
+ Impossibile trovare il frammento &apos;data&apos; nell&apos;intestazione WAV:
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidTooLong">
+ Il file audio è troppo lungo (deve essere al massimo 10 secondi):
+[FILE]
+ </notification>
+ <notification name="ProblemWithFile">
+ Problemi con il file [FILE]:
+
+[ERROR]
+ </notification>
+ <notification name="CannotOpenTemporarySoundFile">
+ Impossibile aprire in scrittura il file temporaneamente compresso: [FILE]
+ </notification>
+ <notification name="UnknownVorbisEncodeFailure">
+ Errore di codifica Vorbis sconosciuta per: [FILE]
+ </notification>
+ <notification name="CannotEncodeFile">
+ Impossibile codificare il file: [FILE]
+ </notification>
+ <notification name="CorruptResourceFile">
+ File risorsa corrotto: [FILE]
+ </notification>
+ <notification name="UnknownResourceFileVersion">
+ Versione di risorsa Linden sconosciuta nel file: [FILE]
+ </notification>
+ <notification name="UnableToCreateOutputFile">
+ Impossibile creare il file in uscita: [FILE]
+ </notification>
+ <notification name="DoNotSupportBulkAnimationUpload">
+ Non supportiamo attualmente l&apos;upload multiplo di file di animazione.
+ </notification>
+ <notification name="CannotUploadReason">
+ Impossibile importare il file [FILE] a causa del seguente motivo: [REASON]
+Riprova più tardi.
+ </notification>
+ <notification name="CannotCreateLandmarkNotOwner">
+ Non puoi creare qui un landmark perchè il proprietario di questo terreno non lo consente.
+ </notification>
+ <notification name="CannotRecompileSelectObjectsNoScripts">
+ Impossibile fare la &apos;ricompilazione&apos;.
+Seleziona un oggetto con uno script.
+ </notification>
+ <notification name="CannotRecompileSelectObjectsNoPermission">
+ Impossibile fare la &apos;ricompilazione&apos;.
+
+Seleziona oggetti con script su cui hai i permessi di modifica.
+ </notification>
+ <notification name="CannotResetSelectObjectsNoScripts">
+ Impossibile fare &apos;ripristino&apos;.
+
+Seleziona oggetti con degli script.
+ </notification>
+ <notification name="CannotResetSelectObjectsNoPermission">
+ Impossibile fare &apos;ripristino&apos;.
+
+Seleziona oggetti con script su cui hai i permessi di modifica.
+ </notification>
+ <notification name="CannotSetRunningSelectObjectsNoScripts">
+ Impossibile mettere &apos;in esecuzione&apos; gli script.
+
+Seleziona oggetti con script.
+ </notification>
+ <notification name="CannotSetRunningNotSelectObjectsNoScripts">
+ Impossibile impostare script a &apos;non in esecuzione&apos;.
+
+Seleziona oggetti con script.
+ </notification>
+ <notification name="NoFrontmostFloater">
+ Non c&apos;è nessuna finestra in evidenza (in primo piano) da salvare.
+ </notification>
+ <notification name="SeachFilteredOnShortWords">
+ La tua ricerca è stata modificata.
+Le parole troppo corte sono state rimosse.
+
+Ho cercato: [FINALQUERY]
+ </notification>
+ <notification name="SeachFilteredOnShortWordsEmpty">
+ Le parole che hai usato per la ricerca sono troppo corte e non è stato possibile iniziare la ricerca.
+ </notification>
+ <notification name="CouldNotTeleportReason">
+ Impossibile eseguire il teleport.
+[REASON]
+ </notification>
+
+ <notification name="invalid_tport">
+C&apos;è stato un problema nell&apos;elaborare la tua richiesta di teletrasporto. Potresti aver bisogno di ricollegarti prima di poter usare il teletrasporto. Se continui ad avere problemi, controlla per favore le FAQ del Supporto Tecnico a:
+www.secondlife.com/support
+ </notification>
+ <notification name="invalid_region_handoff">
+C&apos;è stato un problema nell&apos;elaborare il cambio di regione. Potresti aver bisogno di ricollegarti prima di poterlo effetuare. Se continui ad avere problemi, controlla per favore le FAQ del Supporto Tecnico a:
+www.secondlife.com/support
+ </notification>
+ <notification name="blocked_tport">
+Spiacenti, il teletrasporto è bloccato al momento. Prova di nuovo tra pochi istanti. Se ancora non potrai teletrasportarti, per favore scollegati e ricollegati per risolvere il problema.
+ </notification>
+ <notification name="nolandmark_tport">
+Spiacenti, ma il sistema non riesce a localizzare la destinazione del landmark
+ </notification>
+ <notification name="timeout_tport">
+Spiacenti, il sistema non riesce a completare il teletrasporto. Riprova tra un attimo.
+ </notification>
+ <notification name="noaccess_tport">
+Spiacenti, ma non hai accesso nel luogo di destinazione richiesto.
+ </notification>
+ <notification name="missing_attach_tport">
+Gli oggetti da te indossati non sono ancoa arrivati. Attendi ancora qualche secondo o scollegati e ricollegati prima di provare a teleportarti.
+ </notification>
+ <notification name="too_many_uploads_tport">
+La gestione dati della regione è al momento occupata e la tua richiesta di teletrasporto non può essere soddisfatta entro breve tempo. Per favore prova di nuovo tra qualche minuto o spostati in un&apos;area meno affollata.
+ </notification>
+ <notification name="expired_tport">
+Spiacenti, il sistema non riesce a soddisfare la tua richiesta di teletrasporto entro un tempo ragionevole. Riprova tra qualche minuto.
+ </notification>
+ <notification name="expired_region_handoff">
+Spiacenti, il sistema non riesce a completare il cambio di regione entro un tempo ragionevole. Riprova tra qualche minuto.
+ </notification>
+ <notification name="no_host">
+Impossibile trovare la destinazione del teletrasporto; potrebbe essere temporaneamente non accessibile o non esistere più. Riprovaci tra qualche minuto.
+ </notification>
+ <notification name="no_inventory_host">
+L&apos;inventario è temporaneamente inaccessibile.
+ </notification>
+
+ <notification name="CannotSetLandOwnerNothingSelected">
+ Impossibile impostare il proprietario del terreno:
+Nessun terreno selezionato.
+ </notification>
+ <notification name="CannotSetLandOwnerMultipleRegions">
+ Impossibile forzare la proprietà del terreno perchè la selezione si estende su diverse regioni. Seleziona una area più piccola e riprova.
+ </notification>
+ <notification name="ForceOwnerAuctionWarning">
+ Questo terreno è venduta all&apos;asta. Forzare la proprietà cancellerà l&apos;asta e potrebbe disturbare residenti che abbiano già fatto offerte.
+Vuoi forzare la proprietà?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="CannotContentifyNothingSelected">
+ Impossibile fare la contentificazione:
+Nessun terreno selezionato.
+ </notification>
+ <notification name="CannotContentifyNoRegion">
+ Impossibile fare la contentificazione:
+Nessuna regione selezionata.
+ </notification>
+ <notification name="CannotReleaseLandNothingSelected">
+ Impossibile abbandonare il terreno:
+Nessun terreno selezionato.
+ </notification>
+ <notification name="CannotReleaseLandNoRegion">
+ Impossibile abbandonare il terreno:
+Non riesco a trovare la regione.
+ </notification>
+ <notification name="CannotBuyLandNothingSelected">
+ Impossibile comprare il terreno:
+Nessun terreno selezionato.
+ </notification>
+ <notification name="CannotBuyLandNoRegion">
+ Impossibile comprare il terreno:
+Non riesco a trovare la regione dove è situato il terreno.
+ </notification>
+ <notification name="CannotCloseFloaterBuyLand">
+ Non puoi chiudere la finestra di Acquisto Terreno finchè Second Life non stima il prezzo di questa transazione.
+ </notification>
+ <notification name="CannotDeedLandNothingSelected">
+ Impossibile cedere il terreno:
+Nessun terreno selezionato.
+ </notification>
+ <notification name="CannotDeedLandNoGroup">
+ Impossibile cedere il terreno:
+Nessun gruppo selezionato.
+ </notification>
+ <notification name="CannotDeedLandNoRegion">
+ Impossibile cedere il terreno:
+Non riesco a trovare la regione dove è situato il terreno.
+Usa Strumenti -&gt; Segnala Bug per segnalare il problema.
+ </notification>
+ <notification name="CannotDeedLandMultipleSelected">
+ Impossibile cedere il terreno:
+Hai selezionato più di un terreno.
+
+Prova a selezionare un solo terreno.
+ </notification>
+ <notification name="ParcelCanPlayMedia">
+ Questo posto offre contenuto multimediale in streaming.
+Ricevere lo streaming multimediale richiede una connessione internet veloce.
+
+Vuoi vedere il contenuto multimediale quando è disponibile?
+(Puoi cambiare questa opzione in seguito scegliendo Preferenze &gt; Audio &amp; Video.)
+ <usetemplate name="okcancelbuttons" notext="Disabilita" yestext="Abilita MultiMedia"/>
+ </notification>
+ <notification name="CannotDeedLandWaitingForServer">
+ Impossibile cedere il terreno:
+Sto aspettando il server per segnalare la proprietà.
+
+Riprova di nuovo.
+ </notification>
+ <notification name="CannotDeedLandNoTransfer">
+ Impossibile cedere il terreno:
+La regione [REGION] non consente il trasferimento di terreni.
+ </notification>
+ <notification name="CannotReleaseLandWatingForServer">
+ Impossibile abbandonare il terreno:
+Sto aspettando il server per aggiornare le informazioni del terreno.
+
+Riprova fra poco.
+ </notification>
+ <notification name="CannotReleaseLandSelected">
+ Impossibile abbandonare il terreno:
+Non possiedi tutti i terreni selezionati.
+
+Seleziona un solo terreno.
+ </notification>
+ <notification name="CannotReleaseLandDontOwn">
+ Impossibile abbandonare il terreno:
+Non hai i permessi per rilasciare questo terreno.
+I terreni di tua proprietà vengono visualizzati in verde.
+ </notification>
+ <notification name="CannotReleaseLandRegionNotFound">
+ Impossibile abbandonare il terreno:
+Non riesco a trovare la regione dove è situato il terreno.
+
+Usa Strumenti &gt; Segnala Bug segnalare questo problema.
+ </notification>
+ <notification name="CannotReleaseLandNoTransfer">
+ Impossibile abbandonare il terreno:
+La regione [REGION] non consente il trasferimento di terreni.
+ </notification>
+ <notification name="CannotReleaseLandPartialSelection">
+ Impossibile abbandonare il terreno:
+Devi selezionare un terreno intero per rilasciarla.
+
+Seleziona un terreno intero, oppure dividi prima il tuo terreno.
+ </notification>
+ <notification name="ReleaseLandWarning">
+ Stai per rilasciare [AREA] m² di terreno.
+Rilasciare questo appezzamento di terreno lo toglierà dalle tue proprietà, ma non ti verranno dati L$.
+
+Rilasciare questo terreno?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="CannotDivideLandNothingSelected">
+ Impossibile dividere il terreno:
+
+Non sono stati selezionati terreni.
+ </notification>
+ <notification name="CannotDivideLandPartialSelection">
+ Impossibile dividere il terreno:
+
+Hai selezionato unintero terreno.
+Prova a selezionare unappezzamento di terreno.
+ </notification>
+ <notification name="LandDivideWarning">
+ La suddivisione di questo terreno lo dividerà in due parti ed ognuna potrà avere le sue impostazioni. Alcune impostazioni verranno reimpostate ai valori iniziali dopo l&apos;operazione.
+
+Dividi il terreno?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="CannotDivideLandNoRegion">
+ Impossibile dividere il terreno:
+Non riesco a trovare la regione dove è situato.
+
+Usa Strumenti -&gt; Segnala Bug per segnalare il problema.
+ </notification>
+ <notification name="CannotJoinLandNoRegion">
+ Impossibile unire il terreno:
+Non riesco a trovare la regione dove è situato.
+
+Usa Strumenti -&gt; Segnala Bug per segnalare il problema.
+ </notification>
+ <notification name="CannotJoinLandNothingSelected">
+ Impossibile unire il terreno:
+Non hai selezionato terreno.
+ </notification>
+ <notification name="CannotJoinLandEntireParcelSelected">
+ Impossibile unire il terreno:
+Hai selezionato un solo terreno.
+
+Devi selezionare il terreno comprendendo entrambi gli appezzamenti.
+ </notification>
+ <notification name="CannotJoinLandSelection">
+ Impossibile unire il terreno:
+Devi selezionare più di un terreno.
+
+Devi selezionare il terreno comprendendo entrambi gli appezzamenti.
+ </notification>
+ <notification name="JoinLandWarning">
+ Unire questi appezzamenti creerà un terreno più grande a partire da tutti gli appezzamenti che si intersecano nel rettangolo selezionato.
+Dovrai reimpostare il nome e le opzioni del nuovo terreno.
+
+Unisci il terreno?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="ShowOwnersHelp">
+ Mostra i proprietari:
+colora i terreni per mostrare i diversi tipi di proprietari.
+
+Verde = il tuo terreno
+Acqua = la terra del tuo gruppo
+Rosso = posseduta da altri
+Giallo = in vendita
+Viola = in asta
+Grigia = pubblica
+ </notification>
+ <notification name="ConfirmNotecardSave">
+ Questa notecard deve essere salvata prima che l&apos;elemento possa essere copiato o visualizzato. Salva la notecard?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmItemCopy">
+ Copia questo elemento nel tuo inventario?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="Copia"/>
+ </notification>
+ <notification name="ResolutionSwitchFail">
+ Non sono riuscito a cambiare la risoluzione al valore [RESX] x [RESY]
+ </notification>
+ <notification name="ErrorUndefinedGrasses">
+ Errore: Erba sconosciuta: [SPECIES]
+ </notification>
+ <notification name="ErrorUndefinedTrees">
+ Errore: Alberi sconosciuti: [SPECIES]
+ </notification>
+ <notification name="CannotSaveWearableOutOfSpace">
+ Impossibile salvare &apos;[NAME]&apos; nel file di oggetti indossabili. Dovrai liberare dello spazio sul tuo computer e salvare di nuovo.
+ </notification>
+ <notification name="CannotSaveToAssetStore">
+ Impossibile salvare [NAME] nel database centrale.
+Normalmente questo problema è temporaneo. Riprova a generare la parte indossabile e a salvarla fra qualche minuto.
+
+Se questo problema persiste, clicca sul menu a tendina &apos;Strumenti &gt; Segnala Bug&apos; e fornisci i dettagli sulla tua configurazione di rete.
+ </notification>
+ <notification name="YouHaveBeenLoggedOut">
+ Sei stato sconnesso da [SECOND_LIFE]:
+ [MESSAGE]
+Puoi ancora vedere i tuoi IM e la chat cliccando &apos;Vedi IM &amp; Chat&apos;. Altrimenti, clicca &apos;Esci&apos; per uscire immediatamente da [SECOND_LIFE].
+ <usetemplate name="okcancelbuttons" notext="Esci" yestext="Vedi IM &amp; Chat"/>
+ </notification>
+ <notification name="OnlyOfficerCanBuyLand">
+ Impossibile comprare terreno per il gruppo:
+Non hai i permessi per comprare il terreno per il tuo gruppo attivo.
+ </notification>
+ <notification label="Aggiungi Amico" name="AddFriend">
+ Gli amici possono autorizzarsi a vedersi l&apos;un l&apos;altro sulla mappa e sapere quando sono collegati.
+
+Offri l&apos;amicizia a [NAME]?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification label="Aggiungi Amico" name="AddFriendWithMessage">
+ Gli amici possono autorizzarsi a vedersi l&apos;un l&apos;altro sulla mappa e sapere quando sono collegati.
+
+Offri l&apos;amicizia a [NAME]?
+ <form name="form">
+ <input name="message" type="text">
+ Vorresti essere mio amico?
+ </input>
+ <button name="Offer" text="OK"/>
+ <button name="Cancel" text="Annulla"/>
+ </form>
+ </notification>
+ <notification name="RemoveFromFriends">
+ Vuoi rimuovere remove [FIRST_NAME] [LAST_NAME] dalla lista dei tuoi amici?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="RemoveMultipleFromFriends">
+ Vuoi rimuovere gli amici selezionati dalla lista dei tuoi amici?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="GodDeleteAllScriptedPublicObjectsByUser">
+ Confermi di volere cancellare tutti gli oggetti scriptati della proprietà di
+** [AVATAR_NAME] **
+su tutti gli altri terreni di questa sim?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="GodDeleteAllScriptedObjectsByUser">
+ Confermi la CANCELLAZIONE di TUTTI gli oggetti scriptati posseduti da
+** [AVATAR_NAME] **
+su TUTTI I TERRENI di questa sim?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="GodDeleteAllObjectsByUser">
+ Confermi la CANCELLAZIONE di TUTTI gli oggetti (scriptati o no) posseduti da
+** [AVATAR_NAME] **
+su TUTTI I TERRENI di questa sim?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="BlankClassifiedName">
+ Devi specificare un nome per il tuo annuncio.
+ </notification>
+ <notification name="MinClassifiedPrice">
+ Il prezzo da pagare per essere messo in lista deve essere almeno [MIN_PRICE]L$.
+
+Introduci un prezzo più alto.
+ </notification>
+ <notification name="ConfirmObjectDeleteLock">
+ Almeno uno degli elementi selezionati è bloccato.
+
+Confermi di voler cancellare questi elementi?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteNoCopy">
+ Almeno uno degli elementi selezionati non è copiabile.
+
+Confermi di voler cancellare questi elementi?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteNoOwn">
+ Non possiedi neanche uno degli oggetti selezionati.
+
+Confermi di voler cancellare questi elementi?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteLockNoCopy">
+ Almeno un oggetto è bloccato.
+Almeno un oggetto è non copiabile.
+
+Confermi di voler cancellare questi elementi?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteLockNoOwn">
+ Almeno un oggetto è bloccato.
+Non possiedi neanche un oggetto.
+
+Confermi di voler cancellare questi elementi?
+ <usetemplate name="okcancelbuttons" notext="Cancella" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteNoCopyNoOwn">
+ Almeno un oggetto non è copiabile.
+Non possiedi neanche un oggetto.
+
+Confermi di voler cancellare questi elementi?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteLockNoCopyNoOwn">
+ Almeno un oggetto è bloccato.
+Almeno un oggetto è non copiabile.
+Non possiedi neanche un oggetto.
+
+Confermi di voler cancellare questi elementi?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectTakeLock">
+ Almeno un oggetto è bloccato.
+
+Confermi di voler prendere questi elementi?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectTakeNoOwn">
+ Non possiedi tutti gli oggetti che stai prendendo.
+Se continui, verranno applicate i permessi per il prossimo proprietario e di conseguenza potrebbero venire ristrette le tue possibilità di modificarli o di copiarli.
+
+Confermi di voler prendere questi elementi?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectTakeLockNoOwn">
+ Almeno un oggetto è bloccato.
+Non possiedi tutti gli oggetti che stai prendendo.
+Se continui, verranno applicate i permessi per il prossimo proprietario e di conseguenza potrebbero venire ristrette le tue possibilità di modificarli o di copiarli.
+Puoi comunque prendere gli oggetti selezionati.
+
+Confermi di voler prendere questi elementi?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="CantBuyLandAcrossMultipleRegions">
+ Impossibile comprare il terreno perchè la selezione comprende più regioni.
+
+Seleziona un&apos;area più piccola e riprova.
+ </notification>
+ <notification name="DeedLandToGroup">
+ Cedendo questo terreno al gruppo sara richiesto ai componenti di avere e di mantenere il terreno con un credito sufficiente.
+Il prezzo di acquisto del terreno non è rifondibile al proprietario.
+Se una terreno ceduto al gruppo viene venduto, il prezzo di vendita verrà diviso in parti uguali fra i membri del gruppo.
+
+Cedi questo terreno di [AREA] m² al gruppo &apos;[GROUP_NAME]&apos;?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="DeedLandToGroupWithContribution">
+ Cedendo questo terreno al gruppo sara richiesto hai componenti di avere e di mantenere il terreno con un credito sufficiente.
+La cessione include un contributo simultaneo di terreno al gruppo da &apos;[FIRST_NAME] [LAST_NAME]&apos;.
+Il prezzo di acquisto del terreno non è rifondibile al proprietario.
+Se una terreno ceduto al gruppo viene venduto, il prezzo di vendita viene diviso in parti uguali fra i membri del gruppo.
+
+Cedi questo terreno di [AREA] m² al gruppo &apos;[GROUP_NAME]&apos;?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="DisplaySetToSafe">
+ Le impostazioni dello schermo sono state impostate a valori di sicurezza perchè hai specificato l&apos;opzione -safe.
+ </notification>
+ <notification name="DisplaySetToRecommended">
+ Le impostazioni dello schermo sono state impostate a valori ottimali basati sulla tua configurazione di sistema.
+ </notification>
+ <notification name="ErrorMessage">
+ [ERROR_MESSAGE]
+ </notification>
+ <notification name="AvatarMoved">
+ La tua locazione [TYPE] non è al momento disponibile.
+[HELP]
+Il tuo avatar è stato spostato in una regione vicina.
+ </notification>
+ <notification name="ClothingLoading">
+ I tuoi vestiti stanno ancora scaricandosi.
+Puoi usare [SECOND_LIFE] normalmente e gli altri utenti ti vedranno correttamente.
+ <form name="form">
+ <ignore name="ignore" text="se gli abiti ci impiegano troppo tempo a scaricarsi"/>
+ </form>
+ </notification>
+ <notification name="FirstRun">
+ L&apos;installazione di [SECOND_LIFE] è completata.
+
+Se questa è la prima volta che usi [SECOND_LIFE], avari bisogno di creare un account prima di poterti collegare.
+Vai su www.secondlife.com per creare un nuovo account?
+ <usetemplate name="okcancelbuttons" notext="Continua" yestext="Nuovo Account..."/>
+ </notification>
+ <notification name="LoginPacketNeverReceived">
+ Ci sono stati problemi durante la connessione. Potrebbero esserci problemi con la tua connessione ad internet oppure con i server di Second Life.
+
+Puoi controllare la tua connessione internet e riprovare fra qualche minuto, oppure cliccare su Aiuto per collegarti al nostro sito di supporto, oppure cliccare teleporta per cercare di teleportarti a casa.
+ <form name="form">
+ <button name="OK" text="OK"/>
+ <button name="Help" text="Aiuto"/>
+ <button name="Teleport" text="Teleportati"/>
+ </form>
+ </notification>
+ <notification name="WelcomeChooseSex">
+ Il tuo avatar apparirà fra un attimo.
+
+Usa le frecce per camminare.
+Premi F1 in qualunque momento per aiuto o per apprendere altre cose su [SECOND_LIFE].
+Scegli l&apos;avatar maschile o femminile. Puoi sempre cambiare idea più tardi.
+ <usetemplate name="okcancelbuttons" notext="Femminile" yestext="Maschile"/>
+ </notification>
+ <notification name="NotEnoughCurrency">
+ [NAME] [PRICE]L$ Non hai abbastanza L$ per farlo.
+ </notification>
+ <notification name="GrantedModifyRights">
+ Ti sono stati accordati i privilegi di modifica degli oggetti di [FIRST_NAME] [LAST_NAME].
+ </notification>
+ <notification name="RevokedModifyRights">
+ Ti sono stati revocati i privilegi di modifica degli oggetti di [FIRST_NAME] [LAST_NAME].
+ </notification>
+ <notification name="FlushMapVisibilityCaches">
+ Questo reinizializzerà la cache della mappa di questa regione.
+Funzione usata solo per il debug.
+(Per la produzione, attendere 5 minuti, dopo di che tutte le mappe di ognuno si aggiorneranno dopo la loro riconnessione)
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="BuyOneObjectOnly">
+ Non è possibile acquistare più di un oggetto alla volta. Riprova selezionando un solo oggetto.
+ </notification>
+ <notification name="OnlyCopyContentsOfSingleItem">
+ Impossibile copiare il contenuto di più di un elemento alla volta.
+Scegli solo un oggetto e riprova.
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="KickUsersFromRegion">
+ Teleporta a casa tutti i residenti in questa regione?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="EstateObjectReturn">
+ Confermi di voler restituire gli oggetti di proprietà di [USER_NAME] ?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="InvalidTerrainBitDepth">
+ Impossibile impostare le texture della regione:
+La texture del terreno [TEXTURE_NUM] ha una profondità di bit pari a [TEXTURE_BIT_DEPTH] non corretta.
+
+Sostituisci la texture [TEXTURE_NUM] con una a 24-bit 512x512 o una immagine più piccola e quindi clicca nuovamente su &quot;Applica&quot;.
+ </notification>
+ <notification name="InvalidTerrainSize">
+ Impossibile impostare le texture di regione:
+La texture del terreno [TEXTURE_NUM] è troppo grande se a [TEXTURE_SIZE_X]x[TEXTURE_SIZE_Y].
+
+Sostituisci la texture [TEXTURE_NUM] con una a 24-bit 512x512 oppure con una immagine più piccola e quindi clicca di nuovo &quot;Applica&quot;.
+ </notification>
+ <notification name="RawUploadStarted">
+ Importazione iniziata. Può impiegare fino a due minuti, a seconda della velocità della tua connessione.
+ </notification>
+ <notification name="ConfirmBakeTerrain">
+ Vuoi veramente impostare come base il terreno corrente, impostarlo come riferimento per i limiti dei rialzi/abbassamenti di tutto il territorio ed il suo valore impostato come base per lo strumento &apos;Ripristina&apos;?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="MaxAllowedAgentOnRegion">
+ Puoi avere al massimo [MAX_AGENTS] residenti consentiti.
+ </notification>
+ <notification name="MaxBannedAgentsOnRegion">
+ Puoi avere al massimo [MAX_BANNED] residenti bloccati.
+ </notification>
+ <notification name="MaxAgentOnRegionBatch">
+ E&apos; fallito il tentativo di aggiungere [NUM_ADDED] avatar:
+Eccede il [MAX_AGENTS] [LIST_TYPE] limite di [NUM_EXCESS].
+ </notification>
+ <notification name="MaxAllowedGroupsOnRegion">
+ Puoi avere al massimo [MAX_GROUPS] gruppi.
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="Imposta come predefinito"/>
+ </notification>
+ <notification name="MaxManagersOnRegion">
+ Puoi avere al massimo [MAX_MANAGER] manager della proprietà immobiliare.
+ </notification>
+ <notification name="OwnerCanNotBeDenied">
+ Impossibile aggiungere i proprietari della proprietà immobiliare alla lista dei residenti bloccati.
+ </notification>
+ <notification name="CanNotChangeAppearanceUntilLoaded">
+ Impossibile cambiare l&apos;aspetto fisico finchè gli abiti e i vestiti non sono caricati.
+ </notification>
+ <notification name="ClassifiedMustBeAlphanumeric">
+ Il nome del tuo annuncio deve iniziare con una lettera da A a Z oppure con un numero.
+Non sono consentiti caratteri di punteggiatura.
+ </notification>
+ <notification name="CantSetBuyObject">
+ Impossibile impostare &apos;Compra l&apos;oggetto&apos;, perchè l&apos;oggetto non è in vendita.
+Imposta l&apos;oggetto per la vendita e riprova.
+ </notification>
+ <notification name="FinishedRawDownload">
+ Hai terminato di scaricare il file del terreno nella cartella:
+[DOWNLOAD_PATH].
+ </notification>
+ <notification name="DownloadWindowsMandatory">
+ E&apos; disponibile una nuova versione di [SECOND_LIFE].
+[MESSAGE]
+Devi scaricare questo aggiornamento per usare [SECOND_LIFE].
+ <usetemplate name="okcancelbuttons" notext="Esci" yestext="Scarica l&apos;aggiornamento"/>
+ </notification>
+ <notification name="DownloadWindows">
+ E&apos; disponibile una versione aggiornata di [SECOND_LIFE].
+[MESSAGE]
+Questo aggiornamento non è obbligatorio, ma ti suggeriamo di installarlo per migliorarne le prestazioni e la stabilità.
+ <usetemplate name="okcancelbuttons" notext="Continua" yestext="Scarica l&apos;aggiornamento"/>
+ </notification>
+ <notification name="DownloadWindowsReleaseForDownload">
+ E&apos; disponibile una versione aggiornata di [SECOND_LIFE].
+[MESSAGE]
+Questo aggiornamento non è obbligatorio, ma ti suggeriamo di installarlo per migliorarne le prestazioni e la stabilità.
+ <usetemplate name="okcancelbuttons" notext="Continua" yestext="Scarica l&apos;aggiornamento"/>
+ </notification>
+ <notification name="DownloadMacMandatory">
+ E&apos; disponibile una nuova versione di [SECOND_LIFE].
+[MESSAGE]
+Devi scaricare questo aggiornamento per usare [SECOND_LIFE].
+
+Vuoi avviarne lo scaricamento nella tua cartella applicazioni?
+ <usetemplate name="okcancelbuttons" notext="Esci" yestext="Scarica l&apos;aggiornamento"/>
+ </notification>
+ <notification name="DownloadMac">
+ E&apos; disponibile una versione aggiornata di [SECOND_LIFE].
+[MESSAGE]
+Questo aggiornamento non è obbligatorio, ma ti suggeriamo di installarlo per migliorarne le prestazioni e la stabilità.
+
+Vuoi avviarne lo scaricamento nella tua cartella applicazioni?
+ <usetemplate name="okcancelbuttons" notext="Continua" yestext="Scarica l&apos;aggiornamento"/>
+ </notification>
+ <notification name="DownloadMacReleaseForDownload">
+ E&apos; disponibile una versione aggiornata di [SECOND_LIFE].
+[MESSAGE]
+Questo aggiornamento non è obbligatorio, ma ti suggeriamo di installarlo per migliorarne le prestazioni e la stabilità.
+
+Vuoi avviarne lo scaricamento nella tua cartella applicazioni?
+ <usetemplate name="okcancelbuttons" notext="Continua" yestext="Scarica l&apos;aggiornamento"/>
+ </notification>
+ <notification name="DeedObjectToGroup">
+ La cessione di questo oggetto farà in modo che il gruppo:
+* Riceva i L$ pagati all&apos;oggetto
+ <usetemplate ignoretext="Quando cedi oggetti ai gruppi" name="okcancelignore" notext="Annulla" yestext="Cedi"/>
+ </notification>
+ <notification name="WebLaunchExternalTarget">
+ Apri il tuo browser web per vedere questo contenuto?
+ <usetemplate ignoretext="Quando apri il browser di sistema per vedere una pagina web" name="okcancelignore" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchJoinNow">
+ Vuoi andare su www.secondlife.com per gestire il tuo account?
+ <usetemplate ignoretext="Quando lanci il browser web per gestire il tuo account" name="okcancelignore" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchBugReport101">
+ Visita la Wiki di [SECOND_LIFE] per imparare a segnalare un bug correttamente.
+ <usetemplate ignoretext="Quando lanci il browser web per vedere la Wiki di segnalazione bug base" name="okcancelignore" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchSecurityIssues">
+ Visita la Wiki di [SECOND_LIFE] per i dettagli su come segnalare un problema di sicurezza.
+ <usetemplate ignoretext="Quando lanci il browser web per vedere la Wiki sui problemi di sicurezza" name="okcancelignore" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchQAWiki">
+ Visita il controllo di qualità Wiki [SECOND_LIFE].
+ <usetemplate ignoretext="Quando lanci il browser web per vedere il controllo di qualità Wiki" name="okcancelignore" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchPublicIssue">
+ Visita il registro pubblico dei problemi di [SECOND_LIFE], dove puoi segnalare bug ed altri problemi.
+ <usetemplate ignoretext="Quando lanci il browser web per vedere il registro pubblico dei problemi" name="okcancelignore" notext="Annulla" yestext="Vai alla pagina"/>
+ </notification>
+ <notification name="WebLaunchPublicIssueHelp">
+ Visita la Wiki di [SECOND_LIFE] per le informazioni su come usare il registro pubblico dei problemi.
+ <usetemplate ignoretext="Quando lanci il browser web per vedere la Wiki del registro pubblico dei problemi" name="okcancelignore" notext="Annulla" yestext="Vai alla pagina"/>
+ </notification>
+ <notification name="WebLaunchSupportWiki">
+ Vai al blog ufficiale Linden, per le ultime notizie ed informazioni.
+ <usetemplate ignoretext="Quando lanci il browser web per vedere il blog" name="okcancelignore" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchLSLGuide">
+ Vai alla guida dello scripting per l&apos;aiuto sullo scripting?
+ <usetemplate ignoretext="Quando lanci il browser web per vedere la guida dello scripting" name="okcancelignore" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchLSLWiki">
+ Vai al portale LSL per aiuto sullo scripting?
+ <usetemplate ignoretext="Quando lanci il browser web per vedere il portale LSL" name="okcancelignore" notext="Annulla" yestext="Vai alla pagina"/>
+ </notification>
+ <notification name="ReturnToOwner">
+ Confermi di voler restituire gli oggetti selezionati ai loro proprietari? Gli oggetti trasferibili ceduti al gruppo, verranno restituiti ai proprietari precedenti.
+
+*ATTENZIONE* Gli oggetti ceduti non trasferibili verranno cancellati!
+ <usetemplate ignoretext="Quando restituisci gli oggetti ai loro proprietari" name="okcancelignore" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="GroupLeaveConfirmMember">
+ Sei attualmente un membro del gruppo [GROUP].
+Vuoi lasciare il gruppo?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmKick">
+ Vuoi VERAMENTE espellere tutti gli utenti dalla griglia?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="Espelli tutti gli utenti"/>
+ </notification>
+ <notification name="MuteLinden">
+ Mi dispiace, ma non puoi mutare un Linden.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="CannotStartAuctionAlreadyForSale">
+ Non è possibile mettere in vendita all&apos;asta un terreno che è già impostato per la vendita. Disabilita la vendita del terreno, se sei certo di voler avviare una vendita all&apos;asta.
+ </notification>
+ <notification label="Non è stato possibile mutare l&apos;oggetto per nome" name="MuteByNameFailed">
+ Hai già mutato questo nome.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="RemoveItemWarn">
+ Sebbene consentita, la cancellazione di contenuti può danneggiare l&apos;oggetto.
+Vuoi cancellare quell&apos;elemento?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="CantOfferCallingCard">
+ Impossibile offrire un biglietto da visita in questo momento. Riprova fra poco.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="CantOfferFriendship">
+ Impossibile offrire l&apos;amicizia in questo momento. Riprova fra poco.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="BusyModeSet">
+ Impostata la modalità &apos;Occupato&apos;.
+La chat e i messaggi verranno nascosti. I messaggi IM riceveranno la risposta impostata per la modalità &apos;Occupato&apos;. Tutte le offerte di teleport verranno declinate. Tutte le offerte di inventario andranno nel cestino.
+ <usetemplate ignoretext="Quando si imposta la modalità occupato" name="okignore" yestext="OK"/>
+ </notification>
+ <notification name="JoinedTooManyGroupsMember">
+ Sei membro di troppi gruppi per poterti unire ad uno nuovo.
+Abbandona almeno un gruppo prima di unirti a questo, oppure declina l&apos;offerta.
+Per abbandonare un gruppo seleziona l&apos;opzione &apos;Gruppi..&apos; dal menu &apos;Modifica&apos;.
+[NAME] ti ha invitato ad unirti ad un gruppo come membro.
+
+[INVITE]
+ <usetemplate name="okcancelbuttons" notext="Declino" yestext="Unisciti"/>
+ </notification>
+ <notification name="KickUser">
+ Espelli questo utente con quale messaggio?
+ <form name="form">
+ <input name="message" type="text">
+ Un amministratore ti ha disconnesso.
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annulla"/>
+ </form>
+ </notification>
+ <notification name="KickAllUsers">
+ Espelli tutti quelli che sono sulla griglia con quale messaggio?
+ <form name="form">
+ <input name="message" type="text">
+ Un amministratore ti ha disconnesso.
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annulla"/>
+ </form>
+ </notification>
+ <notification name="FreezeUser">
+ Immobilizza questo utente con quale messaggio?
+ <form name="form">
+ <input name="message" type="text">
+ Sei stato immobilizzato. Non puoi muoverti o usare la chat. Un amministratore ti contatterà con un messaggio (IM).
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annulla"/>
+ </form>
+ </notification>
+ <notification name="UnFreezeUser">
+ Smobilizza questo utente con quale messaggio?
+ <form name="form">
+ <input name="message" type="text">
+ Non sei più immobilizzato.
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annulla"/>
+ </form>
+ </notification>
+ <notification name="OfferTeleport">
+ Offri un teleport nel posto dove sei con il seguente messaggio?
+ <form name="form">
+ <input name="message" type="text">
+ Raggiungimi a [REGION]
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annulla"/>
+ </form>
+ </notification>
+ <notification name="OfferTeleportFromGod">
+ Vuoi trasportare divinamente l&apos;utente nel posto dove sei?
+ <form name="form">
+ <input name="message" type="text">
+ Raggiungimi in [REGION]
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annulla"/>
+ </form>
+ </notification>
+ <notification name="TeleportFromLandmark">
+ Confermi di volerti teleportare?
+ <usetemplate ignoretext="Quando ti teleporti da un landmark nell&apos;inventario" name="okcancelignore" notext="Annulla" yestext="Teleportati"/>
+ </notification>
+ <notification label="Manda un messaggio a tutti nella tua proprietà" name="MessageEstate">
+ Scrivi un annuncio breve che verrà mandato a tutti quelli che sono in questo momento nella tua proprietà.
+ <form name="form">
+ <input name="message" type="text"/>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annulla"/>
+ </form>
+ </notification>
+ <notification label="Cambia la tipologia della proprietà Linden" name="ChangeLindenEstate">
+ Stai per cambiare la tipologia della proprietà Linden (mainland, griglia minorenni, orientamento, ecc.).
+
+Questo è ESTREMAMENTE PERICOLOSO perchè può cambiare radicalmente l&apos;esperienza degli utenti. Sulla mainland cambierà migliaia di regioni e produrrà seri problemi ai vari server.
+
+Confermi?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification label="Cambia la tipologia Linden di accesso alla proprietà" name="ChangeLindenAccess">
+ Stai per cambiare la lista di accesso per una proprietà Linden (mainland, griglia minorenni, orientamento, ecc.).
+
+Questo è PERICOLOSO e dovrebbe essere fatto soltanto per poter lanciare il programma che consente agli oggetti/L$ di essere trasferiti fra griglie diverse.
+Cambierà migliaia di regioni e produrrà seri problemi ai vari server.
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification label="Seleziona la proprietà" name="EstateAllowedAgentAdd">
+ Aggiungi alla lista di accesso solo per questa proprietà oppure per [ALL_ESTATES]?
+ <usetemplate canceltext="Annulla" name="yesnocancelbuttons" notext="Tutte le proprietà" yestext="Questa proprietà"/>
+ </notification>
+ <notification label="Seleziona la proprietà" name="EstateAllowedAgentRemove">
+ Rimuovi dalla lista di accesso solo per questa proprietà oppure per [ALL_ESTATES]?
+ <usetemplate canceltext="Annulla" name="yesnocancelbuttons" notext="Tutte le proprietà" yestext="Questa proprietà"/>
+ </notification>
+ <notification label="Seleziona la proprietà" name="EstateAllowedGroupAdd">
+ Aggiungi al gruppo di accesso solo per questa proprietà oppure per [ALL_ESTATES]?
+ <usetemplate canceltext="Annulla" name="yesnocancelbuttons" notext="Tutte le proprietà" yestext="Questa proprietà"/>
+ </notification>
+ <notification label="Seleziona la proprietà" name="EstateAllowedGroupRemove">
+ Rimuovi dal gruppo di accesso solo per questa proprietà oppure per [ALL_ESTATES]?
+ <usetemplate canceltext="Annulla" name="yesnocancelbuttons" notext="Tutte le proprietà" yestext="Questa proprietà"/>
+ </notification>
+ <notification label="Seleziona la proprietà" name="EstateBannedAgentAdd">
+ Rifiuta l&apos;accesso solo a questa proprietà oppure per [ALL_ESTATES]?
+ <usetemplate canceltext="Annulla" name="yesnocancelbuttons" notext="Tutte le proprietà" yestext="Questa proprietà"/>
+ </notification>
+ <notification label="Seleziona la proprietà" name="EstateBannedAgentRemove">
+ Rimuovi questo residente dalla lista dei residenti bloccati nell&apos;accesso solo a questa proprietà oppure per [ALL_ESTATES]?
+ <usetemplate canceltext="Annulla" name="yesnocancelbuttons" notext="Tutte le proprietà" yestext="Questa proprietà"/>
+ </notification>
+ <notification label="Seleziona la proprietà" name="EstateManagerAdd">
+ Aggiungi come gestore della proprietà solo a questa proprietà oppure per [ALL_ESTATES]?
+ <usetemplate canceltext="Annulla" name="yesnocancelbuttons" notext="Tutte le proprietà" yestext="Questa proprietà"/>
+ </notification>
+ <notification label="Seleziona la proprietà" name="EstateManagerRemove">
+ Rimuovi come gestore della proprietà solo per questa proprietà oppure per [ALL_ESTATES]?
+ <usetemplate canceltext="Annulla" name="yesnocancelbuttons" notext="Tutte le proprietà" yestext="Questa proprietà"/>
+ </notification>
+ <notification label="Conferma espulsione" name="EstateKickUser">
+ Espelli [EVIL_USER] da questa proprietà?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="EstateChangeCovenant">
+ Confermi di voler cambiare il Regolamento della proprietà?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="RegionEntryAccessBlocked">
+ Non sei ammesso in questa regione a causa della tua categoria di accesso. Questo può risultare da una mancanza di informazioni necessarie per convalidare la tua età.
+
+Verifica di avere installato l&apos;ultima versione del programma e vai alla Knowledge Base per ulteriori informazioni su come accedere nelle zone con tale categoria di accesso.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="RegionEntryAccessBlocked_KB">
+ Non sei ammesso in questa regione a causa della tua categoria d&apos;accesso.
+
+Vuoi andare alla Knowledge Base per ulteriori informazioni sulle categorie di accesso?
+ <url name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=6010
+ </url>
+ <usetemplate
+ name="okcancelignore"
+ yestext="Vai alla Knowledge Base"
+ notext="Chiudi"
+ ignoretext="Quando l&apos;entrata nella regione è bloccata a causa delle categorie di accesso"/>
+ </notification>
+ <notification name="RegionEntryAccessBlocked_Notify">
+ Non sei ammesso in questa regione a causa della tua categoria d&apos;accesso.
+ </notification>
+ <notification name="RegionEntryAccessBlocked_Change">
+ Non puoi entrare in quella regione a causa delle tue preferenze sulle categorie di accesso.
+
+Puoi cliccare su &apos;Cambia le preferenze&apos; per aumentare subito le tue preferenze sulle categorie di accesso e riuscire ad entrare. Ti sarà permesso cercare ed avere accesso al contenuto [REGIONMATURITY] da quel momento in poi. Volendo poi ripristinare le impostazioni, potrai andare in Modifica &gt; Preferenze... &gt; Generale.
+ <form name="form">
+ <button
+ name="OK"
+ text="Cambia le preferenze"/>
+ <button
+ default="true"
+ name="Cancel"
+ text="Chiudi"/>
+ <ignore name="ignore" text="Quando l&apos;entrata nella regione è bloccata a causa delle preferenze sulle categorie di accesso"/>
+ </form>
+ </notification>
+ <notification name="LandClaimAccessBlocked">
+ Non puoi prendere possesso di questo terreno a causa della tua categoria di accesso. Questo può essere dovuto ad una mancanza di informazioni valide che confermino la tua età.
+
+Verifica di avere installato l&apos;ultima versione del programma e vai alla Knowledge Base per informazioni sull&apos;accesso ad aree con queste categorie di accesso.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="LandClaimAccessBlocked_KB">
+ Non puoi prendere possesso di questa terra a causa delle preferenze sulle categorie di accesso.
+
+Vuoi andare alla Knowledge Base per maggiori informazioni sulle categorie di accesso?
+ <url name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=6010
+ </url>
+ <usetemplate
+ name="okcancelignore"
+ yestext="Vai alla Knowledge Base"
+ notext="Chiudi"
+ ignoretext="Quando la presa di possesso della terra è bloccata a causa delle categorie di accesso"/>
+ </notification>
+ <notification name="LandClaimAccessBlocked_Notify">
+ Non puoi prendere possesso di questa terra a causa della tua categoria di accesso.
+ </notification>
+ <notification name="LandClaimAccessBlocked_Change">
+ Non puoi prendere possesso di questa terra a causa della tua categoria di accesso.
+
+Puoi cliccare su &apos;Cambia le preferenze&apos; per aumentare subito le tue preferenze sulle categorie di accesso e riuscire ad entrare. Ti sarà permesso cercare ed avere accesso al contenuto [REGIONMATURITY] da quel momento in poi. Volendo poi ripristinare le impostazioni, potrai andare in Modifica &gt; Preferenze... &gt; Generale.
+ <usetemplate
+ name="okcancelignore"
+ yestext="Cambia le preferenze"
+ notext="Chiudi"
+ ignoretext="Quando la presa di possesso della terra è bloccata a causa delle preferenze sulle categorie di accesso"/>
+ </notification>
+ <notification name="LandBuyAccessBlocked">
+ Non puoi acquistare questo terreno a causa della tua categoria di accesso. Questo può essere dovuto ad una mancanza di informazioni valide che confermino la tua età.
+
+Verifica di avere installato l&apos;ultima versione del programma e vai alla Knowledge Base per informazioni sull&apos;accesso ad aree con queste categorie di accesso.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="LandBuyAccessBlocked_KB">
+ Non puoi acquistare questo terreno a causa della tua categoria di accesso.
+
+Vuoi andare alla Knowledge Base per maggiori informazioni sulle categorie di accesso?
+ <url name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=6010
+ </url>
+ <usetemplate
+ name="okcancelignore"
+ yestext="Vai alla Knowledge Base"
+ notext="Chiudi"
+ ignoretext="Quando un acquisto di terra è bloccato a causa delle categorie di accesso"/>
+ </notification>
+ <notification name="LandBuyAccessBlocked_Notify">
+ Non puoi acquistare questa land a causa della tua categoria di accesso.
+ </notification>
+ <notification name="LandBuyAccessBlocked_Change">
+ Non puoi acquistare questa terra a causa delle tue preferenze sulle categorie di accesso .
+
+Puoi cliccare su &apos;Cambia le preferenze&apos; per aumentare subito le tue preferenze sulle categorie di accesso e riuscire ad entrare. Ti sarà permesso cercare ed avere accesso al contenuto [REGIONMATURITY] da quel momento in poi. Volendo poi ripristinare le impostazioni, potrai andare in Modifica &gt; Preferenze... &gt; Generale.
+ <usetemplate
+ name="okcancelignore"
+ yestext="Cambia le preferenze"
+ notext="Chiudi"
+ ignoretext="Quando un acquisto di terra è bloccato a causa delle preferenze sulle categorie di accesso"/>
+ </notification>
+ <notification name="TooManyPrimsSelected">
+ &quot;Hai selezionato troppi prims. Seleziona [MAX_PRIM_COUNT] o meno prims e riprova.&quot;
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="ProblemImportingEstateCovenant">
+ Problemi nell&apos;importazione del regolamento della proprietà.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <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="ProblemAddingEstateGeneric">
+ Si sono riscontrati problemi nell&apos;aggiunta a questo elenco della proprietà. Una o più proprietà potrebbe avere una lista piena.
+ </notification>
+ <notification name="UnableToLoadNotecardAsset">
+ Impossibile caricare la risorsa della notecard in questo momento.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="NotAllowedToViewNotecard">
+ Permessi insufficienti per vedere la notecard associata con l&apos;asset ID richiesto.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="MissingNotecardAssetID">
+ L&apos;asset ID della notecard è mancante dal database.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="PublishClassified">
+ Ricorda: le tariffe per gli annunci non sono rimborsabili.
+
+Pubblica questo annuncio adesso per [AMOUNT]L$?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="SetClassifiedMature">
+ Queste inserzioni includono contenuto Mature?
+ <usetemplate
+ canceltext="Annulla"
+ name="yesnocancelbuttons"
+ notext="No"
+ yestext="Si"/>
+ </notification>
+ <notification name="SetGroupMature">
+ Questo gruppo include contenuto Mature?
+ <usetemplate
+ canceltext="Annulla"
+ name="yesnocancelbuttons"
+ notext="No"
+ yestext="Si"/>
+ </notification>
+ <notification label="Conferma il riavvio" name="ConfirmRestart">
+ Vuoi veramente far ripartire la regione in 2 minuti?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification label="Manda un messaggio a tutti in questa regione" name="MessageRegion">
+ Scrivi un breve annuncio che verrà mandato a tutti in questa regione.
+ <form name="form">
+ <input name="message" type="text"/>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annulla"/>
+ </form>
+ </notification>
+ <notification label="Blocca il terraforming" name="HelpRegionBlockTerraform">
+ Se questa casella è selezionata, i proprietari dei terreni non potranno terraformare il loro terreno indipendentemente dall&apos;impostazione locale di &apos;Modifica Terreno&apos;.
+
+Impostazione base: spenta
+ </notification>
+ <notification label="Blocca il volo" name="HelpRegionBlockFly">
+ Se questa casella è selezionata, le persone non potranno volare in questa regione indipendentemente dall&apos;impostazione locale di &apos;Volo&apos;.
+
+Impostazione base: spenta
+ </notification>
+ <notification label="Cambiamento in massa delle autorizzazioni del contenuto" name="HelpBulkPermission">
+ Lo strumento delle autorizzazioni in massa ti aiuta a modificare rapidamente i permessi su oggetti multipli nel contenuto dell&apos;oggetto/i selezionato/i. Ma tieni presente che stai solo impostando autorizzazioni per gli oggetti presenti nel contenuto e non le autorizzazioni per l&apos;oggetto/i che li contiene.
+
+Inoltre, le autorizzazioni non vengono applicate agli oggetti a loro volta contenuti all&apos;interno degli oggetti di cui stiamo cambiando i permessi. Il cambiamento sarà operato solo ed esclusivamente alla profondità di un livello.
+
+È possibile scegliere selettivamente quali tipi di oggetti modificare usando questa lista di controllo dei &apos;Tipi di contenuto&apos;. Le fotografie sono incluse quando si seleziona textures.
+
+* Questo strumento riuscirà solo a modificare le autorizzazioni degli oggetti che già tu puoi cambiare.
+* Non è possibile impostare in aumento, per il successivo proprietario, alcuna autorizzazione che non sia già in essere.
+* I permessi impostabili per il successivo proprietario sono solo richieste di cambiamento. Se un qualsiasi oggetto non può assumere tutte le nuove autorizzazioni impostate, nessuno dei suoi permessi cambierà.
+
+Quando si è pronti a cambiare i permessi in massa, fare clic su &apos;Applica&apos; e attendere la visualizzazione dei risultati.
+
+Se si chiude la finestra dello strumento autorizzazioni, mentre le autorizzazioni si stanno modificando, l&apos;operazione si arresterà.
+ </notification>
+ <notification label="Consenti Danni" name="HelpRegionAllowDamage">
+ Se questa casella è selezionata, il sistema del livello vitale su tutti i terreni sarà abilitato indipendentemente dalle impostazioni locali. Se la casella è lasciata vuota i proprietari dei singoli terreni individuali potranno comunque essere in grado di attivare il sistema di livello vitale sulla loro terra.
+
+Impostazione base: spenta
+ </notification>
+ <notification label="Limite avatar" name="HelpRegionAgentLimit">
+ Imposta il massimo numero di avatar consentito in questa regione.
+Le prestazioni possono variare a seconda del numero totale di avatar presenti.
+
+Impostazione base: 40
+ </notification>
+ <notification label="Coefficiente bonus oggetti" name="HelpRegionObjectBonus">
+ Il coefficiente bonus oggetti è un moltiplicatore per i prim consentiti su ogni terreno.
+Si può specificare da 1 a 10. Impostandolo ad 1, ogni terreno di 512m² consentià 117 oggetti. Impostandolo a 2, ogni terreno di 512m² ne consentirà 234 o il doppio, e così via. Il numero complessivo di oggetti consentiti per una regione rimane comunque 15.000 indipendentemente dal coefficiente di bonus.
+Una volta impostato, fai attenzione che abbassare il bonus può causare la cancellazione o restituzione di oggetti.
+
+Impostazione base: 1.0
+ </notification>
+ <notification label="Categoria di accesso" name="HelpRegionMaturity">
+ Imposta la categoria di accesso della regione, come mostrato nella barra dei menu nella parte superiore dello schermo di qualsiasi residente e nelle tooltip sulla mappa di Second Life, quando il cursore si muove su questa regione. Questa impostazione influenza anche l&apos;accesso a questa regione e i risultati della ricerca. Altri residenti possono entrare solo in regioni o visualizzare risultati della ricerca con la stessa categoria di accesso che hanno scelto nella loro preferenze.
+
+Può trascorrere un po&apos; di tempo prima che questa modifica si rifletta sulla mappa.
+ </notification>
+ <notification label="Limita gli urti" name="HelpRegionRestrictPushObject">
+ Questa casella limita per tutta la regione i permessi di urto (spinte).
+Se abilitata, i residenti possono essere urtati/spinti solo da sè stessi o dal proprietario del terreno.
+(La spinta si riferisce all&apos;uso della funzione LSL llPushObject())
+
+Impostazione base: spenta
+ </notification>
+ <notification label="Unisci/Dividi terreno" name="HelpParcelChanges">
+ Questa casella imposta se i terreni non posseduti dal possessore della proprietà immobiliare possano essere unite o divise.
+Se questa opzione è deselezionata:
+ * Soltanto i possessori o i manager della proprietà immobiliare possono unire o dividere i terreni.
+ * Possono solo unire o dividere terreni che appartengono al proprietario, o ad un gruppo dove hanno poteri appropriati.
+Se questa opzione è selezionata:
+ * Tutti i proprietari del terreno possono unire o dividere i terreni che possiedono.
+ * Per i terreni di proprietà del gruppo, solo coloro con poteri appropriati possono unire o dividere il terreno.
+
+Impostazione base: Selezionata
+ </notification>
+ <notification label="Non mostrare in ricerca" name="HelpRegionSearch">
+ Selezionare questa casella bloccherà i proprietari dei terreni dal mettere in lista i loro terreni nella ricerca
+
+Impostazione base: spenta
+ </notification>
+ <notification label="Cambiato il contenuto Mature" name="RegionMaturityChange">
+ La classificazione del contenuto Mature di questa regione è stata aggiornata.
+Può essere necessario un po&apos; di tempo prima che questo cambiamento sia visibile sulle mappe.
+ </notification>
+ <notification label="Rivendita dei Terreni" name="HelpRegionLandResell">
+ I possessori e i manager della proprietà immobiliare possono vendere tutte le terre di cui sono proprietari.
+Se questa opzione è lasciata deselezionata i compratori non potranno rivendere le proprie terre in questa regione.
+Se questa opzione è selezionato i compratori possono rivendere i loro terreni in questa regione.
+
+Impostazione base: Non consentire
+ </notification>
+ <notification label="Disabilita gli script" name="HelpRegionDisableScripts">
+ Se le prestazioni di una sim sono basse, probabilmente è colpa di uno script. Apri la &apos;barra delle statistiche&apos; (Ctrl-Shift-1). Controlla il FPS della fisica del simulatore.
+Se è più basso di 45, apri il pannello &quot;Tempi&quot; collocato ln fondo alla &apos;barra delle statistiche&apos;
+Se il tempo per gli script è di 25 ms o più alto, clicca sul bottone &apos;individua script pesanti&apos;. Ti verrà dato il nome e l&apos;ubicazione degli script che probabilmente causano una cattiva prestazione.
+
+Selezionare la casella della disabilitazione script e, premendo il bottone applica, disabilitare temporaneamente tutti gli script in questa regione. Questo è necessario per poterti recare verso l&apos;ubicazione dello script definito nell&apos;elenco come &apos;script più pesante&apos;. Una volta arrivato all&apos;oggetto, studia lo script per capire se è quello che sta causando il problema. Potresti dover contattare il proprietario dello script oppure cancellare o restituire l&apos;oggetto.
+Disabilita la casella e quindi premere applica per riattivare gli script nella regione.
+
+Impostazione base: spento
+ </notification>
+ <notification label="Disabilita le collisioni" name="HelpRegionDisableCollisions">
+ Quando le prestazioni della sim sono basse, può darsi che la colpa sia di oggetti fisici.
+Apri la &apos;barra delle statistiche&apos; (Ctrl-Shift-1).
+Controlla il FPS della fisica del simulatore.
+Se è più basso di 45, apri il pannello &quot;Tempi&quot; collocato in fondo alla &apos;barra delle statistiche&apos;.
+Se il tempo della sim (fisica) risulta 20 ms o più, clicca sul bottone &quot;mostra gli oggetti che collidono di più&quot;.
+Ti verranno dati il nome e l&apos;ubicazione degli oggetti fisici che possono causare una cattiva prestazione.
+
+Selezionare la casella disabilita collisioni e, premendo il bottone applica, disabilitare temporaneamente le collisioni oggetto-oggetto. Questo è necessario per poterti recare verso l&apos;ubicazione dell&apos;oggetto che sta collidendo eccessivamente.
+Una volta arrivato sul posto, studia l&apos;oggetto - sta collidendo costantemente con altri oggetti? Potresti dover contattare il proprietario dell&apos;oggetto oppure cancellare o restituire l&apos;oggetto.
+Disabilitare la casella disabilita collisioni e quindi premere applica per riattivare le collisioni nella regione.
+
+Impostazione base: spento
+ </notification>
+ <notification label="Disabilita la fisica" name="HelpRegionDisablePhysics">
+ Disabilitare la fisica è simile alla disabilitazione delle collisioni eccetto che tutte le simulazioni fisiche sono disabilitate. Questo significa che non solo gli oggetti cessano di collidere, ma anche gli avatar non riusciranno più a muoversi.
+
+Questo dovrebbe essere utilizzato solo se il &apos;disabilita collisioni&apos; non restituisce abbastanza prestazioni alla regione dopo aver cercato un problema fisico o un oggetto che collide eccessivamente.
+
+Fai attenzione a riabilitare la fisica quando hai terminato, altrimenti nessun avatar riuscirà a muoversi.
+
+Impostazione base: spento
+ </notification>
+ <notification label="Oggetti con maggiori collisioni" name="HelpRegionTopColliders">
+ Mostra una lista di oggetti che sperimentano la maggior quantità di potenziali collisioni oggetto-oggetto. Questi oggetti possono abbassare le prestazioni.
+Seleziona Vista &gt; Barra Statistiche e guarda sotto Simulatore &gt; Tempi &gt; Tempo Sim (fisica) per controllare se un tempo di più di 20 ms è impiegato nella fisica.
+ </notification>
+ <notification label="Script pesanti" name="HelpRegionTopScripts">
+ Mostra una lista degli oggetti che occupano la maggior parte del loro tempo eseguendo script LSL. Questi oggetti possono abbassare le prestazioni.
+Seleziona Vista &gt; Barra statistiche e guarda sotto Simulatore &gt; Tempi &gt; Tempo Script per controllare se un tempo di più di 20 ms è impiegato per gli script.
+ </notification>
+ <notification label="Fai ripartire la regione" name="HelpRegionRestart">
+ Fai ripartire i processi del server che gestisce questa regione dopo un avvertimento di due minuti. Tutti i residenti nella regione verranno scollegati.
+La regione salverà i suoi dati e dovrebbe tornare attiva entro 90 secondi.
+
+Far ripartire la regione non risolverà i problemi maggiori delle prestazioni e dovrebbe essere fatta solo se necessario.
+ </notification>
+ <notification label="Altezza dell&apos;acqua" name="HelpRegionWaterHeight">
+ Questa è l&apos;altezza in metri del mare dove deve apparire l&apos;acqua.
+Se questa impostazione è diversa da 20 e l&apos;acqua circonda il confine di terra o acqua della tua sim, vedrai una discontinuità fra la sim e il mare.
+
+Impostazione base: 20
+ </notification>
+ <notification label="Sollevamento terreno" name="HelpRegionTerrainRaise">
+ Questa è l&apos;ulteriore altezza in metri entro la quale i proprietari di appezzamenti possono alzare il loro terreno partendo dall&apos;altezza preimpostata.
+
+Impostazione base: 4
+ </notification>
+ <notification label="Abbassamento terreno" name="HelpRegionTerrainLower">
+ Questa è l&apos;ulteriore altezza in metri entro la quale i proprietari di appezzamenti possono abbassare il loro terreno partendo dall&apos;altezza preimpostata.
+
+Impostazione base: -4
+ </notification>
+ <notification label="Importa terreno RAW" name="HelpRegionUploadRaw">
+ Questo bottone importa un file .RAW nella regione in cui sei.
+Il file deve avere le corrette dimensioni (RGB, 256x256) e 13 canali. Il modo migliore per creare un file di terreno è di scaricare un file RAW esistente. Un buon primo passo è quello di modificare il canale del rosso (altezza della terra), ed importarlo.
+
+L&apos;importazione può impiegare fino a 45 secondi. Nota che importare un file del terreno *non muoverà* gli oggetti che sono sulla sim, soltanto il terreno stesso e i permessi associati agli appezzamenti.
+Questo potrebbe far sì che gli oggetti vadano sotto terra.
+
+Per maggiori informazioni sulle modifiche dei campi dell&apos;altezza della regione, consulta il tasto F1 Aiuto.
+ </notification>
+ <notification label="Scarica il terreno RAW" name="HelpRegionDownloadRaw">
+ Questo bottone scarica un file che contiene i dati dell&apos;altezza, delle dimensioni, dello stato di vendita del terreno e di alcuni permessi degli appezzamenti di questa regione.
+Aprendo questo file in un programma come Photoshop devi specificare le dimensioni che sono: RGB, 256x256 con 13 channels. Questo file del terreno non può essere aperto in nessun altro modo.
+
+Per maggiori informazioni sulle modifiche dei campi dell&apos;altezza della regione, consulta il tasto F1 Aiuto.
+ </notification>
+ <notification label="Usa il sole della proprietà" name="HelpRegionUseEstateSun">
+ Questa casella fa si che la posizione del sole in questa regione coincida con la posizione del sole nel resto della proprietà.
+
+Impostazione base: attivo
+ </notification>
+ <notification label="Sole fisso" name="HelpRegionFixedSun">
+ Questa casella imposta la posizione del sole ad un valore definito nel cursore delle fasi e fa in modo che il sole non si muova.
+
+Impostazione base: spento
+ </notification>
+ <notification label="Crea il Terreno" name="HelpRegionBakeTerrain">
+ Questo bottone salva l&apos;attuale forma del terreno come impostazione base per la regione. Una volta creato, il terreno può riassumere la forma base ogni volta che che tu o altri dovessero usare l&apos;opzione &apos;Reimposta&apos; della modifica del terreno.
+Il terreno creato è anche il punto intermedio dei limiti di sollevamento ed abbassamento terreno.
+ </notification>
+ <notification label="Manager della proprietà" name="HelpEstateEstateManager">
+ Un manager della proprietà è un residente a cui avete delegato il controllo di una regione o di una proprietà. Un manager della proprietà può cambiare qualunque impostazione in queste finestre, eccezion fatta per l&apos;importazione, l&apos;esportazione e la creazione del terreno. In particolare, possono consentire o bloccare l&apos;accesso ai residenti nella tua proprietà.
+
+I manager della proprietà possono essere soltanto aggiunti o rimossi dal possessore della proprietà e non possono farlo loro l&apos;un l&apos;altro. Scegli solo residenti di cui ti fidi come manager della proprietà, dato che tu sarai responsabile per le loro azioni.
+ </notification>
+ <notification label="Usa l&apos;ora globale" name="HelpEstateUseGlobalTime">
+ Questa casella fa si che il sole nella vostra proprietà segua la stessa posizione della mainland Linden.
+
+Impostazione base: on
+ </notification>
+ <notification label="Sole Fisso" name="HelpEstateFixedSun">
+ Questa casella imposta la posizione del sole su una posizione del cursore di Fase del sole e lo blocca in quella posizione.
+ </notification>
+ <notification label="Accesso Pubblico" name="HelpEstateExternallyVisible">
+ Questa casella permette ai residenti che sono su altre regioni, di entrare in questa proprietà anche se non sono nella lista di accesso.
+
+Impostazione base: attivo
+ </notification>
+ <notification label="Consenti teleport diretto" name="HelpEstateAllowDirectTeleport">
+ Se selezionato, consente ai residenti di teleportarsi direttamente in qualunque punto di questa proprietà.
+Se deselezionato, i residenti si teleporteranno al più vicino snodo.
+
+Impostazione base: spento
+ </notification>
+ <notification label="Consenti accesso" name="HelpEstateAllowResident">
+ L&apos;accesso a questa proprietà verrà limitata solo ai residenti ed ai gruppi elencati più sotto. Questa impostazione è disponibile solo se l&apos;accesso pubblico è deselezionato.
+ </notification>
+ <notification label="Consenti Accesso di gruppo" name="HelpEstateAllowGroup">
+ L&apos;accesso a questa proprietà verrà limitata solo ai gruppi qui elencati e ai residenti loro appartenenti. Questa impostazione è disponibile soltanto se l&apos;accesso pubblico è deselezionato.
+ </notification>
+ <notification label="Indirizzo di posta email per le segnalazioni di abuso" name="HelpEstateAbuseEmailAddress">
+ Impostando qui un indirizzo di posta elettronica valido, farà si che le segnalazioni di abuso, fatte su questa proprietà, siano mandate a quell&apos;indirizzo.
+Lasciandolo vuoto causerà l&apos;invio delle segnalazioni di abuso soltanto ai Linden Lab.
+ </notification>
+ <notification label="Rifiuta accesso" name="HelpEstateBanResident">
+ I residenti su questa lista non saranno accettati nella tua proprietà, indipendentemente da qualunque altra impostazione.
+ </notification>
+ <notification label="Consenti la voice chat" name="HelpEstateVoiceChat">
+ I terreni di questa proprietà potranno avere i loro canali voce nei quali i residenti potranno parlare con gli avatar vicini.
+
+Impostazione base: spento
+ </notification>
+ <notification label="Versione voice non compatibile" name="VoiceVersionMismatch">
+ Questa versione di Second Life non è compatibile con le impostazioni di voice chat di questa regione. Per poter fare funzionare correttamente la chat voce devi aggiornare Second Life.
+ </notification>
+ <notification label="Regolamento della proprietà" name="HelpEstateCovenant">
+ Impostare un regolamento della proprietà ti consente di vendere i terreni all&apos;interno di quella proprietà. Se non imposti un regolamento, non puoi vendere i terreni. La notecard per il tuo regolamente può essere vuota se non desideri applicare nessuna regola o informare i compratori di cose inerenti la terra, prima dell&apos;acquisto.
+
+Un regolamento può essere usato per comunicare regole, linee guida, informazioni culturali o semplicemente ciò che ti aspetti dal possibile compratore. Questo può includere impostazioni in zone, regolamenti architettonici, opzioni di pagamento o qualunque altra informazione che ritieni importante che il nuovo proprietario debba aver visto e accettato prima dell&apos;acquisto.
+
+Il compratore deve accettare il regolamento selezionando la casella appropriata per poter completare l&apos;acquisto. I regolamenti delle proprietà sono sempre visibili nella finestra &quot;Informazioni sul terreno&quot; in tutti gli appezzamenti in cui è stato impostato.
+ </notification>
+ <notification label="Impossibile comprare oggetti" name="BuyObjectOneOwner">
+ Impossibile comprare oggetti da proprietari diversi nello stesso momento.
+Seleziona solo un oggetto e riprova.
+ </notification>
+ <notification label="Impossibile comprare il contenuto" name="BuyContentsOneOnly">
+ Impossibile comprare il contenuto di più di un oggetto per volta.
+Seleziona solo un oggetto e riprova.
+ </notification>
+ <notification label="Impossibile comprare il contenuto" name="BuyContentsOneOwner">
+ Impossibile comprare oggetti da proprietari differenti nello stesso momento.
+Scegli un solo oggetto e riprova.
+ </notification>
+ <notification name="BuyOriginal">
+ Compra l&apos;oggetto originale da [OWNER] per [PRICE]L$?
+Diventerai proprietario di questo oggetto.
+Sarai in grado di:
+ Modificare: [MODIFYPERM]
+ Copiare: [COPYPERM]
+ Rivendere o regalare: [RESELLPERM]
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="BuyOriginalNoOwner">
+ Compra l&apos;oggetto originale per [PRICE]L$?
+Diventerai proprietario di questo oggetto.
+Sarai in grado di:
+ Modificare: [MODIFYPERM]
+ Copiare: [COPYPERM]
+ Rivendere o regalare: [RESELLPERM]
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="BuyCopy">
+ Compra una copia da [OWNER] per [PRICE]L$?
+L&apos;oggetto verrà copiato nel tuo inventario.
+Sarai in grado di:
+ Modificare: [MODIFYPERM]
+ Copiare: [COPYPERM]
+ Rivendere o regalare: [RESELLPERM]
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="BuyCopyNoOwner">
+ Compra una copia per [PRICE]L$?
+L&apos;oggetto verrà copiato nel tuo inventario.
+Sarai in grado di:
+ Modificare: [MODIFYPERM]
+ Copiare: [COPYPERM]
+ Rivendere o regalare: [RESELLPERM]
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="BuyContents">
+ Compra il contenuto da [OWNER] per [PRICE]L$?
+Il contenuto verrà copiato nel tuo inventario.
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="BuyContentsNoOwner">
+ Compra il contenuto per [PRICE]L$?
+Il contenuto verrà copiato nel tuo inventario.
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmPurchase">
+ Questa transazione farà:
+[ACTION]
+
+Confermi di voler procedere all&apos;acquisto?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmPurchasePassword" type="password">
+ Questa transazione farà:
+[ACTION]
+
+Confermi di voler procedere all&apos;acquisto?
+Ridigita la tua password e premi OK.
+ <form name="form">
+ <input name="message" type="password"/>
+ <button name="ConfirmPurchase" text="OK"/>
+ <button name="Cancel" text="Annulla"/>
+ </form>
+ </notification>
+ <notification name="SetPickLocation">
+ Nota:
+Hai aggiornato l&apos;ubicazione di questo preferito ma gli altri dettagli conserveranno il loro valore originale.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="MoveInventoryFromObject">
+ Hai selezionato elementi dall&apos;inventario &apos;non copiabili&apos;.
+Questi elementi verranno trasferiti nel tuo inventario, ma non copiati.
+
+Trasferisci gli elementi nell&apos;inventario?
+ <usetemplate ignoretext="Quando si trasferiscono, dagli oggetti all&apos;inventario, elementi non copiabili" name="okcancelignore" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="MoveInventoryFromScriptedObject">
+ Hai selezionato elementi dell&apos;inventario non copiabili. Questi elementi verranno trasferiti nel tuo inventario, non verranno copiati.
+Dato che questo oggetto è scriptato, il trasferimento di questi elementi nel tuo inventario potrebbe causare un malfunzionamento degli script.
+
+Trasferisci gli elementi nell&apos;inventario?
+ <usetemplate ignoretext="Quando si trasferiscono oggetti scriptati non copiabili nell&apos;inventario" name="okcancelignore" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="ClickActionNotPayable">
+ Attenzione: L&apos;azione di pagamento automatico al click è stata impostata, ma funzionerà solo se aggiungi uno script con un evento money().
+ <form name="form">
+ <ignore name="ignore" text="Quando imposti il &quot;Pagamento&quot; di oggetti senza l&apos;evento money()"/>
+ </form>
+ </notification>
+ <notification name="OpenObjectCannotCopy">
+ Non ci sono elementi in questo oggetto che tu possa copiare.
+ </notification>
+ <notification name="WebLaunchAccountHistory">
+ Vai nel sito web di Second Life per vedere il tuo estratto conto?
+ <usetemplate ignoretext="Quando carichi la pagina web dell&apos;estratto conto" name="okcancelignore" notext="Annulla" yestext="Vai alla pagina"/>
+ </notification>
+ <notification name="ClickOpenF1Help">
+ Visita il sito di supporto di Second Life?
+ <usetemplate ignoretext="Quando visiti il sito del supporto di Second Life." name="okcancelignore" notext="Annulla" yestext="Vai"/>
+ </notification>
+ <notification name="ConfirmQuit">
+ Confermi di voler uscire?
+ <usetemplate ignoretext="Quando esci da Second Life." name="okcancelignore" notext="Continua" yestext="Esci"/>
+ </notification>
+ <notification name="HelpReportAbuseEmailLL">
+ Usa questo strumento per segnalare violazioni ai Termini di Servizio e agli standard della Comunità. Vedi:
+
+http://secondlife.com/corporate/tos.php
+http://secondlife.com/corporate/cs.php
+
+Tutte gli abusi ai Termini di Servizio e agli Standard della Comunità segnalati, sono indagati e risolti. Puoi controllare la risoluzione degli abusi visitando la pagina delle Risoluzioni degli Incidenti:
+
+http://secondlife.com/support/incidentreport.php
+ </notification>
+ <notification name="HelpReportAbuseEmailEO">
+ IMPORTANTE: questo rapporto verrà inviato al proprietario della regione dove sei in questo momento e non ai Linden Lab.
+
+Come servizio ai residenti e ai visitatori, il proprietario della regione in cui ti trovi, ha scelto di ricevere e risolvere le segnalazioni di abuso che nascono in questa regione. Il Linden Lab non investiga sulle segnalazione inviate da qui.
+
+Il proprietario della regione risolverà le segnalazione basandosi sulle regole locali di questa regione così come sono indicate dal regolamento della proprietà.
+(Puoi vedere il regolamento andando sul menu Mondo e selezionando Informazioni sul terreno.)
+
+La risoluzione di questa segnalazione verrà applicata solo in questa regione; L&apos;accesso dei residenti ad altre aree di Second Life non verrà influenzato dal risultato di questa segnalazione. Soltanto i Linden Lab possono restringere l&apos;accesso alla totalità di Second Life.
+ </notification>
+ <notification name="HelpReportBug">
+ Usa questo strumento per segnalare *soltanto* caratteristiche tecniche che non funzionano come descitto o atteso, fornisci quanti più dettagli è possibile, Puoi rispondere all&apos;email automatica aggiungendo ulteriori dettagli sulla tua segnalazione.
+
+Tutte le segnalazioni di bug sono investigate e valutate. Non vengono inviate risposte via email.
+
+Se hai difficoltà tecniche contatta il supporto:
+
+http://secondlife.com/community/support.php
+
+Nota: segnalazioni incomplete non verranno prese in considerazione
+ </notification>
+ <notification name="HelpReportAbuseSelectCategory">
+ Scegli una categoria per questa segnalazione di abuso.
+Scegliere una categoria, ci aiuta a gestire ed elaborare le segnalazioni di abuso.
+ </notification>
+ <notification name="HelpReportBugSelectCategory">
+ Scegli una categoria per questo bug.
+Scegliere una categoria, ci aiuta a gestire ed elaborare le segnalazioni di bug.
+ </notification>
+ <notification name="HelpReportAbuseAbuserNameEmpty">
+ Introduci il nome di chi abusa.
+Introducendo un valore accurato, ci aiuti a gestire ed elaborare le segnalazioni di abuso.
+ </notification>
+ <notification name="HelpReportAbuseAbuserLocationEmpty">
+ Inserisci il luogo dove l&apos;abuso è avvenuto.
+Introducendo un valore accurato, ci aiuti a gestire ed elaborare le segnalazioni di abuso.
+ </notification>
+ <notification name="HelpReportAbuseSummaryEmpty">
+ Inserisci un yiyolo descrittivo dell&apos;abuso che è avvenuto.
+Introducendo un titolo descrittivo accurato, ci aiuti a gestire ed elaborare le segnalazioni di abuso.
+ </notification>
+ <notification name="HelpReportBugSummaryEmpty">
+ Introduci una descrizione del bug.
+Introducendo una descrizione accurata ci aiuti a gestire ed elaborare le segnalazioni di bug.
+ </notification>
+ <notification name="HelpReportAbuseDetailsEmpty">
+ Inserisci una descrizione dettagliata dell&apos;abuso che è avvenuto.
+Devi essere il più specifico possibile, includendo i nomi e i dettagli dell&apos;incidente che stai segnalando.
+Inserendo una descrizione accurata ci aiuti a gestire ed elaborare le segnalazioni di abuso.
+ </notification>
+ <notification name="HelpReportBugDetailsEmpty">
+ Inserisci una descrizione dettagliata del bug.
+Devi essere il pià specifico possibile, includendo se possibil i passi per riprodurre il problema.
+Inserendo una descrizione accurata, ci aiuti a gestire ed elaborare le segnalazioni di bug.
+ </notification>
+ <notification name="HelpReportAbuseContainsCopyright">
+ Caro residente,
+
+Sembra che stai segnalando un problema di furto di proprietà intellettuale. Cerca di essere sicuro che la tua segnalazione stia riportando correttamente:
+
+(1) Il processo di abuso. Puoi sottomettere una segnalazione di abuso se ritieni che un residente stia sfruttando il sistema di permessi di Second Life, per esempio, usando CopyBot oppure simili strumenti di copia, per rubare i diritti della proprietà intellettuale. L&apos;ufficio Abusi investigherà e deciderà delle azioni disciplinari adeguate per comportamenti che violano gli standard di comunità di Second Life o i Termini di Servizio. Si tenga però presente che l&apos;ufficio Abusi non gestisce e non risponde alle richieste di rimozione di contenuto da Second Life.
+
+(2) Il processo di rimozione DMCA o processo di rimozione dei contenuti. Per richiedere la rimozione di contenuto da Second Life, DEVI sottomettere una notifica valida di furto intellettuale come definito nella nostra politica DMCA che trovi a http://secondlife.com/corporate/dmca.php.
+
+Se desideri egualmente continuare con il processo di abuso, chiudi questa finestra e termina di compilare la segnalazione. Potresti dover selezionare la categoria specifica &apos;CopyBot o Sfruttamento permessi&apos;.
+
+Grazie,
+La Linden Lab
+ </notification>
+ <notification name="FailedRequirementsCheck">
+ I seguenti componenti obbligatori sono mancanti da [FLOATER]:
+[COMPONENTS]
+ </notification>
+ <notification label="Sostituisci gli oggetti indossati" name="ReplaceAttachment">
+ C&apos;è già un oggetto indossato in questo punto del corpo.
+Vuoi sostituirlo con l&apos;oggetto selezionato?
+ <form name="form">
+ <ignore name="ignore" save_option="true" text="Quando avviene la sostituzione di un oggetto indossato già esistente"/>
+ <button name="Yes" text="OK"/>
+ <button name="No" text="Annulla"/>
+ </form>
+ </notification>
+ <notification label="Avviso di &apos;Occupato&apos;" name="BusyModePay">
+ Sei in modalità &apos;Occupato&apos;, ciò significa che non riceverai ciò che attendi per questo pagamento.
+
+Desideri abbandonare la modalità &apos;Occupato&apos; prima di completare questa transazione?
+ <form name="form">
+ <ignore name="ignore" save_option="true" text="Quando avviene il pagamento di una persona o oggetto in modalità &apos;Occupato&apos;"/>
+ <button name="Yes" text="OK"/>
+ <button name="No" text="Abbandona"/>
+ </form>
+ </notification>
+ <notification name="ConfirmEmptyTrash">
+ Confermi di volere permanentemente rimuovere il contenuto del tuo cartella Cestino?
+ <usetemplate ignoretext="Quando svuoti la cartella cestino del tuo inventario" name="okcancelignore" notext="Annulla" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmClearBrowserCache">
+ Confermi di voler pulire la cache del tuo browser?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="Si"/>
+ </notification>
+ <notification name="ConfirmClearCookies">
+ Confermi di volere cancellare i tuoi cookie?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="Si"/>
+ </notification>
+ <notification name="ConfirmClearMediaUrlList">
+ Confermi di voler cancellare la lista degli URL salvati?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="Si"/>
+ </notification>
+ <notification name="ConfirmEmptyLostAndFound">
+ Confermi di volere rimuovere permanentemente il contenuto della tua cartalla Persi e ritrovati?
+ <usetemplate ignoretext="Quando cancelli la cartella persi e ritrovati del tuo inventario" name="okcancelignore" notext="No" yestext="Si"/>
+ </notification>
+ <notification name="CopySLURL">
+ Lo SLURL seguente è stato copiato nei tuoi appunti:
+ [SLURL]
+
+Lo puoi inserire in una pagina web per dare ad altri modo di accedere a questo posto o puoi provare a copiarla nella barra indirizzi del tuo browser web.
+ <form name="form">
+ <ignore name="ignore" text="Quando copi lo SLURL negli appunti"/>
+ </form>
+ </notification>
+ <notification name="GraphicsPreferencesHelp">
+ Questo pannello controlla la dimensione delle finestre, la risoluzione e la qualità della grafica del tuo browser. Le Preferenze &gt; Grafica consente di scegliere fra quattro livelli grafici: Basso, Medio, Alto, e Ultra. Puoi anche modificare le impostazioni grafiche selezionando la casella Personalizza e manipolando le seguenti impostazioni:
+
+Effetti grafici: Abilita o disabilita vari tipi di effetti grafici.
+
+Oggetti riflettenti: Imposta le tipologie di oggetti riflessi dall&apos;acqua.
+
+Visualizzazione Avatar: Imposta le opzioni che influenzano come il client visualizza gli avatar.
+
+Campo visivo: Imposta quanto lontano dalla tua posizione gli oggetti vengono visualizzati nella scena.
+
+Massima quantità di particelle: Imposta il valore massimo di particelle che puoi vedere contemporaneamente sullo schermo.
+
+Qualità post elaborazione: Imposta la risoluzione con il quale il bagliore è visualizzato.
+
+Dettaglio della retinatura: Imposta il dettaglio o il numero di triangoli che sono usati per visualizzare determinati oggetti. Un valore più alto impiega più tempo ad essere visualizzato, ma rende questi oggetti più dettagliati.
+
+Dettagli dell&apos;illuminazione: Seleziona quali tipi di luce vuoi visualizzare.
+
+Dettaglio del terreno: Imposta la quantità di dettagli che vuoi vedere per le texture del terreno.
+ </notification>
+ <notification name="WLSavePresetAlert">
+ Vuoi sovrascrivere le preimpostazioni salvate?
+ <usetemplate name="okcancelbuttons" notext="No" yestext="Si"/>
+ </notification>
+ <notification name="WLDeletePresetAlert">
+ Vuoi cancellare [SKY]?
+ <usetemplate name="okcancelbuttons" notext="No" yestext="Si"/>
+ </notification>
+ <notification name="WLNoEditDefault">
+ Non puoi modificare o cancellare una preimpostazione di fabbrica.
+ </notification>
+ <notification name="WLMissingSky">
+ Questo file di ciclo giornaliero fa riferimento ad un file di cielo mancante: [SKY].
+ </notification>
+ <notification name="PPSaveEffectAlert">
+ Effetto di post elaborazione già presente. Vuoi sovrascrivere?
+ <usetemplate name="okcancelbuttons" notext="No" yestext="Si"/>
+ </notification>
+ <notification name="HelpEditSky">
+ Modifica i cursori di WindLight per creare e savare un insieme di cieli.
+ </notification>
+ <notification name="HelpEditDayCycle">
+ Scegli quale cielo impostare per ciclo giornaliero.
+ </notification>
+ <notification name="EnvSettingsHelpButton">
+ Queste impostazioni modificano il modo in cui l&apos;ambiente viene visto localmente sul tuo computer. La tua scheda grafica deve supportare gli effetti atmosferici per poter accedere a tutte le impostazioni.
+
+Modifica il cursore &quot;Ora del Giorno &quot; per cambiare la fase giornaliera locale sul client.
+
+Modifica il cursore &quot;Intensità delle nuvole&quot; per controllare la quantità di nuvole che coprono il cielo.
+
+Scegli un colore nella tavolozza colori per il &quot;colore dell&apos;acqua&quot; per cambiare il colore dell&apos;acqua.
+
+Modifica il cursore &quot;Nebbiosità dell&apos;acqua&quot; per controllare quanto densa è la nebbia sott&apos;acqua.
+
+Clicca &quot;Usa l&apos;ora della proprietà&quot; per sincronizzare il tempo del giorno con l&apos;ora del giorno della regione e collegarle stabilmente.
+
+Clicca &quot;Cielo avanzato&quot; per visualizzare un editor con le impostazioni avanzate per il cielo.
+
+Clicca &quot;Acqua Avanzata&quot; per visualizzare un editor con le impostazini avanzate per l&apos;acqua.
+ </notification>
+ <notification name="HelpDayCycle">
+ L&apos;editor del Ciclo Giorno/Notte permette di controllare il cielo durante il ciclo giornaliero di Second Life. Questo è il ciclo che è usato dal cursore dell&apos;editor base dell&apos;ambiente.
+
+L&apos;editor del ciclo giorno/notte funziona impostando i fotogrammi chiave. Questi sono nodi (rappresentati da tacche grige sul grafico temporale) che hanno delle preregolazioni associate del cielo. Man mano che l&apos;ora del giorno procede, il cielo di WindLight&quot;si anima&quot; interpolando i valori fra questi fotogrammi chiave.
+
+La freccia gialla sopra la linea del tempo rappresenta la tua vista corrente, basata sull&apos;ora del giorno. Cliccandola e spostandola vedrai come il giorno si animerebbe. Si può aggiungere o cancellare fotogrammi chiave cliccando sui tasti &apos;Aggiungi Fotogramma Chiave&apos; e &apos;Cancella Fotogramma Chiave&apos; alla destra della linea del tempo.
+
+Si possono impostare le posizioni temporali dei fotogrammi chiave spostandole lungo la linea del tempo o impostando il loro valore a mano nella finestra di impostazione dei fotogrammi chiave. All&apos;interno della finestra di impostazione si può associare il fotogramma chiave con le impostazioni corrispondenti di Wind Light.
+
+La durata del ciclo definisce la durata complessiva di un &quot;giorno&quot;. Impostando questo ad un valore basso (per esempio, 2 minuti) tutto il ciclo di 24 ore verrà completato in solo 2 minuti reali! Una volta soddisfatto dell tua linea del tempo e le impostazioni dei fotogrammi chiave, usa i bottoni Play e Stop per vederne in anteprima i risultati. Attenzione: si può sempre spostare la freccia gialla indicatrice del tempo sopra la linea del tempo per vedere il ciclo animarsi interattivamente. Scegliendo invece il pulsanto &apos;Usa il tempo della regione&apos; ci si sincronizza con il le durate del ciclo definite per questa regione.
+
+Una volta soddisfatto del ciclo giornaliero, puoi salvarlo o ricaricarlo con i bottoni &apos;Salva test del giorno&apos; e &apos;Carica il test del giorno&apos;. Attualmente è possibile definire un solo ciclo giorno/notte
+ </notification>
+ <notification name="HelpBlueHorizon">
+ Si usano i cursori RGB (Rosso/Verde/Blu) per modificare il colore del cielo. Si può usare il cursore I (Intensità) per alterare i tre cursori all&apos;unisono.
+ </notification>
+ <notification name="HelpHazeHorizon">
+ Altezza della foschia all&apos;orizzonte è uno dei parametri più utili per modificare l&apos;esposizione di luce complessiva nella scena.
+E&apos; utile per simulare molte impostazioni di esposizione, come la sovraesposizione del sole e impostazioni più scure a diaframma chiuso.
+ </notification>
+ <notification name="HelpBlueDensity">
+ La densità del blu influenza la saturazione complessiva del cielo e della nebbia. Se impostate il cursore (I) Intensità verso destra i colori diventeranno più brillanti e accesi. Se lo impostate tutto a sinistra, i colori diventeranno opachi e ultimamente si confonderanno con il bianco/nero. Se si vuole controllare in modo preciso l&apos;equilibro di colori del cielo, si può agire sui singoli elementi di saturazione utilizzando i tre cursori RGB (Rosso, Verde, Blu).
+ </notification>
+ <notification name="HelpHazeDensity">
+ La densità della foschia controlla il livello di foschia grigia generale nell&apos;atmosfera.
+E&apos; utile per simulare scene con un livello alto di fumo e di inquinamento di origine umana.
+E&apos; anche utile per simulare la nebbia e la foschia al mattino.
+ </notification>
+ <notification name="HelpDensityMult">
+ Il moltiplicatore di densità può essere usato per influenzare la densità atmosferica generale. Con valori bassi, crea la sensazione di &quot;aria sottile&quot;, con valori alti crea un effetto molto pesante, annebbiato.
+ </notification>
+ <notification name="HelpDistanceMult">
+ Modifica la distanza percepita da WindLight.
+Immettendo il valore zero si spegne l&apos;influenza di WindLight sul terreno e gli oggetti.
+Valori più grandi di 1 simulano distanze più grandi per effetti atmosferici più spessi.
+ </notification>
+ <notification name="HelpMaxAltitude">
+ Altitudine Massima modifica i calcoli di altezza che fa WindLight quando calcola l&apos;illuminazione atmosferica.
+In periodi successivi del giorno, è utile per modificare quanto &quot;profondo&quot; appaia il tramonto.
+ </notification>
+ <notification name="HelpSunlightColor">
+ Modifica il colore e l&apos;intensità della luce diretta nella scena.
+ </notification>
+ <notification name="HelpSunAmbient">
+ Modifica il colore e l&apos;intensità della luce atmosferica ambientale nella scena.
+ </notification>
+ <notification name="HelpSunGlow">
+ Il cursore Dimensione controlla la dimensione del sole.
+Lo slider &quot;Focus&quot; controlla quanto è offuscato il sole sopra il cielo.
+ </notification>
+ <notification name="HelpSceneGamma">
+ Modifica la distribuzione di luci e ombre nello schermo.
+ </notification>
+ <notification name="HelpStarBrightness">
+ Modifica la brillantezza delle stelle nel cielo.
+ </notification>
+ <notification name="HelpTimeOfDay">
+ Controlla la posizione del sole nel cielo.
+Simile all&apos;elevazione.
+ </notification>
+ <notification name="HelpEastAngle">
+ Controlla la posizione del sole nel cielo.
+Simile all&apos;azimuth.
+ </notification>
+ <notification name="HelpCloudColor">
+ Modifica il colore delle nuvole. Normalmente si raccomanda di mantenere un colore verso il bianco, ma puoi sbizzarrirti.
+ </notification>
+ <notification name="HelpCloudDetail">
+ Controlla l&apos;immagine dei dettagli che è sovraimposta sopra l&apos;immagine principale delle nuvole.
+X e Y controllano la sua posizione.
+D (Densità) controlla quanto gonfie o spezzettate appaiono le nuvole.
+ </notification>
+ <notification name="HelpCloudDensity">
+ Consente di controllare la posizione delle nuvole usando i cursori X e Y e quanto dense siano usando il cursore D.
+ </notification>
+ <notification name="HelpCloudCoverage">
+ Controlla quanto le nuvole coprono il cielo.
+ </notification>
+ <notification name="HelpCloudScale">
+ Controlla le dimensioni delle immagini delle nuvole sul cielo stellato.
+ </notification>
+ <notification name="HelpCloudScrollX">
+ Controlla la velocità delle nuvole lungo la direzione X.
+ </notification>
+ <notification name="HelpCloudScrollY">
+ Controlla la velocità delle nuvole lungo la direzione Y.
+ </notification>
+ <notification name="HelpClassicClouds">
+ Seleziona questa casella per consentire la visualizzazione delle nuvole nello stile classico in aggiunta alle nuvole Windlight.
+ </notification>
+ <notification name="HelpWaterFogColor">
+ Sceglie il Colore della nebbiosità dell&apos;acqua.
+ </notification>
+ <notification name="HelpWaterFogDensity">
+ Controlla la densità della foschia dell&apos;acqua e quanto lontano si può vedere sott&apos;acqua.
+ </notification>
+ <notification name="HelpUnderWaterFogMod">
+ Modifica l&apos;effetto dell&apos;Esponente Densità Vapore Acqueo per controllare quanto lontano può vedere il vostro avatar quando è sott&apos;acqua.
+ </notification>
+ <notification name="HelpWaterGlow">
+ Controlla la quantità del bagliore dell&apos;acqua.
+ </notification>
+ <notification name="HelpWaterNormalScale">
+ Controlla le dimensioni delle tre wavelet che compongono l&apos;acqua.
+ </notification>
+ <notification name="HelpWaterFresnelScale">
+ Controlla quanta luce è riflessa ad angoli differenti.
+ </notification>
+ <notification name="HelpWaterFresnelOffset">
+ Controlla quanta intensità di luce è riflessa.
+ </notification>
+ <notification name="HelpWaterScaleAbove">
+ Controlla quanta luce è rifratta guardando dal di sopra della superficie dell&apos;acqua.
+ </notification>
+ <notification name="HelpWaterScaleBelow">
+ Controlla quanta luce è rifratta guardando dal di sotto della superficie dell&apos;acqua.
+ </notification>
+ <notification name="HelpWaterBlurMultiplier">
+ Controlla come le onde e le riflessioni vengono miscelate.
+ </notification>
+ <notification name="HelpWaterNormalMap">
+ Controlla quale mappa normale è sovraimposta nell&apos;acqua per determinare le riflessioni/rifrazioni.
+ </notification>
+ <notification name="HelpWaterWave1">
+ Controlla dove e quanto velocemente la versione ingrandita della mappa normale si muove lungo le direzioni X e Y.
+ </notification>
+ <notification name="HelpWaterWave2">
+ Controlla dove e quanto velocemente la versione ridotta della mappa normale si muove lungo le direzioni X e Y.
+ </notification>
+ <notification name="NewSkyPreset">
+ Fornisci il nome per il nuovo cielo.
+ <form name="form">
+ <input name="message" type="text">
+ Nuova preimpostazione
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annulla"/>
+ </form>
+ </notification>
+ <notification name="ExistsSkyPresetAlert">
+ La preimpostazione esiste già!
+ </notification>
+ <notification name="NewWaterPreset">
+ Fornisci il nome per la nuova preregolazione del livello dell&apos;acqua.
+ <form name="form">
+ <input name="message" type="text">
+ Nuova preimpostazione
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annulla"/>
+ </form>
+ </notification>
+ <notification name="ExistsWaterPresetAlert">
+ La preimpostazione esiste già!
+ </notification>
+ <notification name="WaterNoEditDefault">
+ Non puoi modificare o cancellare una preimpostazione.
+ </notification>
+ <notification name="ChatterBoxSessionStartError">
+ Impossibile iniziare una nuova sessione di chat con [RECIPIENT].
+[REASON]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="ChatterBoxSessionEventError">
+ [EVENT]
+[REASON]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="ForceCloseChatterBoxSession">
+ La sessione chat con [NAME] deve chiudere.
+[REASON]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="Cannot_Purchase_an_Attachment">
+ Gli elementi non possono essere comprati mentre sono indossati.
+ </notification>
+ <notification label="Informazioni sulle richieste per il permesso di addebito" name="DebitPermissionDetails">
+ Accettare questa richiesta da allo script il permesso continuativo di prendere Linden dollar (L$) dal tuo account. Per revocare questo permesso, il proprietario dell&apos;oggetto deve cancellare l&apos;oggetto oppure reimpostare gli script nell&apos;oggetto.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="AutoWearNewClothing">
+ Vuoi indossare automaticamente i vestiti che crei?
+ <usetemplate ignoretext="Indossa automaticamente i nuovi vestiti." name="okcancelignore" notext="No" yestext="Si"/>
+ </notification>
+ <notification name="NotAgeVerified">
+ La tua età deve essere verificata per poter entrare in questo territorio.
+Vuoi visitare il sito di Second Life per verificare la tua eta?
+
+[_URL]
+ <url name="url" option="0">
+ https://secondlife.com/account/verification.php
+ </url>
+ <usetemplate ignoretext="Avviso per mancanza della verifica dell&apos;età" name="okcancelignore" notext="No" yestext="Si"/>
+ </notification>
+ <notification name="Cannot enter parcel: no payment info on file">
+ Questo terreno richiede che tu abbia registrato le tue informazioni di pagamento prima che tu possa accedervi.
+Vuoi visitare il sito di Second Life per impostarle?
+
+[_URL]
+ <url name="url" option="0">
+ https://secondlife.com/account/index.php?lang=it
+ </url>
+ <usetemplate ignoretext="Avviso per mancanza di informazioni di pagamento registrato" name="okcancelignore" notext="No" yestext="Si"/>
+ </notification>
+ <notification name="MissingString">
+ La stringa [STRING_NAME] non è presente in strings.xml
+ </notification>
+ <notification name="SystemMessageTip">
+ [MESSAGE]
+ </notification>
+ <notification name="Cancelled">
+ Annullato
+ </notification>
+ <notification name="CancelledSit">
+ Seduta annullata
+ </notification>
+ <notification name="CancelledAttach">
+ Attaccamento annullato
+ </notification>
+ <notification name="ReplacedMissingWearable">
+ Gli abiti/parti del corpo mancanti sono stati sostituiti con quelli di default .
+ </notification>
+ <notification name="GroupNotice">
+ Oggetto: [SUBJECT], Messaggio: [MESSAGE]
+ </notification>
+ <notification name="FriendOnline">
+ [FIRST] [LAST] è Online
+ </notification>
+ <notification name="FriendOffline">
+ [FIRST] [LAST] è Offline
+ </notification>
+ <notification name="AddSelfFriend">
+ Non puoi aggiungere te stesso come amico.
+ </notification>
+ <notification name="UploadingAuctionSnapshot">
+ Sto importando le fotografie per l&apos;uso inworld e per il web...
+(Durata circa 5 minuti.)
+ </notification>
+ <notification name="UploadPayment">
+ Hai pagato [AMOUNT]L$ per il caricamento.
+ </notification>
+ <notification name="UploadWebSnapshotDone">
+ Il caricamento della fotografia nel sito web è andato a buon fine.
+ </notification>
+ <notification name="UploadSnapshotDone">
+ Il caricamento della fotografia inworld è andato a buon fine.
+ </notification>
+ <notification name="TerrainDownloaded">
+ Terrain.raw caricato
+ </notification>
+ <notification name="GestureMissing">
+ La gesture [NAME] non è stata trovata nel database.
+ </notification>
+ <notification name="UnableToLoadGesture">
+ Impossibile caricare la gesture [NAME].
+Riprova.
+ </notification>
+ <notification name="LandmarkMissing">
+ Landmark non trovato nel database.
+ </notification>
+ <notification name="UnableToLoadLandmark">
+ Impossibile caricare il Landmark di riferimento. Riprova.
+ </notification>
+ <notification name="CapsKeyOn">
+ Il tasto BLOC MAIUSC è attivato.
+Dato che questo tasto ha effetto su come scrivi la password, forse sarebbe preferibile disattivarlo.
+ </notification>
+ <notification name="NotecardMissing">
+ Notecard non trovata nel database.
+ </notification>
+ <notification name="NotecardNoPermissions">
+ Permessi insufficienti per visualizzare la notecard.
+ </notification>
+ <notification name="RezItemNoPermissions">
+ Permessi insufficienti per creare un oggetto.
+ </notification>
+ <notification name="UnableToLoadNotecard">
+ Impossibile caricare la notecard in questo momento.
+ </notification>
+ <notification name="ScriptMissing">
+ Script non trovato nel database.
+ </notification>
+ <notification name="ScriptNoPermissions">
+ Permessi insufficenti per visualizzare lo script.
+ </notification>
+ <notification name="UnableToLoadScript">
+ Impossibile caricare lo script. Riprova.
+ </notification>
+ <notification name="IncompleteInventory">
+ Il contenuto che stai offrendo per il momento non è localmente disponibile. Prova a rioffrire gli oggetti fra un minuto.
+ </notification>
+ <notification name="CannotModifyProtectedCategories">
+ Non è possibile modificare le categorie protette.
+ </notification>
+ <notification name="CannotRemoveProtectedCategories">
+ Non è possibile rimuovere le categorie protette.
+ </notification>
+ <notification name="OfferedCard">
+ Hai offerto un biglietto da visita a [FIRST] [LAST]
+ </notification>
+ <notification name="UnableToBuyWhileDownloading">
+ Impossibile acquistare l&apos;oggetto durante il download dei dati.
+Riprova.
+ </notification>
+ <notification name="UnableToLinkWhileDownloading">
+ Impossibile collegare l&apos;oggetto durante il download dei dati.
+Riprova.
+ </notification>
+ <notification name="CannotBuyObjectsFromDifferentOwners">
+ Non è possibile acquistare oggetti provenienti da diversi proprietari allo stesso tempo.
+Seleziona un oggetto singolo per volta.
+ </notification>
+ <notification name="ObjectNotForSale">
+ L&apos;oggetto non sembra essere in vendita
+ </notification>
+ <notification name="EnteringGodMode">
+ Entra in modalità divina, livello [LEVEL]
+ </notification>
+ <notification name="LeavingGodMode">
+ Esci dalla modalità divina, livello [LEVEL]
+ </notification>
+ <notification name="CopyFailed">
+ La copia non è riuscita perche non hai il permesso di copiare.
+ </notification>
+ <notification name="InventoryAccepted">
+ [NAME] ha accettato la tua offerta dall&apos;inventario.
+ </notification>
+ <notification name="InventoryDeclined">
+ [NAME] non ha accettato la tua offerta dall&apos;inventario.
+ </notification>
+ <notification name="ObjectMessage">
+ [NAME]: [MESSAGE]
+ </notification>
+ <notification name="CallingCardAccepted">
+ Il tuo biglietto da visita è stato accettato.
+ </notification>
+ <notification name="CallingCardDeclined">
+ Il tuo biglietto da visita non è stato accettato.
+ </notification>
+ <notification name="TeleportToLandmark">
+ Ora che hai raggiunto la mainland, puoi teleportarti in posti come &apos;[NAME]&apos; cliccando inventario in basso a destra del tuo schermo, e selezionando la cartella dei Landmarks.
+Fai doppio click su un landmark e poi clicca su Teleport per andare là.
+ </notification>
+ <notification name="TeleportToPerson">
+ Ora che hai raggiunto la mainland, puoi contattare residenti con &apos;[NAME]&apos; cliccando inventario in basso a destra del tuo schermo, e selezionando la cartella dei biglietti da visita.
+Fai doppio click sul biglietto, clicca su IM messaggio istantaneo, e scrivi il messaggio.
+ </notification>
+ <notification name="CantSelectLandFromMultipleRegions">
+ Non è possibile selezionare il terreno attraverso i confini del server.
+Prova a selezionare una parte di terreno più piccola.
+ </notification>
+ <notification name="SearchWordBanned">
+ Alcuni termini della ricerca sono stati esclusi a causa delle restrizioni di contenuto come esposto negli Standard della comunità.
+ </notification>
+ <notification name="NoContentToSearch">
+ Seleziona almeno un tipo di contenuto per la ricerca (PG, Mature, o Adult).
+ </notification>
+ <notification name="GroupVote">
+ [NAME] ha proposto di votare su:
+[MESSAGE]
+ <form name="form">
+ <button name="VoteNow" text="Vota ora"/>
+ <button name="Later" text="Successivo"/>
+ </form>
+ </notification>
+ <notification name="SystemMessage">
+ [MESSAGE]
+ </notification>
+ <notification name="EventNotification">
+ Notifica eventi:
+
+[NAME]
+[DATE]
+ <form name="form">
+ <button name="Teleport" text="Teleport"/>
+ <button name="Description" text="Descrizione"/>
+ <button name="Cancel" text="Cancella"/>
+ </form>
+ </notification>
+ <notification name="TransferObjectsHighlighted">
+ Tutti gli oggetti presenti sul terreno, che saranno trasferiti al compratore di questa terra, saranno ora evidenziati.
+
+* Gli alberi e l&apos;erba che cederai non saranno evidenziati.
+ <form name="form">
+ <button name="Done" text="Fatto"/>
+ </form>
+ </notification>
+ <notification name="DeactivatedGesturesTrigger">
+ Usa lo stesso tasto per disattivare la gesture:
+[NAMES]
+ </notification>
+ <notification name="NoQuickTime">
+ Il software Apple QuickTime sembra non essere installato nel tuo sistema.
+Se desideri visualizzare il video streaming nei terreni supportati si consiglia di andare sul sito di QuickTime (http://www.apple.com/quicktime) e procedere con l&apos;installazione di QuickTime Player.
+ </notification>
+ <notification name="OwnedObjectsReturned">
+ Gli oggetti che possiedi sul terreno selezionato ti sono stati restituiti nell&apos;inventario.
+ </notification>
+ <notification name="OtherObjectsReturned">
+ Gli oggetti selezionati sul terreno che è di proprietà di [FIRST] [LAST] sono stati restituiti nel suo inventario.
+ </notification>
+ <notification name="OtherObjectsReturned2">
+ Gli oggetti selezionati sul terreno di proprietà del residente &apos;[NAME]&apos; sono stati restituiti al loro proprietario.
+ </notification>
+ <notification name="GroupObjectsReturned">
+ Gli oggetti selezionati sul terreno e condivisi con il gruppo [GROUPNAME] sono stati restituiti nell&apos;inventario dei propietari.
+Gli oggetti trasferibili ceduti sono stati restituiti ai proprietari precedenti.
+Gli oggetti non trasferibili che erano stati ceduti al gruppo sono stati cancellati.
+ </notification>
+ <notification name="UnOwnedObjectsReturned">
+ Gli oggetti selezionati sul terreno che non sono di tua proprietà sono stati restituiti ai loro proprietari.
+ </notification>
+ <notification name="NotSafe">
+ In questa terra il danno è abilitato (&apos;non sicura&apos;).
+Puoi farti male qui. Se muori, sarai teleportato a casa.
+ </notification>
+ <notification name="NoFly">
+ Questa terra ha il volo disabilitato (&apos;non puoi volare&apos;).
+Non è possibile volare qui.
+ </notification>
+ <notification name="PushRestricted">
+ Questa terra è &apos;Senza spinte&apos;.
+Non si puo spingere gli altri a meno che tu non sia propietario del terreno.
+ </notification>
+ <notification name="NoVoice">
+ Questa terra ha il voice disabilitato.
+ </notification>
+ <notification name="NoBuild">
+ Questo terreno ha la costruzione disabilitata (&apos;non puoi costruire&apos;).
+Non puoi costruire qui.
+ </notification>
+ <notification name="ScriptsStopped">
+ Un amministratore ha temporaneamente disabilitato gli script in questa regione.
+ </notification>
+ <notification name="ScriptsNotRunning">
+ In questa terra nessuno script è attivo.
+ </notification>
+ <notification name="NoOutsideScripts">
+ Questa land ha script esterni disabilitati.
+(&apos;nessuno script esterno&apos;).
+Nessuno script esterno funzionerà tranne quelli del propietario del terreno.
+ </notification>
+ <notification name="ClaimPublicLand">
+ Puoi solo prendere possesso di terra pubblica nella regione dove sei attualmente.
+ </notification>
+ <notification name="RegionTPAccessBlocked">
+ Non puoi entrare in quella regione a causa della tua categoria di accesso. Può essere necessario validare l&apos;età e/o installare l&apos;ultima versione del programma.
+
+Visita la Knowledge Base per informazioni sull&apos;accesso alle aree con queste categorie di accesso.
+ </notification>
+ <notification name="URBannedFromRegion">
+ Tu hai l&apos;accesso bloccato a questa regione.
+ </notification>
+ <notification name="NoTeenGridAccess">
+ Il tuo account non può connettersi a questa regione della griglia per Teenager.
+ </notification>
+ <notification name="NoHelpIslandTP">
+ Non è possibile per te ritornare all&apos;Help Island.
+Vai alla &apos;Help Island Public&apos; per ripetere il tutorial.
+ </notification>
+ <notification name="ImproperPaymentStatus">
+ Non hai una impostazioni di pagamento corrette per entrare in questa regione.
+ </notification>
+ <notification name="MustGetAgeRgion">
+ Devi avere un&apos;età verificata per entrare in questa regione.
+ </notification>
+ <notification name="MustGetAgeParcel">
+ Devi essere di età verificata per entrare in questa terra.
+ </notification>
+ <notification name="NoDestRegion">
+ Non è stata trovata nessuna regione di destinazione.
+ </notification>
+ <notification name="NotAllowedInDest">
+ Non hai il permesso di accedere alla regione di destinazione.
+ </notification>
+ <notification name="RegionParcelBan">
+ Non puoi attraversare la regione passando su un terreno ad accesso interdetto. Prova in un altro modo.
+ </notification>
+ <notification name="TelehubRedirect">
+ Sei stato rediretto ad un punto di snodo di teletrasporto.
+ </notification>
+ <notification name="CouldntTPCloser">
+ Non è stato possibile teleportarti più vicino al luogo di destinazione.
+ </notification>
+ <notification name="TPCancelled">
+ Teletrasporto annullato.
+ </notification>
+ <notification name="FullRegionTryAgain">
+ La regione in cui stai tentando di accedere è attualmente piena.
+Riprova tra qualche istante.
+ </notification>
+ <notification name="GeneralFailure">
+ Fallimento generale.
+ </notification>
+ <notification name="RoutedWrongRegion">
+ Sei stato instradato verso la regione sbagliata. Riprova.
+ </notification>
+ <notification name="NoValidAgentID">
+ Nessun ID valido.
+ </notification>
+ <notification name="NoValidSession">
+ Nessun ID valido.
+ </notification>
+ <notification name="NoValidCircuit">
+ Nessun codice circuito valido.
+ </notification>
+ <notification name="NoValidTimestamp">
+ Nessuna data/timestamp valido.
+ </notification>
+ <notification name="NoPendingConnection">
+ Impossibile creare la connessione in sospeso.
+ </notification>
+ <notification name="InternalUsherError">
+ Si è verificato un errore interno durante il tentativo di trasportarti alla destinazione. Potrebbero esserci problemi in Second Life al momento.
+ </notification>
+ <notification name="NoGoodTPDestination">
+ Impossibile trovare una buona destinazione per il teletrasporto in questa regione.
+ </notification>
+ <notification name="InternalErrorRegionResolver">
+ Si è verificato un errore interno durante il tentativo di risolvere le coordinate per la richiesta di teletrasporto. Può darsi che ci siano problemi in Second Life al momento.
+ </notification>
+ <notification name="NoValidLanding">
+ Non è stato trovato un punto di atterraggio valido.
+ </notification>
+ <notification name="NoValidParcel">
+ Non è stato trovato nessun territorio valido.
+ </notification>
+ <notification name="ObjectGiveItem">
+ Un oggetto chiamato [OBJECTFROMNAME] di proprietà di [FIRST] [LAST] ti ha dato un [OBJECTTYPE] che si chiama [OBJECTNAME].
+ <form name="form">
+ <button name="Keep" text="Prendi"/>
+ <button name="Discard" text="Rifiuta"/>
+ <button name="Mute" text="Muta"/>
+ </form>
+ </notification>
+ <notification name="ObjectGiveItemUnknownUser">
+ Un oggetto chiamato [OBJECTFROMNAME] di proprietà di (un utente sconosciuto) ti ha dato un [OBJECTTYPE] che si chiama [OBJECTNAME].
+ <form name="form">
+ <button name="Keep" text="Prendi"/>
+ <button name="Discard" text="Rifiuta"/>
+ <button name="Mute" text="Muta"/>
+ </form>
+ </notification>
+ <notification name="UserGiveItem">
+ [NAME] ti ha dato un [OBJECTTYPE] chiamato &apos;[OBJECTNAME]&apos;.
+ <form name="form">
+ <button name="Keep" text="Prendi"/>
+ <button name="Discard" text="Rifiuta"/>
+ <button name="Mute" text="Muta"/>
+ </form>
+ </notification>
+ <notification name="GodMessage">
+ [NAME]
+[MESSAGE]
+ </notification>
+ <notification name="JoinGroup">
+ [MESSAGE]
+ <form name="form">
+ <button name="Join" text="Iscriviti"/>
+ <button name="Decline" text="Rifiuta"/>
+ <button name="Info" text="Info"/>
+ </form>
+ </notification>
+ <notification name="TeleportOffered">
+ [NAME] ti ha offerto di teleportarti dove sta ora:
+
+[MESSAGE]
+ <form name="form">
+ <button name="Teleport" text="Teleport"/>
+ <button name="Cancel" text="Cancella"/>
+ </form>
+ </notification>
+ <notification name="GotoURL">
+ [MESSAGE]
+[URL]
+ <form name="form">
+ <button name="Later" text="Successivo"/>
+ <button name="GoNow..." text="Vai ora..."/>
+ </form>
+ </notification>
+ <notification name="OfferFriendship">
+ [NAME] ti ha offerto la sua amicizia.
+
+[MESSAGE]
+
+(Di default, potrete vedervi reciprocamente online.)
+ <form name="form">
+ <button name="Accept" text="Accetta"/>
+ <button name="Decline" text="Rifiuta"/>
+ </form>
+ </notification>
+ <notification name="OfferFriendshipNoMessage">
+ [NAME] ti ha offerto la sua amicizia.
+
+(Di default, potrete vedervi reciprocamente online.)
+ <form name="form">
+ <button name="Accept" text="Accetta"/>
+ <button name="Decline" text="Rifiuta"/>
+ </form>
+ </notification>
+ <notification name="FriendshipAccepted">
+ [NAME] ha accettato la tua offerta di amicizia.
+ </notification>
+ <notification name="FriendshipDeclined">
+ [NAME] ha rifiutato la tua offerta di amicizia.
+ </notification>
+ <notification name="OfferCallingCard">
+ [FIRST] [LAST] ti ha offerto il suo biglietto da visita.
+Questo aggiungerà un segnalibro nel tuo inventario.
+in modo da poter rapidamente inviargli un IM al residente.
+ <form name="form">
+ <button name="Accept" text="Accetta"/>
+ <button name="Decline" text="Rifiuta"/>
+ </form>
+ </notification>
+ <notification name="RegionRestartMinutes">
+ Il riavvio della regione avverrà tra [MINUTES] minuti.
+Se rimani in questa regione sarai disconnesso.
+ </notification>
+ <notification name="RegionRestartSeconds">
+ Il riavvio della regione avverrà tra [SECONDS] secondi.
+Se rimani in questa regione sarai disconnesso.
+ </notification>
+ <notification name="LoadWebPage">
+ Caricare pagina web [URL]?
+
+[MESSAGE]
+
+Dall&apos;oggetto: [OBJECTNAME], di: [NAME]?
+ <form name="form">
+ <button name="Gotopage" text="Caricare"/>
+ <button name="Cancel" text="Annulla"/>
+ </form>
+ </notification>
+ <notification name="FailedToFindWearableUnnamed">
+ Impossibile trovare [TYPE] nel database.
+ </notification>
+ <notification name="FailedToFindWearable">
+ Impossibile trovare [TYPE] chiamato [DESC] nel database.
+ </notification>
+ <notification name="InvalidWearable">
+ L&apos;oggetto che si sta tentando di indossare utilizza una funzione che il programma non riesce a leggere. Aggiorna la tua versione di Second Life per riuscire a indossare l&apos;oggetto.
+ </notification>
+ <notification name="ScriptQuestion">
+ &apos;[OBJECTNAME]&apos;, un oggetto di proprietà di &apos;[NAME]&apos;, vorrebbe:
+
+[QUESTIONS]
+Va bene?
+ <form name="form">
+ <button name="Yes" text="Si"/>
+ <button name="No" text="No"/>
+ <button name="Mute" text="Muta"/>
+ </form>
+ </notification>
+ <notification name="ScriptQuestionCaution">
+ &apos;[OBJECTNAME]&apos;, un oggetto di proprietà di &apos;[NAME]&apos;, vorrebbe:
+
+[QUESTIONS]
+Se non ci si fida dell&apos;oggetto e del suo creatore, si dovrebbe negare la richiesta. Per ulteriori informazioni, fai clic sul pulsante &apos;Dettagli&apos;.
+
+Accettare tale richiesta?
+ <form name="form">
+ <button name="Grant" text="Accetta"/>
+ <button name="Deny" text="Nega"/>
+ <button name="Details" text="Dettagli..."/>
+ </form>
+ </notification>
+ <notification name="ScriptDialog">
+ [FIRST] [LAST] &apos;[TITLE]&apos;
+[MESSAGE]
+ <form name="form">
+ <button name="Ignore" text="Ignora"/>
+ </form>
+ </notification>
+ <notification name="ScriptDialogGroup">
+ [GROUPNAME] &apos;[TITLE]&apos;
+[MESSAGE]
+ <form name="form">
+ <button name="Ignore" text="Ignora"/>
+ </form>
+ </notification>
+ <notification name="FirstBalanceIncrease">
+ Hai appena ricevuto [AMOUNT]L$.
+Gli oggetti e gli altri utenti possono darti L$.
+Il tuo saldo è indicato nell&apos;angolo in alto a destra dello schermo.
+ </notification>
+ <notification name="FirstBalanceDecrease">
+ Hai appena pagato [AMOUNT]L$.
+Il tuo saldo è indicato nell&apos;angolo in alto a destra dello schermo.
+ </notification>
+ <notification name="FirstSit">
+ Sei seduto.
+Utilizza i tasti freccia (o AWSD) per cambiare visualizzazione.
+Fai clic sul pulsante &apos;Alzati&apos; per rialzarti.
+ </notification>
+ <notification name="FirstMap">
+ Fai clic e trascina per scorrere la mappa.
+Doppio click per teleportarti.
+Utilizza i controlli sulla destra per trovare le cose e visualizzare sfondi differenti.
+ </notification>
+ <notification name="FirstBuild">
+ È possibile creare nuovi oggetti in alcune zone di [SECOND_LIFE].
+Utilizza gli strumenti in alto a sinistra per costruire, e prova a tenere premuto Ctrl o Alt per passare rapidamente tra uno strumento e l&apos;altro.
+Premi Esc per smettere di costruire.
+ </notification>
+ <notification name="FirstLeftClickNoHit">
+ Cliccare con il tasto sinistro fa interagire con particolari oggetti.
+Se il puntatore del mouse si trasforma in una mano, puoi interagire con l&apos;oggetto.
+Se fai clic col tasto destro ti verranno sempre mostrati menù con le cose che puoi fare.
+ </notification>
+ <notification name="FirstTeleport">
+ Questa regione non permette i teleport da punto a punto, cosi sei stato teletrasportato nel punto più vicino.
+La tua destinazione originale è comunque segnata da un segnale luminoso.
+Segui la freccia rossa per arrivare a destinazione, o fai clic sulla freccia per spegnerla.
+ </notification>
+ <notification name="FirstOverrideKeys">
+ I tuoi movimenti della tastiera vengono ora gestiti da un oggetto.
+Prova i tasti freccia o AWSD per vedere quello che fanno.
+Alcuni oggetti (come pistole) richiedono di andare in mouselook per il loro utilizzo.
+Premi &apos;M&apos; per farlo.
+ </notification>
+ <notification name="FirstAppearance">
+ Stai modificando il tuo aspetto.
+Per ruotare e fare uno zoom, utilizza le frecce della tastiera.
+Quando hai finito, premi &apos;Salva tutto&apos;
+per salvare il tuo look e uscire.
+Puoi modificare il tuo aspetto ogni qualvolta vuoi.
+ </notification>
+ <notification name="FirstInventory">
+ Questo è il tuo inventario, che contiene gli oggetti, notecard, abbigliamento, e altre cose che possiedi.
+* Per indossare un oggetto o un outfit completo contenuto in una cartella, trascinali su te stesso.
+* Per ricreare un oggetto inworld, trascinalo sul terreno.
+* Per leggere una notecard, fai doppio clic su di essa.
+ </notification>
+ <notification name="FirstSandbox">
+ Questa è una regione sandbox.
+Gli oggetti che costruisci qui, potrebbero essere cancellati dopo che lasci questa area, dato che le sandbox si autopuliscono regolarmente. Leggi le informazioni scritte al riguardo, vicino al nome della regione in alto sullo schermo.
+
+Le regioni sandbox sono rare, e sono contrassegnate da segnali.
+ </notification>
+ <notification name="FirstFlexible">
+ Questo oggetto è flessibile.
+Gli oggetti flessibili non possono essere fisici e devano essere fantasma fino a quando la casella di controllo della flessibilità verrà deselezionata.
+ </notification>
+ <notification name="FirstDebugMenus">
+ Hai attivato il menu Avanzato.
+Questo menu contiene funzioni utili per gli sviluppatori per il debug di Second Life.
+Per attivare o disattivare questo menu su Windows premere Ctrl-Alt-D. Su Mac premere Cmd-Opt-Shift-D.
+ </notification>
+ <notification name="FirstSculptedPrim">
+ Si sta modificando uno sculpted prim.
+Gli sculpted prim richiedono una speciale texture che ne specifichi la forma.
+Puoi trovare esempi di texture sculpted nella libreria dell&apos;inventario.
+ </notification>
+ <notification name="FirstMedia">
+ Hai iniziato la riproduzione dei media. I media possono essere impostati per essere riprodotti automaticamente nella finestra delle Preferenze sotto la voce Audio / Video. Questo può essere un rischio di sicurezza da media che non sono affidabili.
+ </notification>
+ <notification name="MaxListSelectMessage">
+ È possibile selezionare solo fino a [MAX_SELECT] oggetti da questa lista.
+ </notification>
+ <notification name="VoiceInviteP2P">
+ [NAME] ti ha invitato a una chiamata Voice.
+Fai clic su Accetta per partecipare alla chiamata o su Rifiuta per rifiutare l&apos;invito. fai clic sul pulsante Muta per mutare il chiamante.
+ <form name="form">
+ <button name="Accept" text="Accetta"/>
+ <button name="Decline" text="Rifiuta"/>
+ <button name="Mute" text="Muta"/>
+ </form>
+ </notification>
+ <notification name="AutoUnmuteByIM">
+ A [FIRST] [LAST] e&apos; stato mandato un messaggio instantaneo ed è stato quindi automaticamente non mutato.
+ </notification>
+ <notification name="AutoUnmuteByMoney">
+ A [FIRST] [LAST] è stato dato del denaro ed è stato automaticamente non mutato.
+ </notification>
+ <notification name="AutoUnmuteByInventory">
+ A [FIRST] [LAST] é stato passato qualcosa dall&apos;inventario ed è stato automaticamente non mutato.
+ </notification>
+ <notification name="VoiceInviteGroup">
+ [NAME] ha iniziato una chiamata Voice-Chat con il gruppo [GROUP].
+Fai clic su Accetta per partecipare alla chiamata o Rifiuta per Rifiutare l&apos;invito. Fai clic sul pulsante muta per mutare il chiamante.
+ <form name="form">
+ <button name="Accept" text="Accetta"/>
+ <button name="Decline" text="Rifiuta"/>
+ <button name="Mute" text="Muta"/>
+ </form>
+ </notification>
+ <notification name="VoiceInviteAdHoc">
+ [NAME] ha iniziato una chiamata Voice Chat mediante una conferenza chat..
+Fai clic su Accetta per partecipare alla chiamata o Rifiuta per Rifiutare l&apos;invito. Fai clic sul pulsante muta per mutare il chiamante.
+ <form name="form">
+ <button name="Accept" text="Accetta"/>
+ <button name="Decline" text="Rifiuta"/>
+ <button name="Mute" text="Muta"/>
+ </form>
+ </notification>
+ <notification name="InviteAdHoc">
+ [NAME] ti ha invitato ad una conferenza chat.
+Fai clic su Accetta per partecipare alla chiamata o su Rifiuta per rifiutare l&apos;invito. Fai clic sul pulsante muta per mutare il chiamante.
+ <form name="form">
+ <button name="Accept" text="Accetta"/>
+ <button name="Decline" text="Rifiuta"/>
+ <button name="Mute" text="Muta"/>
+ </form>
+ </notification>
+ <notification name="VoiceChannelFull">
+ La chiamata vocale a cui si sta cercando di unirsi, [VOICE_CHANNEL_NAME], ha raggiunto la capacità massima. Si prega di riprovare più tardi.
+ </notification>
+ <notification name="ProximalVoiceChannelFull">
+ Siamo spiacenti. Questa area ha raggiunto la capacità massima per le chiamate voice. Si prega di provare ad usare il voice in un&apos;altra area.
+ </notification>
+ <notification name="VoiceChannelDisconnected">
+ Sei stato disconnesso da [VOICE_CHANNEL_NAME]. Ora verrai riconnesso al canale voice chat pubblico.
+ </notification>
+ <notification name="VoiceChannelDisconnectedP2P">
+ [VOICE_CHANNEL_NAME] ha chiuso la chiamata. Ora verrai riconnesso al canale voice chat pubblico.
+ </notification>
+ <notification name="P2PCallDeclined">
+ [VOICE_CHANNEL_NAME] ha rifiutato la tua chiamata. Ora verrai riconnesso al canale voice chat pubblico.
+ </notification>
+ <notification name="P2PCallNoAnswer">
+ [VOICE_CHANNEL_NAME] non è disponibile per rispondere alla chiamata. Ora verrai riconnesso al canale voice chat pubblico.
+ </notification>
+ <notification name="VoiceChannelJoinFailed">
+ Impossibile connettersi con [VOICE_CHANNEL_NAME], si prega di riprovare più tardi. Ora verrai riconnesso al canale voice chat pubblico.
+ </notification>
+ <notification name="VoiceLoginRetry">
+ Stiamo creando una canale voice per te. Questo può richiedere fino a un minuto.
+ </notification>
+ <notification name="Cannot enter parcel: not a group member">
+ Non puoi entrare nel terreno, non sei un membro del gruppo appropriato.
+ </notification>
+ <notification name="Cannot enter parcel: banned">
+ Non puoi entrare nel terreno, sei stato bloccato.
+ </notification>
+ <notification name="Cannot enter parcel: not on access list">
+ Non puoi entrare nel terreno, non fai parte della lista di accesso.
+ </notification>
+ <notification name="VoiceNotAllowed">
+ Non hai il permesso di collegarti ad una voice chat con [VOICE_CHANNEL_NAME].
+ </notification>
+ <notification name="VoiceCallGenericError">
+ Si è verificato un errore durante il tentativo di collegarti a una voice chat con [VOICE_CHANNEL_NAME]. Riprova più tardi.
+ </notification>
+ <notification name="ServerVersionChanged">
+ La regione in cui sei entrato, gira su una versione di simulatore differente. Fai clic su questo messaggio per i dettagli.
+ </notification>
+ <notification name="UnableToOpenCommandURL">
+ L&apos;URL che hai selezionato non può essere aperto da questo browser.
+ </notification>
+ <global name="UnsupportedCPU">
+ - La velocità della tua CPU non soddisfa i requisiti minimi.
+ </global>
+ <global name="UnsupportedGLRequirements">
+ Sembra che tu non abbia i requisiti appropriati hardware per Second Life. Second Life ha bisogno di una scheda grafica OpenGL che abbia il supporto multitexture. Se ritieni di avere l&apos;hardware giusto verifica di avere installati i driver più aggiornati per la tua scheda grafica e gli aggiornamenti e service pack appropriati per il tuo sistema operativo.
+
+Se continui ad avere problemi, visita il sito: http://www.secondlife.com/support
+ </global>
+ <global name="UnsupportedCPUAmount">
+ 796
+ </global>
+ <global name="UnsupportedRAMAmount">
+ 510
+ </global>
+ <global name="UnsupportedGPU">
+ - La tua scheda grafica non soddisfa i requisiti minimi.
+ </global>
+ <global name="UnsupportedRAM">
+ - La memoria del tuo sistema non soddisfa i requisiti minimi.
+ </global>
+ <global name="PermYes">
+ Si
+ </global>
+ <global name="PermNo">
+ No
+ </global>
+</notifications>
diff --git a/indra/newview/skins/default/xui/it/panel_audio_device.xml b/indra/newview/skins/default/xui/it/panel_audio_device.xml
index 6a5e220d18..166db81999 100644
--- a/indra/newview/skins/default/xui/it/panel_audio_device.xml
+++ b/indra/newview/skins/default/xui/it/panel_audio_device.xml
@@ -1,25 +1,25 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="device_settings">
- <text name="Audio Devices">
- Periferiche audio
- </text>
- <text name="Input device (microphone):">
- Periferica di input (microfono):
- </text>
- <text name="Output device (speakers):">
- Periferica di Output (altoparlanti):
- </text>
- <text name="Input level:">
- Livello d&apos;ingresso
- </text>
- <text_editor name="voice_intro_text1">
- Sposta il cursore per impostare il livello della tua voce per gli altri residenti. Per controllare il livello di ingresso, parla semplicemente nel microfono.
- </text_editor>
- <volume_slider name="mic_volume_slider" tool_tip="Cambia il volume usando il cursore"/>
- <text name="wait_text">
- Attendi
- </text>
- <string name="default_text">
- Default
- </string>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="device_settings">
+ <text name="Audio Devices">
+ Periferiche audio
+ </text>
+ <text name="Input device (microphone):">
+ Periferica di input (microfono):
+ </text>
+ <text name="Output device (speakers):">
+ Periferica di Output (altoparlanti):
+ </text>
+ <text name="Input level:">
+ Livello d&apos;ingresso
+ </text>
+ <text_editor name="voice_intro_text1">
+ Sposta il cursore per impostare il livello della tua voce per gli altri residenti. Per controllare il livello di ingresso, parla semplicemente nel microfono.
+ </text_editor>
+ <volume_slider name="mic_volume_slider" tool_tip="Cambia il volume usando il cursore"/>
+ <text name="wait_text">
+ Attendi
+ </text>
+ <string name="default_text">
+ Default
+ </string>
+</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_friends.xml b/indra/newview/skins/default/xui/it/panel_friends.xml
index ec3801a969..78e0d542f3 100644
--- a/indra/newview/skins/default/xui/it/panel_friends.xml
+++ b/indra/newview/skins/default/xui/it/panel_friends.xml
@@ -1,20 +1,20 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="friends">
- <string name="Multiple">
- Amici multipli...
- </string>
- <scroll_list name="friend_list" tool_tip="Tieni premuto shift o control mentre clicchi per selezionare più di un amico">
- <column name="icon_online_status" tool_tip="Stato Online"/>
- <column label="Nome" name="friend_name" tool_tip="Nome"/>
- <column name="icon_visible_online" tool_tip="Questo amico può vedere quando sei online"/>
- <column name="icon_visible_map" tool_tip="Questo amico può localizzarti sulla mappa"/>
- <column name="icon_edit_mine" tool_tip="Questo amico può modificare, cancellare o prendere i tuoi oggetti"/>
- <column name="icon_edit_theirs" tool_tip="Puoi modificare gli oggetti di questo amico"/>
- </scroll_list>
- <button label="IM/Chiama" name="im_btn" tool_tip="Apri una sessione di IM - Messaggio Privato"/>
- <button label="Profilo" name="profile_btn" tool_tip="Mostra foto, gruppi, ed altre informazioni"/>
- <button label="Teleport..." name="offer_teleport_btn" tool_tip="Offri a questo amico un teleport per dove sei tu ora"/>
- <button label="Paga..." name="pay_btn" tool_tip="Dai Linden dollar (L$) a questo amico"/>
- <button label="Rimuovi..." name="remove_btn" tool_tip="Rimuovi questa persona dalla tua lista amici"/>
- <button label="Aggiungi come amico..." name="add_btn" tool_tip="Offri amicizia ad un residente"/>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="friends">
+ <string name="Multiple">
+ Amici multipli...
+ </string>
+ <scroll_list name="friend_list" tool_tip="Tieni premuto shift o control mentre clicchi per selezionare più di un amico">
+ <column name="icon_online_status" tool_tip="Stato Online"/>
+ <column label="Nome" name="friend_name" tool_tip="Nome"/>
+ <column name="icon_visible_online" tool_tip="Questo amico può vedere quando sei online"/>
+ <column name="icon_visible_map" tool_tip="Questo amico può localizzarti sulla mappa"/>
+ <column name="icon_edit_mine" tool_tip="Questo amico può modificare, cancellare o prendere i tuoi oggetti"/>
+ <column name="icon_edit_theirs" tool_tip="Puoi modificare gli oggetti di questo amico"/>
+ </scroll_list>
+ <button label="IM/Chiama" name="im_btn" tool_tip="Apri una sessione di IM - Messaggio Privato"/>
+ <button label="Profilo" name="profile_btn" tool_tip="Mostra foto, gruppi, ed altre informazioni"/>
+ <button label="Teleport..." name="offer_teleport_btn" tool_tip="Offri a questo amico un teleport per dove sei tu ora"/>
+ <button label="Paga..." name="pay_btn" tool_tip="Dai Linden dollar (L$) a questo amico"/>
+ <button label="Rimuovi..." name="remove_btn" tool_tip="Rimuovi questa persona dalla tua lista amici"/>
+ <button label="Aggiungi come amico..." name="add_btn" tool_tip="Offri amicizia ad un residente"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_group_general.xml b/indra/newview/skins/default/xui/it/panel_group_general.xml
index 70bf6a2668..cc044a2e56 100644
--- a/indra/newview/skins/default/xui/it/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/it/panel_group_general.xml
@@ -1,70 +1,80 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Generale" name="general_tab">
- <string name="help_text">
- Il pannello &apos;Generale&apos; contiene informazioni generali riguardanti il
-gruppo, un elenco dei proprietari e i membri visibili,
-le preferenze generali di gruppo e le opzioni dei membri.
-
-Passa il mouse sulle opzioni per un aiuto aggiuntivo.
- </string>
- <string name="group_info_unchanged">
- Le informazioni generali del gruppo sono cambiate.
- </string>
- <button label="?" label_selected="?" name="help_button"/>
- <line_editor label="Scrivi il nome del nuovo gruppo qui" name="group_name_editor"/>
- <text name="group_name">
- Scrivi il nome del nuovo gruppo qui
- </text>
- <text name="prepend_founded_by">
- Fondato da
- </text>
- <text name="founder_name">
- (attendi)
- </text>
- <text name="group_charter_label">
- Statuto del gruppo
- </text>
- <texture_picker label="Immagine del gruppo" name="insignia" tool_tip="Clicca per scegliere una immagine"/>
- <text_editor name="charter">
- Statuto del gruppo
- </text_editor>
- <button label="Unisciti (0 L$)" label_selected="Unisciti (0 L$)" name="join_button"/>
- <button label="Visualizza dettagli" label_selected="Visualizza dettagli" name="info_button"/>
- <text name="text_owners_and_visible_members">
- Proprietari &amp; Membri visibili
- </text>
- <text name="text_owners_are_shown_in_bold">
- (I proprietari sono scritti in neretto)
- </text>
- <name_list name="visible_members">
- <column label="Nome del membro" name="name"/>
- <column label="Titolo" name="title"/>
- <column label="Ultimo login" name="online"/>
- </name_list>
- <text name="text_group_preferences">
- Preferenze di gruppo
- </text>
- <panel name="preferences_container">
- <check_box label="Mostra nella ricerca" name="show_in_group_list" tool_tip="Lascia che i residenti vedano questo gruppo nella ricerca."/>
- <check_box label="Iscrizione libera" name="open_enrollement" tool_tip="Imposta se questo gruppo permette ai nuovi membri di unirsi senza essere invitati."/>
- <check_box label="Tassa di iscrizione: L$" name="check_enrollment_fee" tool_tip="Imposta se richiedere una tassa di iscrizione per unirsi al gruppo."/>
- <spinner name="spin_enrollment_fee" tool_tip="I nuovi membri devono pagare questa tassa per unirsi al gruppo. La tassa di iscrizione è selezionata."/>
-
- <panel name="title_container">
- <text name="active_title_label">
- Il mio titolo attivo
- </text>
- <combo_box name="active_title" tool_tip="Imposta il titolo che appare sulla testa del tuo avatar quando il gruppo è attivo."/>
- </panel>
- <check_box label="Ricevi avvisi dal gruppo" name="receive_notices" tool_tip="Imposta se vuoi ricevere avvisi da questo gruppo. Togli la spunta da questa casella se questo gruppo ti sta spammando."/>
- <check_box label="Elenca il gruppo nel mio profilo" name="list_groups_in_profile" tool_tip="Imposta se vuoi elencare questo gruppo nel tuo profilo"/>
- </panel>
- <string name="incomplete_member_data_str">
- Rilevando i dati dei membri
- </string>
- <string name="confirm_group_create_str">
- Creare questo gruppo ti costerà 100 L$.
-Sei davvero, davvero, DAVVERO sicuro che vuoi spendere 100 L$ per creare questo gruppo?
-Fai attenzione che se nessun altro viene unito al gruppo entro 48 ore, questo gruppo verrà dismesso e il nome del gruppo non sarà più disponibile in futuro.
- </string>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Generale" name="general_tab">
+ <string name="help_text">
+ Il pannello &apos;Generale&apos; contiene informazioni generali riguardanti il
+gruppo, un elenco dei proprietari e i membri visibili,
+le preferenze generali di gruppo e le opzioni dei membri.
+
+Passa il mouse sulle opzioni per un aiuto aggiuntivo.
+ </string>
+ <string name="group_info_unchanged">
+ Le informazioni generali del gruppo sono cambiate.
+ </string>
+ <button label="?" label_selected="?" name="help_button"/>
+ <line_editor label="Scrivi il nome del nuovo gruppo qui" name="group_name_editor"/>
+ <text name="group_name">
+ Scrivi il nome del nuovo gruppo qui
+ </text>
+ <text name="prepend_founded_by">
+ Fondato da
+ </text>
+ <text name="founder_name">
+ (attendi)
+ </text>
+ <text name="group_charter_label">
+ Statuto del gruppo
+ </text>
+ <texture_picker label="Immagine del gruppo" name="insignia" tool_tip="Clicca per scegliere una immagine"/>
+ <text_editor name="charter">
+ Statuto del gruppo
+ </text_editor>
+ <button label="Unisciti (0 L$)" label_selected="Unisciti (0 L$)" name="join_button"/>
+ <button label="Visualizza dettagli" label_selected="Visualizza dettagli" name="info_button"/>
+ <text name="text_owners_and_visible_members">
+ Proprietari &amp; Membri visibili
+ </text>
+ <text name="text_owners_are_shown_in_bold">
+ (I proprietari sono scritti in neretto)
+ </text>
+ <name_list name="visible_members">
+ <column label="Nome del membro" name="name"/>
+ <column label="Titolo" name="title"/>
+ <column label="Ultimo login" name="online"/>
+ </name_list>
+ <text name="text_group_preferences">
+ Preferenze di gruppo
+ </text>
+ <panel name="preferences_container">
+ <check_box label="Mostra nella ricerca" name="show_in_group_list" tool_tip="Lascia che i residenti vedano questo gruppo nella ricerca."/>
+ <check_box label="Iscrizione libera" name="open_enrollement" tool_tip="Imposta se questo gruppo permette ai nuovi membri di unirsi senza essere invitati."/>
+ <check_box label="Tassa di iscrizione: L$" name="check_enrollment_fee" tool_tip="Imposta se richiedere una tassa di iscrizione per unirsi al gruppo."/>
+ <spinner name="spin_enrollment_fee" tool_tip="I nuovi membri devono pagare questa tassa per unirsi al gruppo. La tassa di iscrizione è selezionata."/>
+ <combo_box name="group_mature_check" tool_tip="Imposta se le informazioni sul tuo gruppo sono da considerarsi Mature.">
+ <combo_item name="select_mature">
+ - Seleziona -
+ </combo_item>
+ <combo_item name="mature">
+ Contenuto Mature
+ </combo_item>
+ <combo_item name="pg">
+ Contenuto PG
+ </combo_item>
+ </combo_box>
+ <panel name="title_container">
+ <text name="active_title_label">
+ Il mio titolo attivo
+ </text>
+ <combo_box name="active_title" tool_tip="Imposta il titolo che appare sulla testa del tuo avatar quando il gruppo è attivo."/>
+ </panel>
+ <check_box label="Ricevi avvisi dal gruppo" name="receive_notices" tool_tip="Imposta se vuoi ricevere avvisi da questo gruppo. Togli la spunta da questa casella se questo gruppo ti sta spammando."/>
+ <check_box label="Elenca il gruppo nel mio profilo" name="list_groups_in_profile" tool_tip="Imposta se vuoi elencare questo gruppo nel tuo profilo"/>
+ </panel>
+ <string name="incomplete_member_data_str">
+ Rilevando i dati dei membri
+ </string>
+ <string name="confirm_group_create_str">
+ Creare questo gruppo ti costerà 100 L$.
+Sei davvero, davvero, DAVVERO sicuro che vuoi spendere 100 L$ per creare questo gruppo?
+Fai attenzione che se nessun altro viene unito al gruppo entro 48 ore, questo gruppo verrà dismesso e il nome del gruppo non sarà più disponibile in futuro.
+ </string>
+</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_group_invite.xml b/indra/newview/skins/default/xui/it/panel_group_invite.xml
index c17321fcf6..d75b3a46e8 100644
--- a/indra/newview/skins/default/xui/it/panel_group_invite.xml
+++ b/indra/newview/skins/default/xui/it/panel_group_invite.xml
@@ -1,23 +1,23 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Invita una persona" name="invite_panel">
- <text name="help_text">
- Puoi selezionare residenti multipli
-da invitare nel tuo gruppo. Clicca &apos;Apri seleziona persone&apos;
-per iniziare.
- </text>
- <button label="Apri seleziona persone" name="add_button" tool_tip=""/>
- <name_list name="invitee_list" tool_tip="Tieni premuto il tasto ctrl e clicca i nomi dei residenti per avere una selezione multipla."/>
- <button label="Rimuovi i selezionati dall&apos;elenco" name="remove_button" tool_tip="Rimuove i residenti qui sopra selezionati, dall&apos;elenco degli inviti."/>
- <text name="role_text">
- Scegli che ruolo assegnare loro:
- </text>
- <combo_box name="role_name" tool_tip="Scegli dall&apos;elenco dei ruoli che tu sei abilitato ad assegnare."/>
- <button label="Manda gli inviti" name="ok_button"/>
- <button label="Annulla" name="cancel_button"/>
- <string name="confirm_invite_owner_str">
- Sei sicuro di voler invitare nuovi capogruppo? Questa azione è irrevocabile!
- </string>
- <string name="loading">
- (Attendi...)
- </string>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Invita una persona" name="invite_panel">
+ <text name="help_text">
+ Puoi selezionare più di un residente
+da invitare nel tuo gruppo. Clicca su &apos;Scelta
+residenti&apos; per iniziare.
+ </text>
+ <button label="Scelta residenti" name="add_button" tool_tip=""/>
+ <name_list name="invitee_list" tool_tip="Tieni premuto il tasto ctrl e clicca i nomi dei residenti per avere una selezione multipla."/>
+ <button label="Rimuovi i selezionati dall&apos;elenco" name="remove_button" tool_tip="Rimuove i residenti qui sopra selezionati, dall&apos;elenco degli inviti."/>
+ <text name="role_text">
+ Scegli che ruolo assegnare loro:
+ </text>
+ <combo_box name="role_name" tool_tip="Scegli dall&apos;elenco dei ruoli che tu sei abilitato ad assegnare."/>
+ <button label="Manda gli inviti" name="ok_button"/>
+ <button label="Annulla" name="cancel_button"/>
+ <string name="confirm_invite_owner_str">
+ Sei sicuro di voler invitare nuovi capogruppo? Questa azione è irrevocabile!
+ </string>
+ <string name="loading">
+ (Attendi...)
+ </string>
+</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_group_land_money.xml b/indra/newview/skins/default/xui/it/panel_group_land_money.xml
index fe2ba27a1a..907ce8ea5a 100644
--- a/indra/newview/skins/default/xui/it/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/it/panel_group_land_money.xml
@@ -1,74 +1,80 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Terra &amp; L$" name="land_money_tab">
- <string name="help_text">
- Porzioni di terreno posseduti dal gruppo sono elencati insieme ai dettagli dei contributi. Un avvertimento sarà visualizzato finchè la terra totale in uso è minore o uguale al totale delle contribuzioni. Le pagine &apos;Dettagli&apos; e &apos;Vendite&apos; forniscono informazioni riguardanti lo stato finanziario del gruppo.
- </string>
- <button label="?" name="help_button"/>
- <string name="cant_view_group_land_text">
- Non hai i permessi necessari per visualizzare la terra posseduta dal gruppo.
- </string>
- <string name="cant_view_group_accounting_text">
- Non hai i permessi necessari per visualizzare i movimenti finanziari del gruppo.
- </string>
- <string name="loading_txt">
- Attendi...
- </string>
- <text name="group_land_heading">
- Terra posseduta dal gruppo
- </text>
- <scroll_list name="group_parcel_list">
- <column label="Nome dell&apos;appezzamento" name="name"/>
- <column label="Regione" name="location"/>
- <column label="Area" name="area"/>
- </scroll_list>
- <button label="Mostra sulla mappa" label_selected="Mostra sulla mappa" name="map_button"/>
- <text name="total_contributed_land_label">
- Total Contribution:
- </text>
- <text name="total_contributed_land_value">
- [AREA] metri quadri
- </text>
- <text name="total_land_in_use_label">
- Terra totale in uso:
- </text>
- <text name="total_land_in_use_value">
- [AREA] metri quadri
- </text>
- <text name="land_available_label">
- Terra disponibile:
- </text>
- <text name="land_available_value">
- [AREA] metri quadri
- </text>
- <text name="your_contribution_label">
- Il tuo contributo:
- </text>
- <string name="land_contrib_error">
- Non è possibile impostare i tuoi contributi in terra.
- </string>
- <text name="your_contribution_max_value">
- metri quadri ([AMOUNT] massimo)
- </text>
- <text name="group_over_limit_text">
- I membri del gruppo devono contribuire con più crediti per mantenere la quantità  di terra in uso.
- </text>
- <text name="group_money_heading">
- L$ del gruppo
- </text>
- <tab_container name="group_money_tab_container">
- <panel label="Dettagli" name="group_money_details_tab">
- <text_editor name="group_money_details_text">
- Calcolo...
- </text_editor>
- <button label="&lt; Precedente" label_selected="&lt; Precedente" name="earlier_details_button" tool_tip="Vai ai dettagli precedenti"/>
- <button label="Successivo &gt;" label_selected="Successivo &gt;" name="later_details_button" tool_tip="Vai ai dettagli successivi"/>
- </panel>
- <panel label="Vendite" name="group_money_sales_tab">
- <text_editor name="group_money_sales_text">
- Calcolo...
- </text_editor>
- <button label="&lt; Precedente" label_selected="&lt; Precedente" name="earlier_sales_button" tool_tip="Vai ai dettagli precedenti"/>
- <button label="Successivo &gt;" label_selected="Successivo &gt;" name="later_sales_button" tool_tip="Vai ai dettagli successivi"/>
- </panel>
- </tab_container>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Terra &amp; L$" name="land_money_tab">
+ <string name="help_text">
+ I terreni di proprietà del gruppo sono elencati insieme ai dettagli delle contribuzioni. Un avviso viene visualizzato se la superficie totale in uso è inferiore o pari al totale delle contribuzioni. Le schede: Pianificazione, Dettagli e Vendite forniscono informazioni sulle finanze del gruppo.
+ </string>
+ <button label="?" name="help_button"/>
+ <string name="cant_view_group_land_text">
+ Non hai i permessi necessari per visualizzare la terra posseduta dal gruppo.
+ </string>
+ <string name="cant_view_group_accounting_text">
+ Non hai i permessi necessari per visualizzare i movimenti finanziari del gruppo.
+ </string>
+ <string name="loading_txt">
+ Attendi...
+ </string>
+ <text name="group_land_heading">
+ Terra posseduta dal gruppo
+ </text>
+ <scroll_list name="group_parcel_list">
+ <column label="Nome dell&apos;appezzamento" name="name"/>
+ <column label="Regione" name="location"/>
+ <column label="Tipo" name="type"/>
+ <column label="Area" name="area"/>
+ </scroll_list>
+ <button label="Mostra sulla mappa" label_selected="Mostra sulla mappa" name="map_button"/>
+ <text name="total_contributed_land_label">
+ Total Contribution:
+ </text>
+ <text name="total_contributed_land_value">
+ [AREA] metri quadri
+ </text>
+ <text name="total_land_in_use_label">
+ Terra totale in uso:
+ </text>
+ <text name="total_land_in_use_value">
+ [AREA] metri quadri
+ </text>
+ <text name="land_available_label">
+ Terra disponibile:
+ </text>
+ <text name="land_available_value">
+ [AREA] metri quadri
+ </text>
+ <text name="your_contribution_label">
+ Il tuo contributo:
+ </text>
+ <string name="land_contrib_error">
+ Non è possibile impostare i tuoi contributi in terra.
+ </string>
+ <text name="your_contribution_max_value">
+ metri quadri ([AMOUNT] massimo)
+ </text>
+ <text name="group_over_limit_text">
+ I membri del gruppo devono contribuire con più crediti per mantenere la quantità  di terra in uso.
+ </text>
+ <text name="group_money_heading">
+ L$ del gruppo
+ </text>
+ <tab_container name="group_money_tab_container">
+ <panel label="Pianificazione" name="group_money_planning_tab">
+ <text_editor name="group_money_planning_text">
+ Conteggio...
+ </text_editor>
+ </panel>
+ <panel label="Dettagli" name="group_money_details_tab">
+ <text_editor name="group_money_details_text">
+ Calcolo...
+ </text_editor>
+ <button label="&lt; Precedente" label_selected="&lt; Precedente" name="earlier_details_button" tool_tip="Vai ai dettagli precedenti"/>
+ <button label="Successivo &gt;" label_selected="Successivo &gt;" name="later_details_button" tool_tip="Vai ai dettagli successivi"/>
+ </panel>
+ <panel label="Vendite" name="group_money_sales_tab">
+ <text_editor name="group_money_sales_text">
+ Calcolo...
+ </text_editor>
+ <button label="&lt; Precedente" label_selected="&lt; Precedente" name="earlier_sales_button" tool_tip="Vai ai dettagli precedenti"/>
+ <button label="Successivo &gt;" label_selected="Successivo &gt;" name="later_sales_button" tool_tip="Vai ai dettagli successivi"/>
+ </panel>
+ </tab_container>
+</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_group_notices.xml b/indra/newview/skins/default/xui/it/panel_group_notices.xml
index 7f65ca0abd..7f1f37d67e 100644
--- a/indra/newview/skins/default/xui/it/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/it/panel_group_notices.xml
@@ -1,71 +1,71 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Notice" name="notices_tab">
- <string name="help_text">
- Le notice sono un modo veloce per comunicare in un
-gruppo diffondendo un messaggio e recapitando un
-eventuale oggetto allegato. Le notice arrivano solo ai
-membri del gruppo il cui ruolo è abilitato a riceverli.
-Puoi disattivare la ricezione delle notice
-nella finestra principale.
- </string>
- <string name="no_notices_text">
- Non ci sono vecchie notice.
- </string>
- <button label="?" label_selected="?" name="help_button"/>
- <text name="lbl">
- Archivio delle notice del gruppo
- </text>
- <text name="lbl2">
- Le notice sono conservate per 14 giorni. Clicca la notice qui sotto che desideri leggere.
-Clicca il bottone &apos;Aggiorna&apos; per controllare se sono arrivate nuove notice.
-Il numero delle notice è limitato a 200 notice per gruppo al giorno.
- </text>
- <scroll_list name="notice_list">
- <column label="Oggetto" name="subject"/>
- <column label="Da" name="from"/>
- <column label="Data" name="date"/>
- </scroll_list>
- <text name="notice_list_none_found">
- Nessuna notice trovata.
- </text>
- <button label="Crea una nuova notice" label_selected="Crea una nuova notice" name="create_new_notice"/>
- <button label="Aggiorna" label_selected="Aggiorna l&apos;elenco" name="refresh_notices"/>
- <panel label="Crea una nuova notice" name="panel_create_new_notice">
- <text name="lbl">
- Crea una notice
- </text>
- <text name="lbl2">
- Devi scrivere l&apos;oggetto della notice per poterla inviare.
-Puoi aggiungere un solo allegato alla notice trascinandolo
-dal tuo inventario in questa finestra. L&apos;allegato deve essere copiabile e cedibile,
-e non puoi allegare una cartella.
- </text>
- <text name="lbl3">
- Oggetto:
- </text>
- <text name="lbl4">
- Messaggio:
- </text>
- <text name="lbl5">
- Allega:
- </text>
- <button label="Rimuovi allegato" label_selected="Rimuovi allegato" name="remove_attachment"/>
- <button label="Invia la notice" label_selected="Invia la notice" name="send_notice"/>
- <panel name="drop_target" tool_tip="Trascina un oggetto dall&apos;inventario sulla casella del messaggio per inviarlo con la notice. Devi avere il permesso di copia e trasferimento dell&apos;oggetto per poterlo inviare con la notice."/>
- </panel>
- <panel label="Vedi le notice precedenti" name="panel_view_past_notice">
- <text name="lbl">
- Notice archiviate
- </text>
- <text name="lbl2">
- Per mandare una nuova notice, clicca il bottone &apos;Crea una nuova notice&apos; qui sopra.
- </text>
- <text name="lbl3">
- Oggetto:
- </text>
- <text name="lbl4">
- Messaggio:
- </text>
- <button label="Apri l&apos;allegato" label_selected="Apri l&apos;allegato" name="open_attachment"/>
- </panel>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Notice" name="notices_tab">
+ <string name="help_text">
+ Le notice sono un modo veloce per comunicare in un
+gruppo diffondendo un messaggio e recapitando un
+eventuale oggetto allegato. Le notice arrivano solo ai
+membri del gruppo il cui ruolo è abilitato a riceverli.
+Puoi disattivare la ricezione delle notice
+nella finestra principale.
+ </string>
+ <string name="no_notices_text">
+ Non ci sono vecchie notice.
+ </string>
+ <button label="?" label_selected="?" name="help_button"/>
+ <text name="lbl">
+ Archivio delle notice del gruppo
+ </text>
+ <text name="lbl2">
+ Le notice sono conservate per 14 giorni. Clicca la notice qui sotto che desideri leggere.
+Clicca il bottone &apos;Aggiorna&apos; per controllare se sono arrivate nuove notice.
+Il numero delle notice è limitato a 200 notice per gruppo al giorno.
+ </text>
+ <scroll_list name="notice_list">
+ <column label="Oggetto" name="subject"/>
+ <column label="Da" name="from"/>
+ <column label="Data" name="date"/>
+ </scroll_list>
+ <text name="notice_list_none_found">
+ Nessuna notice trovata.
+ </text>
+ <button label="Crea una nuova notice" label_selected="Crea una nuova notice" name="create_new_notice"/>
+ <button label="Aggiorna" label_selected="Aggiorna l&apos;elenco" name="refresh_notices"/>
+ <panel label="Crea una nuova notice" name="panel_create_new_notice">
+ <text name="lbl">
+ Crea una notice
+ </text>
+ <text name="lbl2">
+ Devi scrivere l&apos;oggetto della notice per poterla inviare.
+Puoi aggiungere un solo allegato alla notice trascinandolo
+dal tuo inventario in questa finestra. L&apos;allegato deve essere copiabile e cedibile,
+e non puoi allegare una cartella.
+ </text>
+ <text name="lbl3">
+ Oggetto:
+ </text>
+ <text name="lbl4">
+ Messaggio:
+ </text>
+ <text name="lbl5">
+ Allega:
+ </text>
+ <button label="Rimuovi allegato" label_selected="Rimuovi allegato" name="remove_attachment"/>
+ <button label="Invia la notice" label_selected="Invia la notice" name="send_notice"/>
+ <panel name="drop_target" tool_tip="Trascina un oggetto dall&apos;inventario sulla casella del messaggio per inviarlo con la notice. Devi avere il permesso di copia e trasferimento dell&apos;oggetto per poterlo inviare con la notice."/>
+ </panel>
+ <panel label="Vedi le notice precedenti" name="panel_view_past_notice">
+ <text name="lbl">
+ Notice archiviate
+ </text>
+ <text name="lbl2">
+ Per mandare una nuova notice, clicca il bottone &apos;Crea una nuova notice&apos; qui sopra.
+ </text>
+ <text name="lbl3">
+ Oggetto:
+ </text>
+ <text name="lbl4">
+ Messaggio:
+ </text>
+ <button label="Apri l&apos;allegato" label_selected="Apri l&apos;allegato" name="open_attachment"/>
+ </panel>
+</panel>
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 bf0492dde1..2629b91db5 100644
--- a/indra/newview/skins/default/xui/it/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/it/panel_group_roles.xml
@@ -1,143 +1,143 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Membri &amp; Ruoli" name="roles_tab">
- <string name="default_needs_apply_text">
- Ci sono modifiche non applicate nella scheda attuale.
- </string>
- <string name="want_apply_text">
- Vuoi applicare questi cambiamenti?
- </string>
- <button label="?" name="help_button"/>
- <panel name="members_header">
- <text name="static">
- Membri &amp; Ruoli
- </text>
- <text name="static2">
- I membri del Gruppo hanno ricevuto ruoli con delle abilità. Queste impostazioni possono
-essere facilmente personalizzate, permettendo una maggiore organizzazione e flessibilità.
- </text>
- </panel>
- <panel name="roles_header">
- <text name="static">
- Ruoli
- </text>
- <text name="role_properties_modifiable">
- Seleziona un ruolo qui sotto. È possibile modificarne il nome, la descrizione e il titolo.
- </text>
- <text name="role_properties_not_modifiable">
- Seleziona un ruolo qui sotto per vederne le proprietà, i membri e i permessi abilitati.
- </text>
- <text name="role_actions_modifiable">
- Puoi anche assegnare abilità al ruolo.
- </text>
- <text name="role_actions_not_modifiable">
- Puoi vedere, ma non modificare, le abilità assegnate.
- </text>
- </panel>
- <panel name="actions_header">
- <text name="static">
- Abilità
- </text>
- <text name="static2">
- Puoi vedere la descrizione delle abilità e quali ruoli e membri possono
-eseguire tali abilità.
- </text>
- </panel>
- <tab_container name="roles_tab_container">
- <panel label="Membri" name="members_sub_tab" tool_tip="Membri">
- <button label="Cerca" name="search_button"/>
- <button label="Mostra tutti" name="show_all_button"/>
- <name_list name="member_list">
- <column label="Nome del membro" name="name"/>
- <column label="Contributo donato" name="donated"/>
- <column label="Ultimo accesso" name="online"/>
- </name_list>
- <button label="Invitare una nuova persona..." name="member_invite"/>
- <button label="Espellere dal gruppo" name="member_eject"/>
- <string name="help_text">
- Puoi aggiungere o rimuovere i ruoli assegnati ai membri.
-Seleziona più membri tenendo premuto il tasto Ctrl e
-cliccando sui loro nomi.
- </string>
- </panel>
- <panel label="Ruoli" name="roles_sub_tab">
- <button label="Cerca" name="search_button"/>
- <button label="Mostra tutti" name="show_all_button"/>
- <scroll_list name="role_list">
- <column label="Nome del ruolo" name="name"/>
- <column label="Titolo" name="title"/>
- <column label="Membri" name="members"/>
- </scroll_list>
- <button label="Crea un nuovo ruolo..." name="role_create"/>
- <button label="Elimina ruolo" name="role_delete"/>
- <string name="help_text">
- I ruoli hanno un titolo e un elenco di abilità permesse
-che i membri possono eseguire. I membri possono appartenere a
-uno o più ruoli. Un gruppo può avere fino a 10 ruoli,
-compresi il ruolo base o &apos;Membro&apos; e il ruolo del Capogruppo.
- </string>
- <string name="cant_delete_role">
- I ruoli &apos;Membro&apos; e &apos;Capogruppo&apos; sono ruoli speciali e non possono essere eliminati.
- </string>
- </panel>
- <panel label="Abilità" name="actions_sub_tab">
- <button label="Cerca" name="search_button"/>
- <button label="Visualizza tutto" name="show_all_button"/>
- <scroll_list name="action_list" tool_tip="Seleziona una abilità per vederne maggiori dettagli."/>
- <string name="help_text">
- Le abilità permettono ai membri nei ruoli di fare cose specifiche
-in questo gruppo. C&apos;è una vasta gamma di abilità.
- </string>
- </panel>
- </tab_container>
- <panel name="members_footer">
- <text name="static">
- Ruoli assegnati
- </text>
- <text name="static2">
- Abilità permesse
- </text>
- <scroll_list name="member_allowed_actions" tool_tip="Per i dettagli di ogni abilità consentita vedi il pannello abilità."/>
- </panel>
- <panel name="roles_footer">
- <text name="static">
- Nome
- </text>
- <text name="static2">
- Descrizione
- </text>
- <line_editor name="role_name">
- Addetti
- </line_editor>
- <text name="static3">
- Titolo
- </text>
- <line_editor name="role_title">
- (attendi)
- </line_editor>
- <text_editor name="role_description">
- (attendi)
- </text_editor>
- <text name="static4">
- Membri assegnati
- </text>
- <text name="static5" tool_tip="Una lista delle abilità che il ruolo ora selezionato può eseguire.">
- Abilità permesse
- </text>
- <check_box label="I membri sono visibili" name="role_visible_in_list" tool_tip="Serve ad impostare se i membri di questo ruolo sono visibili nel pannello generale ai residenti al di fuori del gruppo."/>
- <scroll_list name="role_allowed_actions" tool_tip="Per i dettagli di ogni abilità consentita vedi il pannello abilità."/>
- </panel>
- <panel name="actions_footer">
- <text name="static">
- Descrizione
- </text>
- <text_editor name="action_description">
- Questa abilità è &apos;Espelli i membri dal gruppo&apos;. Solo un Capogruppo puo espellere un&apos;altro Capogruppo.
- </text_editor>
- <text name="static2">
- Ruoli con abilità
- </text>
- <text name="static3">
- Membri con abilità
- </text>
- </panel>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Membri &amp; Ruoli" name="roles_tab">
+ <string name="default_needs_apply_text">
+ Ci sono modifiche non applicate nella scheda attuale.
+ </string>
+ <string name="want_apply_text">
+ Vuoi applicare questi cambiamenti?
+ </string>
+ <button label="?" name="help_button"/>
+ <panel name="members_header">
+ <text name="static">
+ Membri &amp; Ruoli
+ </text>
+ <text name="static2">
+ I membri del Gruppo hanno ricevuto ruoli con delle abilità. Queste impostazioni possono
+essere facilmente personalizzate, permettendo una maggiore organizzazione e flessibilità.
+ </text>
+ </panel>
+ <panel name="roles_header">
+ <text name="static">
+ Ruoli
+ </text>
+ <text name="role_properties_modifiable">
+ Seleziona un ruolo qui sotto. È possibile modificarne il nome, la descrizione e il titolo.
+ </text>
+ <text name="role_properties_not_modifiable">
+ Seleziona un ruolo qui sotto per vederne le proprietà, i membri e i permessi abilitati.
+ </text>
+ <text name="role_actions_modifiable">
+ Puoi anche assegnare abilità al ruolo.
+ </text>
+ <text name="role_actions_not_modifiable">
+ Puoi vedere, ma non modificare, le abilità assegnate.
+ </text>
+ </panel>
+ <panel name="actions_header">
+ <text name="static">
+ Abilità
+ </text>
+ <text name="static2">
+ Puoi vedere la descrizione delle abilità e quali ruoli e membri possono
+eseguire tali abilità.
+ </text>
+ </panel>
+ <tab_container name="roles_tab_container">
+ <panel label="Membri" name="members_sub_tab" tool_tip="Membri">
+ <button label="Cerca" name="search_button"/>
+ <button label="Mostra tutti" name="show_all_button"/>
+ <name_list name="member_list">
+ <column label="Nome del membro" name="name"/>
+ <column label="Contributo donato" name="donated"/>
+ <column label="Ultimo accesso" name="online"/>
+ </name_list>
+ <button label="Invita un nuovo membro ..." name="member_invite"/>
+ <button label="Espellere dal gruppo" name="member_eject"/>
+ <string name="help_text">
+ Puoi aggiungere o rimuovere i ruoli assegnati ai membri.
+Seleziona più membri tenendo premuto il tasto Ctrl e
+cliccando sui loro nomi.
+ </string>
+ </panel>
+ <panel label="Ruoli" name="roles_sub_tab">
+ <button label="Cerca" name="search_button"/>
+ <button label="Mostra tutti" name="show_all_button"/>
+ <scroll_list name="role_list">
+ <column label="Nome del ruolo" name="name"/>
+ <column label="Titolo" name="title"/>
+ <column label="Membri" name="members"/>
+ </scroll_list>
+ <button label="Crea un nuovo ruolo..." name="role_create"/>
+ <button label="Elimina ruolo" name="role_delete"/>
+ <string name="help_text">
+ I ruoli hanno un titolo e un elenco di abilità permesse
+che i membri possono eseguire. I membri possono appartenere a
+uno o più ruoli. Un gruppo può avere fino a 10 ruoli,
+compresi il ruolo base o &apos;Membro&apos; e il ruolo del Capogruppo.
+ </string>
+ <string name="cant_delete_role">
+ I ruoli &apos;Membro&apos; e &apos;Capogruppo&apos; sono ruoli speciali e non possono essere eliminati.
+ </string>
+ </panel>
+ <panel label="Abilità" name="actions_sub_tab">
+ <button label="Cerca" name="search_button"/>
+ <button label="Visualizza tutto" name="show_all_button"/>
+ <scroll_list name="action_list" tool_tip="Seleziona una abilità per vederne maggiori dettagli."/>
+ <string name="help_text">
+ Le abilità permettono ai membri nei ruoli di fare cose specifiche
+in questo gruppo. C&apos;è una vasta gamma di abilità.
+ </string>
+ </panel>
+ </tab_container>
+ <panel name="members_footer">
+ <text name="static">
+ Ruoli assegnati
+ </text>
+ <text name="static2">
+ Abilità permesse
+ </text>
+ <scroll_list name="member_allowed_actions" tool_tip="Per i dettagli di ogni abilità consentita vedi il pannello abilità."/>
+ </panel>
+ <panel name="roles_footer">
+ <text name="static">
+ Nome
+ </text>
+ <text name="static2">
+ Descrizione
+ </text>
+ <line_editor name="role_name">
+ Addetti
+ </line_editor>
+ <text name="static3">
+ Titolo
+ </text>
+ <line_editor name="role_title">
+ (attendi)
+ </line_editor>
+ <text_editor name="role_description">
+ (attendi)
+ </text_editor>
+ <text name="static4">
+ Membri assegnati
+ </text>
+ <text name="static5" tool_tip="Una lista delle abilità che il ruolo ora selezionato può eseguire.">
+ Abilità permesse
+ </text>
+ <check_box label="I membri sono visibili" name="role_visible_in_list" tool_tip="Serve ad impostare se i membri di questo ruolo sono visibili nel pannello generale ai residenti al di fuori del gruppo."/>
+ <scroll_list name="role_allowed_actions" tool_tip="Per i dettagli di ogni abilità consentita vedi il pannello abilità."/>
+ </panel>
+ <panel name="actions_footer">
+ <text name="static">
+ Descrizione
+ </text>
+ <text_editor name="action_description">
+ Questa abilità è &apos;Espelli i membri dal gruppo&apos;. Solo un Capogruppo puo espellere un&apos;altro Capogruppo.
+ </text_editor>
+ <text name="static2">
+ Ruoli con abilità
+ </text>
+ <text name="static3">
+ Membri con abilità
+ </text>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_groups.xml b/indra/newview/skins/default/xui/it/panel_groups.xml
index 58d62c24e2..75bccb71a3 100644
--- a/indra/newview/skins/default/xui/it/panel_groups.xml
+++ b/indra/newview/skins/default/xui/it/panel_groups.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="groups">
- <text name="groupdesc">
- Il tuo gruppo attualmente attivo è visualizzato in grassetto.
- </text>
- <text name="groupcount">
- Appartieni a [COUNT] gruppi (su un massimo di [MAX]).
- </text>
- <button label="IM/Chiama" name="IM" tool_tip="Apri una sessione di IM/Instant Messages"/>
- <button label="Informazioni" name="Info"/>
- <button label="Attiva" name="Activate"/>
- <button label="Abbandona" name="Leave"/>
- <button label="Crea..." name="Create"/>
- <button label="Cerca..." name="Search..."/>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="groups">
+ <text name="groupdesc">
+ Il tuo gruppo attualmente attivo è visualizzato in grassetto.
+ </text>
+ <text name="groupcount">
+ Appartieni a [COUNT] gruppi (su un massimo di [MAX]).
+ </text>
+ <button label="IM/Chiama" name="IM" tool_tip="Apri una sessione di IM/Instant Messages"/>
+ <button label="Informazioni" name="Info"/>
+ <button label="Attiva" name="Activate"/>
+ <button label="Abbandona" name="Leave"/>
+ <button label="Crea..." name="Create"/>
+ <button label="Cerca..." name="Search..."/>
+</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_login.xml b/indra/newview/skins/default/xui/it/panel_login.xml
index 58d1c09a4b..acd047d75d 100644
--- a/indra/newview/skins/default/xui/it/panel_login.xml
+++ b/indra/newview/skins/default/xui/it/panel_login.xml
@@ -1,37 +1,45 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="panel_login">
- <string name="real_url">
- http://secondlife.com/app/login/
- </string>
- <string name="forgot_password_url">
- http://secondlife.com/account/request.php
- </string>
- <text name="first_name_text">
- Nome:
- </text>
- <text name="last_name_text">
- Cognome:
- </text>
- <text name="password_text">
- Password:
- </text>
- <text name="start_location_text">
- Luogo di partenza:
- </text>
- <combo_box name="start_location_combo">
- <combo_box.item name="MyHome" label="Casa Mia"/>
- <combo_box.item name="MyLastLocation" label="Ultimo luogo dove sono stato"/>
- <combo_box.item name="Typeregionname" label="lt;Scrivi la regione di partenza&gt;"/>
- </combo_box>
- <check_box label="Ricorda password" name="remember_check"/>
- <button label="Log In" label_selected="Log In" name="connect_btn"/>
- <text name="create_new_account_text">
- Registra un account
- </text>
- <text name="forgot_password_text">
- Hai dimenticato il tuo nome o la password?
- </text>
- <text name="channel_text">
- [VERSION]
- </text>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="panel_login">
+ <string name="real_url">
+ http://secondlife.com/app/login/
+ </string>
+ <string name="forgot_password_url">
+ http://secondlife.com/account/request.php
+ </string>
+ <text name="first_name_text" left="20">
+ Nome:
+ </text>
+ <line_editor left="20" name="first_name_edit" width="126" />
+ <text name="last_name_text" left="158">
+ Cognome:
+ </text>
+ <line_editor left="158" name="last_name_edit" width="126" />
+ <text name="password_text">
+ Password:
+ </text>
+ <text name="start_location_text" left="20" width="105">
+ Punto di partenza:
+ </text>
+ <combo_box name="start_location_combo" left_delta="105" width="160">
+ <combo_item name="MyHome">
+ Casa Mia
+ </combo_item>
+ <combo_item name="MyLastLocation">
+ Ultimo luogo visitato
+ </combo_item>
+ <combo_item name="Typeregionname">
+ &lt;Scrivi la regione&gt;
+ </combo_item>
+ </combo_box>
+ <check_box label="Ricorda password" name="remember_check" left_delta="168"/>
+ <button label="Log In" label_selected="Log In" name="connect_btn"/>
+ <text name="create_new_account_text">
+ Registra un account
+ </text>
+ <text name="forgot_password_text" left="-240" width="230">
+ Hai dimenticato il tuo nome o la password?
+ </text>
+ <text name="channel_text">
+ [VERSION]
+ </text>
+</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_preferences_chat.xml b/indra/newview/skins/default/xui/it/panel_preferences_chat.xml
index aa5e2bc9e6..8afcd74bf7 100644
--- a/indra/newview/skins/default/xui/it/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/it/panel_preferences_chat.xml
@@ -1,57 +1,52 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Text Chat" name="chat">
- <text name="text_box">
- Grandezza carattere chat:
- </text>
- <radio_group name="chat_font_size">
- <radio_item name="radio">
- Piccolo
- </radio_item>
- <radio_item name="radio2">
- Medio
- </radio_item>
- <radio_item name="radio3">
- Grande
- </radio_item>
- </radio_group>
- <text name="text_box2">
- Colore carattere chat:
- </text>
- <color_swatch label="Tuo" name="user"/>
- <color_swatch label="Altri" name="agent" width="60" left_delta="48"/>
- <color_swatch label="IM" name="im" left_delta="64" />
- <color_swatch label="Sistema" name="system"/>
- <color_swatch label="Errori" name="script_error"/>
- <color_swatch label="Oggetti" name="objects"/>
- <color_swatch label="Proprietario" name="owner" width="60" left_delta="48"/>
- <color_swatch label="Vignetta" name="background" left_delta="64" />
- <color_swatch label="URLs" name="links"/>
- <text name="text_box8">
- Errori script:
- </text>
- <check_box label="Mostra errori script ed avvertimenti nella chat principale" name="script_errors_as_chat"/>
- <text name="text_box3">
- Console della chat:
- </text>
- <spinner label="Dissolvi la chat dopo" name="fade_chat_time" label_width="112" width="162"/>
- <text name="text_box4" left="313" >
- (s)
- </text>
- <text name="text_box5">
- (# linee)
- </text>
- <slider label="Opacità" name="console_opacity"/>
- <check_box label="Utilzza la larghezza intera dello schermo (Richiede riavvio)" name="chat_full_width_check"/>
- <text name="text_box6">
- Opzioni chat:
- </text>
- <check_box label="Chiudi la barra chat dopo aver premuto invio" name="close_chat_on_return_check"/>
- <check_box label="Le frecce muovono comunque l&apos;avatar quando si sta scrivendo" name="arrow_keys_move_avatar_check"/>
- <check_box label="Mostra orario nella chat principale" name="show_timestamps_check"/>
- <check_box label="Simula la battitura tasti quando chatti" name="play_typing_animation"/>
- <text name="text_box7">
- Chat con vignette:
- </text>
- <check_box label="Mostra vignette chat" name="bubble_text_chat"/>
- <slider label="Opacità" name="bubble_chat_opacity"/>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Text Chat" name="chat">
+ <text name="text_box">
+ Grandezza carattere
+chat:
+ </text>
+ <radio_group name="chat_font_size">
+ <radio_item name="radio" label="Piccolo" />
+ <radio_item name="radio2" label="Medio" />
+ <radio_item name="radio3" label="Grande" />
+ </radio_group>
+ <text name="text_box2">
+ Colore carattere chat:
+ </text>
+ <color_swatch label="Tuo" name="user"/>
+ <color_swatch label="Altri" name="agent" width="60" left_delta="48"/>
+ <color_swatch label="IM" name="im" left_delta="64" />
+ <color_swatch label="Sistema" name="system"/>
+ <color_swatch label="Errori" name="script_error"/>
+ <color_swatch label="Oggetti" name="objects"/>
+ <color_swatch label="Proprietario" name="owner" width="60" left_delta="48"/>
+ <color_swatch label="Vignetta" name="background" left_delta="64" />
+ <color_swatch label="URLs" name="links"/>
+ <text name="text_box8">
+ Errori script:
+ </text>
+ <check_box label="Mostra errori script ed avvertimenti nella chat principale" name="script_errors_as_chat"/>
+ <text name="text_box3">
+ Console della chat:
+ </text>
+ <spinner label="Dissolvi la chat dopo" name="fade_chat_time" label_width="112" width="162"/>
+ <text name="text_box4" left="313" >
+ (s)
+ </text>
+ <text name="text_box5">
+ (# linee)
+ </text>
+ <slider label="Opacità" name="console_opacity"/>
+ <check_box label="Utilzza la larghezza intera dello schermo (Richiede riavvio)" name="chat_full_width_check"/>
+ <text name="text_box6">
+ Opzioni chat:
+ </text>
+ <check_box label="Chiudi la barra chat dopo aver premuto invio" name="close_chat_on_return_check"/>
+ <check_box label="Le frecce muovono comunque l&apos;avatar quando si sta scrivendo" name="arrow_keys_move_avatar_check"/>
+ <check_box label="Mostra orario nella chat principale" name="show_timestamps_check"/>
+ <check_box label="Simula la battitura tasti quando scrivi" name="play_typing_animation"/>
+ <text name="text_box7">
+ Chat con vignette:
+ </text>
+ <check_box label="Mostra vignette chat" name="bubble_text_chat"/>
+ <slider label="Opacità" name="bubble_chat_opacity"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_preferences_general.xml b/indra/newview/skins/default/xui/it/panel_preferences_general.xml
index 74f846095d..620cd33c0a 100644
--- a/indra/newview/skins/default/xui/it/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/it/panel_preferences_general.xml
@@ -1,78 +1,111 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Generale" name="general_panel">
- <radio_group name="default_start_location">
- <radio_item name="MyHome" tool_tip="Vai a casa di default quando fai login">
- Casa mia
- </radio_item>
- <radio_item name="MyLastLocation" tool_tip="Vai nell&apos;ultimo posto visitato di default quando fai login.">
- Ultimo posto visitato
- </radio_item>
- </radio_group>
- <check_box label="Mostra il posto di partenza sulla schermata d&apos;inizio" name="show_location_checkbox"/>
- <combo_box name="fade_out_combobox" width="166">
- <combo_box.item name="Never" label="Mai"/>
- <combo_box.item name="Show Temporarily" label="Mostra temporanemente"/>
- <combo_box.item name="Always" label="Sempre"/>
- </combo_box>
- <check_box label="Nomi avatar in piccolo" name="small_avatar_names_checkbox"/>
- <check_box label="Nascondi il mio nome sul mio schermo" name="show_my_name_checkbox"/>
- <text name="group_titles_textbox">
- Titoli di gruppo:
- </text>
- <check_box label="Nascondi i titoli di gruppo" name="show_all_title_checkbox"/>
- <check_box label="Nascondi il mio titolo di gruppo" name="show_my_title_checkbox"/>
- <color_swatch label="" name="effect_color_swatch" tool_tip="Clicca per aprire la tavolozza dei colori"/>
- <text name="UI Size:">
- Dimensione interfaccia:
- </text>
- <check_box label="Usa ridimensionamento indipendente dalla risoluzione" name="ui_auto_scale"/>
- <spinner label="Assente dopo:" name="afk_timeout_spinner"/>
- <check_box label="Ruota la Mini-Mappa" name="rotate_mini_map_checkbox"/>
- <check_box label="Avvisami quando spendo o ricevo Linden Dollars (L$)" name="notify_money_change_checkbox"/>
- <check_box label="Usa la tavolozza di scelta colori di default del sistema" name="use_system_color_picker_checkbox" tool_tip="Usa la tavolozza di scelta colori di default del sistema, invece di quella integrata in Second Life."/>
- <check_box label="Mostra il pannello di ricerca nella barra" name="show_search_panel" tool_tip="Visualizza il pannello di ricerca integrato."/>
- <text name="start_location_textbox">
- Punto di inizio:
- </text>
- <text name="show_names_textbox">
- Mostra Nomi:
- </text>
- <text name="effects_color_textbox">
- Colore per i miei effetti:
- </text>
- <text name="seconds_textbox">
- secondi
- </text>
- <text name="crash_report_textbox">
- Rapporti crash:
- </text>
- <text name="language_textbox">
- Lingua:
- </text>
- <text name="language_textbox2" left_delta="313">
- (Richiede restart)
- </text>
- <string name="region_name_prompt">
- &lt;Scrivi il nome della regione&gt;
- </string>
- <combo_box name="crash_behavior_combobox" width="166">
- <combo_box.item name="Askbeforesending" label="Chiedi prima di inviare"/>
- <combo_box.item name="Alwayssend" label="Invia sempre"/>
- <combo_box.item name="Neversend" label="Non inviare mai"/>
- </combo_box>
- <combo_box name="language_combobox" width="166">
- <combo_box.item name="System Default Language" label="Default di sistema"/>
- <combo_box.item name="English" label="English"/>
- <combo_box.item name="Danish" label="Dansk (Danese) - Beta"/>
- <combo_box.item name="Deutsch(German)" label="Deutsch (Tedesco) - Beta"/>
- <combo_box.item name="Spanish" label="Español (Spagnolo) - Beta"/>
- <combo_box.item name="French" label="Français (Francese) - Beta"/>
- <combo_box.item name="Hungarian" label="Magyar (Ungherese) - Beta"/>
- <combo_box.item name="Polish" label="Polski (Polacco) - Beta"/>
- <combo_box.item name="Portugese" label="Portugués (Portoghese) - Beta"/>
- <combo_box.item name="Chinese" label="中文 (简体) (Cinese) - Beta"/>
- <combo_box.item name="(Japanese)" label="日本語 (Giapponese) - Beta"/>
- <combo_box.item name="(Korean)" label="한국어 (Coreano) - Beta"/>
- </combo_box>
- <check_box label="Condividi la tua lingua con gli oggetti" name="language_is_public" tool_tip="Questo fa in modo che gli oggetti inworld riconoscano la tua lingua."/>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Generale" name="general_panel">
+ <radio_group name="default_start_location">
+ <radio_item name="MyHome" tool_tip="Vai a casa di default quando fai login">
+ Casa mia
+ </radio_item>
+ <radio_item name="MyLastLocation" tool_tip="Vai nell&apos;ultimo posto visitato di default quando fai login.">
+ Ultimo posto visitato
+ </radio_item>
+ </radio_group>
+ <check_box label="Mostra il punto di partenza nella schermata d&apos;inizio" name="show_location_checkbox"/>
+ <combo_box name="fade_out_combobox" width="166">
+ <combo_box.item name="Never" label="Mai"/>
+ <combo_box.item name="Show Temporarily" label="Mostra temporanemente"/>
+ <combo_box.item name="Always" label="Sempre"/>
+ </combo_box>
+ <check_box label="Nomi avatar in piccolo" name="small_avatar_names_checkbox"/>
+ <check_box label="Nascondi il mio nome sul mio schermo" name="show_my_name_checkbox"/>
+ <text name="group_titles_textbox">
+ Titoli di gruppo:
+ </text>
+ <check_box label="Nascondi i titoli di gruppo" name="show_all_title_checkbox"/>
+ <check_box label="Nascondi il mio titolo di gruppo" name="show_my_title_checkbox"/>
+ <color_swatch label="" name="effect_color_swatch" tool_tip="Clicca per aprire la tavolozza dei colori"/>
+ <text name="UI Size:">
+ Dimensione interfaccia:
+ </text>
+ <check_box label="Usa ridimensionamento indipendente dalla risoluzione" name="ui_auto_scale"/>
+ <spinner label="Assente dopo:" name="afk_timeout_spinner"/>
+ <check_box label="Avvisami quando spendo o ricevo Linden Dollars (L$)" name="notify_money_change_checkbox"/>
+ <text name="maturity_desired_label" bottom="-312">
+ Categoria di accesso:
+ </text>
+ <text name="maturity_desired_prompt" bottom="-312">
+ Voglio accedere al
+contenuto di tipo:
+ </text>
+ <combo_box name="maturity_desired_combobox" bottom="-330" left="274">
+ <combo_item name="Desired_Adult">
+ PG, Mature e Adult
+ </combo_item>
+ <combo_item name="Desired_Mature">
+ PG e Mature
+ </combo_item>
+ <combo_item name="Desired_PG">
+ solo PG
+ </combo_item>
+ </combo_box>
+ <text name="maturity_desired_textbox" bottom="-324" left="274">
+ solo PG
+ </text>
+ <text name="start_location_textbox">
+ Punto di partenza:
+ </text>
+ <text name="show_names_textbox">
+ Mostra Nomi:
+ </text>
+ <text name="effects_color_textbox">
+ Colore per i miei effetti:
+ </text>
+ <text name="seconds_textbox">
+ secondi
+ </text>
+ <text name="crash_report_textbox">
+ Rapporti crash:
+ </text>
+ <text name="language_textbox">
+ Lingua:
+ </text>
+ <text left_delta="313" name="language_textbox2">
+ (Richiede il riavvio)
+ </text>
+ <string name="region_name_prompt">
+ &lt;Scrivi il nome della regione&gt;
+ </string>
+ <combo_box name="crash_behavior_combobox" width="166">
+ <combo_box.item name="Askbeforesending" label="Chiedi prima di inviare"/>
+ <combo_box.item name="Alwayssend" label="Invia sempre"/>
+ <combo_box.item name="Neversend" label="Non inviare mai"/>
+ </combo_box>
+ <combo_box name="language_combobox" width="166">
+ <combo_box.item name="System Default Language" label="Default di sistema"/>
+ <combo_box.item name="English" label="English"/>
+ <combo_box.item name="Danish" label="Dansk (Danese) - Beta"/>
+ <combo_box.item name="Deutsch(German)" label="Deutsch (Tedesco) - Beta"/>
+ <combo_box.item name="Spanish" label="Español (Spagnolo) - Beta"/>
+ <combo_box.item name="French" label="Français (Francese) - Beta"/>
+ <combo_box.item name="Hungarian" label="Magyar (Ungherese) - Beta"/>
+ <combo_box.item name="Polish" label="Polski (Polacco) - Beta"/>
+ <combo_box.item name="Portugese" label="Portugués (Portoghese) - Beta"/>
+ <combo_box.item name="Chinese" label="中文 (简体) (Cinese) - Beta"/>
+ <combo_box.item name="(Japanese)" label="日本語 (Giapponese) - Beta"/>
+ <combo_box.item name="(Korean)" label="한국어 (Coreano) - Beta"/>
+ <combo_item name="Italian">
+ Italiano - Beta
+ </combo_item>
+ <combo_item name="Dutch">
+ Nederlands (Olandese) - Beta
+ </combo_item>
+ <combo_item name="Russian">
+ Русский (Russo) - Beta
+ </combo_item>
+ <combo_item name="Turkish">
+ Türkçe (Turco) - Beta
+ </combo_item>
+ <combo_item name="Ukrainian">
+ Українська (Ukraino) - Beta
+ </combo_item>
+ </combo_box>
+ <check_box label="Condividi la tua lingua con gli oggetti" name="language_is_public" tool_tip="Questo fa in modo che gli oggetti inworld riconoscano la tua lingua."/>
+</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/it/panel_preferences_graphics1.xml
index 267a57202f..f9aaa58f09 100644
--- a/indra/newview/skins/default/xui/it/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/it/panel_preferences_graphics1.xml
@@ -1,158 +1,142 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Grafica" name="Display panel">
- <button label="?" name="GraphicsPreferencesHelpButton"/>
- <check_box label="Esegui Second Life in una finestra" name="windowed mode"/>
- <text_editor name="FullScreenInfo">
- Se deselezionato, il viewer partirà a schermo intero all&apos;avvio.
- </text_editor>
- <text name="WindowSizeLabel">
- Dimensione della finestra:
- </text>
- <combo_box name="windowsize combo">
- <combo_box.item name="640x480" label="640x480"/>
- <combo_box.item name="800x600" label="800x600"/>
- <combo_box.item name="720x480" label="720x480 (NTSC)"/>
- <combo_box.item name="768x576" label="768x576 (PAL)"/>
- <combo_box.item name="1024x768" label="1024x768"/>
- </combo_box>
- <text name="DisplayResLabel">
- Risoluzione del monitor:
- </text>
- <text name="AspectRatioLabel1" tool_tip="larghezza/altezza">
- Rapporto di visualizzazione:
- </text>
- <combo_box name="aspect_ratio" tool_tip="larghezza/altezza">
- <combo_box.item name="4:3(StandardCRT)" label="4:3 (Monitor Standard)"/>
- <combo_box.item name="5:4(1280x1024LCD)" label="5:4 (1280x1024 LCD)"/>
- <combo_box.item name="8:5(Widescreen)" label="8:5 (Widescreen)"/>
- <combo_box.item name="16:9(Widescreen)" label="16:9 (Widescreen)"/>
- </combo_box>
- <check_box label="Autoconfigurazione" name="aspect_auto_detect"/>
- <text name="HigherText">
- Qualità e
- </text>
- <text name="QualityText">
- Performance:
- </text>
- <text name="FasterText">
- Più veloce
- </text>
- <text name="ShadersPrefText">
- Basso
- </text>
- <text name="ShadersPrefText2">
- Medio
- </text>
- <text name="ShadersPrefText3">
- Alto
- </text>
- <text name="ShadersPrefText4">
- Ultra
- </text>
- <text name="HigherText2">
- più alto
- </text>
- <text name="QualityText2">
- Qualità
- </text>
- <check_box label="Personalizzate" name="CustomSettings"/>
- <text name="ShadersText">
- Effetti grafici:
- </text>
- <check_box label="Bump Mapping (piccoli rilievi) e scintillii" name="BumpShiny"/>
- <check_box label="Effetti grafici base" name="BasicShaders" tool_tip="Disabilite questa opzione può evitare che qualche scheda grafica vada in crash."/>
- <check_box label="Effetti grafici atmosferici" name="WindLightUseAtmosShaders"/>
- <check_box label="Riflessi dell&apos;acqua" name="Reflections"/>
- <text name="ReflectionDetailText">
- Dettaglio dei riflessi
- </text>
- <radio_group name="ReflectionDetailRadio">
- <radio_item name="0">
- Terreno ed alberi
- </radio_item>
- <radio_item name="1">
- Tutti gli aggetti statici
- </radio_item>
- <radio_item name="2">
- Tutti gli avatar e gli oggetti
- </radio_item>
- <radio_item name="3">
- Tutto
- </radio_item>
- </radio_group>
- <text name="AvatarRenderingText">
- Rendering dell&apos;avatar:
- </text>
- <check_box label="Avatar bidimensionali (Impostor)" name="AvatarImpostors"/>
- <check_box label="Hardware Skinning" name="AvatarVertexProgram"/>
- <check_box label="Abiti dell&apos;avatar" name="AvatarCloth"/>
- <text name="DrawDistanceMeterText1">
- m
- </text>
- <text name="DrawDistanceMeterText2">
- m
- </text>
- <slider label="Distanza di disegno:" name="DrawDistance"/>
- <slider label="Conteggio massimo particelle:" name="MaxParticleCount"/>
- <slider label="Qualità in post-produzione:" name="RenderPostProcess"/>
- <text name="MeshDetailText">
- Dettagli reticolo:
- </text>
- <slider label="Oggetti:" name="ObjectMeshDetail"/>
- <slider label="Prims flessibili:" name="FlexibleMeshDetail"/>
- <slider label="Alberi:" name="TreeMeshDetail"/>
- <slider label="Avatar:" name="AvatarMeshDetail"/>
- <slider label="Terreno:" name="TerrainMeshDetail"/>
- <slider label="Cielo:" name="SkyMeshDetail"/>
- <text name="PostProcessText">
- Basso
- </text>
- <text name="ObjectMeshDetailText">
- Basso
- </text>
- <text name="FlexibleMeshDetailText">
- Basso
- </text>
- <text name="TreeMeshDetailText">
- Basso
- </text>
- <text name="AvatarMeshDetailText">
- Basso
- </text>
- <text name="TerrainMeshDetailText">
- Basso
- </text>
- <text name="SkyMeshDetailText">
- Basso
- </text>
- <text name="LightingDetailText">
- Dettagli illuminazione:
- </text>
- <radio_group name="LightingDetailRadio">
- <radio_item name="SunMoon">
- Sole e luna solamente
- </radio_item>
- <radio_item name="LocalLights">
- Luci locali
- </radio_item>
- </radio_group>
- <text name="TerrainDetailText">
- Dettagli terreno:
- </text>
- <radio_group name="TerrainDetailRadio">
- <radio_item name="0">
- Bassi
- </radio_item>
- <radio_item name="2">
- Alti
- </radio_item>
- </radio_group>
- <button label="Configurazione raccomandata" name="Defaults" left="110" width="190" />
- <button label="Opzioni hardware" label_selected="Opzioni hardware" name="GraphicsHardwareButton"/>
- <string name="resolution_format">
- [RES_X] x [RES_Y]
- </string>
- <string name="aspect_ratio_text">
- [NUM]:[DEN]
- </string>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Grafica" name="Display panel">
+ <button label="?" name="GraphicsPreferencesHelpButton"/>
+ <check_box label="Esegui Second Life in una finestra" name="windowed mode"/>
+ <text_editor name="FullScreenInfo" width="480">
+ Se deselezionato, all&apos;avvio il programma partirà a schermo intero.
+ </text_editor>
+ <text name="WindowSizeLabel">
+ Dimensione della finestra:
+ </text>
+ <combo_box name="windowsize combo">
+ <combo_box.item name="640x480" label="640x480"/>
+ <combo_box.item name="800x600" label="800x600"/>
+ <combo_box.item name="720x480" label="720x480 (NTSC)"/>
+ <combo_box.item name="768x576" label="768x576 (PAL)"/>
+ <combo_box.item name="1024x768" label="1024x768"/>
+ </combo_box>
+ <text name="DisplayResLabel">
+ Risoluzione del monitor:
+ </text>
+ <text name="AspectRatioLabel1" tool_tip="larghezza/altezza">
+ Rapporto di visualizzazione:
+ </text>
+ <combo_box name="aspect_ratio" tool_tip="larghezza/altezza">
+ <combo_box.item name="4:3(StandardCRT)" label="4:3 (Monitor Standard)"/>
+ <combo_box.item name="5:4(1280x1024LCD)" label="5:4 (1280x1024 LCD)"/>
+ <combo_box.item name="8:5(Widescreen)" label="8:5 (Widescreen)"/>
+ <combo_box.item name="16:9(Widescreen)" label="16:9 (Widescreen)"/>
+ </combo_box>
+ <check_box label="Autoconfigurazione" name="aspect_auto_detect"/>
+ <text name="HigherText">
+ Qualità e
+ </text>
+ <text name="QualityText">
+ Performance:
+ </text>
+ <text name="FasterText">
+ Più veloce
+ </text>
+ <text name="ShadersPrefText">
+ Basso
+ </text>
+ <text name="ShadersPrefText2">
+ Medio
+ </text>
+ <text name="ShadersPrefText3">
+ Alto
+ </text>
+ <text name="ShadersPrefText4">
+ Ultra
+ </text>
+ <text name="HigherText2">
+ Più alto
+ </text>
+ <text name="QualityText2">
+ Qualità
+ </text>
+ <check_box label="Personalizzate" name="CustomSettings"/>
+ <text name="ShadersText">
+ Effetti grafici:
+ </text>
+ <check_box label="Piccoli rilievi e scintillii" name="BumpShiny"/>
+ <check_box label="Effetti grafici base" name="BasicShaders" tool_tip="Disabilitare questa opzione può evitare che qualche scheda grafica vada in crash."/>
+ <check_box label="Effetti grafici atmosferici" name="WindLightUseAtmosShaders"/>
+ <check_box label="Riflessi dell&apos;acqua" name="Reflections"/>
+ <text name="ReflectionDetailText">
+ Dettaglio dei riflessi
+ </text>
+ <radio_group name="ReflectionDetailRadio">
+ <radio_item name="0" label="Terreno ed alberi" />
+ <radio_item name="1" label="Tutti gli aggetti statici" />
+ <radio_item name="2" label="Tutti gli avatar e gli oggetti" />
+ <radio_item name="3" label="Tutto" />
+ </radio_group>
+ <text name="AvatarRenderingText">
+ Rendering dell&apos;avatar:
+ </text>
+ <check_box label="Avatar bidimensionali (Impostor)" name="AvatarImpostors"/>
+ <check_box label="Hardware Skinning" name="AvatarVertexProgram"/>
+ <check_box label="Abiti dell&apos;avatar" name="AvatarCloth"/>
+ <text name="DrawDistanceMeterText1">
+ m
+ </text>
+ <text name="DrawDistanceMeterText2">
+ m
+ </text>
+ <slider label="Distanza di disegno:" name="DrawDistance" label_width="158" width="255"/>
+ <slider label="Conteggio massimo particelle:" name="MaxParticleCount" label_width="158" width="262" />
+ <slider label="Qualità in post-produzione:" name="RenderPostProcess" label_width="158" width="223"/>
+ <text name="MeshDetailText">
+ Dettagli reticolo:
+ </text>
+ <slider label=" Oggetti:" name="ObjectMeshDetail"/>
+ <slider label=" Prims flessibili:" name="FlexibleMeshDetail"/>
+ <slider label=" Alberi:" name="TreeMeshDetail"/>
+ <slider label=" Avatar:" name="AvatarMeshDetail"/>
+ <slider label=" Terreno:" name="TerrainMeshDetail"/>
+ <slider label=" Cielo:" name="SkyMeshDetail"/>
+ <text name="PostProcessText">
+ Basso
+ </text>
+ <text name="ObjectMeshDetailText">
+ Basso
+ </text>
+ <text name="FlexibleMeshDetailText">
+ Basso
+ </text>
+ <text name="TreeMeshDetailText">
+ Basso
+ </text>
+ <text name="AvatarMeshDetailText">
+ Basso
+ </text>
+ <text name="TerrainMeshDetailText">
+ Basso
+ </text>
+ <text name="SkyMeshDetailText">
+ Basso
+ </text>
+ <text name="LightingDetailText">
+ Dettagli illuminazione:
+ </text>
+ <radio_group name="LightingDetailRadio">
+ <radio_item name="SunMoon" label="Solo il sole e la luna" />
+ <radio_item name="LocalLights" label="Luci locali" />
+ </radio_group>
+ <text name="TerrainDetailText">
+ Dettagli terreno:
+ </text>
+ <radio_group name="TerrainDetailRadio">
+ <radio_item name="0" label="Bassi" />
+ <radio_item name="2" label="Alti" />
+ </radio_group>
+ <button label="Configurazione raccomandata" name="Defaults" left="110" width="190" />
+ <button label="Opzioni hardware" label_selected="Opzioni hardware" name="GraphicsHardwareButton"/>
+ <string name="resolution_format">
+ [RES_X] x [RES_Y]
+ </string>
+ <string name="aspect_ratio_text">
+ [NUM]:[DEN]
+ </string>
+</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_region_covenant.xml b/indra/newview/skins/default/xui/it/panel_region_covenant.xml
index 0089967aca..802156ea0b 100644
--- a/indra/newview/skins/default/xui/it/panel_region_covenant.xml
+++ b/indra/newview/skins/default/xui/it/panel_region_covenant.xml
@@ -1,50 +1,80 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Regolamento" name="Covenant">
- <text name="covenant_help_text">
- Le modifiche alle informazioni del regolamento saranno esposte in tutti i terreni della proprietà immobiliare.
- </text>
- <text name="region_name_lbl">
- Regione:
- </text>
- <text name="region_name_text">
- (sconosciuta)
- </text>
- <text name="estate_name_lbl">
- Proprietà immobiliare:
- </text>
- <text name="estate_name_text">
- (sconosciuta)
- </text>
- <text name="estate_owner_lbl">
- Proprietario immobiliare:
- </text>
- <text name="estate_owner_text">
- (sconosciuto)
- </text>
- <text name="resellable_clause">
- Un terreno acquistato in questa regione può o non può essere rivenduto.
- </text>
- <text name="changeable_clause">
- Un terreno acquistato in questa regione può o non può essere unito o suddiviso.
- </text>
- <text name="covenent_instructions">
- Trascina e rilascia una notecard per cambiare il Regolamento di questa Proprietà Immobiliare.
- </text>
- <text_editor name="covenant_editor">
- In caricamento...
- </text_editor>
- <button label="Ripristina" name="reset_covenant"/>
- <string name="can_resell">
- Un terreno acquistato in questa regione può essere rivenduto.
- </string>
- <string name="can_not_resell">
- Un terreno acquistato in questa regione non può essere rivenduto.
- </string>
- <string name="can_change">
- Un terreno acquistato in questa regione può essere unito o suddiviso.
- </string>
- <string name="can_not_change">
- Un terreno acquistato in questa regione non può essere unito o suddiviso.
- </string>
- <button label="?" name="covenant_help"/>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Regolamento" name="Covenant">
+ <text name="estate_section_lbl">
+ Proprietà:
+ </text>
+ <text name="estate_name_lbl">
+ Nome:
+ </text>
+ <text name="estate_name_text">
+ mainland
+ </text>
+ <text name="estate_owner_lbl">
+ Proprietario:
+ </text>
+ <text name="estate_owner_text">
+ (nessuno)
+ </text>
+ <text name="estate_cov_lbl">
+ Regolamento:
+ </text>
+ <text name="covenant_timestamp_text">
+ Ultima modifica Merc 31 Dic 1969 16:00:00
+ </text>
+ <button label="?" name="covenant_help"/>
+ <text_editor name="covenant_editor">
+ Per questa proprietà non è stato emesso alcun regolamento.
+ </text_editor>
+ <button label="Ripristina" name="reset_covenant"/>
+ <text name="covenant_help_text">
+ Le modifiche nel regolamento saranno visibili su tutti i terreni della proprietà.
+ </text>
+ <text name="covenant_instructions">
+ Trascina e rilascia una notecard per cambiare il regolamento di questa proprietà.
+ </text>
+ <text name="region_section_lbl">
+ Regione:
+ </text>
+ <text name="region_name_lbl">
+ Nome:
+ </text>
+ <text name="region_name_text">
+ leyla
+ </text>
+ <text name="region_landtype_lbl">
+ Tipo:
+ </text>
+ <text name="region_landtype_text">
+ Mainland / Homestead
+ </text>
+ <text name="region_maturity_lbl">
+ Categoria di accesso:
+ </text>
+ <text name="region_maturity_text">
+ Adult
+ </text>
+ <text name="resellable_lbl">
+ Rivendita:
+ </text>
+ <text name="resellable_clause">
+ La terra in questa regione non può essere rivenduta.
+ </text>
+ <text name="changeable_lbl">
+ Suddividi:
+ </text>
+ <text name="changeable_clause">
+ La terra in questa regione non può essere unita/suddivisa.
+ </text>
+ <string name="can_resell">
+ Un terreno acquistato in questa regione può essere rivenduto.
+ </string>
+ <string name="can_not_resell">
+ Un terreno acquistato in questa regione non può essere rivenduto.
+ </string>
+ <string name="can_change">
+ Un terreno acquistato in questa regione può essere unito o suddiviso.
+ </string>
+ <string name="can_not_change">
+ Un terreno acquistato in questa regione non può essere unito o suddiviso.
+ </string>
+</panel>
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 eee72843e9..fddc14e85c 100644
--- a/indra/newview/skins/default/xui/it/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/it/panel_region_debug.xml
@@ -1,40 +1,40 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Debug - individuazione errori" name="Debug">
- <text name="region_text_lbl">
- Regione:
- </text>
- <text name="region_text">
- 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">
- Restituisci oggetti
- </text>
- <text name="resident_text_lbl">
- Residente:
- </text>
- <line_editor name="target_avatar_name">
- (nessuno)
- </line_editor>
- <button label="Scegli..." name="choose_avatar_btn"/>
- <text name="options_text_lbl">
- Opzioni:
- </text>
- <check_box label="Restituisci gli oggetti con script" name="return_scripts" tool_tip="Restituisci solo gli oggetti contenenti script."/>
- <check_box label="Restituisci solo gli oggetti che sono sulle terre altrui" name="return_other_land" tool_tip="Restituisci solo gli oggetti che sono in terreni appartenenti a qualcun altro"/>
- <check_box label="Restituisci gli oggetti in ogni regione di questi possedimenti" 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"/>
- <button label="?" 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"/>
- <button label="?" 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="Ritarda il riavvio" name="cancel_restart_btn" tool_tip="Ritarda il riavvio della regione di un&apos;ora"/>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Debug - individuazione errori" name="Debug">
+ <text name="region_text_lbl">
+ Regione:
+ </text>
+ <text name="region_text">
+ 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">
+ Restituisci oggetti
+ </text>
+ <text name="resident_text_lbl">
+ Residente:
+ </text>
+ <line_editor name="target_avatar_name">
+ (nessuno)
+ </line_editor>
+ <button label="Scegli..." name="choose_avatar_btn"/>
+ <text name="options_text_lbl">
+ Opzioni:
+ </text>
+ <check_box label="Restituisci gli oggetti con script" name="return_scripts" tool_tip="Restituisci solo gli oggetti contenenti script."/>
+ <check_box label="Restituisci solo gli oggetti che sono sulle terre altrui" name="return_other_land" tool_tip="Restituisci solo gli oggetti che sono in terreni appartenenti a qualcun altro"/>
+ <check_box label="Restituisci gli oggetti in ogni regione di questi possedimenti" 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"/>
+ <button label="?" 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"/>
+ <button label="?" 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="Ritarda il riavvio" name="cancel_restart_btn" tool_tip="Ritarda il riavvio della regione di un&apos;ora"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_region_estate.xml b/indra/newview/skins/default/xui/it/panel_region_estate.xml
index f99a906868..a27e3a716c 100644
--- a/indra/newview/skins/default/xui/it/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/it/panel_region_estate.xml
@@ -1,69 +1,69 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Proprietà immobiliari" name="Estate">
- <text name="estate_help_text">
- I cambiamenti alle impostazioni in questa finestra avranno effetto su tutte
-le regioni della proprietà.
- </text>
- <text name="estate_text">
- Proprietà immobiliari:
- </text>
- <text name="estate_name">
- (sconosciuto)
- </text>
- <text name="owner_text">
- Proprietario:
- </text>
- <text name="estate_owner">
- (sconosciuto)
- </text>
- <check_box label="Usa orario globale" name="use_global_time_check"/>
- <button label="?" name="use_global_time_help"/>
- <check_box label="Sole fisso" name="fixed_sun_check"/>
- <button label="?" name="fixed_sun_help"/>
- <slider label="Fase" name="sun_hour_slider"/>
- <check_box label="Permetti accesso pubblico" name="externally_visible_check"/>
- <button label="?" name="externally_visible_help"/>
- <text name="Only Allow">
- Limita l&apos;accesso a:
- </text>
- <check_box label="residenti che hanno dato informazioni di pagamento" name="limit_payment" tool_tip="Blocca residenti non identificati."/>
- <check_box label="Adulti con età verificata" name="limit_age_verified" tool_tip="Blocca residenti che non hanno verificato la loro età. Per maggiori informazioni vai a support.secondlife.com."/>
- <check_box label="Permetti la chat voice" name="voice_chat_check"/>
- <button label="?" name="voice_chat_help"/>
- <check_box label="Permetti teleport diretto" name="allow_direct_teleport"/>
- <button label="?" name="allow_direct_teleport_help"/>
- <text name="abuse_email_text">
- Indirizzo email per la denuncia di abuso:
- </text>
- <string name="email_unsupported">
- Tipologia non supportata
- </string>
- <button label="?" name="abuse_email_address_help"/>
- <button label="Applica" name="apply_btn"/>
- <button label="Espelli persona dalle proprietà..." name="kick_user_from_estate_btn"/>
- <button label="Manda un messaggio ai residenti di tutte le tue proprietà..." name="message_estate_btn"/>
- <text name="estate_manager_label">
- Manager delle proprietà:
- </text>
- <button label="?" name="estate_manager_help"/>
- <button label="Rimuovi..." name="remove_estate_manager_btn"/>
- <button label="Aggiungi..." name="add_estate_manager_btn"/>
- <text name="allow_resident_label">
- Residenti autorizzati:
- </text>
- <button label="?" name="allow_resident_help"/>
- <button label="Rimuovi..." name="remove_allowed_avatar_btn"/>
- <button label="Aggiungi..." name="add_allowed_avatar_btn"/>
- <text name="allow_group_label">
- Gruppi autorizzati:
- </text>
- <button label="?" name="allow_group_help"/>
- <button label="Rimuovi..." name="remove_allowed_group_btn"/>
- <button label="Aggiungi..." name="add_allowed_group_btn"/>
- <text name="ban_resident_label">
- Residenti bloccati:
- </text>
- <button label="?" name="ban_resident_help"/>
- <button label="Rimuovi..." name="remove_banned_avatar_btn"/>
- <button label="Aggiungi..." name="add_banned_avatar_btn"/>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Proprietà immobiliari" name="Estate">
+ <text name="estate_help_text">
+ I cambiamenti alle impostazioni in questa finestra avranno effetto su tutte
+le regioni della proprietà.
+ </text>
+ <text name="estate_text">
+ Proprietà immobiliari:
+ </text>
+ <text name="estate_name">
+ (sconosciuto)
+ </text>
+ <text name="owner_text">
+ Proprietario:
+ </text>
+ <text name="estate_owner">
+ (sconosciuto)
+ </text>
+ <check_box label="Usa orario globale" name="use_global_time_check"/>
+ <button label="?" name="use_global_time_help"/>
+ <check_box label="Sole fisso" name="fixed_sun_check"/>
+ <button label="?" name="fixed_sun_help"/>
+ <slider label="Fase" name="sun_hour_slider"/>
+ <check_box label="Permetti accesso pubblico" name="externally_visible_check"/>
+ <button label="?" name="externally_visible_help"/>
+ <text name="Only Allow">
+ Limita l&apos;accesso a:
+ </text>
+ <check_box label="residenti che hanno dato informazioni di pagamento" name="limit_payment" tool_tip="Blocca residenti non identificati."/>
+ <check_box label="Adulti con età verificata" name="limit_age_verified" tool_tip="Blocca residenti che non hanno verificato la loro età. Per maggiori informazioni vai a support.secondlife.com."/>
+ <check_box label="Permetti la chat voice" name="voice_chat_check"/>
+ <button label="?" name="voice_chat_help"/>
+ <check_box label="Permetti teleport diretto" name="allow_direct_teleport"/>
+ <button label="?" name="allow_direct_teleport_help"/>
+ <text name="abuse_email_text">
+ Indirizzo email per la denuncia di abuso:
+ </text>
+ <string name="email_unsupported">
+ Tipologia non supportata
+ </string>
+ <button label="?" name="abuse_email_address_help"/>
+ <button label="Applica" name="apply_btn"/>
+ <button label="Espelli persona dalle proprietà..." name="kick_user_from_estate_btn"/>
+ <button label="Manda un messaggio ai residenti di tutte le tue proprietà..." name="message_estate_btn"/>
+ <text name="estate_manager_label">
+ Manager delle proprietà:
+ </text>
+ <button label="?" name="estate_manager_help"/>
+ <button label="Rimuovi..." name="remove_estate_manager_btn"/>
+ <button label="Aggiungi..." name="add_estate_manager_btn"/>
+ <text name="allow_resident_label">
+ Residenti autorizzati:
+ </text>
+ <button label="?" name="allow_resident_help"/>
+ <button label="Rimuovi..." name="remove_allowed_avatar_btn"/>
+ <button label="Aggiungi..." name="add_allowed_avatar_btn"/>
+ <text name="allow_group_label">
+ Gruppi autorizzati:
+ </text>
+ <button label="?" name="allow_group_help"/>
+ <button label="Rimuovi..." name="remove_allowed_group_btn"/>
+ <button label="Aggiungi..." name="add_allowed_group_btn"/>
+ <text name="ban_resident_label">
+ Residenti bloccati:
+ </text>
+ <button label="?" name="ban_resident_help"/>
+ <button label="Rimuovi..." name="remove_banned_avatar_btn"/>
+ <button label="Aggiungi..." name="add_banned_avatar_btn"/>
+</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 9b167bebd1..fffe51770e 100644
--- a/indra/newview/skins/default/xui/it/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/it/panel_region_general.xml
@@ -1,43 +1,59 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Regione" name="General">
- <text name="region_text_lbl">
- Regione:
- </text>
- <text name="region_text">
- sconosciuta
- </text>
- <text name="version_channel_text_lbl">
- Versione:
- </text>
- <text name="version_channel_text">
- sconosciuta
- </text>
- <check_box label="Proibisci la modifica del terreno" name="block_terraform_check"/>
- <button label="?" name="terraform_help"/>
- <check_box label="Impedisci il volo" name="block_fly_check"/>
- <button label="?" name="fly_help"/>
- <check_box label="Abilita i danni" name="allow_damage_check"/>
- <button label="?" name="damage_help"/>
- <check_box label="Limita gli urti" name="restrict_pushobject"/>
- <button label="?" name="restrict_pushobject_help"/>
- <check_box label="Abilita la rivendita del terreno" name="allow_land_resell_check"/>
- <button label="?" name="land_resell_help"/>
- <check_box label="Abilita unione/suddivisione del terreno" name="allow_parcel_changes_check"/>
- <button label="?" name="parcel_changes_help"/>
- <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"/>
- <button label="?" name="parcel_search_help"/>
- <spinner label="Limite massimo di avatar" name="agent_limit_spin"/>
- <button label="?" name="agent_limit_help"/>
- <spinner label="Bonus di oggetti" name="object_bonus_spin"/>
- <button label="?" name="object_bonus_help"/>
- <text label="Maturità" name="access_text">
- Maturità:
- </text>
-
- <button label="?" name="access_help"/>
- <button label="Applica" name="apply_btn"/>
- <button label="Teletrasporta a casa un utente..." name="kick_btn"/>
- <button label="Teletrasporta a casa tutti gli utenti..." name="kick_all_btn"/>
- <button label="Invia messaggio alla regione..." name="im_btn"/>
- <button label="Gestisci snodo di teleport..." name="manage_telehub_btn"/>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Regione" name="General">
+ <text name="region_text_lbl">
+ Regione:
+ </text>
+ <text name="region_text">
+ sconosciuta
+ </text>
+ <text name="version_channel_text_lbl">
+ Versione:
+ </text>
+ <text name="version_channel_text">
+ sconosciuta
+ </text>
+ <text name="region_type_lbl">
+ Tipo:
+ </text>
+ <text name="region_type">
+ sconosciuto
+ </text>
+ <check_box label="Proibisci la modifica del terreno" name="block_terraform_check"/>
+ <button label="?" name="terraform_help"/>
+ <check_box label="Impedisci il volo" name="block_fly_check"/>
+ <button label="?" name="fly_help"/>
+ <check_box label="Abilita i danni" name="allow_damage_check"/>
+ <button label="?" name="damage_help"/>
+ <check_box label="Limita gli urti" name="restrict_pushobject"/>
+ <button label="?" name="restrict_pushobject_help"/>
+ <check_box label="Abilita la rivendita del terreno" name="allow_land_resell_check"/>
+ <button label="?" name="land_resell_help"/>
+ <check_box label="Abilita unione/suddivisione del terreno" name="allow_parcel_changes_check"/>
+ <button label="?" name="parcel_changes_help"/>
+ <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"/>
+ <button label="?" name="parcel_search_help"/>
+ <spinner label="Limite massimo di avatar" name="agent_limit_spin"/>
+ <button label="?" name="agent_limit_help"/>
+ <spinner label="Bonus di oggetti" name="object_bonus_spin"/>
+ <button label="?" name="object_bonus_help"/>
+ <text label="Maturità" name="access_text">
+ Categoria di accesso:
+ </text>
+ <combo_box label="Mature" name="access_combo">
+ <combo_item name="Adult">
+ Adult
+ </combo_item>
+ <combo_item name="Mature">
+ Mature
+ </combo_item>
+ <combo_item name="PG">
+ PG
+ </combo_item>
+ </combo_box>
+ <button label="?" name="access_help"/>
+ <button label="Applica" name="apply_btn"/>
+ <button label="Teletrasporta a casa un utente..." name="kick_btn"/>
+ <button label="Teletrasporta a casa tutti gli utenti..." name="kick_all_btn"/>
+ <button label="Invia messaggio alla regione..." name="im_btn"/>
+ <button label="Gestisci snodo di teleport..." name="manage_telehub_btn"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_region_terrain.xml b/indra/newview/skins/default/xui/it/panel_region_terrain.xml
index 27ec475881..70072275eb 100644
--- a/indra/newview/skins/default/xui/it/panel_region_terrain.xml
+++ b/indra/newview/skins/default/xui/it/panel_region_terrain.xml
@@ -1,27 +1,27 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Terreno" name="Terrain">
- <text name="region_text_lbl">
- Regione:
- </text>
- <text name="region_text">
- sconosciuto
- </text>
- <spinner label="Altezza dell&apos;acqua" name="water_height_spin"/>
- <button label="?" name="water_height_help"/>
- <spinner label="Limite di altezza del terreno" name="terrain_raise_spin"/>
- <button label="?" name="terrain_raise_help"/>
- <spinner label="Limite di abbassamento del terreno" name="terrain_lower_spin"/>
- <button label="?" name="terrain_lower_help"/>
- <check_box label="Usa il sole della regione" name="use_estate_sun_check"/>
- <button label="?" name="use_estate_sun_help"/>
- <check_box label="Sole fisso" name="fixed_sun_check"/>
- <button label="?" name="fixed_sun_help"/>
- <slider label="Fase" name="sun_hour_slider"/>
- <button label="Applica" name="apply_btn"/>
- <button label="Scarica terreno RAW..." name="download_raw_btn" tool_tip="Disponibile solo per i proprietari del terreno, non per i manager"/>
- <button label="?" name="download_raw_help"/>
- <button label="Carica terreno RAW..." name="upload_raw_btn" tool_tip="Disponibile solo per i proprietari del terreno, non per i manager"/>
- <button label="?" name="upload_raw_help"/>
- <button label="Trasforma il terreno" name="bake_terrain_btn" tool_tip="Imposta il terreno corrente come punto medio per i limiti di innalzamento/abbassamento"/>
- <button label="?" name="bake_terrain_help"/>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Terreno" name="Terrain">
+ <text name="region_text_lbl">
+ Regione:
+ </text>
+ <text name="region_text">
+ sconosciuto
+ </text>
+ <spinner label="Altezza dell&apos;acqua" name="water_height_spin"/>
+ <button label="?" name="water_height_help"/>
+ <spinner label="Limite di altezza del terreno" name="terrain_raise_spin"/>
+ <button label="?" name="terrain_raise_help"/>
+ <spinner label="Limite di abbassamento del terreno" name="terrain_lower_spin"/>
+ <button label="?" name="terrain_lower_help"/>
+ <check_box label="Usa il sole della regione" name="use_estate_sun_check"/>
+ <button label="?" name="use_estate_sun_help"/>
+ <check_box label="Sole fisso" name="fixed_sun_check"/>
+ <button label="?" name="fixed_sun_help"/>
+ <slider label="Fase" name="sun_hour_slider"/>
+ <button label="Applica" name="apply_btn"/>
+ <button label="Scarica terreno RAW..." name="download_raw_btn" tool_tip="Disponibile solo per i proprietari del terreno, non per i manager"/>
+ <button label="?" name="download_raw_help"/>
+ <button label="Carica terreno RAW..." name="upload_raw_btn" tool_tip="Disponibile solo per i proprietari del terreno, non per i manager"/>
+ <button label="?" name="upload_raw_help"/>
+ <button label="Trasforma il terreno" name="bake_terrain_btn" tool_tip="Imposta il terreno corrente come punto medio per i limiti di innalzamento/abbassamento"/>
+ <button label="?" name="bake_terrain_help"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_region_texture.xml b/indra/newview/skins/default/xui/it/panel_region_texture.xml
index 6b0c4cf9df..4e39db9b1d 100644
--- a/indra/newview/skins/default/xui/it/panel_region_texture.xml
+++ b/indra/newview/skins/default/xui/it/panel_region_texture.xml
@@ -1,57 +1,57 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Texture del terreno" name="Textures">
- <text name="region_text_lbl">
- Regione:
- </text>
- <text name="region_text">
- sconosciuto
- </text>
- <text name="detail_texture_text">
- Texture del terreno (è necessario siano 512x512, 24 bit .tga files)
- </text>
- <text name="height_text_lbl">
- 1 (Bassa)
- </text>
- <text name="height_text_lbl2">
- 2
- </text>
- <text name="height_text_lbl3">
- 3
- </text>
- <text name="height_text_lbl4">
- 4 (Alta)
- </text>
- <text name="height_text_lbl5">
- Range di elevazione della texture
- </text>
- <text name="height_text_lbl6">
- Sud Ovest
- </text>
- <text name="height_text_lbl7">
- Nord Ovest
- </text>
- <text name="height_text_lbl8">
- Sud Est
- </text>
- <text name="height_text_lbl9">
- Nord Est
- </text>
- <spinner label="Bassa" name="height_start_spin_0"/>
- <spinner label="Bassa" name="height_start_spin_1"/>
- <spinner label="Bassa" name="height_start_spin_2"/>
- <spinner label="Bassa" name="height_start_spin_3"/>
- <spinner label="Alta" name="height_range_spin_0"/>
- <spinner label="Alta" name="height_range_spin_1"/>
- <spinner label="Alta" name="height_range_spin_2"/>
- <spinner label="Alta" name="height_range_spin_3"/>
- <text name="height_text_lbl10">
- Questi valori rappresentano l&apos;intervallo di miscelazione delle texture qui sopra.
- </text>
- <text name="height_text_lbl11">
- Misurato in metri, il valore più BASSO corrisponde all&apos;altezza MASSIMA della Texture #1,
- </text>
- <text name="height_text_lbl12">
- e il valore più ALTO all&apos;altezza MINIMA della Texture #4.
- </text>
- <button label="Applica" name="apply_btn"/>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Texture del terreno" name="Textures">
+ <text name="region_text_lbl">
+ Regione:
+ </text>
+ <text name="region_text">
+ sconosciuto
+ </text>
+ <text name="detail_texture_text">
+ Texture del terreno (è necessario siano 512x512, 24 bit .tga files)
+ </text>
+ <text name="height_text_lbl">
+ 1 (Bassa)
+ </text>
+ <text name="height_text_lbl2">
+ 2
+ </text>
+ <text name="height_text_lbl3">
+ 3
+ </text>
+ <text name="height_text_lbl4">
+ 4 (Alta)
+ </text>
+ <text name="height_text_lbl5">
+ Range di elevazione della texture
+ </text>
+ <text name="height_text_lbl6">
+ Sud Ovest
+ </text>
+ <text name="height_text_lbl7">
+ Nord Ovest
+ </text>
+ <text name="height_text_lbl8">
+ Sud Est
+ </text>
+ <text name="height_text_lbl9">
+ Nord Est
+ </text>
+ <spinner label="Bassa" name="height_start_spin_0"/>
+ <spinner label="Bassa" name="height_start_spin_1"/>
+ <spinner label="Bassa" name="height_start_spin_2"/>
+ <spinner label="Bassa" name="height_start_spin_3"/>
+ <spinner label="Alta" name="height_range_spin_0"/>
+ <spinner label="Alta" name="height_range_spin_1"/>
+ <spinner label="Alta" name="height_range_spin_2"/>
+ <spinner label="Alta" name="height_range_spin_3"/>
+ <text name="height_text_lbl10">
+ Questi valori rappresentano l&apos;intervallo di miscelazione delle texture qui sopra.
+ </text>
+ <text name="height_text_lbl11">
+ Misurato in metri, il valore più BASSO corrisponde all&apos;altezza MASSIMA della Texture #1,
+ </text>
+ <text name="height_text_lbl12">
+ e il valore più ALTO all&apos;altezza MINIMA della Texture #4.
+ </text>
+ <button label="Applica" name="apply_btn"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_scrolling_param.xml b/indra/newview/skins/default/xui/it/panel_scrolling_param.xml
index e7c35f590d..b5f8c8d6f0 100644
--- a/indra/newview/skins/default/xui/it/panel_scrolling_param.xml
+++ b/indra/newview/skins/default/xui/it/panel_scrolling_param.xml
@@ -1,10 +1,10 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="LLScrollingPanelParam">
- <text name="Loading...">
- Attendi...
- </text>
- <text name="Loading...2">
- Attendi...
- </text>
- <slider label="[DESC]" name="param slider"/>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="LLScrollingPanelParam">
+ <text name="Loading...">
+ Attendi...
+ </text>
+ <text name="Loading...2">
+ Attendi...
+ </text>
+ <slider label="[DESC]" name="param slider"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_status_bar.xml b/indra/newview/skins/default/xui/it/panel_status_bar.xml
index 581e0c0e6a..2403dce20e 100644
--- a/indra/newview/skins/default/xui/it/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/it/panel_status_bar.xml
@@ -1,38 +1,38 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="status">
- <text name="ParcelNameText" tool_tip="Nome dell&apos;appezzamento di terreno su cui sei. Clicca &apos;Informazioni sul terreno&apos;.">
- indica qui il nome del terreno
- </text>
- <text name="BalanceText" tool_tip="Saldo dell&apos;Account">
- In caricamento ...
- </text>
- <button label="" label_selected="" name="buycurrency" tool_tip="Acquista valuta"/>
- <text name="TimeText" tool_tip="Ora corrente (Pacifico)">
- 12:00 AM
- </text>
- <string name="StatBarDaysOfWeek">
- Domenica:Lunedì:Martedì:Mercoledì:Giovedì:Venerdì:Sabato
- </string>
- <string name="StatBarMonthsOfYear">
- Gennaio:Febbraio:Marzo:Aprile:Maggio:Giugno:Luglio:Agosto:Settembre:Ottobre:Novembre:Dicembre
- </string>
- <button label="" label_selected="" name="scriptout" tool_tip="Avvisi ed Errori degli script"/>
- <button label="" label_selected="" name="health" tool_tip="Salute"/>
- <text name="HealthText" tool_tip="Salute">
- 100%
- </text>
- <button label="" label_selected="" name="no_fly" tool_tip="Volo non permesso"/>
- <button label="" label_selected="" name="no_build" tool_tip="Costruzione non permessa"/>
- <button label="" label_selected="" name="no_scripts" tool_tip="Script non permessi"/>
- <button label="" label_selected="" name="restrictpush" tool_tip="Vietato spingere"/>
- <button label="" label_selected="" name="status_no_voice" tool_tip="Voice non disponibile qui"/>
- <button label="" label_selected="" name="buyland" tool_tip="Compra questo terreno"/>
- <line_editor label="Cerca" name="search_editor" tool_tip="Cerca in Second Life"/>
- <button label="" label_selected="" name="search_btn" tool_tip="Cerca in Second Life"/>
- <string name="packet_loss_tooltip">
- Perdita di pacchetti
- </string>
- <string name="bandwidth_tooltip">
- Larghezza di banda
- </string>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="status">
+ <text name="ParcelNameText" tool_tip="Nome dell&apos;appezzamento di terreno su cui sei. Clicca &apos;Informazioni sul terreno&apos;.">
+ indica qui il nome del terreno
+ </text>
+ <text name="BalanceText" tool_tip="Saldo dell&apos;Account">
+ In caricamento ...
+ </text>
+ <button label="" label_selected="" name="buycurrency" tool_tip="Acquista valuta"/>
+ <text name="TimeText" tool_tip="Ora corrente (Pacifico)">
+ 12:00 AM
+ </text>
+ <string name="StatBarDaysOfWeek">
+ Domenica:Lunedì:Martedì:Mercoledì:Giovedì:Venerdì:Sabato
+ </string>
+ <string name="StatBarMonthsOfYear">
+ Gennaio:Febbraio:Marzo:Aprile:Maggio:Giugno:Luglio:Agosto:Settembre:Ottobre:Novembre:Dicembre
+ </string>
+ <button label="" label_selected="" name="scriptout" tool_tip="Avvisi ed Errori degli script"/>
+ <button label="" label_selected="" name="health" tool_tip="Salute"/>
+ <text name="HealthText" tool_tip="Salute">
+ 100%
+ </text>
+ <button label="" label_selected="" name="no_fly" tool_tip="Volo non permesso"/>
+ <button label="" label_selected="" name="no_build" tool_tip="Costruzione non permessa"/>
+ <button label="" label_selected="" name="no_scripts" tool_tip="Script non permessi"/>
+ <button label="" label_selected="" name="restrictpush" tool_tip="Vietato spingere"/>
+ <button label="" label_selected="" name="status_no_voice" tool_tip="Voice non disponibile qui"/>
+ <button label="" label_selected="" name="buyland" tool_tip="Compra questo terreno"/>
+ <line_editor label="Cerca" name="search_editor" tool_tip="Cerca in Second Life"/>
+ <button label="" label_selected="" name="search_btn" tool_tip="Cerca in Second Life"/>
+ <string name="packet_loss_tooltip">
+ Perdita di pacchetti
+ </string>
+ <string name="bandwidth_tooltip">
+ Larghezza di banda
+ </string>
+</panel>
diff --git a/indra/newview/skins/default/xui/it/strings.xml b/indra/newview/skins/default/xui/it/strings.xml
index f58a9131ae..d7884cfbdb 100644
--- a/indra/newview/skins/default/xui/it/strings.xml
+++ b/indra/newview/skins/default/xui/it/strings.xml
@@ -1,421 +1,486 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<!-- This file contains strings that used to be hardcoded in the source.
- It is only for those strings which don&apos;t belong in a floater.
- For example, the strings used in avatar chat bubbles, and strings
- that are returned from one component and may appear in many places-->
-<strings>
- <string name="LoginInProgress">
- In connessione. [APP_NAME] può sembrare rallentata. Attendi.
- </string>
- <string name="LoginAuthenticating">
- In autenticazione
- </string>
- <string name="LoginMaintenance">
- Aggiornamento account in corso...
- </string>
- <string name="LoginAttempt">
- Un precedente tentativo di login è fallito. Tentativo di connessione [NUMBER]
- </string>
- <string name="LoginPrecaching">
- Sto caricando SecondLife...
- </string>
- <string name="LoginInitializingBrowser">
- Inizializzazione del browser web incorporato...
- </string>
- <string name="LoginInitializingMultimedia">
- Inizializzazione dati multimediali...
- </string>
- <string name="LoginVerifyingCache">
- Verifica della cache corso (può impiegarci dai 60-90 secondi)...
- </string>
- <string name="LoginProcessingResponse">
- Risposta in elaborazione...
- </string>
- <string name="LoginInitializingWorld">
- Inizializzazione...
- </string>
- <string name="LoginDecodingImages">
- Decodifica immagini...
- </string>
- <string name="LoginInitializingQuicktime">
- Inizializzazione QuickTime...
- </string>
- <string name="LoginQuicktimeNotFound">
- QuickTime non trovato - impossibile inizializzare.
- </string>
- <string name="LoginQuicktimeOK">
- QuickTime configurato con successo.
- </string>
- <string name="LoginWaitingForRegionHandshake">
- In attesa della risposta della regione...
- </string>
- <string name="LoginConnectingToRegion">
- Connessione alla regione...
- </string>
- <string name="LoginDownloadingClothing">
- Sto caricando i vestiti...
- </string>
- <string name="LoginFailedNoNetwork">
- Errore di rete: impossibile connettersi, verifica la tua connessione.
- </string>
- <string name="AgentLostConnection">
- Questa regione sta avendo problemi. Verifica la tua connessione a Internet.
- </string>
- <string name="TooltipPerson">
- Persona
- </string>
- <string name="TooltipNoName">
- (nessun nome)
- </string>
- <string name="TooltipOwner">
- Proprietario:
- </string>
- <string name="TooltipPublic">
- Pubblico
- </string>
- <string name="TooltipIsGroup">
- (Gruppo)
- </string>
- <string name="TooltipFlagScript">
- Script
- </string>
- <string name="TooltipFlagPhysics">
- Fisica
- </string>
- <string name="TooltipFlagTouch">
- Tocca
- </string>
- <string name="TooltipFlagL$">
- L$
- </string>
- <string name="TooltipFlagDropInventory">
- Prendi dall&apos;inventario
- </string>
- <string name="TooltipFlagPhantom">
- Fantasma
- </string>
- <string name="TooltipFlagTemporary">
- Temporaneo
- </string>
- <string name="TooltipFlagRightClickMenu">
- (Clicca con il tasto destro per il menù)
- </string>
- <string name="TooltipFreeToCopy">
- Copia consentita
- </string>
- <string name="TooltipForSaleL$">
- In Vendita: [AMOUNT]L$
- </string>
- <string name="TooltipForSaleMsg">
- In Vendita: [MESSAGE]
- </string>
- <string name="TooltipFlagGroupBuild">
- Costruzione solo con gruppo
- </string>
- <string name="TooltipFlagNoBuild">
- Divieto di Costruire
- </string>
- <string name="TooltipFlagNoEdit">
- Costruzione solo con gruppo
- </string>
- <string name="TooltipFlagNotSafe">
- Non Sicuro
- </string>
- <string name="TooltipFlagNoFly">
- Divieto di Volare
- </string>
- <string name="TooltipFlagGroupScripts">
- Script solo con gruppo
- </string>
- <string name="TooltipFlagNoScripts">
- Script vietati
- </string>
- <string name="TooltipLand">
- Terreno:
- </string>
- <string name="TooltipMustSingleDrop">
- Solo un singolo oggetto può essere creato qui
- </string>
- <string name="RetrievingData">
- Recupero dati in corso...
- </string>
- <string name="ReleaseNotes">
- Note sulla versione
- </string>
- <string name="LoadingData">
- In caricamento...
- </string>
- <string name="AvatarNameNobody">
- (nessuno)
- </string>
- <string name="AvatarNameWaiting">
- (in attesa)
- </string>
- <string name="AvatarNameHippos">
- (hippos)
- </string>
- <string name="GroupNameNone">
- (nessuno)
- </string>
- <string name="AssetErrorNone">
- Nessun errore
- </string>
- <string name="AssetErrorRequestFailed">
- Richiesta risorsa: fallita
- </string>
- <string name="AssetErrorNonexistentFile">
- Richiesta risorsa: file non esistente
- </string>
- <string name="AssetErrorNotInDatabase">
- Richiesta risorsa: risorsa non trovata nel database
- </string>
- <string name="AssetErrorEOF">
- Fine del file
- </string>
- <string name="AssetErrorCannotOpenFile">
- Apertura del file non possibile
- </string>
- <string name="AssetErrorFileNotFound">
- File non trovato
- </string>
- <string name="AssetErrorTCPTimeout">
- Tempo esaurito per il trasferimento file
- </string>
- <string name="AssetErrorCircuitGone">
- Circuito perso
- </string>
- <string name="AssetErrorUnknownStatus">
- Stato sconosciuto
- </string>
- <string name="AvatarEditingApparance">
- (In modifica dell&apos;aspetto fisico)
- </string>
- <string name="AvatarAway">
- Assente
- </string>
- <string name="AvatarBusy">
- Occupato
- </string>
- <string name="AvatarMuted">
- Mutato
- </string>
- <string name="anim_express_afraid">
- Dispiaciuto
- </string>
- <string name="anim_express_anger">
- Arrabbiato
- </string>
- <string name="anim_away">
- Assente
- </string>
- <string name="anim_backflip">
- Salto all&apos;indietro
- </string>
- <string name="anim_express_laugh">
- Ridere a crepapelle
- </string>
- <string name="anim_express_toothsmile">
- Gran sorriso
- </string>
- <string name="anim_blowkiss">
- Lancia un bacio
- </string>
- <string name="anim_express_bored">
- Noia
- </string>
- <string name="anim_bow">
- Inchino
- </string>
- <string name="anim_clap">
- Applauso
- </string>
- <string name="anim_courtbow">
- Inchino a corte
- </string>
- <string name="anim_express_cry">
- Pianto
- </string>
- <string name="anim_dance1">
- Ballo 1
- </string>
- <string name="anim_dance2">
- Ballo 2
- </string>
- <string name="anim_dance3">
- Ballo 3
- </string>
- <string name="anim_dance4">
- Ballo 4
- </string>
- <string name="anim_dance5">
- Ballo 5
- </string>
- <string name="anim_dance6">
- Ballo 6
- </string>
- <string name="anim_dance7">
- Ballo 7
- </string>
- <string name="anim_dance8">
- Dance 8
- </string>
- <string name="anim_express_disdain">
- Sdegno
- </string>
- <string name="anim_drink">
- Bere
- </string>
- <string name="anim_express_embarrased">
- Imbarazzo
- </string>
- <string name="anim_angry_fingerwag">
- Negare col dito
- </string>
- <string name="anim_fist_pump">
- Esultare con pugno
- </string>
- <string name="anim_yoga_float">
- Yoga fluttuante
- </string>
- <string name="anim_express_frown">
- Acciglio
- </string>
- <string name="anim_impatient">
- Impazienza
- </string>
- <string name="anim_jumpforjoy">
- Salto di gioia
- </string>
- <string name="anim_kissmybutt">
- Baciami il sedere
- </string>
- <string name="anim_express_kiss">
- Bacio
- </string>
- <string name="anim_laugh_short">
- Risata
- </string>
- <string name="anim_musclebeach">
- Muscoli da spiaggia
- </string>
- <string name="anim_no_unhappy">
- No (Scontento)
- </string>
- <string name="anim_no_head">
- No
- </string>
- <string name="anim_nyanya">
- Na-na-na
- </string>
- <string name="anim_punch_onetwo">
- Uno-due pugno
- </string>
- <string name="anim_express_open_mouth">
- Bocca aperta
- </string>
- <string name="anim_peace">
- Pace
- </string>
- <string name="anim_point_you">
- Indicare altri
- </string>
- <string name="anim_point_me">
- Indicare te stesso
- </string>
- <string name="anim_punch_l">
- Pugno a sinistra
- </string>
- <string name="anim_punch_r">
- Pugno a destra
- </string>
- <string name="anim_rps_countdown">
- Contare nella morra cinese
- </string>
- <string name="anim_rps_paper">
- Carta nella morra cinese
- </string>
- <string name="anim_rps_rock">
- Sasso nella morra cinese
- </string>
- <string name="anim_rps_scissors">
- Forbici nella morra cinese
- </string>
- <string name="anim_express_repulsed">
- Repulsione
- </string>
- <string name="anim_kick_roundhouse_r">
- Calcio con rotazione
- </string>
- <string name="anim_express_sad">
- Triste
- </string>
- <string name="anim_salute">
- Saluto
- </string>
- <string name="anim_shout">
- Urlo
- </string>
- <string name="anim_express_shrug">
- Spallucce
- </string>
- <string name="anim_express_smile">
- Sorriso
- </string>
- <string name="anim_smoke_idle">
- Fumare
- </string>
- <string name="anim_smoke_inhale">
- Fumare inspirazione
- </string>
- <string name="anim_smoke_throw_down">
- Fumare mandando giù
- </string>
- <string name="anim_express_surprise">
- Sorpresa
- </string>
- <string name="anim_sword_strike_r">
- Colpo di spada
- </string>
- <string name="anim_angry_tantrum">
- Collera
- </string>
- <string name="anim_express_tongue_out">
- Linguaccia
- </string>
- <string name="anim_hello">
- Saluto con mano
- </string>
- <string name="anim_whisper">
- Sussurro
- </string>
- <string name="anim_whistle">
- Fischio
- </string>
- <string name="anim_express_wink">
- Ammicca
- </string>
- <string name="anim_wink_hollywood">
- Ammicca (Hollywood)
- </string>
- <string name="anim_express_worry">
- Preoccupato
- </string>
- <string name="anim_yes_happy">
- Si (Felice)
- </string>
- <string name="anim_yes_head">
- Si
- </string>
- <string name="texture_loading">
- Caricando...
- </string>
- <string name="worldmap_offline">
- Offline
- </string>
- <string name="whisper">
- sussurra:
- </string>
- <string name="shout">
- grida:
- </string>
-</strings>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- This file contains strings that used to be hardcoded in the source.
+ It is only for those strings which do not belong in a floater.
+ For example, the strings used in avatar chat bubbles, and strings
+ that are returned from one component and may appear in many places-->
+<strings>
+ <string name="LoginInProgress">
+ In connessione. [APP_NAME] può sembrare rallentata. Attendi.
+ </string>
+ <string name="LoginAuthenticating">
+ In autenticazione
+ </string>
+ <string name="LoginMaintenance">
+ Aggiornamento account in corso...
+ </string>
+ <string name="LoginAttempt">
+ Un precedente tentativo di login è fallito. Tentativo di connessione [NUMBER]
+ </string>
+ <string name="LoginPrecaching">
+ Sto caricando SecondLife...
+ </string>
+ <string name="LoginInitializingBrowser">
+ Inizializzazione del browser web incorporato...
+ </string>
+ <string name="LoginInitializingMultimedia">
+ Inizializzazione dati multimediali...
+ </string>
+ <string name="LoginVerifyingCache">
+ Verifica della cache corso (può impiegarci dai 60-90 secondi)...
+ </string>
+ <string name="LoginProcessingResponse">
+ Risposta in elaborazione...
+ </string>
+ <string name="LoginInitializingWorld">
+ Inizializzazione...
+ </string>
+ <string name="LoginDecodingImages">
+ Decodifica immagini...
+ </string>
+ <string name="LoginInitializingQuicktime">
+ Inizializzazione QuickTime...
+ </string>
+ <string name="LoginQuicktimeNotFound">
+ QuickTime non trovato - impossibile inizializzare.
+ </string>
+ <string name="LoginQuicktimeOK">
+ QuickTime configurato con successo.
+ </string>
+ <string name="LoginWaitingForRegionHandshake">
+ In attesa della risposta della regione...
+ </string>
+ <string name="LoginConnectingToRegion">
+ Connessione alla regione...
+ </string>
+ <string name="LoginDownloadingClothing">
+ Sto caricando i vestiti...
+ </string>
+ <string name="AgentLostConnection">
+ Questa regione sta avendo problemi. Verifica la tua connessione a Internet.
+ </string>
+ <string name="TooltipPerson">
+ Persona
+ </string>
+ <string name="TooltipNoName">
+ (nessun nome)
+ </string>
+ <string name="TooltipOwner">
+ Proprietario:
+ </string>
+ <string name="TooltipPublic">
+ Pubblico
+ </string>
+ <string name="TooltipIsGroup">
+ (Gruppo)
+ </string>
+ <string name="TooltipFlagScript">
+ Script
+ </string>
+ <string name="TooltipFlagPhysics">
+ Fisica
+ </string>
+ <string name="TooltipFlagTouch">
+ Tocca
+ </string>
+ <string name="TooltipFlagL$">
+ L$
+ </string>
+ <string name="TooltipFlagDropInventory">
+ Prendi dall&apos;inventario
+ </string>
+ <string name="TooltipFlagPhantom">
+ Fantasma
+ </string>
+ <string name="TooltipFlagTemporary">
+ Temporaneo
+ </string>
+ <string name="TooltipFlagRightClickMenu">
+ (Clicca con il tasto destro per il menù)
+ </string>
+ <string name="TooltipFreeToCopy">
+ Copia consentita
+ </string>
+ <string name="TooltipForSaleL$">
+ In Vendita: [AMOUNT]L$
+ </string>
+ <string name="TooltipForSaleMsg">
+ In Vendita: [MESSAGE]
+ </string>
+ <string name="TooltipFlagGroupBuild">
+ Costruzione solo con gruppo
+ </string>
+ <string name="TooltipFlagNoBuild">
+ Divieto di Costruire
+ </string>
+ <string name="TooltipFlagNoEdit">
+ Costruzione solo con gruppo
+ </string>
+ <string name="TooltipFlagNotSafe">
+ Non Sicuro
+ </string>
+ <string name="TooltipFlagNoFly">
+ Divieto di Volare
+ </string>
+ <string name="TooltipFlagGroupScripts">
+ Script solo con gruppo
+ </string>
+ <string name="TooltipFlagNoScripts">
+ Script vietati
+ </string>
+ <string name="TooltipLand">
+ Terreno:
+ </string>
+ <string name="TooltipMustSingleDrop">
+ Solo un singolo oggetto può essere creato qui
+ </string>
+ <string name="RetrievingData">
+ Recupero dati in corso...
+ </string>
+ <string name="ReleaseNotes">
+ Note sulla versione
+ </string>
+ <string name="LoadingData">
+ In caricamento...
+ </string>
+ <string name="AvatarNameNobody">
+ (nessuno)
+ </string>
+ <string name="AvatarNameWaiting">
+ (in attesa)
+ </string>
+ <string name="AvatarNameHippos">
+ (hippos)
+ </string>
+ <string name="GroupNameNone">
+ (nessuno)
+ </string>
+ <string name="AssetErrorNone">
+ Nessun errore
+ </string>
+ <string name="AssetErrorRequestFailed">
+ Richiesta risorsa: fallita
+ </string>
+ <string name="AssetErrorNonexistentFile">
+ Richiesta risorsa: file non esistente
+ </string>
+ <string name="AssetErrorNotInDatabase">
+ Richiesta risorsa: risorsa non trovata nel database
+ </string>
+ <string name="AssetErrorEOF">
+ Fine del file
+ </string>
+ <string name="AssetErrorCannotOpenFile">
+ Apertura del file non possibile
+ </string>
+ <string name="AssetErrorFileNotFound">
+ File non trovato
+ </string>
+ <string name="AssetErrorTCPTimeout">
+ Tempo esaurito per il trasferimento file
+ </string>
+ <string name="AssetErrorCircuitGone">
+ Circuito perso
+ </string>
+ <string name="AssetErrorPriceMismatch">
+ Il programma e il server non combaciano nel prezzo
+ </string>
+ <string name="AssetErrorUnknownStatus">
+ Stato sconosciuto
+ </string>
+ <string name="AvatarEditingApparance">
+ (In modifica dell&apos;aspetto fisico)
+ </string>
+ <string name="AvatarAway">
+ Assente
+ </string>
+ <string name="AvatarBusy">
+ Occupato
+ </string>
+ <string name="AvatarMuted">
+ Mutato
+ </string>
+ <string name="anim_express_afraid">
+ Dispiaciuto
+ </string>
+ <string name="anim_express_anger">
+ Arrabbiato
+ </string>
+ <string name="anim_away">
+ Assente
+ </string>
+ <string name="anim_backflip">
+ Salto all&apos;indietro
+ </string>
+ <string name="anim_express_laugh">
+ Ridere a crepapelle
+ </string>
+ <string name="anim_express_toothsmile">
+ Gran sorriso
+ </string>
+ <string name="anim_blowkiss">
+ Lancia un bacio
+ </string>
+ <string name="anim_express_bored">
+ Noia
+ </string>
+ <string name="anim_bow">
+ Inchino
+ </string>
+ <string name="anim_clap">
+ Applauso
+ </string>
+ <string name="anim_courtbow">
+ Inchino a corte
+ </string>
+ <string name="anim_express_cry">
+ Pianto
+ </string>
+ <string name="anim_dance1">
+ Ballo 1
+ </string>
+ <string name="anim_dance2">
+ Ballo 2
+ </string>
+ <string name="anim_dance3">
+ Ballo 3
+ </string>
+ <string name="anim_dance4">
+ Ballo 4
+ </string>
+ <string name="anim_dance5">
+ Ballo 5
+ </string>
+ <string name="anim_dance6">
+ Ballo 6
+ </string>
+ <string name="anim_dance7">
+ Ballo 7
+ </string>
+ <string name="anim_dance8">
+ Dance 8
+ </string>
+ <string name="anim_express_disdain">
+ Sdegno
+ </string>
+ <string name="anim_drink">
+ Bere
+ </string>
+ <string name="anim_express_embarrased">
+ Imbarazzo
+ </string>
+ <string name="anim_angry_fingerwag">
+ Negare col dito
+ </string>
+ <string name="anim_fist_pump">
+ Esultare con pugno
+ </string>
+ <string name="anim_yoga_float">
+ Yoga fluttuante
+ </string>
+ <string name="anim_express_frown">
+ Acciglio
+ </string>
+ <string name="anim_impatient">
+ Impazienza
+ </string>
+ <string name="anim_jumpforjoy">
+ Salto di gioia
+ </string>
+ <string name="anim_kissmybutt">
+ Baciami il sedere
+ </string>
+ <string name="anim_express_kiss">
+ Bacio
+ </string>
+ <string name="anim_laugh_short">
+ Risata
+ </string>
+ <string name="anim_musclebeach">
+ Muscoli da spiaggia
+ </string>
+ <string name="anim_no_unhappy">
+ No (Scontento)
+ </string>
+ <string name="anim_no_head">
+ No
+ </string>
+ <string name="anim_nyanya">
+ Na-na-na
+ </string>
+ <string name="anim_punch_onetwo">
+ Uno-due pugno
+ </string>
+ <string name="anim_express_open_mouth">
+ Bocca aperta
+ </string>
+ <string name="anim_peace">
+ Pace
+ </string>
+ <string name="anim_point_you">
+ Indicare altri
+ </string>
+ <string name="anim_point_me">
+ Indicare te stesso
+ </string>
+ <string name="anim_punch_l">
+ Pugno a sinistra
+ </string>
+ <string name="anim_punch_r">
+ Pugno a destra
+ </string>
+ <string name="anim_rps_countdown">
+ Contare nella morra cinese
+ </string>
+ <string name="anim_rps_paper">
+ Carta nella morra cinese
+ </string>
+ <string name="anim_rps_rock">
+ Sasso nella morra cinese
+ </string>
+ <string name="anim_rps_scissors">
+ Forbici nella morra cinese
+ </string>
+ <string name="anim_express_repulsed">
+ Repulsione
+ </string>
+ <string name="anim_kick_roundhouse_r">
+ Calcio con rotazione
+ </string>
+ <string name="anim_express_sad">
+ Triste
+ </string>
+ <string name="anim_salute">
+ Saluto
+ </string>
+ <string name="anim_shout">
+ Urlo
+ </string>
+ <string name="anim_express_shrug">
+ Spallucce
+ </string>
+ <string name="anim_express_smile">
+ Sorriso
+ </string>
+ <string name="anim_smoke_idle">
+ Fumare
+ </string>
+ <string name="anim_smoke_inhale">
+ Fumare inspirazione
+ </string>
+ <string name="anim_smoke_throw_down">
+ Fumare mandando giù
+ </string>
+ <string name="anim_express_surprise">
+ Sorpresa
+ </string>
+ <string name="anim_sword_strike_r">
+ Colpo di spada
+ </string>
+ <string name="anim_angry_tantrum">
+ Collera
+ </string>
+ <string name="anim_express_tongue_out">
+ Linguaccia
+ </string>
+ <string name="anim_hello">
+ Saluto con mano
+ </string>
+ <string name="anim_whisper">
+ Sussurro
+ </string>
+ <string name="anim_whistle">
+ Fischio
+ </string>
+ <string name="anim_express_wink">
+ Ammicca
+ </string>
+ <string name="anim_wink_hollywood">
+ Ammicca (Hollywood)
+ </string>
+ <string name="anim_express_worry">
+ Preoccupato
+ </string>
+ <string name="anim_yes_happy">
+ Si (Felice)
+ </string>
+ <string name="anim_yes_head">
+ Si
+ </string>
+ <string name="texture_loading">
+ Caricando...
+ </string>
+ <string name="worldmap_offline">
+ Offline
+ </string>
+ <string name="whisper">
+ sussurra:
+ </string>
+ <string name="shout">
+ grida:
+ </string>
+ <string name="SIM_ACCESS_PG">
+ PG
+ </string>
+ <string name="SIM_ACCESS_MATURE">
+ Mature
+ </string>
+ <string name="SIM_ACCESS_ADULT">
+ Adult
+ </string>
+ <string name="SIM_ACCESS_DOWN">
+ Offline
+ </string>
+ <string name="SIM_ACCESS_MIN">
+ Sconosciuto
+ </string>
+ <string name="land_type_unknown">
+ (sconosciuto)
+ </string>
+ <string name="covenant_never_modified">Ultima modifica: (mai)</string>
+ <string name="covenant_modified">Ultima modifica: </string>
+ <string name="all_files">
+ Tutti i file
+ </string>
+ <string name="sound_files">
+ Suoni
+ </string>
+ <string name="animation_files">
+ Animazioni
+ </string>
+ <string name="image_files">
+ Immagini
+ </string>
+ <string name="save_file_verb">
+ Salva
+ </string>
+ <string name="load_file_verb">
+ Carica
+ </string>
+ <string name="targa_image_files">
+ Immagini Targa
+ </string>
+ <string name="bitmap_image_files">
+ Immagini Bitmap
+ </string>
+ <string name="avi_movie_file">
+ File video AVI
+ </string>
+ <string name="xaf_animation_file">
+ File animazione XAF
+ </string>
+ <string name="xml_file">
+ File XML
+ </string>
+ <string name="dot_raw_file">
+ File RAW
+ </string>
+ <string name="compressed_image_files">
+ Immagini compresse
+ </string>
+ <string name="load_files">
+ Carica i file
+ </string>
+ <string name="choose_the_directory">
+ Scegli la cartella
+ </string>
+</strings>
diff --git a/indra/newview/skins/default/xui/it/teleport_strings.xml b/indra/newview/skins/default/xui/it/teleport_strings.xml
index 8973ca2fe8..4ef802dc5b 100644
--- a/indra/newview/skins/default/xui/it/teleport_strings.xml
+++ b/indra/newview/skins/default/xui/it/teleport_strings.xml
@@ -1,73 +1,75 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<teleport_messages>
- <message_set name="errors">
- <message name="invalid_tport">
- C&apos;è stato un problema nell&apos;elaborare la tua richiesta di teletrasporto. Potresti aver bisogno di ricollegarti prima di poter usare il teletrasporto. Se continui ad avere problemi, controlla per favore le FAQ del Supporto Tecnico a: www.secondlife.com/support
- </message>
- <message name="invalid_region_handoff">
- C&apos;è stato un problema nell&apos;elaborare il cambio di regione. Potresti aver bisogno di ricollegarti prima di poterlo effetuare. Se continui ad avere problemi, controlla per favore le FAQ del Supporto Tecnico a: www.secondlife.com/support
- </message>
- <message name="blocked_tport">
- Spiacenti, il teletrasporto è bloccato al momento. Prova di nuovo tra pochi istanti. Se ancora non potrai teletrasportarti, per favore scollegati e ricollegati per risolvere il problema.
- </message>
- <message name="nolandmark_tport">
- Spiacenti, ma il sistema non riesce a localizzare la destinazione del landmark
- </message>
- <message name="timeout_tport">
- Spiacenti, il sistema non riesce a completare il teletrasporto. Riprova tra un attimo.
- </message>
- <message name="noaccess_tport">
- Spiacenti, ma non hai accesso nel luogo di destinazione richiesto.
- </message>
- <message name="missing_attach_tport">
- Gli oggetti da te indossati non sono ancoa arrivati. Attendi ancora qualche secondo o scollegati e ricollegati prima di provare a teleportarti.
- </message>
- <message name="too_many_uploads_tport">
- La gestione dati della regione è al momento occupata e la tua richiesta di teletrasporto non può essere soddisfatta entro breve tempo. Per favore prova di nuovo tra qualche minuto o spostati in un&apos;area meno affollata.
- </message>
- <message name="expired_tport">
- Spiacenti, il sistema non riesce a soddisfare la tua richiesta di teletrasporto entro un tempo ragionevole. Riprova tra qualche minuto.
- </message>
- <message name="expired_region_handoff">
- Spiacenti, il sistema non riesce a completare il cambio di regione entro un tempo ragionevole. Riprova tra qualche minuto.
- </message>
- <message name="no_host">
- Impossibile trovare la destinazione del teletrasporto; potrebbe essere temporaneamente non accessibile o non esistere più. Riprovaci tra qualche minuto.
- </message>
- <message name="no_inventory_host">
- L&apos;inventario è temporaneamente inaccessibile.
- </message>
- </message_set>
- <message_set name="progress">
- <message name="sending_dest">
- In invio verso la destinazione.
- </message>
- <message name="redirecting">
- In reindirizzamento ad una nuova destinazione.
- </message>
- <message name="relaying">
- In ritrasmissione alla destinazione.
- </message>
- <message name="sending_home">
- In invio la richiesta di ubicazione casa.
- </message>
- <message name="sending_landmark">
- In invio la richiesta della destinazione del landmark.
- </message>
- <message name="completing">
- Teletrasporto completato
- </message>
- <message name="resolving">
- Destinazione in elaborazione.
- </message>
- <message name="contacting">
- Si sta contattando la nuova regione.
- </message>
- <message name="arriving">
- In arrivo...
- </message>
- <message name="requesting">
- Teletrasporto in avvio...
- </message>
- </message_set>
-</teleport_messages>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<teleport_messages>
+ <message_set name="errors">
+ <message name="invalid_tport">
+ C&apos;è stato un problema nell&apos;elaborare la tua richiesta di teletrasporto. Potresti aver bisogno di ricollegarti prima di poter usare il teletrasporto. Se continui ad avere problemi, controlla per favore le FAQ del Supporto Tecnico a:
+www.secondlife.com/support
+ </message>
+ <message name="invalid_region_handoff">
+ C&apos;è stato un problema nell&apos;elaborare il cambio di regione. Potresti aver bisogno di ricollegarti prima di poterlo effetuare. Se continui ad avere problemi, controlla per favore le FAQ del Supporto Tecnico a:
+www.secondlife.com/support
+ </message>
+ <message name="blocked_tport">
+ Spiacenti, il teletrasporto è bloccato al momento. Prova di nuovo tra pochi istanti. Se ancora non potrai teletrasportarti, per favore scollegati e ricollegati per risolvere il problema.
+ </message>
+ <message name="nolandmark_tport">
+ Spiacenti, ma il sistema non riesce a localizzare la destinazione del landmark
+ </message>
+ <message name="timeout_tport">
+ Spiacenti, il sistema non riesce a completare il teletrasporto. Riprova tra un attimo.
+ </message>
+ <message name="noaccess_tport">
+ Spiacenti, ma non hai accesso nel luogo di destinazione richiesto.
+ </message>
+ <message name="missing_attach_tport">
+ Gli oggetti da te indossati non sono ancoa arrivati. Attendi ancora qualche secondo o scollegati e ricollegati prima di provare a teleportarti.
+ </message>
+ <message name="too_many_uploads_tport">
+ La gestione dati della regione è al momento occupata e la tua richiesta di teletrasporto non può essere soddisfatta entro breve tempo. Per favore prova di nuovo tra qualche minuto o spostati in un&apos;area meno affollata.
+ </message>
+ <message name="expired_tport">
+ Spiacenti, il sistema non riesce a soddisfare la tua richiesta di teletrasporto entro un tempo ragionevole. Riprova tra qualche minuto.
+ </message>
+ <message name="expired_region_handoff">
+ Spiacenti, il sistema non riesce a completare il cambio di regione entro un tempo ragionevole. Riprova tra qualche minuto.
+ </message>
+ <message name="no_host">
+ Impossibile trovare la destinazione del teletrasporto; potrebbe essere temporaneamente non accessibile o non esistere più. Riprovaci tra qualche minuto.
+ </message>
+ <message name="no_inventory_host">
+ L&apos;inventario è temporaneamente inaccessibile.
+ </message>
+ </message_set>
+ <message_set name="progress">
+ <message name="sending_dest">
+ In invio verso la destinazione.
+ </message>
+ <message name="redirecting">
+ In reindirizzamento ad una nuova destinazione.
+ </message>
+ <message name="relaying">
+ In ritrasmissione alla destinazione.
+ </message>
+ <message name="sending_home">
+ In invio la richiesta di ubicazione casa.
+ </message>
+ <message name="sending_landmark">
+ In invio la richiesta della destinazione del landmark.
+ </message>
+ <message name="completing">
+ Teletrasporto completato
+ </message>
+ <message name="resolving">
+ Destinazione in elaborazione.
+ </message>
+ <message name="contacting">
+ Si sta contattando la nuova regione.
+ </message>
+ <message name="arriving">
+ In arrivo...
+ </message>
+ <message name="requesting">
+ Teletrasporto in avvio...
+ </message>
+ </message_set>
+</teleport_messages>
diff --git a/indra/newview/skins/default/xui/ja/floater_about.xml b/indra/newview/skins/default/xui/ja/floater_about.xml
index c8f6b76bab..ffdbec666d 100644
--- a/indra/newview/skins/default/xui/ja/floater_about.xml
+++ b/indra/newview/skins/default/xui/ja/floater_about.xml
@@ -20,13 +20,14 @@
SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
xmlrpc-epi Copyright (C) 2000 Epinions, Inc.
zlib Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler.
-
+ google-perftools Copyright (c) 2005, Google Inc.
+
無断転写、複製、転載を禁じます。 詳細はlicenses.txtを参照してください。
Voice chat Audio coding: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C)
- 友達の助けがあれば何とかやっていける --リチャード・スターキー
+ ビジネスで成功するには、勇気を持って、誰よりも先に、人と違ったことをすることだ。 --Henry Marchant
</text_editor>
<text name="you_are_at">
[POSITION]
diff --git a/indra/newview/skins/default/xui/ja/floater_about_land.xml b/indra/newview/skins/default/xui/ja/floater_about_land.xml
index 8cc28cb01f..26c8a46270 100644
--- a/indra/newview/skins/default/xui/ja/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/ja/floater_about_land.xml
@@ -9,6 +9,18 @@
<text length="1" name="Description:" type="string">
説明:
</text>
+ <text name="LandType">
+ 種類:
+ </text>
+ <text name="LandTypeText">
+ メインランド/ホームステッド
+ </text>
+ <text name="ContentRating">
+ 区分:
+ </text>
+ <text name="ContentRatingText">
+ Adult
+ </text>
<text length="1" name="Owner:" type="string">
オーナー:
</text>
@@ -24,7 +36,7 @@
<button label="譲渡..." label_selected="譲渡..." name="Deed..." tool_tip="選択されたグループのオフィサーであるときのみ、土地を譲渡できます。"/>
<check_box label="オーナーが譲渡と共に寄付" name="check contrib" tool_tip="土地がグループに譲渡されるとき、前の所有者は譲渡が成立するよう、十分な土地を寄付します。"/>
<text length="1" name="For Sale:" type="string">
- 売り出し中:
+ 販売の有無:
</text>
<text length="1" name="Not for sale." type="string">
販売対象外
@@ -44,7 +56,7 @@
</text>
<button label="土地販売の取り消し" label_selected="土地販売の取り消し" name="Cancel Land Sale"/>
<text length="1" name="Claimed:" type="string">
- 要求:
+ 取得日時:
</text>
<text length="1" name="DateClaimText" type="string">
2006年8月15日火曜日13:47:25
@@ -61,11 +73,11 @@
<text length="1" name="DwellText" type="string">
</text>
- <button label="土地を購入..." label_selected="土地を購入..." name="Buy Land..." width="125" left="130"/>
+ <button label="土地を購入..." label_selected="土地を購入..." left="130" name="Buy Land..." width="125"/>
<button label="グループ用に購入..." label_selected="グループ用に購入..." name="Buy For Group..."/>
- <button label="入場許可を購入..." label_selected="入場許可を購入..." name="Buy Pass..." tool_tip="この土地への一時的なアクセスを許可します。" width="125" left="130"/>
+ <button label="入場許可を購入..." label_selected="入場許可を購入..." left="130" name="Buy Pass..." tool_tip="この土地への一時的なアクセスを許可します。" width="125"/>
<button label="土地を放棄..." label_selected="土地を放棄..." name="Abandon Land..."/>
- <button label="土地開拓..." label_selected="土地開拓..." name="Reclaim Land..."/>
+ <button label="土地の返還を要求..." label_selected="土地の返還を要求..." name="Reclaim Land..."/>
<button label="Lindenセール..." label_selected="Lindenセール..." name="Linden Sale..." tool_tip="土地が所有されており、コンテンツが設定されている必要があります。オークションの対象になっていないことも必要条件です。"/>
<string name="new users only">
新規ユーザーのみ
@@ -74,7 +86,7 @@
誰でも
</string>
<string name="area_text">
- エリア
+ 面積:
</string>
<string name="area_size_text">
[AREA]平方メートル
@@ -105,40 +117,65 @@
</string>
<string name="no_selection_text">
区画が選定されていません。
-[世界]メニュー&gt;[土地情報]に進むか、別の区画を選択して、詳細を表示します。
+「世界」メニュー>「土地情報」に進むか、別の区画を選択して、詳細を表示します。
</string>
</panel>
<panel label="約款" name="land_covenant_panel">
+ <text font="SansSerifLarge" name="estate_section_lbl">
+ 不動産:
+ </text>
+ <text length="1" name="estate_name_lbl" type="string">
+ 名前:
+ </text>
+ <text length="1" name="estate_name_text" type="string">
+ メインランド
+ </text>
+ <text length="1" name="estate_owner_lbl" type="string">
+ オーナー:
+ </text>
+ <text length="1" name="estate_owner_text" type="string">
+ (なし)
+ </text>
+ <text_editor length="1" name="covenant_editor" type="string">
+ この不動産には約款がありません。
+ </text_editor>
<text length="1" name="covenant_timestamp_text" type="string">
最後の更新1969年12月31日水曜日16:00:00
</text>
- <text length="1" name="region_name_lbl" type="string">
+ <text font="SansSerifLarge" name="region_section_lbl">
地域:
</text>
+ <text length="1" name="region_name_lbl" type="string">
+ 名前:
+ </text>
<text length="1" name="region_name_text" type="string">
Leyla
</text>
- <text length="1" name="estate_name_lbl" type="string">
- 不動産:
+ <text name="region_landtype_lbl">
+ 種類:
</text>
- <text length="1" name="estate_name_text" type="string">
- メインランド
+ <text name="region_landtype_text">
+ メインランド/ホームステッド
</text>
- <text length="1" name="estate_owner_lbl" type="string">
- 不動産オーナー:
+ <text name="region_maturity_lbl">
+ 区分:
</text>
- <text length="1" name="estate_owner_text" type="string">
- (なし)
+ <text name="region_maturity_text">
+ Adult
+ </text>
+ <text name="resellable_lbl">
+ 再販:
</text>
<text length="1" name="resellable_clause" type="string">
- この地域で購入した土地は、再販できないことがあります。
+ この地域(リージョン)にある土地は再販できません。
+ </text>
+ <text name="changeable_lbl">
+ 再分割:
</text>
<text length="1" name="changeable_clause" type="string">
- この地域で購入した土地は、統合/再分割できないことがあります。
+ この地域(リージョン)にある土地は統合または分割ができ
+ません。
</text>
- <text_editor length="1" name="covenant_editor" type="string">
- この不動産には約款がありません。
- </text_editor>
<string name="can_resell">
この地域で購入した土地は、再販できます。
</string>
@@ -149,7 +186,8 @@
この地域で購入した土地は、統合または再分割できます。
</string>
<string name="can_not_change">
- この地域で購入した土地は、統合/再分割できないことがあります。
+ この地域で購入した土地は、統合/再分割できないことが
+あります。
</string>
</panel>
<panel label="オブジェクト" name="land_objects_panel">
@@ -255,10 +293,60 @@
<check_box label="安全(ダメージなし)" name="check safe" tool_tip="チェックを入れるとこの土地でのダメージコンバットが無効になり、「安全」に設定されます。 チェックを外すとダメージコンバットが有効になります。"/>
<check_box label="プッシングを制限" name="PushRestrictCheck" tool_tip="スクリプトによるプッシングを制限します。 このオプションを選択することにより、あなたの土地での破壊的行動を妨げることができます。"/>
<check_box label="検索に表示>(週L$30)以下の場所" name="ShowDirectoryCheck" tool_tip="検索結果でこの区画を表示させる"/>
+ <string name="search_enabled_tooltip">
+ この区画を検索結果に表示する
+ </string>
+ <string name="search_disabled_small_tooltip">
+ 区画面積が128平方メートルかそれ以下のため、このオプションは無効です。
+大きな区画のみ検索に表示させることが可能です。
+ </string>
+ <string name="search_disabled_permissions_tooltip">
+ あなたはこの区画の設定編集ができないため、このオプションは無効です。
+ </string>
+ <combo_box name="land category with adult">
+ <combo_item name="AnyCategory">
+ 全カテゴリ
+ </combo_item>
+ <combo_item name="LindenLocation">
+ Linden所在地
+ </combo_item>
+ <combo_item name="Adult">
+ Adult
+ </combo_item>
+ <combo_item name="Arts&amp;Culture">
+ アートとカルチャー
+ </combo_item>
+ <combo_item name="Business">
+ ビジネス
+ </combo_item>
+ <combo_item name="Educational">
+ 教育的
+ </combo_item>
+ <combo_item name="Gaming">
+ ゲーム
+ </combo_item>
+ <combo_item name="Hangout">
+ たまり場
+ </combo_item>
+ <combo_item name="NewcomerFriendly">
+ 新住人に好意的
+ </combo_item>
+ <combo_item name="Parks&amp;Nature">
+ 公園と自然
+ </combo_item>
+ <combo_item name="Residential">
+ 住宅用
+ </combo_item>
+ <combo_item name="Shopping">
+ ショッピング
+ </combo_item>
+ <combo_item name="Other">
+ その他
+ </combo_item>
+ </combo_box>
<combo_box name="land category">
<combo_box.item name="AnyCategory" label="全カテゴリー"/>
<combo_box.item name="LindenLocation" label="Linden所在地"/>
-
<combo_box.item name="Arts&amp;Culture" label="アート&amp;カルチャー"/>
<combo_box.item name="Business" label="ビジネス"/>
<combo_box.item name="Educational" label="教育的"/>
@@ -271,18 +359,30 @@
<combo_box.item name="Other" label="その他"/>
</combo_box>
<button label="?" label_selected="?" name="?"/>
- <check_box name="MatureCheck" />
+ <check_box label="Matureコンテンツ" name="MatureCheck" tool_tip=""/>
+ <string name="mature_check_mature">
+ Matureコンテンツ
+ </string>
+ <string name="mature_check_adult">
+ Adultコンテンツ
+ </string>
+ <string name="mature_check_mature_tooltip">
+ あなたの区画情報及びコンテンツはMatureとされています。
+ </string>
+ <string name="mature_check_adult_tooltip">
+ あなたの区画情報及びコンテンツはAdultとされています。
+ </string>
<text length="1" name="Snapshot:" type="string">
スナップショット:
</text>
<texture_picker label="" left="116" name="snapshot_ctrl" tool_tip="写真をクリックして選択"/>
<text name="landing_point">
- 着陸地点: [LANDING]
+ 着地点: [LANDING]
</text>
<string name="landing_point_none">
(なし)
</string>
- <button label="設定" label_selected="設定" name="Set" tool_tip="訪問者の着地地点の設定を行います。この区画内に立って行ってください。"/>
+ <button label="設定" label_selected="設定" name="Set" tool_tip="訪問者の着地点の設定を行います。この区画内に立って行ってください。"/>
<button label="クリア" label_selected="クリア" name="Clear" tool_tip="着地点をクリアしてください。"/>
<text length="1" name="Teleport Routing: " type="string">
テレポート制限:
@@ -317,9 +417,10 @@
ャ取替:
</text>
<texture_picker label="" name="media texture" tool_tip="写真をクリックして選択"/>
- <text name="replace_texture_help">
- [再生]矢印をクリックすると、このテクスチャーを使用するオブジェクトに
-動画またはウェブ・ページが表示されます。
+ <text name="replace_texture_help" width="290">
+ 「再生」矢印をクリックすると、このテクスチャーを
+ 使用するオブジェクトに動画またはウェブ・ページ
+ が表示されます。
</text>
<text name="Options:">
メディア
@@ -343,21 +444,14 @@
<text name="Sound:">
サウンド:
</text>
- <check_box label="この区画だけに限定" name="check sound local"/>
+ <check_box label="ジェスチャーとオブジェクトの音をこの区画だけに限定" name="check sound local"/>
+ <button label="?" label_selected="?" left="408" name="?"/>
<text name="Voice settings:">
ボイス:
</text>
- <radio_group name="parcel_voice_channel" width="310">
- <radio_item name="Estate">
- 不動産(エステート)全体
- </radio_item>
- <radio_item name="Private">
- この区画のみ
- </radio_item>
- <radio_item name="Disabled">
- 使用不可
- </radio_item>
- </radio_group>
+ <check_box label="ボイスを有効にする" name="parcel_enable_voice_channel"/>
+ <check_box label="ボイスを有効にする(不動産設定)" name="parcel_enable_voice_channel_is_estate_disabled"/>
+ <check_box label="この区画でのボイス使用を制限する" name="parcel_enable_voice_channel_parcel"/>
</panel>
<panel label="アクセス" name="land_access_panel">
<text length="1" name="Limit access to this parcel to:" type="string">
diff --git a/indra/newview/skins/default/xui/ja/floater_avatar_picker.xml b/indra/newview/skins/default/xui/ja/floater_avatar_picker.xml
index a23c6f02ad..ea07684652 100644
--- a/indra/newview/skins/default/xui/ja/floater_avatar_picker.xml
+++ b/indra/newview/skins/default/xui/ja/floater_avatar_picker.xml
@@ -1,21 +1,40 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="avatarpicker" title="住人を選択">
- <text name="Type part of the person&apos;s name:">
- 住人の名前の一部を入力してください。
- </text>
- <text name="instruct_search_resident_name">
- 住人の名前を一部入力してください:
- </text>
- <button label="検索" label_selected="検索" name="Find" />
- <text name="Or select a calling card:">
- またはコーリング・カードを選択:
- </text>
- <text name="Or select their calling card:">
- または、コーリングカードを選択:
- </text>
- <button label="選択" label_selected="選択" name="Select" />
- <button label="閉じる" label_selected="閉じる" name="Close" />
- <text name="NotFound">
- &apos;[TEXT]&apos;が見つかりません。
- </text>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="avatarpicker" title="住人を選択" min_width="275" width="275">
+ <tab_container name="ResidentChooserTabs" width="265">
+ <panel label="検索" name="SearchPanel" width="145">
+ <text name="InstructSearchResidentName">
+ 住人の名前の一部を入力:
+ </text>
+ <button label="検索" label_selected="検索" name="Find"/>
+ </panel>
+ <panel label="コーリングカード" name="CallingCardsPanel" width="145">
+ <text name="InstructSelectCallingCard">
+ コーリングカードを選択:
+ </text>
+ </panel>
+ <panel label="自分の近く" name="NearMePanel" width="145">
+ <text name="InstructSelectResident">
+ 近くの住人を選択:
+ </text>
+ <button label="リスト更新" label_selected="リスト更新" name="Refresh"/>
+ <slider label="範囲" name="near_me_range"/>
+ <text name="meters" width="50">
+ メートル
+ </text>
+ </panel>
+ </tab_container>
+ <button label="選択" label_selected="選択" name="Select"/>
+ <button label="取り消し" label_selected="取り消し" name="Cancel"/>
+ <string name="not_found">
+ 「[TEXT]」は見つかりませんでした
+ </string>
+ <string name="no_one_near">
+ 近くに誰もいません
+ </string>
+ <string name="no_results">
+ 検索結果:ゼロ
+ </string>
+ <string name="searching">
+ 検索中...
+ </string>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml b/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml
index fb0659f694..95940dba96 100644
--- a/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml
+++ b/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml
@@ -1,30 +1,31 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="avatar_texture_debug" title="アバター・テクスチャー">
- <text name="baked_label" width="128">
- 構築されたテクスチャー
+ <text name="label">
+ ベークドテクスチャ
</text>
<text name="composite_label" width="128">
合成テクスチャー
</text>
- <texture_picker label="頭" name="baked_head" />
- <texture_picker label="メイクアップ" name="head_bodypaint" />
- <texture_picker label="髪" name="hair" />
- <button label="捨てる" label_selected="捨てる" name="Dump" />
- <texture_picker label="眼" name="baked_eyes" />
- <texture_picker label="眼" name="eye_texture" />
- <texture_picker label="上半身" name="baked_upper_body" />
- <texture_picker label="上半身のタトゥー" name="upper_bodypaint" />
- <texture_picker label="(下着の)シャツ" name="undershirt" />
- <texture_picker label="手袋" name="gloves" />
- <texture_picker label="シャツ" name="shirt" />
- <texture_picker label="上半身のジャケット" name="upper_jacket" />
- <texture_picker label="下半身" name="baked_lower_body" />
- <texture_picker label="下半身のタトゥー" name="lower_bodypaint" />
- <texture_picker label="(下着の)パンツ" name="underpants" />
- <texture_picker label="靴下" name="socks" />
- <texture_picker label="靴" name="shoes" />
- <texture_picker label="ズボン" name="pants" />
- <texture_picker label="ジャケット" name="jacket" />
- <texture_picker label="スカート" name="baked_skirt" />
- <texture_picker label="スカート" name="skirt_texture" />
+ <button label="テクスチャID一覧をコンソールに書き込む" label_selected="捨てる" name="Dump"/>
+ <texture_picker label="髪型" name="hair-baked"/>
+ <texture_picker label="髪" name="hair"/>
+ <texture_picker label="頭" name="head-baked"/>
+ <texture_picker label="メイクアップ" name="head bodypaint"/>
+ <texture_picker label="目" name="eyes-baked"/>
+ <texture_picker label="目" name="iris"/>
+ <texture_picker label="上半身" name="upper-baked"/>
+ <texture_picker label="上半身のタトゥー" name="upper bodypaint"/>
+ <texture_picker label="(下着の)シャツ" name="undershirt"/>
+ <texture_picker label="手袋" name="gloves"/>
+ <texture_picker label="シャツ" name="shirt"/>
+ <texture_picker label="上着" name="upper jacket"/>
+ <texture_picker label="下半身" name="lower-baked"/>
+ <texture_picker label="下半身のタトゥー" name="lower bodypaint"/>
+ <texture_picker label="(下着の)パンツ" name="underpants"/>
+ <texture_picker label="靴下" name="socks"/>
+ <texture_picker label="靴" name="shoes"/>
+ <texture_picker label="ズボン" name="pants"/>
+ <texture_picker label="上着" name="lower jacket"/>
+ <texture_picker label="スカート" name="skirt-baked"/>
+ <texture_picker label="スカート" name="skirt"/>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_bulk_perms.xml b/indra/newview/skins/default/xui/ja/floater_bulk_perms.xml
index 1f5c713cdb..6ee90038fb 100644
--- a/indra/newview/skins/default/xui/ja/floater_bulk_perms.xml
+++ b/indra/newview/skins/default/xui/ja/floater_bulk_perms.xml
@@ -1,43 +1,44 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floaterbulkperms" title="コンテンツ権限の一括変更">
- <text name="applyto">
- コンテンツの種類
- </text>
- <check_box label="アニメーション" name="check_animation"/>
- <check_box label="身体部位" name="check_bodypart"/>
- <check_box label="服" name="check_clothing"/>
- <check_box label="ジェスチャー" name="check_gesture"/>
- <check_box label="ランドマーク" name="check_landmark"/>
- <check_box label="ノートカード" name="check_notecard"/>
- <check_box label="オブジェクト" name="check_object"/>
- <check_box label="スクリプト" name="check_script"/>
- <check_box label="サウンド" name="check_sound"/>
- <check_box label="テクスチャー" name="check_texture"/>
- <button label="全て選択" label_selected="全て" name="check_all"/>
- <button label="全て解除" label_selected="なし" name="check_none"/>
- <text name="newperms">
- 新しい権限
- </text>
- <check_box label="グループで共同管理" name="share_with_group"/>
- <check_box label="誰に対してもコピーを許可" name="everyone_copy"/>
- <text name="NextOwnerLabel">
- 次のオーナーができる操作:
- </text>
- <check_box label="修正" name="next_owner_modify"/>
- <check_box label="コピー" name="next_owner_copy"/>
- <check_box label="再販/プレゼント" name="next_owner_transfer"/>
- <button label="適用" name="apply"/>
- <button label="閉じる" name="close"/>
- <string name="nothing_to_modify_text">
- 選択した中に編集できないコンテンツが含まれています
- </string>
- <string name="status_text">
- [NAME]に権限を設定中です。
- </string>
- <string name="start_text">
- 権限変更リクエストをしています
- </string>
- <string name="done_text">
- 権限変更リクエストが完了しました
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floaterbulkperms" title="コンテンツ権限の一括変更">
+ <text name="applyto">
+ コンテンツの種類
+ </text>
+ <check_box label="アニメーション" name="check_animation"/>
+ <check_box label="身体部位" name="check_bodypart"/>
+ <check_box label="服" name="check_clothing"/>
+ <check_box label="ジェスチャー" name="check_gesture"/>
+ <check_box label="ランドマーク" name="check_landmark"/>
+ <check_box label="ノートカード" name="check_notecard"/>
+ <check_box label="オブジェクト" name="check_object"/>
+ <check_box label="スクリプト" name="check_script"/>
+ <check_box label="サウンド" name="check_sound"/>
+ <check_box label="テクスチャー" name="check_texture"/>
+ <button label="全て選択" label_selected="全て" name="check_all"/>
+ <button label="全て解除" label_selected="なし" name="check_none"/>
+ <text name="newperms">
+ 新しい権限
+ </text>
+ <check_box label="グループで共同管理" name="share_with_group"/>
+ <check_box label="誰に対してもコピーを許可" name="everyone_copy"/>
+ <text name="NextOwnerLabel">
+ 次のオーナーができる操作:
+ </text>
+ <check_box label="修正" name="next_owner_modify"/>
+ <check_box label="コピー" name="next_owner_copy"/>
+ <check_box label="再販/プレゼント" name="next_owner_transfer"/>
+ <button label="ヘルプ" name="help"/>
+ <button label="適用" name="apply"/>
+ <button label="閉じる" name="close"/>
+ <string name="nothing_to_modify_text">
+ 選択した中に編集できないコンテンツが含まれています
+ </string>
+ <string name="status_text">
+ [NAME]に権限を設定中です。
+ </string>
+ <string name="start_text">
+ 権限変更リクエストをしています
+ </string>
+ <string name="done_text">
+ 権限変更リクエストが完了しました
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_buy_currency.xml b/indra/newview/skins/default/xui/ja/floater_buy_currency.xml
index a532640d91..9d5aea612b 100644
--- a/indra/newview/skins/default/xui/ja/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/ja/floater_buy_currency.xml
@@ -12,7 +12,7 @@
<text name="error_message">
何か変です。
</text>
- <button label="ウェブ・サイトに移動" name="error_web" />
+ <button label="ウェブ・サイトに移動" name="error_web" width="140"/>
<text name="contacting">
LindeXとコンタクト中…
</text>
@@ -31,7 +31,7 @@
<text name="currency_est">
約US$ [USD]
</text>
- <text name="getting_data">
+ <text name="getting_data" left_delta="3">
データを取得しています...
</text>
<text name="balance_label">
diff --git a/indra/newview/skins/default/xui/ja/floater_buy_land.xml b/indra/newview/skins/default/xui/ja/floater_buy_land.xml
index b046b48caa..1ccd1f53a4 100644
--- a/indra/newview/skins/default/xui/ja/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/ja/floater_buy_land.xml
@@ -6,6 +6,12 @@
<text name="region_name_text">
(不明)
</text>
+ <text name="region_type_label">
+ 種類:
+ </text>
+ <text name="region_type_text">
+ (不明)
+ </text>
<text name="estate_name_label">
不動産:
</text>
@@ -22,14 +28,15 @@
この地域で購入した土地:
</text>
<text name="resellable_clause">
- この地域で購入した土地は、再販が可能な場合とそうでない場合があります
+ 再販できる場合とできない場合があります。
</text>
<text name="changeable_clause">
- 統合または再分割される可能性も、されない可能性もあります
+ 統合または再分割できる場合とできない場合があります。
</text>
<text name="covenant_text">
不動産約款に同意してください:
</text>
+ <text left="470" name="covenant_timestamp_text"/>
<text_editor name="covenant_editor">
ロード中...
</text_editor>
@@ -156,7 +163,7 @@
この土地を買うと:
</string>
<string name="buying_for_group">
- グループ用に土地を購入:
+ グループ用の土地を購入すると:
</string>
<string name="cannot_buy_now">
現在購入不可:
@@ -186,10 +193,10 @@
この区画は [AMOUNT] 平方メートルあります
</string>
<string name="premium_land">
- この土地はプレミアムなので、 [AMOUNT] 平方メートル として請求されます
+ この土地は割り増し付です。 [AMOUNT] 平方メートルの料金がかかります。
</string>
<string name="discounted_land">
- この土地は値下げされ、[AMOUNT]平方メートルとして請求されます
+ この土地はディスカウントされています。 [AMOUNT] 平方メートルの料金がかかります。
</string>
<string name="meters_supports_object">
[AMOUNT]平方メートルであれば、
@@ -204,13 +211,11 @@
</string>
<string name="info_price_string">
L$ [PRICE]
-L$[PRICE] (L$[PRICE_PER_SQM]/平方メートル)
+(L$ [PRICE_PER_SQM]/平方メートル)
[SOLD_WITH_OBJECTS]
</string>
<string name="insufficient_land_credits">
- この [GROUP] が区画の購入手続きを完了するには、
-価格に見合うだけの寄付された土地の利用実績が
-必要です
+ この [GROUP] が区画の購入手続きを完了するには、 価格に見合うだけの寄付された土地の利用実績が必要です
</string>
<string name="have_enough_lindens">
あなたの所持する L$ [AMOUNT]で、この土地を購入できます
diff --git a/indra/newview/skins/default/xui/ja/floater_customize.xml b/indra/newview/skins/default/xui/ja/floater_customize.xml
index 4b420dbc2e..27fa434963 100644
--- a/indra/newview/skins/default/xui/ja/floater_customize.xml
+++ b/indra/newview/skins/default/xui/ja/floater_customize.xml
@@ -1,469 +1,471 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="floater customize" title="容姿">
<tab_container name="customize tab container">
- <panel label="身体部位" />
- <panel label="身体部位" name="body_parts_placeholder" />
+ <panel label="身体部位" name="body_parts_placeholder"/>
<panel label="シェイプ" name="Shape">
- <button label="戻す" label_selected="戻す" name="Revert" />
- <button label="身体" label_selected="身体" name="Body" />
- <button label="頭" label_selected="頭" name="Head" />
- <button label="眼" label_selected="眼" name="Eyes" />
- <button label="耳" label_selected="耳" name="Ears" />
- <button label="鼻" label_selected="鼻" name="Nose" />
- <button label="口" label_selected="口" name="Mouth" />
- <button label="あご" label_selected="あご" name="Chin" />
- <button label="胴体" label_selected="胴体" name="Torso" />
- <button label="両脚" label_selected="両脚" name="Legs" />
+ <button label="戻す" label_selected="戻す" name="Revert"/>
+ <button label="身体" label_selected="身体" name="Body"/>
+ <button label="頭" label_selected="頭" name="Head"/>
+ <button label="眼" label_selected="眼" name="Eyes"/>
+ <button label="耳" label_selected="耳" name="Ears"/>
+ <button label="鼻" label_selected="鼻" name="Nose"/>
+ <button label="口" label_selected="口" name="Mouth"/>
+ <button label="あご" label_selected="あご" name="Chin"/>
+ <button label="胴体" label_selected="胴体" name="Torso"/>
+ <button label="両脚" label_selected="両脚" name="Legs"/>
<radio_group name="sex radio">
- <radio_item type="string" length="1" name="radio">
+ <radio_item length="1" name="radio" type="string">
女性
</radio_item>
- <radio_item type="string" length="1" name="radio2">
+ <radio_item length="1" name="radio2" type="string">
男性
</radio_item>
</radio_group>
- <button label="ランダム化" label_selected="ランダム化" name="Randomize" />
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: 修正できません。
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: ロード中...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: 未装着。
</text>
- <text type="string" length="1" name="path">
- [PATH]に所在
+ <text length="1" name="path" type="string">
+ [PATH] に所在
</text>
- <text type="string" length="1" name="not worn instructions">
- 新しいシェイプ(体型)を持ち物からアバターにドラッグして装着しましょう。完全に新規の状態から作成して装着することもできます。
+ <text length="1" name="not worn instructions" type="string">
+ 新しいシェイプ(体型)を持ち物からアバターにドラッグして装着しま
+しょう。完全に新規の状態から作成して装着することもできます。
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
あなたはこの服の修正を許されていません。
</text>
- <button label="新しいシェイプ(体型)を作成" label_selected="新しいシェイプ(体型)を作成"
- name="Create New" />
- <button label="取り外す" label_selected="取り外す" name="Take Off" />
- <button label="保存" label_selected="保存" name="Save" />
- <button label="別名で保存" label_selected="別名で保存" name="Save As" />
+ <text name="Item Action Label">
+ シェイプ:
+ </text>
+ <button label="新しいシェイプ(体型)を作成" label_selected="新しいシェイプ(体型)を作成" name="Create New"/>
+ <button label="保存" label_selected="保存" name="Save"/>
+ <button label="別名で保存..." label_selected="別名で保存..." name="Save As"/>
</panel>
<panel label="スキン" name="Skin">
- <button label="スキンの色" label_selected="スキンの色" name="Skin Color" />
- <button label="顔の細部" label_selected="顔の細部" name="Face Detail" />
- <button label="メイクアップ" label_selected="メイクアップ" name="Makeup" />
- <button label="身体細部" label_selected="身体細部" name="Body Detail" />
- <text type="string" length="1" name="title">
+ <button label="スキンの色" label_selected="スキンの色" name="Skin Color"/>
+ <button label="顔の細部" label_selected="顔の細部" name="Face Detail"/>
+ <button label="メイクアップ" label_selected="メイクアップ" name="Makeup"/>
+ <button label="身体細部" label_selected="身体細部" name="Body Detail"/>
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: 修正できません。
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: ロード中...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: 未装着。
</text>
- <text type="string" length="1" name="path">
- [PATH]に所在
+ <text length="1" name="path" type="string">
+ [PATH] に所在
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
新しいスキンを持ち物からアバターにドラッグして装着しましょう。
完全に新規の状態から作成して装着することもできます。
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
あなたはこの服の修正を許されていません。
</text>
- <texture_picker label="頭部のタトゥー" name="Head Tattoos"
- tool_tip="写真をクリックして選択" />
- <texture_picker label="上半身のタトゥー" name="Upper Tattoos"
- tool_tip="写真をクリックして選択" />
- <texture_picker label="下部のタトゥー" name="Lower Tattoos"
- tool_tip="写真をクリックして選択" />
- <button label="ランダム化" label_selected="ランダム化" name="Randomize" />
- <button label="新しいスキンを作成"
- label_selected="新しいスキンを作成" name="Create New" />
- <button label="取り外す" label_selected="取り外す" name="Take Off" />
- <button label="保存" label_selected="保存" name="Save" />
- <button label="別名で保存" label_selected="別名で保存" name="Save As" />
- <button label="戻す" label_selected="戻す" name="Revert" />
+ <text name="Item Action Label">
+ スキン:
+ </text>
+ <texture_picker label="頭部のタトゥー" name="Head Tattoos" tool_tip="写真をクリックして選択"/>
+ <texture_picker label="上半身のタトゥー" name="Upper Tattoos" tool_tip="写真をクリックして選択"/>
+ <texture_picker label="下部のタトゥー" name="Lower Tattoos" tool_tip="写真をクリックして選択"/>
+ <button label="新しいスキンを作成" label_selected="新しいスキンを作成" name="Create New"/>
+ <button label="保存" label_selected="保存" name="Save"/>
+ <button label="別名で保存..." label_selected="別名で保存..." name="Save As"/>
+ <button label="戻す" label_selected="戻す" name="Revert"/>
</panel>
<panel label="髪" name="Hair">
- <button label="色" label_selected="色" name="Color" />
- <button label="スタイル" label_selected="スタイル" name="Style" />
- <button label="眉毛" label_selected="眉毛" name="Eyebrows" />
- <button label="顔" label_selected="顔" name="Facial" />
- <text type="string" length="1" name="title">
+ <button label="色" label_selected="色" name="Color"/>
+ <button label="スタイル" label_selected="スタイル" name="Style"/>
+ <button label="眉毛" label_selected="眉毛" name="Eyebrows"/>
+ <button label="顔" label_selected="顔" name="Facial"/>
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: 修正できません。
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: ロード中...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: 未装着。
</text>
- <text type="string" length="1" name="path">
- [PATH]に所在
+ <text length="1" name="path" type="string">
+ [PATH] に所在
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
新しい髪型を持ち物からアバターにドラッグして装着しましょう。
完全に新規の状態から作成して装着することもできます。
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
あなたはこの服の修正を許されていません。
</text>
- <texture_picker label="テクスチャー" name="Texture"
- tool_tip="写真をクリックして選択" />
- <button label="ランダム化" label_selected="ランダム化" name="Randomize" />
- <button label="新しい髪を作成" label_selected="新しい髪を作成"
- name="Create New" />
- <button label="取り外す" label_selected="取り外す" name="Take Off" />
- <button label="保存" label_selected="保存" name="Save" />
- <button label="別名で保存" label_selected="別名で保存" name="Save As" />
- <button label="戻す" label_selected="戻す" name="Revert" />
+ <text name="Item Action Label">
+ 髪型:
+ </text>
+ <texture_picker label="テクスチャー" name="Texture" tool_tip="写真をクリックして選択"/>
+ <button label="新しい髪を作成" label_selected="新しい髪を作成" name="Create New"/>
+ <button label="保存" label_selected="保存" name="Save"/>
+ <button label="別名で保存..." label_selected="別名で保存..." name="Save As"/>
+ <button label="戻す" label_selected="戻す" name="Revert"/>
</panel>
<panel label="眼" name="Eyes">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: 修正できません。
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: ロード中...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: 未装着。
</text>
- <text type="string" length="1" name="path">
- [PATH]に所在
+ <text length="1" name="path" type="string">
+ [PATH] に所在
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
新しい眼を持ち物からアバターにドラッグして装着しましょう。
完全に新規の状態から作成して装着することもできます。
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
あなたはこの服の修正を許されていません。
</text>
- <texture_picker label="虹彩" name="Iris" tool_tip="写真をクリックして選択" />
- <button label="ランダム化" label_selected="ランダム化" name="Randomize" />
- <button label="新しい眼を作成" label_selected="新しい眼を作成"
- name="Create New" />
- <button label="取り外す" label_selected="取り外す" name="Take Off" />
- <button label="保存" label_selected="保存" name="Save" />
- <button label="別名で保存" label_selected="別名で保存" name="Save As" />
- <button label="戻す" label_selected="戻す" name="Revert" />
+ <text name="Item Action Label">
+ 目:
+ </text>
+ <texture_picker label="虹彩" name="Iris" tool_tip="写真をクリックして選択"/>
+ <button label="新しい眼を作成" label_selected="新しい眼を作成" name="Create New"/>
+ <button label="保存" label_selected="保存" name="Save"/>
+ <button label="別名で保存..." label_selected="別名で保存..." name="Save As"/>
+ <button label="戻す" label_selected="戻す" name="Revert"/>
</panel>
- <panel label="服" />
- <panel label="服" name="clothes_placeholder" />
+ <panel label="服" name="clothes_placeholder"/>
<panel label="シャツ" name="Shirt">
- <texture_picker label="生地" name="Fabric" tool_tip="写真をクリックして選択" />
- <color_swatch label="色/明暗" name="Color/Tint"
- tool_tip="カラー・ピッカーをクリックして開く" />
- <button label="新しいシャツを作成"
- label_selected="新しいシャツを作成" name="Create New" />
- <button label="取り外す" label_selected="取り外す" name="Take Off" />
- <button label="保存" label_selected="保存" name="Save" />
- <button label="別名で保存" label_selected="別名で保存" name="Save As" />
- <button label="戻す" label_selected="戻す" name="Revert" />
- <text type="string" length="1" name="title">
+ <texture_picker label="生地" name="Fabric" tool_tip="写真をクリックして選択"/>
+ <color_swatch label="色/明暗" name="Color/Tint" tool_tip="カラー・ピッカーをクリックして開く"/>
+ <button label="新しいシャツを作成" label_selected="新しいシャツを作成" name="Create New"/>
+ <button label="取り外す" label_selected="取り外す" name="Take Off"/>
+ <button label="保存" label_selected="保存" name="Save"/>
+ <button label="別名で保存..." label_selected="別名で保存..." name="Save As"/>
+ <button label="戻す" label_selected="戻す" name="Revert"/>
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: 修正できません。
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: ロード中...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: 未装着。
</text>
- <text type="string" length="1" name="path">
- [PATH]に所在
+ <text length="1" name="path" type="string">
+ [PATH] に所在
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
新しいシャツを持ち物からアバターにドラッグして装着しましょう。
完全に新規の状態から作成して装着することもできます。
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
あなたはこの服の修正を許されていません。
</text>
+ <text name="Item Action Label">
+ シャツ:
+ </text>
</panel>
<panel label="ズボン" name="Pants">
- <texture_picker label="生地" name="Fabric" tool_tip="写真をクリックして選択" />
- <color_swatch label="色/明暗" name="Color/Tint"
- tool_tip="カラー・ピッカーをクリックして開く" />
- <button label="新しいズボンを作成"
- label_selected="新しいズボンを作成" name="Create New" />
- <button label="取り外す" label_selected="取り外す" name="Take Off" />
- <button label="保存" label_selected="保存" name="Save" />
- <button label="別名で保存" label_selected="別名で保存" name="Save As" />
- <button label="戻す" label_selected="戻す" name="Revert" />
- <text type="string" length="1" name="title">
+ <texture_picker label="生地" name="Fabric" tool_tip="写真をクリックして選択"/>
+ <color_swatch label="色/明暗" name="Color/Tint" tool_tip="カラー・ピッカーをクリックして開く"/>
+ <button label="新しいズボンを作成" label_selected="新しいズボンを作成" name="Create New"/>
+ <button label="取り外す" label_selected="取り外す" name="Take Off"/>
+ <button label="保存" label_selected="保存" name="Save"/>
+ <button label="別名で保存..." label_selected="別名で保存..." name="Save As"/>
+ <button label="戻す" label_selected="戻す" name="Revert"/>
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: 修正できません。
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: ロード中...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: 未装着。
</text>
- <text type="string" length="1" name="path">
- [PATH]に所在
+ <text length="1" name="path" type="string">
+ [PATH] に所在
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
新しいズボンを持ち物からアバターにドラッグして装着しましょう。
完全に新規の状態から作成して装着することもできます。
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
あなたはこの服の修正を許されていません。
</text>
+ <text name="Item Action Label">
+ ズボン:
+ </text>
</panel>
<panel label="靴" name="Shoes">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: 修正できません。
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: ロード中...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: 未装着。
</text>
- <text type="string" length="1" name="path">
- [PATH]に所在
+ <text length="1" name="path" type="string">
+ [PATH] に所在
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
新しい靴を持ち物からアバターにドラッグして装着しましょう。
完全に新規の状態から作成して装着することもできます。
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
あなたはこの服の修正を許されていません。
</text>
- <texture_picker label="生地" name="Fabric" tool_tip="写真をクリックして選択" />
- <color_swatch label="色/明暗" name="Color/Tint"
- tool_tip="カラー・ピッカーをクリックして開く" />
- <button label="新しい靴を作成" label_selected="新しい靴を作成"
- name="Create New" />
- <button label="取り外す" label_selected="取り外す" name="Take Off" />
- <button label="保存" label_selected="保存" name="Save" />
- <button label="別名で保存" label_selected="別名で保存" name="Save As" />
- <button label="戻す" label_selected="戻す" name="Revert" />
+ <text name="Item Action Label">
+ 靴:
+ </text>
+ <texture_picker label="生地" name="Fabric" tool_tip="写真をクリックして選択"/>
+ <color_swatch label="色/明暗" name="Color/Tint" tool_tip="カラー・ピッカーをクリックして開く"/>
+ <button label="新しい靴を作成" label_selected="新しい靴を作成" name="Create New"/>
+ <button label="取り外す" label_selected="取り外す" name="Take Off"/>
+ <button label="保存" label_selected="保存" name="Save"/>
+ <button label="別名で保存..." label_selected="別名で保存..." name="Save As"/>
+ <button label="戻す" label_selected="戻す" name="Revert"/>
</panel>
<panel label="靴下" name="Socks">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: 修正できません。
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: ロード中...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: 未装着。
</text>
- <text type="string" length="1" name="path">
- [PATH]に所在
+ <text length="1" name="path" type="string">
+ [PATH] に所在
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
新しい靴下を持ち物からアバターにドラッグして装着しましょう。
完全に新規の状態から作成して装着することもできます。
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
あなたはこの服の修正を許されていません。
</text>
- <texture_picker label="生地" name="Fabric" tool_tip="写真をクリックして選択" />
- <color_swatch label="色/明暗" name="Color/Tint"
- tool_tip="カラー・ピッカーをクリックして開く" />
- <button label="新しい靴下を作成" label_selected="新しい靴下を作成"
- name="Create New" />
- <button label="取り外す" label_selected="取り外す" name="Take Off" />
- <button label="保存" label_selected="保存" name="Save" />
- <button label="別名で保存" label_selected="別名で保存" name="Save As" />
- <button label="戻す" label_selected="戻す" name="Revert" />
+ <text name="Item Action Label">
+ 靴下:
+ </text>
+ <texture_picker label="生地" name="Fabric" tool_tip="写真をクリックして選択"/>
+ <color_swatch label="色/明暗" name="Color/Tint" tool_tip="カラー・ピッカーをクリックして開く"/>
+ <button label="新しい靴下を作成" label_selected="新しい靴下を作成" name="Create New"/>
+ <button label="取り外す" label_selected="取り外す" name="Take Off"/>
+ <button label="保存" label_selected="保存" name="Save"/>
+ <button label="別名で保存..." label_selected="別名で保存..." name="Save As"/>
+ <button label="戻す" label_selected="戻す" name="Revert"/>
</panel>
<panel label="上着" name="Jacket">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: 修正できません。
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: ロード中...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: 未装着。
</text>
- <text type="string" length="1" name="path">
- [PATH]に所在
+ <text length="1" name="path" type="string">
+ [PATH] に所在
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
新しい上着を持ち物からアバターにドラッグして装着しましょう。
完全に新規の状態から作成して装着することもできます。
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
あなたはこの服の修正を許されていません。
</text>
- <texture_picker label="上半身の生地" name="Upper Fabric"
- tool_tip="写真をクリックして選択" />
- <texture_picker label="下層生地" name="Lower Fabric"
- tool_tip="写真をクリックして選択" />
- <color_swatch label="色/明暗" name="Color/Tint"
- tool_tip="カラー・ピッカーをクリックして開く" />
- <button label="新しい上着を作成" label_selected="新しい上着を作成"
- name="Create New" />
- <button label="取り外す" label_selected="取り外す" name="Take Off" />
- <button label="保存" label_selected="保存" name="Save" />
- <button label="別名で保存" label_selected="別名で保存" name="Save As" />
- <button label="戻す" label_selected="戻す" name="Revert" />
+ <text name="Item Action Label">
+ 上着:
+ </text>
+ <texture_picker label="上半身の生地" name="Upper Fabric" tool_tip="写真をクリックして選択"/>
+ <texture_picker label="下層生地" name="Lower Fabric" tool_tip="写真をクリックして選択"/>
+ <color_swatch label="色/明暗" name="Color/Tint" tool_tip="カラー・ピッカーをクリックして開く"/>
+ <button label="新しい上着を作成" label_selected="新しい上着を作成" name="Create New"/>
+ <button label="取り外す" label_selected="取り外す" name="Take Off"/>
+ <button label="保存" label_selected="保存" name="Save"/>
+ <button label="別名で保存..." label_selected="別名で保存..." name="Save As"/>
+ <button label="戻す" label_selected="戻す" name="Revert"/>
</panel>
<panel label="手袋" name="Gloves">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: 修正できません。
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: ロード中...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: 未装着。
</text>
- <text type="string" length="1" name="path">
- [PATH]に所在
+ <text length="1" name="path" type="string">
+ [PATH] に所在
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
新しい手袋を持ち物からアバターにドラッグして装着しましょう。
完全に新規の状態から作成して装着することもできます。
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
あなたはこの服の修正を許されていません。
</text>
- <texture_picker label="生地" name="Fabric" tool_tip="写真をクリックして選択" />
- <color_swatch label="色/明暗" name="Color/Tint"
- tool_tip="カラー・ピッカーをクリックして開く" />
- <button label="新しい手袋を作成" label_selected="新しい手袋を作成"
- name="Create New" />
- <button label="取り外す" label_selected="取り外す" name="Take Off" />
- <button label="保存" label_selected="保存" name="Save" />
- <button label="別名で保存" label_selected="別名で保存" name="Save As" />
- <button label="戻す" label_selected="戻す" name="Revert" />
+ <text name="Item Action Label">
+ 手袋:
+ </text>
+ <texture_picker label="生地" name="Fabric" tool_tip="写真をクリックして選択"/>
+ <color_swatch label="色/明暗" name="Color/Tint" tool_tip="カラー・ピッカーをクリックして開く"/>
+ <button label="新しい手袋を作成" label_selected="新しい手袋を作成" name="Create New"/>
+ <button label="取り外す" label_selected="取り外す" name="Take Off"/>
+ <button label="保存" label_selected="保存" name="Save"/>
+ <button label="別名で保存..." label_selected="別名で保存..." name="Save As"/>
+ <button label="戻す" label_selected="戻す" name="Revert"/>
</panel>
<panel label="下着シャツ" name="Undershirt">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: 修正できません。
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: ロード中...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: 未装着。
</text>
- <text type="string" length="1" name="path">
- [PATH]に所在
+ <text length="1" name="path" type="string">
+ [PATH] に所在
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
新しい下着を持ち物からアバターにドラッグして装着しましょう。
完全に新規の状態から作成して装着することもできます。
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
あなたはこの服の修正を許されていません。
</text>
- <texture_picker label="生地" name="Fabric" tool_tip="写真をクリックして選択" />
- <color_swatch label="色/明暗" name="Color/Tint"
- tool_tip="カラー・ピッカーをクリックして開く" />
- <button label="新しい下着シャツを作成"
- label_selected="新しい下着シャツを作成" name="Create New" />
- <button label="取り外す" label_selected="取り外す" name="Take Off" />
- <button label="保存" label_selected="保存" name="Save" />
- <button label="別名で保存" label_selected="別名で保存" name="Save As" />
- <button label="戻す" label_selected="戻す" name="Revert" />
+ <text name="Item Action Label">
+ 下着シャツ:
+ </text>
+ <texture_picker label="生地" name="Fabric" tool_tip="写真をクリックして選択"/>
+ <color_swatch label="色/明暗" name="Color/Tint" tool_tip="カラー・ピッカーをクリックして開く"/>
+ <button label="新しい下着シャツを作成" label_selected="新しい下着シャツを作成" name="Create New"/>
+ <button label="取り外す" label_selected="取り外す" name="Take Off"/>
+ <button label="保存" label_selected="保存" name="Save"/>
+ <button label="別名で保存..." label_selected="別名で保存..." name="Save As"/>
+ <button label="戻す" label_selected="戻す" name="Revert"/>
</panel>
<panel label="下着パンツ" name="Underpants">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: 修正できません。
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: ロード中...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: 未装着。
</text>
- <text type="string" length="1" name="path">
- [PATH]に所在
+ <text length="1" name="path" type="string">
+ [PATH] に所在
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
新しいパンツを持ち物からアバターにドラッグして装着しましょう。
完全に新規の状態から作成して装着することもできます。
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
あなたはこの服の修正を許されていません。
</text>
- <texture_picker label="生地" name="Fabric" tool_tip="写真をクリックして選択" />
- <color_swatch label="色/明暗" name="Color/Tint"
- tool_tip="カラー・ピッカーをクリックして開く" />
- <button label="新しいパンツを作成"
- label_selected="新しいパンツを作成" name="Create New" />
- <button label="取り外す" label_selected="取り外す" name="Take Off" />
- <button label="保存" label_selected="保存" name="Save" />
- <button label="別名で保存" label_selected="別名で保存" name="Save As" />
- <button label="戻す" label_selected="戻す" name="Revert" />
+ <text name="Item Action Label">
+ 下着パンツ:
+ </text>
+ <texture_picker label="生地" name="Fabric" tool_tip="写真をクリックして選択"/>
+ <color_swatch label="色/明暗" name="Color/Tint" tool_tip="カラー・ピッカーをクリックして開く"/>
+ <button label="新しいパンツを作成" label_selected="新しいパンツを作成" name="Create New"/>
+ <button label="取り外す" label_selected="取り外す" name="Take Off"/>
+ <button label="保存" label_selected="保存" name="Save"/>
+ <button label="別名で保存..." label_selected="別名で保存..." name="Save As"/>
+ <button label="戻す" label_selected="戻す" name="Revert"/>
</panel>
<panel label="スカート" name="Skirt">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: 修正できません。
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: ロード中...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: 未装着。
</text>
- <text type="string" length="1" name="path">
- [PATH]に所在
+ <text length="1" name="path" type="string">
+ [PATH] に所在
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
新しいスカートを持物からアバターにドラッグして装着しましょう。
完全に新規の状態から作成して装着することもできます。
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
あなたはこの服の修正を許されていません。
</text>
- <texture_picker label="生地" name="Fabric" tool_tip="写真をクリックして選択" />
- <color_swatch label="色/明暗" name="Color/Tint"
- tool_tip="カラー・ピッカーをクリックして開く" />
- <button label="スカートを作成" label_selected="スカートを作成"
- name="Create New" />
- <button label="取り外す" label_selected="取り外す" name="Take Off" />
- <button label="保存" label_selected="保存" name="Save" />
- <button label="別名で保存" label_selected="別名で保存" name="Save As" />
- <button label="戻す" label_selected="戻す" name="Revert" />
+ <text name="Item Action Label">
+ スカート:
+ </text>
+ <texture_picker label="生地" name="Fabric" tool_tip="写真をクリックして選択"/>
+ <color_swatch label="色/明暗" name="Color/Tint" tool_tip="カラー・ピッカーをクリックして開く"/>
+ <button label="スカートを作成" label_selected="スカートを作成" name="Create New"/>
+ <button label="取り外す" label_selected="取り外す" name="Take Off"/>
+ <button label="保存" label_selected="保存" name="Save"/>
+ <button label="別名で保存..." label_selected="別名で保存..." name="Save As"/>
+ <button label="戻す" label_selected="戻す" name="Revert"/>
</panel>
</tab_container>
- <button label="服装を作成" label_selected="服装を作成" name="Make Outfit" />
- <button label="すべて保存" label_selected="すべて保存" name="Save All" />
- <button label="閉じる" label_selected="閉じる" name="Close" />
+ <button label="キャンセル" label_selected="キャンセル" name="Cancel"/>
+ <button label="OK" label_selected="OK" name="Ok"/>
+ <button label="服装を作成..." label_selected="服装を作成..." name="Make Outfit"/>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_font_test.xml b/indra/newview/skins/default/xui/ja/floater_font_test.xml
new file mode 100644
index 0000000000..b853f395dd
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/floater_font_test.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="contents" title="フォントのテスト">
+ <text name="linea">
+ オーバーライドテスト - Times Romanでここに表示されます。 (default/xui/en-us フォルダー内)
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_god_tools.xml b/indra/newview/skins/default/xui/ja/floater_god_tools.xml
index d822bd4203..d91744c391 100644
--- a/indra/newview/skins/default/xui/ja/floater_god_tools.xml
+++ b/indra/newview/skins/default/xui/ja/floater_god_tools.xml
@@ -122,17 +122,29 @@
目的地:
</text>
<combo_box name="destination">
- <combo_box.item name="Selection" label="選択" />
- <combo_box.item name="AgentRegion" label="エージェント地域" />
+ <combo_item name="Selection">
+ 選択
+ </combo_item>
+ <combo_item name="AgentRegion">
+ エージェント地域
+ </combo_item>
</combo_box>
<text name="Request:">
要求:
</text>
<combo_box name="request">
- <combo_box.item name="colliders&lt;steps&gt;" label="コライダー<ステップ>" />
- <combo_box.item name="scripts&lt;count&gt;,&lt;optionalpattern&gt;" label="スクリプト<回数>、<オプション・パターン>" />
- <combo_box.item name="objects&lt;pattern&gt;" label="オブジェクト<パターン>" />
- <combo_box.item name="rez&lt;asset_id&gt;" label="rez &lt;asset_id&gt;" />
+ <combo_item name="colliders&lt;steps&gt;">
+ コライダー<ステップ>
+ </combo_item>
+ <combo_item name="scripts&lt;count&gt;,&lt;optionalpattern&gt;">
+ スクリプト<回数>、<オプション・パターン>
+ </combo_item>
+ <combo_item name="objects&lt;pattern&gt;">
+ オブジェクト<パターン>
+ </combo_item>
+ <combo_item name="rez&lt;asset_id&gt;">
+ rez <asset_id>
+ </combo_item>
</combo_box>
<text name="Parameter:">
パラメーター:
diff --git a/indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml
index 9a408b92a9..8588ee1a96 100644
--- a/indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml
+++ b/indra/newview/skins/default/xui/ja/floater_inventory_item_properties.xml
@@ -60,12 +60,8 @@
</text>
<check_box label="売り出し中" name="CheckPurchase" />
<radio_group name="RadioSaleType">
- <radio_item name="radio">
- オリジナル
- </radio_item>
- <radio_item name="radio2">
- コピー
- </radio_item>
+ <radio_item name="radio" label="オリジナル" />
+ <radio_item name="radio2" label="コピー" />
</radio_group>
<text name="TextPrice">
料金:L$
diff --git a/indra/newview/skins/default/xui/ja/floater_land_holdings.xml b/indra/newview/skins/default/xui/ja/floater_land_holdings.xml
index ba85592dd9..cb87dafb49 100644
--- a/indra/newview/skins/default/xui/ja/floater_land_holdings.xml
+++ b/indra/newview/skins/default/xui/ja/floater_land_holdings.xml
@@ -1,8 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="land holdings floater" title="自分の土地">
<scroll_list name="parcel list">
- <column label="名前" name="name"/>
- <column label="位置" name="location"/>
+ <column label="区画名" name="name"/>
+ <column label="地域(リージョン)" name="location"/>
+ <column label="種類" name="type"/>
<column label="面積" name="area"/>
<column label="" name="hidden"/>
</scroll_list>
diff --git a/indra/newview/skins/default/xui/ja/floater_notification.xml b/indra/newview/skins/default/xui/ja/floater_notification.xml
index fcddc7d2e0..0f37b30f52 100644
--- a/indra/newview/skins/default/xui/ja/floater_notification.xml
+++ b/indra/newview/skins/default/xui/ja/floater_notification.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="notification" title="通知コンソール">
- <text_editor name="payload">
- ローディング...
- </text_editor>
- <combo_box label="応答" name="response"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="notification" title="通知コンソール">
+ <text_editor name="payload">
+ ローディング...
+ </text_editor>
+ <combo_box label="応答" name="response"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_notifications_console.xml b/indra/newview/skins/default/xui/ja/floater_notifications_console.xml
index fa5ca6672c..c9d9ea7acb 100644
--- a/indra/newview/skins/default/xui/ja/floater_notifications_console.xml
+++ b/indra/newview/skins/default/xui/ja/floater_notifications_console.xml
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="notifications_console" title="通知コンソール">
- <combo_box label="種類を選択" name="notification_types"/>
- <button label="追加" name="add_notification"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="notifications_console" title="通知コンソール">
+ <combo_box label="種類を選択" name="notification_types"/>
+ <button label="追加" name="add_notification"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_perm_prefs.xml b/indra/newview/skins/default/xui/ja/floater_perm_prefs.xml
index 4969eb4d71..adbb8596d3 100644
--- a/indra/newview/skins/default/xui/ja/floater_perm_prefs.xml
+++ b/indra/newview/skins/default/xui/ja/floater_perm_prefs.xml
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="perm prefs" title="デフォルトのアップロード権限">
- <panel label="権限" name="permissions">
- <button label="?" label_selected="?" name="help"/>
- <check_box label="グループで共同管理" name="share_with_group"/>
- <check_box label="誰に対してもコピーを許可" name="everyone_copy"/>
- <text name="NextOwnerLabel">
- 次のオーナーができる操作:
- </text>
- <check_box label="修正" name="next_owner_modify"/>
- <check_box label="コピー" name="next_owner_copy"/>
- <check_box label="再販/プレゼント" name="next_owner_transfer"/>
- </panel>
- <button label="OK" label_selected="OK" name="ok"/>
- <button label="取り消し" label_selected="取り消し" name="cancel"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="perm prefs" title="デフォルトのアップロード権限">
+ <panel label="権限" name="permissions">
+ <button label="?" label_selected="?" name="help"/>
+ <check_box label="グループで共同管理" name="share_with_group"/>
+ <check_box label="誰に対してもコピーを許可" name="everyone_copy"/>
+ <text name="NextOwnerLabel">
+ 次のオーナーができる操作:
+ </text>
+ <check_box label="修正" name="next_owner_modify"/>
+ <check_box label="コピー" name="next_owner_copy"/>
+ <check_box label="再販/プレゼント" name="next_owner_transfer"/>
+ </panel>
+ <button label="OK" label_selected="OK" name="ok"/>
+ <button label="取り消し" label_selected="取り消し" name="cancel"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml b/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml
index 177895f44e..1ec868d0d8 100644
--- a/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml
@@ -15,10 +15,10 @@
<text name="trigger_label">
トリガー:
</text>
- <text name="replace_text" tool_tip="トリガー・ワードをこれらの単語に置き換えます。 たとえば、トリガー&apos;hello&apos;を&apos;Howdy&apos;に置換すると、&apos;I wanted to say hello&apos;というチャット文が&apos;I wanted to say howdy&apos;に変わり、ジェスチャーにも置換が反映されます。">
+ <text name="replace_text" tool_tip="トリガー・ワードをこれらの単語に置き換えます。 たとえば、トリガー「hello」を「Howdy」に置換すると、「I wanted to say hello」というチャット文が「I wanted to say howdy」に変わり、ジェスチャーにも置換が反映されます。">
置換:
</text>
- <line_editor name="replace_editor" tool_tip="トリガー・ワードをこれらの単語に置き換えます。 たとえば、トリガー&apos;hello&apos;を&apos;Howdy&apos;に置換すると、&apos;I wanted to say hello&apos;というチャット文が&apos;I wanted to say howdy&apos;に変わり、ジェスチャーにも置換が反映されます。"/>
+ <line_editor name="replace_editor" tool_tip="トリガー・ワードをこれらの単語に置き換えます。 たとえば、トリガー「hello」を「Howdy」に置換すると、「I wanted to say hello」というチャット文が「I wanted to say howdy」に変わり、ジェスチャーにも置換が反映されます。"/>
<text name="key_label">
ショートカット・キー:
</text>
@@ -46,12 +46,8 @@
ます。
</text>
<radio_group name="animation_trigger_type">
- <radio_item name="start">
- 開始
- </radio_item>
- <radio_item name="stop">
- 停止
- </radio_item>
+ <radio_item name="start" label="開始" />
+ <radio_item name="stop" label="停止" />
</radio_group>
<check_box label="アニメーションが完了するまで" name="wait_anim_check"/>
<check_box label="秒表示の時間" name="wait_time_check"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_report_abuse.xml b/indra/newview/skins/default/xui/ja/floater_report_abuse.xml
index 885a841127..b523023e6e 100644
--- a/indra/newview/skins/default/xui/ja/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/ja/floater_report_abuse.xml
@@ -37,51 +37,123 @@
Hendrerit Vulputate
</text>
<combo_box name="category_combo" tool_tip="カテゴリー -- この報告に最も適したカテゴリーを選択してください">
- <combo_box.item name="Select_category" label="カテゴリーを選択"/>
- <combo_box.item name="Age__Age_play" label="年齢&gt;年齢偽証"/>
- <combo_box.item name="Age__Adult_resident_on_Teen_Second_Life" label="年齢&gt;成人の住人がTeen Second Life上にいる"/>
-
-
-
- <combo_box.item name="Assault__Combat_sandbox___unsafe_area" label="攻撃&gt;コンバット・サンドボックス/危険なエリア"/>
- <combo_box.item name="Assault__Safe_area" label="攻撃&gt;安全なエリア"/>
- <combo_box.item name="Assault__Weapons_testing_sandbox" label="攻撃&gt;武器テスト用サンドボックス"/>
- <combo_box.item name="Commerce__Failure_to_deliver_product_or_service" label="商取引&gt;製品またはサービスの提供が行われない"/>
- <combo_box.item name="Disclosure__Real_world_information" label="開示 &gt; リアルワールドの情報"/>
- <combo_box.item name="Disclosure__Remotely_monitoring chat" label="開示&gt;離れたところからチャットをモニターしている"/>
- <combo_box.item name="Disclosure__Second_Life_information_chat_IMs" label="開示&gt;Second Lifeの情報/チャット/IM"/>
- <combo_box.item name="Disturbing_the_peace__Unfair_use_of_region_resources" label="平穏を乱す行為&gt;地域リソースの使用が不公平"/>
- <combo_box.item name="Disturbing_the_peace__Excessive_scripted_objects" label="平穏を乱す行為&gt;スクリプト・オブジェクトの乱用"/>
- <combo_box.item name="Disturbing_the_peace__Object_littering" label="平穏を乱す行為&gt;オブジェクトの捨て置き"/>
- <combo_box.item name="Disturbing_the_peace__Repetitive_spam" label="平穏を乱す行為&gt;繰り返しスパム"/>
- <combo_box.item name="Disturbing_the_peace__Unwanted_advert_spam" label="平穏を乱す行為&gt;不要な広告スパム"/>
- <combo_box.item name="Fraud__L$" label="詐欺&gt; L$"/>
- <combo_box.item name="Fraud__Land" label="詐欺&gt;土地"/>
- <combo_box.item name="Fraud__Pyramid_scheme_or_chain_letter" label="詐欺&gt;マルチ商法またはチェーン・メール"/>
- <combo_box.item name="Fraud__US$" label="詐欺&gt; US$"/>
- <combo_box.item name="Harassment__Advert_farms___visual_spam" label="嫌がらせ&gt;広告委託/視覚的なスパム"/>
- <combo_box.item name="Harassment__Defaming_individuals_or_groups" label="嫌がらせ&gt;個人またはグループの中傷"/>
- <combo_box.item name="Harassment__Impeding_movement" label="嫌がらせ&gt;移動の妨害"/>
- <combo_box.item name="Harassment__Sexual_harassment" label="嫌がらせ&gt;性的な嫌がらせ"/>
- <combo_box.item name="Harassment__Solicting_inciting_others_to_violate_ToS" label="嫌がらせ&gt;利用規約(ToS)に違反する行為を行うよう他者を勧誘/扇動"/>
- <combo_box.item name="Harassment__Verbal_abuse" label="嫌がらせ&gt;暴言"/>
- <combo_box.item name="Indecency__Broadly_offensive_content_or_conduct" label="わいせつ&gt;著しく不快であると見なされるコンテンツまたは行為"/>
-
-
-
- <combo_box.item name="Indecency__Inappropriate_avatar_name" label="わいせつ&gt;不適切なアバター名"/>
-
-
-
- <combo_box.item name="Intellectual_property_infringement_Content_Removal" label="知的財産の侵害 &gt; コンテンツの撤去"/>
- <combo_box.item name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit" label="知的財産の侵害 &gt; コピーBot及び権限の悪用"/>
- <combo_box.item name="Intolerance" label="不寛容"/>
- <combo_box.item name="Land__Abuse_of_sandbox_resources" label="土地&gt;サンドボックス・リソースの乱用"/>
- <combo_box.item name="Land__Encroachment__Objects_textures" label="土地&gt;不法侵入&gt;オブジェクト/テクスチャー"/>
- <combo_box.item name="Land__Encroachment__Particles" label="土地&gt;不法侵入&gt;パーティクル"/>
- <combo_box.item name="Land__Encroachment__Trees_plants" label="土地&gt;不法侵入&gt;樹木/植物"/>
- <combo_box.item name="Wagering_gambling" label="賭け/ギャンブル"/>
- <combo_box.item name="Other" label="その他"/>
+ <combo_item name="Select_category">
+ カテゴリーを選択
+ </combo_item>
+ <combo_item name="Age__Age_play">
+ 年齢>年齢偽証
+ </combo_item>
+ <combo_item name="Age__Adult_resident_on_Teen_Second_Life">
+ 年齢>成人の住人がTeen Second Life上にいる
+ </combo_item>
+ <combo_item name="Age__Underage_resident_outside_of_Teen_Second_Life">
+ 年齢>未成年な住人がTeen Second Lifeの外にいる
+ </combo_item>
+ <combo_item name="Assault__Combat_sandbox___unsafe_area">
+ 攻撃>コンバット・サンドボックス/危険なエリア
+ </combo_item>
+ <combo_item name="Assault__Safe_area">
+ 攻撃>安全なエリア
+ </combo_item>
+ <combo_item name="Assault__Weapons_testing_sandbox">
+ 攻撃>武器テスト用サンドボックス
+ </combo_item>
+ <combo_item name="Commerce__Failure_to_deliver_product_or_service">
+ 商取引>製品またはサービスの提供が行われない
+ </combo_item>
+ <combo_item name="Disclosure__Real_world_information">
+ 開示>リアルワールドの情報
+ </combo_item>
+ <combo_item name="Disclosure__Remotely_monitoring chat">
+ 開示>離れたところからチャットをモニターしている
+ </combo_item>
+ <combo_item name="Disclosure__Second_Life_information_chat_IMs">
+ 開示>Second Lifeの情報/チャット/IM
+ </combo_item>
+ <combo_item name="Disturbing_the_peace__Unfair_use_of_region_resources">
+ 平穏を乱す行為>地域リソースの使用が不公平
+ </combo_item>
+ <combo_item name="Disturbing_the_peace__Excessive_scripted_objects">
+ 平穏を乱す行為>スクリプト・オブジェクトの乱用
+ </combo_item>
+ <combo_item name="Disturbing_the_peace__Object_littering">
+ 平穏を乱す行為>オブジェクトの捨て置き
+ </combo_item>
+ <combo_item name="Disturbing_the_peace__Repetitive_spam">
+ 平穏を乱す行為>繰り返しスパム
+ </combo_item>
+ <combo_item name="Disturbing_the_peace__Unwanted_advert_spam">
+ 平穏を乱す行為>不要な広告スパム
+ </combo_item>
+ <combo_item name="Fraud__L$">
+ 詐欺> L$
+ </combo_item>
+ <combo_item name="Fraud__Land">
+ 詐欺>土地
+ </combo_item>
+ <combo_item name="Fraud__Pyramid_scheme_or_chain_letter">
+ 詐欺>マルチ商法またはチェーン・メール
+ </combo_item>
+ <combo_item name="Fraud__US$">
+ 詐欺> US$
+ </combo_item>
+ <combo_item name="Harassment__Advert_farms___visual_spam">
+ 嫌がらせ>広告委託/視覚的なスパム
+ </combo_item>
+ <combo_item name="Harassment__Defaming_individuals_or_groups">
+ 嫌がらせ>個人またはグループの中傷
+ </combo_item>
+ <combo_item name="Harassment__Impeding_movement">
+ 嫌がらせ>移動の妨害
+ </combo_item>
+ <combo_item name="Harassment__Sexual_harassment">
+ 嫌がらせ>性的な嫌がらせ
+ </combo_item>
+ <combo_item name="Harassment__Solicting_inciting_others_to_violate_ToS">
+ 嫌がらせ>利用規約(ToS)に違反する行為を行うよう他者を勧誘/扇動
+ </combo_item>
+ <combo_item name="Harassment__Verbal_abuse">
+ 嫌がらせ>暴言
+ </combo_item>
+ <combo_item name="Indecency__Broadly_offensive_content_or_conduct">
+ わいせつ>著しく不快であると見なされるコンテンツまたは行為
+ </combo_item>
+ <combo_item name="Indecency__Inappropriate_avatar_name">
+ わいせつ>不適切なアバター名
+ </combo_item>
+ <combo_item name="Indecency__Mature_content_in_PG_region">
+ わいせつ>PG地域での不適切なコンテンツまたは行為
+ </combo_item>
+ <combo_item name="Indecency__Inappropriate_content_in_Mature_region">
+ わいせつ>Mature地域での不適切なコンテンツまたは行為
+ </combo_item>
+ <combo_item name="Intellectual_property_infringement_Content_Removal">
+ 知的財産の侵害>コンテンツの撤去
+ </combo_item>
+ <combo_item name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit">
+ 知的財産の侵害>コピーBot及び権限の悪用
+ </combo_item>
+ <combo_item name="Intolerance">
+ 不寛容
+ </combo_item>
+ <combo_item name="Land__Abuse_of_sandbox_resources">
+ 土地>サンドボックス・リソースの乱用
+ </combo_item>
+ <combo_item name="Land__Encroachment__Objects_textures">
+ 土地>不法侵入>オブジェクト/テクスチャー
+ </combo_item>
+ <combo_item name="Land__Encroachment__Particles">
+ 土地>不法侵入>パーティクル
+ </combo_item>
+ <combo_item name="Land__Encroachment__Trees_plants">
+ 土地>不法侵入>樹木/植物
+ </combo_item>
+ <combo_item name="Wagering_gambling">
+ 賭け/ギャンブル
+ </combo_item>
+ <combo_item name="Other">
+ その他
+ </combo_item>
</combo_box>
<text name="abuser_name_title">
迷惑ユーザーの名前:
diff --git a/indra/newview/skins/default/xui/ja/floater_sell_land.xml b/indra/newview/skins/default/xui/ja/floater_sell_land.xml
index 47fb2e2f9b..3860c599fb 100644
--- a/indra/newview/skins/default/xui/ja/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/ja/floater_sell_land.xml
@@ -1,20 +1,22 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="sell land" title="土地を販売" height="511" min_height="511" >
+<floater name="sell land" title="土地を販売" height="496" min_height="496" >
<text name="info_parcel_label">
区画:
</text>
- <text name="info_parcel" left="62">
+ <text name="info_parcel">
区画名
</text>
<text name="info_size_label">
サイズ:
</text>
- <text name="info_size" left="62">
+ <text name="info_size">
[AREA]平方メートル
</text>
- <text name="info_action">
- この区画を販売するには:
+ <text name="info_action" bottom_delta="-57">
+ この区画を販売す
+るには:
</text>
+ <icon bottom_delta="-86" name="step_price" />
<text name="price_label">
価格を設定:
</text>
@@ -59,6 +61,6 @@
<text name="nag_message_label">
注意:返品や交換はできません
</text>
- <button label="売り地の設定" name="sell_btn" bottom="-505"/>
+ <button label="販売を決定" name="sell_btn" bottom="-489"/>
<button label="取り消し" name="cancel_btn" />
</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_snapshot.xml b/indra/newview/skins/default/xui/ja/floater_snapshot.xml
index e389e7304f..98db0e358e 100644
--- a/indra/newview/skins/default/xui/ja/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/ja/floater_snapshot.xml
@@ -4,15 +4,9 @@
スナップショットの送り先
</text>
<radio_group label="スナップショット・タイプ" name="snapshot_type_radio">
- <radio_item name="postcard">
- Eメールで送信
- </radio_item>
- <radio_item name="texture">
- 持ち物に保存(L$[AMOUNT])
- </radio_item>
- <radio_item name="local">
- ハードディスクに保存
- </radio_item>
+ <radio_item name="postcard" label="Eメールで送信" />
+ <radio_item name="texture" label="持ち物に保存(L$[AMOUNT])" />
+ <radio_item name="local" label="ハードディスクに保存" />
</radio_group>
<text name="file_size_label">
ファイル・サイズ: [SIZE] KB
diff --git a/indra/newview/skins/default/xui/ja/floater_sound_preview.xml b/indra/newview/skins/default/xui/ja/floater_sound_preview.xml
index cc890ce5be..b247914389 100644
--- a/indra/newview/skins/default/xui/ja/floater_sound_preview.xml
+++ b/indra/newview/skins/default/xui/ja/floater_sound_preview.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="Name/Description" title="sound.wav">
+<floater name="Sound Preview" title="sound.wav">
<text name="name_label">
名前:
</text>
@@ -12,17 +12,9 @@
ビットレート(kbps):
</text>
<radio_group name="bitrate">
- <radio_item name="32">
- 32
- </radio_item>
- <radio_item name="64">
- 64
- </radio_item>
- <radio_item name="96">
- 96
- </radio_item>
- <radio_item name="128">
- 128
- </radio_item>
+ <radio_item name="32" label="32" />
+ <radio_item name="64" label="64" />
+ <radio_item name="96" label="96" />
+ <radio_item name="128" label="128" />
</radio_group>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_statistics.xml b/indra/newview/skins/default/xui/ja/floater_statistics.xml
new file mode 100644
index 0000000000..de83e97b80
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/floater_statistics.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="stats floater" title="統計"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_telehub.xml b/indra/newview/skins/default/xui/ja/floater_telehub.xml
index 9570d4079f..cd590abe3c 100644
--- a/indra/newview/skins/default/xui/ja/floater_telehub.xml
+++ b/indra/newview/skins/default/xui/ja/floater_telehub.xml
@@ -7,10 +7,10 @@
テレハブ未接続
</text>
<text name="help_text_connected">
- [切断]をクリックして削除します。
+ 「切断」をクリックして削除します。
</text>
<text name="help_text_not_connected">
- 物体を選択し[テレハブの接続」をクリックする
+ 物体を選択し「テレハブの接続」をクリックする
</text>
<button label="テレハブの接続" name="connect_btn" />
<button label="切断" name="disconnect_btn" />
@@ -20,7 +20,7 @@
<button label="出現位置を追加" name="add_spawn_point_btn" />
<button label="出現地点を削除" name="remove_spawn_point_btn" />
<text name="spawn_point_help">
- 物体を選択し[追加]をクリックし位置を指定。
+ 物体を選択し「追加」をクリックし位置を指定。
物体を移動または削除できる。
位置はテレハブ・センターが基準の相対位置。
リスト内品目を選択しワールド内位置を示す。
diff --git a/indra/newview/skins/default/xui/ja/floater_tools.xml b/indra/newview/skins/default/xui/ja/floater_tools.xml
index a3d01362a3..477ba2bdcb 100644
--- a/indra/newview/skins/default/xui/ja/floater_tools.xml
+++ b/indra/newview/skins/default/xui/ja/floater_tools.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="toolbox floater" title="">
+<floater name="toolbox floater" title="" short_title="制作">
<button label="" label_selected="" name="button focus" tool_tip="フォーカス"/>
<button label="" label_selected="" name="button move" tool_tip="動かす"/>
<button label="" label_selected="" name="button edit" tool_tip="編集"/>
@@ -7,26 +7,26 @@
<button label="" label_selected="" name="button land" tool_tip="土地"/>
<check_box label="ズーム" name="radio zoom"/>
<check_box label="軌跡(Ctrl)" name="radio orbit"/>
- <check_box label="パン(Ctrl+Shift)" name="radio pan"/>
+ <check_box label="パン(Ctrl+Shift)" name="radio pan"/>
<check_box label="移動" name="radio move"/>
<check_box label="持ち上げる(Ctrl)" name="radio lift"/>
- <check_box label="スピン(Ctrl+Shift)" name="radio spin"/>
+ <check_box label="スピン(Ctrl+Shift)" name="radio spin"/>
<check_box label="位置" name="radio position"/>
<check_box label="回転(Ctrl)" name="radio rotate"/>
- <check_box label="引伸ばす(Ctrl+Shift)" name="radio stretch"/>
+ <check_box label="引伸ばす(Ctrl+Shift)" name="radio stretch"/>
<check_box label="テクスチャーを選択" name="radio select face"/>
<check_box label="リンク部位を編集" name="checkbox edit linked parts"/>
- <text name="text ruler mode" width="120">
+ <text name="text ruler mode" width="88">
ルーラー:
</text>
- <combo_box left_delta="110" name="combobox grid mode" width="60">
+ <combo_box left_delta="60" name="combobox grid mode" width="76">
<combo_box.item name="World" label="世界"/>
<combo_box.item name="Local" label="ローカル"/>
<combo_box.item name="Reference" label="リファレンス"/>
</combo_box>
<check_box label="両側を引伸ばす" left="116" name="checkbox uniform"/>
<check_box label="テクスチャーを引伸ばす" name="checkbox stretch textures"/>
- <check_box label="グリッド使用" left_delta="27" name="checkbox snap to grid"/>
+ <check_box label="グリッド使用" left_delta="27" name="checkbox snap to grid"/>
<button label="オプション" label_selected="オプション" name="Options..."/>
<text name="text status">
移動するにはドラッグ、コピーするにはShiftキーを押しながらドラッグ
@@ -68,10 +68,10 @@
強度
</text>
<text name="obj_count">
- 選択したオブジェクト: [COUNT]
+ 選択オブジェクト:[COUNT]
</text>
<text name="prim_count">
- プリム: [COUNT]
+ プリム:[COUNT]
</text>
<tab_container name="Object Info Tabs" tab_max_width="150" tab_min_width="30">
<panel label="一般" name="General">
@@ -87,14 +87,14 @@
<text name="Creator Name">
Thrax Linden
</text>
- <button label="プロフィール..." label_selected="プロフィール..." name="button creator profile"/>
+ <button label="情報..." label_selected="情報..." name="button creator profile"/>
<text name="Owner:">
オーナー:
</text>
<text name="Owner Name">
Thrax Linden
</text>
- <button label="プロフィール..." label_selected="プロフィール..." name="button owner profile"/>
+ <button label="情報..." label_selected="情報..." name="button owner profile"/>
<text name="Group:">
グループ:
</text>
@@ -108,7 +108,7 @@
<text name="perm_modify">
このオブジェクトは修正できます。
</text>
- <check_box label="グループで共同管理" name="checkbox share with group" tool_tip="グループ・メンバーに対して移動、修正、コピー、削除を許可"/>
+ <check_box label="グループで共同管理" name="checkbox share with group" tool_tip="設定したグループに属するすべてのメンバーとこのオブジェクトの権限を共有します。 役割制限を有効にするには、譲渡する必要があります。"/>
<string name="text deed continued">
譲渡...
</string>
@@ -124,15 +124,9 @@
価格: L$
</text>
<radio_group left="30" name="sale type">
- <radio_item name="Original">
- オリジナル
- </radio_item>
- <radio_item left="82" name="Copy">
- コピー
- </radio_item>
- <radio_item left="148" name="Contents">
- コンテンツ
- </radio_item>
+ <radio_item name="Original" label="オリジナル" />
+ <radio_item left="82" name="Copy" label="コピー" />
+ <radio_item left="148" name="Contents" label="コンテンツ" />
</radio_group>
<text name="Next owner can:">
次のオーナーが実行できる操作:
@@ -186,7 +180,7 @@
権限を設定するには、オブジェクト全体を選択する必要があります。
</string>
<string name="Cost Default">
- 価格: L$
+ 価格: L$
</string>
<string name="Cost Total">
合計価格: L$
@@ -201,7 +195,7 @@
混合販売
</string>
</panel>
- <panel label="オブジェクト" name="Object">
+ <panel label="形状" name="Object">
<text name="select_single">
プリムを1つだけ選択して編集してください
</text>
@@ -337,24 +331,24 @@
オブジェクトの特徴を編集:
</text>
<check_box label="フレキシブル・パス" name="Flexible1D Checkbox Ctrl" tool_tip="Z軸を中心とするオブジェクトの折れ曲がりを有効にする (クライアント側のみ)"/>
- <spinner label="柔軟性" name="FlexNumSections"/>
- <spinner label="重力" name="FlexGravity"/>
- <spinner label="ドラッグ" name="FlexFriction"/>
- <spinner label="風" name="FlexWind"/>
- <spinner label="緊張" name="FlexTension"/>
- <spinner label="X軸方向の力" name="FlexForceX"/>
- <spinner label="Y軸方向の力" name="FlexForceY"/>
- <spinner label="Z軸方向の力" name="FlexForceZ"/>
+ <spinner label="柔軟性" name="FlexNumSections" width="135" label_width="72"/>
+ <spinner label="重力" name="FlexGravity" width="135" label_width="72"/>
+ <spinner label="ドラッグ" name="FlexFriction" width="135" label_width="72"/>
+ <spinner label="風" name="FlexWind" width="135" label_width="72"/>
+ <spinner label="緊張" name="FlexTension" width="135" label_width="72"/>
+ <spinner label="X軸方向の力" name="FlexForceX" width="135" label_width="72"/>
+ <spinner label="Y軸方向の力" name="FlexForceY" width="135" label_width="72"/>
+ <spinner label="Z軸方向の力" name="FlexForceZ" width="135" label_width="72"/>
<check_box label="光" name="Light Checkbox Ctrl" tool_tip="オブジェクトが発光"/>
<text name="label color">
</text>
- <color_swatch label="" name="colorswatch" tool_tip="カラー・ピッカーをクリックして開く"/>
- <spinner label="輝度" name="Light Intensity"/>
- <spinner label="半径" name="Light Radius"/>
- <spinner label="弱まる" name="Light Falloff"/>
+ <color_swatch label="" name="colorswatch" tool_tip="カラー・ピッカーをクリックして開く" left_delta="74"/>
+ <spinner label="輝度" name="Light Intensity" width="135" label_width="72"/>
+ <spinner label="半径" name="Light Radius" width="135" label_width="72"/>
+ <spinner label="弱まる" name="Light Falloff" width="135" label_width="72"/>
</panel>
- <panel label="テクスチャー" name="Texture">
+ <panel label="材質" name="Texture">
<texture_picker label="テクスチャー" name="texture control" tool_tip="写真をクリックして選択"/>
<color_swatch label="色" name="colorswatch" tool_tip="カラー・ピッカーをクリックして開く"/>
<text name="color trans">
@@ -432,11 +426,11 @@
メディア・テクスチャーを揃える
(最初にロードすること)
</text>
- <button bottom="-361" label="揃える" label_selected="揃える" left="155" name="button align"/>
+ <button bottom="-365" label="揃える" label_selected="揃える" left="155" name="button align"/>
</panel>
- <panel label="コンテンツ" name="Contents">
- <button label="新しいスクリプト" label_selected="新しいスクリプト..." name="button new script"/>
- <button label="権限..." name="button permissions"/>
+ <panel label="中身" name="Contents">
+ <button label="新しいスクリプト" label_selected="新しいスクリプト" name="button new script" width="120"/>
+ <button label="権限..." name="button permissions" left_delta="130" width="80"/>
</panel>
</tab_container>
<panel name="land info panel">
@@ -451,7 +445,7 @@
</text>
<button label="土地情報..." label_selected="土地情報..." name="button about land"/>
<check_box label="オーナーを表示" name="checkbox show owners" tool_tip="所有権別に区画を色分けします"/>
- <button label="?" label_selected="?" name="button show owners help"/>
+ <button label="?" label_selected="?" name="button show owners help" left_delta="114"/>
<text name="label_parcel_modify">
区画の編集
</text>
@@ -470,7 +464,7 @@
選択した側をクリックし、ドラッグして引き伸ばす
</string>
<string name="status_move">
- ドラッグし移動、シフトキーを押しながらドラッグしコピー
+ 移動:ドラッグ、コピー:Shiftを押しながらドラッグ
</string>
<string name="status_modifyland">
土地をクリックし、ボタンを押したまま入力して修正変更
@@ -479,7 +473,7 @@
クリックしドラッグして視界を調整
</string>
<string name="status_grab">
- ドラッグで移動、Ctrlで持ち上げ、Ctrl-Shiftで回転
+ 移動:ドラッグ、持ち上げ:Ctrl、回転:Ctrl+Shift
</string>
<string name="status_place">
インワールドでクリックして作成
diff --git a/indra/newview/skins/default/xui/ja/floater_tos.xml b/indra/newview/skins/default/xui/ja/floater_tos.xml
index 31e3a24045..c0d1af1d6a 100644
--- a/indra/newview/skins/default/xui/ja/floater_tos.xml
+++ b/indra/newview/skins/default/xui/ja/floater_tos.xml
@@ -3,12 +3,8 @@
<button label="続行" label_selected="続行" name="Continue" />
<button label="取り消し" label_selected="取り消し" name="Cancel" />
<radio_group name="tos_agreement">
- <radio_item name="radio_disagree">
- 利用規約に同意しません
- </radio_item>
- <radio_item name="radio_agree">
- 利用規約に同意します
- </radio_item>
+ <radio_item name="radio_disagree" label="利用規約に同意しません" />
+ <radio_item name="radio_agree" label="利用規約に同意します" />
</radio_group>
<text name="tos_title">
利用規約
diff --git a/indra/newview/skins/default/xui/ja/floater_world_map.xml b/indra/newview/skins/default/xui/ja/floater_world_map.xml
index bc60bda694..c6385980ef 100644
--- a/indra/newview/skins/default/xui/ja/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/ja/floater_world_map.xml
@@ -1,88 +1,58 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="worldmap" title="世界地図">
<tab_container name="maptab">
- <panel label="オブジェクト" name="objects_mapview" />
- <panel label="地形" name="terrain_mapview" />
+ <panel label="オブジェクト" name="objects_mapview"/>
+ <panel label="地形" name="terrain_mapview"/>
</tab_container>
- <text name="land_for_sale_label">
- 売出し中の土地
- </text>
- <text name="auction_label">
- オークション
- </text>
<text name="you_label">
あなた
</text>
<text name="home_label">
ホーム
</text>
- <button label="ホームへ" label_selected="ホームへ" name="Go Home"
- tool_tip="自分のホームにテレポート" />
- <text name="classifieds_label">
- クラシファイド広告
- </text>
- <check_box label=" " name="class_chk" />
- <text name="person_label">
- 人
- </text>
- <check_box label=" " name="people_chk" />
- <text name="infohub_label">
- インフォハブ
- </text>
- <check_box label=" " name="infohub_chk" />
- <text name="telehub_label">
- テレハブ
- </text>
- <check_box label=" " name="telehubchk" />
- <text name="popular_label">
- 人気
+ <text name="auction_label">
+ オークション
</text>
- <check_box label=" " name="popular_chk" />
- <text left_delta="15" name="land_for_sale_label2">
+ <icon left="1123" name="square"/>
+ <text left_delta="20" name="land_for_sale_label">
売出し中の土地
</text>
- <check_box label=" " left_delta="85" name="land_for_sale_chk" />
+ <button label="ホームへ" label_selected="ホームへ" name="Go Home" tool_tip="自分のホームにテレポート"/>
+ <check_box label="住人" name="people_chk"/>
+ <check_box label="インフォハブ" name="infohub_chk"/>
+ <check_box label="テレハブ" name="telehubchk"/>
+ <check_box label="売り地" name="land_for_sale_chk"/>
<text name="events_label">
- イベント
+ イベント:
</text>
- <check_box label=" " name="event_chk" />
-
- <check_box label="" name="event_mature_chk" />
- <combo_box label="オンラインのフレンド" name="friend combo"
- tool_tip="Friend to Show on Map">
+ <check_box label="PG" name="event_chk"/>
+ <check_box label="Mature" name="event_mature_chk"/>
+ <check_box label="Adult" name="event_adult_chk"/>
+ <combo_box label="オンラインのフレンド" name="friend combo" tool_tip="地図に表示されたフレンド">
<combo_box.item name="none_selected" label="オンラインのフレンド" />
</combo_box>
- <combo_box label="ランドマーク" name="landmark combo"
- tool_tip="Landmark to Show on Map">
+ <combo_box label="ランドマーク" name="landmark combo" tool_tip="地図に表示されたランドマーク">
<combo_box.item name="none_selected" label="ランドマーク" />
</combo_box>
- <line_editor label="地域名で検索" name="location"
- tool_tip="地域名を入力してください。" />
- <button label="検索" name="DoSearch" tool_tip="地域検索" />
+ <line_editor label="地域名で検索" name="location" tool_tip="地域名を入力してください。"/>
+ <button label="検索" name="DoSearch" tool_tip="地域検索"/>
<text name="search_label">
検索結果:
</text>
<scroll_list name="search_results">
- <column label="" name="icon" />
- <column label="" name="sim_name" />
+ <column label="" name="icon"/>
+ <column label="" name="sim_name"/>
</scroll_list>
<text name="location_label">
- ロケーション:
- </text>
- <spinner name="spin x" tool_tip="地図上に表示される位置のX座標" />
- <spinner name="spin y" tool_tip="地図上に表示される位置のY座標" />
- <spinner name="spin z" tool_tip="地図上に表示される位置のZ座標" />
- <button label="テレポート" label_selected="テレポート" name="Teleport"
- tool_tip="選択されたロケーションにテレポート" />
- <button label="目的地を表示" label_selected="目的地を表示"
- name="Show Destination"
- tool_tip="選択したロケーションを地図の中心にする" />
- <button label="クリア" label_selected="クリア" name="Clear"
- tool_tip="トラッキングを停止" />
- <button label="現在地を表示" label_selected="現在地を表示"
- name="Show My Location"
- tool_tip="あなたのアバターのロケーションを地図の中心にする" />
- <button label="SLURLをクリップボードにコピー" name="copy_slurl"
- tool_tip="現在地をSLURLとしてコピーし、ウェブで使用" />
- <slider label="ズーム" name="zoom slider" />
+ 位置:
+ </text>
+ <spinner name="spin x" tool_tip="地図上に表示される位置のX座標"/>
+ <spinner name="spin y" tool_tip="地図上に表示される位置のY座標"/>
+ <spinner name="spin z" tool_tip="地図上に表示される位置のZ座標"/>
+ <button label="テレポート" label_selected="テレポート" name="Teleport" tool_tip="選択されたロケーションにテレポート"/>
+ <button label="目的地を表示" label_selected="目的地を表示" name="Show Destination" tool_tip="選択したロケーションを地図の中心にする"/>
+ <button label="クリア" label_selected="クリア" name="Clear" tool_tip="トラッキングを停止"/>
+ <button label="現在地を表示" label_selected="現在地を表示" name="Show My Location" tool_tip="あなたのアバターのロケーションを地図の中心にする"/>
+ <button label="SLURLをクリップボードにコピー" name="copy_slurl" tool_tip="現在地をSLURLとしてコピーし、ウェブで使用"/>
+ <slider label="ズーム" name="zoom slider"/>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/menu_login.xml b/indra/newview/skins/default/xui/ja/menu_login.xml
index 1ebc9d1c88..906822e54b 100644
--- a/indra/newview/skins/default/xui/ja/menu_login.xml
+++ b/indra/newview/skins/default/xui/ja/menu_login.xml
@@ -7,7 +7,7 @@
<menu_item_call label="環境設定..." name="Preferences..." />
</menu>
<menu label="ヘルプ" name="Help">
- <menu_item_call label="セカンドライフヘルプ" name="Second Life Help" />
+ <menu_item_call label="Second Lifeヘルプ" name="Second Life Help" />
<menu_item_call label="Second Lifeについて..." name="About Second Life..." />
</menu>
</menu_bar>
diff --git a/indra/newview/skins/default/xui/ja/menu_mini_map.xml b/indra/newview/skins/default/xui/ja/menu_mini_map.xml
new file mode 100644
index 0000000000..c8828a50be
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_mini_map.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="popup">
+ <menu_item_call label="ズーム(近)" name="Zoom Close"/>
+ <menu_item_call label="ズーム(中)" name="Zoom Medium"/>
+ <menu_item_call label="ズーム(遠)" name="Zoom Far"/>
+ <menu_item_call label="追跡をやめる" name="Stop Tracking"/>
+ <menu_item_call label="プロフィール..." name="Profile"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_viewer.xml b/indra/newview/skins/default/xui/ja/menu_viewer.xml
index 9d18436f1e..c994995ed2 100644
--- a/indra/newview/skins/default/xui/ja/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/ja/menu_viewer.xml
@@ -4,7 +4,7 @@
<tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~"/>
<menu label="アップロード" name="upload">
<menu_item_call label="画像 (L$[COST])..." name="Upload Image"/>
- <menu_item_call label="アニメーション (L$[COST])..." name="Upload Sound"/>
+ <menu_item_call label="サウンド (L$[COST])..." name="Upload Sound"/>
<menu_item_call label="アニメーション (L$[COST])..." name="Upload Animation"/>
<menu_item_call label="一括 (ファイルにつきL$[COST])..." name="Bulk Upload"/>
<menu_item_separator label="-----------" name="separator"/>
@@ -83,6 +83,7 @@
<menu_item_separator label="-----------" name="separator3"/>
<menu_item_check label="地域の統計情報" name="Statistics Bar"/>
<menu_item_check label="土地の境界線" name="Property Lines"/>
+ <menu_item_check label="立入禁止ライン" name="Banlines"/>
<menu_item_check label="土地オーナー" name="Land Owners"/>
<menu_item_separator label="-----------" name="separator4"/>
<menu label="ヒントのポップアップ" name="Hover Tips">
@@ -170,7 +171,6 @@
<menu_item_call label="選択範囲にズームイン" name="Zoom to Selection"/>
<menu_item_call label="オブジェクトを購入" name="Menu Object Take"/>
<menu_item_call label="コピーを取る" name="Take Copy"/>
- <menu_item_call label="オブジェクトを持ち物に戻して保存" name="Save Object Back to My Inventory"/>
<menu_item_call label="オブジェクトをオブジェクト・コンテンツに戻して保存" name="Save Object Back to Object Contents"/>
<menu_item_separator label="-----------" name="separator6"/>
<menu_item_call label="スクリプト警告/エラー・ウィンドウを表示" name="Show Script Warning/Error Window"/>
@@ -188,7 +188,9 @@
<menu_item_separator label="-----------" name="separator"/>
<menu_item_call label="Linden公式ブログ..." name="Official Linden Blog..."/>
<menu_item_separator label="-----------" name="separator2"/>
- <menu_item_call label="スクリプト・ポータル..." name="Scripting Portal..."/>
+ <menu_item_call label="スクリプト・ポータル..." name="Scripting Portal...">
+ <on_click name="ScriptingPortal_url" userdata="WebLaunchLSLWiki,http://wiki.secondlife.com/wiki/LSL_Portal/ja" />
+ </menu_item_call>
<menu_item_separator label="-----------" name="separator3"/>
<menu_item_call label="嫌がらせの報告..." name="Report Abuse..."/>
<menu_item_call label="衝突の記録..." name="Bumps, Pushes &amp;amp; Hits..."/>
@@ -196,9 +198,13 @@
<menu_item_separator label="-----------" name="separator7"/>
<menu label="バグの報告" name="Bug Reporting">
<menu_item_call label="パブリック問題トラッカー..." name="Public Issue Tracker..."/>
- <menu_item_call label="パブリック問題トラッカー ヘルプ..." name="Publc Issue Tracker Help..."/>
+ <menu_item_call label="パブリック問題トラッカー ヘルプ..." name="Publc Issue Tracker Help...">
+ <on_click name="PublicIssueTrackerHelp_url" userdata="WebLaunchPublicIssueHelp,http://wiki.secondlife.com/wiki/Issue_tracker/ja" />
+ </menu_item_call>
<menu_item_separator label="-----------" name="separator7"/>
- <menu_item_call label="バグの報告 101..." name="Bug Reporing 101..."/>
+ <menu_item_call label="バグの報告 101..." name="Bug Reporing 101...">
+ <on_click name="BugReporting101_url" userdata="WebLaunchBugReport101,http://wiki.secondlife.com/wiki/Bug_Reporting_101"/>
+ </menu_item_call>
<menu_item_call label="セキュリティ問題..." name="Security Issues...">
<on_click name="SecurityIssues_url" userdata="WebLaunchSecurityIssues,http://wiki.secondlife.com/wiki/Security_issues/ja"/>
</menu_item_call>
diff --git a/indra/newview/skins/default/xui/ja/notifications.xml b/indra/newview/skins/default/xui/ja/notifications.xml
index 4a3a195080..c20a4f50b4 100644
--- a/indra/newview/skins/default/xui/ja/notifications.xml
+++ b/indra/newview/skins/default/xui/ja/notifications.xml
@@ -1,5947 +1,3300 @@
-<?xml version="1.0" ?><notifications>
-
- <global name="skipnexttime">
-
- 今後は表示しない
- </global>
-
- <global name="alwayschoose">
-
- 常にこのオプションを選択
- </global>
-
- <template name="okbutton">
- <form>
- <button
- name="OK"
- text="$yestext"/>
- </form>
- </template>
-
- <template name="okignore">
- <form>
- <button
- name="OK"
- text="$yestext"/>
- <ignore text="$ignoretext"/>
- </form>
- </template>
-
- <template name="okcancelbuttons">
- <form>
- <button
- name="OK"
- text="$yestext"/>
- <button
- name="Cancel"
- text="$notext"/>
- </form>
- </template>
-
- <template name="okcancelignore">
- <form>
- <button
- name="OK"
- text="$yestext"/>
- <button
- name="Cancel"
- text="$notext"/>
- <ignore text="$ignoretext"/>
- </form>
- </template>
-
- <template name="okhelpbuttons">
- <form>
- <button
- name="OK"
- text="$yestext"/>
- <button
- name="Help"
- text="$helptext"/>
- </form>
- </template>
-
- <template name="yesnocancelbuttons">
- <form>
- <button
- name="Yes"
- text="$yestext"/>
- <button
- name="No"
- text="$notext"/>
- <button
- name="Cancel"
- text="$canceltext"/>
- </form>
- </template>
-
- <notification
- functor="GenericAcknowledge"
-
- name="MissingAlert"
- >
-「[_NAME]」がnotifications.xmlに含まれていません!
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="FloaterNotFound"
- >
-フロータ・エラー:下記のコントロールが見つかりませんでした:
-[CONTROLS]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="TutorialNotFound"
- >
-現在利用可能なチュートリアルはありません。
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GenericAlert"
- >
-[MESSAGE]
- </notification>
-
- <notification
-
- name="GenericAlertYesCancel"
- >
-[MESSAGE]
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="はい"/>
- </notification>
-
- <notification
-
- name="WearableSave"
- >
-現在の衣服/ボディーパーツの変更を保存しますか?
- <usetemplate
- canceltext="キャンセル"
- name="yesnocancelbuttons"
- notext="保存しない"
- yestext="保存"/>
- </notification>
-
- <notification
-
- name="CompileQueueSaveText"
- >
-次の理由で、スクリプト用テキストのアップロード時に問題が起こりました。 [REASON] 後でもう一度試してください。
- </notification>
-
- <notification
-
- name="CompileQueueSaveBytecode"
- >
-次の理由で、コンパイルしたスクリプトのアップロード時に問題が起こりました。 [REASON]後でもう一度試してください。
- </notification>
-
- <notification
-
- name="WriteAnimationFail"
- >
-アニメーションデータの書き込みに問題があります。後でもう一度お試しください。
- </notification>
-
- <notification
-
- name="UploadAuctionSnapshotFail"
- >
-次の理由で、オークションのスナップショットのアップロード時に問題が起こりました。 [REASON]
- </notification>
-
- <notification
-
- name="UnableToViewContentsMoreThanOne"
- >
-一度に複数のアイテムのコンテンツは表示できません。
-選択するアイテムを1つだけにして、もう一度試してください。
- </notification>
-
- <notification
-
- name="SaveClothingBodyChanges"
- >
-衣服/身体部位に対する変更をすべて保存しますか?
- <usetemplate
- canceltext="取り消し"
- name="yesnocancelbuttons"
- notext="保存しない"
- yestext="すべて保存"/>
- </notification>
-
- <notification
-
- name="GrantModifyRights"
- >
-他の住人に変更権限を与えると、その人はあなたが所有している
-すべてのオブジェクトを変更、削除、または取得することができるようになります。この許可を与えるときは細心の注意を払ってください。
-[FIRST_NAME] [LAST_NAME]に対して変更権限を与えますか?
- <usetemplate
- name="okcancelbuttons"
- notext="いいえ"
- yestext="はい"/>
- </notification>
-
- <notification
-
- name="GrantModifyRightsMultiple"
- >
-変更権限を与えると、その人はあなたが作成した全てのオブジェクトを
-変更することができます。この許可を与えるときには細心の注意を
-払ってください。
-選択した住人に変更権限を与えますか?
- <usetemplate
- name="okcancelbuttons"
- notext="いいえ"
- yestext="はい"/>
- </notification>
-
- <notification
-
- name="RevokeModifyRights"
- >
-[FIRST_NAME] [LAST_NAME]に対して変更権限を取り消しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="いいえ"
- yestext="はい"/>
- </notification>
-
- <notification
-
- name="RevokeModifyRightsMultiple"
- >
-選択した住人から変更権限を取り下げますか?
- <usetemplate
- name="okcancelbuttons"
- notext="いいえ"
- yestext="はい"/>
- </notification>
-
- <notification
-
- name="UnableToCreateGroup"
- >
-グループを作成できません。
-[MESSAGE]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="PanelGroupApply"
- >
-[NEEDS_APPLY_MESSAGE]
-[WANT_APPLY_MESSAGE]
- <usetemplate
- canceltext="取り消し"
- name="yesnocancelbuttons"
- notext="変更を無視"
- yestext="変更を適用"/>
- </notification>
-
- <notification
-
- name="MustSpecifyGroupNoticeSubject"
- >
-グループ通知の送信には、件名の記入が必要です。
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="AddGroupOwnerWarning"
- >
-あなたは [ROLE_NAME]の役割にメンバーを加えようとしています。
-任命されたメンバーが自ら退任しない
-限り、彼らを役柄から削除できません。
-操作を続行しますか?
- <usetemplate
- ignoretext="オーナーの役割にグループ・メンバーを加えるとき"
- name="okcancelignore"
- notext="いいえ"
- yestext="はい"/>
- </notification>
-
- <notification
-
- name="AssignDangerousActionWarning"
- >
-あなたは[ROLE_NAME]に [ACTION_NAME]の能力を
-加えようとしています。
-
- *警告*
- この能力を持つ役割のメンバーは、
- 自分と他のメンバーに現在より強力な権限を割り当て、
-自分をオーナーとほぼ同様の立場に
-任命することもできるようになります。 この行為の意味をよく理解してから
-実行してください。
-
-この能力を[ROLE_NAME]に加えますか?
- <usetemplate
- name="okcancelbuttons"
- notext="いいえ"
- yestext="はい"/>
- </notification>
-
- <notification
-
- name="AssignDangerousAbilityWarning"
- >
-あなたは[ROLE_NAME]に [ACTION_NAME]の能力を
-加えようとしています。
-
- *警告*
- この能力をもつ役割のメンバーは、自分と他のメンバーにすべての
-能力を割り当て、自分をオーナーとほぼ同様の立場に
-任命できます。
-
-この能力を[ROLE_NAME]に加えますか?
- <usetemplate
- name="okcancelbuttons"
- notext="いいえ"
- yestext="はい"/>
- </notification>
-
- <notification
-
- name="ClickPublishHelpLand"
- >
-「検索で公開」を選択
-このボックスにチェックすると表示:
-- 検索結果におけるこの区画
-- この区画のパブリック・オブジェクト
-- ウェブ検索におけるこの区画
- </notification>
-
- <notification
-
- name="ClickPublishHelpLandDisabled"
- >
-この区画は検索を禁ずる地域にあるため、
-この区画を検索に表示することはできません。
- </notification>
-
- <notification
-
- name="ClickPublishHelpAvatar"
- >
-「検索に表示」を選択すると表示:
-- 検索結果における自分のプロフィール
-- パブリック・グループ・ページにおける自分のプロフィールへのリンク
- </notification>
-
- <notification
-
- name="ClickPartnerHelpAvatar"
- >
-[SECOND_LIFE]のウェブ・サイトから、他の住人へのプロポーズ、パートナー解消ができます。
-
-ウェブ・サイトに行って パートナーに関する情報を取得しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="ページに移動"/>
- </notification>
-
- <notification
-
- name="ClickWebProfileHelpAvatar"
- >
-この住人がウェブ・プロフィールURLを設定している場合は、以下のことが可能です。
- * 「ロード」をクリックし、このウェブ・タブ内でページを表示
- * 「ロード」>「外部ブラウザ」 をクリックし、ディフォルトのウェブ・ブラウザでページを表示
- * 「ロード」>「ホームURL」 をクリックし、他のページからこの住人のウェブ・プロフィールに戻る
-
-自分のプロフィールに任意のURLを入力しOKをクリックして、ウェブ・プロフィールとして設定することができます。
-それを見た他の住人がそのサイトを訪れることができます。
- </notification>
-
- <notification
-
- name="JoinGroupCanAfford"
- >
-このグループに参加するには、L$[COST]かかります。
-続行しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="参加"/>
- </notification>
-
- <notification
-
- name="JoinGroupCannotAfford"
- >
-このグループに加入するには、L$[COST]必要です。
-L$が不足しているのでこのグループに参加することができません。
- </notification>
-
- <notification
-
- name="LandBuyPass"
- >
-L$[COST]で [TIME] 時間にわたって、この土地[PARCEL_NAME]に入ることができます。パスを購入しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SalePriceRestriction"
- >
-不特定の人に売却する場合には、売却価格はL$0以上に設定する必要があります。
-売却価格をL$0に設定する場合は、売却する個人を選択してください。
- </notification>
-
- <notification
-
- name="ConfirmLandSaleChange"
-
- >
-選択された[LAND_SIZE]平方メートルの土地は、売り出し中に設定されています。
-売却価格L$[SALE_PRICE]で、[NAME]に売却を認可します。
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmLandSaleToAnyoneChange"
- >
-注:「誰にでも売却する」をクリックすると、あなたの土地は、Second Lifeのコミュニティのどこからでも(この地域にないコミュニティを含む)購入できるようになります。
-
-選択された[LAND_SIZE]平方メートルの土地は、売り出し中に設定されています。
-売却価格L$[SALE_PRICE]で、[NAME]に売却を認可します。
- <usetemplate
- name="okcancelbuttons"
- notext="キャンセル"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsDeededToGroup"
- >
-この区画のグループ[NAME]共有のすべてのオブジェクトを、以前のオーナーの持ち物に戻そうとしています。
-操作を続行しますか?
-
-*警告* これにより、
-そのグループに譲渡された
-譲渡不可能なオブジェクトは削除されます!
-オブジェクト: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsOwnedByUser"
- >
-この区画で、
-住人[NAME]が所有する全てのオブジェクトを
-彼らの持ち物に本当に返却してもよいですか?
-
-オブジェクト: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsOwnedBySelf"
- >
-この土地区画内のオブジェクトのうち、
-あなたが所有するすべてのオブジェクトを
-あなたの持ち物に戻そうとしています。操作を続行しますか?
-
-オブジェクト: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsNotOwnedBySelf"
- >
-この土地区画内のオブジェクトのうち、
-あなたが所有していないすべてのオブジェクトをそれぞれのオーナーの持ち物に戻そうとしています。
-操作を続行しますか?グループに譲渡された譲渡可能オブジェクトは、以前のオーナーに返却されます。
-
-*警告* これにより、
-そのグループに譲渡された
-譲渡不可能なオブジェクトは削除されます!
-オブジェクト: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsNotOwnedByUser"
- >
-この土地区画内のオブジェクトのうち、
-[NAME]が所有していないすべてのオブジェクトをそれぞれのオーナーの持ち物に返却しようとしています。
-操作を続行しますか?グループに譲渡された譲渡可能オブジェクトは、以前のオーナーに返却されます。
-
-*警告* これにより、
-そのグループに譲渡された
-譲渡不可能なオブジェクトは削除されます!
-オブジェクト: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnAllTopObjects"
- >
-全てのリストされたオブジェクトを所有者に本当に返却しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="DisableAllTopObjects"
- >
-この地域内のすべてのオブジェクトを無効にしようとしています。操作を続行しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsNotOwnedByGroup"
- >
-この土地の区画上のオブジェクトのうち、グループ[NAME]
-との間で共有していないオブジェクトをオーナーに返却しますか?
-
-オブジェクト: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="UnableToDisableOutsideScripts"
- >
-スクリプトを無効にできません。
-この地域全体が「ダメージ有効」に設定されています。
-武器を使用するにはスクリプトの実行を許可する必要があります。
- </notification>
-
- <notification
-
- name="MustBeInParcel"
- >
-着地点を設定するには、この区画の内側に
-立ってください。
- </notification>
-
- <notification
-
- name="PromptRecipientEmail"
- >
-受信者の有効なEメールアドレスを入力してください。
- </notification>
-
- <notification
-
- name="PromptSelfEmail"
- >
-あなたのEメール・アドレスを入力してください。
- </notification>
-
- <notification
-
- name="PromptMissingSubjMsg"
- >
-デフォルトの件名またはメッセージを付けて、スナップショットを送信しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="キャンセル"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ErrorProcessingSnapshot"
- >
-スナップショット・データの処理エラー
- </notification>
-
- <notification
-
- name="ErrorEncodingSnapshot"
- >
-スナップショットのエンコード化でエラーが出ました!
- </notification>
-
- <notification
-
- name="ErrorUploadingPostcard"
- >
-次の理由で、スナップショットの送信時に問題が起こりました: [REASON]
- </notification>
-
- <notification
-
- name="ErrorUploadingReportScreenshot"
- >
-次の理由で、レポートのスクリーンショットのアップロード時に問題が起こりました。 [REASON]
- </notification>
-
- <notification
-
- name="MustAgreeToLogIn"
- >
-[SECOND_LIFE]へのログインを続けるには、利用規約に同意してください。
- </notification>
-
- <notification
-
- name="CouldNotPutOnOutfit"
- >
-服装を装着できません。
-服装フォルダに衣服、身体部位、付属品がありません。
- </notification>
-
- <notification
-
- name="CannotWearTrash"
- >
-ゴミ箱にある服やボディーパーツの着用はできません。
- </notification>
-
- <notification
-
- name="CannotWearInfoNotComplete"
- >
-まだ読み込まれていないため、そのアイテムを装着できません。後でやり直してください。
- </notification>
-
- <notification
-
- name="MustHaveAccountToLogIn"
- >
-おっと! 記入漏れがありますよ。
-アバターのファーストネームとラストネームの両方を入力する必要があります。
-
-[SECOND_LIFE]に入るには、アカウントが必要です。 アカウントを作成しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="もう一度試す"
- yestext="新しいアカウントを作成"/>
- </notification>
-
- <notification
-
- name="AddClassified"
- >
-検索ディレクトリの「クラシファイド」セクションに、
-クラシファイド広告が1週間掲載されます。
-広告を記入後、「公開」をクリックし、ディレクトリに
-追加します。
-「公開」をクリックすると、支払金額を尋ねられます。
-多く払うほど、広告がクラシファイド・リストとキーワード検索
-の上位に表示されます。
- <usetemplate
- ignoretext="新しいクラシファイド広告を加えるとき"
- name="okcancelignore"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="DeleteClassified"
- >
-クラシファイド広告[NAME]の削除をしますか?
-支払い済みの料金は返金されません。
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ClassifiedSave"
- >
-クラシファイド広告[NAME]への変更を保存しますか?
- <usetemplate
- canceltext="キャンセル"
- name="yesnocancelbuttons"
- notext="保存しない"
- yestext="保存"/>
- </notification>
-
- <notification
-
- name="DeleteAvatarPick"
- >
-ピック[PICK]を削除しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="PromptGoToEventsPage"
- >
-[SECOND_LIFE]イベント・ウェブ・ページに移動しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SelectProposalToView"
- >
-表示する提案を選択してください。
- </notification>
-
- <notification
-
- name="SelectHistoryItemToView"
- >
-表示する履歴アイテムを選択してください。
- </notification>
-
- <notification
-
- name="ResetShowNextTimeDialogs"
- >
-これらのポップアップ全てを再度有効化しますか?(以前「今後は表示しない」と指定しています)
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SkipShowNextTimeDialogs"
- >
-スキップ可能なポップアップ全てを無効化しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="キャンセル"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CacheWillClear"
- >
-[SECOND_LIFE]の再起動後にキャッシュがクリアされます。
- </notification>
-
- <notification
-
- name="CacheWillBeMoved"
- >
-[SECOND_LIFE]の再起動後にキャッシュが移動されます。
-メモ:これによりキャッシュがクリアされます。
- </notification>
-
- <notification
-
- name="ChangeConnectionPort"
- >
-ポートの設定は、[SECOND_LIFE]の再起動後に有効になります。
- </notification>
-
- <notification
-
- name="ChangeSkin"
- >
-新しいスキンは[SECOND_LIFE]を再起動すると現れます
- </notification>
-
- <notification
-
- name="GoToAuctionPage"
- >
-[SECOND_LIFE]ウェブ・ページに移動し、 入札あるいはオークションの詳細を確認しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SaveChanges"
- >
-変更を保存しますか?
- <usetemplate
- canceltext="取り消し"
- name="yesnocancelbuttons"
- notext="保存しない"
- yestext="保存"/>
- </notification>
-
- <notification
-
- name="GestureSaveFailedTooManySteps"
- >
-ジェスチャーの保存に失敗しました。
-ステップが多すぎます。
-ステップをいくつか削除してから再保存してください
- </notification>
-
- <notification
-
- name="GestureSaveFailedTryAgain"
- >
-ジェスチャーの保存に失敗しました。少し待ってからもう一度試してください。
- </notification>
-
- <notification
-
- name="GestureSaveFailedObjectNotFound"
- >
-ジェスチャーの保存に失敗しました。オブジェクト、または関連するオブジェクト持ち物が見つかりません。
-オブジェクトが範囲内に存在しないか、または削除された可能性があります。
- </notification>
-
- <notification
-
- name="GestureSaveFailedReason"
- >
-次の理由で、ジェスチャーの保存時に問題が起こりました。 [REASON]。 後でもう一度試してください。
- </notification>
-
- <notification
-
- name="SaveNotecardFailObjectNotFound"
- >
-ノートカードの保存に失敗しました。オブジェクト、または関連するオブジェクト持ち物が見つかりません。
-オブジェクトが範囲内に存在しないか、または削除された可能性があります。
- </notification>
-
- <notification
-
- name="SaveNotecardFailReason"
- >
-次の理由で、ノートカードの保存時に問題が起こりました。 [REASON]。 後でもう一度試してください。
- </notification>
-
- <notification
-
- name="ScriptCannotUndo"
- >
-あなたのスクリプトのバージョンでは、変更を元に戻すことはできませんでした。
-サーバーの最新保存バージョンをロードしますか?
-(**警告**:この操作は元に戻すことができません)
- <usetemplate
- name="okcancelbuttons"
- notext="キャンセル"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SaveScriptFailReason"
- >
-次の理由で、スクリプトの保存に問題が起こりました。 [REASON]。 後でもう一度試してください。
- </notification>
-
- <notification
-
- name="SaveScriptFailObjectNotFound"
- >
-スクリプトの保存に失敗しました。スクリプトが入ったオブジェクトが見つかりません。
-オブジェクトは範囲外か、または削除されているかもしれません。
- </notification>
-
- <notification
-
- name="SaveBytecodeFailReason"
- >
-次の理由で、コンパイルしたスクリプトの保存時に問題が起こりました。 [REASON]。 後でもう一度試してください。
- </notification>
-
- <notification
-
- name="CouldNotStartStopScript"
- >
-スクリプトの起動または停止に失敗しました。スクリプトが格納されているオブジェクトが見つかりません。
-オブジェクトが範囲内に存在しないか、または削除された可能性があります。
- </notification>
-
- <notification
-
- name="CannotDownloadFile"
- >
-ファイルをダウンロードできません。
- </notification>
-
- <notification
-
- name="CannotWriteFile"
- >
-ファイル[[FILE]]を書き込めません。
- </notification>
-
- <notification
-
- name="UnsupportedHardware"
- >
-警告: あなたのシステムは Second Life を使用するために必要な必須動作環境の条件を満たしていません。 Second Life をこのままご使用になると、不十分なパフォーマンスしか得られないおそれがあります。 また、サポート外のシステム構成でご使用の場合、テクニカルサポートをご利用いただくことができません。
-
- 必須動作環境の条件
-[_URL] にアクセスして、さらに詳しい情報をご覧になりますか?
- <url option="0" name="url">
-
- http://secondlife.com/support/sysreqs.php?lang=ja
- </url>
- <usetemplate
- ignoretext="サポート外のハードウェアの検出時"
- name="okcancelignore"
- notext="いいえ"
- yestext="はい"/>
- </notification>
-
- <notification
-
- name="UnknownGPU"
- >
-お使いのシステムには、現時点では不明なグラフィック・カードが搭載されています。
-これは、当社による動作テストが行われていない新しいハードウェアが使用されている場合がほとんどです。 Second Lifeはほぼ間違いなく正常に動作しますが、必要に応じたグラフィック設定の調整が必要になる場合があります。
-(「編集」>「環境設定」>「グラフィック」)。
- <form name="form">
- <ignore name="ignore" text="不明なグラフィック・カードの検出時"/>
- </form>
- </notification>
-
- <notification
-
- name="DisplaySettingsNoShaders"
- >
-[SECOND_LIFE] は、グラフィック・ドライバの初期化中にクラッシュしました。
-一般的なドライバ・エラーを回避するため、「グラフィックの品質」は「低」に設定されます。
-これにより、いくつかのグラフィックス機能は無効になります。
-グラフィックカード・ドライバのアップデートをお勧めします。
-「グラフィックの品質」は「環境設定」>「グラフィック」から上げることができます。
- </notification>
-
- <notification
-
- name="RegionNoTerraforming"
- >
-この地域[REGION] は、テラフォーミングができません。
- </notification>
-
- <notification
-
- name="CannotCopyWarning"
- >
-あなたはこのアイテムのコピーを
-許されていないので、人にあげると
-持ち物から失われます。 本当に
-これをあげたいですか?
- <usetemplate
- name="okcancelbuttons"
- notext="いいえ"
- yestext="はい"/>
- </notification>
-
- <notification
-
- name="CannotGiveItem"
- >
-持ち物のアイテムを渡せません。
- </notification>
-
- <notification
-
- name="TransactionCancelled"
- >
-取引がキャンセルされました。
- </notification>
-
- <notification
-
- name="TooManyItems"
- >
-一度のインベントリ交換で、42以上のアイテムは送れません。
- </notification>
-
- <notification
-
- name="NoItems"
- >
-選択したアイテムを譲渡できる権限がありません。
- </notification>
-
- <notification
-
- name="CannotCopyCountItems"
- >
-あなたは選択されたアイテムの[COUNT]のコピーを
-許されていません。 これらのアイテムはあなたの
-持ち物から失われます。
-本当にアイテムをあげたいですか?
- <usetemplate
- name="okcancelbuttons"
- notext="いいえ"
- yestext="はい"/>
- </notification>
-
- <notification
-
- name="CannotGiveCategory"
- >
-選択したフォルダを譲渡できる権限
-がありません
- </notification>
-
- <notification
-
- name="FreezeAvatar"
- >
-このアバターをフリーズしますか?
-アバターは一時的に動けなくなり、
-チャットなど、この世界に対する関わりを持つことができなくなります。
- <usetemplate
- canceltext="取り消し"
- name="yesnocancelbuttons"
- notext="解凍"
- yestext="フリーズ"/>
- </notification>
-
- <notification
-
- name="FreezeAvatarFullname"
- >
-[AVATAR_NAME]をフリーズしますか?
-フリーズされた人は一時的に動けなくなり、チャットなど、この世界に対する関わりを持つことができなくなります。
- <usetemplate
- canceltext="キャンセル"
- name="yesnocancelbuttons"
- notext="解凍"
- yestext="フリーズ"/>
- </notification>
-
- <notification
-
- name="EjectAvatarFullname"
- >
-あなたの土地から[AVATAR_NAME]を追放しますか?
- <usetemplate
- canceltext="キャンセル"
- name="yesnocancelbuttons"
- notext="追放と禁止"
- yestext="追放"/>
- </notification>
-
- <notification
-
- name="EjectAvatarNoBan"
- >
-このアバターをあなたの土地から追放しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="キャンセル"
- yestext="追放"/>
- </notification>
-
- <notification
-
- name="EjectAvatarFullnameNoBan"
- >
-[AVATAR_NAME] をあなたの土地から追放しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="キャンセル"
- yestext="追放"/>
- </notification>
-
- <notification
-
- name="AcquireErrorTooManyObjects"
- >
-取得エラー:選択したオブジェクトの数が多すぎます。
- </notification>
-
- <notification
-
- name="AcquireErrorObjectSpan"
- >
-取得エラー:オブジェクトが複数の地域にまたがって存在しています。
-取得するオブジェクトは、すべて同じ地域内に移動させてください。
- </notification>
-
- <notification
-
- name="PromptGoToCurrencyPage"
- >
-[EXTRA]
-
-[URL]に移動して貨幣購入に関する情報を確認しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="UnableToLinkObjects"
- >
-これらの[COUNT]オブジェクトをリンクできません。
-最大[MAX]オブジェクトをリンクすることができます。
- </notification>
-
- <notification
-
- name="CannotLinkIncompleteSet"
- >
-セットとして揃っているオブジェクトのみリンクできます。複数の
-オブジェクトを選択してください。
- </notification>
-
- <notification
-
- name="CannotLinkModify"
- >
-すべてのオブジェクトに対する修正許可があなたにないため、
-リンクできません。
-
-オブジェクトがすべてロックされておらず、あなたのものであることを確認してください。
- </notification>
-
- <notification
-
- name="CannotLinkDifferentOwners"
- >
-所有者が異なるため、すべてのオブジェクトを
-リンクできません。
-
-自分が所有しているオブジェクトだけを選択してください。
- </notification>
-
- <notification
-
- name="NoFileExtension"
- >
-ファイル「[FILE]」の拡張子が無効です。
-
-このファイルの拡張子が正しいかどうかを確認してください。
- </notification>
-
- <notification
-
- name="InvalidFileExtension"
- >
-ファイル拡張子[EXTENSION]は無効です
-正しい拡張子:[VALIDS]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CannotUploadSoundFile"
- >
-読み込みのためにアップロードされたサウンドファイルを開けません:
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileNotRIFF"
- >
-ファイルがRIFF WAVEファイルとして認識されません:
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileNotPCM"
- >
-ファイルがPCM WAVEオーディオ・ファイルとして認識されません:
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidChannelCount"
- >
-ファイルのチャンネル数が無効です(モノラルまたはステレオを使用する必要があります):
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidSampleRate"
- >
-ファイルのサンプル・レートがサポート外です(44.1kを指定する必要があります):
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidWordSize"
- >
-ファイルのワード・サイズがサポート外です(8または16ビットを指定する必要があります):
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidHeader"
- >
-WAVヘッダーにデータ・チャンクが見つかりません:
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidTooLong"
- >
-オーディオ・ファイルが長すぎます。(最大10秒):
-[FILE]
- </notification>
-
- <notification
-
- name="ProblemWithFile"
- >
-ファイル[FILE]にエラーがあります。
-
-[ERROR]
- </notification>
-
- <notification
-
- name="CannotOpenTemporarySoundFile"
- >
-書き込み用の一時圧縮サウンド・ファイルを開くことができません:[FILE]
- </notification>
-
- <notification
-
- name="UnknownVorbisEncodeFailure"
- >
-未知のVorbis 暗号化に失敗: [FILE]
- </notification>
-
- <notification
-
- name="CorruptResourceFile"
- >
-破損したリソースファイル: [FILE]
- </notification>
-
- <notification
-
- name="UnknownResourceFileVersion"
- >
-未知のlindenリソースファイルのバージョン: [FILE]
- </notification>
-
- <notification
-
- name="UnableToCreateOutputFile"
- >
-服装ファイルを作成できません: [FILE]
- </notification>
-
- <notification
-
- name="DoNotSupportBulkAnimationUpload"
- >
-アニメーションファイルのバルクアップロードは現在サポートされていません。
- </notification>
-
- <notification
-
- name="CannotUploadReason"
- >
-次の理由で、[FILE] をアップロードできません: [REASON]
-あとでもう一度試してください。
- </notification>
-
- <notification
-
- name="CannotCreateLandmarkNotOwner"
- >
-土地の所有者が許可していないため、
-ランドマークを作成することはできません。
- </notification>
-
- <notification
-
- name="CannotRecompileSelectObjectsNoScripts"
- >
-再編集は不可能です。
-スクリプト化されたオブジェクトを選択してください。
- </notification>
-
- <notification
-
- name="CannotRecompileSelectObjectsNoPermission"
- >
-「再編集」は不可能です。
-
-変更修正権限のある
-スクリプト化されたオブジェクトを選択してください。
- </notification>
-
- <notification
-
- name="CannotResetSelectObjectsNoScripts"
- >
-「再設定」を行うことができません。
-
-スクリプト化されたオブジェクトを選択してください。
- </notification>
-
- <notification
-
- name="CannotResetSelectObjectsNoPermission"
- >
-「再設定」を行うことができません。
-
-変更修正権限のある
-スクリプト化されたオブジェクトを選択してください。
- </notification>
-
- <notification
-
- name="CannotSetRunningSelectObjectsNoScripts"
- >
-スクリプトの「実行」の設定ができません。
-
-スクリプト化されたオブジェクトを選択してください。
- </notification>
-
- <notification
-
- name="CannotSetRunningNotSelectObjectsNoScripts"
- >
-スクリプトを「実行しない」に設定できません。
-
-スクリプト化されたオブジェクトを選択してください。
- </notification>
-
- <notification
-
- name="NoFrontmostFloater"
- >
-保存すべきfrontmostフロータがありません。
- </notification>
-
- <notification
-
- name="SeachFilteredOnShortWords"
- >
-指定した検索クエリは変更され、短すぎる語句は取り除かれています。
-
-検索語句: [FINALQUERY]
- </notification>
-
- <notification
-
- name="SeachFilteredOnShortWordsEmpty"
- >
-指定した検索語句が短すぎたため、検索は行われませんでした。
- </notification>
-
- <notification
-
- name="CouldNotTeleportReason"
- >
-テレポートに失敗しました。
-[REASON]
- </notification>
-
- <notification
-
- name="CannotSetLandOwnerNothingSelected"
- >
-土地所有者設定ができません:
-区画が選定されていません。
- </notification>
-
- <notification
-
- name="CannotSetLandOwnerMultipleRegions"
- >
-複数の地域が選択されたため、土地の所有権を主張
-できません。 選択する面積を小さくして、もう一度試してください。
- </notification>
-
- <notification
-
- name="ForceOwnerAuctionWarning"
- >
-この区画はオークションに出品されています。 区画の所有権を主張すると
-オークションが無効になり、入札が開始していたら不満に思う
-住人が出てくるかもしれません。 所有権を主張しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CannotContentifyNothingSelected"
- >
-コンテンツ化は不可能です:
-区画が選定されていません。
- </notification>
-
- <notification
-
- name="CannotContentifyNoRegion"
- >
-コンテンツ化は不可能です:
-土地が選択されていません。
- </notification>
-
- <notification
-
- name="CannotReleaseLandNothingSelected"
- >
-土地を捨てることができません:
-区画が選定されていません。
- </notification>
-
- <notification
-
- name="CannotReleaseLandNoRegion"
- >
-土地を破棄できません:
-地域が見つかりません。
- </notification>
-
- <notification
-
- name="CannotBuyLandNothingSelected"
- >
-土地を購入できません:
-区画が選定されていません。
- </notification>
-
- <notification
-
- name="CannotBuyLandNoRegion"
- >
-土地を購入できません:
-この土地がある地域を見つけることができません
- </notification>
-
- <notification
-
- name="CannotCloseFloaterBuyLand"
- >
-Second Lifeによるこの取引の見積りが完了するまで「土地を購入」ウィンドウを閉じることはできません。
- </notification>
-
- <notification
-
- name="CannotDeedLandNothingSelected"
- >
-土地を譲渡できません:
-区画が選定されていません。
- </notification>
-
- <notification
-
- name="CannotDeedLandNoGroup"
- >
-土地を譲渡できません:
-グループが選択されていません。
- </notification>
-
- <notification
-
- name="CannotDeedLandNoRegion"
- >
-土地を譲渡できません:
-この土地がある地域が見つかりません。
-「ツール」>「バグを報告する」を使って報告してください。
- </notification>
-
- <notification
-
- name="CannotDeedLandMultipleSelected"
- >
-土地を譲渡できません:
-複数の区画が選択されています。
-
-これより1つの区画を選択してください。
- </notification>
-
- <notification
-
- name="ParcelCanPlayMedia"
- >
-ここではストリーミング・メディア再生が可能です。
-メディアのストリーミングには、高速なインターネット接続環境が必要です。
-
-利用可能になったら再生しますか?
-(このオプションは、「環境設定」>「オーディオ&ビデオ」で後からでも変更できます)
- <usetemplate
- name="okcancelbuttons"
- notext="無効化"
- yestext="メディアを再生"/>
- </notification>
-
- <notification
-
- name="CannotDeedLandWaitingForServer"
- >
-土地を譲渡できません:
-サーバーからの所有権情報を待っています。
-
-再度、試みてください。
- </notification>
-
- <notification
-
- name="CannotDeedLandNoTransfer"
- >
-土地を譲渡できません:
-この地域 [REGION] では土地の譲渡が許されていません。
- </notification>
-
- <notification
-
- name="CannotReleaseLandWatingForServer"
- >
-土地を破棄できません:
-サーバーが区画情報を更新するのを待っています。
-
-もう少し後でやり直してください。
- </notification>
-
- <notification
-
- name="CannotReleaseLandSelected"
- >
-土地を破棄できません:
-あなたは、選択したすべての区画を所有していません。
-
-1つの区画を選択してください。
- </notification>
-
- <notification
-
- name="CannotReleaseLandDontOwn"
- >
-土地を破棄できません:
-あなたはこの土地を手放すことを許可されていません。
-あなたの区画は緑色で表示されています。
- </notification>
-
- <notification
-
- name="CannotReleaseLandRegionNotFound"
- >
-土地を破棄できません:
-この土地がある地域が見つかりません。
-
-「ツール」>「バグを報告する」を使って報告してください。
- </notification>
-
- <notification
-
- name="CannotReleaseLandNoTransfer"
- >
-土地を破棄できません:
-この [REGION] では土地の譲渡が許されていません。
- </notification>
-
- <notification
-
- name="CannotReleaseLandPartialSelection"
- >
-土地を破棄できません:
-区画全体を選択して解放する必要があります。
-
-区画全体を選択するか、または、まず最初に区画を分割してください。
- </notification>
-
- <notification
-
- name="ReleaseLandWarning"
- >
-あなたは、[AREA]平方メートルの土地を解放しようとしています。
-この区画を解放すると、あなたの土地所有から外れますが、
-L$は贈与されません。
-
-土地を解放しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CannotDivideLandNothingSelected"
- >
-土地を分割できません:
-
-区画が選定されていません。
- </notification>
-
- <notification
-
- name="CannotDivideLandPartialSelection"
- >
-土地を分割できません:
-
-区画全体が選択されています。
-区画の一部を選択してください。
- </notification>
-
- <notification
-
- name="LandDivideWarning"
- >
-この土地を分割すると、2つの区画に別れます。
-区画ごとの設定が可能になります。 この操作を行うと、一部の設定がデフォルトにリセットされます。
-
-土地の分割操作を続行しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CannotDivideLandNoRegion"
- >
-土地を分割できません:
-この土地がある地域が見つかりません。
-
-「ツール」>「バグを報告する」を使って報告してください。
- </notification>
-
- <notification
-
- name="CannotJoinLandNoRegion"
- >
-土地を統合できません:
-この土地がある地域が見つかりません。
-
-「ツール」>「バグを報告する」を使って報告してください。
- </notification>
-
- <notification
-
- name="CannotJoinLandNothingSelected"
- >
-土地を統合できませんでした:
-区画が選定されていません。
- </notification>
-
- <notification
-
- name="CannotJoinLandEntireParcelSelected"
- >
-土地を統合できません:
-1つの区画しか選択されていません。
-
-両方の区画をまたいで土地を選択してください。
- </notification>
-
- <notification
-
- name="CannotJoinLandSelection"
- >
-土地を統合できません:
-1つ以上の区画を選択する必要があります。
-
-両方の区画をまたいで土地を選択してください。
- </notification>
-
- <notification
-
- name="JoinLandWarning"
- >
-この土地を統合すると、選択された長方形に交差する
-全ての区画を基にして1つの大きな区画が作成されます。
-新しい区画の名前とオプションを再設定する必要があります。
-
-土地を統合しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmNotecardSave"
- >
-このアイテムをコピー、表示する前に、ノートカードの保存が必要です。 保存しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmItemCopy"
- >
-このアイテムをあなたの持ち物にコピーしますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="コピー"/>
- </notification>
-
- <notification
-
- name="ResolutionSwitchFail"
- >
-解像度を [RESX]x[RESY]に切り替えることができませんでした。
- </notification>
-
- <notification
-
- name="ErrorUndefinedGrasses"
- >
-エラー:未定義の植物:[SPECIES]
- </notification>
-
- <notification
-
- name="ErrorUndefinedTrees"
- >
-エラー:未定義の樹木:[SPECIES]
- </notification>
-
- <notification
-
- name="CannotSaveWearableOutOfSpace"
- >
-「[NAME]」を服のファイルに保存できません。 コンピューターの
-ディスクスペースを少し増やしてから、もう一度
-保存してみてください。
- </notification>
-
- <notification
-
- name="CannotSaveToAssetStore"
- >
-[NAME]を中央資産格納庫に保存できません。
-これは一時的な不具合です。服飾品などを
-カスタマイズし、数分後にもう一度
-保存してください。
-
-この問題が続くようなら、「ツール」>「バグを報告する」をクリックし、お使いのネットワーク設定の詳細を報告してください。
- </notification>
-
- <notification
-
- name="YouHaveBeenLoggedOut"
- >
-あなたは[SECOND_LIFE]からログアウトされました。
- [MESSAGE]
-「IMとチャットを表示」をクリックすると、現在あるIMとチャットを確認できます。 確認しない場合は、「終了」をクリックして、すぐに[SECOND_LIFE]を終了してください。
- <usetemplate
- name="okcancelbuttons"
- notext="終了"
- yestext="IMとチャットを表示"/>
- </notification>
-
- <notification
-
- name="OnlyOfficerCanBuyLand"
- >
-グループ用の土地の購入ができません:
-あなたにはアクティブなグループのために土地を購入する権限がありません。
- </notification>
-
- <notification
-
- label="フレンドを追加"
- name="AddFriend"
- >
-フレンドとして追加すると、お互いの現在地の地図への表示許可、オンラインステータス表示の設定をすることができます。
-
-[NAME] にフレンドシップを送りますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="フレンドを追加"
- name="AddFriendWithMessage"
- >
-フレンドとして追加すると、お互いの現在地の地図への表示許可、オンラインステータス表示の設定をすることができます。
-
-[NAME] にフレンドシップのオファーをしますか?
- <form name="form">
- <input name="message" type="text">
-フレンドとして登録してくれますか?
- </input>
- <button
-
-
- name="Offer"
- text="OK"/>
- <button
-
- name="Cancel"
- text="キャンセル"/>
- </form>
- </notification>
-
- <notification
-
- name="RemoveFromFriends"
- >
-[FIRST_NAME] [LAST_NAME]をフレンドリストから削除しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="RemoveMultipleFromFriends"
- >
-フレンドリストから複数のフレンドを削除しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GodDeleteAllScriptedPublicObjectsByUser"
- >
-**[AVATAR_NAME]**
-所有のすべてのスクリプト・オブジェクトをこのシム内の他のすべての土地から削除しようとしています。操作を続行しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GodDeleteAllScriptedObjectsByUser"
- >
-**[AVATAR_NAME]**
-所有のすべてのスクリプト・オブジェクトをこのシム内のすべての土地から削除しようとしています。操作を続行しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GodDeleteAllObjectsByUser"
- >
-**[AVATAR_NAME]**
-所有のすべてのオブジェクト(スクリプト・オブジェクトと非スクリプト・オブジェクト)を
-このシム内のすべての土地から削除しようとしています。操作を続行しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BlankClassifiedName"
- >
-クラシファイドに名前を指定してください。
- </notification>
-
- <notification
-
- name="MinClassifiedPrice"
- >
-広告料の支払い金額は、Lと[MIN_PRICE]が下限です。
-
-金額を増やしてください。
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLock"
- >
-選択したアイテムの1つ以上がロックされています。
-
-本当にこれらのアイテムの削除を続けますか?
- <usetemplate
- name="okcancelbuttons"
- notext="キャンセル"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteNoCopy"
- >
-選択したアイテムの1つ以上がコピーできません。
-
-本当にこれらのアイテムの削除を続けますか?
- <usetemplate
- name="okcancelbuttons"
- notext="キャンセル"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteNoOwn"
- >
-選択したアイテムの1つ以上を、あなたは所有していません。
-
-本当にこれらのアイテムの削除を続けますか?
- <usetemplate
- name="okcancelbuttons"
- notext="キャンセル"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLockNoCopy"
- >
-一つ以上のオブジェクトがロックされています。
-一つ以上のオブジェクトがコピーできません。
-
-本当にこれらのアイテムの削除を続けますか?
- <usetemplate
- name="okcancelbuttons"
- notext="キャンセル"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLockNoOwn"
- >
-一つ以上のオブジェクトがロックされています。
-1つ以上のオブジェクトを、あなたは所有していません。
-
-本当にこれらのアイテムの削除を続けますか?
- <usetemplate
- name="okcancelbuttons"
- notext="キャンセル"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteNoCopyNoOwn"
- >
-一つ以上のオブジェクトがコピーできません。
-1つ以上のオブジェクトを、あなたは所有していません。
-
-本当にこれらのアイテムの削除を続けますか?
- <usetemplate
- name="okcancelbuttons"
- notext="キャンセル"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLockNoCopyNoOwn"
- >
-一つ以上のオブジェクトがロックされています。
-一つ以上のオブジェクトがコピーできません。
-1つ以上のオブジェクトを、あなたは所有していません。
-
-本当にこれらのアイテムの削除を続けますか?
- <usetemplate
- name="okcancelbuttons"
- notext="キャンセル"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectTakeLock"
- >
-一つ以上のオブジェクトがロックされています。
-
-これらのアイテムの取得を続けますか?
- <usetemplate
- name="okcancelbuttons"
- notext="キャンセル"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectTakeNoOwn"
- >
-取得しようとしているオブジェクトには、あなたの所有物でないオブジェクトが含まれています。
-あなたの所有物ではないオブジェクトを取得すると、次のオーナーの権限が
-そのオブジェクトに適用されます。
-そのため、将来、変更やコピーの能力が制限される可能性があります。
-
-これらのアイテムの取得を続けますか?
- <usetemplate
- name="okcancelbuttons"
- notext="キャンセル"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectTakeLockNoOwn"
- >
-1つ以上のオブジェクトがロックされています。
-取得しようとしているオブジェクトには、あなたの所有物でないオブジェクトが含まれています。
-あなたの所有物ではないオブジェクトを取得すると、次のオーナーの権限が
-そのオブジェクトに適用されます。
-そのため、将来、変更やコピーの能力が制限される可能性があります。
-この選択内容のままで続行することは可能ですが、
-
-これらのアイテムの取得を続けますか?
- <usetemplate
- name="okcancelbuttons"
- notext="キャンセル"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CantBuyLandAcrossMultipleRegions"
- >
-複数の地域が選択されたため、土地を購入できません。
-
-選択する面積を小さくしてもう一度試してください。
- </notification>
-
- <notification
-
- name="DeedLandToGroup"
- >
-この区画の譲渡に際しては、このグループが十分な土地クレジットを
-保有および維持していることが必要です。
-土地の購入価格は、オーナーに返金されません。譲渡された区画が売れると、販売価格は
-グループ・メンバーに均等に分配されます。
-
-この[AREA]平方メートルの土地を、グループ
-「[GROUP_NAME]」に譲渡しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="DeedLandToGroupWithContribution"
- >
-この区画の譲渡に際しては、このグループが
-十分な土地クレジットを保有および維持していることが必要です。
-この譲渡により、
-「[FIRST_NAME] [LAST_NAME]」からグループに対して土地が同時に提供されます。
-土地の購入価格は、オーナーに
-返金されません。譲渡された区画が売れると、
-販売価格はグループ・メンバーに均等に分配されます。
-
-この[AREA]平方メートルの土地を、グループ「[GROUP_NAME]」に譲渡しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="DisplaySetToSafe"
- >
--safeオプションを指定したので、
-表示設定はセーフ・レベルに設定されています。
- </notification>
-
- <notification
-
- name="DisplaySetToRecommended"
- >
-表示設定は、あなたのシステム構成に
-基づいて推奨されたレベルに設定されています。
- </notification>
-
- <notification
-
- name="ErrorMessage"
- >
-[ERROR_MESSAGE]
- </notification>
-
- <notification
-
- name="AvatarMoved"
- >
-あなたが訪れたい[TYPE]のロケーションは現在ご利用できません。 [HELP]
-近くの地域に移動しました。
- </notification>
-
- <notification
-
- name="ClothingLoading"
- >
-あなたの服を、ダウンロード中です。
-通常どおりに[SECOND_LIFE]を使え、他のユーザーもあなたを正常に見ることができます。
- <form name="form">
- <ignore name="ignore" text="服のダウンロードに長い時間がかかる場合"/>
- </form>
- </notification>
-
- <notification
-
- name="FirstRun"
- >
-[SECOND_LIFE]のインストールが完了しました。
-
-[SECOND_LIFE]の使用が初めての方は、ログイン前にアカウントの作成が必要です。
-www.secondlife.comに戻って、新規アカウントの作成を行いますか?
- <usetemplate
- name="okcancelbuttons"
- notext="続行"
- yestext="新規アカウント..."/>
- </notification>
-
- <notification
-
- name="LoginPacketNeverReceived"
- >
-接続に問題が生じています。 あなたのインターネット接続、またはSecond Lifeサーバーに問題がある可能性があります。
-
-あなたのインターネット接続を確認して数分後にもう一度試みるか、「ヘルプ」をクリックして当社のサポート・サイトに接続してください。または、「テレポート」をクリックしてホームにテレポートしてみてください。
- <form name="form">
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Help"
- text="ヘルプ"/>
- <button
-
- name="Teleport"
- text="テレポート"/>
- </form>
- </notification>
-
- <notification
-
- name="WelcomeChooseSex"
- >
-まもなくあなたのアバターが表示されます。
-
-矢印キーを使用して歩きます。
-ヘルプが必要なときや[SECOND_LIFE]について知りたいときは、
-F1キーを押してください。
-男性あるいは女性のアバターを選択してください。
-あなたの決定は後で変更できます。
- <usetemplate
- name="okcancelbuttons"
- notext="女性"
- yestext="男性"/>
- </notification>
-
- <notification
-
- name="NotEnoughCurrency"
- >
-[NAME] L$[PRICE] 残高不足のため実行不可です。
- </notification>
-
- <notification
-
- name="GrantedModifyRights"
- >
-あなたには、 [FIRST_NAME] [LAST_NAME]のオブジェクトを修正する特権が与えられています。
- </notification>
-
- <notification
-
- name="RevokedModifyRights"
- >
-[FIRST_NAME] [LAST_NAME]のオブジェクトを修正する特権が取り消されました。
- </notification>
-
- <notification
-
- name="FlushMapVisibilityCaches"
- >
-この手順は、この地域の地図のキャッシュを消去します。
-これが便利なのはデバッグ時のみです。
-(作成中は5分間経つと、全員の地図が再度ログイン後に
-更新されます)
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="OnlyCopyContentsOfSingleItem"
- >
-一度に複数のアイテムのコンテンツはコピーできません。
-選択するオブジェクトを1つだけにして、もう一度試してください。
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="KickUsersFromRegion"
- >
-この地域の全ての住人をホームにテレポートしますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="EstateObjectReturn"
- >
-[USER_NAME]が所有しているオブジェクトを返却しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="キャンセル"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="InvalidTerrainBitDepth"
- >
-地域テクスチャを設定できませんでした:
-地形テクスチャ[TEXTURE_NUM]は、無効のビット深度[TEXTURE_BIT_DEPTH]です。
-
-テクスチャ[TEXTURE_NUM]を24ビット512x512かそれ以下のイメージと交換し、
-「適用」を再度クリックしてください。
- </notification>
-
- <notification
-
- name="InvalidTerrainSize"
- >
-地域テクスチャを設定できませんでした:
-地形テクスチャ[TEXTURE_NUM]は、[TEXTURE_SIZE_X]x[TEXTURE_SIZE_Y]では大きすぎます。
-
-テクスチャ[TEXTURE_NUM]を24ビット512x512かそれ以下のイメージと交換し、
-「適用」を再度クリックしてください。
- </notification>
-
- <notification
-
- name="RawUploadStarted"
- >
-アップロード開始。 接続速度によっては、
-最大2分間かかります。
- </notification>
-
- <notification
-
- name="ConfirmBakeTerrain"
- >
-現在の地形を構築しようとしています。
-この操作を行うと、現在の地形が上昇/下降の制限範囲の中心になり、「復帰」ツールのデフォルトになります。
-操作を続行しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="MaxAllowedAgentOnRegion"
- >
-許可住人は [MAX_AGENTS] 人までです。
- </notification>
-
- <notification
-
- name="MaxBannedAgentsOnRegion"
- >
-禁止住人は[MAX_BANNED]人までです。
- </notification>
-
- <notification
-
- name="MaxAgentOnRegionBatch"
- >
-[NUM_ADDED] 個のエージェントを追加しようとして失敗しました: [MAX_AGENTS] [LIST_TYPE] 制限を [NUM_EXCESS] 個超過しています。
- </notification>
-
- <notification
-
- name="MaxAllowedGroupsOnRegion"
- >
-許可グループは[MAX_GROUPS]グループまでです。
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="構築する"/>
- </notification>
-
- <notification
-
- name="MaxManagersOnRegion"
- >
-不動産マネージャーは[MAX_MANAGER]人までです。
- </notification>
-
- <notification
-
- name="OwnerCanNotBeDenied"
- >
-不動産オーナーを不動産「禁止住人」リストに追加できません。
- </notification>
-
- <notification
-
- name="CanNotChangeAppearanceUntilLoaded"
- >
-服および形がロードされるまで、容姿の変更はできません。
- </notification>
-
- <notification
-
- name="ClassifiedMustBeAlphanumeric"
- >
-クラシファイド広告の名前は、アルファベットか
-数字で始めます。 句読点では始められません。
- </notification>
-
- <notification
-
- name="CantSetBuyObject"
- >
-オブジェクトが販売対象ではないため、オブジェクトの購入が設定できません。
-販売対象のオブジェクトを設定し、もう一度試してください。
- </notification>
-
- <notification
-
- name="FinishedRawDownload"
- >
-未加工の地形ファイルを次へとダウンロードしました:
-[DOWNLOAD_PATH]。
- </notification>
-
- <notification
-
- name="DownloadWindowsMandatory"
- >
-[SECOND_LIFE]の新しいバージョンが利用可能です。
-[MESSAGE]
-[SECOND_LIFE]を使用するために、このアップデートをダウンロードする必要があります。
- <usetemplate
- name="okcancelbuttons"
- notext="終了"
- yestext="ダウンロード"/>
- </notification>
-
- <notification
-
- name="DownloadWindows"
- >
-[SECOND_LIFE]のアップデート・バージョンが利用可能です。
-[MESSAGE]
-このアップデートは必須ではありませんが、パフォーマンスと安定性を向上させるためにインストールすることをお勧めします。
- <usetemplate
- name="okcancelbuttons"
- notext="続行"
- yestext="ダウンロード"/>
- </notification>
-
- <notification
-
- name="DownloadWindowsReleaseForDownload"
- >
-[SECOND_LIFE]のアップデート・バージョンが利用可能です。
-[MESSAGE]
-このアップデートは必須ではありませんが、パフォーマンスと安定性を向上させるためにインストールすることをお勧めします。
- <usetemplate
- name="okcancelbuttons"
- notext="続行"
- yestext="ダウンロード"/>
- </notification>
-
- <notification
-
- name="DownloadMacMandatory"
- >
-[SECOND_LIFE]の新しいバージョンが利用可能です。
-[MESSAGE]
-[SECOND_LIFE]を使用するために、このアップデートをダウンロードする必要があります。
-
-アプリケーションがあるフォルダにダウンロードしますか?
- <usetemplate
- name="okcancelbuttons"
- notext="終了"
- yestext="ダウンロード"/>
- </notification>
-
- <notification
-
- name="DownloadMac"
- >
-[SECOND_LIFE]のアップデート・バージョンが利用可能です。
-[MESSAGE]
-このアップデートは必須ではありませんが、パフォーマンスと安定性を向上させるためにインストールすることをお勧めします。
-
-アプリケーションがあるフォルダにダウンロードしますか?
- <usetemplate
- name="okcancelbuttons"
- notext="続行"
- yestext="ダウンロード"/>
- </notification>
-
- <notification
-
- name="DownloadMacReleaseForDownload"
- >
-[SECOND_LIFE]のアップデート・バージョンが利用可能です。
-[MESSAGE]
-このアップデートは必須ではありませんが、パフォーマンスと安定性を向上させるためにインストールすることをお勧めします。
-
-アプリケーションがあるフォルダにダウンロードしますか?
- <usetemplate
- name="okcancelbuttons"
- notext="続行"
- yestext="ダウンロード"/>
- </notification>
-
- <notification
-
- name="DeedObjectToGroup"
- >
-このオブジェクトを譲渡するとグループに以下のことが起こります:
-* オブジェクトに支払われたL$を受領します。
- <usetemplate
- ignoretext="オブジェクトをグループに譲渡するとき"
- name="okcancelignore"
- notext="取り消し"
- yestext="譲渡"/>
- </notification>
-
- <notification
-
- name="WebLaunchExternalTarget"
- >
-お使いのシステムのウェブ・ブラウザを開いて、この内容を表示しますか?
- <usetemplate
- ignoretext="お使いのシステムのブラウザを開いてウェブ・ページを表示しようとしたとき"
- name="okcancelignore"
- notext="キャンセル"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchJoinNow"
- >
-www.secondlife.comに移動してアカウントを管理しますか?
- <usetemplate
- ignoretext="アカウントを管理するため、ウェブ・ブラウザを起動するとき"
- name="okcancelignore"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchBugReport101"
- >
-[SECOND_LIFE]Wikiで、バグを報告する正しい方法をご覧ください。
- <usetemplate
- ignoretext="バグレポート101 Wikiを閲覧するためのブラウザを開くにあたって"
- name="okcancelignore"
- notext="キャンセル"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchSecurityIssues"
- >
-[SECOND_LIFE]Wikiで、セキュリティ問題を報告する方法をご覧ください。
- <usetemplate
- ignoretext="セキュリティ問題Wikiを閲覧するためにウェブ・ブラウザを起動するにあたって"
- name="okcancelignore"
- notext="キャンセル"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchQAWiki"
- >
-[SECOND_LIFE] 品質保証関連Wikiをご覧ください。
- <usetemplate
- ignoretext="品質保証関連Wikiを閲覧するためにウェブ・ブラウザを起動するにあたって"
- name="okcancelignore"
- notext="キャンセル"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchPublicIssue"
- >
-[SECOND_LIFE]のパブリック問題トラッカーで、バグやその他の問題を報告できます。
- <usetemplate
- ignoretext="パブリック問題トラッカーを閲覧するためにウェブ・ブラウザを起動するにあたって"
- name="okcancelignore"
- notext="キャンセル"
- yestext="ページへ行く"/>
- </notification>
-
- <notification
-
- name="WebLaunchPublicIssueHelp"
- >
-[SECOND_LIFE]Wikiで、パブリック問題トラッカーの使用方法をご覧ください。
- <usetemplate
- ignoretext="パブリック問題トラッカーWikiを閲覧するためにウェブ・ブラウザを起動するにあたって"
- name="okcancelignore"
- notext="キャンセル"
- yestext="ページへ行く"/>
- </notification>
-
- <notification
-
- name="WebLaunchSupportWiki"
- >
-Linden公式ブログで、最新のニュースや情報を入手してください。
- <usetemplate
- ignoretext="ブログを表示するため、ウェブ・ブラウザを起動するとき"
- name="okcancelignore"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchLSLGuide"
- >
-スクリプトガイドを開いて、スクリプトのヘルプを参照しますか?
- <usetemplate
- ignoretext="LSLガイドを表示するため、ウェブ・ブラウザを起動するとき"
- name="okcancelignore"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchLSLWiki"
- >
-LSLポータルを開いてスクリプトのヘルプを参照しますか?
- <usetemplate
- ignoretext="LSLポータルを表示するために、ウェブ・ブラウザを起動するとき"
- name="okcancelignore"
- notext="取り消し"
- yestext="ページに移動"/>
- </notification>
-
- <notification
-
- name="ReturnToOwner"
- >
-選択したオブジェクトを、所有者に返却しますか?
-譲渡可能なオブジェクトは
-以前の所有者に返却されます。
-
-*警告* 移転が不可能の譲渡されたオブジェクトは削除されます!
- <usetemplate
- ignoretext="オブジェクトを持ち主に返却するとき"
- name="okcancelignore"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GroupLeaveConfirmMember"
- >
-現在あなたは [GROUP]のメンバーです。
-ここから抜けますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmKick"
- >
-すべてのユーザーをグリッド外にキックしようとしています。操作を続行しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="キャンセル"
- yestext="全てのユーザを追い出す"/>
- </notification>
-
- <notification
-
- name="MuteLinden"
- >
-残念ながら、Lindenをミュートすることはできません。
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="オブジェクトを名前でミュートできませんでした"
- name="MuteByNameFailed"
- >
-あなたはすでにこの名前をミュートしています。
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="RemoveItemWarn"
- >
-コンテンツを削除すると、許可があっても、オブジェクトにダメージを与えることがあります。
-そのアイテムの削除を続けますか?
- <usetemplate
- name="okcancelbuttons"
- notext="キャンセル"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CantOfferCallingCard"
- >
-現在コーリング・カードを贈れません。数分後にもう一度試してください。
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CantOfferFriendship"
- >
-現在フレンドシップを贈れません。数分後に試してください。
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BusyModeSet"
- >
-取り込み中に設定されました。
-チャットとインスタント・メッセージ(IM)が隠れます。
-相手は「取り込み中応答メッセージ」をIMで受け取ります。
-テレポートのオファーは全て拒否され、持ち物のオファーは全てゴミ箱に送られます。
- <usetemplate
- ignoretext="取り込み中の設定をするとき"
- name="okignore"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="JoinedTooManyGroupsMember"
- >
-あなたは現在メンバーになっているグループが多すぎるため、
-他のグループに参加できません。少なくとも1つのグループを脱退してからこのグループに参加するか、
-この招待を断ってください。
-グループを抜けるには、編集メニューから「グループ...」オプションを
-を選択します。
-[NAME]は、あなたをメンバーとしてグループに招待しています。
-[INVITE]
- <usetemplate
- name="okcancelbuttons"
- notext="辞退"
- yestext="参加"/>
- </notification>
-
- <notification
-
- name="KickUser"
- >
-どんなメッセージを表示して、このユーザーを追い出しますか?
- <form name="form">
- <input name="message" type="text">
-あなたは管理者によりログオフされました。
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="取り消し"/>
- </form>
- </notification>
-
- <notification
-
- name="KickAllUsers"
- >
-どんなメッセージを表示して、グリッドにいる全員を追い出しますか?
- <form name="form">
- <input name="message" type="text">
-あなたは管理者によりログオフされました。
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="取り消し"/>
- </form>
- </notification>
-
- <notification
-
- name="FreezeUser"
- >
-どんなメッセージを表示して、このユーザーをフリーズしますか?
- <form name="form">
- <input name="message" type="text">
-あなたはフリーズされています。 動くこともチャットすることもできません。 管理者がIMを通じてあなたに連絡します。
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="取り消し"/>
- </form>
- </notification>
-
- <notification
-
- name="UnFreezeUser"
- >
-どんなメッセージを表示して、このユーザーのフリーズを解除しますか?
- <form name="form">
- <input name="message" type="text">
-もうフリーズされていません。
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="取り消し"/>
- </form>
- </notification>
-
- <notification
-
- name="OfferTeleport"
- >
-次のメッセージを添えてあなたが今いる場所へのテレポートを送りますか?
- <form name="form">
- <input name="message" type="text">
-[REGION]に来ませんか?
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="取り消し"/>
- </form>
- </notification>
-
- <notification
-
- name="OfferTeleportFromGod"
- >
-ユーザーをゴッド・コールで呼び寄せますか?
- <form name="form">
- <input name="message" type="text">
-[REGION]に来ませんか?
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="取り消し"/>
- </form>
- </notification>
-
- <notification
-
- name="TeleportFromLandmark"
- >
-本当にテレポートしますか?
- <usetemplate
- ignoretext="持ち物のランドマークからテレポートする時"
- name="okcancelignore"
- notext="キャンセル"
- yestext="テレポート"/>
- </notification>
-
- <notification
-
- label="あなたの不動産内の全員にメッセージを送信"
- name="MessageEstate"
- >
-今あなたの不動産にいる人全員に送る
-短いメッセージを入力してください。
- <form name="form">
- <input name="message" type="text"/>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="取り消し"/>
- </form>
- </notification>
-
- <notification
-
- label="Lindenの不動産を変更"
- name="ChangeLindenEstate"
- >
-あなたはLinden所有の不動産(メインランド、ティーン・グリッド、オリエンテーションなど)を変更しようとしています。
-
-これはユーザーの経験を根本から揺るがしかねない「非常に危険な行為」です。
-これにより、メインランドで多数の地域が変更され、スペースサーバーに悪影響が生じます。
-
-操作を続行しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Lindenの不動産へのアクセスを変更"
- name="ChangeLindenAccess"
- >
-あなたはLinden所有の不動産(メインランド、ティーン・グリッド、オリエンテーションなど)へのアクセス・リストを変更しようとしています。
-
-この行為は「危険」であり、グリッドからオブジェクトやお金の転送をもたらす
-ハッキングを引き起こす可能性が
-あるため、完全にそれを意図した場合のみ行うべきものです。
-これにより多数の地域が変更され、スペースサーバーに
-悪影響が生じます。
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="不動産を選択"
- name="EstateAllowedAgentAdd"
- >
-この不動産の許可リストだけに追加しますか? それとも[ALL_ESTATES]のすべての許可リストに追加しますか?
- <usetemplate
- canceltext="取り消し"
- name="yesnocancelbuttons"
- notext="すべての不動産"
- yestext="この不動産"/>
- </notification>
-
- <notification
-
- label="不動産を選択"
- name="EstateAllowedAgentRemove"
- >
-許可リストからの削除をこの不動産についてのみ行いますか? それとも、[ALL_ESTATES]について行いますか?
- <usetemplate
- canceltext="取り消し"
- name="yesnocancelbuttons"
- notext="すべての不動産"
- yestext="この不動産"/>
- </notification>
-
- <notification
-
- label="不動産を選択"
- name="EstateAllowedGroupAdd"
- >
-この不動産のグループ許可リストだけに追加しますか? それとも[ALL_ESTATES]のグループ許可リストに追加しますか?
- <usetemplate
- canceltext="取り消し"
- name="yesnocancelbuttons"
- notext="すべての不動産"
- yestext="この不動産"/>
- </notification>
-
- <notification
-
- label="不動産を選択"
- name="EstateAllowedGroupRemove"
- >
-許可リストからの削除をこの不動産についてのみ行いますか? それとも、[ALL_ESTATES]について行いますか?
- <usetemplate
- canceltext="取り消し"
- name="yesnocancelbuttons"
- notext="すべての不動産"
- yestext="この不動産"/>
- </notification>
-
- <notification
-
- label="不動産を選択"
- name="EstateBannedAgentAdd"
- >
-この不動産についてのみアクセスを拒否しますか? それとも[ALL_ESTATE]へのアクセスを拒否しますか?
- <usetemplate
- canceltext="取り消し"
- name="yesnocancelbuttons"
- notext="すべての不動産"
- yestext="この不動産"/>
- </notification>
-
- <notification
-
- label="不動産を選択"
- name="EstateBannedAgentRemove"
- >
-この住人を、この不動産のみ、または[ALL_ESTATES]へとアクセスできるように、禁止リストから削除しますか?
- <usetemplate
- canceltext="取り消し"
- name="yesnocancelbuttons"
- notext="すべての不動産"
- yestext="この不動産"/>
- </notification>
-
- <notification
-
- label="不動産を選択"
- name="EstateManagerAdd"
- >
-この不動産のみ、または[ALL_ESTATES]に対して、不動産マネージャーを追加しますか?
- <usetemplate
- canceltext="取り消し"
- name="yesnocancelbuttons"
- notext="すべての不動産"
- yestext="この不動産"/>
- </notification>
-
- <notification
-
- label="不動産を選択"
- name="EstateManagerRemove"
- >
-不動産マネージャーを、この不動産のみ、または[ALL_ESTATES]から、削除しますか?
- <usetemplate
- canceltext="取り消し"
- name="yesnocancelbuttons"
- notext="すべての不動産"
- yestext="この不動産"/>
- </notification>
-
- <notification
-
- label="キックを確認"
- name="EstateKickUser"
- >
-この不動産から[EVIL_USER]を追い出しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="EstateChangeCovenant"
- >
-不動産約款を変更しようとしています。操作を続行しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ProblemImportingEstateCovenant"
- >
-不動産約款のインポート時に問題発生。
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ProblemAddingEstateManager"
- >
-新しい不動産マネージャーの追加に関する問題。1つ以上の不動産で、マネージャーリストが満杯になっています。
- </notification>
-
- <notification
-
- name="ProblemAddingEstateGeneric"
- >
-不動産リストの追加に関する問題。1つ以上の不動産で、リストが満杯になっています。
- </notification>
-
- <notification
-
- name="UnableToLoadNotecard"
- >
-現在ノートカードの資産をロードできません。
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="NotAllowedToViewNotecard"
- >
-要求された資産IDに関するノートカードを閲覧するには権限が不十分です。
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="MissingNotecardAssetID"
- >
-ノートカード用資産IDがデータベースに登録されていません。
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="PublishClassified"
- >
-注意:クラシファイド広告の料金は払い戻しされません。
-
-L$[AMOUNT]で、このクラシファイド広告を今すぐ公開しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
-
-
-
-
- <notification
-
- label="再起動を確認"
- name="ConfirmRestart"
- >
-この地域を2分後に再起動しようとしています。操作を続行しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="この地域内の全員にメッセージを送信"
- name="MessageRegion"
- >
-この地域にいる人全員に送る
-短いメッセージを入力してください。
- <form name="form">
- <input name="message" type="text"/>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="取り消し"/>
- </form>
- </notification>
-
- <notification
-
- label="土地整備をブロック"
- name="HelpRegionBlockTerraform"
- >
-このボックスがチェックされている場合、
-区画ごとの「領域を編集」の設定にかかわらず、土地オーナーは土地整備ができません。
-
-デフォルト:オフ
- </notification>
-
- <notification
-
- label="飛行をブロック"
- name="HelpRegionBlockFly"
- >
-このボックスをチェックすると、区画ごとの「飛行」設定に関わらず飛行ができなくなります。
-
-デフォルト:オフ
- </notification>
-
- <notification
-
- label="ダメージ許可"
- name="HelpRegionAllowDamage"
- >
-このボックスをチェックすると、各区画の個別の設定にかかわらず、全ての区画における
-ヘルスシステムを有効にします。このボックスがチェックされていない場合でも、
-個別の区画のオーナーは、自分の区画に対するヘルスシステムを
-有効にできます。
-
-デフォルト: オフ
- </notification>
-
- <notification
-
- label="人物の制限"
- name="HelpRegionAgentLimit"
- >
-この地域に許可されるアバターの最大数を設定します。
-1つの地域にアバターが多いとパフォーマンスが
-低下する原因になるので注意してください。
-
-デフォルト: 40
- </notification>
-
- <notification
-
- label="物体ボーナス"
- name="HelpRegionObjectBonus"
- >
-オブジェクトボーナスは、区画において許可されているプリムの倍率数を
-意味します。認可されている範囲は1から10です。したがって、「1」に設定すると、512 m²の土地には、
-117のオブジェクトが許可されます。「2」に設定すると、同じ512 m²の土地には、1のときの2倍にあたる
-234のオブジェクトが許可され、3以降も同様に増えていきます。全地域の最高オブジェクト数は、
-オブジェクトボーナスの値に影響されず、
-15,000のまま変わりません。いったん決定した後でオブジェクトボーナスの値を下げると、オブジェクトが返却または削除される可能性がありますのでご注意ください。
-ディフォルト: 1.0
- </notification>
-
-
-
- <notification
-
- label="プッシュを制限"
- name="HelpRegionRestrictPushObject"
- >
-このチェックボックスは、制限されたプッシュ権限を全地域に適用します。
-有効になっている場合、居住者は自分自身でのプッシュ、
-あるいは区画の所有者によるプッシュだけに制限できます。
-(プッシュは、LSLの llPushObject() 機能を参照します。)
-
-デフォルト: オフ
- </notification>
-
- <notification
-
- label="区画統合/再分割"
- name="HelpParcelChanges"
- >
-このチェックボックスは、不動産オーナーが所有していない区画を、
-統合または再分割できるかどうかを設定します。
-本オプションが無効な場合:
-* 不動産オーナー、または管理者のみが、統合/再分割を行うことができます。
-* オーナー、または、適切な権限を持つグループに属する区画のみを
-統合/再分割することができます。
-本オプションが有効な場合:
-* 全ての区画オーナーは、所有する区画の統合/再分割ができます。
-* グループ所有の区画は、適切な権限を持つグループに属する区画を、
-統合/再分割することができます。
-
-デフォルト:チェックあり
- </notification>
-
- <notification
-
- label="検索で表示しない"
- name="HelpRegionSearch"
- >
-このボックスをチェックすると、区画のオーナーは、自分の区画が検索結果にリストされることを阻止できます。
-デフォルト:オフ
- </notification>
-
- <notification
-
- label="地域の成人指定変更済み"
- name="RegionMaturityChange"
- >
-この地域の成人指定がアップデートされました。
-この変更が地図に反映されるまでには、しばらく時間がかかります。
- </notification>
-
- <notification
-
- label="土地の再販"
- name="HelpRegionLandResell"
- >
-不動産のオーナーと管理者は、不動産オーナーの土地を販売することができます。
-このオプションをチェックしない場合、購入者が本地域における土地を再販することはできなくなります。
-このオプションをチェックした場合、購入者は本地域における土地を再販することができます。
-
-デフォルト:許可しない
- </notification>
-
- <notification
-
- label="スクリプトを無効化"
- name="HelpRegionDisableScripts"
- >
-スクリプトが原因でシムの状況が悪くなる場合があります。統計グラフを
-だして(Ctrl-Shift-1)シミュレーターフィジックスFPSを見てください。
-45より数が低ければ、一番下に位置しているタイムパネルを
-開いてください。スクリプト時間が25ms以上であれば、
-「トップスクリプトを取得」ボタンをクリックします。悪影響を及ぼしているスクリプトの
-名前と位置が現れます。
-
-「スクリプトを無効にする」をチェックし「適用」をクリックすると、
-地域内の全てのスクリプトが一時的に無効になります。トップスクリプトで
-検索したスクリプトの位置まで到達するには、
-このステップが必要になる場合もあります。スクリプト位置に到着後、
-スクリプトを見て悪影響を与えているか調査してください。スクリプトの所有者に
-連絡するか、あるいはオブジェクトの削除または返却も考えられます。
-「スクリプトを無効にする」のチェックを外し、「適用」をクリックして
-地域全体のスクリプトを有効に戻してください。
-
-デフォルト:オフ
- </notification>
-
- <notification
-
- label="衝突を無効化"
- name="HelpRegionDisableCollisions"
- >
-物理的オブジェクトが原因でシムの処理が重くなる場合があります。
-統計グラフを開いて(Ctrl-Shift-1) シミュレーターフィジックス
-FPSを見てください。 数値が45より低ければ、統計バーの下に位置しているタイムパネルを
-開いてください。 もしシムタイム (物理的作用)
-が20 msより長い場合は、「トップ・コライダーを取得」をクリックしてください。
-悪影響を及ぼしている可能性がある物理オブジェクトの
-名前と位置が現れます。
-
-「衝突を無効にする」をチェックし「適用」をクリックすると、
-オブジェクト同士の衝突が一時的に無効になります。 当該のトップ・コライダー
-の位置まで到達するには
-上記のステップが必要になる場合もあります。 到着後、
-オブジェクトを見て常時他のオブジェクトと衝突しているか調査してください。 オブジェクトの所有者に
-連絡するか、あるいはオブジェクトの削除または返却を考慮すべきかもしれません。
-「衝突を無効にする」のチェックを外し、「適用」をクリックして
-地域全体の衝突を有効に戻してください。
-
-デフォルト:オフ
- </notification>
-
- <notification
-
- label="物理作用を無効化"
- name="HelpRegionDisablePhysics"
- >
-物理的作用を無効にすることは、物理的シミュレーション全ての無効を除いて、
-衝突を無効にすることと似ています。これは、オブジェクトの衝突を止めるのみならず、
-アバターの移動ができなくなることを意味します。
-
-この機能は、物理的な問題なのか、またはトップ・コライダーなのかを調査するにあたり、
-衝突の無効が地域に対して十分なパフォーマンスを発揮しない場合にのみ
-使用してください。
-
-終了する時には、物理的作用を再度可能に設定してください。
-そのままだと、アバターはずっと動けません。
-
-デフォルト:オフ
- </notification>
-
- <notification
-
- label="トップ・コライダー"
- name="HelpRegionTopColliders"
- >
-オブジェクト同士の衝突が最も多い可能性のある
-オブジェクトのリストを表示します。これらのオブジェクトは、
-パフォーマンスを低下させる可能性があります。ビューから統計バーを選択し、
-シミュレータ>時間>シム時間 (物理的作用) で、
-物理的作用に20 ms以上を費しているかを確認してください。
- </notification>
-
- <notification
-
- label="トップ・スクリプト"
- name="HelpRegionTopScripts"
- >
-LSLスクリプトの実行に一番時間を費やしているオブジェクトのリストを
-入手します。これらのオブジェクトは、パフォーマンスを低下させる可能性があります。
-ビューから統計バーを選択し、
-ミュレータ>時間>スクリプト時間で、
-スクリプトに25 ms以上を費しているかを確認してください。
- </notification>
-
- <notification
-
- label="地域をリスタート"
- name="HelpRegionRestart"
- >
-2分後にサーバーが再起動されるという警告メッセージの後に、この地域のサーバープロセスを
-再起動します。この地域のすべての住人の
-接続が切断されます。地域のデータは保存され、
-90秒以内に回復します。
-
-この地域を再起動しても、ほとんどのパフォーマンスの問題に変化はありません。
-指示された時だけ利用してください。
- </notification>
-
- <notification
-
- label="水面の高さ"
- name="HelpRegionWaterHeight"
- >
-これは、水が現れる高さ(単位:メートル)です。
-この設定が20以外で、水が世界の
-端や、「空の」水に近ければ、
-溝が見えるでしょう。
-
-デフォルト: 20
- </notification>
-
- <notification
-
- label="地形の上昇"
- name="HelpRegionTerrainRaise"
- >
-この数値は、「ベーク」地形のデフォルトの高さ以上に、
-区画の所有者が土地を上げられるメートル
-数です。
-
-デフォルト: 4
- </notification>
-
- <notification
-
- label="地形の下降"
- name="HelpRegionTerrainLower"
- >
-この数値は、「ベーク」地形のデフォルトの高さ以下に、
-区画の所有者が土地を下げられるメートル
-数です。
-
-デフォルト: -4
- </notification>
-
- <notification
-
- label="RAW地形をアップロード"
- name="HelpRegionUploadRaw"
- >
-このボタンで、.RAW ファイルを、現在あなたが居る地域にアップロードします。
-ファイルが必ず正しいサイズの256x256、RGB、
-また、チャンネル数が13であることを確認してください。地形
-(Terrain) ファイルを作成する最良の方法は、既存のRAWファイルをダウンロードすることです。まず
-最初のチャンネル(土地の高さ)を変更し、アップロードすることから
-始められます。
-
-アップロードには45秒ほどかかることがあります。ここで注意することは、
-地形ファイルのアップロードによって、土地に配置されているオブジェクトは「動かない」ということです。
-影響があるのは、地形自体と、土地に関係する
-許可のみです。よって、オブジェクトが地下に埋まってしまうことがあるのでご注意ください。
-
-地形設定編集の情報と詳細については、F1ヘルプをご覧ください。
- </notification>
-
- <notification
-
- label="RAW地形をダウンロード"
- name="HelpRegionDownloadRaw"
- >
-このボタンを押すと、標高フィールドデータ、
-区画寸法、売り出し区画ステータス、この地域における許可を
-含むファイルをダウンロードします。フォトショップのようなプログラムでこのファイルを開くには、
-以下のようなドキュメントのサイズを
-指定する必要があります:RGB、256x256で、チャンネル数が13。この地形ファイルは、
-他の方法では開くことはできません。
-
-地形における標高フィールドの編集に関する詳細については、F1ヘルプをご覧ください。
- </notification>
-
- <notification
-
- label="不動産の太陽を使用"
- name="HelpRegionUseEstateSun"
- >
-このボックスがチェックされていると、この地域の太陽は
-不動産の他の場所における太陽と位置が同じになります。
-
-デフォルト: オン
- </notification>
-
- <notification
-
- label="太陽固定"
- name="HelpRegionFixedSun"
- >
-このボックスをチェックすると、太陽の位置は段階スライダー内に
-設定され、動かなくなります。
-デフォルト: オフ
- </notification>
-
- <notification
-
- label="地形を構築する"
- name="HelpRegionBakeTerrain"
- >
-このボタンにより、現在の地形の形状を新たな
-デフォルトとして保存します。一度ベークされると、
-あなたや他の人が地形編集の「復帰」オプション/ツールを使用した際に、
-保存された形状に回復できます。ベークされた地形は、
-地形上昇および下降境界の中間点でもあります。
- </notification>
-
- <notification
-
- label="不動産マネージャー"
- name="HelpEstateEstateManager"
- >
-不動産マネージャーとは、地域コントロールと
-不動産設定が委任された住人をさします。不動産マネージャーは、
-アップロード、ダウンロード、および地形構築を除いたパネル内の
-設定を変更できます。特筆すべきは、
-住人のアクセス許可または禁止の設定ができることです。
-
-不動産マネージャーの追加と削除は、不動産オーナーのみが行うことができ、
-マネージャー同士では不可能です。信頼できる住人のみ
-不動産マネージャーに任命してください。彼らの行動の
-全責任は、最終的にはあなたにあります。
- </notification>
-
- <notification
-
- label="グローバル・タイムを使用"
- name="HelpEstateUseGlobalTime"
- >
-このボックスがチェックされていると、あなたの所有地の太陽は
-Linden社所有のメインランドの不動産での太陽の位置に
-準じます。
-
-デフォルト: オン
- </notification>
-
- <notification
-
- label="太陽固定"
- name="HelpEstateFixedSun"
- >
-このボックスがチェックされていると、太陽の位置は段階スライダー内に
-設定され、動かなくなります。
- </notification>
-
- <notification
-
- label="パブリック・アクセス"
- name="HelpEstateExternallyVisible"
- >
-このチェックボックスは、他の不動産にいる住人が、アクセスリストに登録されていなくても、この不動産に立ち入ることができるかどうかを
-設定します。
-
-デフォルト: オン
- </notification>
-
- <notification
-
- label="直接テレポートを許可"
- name="HelpEstateAllowDirectTeleport"
- >
-チェックされていると、不動産のどこにでも直接テレポートが
-可能になります。チェックされていないと、最も近いテレハブに
-テレポートします。
-
-デフォルト: オフ
- </notification>
-
- <notification
-
- label="アクセスを許可"
- name="HelpEstateAllowResident"
- >
-この不動産へのアクセスは、ここに登録されている住人と
-下記で特別に登録されたグループのみに許可されます。 この設定は
-「パブリック・アクセス」がオフになってるときのみ、
-使用可能です。
- </notification>
-
- <notification
-
- label="グループ・アクセスを許可"
- name="HelpEstateAllowGroup"
- >
-この不動産へのアクセスは、ここに登録されているグループと
-下記で特別に登録された住人のみに許可されます。 この設定は
-「パブリック・アクセス」がオフになってるときのみ、
-使用可能です。
- </notification>
-
- <notification
-
- label="嫌がらせに関するメール先"
- name="HelpEstateAbuseEmailAddress"
- >
-これを有効なメールアドレスに設定すると、そのアドレスにこの不動産において行われた
-嫌がらせの報告が送信されるようになります。
-設定を行わない場合(空白)、嫌がらせ報告は Linden Lab にのみ
-送信されます。
- </notification>
-
- <notification
-
- label="アクセス拒否"
- name="HelpEstateBanResident"
- >
-このリストの住人は、他の設定にかかわらず、あなたの不動産への
-アクセスが禁止されています。
- </notification>
-
- <notification
-
- label="ボイスチャットを許可"
- name="HelpEstateVoiceChat"
- >
-この不動産の区画は、住人が近所の人と対話できる
-独自のボイスチャンネルを持つことが
-できます。
-
-デフォルト: オフ
- </notification>
-
- <notification
-
- label="ボイスバージョンの不一致"
- name="VoiceVersionMismatch"
- >
-このバージョンの Second Life は、この地域のボイスチャット機能に対応していません。ボイスチャットを正しく使用するには、Second Life のアップデートが必要です。
- </notification>
-
- <notification
-
- label="不動産約款"
- name="HelpEstateCovenant"
- >
-不動産約款を定めると、自分の不動産内の区画を販売\できるようになります。 約款を定めていないと、\土地は売れません。 土地に関する規則を適用したくなかったり、購入前に\土地に関する情報を購入者に知らせたくなかったら、\あなたの約款のノートカードは白紙でかまいません。
-
-約款は購入を考えている人に、規則、ガイドライン、\文化的情報や単にあなたが期待することを伝えるためにも\使えます。 ここには、区画規制、建造物規制、\支払いオプション、それから購入者が事前に\目を通して同意しておくべきだとあなたが思う重要な情報をすべて\入れることができます。
-
-購入者がボックスをチェックして約款に同意しないかぎり、\購入の手続きは完了しません。 不動産\約款が定められている区画であれば、すべて「土地情報」から\約款をいつでも閲覧できます。
- </notification>
-
- <notification
-
- label="オブジェクトを購入できません"
- name="BuyObjectOneOwner"
- >
-複数のオーナーから同時にオブジェクトを購入することはできません。
-単一のオブジェクトを選択し、もう一度試してください。
- </notification>
-
- <notification
-
- label="コンテンツを購入できません"
- name="BuyContentsOneOnly"
- >
-一度に複数のオブジェクトのコンテンツは購入できません。
-選択するオブジェクトを1つだけにして、もう一度試してください。
- </notification>
-
- <notification
-
- label="コンテンツを購入できません"
- name="BuyContentsOneOwner"
- >
-複数のオーナーから同時にオブジェクトを購入することはできません。
-単一のオブジェクトを選択し、もう一度試してください。
- </notification>
-
- <notification
-
- name="BuyOriginal"
- >
-オリジナルのオブジェクトを[OWNER]からL$[PRICE]で購入しますか?
-これにより、あなたがオブジェクトのオーナーになります。
-可能な操作は、
-変更:[MODIFYPERM]
-、コピー:[COPYPERM]
-、再販/プレゼント[RESELLPERM]です。
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyOriginalNoOwner"
- >
-L$[PRICE]でオリジナルのオブジェクトを購入しますか?
-これにより、あなたがオブジェクトのオーナーになります。
-可能な操作は、
-変更:[MODIFYPERM]
-、コピー:[COPYPERM]
-、再販/プレゼント[RESELLPERM]です。
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyCopy"
- >
-コピーを[OWNER]からL$[PRICE]で購入しますか?
-購入したオブジェクトは、あなたの持ち物にコピーされます。
-可能な操作は、変更:[MODIFYPERM]
-、コピー:[COPYPERM]
-、再販/プレゼント[RESELLPERM]です。
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyCopyNoOwner"
- >
-L$[PRICE]でコピーを購入しますか?
-購入したオブジェクトは、あなたの持ち物にコピーされます。
-可能な操作は、変更:[MODIFYPERM]
-、コピー:[COPYPERM]
-、再販/プレゼント[RESELLPERM]です。
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyContents"
- >
-コンテンツを[OWNER]からL$[PRICE]で購入しますか?
-購入したコンテンツは、あなたの持ち物にコピーされます。
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyContentsNoOwner"
- >
-L$[PRICE]でコンテンツを購入しますか?
-購入したコンテンツは、あなたの持ち物にコピーされます。
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmPurchase"
- >
-この取引は以下のとおり行われます:
-[ACTION]
-
-この購入を続行しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="取り消し"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmPurchasePassword"
- type="password">
-この取引は以下のとおり行われます:
-[ACTION]
-
-この購入を続行しますか?
-パスワードを再入力し、「OK」をクリックしてください。
- <form name="form">
- <input
- name="message"
- type="password"/>
- <button
-
-
- name="ConfirmPurchase"
- text="OK"/>
- <button
-
- name="Cancel"
- text="取り消し"/>
- </form>
- </notification>
-
- <notification
-
- name="SetPickLocation"
- >
-メモ:
-本ピックのロケーションを更新しましたが
-、他の詳細は元の値のままになります。
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="MoveInventoryFromObject"
- >
-「コピー禁止」の持ち物アイテムが選択されました。
-これらの~アイテムはコピーされないまま、あなたの持ち物に移動されます。
-
-
-アイテムを動かしますか?
- <usetemplate
- ignoretext="コピー禁止の持ち物をオブジェクトから移動させるとき"
- name="okcancelignore"
- notext="キャンセル"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="MoveInventoryFromScriptedObject"
- >
-「コピー禁止」の持ち物アイテムが選択されました。これらのアイテムは
-コピーされるのではなく、あなたの持ち物に移動されます。
-このオブジェクトはスクリプト付きなので、持ち物に移動させると
-スクリプトに誤動作が起きる可能性があります。
-
-持ち物アイテムを移動しますか?
- <usetemplate
- ignoretext="コピー禁止の持ち物をスクリプト付きオブジェクトから移動させるとき"
- name="okcancelignore"
- notext="キャンセル"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ClickActionNotPayable"
- >
-警告:「クリックでオブジェクトに支払い」の設定がされました。
-ただし、これはスクリプトが金銭money() イベントに追加された場合にのみ作動します。
- <form name="form">
- <ignore name="ignore"
- text="money()イベントなしに「オブジェクトに支払う」を設定するとき"/>
- </form>
- </notification>
-
- <notification
-
- name="OpenObjectCannotCopy"
- >
-このオブジェクトにあなたがコピーしてよいアイテムはありません。
- </notification>
-
- <notification
-
- name="WebLaunchAccountHistory"
- >
-SecondLifeウェブ・ページを開いてアカウント履歴を確認しますか?
- <usetemplate
- ignoretext="アカウント履歴のウェブ・ページをロードするとき"
- name="okcancelignore"
- notext="取り消し"
- yestext="ページに移動"/>
- </notification>
-
- <notification
-
- name="ClickOpenF1Help"
- >
-Second Life のサポートウェブサイトを利用しますか?
- <usetemplate
- ignoretext="Second Life のサポートウェブサイトを閲覧するにあたって。"
- name="okcancelignore"
- notext="キャンセル"
- yestext="行く"/>
- </notification>
-
- <notification
-
- name="ConfirmQuit"
- >
-終了しようとしています。操作を続行しますか?
- <usetemplate
- ignoretext="Second Life の終了にあたって。"
- name="okcancelignore"
- notext="継続"
- yestext="終了"/>
- </notification>
-
- <notification
-
- name="HelpReportAbuseEmailLL"
- >
-利用規約違反とコミュニティースタンダード違反の報告にこのツールをご使用ください。 参照:
-
-http://secondlife.com/corporate/tos.php
-http://secondlife.com/corporate/cs.php
-
-利用規約違反とコミュニティースタンダード違反に関する全てのレポートは、調査され、解決されます。
-以下のリンク先のIncident Reportにてその確認をすることができます。
-
-http://secondlife.com/support/incidentreport.php
- </notification>
-
- <notification
-
- name="HelpReportAbuseEmailEO"
- >
-重要: このレポートはLinden Lab社ではなく、\あなたが現在いる地域のオーナーに送られます。
--
-あなたが今いる地域のオーナーは、住人と訪問者への\サービスの一環として、この地域からのレポートをすべて\受け付け、解決することに同意しています。 Linden Lab社が\あなたがここから提出するレポートを調査することはありません。
-地域のオーナーは、不動産約款で指定している\地元の規則を基に、報告された問題を解決します。
-(「世界」のメニューから「土地情報」を選ぶと、約款を\閲覧できます。)
--
-このレポートに関する解決策は、この地域にだけ当てはまります。\住人がセカンドライフの他の地域へアクセスする際、\このレポートの結果に影響されることはありません。 Linden Lab社だけが\セカンドライフ全域におけるアクセス制限権を持っています。
- </notification>
-
- <notification
-
- name="HelpReportBug"
- >
-このツールは、説明どおりに動作しないなどのテクニカルなフィーチャーのレポートのみに
-使用してください。できるだけ詳しい情報を提供してください。
-自動返答メールに、より詳しい情報を付け加えて返信することも
-できます。
-バグレポートは全て調査され解決されます。これによってEメールで返答が送られてくることはありません。
--
-テクニカルな問題が生じた場合は、次のサポートに連絡してください:
-http://secondlife.com/community/support.php
--
-注意:未完成の報告は調査されません。
- </notification>
-
- <notification
-
- name="HelpReportAbuseSelectCategory"
- >
-嫌がらせ報告のカテゴリを選択してください。
-カテゴリを選択することにより、嫌がらせ報告の処理や保管に大変役立ちます。
- </notification>
-
- <notification
-
- name="HelpReportBugSelectCategory"
- >
-バグのカテゴリを選択してください。
-カテゴリを選択することにより、バグ報告の処理や保管に大変役立ちます。
- </notification>
-
- <notification
-
- name="HelpReportAbuseAbuserNameEmpty"
- >
-嫌がらせ行為をした人の名前を入力してください。
-正確な情報の入力は、嫌がらせ報告の処理や保管に大変役立ちます。
- </notification>
-
- <notification
-
- name="HelpReportAbuseAbuserLocationEmpty"
- >
-嫌がらせがあった場所を入力してください。
-正確な情報の入力は、嫌がらせ報告の処理や保管に大変役立ちます。
- </notification>
-
- <notification
-
- name="HelpReportAbuseSummaryEmpty"
- >
-嫌がらせの概要を入力してください。
-正確な概要の入力は、嫌がらせ報告の処理や保管に大変役立ちます。
- </notification>
-
- <notification
-
- name="HelpReportBugSummaryEmpty"
- >
-バグの概要を入力してください。
-正確な概要の入力は、バグ報告の処理や保管に大変役立ちます。
- </notification>
-
- <notification
-
- name="HelpReportAbuseDetailsEmpty"
- >
-嫌がらせの詳細な説明を入力してください。
-名前や嫌がらせの詳細を、できるだけ具体的に入力してください。
-
-正確な説明の入力は、嫌がらせ報告の処理や保管に大変役立ちます。
- </notification>
-
- <notification
-
- name="HelpReportBugDetailsEmpty"
- >
-バグの詳細な説明を入力してください。
-バグがどのような条件で再現するかなどを、できるだけ具体的に入力してください。
-
-正確な説明の入力は、バグ報告の処理や保管に大変役立ちます。
- </notification>
-
- <notification
-
- name="HelpReportAbuseContainsCopyright"
- >
-Dear Resident,
-
-知的財産の侵害に関する報告を行う際には、以下の点に注意してください。
-
-(1) 嫌がらせの報告のプロセス。Second Lifeの権限システムを悪用している住人を見つけたら、嫌がらせの報告を行ってください。
-例えばコピーBotの使用、それに似たツールの使用による知的財産権の侵害があります。
-アビューズチームは調査に基づきSecond Lifeのコミュニティースタンダードや利用規約に違反する行為と判断された場合には適切な処置を行っています。
-ただし、コンテンツをSecond Lifeから撤去してほしい、といった要望にはアビューズチームは応えることができません。
-
-(2) DMCA(デジタルミレニアム著作権法)及びコンテンツ撤去プロセス。 Second Lifeからのコンテンツの撤去をリクエストするには、著作権侵害通知の提出を行う必要があります。
-参照: http://secondlife.com/corporate/dmca.php
-
-この件に関する嫌がらせの報告を続ける際は、このウィンドウを閉じてください。選択すべきカテゴリは「知的財産の侵害>コピーBot及び権限の悪用」が適しているかもしれませんのでご確認ください。
-
-Thank you,
-
-Linden Lab
- </notification>
-
- <notification
-
- name="FailedRequirementsCheck"
- >
-以下の必要なコンポーネントが、[FLOATER]から抜け落ちています
-[COMPONENTS]
- </notification>
-
- <notification
-
- label="既存の付属品を置換"
- name="ReplaceAttachment"
- >
-体のこの部位にはオブジェクトが装着されています。
-選択されたオブジェクトと置き換えますか?
- <form name="form">
- <ignore name="ignore"
- save_option="true"
- text="現在、装着しているものを置換するとき"/>
- <button
-
- ignore="Replace Automatically"
-
- name="Yes"
- text="OK"/>
- <button
- ignore="Never Replace"
-
- name="No"
- text="キャンセル"/>
- </form>
- </notification>
-
- <notification
-
- label="取り込み中の警告"
- name="BusyModePay"
- >
-現在、取り込み中のため、この支払いと
-引き換えのアイテムを受け取ることが
-できません。
-
-この取引を完了する前に、取り込み中の設定を解除しますか?
- <form name="form">
- <ignore name="ignore"
- save_option="true"
- text="取り込み中の人またはオブジェクトに支払うとき"/>
- <button
-
- ignore="Always leave Busy Mode"
-
- name="Yes"
- text="OK"/>
- <button
- ignore="Never leave Busy Mode"
-
- name="No"
- text="キャンセル"/>
- </form>
- </notification>
-
- <notification
-
- name="ConfirmEmptyTrash"
- >
-ゴミ箱フォルダの中身を完全に削除しようとしています。操作を続行しますか?
- <usetemplate
- ignoretext="持ち物内の「ごみ箱」フォルダを空にするとき"
- name="okcancelignore"
- notext="キャンセル"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmClearBrowserCache"
- >
-本当にブラウザのキャッシュをクリアしますか?
- <usetemplate
- name="okcancelbuttons"
- notext="キャンセル"
- yestext="はい"/>
- </notification>
-
- <notification
-
- name="ConfirmClearCookies"
- >
-本当にクッキーをクリアしますか?
- <usetemplate
- name="okcancelbuttons"
- notext="キャンセル"
- yestext="はい"/>
- </notification>
-
- <notification
-
- name="ConfirmClearMediaUrlList"
- >
-保存された URL のリストを消去します。よろしいですか?
- <usetemplate
- name="okcancelbuttons"
- notext="キャンセル"
- yestext="はい"/>
- </notification>
-
- <notification
-
- name="ConfirmEmptyLostAndFound"
- >
-遺失物フォルダの中身を完全に削除しようとしています。操作を続行しますか?
- <usetemplate
- ignoretext="持ち物内の「遺失物」フォルダを空にするとき"
- name="okcancelignore"
- notext="いいえ"
- yestext="はい"/>
- </notification>
-
- <notification
-
- name="CopySLURL"
- >
-以下のSLURLがクリップボードにコピーされました。
- [SLURL]
-
-他の人がアクセスしやすいようにウェブ・ページに載せたり、
-ブラウザのアドレス・バーに貼り付けて、自分でアクセスしてみましょう。
- <form name="form">
- <ignore name="ignore" text="SLURLをクリップボードにコピーするとき"/>
- </form>
- </notification>
-
- <notification
-
- name="GraphicsPreferencesHelp"
- >
-このパネルでは、ウィンドウのサイズと解像度、およびクライアントのグラフィックの品質を設定することができます。「環境設定」>「表示」のインタフェースでは、低、中、高、超高の4つの中からグラフィック・レベルを選択できます。また、「カスタム」チェックボックスをクリックし、以下のグラフィックスの設定をカスタマイズすることもできます。
-
-シェーダー:ピクセル・シェーダーのさまざまな種類を有効または無効にします。
-
-反射詳細:水が反射するオブジェクトの種類を設定します。
-
-アバター・レンダリング:クライアントによるアバターのレンダリング方法に影響するオプションを設定します。
-
-描画距離:あなたの視点から視界のどのくらいの距離まで、オブジェクトがレンダリングされるかに影響します。
-
-最大パーティクル数:画面に一度に見ることができるパーティクルの最大数を設定します。
-
-ポストプロセス品質:グロー効果(輝き)がレンダリングされる際の解像度を設定します。
-
-メッシュ詳細: 特定のオブジェクトのレンダリング時の細部表現、または三角形の数を設定します。 値を大きくするほどレンダリングに時間がかかりますが、オブジェクトがより詳細に表示されます。
-
-ライティング詳細:レンダリングする光源の種類を選択します。
-
-地形詳細: 地形テクスチャの細部表現を設定します。
- </notification>
-
- <notification
-
- name="WLSavePresetAlert"
- >
-保存された事前設定を上書きしますか?
- <usetemplate
- name="okcancelbuttons"
- notext="いいえ"
- yestext="はい"/>
- </notification>
-
- <notification
-
- name="WLDeletePresetAlert"
- >
-[SKY] を削除しますか?
- <usetemplate
- name="okcancelbuttons"
- notext="いいえ"
- yestext="はい"/>
- </notification>
-
- <notification
-
- name="WLNoEditDefault"
- >
-デフォルトの設定を編集したり削除したりすることはできません。
- </notification>
-
- <notification
-
- name="WLMissingSky"
- >
-このデイ・サイクルのファイルは次の存在しない「空」ファイルを参照しています: [SKY]。
- </notification>
-
- <notification
-
- name="PPSaveEffectAlert"
- >
-ポストプロセス効果が存在します。 上書きしますか?
- <usetemplate
- name="okcancelbuttons"
- notext="いいえ"
- yestext="はい"/>
- </notification>
-
- <notification
-
- name="HelpEditSky"
- >
-ウィンドライトの各種スライダーを編集して空を作成および保存します。
- </notification>
-
- <notification
-
- name="HelpEditDayCycle"
- >
-1 日を通して変化する空の様子を設定します。
- </notification>
-
- <notification
-
- name="EnvSettingsHelpButton"
- >
-次の各設定はコンピュータ上でインワールドの環境がどのように表示されるかを調整します。 設定のすべてにアクセスするにはお使いのグラフィック・カードが周囲(大気)シェーダー (atmospheric shaders) をサポートしている必要があります。
-
-「時間帯」スライダーを調整することによりビューワで実際に使用する時間帯を変更できます。
-
-「雲の量」スライダーを調整することにより空をおおう雲の量を制御できます。
-
-「水の色」カラー・ピッカーで色を選択することにより水の色を変更できます。
-
-「水中のフォグ効果」スライダーを調整することにより水の透明度を制御できます。
-
-「不動産の時刻を使用」をクリックすることにより時刻はリセットされ地域の現在時刻に連動させることができます。
-
-「空の高度な設定」をクリックすることにより空のより高度な設定を行うための編集プログラムを起動できます。
-
-「水の高度な設定」をクリックすることにより水のより高度な設定を行うための編集プログラムを起動できます。
- </notification>
-
- <notification
-
- name="HelpDayCycle"
- >
-「デイ・サイクル編集」では Second Life での昼と夜の空の変化を制御できます。 これは「基本環境編集」の「時間帯」スライダーで使用されるサイクルです。
-
-「デイ・サイクル編集」はキーフレームを設定することで機能します。 各キーフレームにはプリセットされた空の設定が関連付けられています(時間グラフに灰色の節として表示されます)。 ウィンドライト( WindLight )はキーフレーム間をデータ補間し、時間の経過とともに空の自然なアニメーションを作り出します。
-
-時間グラフの上に表示される黄色の矢印は、時刻をもとにした現在の眺めを表しています。 黄色の矢印をクリック&ドラッグすることで、1 日の移り変わりを見ることができます。 「キーの追加」ボタンまたは「キーの削除」ボタンを押して時間グラフの右側にキーフレームを追加あるいは削除することができます。
-
-キーフレームの時刻を指定するには、時間グラフに沿ってドラッグするか「キーフレームの設定」のフレーム内で値を直接入力します。 「キーフレームの設定」のフレーム内ではキーフレームにウィンドライト( WindLight )の事前設定を関連付けることができます。
-
-「サイクルの長さ」では1 日全体の時間を指定できます。 この値を低く設定すると(例えば2分)、24 時間の時間グラフは実時間の 2 分間に相当することを意味します。 時間グラフとキーフレーム・サイクルの設定が完了したら、「再生」ボタンと「停止」ボタンを使用して結果をプレビューしてみましょう。 また、時間グラフ上の黄色い時刻表示矢印を移動することによってもサイクルの変化をインタラクティブに確認することができます。 「不動産の時刻を使用」ボタンを使用することで日の長さと時刻が不動産のデイ・サイクルに同期されます。
-
-デイ・サイクルの設定が完了したら、「デイ・テストを保存」ボタンおよび「デイ・テストをロード」ボタンを使用してデイ・サイクルを保存およびロードします。 尚、現在の仕様ではデイ・サイクルで指定できるのは 1 日分だけです。
- </notification>
-
- <notification
-
- name="HelpBlueHorizon"
- >
-空の色を調整するには 「R」 (赤)、「G」 (緑)、「B」 (青) の各スライダーを使用します。  「I」 スライダーを使用すると、3 つの RGB スライダーを一斉に動かすことができます。
- </notification>
-
- <notification
-
- name="HelpHazeHorizon"
- >
-「空と遠景の露光」は風景の露光量全体を調整する上で最も便利なパラメーターの 1 つです。 太陽光によるホワイトアウト現象や暗く絞り込んだ設定など、さまざまな露出設定をシミュレーションできます。
- </notification>
-
- <notification
-
- name="HelpBlueDensity"
- >
-「空の配色と濃度」は空と霧の彩度全体に影響します。 「I」 スライダーを右に移動すると色は明るくくっきりとなります。 このスライダーを左端に移動すると、色は彩りを失い、白黒に退色します。 空の色を微調整する場合は、「R」 (赤)、 「G」 (緑)、 「B」 (青) の各スライダーを使用して彩度を個別に制御できます。
- </notification>
-
- <notification
-
- name="HelpHazeDensity"
- >
-「大気の不透明度」は大気中のどんよりとした空の雰囲気、グレーがかった霧のレベルを制御します。 濃い煙や大気汚染など
-を表現するのに適しています。 霧やもやなどの表現手段としても効果的です。
- </notification>
-
- <notification
-
- name="HelpDensityMult"
- >
-「大気の不透明度の増幅」は空気の濃度全体を制御するために使用できます。 この値を低く設定すると「大気の薄い状態」を演出し、高い数値に設定するととてもどんよりとしたスモッグのかかった雰囲気を表現できます。
- </notification>
-
- <notification
-
- name="HelpDistanceMult"
- >
-ウィンドライトの視覚的距離を調整します。 値としてゼロを設定すると、地形およびオブジェクトに対する
-ウィンドライトの影響を効果的に取り消すことができます。 1 より大きな値を設定する場合、値が大きくなるにつれて
-大気が次第に濃くなるような効果が得られます。
- </notification>
-
- <notification
-
- name="HelpMaxAltitude"
- >
-「最大高度」では大気中の光の量を算出するときに
-ウィンドライトが算出した高度を調整します。 1 日の終わりに夕焼けの度合いを調整するときに役立ちます。
- </notification>
-
- <notification
-
- name="HelpSunlightColor"
- >
-風景の中で直射日光の色や強さを調整します。
- </notification>
-
- <notification
-
- name="HelpSunAmbient"
- >
-風景の中で周囲をとりまく大気中のアンビエント光の色や強さを調整します。
- </notification>
-
- <notification
-
- name="HelpSunGlow"
- >
-「サイズ」スライダーは太陽の大きさを制御します。
-「フォーカス」スライダーは空を背にした太陽のかすみ具合を制御します。
- </notification>
-
- <notification
-
- name="HelpSceneGamma"
- >
-風景の中で明暗の配分を調整します。
- </notification>
-
- <notification
-
- name="HelpStarBrightness"
- >
-空の星の輝きを調整します。
- </notification>
-
- <notification
-
- name="HelpTimeOfDay"
- >
-空の太陽の場所を調整します。
-標高に似ています。
- </notification>
-
- <notification
-
- name="HelpEastAngle"
- >
-空の太陽の場所を調整します。
-方位角に似ています。
- </notification>
-
- <notification
-
- name="HelpCloudColor"
- >
-雲の色を編集します。 通常は白っぽい色をお勧めしますが、もちろん
-お好みの色を設定してください。
- </notification>
-
- <notification
-
- name="HelpCloudDetail"
- >
-主要な雲のイメージの上にレイヤーされた詳細なイメージを制御します。 X と Y でその位置を制御します。 「D」 (濃度) は真綿のような様子や雲の割れ目の
-様子など雲の外観を制御します。
- </notification>
-
- <notification
-
- name="HelpCloudDensity"
- >
-「X」 と 「Y」 のスライダーで雲の位置を、
-「D」 のスライダーでその密度を制御
-できます。
- </notification>
-
- <notification
-
- name="HelpCloudCoverage"
- >
-空を覆う雲の量を制御します。
- </notification>
-
- <notification
-
- name="HelpCloudScale"
- >
-空に浮かぶ雲のイメージの縮尺を制御します。
- </notification>
-
- <notification
-
- name="HelpCloudScrollX"
- >
-「X」 の方向に雲が移動する際の速度を制御します。
- </notification>
-
- <notification
-
- name="HelpCloudScrollY"
- >
-「Y」 の方向に雲が移動する際の速度を制御します。
- </notification>
-
- <notification
-
- name="HelpClassicClouds"
- >
-このボックスを有効にすると、WindLight の雲に加えて、Second Life の従来の雲もレンダリングできるようになります。
- </notification>
-
- <notification
-
- name="HelpWaterFogColor"
- >
-水中のフォグ効果に色をつけます。
- </notification>
-
- <notification
-
- name="HelpWaterFogDensity"
- >
-水中のフォグ効果の強弱、水中でどのくらいの距離まで見渡せるかを制御します。
- </notification>
-
- <notification
-
- name="HelpUnderWaterFogMod"
- >
-「水中のフォグ濃度指数」の効果を加減して、あなたのアバターが水中にいるとき、どのくらい遠くまで見ることができるかを制御します。
- </notification>
-
- <notification
-
- name="HelpWaterGlow"
- >
-水面の輝きの度合いを制御します。
- </notification>
-
- <notification
-
- name="HelpWaterNormalScale"
- >
-水面を表現する 3 種類のさざ波の縮尺を制御します。
- </notification>
-
- <notification
-
- name="HelpWaterFresnelScale"
- >
-さまざまな角度で、反射する光の量を制御します。
- </notification>
-
- <notification
-
- name="HelpWaterFresnelOffset"
- >
-反射する光度の量を制御します。
- </notification>
-
- <notification
-
- name="HelpWaterScaleAbove"
- >
-上から水中を見たときの光の屈折具合を制御します。
- </notification>
-
- <notification
-
- name="HelpWaterScaleBelow"
- >
-水中から見たときの光の屈折具合を制御します。
- </notification>
-
- <notification
-
- name="HelpWaterBlurMultiplier"
- >
-波と反射の混ざり具合を制御します。
- </notification>
-
- <notification
-
- name="HelpWaterNormalMap"
- >
-反射や屈折を決定するために水に重ねられるノーマル・マップを制御します。
- </notification>
-
- <notification
-
- name="HelpWaterWave1"
- >
-拡大されたノーマル・マップが移動する方向(X 軸と Y 軸で表現)と速度を制御します。
- </notification>
-
- <notification
-
- name="HelpWaterWave2"
- >
-縮小されたノーマル・マップが移動する方向(X 軸と Y 軸で表現)と速度を制御します。
- </notification>
-
- <notification
-
- name="NewSkyPreset"
- >
-新しい空の名前を指定してください。
- <form name="form">
- <input name="message" type="text">
-新しい事前設定
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="キャンセル"/>
- </form>
- </notification>
-
- <notification
-
- name="ExistsSkyPresetAlert"
- >
-事前設定がすでに存在します!
- </notification>
-
- <notification
-
- name="NewWaterPreset"
- >
-新しい水の事前設定の名前を指定してください。
- <form name="form">
- <input name="message" type="text">
-新しい事前設定
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="キャンセル"/>
- </form>
- </notification>
-
- <notification
-
- name="ExistsWaterPresetAlert"
- >
-事前設定がすでに存在します!
- </notification>
-
- <notification
-
- name="WaterNoEditDefault"
- >
-デフォルトの設定を編集したり削除したりすることはできません。
- </notification>
-
- <notification
-
- name="ChatterBoxSessionStartError"
- >
-[RECIPIENT]との新しいチャットを開始することができません
-[REASON]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ChatterBoxSessionEventError"
- >
-[EVENT]
-[REASON]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ForceCloseChatterBoxSession"
- >
-[NAME]とのチャットセッションを閉じます。
-[REASON]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="Cannot_Purchase_an_Attachment"
- >
-アイテムが添付物の一部である間は、
-アイテムを購入できません。
- </notification>
-
- <notification
-
- label="デビット許可のリクエストについて"
- name="DebitPermissionDetails"
- >
-この要求を許可すると、スクリプトからあなたのアカウントにリンデン・ドルを課金できるようになります。 この許可を取り消すには、オブジェクトのオーナーはオブジェクトを削除するか、オブジェクトのスクリプトをリセットしなければなりません。
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="AutoWearNewClothing"
- >
-あなたが作成した服アイテムを自動的に装着しますか?
- <usetemplate
- ignoretext="新しい服を自動的に装着する"
- name="okcancelignore"
- notext="いいえ"
- yestext="はい"/>
- </notification>
-
- <notification
-
- name="NotAgeVerified"
- >
-この区画にアクセスするためには、年齢確認を行う必要があります。
-Second Lifeのウェブサイトにアクセスして、年齢確認を行いますか?
-
-[_URL]
- <url option="0" name="url">
-
- https://secondlife.com/account/verification.php?lang=ja
- </url>
- <usetemplate
- ignoretext="年齢の未確認について警告する"
- name="okcancelignore"
- notext="いいえ"
- yestext="はい"/>
- </notification>
-
- <notification
-
- name="Cannot enter parcel: no payment info on file"
- >
-この区画にアクセスするには、支払い情報が事前に登録されている必要があります。
-Second Lifeのウェブサイトにアクセスして、設定しますか?
-
-[_URL]
- <url option="0" name="url">
-
- https://secondlife.com/account/index.php?lang=ja
- </url>
- <usetemplate
- ignoretext="支払い情報の未登録について警告する"
- name="okcancelignore"
- notext="いいえ"
- yestext="はい"/>
- </notification>
-
- <notification
-
- name="MissingString"
- >
-文字列[STRING_NAME]がstrings.xmlに含まれていません
- </notification>
-
- <notification
-
- name="SystemMessageTip"
- >
-[MESSAGE]
- </notification>
-
- <notification
-
- name="Cancelled"
- >
-取り消されました
- </notification>
-
- <notification
-
- name="CancelledSit"
- >
-座るのを取り消されました
- </notification>
-
- <notification
-
- name="CancelledAttach"
- >
-添付は取り消されました
- </notification>
-
- <notification
-
- name="ReplacedMissingWearable"
- >
-欠落している服/身体部位をデフォルトに置換します。
- </notification>
-
- <notification
-
- name="GroupNotice"
- >
-件名: [SUBJECT], メッセージ: [MESSAGE]
- </notification>
-
- <notification
-
- name="FriendOnline"
- >
-[FIRST] [LAST]はオンラインです。
- </notification>
-
- <notification
-
- name="FriendOffline"
- >
-[FIRST] [LAST]はオフラインです。
- </notification>
-
- <notification
-
- name="AddSelfFriend"
- >
-自分自身をフレンドにはできません。
- </notification>
-
- <notification
-
- name="UploadingAuctionSnapshot"
- >
-インワールドとウェブ・サイトのスナップショットをアップロード中です...
-(所要時間:約5分)
- </notification>
-
- <notification
-
- name="UploadPayment"
- >
-アップロードに L$[AMOUNT] 支払いました。
- </notification>
-
-
-
- <notification
-
- name="UploadSnapshotDone"
- >
-インワールドでのスナップショットのアップロードが完了しました。
- </notification>
-
- <notification
-
- name="TerrainDownloaded"
- >
-raw地形がダウンロードされました
- </notification>
-
- <notification
-
- name="GestureMissing"
- >
-ジェスチャー[NAME]がデータベースにありません。
- </notification>
-
- <notification
-
- name="UnableToLoadGesture"
- >
-ジェスチャー[NAME]を読み込むことができません。
-再度、試みてください。
- </notification>
-
- <notification
-
- name="LandmarkMissing"
- >
-データベースにランドマークがありません。
- </notification>
-
- <notification
-
- name="UnableToLoadLandmark"
- >
-ランドマークをロードできません。 もう一度試してください。
- </notification>
-
- <notification
-
- name="CapsKeyOn"
- >
-コンピューターの Caps Lockキーが
-有効になっています。パスワード入力に
-影響するので解除しましょう。
- </notification>
-
- <notification
-
- name="NotecardMissing"
- >
-ノートカードがデータベースにありません。
- </notification>
-
- <notification
-
- name="NotecardNoPermissions"
- >
-ノートカードを閲覧するには権限が不十分です。
- </notification>
-
- <notification
-
- name="RezItemNoPermissions"
- >
-オブジェクトをrezするにはパーミッション(承認)が不足してます。
- </notification>
-
- <notification
-
- name="UnableToLoadNotecard"
- >
-ノートカードをロードできません。
-もう一度試してください。
- </notification>
-
- <notification
-
- name="ScriptMissing"
- >
-データベースにスクリプトがありません。
- </notification>
-
- <notification
-
- name="ScriptNoPermissions"
- >
-スクリプトを閲覧するには権限が不十分です。
- </notification>
-
- <notification
-
- name="UnableToLoadScript"
- >
-スクリプトをロードできません。 もう一度試してください。
- </notification>
-
- <notification
-
- name="IncompleteInventory"
- >
-あなたの提供するコンテンツは、この場所ではまだ全部揃いません。
-少ししてからもう一度試してください。
- </notification>
-
- <notification
-
- name="CannotModifyProtectedCategories"
- >
-保護されたカテゴリーは修正できません。
- </notification>
-
- <notification
-
- name="CannotRemoveProtectedCategories"
- >
-保護されたカテゴリーは削除できません。
- </notification>
-
- <notification
-
- name="OfferedCard"
- >
-あなたは[FIRST] [LAST]にコーリング・カードを送りました。
- </notification>
-
- <notification
-
- name="UnableToBuyWhileDownloading"
- >
-オブジェクトデータのダウンロード中は購入できません。
-もう一度試してください。
- </notification>
-
- <notification
-
- name="UnableToLinkWhileDownloading"
- >
-オブジェクトデータのウンロード中はリンクできません。
-もう一度試してください。
- </notification>
-
- <notification
-
- name="CannotBuyObjectsFromDifferentOwners"
- >
-複数のオーナーから同時にオブジェクトを購入することはできません。
-単一のオブジェクトを選択してください。
- </notification>
-
- <notification
-
- name="ObjectNotForSale"
- >
-オブジェクトは販売対象ではありません。
- </notification>
-
- <notification
-
- name="EnteringGodMode"
- >
-レベル[LEVEL]のゴッド・モードに入ります
- </notification>
-
- <notification
-
- name="LeavingGodMode"
- >
-レベル[LEVEL]のゴッド・モードを解除
- </notification>
-
- <notification
-
- name="CopyFailed"
- >
-コピー権限がないため、コピーが失敗しました。
- </notification>
-
- <notification
-
- name="InventoryAccepted"
- >
-[NAME]は、持ち物の提供を受け入れました。
- </notification>
-
- <notification
-
- name="InventoryDeclined"
- >
-[NAME]は、持ち物の提供を断りました。
- </notification>
-
- <notification
-
- name="ObjectMessage"
- >
-[NAME]: [MESSAGE]
- </notification>
-
- <notification
-
- name="CallingCardAccepted"
- >
-コーリング・カードが受理されました。
- </notification>
-
- <notification
-
- name="CallingCardDeclined"
- >
-コーリング・カードが拒否されました。
- </notification>
-
- <notification
-
- name="TeleportToLandmark"
- >
-本土に到達しました。[NAME]などの場所にテレポートするには、画面右下にある持ち物ボタンをクリックし、ランドマークフォルダを選択してください。
-ランドマークをダブルクリックした後「テレポート」をクリックするとその場所へ移動します。
- </notification>
-
- <notification
-
- name="TeleportToPerson"
- >
-本土に到達しました。住人の[NAME]と接触するには、画面右下にある持ち物ボタンをクリックし、コーリング・カード・フォルダを選択してください。
-カードをダブルクリックし、インスタント・メッセージをクリックし、メッセージを送信してください。
- </notification>
-
- <notification
-
- name="CantSelectLandFromMultipleRegions"
- >
-サーバーの境界を越えて土地を選択することできません。
-もっと小さな土地を選択してください。
- </notification>
-
- <notification
-
- name="GroupVote"
- >
-[NAME] は投票の申請をしています:
-[MESSAGE]
- <form name="form">
- <button
-
- name="VoteNow"
- text="今すぐ投票する"/>
- <button
-
- name="Later"
- text="あとで"/>
- </form>
- </notification>
-
- <notification
-
- name="SystemMessage"
- >
-[MESSAGE]
- </notification>
-
- <notification
-
- name="EventNotification"
- >
-イベント通知:
-
-[NAME]
-[DATE]
- <form name="form">
- <button
-
- name="Teleport"
- text="テレポート"/>
- <button
-
- name="Description"
- text="説明"/>
- <button
-
- name="Cancel"
- text="取り消し"/>
- </form>
- </notification>
-
- <notification
-
- name="TransferObjectsHighlighted"
- >
-この区画上に存在するオブジェクトのうち、この区画の購入者に譲渡されるオブジェクトがすべて強調表示されます。
-
-
-*譲渡される樹木や植物は、強調表示されません。
- <form name="form">
- <button
-
- name="Done"
- text="完了"/>
- </form>
- </notification>
-
- <notification
-
- name="DeactivatedGesturesTrigger"
- >
-同じトリガーでアクティブにしないジェスチャー:
-[NAMES]
- </notification>
-
- <notification
-
- name="NoQuickTime"
- >
-Apple社のQuickTimeがシステムにインストールされていないと思われます。
-ストリーミング・メディアの再生を行いたい場合は、QuickTimeのサイト(http://www.apple.com/quicktime)にアクセスして、QuickTime Playerをインストールしてください。
- </notification>
-
- <notification
-
- name="OwnedObjectsReturned"
- >
-選択された土地の区画上にあったあなたのオブジェクトは
-あなたの持ち物に返却されました。
- </notification>
-
- <notification
-
- name="OtherObjectsReturned"
- >
-選択されている土地の区画上にあった
- [FIRST] [LAST]が所有するオブジェクトはオーナーの持ち物に返却されました。
- </notification>
-
- <notification
-
- name="OtherObjectsReturned2"
- >
-選択された土地の区画上にあり、住人の
-[NAME]の所有だったオブジェクトはオーナーに返却されました。
- </notification>
-
- <notification
-
- name="GroupObjectsReturned"
- >
-選択されている区画上にあり、[GROUPNAME] というグループと共有だったオブジェクトは、オーナーの持ち物に返却されました。
-譲渡されていた譲渡可能なオブジェクトは、前のオーナーに返却されました。
-グループに譲渡されていた譲渡不可能なオブジェクトは、削除されました。
- </notification>
-
- <notification
-
- name="UnOwnedObjectsReturned"
- >
-選択された土地の区画上にあり、あなたの所有で「なかった」オブジェクトは、本来のオーナーに返却されました。
- </notification>
-
- <notification
-
- name="NotSafe"
- >
-この土地はダメージが有効(「安全ではない」)に設定されています。
-ケガをするかもしれません。 命を落とした場合は、ホームにテレポートされます。
- </notification>
-
- <notification
-
- name="NoFly"
- >
-この土地は飛行が無効(「飛行禁止」)に設定されています。
-ここで飛ぶことはできません。
- </notification>
-
- <notification
-
- name="PushRestricted"
- >
-この土地では「プッシング禁止」です。
-土地所有者以外はここで他人をプッシュすることはできません。
- </notification>
-
- <notification
-
- name="NoVoice"
- >
-この土地はボイスが無効に設定されています。
- </notification>
-
- <notification
-
- name="NoBuild"
- >
-この土地はオブジェクトの作成禁止に設定されています。
-ここでオブジェクトを作ることはできません。
- </notification>
-
- <notification
-
- name="ScriptsStopped"
- >
-管理者がこの地域内のスクリプトを一時停止させました。
- </notification>
-
- <notification
-
- name="ScriptsNotRunning"
- >
-この地域ではスクリプトの使用が禁止されています
- </notification>
-
- <notification
-
- name="NoOutsideScripts"
- >
-この土地では外部スクリプトが無効に設定されています。
-(「外部スクリプト禁止」)
-土地所有者以外のスクリプトは起動できません。
- </notification>
-
- <notification
-
- name="ClaimPublicLand"
- >
-自分がいる地域でのみ公共の土地を獲得できます。
- </notification>
-
- <notification
-
- name="ObjectGiveItem"
- >
-[FIRST] [LAST]所有の[OBJECTFROMNAME]から、[OBJECTNAME]という[OBJECTTYPE]が送られてきました。
- <form name="form">
- <button
-
- name="Keep"
- text="受け取る"/>
- <button
-
- name="Discard"
- text="破棄"/>
- <button
-
- name="Mute"
- text="無視リストへ"/>
- </form>
- </notification>
-
- <notification
-
- name="ObjectGiveItemUnknownUser"
- >
-(未知のユーザー) 所有の[OBJECTFROMNAME]から、あなたに[OBJECTNAME]という[OBJECTTYPE]が送られてきました。
- <form name="form">
- <button
-
- name="Keep"
- text="受け取る"/>
- <button
-
- name="Discard"
- text="破棄"/>
- <button
-
- name="Mute"
- text="無視リストへ"/>
- </form>
- </notification>
-
- <notification
-
- name="UserGiveItem"
- >
-[NAME]は、あなたに[OBJECTNAME]という名前の[OBJECTTYPE]を渡しました。
- <form name="form">
- <button
-
- name="Keep"
- text="受け取る"/>
- <button
-
- name="Discard"
- text="破棄"/>
- <button
-
- name="Mute"
- text="無視リストへ"/>
- </form>
- </notification>
-
- <notification
-
- name="GodMessage"
- >
-[NAME]
-[MESSAGE]
- </notification>
-
- <notification
-
- name="JoinGroup"
- >
-[MESSAGE]
- <form name="form">
- <button
-
- name="Join"
- text="参加"/>
- <button
-
- name="Decline"
- text="辞退"/>
- <button
-
- name="Info"
- text="情報"/>
- </form>
- </notification>
-
- <notification
-
- name="TeleportOffered"
- >
-[NAME]はあなたをテレポートで呼び寄せようとしています:
-
-[MESSAGE]
- <form name="form">
- <button
-
- name="Teleport"
- text="テレポート"/>
- <button
-
- name="Cancel"
- text="取り消し"/>
- </form>
- </notification>
-
- <notification
-
- name="GotoURL"
- >
-[MESSAGE]
-[URL]
- <form name="form">
- <button
-
- name="Later"
- text="あとで"/>
- <button
-
- name="GoNow..."
- text="今すぐ行く..."/>
- </form>
- </notification>
-
- <notification
-
- name="OfferFriendship"
- >
-[NAME]は、フレンド 登録を申し込んでいます。
-
-[MESSAGE]
-
-(デフォルトでお互いのオンライン・ステータスを見ることができるようになります。)
- <form name="form">
- <button
-
- name="Accept"
- text="受け入れる"/>
- <button
-
- name="Decline"
- text="辞退"/>
- </form>
- </notification>
-
- <notification
-
- name="OfferFriendshipNoMessage"
- >
-[NAME]は、フレンド 登録を申し込んでいます。
-
-(デフォルトでお互いのオンライン・ステータスを見ることができるようになります。)
- <form name="form">
- <button
-
- name="Accept"
- text="受け入れる"/>
- <button
-
- name="Decline"
- text="拒否"/>
- </form>
- </notification>
-
- <notification
-
- name="FriendshipAccepted"
- >
-[NAME]は、フレンド 登録を受け入れました。
- </notification>
-
- <notification
-
- name="FriendshipDeclined"
- >
-[NAME]は、フレンド 登録を断りました。
- </notification>
-
- <notification
-
- name="OfferCallingCard"
- >
-[FIRST] [LAST]がコーリング・カードを送ってきています。
-これにより、あなたの持ち物にブックマークが追加され、
-この住人にすばやくIMすることができます。
- <form name="form">
- <button
-
- name="Accept"
- text="受け入れる"/>
- <button
-
- name="Decline"
- text="辞退"/>
- </form>
- </notification>
-
- <notification
-
- name="RegionRestartMinutes"
-
-
- >
-この地域は[MINUTES]分後に再起動されます。
-強制ログアウトとなりますので、この地域の外に出てください。
- </notification>
-
- <notification
-
- name="RegionRestartSeconds"
-
-
- >
-この地域は[SECONDS]秒後に再起動されます。
-強制ログアウトとなりますので、この地域の外に出てください。
- </notification>
-
- <notification
-
- name="LoadWebPage"
- >
-ウェブ・ページ[URL]をロードしますか?
-
-[MESSAGE]
-
-ロード元のオブジェクト:[OBJECTNAME]、オーナー:[NAME]?
- <form name="form">
- <button
-
- name="Gotopage"
- text="ページに移動"/>
- <button
-
- name="Cancel"
- text="取り消し"/>
- </form>
- </notification>
-
- <notification
-
- name="FailedToFindWearableUnnamed"
- >
-データベースに[TYPE]が見つかりませんでした。
- </notification>
-
- <notification
-
- name="FailedToFindWearable"
- >
-データベースに[DESC]という名前の[TYPE]が見つかりませんでした。
- </notification>
-
- <notification
-
- name="ScriptQuestion"
- >
-「[NAME]」が所有するオブジェクト「[OBJECTNAME]」を:
-
-[QUESTIONS]
-よろしいですか?
- <form name="form">
- <button
-
- name="Yes"
- text="はい"/>
- <button
-
- name="No"
- text="いいえ"/>
- <button
-
- name="Mute"
- text="無視リストに追加"/>
- </form>
- </notification>
-
- <notification
-
- name="ScriptQuestionCaution"
- >
-「[OBJECTNAME]」が所有するオブジェクト「[NAME]」は、次のことを求めています:
-
-[QUESTIONS]
-このオブジェクトと制作者が信用できない場合は、リクエストを拒否してください。追加情報は、詳細ボタンをクリックしてください。
-
-このリクエストを許可しますか?
- <form name="form">
- <button
-
- name="Grant"
- text="許可"/>
- <button
-
- name="Deny"
- text="拒否"/>
- <button
-
- name="Details"
- text="詳細..."/>
- </form>
- </notification>
-
- <notification
-
- name="ScriptDialog"
- >
-[FIRST] [LAST]の「[TITLE]」
-[MESSAGE]
- <form name="form">
- <button
-
- name="Ignore"
- text="無視する"/>
- </form>
- </notification>
-
- <notification
-
- name="ScriptDialogGroup"
- >
-[GROUPNAME]の「[TITLE]」
-[MESSAGE]
- <form name="form">
- <button
-
- name="Ignore"
- text="無視する"/>
- </form>
- </notification>
-
- <notification
-
- name="FirstBalanceIncrease"
- >
-L$[AMOUNT]を受け取りました。
-オブジェクトおよび他のユーザーがあなたにお金を支払ったようです。
-あなたの残高は画面の右上に表示されて います。
- </notification>
-
- <notification
-
- name="FirstBalanceDecrease"
- >
-L$[AMOUNT]を支払いました。
-あなたの残高は画面の右上に表示されて います。
- </notification>
-
- <notification
-
- name="FirstSit"
- >
-あなたは座っています。
-矢印(または AWSD)のキーを使って視点を変えます。
-立ち上がるには「立ち上がる」をクリックします。
- </notification>
-
- <notification
-
- name="FirstMap"
- >
-地図をスクロールするには、クリックしてドラッグします。
-テレポートするには、ダブルクリックします。
-右側のコントロールを使用すると、物を見つけたり、
-別の背景を表示することができます。
- </notification>
-
- <notification
-
- name="FirstBuild"
- >
-[SECOND_LIFE]には、新しいオブジェクトを作ることができる地域があります。
-作成には画面上部左のツールが使え、Ctrl キーや
- Alt キーを押したままにすれば素早くツールを切り替えられます。
- Escキーを押すと、作成は終了します。
- </notification>
-
- <notification
-
- name="FirstLeftClickNoHit"
- >
-左クリックにより、特別なオブジェクトを操作できます。
-マウス・ポインタが手のマークに変わる場合、
-ポイントしているオブジェクトを操作できます。
-右クリックにより、実行可能な操作のメニューが表示されます。
- </notification>
-
- <notification
-
- name="FirstTeleport"
- >
-この地域では、ポイント間のテレポートが認められていませんので、最も近いテレハブ周辺に移動しました。
-あなたの目的地は、大きな標識(ビーコン)で表示されています。赤い矢印に向かって進むと標識(ビーコン)へ辿り着きます。
-矢印をクリックすると標識(ビーコン)を消せます
- </notification>
-
- <notification
-
- name="FirstOverrideKeys"
- >
-あなたの移動キーをオブジェクトが操作しています。
-矢印かAWSDのキーで動作を確認してください。
-銃などのオブジェクトだと、一人称視点(マウスルック)に変更する必要があります。
-Mキーを押して変更します。
- </notification>
-
- <notification
-
- name="FirstAppearance"
- >
-あなたは容姿を編集中です。
-回転、ズームするには矢印キーを使います。
-編集が終わったら「すべて保存」をクリックして容姿を保存し、終了します。
-容姿の編集は何度でも行えます。
- </notification>
-
- <notification
-
- name="FirstInventory"
- >
-これは、オブジェクト、ノートカード、服、その他あなたの所有物がすべて入った「持ち物」です。
-*マウスでアバターにオブジェクトや服装フォルダをドラッグして装着します。
-*オブジェクトを地面の上にドラッグすると、周囲の世界に表示させます。(Rez)
-*ノートカードを読むには、ダブルクリックします。
- </notification>
-
- <notification
-
- name="FirstSandbox"
- >
-ここはサンドボックスです。
-あなたがここで作ったオブジェクトはあなたが立ち去った後、削除されるかもしれません。サンドボックスは定期的に清掃されます。詳細については、画面上部、地域名の隣の情報を参照してください。
-
-サンドボックスは特別なエリアで、目印のサインがついています。
- </notification>
-
- <notification
-
- name="FirstFlexible"
- >
-このオブジェクトは フレキシブルです。
-フレキシブル・チェックボックスのチェックが外されるまでは、
-オブジェクトは物理的でなくファントムでなければなりません。
- </notification>
-
- <notification
-
- name="FirstDebugMenus"
- >
-高度な設定を有効にしました。
-このメニューには、Second Life をデバッグするデベロッパーにとって有用な機能があります。
-このメニューを切り替えるには、Windows では Ctrl-Alt-Dを押します。Macの場合は、Cmd-Opt-Shift-Dを押してください。
- </notification>
-
- <notification
-
- name="FirstSculptedPrim"
- >
-スカルプトプリムを編集しています。
-スカルプトプリムは、形状を指定するための特別なテクスチャーが必要です。
-持ち物ライブラリで、スカルプトテクスチャーのサンプルを参照できます。
- </notification>
-
- <notification
-
- name="FirstMedia"
- >
-メディアの再生を開始しました。 オーディオ/ビデオの環境設定で、自動的にメディアを再生するように設定することができます。 注: この設定により、信頼しないメディア・サイトに接続されるセキュリティ・リスクが伴います。
- </notification>
-
- <notification
-
- name="MaxListSelectMessage"
- >
-このリストから、 [MAX_SELECT] 個までのアイテムを選択できます。
- </notification>
-
- <notification
-
- name="VoiceInviteP2P"
- >
-[NAME]が、あなたをボイスチャットコールに招待しています。
-コールに参加するには「受け入れる」をクリックし、招待を断るときは「拒否」をクリックしてください。このコールをしている人をミュートにする場合は「ミュート」をクリックしてください。
- <form name="form">
- <button
-
- name="Accept"
- text="受け入れる"/>
- <button
-
- name="Decline"
- text="拒否"/>
- <button
-
- name="Mute"
- text="ミュート"/>
- </form>
- </notification>
-
- <notification
-
- name="AutoUnmuteByIM"
- >
-[FIRST] [LAST]にインスタント・メッセージが送信され、 無視設定が自動的に解除されました。
- </notification>
-
- <notification
-
- name="AutoUnmuteByMoney"
- >
-[FIRST] [LAST]にお金を渡したため、 無視設定が自動的に解除されました。
- </notification>
-
- <notification
-
- name="AutoUnmuteByInventory"
- >
-[FIRST] [LAST]に持ち物を渡したため、 無視設定が自動的に解除されました。
- </notification>
-
- <notification
-
- name="VoiceInviteGroup"
- >
-[NAME]が、グループ[GROUP]とのボイスチャットコールに参加しました。
-コールに参加するには「受け入れる」をクリックし、招待を断るときは「拒否」をクリックしてください。このコールをしている人をミュートにする場合は「ミュート」をクリックしてください。
- <form name="form">
- <button
-
- name="Accept"
- text="受け入れる"/>
- <button
-
- name="Decline"
- text="拒否"/>
- <button
-
- name="Mute"
- text="ミュート"/>
- </form>
- </notification>
-
- <notification
-
- name="VoiceInviteAdHoc"
- >
-[NAME]が、会議チャットでボイスチャットコールに参加しました。
-コールに参加するには「受け入れる」をクリックし、招待を断るときは「拒否」をクリックしてください。 このユーザーをミュート(消声)する場合は「ミュート」をクリックしてください。
- <form name="form">
- <button
-
- name="Accept"
- text="受け入れる"/>
- <button
-
- name="Decline"
- text="拒否"/>
- <button
-
- name="Mute"
- text="ミュート"/>
- </form>
- </notification>
-
- <notification
-
- name="InviteAdHoc"
- >
-[NAME]が、あなたを会議チャットに招待しています。
-チャットに参加するには「受け入れる」をクリックし、招待を断るときは「拒否」をクリックしてください。このユーザーをミュート(消声)する場合は「ミュート」をクリックしてください。
- <form name="form">
- <button
-
- name="Accept"
- text="受け入れる"/>
- <button
-
- name="Decline"
- text="拒否"/>
- <button
-
- name="Mute"
- text="ミュート"/>
- </form>
- </notification>
-
- <notification
-
- name="VoiceChannelFull"
- >
-あなたが参加しようとしているボイスコール[VOICE_CHANNEL_NAME]は、参加者が最大限に達しました。後でもう一度お試しください。
- </notification>
-
- <notification
-
- name="ProximalVoiceChannelFull"
- >
-このエリアのボイスチャットは混雑のため容量を超えてしまっています。申し訳ありませんが、他のエリアでボイスチャットをお試しください
- </notification>
-
- <notification
-
- name="VoiceChannelDisconnected"
- >
-[VOICE_CHANNEL_NAME]への接続が切断されました。空間ボイスチャットに再接続されます。
- </notification>
-
- <notification
-
- name="VoiceChannelDisconnectedP2P"
- >
-[VOICE_CHANNEL_NAME]は、コールを終了しました。空間ボイスチャットに再接続されます。
- </notification>
-
- <notification
-
- name="P2PCallDeclined"
- >
-[VOICE_CHANNEL_NAME]は、あなたのコールを拒否しました。空間ボイスチャットに再接続されます。
- </notification>
-
- <notification
-
- name="P2PCallNoAnswer"
- >
-[VOICE_CHANNEL_NAME]は、あなたのコールを受け取れません。空間ボイスチャットに再接続されます。
- </notification>
-
- <notification
-
- name="VoiceChannelJoinFailed"
- >
-[VOICE_CHANNEL_NAME]への接続に失敗しました。時間をおいて、再度、試みてください。空間ボイスチャットに再接続されます。
- </notification>
-
- <notification
-
- name="VoiceLoginRetry"
- >
-あなた用のボイスチャンネルを作成しています。1分ほどかかります。
- </notification>
-
- <notification
-
- name="Cannot enter parcel: not a group member"
- >
-適切なグループのメンバーではないため、区画に入ることができません。
- </notification>
-
- <notification
-
- name="Cannot enter parcel: banned"
- >
-排除されているため、区画に入ることができません。
- </notification>
-
- <notification
-
- name="Cannot enter parcel: not on access list"
- >
-アクセス・リストに含まれていないため、区画に入ることができません。
- </notification>
-
- <notification
-
- name="VoiceNotAllowed"
- >
-あなたには[VOICE_CHANNEL_NAME]のボイス・チャットに接続する権限がありません。
- </notification>
-
- <notification
-
- name="VoiceCallGenericError"
- >
-[VOICE_CHANNEL_NAME]のボイス・チャットに接続中に、エラーが発生しました。後でもう一度お試しください。
- </notification>
-
- <notification
-
- name="ServerVersionChanged"
- >
-到着した地域は異なるシミュレーターのバージョンで実行されています。 詳細についてはこのメッセージをクリックしてください。
- </notification>
-
- <notification
-
- name="UnableToOpenCommandURL"
- >
-クリックしたURLはこのウェブブラウザでは開けません
- </notification>
-
- <global name="UnsupportedCPU">
-- あなたの CPU の速度は必須動作環境の条件を満たしていません。
- </global>
-
- <global name="UnsupportedGLRequirements">
-Second Life の使用に必要なハードウェアの環境が満たされていないようです。 Second Life ではマルチテクスチャーに対応したOpenGLグラフィック・カードが必要です。 この場合、グラフィック・カードの最新ドライバがインストールされていること、およびオペレーティング・システムにサービス・パックと修正プログラムが適用されていることをご確認ください。
-
-問題が解決されない場合には、次のサイトにアクセスしてください。 http://www.secondlife.com/support
- </global>
-
- <global name="UnsupportedCPUAmount">
-796
- </global>
-
- <global name="UnsupportedRAMAmount">
-510
- </global>
-
- <global name="UnsupportedGPU">
-- あなたのグラフィック・カードは必須動作環境の条件を満たしていません。
- </global>
-
- <global name="UnsupportedRAM">
-- あなたのシステム・メモリは必須動作環境の条件を満たしていません。
- </global>
-
- <global name="PermYes">
-はい
- </global>
-
- <global name="PermNo">
-いいえ
- </global>
-</notifications>
-
+<?xml version="1.0" encoding="utf-8"?>
+<notifications>
+ <global name="skipnexttime">
+ 今後は表示しない
+ </global>
+ <global name="alwayschoose">
+ 常にこのオプションを選択
+ </global>
+ <template name="okbutton">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ </form>
+ </template>
+
+ <template name="okignore">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <ignore text="$ignoretext"/>
+ </form>
+ </template>
+
+ <template name="okcancelbuttons">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <button
+ name="Cancel"
+ text="$notext"/>
+ </form>
+ </template>
+
+ <template name="okcancelignore">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <button
+ name="Cancel"
+ text="$notext"/>
+ <ignore text="$ignoretext"/>
+ </form>
+ </template>
+
+ <template name="okhelpbuttons">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <button
+ name="Help"
+ text="$helptext"/>
+ </form>
+ </template>
+
+ <template name="yesnocancelbuttons">
+ <form>
+ <button
+ name="Yes"
+ text="$yestext"/>
+ <button
+ name="No"
+ text="$notext"/>
+ <button
+ name="Cancel"
+ text="$canceltext"/>
+ </form>
+ </template>
+ <notification functor="GenericAcknowledge" label="不明な警告メッセージ" name="MissingAlert">
+ あなたの Second Life のバージョンでは、
+今受け取った警告メッセージを表示することができません。
+
+エラー詳細: 「[_NAME]」という警告は notifications.xml にありませんでした。
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="FloaterNotFound">
+ フロータ・エラー:下記のコントロールが見つかりませんでした:
+[CONTROLS]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="TutorialNotFound">
+ 現在利用可能なチュートリアルはありません。
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="GenericAlert">
+ [MESSAGE]
+ </notification>
+ <notification name="GenericAlertYesCancel">
+ [MESSAGE]
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="はい"/>
+ </notification>
+ <notification name="BadInstallation">
+ Second Life をアップデート中にエラーが発生しました。 secondlife.com から最新バージョンをダウンロードしてください。
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="LoginFailedNoNetwork">
+ ネットワークエラー: 接続が確立できませんでした。
+「[DIAGNOSTIC]」
+ネットワーク接続を確認してください。
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="MessageTemplateNotFound">
+ メッセージテンプレート [PATH] がありませんでした。
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="WearableSave">
+ 現在の衣服/ボディーパーツの変更を保存しますか?
+ <usetemplate canceltext="キャンセル" name="yesnocancelbuttons" notext="保存しない" yestext="保存"/>
+ </notification>
+ <notification name="CompileQueueSaveText">
+ 次の理由で、スクリプト用テキストのアップロード時に問題が起こりました。 [REASON] 後でもう一度試してください。
+ </notification>
+ <notification name="CompileQueueSaveBytecode">
+ 次の理由で、コンパイルしたスクリプトのアップロード時に問題が起こりました。 [REASON]後でもう一度試してください。
+ </notification>
+ <notification name="WriteAnimationFail">
+ アニメーションデータの書き込みに問題があります。後でもう一度お試しください。
+ </notification>
+ <notification name="UploadAuctionSnapshotFail">
+ 次の理由で、オークションのスナップショットのアップロード時に問題が起こりました。 [REASON]
+ </notification>
+ <notification name="UnableToViewContentsMoreThanOne">
+ 一度に複数のアイテムのコンテンツは表示できません。
+選択するアイテムを1つだけにして、もう一度試してください。
+ </notification>
+ <notification name="SaveClothingBodyChanges">
+ 衣服/身体部位に対する変更をすべて保存しますか?
+ <usetemplate canceltext="取り消し" name="yesnocancelbuttons" notext="保存しない" yestext="すべて保存"/>
+ </notification>
+ <notification name="GrantModifyRights">
+ 他の住人に変更権限を与えると、その人はあなたが所有している
+すべてのオブジェクトを変更、削除、または取得することができるようになります。この許可を与えるときは細心の注意を払ってください。
+[FIRST_NAME] [LAST_NAME]に対して変更権限を与えますか?
+ <usetemplate name="okcancelbuttons" notext="いいえ" yestext="はい"/>
+ </notification>
+ <notification name="GrantModifyRightsMultiple">
+ 変更権限を与えると、その人はあなたが作成した全てのオブジェクトを変更することができます。
+この許可を与えるときには細心の注意を払ってください。
+選択した住人に変更権限を与えますか?
+ <usetemplate name="okcancelbuttons" notext="いいえ" yestext="はい"/>
+ </notification>
+ <notification name="RevokeModifyRights">
+ [FIRST_NAME] [LAST_NAME]に対して変更権限を取り消しますか?
+ <usetemplate name="okcancelbuttons" notext="いいえ" yestext="はい"/>
+ </notification>
+ <notification name="RevokeModifyRightsMultiple">
+ 選択した住人から変更権限を取り下げますか?
+ <usetemplate name="okcancelbuttons" notext="いいえ" yestext="はい"/>
+ </notification>
+ <notification name="UnableToCreateGroup">
+ グループを作成できません。
+[MESSAGE]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="PanelGroupApply">
+ [NEEDS_APPLY_MESSAGE]
+[WANT_APPLY_MESSAGE]
+ <usetemplate canceltext="取り消し" name="yesnocancelbuttons" notext="変更を無視" yestext="変更を適用"/>
+ </notification>
+ <notification name="MustSpecifyGroupNoticeSubject">
+ グループ通知の送信には、件名の記入が必要です。
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="AddGroupOwnerWarning">
+ あなたは [ROLE_NAME]の役割にメンバーを与えようとしています。
+任命されたメンバーが自ら退任しない限り、
+彼らを役柄から削除できません。
+操作を続行しますか?
+ <usetemplate ignoretext="オーナーの役割にグループ・メンバーを加えるとき" name="okcancelignore" notext="いいえ" yestext="はい"/>
+ </notification>
+ <notification name="AssignDangerousActionWarning">
+ あなたは[ROLE_NAME]に [ACTION_NAME]の能力を
+与えようとしています。
+
+ *警告*
+この能力を持つ役割のメンバーは、
+自分と他のメンバーに現在より強力な権限を割り当て、
+自分をオーナーとほぼ同様の立場に
+任命することもできるようになります。 この行為の意味をよく理解してから
+実行してください。
+
+この能力を[ROLE_NAME]に割り当てますか?
+ <usetemplate name="okcancelbuttons" notext="いいえ" yestext="はい"/>
+ </notification>
+ <notification name="AssignDangerousAbilityWarning">
+ あなたは[ROLE_NAME]に [ACTION_NAME]の能力を
+与えようとしています。
+
+ *警告*
+この能力をもつ役割のメンバーは、
+自分と他のメンバーにすべての能力を割り当て、
+自分をオーナーとほぼ同様の立場に任命できます。
+
+この能力を[ROLE_NAME]に割り当てますか?
+ <usetemplate name="okcancelbuttons" notext="いいえ" yestext="はい"/>
+ </notification>
+ <notification name="ClickPublishHelpLand">
+ 「検索で公開」を選択
+このボックスにチェックすると表示:
+- 検索結果におけるこの区画
+- この区画のパブリック・オブジェクト
+- ウェブ検索におけるこの区画
+ </notification>
+ <notification name="ClickSoundHelpLand">
+ メディアと音楽はこの区画内でのみお楽しみいただけます。 サウンドとボイスは区画内限定か、各自のレーティング区分によっては区画外でも聞くことができます。 ナレッジベースを開いて設定の仕方を学びますか?
+ <url name="url">
+ http://wiki.secondlife.com/wiki/区画上のメディア_(KB)
+ </url>
+ <usetemplate name="okcancelbuttons" notext="閉じる" yestext="ナレッジベースを開く"/>
+ </notification>
+ <notification name="ClickSearchHelpAll">
+ 検索結果は今見ているタブ、あなたのレーティング区分、選択したカテゴリその他を元に編成されています。 詳細はナレッジベースをご覧ください。
+ <url name="url">
+ http://wiki.secondlife.com/wiki/検索に関するよくある質問集_(KB)
+ </url>
+ <usetemplate name="okcancelbuttons" notext="閉じる" yestext="ナレッジベースを開く"/>
+ </notification>
+ <notification name="ClickPublishHelpLandDisabled">
+ この区画は検索を禁ずる地域にあるため、
+この区画を検索に表示することはできません。
+ </notification>
+ <notification name="ClickPublishHelpAvatar">
+ 「検索に表示」を選択すると表示:
+- 検索結果における自分のプロフィール
+- 公開グループ・ページにおける自分のプロフィールへのリンク
+ </notification>
+ <notification name="ClickPartnerHelpAvatar">
+ [SECOND_LIFE]のウェブ・サイトから、
+他の住人へのプロポーズ、パートナー解消手続きができます。
+
+ウェブ・サイトに行って パートナーに関する情報を取得しますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="ページに移動"/>
+ </notification>
+ <notification name="ClickUploadHelpPermissions">
+ あなたの持つデフォルトの権限は古い地域では使えません。
+ </notification>
+ <notification name="ClickWebProfileHelpAvatar">
+ この住人がウェブ・プロフィールURLを設定している場合は、以下のことが可能です。
+ * 「ロード」をクリックし、このウェブ・タブ内でページを表示
+ * 「ロード」>「外部ブラウザ」 をクリックし、ディフォルトのウェブ・ブラウザでページを表示
+ * 「ロード」>「ホームURL」 をクリックし、他のページからこの住人のウェブ・プロフィールに戻る
+
+自分のプロフィールに任意のURLを入力しOKをクリックして、ウェブ・プロフィールとして設定することができます。
+それを見た他の住人がそのサイトを訪れることができます。
+ </notification>
+ <notification name="JoinGroupCanAfford">
+ このグループに参加するには、L$[COST]かかります。
+続行しますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="参加"/>
+ </notification>
+ <notification name="JoinGroupCannotAfford">
+ このグループに加入するには、L$[COST]必要です。
+L$が不足しているのでこのグループに参加することができません。
+ </notification>
+ <notification name="LandBuyPass">
+ L$[COST]で [TIME]時間この土地[PARCEL_NAME]に入ることができます。
+入場許可を購入しますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="SalePriceRestriction">
+ 不特定の人に売却する場合には、
+売却価格はL$0以上に設定する必要があります。
+売却価格をL$0に設定する場合は、
+売却する個人を選択してください。
+ </notification>
+ <notification name="ConfirmLandSaleChange">
+ 選択された[LAND_SIZE]平方メートルの土地は、売り出し中に設定されています。
+売却価格L$[SALE_PRICE]で、[NAME]に売却を認可します。
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmLandSaleToAnyoneChange">
+ 注:「誰にでも売却する」をクリックすると、
+あなたの土地はSecond Life のコミュニティのどこからでも
+(この地域にないコミュニティを含む)購入できるようになります。
+
+選択された[LAND_SIZE]平方メートルの土地は、
+売り出し中に設定されています。
+売却価格L$[SALE_PRICE]で、[NAME]に売却を認可します。
+ <usetemplate name="okcancelbuttons" notext="キャンセル" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsDeededToGroup">
+ この区画のグループ[NAME]共有のすべてのオブジェクトを、以前のオーナーの持ち物に戻そうとしています。
+操作を続行しますか?
+
+*警告* これにより、
+グループに譲渡された譲渡不可能なオブジェクトは削除されます!
+オブジェクト: [N]
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsOwnedByUser">
+ この区画で、
+住人[NAME]が所有する全てのオブジェクトを
+彼らの持ち物に本当に返却してもよいですか?
+
+オブジェクト: [N]
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsOwnedBySelf">
+ この土地区画内にある、あなたが所有するすべてのオブジェクトを、
+あなたの持ち物に戻そうとしています。操作を続行しますか?
+
+オブジェクト: [N]
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsNotOwnedBySelf">
+ この土地区画内にある、あなた以外が所有するすべてのオブジェクトを、
+それぞれのオーナーの持ち物に戻そうとしています。
+操作を続行しますか?
+グループに譲渡された譲渡可能オブジェクトは、以前のオーナーに返却されます。
+
+*警告* これにより、
+グループに譲渡された譲渡不可能なオブジェクトは削除されます!
+オブジェクト: [N]
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsNotOwnedByUser">
+ この土地区画内にある、
+[NAME]以外による所有のオブジェクトをすべてそれぞれのオーナーの持ち物に返却しようとしています。
+操作を続行しますか?グループに譲渡された譲渡可能オブジェクトは、以前のオーナーに返却されます。
+
+*警告* これにより、
+グループに譲渡された譲渡不可能なオブジェクトは削除されます!
+オブジェクト: [N]
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="ReturnAllTopObjects">
+ 全てのリストされたオブジェクトを所有者に本当に返却しますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="DisableAllTopObjects">
+ この地域内のすべてのオブジェクトを無効にしようとしています。操作を続行しますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsNotOwnedByGroup">
+ この土地の区画上のオブジェクトのうち、グループ[NAME]
+との間で共有していないオブジェクトをオーナーに返却しますか?
+
+オブジェクト: [N]
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="UnableToDisableOutsideScripts">
+ スクリプトを無効にできません。
+この地域全体が「ダメージ有効」に設定されています。
+武器を使用するにはスクリプトの実行を許可する必要があります。
+ </notification>
+ <notification name="MustBeInParcel">
+ 着地点を設定するには、この区画の内側に
+立ってください。
+ </notification>
+ <notification name="PromptRecipientEmail">
+ 受信者の有効なEメールアドレスを入力してください。
+ </notification>
+ <notification name="PromptSelfEmail">
+ あなたのEメール・アドレスを入力してください。
+ </notification>
+ <notification name="PromptMissingSubjMsg">
+ デフォルトの件名またはメッセージを付けて、スナップショットを送信しますか?
+ <usetemplate name="okcancelbuttons" notext="キャンセル" yestext="OK"/>
+ </notification>
+ <notification name="ErrorProcessingSnapshot">
+ スナップショット・データの処理エラー
+ </notification>
+ <notification name="ErrorEncodingSnapshot">
+ スナップショットのエンコード化でエラーが出ました!
+ </notification>
+ <notification name="ErrorUploadingPostcard">
+ 次の理由で、スナップショットの送信時に問題が起こりました: [REASON]
+ </notification>
+ <notification name="ErrorUploadingReportScreenshot">
+ 次の理由で、レポートのスクリーンショットのアップロード時に問題が起こりました。 [REASON]
+ </notification>
+ <notification name="MustAgreeToLogIn">
+ [SECOND_LIFE] へのログインを続けるには、利用規約に同意してください。
+ </notification>
+ <notification name="CouldNotPutOnOutfit">
+ 服装を装着できません。
+服装フォルダに衣服、身体部位、付属品がありません。
+ </notification>
+ <notification name="CannotWearTrash">
+ ゴミ箱にある服やボディーパーツの着用はできません。
+ </notification>
+ <notification name="CannotWearInfoNotComplete">
+ まだ読み込まれていないため、そのアイテムを装着できません。後でやり直してください。
+ </notification>
+ <notification name="MustHaveAccountToLogIn">
+ おっと! 記入漏れがありますよ。
+アバターのファーストネームとラストネームの両方を入力する必要があります。
+
+[SECOND_LIFE]に入るには、アカウントが必要です。 アカウントを作成しますか?
+ <usetemplate name="okcancelbuttons" notext="もう一度試す" yestext="新しいアカウントを作成"/>
+ </notification>
+ <notification name="AddClassified">
+ 検索ディレクトリの「クラシファイド」セクションに、
+クラシファイド広告が1週間掲載されます。
+広告を記入後、「公開」をクリックし、ディレクトリに
+追加します。
+「公開」をクリックすると、支払金額を尋ねられます。
+多く払うほど、広告がクラシファイド・リストとキーワード検索
+の上位に表示されます。
+ <usetemplate ignoretext="新しいクラシファイド広告を加えるとき" name="okcancelignore" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="DeleteClassified">
+ クラシファイド広告[NAME]の削除をしますか?
+支払い済みの料金は返金されません。
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="ClassifiedSave">
+ クラシファイド広告[NAME]への変更を保存しますか?
+ <usetemplate canceltext="キャンセル" name="yesnocancelbuttons" notext="保存しない" yestext="保存"/>
+ </notification>
+ <notification name="DeleteAvatarPick">
+ ピック[PICK]を削除しますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="PromptGoToEventsPage">
+ [SECOND_LIFE]イベント・ウェブ・ページに移動しますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="SelectProposalToView">
+ 表示する提案を選択してください。
+ </notification>
+ <notification name="SelectHistoryItemToView">
+ 表示する履歴アイテムを選択してください。
+ </notification>
+ <notification name="ResetShowNextTimeDialogs">
+ これらのポップアップ全てを再度有効化しますか?(以前「今後は表示しない」と指定しています)
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="SkipShowNextTimeDialogs">
+ スキップ可能なポップアップ全てを無効化しますか?
+ <usetemplate name="okcancelbuttons" notext="キャンセル" yestext="OK"/>
+ </notification>
+ <notification name="CacheWillClear">
+ [SECOND_LIFE]の再起動後にキャッシュがクリアされます。
+ </notification>
+ <notification name="CacheWillBeMoved">
+ [SECOND_LIFE]の再起動後にキャッシュが移動されます。
+注意:これによりキャッシュがクリアされます。
+ </notification>
+ <notification name="ChangeConnectionPort">
+ ポートの設定は、[SECOND_LIFE]の再起動後に有効になります。
+ </notification>
+ <notification name="ChangeSkin">
+ 新しいスキンは[SECOND_LIFE]を再起動すると現れます
+ </notification>
+ <notification name="GoToAuctionPage">
+ [SECOND_LIFE]ウェブ・ページに移動し、 入札あるいはオークションの詳細を確認しますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="SaveChanges">
+ 変更を保存しますか?
+ <usetemplate canceltext="取り消し" name="yesnocancelbuttons" notext="保存しない" yestext="保存"/>
+ </notification>
+ <notification name="GestureSaveFailedTooManySteps">
+ ジェスチャーの保存に失敗しました。
+ステップが多すぎます。
+ステップをいくつか削除してから再保存してください
+ </notification>
+ <notification name="GestureSaveFailedTryAgain">
+ ジェスチャーの保存に失敗しました。少し待ってからもう一度試してください。
+ </notification>
+ <notification name="GestureSaveFailedObjectNotFound">
+ ジェスチャーの保存に失敗しました。オブジェクト、または関連するオブジェクト持ち物が見つかりません。
+オブジェクトが範囲内に存在しないか、または削除された可能性があります。
+ </notification>
+ <notification name="GestureSaveFailedReason">
+ 次の理由で、ジェスチャーの保存時に問題が起こりました。 [REASON]。 後でもう一度試してください。
+ </notification>
+ <notification name="SaveNotecardFailObjectNotFound">
+ ノートカードの保存に失敗しました。オブジェクト、または関連するオブジェクト持ち物が見つかりません。
+オブジェクトが範囲内に存在しないか、または削除された可能性があります。
+ </notification>
+ <notification name="SaveNotecardFailReason">
+ 次の理由で、ノートカードの保存時に問題が起こりました。 [REASON]。 後でもう一度試してください。
+ </notification>
+ <notification name="ScriptCannotUndo">
+ あなたのスクリプトのバージョンでは、変更を元に戻すことはできませんでした。
+サーバーの最新保存バージョンをロードしますか?
+(**警告**:この操作後元に戻すことはできません)
+ <usetemplate name="okcancelbuttons" notext="キャンセル" yestext="OK"/>
+ </notification>
+ <notification name="SaveScriptFailReason">
+ 次の理由で、スクリプトの保存に問題が起こりました。 [REASON]。 後でもう一度試してください。
+ </notification>
+ <notification name="SaveScriptFailObjectNotFound">
+ スクリプトの保存に失敗しました。スクリプトが入ったオブジェクトが見つかりません。
+オブジェクトは範囲外か、または削除されているかもしれません。
+ </notification>
+ <notification name="SaveBytecodeFailReason">
+ 次の理由で、コンパイルしたスクリプトの保存時に問題が起こりました。 [REASON]。 後でもう一度試してください。
+ </notification>
+ <notification name="CouldNotStartStopScript">
+ スクリプトの起動または停止に失敗しました。スクリプトが格納されているオブジェクトが見つかりません。
+オブジェクトが範囲内に存在しないか、または削除された可能性があります。
+ </notification>
+ <notification name="CannotDownloadFile">
+ ファイルをダウンロードできません。
+ </notification>
+ <notification name="CannotWriteFile">
+ ファイル[[FILE]]を書き込めません。
+ </notification>
+ <notification name="UnsupportedHardware">
+ 警告: あなたのシステムは Second Life を使用するために必要な必須動作環境の条件を満たしていません。
+Second Life をこのままご使用になると、不十分なパフォーマンスしか得られないおそれがあります。
+また、サポート外のシステム構成でご使用の場合、テクニカルサポートをご利用いただくことができません。
+
+ 必須動作環境の条件
+[_URL] にアクセスして、さらに詳しい情報をご覧になりますか?
+ <url name="url" option="0">
+ http://secondlife.com/support/sysreqs.php?lang=ja
+ </url>
+ <usetemplate ignoretext="サポート外のハードウェアの検出時" name="okcancelignore" notext="いいえ" yestext="はい"/>
+ </notification>
+ <notification name="UnknownGPU">
+ お使いのシステムには、現時点では不明なグラフィック・カードが搭載されています。
+これは、当社による動作テストが行われていない新しいハードウェアが使用されている場合がほとんどです。
+Second Life はほぼ間違いなく正常に動作しますが、
+必要に応じたグラフィック設定の調整が必要になる場合があります。
+(「編集」>「環境設定」>「表示」)
+ <form name="form">
+ <ignore name="ignore" text="不明なグラフィック・カードの検出時"/>
+ </form>
+ </notification>
+ <notification name="DisplaySettingsNoShaders">
+ [SECOND_LIFE] は、
+グラフィック・ドライバの初期化中にクラッシュしました。
+一般的なドライバ・エラーを回避するため、「品質およびパフォーマンス」は「低」に設定されます。
+これにより、いくつかのグラフィックス機能は無効になります。
+グラフィックカード・ドライバのアップデートをお勧めします。
+「グラフィックの品質」は「環境設定」>「表示」から上げることができます。
+ </notification>
+ <notification name="RegionNoTerraforming">
+ この地域[REGION] は、テラフォーミングができません。
+ </notification>
+ <notification name="CannotCopyWarning">
+ あなたはこのアイテムのコピーを
+許されていないので、人にあげると
+持ち物から失われます。 本当に
+これをあげたいですか?
+ <usetemplate name="okcancelbuttons" notext="いいえ" yestext="はい"/>
+ </notification>
+ <notification name="CannotGiveItem">
+ 持ち物のアイテムを渡せません。
+ </notification>
+ <notification name="TransactionCancelled">
+ 取引がキャンセルされました。
+ </notification>
+ <notification name="TooManyItems">
+ 一度のインベントリ交換で、42以上のアイテムは送れません。
+ </notification>
+ <notification name="NoItems">
+ 選択したアイテムを譲渡できる権限がありません。
+ </notification>
+ <notification name="CannotCopyCountItems">
+ あなたは選択したアイテムの[COUNT]のコピーを
+許されていません。
+これらのアイテムはあなたの持ち物から失われます。
+本当にアイテムをあげたいですか?
+ <usetemplate name="okcancelbuttons" notext="いいえ" yestext="はい"/>
+ </notification>
+ <notification name="CannotGiveCategory">
+ 選択したフォルダを譲渡できる権限がありません
+ </notification>
+ <notification name="FreezeAvatar">
+ このアバターをフリーズしますか?
+アバターは一時的に動けなくなり、
+チャットなど、この世界に対する関わりを持つことができなくなります。
+ <usetemplate canceltext="取り消し" name="yesnocancelbuttons" notext="解凍" yestext="フリーズ"/>
+ </notification>
+ <notification name="FreezeAvatarFullname">
+ [AVATAR_NAME]をフリーズしますか?
+フリーズされた人は一時的に動けなくなり、チャットなど、この世界に対する関わりを持つことができなくなります。
+ <usetemplate canceltext="キャンセル" name="yesnocancelbuttons" notext="解凍" yestext="フリーズ"/>
+ </notification>
+ <notification name="EjectAvatarFullname">
+ あなたの土地から[AVATAR_NAME]を追放しますか?
+ <usetemplate canceltext="キャンセル" name="yesnocancelbuttons" notext="追放と禁止" yestext="追放"/>
+ </notification>
+ <notification name="EjectAvatarNoBan">
+ このアバターをあなたの土地から追放しますか?
+ <usetemplate name="okcancelbuttons" notext="キャンセル" yestext="追放"/>
+ </notification>
+ <notification name="EjectAvatarFullnameNoBan">
+ [AVATAR_NAME] をあなたの土地から追放しますか?
+ <usetemplate name="okcancelbuttons" notext="キャンセル" yestext="追放"/>
+ </notification>
+ <notification name="AcquireErrorTooManyObjects">
+ 取得エラー:選択したオブジェクトの数が多すぎます。
+ </notification>
+ <notification name="AcquireErrorObjectSpan">
+ 取得エラー:
+オブジェクトが複数の地域にまたがって存在しています。
+取得するオブジェクトは、
+すべて同じ地域内に移動させてください。
+ </notification>
+ <notification name="PromptGoToCurrencyPage">
+ [EXTRA]
+
+[URL]に移動して貨幣購入に関する情報を確認しますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="UnableToLinkObjects">
+ これらの[COUNT]オブジェクトをリンクできません。
+最大[MAX]オブジェクトをリンクすることができます。
+ </notification>
+ <notification name="CannotLinkIncompleteSet">
+ セットとして揃っているオブジェクトのみリンクできます。複数の
+オブジェクトを選択してください。
+ </notification>
+ <notification name="CannotLinkModify">
+ すべてのオブジェクトに対する修正許可があなたにないため、
+リンクできません。
+
+オブジェクトがすべてロックされておらず、あなたのものであることを確認してください。
+ </notification>
+ <notification name="CannotLinkDifferentOwners">
+ 所有者が異なるため、すべてのオブジェクトを
+リンクできません。
+
+自分が所有しているオブジェクトだけを選択してください。
+ </notification>
+ <notification name="NoFileExtension">
+ ファイル「[FILE]」の拡張子が無効です。
+
+このファイルの拡張子が正しいかどうかを確認してください。
+ </notification>
+ <notification name="InvalidFileExtension">
+ ファイル拡張子[EXTENSION]は無効です
+正しい拡張子:[VALIDS]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="CannotUploadSoundFile">
+ 読み込みのためにアップロードされたサウンドファイルを開けません:
+[FILE]
+ </notification>
+ <notification name="SoundFileNotRIFF">
+ ファイルがRIFF WAVEファイルとして認識されません:
+[FILE]
+ </notification>
+ <notification name="SoundFileNotPCM">
+ ファイルがPCM WAVEオーディオ・ファイルとして認識されません:
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidChannelCount">
+ ファイルのチャンネル数が無効です(モノラルまたはステレオを使用する必要があります):
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidSampleRate">
+ ファイルのサンプル・レートがサポート外です(44.1kを指定する必要があります):
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidWordSize">
+ ファイルのワード・サイズがサポート外です(8または16ビットを指定する必要があります):
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidHeader">
+ WAVヘッダーにデータ・チャンクが見つかりません:
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidTooLong">
+ オーディオ・ファイルが長すぎます。(最大10秒):
+[FILE]
+ </notification>
+ <notification name="ProblemWithFile">
+ ファイル[FILE]にエラーがあります。
+
+[ERROR]
+ </notification>
+ <notification name="CannotOpenTemporarySoundFile">
+ 書き込み用の一時圧縮サウンド・ファイルを開くことができません:[FILE]
+ </notification>
+ <notification name="UnknownVorbisEncodeFailure">
+ 未知のVorbis 暗号化に失敗: [FILE]
+ </notification>
+ <notification name="CannotEncodeFile">
+ 次のファイルのエンコードができません: [FILE]
+ </notification>
+ <notification name="CorruptResourceFile">
+ 破損したリソースファイル: [FILE]
+ </notification>
+ <notification name="UnknownResourceFileVersion">
+ 未知のlindenリソースファイルのバージョン: [FILE]
+ </notification>
+ <notification name="UnableToCreateOutputFile">
+ 服装ファイルを作成できません: [FILE]
+ </notification>
+ <notification name="DoNotSupportBulkAnimationUpload">
+ アニメーションファイルのバルクアップロードは現在サポートされていません。
+ </notification>
+ <notification name="CannotUploadReason">
+ 次の理由で、[FILE] をアップロードできません: [REASON]
+あとでもう一度試してください。
+ </notification>
+ <notification name="CannotCreateLandmarkNotOwner">
+ 土地の所有者が許可していないため、
+ランドマークを作成することはできません。
+ </notification>
+ <notification name="CannotRecompileSelectObjectsNoScripts">
+ 再編集は不可能です。
+スクリプト化されたオブジェクトを選択してください。
+ </notification>
+ <notification name="CannotRecompileSelectObjectsNoPermission">
+ 「再編集」は不可能です。
+
+変更修正権限のある
+スクリプト化されたオブジェクトを選択してください。
+ </notification>
+ <notification name="CannotResetSelectObjectsNoScripts">
+ 「再設定」を行うことができません。
+
+スクリプト化されたオブジェクトを選択してください。
+ </notification>
+ <notification name="CannotResetSelectObjectsNoPermission">
+ 「再設定」を行うことができません。
+
+変更修正権限のある
+スクリプト化されたオブジェクトを選択してください。
+ </notification>
+ <notification name="CannotSetRunningSelectObjectsNoScripts">
+ スクリプトの「実行」の設定ができません。
+
+スクリプト化されたオブジェクトを選択してください。
+ </notification>
+ <notification name="CannotSetRunningNotSelectObjectsNoScripts">
+ スクリプトを「実行しない」に設定できません。
+
+スクリプト化されたオブジェクトを選択してください。
+ </notification>
+ <notification name="NoFrontmostFloater">
+ 保存すべきfrontmostフロータがありません。
+ </notification>
+ <notification name="SeachFilteredOnShortWords">
+ 指定した検索クエリは変更され、短すぎる語句は取り除かれています。
+
+検索語句: [FINALQUERY]
+ </notification>
+ <notification name="SeachFilteredOnShortWordsEmpty">
+ 指定した検索語句が短すぎたため、検索は行われませんでした。
+ </notification>
+ <notification name="CouldNotTeleportReason">
+ テレポートに失敗しました。
+[REASON]
+ </notification>
+ <notification name="invalid_tport">
+ テレポート・リクエストの処理中に問題が発生しました。テレポートするには、再度ログインする必要があります。
+このメッセージが引き続き表示される場合は、技術サポートFAQ(www.secondlife.com/support)を参照してください。
+ </notification>
+ <notification name="invalid_region_handoff">
+ 地域間の移動の処理中に問題が発生しました。地域間を移動するには、再度ログインする必要があります。
+このメッセージが引き続き表示される場合は、技術サポートFAQ(www.secondlife.com/support)を参照してください。
+ </notification>
+ <notification name="blocked_tport">
+ 申し訳ございません。テレポートは現在、ブロックされています。もう少し後でやり直してください。
+やり直してもテレポートできない場合は、いったんログアウトし、再度ログインして問題を解決してください。
+ </notification>
+ <notification name="nolandmark_tport">
+ 残念ながら、システムはランドマーク目的地を探せませんでした。
+ </notification>
+ <notification name="timeout_tport">
+ 申し訳ございません。システムはテレポート接続を完了できませんでした。
+もう少し後でやり直してください。
+ </notification>
+ <notification name="noaccess_tport">
+ 残念ながら、そのテレポート目的地へのアクセスがありません。
+ </notification>
+ <notification name="missing_attach_tport">
+ 添付物は、まだ到着していません。あと数秒間お待ちいただくか、いったんログアウトし、再度ログインしてからテレポートをやり直してださい。
+ </notification>
+ <notification name="too_many_uploads_tport">
+ この地域の資産キューが現在込み合っているため、テレポート・リクエストを時間通りに処理することが難しい状況です。
+数分後にやり直すか、または混雑していない他の地域をお試しください。
+ </notification>
+ <notification name="expired_tport">
+ 申し訳ございません。システムはテレポート・リクエストを時間どおりに完了できませんでした。数分後にやり直してください。
+ </notification>
+ <notification name="expired_region_handoff">
+ 申し訳ございません。システムは地域間の移動を時間どおりに完了できませんでした。
+数分後にやり直してください。
+ </notification>
+ <notification name="no_host">
+ テレポート目的地を見つけられません。目的地が一時的に利用できない状態か、またはすでに消滅している可能性があります。数分後にやり直してください。
+ </notification>
+ <notification name="no_inventory_host">
+ 持ち物システムは現在利用できません。
+ </notification>
+ <notification name="CannotSetLandOwnerNothingSelected">
+ 土地所有者設定ができません:
+区画が選定されていません。
+ </notification>
+ <notification name="CannotSetLandOwnerMultipleRegions">
+ 複数の地域が選択されたため、
+土地の所有権を取得できません。
+選択する面積を小さくして、もう一度試してください。
+ </notification>
+ <notification name="ForceOwnerAuctionWarning">
+ この区画はオークションに出品されています。
+区画の所有権を取得するとオークションが無効になり、
+入札が開始していたら不満に思う住人が出てくるかもしれません。
+所有権を取得しますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="CannotContentifyNothingSelected">
+ コンテンツ化は不可能です:
+区画が選定されていません。
+ </notification>
+ <notification name="CannotContentifyNoRegion">
+ コンテンツ化は不可能です:
+土地が選択されていません。
+ </notification>
+ <notification name="CannotReleaseLandNothingSelected">
+ 土地を破棄することができません:
+区画が選定されていません。
+ </notification>
+ <notification name="CannotReleaseLandNoRegion">
+ 土地を破棄できません:
+地域が見つかりません。
+ </notification>
+ <notification name="CannotBuyLandNothingSelected">
+ 土地を購入できません:
+区画が選定されていません。
+ </notification>
+ <notification name="CannotBuyLandNoRegion">
+ 土地を購入できません:
+この土地がある地域を見つけることができません
+ </notification>
+ <notification name="CannotCloseFloaterBuyLand">
+ Second Lifeによる、
+この取引の見積りが完了するまで「土地を購入」ウィンドウを閉じることはできません。
+ </notification>
+ <notification name="CannotDeedLandNothingSelected">
+ 土地を譲渡できません:
+区画が選定されていません。
+ </notification>
+ <notification name="CannotDeedLandNoGroup">
+ 土地を譲渡できません:
+グループが選択されていません。
+ </notification>
+ <notification name="CannotDeedLandNoRegion">
+ 土地を譲渡できません:
+この土地がある地域が見つかりません。
+「ツール」>「バグを報告する」を使って報告してください。
+ </notification>
+ <notification name="CannotDeedLandMultipleSelected">
+ 土地を譲渡できません:
+複数の区画が選択されています。
+
+これより1つの区画を選択してください。
+ </notification>
+ <notification name="ParcelCanPlayMedia">
+ ここではストリーミング・メディア再生が可能です。
+メディアのストリーミングには、高速なインターネット接続環境が必要です。
+
+利用可能になったら再生しますか?
+(このオプションは、「環境設定」>「音声とビデオ」で後からでも変更できます)
+ <usetemplate name="okcancelbuttons" notext="無効化" yestext="メディアを再生"/>
+ </notification>
+ <notification name="CannotDeedLandWaitingForServer">
+ 土地を譲渡できません:
+サーバーからの所有権情報を待っています。
+
+再度、試みてください。
+ </notification>
+ <notification name="CannotDeedLandNoTransfer">
+ 土地を譲渡できません:
+この地域 [REGION] では土地の譲渡が許されていません。
+ </notification>
+ <notification name="CannotReleaseLandWatingForServer">
+ 土地を破棄できません:
+サーバーが区画情報を更新するのを待っています。
+
+もう少し後でやり直してください。
+ </notification>
+ <notification name="CannotReleaseLandSelected">
+ 土地を破棄できません:
+あなたは、選択したすべての区画を所有していません。
+
+1つの区画を選択してください。
+ </notification>
+ <notification name="CannotReleaseLandDontOwn">
+ 土地を破棄できません:
+あなたはこの土地を手放すことを許可されていません。
+あなたの区画は緑色で表示されています。
+ </notification>
+ <notification name="CannotReleaseLandRegionNotFound">
+ 土地を破棄できません:
+この土地がある地域が見つかりません。
+
+「ツール」>「バグを報告する」を使って報告してください。
+ </notification>
+ <notification name="CannotReleaseLandNoTransfer">
+ 土地を破棄できません:
+この [REGION] では土地の譲渡が許されていません。
+ </notification>
+ <notification name="CannotReleaseLandPartialSelection">
+ 土地を破棄できません:
+区画全体を選択して破棄する必要があります。
+
+区画全体を選択するか、または、まず最初に区画を分割してください。
+ </notification>
+ <notification name="ReleaseLandWarning">
+ あなたは、[AREA]平方メートルの土地を破棄しようとしています。
+この区画を破棄するとあなたの土地ではなくなりますが、
+L$は返金されません。
+
+土地を破棄しますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="CannotDivideLandNothingSelected">
+ 土地を分割できません:
+
+区画が選定されていません。
+ </notification>
+ <notification name="CannotDivideLandPartialSelection">
+ 土地を分割できません:
+
+区画全体が選択されています。
+区画の一部を選択してください。
+ </notification>
+ <notification name="LandDivideWarning">
+ この土地を分割すると、2つの区画に別れます。
+区画ごとの設定が可能になります。 この操作を行うと、一部の設定がデフォルトにリセットされます。
+
+土地の分割操作を続行しますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="CannotDivideLandNoRegion">
+ 土地を分割できません:
+この土地がある地域が見つかりません。
+
+「ツール」>「バグを報告する」を使って報告してください。
+ </notification>
+ <notification name="CannotJoinLandNoRegion">
+ 土地を統合できません:
+この土地がある地域が見つかりません。
+
+「ツール」>「バグを報告する」を使って報告してください。
+ </notification>
+ <notification name="CannotJoinLandNothingSelected">
+ 土地を統合できませんでした:
+区画が選定されていません。
+ </notification>
+ <notification name="CannotJoinLandEntireParcelSelected">
+ 土地を統合できません:
+1つの区画しか選択されていません。
+
+両方の区画をまたいで土地を選択してください。
+ </notification>
+ <notification name="CannotJoinLandSelection">
+ 土地を統合できません:
+1つ以上の区画を選択する必要があります。
+
+両方の区画をまたいで土地を選択してください。
+ </notification>
+ <notification name="JoinLandWarning">
+ この土地を統合すると、選択された長方形に交差する
+全ての区画を基にして1つの大きな区画が作成されます。
+新しい区画の名前とオプションを再設定する必要があります。
+
+土地を統合しますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="ShowOwnersHelp">
+ オーナーを表示:
+区画に色を付けてオーナーの種類を表示
+
+緑 = あなたの土地
+アクア = あなたのグループ所有地
+赤 = 他人が所有する土地
+黄色 = 売り出し中
+紫 = オークション
+グレー = パブリック
+ </notification>
+ <notification name="ConfirmNotecardSave">
+ このアイテムをコピー、表示する前に、ノートカードの保存が必要です。 保存しますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmItemCopy">
+ このアイテムをあなたの持ち物にコピーしますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="コピー"/>
+ </notification>
+ <notification name="ResolutionSwitchFail">
+ 解像度を [RESX]x[RESY]に切り替えることができませんでした。
+ </notification>
+ <notification name="ErrorUndefinedGrasses">
+ エラー:未定義の植物:[SPECIES]
+ </notification>
+ <notification name="ErrorUndefinedTrees">
+ エラー:未定義の樹木:[SPECIES]
+ </notification>
+ <notification name="CannotSaveWearableOutOfSpace">
+ 「[NAME]」を服のファイルに保存できません。 コンピューターの
+ディスクスペースを少し増やしてから、もう一度
+保存してみてください。
+ </notification>
+ <notification name="CannotSaveToAssetStore">
+ [NAME]を中央資産格納庫に保存できません。
+これは一時的な不具合です。
+服飾品などをカスタマイズし、数分後にもう一度保存してください。
+
+この問題が続くようなら、「ツール」>「バグを報告する」をクリックし、お使いのネットワーク設定の詳細を報告してください。
+ </notification>
+ <notification name="YouHaveBeenLoggedOut">
+ あなたは[SECOND_LIFE]からログアウトされました。
+ [MESSAGE]
+「IMとチャットを表示」をクリックすると、
+現在あるIMとチャットを確認できます。
+確認しない場合は「終了」をクリックし、
+すぐに[SECOND_LIFE]を終了してください。
+ <usetemplate name="okcancelbuttons" notext="終了" yestext="IMとチャットを表示"/>
+ </notification>
+ <notification name="OnlyOfficerCanBuyLand">
+ グループ用の土地の購入ができません:
+あなたにはアクティブなグループのために土地を購入する権限がありません。
+ </notification>
+ <notification label="フレンドを追加" name="AddFriend">
+ フレンドとして追加すると、お互いの現在地の地図への表示許可、オンラインステータス表示の設定をすることができます。
+
+[NAME] にフレンドシップを送りますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification label="フレンドを追加" name="AddFriendWithMessage">
+ フレンドとして追加すると、お互いの現在地の地図への表示許可、オンラインステータス表示の設定をすることができます。
+
+[NAME] にフレンドシップのオファーをしますか?
+ <form name="form">
+ <input name="message" type="text">
+ フレンドとして登録してくれますか?
+ </input>
+ <button name="Offer" text="OK"/>
+ <button name="Cancel" text="キャンセル"/>
+ </form>
+ </notification>
+ <notification name="RemoveFromFriends">
+ [FIRST_NAME] [LAST_NAME]をフレンドリストから削除しますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="RemoveMultipleFromFriends">
+ フレンドリストから複数のフレンドを削除しますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="GodDeleteAllScriptedPublicObjectsByUser">
+ **[AVATAR_NAME]**
+所有のすべてのスクリプト・オブジェクトをこのシム内の他のすべての土地から削除しようとしています。操作を続行しますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="GodDeleteAllScriptedObjectsByUser">
+ **[AVATAR_NAME]**
+所有のすべてのスクリプト・オブジェクトをこのシム内のすべての土地から削除しようとしています。操作を続行しますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="GodDeleteAllObjectsByUser">
+ **[AVATAR_NAME]**
+所有のすべてのオブジェクト(スクリプト・オブジェクトと非スクリプト・オブジェクト)を
+このシム内のすべての土地から削除しようとしています。操作を続行しますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="BlankClassifiedName">
+ クラシファイドに名前を指定してください。
+ </notification>
+ <notification name="MinClassifiedPrice">
+ 広告料の支払い金額は、Lと[MIN_PRICE]が下限です。
+
+金額を増やしてください。
+ </notification>
+ <notification name="ConfirmObjectDeleteLock">
+ 選択したアイテムの1つ以上がロックされています。
+
+本当にこれらのアイテムの削除を続けますか?
+ <usetemplate name="okcancelbuttons" notext="キャンセル" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteNoCopy">
+ 選択したアイテムの1つ以上がコピーできません。
+
+本当にこれらのアイテムの削除を続けますか?
+ <usetemplate name="okcancelbuttons" notext="キャンセル" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteNoOwn">
+ 選択したアイテムの1つ以上を、あなたは所有していません。
+
+本当にこれらのアイテムの削除を続けますか?
+ <usetemplate name="okcancelbuttons" notext="キャンセル" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteLockNoCopy">
+ 一つ以上のオブジェクトがロックされています。
+一つ以上のオブジェクトがコピーできません。
+
+本当にこれらのアイテムの削除を続けますか?
+ <usetemplate name="okcancelbuttons" notext="キャンセル" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteLockNoOwn">
+ 一つ以上のオブジェクトがロックされています。
+1つ以上のオブジェクトを、あなたは所有していません。
+
+本当にこれらのアイテムの削除を続けますか?
+ <usetemplate name="okcancelbuttons" notext="キャンセル" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteNoCopyNoOwn">
+ 一つ以上のオブジェクトがコピーできません。
+1つ以上のオブジェクトを、あなたは所有していません。
+
+本当にこれらのアイテムの削除を続けますか?
+ <usetemplate name="okcancelbuttons" notext="キャンセル" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteLockNoCopyNoOwn">
+ 一つ以上のオブジェクトがロックされています。
+一つ以上のオブジェクトがコピーできません。
+1つ以上のオブジェクトを、あなたは所有していません。
+
+本当にこれらのアイテムの削除を続けますか?
+ <usetemplate name="okcancelbuttons" notext="キャンセル" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectTakeLock">
+ 一つ以上のオブジェクトがロックされています。
+
+これらのアイテムの取得を続けますか?
+ <usetemplate name="okcancelbuttons" notext="キャンセル" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectTakeNoOwn">
+ 取得しようとしているオブジェクトには、あなたの所有物でないオブジェクトが含まれています。
+あなたの所有物ではないオブジェクトを取得すると、次のオーナーの権限がそのオブジェクトに適用されます。
+そのため、将来、変更やコピーの能力が制限される可能性があります。
+
+これらのアイテムの取得を続けますか?
+ <usetemplate name="okcancelbuttons" notext="キャンセル" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectTakeLockNoOwn">
+ 1つ以上のオブジェクトがロックされています。
+取得しようとしているオブジェクトには、あなたの所有物でないオブジェクトが含まれています。
+あなたの所有物ではないオブジェクトを取得すると、次のオーナーの権限がそのオブジェクトに適用されます。
+そのため、将来、変更やコピーの能力が制限される可能性があります。
+この選択内容のままで続行することは可能ですが、
+
+これらのアイテムの取得を続けますか?
+ <usetemplate name="okcancelbuttons" notext="キャンセル" yestext="OK"/>
+ </notification>
+ <notification name="CantBuyLandAcrossMultipleRegions">
+ 複数の地域が選択されたため、土地を購入できません。
+
+選択する面積を小さくしてもう一度試してください。
+ </notification>
+ <notification name="DeedLandToGroup">
+ この区画の譲渡に際しては、
+このグループが十分な土地クレジットを保有および維持していることが必要です。
+土地の購入価格は、オーナーに返金されません。譲渡された区画が売れると、販売価格はグループ・メンバーに均等に分配されます。
+
+この[AREA]平方メートルの土地を、グループ
+「[GROUP_NAME]」に譲渡しますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="DeedLandToGroupWithContribution">
+ この区画の譲渡に際しては、このグループが
+十分な土地クレジットを保有および維持していることが必要です。
+この譲渡により、
+「[FIRST_NAME] [LAST_NAME]」から
+グループに対して土地が同時に提供されます。
+土地の購入価格は、オーナーに返金されません。
+譲渡された区画が売れると、販売料金はグループ・メンバーに均等に分配されます。
+
+この[AREA]平方メートルの土地を、グループ「[GROUP_NAME]」に譲渡しますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="DisplaySetToSafe">
+ -safeオプションを指定したので、
+表示設定はセーフ・レベルに設定されています。
+ </notification>
+ <notification name="DisplaySetToRecommended">
+ 表示設定は、あなたのシステム構成に
+基づいて推奨されたレベルに設定されています。
+ </notification>
+ <notification name="ErrorMessage">
+ [ERROR_MESSAGE]
+ </notification>
+ <notification name="AvatarMoved">
+ あなたが訪れたい[TYPE]のロケーションは現在ご利用できません。 [HELP]
+近くの地域に移動しました。
+ </notification>
+ <notification name="ClothingLoading">
+ あなたの服をダウンロード中です。
+通常どおりに[SECOND_LIFE]を使え、
+他のユーザーもあなたを正常に見ることができます。
+ <form name="form">
+ <ignore name="ignore" text="服のダウンロードに長い時間がかかる場合"/>
+ </form>
+ </notification>
+ <notification name="FirstRun">
+ [SECOND_LIFE]のインストールが完了しました。
+
+[SECOND_LIFE] の使用が初めての方は、
+ログイン前にアカウントの作成が必要です。
+www.secondlife.comに移動し、新規アカウントの作成を行いますか?
+ <usetemplate name="okcancelbuttons" notext="続行" yestext="新規アカウント..."/>
+ </notification>
+ <notification name="LoginPacketNeverReceived">
+ 接続に問題が生じています。 あなたのインターネット接続、またはSecond Life サーバーに問題がある可能性があります。
+
+インターネット接続を確認して数分後にもう一度試みるか、「ヘルプ」をクリックして当社のサポートサイトに接続してください。または、「テレポート」をクリックしてホームにテレポートしてみてください。
+ <form name="form">
+ <button name="OK" text="OK"/>
+ <button name="Help" text="ヘルプ"/>
+ <button name="Teleport" text="テレポート"/>
+ </form>
+ </notification>
+ <notification name="WelcomeChooseSex">
+ まもなくあなたのアバターが表示されます。
+
+矢印キーを使用して歩きます。
+ヘルプが必要なときや[SECOND_LIFE]について知りたいときは、
+F1キーを押してください。
+男性あるいは女性のアバターを選択してください。
+あなたの決定は後で変更できます。
+ <usetemplate name="okcancelbuttons" notext="女性" yestext="男性"/>
+ </notification>
+ <notification name="NotEnoughCurrency">
+ [NAME] L$[PRICE] 残高不足のため実行不可です。
+ </notification>
+ <notification name="GrantedModifyRights">
+ あなたには、
+[FIRST_NAME] [LAST_NAME]
+のオブジェクトを修正する権限が与えられています。
+ </notification>
+ <notification name="RevokedModifyRights">
+ [FIRST_NAME] [LAST_NAME]
+のオブジェクトを修正する権限が取り消されました。
+ </notification>
+ <notification name="FlushMapVisibilityCaches">
+ この手順は、この地域の地図のキャッシュを消去します。
+これが便利なのはデバッグ時のみです。
+(作成中は5分間経つと、全員の地図が再度ログイン後に
+更新されます)
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="BuyOneObjectOnly">
+ 一度に一つ以上のオブジェクトをと買うことはできません。 オブジェクトを一つだけ選んでもう一度お試しください。
+ </notification>
+ <notification name="OnlyCopyContentsOfSingleItem">
+ 一度に複数のアイテムのコンテンツはコピーできません。
+選択するオブジェクトを1つだけにして、もう一度試してください。
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="KickUsersFromRegion">
+ この地域の全ての住人をホームにテレポートしますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="EstateObjectReturn">
+ [USER_NAME]が所有しているオブジェクトを返却しますか?
+ <usetemplate name="okcancelbuttons" notext="キャンセル" yestext="OK"/>
+ </notification>
+ <notification name="InvalidTerrainBitDepth">
+ 地域テクスチャを設定できませんでした:
+地形テクスチャ[TEXTURE_NUM]は、無効のビット深度[TEXTURE_BIT_DEPTH]です。
+
+テクスチャ[TEXTURE_NUM]を24ビット512x512かそれ以下のイメージと交換し、「適用」を再度クリックしてください。
+ </notification>
+ <notification name="InvalidTerrainSize">
+ 地域テクスチャを設定できませんでした:
+地形テクスチャ[TEXTURE_NUM]は、[TEXTURE_SIZE_X]x[TEXTURE_SIZE_Y]では大きすぎます。
+
+テクスチャ[TEXTURE_NUM]を24ビット512x512かそれ以下のイメージと交換し、「適用」を再度クリックしてください。
+ </notification>
+ <notification name="RawUploadStarted">
+ アップロード開始。 接続速度によっては、
+最大2分間かかります。
+ </notification>
+ <notification name="ConfirmBakeTerrain">
+ 現在の地形を構築しようとしています。
+この操作を行うと、現在の地形が上昇/下降の制限範囲の中心になり、「復帰」ツールのデフォルトになります。
+操作を続行しますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="MaxAllowedAgentOnRegion">
+ 許可住人は [MAX_AGENTS] 人までです。
+ </notification>
+ <notification name="MaxBannedAgentsOnRegion">
+ 禁止住人は[MAX_BANNED]人までです。
+ </notification>
+ <notification name="MaxAgentOnRegionBatch">
+ [NUM_ADDED] 個のエージェントを追加しようとして失敗しました: [MAX_AGENTS] [LIST_TYPE] 制限を [NUM_EXCESS] 個超過しています。
+ </notification>
+ <notification name="MaxAllowedGroupsOnRegion">
+ 許可グループは[MAX_GROUPS]グループまでです。
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="構築する"/>
+ </notification>
+ <notification name="MaxManagersOnRegion">
+ 不動産マネージャーは[MAX_MANAGER]人までです。
+ </notification>
+ <notification name="OwnerCanNotBeDenied">
+ 不動産オーナーを不動産「禁止住人」リストに追加できません。
+ </notification>
+ <notification name="CanNotChangeAppearanceUntilLoaded">
+ 服および形がロードされるまで、容姿の変更はできません。
+ </notification>
+ <notification name="ClassifiedMustBeAlphanumeric">
+ クラシファイド広告の名前は、アルファベットか
+数字で始めます。 句読点では始められません。
+ </notification>
+ <notification name="CantSetBuyObject">
+ オブジェクトが販売対象ではないため、オブジェクトの購入が設定できません。
+販売対象のオブジェクトを設定し、もう一度試してください。
+ </notification>
+ <notification name="FinishedRawDownload">
+ 未加工の地形ファイルを次へとダウンロードしました:
+[DOWNLOAD_PATH]。
+ </notification>
+ <notification name="DownloadWindowsMandatory">
+ [SECOND_LIFE]の新しいバージョンが利用可能です。
+[MESSAGE]
+[SECOND_LIFE]を使用するためには、
+このアップデートをダウンロードする必要があります。
+ <usetemplate name="okcancelbuttons" notext="終了" yestext="ダウンロード"/>
+ </notification>
+ <notification name="DownloadWindows">
+ [SECOND_LIFE]のアップデート・バージョンが利用可能です。
+[MESSAGE]
+このアップデートは必須ではありませんが、パフォーマンスと安定性を向上させるためにインストールすることをお勧めします。
+ <usetemplate name="okcancelbuttons" notext="続行" yestext="ダウンロード"/>
+ </notification>
+ <notification name="DownloadWindowsReleaseForDownload">
+ [SECOND_LIFE]のアップデート・バージョンが利用可能です。
+[MESSAGE]
+このアップデートは必須ではありませんが、パフォーマンスと安定性を向上させるためにインストールすることをお勧めします。
+ <usetemplate name="okcancelbuttons" notext="続行" yestext="ダウンロード"/>
+ </notification>
+ <notification name="DownloadMacMandatory">
+ [SECOND_LIFE]の新しいバージョンが利用可能です。
+[MESSAGE]
+[SECOND_LIFE]を使用するために、
+このアップデートをダウンロードする必要があります。
+
+アプリケーションがあるフォルダにダウンロードしますか?
+ <usetemplate name="okcancelbuttons" notext="終了" yestext="ダウンロード"/>
+ </notification>
+ <notification name="DownloadMac">
+ [SECOND_LIFE]のアップデート・バージョンが利用可能です。
+[MESSAGE]
+このアップデートは必須ではありませんが、パフォーマンスと安定性を向上させるためにインストールすることをお勧めします。
+
+アプリケーションがあるフォルダにダウンロードしますか?
+ <usetemplate name="okcancelbuttons" notext="続行" yestext="ダウンロード"/>
+ </notification>
+ <notification name="DownloadMacReleaseForDownload">
+ [SECOND_LIFE]のアップデート・バージョンが利用可能です。
+[MESSAGE]
+このアップデートは必須ではありませんが、パフォーマンスと安定性を向上させるためにインストールすることをお勧めします。
+
+アプリケーションがあるフォルダにダウンロードしますか?
+ <usetemplate name="okcancelbuttons" notext="続行" yestext="ダウンロード"/>
+ </notification>
+ <notification name="DeedObjectToGroup">
+ このオブジェクトを譲渡するとグループは以下のことが可能です:
+* オブジェクトに支払われたL$を受領します。
+ <usetemplate ignoretext="オブジェクトをグループに譲渡するとき" name="okcancelignore" notext="取り消し" yestext="譲渡"/>
+ </notification>
+ <notification name="WebLaunchExternalTarget">
+ お使いのシステムのウェブ・ブラウザを開いて、この内容を表示しますか?
+ <usetemplate ignoretext="お使いのシステムのブラウザを開いてウェブ・ページを表示しようとしたとき" name="okcancelignore" notext="キャンセル" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchJoinNow">
+ www.secondlife.comに移動してアカウントを管理しますか?
+ <usetemplate ignoretext="アカウントを管理するため、ウェブ・ブラウザを起動するとき" name="okcancelignore" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchBugReport101">
+ [SECOND_LIFE]Wikiで、バグを報告する正しい方法をご覧ください。
+ <usetemplate ignoretext="バグレポート101 Wikiを閲覧するためのブラウザを開くにあたって" name="okcancelignore" notext="キャンセル" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchSecurityIssues">
+ [SECOND_LIFE] Wikiで、
+セキュリティ問題を報告する方法をご覧ください。
+ <usetemplate ignoretext="セキュリティ問題Wikiを閲覧するためにウェブ・ブラウザを起動するにあたって" name="okcancelignore" notext="キャンセル" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchQAWiki">
+ [SECOND_LIFE] 品質保証関連Wikiをご覧ください。
+ <usetemplate ignoretext="品質保証関連Wikiを閲覧するためにウェブ・ブラウザを起動するにあたって" name="okcancelignore" notext="キャンセル" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchPublicIssue">
+ [SECOND_LIFE]のパブリック問題トラッカーで、
+バグやその他の問題を報告できます。
+ <usetemplate ignoretext="パブリック問題トラッカーを閲覧するためにウェブ・ブラウザを起動するにあたって" name="okcancelignore" notext="キャンセル" yestext="ページへ行く"/>
+ </notification>
+ <notification name="WebLaunchPublicIssueHelp">
+ [SECOND_LIFE] Wikiで、
+パブリック問題トラッカーの使用方法をご覧ください。
+ <usetemplate ignoretext="パブリック問題トラッカーWikiを閲覧するためにウェブ・ブラウザを起動するにあたって" name="okcancelignore" notext="キャンセル" yestext="ページへ行く"/>
+ </notification>
+ <notification name="WebLaunchSupportWiki">
+ Linden公式ブログで、最新のニュースや情報を入手してください。
+ <usetemplate ignoretext="ブログを表示するため、ウェブ・ブラウザを起動するとき" name="okcancelignore" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchLSLGuide">
+ スクリプトガイドを開いて、スクリプトのヘルプを参照しますか?
+ <usetemplate ignoretext="LSLガイドを表示するため、ウェブ・ブラウザを起動するとき" name="okcancelignore" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchLSLWiki">
+ LSLポータルを開いてスクリプトのヘルプを参照しますか?
+ <usetemplate ignoretext="LSLポータルを表示するために、ウェブ・ブラウザを起動するとき" name="okcancelignore" notext="取り消し" yestext="ページに移動"/>
+ </notification>
+ <notification name="ReturnToOwner">
+ 選択したオブジェクトを、所有者に返却しますか?
+譲渡可能なオブジェクトは
+以前の所有者に返却されます。
+
+*警告* 移転が不可能の譲渡されたオブジェクトは削除されます!
+ <usetemplate ignoretext="オブジェクトを持ち主に返却するとき" name="okcancelignore" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="GroupLeaveConfirmMember">
+ 現在あなたは [GROUP]のメンバーです。
+ここから抜けますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmKick">
+ すべてのユーザーをグリッド外にキックしようとしています。操作を続行しますか?
+ <usetemplate name="okcancelbuttons" notext="キャンセル" yestext="全てのユーザを追い出す"/>
+ </notification>
+ <notification name="MuteLinden">
+ 残念ながらLindenを無視設定に入れることはできません。
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="CannotStartAuctionAlreadyForSale">
+ 既に売り出し中の区画なのでオークションにかけることはできません。 オークションにかけたい場合は売り出し設定を解除してから行ってください。
+ </notification>
+ <notification label="オブジェクトを名前でミュートできませんでした" name="MuteByNameFailed">
+ あなたはすでにこの名前をミュートしています。
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="RemoveItemWarn">
+ コンテンツを削除すると、許可があっても、オブジェクトにダメージを与えることがあります。
+そのアイテムの削除を続けますか?
+ <usetemplate name="okcancelbuttons" notext="キャンセル" yestext="OK"/>
+ </notification>
+ <notification name="CantOfferCallingCard">
+ 現在コーリングカードを送れません。数分後にもう一度試してください。
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="CantOfferFriendship">
+ 現在フレンドシップを送れません。数分後に試してください。
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="BusyModeSet">
+ 取り込み中に設定されました。
+チャットとインスタント・メッセージ(IM)が隠れます。
+相手は「取り込み中応答メッセージ」をIMで受け取ります。
+テレポートのオファーは全て拒否され、持ち物のオファーは全てゴミ箱に送られます。
+ <usetemplate ignoretext="取り込み中の設定をするとき" name="okignore" yestext="OK"/>
+ </notification>
+ <notification name="JoinedTooManyGroupsMember">
+ あなたは現在メンバーになっているグループが多すぎるため、
+他のグループに参加できません。少なくとも1つのグループを脱退してからこのグループに参加するか、この招待を断ってください。
+グループを抜けるには、編集メニューから「グループ...」オプションをを選択します。
+[NAME]は、あなたをメンバーとしてグループに招待しています。
+[INVITE]
+ <usetemplate name="okcancelbuttons" notext="辞退" yestext="参加"/>
+ </notification>
+ <notification name="KickUser">
+ どんなメッセージを表示して、このユーザーを追い出しますか?
+ <form name="form">
+ <input name="message" type="text">
+ あなたは管理者によりログオフされました。
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="取り消し"/>
+ </form>
+ </notification>
+ <notification name="KickAllUsers">
+ どんなメッセージを表示して、グリッドにいる全員を追い出しますか?
+ <form name="form">
+ <input name="message" type="text">
+ あなたは管理者によりログオフされました。
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="取り消し"/>
+ </form>
+ </notification>
+ <notification name="FreezeUser">
+ どんなメッセージを表示して、このユーザーをフリーズしますか?
+ <form name="form">
+ <input name="message" type="text">
+ あなたはフリーズされています。 動くこともチャットすることもできません。 管理者がIMを通じてあなたに連絡します。
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="取り消し"/>
+ </form>
+ </notification>
+ <notification name="UnFreezeUser">
+ どんなメッセージを表示して、このユーザーのフリーズを解除しますか?
+ <form name="form">
+ <input name="message" type="text">
+ もうフリーズされていません。
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="取り消し"/>
+ </form>
+ </notification>
+ <notification name="OfferTeleport">
+ 次のメッセージを添えてあなたが今いる場所へのテレポートを送りますか?
+ <form name="form">
+ <input name="message" type="text">
+ [REGION]に来ませんか?
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="取り消し"/>
+ </form>
+ </notification>
+ <notification name="OfferTeleportFromGod">
+ ユーザーをゴッド・コールで呼び寄せますか?
+ <form name="form">
+ <input name="message" type="text">
+ [REGION]に来ませんか?
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="取り消し"/>
+ </form>
+ </notification>
+ <notification name="TeleportFromLandmark">
+ 本当にテレポートしますか?
+ <usetemplate ignoretext="持ち物のランドマークからテレポートする時" name="okcancelignore" notext="キャンセル" yestext="テレポート"/>
+ </notification>
+ <notification label="あなたの不動産内の全員にメッセージを送信" name="MessageEstate">
+ 今あなたの不動産にいる人全員に送る
+短いメッセージを入力してください。
+ <form name="form">
+ <input name="message" type="text"/>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="取り消し"/>
+ </form>
+ </notification>
+ <notification label="Lindenの不動産を変更" name="ChangeLindenEstate">
+ あなたはLinden所有の不動産(メインランド、ティーングリッド、オリエンテーションなど)を変更しようとしています。
+
+これはユーザーの経験を根本から揺るがしかねない「非常に危険な行為」です。これにより、メインランドで多数の地域が変更され、スペースサーバーに悪影響が生じます。
+
+操作を続行しますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification label="Lindenの不動産へのアクセスを変更" name="ChangeLindenAccess">
+ あなたはLinden所有の不動産(メインランド、ティーングリッド、オリエンテーションなど)へのアクセスリストを変更しようとしています。
+
+この行為は「危険」であり、グリッドからオブジェクトやお金の転送をもたらすハッキングを引き起こす可能性があるため、完全にそれを意図した場合のみ行うべきものです。
+これにより多数の地域が変更され、スペースサーバーに悪影響が生じます。
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification label="不動産を選択" name="EstateAllowedAgentAdd">
+ この不動産の許可リストだけに追加しますか? それとも[ALL_ESTATES]のすべての許可リストに追加しますか?
+ <usetemplate canceltext="取り消し" name="yesnocancelbuttons" notext="すべての不動産" yestext="この不動産"/>
+ </notification>
+ <notification label="不動産を選択" name="EstateAllowedAgentRemove">
+ 許可リストからの削除をこの不動産についてのみ行いますか? それとも、[ALL_ESTATES]について行いますか?
+ <usetemplate canceltext="取り消し" name="yesnocancelbuttons" notext="すべての不動産" yestext="この不動産"/>
+ </notification>
+ <notification label="不動産を選択" name="EstateAllowedGroupAdd">
+ この不動産のグループ許可リストだけに追加しますか? それとも[ALL_ESTATES]のグループ許可リストに追加しますか?
+ <usetemplate canceltext="取り消し" name="yesnocancelbuttons" notext="すべての不動産" yestext="この不動産"/>
+ </notification>
+ <notification label="不動産を選択" name="EstateAllowedGroupRemove">
+ 許可リストからの削除をこの不動産についてのみ行いますか? それとも、[ALL_ESTATES]について行いますか?
+ <usetemplate canceltext="取り消し" name="yesnocancelbuttons" notext="すべての不動産" yestext="この不動産"/>
+ </notification>
+ <notification label="不動産を選択" name="EstateBannedAgentAdd">
+ この不動産についてのみアクセスを拒否しますか? それとも[ALL_ESTATE]へのアクセスを拒否しますか?
+ <usetemplate canceltext="取り消し" name="yesnocancelbuttons" notext="すべての不動産" yestext="この不動産"/>
+ </notification>
+ <notification label="不動産を選択" name="EstateBannedAgentRemove">
+ この住人を、この不動産のみ、または[ALL_ESTATES]へとアクセスできるように、禁止リストから削除しますか?
+ <usetemplate canceltext="取り消し" name="yesnocancelbuttons" notext="すべての不動産" yestext="この不動産"/>
+ </notification>
+ <notification label="不動産を選択" name="EstateManagerAdd">
+ この不動産のみ、または[ALL_ESTATES]に対して、不動産マネージャーを追加しますか?
+ <usetemplate canceltext="取り消し" name="yesnocancelbuttons" notext="すべての不動産" yestext="この不動産"/>
+ </notification>
+ <notification label="不動産を選択" name="EstateManagerRemove">
+ 不動産マネージャーを、この不動産のみ、または[ALL_ESTATES]から、削除しますか?
+ <usetemplate canceltext="取り消し" name="yesnocancelbuttons" notext="すべての不動産" yestext="この不動産"/>
+ </notification>
+ <notification label="キックを確認" name="EstateKickUser">
+ この不動産から[EVIL_USER]を追い出しますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="EstateChangeCovenant">
+ 不動産約款を変更しようとしています。操作を続行しますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="RegionEntryAccessBlocked">
+ あなたのレーティング区分により、その地域(リージョン)へは入ることができません。 年齢を確認する際の情報に不足があったためと考えられます。
+
+最新ビューワがインストールされているかをご確認ください。このレーティング区分でのアクセスに関する詳細はナレッジベースをご覧ください。
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="RegionEntryAccessBlocked_KB">
+ あなたのレーティング区分により、その地域(リージョン)へは入ることができません。
+
+ナレッジベースを開きレーティング区分について学びますか?
+ <url name="url">
+ http://wiki.secondlife.com/wiki/レーティング区分概要_(KB)
+ </url>
+ <usetemplate ignoretext="レーティング区分によって地域(リージョン)に入れないとき" name="okcancelignore" notext="閉じる" yestext="ナレッジベースを開く"/>
+ </notification>
+ <notification name="RegionEntryAccessBlocked_Notify">
+ あなたのレーティング区分により、その地域(リージョン)へは入ることができません。
+ </notification>
+ <notification name="RegionEntryAccessBlocked_Change">
+ あなたのレーティング区分設定により、その地域(リージョン)へは入ることができません。
+
+「設定を変更」をクリックするとあなたのレーティング区分が上がり、入れるようになります。 あなたは今後 [REGIONMATURITY] コンテンツの検索及びアクセスが可能となります。
+あとで設定を元に戻したい場合は、「編集」>「環境設定」>「一般」をご覧ください。
+ <form name="form">
+ <button
+ name="OK"
+ text="設定の変更"/>
+ <button
+ default="true"
+ name="Cancel"
+ text="閉じる"/>
+ <ignore name="ignore" text="レーティング区分設定によって地域(リージョン)に入れないとき"/>
+ </form>
+ </notification>
+ <notification name="LandClaimAccessBlocked">
+ あなたのレーティング区分により、この土地を取得することはできません。 年齢を確認する際の情報に不足があったためと考えられます。
+
+最新ビューワがインストールされているかをご確認ください。このレーティング区分でのアクセスに関する詳細はナレッジベースをご覧ください。
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="LandClaimAccessBlocked_KB">
+ あなたのレーティング区分により、この土地を取得することはできません。
+
+ナレッジベースを開きレーティング区分について学びますか?
+ <url name="url">
+ http://wiki.secondlife.com/wiki/レーティング区分概要_(KB)
+ </url>
+ <usetemplate ignoretext="レーティング区分によって土地を取得できないとき" name="okcancelignore" notext="閉じる" yestext="ナレッジベースを開く"/>
+ </notification>
+ <notification name="LandClaimAccessBlocked_Notify">
+ あなたのレーティング区分により、この土地を取得することはできません。
+ </notification>
+ <notification name="LandClaimAccessBlocked_Change">
+ あなたのレーティング区分設定により、この土地を取得することはできません。
+
+「設定を変更」をクリックするとあなたのレーティング区分が上がり、入れるようになります。 あなたは今後 [REGIONMATURITY] コンテンツの検索及びアクセスが可能となります。
+あとで設定を元に戻したい場合は、「編集」>「環境設定」>「一般」をご覧ください。
+ <usetemplate ignoretext="レーティング区分設定によって土地を取得できないとき" name="okcancelignore" notext="閉じる" yestext="設定の変更"/>
+ </notification>
+ <notification name="LandBuyAccessBlocked">
+ あなたのレーティング区分により、この土地を購入することはできません。 年齢を確認する際の情報に不足があったためと考えられます。
+
+最新ビューワがインストールされているかをご確認ください。このレーティング区分でのアクセスに関する詳細はナレッジベースをご覧ください。
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="LandBuyAccessBlocked_KB">
+ あなたのレーティング区分により、この土地を購入することはできません。
+
+ナレッジベースを開きレーティング区分について学びますか?
+ <url name="url">
+ http://wiki.secondlife.com/wiki/レーティング区分概要_(KB)
+ </url>
+ <usetemplate ignoretext="レーティング区分によって土地を購入できないとき" name="okcancelignore" notext="閉じる" yestext="ナレッジベースを開く"/>
+ </notification>
+ <notification name="LandBuyAccessBlocked_Notify">
+ あなたのレーティング区分により、この土地を購入することはできません。
+ </notification>
+ <notification name="LandBuyAccessBlocked_Change">
+ あなたのレーティング区分設定により、この土地を購入することができません。
+
+「設定を変更」をクリックするとあなたのレーティング区分が上がり、入れるようになります。 あなたは今後 [REGIONMATURITY] コンテンツの検索及びアクセスが可能となります。
+あとで設定を元に戻したい場合は、「編集」>「環境設定」>「一般」をご覧ください。
+ <usetemplate ignoretext="レーティング区分設定によって土地を購入できないとき" name="okcancelignore" notext="閉じる" yestext="設定の変更"/>
+ </notification>
+ <notification name="TooManyPrimsSelected">
+ 選択したプリムが多すぎます。
+[MAX_PRIM_COUNT] を選択するか、
+プリム数を減らしてもう一度お試しください。
+ </notification>
+ <notification name="ProblemImportingEstateCovenant">
+ 不動産約款のインポート時に問題発生。
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="ProblemAddingEstateManager">
+ 新しい不動産マネージャーの追加に関する問題:
+1つ以上の不動産で、マネージャーリストが満杯になっています。
+ </notification>
+ <notification name="ProblemAddingEstateGeneric">
+ 不動産リストの追加に関する問題:
+1つ以上の不動産で、リストが満杯になっています。
+ </notification>
+ <notification name="UnableToLoadNotecardAsset">
+ 現在ノートカードの資産IDを読み込むことができません。
+ </notification>
+ <notification name="NotAllowedToViewNotecard">
+ 要求された資産IDに関するノートカードを閲覧するには権限が不十分です。
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="MissingNotecardAssetID">
+ ノートカード用資産IDがデータベースに登録されていません。
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="PublishClassified">
+ 注意:クラシファイド広告の料金は払い戻しされません。
+
+L$[AMOUNT]で、このクラシファイド広告を今すぐ公開しますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="SetClassifiedMature">
+ この広告にMatureコンテンツは含まれていますか?
+ <usetemplate canceltext="キャンセル" name="yesnocancelbuttons" notext="いいえ" yestext="はい"/>
+ </notification>
+ <notification name="SetGroupMature">
+ この広告にMatureコンテンツは含まれていますか?
+ <usetemplate canceltext="キャンセル" name="yesnocancelbuttons" notext="いいえ" yestext="はい"/>
+ </notification>
+ <notification label="再起動を確認" name="ConfirmRestart">
+ この地域を2分後に再起動しようとしています。
+操作を続行しますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification label="この地域内の全員にメッセージを送信" name="MessageRegion">
+ この地域にいる人全員に送る
+短いメッセージを入力してください。
+ <form name="form">
+ <input name="message" type="text"/>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="取り消し"/>
+ </form>
+ </notification>
+ <notification label="土地整備をブロック" name="HelpRegionBlockTerraform">
+ このボックスがチェックされている場合、
+区画ごとの「領域を編集」の設定にかかわらず、土地オーナーは土地整備ができません。
+
+デフォルト:オフ
+ </notification>
+ <notification label="飛行をブロック" name="HelpRegionBlockFly">
+ このボックスをチェックすると、区画ごとの「飛行」設定に関わらず飛行ができなくなります。
+
+デフォルト:オフ
+ </notification>
+ <notification label="コンテンツ権限の一括変更" name="HelpBulkPermission">
+ 権限の一括変更ツールでは、選択した複数のアイテムの権限を素早く変更することが可能です。
+しかし選択したオブジェクトのコンテンツの中身の権限設定をするだけで、オブジェクトそのものではないことにご注意ください。
+
+また、権限は中にあるアイテムのその中身には適用されないこともご注意ください。 1段階層のアイテムのみへのリクエストとなります。
+
+「コンテンツの種類」にあるチェックリストを使って、修正するアイテムの種類を選択します。 テクスチャーを選択すると、スナップショットも含まれます。
+
+* このツールの使用は、
+あなたが変更することのできるアイテムにのみ有効です。
+* 次のオーナーの権限があなたにない場合は、適用されません。
+* 次のオーナーの権限は単にリクエストにすぎません。 どれか一つのアイテムでも新しい権限の設定を受け付けない場合、すべての権限の設定はそのまま維持されます。
+
+一括変更の準備ができたら、「適用」をクリックして結果が表示されるのをお待ちください。
+
+権限変更中に権限の一括変更ウィンドウを閉じた場合、処理は停止されます。
+ </notification>
+ <notification label="ダメージ許可" name="HelpRegionAllowDamage">
+ このボックスをチェックすると、
+各区画の個別の設定にかかわらず、全ての区画におけるヘルスシステムを有効にします。
+このボックスがチェックされていない場合でも、
+個別の区画のオーナーは、自分の区画に対するヘルスシステムを有効にできます。
+
+デフォルト: オフ
+ </notification>
+ <notification label="人物の制限" name="HelpRegionAgentLimit">
+ この地域に許可されるアバターの最大数を設定します。
+1つの地域にアバターが多いとパフォーマンスが
+低下する原因になるので注意してください。
+
+デフォルト: 40
+ </notification>
+ <notification label="物体ボーナス" name="HelpRegionObjectBonus">
+ オブジェクトボーナスは、区画において許可されているプリムの倍率数を意味します。
+認可されている範囲は1から10です。
+したがって、「1」に設定すると、512 m²の土地には、117のオブジェクトが許可されます。
+「2」に設定すると、同じ512 m²の土地には、1のときの2倍にあたる234のオブジェクトが許可され、3以降も同様に増えていきます。
+全地域の最高オブジェクト数は、オブジェクトボーナスの値に影響されず、
+15,000のまま変わりません。
+いったん決定した後でオブジェクトボーナスの値を下げると、オブジェクトが返却または削除される可能性がありますのでご注意ください。
+ディフォルト: 1.0
+ </notification>
+ <notification label="レーティング区分" name="HelpRegionMaturity">
+ 住人のビューワ上部のメニューバーに表示される、地域(リージョン)のレーティング区分を設定します。
+世界地図上でカーソルをこの地域に乗せるとツールチップに表示されます。
+この設定はこの地域全体と検索結果に反映されます。
+他の住人は環境設定で選択したレーティング区分に合った地域に入ることができ、検索結果を見ることができます。
+
+地図にこの変更が反映するには数分かかることがあります。
+ </notification>
+ <notification label="プッシュを制限" name="HelpRegionRestrictPushObject">
+ このチェックボックスは、制限されたプッシュ権限を全地域に適用します。
+有効になっている場合、住人は自分自身でのプッシュ、
+あるいは区画の所有者によるプッシュだけに制限できます。
+(プッシュは、LSLの llPushObject() 機能を参照します。)
+
+デフォルト: オフ
+ </notification>
+ <notification label="区画統合/再分割" name="HelpParcelChanges">
+ このチェックボックスは、不動産オーナーが所有していない区画を統合または再分割できるかどうかを設定します。
+本オプションが無効な場合:
+*不動産オーナー、または管理者のみが、統合/再分割を行うことができます。
+*オーナー、または、適切な権限を持つグループに属する区画のみを
+統合/再分割することができます。
+本オプションが有効な場合:
+*全ての区画オーナーは、所有する区画の統合/再分割ができます。
+*グループ所有の区画は、適切な権限を持つグループに属する区画を統合/再分割することができます。
+
+デフォルト:チェックあり
+ </notification>
+ <notification label="検索で表示しない" name="HelpRegionSearch">
+ このボックスをチェックすると、区画のオーナーは、自分の区画が検索結果にリストされることを阻止できます。
+デフォルト:オフ
+ </notification>
+ <notification label="地域のレーティング区分指定変更済み" name="RegionMaturityChange">
+ この地域のレーティング区分指定がアップデートされました。
+この変更が地図に反映されるまでにはしばらく時間がかかります。
+ </notification>
+ <notification label="土地の再販" name="HelpRegionLandResell">
+ 不動産のオーナーと管理者は、不動産オーナーの土地を販売することができます。
+このオプションをチェックしない場合、購入者が本地域における土地を再販することはできなくなります。
+このオプションをチェックした場合、購入者は本地域における土地を再販することができます。
+
+デフォルト:許可しない
+ </notification>
+ <notification label="スクリプトを無効化" name="HelpRegionDisableScripts">
+ スクリプトが原因でシムの状況が悪くなる場合があります。
+統計グラフをだして(Ctrl-Shift-1)、
+シミュレーターフィジックスFPSを見てください。
+45より数が低ければ、一番下に位置しているタイムパネルを開いてください。
+スクリプト時間が25ms以上であれば、
+「トップスクリプトを取得」ボタンをクリックします。
+悪影響を及ぼしているスクリプトの名前と位置が現れます。
+
+「スクリプトを無効にする」をチェックし「適用」をクリックすると、地域内の全てのスクリプトが一時的に無効になります。
+トップスクリプトで検索したスクリプトの位置まで到達するには、
+このステップが必要になる場合もあります。
+スクリプト位置に到着後、スクリプトを見て悪影響を与えているか調査してください。
+スクリプトの所有者に連絡するか、あるいはオブジェクトの削除または返却も考えられます。
+「スクリプトを無効にする」のチェックを外し、「適用」をクリックして地域全体のスクリプトを有効に戻してください。
+
+デフォルト:オフ
+ </notification>
+ <notification label="衝突を無効化" name="HelpRegionDisableCollisions">
+ 物理的オブジェクトが原因で、
+シムの処理が重くなることがあります。
+統計グラフを開いて(Ctrl-Shift-1)、
+シミュレーターフィジックスFPSを見てください。
+数値が45より低ければ、統計バーの下に位置しているタイムパネルを開いてください。
+もしシムタイム(物理的作用)が20 msより長い場合は、
+「トップ・コライダーを取得」をクリックしてください。
+悪影響を及ぼしている可能性がある物理オブジェクトの名前と位置が現れます。
+
+「衝突を無効にする」をチェックし「適用」をクリックすると、
+オブジェクト同士の衝突が一時的に無効になります。
+当該のトップ・コライダーの位置まで到達するには
+上記のステップが必要になる場合もあります。
+到着後、オブジェクトを見て常時他のオブジェクトと衝突しているか調査してください。
+オブジェクトの所有者に連絡するか、あるいはオブジェクトの削除または返却を考慮すべきかもしれません。
+「衝突を無効にする」のチェックを外し、「適用」をクリックして
+地域全体の衝突を有効に戻してください。
+
+デフォルト:オフ
+ </notification>
+ <notification label="物理作用を無効化" name="HelpRegionDisablePhysics">
+ 物理的作用を無効にすることは、物理的シミュレーション全ての無効を除いて、衝突を無効にすることと似ています。
+これは、オブジェクトの衝突を止めるのみならず、アバターの移動ができなくなることを意味します。
+
+この機能は、物理的な問題なのか、またはトップ・コライダーなのかを調査するにあたり、衝突の無効が地域に対して十分なパフォーマンスを発揮しない場合にのみ使用してください。
+
+終了する時には、物理的作用を再度可能に設定してください。
+そのままだと、アバターはずっと動けません。
+
+デフォルト:オフ
+ </notification>
+ <notification label="トップ・コライダー" name="HelpRegionTopColliders">
+ オブジェクト同士の衝突が最も多い可能性のある
+オブジェクトのリストを表示します。これらのオブジェクトは、
+パフォーマンスを低下させる可能性があります。
+ビューから統計バーを選択し、
+シミュレータ>時間>シム時間 (物理的作用) で、
+物理的作用に20 ms以上を費しているかを確認してください。
+ </notification>
+ <notification label="トップ・スクリプト" name="HelpRegionTopScripts">
+ LSLスクリプトの実行に一番時間を費やしているオブジェクトのリストを入手します。
+これらのオブジェクトは、パフォーマンスを低下させる可能性があります。
+ビューから統計バーを選択し、
+ミュレータ>時間>スクリプト時間で、
+スクリプトに25 ms以上を費しているかを確認してください。
+ </notification>
+ <notification label="地域を再起動" name="HelpRegionRestart">
+ 2分後にサーバーが再起動されるという警告メッセージの後に、
+この地域のサーバープロセスを再起動します。
+この地域のすべての住人の接続が切断されます。
+地域のデータは保存され、90秒以内に回復します。
+
+この地域を再起動しても、ほとんどのパフォーマンスの問題に変化はありません。
+指示された時だけ利用してください。
+ </notification>
+ <notification label="水面の高さ" name="HelpRegionWaterHeight">
+ これは、水が現れる高さ(単位:メートル)です。
+この設定が20以外で、水が世界の
+端や、「空の」水に近ければ、
+溝が見えるでしょう。
+
+デフォルト: 20
+ </notification>
+ <notification label="地形の上昇" name="HelpRegionTerrainRaise">
+ この数値は、「ベーク」地形のデフォルトの高さ以上に、
+区画所有者が土地を上げることのできるメートル値です。
+
+デフォルト: 4
+ </notification>
+ <notification label="地形の下降" name="HelpRegionTerrainLower">
+ この数値は、「ベーク」地形のデフォルトの高さ以下に、
+区画所有者が土地を下げられるメートル値です。
+
+デフォルト: -4
+ </notification>
+ <notification label="RAW地形をアップロード" name="HelpRegionUploadRaw">
+ このボタンを使って、.RAW ファイルを
+現在あなたが居る地域にアップロードします。
+ファイルが必ず正しいサイズの256x256、RGB、
+また、チャンネル数が13であることを確認してください。
+地形(Terrain) ファイルを作成する最良の方法は、
+既存のRAWファイルをダウンロードすることです。
+まず最初のチャンネル(土地の高さ)を変更し、
+アップロードすることから始められます。
+
+アップロードには45秒ほどかかることがあります。
+ここで注意することは、地形ファイルのアップロードによって、土地に配置されているオブジェクトは「動かない」ということです。
+影響があるのは、地形自体と、土地に関係する許可のみです。
+よって、オブジェクトが地下に埋まってしまうことがあるのでご注意ください。
+
+地形設定編集の情報と詳細については、F1ヘルプをご覧ください。
+ </notification>
+ <notification label="RAW地形をダウンロード" name="HelpRegionDownloadRaw">
+ このボタンを押すと、標高フィールドデータ、
+区画寸法、売り出し区画ステータス、この地域における許可を
+含むファイルをダウンロードします。フォトショップのようなプログラムでこのファイルを開くには、
+以下のようなドキュメントのサイズを指定する必要があります:
+RGB、256x256で、チャンネル数が13
+この地形ファイルは、他の方法では開くことはできません。
+
+地形における標高フィールドの編集に関する詳細については、F1ヘルプをご覧ください。
+ </notification>
+ <notification label="不動産の太陽を使用" name="HelpRegionUseEstateSun">
+ このボックスがチェックされていると、この地域の太陽は
+不動産の他の場所における太陽と位置が同じになります。
+
+デフォルト: オン
+ </notification>
+ <notification label="太陽固定" name="HelpRegionFixedSun">
+ このボックスをチェックすると、太陽の位置は段階スライダー内に
+設定され、動かなくなります。
+デフォルト: オフ
+ </notification>
+ <notification label="地形を構築する" name="HelpRegionBakeTerrain">
+ このボタンにより、現在の地形の形状を新たなデフォルトとして保存します。
+一度ベークされると、あなたや他の人が地形編集の「復帰」オプション/ツールを使用した際に、保存された形状に回復できます。
+ベークされた地形は、地形上昇および下降境界の中間点でもあります。
+ </notification>
+ <notification label="不動産マネージャー" name="HelpEstateEstateManager">
+ 不動産マネージャーとは、地域コントロールと
+不動産設定が委任された住人をさします。不動産マネージャーは、
+アップロード、ダウンロード、および地形構築を除いたパネル内の
+設定を変更できます。特筆すべきは、
+住人のアクセス許可または禁止の設定ができることです。
+
+不動産マネージャーの追加と削除は、不動産オーナーのみが行うことができ、マネージャー同士では不可能です。
+信頼できる住人のみ不動産マネージャーに任命してください。
+彼らの行動の全責任は、最終的にはあなたにあります。
+ </notification>
+ <notification label="グローバル・タイムを使用" name="HelpEstateUseGlobalTime">
+ このボックスがチェックされていると、
+あなたの所有地の太陽はLinden社所有のメインランドの不動産での太陽の位置に準じます。
+
+デフォルト: オン
+ </notification>
+ <notification label="太陽固定" name="HelpEstateFixedSun">
+ このボックスがチェックされていると、
+太陽の位置は段階スライダー内に設定され、動かなくなります。
+ </notification>
+ <notification label="パブリック・アクセス" name="HelpEstateExternallyVisible">
+ このチェックボックスは、
+他の不動産にいる住人が、アクセスリストに登録されていなくてもこの不動産に立ち入ることができるかどうかを設定します。
+
+デフォルト: オン
+ </notification>
+ <notification label="直接テレポートを許可" name="HelpEstateAllowDirectTeleport">
+ チェックされていると、不動産のどこにでも直接テレポートが
+可能になります。チェックされていないと、最も近いテレハブに
+テレポートします。
+
+デフォルト: オフ
+ </notification>
+ <notification label="アクセスを許可" name="HelpEstateAllowResident">
+ この不動産へのアクセスは、ここに登録されている住人と
+下記で特別に登録されたグループのみに許可されます。
+この設定は「パブリック・アクセス」がオフになってるときのみ使用可能です。
+ </notification>
+ <notification label="グループ・アクセスを許可" name="HelpEstateAllowGroup">
+ この不動産へのアクセスは、ここに登録されているグループと
+下記で特別に登録された住人のみに許可されます。
+この設定は「パブリック・アクセス」がオフになってるときのみ使用可能です。
+ </notification>
+ <notification label="嫌がらせに関するメール先" name="HelpEstateAbuseEmailAddress">
+ これを有効なメールアドレスに設定すると、そのアドレスにこの不動産において行われた
+嫌がらせの報告が送信されるようになります。
+設定を行わない場合(空白)、嫌がらせ報告は Linden Lab にのみ
+送信されます。
+ </notification>
+ <notification label="アクセス拒否" name="HelpEstateBanResident">
+ このリストの住人は、他の設定にかかわらず、あなたの不動産への
+アクセスが禁止されています。
+ </notification>
+ <notification label="ボイスチャットを許可" name="HelpEstateVoiceChat">
+ この不動産の区画は、住人が近所の人と対話できる
+独自のボイスチャンネルを持つことができます。
+
+デフォルト: オフ
+ </notification>
+ <notification label="ボイスバージョンの不一致" name="VoiceVersionMismatch">
+ このバージョンの Second Life は、
+この地域のボイスチャット機能に対応していません。
+ボイスチャットを正しく使用するには、
+Second Life のアップデートが必要です。
+ </notification>
+ <notification label="不動産約款" name="HelpEstateCovenant">
+ 不動産約款を定めると、自分の不動産内の区画を販売できるようになります。
+約款を定めていないと土地は売れません。
+土地に関する規則を適用したくなかったり、購入前に土地に関する情報を購入者に知らせたくない場合、あなたの約款のノートカードは白紙でかまいません。
+
+約款は購入を考えている人に、規則、ガイドライン、文化的情報や
+単にあなたが期待することを伝えるためにも使えます。
+ここには、区画規制、建造物規制、支払いオプション、それから購入者が事前に目を通して同意しておくべきだとあなたが思う重要な情報をすべて入れることができます。
+
+購入者がボックスをチェックして約款に同意しないかぎり、購入の手続きは完了しません。
+不動産約款が定められている区画であれば、「土地情報」から約款をいつでも閲覧できます。
+ </notification>
+ <notification label="オブジェクトを購入できません" name="BuyObjectOneOwner">
+ 複数のオーナーから同時にオブジェクトを購入することはできません。
+単一のオブジェクトを選択し、もう一度試してください。
+ </notification>
+ <notification label="コンテンツを購入できません" name="BuyContentsOneOnly">
+ 一度に複数のオブジェクトのコンテンツは購入できません。
+選択するオブジェクトを1つだけにして、もう一度試してください。
+ </notification>
+ <notification label="コンテンツを購入できません" name="BuyContentsOneOwner">
+ 複数のオーナーから同時にオブジェクトを購入することはできません。
+単一のオブジェクトを選択し、もう一度試してください。
+ </notification>
+ <notification name="BuyOriginal">
+ オリジナルのオブジェクトを[OWNER]からL$[PRICE]で購入しますか?
+これにより、あなたがオブジェクトのオーナーになります。
+可能な操作は、
+変更:[MODIFYPERM]、コピー:[COPYPERM]、
+再販/プレゼント[RESELLPERM]です。
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="BuyOriginalNoOwner">
+ L$[PRICE]でオリジナルのオブジェクトを購入しますか?
+これにより、あなたがオブジェクトのオーナーになります。
+可能な操作は、
+変更:[MODIFYPERM]、コピー:[COPYPERM]、
+再販/プレゼント[RESELLPERM]です。
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="BuyCopy">
+ コピーを[OWNER]からL$[PRICE]で購入しますか?
+購入したオブジェクトは、あなたの持ち物にコピーされます。
+可能な操作は、変更:[MODIFYPERM]、コピー:[COPYPERM]、
+再販/プレゼント[RESELLPERM]です。
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="BuyCopyNoOwner">
+ L$[PRICE]でコピーを購入しますか?
+購入したオブジェクトは、あなたの持ち物にコピーされます。
+可能な操作は、変更:[MODIFYPERM]、コピー:[COPYPERM]、
+再販/プレゼント[RESELLPERM]です。
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="BuyContents">
+ コンテンツを[OWNER]からL$[PRICE]で購入しますか?
+購入したコンテンツは、あなたの持ち物にコピーされます。
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="BuyContentsNoOwner">
+ L$[PRICE]でコンテンツを購入しますか?
+購入したコンテンツは、あなたの持ち物にコピーされます。
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmPurchase">
+ この取引は以下のとおり行われます:
+[ACTION]
+
+この購入を続行しますか?
+ <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmPurchasePassword" type="password">
+ この取引は以下のとおり行われます:
+[ACTION]
+
+この購入を続行しますか?
+パスワードを再入力し、「OK」をクリックしてください。
+ <form name="form">
+ <input name="message" type="password"/>
+ <button name="ConfirmPurchase" text="OK"/>
+ <button name="Cancel" text="取り消し"/>
+ </form>
+ </notification>
+ <notification name="SetPickLocation">
+ メモ:
+本ピックのロケーションを更新しましたが、
+他の詳細は元の値のままになります。
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="MoveInventoryFromObject">
+ 「コピー禁止」の持ち物アイテムが選択されました。
+これらのアイテムはコピーされないまま、あなたの持ち物に移動されます。
+
+
+アイテムを動かしますか?
+ <usetemplate ignoretext="コピー禁止の持ち物をオブジェクトから移動させるとき" name="okcancelignore" notext="キャンセル" yestext="OK"/>
+ </notification>
+ <notification name="MoveInventoryFromScriptedObject">
+ 「コピー禁止」の持ち物アイテムが選択されました。
+これらのアイテムはコピーされるのではなく、あなたの持ち物に移動されます。
+このオブジェクトはスクリプト付きなので、持ち物に移動させると
+スクリプトに誤動作が起きる可能性があります。
+
+持ち物アイテムを移動しますか?
+ <usetemplate ignoretext="コピー禁止の持ち物をスクリプト付きオブジェクトから移動させるとき" name="okcancelignore" notext="キャンセル" yestext="OK"/>
+ </notification>
+ <notification name="ClickActionNotPayable">
+ 警告:「クリックでオブジェクトに支払い」の設定がされました。
+ただし、これはスクリプトが金銭money() イベントに追加された場合にのみ作動します。
+ <form name="form">
+ <ignore name="ignore" text="money()イベントなしに「オブジェクトに支払う」を設定するとき"/>
+ </form>
+ </notification>
+ <notification name="OpenObjectCannotCopy">
+ このオブジェクトには、あなたがコピーできるアイテムはありません。
+ </notification>
+ <notification name="WebLaunchAccountHistory">
+ Second Life ウェブ・ページを開いて
+アカウント履歴を確認しますか?
+ <usetemplate ignoretext="アカウント履歴のウェブ・ページをロードするとき" name="okcancelignore" notext="取り消し" yestext="ページに移動"/>
+ </notification>
+ <notification name="ClickOpenF1Help">
+ Second Life のサポートウェブサイトを利用しますか?
+ <usetemplate ignoretext="Second Life のサポートウェブサイトを閲覧するにあたって。" name="okcancelignore" notext="キャンセル" yestext="行く"/>
+ </notification>
+ <notification name="ConfirmQuit">
+ 終了しようとしています。操作を続行しますか?
+ <usetemplate ignoretext="Second Life の終了にあたって。" name="okcancelignore" notext="継続" yestext="終了"/>
+ </notification>
+ <notification name="HelpReportAbuseEmailLL">
+ 利用規約違反とコミュニティースタンダード違反の報告にこのツールをご使用ください。 参照:
+
+http://secondlife.com/corporate/tos.php
+http://secondlife.com/corporate/cs.php
+
+利用規約違反とコミュニティースタンダード違反に関する全てのレポートは、調査され、解決されます。
+以下のリンク先の被害報告にてその確認をすることができます。
+
+http://secondlife.com/support/incidentreport.php
+ </notification>
+ <notification name="HelpReportAbuseEmailEO">
+ 重要: このレポートはLinden Lab 社ではなく、
+あなたが現在いる地域のオーナーに送られます。
+-
+あなたが今いる地域のオーナーは、
+住人と訪問者へのサービスの一環として、この地域からのレポートをすべて受け付け、解決することに同意しています。
+よってLinden Lab 社が、
+あなたがここから提出するレポートを調査することはありません。
+地域のオーナーは、不動産約款で指定している地元の規則を基に、報告された問題を解決します。
+(「世界」のメニューから「土地情報」を選ぶと、約款を閲覧できます)
+-
+このレポートに関する解決策は、この地域にだけ当てはまります。
+住人がSecond Life の他の地域へアクセスする際、
+このレポートの結果に影響されることはありません。
+Linden Lab 社だけがSecond Life 全域における
+アクセス制限権を持っています。
+ </notification>
+ <notification name="HelpReportBug">
+ このツールは、説明どおりに動作しないなどのテクニカルなフィーチャーのレポートのみに使用してください。
+できるだけ詳しい情報を提供してください。
+自動返答メールに、より詳しい情報を付け加えて返信することもできます。
+バグレポートは全て調査され解決されます。これによってEメールで返答が送られてくることはありません。
+-
+テクニカルな問題が生じた場合は、
+次のサポートに連絡してください:
+http://secondlife.com/community/support.php
+-
+注意:未完成の報告は調査されません。
+ </notification>
+ <notification name="HelpReportAbuseSelectCategory">
+ 嫌がらせ報告のカテゴリを選択してください。
+カテゴリを選択することにより、嫌がらせ報告の処理や保管に大変役立ちます。
+ </notification>
+ <notification name="HelpReportBugSelectCategory">
+ バグのカテゴリを選択してください。
+カテゴリを選択することにより、バグ報告の処理や保管に大変役立ちます。
+ </notification>
+ <notification name="HelpReportAbuseAbuserNameEmpty">
+ 嫌がらせ行為をした人の名前を入力してください。
+正確な情報の入力により、嫌がらせ報告の処理や保管に大変役立ちます。
+ </notification>
+ <notification name="HelpReportAbuseAbuserLocationEmpty">
+ 嫌がらせがあった場所を入力してください。
+正確な情報の入力により、嫌がらせ報告の処理や保管に大変役立ちます。
+ </notification>
+ <notification name="HelpReportAbuseSummaryEmpty">
+ 嫌がらせの概要を入力してください。
+正確な概要の入力により、
+嫌がらせ報告の処理や保管に大変役立ちます。
+ </notification>
+ <notification name="HelpReportBugSummaryEmpty">
+ バグの概要を入力してください。
+正確な概要の入力により、バグ報告の処理や保管に大変役立ちます。
+ </notification>
+ <notification name="HelpReportAbuseDetailsEmpty">
+ 嫌がらせの詳細な説明を入力してください。
+名前や嫌がらせの詳細を、できるだけ具体的に入力してください。
+
+正確な説明の入力により、
+嫌がらせ報告の処理や保管に大変役立ちます。
+ </notification>
+ <notification name="HelpReportBugDetailsEmpty">
+ バグの詳細な説明を入力してください。
+バグがどのような条件で再現するかなどを、できるだけ具体的に入力してください。
+
+正確な説明の入力により、バグ報告の処理や保管に大変役立ちます。
+ </notification>
+ <notification name="HelpReportAbuseContainsCopyright">
+ 住人の皆様へ、
+
+知的財産の侵害に関する報告を行う際には、以下の点に注意してください。
+
+(1) 嫌がらせの報告のプロセス
+Second Life の権限システムを悪用している住人を見つけたら、
+嫌がらせの報告を行ってください。
+例えばコピーBotの使用、それに似たツールの使用による知的財産権の侵害があります。
+アビューズチームは調査に基づき、
+Second Life のコミュニティースタンダードや
+利用規約に違反する行為と判断された場合には適切な処置を行っています。
+ただし、コンテンツをSecond Life から撤去してほしい、
+といった要望にはアビューズチームは応えることができません。
+
+(2) DMCA(デジタルミレニアム著作権法)及びコンテンツ撤去プロセス
+Second Life からのコンテンツの撤去をリクエストするには、
+著作権侵害通知の提出を行う必要があります。
+参照: http://secondlife.com/corporate/dmca.php
+
+この件に関する嫌がらせの報告を続ける際は、このウィンドウを閉じてください。選択すべきカテゴリは「知的財産の侵害>コピーBot及び権限の悪用」のほうが適しているかもしれませんのでご確認ください。
+
+よろしくお願いします。
+
+Linden Lab
+ </notification>
+ <notification name="FailedRequirementsCheck">
+ 以下の必要なコンポーネントが、[FLOATER]から抜け落ちています
+[COMPONENTS]
+ </notification>
+ <notification label="既存の付属品を置換" name="ReplaceAttachment">
+ 体のこの部位にはオブジェクトが装着されています。
+選択されたオブジェクトと置き換えますか?
+ <form name="form">
+ <ignore name="ignore" save_option="true" text="現在、装着しているものを置換するとき"/>
+ <button ignore="自動的に交換" name="Yes" text="OK"/>
+ <button ignore="交換しない" name="No" text="キャンセル"/>
+ </form>
+ </notification>
+ <notification label="取り込み中の警告" name="BusyModePay">
+ 現在、取り込み中のため、この支払いと
+引き換えのアイテムを受け取ることが
+できません。
+
+この取引を完了する前に、取り込み中の設定を解除しますか?
+ <form name="form">
+ <ignore name="ignore" save_option="true" text="取り込み中の人またはオブジェクトに支払うとき"/>
+ <button ignore="常に取り込み中の設定" name="Yes" text="OK"/>
+ <button ignore="取り込み中の設定にしない" name="No" text="キャンセル"/>
+ </form>
+ </notification>
+ <notification name="ConfirmEmptyTrash">
+ ゴミ箱フォルダの中身を完全に削除しようとしています。操作を続行しますか?
+ <usetemplate ignoretext="持ち物内の「ごみ箱」フォルダを空にするとき" name="okcancelignore" notext="キャンセル" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmClearBrowserCache">
+ 本当にブラウザのキャッシュをクリアしますか?
+ <usetemplate name="okcancelbuttons" notext="キャンセル" yestext="はい"/>
+ </notification>
+ <notification name="ConfirmClearCookies">
+ 本当にクッキーをクリアしますか?
+ <usetemplate name="okcancelbuttons" notext="キャンセル" yestext="はい"/>
+ </notification>
+ <notification name="ConfirmClearMediaUrlList">
+ 保存された URL のリストを消去します。よろしいですか?
+ <usetemplate name="okcancelbuttons" notext="キャンセル" yestext="はい"/>
+ </notification>
+ <notification name="ConfirmEmptyLostAndFound">
+ 遺失物フォルダの中身を完全に削除しようとしています。操作を続行しますか?
+ <usetemplate ignoretext="持ち物内の「遺失物」フォルダを空にするとき" name="okcancelignore" notext="いいえ" yestext="はい"/>
+ </notification>
+ <notification name="CopySLURL">
+ 以下のSLURLがクリップボードにコピーされました。
+ [SLURL]
+
+他の人がアクセスしやすいようにウェブ・ページに載せたり、
+ブラウザのアドレス・バーに貼り付けて、自分でアクセスしてみましょう。
+ <form name="form">
+ <ignore name="ignore" text="SLURLをクリップボードにコピーするとき"/>
+ </form>
+ </notification>
+ <notification name="GraphicsPreferencesHelp">
+ このパネルでは、ウィンドウのサイズと解像度、およびクライアントのグラフィックの品質を設定することができます。「環境設定」>「表示」のインタフェースでは、低、中、高、超高の4つの中からグラフィック・レベルを選択できます。また、「カスタム」チェックボックスをクリックし、以下のグラフィックスの設定をカスタマイズすることもできます。
+
+シェーダー:ピクセル・シェーダーのさまざまな種類を有効または無効にします。
+
+反射詳細:水が反射するオブジェクトの種類を設定します。
+
+アバター・レンダリング:クライアントによるアバターのレンダリング方法に影響するオプションを設定します。
+
+描画距離:あなたの視点から視界のどのくらいの距離まで、オブジェクトがレンダリングされるかに影響します。
+
+最大パーティクル数:画面に一度に見ることができるパーティクルの最大数を設定します。
+
+ポストプロセス品質:グロー効果(輝き)がレンダリングされる際の解像度を設定します。
+
+メッシュ詳細: 特定のオブジェクトのレンダリング時の細部表現、または三角形の数を設定します。 値を大きくするほどレンダリングに時間がかかりますが、オブジェクトがより詳細に表示されます。
+
+ライティング詳細:レンダリングする光源の種類を選択します。
+
+地形詳細: 地形テクスチャの細部表現を設定します。
+ </notification>
+ <notification name="WLSavePresetAlert">
+ 保存された事前設定を上書きしますか?
+ <usetemplate name="okcancelbuttons" notext="いいえ" yestext="はい"/>
+ </notification>
+ <notification name="WLDeletePresetAlert">
+ [SKY] を削除しますか?
+ <usetemplate name="okcancelbuttons" notext="いいえ" yestext="はい"/>
+ </notification>
+ <notification name="WLNoEditDefault">
+ デフォルトの設定を編集したり削除したりすることはできません。
+ </notification>
+ <notification name="WLMissingSky">
+ このデイ・サイクルのファイルは次の存在しない「空」ファイルを参照しています: [SKY]。
+ </notification>
+ <notification name="PPSaveEffectAlert">
+ ポストプロセス効果が存在します。 上書きしますか?
+ <usetemplate name="okcancelbuttons" notext="いいえ" yestext="はい"/>
+ </notification>
+ <notification name="HelpEditSky">
+ ウィンドライトの各種スライダーを編集して空を作成および保存します。
+ </notification>
+ <notification name="HelpEditDayCycle">
+ 1 日を通して変化する空の様子を設定します。
+ </notification>
+ <notification name="EnvSettingsHelpButton">
+ 次の各設定はコンピュータ上でインワールドの環境がどのように表示されるかを調整します。 設定のすべてにアクセスするにはお使いのグラフィック・カードが周囲(大気)シェーダー (atmospheric shaders) をサポートしている必要があります。
+
+「時間帯」スライダーを調整することによりビューワで実際に使用する時間帯を変更できます。
+
+「雲の量」スライダーを調整することにより空をおおう雲の量を制御できます。
+
+「水の色」カラー・ピッカーで色を選択することにより水の色を変更できます。
+
+「水中のフォグ効果」スライダーを調整することにより水の透明度を制御できます。
+
+「不動産の時刻を使用」をクリックすることにより時刻はリセットされ地域の現在時刻に連動させることができます。
+
+「空の高度な設定」をクリックすることにより空のより高度な設定を行うための編集プログラムを起動できます。
+
+「水の高度な設定」をクリックすることにより水のより高度な設定を行うための編集プログラムを起動できます。
+ </notification>
+ <notification name="HelpDayCycle">
+ 「デイ・サイクル編集」では、
+Second Life での昼と夜の空の変化を制御できます。
+これは「基本環境編集」の「時間帯」スライダーで使用されるサイクルです。
+
+「デイ・サイクル編集」はキーフレームを設定することで機能します。
+各キーフレームにはプリセットされた空の設定が関連付けられています。(時間グラフに灰色の節として表示されます)
+ウィンドライト( WindLight )はキーフレーム間をデータ補間し、
+時間の経過とともに空の自然なアニメーションを作り出します。
+
+時間グラフの上に表示される黄色の矢印は、時刻をもとにした現在の眺めを表しています。
+黄色の矢印をクリック&ドラッグすることで、
+1 日の移り変わりを見ることができます。
+「キーの追加」ボタンまたは「キーの削除」ボタンを押して、
+時間グラフの右側にキーフレームを追加あるいは削除することができます。
+
+キーフレームの時刻を指定するには、
+時間グラフに沿ってドラッグするか「キーフレームの設定」のフレーム内で値を直接入力します。
+「キーフレームの設定」のフレーム内ではキーフレームにウィンドライト( WindLight )の事前設定を関連付けることができます。
+
+「サイクルの長さ」では1 日全体の時間を指定できます。
+この値を低く設定すると(例えば2分)、24 時間の時間グラフは
+実時間の 2 分間に相当することを意味します。
+時間グラフとキーフレーム・サイクルの設定が完了したら、
+「再生」ボタンと「停止」ボタンを使用して結果をプレビューしてみましょう。
+また、時間グラフ上の黄色い時刻表示矢印を移動することによってもサイクルの変化をインタラクティブに確認することができます。 「不動産の時刻を使用」ボタンを使用することで日の長さと時刻が不動産のデイ・サイクルに同期されます。
+
+デイ・サイクルの設定が完了したら、「デイ・テストを保存」ボタンおよび「デイ・テストをロード」ボタンを使用してデイ・サイクルを保存およびロードします。
+尚、現在の仕様ではデイ・サイクルで指定できるのは
+1 日分だけです。
+ </notification>
+ <notification name="HelpBlueHorizon">
+ 空の色を調整するには 「R」 (赤)、「G」 (緑)、「B」 (青) の各スライダーを使用します。  「I」 スライダーを使用すると、3 つの RGB スライダーを一斉に動かすことができます。
+ </notification>
+ <notification name="HelpHazeHorizon">
+ 「空と遠景の露光」は風景の露光量全体を調整する上で最も便利なパラメーターの 1 つです。 太陽光によるホワイトアウト現象や暗く絞り込んだ設定など、さまざまな露出設定をシミュレーションできます。
+ </notification>
+ <notification name="HelpBlueDensity">
+ 「空の配色と濃度」は空と霧の彩度全体に影響します。 「I」 スライダーを右に移動すると色は明るくくっきりとなります。
+このスライダーを左端に移動すると、色は彩りを失い、白黒に退色します。 空の色を微調整する場合は、
+「R」 (赤)、 「G」 (緑)、 「B」 (青)
+の各スライダーを使用して彩度を個別に制御できます。
+ </notification>
+ <notification name="HelpHazeDensity">
+ 「大気の不透明度」は大気中のどんよりとした空の雰囲気、グレーがかった霧のレベルを制御します。 濃い煙や大気汚染など
+を表現するのに適しています。 霧やもやなどの表現手段としても効果的です。
+ </notification>
+ <notification name="HelpDensityMult">
+ 「大気の不透明度の増幅」は空気の濃度全体を制御するために使用できます。 この値を低く設定すると「大気の薄い状態」を演出し、高い数値に設定するととてもどんよりとしたスモッグのかかった雰囲気を表現できます。
+ </notification>
+ <notification name="HelpDistanceMult">
+ ウィンドライトの視覚的距離を調整します。 値としてゼロを設定すると、地形およびオブジェクトに対する
+ウィンドライトの影響を効果的に取り消すことができます。 1 より大きな値を設定する場合、値が大きくなるにつれて
+大気が次第に濃くなるような効果が得られます。
+ </notification>
+ <notification name="HelpMaxAltitude">
+ 「最大高度」では大気中の光の量を算出するときに
+ウィンドライトが算出した高度を調整します。
+1日の終わりに夕焼けの度合いを調整するときに役立ちます。
+ </notification>
+ <notification name="HelpSunlightColor">
+ 風景の中で直射日光の色や強さを調整します。
+ </notification>
+ <notification name="HelpSunAmbient">
+ 風景の中で周囲をとりまく大気中のアンビエント光の色や強さを調整します。
+ </notification>
+ <notification name="HelpSunGlow">
+ 「サイズ」スライダーは太陽の大きさを制御します。
+「フォーカス」スライダーは空を背にした太陽のかすみ具合を制御します。
+ </notification>
+ <notification name="HelpSceneGamma">
+ 風景の中で明暗の配分を調整します。
+ </notification>
+ <notification name="HelpStarBrightness">
+ 空の星の輝きを調整します。
+ </notification>
+ <notification name="HelpTimeOfDay">
+ 空の太陽の場所を調整します。
+標高に似ています。
+ </notification>
+ <notification name="HelpEastAngle">
+ 空の太陽の場所を調整します。
+方位角に似ています。
+ </notification>
+ <notification name="HelpCloudColor">
+ 雲の色を編集します。 通常は白っぽい色をお勧めしますが、もちろん
+お好みの色を設定してください。
+ </notification>
+ <notification name="HelpCloudDetail">
+ 主要な雲のイメージの上にレイヤーされた詳細なイメージを制御します。 X と Y でその位置を制御します。
+「D」(濃度)は真綿のような様子や、
+雲の割れ目の様子など雲の外観を制御します。
+ </notification>
+ <notification name="HelpCloudDensity">
+ 「X」 と 「Y」 のスライダーで雲の位置を、
+「D」のスライダーでその密度を制御できます。
+ </notification>
+ <notification name="HelpCloudCoverage">
+ 空を覆う雲の量を制御します。
+ </notification>
+ <notification name="HelpCloudScale">
+ 空に浮かぶ雲のイメージの縮尺を制御します。
+ </notification>
+ <notification name="HelpCloudScrollX">
+ 「X」 の方向に雲が移動する際の速度を制御します。
+ </notification>
+ <notification name="HelpCloudScrollY">
+ 「Y」 の方向に雲が移動する際の速度を制御します。
+ </notification>
+ <notification name="HelpClassicClouds">
+ このボックスを有効にすると、WindLight の雲に加えて、Second Life の従来の雲もレンダリングできるようになります。
+ </notification>
+ <notification name="HelpWaterFogColor">
+ 水中のフォグ効果に色をつけます。
+ </notification>
+ <notification name="HelpWaterFogDensity">
+ 水中のフォグ効果の強弱、水中でどのくらいの距離まで見渡せるかを制御します。
+ </notification>
+ <notification name="HelpUnderWaterFogMod">
+ 「水中のフォグ濃度指数」の効果を加減して、あなたのアバターが水中にいるとき、どのくらい遠くまで見ることができるかを制御します。
+ </notification>
+ <notification name="HelpWaterGlow">
+ 水面の輝きの度合いを制御します。
+ </notification>
+ <notification name="HelpWaterNormalScale">
+ 水面を表現する 3 種類のさざ波の縮尺を制御します。
+ </notification>
+ <notification name="HelpWaterFresnelScale">
+ さまざまな角度で、反射する光の量を制御します。
+ </notification>
+ <notification name="HelpWaterFresnelOffset">
+ 反射する光度の量を制御します。
+ </notification>
+ <notification name="HelpWaterScaleAbove">
+ 上から水中を見たときの光の屈折具合を制御します。
+ </notification>
+ <notification name="HelpWaterScaleBelow">
+ 水中から見たときの光の屈折具合を制御します。
+ </notification>
+ <notification name="HelpWaterBlurMultiplier">
+ 波と反射の混ざり具合を制御します。
+ </notification>
+ <notification name="HelpWaterNormalMap">
+ 反射や屈折を決定するために水に重ねられるノーマル・マップを制御します。
+ </notification>
+ <notification name="HelpWaterWave1">
+ 拡大されたノーマル・マップが移動する方向(X 軸と Y 軸で表現)と速度を制御します。
+ </notification>
+ <notification name="HelpWaterWave2">
+ 縮小されたノーマル・マップが移動する方向(X 軸と Y 軸で表現)と速度を制御します。
+ </notification>
+ <notification name="NewSkyPreset">
+ 新しい空の名前を指定してください。
+ <form name="form">
+ <input name="message" type="text">
+ 新しい事前設定
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="キャンセル"/>
+ </form>
+ </notification>
+ <notification name="ExistsSkyPresetAlert">
+ 事前設定がすでに存在します!
+ </notification>
+ <notification name="NewWaterPreset">
+ 新しい水の事前設定の名前を指定してください。
+ <form name="form">
+ <input name="message" type="text">
+ 新しい事前設定
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="キャンセル"/>
+ </form>
+ </notification>
+ <notification name="ExistsWaterPresetAlert">
+ 事前設定がすでに存在します!
+ </notification>
+ <notification name="WaterNoEditDefault">
+ デフォルトの設定を編集したり削除したりすることはできません。
+ </notification>
+ <notification name="ChatterBoxSessionStartError">
+ [RECIPIENT]との新しいチャットを開始することができません
+[REASON]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="ChatterBoxSessionEventError">
+ [EVENT]
+[REASON]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="ForceCloseChatterBoxSession">
+ [NAME]とのチャットセッションを閉じます。
+[REASON]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="Cannot_Purchase_an_Attachment">
+ アイテムが添付物の一部である間は、
+アイテムを購入できません。
+ </notification>
+ <notification label="デビット許可のリクエストについて" name="DebitPermissionDetails">
+ この要求を許可すると、スクリプトからあなたのアカウントにリンデンドルを課金できるようになります。
+この許可を取り消すには、オブジェクトのオーナーはオブジェクトを削除するか、オブジェクトのスクリプトをリセットしなければなりません。
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="AutoWearNewClothing">
+ あなたが作成した服アイテムを自動的に装着しますか?
+ <usetemplate ignoretext="新しい服を自動的に装着する" name="okcancelignore" notext="いいえ" yestext="はい"/>
+ </notification>
+ <notification name="NotAgeVerified">
+ この区画にアクセスするためには、
+年齢確認を行う必要があります。
+Second Life のウェブサイトにアクセスし、
+年齢確認を行いますか?
+
+[_URL]
+ <url name="url" option="0">
+ https://secondlife.com/account/verification.php?lang=ja
+ </url>
+ <usetemplate ignoretext="年齢の未確認について警告する" name="okcancelignore" notext="いいえ" yestext="はい"/>
+ </notification>
+ <notification name="Cannot enter parcel: no payment info on file">
+ この区画にアクセスするには、支払い情報が事前に登録されている必要があります。
+Second Life のウェブサイトにアクセスして、設定しますか?
+
+[_URL]
+ <url name="url" option="0">
+ https://secondlife.com/account/index.php?lang=ja
+ </url>
+ <usetemplate ignoretext="支払い情報の未登録について警告する" name="okcancelignore" notext="いいえ" yestext="はい"/>
+ </notification>
+ <notification name="MissingString">
+ 文字列[STRING_NAME]がstrings.xmlに含まれていません
+ </notification>
+ <notification name="SystemMessageTip">
+ [MESSAGE]
+ </notification>
+ <notification name="Cancelled">
+ 取り消されました
+ </notification>
+ <notification name="CancelledSit">
+ 座るのを取り消されました
+ </notification>
+ <notification name="CancelledAttach">
+ 添付は取り消されました
+ </notification>
+ <notification name="ReplacedMissingWearable">
+ 欠落している服/身体部位をデフォルトに置換します。
+ </notification>
+ <notification name="GroupNotice">
+ 件名: [SUBJECT], メッセージ: [MESSAGE]
+ </notification>
+ <notification name="FriendOnline">
+ [FIRST] [LAST] はオンラインです。
+ </notification>
+ <notification name="FriendOffline">
+ [FIRST] [LAST] はオフラインです。
+ </notification>
+ <notification name="AddSelfFriend">
+ 自分自身をフレンドにはできません。
+ </notification>
+ <notification name="UploadingAuctionSnapshot">
+ インワールドとウェブ・サイトのスナップショットをアップロード中です...
+(所要時間:約5分)
+ </notification>
+ <notification name="UploadPayment">
+ アップロードに L$[AMOUNT] 支払いました。
+ </notification>
+ <notification name="UploadWebSnapshotDone">
+ Webサイトのスナップショットがアップロードされました。
+ </notification>
+ <notification name="UploadSnapshotDone">
+ インワールドでのスナップショットのアップロードが完了しました。
+ </notification>
+ <notification name="TerrainDownloaded">
+ raw地形がダウンロードされました
+ </notification>
+ <notification name="GestureMissing">
+ ジェスチャー[NAME] がデータベースにありません。
+ </notification>
+ <notification name="UnableToLoadGesture">
+ ジェスチャー[NAME] を読み込むことができません。
+再度、試みてください。
+ </notification>
+ <notification name="LandmarkMissing">
+ データベースにランドマークがありません。
+ </notification>
+ <notification name="UnableToLoadLandmark">
+ ランドマークをロードできません。 もう一度試してください。
+ </notification>
+ <notification name="CapsKeyOn">
+ コンピューターの Caps Lockキーが
+有効になっています。パスワード入力に
+影響するので解除しましょう。
+ </notification>
+ <notification name="NotecardMissing">
+ ノートカードがデータベースにありません。
+ </notification>
+ <notification name="NotecardNoPermissions">
+ ノートカードを閲覧するには権限が不十分です
+ </notification>
+ <notification name="RezItemNoPermissions">
+ オブジェクトをrezするにはパーミッション(承認)が不足してます。
+ </notification>
+ <notification name="UnableToLoadNotecard">
+ 現在ノートカードの資産をロードできません。
+ </notification>
+ <notification name="ScriptMissing">
+ データベースにスクリプトがありません。
+ </notification>
+ <notification name="ScriptNoPermissions">
+ スクリプトを閲覧するには権限が不十分です。
+ </notification>
+ <notification name="UnableToLoadScript">
+ スクリプトをロードできません。 もう一度試してください。
+ </notification>
+ <notification name="IncompleteInventory">
+ あなたの提供するコンテンツは、この場所ではまだ全部揃いません。
+少ししてからもう一度試してください。
+ </notification>
+ <notification name="CannotModifyProtectedCategories">
+ 保護されたカテゴリーは修正できません。
+ </notification>
+ <notification name="CannotRemoveProtectedCategories">
+ 保護されたカテゴリーは削除できません。
+ </notification>
+ <notification name="OfferedCard">
+ あなたは[FIRST] [LAST] に
+コーリング・カードを送りました。
+ </notification>
+ <notification name="UnableToBuyWhileDownloading">
+ オブジェクトデータのダウンロード中は購入できません。
+もう一度試してください。
+ </notification>
+ <notification name="UnableToLinkWhileDownloading">
+ オブジェクトデータのウンロード中はリンクできません。
+もう一度試してください。
+ </notification>
+ <notification name="CannotBuyObjectsFromDifferentOwners">
+ 複数のオーナーから同時にオブジェクトを購入することはできません。
+単一のオブジェクトを選択してください。
+ </notification>
+ <notification name="ObjectNotForSale">
+ オブジェクトは販売対象ではありません。
+ </notification>
+ <notification name="EnteringGodMode">
+ レベル[LEVEL]のゴッド・モードに入ります
+ </notification>
+ <notification name="LeavingGodMode">
+ レベル[LEVEL]のゴッド・モードを解除
+ </notification>
+ <notification name="CopyFailed">
+ コピー権限がないため、コピーに失敗しました
+ </notification>
+ <notification name="InventoryAccepted">
+ [NAME]は、持ち物の提供を受け入れました。
+ </notification>
+ <notification name="InventoryDeclined">
+ [NAME]は、持ち物の提供を断りました。
+ </notification>
+ <notification name="ObjectMessage">
+ [NAME]: [MESSAGE]
+ </notification>
+ <notification name="CallingCardAccepted">
+ コーリング・カードが受理されました。
+ </notification>
+ <notification name="CallingCardDeclined">
+ コーリング・カードが拒否されました。
+ </notification>
+ <notification name="TeleportToLandmark">
+ 本土に到達しました。
+[NAME]などの場所にテレポートするには、画面右下にある「持ち物」ボタンをクリックし、ランドマーク(Landmarks)フォルダを選択してください。
+ランドマークをダブルクリックした後「テレポート」をクリックするとその場所へ移動します。
+ </notification>
+ <notification name="TeleportToPerson">
+ 本土に到達しました。
+住人の[NAME]と接触するには、画面右下にある「持ち物」ボタンをクリックし、コーリングカード(Calling Cards)フォルダを選択してください。
+カードをダブルクリックし、「IMを送る」をクリックし、メッセージを送信してください。
+ </notification>
+ <notification name="CantSelectLandFromMultipleRegions">
+ サーバーの境界を越えて土地を選択することできません。
+もっと小さな土地を選択してください。
+ </notification>
+ <notification name="SearchWordBanned">
+ コミュニティスタンダードに明記されているコンテンツ制限により、あなたの検索語の一部が除外されました。
+ </notification>
+ <notification name="NoContentToSearch">
+ 少なくともどれか一つコンテンツの種類を選択して検索を行ってください。(PG, Mature, Adult)
+ </notification>
+ <notification name="GroupVote">
+ [NAME] は投票の申請をしています:
+[MESSAGE]
+ <form name="form">
+ <button name="VoteNow" text="今すぐ投票する"/>
+ <button name="Later" text="あとで"/>
+ </form>
+ </notification>
+ <notification name="SystemMessage">
+ [MESSAGE]
+ </notification>
+ <notification name="EventNotification">
+ イベント通知:
+
+[NAME]
+[DATE]
+ <form name="form">
+ <button name="Teleport" text="テレポート"/>
+ <button name="Description" text="説明"/>
+ <button name="Cancel" text="取り消し"/>
+ </form>
+ </notification>
+ <notification name="TransferObjectsHighlighted">
+ この区画上に存在するオブジェクトのうち、この区画の購入者に譲渡されるオブジェクトがすべて強調表示されます。
+
+
+*譲渡される樹木や植物は、強調表示されません。
+ <form name="form">
+ <button name="Done" text="完了"/>
+ </form>
+ </notification>
+ <notification name="DeactivatedGesturesTrigger">
+ 同じトリガーでアクティブにしないジェスチャー:
+[NAMES]
+ </notification>
+ <notification name="NoQuickTime">
+ Apple社のQuickTimeがシステムにインストールされていないと思われます。
+ストリーミング・メディアの再生を行いたい場合は、QuickTimeのサイト(http://www.apple.com/quicktime)にアクセスして、QuickTime Player をインストールしてください。
+ </notification>
+ <notification name="OwnedObjectsReturned">
+ 選択した土地の区画上にあったあなたのオブジェクトは、あなたの持ち物に返却されました。
+ </notification>
+ <notification name="OtherObjectsReturned">
+ 選択されている土地の区画上にあった
+ [FIRST] [LAST]
+ が所有するオブジェクトは、オーナーの持ち物に返却されました。
+ </notification>
+ <notification name="OtherObjectsReturned2">
+ 選択された土地の区画上にあり、
+住人の[NAME]の所有だったオブジェクトはオーナーに返却されました。
+ </notification>
+ <notification name="GroupObjectsReturned">
+ 選択されている区画上にあり、[GROUPNAME] というグループと共有だったオブジェクトは、オーナーの持ち物に返却されました。
+譲渡されていた譲渡可能なオブジェクトは、前のオーナーに返却されました。
+グループに譲渡されていた譲渡不可能なオブジェクトは、削除されました。
+ </notification>
+ <notification name="UnOwnedObjectsReturned">
+ 選択された土地の区画上にあり、あなたの所有で「なかった」オブジェクトは、本来のオーナーに返却されました。
+ </notification>
+ <notification name="NotSafe">
+ この土地はダメージが有効(「安全ではない」)に設定されています。
+ケガをするかもしれません。 命を落とした場合は、ホームにテレポートされます。
+ </notification>
+ <notification name="NoFly">
+ この土地は飛行が無効(「飛行禁止」)に設定されています。
+ここで飛ぶことはできません。
+ </notification>
+ <notification name="PushRestricted">
+ この土地では「プッシング禁止」です。
+土地所有者以外はここで他人をプッシュすることはできません。
+ </notification>
+ <notification name="NoVoice">
+ この土地はボイスが無効に設定されています。
+ </notification>
+ <notification name="NoBuild">
+ この土地はオブジェクトの作成禁止に設定されています。
+ここでオブジェクトを作ることはできません。
+ </notification>
+ <notification name="ScriptsStopped">
+ 管理者がこの地域内のスクリプトを一時停止させました。
+ </notification>
+ <notification name="ScriptsNotRunning">
+ この地域ではスクリプトの使用が禁止されています
+ </notification>
+ <notification name="NoOutsideScripts">
+ この土地では外部スクリプトが無効に設定されています。
+(「外部スクリプト禁止」)
+土地所有者以外のスクリプトは起動できません
+ </notification>
+ <notification name="ClaimPublicLand">
+ 自分がいる地域でのみ公共の土地を獲得できます。
+ </notification>
+ <notification name="RegionTPAccessBlocked">
+ あなたのレーティング区分によりその地域(リージョン)へは入ることができません。 年齢確認を行うか、最新ビューワをインストールしてください。
+
+現在のレーティング区分でアクセス可能なエリアに関する詳細はナレッジベースを参照してください。
+ </notification>
+ <notification name="URBannedFromRegion">
+ あなたは地域(リージョン)への立入が禁止されています。
+ </notification>
+ <notification name="NoTeenGridAccess">
+ あなたのアカウントではティーングリッドに接続できません。
+ </notification>
+ <notification name="NoHelpIslandTP">
+ Help Islandには戻ることができません。
+「Help Island Public」に行き、
+再度チュートリアルを行ってください。
+ </notification>
+ <notification name="ImproperPaymentStatus">
+ この地域(リージョン)に入るために適した支払いステータスがありません。
+ </notification>
+ <notification name="MustGetAgeRgion">
+ この地域(リージョン)に入るには年齢確認済みである必要があります。
+ </notification>
+ <notification name="MustGetAgeParcel">
+ この区画に入るには年齢確認済みである必要があります。
+ </notification>
+ <notification name="NoDestRegion">
+ 目的地の地域(リージョン)が見つかりませんでした。
+ </notification>
+ <notification name="NotAllowedInDest">
+ 目的地に入る許可がありません。
+ </notification>
+ <notification name="RegionParcelBan">
+ 立入禁止された区画を横断することはできません。 別の方法をお試しください。
+ </notification>
+ <notification name="TelehubRedirect">
+ テレハブに転送されました。
+ </notification>
+ <notification name="CouldntTPCloser">
+ これ以上目的地に近い場所にテレポートができませんでした。
+ </notification>
+ <notification name="TPCancelled">
+ テレポートがキャンセルされました。
+ </notification>
+ <notification name="FullRegionTryAgain">
+ 入ろうとしている地域(リージョン)は現在満員です。
+しばらくしてから再度お試しください。
+ </notification>
+ <notification name="GeneralFailure">
+ よくある失敗
+ </notification>
+ <notification name="RoutedWrongRegion">
+ 異なる地域(リージョン)に迂回されました。 もう一度お試しください。
+ </notification>
+ <notification name="NoValidAgentID">
+ エージェントIDが無効です。
+ </notification>
+ <notification name="NoValidSession">
+ セッションIDが無効です。
+ </notification>
+ <notification name="NoValidCircuit">
+ 回路コードが無効です。
+ </notification>
+ <notification name="NoValidTimestamp">
+ タイムスタンプが無効です。
+ </notification>
+ <notification name="NoPendingConnection">
+ 接続を生成できません。
+ </notification>
+ <notification name="InternalUsherError">
+ 内部エラーが発生しました。
+ </notification>
+ <notification name="NoGoodTPDestination">
+ この地域(リージョン)では適切なテレポート目的地が見つかりませんでした。
+ </notification>
+ <notification name="InternalErrorRegionResolver">
+ 内部エラーが発生しました。
+ </notification>
+ <notification name="NoValidLanding">
+ 有効な着地点が見つかりませんでした。
+ </notification>
+ <notification name="NoValidParcel">
+ 有効な区画が見つかりませんでした。
+ </notification>
+ <notification name="ObjectGiveItem">
+ [FIRST] [LAST]所有の、
+[OBJECTFROMNAME]から、
+[OBJECTNAME]という[OBJECTTYPE]が送られてきました。
+ <form name="form">
+ <button name="Keep" text="受け取る"/>
+ <button name="Discard" text="破棄"/>
+ <button name="Mute" text="無視リストへ"/>
+ </form>
+ </notification>
+ <notification name="ObjectGiveItemUnknownUser">
+ (未知のユーザー) 所有の[OBJECTFROMNAME]から、
+あなたに[OBJECTNAME]という[OBJECTTYPE]が送られてきました。
+ <form name="form">
+ <button name="Keep" text="受け取る"/>
+ <button name="Discard" text="破棄"/>
+ <button name="Mute" text="無視リストへ"/>
+ </form>
+ </notification>
+ <notification name="UserGiveItem">
+ [NAME]は、あなたに[OBJECTNAME]という名前の[OBJECTTYPE]を渡しました。
+ <form name="form">
+ <button name="Keep" text="受け取る"/>
+ <button name="Discard" text="破棄"/>
+ <button name="Mute" text="無視リストへ"/>
+ </form>
+ </notification>
+ <notification name="GodMessage">
+ [NAME]
+[MESSAGE]
+ </notification>
+ <notification name="JoinGroup">
+ [MESSAGE]
+ <form name="form">
+ <button name="Join" text="参加"/>
+ <button name="Decline" text="辞退"/>
+ <button name="Info" text="情報"/>
+ </form>
+ </notification>
+ <notification name="TeleportOffered">
+ [NAME]はあなたをテレポートで呼び寄せようとしています:
+
+[MESSAGE]
+ <form name="form">
+ <button name="Teleport" text="テレポート"/>
+ <button name="Cancel" text="取り消し"/>
+ </form>
+ </notification>
+ <notification name="GotoURL">
+ [MESSAGE]
+[URL]
+ <form name="form">
+ <button name="Later" text="あとで"/>
+ <button name="GoNow..." text="今すぐ行く"/>
+ </form>
+ </notification>
+ <notification name="OfferFriendship">
+ [NAME]は、
+フレンド登録を申し込んでいます。
+
+[MESSAGE]
+
+(デフォルトでお互いのオンライン・ステータスを見ることができるようになります。)
+ <form name="form">
+ <button name="Accept" text="受け入れる"/>
+ <button name="Decline" text="辞退"/>
+ </form>
+ </notification>
+ <notification name="OfferFriendshipNoMessage">
+ [NAME]は、
+フレンド登録を申し込んでいます。
+
+(デフォルトでお互いのオンライン・ステータスを見ることができるようになります。)
+ <form name="form">
+ <button name="Accept" text="受け入れる"/>
+ <button name="Decline" text="拒否"/>
+ </form>
+ </notification>
+ <notification name="FriendshipAccepted">
+ [NAME]は、フレンド 登録を受け入れました。
+ </notification>
+ <notification name="FriendshipDeclined">
+ [NAME]は、フレンド 登録を断りました。
+ </notification>
+ <notification name="OfferCallingCard">
+ [FIRST] [LAST]が
+あなたにコーリングカードを送ってきました。
+これにより、あなたの持ち物にブックマークが追加され、この住人にすばやくIMすることができます。
+ <form name="form">
+ <button name="Accept" text="受け入れる"/>
+ <button name="Decline" text="辞退"/>
+ </form>
+ </notification>
+ <notification name="RegionRestartMinutes">
+ この地域は[MINUTES]分後に再起動されます。
+強制ログアウトとなりますので、この地域の外に出てください。
+ </notification>
+ <notification name="RegionRestartSeconds">
+ この地域は[SECONDS]秒後に再起動されます。
+強制ログアウトとなりますので、この地域の外に出てください。
+ </notification>
+ <notification name="LoadWebPage">
+ ウェブ・ページ[URL]をロードしますか?
+
+[MESSAGE]
+
+ロード元のオブジェクト:[OBJECTNAME]、オーナー:[NAME]?
+ <form name="form">
+ <button name="Gotopage" text="移動"/>
+ <button name="Cancel" text="取り消し"/>
+ </form>
+ </notification>
+ <notification name="FailedToFindWearableUnnamed">
+ データベースに[TYPE]が見つかりませんでした
+ </notification>
+ <notification name="FailedToFindWearable">
+ データベースに[DESC]という名前の[TYPE]が見つかりませんでした。
+ </notification>
+ <notification name="InvalidWearable">
+ 着用しようとしているアイテムはあなたのビューワでは読み込むことができません。 Second Lifeビューワを最新のものにアップグレードしてからこのアイテムを着用してください。
+ </notification>
+ <notification name="ScriptQuestion">
+ 「[NAME]」が所有するオブジェクト「[OBJECTNAME]」を:
+
+[QUESTIONS]
+よろしいですか?
+ <form name="form">
+ <button name="Yes" text="はい"/>
+ <button name="No" text="いいえ"/>
+ <button name="Mute" text="無視リストに追加"/>
+ </form>
+ </notification>
+ <notification name="ScriptQuestionCaution">
+ 「[OBJECTNAME]」が所有するオブジェクト「[NAME]」は、次のことを求めています:
+
+[QUESTIONS]
+このオブジェクトと制作者が信用できない場合は、リクエストを拒否してください。追加情報は、詳細ボタンをクリックしてください。
+
+このリクエストを許可しますか?
+ <form name="form">
+ <button name="Grant" text="許可"/>
+ <button name="Deny" text="拒否"/>
+ <button name="Details" text="詳細..."/>
+ </form>
+ </notification>
+ <notification name="ScriptDialog">
+ [FIRST] [LAST]の「[TITLE]」
+[MESSAGE]
+ <form name="form">
+ <button name="Ignore" text="無視する"/>
+ </form>
+ </notification>
+ <notification name="ScriptDialogGroup">
+ [GROUPNAME]の「[TITLE]」
+[MESSAGE]
+ <form name="form">
+ <button name="Ignore" text="無視する"/>
+ </form>
+ </notification>
+ <notification name="FirstBalanceIncrease">
+ L$[AMOUNT]を受け取りました。
+オブジェクトおよび他のユーザーがあなたにお金を支払ったようです。
+あなたの残高は画面の右上に表示されて います。
+ </notification>
+ <notification name="FirstBalanceDecrease">
+ L$[AMOUNT]を支払いました。
+あなたの残高は画面の右上に表示されて います。
+ </notification>
+ <notification name="FirstSit">
+ あなたは座っています。
+矢印(または AWSD)のキーを使って
+視点を変えます。
+立ち上がるには「立ち上がる」をクリックします。
+ </notification>
+ <notification name="FirstMap">
+ 地図をスクロールするには、クリックしてドラッグします。
+テレポートするには、ダブルクリックします。
+右側のコントロールを使用すると、物を見つけたり、別の背景を表示することができます。
+ </notification>
+ <notification name="FirstBuild">
+ [SECOND_LIFE] には、
+新しいオブジェクトを作ることができる地域があります。
+作成には画面上部左のツールが使え、
+CtrlキーやAltキーを押したままにすれば
+素早くツールを切り替えられます。
+Escキーを押すと、作成は終了します。
+ </notification>
+ <notification name="FirstLeftClickNoHit">
+ 左クリックで特別なオブジェクトを操作できます。
+マウス・ポインタが手のマークに変わると、ポイントしているオブジェクトを操作できます。
+右クリックで実行可能な操作のメニューが表示されます。
+ </notification>
+ <notification name="FirstTeleport">
+ この地域では、ポイント間のテレポートが認められていませんので、最も近いテレハブ周辺に移動しました。
+あなたの目的地は、大きな標識(ビーコン)で表示されています。赤い矢印に向かって進むと標識(ビーコン)へ辿り着きます。
+矢印をクリックすると標識(ビーコン)を消せます
+ </notification>
+ <notification name="FirstOverrideKeys">
+ あなたの移動キーをオブジェクトが操作しています。
+矢印かAWSDのキーで動作を確認してください。
+銃などのオブジェクトだと、一人称視点(マウスルック)に変更する必要があります。
+Mキーを押して変更します。
+ </notification>
+ <notification name="FirstAppearance">
+ あなたは容姿を編集中です。
+回転、ズームするには矢印キーを使います。
+編集が終わったら「すべて保存」をクリックして容姿を保存し、終了します。
+容姿の編集は何度でも行えます。
+ </notification>
+ <notification name="FirstInventory">
+ これは、オブジェクト、ノートカード、服、その他あなたの所有物がすべて入った「持ち物」です。
+*マウスでアバターにオブジェクトや服装フォルダをドラッグして装着します。
+*オブジェクトを地面の上にドラッグすると、周囲の世界に表示させます。(Rez)
+*ノートカードを読むには、ダブルクリックします。
+ </notification>
+ <notification name="FirstSandbox">
+ ここはサンドボックスです。
+あなたがここで作ったオブジェクトはあなたが立ち去った後、削除されるかもしれません。サンドボックスは定期的に清掃されます。詳細については、画面上部、地域名の隣の情報を参照してください。
+
+サンドボックスは特別なエリアで、目印のサインがついています。
+ </notification>
+ <notification name="FirstFlexible">
+ このオブジェクトは フレキシブルです。
+フレキシブル・チェックボックスのチェックが外されるまでは、オブジェクトは物理的でなくファントムでなければなりません。
+ </notification>
+ <notification name="FirstDebugMenus">
+ 高度な設定を有効にしました。
+このメニューには、
+Second Life をデバッグするデベロッパーにとって
+有用な機能があります。
+このメニューを切り替えるには、
+WindowsではCtrl-Alt-Dを押します。
+Macの場合は、Cmd-Opt-Shift-Dを押してください。
+ </notification>
+ <notification name="FirstSculptedPrim">
+ スカルプトプリムを編集しています。
+スカルプトプリムは、形状を指定するための特別なテクスチャーが必要です。
+持ち物ライブラリで、スカルプトテクスチャーのサンプルを参照できます。
+ </notification>
+ <notification name="FirstMedia">
+ メディアの再生を開始しました。
+オーディオ/ビデオの環境設定で、自動的にメディアを再生するように設定することができます。
+注: この設定により、信頼しないメディア・サイトに接続されるセキュリティ・リスクが伴います。
+ </notification>
+ <notification name="MaxListSelectMessage">
+ このリストから[MAX_SELECT]個までのアイテムを選択できます。
+ </notification>
+ <notification name="VoiceInviteP2P">
+ [NAME]が、あなたをボイスチャットコールに招待しています。
+コールに参加するには「受け入れる」をクリックし、招待を断るときは「拒否」をクリックしてください。このコールをしている人をミュートにする場合は「ミュート」をクリックしてください。
+ <form name="form">
+ <button name="Accept" text="受け入れる"/>
+ <button name="Decline" text="拒否"/>
+ <button name="Mute" text="ミュート"/>
+ </form>
+ </notification>
+ <notification name="AutoUnmuteByIM">
+ [FIRST] [LAST]に
+インスタント・メッセージが送信され、無視設定は自動的に解除されました。
+ </notification>
+ <notification name="AutoUnmuteByMoney">
+ [FIRST] [LAST]にお金を渡したため、 無視設定が自動的に解除されました。
+ </notification>
+ <notification name="AutoUnmuteByInventory">
+ [FIRST] [LAST]に持ち物を渡したため、 無視設定が自動的に解除されました。
+ </notification>
+ <notification name="VoiceInviteGroup">
+ [NAME]が、グループ[GROUP]とのボイスチャットコールに参加しました。
+コールに参加するには「受け入れる」をクリックし、招待を断るときは「拒否」をクリックしてください。このコールをしている人をミュートにする場合は「ミュート」をクリックしてください。
+ <form name="form">
+ <button name="Accept" text="受け入れる"/>
+ <button name="Decline" text="拒否"/>
+ <button name="Mute" text="ミュート"/>
+ </form>
+ </notification>
+ <notification name="VoiceInviteAdHoc">
+ [NAME]が、会議チャットでボイスチャットコールに参加しました。
+コールに参加するには「受け入れる」をクリックし、招待を断るときは「拒否」をクリックしてください。 このユーザーをミュート(消声)する場合は「ミュート」をクリックしてください。
+ <form name="form">
+ <button name="Accept" text="受け入れる"/>
+ <button name="Decline" text="拒否"/>
+ <button name="Mute" text="ミュート"/>
+ </form>
+ </notification>
+ <notification name="InviteAdHoc">
+ [NAME]が、あなたを会議チャットに招待しています。
+チャットに参加するには「受け入れる」をクリックし、招待を断るときは「拒否」をクリックしてください。このユーザーをミュート(消声)する場合は「ミュート」をクリックしてください。
+ <form name="form">
+ <button name="Accept" text="受け入れる"/>
+ <button name="Decline" text="拒否"/>
+ <button name="Mute" text="ミュート"/>
+ </form>
+ </notification>
+ <notification name="VoiceChannelFull">
+ あなたが参加しようとしているボイスコール[VOICE_CHANNEL_NAME]は、参加者が最大限に達しました。後でもう一度お試しください。
+ </notification>
+ <notification name="ProximalVoiceChannelFull">
+ このエリアのボイスチャットは、混雑のため容量を超えてしまっています。申し訳ありませんが、他のエリアでボイスチャットをお試しください。
+ </notification>
+ <notification name="VoiceChannelDisconnected">
+ [VOICE_CHANNEL_NAME]への接続が切断されました。空間ボイスチャットに再接続されます。
+ </notification>
+ <notification name="VoiceChannelDisconnectedP2P">
+ [VOICE_CHANNEL_NAME]は、コールを終了しました。空間ボイスチャットに再接続されます。
+ </notification>
+ <notification name="P2PCallDeclined">
+ [VOICE_CHANNEL_NAME]は、あなたのコールを拒否しました。空間ボイスチャットに再接続されます。
+ </notification>
+ <notification name="P2PCallNoAnswer">
+ [VOICE_CHANNEL_NAME]は、あなたのコールを受け取れません。空間ボイスチャットに再接続されます。
+ </notification>
+ <notification name="VoiceChannelJoinFailed">
+ [VOICE_CHANNEL_NAME]への接続に失敗しました。時間をおいて、再度、試みてください。空間ボイスチャットに再接続されます。
+ </notification>
+ <notification name="VoiceLoginRetry">
+ あなた用のボイスチャンネルを作成しています。1分ほどかかります。
+ </notification>
+ <notification name="Cannot enter parcel: not a group member">
+ 適切なグループのメンバーではないため、区画に入ることができません。
+ </notification>
+ <notification name="Cannot enter parcel: banned">
+ 立入禁止されているため、区画に入ることができません。
+ </notification>
+ <notification name="Cannot enter parcel: not on access list">
+ アクセス・リストに含まれていないため、区画に入ることができません。
+ </notification>
+ <notification name="VoiceNotAllowed">
+ あなたには[VOICE_CHANNEL_NAME]のボイス・チャットに接続する権限がありません。
+ </notification>
+ <notification name="VoiceCallGenericError">
+ [VOICE_CHANNEL_NAME]のボイス・チャットに接続中に、エラーが発生しました。後でもう一度お試しください。
+ </notification>
+ <notification name="ServerVersionChanged">
+ 到着した地域は異なるシミュレーターのバージョンで実行されています。 詳細についてはこのメッセージをクリックしてください。
+ </notification>
+ <notification name="UnableToOpenCommandURL">
+ クリックしたURLはこのウェブブラウザでは開けません
+ </notification>
+ <global name="UnsupportedCPU">
+ - あなたの CPU の速度は必須動作環境の条件を満たしていません。
+ </global>
+ <global name="UnsupportedGLRequirements">
+ Second Life の使用に必要なハードウェアの環境が満たされていないようです。 Second Life ではマルチテクスチャーに対応したOpenGLグラフィック・カードが必要です。 この場合、グラフィック・カードの最新ドライバがインストールされていること、およびオペレーティング・システムにサービス・パックと修正プログラムが適用されていることをご確認ください。
+
+問題が解決されない場合には、次のサイトにアクセスしてください。 http://www.secondlife.com/support
+ </global>
+ <global name="UnsupportedCPUAmount">
+ 796
+ </global>
+ <global name="UnsupportedRAMAmount">
+ 510
+ </global>
+ <global name="UnsupportedGPU">
+ - あなたのグラフィック・カードは必須動作環境の条件を満たしていません。
+ </global>
+ <global name="UnsupportedRAM">
+ - あなたのシステム・メモリは必須動作環境の条件を満たしていません。
+ </global>
+ <global name="PermYes">
+ はい
+ </global>
+ <global name="PermNo">
+ いいえ
+ </global>
+</notifications>
diff --git a/indra/newview/skins/default/xui/ja/panel_group_general.xml b/indra/newview/skins/default/xui/ja/panel_group_general.xml
index 505762bf12..ea2953038e 100644
--- a/indra/newview/skins/default/xui/ja/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_general.xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="一般" name="general_tab">
<string name="help_text">
- [一般]タブには、このグループに関する
+ 「一般」タブには、このグループに関する
一般情報、オーナーと表示可能なメンバーのリスト
-一般的な[グループ環境設定]、メンバーのオプションが含まれます。
+一般的な「グループ環境設定」、メンバーのオプションが含まれます。
オプションの上でマウスカーソルを動かすと、ヘルプ情報を得られます。
</string>
@@ -49,7 +49,17 @@
<check_box label="会員募集" name="open_enrollement" tool_tip="招待状なしに自由にこのグループに加入することを許可するかどうかを指定します"/>
<check_box label="入会費:L$" name="check_enrollment_fee" tool_tip="このグループへの参加に入会費を必須とするかどうかを指定します"/>
<spinner name="spin_enrollment_fee" tool_tip="「入会費」がチェックされている場合、新規会員は入会時にここに指定された金額を支払う必要があります"/>
-
+ <combo_box name="group_mature_check" tool_tip="グループ情報がMature向けかどうかの設定をします。">
+ <combo_item name="select_mature">
+ - Matureの選択 -
+ </combo_item>
+ <combo_item name="mature">
+ Matureコンテンツ
+ </combo_item>
+ <combo_item name="pg">
+ PGコンテンツ
+ </combo_item>
+ </combo_box>
<panel name="title_container">
<text name="active_title_label">
私のアクティブ・タイトル
@@ -57,7 +67,7 @@
<combo_box name="active_title" tool_tip="このグループをアクティブ設定にした際アバターのネームタグに表示されるタイトルの設定"/>
</panel>
<check_box label="グループ通知を受信" name="receive_notices" tool_tip="グループからの通知を受信するかどうかを指定します。 このグループがスパム行為をしている場合は、このボックスのチェックを外してください"/>
- <check_box label="プロフィールにグループを表示" name="list_groups_in_profile" tool_tip="このグループをあなたのプロフィールに表示するかどうかを設定します"/>
+ <check_box label="プロフィールに表示" name="list_groups_in_profile" tool_tip="このグループをあなたのプロフィールに表示するかどうかを設定します"/>
</panel>
<string name="incomplete_member_data_str">
メンバー・データを検索
diff --git a/indra/newview/skins/default/xui/ja/panel_group_land_money.xml b/indra/newview/skins/default/xui/ja/panel_group_land_money.xml
index 9331071a88..f55dbf9009 100644
--- a/indra/newview/skins/default/xui/ja/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_land_money.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="土地とL$" name="land_money_tab">
<string name="help_text">
- グループ所有の土地は貢献値の詳細と共に表示されます。土地利用の合計が寄付総額かそれ以下になるまでは警告が表示されます。「詳細」と「販売」タブにグループの資金に関する情報が表示されます。
+ グループ所有地一覧は、寄付に関する詳細と一緒に表示されています。 「土地利用の合計」が「寄付総額」以下、または同じになるまで警告が表示されます。 「計画」、「詳細」、「販売」タブにはグループの資金に関する情報が掲載されています。
</string>
<button label="?" name="help_button"/>
<string name="cant_view_group_land_text">
@@ -19,6 +19,7 @@
<scroll_list name="group_parcel_list">
<column label="区画名" name="name"/>
<column label="地域(リージョン)" name="location"/>
+ <column label="種類" name="type"/>
<column label="面積" name="area"/>
<column label="" name="hidden"/>
</scroll_list>
@@ -57,6 +58,11 @@
グループL$
</text>
<tab_container name="group_money_tab_container">
+ <panel label="計画" name="group_money_planning_tab">
+ <text_editor name="group_money_planning_text">
+ 計算中...
+ </text_editor>
+ </panel>
<panel label="詳細" name="group_money_details_tab">
<text_editor name="group_money_details_text">
計算中…
diff --git a/indra/newview/skins/default/xui/ja/panel_group_notices.xml b/indra/newview/skins/default/xui/ja/panel_group_notices.xml
index 35b072a1ae..090ae2e329 100644
--- a/indra/newview/skins/default/xui/ja/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_notices.xml
@@ -16,7 +16,7 @@
</text>
<text name="lbl2">
通知は14日間保存されます。閲覧したい通知をクリックしてください。
-新着の通知をチェックするには、[更新]ボタンをクリックします。
+新着の通知をチェックするには、「更新」ボタンをクリックします。
ただし、各グループの通知リストは1日あたり200通に制限されます。
</text>
<scroll_list name="notice_list">
diff --git a/indra/newview/skins/default/xui/ja/panel_login.xml b/indra/newview/skins/default/xui/ja/panel_login.xml
index 4f2762de31..dc57b51b0d 100644
--- a/indra/newview/skins/default/xui/ja/panel_login.xml
+++ b/indra/newview/skins/default/xui/ja/panel_login.xml
@@ -37,7 +37,7 @@
[VERSION]
</text>
<text name="forgot_password_text" left="-230" width="220">
- 名前またはパスワードをお忘れですか?
+ 名前またはパスワードをお忘れですか?
</text>
<text name="forgot_password_url">
http://secondlife.com/account/request.php
diff --git a/indra/newview/skins/default/xui/ja/panel_notifications_channel.xml b/indra/newview/skins/default/xui/ja/panel_notifications_channel.xml
index 313f60c13b..5723535fd2 100644
--- a/indra/newview/skins/default/xui/ja/panel_notifications_channel.xml
+++ b/indra/newview/skins/default/xui/ja/panel_notifications_channel.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="notifications_panel">
- <layout_stack>
- <scroll_list name="notifications_list">
- <column label="名前" name="name"/>
- <column label="コンテンツ" name="content"/>
- <column label="日付" name="date"/>
- </scroll_list>
- <scroll_list name="notification_rejects_list">
- <column label="名前" name="name"/>
- <column label="コンテンツ" name="content"/>
- <column label="日付" name="date"/>
- </scroll_list>
- </layout_stack>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="notifications_panel">
+ <layout_stack name="stack1">
+ <scroll_list name="notifications_list">
+ <column label="名前" name="name"/>
+ <column label="コンテンツ" name="content"/>
+ <column label="日付" name="date"/>
+ </scroll_list>
+ <scroll_list name="notification_rejects_list">
+ <column label="名前" name="name"/>
+ <column label="コンテンツ" name="content"/>
+ <column label="日付" name="date"/>
+ </scroll_list>
+ </layout_stack>
+</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml b/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml
index e22aca4a12..875755a8c7 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml
@@ -4,20 +4,14 @@
チャットのフォント:
</text>
<radio_group name="chat_font_size">
- <radio_item length="1" name="radio" type="string">
- 小
- </radio_item>
- <radio_item length="1" name="radio2" type="string">
- 中
- </radio_item>
- <radio_item length="1" name="radio3" type="string">
- 大
- </radio_item>
+ <radio_item length="1" name="radio" type="string" label="小" />
+ <radio_item length="1" name="radio2" type="string" label="中" />
+ <radio_item length="1" name="radio3" type="string" label="大" />
</radio_group>
<text length="1" name="text_box2" type="string">
チャット・カラー:
</text>
- <color_swatch label="貴方" name="user" width="56"/>
+ <color_swatch label="自分" name="user" width="56"/>
<color_swatch label="その他" name="agent" left_delta="60"/>
<color_swatch label="IM" name="im"/>
<color_swatch label="システム" name="system"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
index d7b14608cd..3e3d62640f 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
@@ -28,6 +28,26 @@
<check_box label="解像度独立スケールを使用" name="ui_auto_scale"/>
<spinner label="退席までの時間:" name="afk_timeout_spinner"/>
<check_box label="リンデン・ドル(L$)の支払い/受け取りを通知" name="notify_money_change_checkbox"/>
+ <text name="maturity_desired_label">
+ レーティング区分:
+ </text>
+ <text name="maturity_desired_prompt">
+ アクセスしたいコンテンツ:
+ </text>
+ <combo_box name="maturity_desired_combobox">
+ <combo_item name="Desired_Adult">
+ PG、Mature、 Adult
+ </combo_item>
+ <combo_item name="Desired_Mature">
+ PGとMature
+ </combo_item>
+ <combo_item name="Desired_PG">
+ PG限定
+ </combo_item>
+ </combo_box>
+ <text name="maturity_desired_textbox">
+ PG限定
+ </text>
<text length="1" name="start_location_textbox" type="string">
ログイン位置:
</text>
@@ -72,6 +92,15 @@
<combo_box.item length="1" name="Chinese" type="string" label="中文 (简体) (中国語) - ベータ"/>
<combo_box.item length="1" name="(Japanese)" type="string" label="日本語 – ベータ"/>
<combo_box.item length="1" name="(Korean)" type="string" label="한국어 (韓国語) – ベータ"/>
+ <combo_item name="Italian">
+ Italiano (イタリア語) - ベータ
+ </combo_item>
+ <combo_item name="Dutch">
+ Nederlands (オランダ語) - ベータ
+ </combo_item>
+ </combo_item>
+ <combo_item name="Turkish">
+ Türkçe (トルコ語) - ベータ
</combo_box>
<check_box label="言語をオブジェクトと共有" name="language_is_public" tool_tip="優先言語をインワールドのオブジェクトが認識する"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml
index 60be45a064..b70f04645f 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml
@@ -92,18 +92,10 @@
反射詳細:
</text>
<radio_group name="ReflectionDetailRadio">
- <radio_item name="0">
- 地形と樹木
- </radio_item>
- <radio_item name="1">
- すべての静的オブジェクト
- </radio_item>
- <radio_item name="2">
- すべてのアバターとオブジェクト
- </radio_item>
- <radio_item name="3">
- すべて
- </radio_item>
+ <radio_item name="0" label="地形と樹木" />
+ <radio_item name="1" label="すべての静的オブジェクト" />
+ <radio_item name="2" label="すべてのアバターとオブジェクト" />
+ <radio_item name="3" label="すべて" />
</radio_group>
<text name="AvatarRenderingText">
アバター表示:
@@ -154,23 +146,15 @@
ライティング詳細:
</text>
<radio_group name="LightingDetailRadio">
- <radio_item name="SunMoon">
- 太陽と月のみ
- </radio_item>
- <radio_item name="LocalLights">
- 近隣のローカル・ライト
- </radio_item>
+ <radio_item name="SunMoon" label="太陽と月のみ" />
+ <radio_item name="LocalLights" label="近隣のローカル・ライト" />
</radio_group>
<text name="TerrainDetailText">
地形詳細:
</text>
<radio_group name="TerrainDetailRadio">
- <radio_item name="0">
- 低
- </radio_item>
- <radio_item name="2">
- 高
- </radio_item>
+ <radio_item name="0" label="低" />
+ <radio_item name="2" label="高" />
</radio_group>
<button label="推奨された設定" name="Defaults" />
<button label="ハードウェア・オプション"
diff --git a/indra/newview/skins/default/xui/ja/panel_region_covenant.xml b/indra/newview/skins/default/xui/ja/panel_region_covenant.xml
index 81822c5e47..169f922149 100644
--- a/indra/newview/skins/default/xui/ja/panel_region_covenant.xml
+++ b/indra/newview/skins/default/xui/ja/panel_region_covenant.xml
@@ -1,50 +1,81 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="約款" name="Covenant">
+ <text font="SansSerifLarge" name="estate_section_lbl">
+ 不動産:
+ </text>
+ <text name="estate_name_lbl">
+ 名前:
+ </text>
+ <text name="estate_name_text">
+ メインランド
+ </text>
+ <text name="estate_owner_lbl">
+ オーナー:
+ </text>
+ <text name="estate_owner_text">
+ (無)
+ </text>
+ <text name="estate_cov_lbl">
+ 約款:
+ </text>
+ <text name="covenant_timestamp_text">
+ 最終更新日:1969年12月31日(水)16:00:00
+ </text>
+ <button label="?" name="covenant_help"/>
+ <text_editor bottom="-263" height="178" name="covenant_editor">
+ この不動産には約款がありません。
+ </text_editor>
+ <button label="リセット" name="reset_covenant"/>
<text name="covenant_help_text">
- 約款情報に対する変更は、不動産内のすべての区画に示されます。
+ 約款の変更は不動産全区画に適用となります。
</text>
- <text name="region_name_lbl">
+ <text name="covenant_instructions">
+ この不動産の約款の変更するには、
+ノートカードをドラッグ&amp;ドロップしてください。
+ </text>
+ <text bottom_delta="-34" font="SansSerifLarge" name="region_section_lbl">
地域:
</text>
+ <text name="region_name_lbl">
+ 名前:
+ </text>
<text name="region_name_text">
- (不明)
+ leyla
</text>
- <text name="estate_name_lbl">
- 不動産:
+ <text name="region_landtype_lbl">
+ 種類:
</text>
- <text name="estate_name_text">
- (不明)
+ <text name="region_landtype_text">
+ メインランド/ホームステッド
</text>
- <text name="covenent_instructions">
- 不動産約款を変更するには、ノートカードをドラッグ アンド ドロップしてください。
+ <text name="region_maturity_lbl">
+ 区分:
</text>
- <button label="?" name="covenant_help" />
- <button label="リセット" name="reset_covenant" />
- <text name="estate_owner_lbl">
- 不動産所有者:
+ <text name="region_maturity_text">
+ Adult
</text>
- <text name="estate_owner_text">
- (不明)
+ <text name="resellable_lbl">
+ 再販:
</text>
<text name="resellable_clause">
- この地域で購入した土地は再販が可能な場合と不可能な場合があります。
+ この地域(リージョン)にある土地は再販できません。
+ </text>
+ <text name="changeable_lbl">
+ 再分割:
</text>
<text name="changeable_clause">
- この地域で購入した土地は統合/再分割が可能な場合と不可能な場合があります。
+ この地域(リージョン)にある土地は統合または分割ができません。
</text>
- <text_editor name="covenant_editor">
- ロード中...
- </text_editor>
- <text name="can_resell">
+ <string name="can_resell">
この地域で購入した土地は、再販できます。
- </text>
- <text name="can_not_resell">
+ </string>
+ <string name="can_not_resell">
この地域の購入地は再販できないことがあります。
- </text>
- <text name="can_change">
+ </string>
+ <string name="can_change">
この地域の購入地は統合または再分割できます。
- </text>
- <text name="can_not_change">
+ </string>
+ <string name="can_not_change">
この地域の購入地は統合/再分割できないことがあります。
- </text>
+ </string>
</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 81bf03376a..73d2025446 100644
--- a/indra/newview/skins/default/xui/ja/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/ja/panel_region_general.xml
@@ -1,47 +1,59 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="地域" name="General">
<text name="region_text_lbl">
地域:
</text>
- <text name="region_text" left="90">
+ <text left="90" name="region_text">
未知
</text>
<text name="version_channel_text_lbl" width="100">
バージョン:
</text>
- <text name="version_channel_text" left="90">
+ <text left="90" name="version_channel_text">
不明
</text>
- <check_box label="土地整備をブロック" name="block_terraform_check" />
- <button label="?" name="terraform_help" />
- <check_box label="飛行をブロック" name="block_fly_check" />
- <button label="?" name="fly_help" />
- <check_box label="ダメージを許可" name="allow_damage_check" />
- <button label="?" name="damage_help" />
- <check_box label="プッシュを制限" name="restrict_pushobject" />
- <button label="?" name="restrict_pushobject_help" />
- <check_box label="土地の再販を許可" name="allow_land_resell_check" />
- <button label="?" name="land_resell_help" />
- <check_box label="土地の統合/分割を許可" name="allow_parcel_changes_check" />
- <button label="?" name="parcel_changes_help" />
- <check_box label="土地の検索表示をブロック" name="block_parcel_search_check"
- tool_tip="検索結果で、この地域と区画を人に見せる" />
- <button label="?" name="parcel_search_help" />
- <spinner label="アバター数上限" name="agent_limit_spin" />
- <button label="?" name="agent_limit_help" />
- <spinner label="物体ボーナス" name="object_bonus_spin" />
- <button label="?" name="object_bonus_help" />
+ <text name="region_type_lbl">
+ 種類:
+ </text>
+ <text name="region_type">
+ 不明
+ </text>
+ <check_box label="土地整備をブロック" name="block_terraform_check"/>
+ <button label="?" name="terraform_help"/>
+ <check_box label="飛行をブロック" name="block_fly_check"/>
+ <button label="?" name="fly_help"/>
+ <check_box label="ダメージを許可" name="allow_damage_check"/>
+ <button label="?" name="damage_help"/>
+ <check_box label="プッシュを制限" name="restrict_pushobject"/>
+ <button label="?" name="restrict_pushobject_help"/>
+ <check_box label="土地の再販を許可" name="allow_land_resell_check"/>
+ <button label="?" name="land_resell_help"/>
+ <check_box label="土地の統合/分割を許可" name="allow_parcel_changes_check"/>
+ <button label="?" name="parcel_changes_help"/>
+ <check_box label="土地の検索表示をブロック" name="block_parcel_search_check" tool_tip="検索結果で、この地域と区画を人に見せる"/>
+ <button label="?" name="parcel_search_help"/>
+ <spinner label="アバター数上限" name="agent_limit_spin"/>
+ <button label="?" name="agent_limit_help"/>
+ <spinner label="物体ボーナス" name="object_bonus_spin"/>
+ <button label="?" name="object_bonus_help"/>
<text label="成人指定" name="access_text">
- 成人指定:
+ 区分:
</text>
-
-
-
-
- <button label="?" name="access_help" />
- <button label="適用" name="apply_btn" />
- <button label="ユーザー1人ホームテレポート" name="kick_btn" />
- <button label="ユーザー全員ホームテレポート" name="kick_all_btn" />
- <button label="メッセージを地域へ送信..." name="im_btn" />
- <button label="テレハブの管理..." name="manage_telehub_btn" />
+ <combo_box label="Mature" name="access_combo">
+ <combo_item name="Adult">
+ Adult
+ </combo_item>
+ <combo_item name="Mature">
+ Mature
+ </combo_item>
+ <combo_item name="PG">
+ PG
+ </combo_item>
+ </combo_box>
+ <button label="?" name="access_help"/>
+ <button label="適用" name="apply_btn"/>
+ <button label="ユーザー1人ホームテレポート" name="kick_btn"/>
+ <button label="ユーザー全員ホームテレポート" name="kick_all_btn"/>
+ <button label="メッセージを地域へ送信..." name="im_btn"/>
+ <button label="テレハブの管理..." name="manage_telehub_btn"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/role_actions.xml b/indra/newview/skins/default/xui/ja/role_actions.xml
index 57e6d620a4..9a58f753e5 100644
--- a/indra/newview/skins/default/xui/ja/role_actions.xml
+++ b/indra/newview/skins/default/xui/ja/role_actions.xml
@@ -4,38 +4,38 @@
description="これらの能力には、グループ・メンバーを追加、排除し、招待状なしに新メンバーの参加を認める権限が含まれます。"
name="Membership">
<action description="このグループに人を招待"
- longdescription="グループに人を招待するには、[メンバーと役割]タブ>[メンバー]サブタブの[新しい人を招待...]ボタンを使います。"
+ longdescription="グループに人を招待するには、「メンバーと役割」タブ>「メンバー」サブタブの「新しい人を招待...」ボタンを使います。"
name="member invite" value="1" />
<action description="メンバーをこのグループから追放"
- longdescription="メンバーをこのグループから追放するには、[メンバーと役割]タブ &gt; [役割]サブタブの[グループから追放]を使います。 オーナーは、他のオーナー以外の任意のメンバーを追放できます。 オーナーでないユーザーがグループからメンバーを追放できるのは、そのメンバーが「全員」の役割にのみ所属しており、他の役割に所属していない場合だけです。 役割からメンバーを除外するには、「役割からメンバーを除外」能力を有している必要があります。"
+ longdescription="メンバーをこのグループから追放するには、「メンバーと役割」タブ > 「役割」サブタブの「グループから追放」を使います。 オーナーは、他のオーナー以外の任意のメンバーを追放できます。 オーナーでないユーザーがグループからメンバーを追放できるのは、そのメンバーが「全員」の役割にのみ所属しており、他の役割に所属していない場合だけです。 役割からメンバーを除外するには、「役割からメンバーを除外」能力を有している必要があります。"
name="member eject" value="2" />
- <action description="[会員募集]に切り替え、[入会費]を変更。"
- longdescription="招待状なしに新メンバーが加入できるように[会員募集]に切り替え、[一般]タブの[グループ環境設定]セクションから[入会費]を変更します。"
+ <action description="「会員募集」に切り替え、「入会費」を変更。"
+ longdescription="招待状なしに新メンバーが加入できるように「会員募集」に切り替え、「一般」タブの「グループ環境設定」セクションから「入会費」を変更します。"
name="member options" value="3" />
</action_set>
<action_set
description="これらの能力には、グループ内の役割を追加、削除、変更し、役割にメンバーを追加、削除し、さらに役割へ能力を割り当てる権限が含まれます。"
name="Roles">
<action description="新しい役割を作成"
- longdescription="[メンバーと役割]タブ &gt; [役割]サブタブで新しい役割を作成"
+ longdescription="「メンバーと役割」タブ > 「役割」サブタブで新しい役割を作成"
name="role create" value="4" />
<action description="役割を削除"
- longdescription="役割を削除するには、メンバーと役割タブ &gt; 役割サブタブを使います。"
+ longdescription="役割を削除するには、「メンバーと役割」タブ > 「役割」サブタブを使います。"
name="role delete" value="5" />
<action description="役割名、タイトル、説明を変更"
- longdescription="役割名、タイトル、説明を変更するには、役割を選択した後、[メンバーと役割]タブ &gt; [役割]サブタブの下部分を使います。"
+ longdescription="役割名、タイトル、説明を変更するには、役割を選択した後、「メンバーと役割」タブ > 「役割」サブタブの下部分を使います。"
name="role properties" value="6" />
<action description="メンバーを割り当て人の役割に割り当てる"
- longdescription="メンバーを割り当て人の役割に割り当てるには、[メンバーと役割]タブ>[役割]サブタブの割り当てられた役割セクションを使います。 この能力を持つメンバーは、割り当て人が現在所属している役割に対してのみメンバーを追加できます。"
+ longdescription="メンバーを割り当て人の役割に割り当てるには、「メンバーと役割」タブ>「役割」サブタブの割り当てられた役割セクションを使います。 この能力を持つメンバーは、割り当て人が現在所属している役割に対してのみメンバーを追加できます。"
name="role assign member limited" value="7" />
<action description="メンバーを任意の役割に割り当てる"
- longdescription="メンバーを任意の役割に割り当てるには、[メンバーと役割]タブ>[役割]サブタブの割り当てられた役割セクションを使います。 *警告* この能力を持つ役割のメンバーは、自分自身や他のメンバーを現在の役割よりも強力な役割に割り当てることができます。このため、オーナー以外のメンバーに対して、オーナーに近いパワーを与えることも可能です。 この能力の割り当ては、そのことを理解した上で行ってください。"
+ longdescription="メンバーを任意の役割に割り当てるには、「メンバーと役割」タブ>「役割」サブタブの割り当てられた役割セクションを使います。 *警告* この能力を持つ役割のメンバーは、自分自身や他のメンバーを現在の役割よりも強力な役割に割り当てることができます。このため、オーナー以外のメンバーに対して、オーナーに近いパワーを与えることも可能です。 この能力の割り当ては、そのことを理解した上で行ってください。"
name="role assign member" value="8" />
<action description="役割からメンバーを解除"
- longdescription="メンバーを役割から解除するには、[メンバーと役割]タブ>[メンバー]サブタブの[割り当てられた役割]セクションを使います。 オーナーは解除できません。"
+ longdescription="メンバーを役割から解除するには、「メンバーと役割」タブ>「メンバー」サブタブの「割り当てられた役割」セクションを使います。 オーナーは解除できません。"
name="role remove member" value="9" />
<action description="役割の能力の割り当てと解除"
- longdescription="役割の能力の割り当てと解除は、[メンバーと役割]タブ>[役割]サブタブの許可された能力セクションで行います。 *警告* この能力を持つ役割のメンバーは、すべての能力を自分自身や他のメンバーに割り当てることができます。このため、オーナー以外のメンバーに対して、オーナーに近いパワーを持たせることも可能です。 この能力の割り当ては、そのことを理解した上で行ってください。"
+ longdescription="役割の能力の割り当てと解除は、「メンバーと役割」タブ>「役割」サブタブの許可された能力セクションで行います。 *警告* この能力を持つ役割のメンバーは、すべての能力を自分自身や他のメンバーに割り当てることができます。このため、オーナー以外のメンバーに対して、オーナーに近いパワーを持たせることも可能です。 この能力の割り当ては、そのことを理解した上で行ってください。"
name="role change actions" value="10" />
</action_set>
<action_set
@@ -47,111 +47,111 @@
name="group change identity" value="11" />
</action_set>
<action_set
- description="これらの能力には、グループ所有の土地を譲渡、修正、販売する権限が含まれます。 [土地情報]のウィンドウを開くには、地面を右クリックして[土地情報]を選択するか、メニューバーの[区画情報]をクリックします。"
+ description="これらの能力には、グループ所有の土地を譲渡、修正、販売する権限が含まれます。 「土地情報」のウィンドウを開くには、地面を右クリックして「土地情報」を選択するか、メニューバーの「区画情報」をクリックします。"
name="Parcel Management">
<action description="グループ用の土地の譲渡と購入"
- longdescription="グループ用の土地の譲渡と購入を行います。 この操作には、土地情報画面 &gt; 一般タブを使います。"
+ longdescription="グループ用の土地の譲渡と購入を行います。 この操作には、土地情報画面 > 一般タブを使います。"
name="land deed" value="12" />
<action description="Linden総督に土地を明け渡す"
- longdescription="Linden総督に土地を明け渡します。 *警告* この能力を持つ役割のメンバーは、[土地情報]>[一般]でグループ所有の土地を放棄して、売り上げなしでLinden総督に明け渡すことができます。 この能力の割り当ては、そのことを理解した上で行ってください。"
+ longdescription="Linden総督に土地を明け渡します。 *警告* この能力を持つ役割のメンバーは、「土地情報」>「一般」でグループ所有の土地を放棄して、売り上げなしでLinden総督に明け渡すことができます。 この能力の割り当ては、そのことを理解した上で行ってください。"
name="land release" value="13" />
<action description="売り地情報の設定"
- longdescription="売り地情報を設定します。 *警告* この能力を持つ役割のメンバーは、[土地情報]>[一般]タブでグループ所有の土地を自分の思いどおりに販売することができます。 この能力の割り当ては、そのことを理解した上で行ってください。"
+ longdescription="売り地情報を設定します。 *警告* この能力を持つ役割のメンバーは、「土地情報」>「一般」タブでグループ所有の土地を自分の思いどおりに販売することができます。 この能力の割り当ては、そのことを理解した上で行ってください。"
name="land set sale info" value="14" />
<action description="区画の再分割と統合"
- longdescription="区画を再分割および統合します。 この操作を実行するには、地面を右クリックして[地形を編集]を選択し、土地の上でマウスをドラッグして範囲を選択します。 再分割するには、分割対象を選択した後、[再分割...]をクリックします。 統合するには、複数の隣接する区画を選択した後、[統合...]をクリックします。"
+ longdescription="区画を再分割および統合します。 この操作を実行するには、地面を右クリックして「地形を編集」を選択し、土地の上でマウスをドラッグして範囲を選択します。 再分割するには、分割対象を選択した後、「再分割...」をクリックします。 統合するには、複数の隣接する区画を選択した後、「統合...」をクリックします。"
name="land divide join" value="15" />
</action_set>
<action_set
description="これらの能力には、区画名、公開設定、検索ディレクトリへの登録、着地点ならびにTPルートのオプションを変更する権限が含まれます。"
name="Parcel Identity">
- <action description="[場所検索に表示]に切り替え、カテゴリーを設定"
- longdescription="[場所検索に表示]に切り替え、[土地情報]>[オプション]タブでカテゴリーを設定"
+ <action description="「場所検索に表示」に切り替え、カテゴリーを設定"
+ longdescription="「場所検索に表示」に切り替え、「土地情報」>「オプション」タブでカテゴリーを設定"
name="land find places" value="17" />
<action description="区画名、説明、「Web上で公開」の設定を変更"
- longdescription="区画名、説明、「Web上で公開」の設定を変更。 この操作には、[土地情報] &gt; [オプション]タブを使います。"
+ longdescription="区画名、説明、「Web上で公開」の設定を変更。 この操作には、「土地情報」 > 「オプション」タブを使います。"
name="land change identity" value="18" />
<action description="着地点およびテレポート・ルートを設定"
- longdescription="この能力を持つ役割のメンバーは、グループ所有の区画上で着地点を設定することにより外部からのテレポートの到着位置を指定できると共に、テレポート・ルートを設定して細かく制御することができます。 この操作は、[土地情報]>[オプション]タブで行います。"
+ longdescription="この能力を持つ役割のメンバーは、グループ所有の区画上で着地点を設定することにより外部からのテレポートの到着位置を指定できると共に、テレポート・ルートを設定して細かく制御することができます。 この操作は、「土地情報」>「オプション」タブで行います。"
name="land set landing point" value="19" />
</action_set>
<action_set
- description="これらの能力には、[オブジェクトを作成]、[地形を編集]、音楽とメディアの設定など、区画のオプションに関連する権限が含まれます。"
+ description="これらの能力には、「オブジェクトを作成」、「地形を編集」、音楽とメディアの設定など、区画のオプションに関連する権限が含まれます。"
name="Parcel Settings">
<action description="音楽とメディアの設定を変更"
- longdescription="ストリーミング・ミュージックと動画の設定を変更するには、[土地情報] &gt; [メディア]タブを使います。"
+ longdescription="ストリーミング・ミュージックと動画の設定を変更するには、「土地情報」 > 「メディア」タブを使います。"
name="land change media" value="20" />
- <action description="[地形を編集]に切り替え"
- longdescription="[地形を編集]に切り替えます。 *警告* [土地情報]>[オプション]>[地形を編集]の順で進むと、誰でもあなたの土地の形の整備や、リンデンプラントの設置、移動ができます。 この能力を割り振る前に、このことをよく理解しておいてください。 [土地情報]>[オプション]タブから[地形を編集]に切り替えられます。"
+ <action description="「地形を編集」に切り替え"
+ longdescription="「地形を編集」に切り替えます。 *警告* 「土地情報」>「オプション」>「地形を編集」の順で進むと、誰でもあなたの土地の形の整備や、リンデンプラントの設置、移動ができます。 この能力を割り振る前に、このことをよく理解しておいてください。 「土地情報」>「オプション」タブから「地形を編集」に切り替えられます。"
name="land edit" value="21" />
<action
- description="[土地情報]>[オプション]タブ内のさまざまな設定を切り替え"
- longdescription="[安全(ダメージなし)]、[飛ぶ]に切り替え、[土地情報]>[オプション]タブから、 他の住人がグループ所有の土地で[オブジェクトを作成]、[地形を編集]、[ランドマークを作成]、[スクリプトを実行]できるようにします。"
+ description="「土地情報」>「オプション」タブ内のさまざまな設定を切り替え"
+ longdescription="「安全(ダメージなし)」、「飛ぶ」に切り替え、「土地情報」>「オプション」タブから、 他の住人がグループ所有の土地で「オブジェクトを作成」、「地形を編集」、「ランドマークを作成」、「スクリプトを実行」できるようにします。"
name="land options" value="22" />
</action_set>
<action_set
description="これらの能力には、グループ所有の区画に関する規制を迂回することを、メンバーに許可する権限が含まれます。"
name="Parcel Powers">
<action description="常に「地形を編集」を許可"
- longdescription="この能力を持つ役割のメンバーは、グループ所有の区画上で地形を編集することができます。その区画が[土地情報]>[オプション]タブでオフになっていても、地形の編集が可能です。"
+ longdescription="この能力を持つ役割のメンバーは、グループ所有の区画上で地形を編集することができます。その区画が「土地情報」>「オプション」タブでオフになっていても、地形の編集が可能です。"
name="land allow edit land" value="23" />
<action description="常に「飛行」を許可"
- longdescription="この能力を持つ役割のメンバーは、グループ所有の区画上を飛行することができます。その区画が[土地情報]>[オプション]タブでオフになっていても、飛行が可能です。"
+ longdescription="この能力を持つ役割のメンバーは、グループ所有の区画上を飛行することができます。その区画が「土地情報」>「オプション」タブでオフになっていても、飛行が可能です。"
name="land allow fly" value="24" />
<action description="常に「オブジェクト作成」を許可"
- longdescription="この能力を持つ役割のメンバーは、グループ所有の区画上にオブジェクトを作成することができます。その区画が[土地情報]>[オプション]タブでオフになっていても、オブジェクトの作成が可能です。"
+ longdescription="この能力を持つ役割のメンバーは、グループ所有の区画上にオブジェクトを作成することができます。その区画が「土地情報」>「オプション」タブでオフになっていても、オブジェクトの作成が可能です。"
name="land allow create" value="25" />
<action description="常に「ランドマークを作成」を許可"
- longdescription="この能力を持つ役割のメンバーは、グループ所有の区画上にランドマークを作成することができます。その区画が[土地情報]>[オプション]タブでオフになっていても、ランドマークの作成が可能です。"
+ longdescription="この能力を持つ役割のメンバーは、グループ所有の区画上にランドマークを作成することができます。その区画が「土地情報」>「オプション」タブでオフになっていても、ランドマークの作成が可能です。"
name="land allow landmark" value="26" />
<action description="グループの土地への「ホーム設定」を許可"
- longdescription="この能力を持つ役割のメンバーは、[ワールド]メニュー>[ホームをここに設定]を使用して、このグループに譲渡された区画をホームに設定することができます。"
+ longdescription="この能力を持つ役割のメンバーは、「世界」メニュー>「ホームをここに設定」を使用して、このグループに譲渡された区画をホームに設定することができます。"
name="land allow set home" value="28" />
</action_set>
<action_set
description="これらの能力には、住人の凍結や追放を含む、グループ所有の区画へのアクセスを許可、制限する権限が含まれます。"
name="Parcel Access">
<action description="区画アクセス・リストの管理"
- longdescription="区画アクセス・リストの管理は、[土地情報]>[アクセス]タブで行います。"
+ longdescription="区画アクセス・リストの管理は、「土地情報」>「アクセス」タブで行います。"
name="land manage allowed" value="29" />
<action description="区画禁止リストの管理"
- longdescription="区画禁止リストの管理は、[土地情報]>[禁止]タブで行います。"
+ longdescription="区画禁止リストの管理は、「土地情報」>「禁止」タブで行います。"
name="land manage banned" value="30" />
- <action description="区画の「パス販売」の設定を変更"
- longdescription="区画の「パス販売」の設定を変更するには、[土地情報] &gt; [アクセス]タブを使います。"
+ <action description="区画の「入場許可を販売」の設定を変更"
+ longdescription="区画の「入場許可を販売」の設定を変更するには、「土地情報」 > 「アクセス」タブを使います。"
name="land manage passes" value="31" />
<action description="区画上の住人の追放と凍結"
- longdescription="この能力を持つ役割のメンバーは、グループ所有の区画に問題のある住人がいる場合に、右クリック・メニューから[詳細>]を選択し、[追放...]または[フリーズ...]を選択することにより、その住人を処理することができます。"
+ longdescription="この能力を持つ役割のメンバーは、グループ所有の区画に問題のある住人がいる場合に、右クリック・メニューから「詳細」を選択し、「追放...」または「フリーズ...」を選択することにより、その住人を処理することができます。"
name="land admin" value="32" />
</action_set>
<action_set
description="これらの能力には、オブジェクトの返却、リンデンプラントの設置や移動を、メンバーに許可する権限が含まれます。 これはメンバーがゴミ処理や景観作成をする際に便利ですが、返却したオブジェクトは元に戻せないので、注意して行いましょう。"
name="Parcel Content">
<action description="グループ所有オブジェクトの返却"
- longdescription="グループ所有の区画上のオブジェクトのうち、グループ所有のオブジェクトを返却するには、[土地情報]>[オブジェクト]タブを使います。"
+ longdescription="グループ所有の区画上のオブジェクトのうち、グループ所有のオブジェクトを返却するには、「土地情報」>「オブジェクト」タブを使います。"
name="land return group owned" value="48" />
<action description="グループに設定されているオブジェクトを返却"
- longdescription="グループ所有の区画上のオブジェクトのうち、グループに設定されているオブジェクトを返却するには、[土地情報]>[オブジェクト]タブを使います。"
+ longdescription="グループ所有の区画上のオブジェクトのうち、グループに設定されているオブジェクトを返却するには、「土地情報」>「オブジェクト」タブを使います。"
name="land return group set" value="33" />
<action description="非グループ・オブジェクトの返却"
- longdescription="グループ所有の区画上のオブジェクトのうち、グループ以外のオブジェクトを返却するには、[土地情報]>[オブジェクト]タブを使います。"
+ longdescription="グループ所有の区画上のオブジェクトのうち、グループ以外のオブジェクトを返却するには、「土地情報」>「オブジェクト」タブを使います。"
name="land return non group" value="34" />
<action description="Linden製の植物を使用して景観作成"
longdescription="景観作成能力により、リンデン製の樹木、植物、草を配置および移動することができます。 これらのアイテムは、自分の持ち物のライブラリ>オブジェクト・フォルダから検索できるほか、「作成」ボタンで作成することもできます。"
name="land gardening" value="35" />
</action_set>
<action_set
- description="これらの能力には、グループ所有のオブジェクトを譲渡、修正、販売する権限が含まれます。 こうした変更は、[編集ツール]&gt;[一般]タブで行われます。 オブジェクトを右クリックして[編集]を開くと、設定内容を表示できます。"
+ description="これらの能力には、グループ所有のオブジェクトを譲渡、修正、販売する権限が含まれます。 こうした変更は、「編集ツール」>「一般」タブで行われます。 オブジェクトを右クリックして「編集」を開くと、設定内容を表示できます。"
name="Object Management">
<action description="グループにオブジェクトを譲渡"
- longdescription="グループにオブジェクトを譲渡するには、編集ツール>一般タブを使います。"
+ longdescription="グループにオブジェクトを譲渡するには、「編集ツール」>「一般」タブを使います。"
name="object deed" value="36" />
<action
description="グループ所有オブジェクトの操作(移動、コピー、修正)"
- longdescription="グループ所有オブジェクトの操作(移動、コピー、修正)は、[編集ツール]>[一般]タブで行います。"
+ longdescription="グループ所有オブジェクトの操作(移動、コピー、修正)は、「編集ツール」>「一般」タブで行います。"
name="object manipulate" value="38" />
<action description="グループ所有オブジェクトを販売可能に設定"
- longdescription="グループ所有オブジェクトを販売可能に設定にするには、[編集ツール]>[一般]タブを使います。"
+ longdescription="グループ所有オブジェクトを販売可能に設定にするには、「編集ツール」>「一般」タブを使います。"
name="object set sale" value="39" />
</action_set>
<action_set
@@ -165,17 +165,17 @@
description="これらの能力には、グループ通知の送信、受信、表示をメンバーに許可する権限が含まれます。"
name="Notices">
<action description="通知を送信"
- longdescription="この能力を持つ役割のメンバーは、[グループ情報]>[通知]タブで通知を送信することができます。"
+ longdescription="この能力を持つ役割のメンバーは、「グループ情報」>「通知」タブで通知を送信することができます。"
name="notices send" value="42" />
<action description="通知の受信と過去の通知の閲覧"
- longdescription="この能力を持つ役割のメンバーは、通知を受け取ることができ、[グループ情報]>[通知]タブで過去の通知を閲覧することができます。"
+ longdescription="この能力を持つ役割のメンバーは、通知を受け取ることができ、「グループ情報」>「通知」タブで過去の通知を閲覧することができます。"
name="notices receive" value="43" />
</action_set>
<action_set
description="これらの能力には、提案の作成と投票、投票履歴の表示をメンバーに許可する権限が含まれます。"
name="Proposals">
<action description="提案を作成"
- longdescription="この能力を持つ役割のメンバーは、投票の対象となる問題提起を[グループ情報]>[問題提起]タブ上で作成することができます。"
+ longdescription="この能力を持つ役割のメンバーは、投票の対象となる問題提起を「グループ情報」>「問題提起」タブ上で作成することができます。"
name="proposal start" value="44" />
<action description="問題提起に投票する"
longdescription="この能力を持つ役割のメンバーは、グループ情報>提案タブで提案に投票することができます。"
diff --git a/indra/newview/skins/default/xui/ja/strings.xml b/indra/newview/skins/default/xui/ja/strings.xml
index 5243cc76b9..5432c116a7 100644
--- a/indra/newview/skins/default/xui/ja/strings.xml
+++ b/indra/newview/skins/default/xui/ja/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- This file contains strings that used to be hardcoded in the source.
- It is only for those strings which don&apos;t belong in a floater.
+ It is only for those strings which do not belong in a floater.
For example, the strings used in avatar chat bubbles, and strings
that are returned from one component and may appear in many places-->
<strings>
@@ -418,6 +418,30 @@
<string name="shout">
の叫び:
</string>
+ <string name="SIM_ACCESS_PG">
+ PG
+ </string>
+ <string name="SIM_ACCESS_MATURE">
+ Mature
+ </string>
+ <string name="SIM_ACCESS_ADULT">
+ Adult
+ </string>
+ <string name="SIM_ACCESS_DOWN">
+ オフライン
+ </string>
+ <string name="SIM_ACCESS_MIN">
+ 不明
+ </string>
+ <string name="land_type_unknown">
+ (不明)
+ </string>
+ <string name="covenant_never_modified">
+ 最終修正: (無)
+ </string>
+ <string name="covenant_modified">
+ 最終修正:
+ </string>
<string name="all_files">
全てのファイル
</string>
diff --git a/indra/newview/skins/default/xui/ja/teleport_strings.xml b/indra/newview/skins/default/xui/ja/teleport_strings.xml
index 9e6b4bd26e..7e99d2562e 100644
--- a/indra/newview/skins/default/xui/ja/teleport_strings.xml
+++ b/indra/newview/skins/default/xui/ja/teleport_strings.xml
@@ -2,21 +2,16 @@
<teleport_messages name="">
<message_set name="errors">
<message name="invalid_tport">
- テレポート・リクエストの処理中に問題が発生しました。テレポートするには、
-再度ログインする必要があります。このメッセージが
-引き続き表示される場合は、技術サポートFAQ(www.secondlife.com/support)
-を参照してください。
+ テレポート・リクエストの処理中に問題が発生しました。テレポートするには、再度ログインする必要があります。
+このメッセージが引き続き表示される場合は、技術サポートFAQ(www.secondlife.com/support)を参照してください。
</message>
<message name="invalid_region_handoff">
- 地域間の移動の処理中に問題が発生しました。地域間を
-移動するには、再度ログインする必要があります。このメッセージが
-引き続き表示される場合は、技術サポートFAQ(www.secondlife.com/support)
-を参照してください。
+ 地域間の移動の処理中に問題が発生しました。地域間を移動するには、再度ログインする必要があります。
+このメッセージが引き続き表示される場合は、技術サポートFAQ(www.secondlife.com/support)を参照してください。
</message>
<message name="blocked_tport">
申し訳ございません。テレポートは現在、ブロックされています。もう少し後でやり直してください。
-やり直してもテレポートできない場合は、いったんログアウトし、再度ログインして
-問題を解決してください。
+やり直してもテレポートできない場合は、いったんログアウトし、再度ログインして問題を解決してください。
</message>
<message name="nolandmark_tport">
残念ながら、システムはランドマーク目的地を探せませんでした。
@@ -32,21 +27,18 @@
添付物は、まだ到着していません。あと数秒間お待ちいただくか、いったんログアウトし、再度ログインしてからテレポートをやり直してださい。
</message>
<message name="too_many_uploads_tport">
- この地域の資産キューが現在込み合っているため、テレポート・
-リクエストを時間通りに処理することが難しい状況です。数分後にやり直すか、
-または混雑していない他の地域をお試しください。
+ この地域の資産キューが現在込み合っているため、テレポート・リクエストを時間通りに処理することが難しい状況です。
+数分後にやり直すか、または混雑していない他の地域をお試しください。
</message>
<message name="expired_tport">
- 申し訳ございません。システムはテレポート・リクエストを時間どおりに
-完了できませんでした。数分後にやり直してください。
+ 申し訳ございません。システムはテレポート・リクエストを時間どおりに完了できませんでした。数分後にやり直してください。
</message>
<message name="expired_region_handoff">
申し訳ございません。システムは地域間の移動を時間どおりに完了できませんでした。
数分後にやり直してください。
</message>
<message name="no_host">
- テレポート目的地を見つけられません。目的地が一時的に利用できない
-状態か、またはすでに消滅している可能性があります。数分後にやり直してください。
+ テレポート目的地を見つけられません。目的地が一時的に利用できない状態か、またはすでに消滅している可能性があります。数分後にやり直してください。
</message>
<message name="no_inventory_host">
持ち物システムは現在利用できません。
diff --git a/indra/newview/skins/default/xui/nl/floater_about.xml b/indra/newview/skins/default/xui/nl/floater_about.xml
index 7e72f79bcf..d981ac2c8c 100644
--- a/indra/newview/skins/default/xui/nl/floater_about.xml
+++ b/indra/newview/skins/default/xui/nl/floater_about.xml
@@ -1,35 +1,35 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_about" title="Over Second Life">
- <text_editor name="credits_editor">
- Second Life wordt u aangeboden door Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Yang, T, Simone, Maestro, Scott, Charlene, Quixote, Amanda, Susan, Zed, Anne, Enkidu, Esbee, Joroan, Katelin, Roxie, Tay, Scarlet, Kevin, Johnny, Wolfgang, Andren, Bob, Howard, Merov, Rand, Ray, Michon, Newell, Galen, Dessie, Les and many others.
-
-Een &apos;Dank u&apos; voor de volgende bewoners voor het helpen zorgdragen dat dit de beste versie tot nu toe is:
-
-3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion
-APR Copyright (C) 2000-2004 The Apache Software Foundation
-cURL Copyright (C) 1996-2002, Daniel Stenberg, (daniel@haxx.se)
-DBus/dbus-glib Copyright (C) 2002, 2003 CodeFactory AB / Copyright (C) 2003, 2004
-Red Hat, Inc. expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd.
-FreeType Copyright (C) 1996-2002, The FreeType Project (www.freetype.org).
-GL Copyright (C) 1999-2004 Brian Paul.
-Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited.
-jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW)
-jpeglib Copyright (C) 1991-1998, Thomas G. Lane.
-ogg/vorbis Copyright (C) 2001, Xiphophorus
-OpenSSL Copyright (C) 1998-2002 The OpenSSL Project.
-SDL Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga
-SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
-xmlrpc-epi Copyright (C) 2000 Epinions, Inc.
-zlib Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler.
-google-perftools Copyright (c) 2005, Google Inc.
-
-All rights reserved. See licenses.txt for details.
-
-Voice chat Audio coding: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C)
-
-I get by with a little help from my friends. --Richard Starkey
- </text_editor>
- <string name="you_are_at">
- U bent op [POSITION]
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_about" title="Over Second Life">
+ <text_editor name="credits_editor">
+ Second Life wordt u aangeboden door Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Yang, T, Simone, Maestro, Scott, Charlene, Quixote, Amanda, Susan, Zed, Anne, Enkidu, Esbee, Joroan, Katelin, Roxie, Tay, Scarlet, Kevin, Johnny, Wolfgang, Andren, Bob, Howard, Merov, Rand, Ray, Michon, Newell, Galen, Dessie, Les and many others.
+
+Een &apos;Dank u&apos; voor de volgende bewoners voor het helpen zorgdragen dat dit de beste versie tot nu toe is:
+
+3Dconnexion SDK Copyright (C) 1992-2007 3Dconnexion
+APR Copyright (C) 2000-2004 The Apache Software Foundation
+cURL Copyright (C) 1996-2002, Daniel Stenberg, (daniel@haxx.se)
+DBus/dbus-glib Copyright (C) 2002, 2003 CodeFactory AB / Copyright (C) 2003, 2004
+Red Hat, Inc. expat Copyright (C) 1998, 1999, 2000 Thai Open Source Software Center Ltd.
+FreeType Copyright (C) 1996-2002, The FreeType Project (www.freetype.org).
+GL Copyright (C) 1999-2004 Brian Paul.
+Havok.com(TM) Copyright (C) 1999-2001, Telekinesys Research Limited.
+jpeg2000 Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW)
+jpeglib Copyright (C) 1991-1998, Thomas G. Lane.
+ogg/vorbis Copyright (C) 2001, Xiphophorus
+OpenSSL Copyright (C) 1998-2002 The OpenSSL Project.
+SDL Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga
+SSLeay Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+xmlrpc-epi Copyright (C) 2000 Epinions, Inc.
+zlib Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler.
+google-perftools Copyright (c) 2005, Google Inc.
+
+All rights reserved. See licenses.txt for details.
+
+Voice chat Audio coding: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C)
+
+To be a success in business, be daring, be first, be different. --Henry Marchant
+ </text_editor>
+ <string name="you_are_at">
+ U bent op [POSITION]
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_about_land.xml b/indra/newview/skins/default/xui/nl/floater_about_land.xml
index 6a11d4e853..44c2ebccf7 100644
--- a/indra/newview/skins/default/xui/nl/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/nl/floater_about_land.xml
@@ -1,390 +1,488 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floaterland" title="Over land">
- <tab_container name="landtab">
- <panel label="Algemeen" name="land_general_panel">
- <text name="Name:">
- Naam:
- </text>
- <text name="Description:">
- Omschrijving:
- </text>
- <text name="Owner:">
- Eigenaar
- </text>
- <text name="OwnerText">
- Leyla Linden
- </text>
- <button label="Profiel..." label_selected="Profiel..." name="Profile..."/>
- <text name="Group:">
- Groep:
- </text>
- <button label="Instellen..." label_selected="Instellen..." name="Set..."/>
- <check_box label="Overdracht aan groep toestaan" name="check deed" tool_tip="Een groepofficier kan dit land aan de groep overdragen, zodat het ondersteund wordt door de landallocatie van de groep."/>
- <button label="Overdragen..." label_selected="Overdragen..." name="Deed..." tool_tip="U mag alleen land overdragen indien u een officier bent in de geselecteerde groep."/>
- <check_box label="Eigenaar maakt bijdrage met overdracht" name="check contrib" tool_tip="Wanneer het land is overgedragen aan de groep, draagt de voormalig eigenaar voldoende landtoewijzing bij om het te ondersteunen."/>
- <text name="For Sale:">
- Te koop:
- </text>
- <text name="Not for sale.">
- Niet te koop.
- </text>
- <text name="For Sale: Price L$[PRICE].">
- Prijs: L$[PRICE].
- </text>
- <button label="Verkoop land..." label_selected="Verkoop land..." name="Sell Land..."/>
- <text name="For sale to">
- Te koop voor: [BUYER]
- </text>
- <text name="Sell with landowners objects in parcel.">
- Objecten opgenomen in verkoop
- </text>
- <text name="Selling with no objects in parcel.">
- Objecten niet opgenomen in verkoop
- </text>
- <button label="Annuleer landverkoop" label_selected="Annuleer landverkoop" name="Cancel Land Sale"/>
- <text name="Claimed:">
- Geclaimd
- </text>
- <text name="DateClaimText">
- Tue Aug 15 13:47:25 2006
- </text>
- <text name="PriceLabel">
- Gebied:
- </text>
- <text name="PriceText">
- 4048 m²
- </text>
- <text name="Traffic:">
- Verkeer:
- </text>
- <text name="DwellText">
- 0
- </text>
- <button label="Koop land..." label_selected="Koop land..." name="Buy Land..."/>
- <button label="Koop voor groep..." label_selected="Koop voor groep..." name="Buy For Group..."/>
- <button label="Koop toegangspas..." label_selected="Koop toegangspas..." name="Buy Pass..." tool_tip="Een toegangspas geeft u tijdelijk toegang tot dit land."/>
- <button label="Land Afstaan..." label_selected="Land Afstaan..." name="Abandon Land..."/>
- <button label="Land terugvorderen..." label_selected="Land terugvorderen..." name="Reclaim Land..."/>
- <button label="Lindenverkoop..." label_selected="Lindenverkoop..." name="Linden Sale..." tool_tip="Land moet in bezit zijn, de inhoud moet ingesteld zijn en niet al ter veiling zijn aangeboden."/>
- <string name="new users only">
- Alleen nieuwe gebruikers
- </string>
- <string name="anyone">
- Iedereen
- </string>
- <string name="area_text">
- Gebied
- </string>
- <string name="area_size_text">
- [AREA] m²
- </string>
- <string name="auction_id_text">
- Veiling ID: [ID]
- </string>
- <string name="need_tier_to_modify">
- U dient uw aankoop te goedkeuren voor u dit land kunt wijzigen.
- </string>
- <string name="group_owned_text">
- (Groepseigendom)
- </string>
- <string name="profile_text">
- Profiel...
- </string>
- <string name="info_text">
- Informatie...
- </string>
- <string name="public_text">
- (public)
- </string>
- <string name="none_text">
- (none)
- </string>
- <string name="sale_pending_text">
- (Verkoop bezig)
- </string>
- <string name="no_selection_text">
- Geen perceel geselecteerd. Ga naar Wereld menu &gt; Over land of selecteer een ander perceel om zijn details te tonen.
- </string>
- </panel>
- <panel label="Convenant" name="land_covenant_panel">
- <text name="covenant_timestamp_text">
- Laatst gewijzigd Wed Dec 31 16:00:00 1969
- </text>
- <text name="region_name_lbl">
- Regio:
- </text>
- <text name="region_name_text">
- leyla
- </text>
- <text name="estate_name_lbl">
- Estate:
- </text>
- <text name="estate_name_text">
- mainland
- </text>
- <text name="estate_owner_lbl">
- Estate eigenaar:
- </text>
- <text name="estate_owner_text">
- (none)
- </text>
- <text name="resellable_clause">
- Aangekocht land in deze regio mag niet worden doorverkocht.
- </text>
- <text name="changeable_clause">
- Aangekocht land in deze regio mag niet worden samengevoegd/opgedeeld.
- </text>
- <text_editor name="covenant_editor">
- Er is geen convenant voorzien voor dit estate.
- </text_editor>
- <string name="can_resell">
- Aangekocht land in deze regio mag worden doorverkocht.
- </string>
- <string name="can_not_resell">
- Aangekocht land in deze regio mag niet worden doorverkocht.
- </string>
- <string name="can_change">
- Aangekocht land in deze regio mag worden samengevoegd of opgedeeld.
- </string>
- <string name="can_not_change">
- Aangekocht land in deze regio mag niet worden samengevoegd of opgedeeld.
- </string>
- </panel>
- <panel label="Objecten" name="land_objects_panel">
- <text name="parcel_object_bonus">
- Regio object bonus factor: [BONUS]
- </text>
- <text name="Simulator primitive usage:">
- Simulator primitieven gebruik:
- </text>
- <text name="objects_available">
- [COUNT] van [MAX] ([AVAILABLE] beschikbaar)
- </text>
- <string name="objects_available_text">
- [COUNT] van [MAX] ([AVAILABLE] beschikbaar)
- </string>
- <string name="objects_deleted_text">
- [COUNT] van [MAX] ([DELETED] zullen worden verwijderd)
- </string>
- <text name="Primitives parcel supports:">
- Primitieven ondersteund door perceel:
- </text>
- <text name="object_contrib_text">
- [COUNT]
- </text>
- <text name="Primitives on parcel:">
- Primitieven op perceel:
- </text>
- <text name="total_objects_text">
- [COUNT]
- </text>
- <text name="Owned by parcel owner:">
- Eigendom van perceeleigenaar:
- </text>
- <text name="owner_objects_text">
- [COUNT]
- </text>
- <button label="Toon" label_selected="Toon" name="ShowOwner"/>
- <button label="Retourneren..." label_selected="Retourneren..." name="ReturnOwner..." tool_tip="Retourneer objecten naar hun eigenaren."/>
- <text name="Set to group:">
- Groep toewijzen:
- </text>
- <text name="group_objects_text">
- [COUNT]
- </text>
- <button label="Toon" label_selected="Toon" name="ShowGroup"/>
- <button label="Retourneren..." label_selected="Retourneren..." name="ReturnGroup..." tool_tip="Retourneer objecten naar hun eigenaren."/>
- <text name="Owned by others:">
- Eigendom van anderen:
- </text>
- <text name="other_objects_text">
- [COUNT]
- </text>
- <button label="Toon" label_selected="Toon" name="ShowOther"/>
- <button label="Retourneren..." label_selected="Retourneren..." name="ReturnOther..." tool_tip="Retourneer objecten naar hun eigenaren."/>
- <text name="Selected / sat upon:">
- Geselecteerd/Er op gezeten
- </text>
- <text name="selected_objects_text">
- [COUNT]
- </text>
- <text name="Autoreturn">
- Objecten van andere inwoners automatisch retourneren (minuten, 0 om uit te schakelen):
- </text>
- <text name="Object Owners:">
- Objecteigenaren:
- </text>
- <button label="Ververs lijst" label_selected="Ververs lijst" name="Refresh List"/>
- <button label="Retourneer objecten..." label_selected="Retourneer objecten..." name="Return objects..."/>
- <name_list name="owner list">
- <column label="Type" name="type"/>
- <column label="Naam" name="name"/>
- <column label="Aantal" name="count"/>
- <column label="Meest recent" name="mostrecent"/>
- </name_list>
- </panel>
- <panel label="Opties" name="land_options_panel">
- <text name="allow_label">
- Andere inwoners toestaan te:
- </text>
- <check_box label="Terrein bewerken" name="edit land check" tool_tip="Indien aangevinkt, kan iedereen uw terrein bewerken. Het is het beste om dit uit te laten staan, omdat u zelf altijd uw eigen land kunt bewerken."/>
- <check_box label="Maak landmarkering" name="check landmark"/>
- <check_box label="Vliegen" name="check fly" tool_tip="Indien aangevinkt, kunnen inwoners op uw land vliegen. Indien niet aangevinkt, kunnen ze alleen het land binnenvliegen of eroverheen vliegen."/>
- <text name="allow_label2">
- Maak objecten:
- </text>
- <check_box label="Alle inwoners" name="edit objects check"/>
- <check_box label="Groep" name="edit group objects check"/>
- <text name="allow_label3">
- Objecten binnenlaten:
- </text>
- <check_box label="Alle inwoners" name="all object entry check"/>
- <check_box label="Groep" name="group object entry check"/>
- <text name="allow_label4">
- Scripts uitvoeren:
- </text>
- <check_box label="Alle inwoners" name="check other scripts"/>
- <check_box label="Groep" name="check group scripts"/>
- <text name="land_options_label">
- Landopties:
- </text>
- <check_box label="Veilig (geen letsel)" name="check safe" tool_tip="Indien aangevinkt, wordt het land op Veilig ingesteld, waarmee letselgevechten worden uitgeschakeld. Indien niet aangevinkt, is letsel ingeschakeld."/>
- <check_box label="Niet duwen" name="PushRestrictCheck" tool_tip="Weerhoudt scripts van duwen. Het aanvinken van deze optie kan handig zijn om storend gedrag op uw land te voorkomen."/>
- <check_box label="Toon plaats in Zoeken (L$30/week) onder" name="ShowDirectoryCheck" tool_tip="Laat mensen dit perceel zien in zoekresultaten."/>
- <combo_box name="land category">
- <combo_box.item name="AnyCategory" label="Alle categorieën"/>
- <combo_box.item name="LindenLocation" label="Linden Locatie"/>
-
- <combo_box.item name="Arts&amp;Culture" label="Kunst &amp; Cultuur"/>
- <combo_box.item name="Business" label="Zakelijk"/>
- <combo_box.item name="Educational" label="Educatief"/>
- <combo_box.item name="Gaming" label="Spelen"/>
- <combo_box.item name="Hangout" label="Ontmoetingsplaats"/>
- <combo_box.item name="NewcomerFriendly" label="Nieuwkomervriendelijk"/>
- <combo_box.item name="Parks&amp;Nature" label="Parken &amp; Natuur"/>
- <combo_box.item name="Residential" label="Woongebied"/>
- <combo_box.item name="Shopping" label="Winkelen"/>
- <combo_box.item name="Other" label="Anders"/>
- </combo_box>
- <button label="?" label_selected="?" name="?"/>
- <check_box name="MatureCheck" />
- <text name="Snapshot:">
- Foto:
- </text>
- <texture_picker label="" name="snapshot_ctrl" tool_tip="Klik om een afbeelding te kiezen"/>
- <text name="landing_point">
- Landingsplaats: [LANDING]
- </text>
- <string name="landing_point_none">
- (none)
- </string>
- <button label="Instellen" label_selected="Instellen" name="Set" tool_tip="Stelt het landingspunt in waar bezoekers arriveren. Wordt ingesteld op uw avatar&apos;s positie binnen dit perceel."/>
- <button label="Opschonen" label_selected="Opschonen" name="Clear" tool_tip="Landingspunt leegmaken"/>
- <text name="Teleport Routing: ">
- Teleport routering:
- </text>
- <combo_box name="landing type" tool_tip="Teleport routering -- selecteer hoe teleports naar uw land moeten worden afgehandeld.">
- <combo_box.item name="Blocked" label="Geblokkeerd"/>
- <combo_box.item name="LandingPoint" label="Landingsplaats"/>
- <combo_box.item name="Anywhere" label="Overal"/>
- </combo_box>
- <string name="push_restrict_text">
- Niet duwen
- </string>
- <string name="push_restrict_region_text">
- Niet duwen (ingesteld op regio)
- </string>
- </panel>
- <panel label="Media" name="land_media_panel">
- <text name="with media:">
- Media type:
- </text>
- <combo_box name="media type" tool_tip="Specificeer of de URL een film, webpagina of andere media is"/>
- <text name="at URL:">
- Media URL:
- </text>
- <button label="Instellen..." label_selected="Instellen..." name="set_media_url"/>
- <text name="Description:">
- Omschrijving:
- </text>
- <line_editor name="url_description" tool_tip="Tekst wordt naast afspelen/laden knop weergegeven"/>
- <text name="Media texture:">
- Vervang textuur
- </text>
- <texture_picker label="" name="media texture" tool_tip="Klik om een afbeelding te kiezen"/>
- <text name="replace_texture_help">
- (Objecten die deze textuur gebruiken zullen de film of de webpagina tonen nadat u het afspelen-pijltje hebt geklikt.)
- </text>
- <text name="Options:">
- Media opties:
- </text>
- <check_box label="Automatisch schalen" name="media_auto_scale" tool_tip="Het aanvinken van deze optie zal de inhoud voor dit perceel automatisch schalen. Het kan enigszins trager zijn en de visuele kwaliteit kan iets lager zijn, maar er zal geen andere textuurschaling of uitlijning nodig zijn."/>
- <check_box label="Herhaal media" name="media_loop" tool_tip="Speel media af in een lus. Wanneer de media klaar is met afspelen zal het herstarten vanaf het begin."/>
- <check_box label="Verberg media URL" name="hide_media_url" tool_tip="Het aanvinken van deze optie zal de media URL verbergen voor alle niet-geautoriseerde bekijkers van de perceelinformatie. Let op: dit is niet beschikbaar voor HTML types."/>
- <check_box label="Verberg muziek URL" name="hide_music_url" tool_tip="Het aanvinken van deze optie zal de muziek URL verbergen voor alle niet-geautoriseerde bekijkers van de perceelinformatie."/>
- <text name="media_size" tool_tip="Grootte om webmedia weer te geven, laat op 0 staan voor standaard.">
- Media grootte:
- </text>
- <spinner name="media_size_width" tool_tip="Grootte om webmedia weer te geven, laat op 0 staan voor standaard."/>
- <spinner name="media_size_height" tool_tip="Grootte om webmedia weer te geven, laat op 0 staan voor standaard."/>
- <text name="pixels">
- pixels
- </text>
- <text name="MusicURL:">
- Muziek URL:
- </text>
- <text name="Sound:">
- Geluid:
- </text>
- <check_box label="Spatiaal geluid niet toestaan op dit perceel" name="check sound local"/>
- <text name="Voice settings:">
- Voice:
- </text>
- <radio_group name="parcel_voice_channel">
- <radio_item name="Estate">
- Gebruik het estate spatiaal kanaal
- </radio_item>
- <radio_item name="Private">
- Gebruik een privé spatiaal kanaal
- </radio_item>
- <radio_item name="Disabled">
- Spatiale audio op dit perceel uitschakelen
- </radio_item>
- </radio_group>
- </panel>
- <panel label="Toegang" name="land_access_panel">
- <text name="Limit access to this parcel to:">
- Toegang tot dit perceel
- </text>
- <check_box label="Publieke toegang toestaan" name="public_access"/>
- <text name="Only Allow">
- Blokkeer toegang door:
- </text>
- <check_box label="Inwoners die geen betalingsinformatie hebben gegeven aan Linden Lab" name="limit_payment" tool_tip="Verban ongeïdentificeerde inwoners."/>
- <check_box label="Inwoners die geen leeftijdgeverifieerde volwassenen zijn" name="limit_age_verified" tool_tip="Verban inwoners die hun leeftijd niet geverifieerd hebben. Zie support.secondlife.com voor meer informatie."/>
- <string name="estate_override">
- Een of meer van deze opties is op estate-niveau ingesteld
- </string>
- <check_box label="Groepstoegang toestaan: [GROUP]" name="GroupCheck" tool_tip="Stel de groep in op het tabblad Algemeen"/>
- <check_box label="Verkoop toegangspassen aan:" name="PassCheck" tool_tip="Tijdelijke toegang tot dit perceel toestaan"/>
- <combo_box name="pass_combo">
- <combo_box.item name="Anyone" label="Iedereen"/>
- <combo_box.item name="Group" label="Groep"/>
- </combo_box>
- <spinner label="Prijs in L$:" name="PriceSpin"/>
- <spinner label="Toegangsuren" name="HoursSpin"/>
- <text label="Altijd toestaan" name="AllowedText">
- Toegestane inwoners
- </text>
- <name_list name="AccessList" tool_tip="([LISTED] vermeld, [MAX] max)"/>
- <button label="Toevoegen..." label_selected="Toevoegen..." name="add_allowed"/>
- <button label="Verwijderen" label_selected="Verwijderen" name="remove_allowed"/>
- <text label="Verbannen" name="BanCheck">
- Verbannen inwoners
- </text>
- <name_list name="BannedList" tool_tip="([LISTED] vermeld, [MAX] max)"/>
- <button label="Toevoegen..." label_selected="Toevoegen..." name="add_banned"/>
- <button label="Verwijderen" label_selected="Verwijderen" name="remove_banned"/>
- </panel>
- </tab_container>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floaterland" title="Over land">
+ <tab_container name="landtab">
+ <panel label="Algemeen" name="land_general_panel">
+ <text name="Name:">
+ Naam:
+ </text>
+ <text name="Description:">
+ Omschrijving:
+ </text>
+ <text name="LandType">
+ Type:
+ </text>
+ <text name="LandTypeText" left="102">
+ Mainland / Homestead
+ </text>
+ <text name="ContentRating" width="98">
+ Inhoudscategorie:
+ </text>
+ <text name="ContentRatingText" left="102">
+ Adult
+ </text>
+ <text name="Owner:">
+ Eigenaar:
+ </text>
+ <text name="OwnerText" left="102" width="242">
+ Leyla Linden
+ </text>
+ <button label="Profiel..." label_selected="Profiel..." name="Profile..."/>
+ <text name="Group:">
+ Groep:
+ </text>
+ <text left="102" name="GroupText" width="242"/>
+ <button label="Instellen..." label_selected="Instellen..." name="Set..."/>
+ <check_box label="Overdracht aan groep toestaan" name="check deed" tool_tip="Een groepofficier kan dit land aan de groep overdragen, zodat het ondersteund wordt door de landallocatie van de groep."/>
+ <button label="Overdragen..." label_selected="Overdragen..." name="Deed..." tool_tip="U mag alleen land overdragen indien u een officier bent in de geselecteerde groep."/>
+ <check_box label="Eigenaar maakt bijdrage met overdracht" name="check contrib" tool_tip="Wanneer het land is overgedragen aan de groep, draagt de voormalig eigenaar voldoende landtoewijzing bij om het te ondersteunen."/>
+ <text name="For Sale:">
+ Te koop:
+ </text>
+ <text name="Not for sale.">
+ Niet te koop.
+ </text>
+ <text name="For Sale: Price L$[PRICE].">
+ Prijs: L$[PRICE] (L$[PRICE_PER_SQM]/m²).
+ </text>
+ <button label="Verkoop land..." label_selected="Verkoop land..." name="Sell Land..."/>
+ <text name="For sale to">
+ Te koop voor: [BUYER]
+ </text>
+ <text name="Sell with landowners objects in parcel.">
+ Objecten opgenomen in verkoop
+ </text>
+ <text name="Selling with no objects in parcel." width="196">
+ Objecten niet opgenomen in verkoop
+ </text>
+ <button label="Annuleer landverkoop" label_selected="Annuleer landverkoop" name="Cancel Land Sale"/>
+ <text name="Claimed:">
+ Geclaimd:
+ </text>
+ <text name="DateClaimText">
+ Tue Aug 15 13:47:25 2006
+ </text>
+ <text name="PriceLabel">
+ Gebied:
+ </text>
+ <text name="PriceText">
+ 4048 m²
+ </text>
+ <text name="Traffic:">
+ Verkeer:
+ </text>
+ <text name="DwellText">
+ 0
+ </text>
+ <button left="130" width="125" label="Koop land..." label_selected="Koop land..." name="Buy Land..."/>
+ <button label="Koop voor groep..." label_selected="Koop voor groep..." name="Buy For Group..."/>
+ <button left="130" width="125" label="Koop toegangspas..." label_selected="Koop toegangspas..." name="Buy Pass..." tool_tip="Een toegangspas geeft u tijdelijk toegang tot dit land."/>
+ <button label="Land Afstaan..." label_selected="Land Afstaan..." name="Abandon Land..."/>
+ <button label="Land terugvorderen..." label_selected="Land terugvorderen..." name="Reclaim Land..."/>
+ <button label="Lindenverkoop..." label_selected="Lindenverkoop..." name="Linden Sale..." tool_tip="Land moet in bezit zijn, de inhoud moet ingesteld zijn en niet al ter veiling zijn aangeboden."/>
+ <string name="new users only">
+ Alleen nieuwe gebruikers
+ </string>
+ <string name="anyone">
+ Iedereen
+ </string>
+ <string name="area_text">
+ Gebied
+ </string>
+ <string name="area_size_text">
+ [AREA] m²
+ </string>
+ <string name="auction_id_text">
+ Veiling ID: [ID]
+ </string>
+ <string name="need_tier_to_modify">
+ U dient uw aankoop te goedkeuren voor u dit land kunt wijzigen.
+ </string>
+ <string name="group_owned_text">
+ (Groepseigendom)
+ </string>
+ <string name="profile_text">
+ Profiel...
+ </string>
+ <string name="info_text">
+ Informatie...
+ </string>
+ <string name="public_text">
+ (public)
+ </string>
+ <string name="none_text">
+ (none)
+ </string>
+ <string name="sale_pending_text">
+ (Verkoop bezig)
+ </string>
+ <string name="no_selection_text">
+ Geen perceel geselecteerd. Ga naar Wereld menu &gt; Over land of selecteer een ander perceel om zijn details te tonen.
+ </string>
+ </panel>
+ <panel label="Convenant" name="land_covenant_panel">
+ <text name="estate_section_lbl">
+ Estate:
+ </text>
+ <text name="estate_name_lbl">
+ Naam:
+ </text>
+ <text name="estate_name_text">
+ mainland
+ </text>
+ <text name="estate_owner_lbl">
+ Eigenaar:
+ </text>
+ <text name="estate_owner_text">
+ (none)
+ </text>
+ <text_editor name="covenant_editor">
+ Er is geen convenant voorzien voor dit estate.
+ </text_editor>
+ <text name="covenant_timestamp_text">
+ Laatst gewijzigd Wed Dec 31 16:00:00 1969
+ </text>
+ <text name="region_section_lbl">
+ Regio:
+ </text>
+ <text name="region_name_lbl">
+ Naam:
+ </text>
+ <text name="region_name_text">
+ leyla
+ </text>
+ <text name="region_landtype_lbl">
+ Type:
+ </text>
+ <text name="region_landtype_text">
+ Mainland / Homestead
+ </text>
+ <text name="region_maturity_lbl">
+ Inhoudscategorie:
+ </text>
+ <text name="region_maturity_text">
+ Adult
+ </text>
+ <text name="resellable_lbl">
+ Doorverkopen:
+ </text>
+ <text name="resellable_clause">
+ Land in deze regio mag niet worden doorverkocht.
+ </text>
+ <text name="changeable_lbl">
+ Opsplitsen:
+ </text>
+ <text name="changeable_clause">
+ Land in deze regio mag niet worden samengevoegd/opgesplitst.
+ </text>
+ <string name="can_resell">
+ Aangekocht land in deze regio mag worden doorverkocht.
+ </string>
+ <string name="can_not_resell">
+ Aangekocht land in deze regio mag niet worden doorverkocht.
+ </string>
+ <string name="can_change">
+ Aangekocht land in deze regio mag worden samengevoegd of
+opgedeeld.
+ </string>
+ <string name="can_not_change">
+ Aangekocht land in deze regio mag niet worden samengevoegd
+of opgedeeld.
+ </string>
+ </panel>
+ <panel label="Objecten" name="land_objects_panel">
+ <text name="parcel_object_bonus">
+ Regio object bonus factor: [BONUS]
+ </text>
+ <text name="Simulator primitive usage:">
+ Simulator primitieven gebruik:
+ </text>
+ <text name="objects_available" left="214" width="230">
+ [COUNT] van [MAX] ([AVAILABLE] beschikbaar)
+ </text>
+ <string name="objects_available_text">
+ [COUNT] van [MAX] ([AVAILABLE] beschikbaar)
+ </string>
+ <string name="objects_deleted_text">
+ [COUNT] van [MAX] ([DELETED] zullen worden verwijderd)
+ </string>
+ <text name="Primitives parcel supports:" width="200">
+ Primitieven ondersteund door perceel:
+ </text>
+ <text name="object_contrib_text" left="214" width="152">
+ [COUNT]
+ </text>
+ <text name="Primitives on parcel:">
+ Primitieven op perceel:
+ </text>
+ <text name="total_objects_text" left="214" width="48">
+ [COUNT]
+ </text>
+ <text name="Owned by parcel owner:" left="14" width="180" >
+ Eigendom van perceeleigenaar:
+ </text>
+ <text name="owner_objects_text" left="214" width="48">
+ [COUNT]
+ </text>
+ <button label="Toon" label_selected="Toon" name="ShowOwner" right="-135" width="60"/>
+ <button label="Retourneren..." label_selected="Retourneren..." name="ReturnOwner..." tool_tip="Retourneer objecten naar hun eigenaren." right="-10" width="119"/>
+ <text name="Set to group:" left="14" width="180">
+ Groep toewijzen:
+ </text>
+ <text name="group_objects_text" left="214" width="48">
+ [COUNT]
+ </text>
+ <button label="Toon" label_selected="Toon" name="ShowGroup" right="-135" width="60"/>
+ <button label="Retourneren..." label_selected="Retourneren..." name="ReturnGroup..." tool_tip="Retourneer objecten naar hun eigenaren." right="-10" width="119"/>
+ <text name="Owned by others:" left="14" width="128">
+ Eigendom van anderen:
+ </text>
+ <text name="other_objects_text" left="214" width="48">
+ [COUNT]
+ </text>
+ <button label="Toon" label_selected="Toon" name="ShowOther" right="-135" width="60"/>
+ <button label="Retourneren..." label_selected="Retourneren..." name="ReturnOther..." tool_tip="Retourneer objecten naar hun eigenaren." right="-10" width="119"/>
+ <text name="Selected / sat upon:" left="14" width="193">
+ Geselecteerd/Er op gezeten
+ </text>
+ <text name="selected_objects_text" left="214" width="48">
+ [COUNT]
+ </text>
+ <text name="Autoreturn" left="4" width="412" height="32" bottom="-196">
+ Objecten van andere inwoners automatisch retourneren (minuten):
+ (0 om uit te schakelen)
+ </text>
+ <line_editor name="clean other time" right="-50" bottom="-179"/>
+ <text name="Object Owners:" bottom="-213">
+ Objecteigenaren:
+ </text>
+ <button label="Ververs lijst" label_selected="Ververs lijst" name="Refresh List" bottom="-213"/>
+ <button label="Retourneer objecten..." label_selected="Retourneer objecten..." name="Return objects..." width="164" bottom="-213"/>
+ <name_list name="owner list" height="104">
+ <column label="Type" name="type"/>
+ <column label="Naam" name="name"/>
+ <column label="Aantal" name="count"/>
+ <column label="Meest recent" name="mostrecent"/>
+ </name_list>
+ </panel>
+ <panel label="Opties" name="land_options_panel">
+ <text name="allow_label">
+ Andere inwoners toestaan te:
+ </text>
+ <check_box label="Terrein bewerken" name="edit land check" tool_tip="Indien aangevinkt, kan iedereen uw terrein bewerken. Het is het beste om dit uit te laten staan, omdat u zelf altijd uw eigen land kunt bewerken."/>
+ <check_box label="Maak landmarkering" name="check landmark"/>
+ <check_box label="Vliegen" name="check fly" tool_tip="Indien aangevinkt, kunnen inwoners op uw land vliegen. Indien niet aangevinkt, kunnen ze alleen het land binnenvliegen of eroverheen vliegen."/>
+ <text name="allow_label2" left="162">
+ Maak objecten:
+ </text>
+ <check_box label="Alle inwoners" name="edit objects check" left="275"/>
+ <check_box label="Groep" name="edit group objects check"/>
+ <text name="allow_label3" left="162">
+ Objecten binnenlaten:
+ </text>
+ <check_box label="Alle inwoners" name="all object entry check" left="275"/>
+ <check_box label="Groep" name="group object entry check"/>
+ <text name="allow_label4" left="162">
+ Scripts uitvoeren:
+ </text>
+ <check_box label="Alle inwoners" name="check other scripts" left="275"/>
+ <check_box label="Groep" name="check group scripts"/>
+ <text name="land_options_label">
+ Landopties:
+ </text>
+ <check_box label="Veilig (geen letsel)" name="check safe" tool_tip="Indien aangevinkt, wordt het land op Veilig ingesteld, waarmee letselgevechten worden uitgeschakeld. Indien niet aangevinkt, is letsel ingeschakeld."/>
+ <check_box label="Niet duwen" name="PushRestrictCheck" tool_tip="Weerhoudt scripts van duwen. Het aanvinken van deze optie kan handig zijn om storend gedrag op uw land te voorkomen."/>
+ <check_box label="Toon plaats in Zoeken (L$30/week) onder" name="ShowDirectoryCheck" tool_tip="Laat mensen dit perceel zien in zoekresultaten."/>
+ <string name="search_enabled_tooltip">
+ Laat mensen dit perceel zien in zoekresultaten
+ </string>
+ <string name="search_disabled_small_tooltip">
+ Deze optie is uitgeschakeld, omdat dit gebied 128 m² of kleiner is. Alleen grote percelen kunnen worden opgenomen in Zoeken.
+ </string>
+ <string name="search_disabled_permissions_tooltip">
+ Deze optie is uitgeschakeld omdat u de opties van dit perceel niet kunt wijzigen.
+ </string>
+ <combo_box name="land category with adult">
+ <combo_item name="AnyCategory">
+ Alle Categorieën
+ </combo_item>
+ <combo_item name="LindenLocation">
+ Linden locatie
+ </combo_item>
+ <combo_item name="Adult">
+ Adult
+ </combo_item>
+ <combo_item name="Arts&amp;Culture">
+ Kunst &amp; Cultuur
+ </combo_item>
+ <combo_item name="Business">
+ Zakelijk
+ </combo_item>
+ <combo_item name="Educational">
+ Educatief
+ </combo_item>
+ <combo_item name="Gaming">
+ Spellen
+ </combo_item>
+ <combo_item name="Hangout">
+ Ontmoetingsplaats
+ </combo_item>
+ <combo_item name="NewcomerFriendly">
+ Nieuwkomervriendelijk
+ </combo_item>
+ <combo_item name="Parks&amp;Nature">
+ Parken &amp; natuur
+ </combo_item>
+ <combo_item name="Residential">
+ Woongebied
+ </combo_item>
+ <combo_item name="Shopping">
+ Winkelen
+ </combo_item>
+ <combo_item name="Other">
+ Anders
+ </combo_item>
+ </combo_box>
+ <combo_box name="land category">
+ <combo_box.item name="AnyCategory" label="Alle categorieën"/>
+ <combo_box.item name="LindenLocation" label="Linden Locatie"/>
+ <combo_box.item name="Arts&amp;Culture" label="Kunst &amp; Cultuur"/>
+ <combo_box.item name="Business" label="Zakelijk"/>
+ <combo_box.item name="Educational" label="Educatief"/>
+ <combo_box.item name="Gaming" label="Spelen"/>
+ <combo_box.item name="Hangout" label="Ontmoetingsplaats"/>
+ <combo_box.item name="NewcomerFriendly" label="Nieuwkomervriendelijk"/>
+ <combo_box.item name="Parks&amp;Nature" label="Parken &amp; Natuur"/>
+ <combo_box.item name="Residential" label="Woongebied"/>
+ <combo_box.item name="Shopping" label="Winkelen"/>
+ <combo_box.item name="Other" label="Anders"/>
+ </combo_box>
+ <button label="?" label_selected="?" name="?"/>
+ <check_box label="Mature inhoud" name="MatureCheck" tool_tip=" "/>
+ <string name="mature_check_mature">
+ Mature inhoud
+ </string>
+ <string name="mature_check_adult">
+ Adult inhoud
+ </string>
+ <string name="mature_check_mature_tooltip">
+ Uw perceelinformatie of -inhoud wordt beschouwd als mature.
+ </string>
+ <string name="mature_check_adult_tooltip">
+ Uw perceelinformatie of -inhoud wordt beschouwd als adult.
+ </string>
+ <text name="Snapshot:">
+ Foto:
+ </text>
+ <texture_picker label="" name="snapshot_ctrl" tool_tip="Klik om een afbeelding te kiezen"/>
+ <text name="landing_point">
+ Landingsplaats: [LANDING]
+ </text>
+ <string name="landing_point_none">
+ (none)
+ </string>
+ <button width="70" label="Instellen" label_selected="Instellen" name="Set" tool_tip="Stelt het landingspunt in waar bezoekers arriveren. Wordt ingesteld op uw avatar&apos;s positie binnen dit perceel."/>
+ <button width="70" left="311" label="Opschonen" label_selected="Opschonen" name="Clear" tool_tip="Landingspunt leegmaken"/>
+ <text name="Teleport Routing: ">
+ Teleport routering:
+ </text>
+ <combo_box name="landing type" tool_tip="Teleport routering -- selecteer hoe teleports naar uw land moeten worden afgehandeld.">
+ <combo_box.item name="Blocked" label="Geblokkeerd"/>
+ <combo_box.item name="LandingPoint" label="Landingsplaats"/>
+ <combo_box.item name="Anywhere" label="Overal"/>
+ </combo_box>
+ <string name="push_restrict_text">
+ Niet duwen
+ </string>
+ <string name="push_restrict_region_text">
+ Niet duwen (ingesteld op regio)
+ </string>
+ </panel>
+ <panel label="Media" name="land_media_panel">
+ <text name="with media:">
+ Media type:
+ </text>
+ <combo_box name="media type" tool_tip="Specificeer of de URL een film, webpagina of andere media is"/>
+ <text name="at URL:">
+ Media URL:
+ </text>
+ <button label="Instellen..." label_selected="Instellen..." name="set_media_url" width="66"/>
+ <text name="Description:">
+ Omschrijving:
+ </text>
+ <line_editor name="url_description" tool_tip="Tekst wordt naast afspelen/laden knop weergegeven"/>
+ <text name="Media texture:">
+ Vervang
+textuur:
+ </text>
+ <texture_picker label="" name="media texture" tool_tip="Klik om een afbeelding te kiezen"/>
+ <text name="replace_texture_help">
+ (Objecten die deze textuur gebruiken zullen de film
+of de webpagina tonen nadat u het afspelen-pijltje
+hebt geklikt.)
+ </text>
+ <text name="Options:">
+ Media opties:
+ </text>
+ <check_box label="Automatisch schalen" name="media_auto_scale" tool_tip="Het aanvinken van deze optie zal de inhoud voor dit perceel automatisch schalen. Het kan enigszins trager zijn en de visuele kwaliteit kan iets lager zijn, maar er zal geen andere textuurschaling of uitlijning nodig zijn."/>
+ <check_box label="Herhaal media" name="media_loop" tool_tip="Speel media af in een lus. Wanneer de media klaar is met afspelen zal het herstarten vanaf het begin."/>
+ <check_box label="Verberg media URL" name="hide_media_url" tool_tip="Het aanvinken van deze optie zal de media URL verbergen voor alle niet-geautoriseerde bekijkers van de perceelinformatie. Let op: dit is niet beschikbaar voor HTML types."/>
+ <check_box label="Verberg muziek URL" name="hide_music_url" tool_tip="Het aanvinken van deze optie zal de muziek URL verbergen voor alle niet-geautoriseerde bekijkers van de perceelinformatie."/>
+ <text name="media_size" tool_tip="Grootte om webmedia weer te geven, laat op 0 staan voor standaard." width="120">
+ Media grootte:
+ </text>
+ <spinner left_delta="90" name="media_size_width" tool_tip="Grootte om webmedia weer te geven, laat op 0 staan voor standaard."/>
+ <spinner name="media_size_height" tool_tip="Grootte om webmedia weer te geven, laat op 0 staan voor standaard."/>
+ <text name="pixels">
+ pixels
+ </text>
+ <text name="MusicURL:">
+ Muziek URL:
+ </text>
+ <text name="Sound:">
+ Geluid:
+ </text>
+ <check_box label="Beperk gebaar- en objectgeluiden tot dit perceel" name="check sound local"/>
+ <button label="?" label_selected="?" name="?"/>
+ <text name="Voice settings:">
+ Voice:
+ </text>
+ <check_box label="Voice inschakelen" name="parcel_enable_voice_channel"/>
+ <check_box label="Voice inschakelen (ingesteld in Estate)" name="parcel_enable_voice_channel_is_estate_disabled"/>
+ <check_box label="Beperk voice tot dit perceel" name="parcel_enable_voice_channel_parcel"/>
+ </panel>
+ <panel label="Toegang" name="land_access_panel">
+ <text name="Limit access to this parcel to:">
+ Toegang tot dit perceel
+ </text>
+ <check_box label="Publieke toegang toestaan" name="public_access"/>
+ <text name="Only Allow">
+ Blokkeer toegang door:
+ </text>
+ <check_box label="Inwoners die geen betalingsinformatie hebben gegeven aan Linden Lab" name="limit_payment" tool_tip="Verban ongeïdentificeerde inwoners."/>
+ <check_box label="Inwoners die geen leeftijdgeverifieerde volwassenen zijn" name="limit_age_verified" tool_tip="Verban inwoners die hun leeftijd niet geverifieerd hebben. Zie support.secondlife.com voor meer informatie."/>
+ <string name="estate_override">
+ Een of meer van deze opties is op estate-niveau ingesteld
+ </string>
+ <check_box label="Groepstoegang toestaan: [GROUP]" name="GroupCheck" tool_tip="Stel de groep in op het tabblad Algemeen"/>
+ <check_box label="Verkoop toegangspassen aan:" name="PassCheck" tool_tip="Tijdelijke toegang tot dit perceel toestaan"/>
+ <combo_box name="pass_combo" left_delta="190">
+ <combo_box.item name="Anyone" label="Iedereen"/>
+ <combo_box.item name="Group" label="Groep"/>
+ </combo_box>
+ <spinner label="Prijs in L$:" name="PriceSpin" label_width="168" width="228" />
+ <spinner label="Toegangsuren" name="HoursSpin" label_width="168" width="228" />
+ <text label="Altijd toestaan" name="AllowedText">
+ Toegestane inwoners
+ </text>
+ <name_list name="AccessList" tool_tip="([LISTED] vermeld, [MAX] max)"/>
+ <button label="Toevoegen..." label_selected="Toevoegen..." name="add_allowed"/>
+ <button label="Verwijderen" label_selected="Verwijderen" name="remove_allowed"/>
+ <text label="Verbannen" name="BanCheck">
+ Verbannen inwoners
+ </text>
+ <name_list name="BannedList" tool_tip="([LISTED] vermeld, [MAX] max)"/>
+ <button label="Toevoegen..." label_selected="Toevoegen..." name="add_banned"/>
+ <button label="Verwijderen" label_selected="Verwijderen" name="remove_banned"/>
+ </panel>
+ </tab_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_auction.xml b/indra/newview/skins/default/xui/nl/floater_auction.xml
index 0683367acf..eb061e028d 100644
--- a/indra/newview/skins/default/xui/nl/floater_auction.xml
+++ b/indra/newview/skins/default/xui/nl/floater_auction.xml
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_auction" title="Start Linden Land Verkoop">
- <check_box label="Voeg geel selectie kader toe" name="fence_check"/>
- <button label="Foto" label_selected="Foto" name="snapshot_btn"/>
- <button label="OK" label_selected="OK" name="ok_btn"/>
- <string name="already for sale">
- U kunt geen percelen veilen die al te koop staan.
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_auction" title="Start Linden Land Verkoop">
+ <check_box label="Voeg geel selectie kader toe" name="fence_check"/>
+ <button label="Foto" label_selected="Foto" name="snapshot_btn"/>
+ <button label="OK" label_selected="OK" name="ok_btn"/>
+ <string name="already for sale">
+ U kunt geen percelen veilen die al te koop staan.
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_beacons.xml b/indra/newview/skins/default/xui/nl/floater_beacons.xml
index cb1964d888..84196ac14f 100644
--- a/indra/newview/skins/default/xui/nl/floater_beacons.xml
+++ b/indra/newview/skins/default/xui/nl/floater_beacons.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="beacons" title="Bakens">
- <panel name="beacons_panel">
- <check_box label="Gescripte objecten met alleen Aanraken" name="touch_only"/>
- <check_box label="Gescripte objecten" name="scripted"/>
- <check_box label="Fysieke objecten" name="physical"/>
- <check_box label="Geluidsbronnen" name="sounds"/>
- <check_box label="Particlebronnen" name="particles"/>
- <check_box label="Markeringen weergeven" name="highlights"/>
- <check_box label="Bakens weergeven" name="beacons"/>
- <text name="beacon_width_label">
- Bakenbreedte:
- </text>
- </panel>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="beacons" title="Bakens">
+ <panel name="beacons_panel">
+ <check_box label="Gescripte objecten met alleen Aanraken" name="touch_only"/>
+ <check_box label="Gescripte objecten" name="scripted"/>
+ <check_box label="Fysieke objecten" name="physical"/>
+ <check_box label="Geluidsbronnen" name="sounds"/>
+ <check_box label="Particlebronnen" name="particles"/>
+ <check_box label="Markeringen weergeven" name="highlights"/>
+ <check_box label="Bakens weergeven" name="beacons"/>
+ <text name="beacon_width_label">
+ Bakenbreedte:
+ </text>
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_bulk_perms.xml b/indra/newview/skins/default/xui/nl/floater_bulk_perms.xml
new file mode 100644
index 0000000000..7f35ec45a9
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/floater_bulk_perms.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floaterbulkperms" title="Bulk wijzigen inhoud permissies">
+ <text name="applyto">
+ Inhoud Typen
+ </text>
+ <check_box label="Animatie" name="check_animation"/>
+ <check_box label="Lichaamsdelen" name="check_bodypart"/>
+ <check_box label="Kleding" name="check_clothing"/>
+ <check_box label="Gebaren" name="check_gesture"/>
+ <check_box label="Landmarkeringen" name="check_landmark"/>
+ <check_box label="Notitiekaarten" name="check_notecard"/>
+ <check_box label="Objecten" name="check_object"/>
+ <check_box label="Scripts" name="check_script"/>
+ <check_box label="Geluiden" name="check_sound"/>
+ <check_box label="Texturen" name="check_texture"/>
+ <button label="Alles aanvinken" label_selected="Alles" name="check_all"/>
+ <button label="Alles ontvinken" label_selected="Geen" name="check_none"/>
+ <text name="newperms">
+ Nieuwe permissies
+ </text>
+ <check_box label="Delen met groep" name="share_with_group"/>
+ <check_box label="Iedereen mag kopiëren" name="everyone_copy"/>
+ <text name="NextOwnerLabel">
+ Volgende eigenaar kan:
+ </text>
+ <check_box label="Wijzigen" name="next_owner_modify"/>
+ <check_box label="Kopiëren" name="next_owner_copy"/>
+ <check_box label="Verkopen/Weggeven" name="next_owner_transfer"/>
+ <button label="Help" name="help"/>
+ <button label="Toepassen" name="apply"/>
+ <button label="Sluiten" name="close"/>
+ <string name="nothing_to_modify_text">
+ Selectie bevat geen bewerkbare inhoud.
+ </string>
+ <string name="status_text">
+ Permissies instellen op [NAME]
+ </string>
+ <string name="start_text">
+ Starten permissie wijzigings verzoeken...
+ </string>
+ <string name="done_text">
+ Beïndigd permissie wijzigings verzoeken.
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_bumps.xml b/indra/newview/skins/default/xui/nl/floater_bumps.xml
index ab5073a9c6..9dbfe405aa 100644
--- a/indra/newview/skins/default/xui/nl/floater_bumps.xml
+++ b/indra/newview/skins/default/xui/nl/floater_bumps.xml
@@ -1,21 +1,21 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_bumps" title="Botsingen, duwen &amp; slaan">
- <string name="none_detected">
- Geen gedetecteerd
- </string>
- <string name="bump">
- [TIME] [FIRST] [LAST] botste tegen u aan
- </string>
- <string name="llpushobject">
- [TIME] [FIRST] [LAST] duwde u met een script
- </string>
- <string name="selected_object_collide">
- [TIME] [FIRST] [LAST] raakte u met een object
- </string>
- <string name="scripted_object_collide">
- [TIME] [FIRST] [LAST] raakte u met een gescript object
- </string>
- <string name="physical_object_collide">
- [TIME] [FIRST] [LAST] raakte u met een fysiek object
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_bumps" title="Botsingen, duwen &amp; slaan">
+ <string name="none_detected">
+ Geen gedetecteerd
+ </string>
+ <string name="bump">
+ [TIME] [FIRST] [LAST] botste tegen u aan
+ </string>
+ <string name="llpushobject">
+ [TIME] [FIRST] [LAST] duwde u met een script
+ </string>
+ <string name="selected_object_collide">
+ [TIME] [FIRST] [LAST] raakte u met een object
+ </string>
+ <string name="scripted_object_collide">
+ [TIME] [FIRST] [LAST] raakte u met een gescript object
+ </string>
+ <string name="physical_object_collide">
+ [TIME] [FIRST] [LAST] raakte u met een fysiek object
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_buy_contents.xml b/indra/newview/skins/default/xui/nl/floater_buy_contents.xml
index d5a71c019a..0c513c923a 100644
--- a/indra/newview/skins/default/xui/nl/floater_buy_contents.xml
+++ b/indra/newview/skins/default/xui/nl/floater_buy_contents.xml
@@ -1,21 +1,21 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_buy_contents" title="Koop inhoud">
- <text name="contains_text">
- [NAME] bevat:
- </text>
- <text name="buy_text">
- Koop voor L$[AMOUNT] van [NAME]?
- </text>
- <button label="Annuleren" label_selected="Annuleren" name="cancel_btn"/>
- <button label="Koop" label_selected="Koop" name="buy_btn"/>
- <check_box label="Draag kleding nu" name="wear_check"/>
- <string name="no_copy_text">
- (niet kopiëren)
- </string>
- <string name="no_modify_text">
- (niet wijzigen)
- </string>
- <string name="no_transfer_text">
- (niet overdragen)
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_buy_contents" title="Koop inhoud">
+ <text name="contains_text">
+ [NAME] bevat:
+ </text>
+ <text name="buy_text">
+ Koop voor L$[AMOUNT] van [NAME]?
+ </text>
+ <button label="Annuleren" label_selected="Annuleren" name="cancel_btn"/>
+ <button label="Koop" label_selected="Koop" name="buy_btn"/>
+ <check_box label="Draag kleding nu" name="wear_check"/>
+ <string name="no_copy_text">
+ (niet kopiëren)
+ </string>
+ <string name="no_modify_text">
+ (niet wijzigen)
+ </string>
+ <string name="no_transfer_text">
+ (niet overdragen)
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_buy_currency.xml b/indra/newview/skins/default/xui/nl/floater_buy_currency.xml
index ebdaac1897..9f740b86c8 100644
--- a/indra/newview/skins/default/xui/nl/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/nl/floater_buy_currency.xml
@@ -1,66 +1,68 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="buy currency" title="Koop valuta">
- <text name="info_buying">
- Valuta kopen
- </text>
- <text name="info_cannot_buy">
- Kan nu niet kopen
- </text>
- <text name="info_need_more">
- U heeft meer valuta nodig:
- </text>
- <text name="error_message">
- Er klopt iets niet.
- </text>
- <button label="Ga naar website" name="error_web"/>
- <text name="contacting">
- Contact maken met Lindex…
- </text>
- <text name="buy_action_unknown">
- Koop L$ op de LindeX valutabeurs
- </text>
- <text name="buy_action">
- [NAME] L$ [PRICE]
- </text>
- <text name="currency_action">
- Koop L$
- </text>
- <line_editor name="currency_amt">
- 1234
- </line_editor>
- <text name="currency_est">
- voor ong. US$ [USD]
- </text>
- <text name="getting_data">
- Data ophalen…
- </text>
- <text name="balance_label">
- U heeft momenteel
- </text>
- <text name="balance_amount">
- L$ [AMT]
- </text>
- <text name="buying_label">
- U koopt
- </text>
- <text name="buying_amount">
- L$ [AMT]
- </text>
- <text name="total_label">
- Uw saldo zal zijn:
- </text>
- <text name="total_amount">
- L$ [AMT]
- </text>
- <text name="purchase_warning_repurchase">
- Het bevestigen van deze aankoop zal alleen de valuta kopen. U dient de bewerking opnieuw uit te voeren.
- </text>
- <text name="purchase_warning_notenough">
- U koopt niet voldoende valuta. Verhoog de hoeveelheid die gekocht moet worden.
- </text>
- <button label="Annuleren" name="cancel_btn"/>
- <button label="Kopen" name="buy_btn"/>
- <string name="buy_currency">
- Koop L$ [LINDENS] voor ong. US$ [USD]
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="buy currency" title="Koop valuta">
+ <text name="info_buying">
+ Valuta kopen
+ </text>
+ <text name="info_cannot_buy">
+ Kan nu niet kopen
+ </text>
+ <text name="info_need_more">
+ U heeft meer valuta nodig:
+ </text>
+ <text name="error_message">
+ Er klopt iets niet.
+ </text>
+ <button label="Ga naar website" name="error_web"/>
+ <text name="contacting">
+ Contact maken met Lindex…
+ </text>
+ <text name="buy_action_unknown">
+ Koop L$ op de LindeX valutabeurs
+ </text>
+ <text name="buy_action">
+ [NAME] L$ [PRICE]
+ </text>
+ <text name="currency_action" width="48">
+ Koop L$
+ </text>
+ <line_editor name="currency_amt" left_delta="53" width="75">
+ 1234
+ </line_editor>
+ <text name="currency_est" left_delta="80">
+ voor ong. US$ [USD]
+ </text>
+ <text name="getting_data">
+ Data ophalen…
+ </text>
+ <text name="balance_label">
+ U heeft momenteel
+ </text>
+ <text name="balance_amount">
+ L$ [AMT]
+ </text>
+ <text name="buying_label">
+ U koopt
+ </text>
+ <text name="buying_amount">
+ L$ [AMT]
+ </text>
+ <text name="total_label">
+ Uw saldo zal zijn:
+ </text>
+ <text name="total_amount">
+ L$ [AMT]
+ </text>
+ <text name="purchase_warning_repurchase" right="-8">
+ Het bevestigen van deze aankoop zal alleen de valuta
+kopen. U dient de bewerking opnieuw uit te voeren.
+ </text>
+ <text name="purchase_warning_notenough" right="-8">
+ U koopt niet voldoende valuta.
+Verhoog de hoeveelheid die gekocht moet worden.
+ </text>
+ <button label="Annuleren" name="cancel_btn"/>
+ <button label="Kopen" name="buy_btn"/>
+ <string name="buy_currency">
+ Koop L$ [LINDENS] voor ong. US$ [USD]
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_buy_land.xml b/indra/newview/skins/default/xui/nl/floater_buy_land.xml
index 228d05d6e9..1bb02cc7d0 100644
--- a/indra/newview/skins/default/xui/nl/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/nl/floater_buy_land.xml
@@ -1,218 +1,235 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="buy land" title="Koop land">
- <text name="region_name_label">
- Regio:
- </text>
- <text name="region_name_text">
- (onbekend)
- </text>
- <text name="estate_name_label">
- Estate:
- </text>
- <text name="estate_name_text">
- (onbekend)
- </text>
- <text name="estate_owner_label">
- Estate eigenaar:
- </text>
- <text name="estate_owner_text">
- (onbekend)
- </text>
- <text name="resellable_changeable_label">
- Aangekocht land in deze regio:
- </text>
- <text name="resellable_clause">
- Aangekocht land in deze regio mag of mag niet worden doorverkocht.
- </text>
- <text name="changeable_clause">
- Mag of mag niet worden samengevoegd of opgedeeld.
- </text>
- <text name="covenant_text">
- U moet instemmen met het estate convenant:
- </text>
- <text_editor name="covenant_editor">
- Laden...
- </text_editor>
- <check_box label="Ik ga akkoord met het hierboven beschreven convenant." name="agree_covenant"/>
- <text name="info_parcel_label">
- Perceel:
- </text>
- <text name="info_parcel">
- Scotopteryx 138,204
- </text>
- <text name="info_size_label">
- Grootte:
- </text>
- <text name="info_size">
- 1024 m2.
- </text>
- <text name="info_price_label">
- Prijs:
- </text>
- <text name="info_price">
- L$ 1500, inclusief objecten
- </text>
- <text name="info_action">
- Het kopen van dit land zal:
- </text>
- <text name="error_message">
- Er is iets niet in orde.
- </text>
- <button label="Ga naar website" name="error_web"/>
- <text name="account_action">
- U upgraden naar een premium lidmaatschap
- </text>
- <text name="account_reason">
- Alleen premiumleden kunnen land bezitten.
- </text>
- <combo_box name="account_level">
- <combo_box.item name="US$9.95/month,billedmonthly" label="US$9.95/maand, gefactureerd per maand"/>
- <combo_box.item name="US$7.50/month,billedquarterly" label="US$7.50/maand, gefactureerd per kwartaal"/>
- <combo_box.item name="US$6.00/month,billedannually" label="US$6.00/maand, gefactureerd per jaar"/>
- </combo_box>
- <text name="land_use_action">
- Verhoog uw maandelijkse landgebruikskosten tot US$ 40/maand
- </text>
- <text name="land_use_reason">
- U bezit 1,309 vierkante meters land.
-Dit perceel is 512 vierkante meters land.
- </text>
- <text name="purchase_action">
- Betaal Joe Resident L$4000 voor het land
- </text>
- <text name="currency_reason">
- U heeft L$2,100.
- </text>
- <text name="currency_action">
- Koop extra L$
- </text>
- <line_editor name="currency_amt">
- 1000
- </line_editor>
- <text name="currency_est">
- voor ong. US$ [AMOUNT2]
- </text>
- <text name="currency_balance">
- U heeft L$2,100.
- </text>
- <check_box label="Verwijder [AMOUNT] vierkante meters van uw groepsbijdrage." name="remove_contribution"/>
- <button label="Aankopen" name="buy_btn"/>
- <button label="Annuleren" name="cancel_btn"/>
- <string name="can_resell">
- Mag worden doorverkocht.
- </string>
- <string name="can_not_resell">
- Mag niet worden doorverkocht.
- </string>
- <string name="can_change">
- Mag worden samengevoegd of opgedeeld.
- </string>
- <string name="can_not_change">
- Mag niet worden samengevoegd of opgedeeld.
- </string>
- <string name="cant_buy_for_group">
- U heeft geen permissie om land te kopen voor uw actieve groep.
- </string>
- <string name="no_land_selected">
- Geen land geselecteerd
- </string>
- <string name="multiple_parcels_selected">
- Meerdere verschillende percelen geselecteerd. Probeer een kleiner gebied te selecteren.
- </string>
- <string name="no_permission">
- U heeft geen permissie om land te kopen voor uw actieve groep.
- </string>
- <string name="parcel_not_for_sale">
- Het geselecteerde perceel is niet te koop.
- </string>
- <string name="group_already_owns">
- De groep is al eigenaar van het perceel.
- </string>
- <string name="you_already_own">
- U bent al eigenaar van het perceel
- </string>
- <string name="set_to_sell_to_other">
- Het geselecteerde perceel staat te koop voor een andere partij.
- </string>
- <string name="no_public_land">
- Het geselecteerde gebied heeft geen publiek land.
- </string>
- <string name="not_owned_by_you">
- Land dat het eigendom is van een andere gebruiker is geselecteerd. Probeer een kleiner gebied te selecteren.
- </string>
- <string name="processing">
- Uw aankoop wordt verwerkt...
-
-(Dit kan een minuut of twee duren.)
- </string>
- <string name="fetching_error">
- Er is een fout opgetreden tijdens het ophalen van informatie over het kopen van het land.
- </string>
- <string name="buying_will">
- Het kopen van dit land zal:
- </string>
- <string name="buying_for_group">
- Land voor groep kopen:
- </string>
- <string name="cannot_buy_now">
- Kan nu niet kopen:
- </string>
- <string name="not_for_sale">
- Niet te koop:
- </string>
- <string name="none_needed">
- geen benodigd
- </string>
- <string name="must_upgrade">
- Uw account moet geüpgrade worden om land te bezitten.
- </string>
- <string name="cant_own_land">
- Uw account kan land bezitten.
- </string>
- <string name="land_holdings">
- U bezit [BUYER] vierkante meters land.
- </string>
- <string name="pay_to_for_land">
- Betaal L$ [AMOUNT] aan [SELLER] voor dit land
- </string>
- <string name="buy_for_US">
- Koop L$ [AMOUNT] voor ong. US$ [AMOUNT2] ,
- </string>
- <string name="parcel_meters">
- Dit perceel is [AMOUNT] vierkante meters.
- </string>
- <string name="premium_land">
- Dit land is premium, en zal worden belast als [AMOUNT] vierkante meters.
- </string>
- <string name="discounted_land">
- Dit land is gedisconteerd, en zal worden belast als [AMOUNT] vierkante meters.
- </string>
- <string name="meters_supports_object">
- [AMOUNT] vierkante meter
-ondersteunt [AMOUNT2] objecten
- </string>
- <string name="sold_with_objects">
- verkocht met objecten
- </string>
- <string name="insufficient_land_credits">
- De groep [GROUP] heeft voldoende bijdrage van landgebruikcredits nodig om dit perceel te dekken voordat de aankoop kan worden afgerond.
- </string>
- <string name="have_enough_lindens">
- U heeft L$ [AMOUNT], wat genoeg is om dit land te kopen.
- </string>
- <string name="not_enough_lindens">
- U heeft slechts L$ [AMOUNT], en hebt L$ [AMOUNT2] meer nodig.
- </string>
- <string name="balance_left">
- Na de aankoop zult u nog L$ [AMOUNT] over hebben.
- </string>
- <string name="balance_needed">
- U dient minstens L$ [AMOUNT] te kopen om dit land te kunnen veroorloven.
- </string>
- <string name="no_parcel_selected">
- (geen perceel geselecteerd)
- </string>
- <string name="buy_currency">
- Koop L$ [AMOUNT] voor ong. US$ [USD]
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="buy land" title="Koop land">
+ <text name="region_name_label">
+ Regio:
+ </text>
+ <text name="region_name_text">
+ (onbekend)
+ </text>
+ <text name="region_type_label">
+ Type:
+ </text>
+ <text name="region_type_text">
+ (onbekend)
+ </text>
+ <text name="estate_name_label">
+ Estate:
+ </text>
+ <text name="estate_name_text">
+ (onbekend)
+ </text>
+ <text name="estate_owner_label">
+ Estate eigenaar:
+ </text>
+ <text name="estate_owner_text">
+ (onbekend)
+ </text>
+ <text name="resellable_changeable_label">
+ Aangekocht land in deze regio:
+ </text>
+ <text name="resellable_clause">
+ Mag niet worden doorverkocht
+ </text>
+ <text name="changeable_clause">
+ Mag niet worden samengevoegd/opgesplitst
+ </text>
+ <text name="covenant_text">
+ U moet instemmen met het estate convenant:
+ </text>
+ <text left="470" name="covenant_timestamp_text"/>
+ <text_editor name="covenant_editor">
+ Laden...
+ </text_editor>
+ <check_box label="Ik ga akkoord met het hierboven &#10;beschreven convenant." name="agree_covenant"/>
+ <text name="info_parcel_label">
+ Perceel:
+ </text>
+ <text name="info_parcel">
+ Scotopteryx 138,204
+ </text>
+ <text name="info_size_label">
+ Grootte:
+ </text>
+ <text name="info_size">
+ 1024 m²
+ </text>
+ <text name="info_price_label">
+ Prijs:
+ </text>
+ <text name="info_price">
+ L$ 1500
+(L$ 1.1/m²)
+verkocht met objecten
+ </text>
+ <text name="info_action">
+ Het kopen van dit land zal:
+ </text>
+ <text name="error_message">
+ Er is iets niet in orde.
+ </text>
+ <button label="Ga naar website" name="error_web"/>
+ <text name="account_action">
+ U upgraden naar een premium lidmaatschap
+ </text>
+ <text name="account_reason">
+ Alleen premiumleden kunnen land bezitten.
+ </text>
+ <combo_box name="account_level">
+ <combo_box.item name="US$9.95/month,billedmonthly" label="US$9.95/maand, gefactureerd per maand"/>
+ <combo_box.item name="US$7.50/month,billedquarterly" label="US$7.50/maand, gefactureerd per kwartaal"/>
+ <combo_box.item name="US$6.00/month,billedannually" label="US$6.00/maand, gefactureerd per jaar"/>
+ </combo_box>
+ <text name="land_use_action">
+ Verhoog uw maandelijkse landgebruikskosten tot US$ 40/maand
+ </text>
+ <text name="land_use_reason">
+ U bezit 1309 m² land.
+Dit perceel omvat 512 m² land.
+ </text>
+ <text name="purchase_action">
+ Betaal Joe Resident L$4000 voor het land
+ </text>
+ <text name="currency_reason">
+ U heeft L$2,100.
+ </text>
+ <text name="currency_action">
+ Koop extra L$
+ </text>
+ <line_editor name="currency_amt">
+ 1000
+ </line_editor>
+ <text name="currency_est">
+ voor ong. US$ [AMOUNT2]
+ </text>
+ <text name="currency_balance">
+ U heeft L$2,100.
+ </text>
+ <check_box label="Verwijder [AMOUNT] vierkante meters van uw groepsbijdrage." name="remove_contribution"/>
+ <button label="Aankopen" name="buy_btn"/>
+ <button label="Annuleren" name="cancel_btn"/>
+ <string name="can_resell">
+ Mag worden doorverkocht.
+ </string>
+ <string name="can_not_resell">
+ Mag niet worden doorverkocht.
+ </string>
+ <string name="can_change">
+ Mag worden samengevoegd of opgedeeld.
+ </string>
+ <string name="can_not_change">
+ Mag niet worden samengevoegd of opgedeeld.
+ </string>
+ <string name="cant_buy_for_group">
+ U heeft geen permissie om land te kopen voor uw actieve groep.
+ </string>
+ <string name="no_land_selected">
+ Geen land geselecteerd
+ </string>
+ <string name="multiple_parcels_selected">
+ Meerdere verschillende percelen geselecteerd. Probeer een kleiner gebied te selecteren.
+ </string>
+ <string name="no_permission">
+ U heeft geen permissie om land te kopen voor uw actieve groep.
+ </string>
+ <string name="parcel_not_for_sale">
+ Het geselecteerde perceel is niet te koop.
+ </string>
+ <string name="group_already_owns">
+ De groep is al eigenaar van het perceel.
+ </string>
+ <string name="you_already_own">
+ U bent al eigenaar van het perceel
+ </string>
+ <string name="set_to_sell_to_other">
+ Het geselecteerde perceel staat te koop voor een andere partij.
+ </string>
+ <string name="no_public_land">
+ Het geselecteerde gebied heeft geen publiek land.
+ </string>
+ <string name="not_owned_by_you">
+ Land dat het eigendom is van een andere gebruiker is geselecteerd. Probeer een kleiner gebied te selecteren.
+ </string>
+ <string name="processing">
+ Uw aankoop wordt verwerkt...
+
+(Dit kan een minuut of twee duren.)
+ </string>
+ <string name="fetching_error">
+ Er is een fout opgetreden tijdens het ophalen van informatie over het kopen van het land.
+ </string>
+ <string name="buying_will">
+ Het kopen van dit land zal:
+ </string>
+ <string name="buying_for_group">
+ Land voor groep kopen zal:
+ </string>
+ <string name="cannot_buy_now">
+ Kan nu niet kopen:
+ </string>
+ <string name="not_for_sale">
+ Niet te koop:
+ </string>
+ <string name="none_needed">
+ geen benodigd
+ </string>
+ <string name="must_upgrade">
+ Uw account moet geüpgrade worden om land te bezitten.
+ </string>
+ <string name="cant_own_land">
+ Uw account kan land bezitten.
+ </string>
+ <string name="land_holdings">
+ U bezit [BUYER] vierkante meters land.
+ </string>
+ <string name="pay_to_for_land">
+ Betaal L$ [AMOUNT] aan [SELLER] voor dit land
+ </string>
+ <string name="buy_for_US">
+ Koop L$ [AMOUNT] voor ong. US$ [AMOUNT2],
+ </string>
+ <string name="parcel_meters">
+ Dit perceel is [AMOUNT] vierkante meters.
+ </string>
+ <string name="premium_land">
+ Dit land is premium, en zal worden belast als [AMOUNT] vierkante meters.
+ </string>
+ <string name="discounted_land">
+ Dit land is gedisconteerd, en zal worden belast als [AMOUNT] vierkante meters.
+ </string>
+ <string name="meters_supports_object">
+ [AMOUNT] vierkante meter
+ondersteunt [AMOUNT2] objecten
+ </string>
+ <string name="sold_with_objects">
+ verkocht met objecten
+ </string>
+ <string name="sold_without_objects">
+ objecten niet inbegrepen
+ </string>
+ <string name="info_price_string">
+ L$ [PRICE]
+(L$ [PRICE_PER_SQM]/m²)
+[SOLD_WITH_OBJECTS]
+ </string>
+ <string name="insufficient_land_credits">
+ De groep [GROUP] heeft voldoende bijdrage van landgebruikcredits nodig om dit perceel te dekken voordat de aankoop kan worden afgerond.
+ </string>
+ <string name="have_enough_lindens">
+ U heeft L$ [AMOUNT], wat genoeg is om dit land te kopen.
+ </string>
+ <string name="not_enough_lindens">
+ U heeft slechts L$ [AMOUNT], en hebt L$ [AMOUNT2] meer nodig.
+ </string>
+ <string name="balance_left">
+ Na de aankoop zult u nog L$ [AMOUNT] over hebben.
+ </string>
+ <string name="balance_needed">
+ U dient minstens L$ [AMOUNT] te kopen om dit land te kunnen veroorloven.
+ </string>
+ <string name="no_parcel_selected">
+ (geen perceel geselecteerd)
+ </string>
+ <string name="buy_currency">
+ Koop L$ [AMOUNT] voor ong. US$ [USD]
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_buy_object.xml b/indra/newview/skins/default/xui/nl/floater_buy_object.xml
index 50f693eeee..c83f2008c6 100644
--- a/indra/newview/skins/default/xui/nl/floater_buy_object.xml
+++ b/indra/newview/skins/default/xui/nl/floater_buy_object.xml
@@ -1,26 +1,26 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="contents" title="Koop een kopie van object">
- <text name="contents_text">
- en zijn inhoud:
- </text>
- <text name="buy_text">
- Koop voor L$[AMOUNT] van [NAME]?
- </text>
- <button label="Annuleren" label_selected="Annuleren" name="cancel_btn"/>
- <button label="Koop" label_selected="Koop" name="buy_btn"/>
- <string name="title_buy_text">
- Koop
- </string>
- <string name="title_buy_copy_text">
- Koop een kopie van
- </string>
- <string name="no_copy_text">
- (niet kopiëren)
- </string>
- <string name="no_modify_text">
- (niet wijzigen)
- </string>
- <string name="no_transfer_text">
- (niet overdragen)
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="contents" title="Koop een kopie van object">
+ <text name="contents_text">
+ en zijn inhoud:
+ </text>
+ <text name="buy_text">
+ Koop voor L$[AMOUNT] van [NAME]?
+ </text>
+ <button label="Annuleren" label_selected="Annuleren" name="cancel_btn"/>
+ <button label="Koop" label_selected="Koop" name="buy_btn"/>
+ <string name="title_buy_text">
+ Koop
+ </string>
+ <string name="title_buy_copy_text">
+ Koop een kopie van
+ </string>
+ <string name="no_copy_text">
+ (niet kopiëren)
+ </string>
+ <string name="no_modify_text">
+ (niet wijzigen)
+ </string>
+ <string name="no_transfer_text">
+ (niet overdragen)
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_camera.xml b/indra/newview/skins/default/xui/nl/floater_camera.xml
index 37a0393d7e..a6b843a0a2 100644
--- a/indra/newview/skins/default/xui/nl/floater_camera.xml
+++ b/indra/newview/skins/default/xui/nl/floater_camera.xml
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="move floater" title="">
- <string name="rotate_tooltip">
- Roteer camera rond focus
- </string>
- <string name="zoom_tooltip">
- Zoom camera naar focus
- </string>
- <string name="move_tooltip">
- Beweeg camera omhoog en omlaag, links en rechts
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="move floater" title="">
+ <string name="rotate_tooltip">
+ Roteer camera rond focus
+ </string>
+ <string name="zoom_tooltip">
+ Zoom camera naar focus
+ </string>
+ <string name="move_tooltip">
+ Beweeg camera omhoog en omlaag, links en rechts
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_choose_group.xml b/indra/newview/skins/default/xui/nl/floater_choose_group.xml
index 0f40ca6c7e..3f6ce44cfd 100644
--- a/indra/newview/skins/default/xui/nl/floater_choose_group.xml
+++ b/indra/newview/skins/default/xui/nl/floater_choose_group.xml
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="groups" title="Groepen">
- <text name="groupdesc">
- Kies een groep:
- </text>
- <button label="OK" label_selected="OK" name="OK"/>
- <button label="Annuleren" label_selected="Annuleren" name="Cancel"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="groups" title="Groepen">
+ <text name="groupdesc">
+ Kies een groep:
+ </text>
+ <button label="OK" label_selected="OK" name="OK"/>
+ <button label="Annuleren" label_selected="Annuleren" name="Cancel"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_color_picker.xml b/indra/newview/skins/default/xui/nl/floater_color_picker.xml
index bf5146559f..24b242e15c 100644
--- a/indra/newview/skins/default/xui/nl/floater_color_picker.xml
+++ b/indra/newview/skins/default/xui/nl/floater_color_picker.xml
@@ -1,30 +1,30 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="ColorPicker" title="Kleurkiezer">
- <text name="r_val_text">
- Rood:
- </text>
- <text name="g_val_text">
- Groen:
- </text>
- <text name="b_val_text">
- Blauw:
- </text>
- <text name="h_val_text">
- Hue:
- </text>
- <text name="s_val_text">
- Sat:
- </text>
- <text name="l_val_text">
- Lum:
- </text>
- <check_box label="Meteen toepassen" name="apply_immediate"/>
- <button label="Annuleren" label_selected="Annuleren" name="cancel_btn"/>
- <button label="Selecteer" label_selected="Selecteer" name="select_btn"/>
- <text name="Current color:">
- Huidige kleur:
- </text>
- <text name="(Drag below to save.)">
- (Sleep naar beneden om op te slaan.)
- </text>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="ColorPicker" title="Kleurkiezer">
+ <text name="r_val_text">
+ Rood:
+ </text>
+ <text name="g_val_text">
+ Groen:
+ </text>
+ <text name="b_val_text">
+ Blauw:
+ </text>
+ <text name="h_val_text">
+ Hue:
+ </text>
+ <text name="s_val_text">
+ Sat:
+ </text>
+ <text name="l_val_text">
+ Lum:
+ </text>
+ <check_box label="Meteen toepassen" name="apply_immediate"/>
+ <button label="Annuleren" label_selected="Annuleren" name="cancel_btn"/>
+ <button label="Selecteer" label_selected="Selecteer" name="select_btn"/>
+ <text name="Current color:">
+ Huidige kleur:
+ </text>
+ <text name="(Drag below to save.)">
+ (Sleep naar beneden om op te slaan.)
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_critical.xml b/indra/newview/skins/default/xui/nl/floater_critical.xml
index 53795a38d4..90790fe108 100644
--- a/indra/newview/skins/default/xui/nl/floater_critical.xml
+++ b/indra/newview/skins/default/xui/nl/floater_critical.xml
@@ -1,11 +1,11 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="modal container" title="">
- <button label="Doorgaan" label_selected="Doorgaan" name="Continue"/>
- <button label="Annuleren" label_selected="Annuleren" name="Cancel"/>
- <text name="tos_heading">
- Leest u alstublieft het volgende bericht zorgvuldig door.
- </text>
- <text_editor name="tos_text">
- TOS_TEXT
- </text_editor>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="modal container" title="">
+ <button label="Doorgaan" label_selected="Doorgaan" name="Continue"/>
+ <button label="Annuleren" label_selected="Annuleren" name="Cancel"/>
+ <text name="tos_heading">
+ Leest u alstublieft het volgende bericht zorgvuldig door.
+ </text>
+ <text_editor name="tos_text">
+ TOS_TEXT
+ </text_editor>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_customize.xml b/indra/newview/skins/default/xui/nl/floater_customize.xml
index ba1657eaf7..a94f4f2348 100644
--- a/indra/newview/skins/default/xui/nl/floater_customize.xml
+++ b/indra/newview/skins/default/xui/nl/floater_customize.xml
@@ -1,427 +1,469 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater customize" title="Uiterlijk">
- <tab_container name="customize tab container">
- <panel label="Lichaamsdelen" name="body_parts_placeholder"/>
- <panel label="Postuur" name="Shape">
- <button label="Herstel" label_selected="Herstel" name="Revert"/>
- <button label="Lichaam" label_selected="Lichaam" name="Body"/>
- <button label="Hoofd" label_selected="Hoofd" name="Head"/>
- <button label="Ogen" label_selected="Ogen" name="Eyes"/>
- <button label="Oren" label_selected="Oren" name="Ears"/>
- <button label="Neus" label_selected="Neus" name="Nose"/>
- <button label="Mond" label_selected="Mond" name="Mouth"/>
- <button label="Kin" label_selected="Kin" name="Chin"/>
- <button label="Torso" label_selected="Torso" name="Torso"/>
- <button label="Benen" label_selected="Benen" name="Legs"/>
- <radio_group name="sex radio">
- <radio_item name="radio">
- Vrouw
- </radio_item>
- <radio_item name="radio2">
- Man
- </radio_item>
- </radio_group>
- <button label="Willekeurig" label_selected="Willekeurig" name="Randomize"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan niet wijzigen
- </text>
- <text name="title_loading">
- [DESC]: laden...
- </text>
- <text name="title_not_worn">
- [DESC]: niet gedragen
- </text>
- <text name="path">
- Gelegen in [PATH]
- </text>
- <text name="not worn instructions">
- Draag een nieuwe postuur door hem vanuit uw inventaris naar uw avatar te slepen. Ook kunt u zelf van begin af aan een nieuwe creëren en dragen.
- </text>
- <text name="no modify instructions">
- U heeft geen permissie om dit draagbare item te wijzigen.
- </text>
- <button label="Nieuw postuur maken" label_selected="Nieuw postuur maken" name="Create New"/>
- <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
- <button label="Opslaan" label_selected="Opslaan" name="Save"/>
- <button label="Opslaan als" label_selected="Opslaan als" name="Save As"/>
- </panel>
- <panel label="Huid" name="Skin">
- <button label="Huidskleur" label_selected="Huidskleur" name="Skin Color"/>
- <button label="Gezichtsdetail" label_selected="Gezichtsdetail" name="Face Detail"/>
- <button label="Make-up" label_selected="Make-up" name="Makeup"/>
- <button label="Lichaam detail" label_selected="Lichaam detail" name="Body Detail"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan niet wijzigen
- </text>
- <text name="title_loading">
- [DESC]: laden...
- </text>
- <text name="title_not_worn">
- [DESC]: niet gedragen
- </text>
- <text name="path">
- Gelegen in [PATH]
- </text>
- <text name="not worn instructions">
- Draag een nieuwe huid door haar vanuit uw inventaris naar uw avatar te slepen. Ook kunt u zelf van begin af aan een nieuwe creëren en dragen.
- </text>
- <text name="no modify instructions">
- U heeft geen permissie om dit draagbare item te wijzigen.
- </text>
- <texture_picker label="Hoofd tatoeages" name="Head Tattoos" tool_tip="Klik om een afbeelding te kiezen"/>
- <texture_picker label="Bovenste tatoeage" name="Upper Tattoos" tool_tip="Klik om een afbeelding te kiezen"/>
- <texture_picker label="Onderste tatoeages" name="Lower Tattoos" tool_tip="Klik om een afbeelding te kiezen"/>
- <button label="Willekeurig" label_selected="Willekeurig" name="Randomize"/>
- <button label="Nieuwe huid maken" label_selected="Nieuwe huid maken" name="Create New"/>
- <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
- <button label="Opslaan" label_selected="Opslaan" name="Save"/>
- <button label="Opslaan als" label_selected="Opslaan als" name="Save As"/>
- <button label="Herstel" label_selected="Herstel" name="Revert"/>
- </panel>
- <panel label="Haar" name="Hair">
- <button label="Kleur" label_selected="Kleur" name="Color"/>
- <button label="Stijl" label_selected="Stijl" name="Style"/>
- <button label="Wenkbrauwen" label_selected="Wenkbrauwen" name="Eyebrows"/>
- <button label="Aangezicht" label_selected="Aangezicht" name="Facial"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan niet wijzigen
- </text>
- <text name="title_loading">
- [DESC]: laden...
- </text>
- <text name="title_not_worn">
- [DESC]: niet gedragen
- </text>
- <text name="path">
- Gelegen in [PATH]
- </text>
- <text name="not worn instructions">
- Draag nieuw haar door het vanuit uw inventaris naar uw avatar te slepen. Ook kunt u zelf van begin af aan nieuw creëren en dragen.
- </text>
- <text name="no modify instructions">
- U heeft geen permissie om dit draagbare item te wijzigen.
- </text>
- <texture_picker label="Textuur" name="Texture" tool_tip="Klik om een afbeelding te kiezen"/>
- <button label="Willekeurig" label_selected="Willekeurig" name="Randomize"/>
- <button label="Nieuw haar maken" label_selected="Nieuw haar maken" name="Create New"/>
- <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
- <button label="Opslaan" label_selected="Opslaan" name="Save"/>
- <button label="Opslaan als" label_selected="Opslaan als" name="Save As"/>
- <button label="Herstel" label_selected="Herstel" name="Revert"/>
- </panel>
- <panel label="Ogen" name="Eyes">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan niet wijzigen
- </text>
- <text name="title_loading">
- [DESC]: laden...
- </text>
- <text name="title_not_worn">
- [DESC]: niet gedragen
- </text>
- <text name="path">
- Gelegen in [PATH]
- </text>
- <text name="not worn instructions">
- Draag nieuwe ogen door ze vanuit uw inventaris naar uw avatar te slepen. Ook kunt u zelf van begin af aan nieuwe creëren en dragen.
- </text>
- <text name="no modify instructions">
- U heeft geen permissie om dit draagbare item te wijzigen.
- </text>
- <texture_picker label="Iris" name="Iris" tool_tip="Klik om een afbeelding te kiezen"/>
- <button label="Willekeurig" label_selected="Willekeurig" name="Randomize"/>
- <button label="Nieuwe ogen maken" label_selected="Nieuwe ogen maken" name="Create New"/>
- <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
- <button label="Opslaan" label_selected="Opslaan" name="Save"/>
- <button label="Opslaan als" label_selected="Opslaan als" name="Save As"/>
- <button label="Herstel" label_selected="Herstel" name="Revert"/>
- </panel>
- <panel label="Kleding" name="clothes_placeholder"/>
- <panel label="Hemd" name="Shirt">
- <texture_picker label="Stof" name="Fabric" tool_tip="Klik om een afbeelding te kiezen"/>
- <color_swatch label="Kleur/tint" name="Color/Tint" tool_tip="Klik om de kleurkiezer te openen"/>
- <button label="Nieuw hemd maken" label_selected="Nieuw hemd maken" name="Create New"/>
- <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
- <button label="Opslaan" label_selected="Opslaan" name="Save"/>
- <button label="Opslaan als" label_selected="Opslaan als" name="Save As"/>
- <button label="Herstel" label_selected="Herstel" name="Revert"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan niet wijzigen
- </text>
- <text name="title_loading">
- [DESC]: laden...
- </text>
- <text name="title_not_worn">
- [DESC]: niet gedragen
- </text>
- <text name="path">
- Gelegen in [PATH]
- </text>
- <text name="not worn instructions">
- Draag een nieuw hemd door hem vanuit uw inventaris naar uw avatar te slepen. Ook kunt u zelf van begin af aan een nieuwe creëren en dragen.
- </text>
- <text name="no modify instructions">
- U heeft geen permissie om dit draagbare item te wijzigen.
- </text>
- </panel>
- <panel label="Broek" name="Pants">
- <texture_picker label="Stof" name="Fabric" tool_tip="Klik om een afbeelding te kiezen"/>
- <color_swatch label="Kleur/tint" name="Color/Tint" tool_tip="Klik om de kleurkiezer te openen"/>
- <button label="Nieuwe broek maken" label_selected="Nieuwe broek maken" name="Create New"/>
- <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
- <button label="Opslaan" label_selected="Opslaan" name="Save"/>
- <button label="Opslaan als" label_selected="Opslaan als" name="Save As"/>
- <button label="Herstel" label_selected="Herstel" name="Revert"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan niet wijzigen
- </text>
- <text name="title_loading">
- [DESC]: laden...
- </text>
- <text name="title_not_worn">
- [DESC]: niet gedragen
- </text>
- <text name="path">
- Gelegen in [PATH]
- </text>
- <text name="not worn instructions">
- Draag een nieuwe broek door hem vanuit uw inventaris naar uw avatar te slepen. Ook kunt u zelf van begin af aan een nieuwe creëren en dragen.
- </text>
- <text name="no modify instructions">
- U heeft geen permissie om dit draagbare item te wijzigen.
- </text>
- </panel>
- <panel label="Schoenen" name="Shoes">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan niet wijzigen
- </text>
- <text name="title_loading">
- [DESC]: laden...
- </text>
- <text name="title_not_worn">
- [DESC]: niet gedragen
- </text>
- <text name="path">
- Gelegen in [PATH]
- </text>
- <text name="not worn instructions">
- Draag nieuwe schoenen door ze vanuit uw inventaris naar uw avatar te slepen. Ook kunt u zelf van begin af aan nieuwe creëren en dragen.
- </text>
- <text name="no modify instructions">
- U heeft geen permissie om dit draagbare item te wijzigen.
- </text>
- <texture_picker label="Stof" name="Fabric" tool_tip="Klik om een afbeelding te kiezen"/>
- <color_swatch label="Kleur/tint" name="Color/Tint" tool_tip="Klik om de kleurkiezer te openen"/>
- <button label="Nieuwe schoenen maken" label_selected="Nieuwe schoenen maken" name="Create New"/>
- <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
- <button label="Opslaan" label_selected="Opslaan" name="Save"/>
- <button label="Opslaan als" label_selected="Opslaan als" name="Save As"/>
- <button label="Herstel" label_selected="Herstel" name="Revert"/>
- </panel>
- <panel label="Sokken" name="Socks">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan niet wijzigen
- </text>
- <text name="title_loading">
- [DESC]: laden...
- </text>
- <text name="title_not_worn">
- [DESC]: niet gedragen
- </text>
- <text name="path">
- Gelegen in [PATH]
- </text>
- <text name="not worn instructions">
- Draag nieuwe sokken door ze vanuit uw inventaris naar uw avatar te slepen. Ook kunt u zelf van begin af aan nieuwe creëren en dragen.
- </text>
- <text name="no modify instructions">
- U heeft geen permissie om dit draagbare item te wijzigen.
- </text>
- <texture_picker label="Stof" name="Fabric" tool_tip="Klik om een afbeelding te kiezen"/>
- <color_swatch label="Kleur/tint" name="Color/Tint" tool_tip="Klik om de kleurkiezer te openen"/>
- <button label="Nieuwe sokken maken" label_selected="Nieuwe sokken maken" name="Create New"/>
- <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
- <button label="Opslaan" label_selected="Opslaan" name="Save"/>
- <button label="Opslaan als" label_selected="Opslaan als" name="Save As"/>
- <button label="Herstel" label_selected="Herstel" name="Revert"/>
- </panel>
- <panel label="Jas" name="Jacket">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan niet wijzigen
- </text>
- <text name="title_loading">
- [DESC]: laden...
- </text>
- <text name="title_not_worn">
- [DESC]: niet gedragen
- </text>
- <text name="path">
- Gelegen in [PATH]
- </text>
- <text name="not worn instructions">
- Draag een nieuwe jas door hem vanuit uw inventaris naar uw avatar te slepen. Ook kunt u zelf van begin af aan een nieuwe creëren en dragen.
- </text>
- <text name="no modify instructions">
- U heeft geen permissie om dit draagbare item te wijzigen.
- </text>
- <texture_picker label="Bovenste stof" name="Upper Fabric" tool_tip="Klik om een afbeelding te kiezen"/>
- <texture_picker label="Onderste stof" name="Lower Fabric" tool_tip="Klik om een afbeelding te kiezen"/>
- <color_swatch label="Kleur/tint" name="Color/Tint" tool_tip="Klik om de kleurkiezer te openen"/>
- <button label="Nieuwe jas maken" label_selected="Nieuwe jas maken" name="Create New"/>
- <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
- <button label="Opslaan" label_selected="Opslaan" name="Save"/>
- <button label="Opslaan als" label_selected="Opslaan als" name="Save As"/>
- <button label="Herstel" label_selected="Herstel" name="Revert"/>
- </panel>
- <panel label="Handschoenen" name="Gloves">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan niet wijzigen
- </text>
- <text name="title_loading">
- [DESC]: laden...
- </text>
- <text name="title_not_worn">
- [DESC]: niet gedragen
- </text>
- <text name="path">
- Gelegen in [PATH]
- </text>
- <text name="not worn instructions">
- Draag nieuwe handschoenen door ze vanuit uw inventaris naar uw avatar te slepen. Ook kunt u zelf van begin af aan nieuwe creëren en dragen.
- </text>
- <text name="no modify instructions">
- U heeft geen permissie om dit draagbare item te wijzigen.
- </text>
- <texture_picker label="Stof" name="Fabric" tool_tip="Klik om een afbeelding te kiezen"/>
- <color_swatch label="Kleur/tint" name="Color/Tint" tool_tip="Klik om de kleurkiezer te openen"/>
- <button label="Nieuwe handschoenen maken" label_selected="Nieuwe handschoenen maken" name="Create New"/>
- <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
- <button label="Opslaan" label_selected="Opslaan" name="Save"/>
- <button label="Opslaan als" label_selected="Opslaan als" name="Save As"/>
- <button label="Herstel" label_selected="Herstel" name="Revert"/>
- </panel>
- <panel label="Onderhemd" name="Undershirt">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan niet wijzigen
- </text>
- <text name="title_loading">
- [DESC]: laden...
- </text>
- <text name="title_not_worn">
- [DESC]: niet gedragen
- </text>
- <text name="path">
- Gelegen in [PATH]
- </text>
- <text name="not worn instructions">
- Draag een nieuw onderhemd door hem vanuit uw inventaris naar uw avatar te slepen. Ook kunt u zelf van begin af aan een nieuwe creëren en dragen.
- </text>
- <text name="no modify instructions">
- U heeft geen permissie om dit draagbare item te wijzigen.
- </text>
- <texture_picker label="Stof" name="Fabric" tool_tip="Klik om een afbeelding te kiezen"/>
- <color_swatch label="Kleur/tint" name="Color/Tint" tool_tip="Klik om de kleurkiezer te openen"/>
- <button label="Nieuw onderhemd maken" label_selected="Nieuw onderhemd maken" name="Create New"/>
- <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
- <button label="Opslaan" label_selected="Opslaan" name="Save"/>
- <button label="Opslaan als" label_selected="Opslaan als" name="Save As"/>
- <button label="Herstel" label_selected="Herstel" name="Revert"/>
- </panel>
- <panel label="Onderbroek" name="Underpants">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan niet wijzigen
- </text>
- <text name="title_loading">
- [DESC]: laden...
- </text>
- <text name="title_not_worn">
- [DESC]: niet gedragen
- </text>
- <text name="path">
- Gelegen in [PATH]
- </text>
- <text name="not worn instructions">
- Draag een nieuwe onderbroek door hem vanuit uw inventaris naar uw avatar te slepen. Ook kunt u zelf van begin af aan een nieuwe creëren en dragen.
- </text>
- <text name="no modify instructions">
- U heeft geen permissie om dit draagbare item te wijzigen.
- </text>
- <texture_picker label="Stof" name="Fabric" tool_tip="Klik om een afbeelding te kiezen"/>
- <color_swatch label="Kleur/tint" name="Color/Tint" tool_tip="Klik om de kleurkiezer te openen"/>
- <button label="Nieuwe onderbroek maken" label_selected="Nieuwe onderbroek maken" name="Create New"/>
- <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
- <button label="Opslaan" label_selected="Opslaan" name="Save"/>
- <button label="Opslaan als" label_selected="Opslaan als" name="Save As"/>
- <button label="Herstel" label_selected="Herstel" name="Revert"/>
- </panel>
- <panel label="Rok" name="Skirt">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan niet wijzigen
- </text>
- <text name="title_loading">
- [DESC]: laden...
- </text>
- <text name="title_not_worn">
- [DESC]: niet gedragen
- </text>
- <text name="path">
- Gelegen in [PATH]
- </text>
- <text name="not worn instructions">
- Draag een nieuwe rok door hem vanuit uw inventaris naar uw avatar te slepen. Ook kunt u zelf van begin af aan een nieuwe creëren en dragen.
- </text>
- <text name="no modify instructions">
- U heeft geen permissie om dit draagbare item te wijzigen.
- </text>
- <texture_picker label="Stof" name="Fabric" tool_tip="Klik om een afbeelding te kiezen"/>
- <color_swatch label="Kleur/tint" name="Color/Tint" tool_tip="Klik om de kleurkiezer te openen"/>
- <button label="Nieuwe rok maken" label_selected="Nieuwe rok maken" name="Create New"/>
- <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
- <button label="Opslaan" label_selected="Opslaan" name="Save"/>
- <button label="Opslaan als" label_selected="Opslaan als" name="Save As"/>
- <button label="Herstel" label_selected="Herstel" name="Revert"/>
- </panel>
- </tab_container>
- <button label="Sluiten" label_selected="Sluiten" name="Close"/>
- <button label="Alles opslaan" label_selected="Alles opslaan" name="Save All"/>
- <button label="Maak kleding" label_selected="Maak kleding" name="Make Outfit"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater customize" title="Uiterlijk" width="551">
+ <tab_container name="customize tab container" tab_min_width="120" width="549">
+ <panel label="Lichaamsdelen" name="body_parts_placeholder"/>
+ <panel label="Postuur" name="Shape" left="124" width="389">
+ <button label="Herstel" label_selected="Herstel" name="Revert"/>
+ <button label="Lichaam" label_selected="Lichaam" name="Body"/>
+ <button label="Hoofd" label_selected="Hoofd" name="Head"/>
+ <button label="Ogen" label_selected="Ogen" name="Eyes"/>
+ <button label="Oren" label_selected="Oren" name="Ears"/>
+ <button label="Neus" label_selected="Neus" name="Nose"/>
+ <button label="Mond" label_selected="Mond" name="Mouth"/>
+ <button label="Kin" label_selected="Kin" name="Chin"/>
+ <button label="Torso" label_selected="Torso" name="Torso"/>
+ <button label="Benen" label_selected="Benen" name="Legs"/>
+ <radio_group name="sex radio">
+ <radio_item name="radio" label="Vrouw" />
+ <radio_item name="radio2" label="Man" />
+ </radio_group>
+ <text name="title">
+ [DESC]
+ </text>
+ <text name="title_no_modify">
+ [DESC]: Kan niet wijzigen
+ </text>
+ <text name="title_loading">
+ [DESC]: laden...
+ </text>
+ <text name="title_not_worn">
+ [DESC]: niet gedragen
+ </text>
+ <text name="path">
+ Gelegen in [PATH]
+ </text>
+ <text name="not worn instructions">
+ Draag een nieuwe postuur door hem vanuit uw inventaris naar uw avatar
+te slepen. Ook kunt u zelf van begin af aan een nieuwe creëren en dragen.
+ </text>
+ <text name="no modify instructions">
+ U heeft geen permissie om dit draagbare item te wijzigen.
+ </text>
+ <text name="Item Action Label">
+ Postuur:
+ </text>
+ <button label="Nieuw postuur maken" label_selected="Nieuw postuur maken" name="Create New"/>
+ <button label="Opslaan" label_selected="Opslaan" name="Save"/>
+ <button label="Opslaan als..." label_selected="Opslaan als..." name="Save As"/>
+ </panel>
+ <panel label="Huid" name="Skin">
+ <button width="104" label="Huidskleur" label_selected="Huidskleur" name="Skin Color"/>
+ <button width="104" label="Gezichtsdetail" label_selected="Gezichtsdetail" name="Face Detail"/>
+ <button width="104" label="Make-up" label_selected="Make-up" name="Makeup"/>
+ <button width="104" label="Lichaam detail" label_selected="Lichaam detail" name="Body Detail"/>
+ <text name="title">
+ [DESC]
+ </text>
+ <text name="title_no_modify">
+ [DESC]: Kan niet wijzigen
+ </text>
+ <text name="title_loading">
+ [DESC]: laden...
+ </text>
+ <text name="title_not_worn">
+ [DESC]: niet gedragen
+ </text>
+ <text name="path">
+ Gelegen in [PATH]
+ </text>
+ <text name="not worn instructions">
+ Draag een nieuwe huid door haar vanuit uw inventaris naar uw avatar te
+slepen. Ook kunt u zelf van begin af aan een nieuwe creëren en dragen.
+ </text>
+ <text name="no modify instructions">
+ U heeft geen permissie om dit draagbare item te wijzigen.
+ </text>
+ <text name="Item Action Label">
+ Huid:
+ </text>
+ <texture_picker width="104" label="Hoofd tatoeages" name="Head Tattoos" tool_tip="Klik om een afbeelding te kiezen"/>
+ <texture_picker width="104" label="Bovenste tatoeage" name="Upper Tattoos" tool_tip="Klik om een afbeelding te kiezen"/>
+ <texture_picker width="104" label="Onderste tatoeages" name="Lower Tattoos" tool_tip="Klik om een afbeelding te kiezen"/>
+ <button label="Nieuwe huid maken" label_selected="Nieuwe huid maken" name="Create New"/>
+ <button label="Opslaan" label_selected="Opslaan" name="Save"/>
+ <button label="Opslaan als..." label_selected="Opslaan als..." name="Save As"/>
+ <button label="Herstel" label_selected="Herstel" name="Revert"/>
+ </panel>
+ <panel label="Haar" name="Hair">
+ <button label="Kleur" label_selected="Kleur" name="Color"/>
+ <button label="Stijl" label_selected="Stijl" name="Style"/>
+ <button label="Wenkbrauwen" label_selected="Wenkbrauwen" name="Eyebrows"/>
+ <button label="Aangezicht" label_selected="Aangezicht" name="Facial"/>
+ <text name="title">
+ [DESC]
+ </text>
+ <text name="title_no_modify">
+ [DESC]: Kan niet wijzigen
+ </text>
+ <text name="title_loading">
+ [DESC]: laden...
+ </text>
+ <text name="title_not_worn">
+ [DESC]: niet gedragen
+ </text>
+ <text name="path">
+ Gelegen in [PATH]
+ </text>
+ <text name="not worn instructions">
+ Draag nieuw haar door het vanuit uw inventaris naar uw avatar te
+slepen. Ook kunt u zelf van begin af aan nieuw creëren en dragen.
+ </text>
+ <text name="no modify instructions">
+ U heeft geen permissie om dit draagbare item te wijzigen.
+ </text>
+ <text name="Item Action Label">
+ Haar:
+ </text>
+ <texture_picker label="Textuur" name="Texture" tool_tip="Klik om een afbeelding te kiezen"/>
+ <button label="Nieuw haar maken" label_selected="Nieuw haar maken" name="Create New"/>
+ <button label="Opslaan" label_selected="Opslaan" name="Save"/>
+ <button label="Opslaan als..." label_selected="Opslaan als..." name="Save As"/>
+ <button label="Herstel" label_selected="Herstel" name="Revert"/>
+ </panel>
+ <panel label="Ogen" name="Eyes">
+ <text name="title">
+ [DESC]
+ </text>
+ <text name="title_no_modify">
+ [DESC]: Kan niet wijzigen
+ </text>
+ <text name="title_loading">
+ [DESC]: laden...
+ </text>
+ <text name="title_not_worn">
+ [DESC]: niet gedragen
+ </text>
+ <text name="path">
+ Gelegen in [PATH]
+ </text>
+ <text name="not worn instructions">
+ Draag nieuwe ogen door ze vanuit uw inventaris naar uw avatar te
+slepen. Ook kunt u zelf van begin af aan nieuwe creëren en dragen.
+ </text>
+ <text name="no modify instructions">
+ U heeft geen permissie om dit draagbare item te wijzigen.
+ </text>
+ <text name="Item Action Label">
+ Ogen:
+ </text>
+ <texture_picker label="Iris" name="Iris" tool_tip="Klik om een afbeelding te kiezen"/>
+ <button label="Nieuwe ogen maken" label_selected="Nieuwe ogen maken" name="Create New"/>
+ <button label="Opslaan" label_selected="Opslaan" name="Save"/>
+ <button label="Opslaan als..." label_selected="Opslaan als..." name="Save As"/>
+ <button label="Herstel" label_selected="Herstel" name="Revert"/>
+ </panel>
+ <panel label="Kleding" name="clothes_placeholder"/>
+ <panel label="Hemd" name="Shirt">
+ <texture_picker label="Stof" name="Fabric" tool_tip="Klik om een afbeelding te kiezen"/>
+ <color_swatch label="Kleur/tint" name="Color/Tint" tool_tip="Klik om de kleurkiezer te openen"/>
+ <button label="Nieuw hemd maken" label_selected="Nieuw hemd maken" name="Create New"/>
+ <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
+ <button label="Opslaan" label_selected="Opslaan" name="Save"/>
+ <button label="Opslaan als..." label_selected="Opslaan als..." name="Save As"/>
+ <button label="Herstel" label_selected="Herstel" name="Revert"/>
+ <text name="title">
+ [DESC]
+ </text>
+ <text name="title_no_modify">
+ [DESC]: Kan niet wijzigen
+ </text>
+ <text name="title_loading">
+ [DESC]: laden...
+ </text>
+ <text name="title_not_worn">
+ [DESC]: niet gedragen
+ </text>
+ <text name="path">
+ Gelegen in [PATH]
+ </text>
+ <text name="not worn instructions">
+ Draag een nieuw hemd door hem vanuit uw inventaris naar uw avatar te
+slepen. Ook kunt u zelf van begin af aan een nieuwe creëren en dragen.
+ </text>
+ <text name="no modify instructions">
+ U heeft geen permissie om dit draagbare item te wijzigen.
+ </text>
+ <text name="Item Action Label">
+ Hemd:
+ </text>
+ </panel>
+ <panel label="Broek" name="Pants">
+ <texture_picker label="Stof" name="Fabric" tool_tip="Klik om een afbeelding te kiezen"/>
+ <color_swatch label="Kleur/tint" name="Color/Tint" tool_tip="Klik om de kleurkiezer te openen"/>
+ <button label="Nieuwe broek maken" label_selected="Nieuwe broek maken" name="Create New"/>
+ <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
+ <button label="Opslaan" label_selected="Opslaan" name="Save"/>
+ <button label="Opslaan als..." label_selected="Opslaan als..." name="Save As"/>
+ <button label="Herstel" label_selected="Herstel" name="Revert"/>
+ <text name="title">
+ [DESC]
+ </text>
+ <text name="title_no_modify">
+ [DESC]: Kan niet wijzigen
+ </text>
+ <text name="title_loading">
+ [DESC]: laden...
+ </text>
+ <text name="title_not_worn">
+ [DESC]: niet gedragen
+ </text>
+ <text name="path">
+ Gelegen in [PATH]
+ </text>
+ <text name="not worn instructions">
+ Draag een nieuwe broek door hem vanuit uw inventaris naar uw avatar te
+slepen. Ook kunt u zelf van begin af aan een nieuwe creëren en dragen.
+ </text>
+ <text name="no modify instructions">
+ U heeft geen permissie om dit draagbare item te wijzigen.
+ </text>
+ <text name="Item Action Label">
+ Broek:
+ </text>
+ </panel>
+ <panel label="Schoenen" name="Shoes">
+ <text name="title">
+ [DESC]
+ </text>
+ <text name="title_no_modify">
+ [DESC]: Kan niet wijzigen
+ </text>
+ <text name="title_loading">
+ [DESC]: laden...
+ </text>
+ <text name="title_not_worn">
+ [DESC]: niet gedragen
+ </text>
+ <text name="path">
+ Gelegen in [PATH]
+ </text>
+ <text name="not worn instructions">
+ Draag nieuwe schoenen door ze vanuit uw inventaris naar uw avatar te
+slepen. Ook kunt u zelf van begin af aan nieuwe creëren en dragen.
+ </text>
+ <text name="no modify instructions">
+ U heeft geen permissie om dit draagbare item te wijzigen.
+ </text>
+ <text name="Item Action Label">
+ Schoenen:
+ </text>
+ <texture_picker label="Stof" name="Fabric" tool_tip="Klik om een afbeelding te kiezen"/>
+ <color_swatch label="Kleur/tint" name="Color/Tint" tool_tip="Klik om de kleurkiezer te openen"/>
+ <button label="Nieuwe schoenen maken" label_selected="Nieuwe schoenen maken" name="Create New"/>
+ <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
+ <button label="Opslaan" label_selected="Opslaan" name="Save"/>
+ <button label="Opslaan als..." label_selected="Opslaan als..." name="Save As"/>
+ <button label="Herstel" label_selected="Herstel" name="Revert"/>
+ </panel>
+ <panel label="Sokken" name="Socks">
+ <text name="title">
+ [DESC]
+ </text>
+ <text name="title_no_modify">
+ [DESC]: Kan niet wijzigen
+ </text>
+ <text name="title_loading">
+ [DESC]: laden...
+ </text>
+ <text name="title_not_worn">
+ [DESC]: niet gedragen
+ </text>
+ <text name="path">
+ Gelegen in [PATH]
+ </text>
+ <text name="not worn instructions">
+ Draag nieuwe sokken door ze vanuit uw inventaris naar uw avatar te
+slepen. Ook kunt u zelf van begin af aan nieuwe creëren en dragen.
+ </text>
+ <text name="no modify instructions">
+ U heeft geen permissie om dit draagbare item te wijzigen.
+ </text>
+ <text name="Item Action Label">
+ Sokken:
+ </text>
+ <texture_picker label="Stof" name="Fabric" tool_tip="Klik om een afbeelding te kiezen"/>
+ <color_swatch label="Kleur/tint" name="Color/Tint" tool_tip="Klik om de kleurkiezer te openen"/>
+ <button label="Nieuwe sokken maken" label_selected="Nieuwe sokken maken" name="Create New"/>
+ <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
+ <button label="Opslaan" label_selected="Opslaan" name="Save"/>
+ <button label="Opslaan als..." label_selected="Opslaan als..." name="Save As"/>
+ <button label="Herstel" label_selected="Herstel" name="Revert"/>
+ </panel>
+ <panel label="Jas" name="Jacket">
+ <text name="title">
+ [DESC]
+ </text>
+ <text name="title_no_modify">
+ [DESC]: Kan niet wijzigen
+ </text>
+ <text name="title_loading">
+ [DESC]: laden...
+ </text>
+ <text name="title_not_worn">
+ [DESC]: niet gedragen
+ </text>
+ <text name="path">
+ Gelegen in [PATH]
+ </text>
+ <text name="not worn instructions">
+ Draag een nieuwe jas door hem vanuit uw inventaris naar uw avatar te
+slepen. Ook kunt u zelf van begin af aan een nieuwe creëren en dragen.
+ </text>
+ <text name="no modify instructions">
+ U heeft geen permissie om dit draagbare item te wijzigen.
+ </text>
+ <text name="Item Action Label">
+ Jas:
+ </text>
+ <texture_picker width="78" label="Bovenste stof" name="Upper Fabric" tool_tip="Klik om een afbeelding te kiezen"/>
+ <texture_picker width="78" label="Onderste stof" name="Lower Fabric" tool_tip="Klik om een afbeelding te kiezen"/>
+ <color_swatch width="78" label="Kleur/tint" name="Color/Tint" tool_tip="Klik om de kleurkiezer te openen"/>
+ <button label="Nieuwe jas maken" label_selected="Nieuwe jas maken" name="Create New"/>
+ <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
+ <button label="Opslaan" label_selected="Opslaan" name="Save"/>
+ <button label="Opslaan als..." label_selected="Opslaan als..." name="Save As"/>
+ <button label="Herstel" label_selected="Herstel" name="Revert"/>
+ </panel>
+ <panel label="Handschoenen" name="Gloves">
+ <text name="title">
+ [DESC]
+ </text>
+ <text name="title_no_modify">
+ [DESC]: Kan niet wijzigen
+ </text>
+ <text name="title_loading">
+ [DESC]: laden...
+ </text>
+ <text name="title_not_worn">
+ [DESC]: niet gedragen
+ </text>
+ <text name="path">
+ Gelegen in [PATH]
+ </text>
+ <text name="not worn instructions">
+ Draag nieuwe handschoenen door ze vanuit uw inventaris naar uw avatar
+te slepen. Ook kunt u zelf van begin af aan nieuwe creëren en dragen.
+ </text>
+ <text name="no modify instructions">
+ U heeft geen permissie om dit draagbare item te wijzigen.
+ </text>
+ <text name="Item Action Label">
+ Handschoenen:
+ </text>
+ <texture_picker label="Stof" name="Fabric" tool_tip="Klik om een afbeelding te kiezen"/>
+ <color_swatch label="Kleur/tint" name="Color/Tint" tool_tip="Klik om de kleurkiezer te openen"/>
+ <button label="Nieuwe handschoenen maken" label_selected="Nieuwe handschoenen maken" name="Create New" width="190"/>
+ <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
+ <button label="Opslaan" label_selected="Opslaan" name="Save"/>
+ <button label="Opslaan als..." label_selected="Opslaan als..." name="Save As"/>
+ <button label="Herstel" label_selected="Herstel" name="Revert"/>
+ </panel>
+ <panel label="Onderhemd" name="Undershirt">
+ <text name="title">
+ [DESC]
+ </text>
+ <text name="title_no_modify">
+ [DESC]: Kan niet wijzigen
+ </text>
+ <text name="title_loading">
+ [DESC]: laden...
+ </text>
+ <text name="title_not_worn">
+ [DESC]: niet gedragen
+ </text>
+ <text name="path">
+ Gelegen in [PATH]
+ </text>
+ <text name="not worn instructions">
+ Draag een nieuw onderhemd door hem vanuit uw inventaris naar uw avatar
+te slepen. Ook kunt u zelf van begin af aan een nieuwe creëren en dragen.
+ </text>
+ <text name="no modify instructions">
+ U heeft geen permissie om dit draagbare item te wijzigen.
+ </text>
+ <text name="Item Action Label">
+ Onderhemd:
+ </text>
+ <texture_picker label="Stof" name="Fabric" tool_tip="Klik om een afbeelding te kiezen"/>
+ <color_swatch label="Kleur/tint" name="Color/Tint" tool_tip="Klik om de kleurkiezer te openen"/>
+ <button label="Nieuw onderhemd maken" label_selected="Nieuw onderhemd maken" name="Create New"/>
+ <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
+ <button label="Opslaan" label_selected="Opslaan" name="Save"/>
+ <button label="Opslaan als..." label_selected="Opslaan als..." name="Save As"/>
+ <button label="Herstel" label_selected="Herstel" name="Revert"/>
+ </panel>
+ <panel label="Onderbroek" name="Underpants">
+ <text name="title">
+ [DESC]
+ </text>
+ <text name="title_no_modify">
+ [DESC]: Kan niet wijzigen
+ </text>
+ <text name="title_loading">
+ [DESC]: laden...
+ </text>
+ <text name="title_not_worn">
+ [DESC]: niet gedragen
+ </text>
+ <text name="path">
+ Gelegen in [PATH]
+ </text>
+ <text name="not worn instructions">
+ Draag een nieuwe onderbroek door hem vanuit uw inventaris naar uw
+avatar te slepen. Ook kunt u zelf van begin af aan een nieuwe creëren
+en dragen.
+ </text>
+ <text name="no modify instructions">
+ U heeft geen permissie om dit draagbare item te wijzigen.
+ </text>
+ <text name="Item Action Label">
+ Onderbroek:
+ </text>
+ <texture_picker label="Stof" name="Fabric" tool_tip="Klik om een afbeelding te kiezen"/>
+ <color_swatch label="Kleur/tint" name="Color/Tint" tool_tip="Klik om de kleurkiezer te openen"/>
+ <button label="Nieuwe onderbroek maken" label_selected="Nieuwe onderbroek maken" name="Create New"/>
+ <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
+ <button label="Opslaan" label_selected="Opslaan" name="Save"/>
+ <button label="Opslaan als..." label_selected="Opslaan als..." name="Save As"/>
+ <button label="Herstel" label_selected="Herstel" name="Revert"/>
+ </panel>
+ <panel label="Rok" name="Skirt">
+ <text name="title">
+ [DESC]
+ </text>
+ <text name="title_no_modify">
+ [DESC]: Kan niet wijzigen
+ </text>
+ <text name="title_loading">
+ [DESC]: laden...
+ </text>
+ <text name="title_not_worn">
+ [DESC]: niet gedragen
+ </text>
+ <text name="path">
+ Gelegen in [PATH]
+ </text>
+ <text name="not worn instructions">
+ Draag een nieuwe rok door hem vanuit uw inventaris naar uw avatar te
+slepen. Ook kunt u zelf van begin af aan een nieuwe creëren en dragen.
+ </text>
+ <text name="no modify instructions">
+ U heeft geen permissie om dit draagbare item te wijzigen.
+ </text>
+ <text name="Item Action Label">
+ Rok:
+ </text>
+ <texture_picker label="Stof" name="Fabric" tool_tip="Klik om een afbeelding te kiezen"/>
+ <color_swatch label="Kleur/tint" name="Color/Tint" tool_tip="Klik om de kleurkiezer te openen"/>
+ <button label="Nieuwe rok maken" label_selected="Nieuwe rok maken" name="Create New"/>
+ <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
+ <button label="Opslaan" label_selected="Opslaan" name="Save"/>
+ <button label="Opslaan als..." label_selected="Opslaan als..." name="Save As"/>
+ <button label="Herstel" label_selected="Herstel" name="Revert"/>
+ </panel>
+ </tab_container>
+ <scroll_container left="254" name="panel_container"/>
+ <button label="Annuleren" label_selected="Annuleren" name="Cancel"/>
+ <button label="OK" label_selected="OK" name="Ok"/>
+ <button label="Maak kleding..." label_selected="Maak kleding..." name="Make Outfit" left="110"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_env_settings.xml b/indra/newview/skins/default/xui/nl/floater_env_settings.xml
index 61bf078887..d212f544c5 100644
--- a/indra/newview/skins/default/xui/nl/floater_env_settings.xml
+++ b/indra/newview/skins/default/xui/nl/floater_env_settings.xml
@@ -1,23 +1,23 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Environment Editor Floater" title="Omgeving editor">
- <text name="EnvTimeText">
- Tijd van de dag
- </text>
- <text name="EnvTimeText2">
- 0:00
- </text>
- <text name="EnvCloudText">
- Wolkendek
- </text>
- <text name="EnvWaterColorText">
- Waterkleur
- </text>
- <color_swatch label="" name="EnvWaterColor" tool_tip="Klik om de kleurkiezer te openen"/>
- <text name="EnvWaterFogText">
- Watermist
- </text>
- <button label="Gebruik estate tijd" name="EnvUseEstateTimeButton"/>
- <button label="Geavanceerde lucht" name="EnvAdvancedSkyButton"/>
- <button label="Geavanceerd water" name="EnvAdvancedWaterButton"/>
- <button label="?" name="EnvSettingsHelpButton"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Environment Editor Floater" title="Omgeving editor">
+ <text name="EnvTimeText">
+ Tijd van de dag
+ </text>
+ <text name="EnvTimeText2">
+ 0:00
+ </text>
+ <text name="EnvCloudText">
+ Wolkendek
+ </text>
+ <text name="EnvWaterColorText">
+ Waterkleur
+ </text>
+ <color_swatch label="" name="EnvWaterColor" tool_tip="Klik om de kleurkiezer te openen"/>
+ <text name="EnvWaterFogText">
+ Watermist
+ </text>
+ <button label="Gebruik estate tijd" name="EnvUseEstateTimeButton"/>
+ <button label="Geavanceerde lucht" name="EnvAdvancedSkyButton"/>
+ <button label="Geavanceerd water" name="EnvAdvancedWaterButton"/>
+ <button label="?" name="EnvSettingsHelpButton"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_font_test.xml b/indra/newview/skins/default/xui/nl/floater_font_test.xml
new file mode 100644
index 0000000000..8e8b07ee1a
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/floater_font_test.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="contents" title="Lettertypetest">
+ <text name="linea">
+ Overschrijf test, zou hier moeten verschijnen als Times (vanuit default/xui/en-us).
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_gesture.xml b/indra/newview/skins/default/xui/nl/floater_gesture.xml
index 638f36d99f..d38972d5fe 100644
--- a/indra/newview/skins/default/xui/nl/floater_gesture.xml
+++ b/indra/newview/skins/default/xui/nl/floater_gesture.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="gestures" title="Actieve gebaren">
- <text name="help_label">
- Dubbelklik een gebaar om animaties en geluiden af te spelen
- </text>
- <scroll_list name="gesture_list">
- <column label="Trigger" name="trigger"/>
- <column label="Toets" name="shortcut"/>
- <column label="Naam" name="name"/>
- </scroll_list>
- <button label="Nieuw" name="new_gesture_btn"/>
- <button label="Bewerken" name="edit_btn"/>
- <button label="Afspelen" name="play_btn"/>
- <button label="Stop" name="stop_btn"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="gestures" title="Actieve gebaren">
+ <text name="help_label">
+ Dubbelklik een gebaar om animaties en geluiden af te spelen
+ </text>
+ <scroll_list name="gesture_list">
+ <column label="Trigger" name="trigger"/>
+ <column label="Toets" name="shortcut"/>
+ <column label="Naam" name="name"/>
+ </scroll_list>
+ <button label="Nieuw" name="new_gesture_btn"/>
+ <button label="Bewerken" name="edit_btn"/>
+ <button label="Afspelen" name="play_btn"/>
+ <button label="Stop" name="stop_btn"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_hud.xml b/indra/newview/skins/default/xui/nl/floater_hud.xml
index d4d686255a..9da732ff2f 100644
--- a/indra/newview/skins/default/xui/nl/floater_hud.xml
+++ b/indra/newview/skins/default/xui/nl/floater_hud.xml
@@ -1,2 +1,2 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_hud" title="Handleiding"/>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_hud" title="Handleiding"/>
diff --git a/indra/newview/skins/default/xui/nl/floater_im.xml b/indra/newview/skins/default/xui/nl/floater_im.xml
index bd48c73852..3167af5321 100644
--- a/indra/newview/skins/default/xui/nl/floater_im.xml
+++ b/indra/newview/skins/default/xui/nl/floater_im.xml
@@ -1,45 +1,45 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<multi_floater name="im_floater" title="Instant Message">
- <string name="only_user_message">
- U bent de enige gebruiker in deze sessie.
- </string>
- <string name="offline_message">
- [FIRST] [LAST] is offline.
- </string>
- <string name="invite_message">
- Klik de [BUTTON NAME] knop om deze voicechat te accepteren/verbinden.
- </string>
- <string name="muted_message">
- U heeft deze inwoner genegeerd. Door het sturen van een bericht zal deze automatisch van de negeerlijst verwijderd worden.
- </string>
- <string name="generic_request_error">
- Fout tijdens het maken van het verzoek, probeer het later nog een keer.
- </string>
- <string name="insufficient_perms_error">
- U heeft niet voldoende permissies.
- </string>
- <string name="session_does_not_exist_error">
- De sessie bestaat niet meer
- </string>
- <string name="no_ability_error">
- U beschikt niet over die mogelijkheid.
- </string>
- <string name="not_a_mod_error">
- U bent geen sessie moderateur
- </string>
- <string name="muted_error">
- Een groepsmoderator heeft uw textchat uitgeschakeld.
- </string>
- <string name="add_session_event">
- Kan geen gebruikers toevoegen aan chatsessie met [RECIPIENT].
- </string>
- <string name="message_session_event">
- Kan uw bericht niet versturen naar de chatsessie met [RECIPIENT].
- </string>
- <string name="removed_from_group">
- U bent verwijderd uit de groep.
- </string>
- <string name="close_on_no_ability">
- U heeft niet langer de mogelijkheid om in deze chatsessie te zijn.
- </string>
-</multi_floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<multi_floater name="im_floater" title="Instant Message">
+ <string name="only_user_message">
+ U bent de enige gebruiker in deze sessie.
+ </string>
+ <string name="offline_message">
+ [FIRST] [LAST] is offline.
+ </string>
+ <string name="invite_message">
+ Klik de [BUTTON NAME] knop om deze voicechat te accepteren/verbinden.
+ </string>
+ <string name="muted_message">
+ U heeft deze inwoner genegeerd. Door het sturen van een bericht zal deze automatisch van de negeerlijst verwijderd worden.
+ </string>
+ <string name="generic_request_error">
+ Fout tijdens het maken van het verzoek, probeer het later nog een keer.
+ </string>
+ <string name="insufficient_perms_error">
+ U heeft niet voldoende permissies.
+ </string>
+ <string name="session_does_not_exist_error">
+ De sessie bestaat niet meer
+ </string>
+ <string name="no_ability_error">
+ U beschikt niet over die mogelijkheid.
+ </string>
+ <string name="not_a_mod_error">
+ U bent geen sessie moderateur
+ </string>
+ <string name="muted_error">
+ Een groepsmoderator heeft uw textchat uitgeschakeld.
+ </string>
+ <string name="add_session_event">
+ Kan geen gebruikers toevoegen aan chatsessie met [RECIPIENT].
+ </string>
+ <string name="message_session_event">
+ Kan uw bericht niet versturen naar de chatsessie met [RECIPIENT].
+ </string>
+ <string name="removed_from_group">
+ U bent verwijderd uit de groep.
+ </string>
+ <string name="close_on_no_ability">
+ U heeft niet langer de mogelijkheid om in deze chatsessie te zijn.
+ </string>
+</multi_floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_inspect.xml b/indra/newview/skins/default/xui/nl/floater_inspect.xml
index 4ed77b4cbe..d4fa75d94f 100644
--- a/indra/newview/skins/default/xui/nl/floater_inspect.xml
+++ b/indra/newview/skins/default/xui/nl/floater_inspect.xml
@@ -1,11 +1,11 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="inspect" title="Objecten inspecteren">
- <scroll_list name="object_list" tool_tip="Selecteer een object van deze lijst om het in-wereld te markeren">
- <column label="Objectnaam" name="object_name"/>
- <column label="Eigenaarnaam" name="owner_name"/>
- <column label="Makernaam:" name="creator_name"/>
- <column label="Aanmaakdatum" name="creation_date"/>
- </scroll_list>
- <button label="Bekijk eigenaarprofiel..." label_selected="" name="button owner" tool_tip="Bekijk het profiel van de eigenaar van het gemarkeerde object"/>
- <button label="Bekijk makerprofiel..." label_selected="" name="button creator" tool_tip="Bekijk het profiel van de originele maker van het gemarkeerde object"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="inspect" title="Objecten inspecteren">
+ <scroll_list name="object_list" tool_tip="Selecteer een object van deze lijst om het in-wereld te markeren">
+ <column label="Objectnaam" name="object_name"/>
+ <column label="Eigenaarnaam" name="owner_name"/>
+ <column label="Makernaam:" name="creator_name"/>
+ <column label="Aanmaakdatum" name="creation_date"/>
+ </scroll_list>
+ <button label="Bekijk eigenaarprofiel..." label_selected="" name="button owner" tool_tip="Bekijk het profiel van de eigenaar van het gemarkeerde object"/>
+ <button label="Bekijk makerprofiel..." label_selected="" name="button creator" tool_tip="Bekijk het profiel van de originele maker van het gemarkeerde object"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_inventory.xml b/indra/newview/skins/default/xui/nl/floater_inventory.xml
index b0c208601c..272fa3c899 100644
--- a/indra/newview/skins/default/xui/nl/floater_inventory.xml
+++ b/indra/newview/skins/default/xui/nl/floater_inventory.xml
@@ -1,47 +1,47 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Inventory" title="Inventaris">
- <search_editor label="Typ hier om te zoeken" name="inventory search editor"/>
- <tab_container name="inventory filter tabs">
- <inventory_panel label="Alle items" name="All Items"/>
- <inventory_panel label="Recente items" name="Recent Items"/>
- </tab_container>
- <menu_bar name="Inventory Menu">
- <menu label="Bestand" name="File">
- <menu_item_call label="Open" name="Open"/>
- <menu_item_call label="Nieuw venster" name="New Window"/>
- <menu_item_call label="Toon filters" name="Show Filters"/>
- <menu_item_call label="Filters opnieuw instellen" name="Reset Current"/>
- <menu_item_call label="Alle mappen sluiten" name="Close All Folders"/>
- <menu_item_call label="Prullenbak legen" name="Empty Trash"/>
- </menu>
- <menu label="Maak" name="Create">
- <menu_item_call label="Nieuwe map" name="New Folder"/>
- <menu_item_call label="Nieuw script" name="New Script"/>
- <menu_item_call label="Nieuwe notitie" name="New Note"/>
- <menu_item_call label="Nieuw gebaar" name="New Gesture"/>
- <menu name="New Clothes">
- <menu_item_call label="Nieuw hemd" name="New Shirt"/>
- <menu_item_call label="Nieuwe broek" name="New Pants"/>
- <menu_item_call label="Nieuwe schoenen" name="New Shoes"/>
- <menu_item_call label="Nieuwe sokken" name="New Socks"/>
- <menu_item_call label="Nieuwe jas" name="New Jacket"/>
- <menu_item_call label="Nieuwe rok" name="New Skirt"/>
- <menu_item_call label="Nieuwe handschoenen" name="New Gloves"/>
- <menu_item_call label="Nieuw onderhemd" name="New Undershirt"/>
- <menu_item_call label="Nieuwe onderbroek" name="New Underpants"/>
- </menu>
- <menu name="New Body Parts">
- <menu_item_call label="Nieuwe postuur" name="New Shape"/>
- <menu_item_call label="Nieuwe huid" name="New Skin"/>
- <menu_item_call label="Nieuw haar" name="New Hair"/>
- <menu_item_call label="Nieuwe ogen" name="New Eyes"/>
- </menu>
- </menu>
- <menu label="Sorteren" name="Sort">
- <menu_item_check label="Op naam" name="By Name"/>
- <menu_item_check label="Op datum" name="By Date"/>
- <menu_item_check label="Mappen altijd op naam" name="Folders Always By Name"/>
- <menu_item_check label="Systeemmappen naar de bovenkant" name="System Folders To Top"/>
- </menu>
- </menu_bar>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Inventory" title="Inventaris">
+ <search_editor label="Typ hier om te zoeken" name="inventory search editor"/>
+ <tab_container name="inventory filter tabs">
+ <inventory_panel label="Alle items" name="All Items"/>
+ <inventory_panel label="Recente items" name="Recent Items"/>
+ </tab_container>
+ <menu_bar name="Inventory Menu">
+ <menu label="Bestand" name="File">
+ <menu_item_call label="Open" name="Open"/>
+ <menu_item_call label="Nieuw venster" name="New Window"/>
+ <menu_item_call label="Toon filters" name="Show Filters"/>
+ <menu_item_call label="Filters opnieuw instellen" name="Reset Current"/>
+ <menu_item_call label="Alle mappen sluiten" name="Close All Folders"/>
+ <menu_item_call label="Prullenbak legen" name="Empty Trash"/>
+ </menu>
+ <menu label="Maak" name="Create">
+ <menu_item_call label="Nieuwe map" name="New Folder"/>
+ <menu_item_call label="Nieuw script" name="New Script"/>
+ <menu_item_call label="Nieuwe notitie" name="New Note"/>
+ <menu_item_call label="Nieuw gebaar" name="New Gesture"/>
+ <menu name="New Clothes">
+ <menu_item_call label="Nieuw hemd" name="New Shirt"/>
+ <menu_item_call label="Nieuwe broek" name="New Pants"/>
+ <menu_item_call label="Nieuwe schoenen" name="New Shoes"/>
+ <menu_item_call label="Nieuwe sokken" name="New Socks"/>
+ <menu_item_call label="Nieuwe jas" name="New Jacket"/>
+ <menu_item_call label="Nieuwe rok" name="New Skirt"/>
+ <menu_item_call label="Nieuwe handschoenen" name="New Gloves"/>
+ <menu_item_call label="Nieuw onderhemd" name="New Undershirt"/>
+ <menu_item_call label="Nieuwe onderbroek" name="New Underpants"/>
+ </menu>
+ <menu name="New Body Parts">
+ <menu_item_call label="Nieuwe postuur" name="New Shape"/>
+ <menu_item_call label="Nieuwe huid" name="New Skin"/>
+ <menu_item_call label="Nieuw haar" name="New Hair"/>
+ <menu_item_call label="Nieuwe ogen" name="New Eyes"/>
+ </menu>
+ </menu>
+ <menu label="Sorteren" name="Sort">
+ <menu_item_check label="Op naam" name="By Name"/>
+ <menu_item_check label="Op datum" name="By Date"/>
+ <menu_item_check label="Mappen altijd op naam" name="Folders Always By Name"/>
+ <menu_item_check label="Systeemmappen naar de bovenkant" name="System Folders To Top"/>
+ </menu>
+ </menu_bar>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_joystick.xml b/indra/newview/skins/default/xui/nl/floater_joystick.xml
index 6f5c25d683..27556a89f8 100644
--- a/indra/newview/skins/default/xui/nl/floater_joystick.xml
+++ b/indra/newview/skins/default/xui/nl/floater_joystick.xml
@@ -1,83 +1,85 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Joystick" title="Joystick configuratie">
- <check_box name="enable_joystick">
- Joystick inschakelen
- </check_box>
- <spinner label="X-as mapping" name="JoystickAxis1"/>
- <spinner label="Y-as mapping" name="JoystickAxis2"/>
- <spinner label="Z-as mapping" name="JoystickAxis0"/>
- <spinner label="Stampen mapping" name="JoystickAxis4"/>
- <spinner label="Gieren mapping" name="JoystickAxis5"/>
- <spinner label="Rollen mapping" name="JoystickAxis3"/>
- <spinner label="Zoom mapping" name="JoystickAxis6"/>
- <check_box label="Directe zoom" name="ZoomDirect"/>
- <check_box label="3D Cursor" name="Cursor3D"/>
- <check_box label="Automatisch niveau" name="AutoLeveling"/>
- <text name="Control Modes:">
- Besturingsmodi:
- </text>
- <check_box name="JoystickAvatarEnabled">
- Avatar
- </check_box>
- <check_box name="JoystickBuildEnabled">
- Bouwen
- </check_box>
- <check_box name="JoystickFlycamEnabled">
- Vliegcamera
- </check_box>
- <text name="XScale">
- X schaal
- </text>
- <text name="YScale">
- Y schaal
- </text>
- <text name="ZScale">
- Z schaal
- </text>
- <text name="PitchScale">
- Stampen schaal
- </text>
- <text name="YawScale">
- Gieren schaal
- </text>
- <text name="RollScale">
- Rollen schaal
- </text>
- <text name="XDeadZone">
- X dode zone
- </text>
- <text name="YDeadZone">
- Y dode zone
- </text>
- <text name="ZDeadZone">
- Z dode zone
- </text>
- <text name="PitchDeadZone">
- Stampen dode zone
- </text>
- <text name="YawDeadZone">
- Gieren dode zone
- </text>
- <text name="RollDeadZone">
- Rollen dode zone
- </text>
- <text name="Feathering">
- Feathering
- </text>
- <text name="ZoomScale2">
- Zoomschaal
- </text>
- <text name="ZoomDeadZone">
- Zoom dode zone
- </text>
- <button label="SpaceNavigator standaardwaarden" name="SpaceNavigatorDefaults"/>
- <string name="JoystickMonitor">
- Joystick monitor
- </string>
- <string name="Axis">
- As [NUM]
- </string>
- <string name="NoDevice">
- Geen apparaat gedetecteerd
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Joystick" title="Joystick configuratie">
+ <check_box name="enable_joystick">
+ Joystick inschakelen
+ </check_box>
+ <spinner label="X-as mapping" name="JoystickAxis1"/>
+ <spinner label="Y-as mapping" name="JoystickAxis2"/>
+ <spinner label="Z-as mapping" name="JoystickAxis0"/>
+ <spinner label="Stampen mapping" name="JoystickAxis4"/>
+ <spinner label="Gieren mapping" name="JoystickAxis5"/>
+ <spinner label="Rollen mapping" name="JoystickAxis3"/>
+ <spinner label="Zoom mapping" name="JoystickAxis6"/>
+ <check_box label="Directe zoom" name="ZoomDirect"/>
+ <check_box label="3D Cursor" name="Cursor3D"/>
+ <check_box label="Automatisch niveau" name="AutoLeveling"/>
+ <text name="Control Modes:">
+ Besturingsmodi:
+ </text>
+ <check_box name="JoystickAvatarEnabled">
+ Avatar
+ </check_box>
+ <check_box name="JoystickBuildEnabled">
+ Bouwen
+ </check_box>
+ <check_box name="JoystickFlycamEnabled">
+ Vliegcamera
+ </check_box>
+ <text name="XScale">
+ X schaal
+ </text>
+ <text name="YScale">
+ Y schaal
+ </text>
+ <text name="ZScale">
+ Z schaal
+ </text>
+ <text name="PitchScale">
+ Stampen schaal
+ </text>
+ <text name="YawScale">
+ Gieren schaal
+ </text>
+ <text name="RollScale">
+ Rollen schaal
+ </text>
+ <text name="XDeadZone">
+ X dode zone
+ </text>
+ <text name="YDeadZone">
+ Y dode zone
+ </text>
+ <text name="ZDeadZone">
+ Z dode zone
+ </text>
+ <text name="PitchDeadZone">
+ Stampen dode zone
+ </text>
+ <text name="YawDeadZone">
+ Gieren dode zone
+ </text>
+ <text name="RollDeadZone">
+ Rollen dode zone
+ </text>
+ <text name="Feathering">
+ Feathering
+ </text>
+ <text name="ZoomScale2">
+ Zoomschaal
+ </text>
+ <text name="ZoomDeadZone">
+ Zoom dode zone
+ </text>
+ <button label="SpaceNavigator standaardwaarden" name="SpaceNavigatorDefaults"/>
+ <button label="OK" label_selected="OK" name="ok_btn"/>
+ <button label="Annuleren" label_selected="Annuleren" name="cancel_btn"/>
+ <string name="JoystickMonitor">
+ Joystick monitor
+ </string>
+ <string name="Axis">
+ As [NUM]
+ </string>
+ <string name="NoDevice">
+ Geen apparaat gedetecteerd
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_lagmeter.xml b/indra/newview/skins/default/xui/nl/floater_lagmeter.xml
index 0a33995243..e8b1fb14bc 100644
--- a/indra/newview/skins/default/xui/nl/floater_lagmeter.xml
+++ b/indra/newview/skins/default/xui/nl/floater_lagmeter.xml
@@ -1,152 +1,152 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_lagmeter" title="Lag meter">
- <button label="" label_selected="" name="client_lagmeter" tool_tip="Client lag status"/>
- <text name="client">
- Client:
- </text>
- <text name="client_text">
- Normaal
- </text>
- <button label="" label_selected="" name="network_lagmeter" tool_tip="Netwerklag status"/>
- <text name="network">
- Netwerk:
- </text>
- <text name="network_text">
- Normaal
- </text>
- <button label="" label_selected="" name="server_lagmeter" tool_tip="Serverlag status"/>
- <text name="server">
- Server:
- </text>
- <text name="server_text">
- Normaal
- </text>
- <button label="?" name="server_help"/>
- <button label="&gt;&gt;" name="minimize"/>
- <string name="max_title_msg">
- Lag meter
- </string>
- <string name="max_width_px">
- 360
- </string>
- <string name="min_title_msg">
- Lag
- </string>
- <string name="min_width_px">
- 90
- </string>
- <string name="client_text_msg">
- Client
- </string>
- <string name="client_frame_rate_critical_fps">
- 10
- </string>
- <string name="client_frame_rate_warning_fps">
- 15
- </string>
- <string name="client_frame_time_window_bg_msg">
- Normaal, venster op achtergrond
- </string>
- <string name="client_frame_time_critical_msg">
- Client framerate onder [CLIENT_FRAME_RATE_CRITICAL]
- </string>
- <string name="client_frame_time_warning_msg">
- Client framerate tussen [CLIENT_FRAME_RATE_CRITICAL] en [CLIENT_FRAME_RATE_WARNING]
- </string>
- <string name="client_frame_time_normal_msg">
- Normaal
- </string>
- <string name="client_draw_distance_cause_msg">
- Mogelijke oorzaak: Zichtbereik te hoog ingesteld
- </string>
- <string name="client_texture_loading_cause_msg">
- Mogelijke oorzaak: Afbeeldingen worden geladen
- </string>
- <string name="client_texture_memory_cause_msg">
- Mogelijke oorzaak: Teveel afbeeldingen in geheugen
- </string>
- <string name="client_complex_objects_cause_msg">
- Mogelijke oorzaak: Teveel complexe objecten in de scene
- </string>
- <string name="network_text_msg">
- Netwerk
- </string>
- <string name="network_packet_loss_critical_pct">
- 10
- </string>
- <string name="network_packet_loss_warning_pct">
- 5
- </string>
- <string name="network_packet_loss_critical_msg">
- Verbinding verliest meer dan [NETWORK_PACKET_LOSS_CRITICAL]% van de pakketten
- </string>
- <string name="network_packet_loss_warning_msg">
- Verbinding verliest [NETWORK_PACKET_LOSS_WARNING]%-[NETWORK_PACKET_LOSS_CRITICAL]% van de pakketten
- </string>
- <string name="network_performance_normal_msg">
- Normaal
- </string>
- <string name="network_ping_critical_ms">
- 600
- </string>
- <string name="network_ping_warning_ms">
- 300
- </string>
- <string name="network_ping_critical_msg">
- Verbinding pingtijd is meer dan [NETWORK_PING_CRITICAL] ms
- </string>
- <string name="network_ping_warning_msg">
- Verbinding pingtijd is [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] ms
- </string>
- <string name="network_packet_loss_cause_msg">
- Mogelijk slechte verbinding of &apos;Bandbreedte&apos; voorkeur te hoog.
- </string>
- <string name="network_ping_cause_msg">
- Mogelijk slechte verbinding of applicatie voor bestandsdeling.
- </string>
- <string name="server_text_msg">
- Server
- </string>
- <string name="server_frame_rate_critical_fps">
- 20
- </string>
- <string name="server_frame_rate_warning_fps">
- 30
- </string>
- <string name="server_single_process_max_time_ms">
- 20
- </string>
- <string name="server_frame_time_critical_msg">
- Simulator framerate onder [SERVER_FRAME_RATE_CRITICAL]
- </string>
- <string name="server_frame_time_warning_msg">
- Simulator framerate tussen [SERVER_FRAME_RATE_CRITICAL] en [SERVER_FRAME_RATE_WARNING]
- </string>
- <string name="server_frame_time_normal_msg">
- Normaal
- </string>
- <string name="server_physics_cause_msg">
- Mogelijke oorzaak: Teveel fysieke objecten
- </string>
- <string name="server_scripts_cause_msg">
- Mogelijke oorzaak: Teveel gescripte objecten
- </string>
- <string name="server_net_cause_msg">
- Mogelijke oorzaak: Teveel netwerkverkeer
- </string>
- <string name="server_agent_cause_msg">
- Mogelijke oorzaak: Teveel mensen verplaatsen zich in de regio
- </string>
- <string name="server_images_cause_msg">
- Mogelijke oorzaak: Teveel afbeeldingberekeningen
- </string>
- <string name="server_generic_cause_msg">
- Mogelijke oorzaak: Simulatorbelasting is te hoog
- </string>
- <string name="smaller_label">
- &gt;&gt;
- </string>
- <string name="bigger_label">
- &lt;&lt;
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_lagmeter" title="Lag meter">
+ <button label="" label_selected="" name="client_lagmeter" tool_tip="Client lag status"/>
+ <text name="client">
+ Client:
+ </text>
+ <text name="client_text">
+ Normaal
+ </text>
+ <button label="" label_selected="" name="network_lagmeter" tool_tip="Netwerklag status"/>
+ <text name="network">
+ Netwerk:
+ </text>
+ <text name="network_text">
+ Normaal
+ </text>
+ <button label="" label_selected="" name="server_lagmeter" tool_tip="Serverlag status"/>
+ <text name="server">
+ Server:
+ </text>
+ <text name="server_text">
+ Normaal
+ </text>
+ <button label="?" name="server_help"/>
+ <button label="&gt;&gt;" name="minimize"/>
+ <string name="max_title_msg">
+ Lag meter
+ </string>
+ <string name="max_width_px">
+ 360
+ </string>
+ <string name="min_title_msg">
+ Lag
+ </string>
+ <string name="min_width_px">
+ 90
+ </string>
+ <string name="client_text_msg">
+ Client
+ </string>
+ <string name="client_frame_rate_critical_fps">
+ 10
+ </string>
+ <string name="client_frame_rate_warning_fps">
+ 15
+ </string>
+ <string name="client_frame_time_window_bg_msg">
+ Normaal, venster op achtergrond
+ </string>
+ <string name="client_frame_time_critical_msg">
+ Client framerate onder [CLIENT_FRAME_RATE_CRITICAL]
+ </string>
+ <string name="client_frame_time_warning_msg">
+ Client framerate tussen [CLIENT_FRAME_RATE_CRITICAL] en [CLIENT_FRAME_RATE_WARNING]
+ </string>
+ <string name="client_frame_time_normal_msg">
+ Normaal
+ </string>
+ <string name="client_draw_distance_cause_msg">
+ Mogelijke oorzaak: Zichtbereik te hoog ingesteld
+ </string>
+ <string name="client_texture_loading_cause_msg">
+ Mogelijke oorzaak: Afbeeldingen worden geladen
+ </string>
+ <string name="client_texture_memory_cause_msg">
+ Mogelijke oorzaak: Teveel afbeeldingen in geheugen
+ </string>
+ <string name="client_complex_objects_cause_msg">
+ Mogelijke oorzaak: Teveel complexe objecten in de scene
+ </string>
+ <string name="network_text_msg">
+ Netwerk
+ </string>
+ <string name="network_packet_loss_critical_pct">
+ 10
+ </string>
+ <string name="network_packet_loss_warning_pct">
+ 5
+ </string>
+ <string name="network_packet_loss_critical_msg">
+ Verbinding verliest meer dan [NETWORK_PACKET_LOSS_CRITICAL]% van de pakketten
+ </string>
+ <string name="network_packet_loss_warning_msg">
+ Verbinding verliest [NETWORK_PACKET_LOSS_WARNING]%-[NETWORK_PACKET_LOSS_CRITICAL]% van de pakketten
+ </string>
+ <string name="network_performance_normal_msg">
+ Normaal
+ </string>
+ <string name="network_ping_critical_ms">
+ 600
+ </string>
+ <string name="network_ping_warning_ms">
+ 300
+ </string>
+ <string name="network_ping_critical_msg">
+ Verbinding pingtijd is meer dan [NETWORK_PING_CRITICAL] ms
+ </string>
+ <string name="network_ping_warning_msg">
+ Verbinding pingtijd is [NETWORK_PING_WARNING]-[NETWORK_PING_CRITICAL] ms
+ </string>
+ <string name="network_packet_loss_cause_msg">
+ Mogelijk slechte verbinding of &apos;Bandbreedte&apos; voorkeur te hoog.
+ </string>
+ <string name="network_ping_cause_msg">
+ Mogelijk slechte verbinding of applicatie voor bestandsdeling.
+ </string>
+ <string name="server_text_msg">
+ Server
+ </string>
+ <string name="server_frame_rate_critical_fps">
+ 20
+ </string>
+ <string name="server_frame_rate_warning_fps">
+ 30
+ </string>
+ <string name="server_single_process_max_time_ms">
+ 20
+ </string>
+ <string name="server_frame_time_critical_msg">
+ Simulator framerate onder [SERVER_FRAME_RATE_CRITICAL]
+ </string>
+ <string name="server_frame_time_warning_msg">
+ Simulator framerate tussen [SERVER_FRAME_RATE_CRITICAL] en [SERVER_FRAME_RATE_WARNING]
+ </string>
+ <string name="server_frame_time_normal_msg">
+ Normaal
+ </string>
+ <string name="server_physics_cause_msg">
+ Mogelijke oorzaak: Teveel fysieke objecten
+ </string>
+ <string name="server_scripts_cause_msg">
+ Mogelijke oorzaak: Teveel gescripte objecten
+ </string>
+ <string name="server_net_cause_msg">
+ Mogelijke oorzaak: Teveel netwerkverkeer
+ </string>
+ <string name="server_agent_cause_msg">
+ Mogelijke oorzaak: Teveel mensen verplaatsen zich in de regio
+ </string>
+ <string name="server_images_cause_msg">
+ Mogelijke oorzaak: Teveel afbeeldingberekeningen
+ </string>
+ <string name="server_generic_cause_msg">
+ Mogelijke oorzaak: Simulatorbelasting is te hoog
+ </string>
+ <string name="smaller_label">
+ &gt;&gt;
+ </string>
+ <string name="bigger_label">
+ &lt;&lt;
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_lsl_guide.xml b/indra/newview/skins/default/xui/nl/floater_lsl_guide.xml
index a8d22e4c37..556d151c8c 100644
--- a/indra/newview/skins/default/xui/nl/floater_lsl_guide.xml
+++ b/indra/newview/skins/default/xui/nl/floater_lsl_guide.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="script ed float" title="LSL Wiki">
- <check_box label="Volg cursor" name="lock_check"/>
- <combo_box label="Vergrendelen" name="history_combo"/>
- <button label="Terug" name="back_btn"/>
- <button label="Vooruit" name="fwd_btn"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="script ed float" title="LSL Wiki">
+ <check_box label="Volg cursor" name="lock_check"/>
+ <combo_box label="Vergrendelen" name="history_combo"/>
+ <button label="Terug" name="back_btn"/>
+ <button label="Vooruit" name="fwd_btn"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_mem_leaking.xml b/indra/newview/skins/default/xui/nl/floater_mem_leaking.xml
index a39562c865..1c7e070e4a 100644
--- a/indra/newview/skins/default/xui/nl/floater_mem_leaking.xml
+++ b/indra/newview/skins/default/xui/nl/floater_mem_leaking.xml
@@ -1,18 +1,18 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="MemLeak" title="Geheugenlek simulatie">
- <spinner label="Leksnelheid (bytes per frame):" name="leak_speed"/>
- <spinner label="Max gelekt geheugen (MB):" name="max_leak"/>
- <text name="total_leaked_label">
- Huidig gelekt geheugen: [SIZE] KB
- </text>
- <text name="note_label_1">
- [NOTE1]
- </text>
- <text name="note_label_2">
- [NOTE2]
- </text>
- <button label="Start" name="start_btn"/>
- <button label="Stop" name="stop_btn"/>
- <button label="Vrijgeven" name="release_btn"/>
- <button label="Sluiten" name="close_btn"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="MemLeak" title="Geheugenlek simulatie">
+ <spinner label="Leksnelheid (bytes per frame):" name="leak_speed"/>
+ <spinner label="Max gelekt geheugen (MB):" name="max_leak"/>
+ <text name="total_leaked_label">
+ Huidig gelekt geheugen: [SIZE] KB
+ </text>
+ <text name="note_label_1">
+ [NOTE1]
+ </text>
+ <text name="note_label_2">
+ [NOTE2]
+ </text>
+ <button label="Start" name="start_btn"/>
+ <button label="Stop" name="stop_btn"/>
+ <button label="Vrijgeven" name="release_btn"/>
+ <button label="Sluiten" name="close_btn"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_moveview.xml b/indra/newview/skins/default/xui/nl/floater_moveview.xml
index 2204434dde..9b0b95b99a 100644
--- a/indra/newview/skins/default/xui/nl/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/nl/floater_moveview.xml
@@ -1,11 +1,11 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="move floater" title="">
- <button label="" label_selected="" name="turn left btn" tool_tip="Draai links"/>
- <button label="" label_selected="" name="turn right btn" tool_tip="Draai rechts"/>
- <button label="" label_selected="" name="move up btn" tool_tip="Spring of vlieg omhoog"/>
- <button label="" label_selected="" name="move down btn" tool_tip="Kruip of vlieg omlaag"/>
- <joystick_slide name="slide left btn" tool_tip="Verplaats links"/>
- <joystick_slide name="slide right btn" tool_tip="Verplaats rechts"/>
- <joystick_turn name="forward btn" tool_tip="Verplaats vooruit"/>
- <joystick_turn name="backward btn" tool_tip="Verplaats achteruit"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="move floater" title="">
+ <button label="" label_selected="" name="turn left btn" tool_tip="Draai links"/>
+ <button label="" label_selected="" name="turn right btn" tool_tip="Draai rechts"/>
+ <button label="" label_selected="" name="move up btn" tool_tip="Spring of vlieg omhoog"/>
+ <button label="" label_selected="" name="move down btn" tool_tip="Kruip of vlieg omlaag"/>
+ <joystick_slide name="slide left btn" tool_tip="Verplaats links"/>
+ <joystick_slide name="slide right btn" tool_tip="Verplaats rechts"/>
+ <joystick_turn name="forward btn" tool_tip="Verplaats vooruit"/>
+ <joystick_turn name="backward btn" tool_tip="Verplaats achteruit"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_mute_object.xml b/indra/newview/skins/default/xui/nl/floater_mute_object.xml
index da1e045b9b..efc12f29e2 100644
--- a/indra/newview/skins/default/xui/nl/floater_mute_object.xml
+++ b/indra/newview/skins/default/xui/nl/floater_mute_object.xml
@@ -1,11 +1,11 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="mute by name" title="Negeer object op naam">
- <text name="message">
- Negeer op naam heeft alleen invloed op object chat en IM, niet op geluiden. U dient de naam van het object exact te typen.
- </text>
- <line_editor name="object_name">
- Object naam
- </line_editor>
- <button label="Ok" name="OK"/>
- <button label="Annuleren" name="Cancel"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="mute by name" title="Negeer object op naam">
+ <text name="message">
+ Negeer op naam heeft alleen invloed op object chat en IM, niet op geluiden. U dient de naam van het object exact te typen.
+ </text>
+ <line_editor name="object_name">
+ Object naam
+ </line_editor>
+ <button label="Ok" name="OK"/>
+ <button label="Annuleren" name="Cancel"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_my_friends.xml b/indra/newview/skins/default/xui/nl/floater_my_friends.xml
index b01a46abca..ed81e6baf9 100644
--- a/indra/newview/skins/default/xui/nl/floater_my_friends.xml
+++ b/indra/newview/skins/default/xui/nl/floater_my_friends.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_my_friends" title="Contacten">
- <tab_container name="friends_and_groups">
- <panel label="Vrienden" name="friends_panel"/>
- <panel label="Groepen" name="groups_panel"/>
- </tab_container>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_my_friends" title="Contacten">
+ <tab_container name="friends_and_groups">
+ <panel label="Vrienden" name="friends_panel"/>
+ <panel label="Groepen" name="groups_panel"/>
+ </tab_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_openobject.xml b/indra/newview/skins/default/xui/nl/floater_openobject.xml
index 1620359126..58ca71505a 100644
--- a/indra/newview/skins/default/xui/nl/floater_openobject.xml
+++ b/indra/newview/skins/default/xui/nl/floater_openobject.xml
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="objectcontents" title="Object inhoud">
- <text name="object_name">
- [DESC]:
- </text>
- <button label="Kopiëren naar inventaris" label_selected="Kopiëren naar inventaris" name="copy_to_inventory_button"/>
- <button label="Kopiëren en dragen" label_selected="Kopiëren en dragen" name="copy_and_wear_button"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="objectcontents" title="Object inhoud">
+ <text name="object_name">
+ [DESC]:
+ </text>
+ <button label="Kopiëren naar inventaris" label_selected="Kopiëren naar inventaris" name="copy_to_inventory_button"/>
+ <button label="Kopiëren en dragen" label_selected="Kopiëren en dragen" name="copy_and_wear_button"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_pay.xml b/indra/newview/skins/default/xui/nl/floater_pay.xml
index 4844cbf2f7..3255412439 100644
--- a/indra/newview/skins/default/xui/nl/floater_pay.xml
+++ b/indra/newview/skins/default/xui/nl/floater_pay.xml
@@ -1,21 +1,21 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Give Money" title="">
- <button label="L$1" label_selected="L$1" name="fastpay 1"/>
- <button label="L$5" label_selected="L$5" name="fastpay 5"/>
- <button label="L$10" label_selected="L$10" name="fastpay 10"/>
- <button label="L$20" label_selected="L$20" name="fastpay 20"/>
- <button label="Betaal" label_selected="Betaal" name="pay btn"/>
- <button label="Annuleren" label_selected="Annuleren" name="cancel btn"/>
- <text name="payee_label">
- Betaal inwoner:
- </text>
- <text name="payee_name">
- [FIRST] [LAST]
- </text>
- <text name="fastpay text">
- Snel betalen:
- </text>
- <text name="amount text">
- Bedrag:
- </text>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Give Money" title="">
+ <button label="L$1" label_selected="L$1" name="fastpay 1"/>
+ <button label="L$5" label_selected="L$5" name="fastpay 5"/>
+ <button label="L$10" label_selected="L$10" name="fastpay 10"/>
+ <button label="L$20" label_selected="L$20" name="fastpay 20"/>
+ <button label="Betaal" label_selected="Betaal" name="pay btn"/>
+ <button label="Annuleren" label_selected="Annuleren" name="cancel btn"/>
+ <text name="payee_label">
+ Betaal inwoner:
+ </text>
+ <text name="payee_name">
+ [FIRST] [LAST]
+ </text>
+ <text name="fastpay text">
+ Snel betalen:
+ </text>
+ <text name="amount text">
+ Bedrag:
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_pay_object.xml b/indra/newview/skins/default/xui/nl/floater_pay_object.xml
index e0e824e308..23a161ac14 100644
--- a/indra/newview/skins/default/xui/nl/floater_pay_object.xml
+++ b/indra/newview/skins/default/xui/nl/floater_pay_object.xml
@@ -1,30 +1,30 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Give Money" title="">
- <text name="payee_group">
- Betaal groep:
- </text>
- <text name="payee_resident">
- Betaal inwoner:
- </text>
- <text name="payee_name">
- [FIRST] [LAST]
- </text>
- <text name="object_name_label">
- Via object:
- </text>
- <text name="object_name_text">
- ...
- </text>
- <text name="fastpay text">
- Snel betalen:
- </text>
- <text name="amount text">
- Bedrag:
- </text>
- <button label="L$1" label_selected="L$1" name="fastpay 1"/>
- <button label="L$5" label_selected="L$5" name="fastpay 5"/>
- <button label="L$10" label_selected="L$10" name="fastpay 10"/>
- <button label="L$20" label_selected="L$20" name="fastpay 20"/>
- <button label="Betaal" label_selected="Betaal" name="pay btn"/>
- <button label="Annuleren" label_selected="Annuleren" name="cancel btn"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Give Money" title="">
+ <text name="payee_group">
+ Betaal groep:
+ </text>
+ <text name="payee_resident">
+ Betaal inwoner:
+ </text>
+ <text name="payee_name">
+ [FIRST] [LAST]
+ </text>
+ <text name="object_name_label">
+ Via object:
+ </text>
+ <text name="object_name_text">
+ ...
+ </text>
+ <text name="fastpay text">
+ Snel betalen:
+ </text>
+ <text name="amount text">
+ Bedrag:
+ </text>
+ <button label="L$1" label_selected="L$1" name="fastpay 1"/>
+ <button label="L$5" label_selected="L$5" name="fastpay 5"/>
+ <button label="L$10" label_selected="L$10" name="fastpay 10"/>
+ <button label="L$20" label_selected="L$20" name="fastpay 20"/>
+ <button label="Betaal" label_selected="Betaal" name="pay btn"/>
+ <button label="Annuleren" label_selected="Annuleren" name="cancel btn"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_perm_prefs.xml b/indra/newview/skins/default/xui/nl/floater_perm_prefs.xml
new file mode 100644
index 0000000000..d19b5523f5
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/floater_perm_prefs.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="perm prefs" title="Standaard upload Permissies">
+ <panel label="Permissies" name="permissions">
+ <button label="?" label_selected="?" name="help"/>
+ <check_box label="Delen met groep" name="share_with_group"/>
+ <check_box label="Iedereen mag kopiëren" name="everyone_copy"/>
+ <text name="NextOwnerLabel">
+ Volgende eigenaar kan:
+ </text>
+ <check_box label="Wijzigen" name="next_owner_modify"/>
+ <check_box label="Kopiëren" name="next_owner_copy"/>
+ <check_box label="Verkopen/weggeven" name="next_owner_transfer"/>
+ </panel>
+ <button label="OK" label_selected="OK" name="ok"/>
+ <button label="Annuleren" label_selected="Annuleren" name="cancel"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_post_process.xml b/indra/newview/skins/default/xui/nl/floater_post_process.xml
index 1b6d857cbc..45fc211aeb 100644
--- a/indra/newview/skins/default/xui/nl/floater_post_process.xml
+++ b/indra/newview/skins/default/xui/nl/floater_post_process.xml
@@ -1,53 +1,53 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Post-Process Floater" title="Nabewerkinginstellingen">
- <tab_container name="Post-Process Tabs">
- <panel label="Kleurfilter" name="wmiColorFilterPanel">
- <check_box label="Inschakelen" name="wmiColorFilterToggle"/>
- <text name="wmiColorFilterBrightnessText">
- Helderheid
- </text>
- <text name="wmiColorFilterSaturationText">
- Verzadiging
- </text>
- <text name="wmiColorFilterContrastText">
- Contrast
- </text>
- <text name="wmiColorFilterBaseText">
- Contrastbasiskleur
- </text>
- <slider label="R" name="wmiColorFilterBaseR"/>
- <slider label="G" name="wmiColorFilterBaseG"/>
- <slider label="B" name="wmiColorFilterBaseB"/>
- <slider label="I" name="wmiColorFilterBaseI"/>
- </panel>
- <panel label="Nachtvisie" name="wmiNightVisionPanel">
- <check_box label="Inschakelen" name="wmiNightVisionToggle"/>
- <text name="wmiNightVisionBrightMultText">
- Lichtversterking
- </text>
- <text name="wmiNightVisionNoiseSizeText">
- Ruisgrootte
- </text>
- <text name="wmiNightVisionNoiseStrengthText">
- Ruissterkte
- </text>
- </panel>
- <panel label="Bloom" name="wmiBloomPanel">
- <check_box label="Inschakelen" name="wmiBloomToggle"/>
- <text name="wmiBloomExtractText">
- Lichtsterkte extractie
- </text>
- <text name="wmiBloomSizeText">
- Bloom-grootte
- </text>
- <text name="wmiBloomStrengthText">
- Bloom-sterkte
- </text>
- </panel>
- <panel label="Extra&apos;s" name="Extras">
- <button label="LaadEffect" label_selected="LaadEffect" name="PPLoadEffect"/>
- <button label="Effect opslaan" label_selected="Effect opslaan" name="PPSaveEffect"/>
- <line_editor label="Effectnaam" name="PPEffectNameEditor"/>
- </panel>
- </tab_container>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Post-Process Floater" title="Nabewerkinginstellingen">
+ <tab_container name="Post-Process Tabs">
+ <panel label="Kleurfilter" name="wmiColorFilterPanel">
+ <check_box label="Inschakelen" name="wmiColorFilterToggle"/>
+ <text name="wmiColorFilterBrightnessText">
+ Helderheid
+ </text>
+ <text name="wmiColorFilterSaturationText">
+ Verzadiging
+ </text>
+ <text name="wmiColorFilterContrastText">
+ Contrast
+ </text>
+ <text name="wmiColorFilterBaseText">
+ Contrastbasiskleur
+ </text>
+ <slider label="R" name="wmiColorFilterBaseR"/>
+ <slider label="G" name="wmiColorFilterBaseG"/>
+ <slider label="B" name="wmiColorFilterBaseB"/>
+ <slider label="I" name="wmiColorFilterBaseI"/>
+ </panel>
+ <panel label="Nachtvisie" name="wmiNightVisionPanel">
+ <check_box label="Inschakelen" name="wmiNightVisionToggle"/>
+ <text name="wmiNightVisionBrightMultText">
+ Lichtversterking
+ </text>
+ <text name="wmiNightVisionNoiseSizeText">
+ Ruisgrootte
+ </text>
+ <text name="wmiNightVisionNoiseStrengthText">
+ Ruissterkte
+ </text>
+ </panel>
+ <panel label="Bloom" name="wmiBloomPanel">
+ <check_box label="Inschakelen" name="wmiBloomToggle"/>
+ <text name="wmiBloomExtractText">
+ Lichtsterkte extractie
+ </text>
+ <text name="wmiBloomSizeText">
+ Bloom-grootte
+ </text>
+ <text name="wmiBloomStrengthText">
+ Bloom-sterkte
+ </text>
+ </panel>
+ <panel label="Extra&apos;s" name="Extras">
+ <button label="LaadEffect" label_selected="LaadEffect" name="PPLoadEffect"/>
+ <button label="Effect opslaan" label_selected="Effect opslaan" name="PPSaveEffect"/>
+ <line_editor label="Effectnaam" name="PPEffectNameEditor"/>
+ </panel>
+ </tab_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_postcard.xml b/indra/newview/skins/default/xui/nl/floater_postcard.xml
index 8f7a692009..f31b479576 100644
--- a/indra/newview/skins/default/xui/nl/floater_postcard.xml
+++ b/indra/newview/skins/default/xui/nl/floater_postcard.xml
@@ -1,36 +1,36 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Postcard" title="Email foto">
- <text name="to_label">
- Ontvanger e-mail:
- </text>
- <text name="from_label">
- Uw e-mail:
- </text>
- <text name="name_label">
- Uw naam:
- </text>
- <text name="subject_label">
- Onderwerp:
- </text>
- <line_editor label="Type hier uw onderwerp." name="subject_form"/>
- <text name="msg_label">
- Bericht:
- </text>
- <text_editor name="msg_form">
- Type hier uw bericht.
- </text_editor>
- <text name="fine_print">
- Indien uw ontvanger deelneemt aan SL, zult u een verwijzingsbonus ontvangen.
- </text>
- <button label="Annuleren" name="cancel_btn"/>
- <button label="Verzenden" name="send_btn"/>
- <string name="default_subject">
- Ansichtkaart uit Second Life
- </string>
- <string name="default_message">
- Kom dit zien!
- </string>
- <string name="upload_message">
- &quot;Verzenden…&quot;
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Postcard" title="Email foto">
+ <text name="to_label">
+ Ontvanger e-mail:
+ </text>
+ <text name="from_label">
+ Uw e-mail:
+ </text>
+ <text name="name_label">
+ Uw naam:
+ </text>
+ <text name="subject_label">
+ Onderwerp:
+ </text>
+ <line_editor label="Type hier uw onderwerp." name="subject_form"/>
+ <text name="msg_label">
+ Bericht:
+ </text>
+ <text_editor name="msg_form">
+ Type hier uw bericht.
+ </text_editor>
+ <text name="fine_print">
+ Indien uw ontvanger deelneemt aan SL, zult u een verwijzingsbonus ontvangen.
+ </text>
+ <button label="Annuleren" name="cancel_btn"/>
+ <button label="Verzenden" name="send_btn"/>
+ <string name="default_subject">
+ Ansichtkaart uit Second Life
+ </string>
+ <string name="default_message">
+ Kom dit zien!
+ </string>
+ <string name="upload_message">
+ &quot;Verzenden…&quot;
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_preferences.xml b/indra/newview/skins/default/xui/nl/floater_preferences.xml
index 6a7a895e47..25984ee65a 100644
--- a/indra/newview/skins/default/xui/nl/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/nl/floater_preferences.xml
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Preferences" title="Voorkeuren">
- <button label="OK" label_selected="OK" name="OK"/>
- <button label="Annuleren" label_selected="Annuleren" name="Cancel"/>
- <button label="Toepassen" label_selected="Toepassen" name="Apply"/>
- <button label="Over" label_selected="Over" name="About..."/>
- <button label="Help" label_selected="Help" name="Help"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Preferences" title="Voorkeuren">
+ <button label="OK" label_selected="OK" name="OK"/>
+ <button label="Annuleren" label_selected="Annuleren" name="Cancel"/>
+ <button label="Toepassen" label_selected="Toepassen" name="Apply"/>
+ <button label="Over" label_selected="Over" name="About..."/>
+ <button label="Help" label_selected="Help" name="Help"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_region_info.xml b/indra/newview/skins/default/xui/nl/floater_region_info.xml
index 93024ecb13..3d4386bc16 100644
--- a/indra/newview/skins/default/xui/nl/floater_region_info.xml
+++ b/indra/newview/skins/default/xui/nl/floater_region_info.xml
@@ -1,2 +1,2 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="regioninfo" title="Regio/estate"/>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="regioninfo" title="Regio/estate"/>
diff --git a/indra/newview/skins/default/xui/nl/floater_report_abuse.xml b/indra/newview/skins/default/xui/nl/floater_report_abuse.xml
index eefbc6797b..e82a5a3b89 100644
--- a/indra/newview/skins/default/xui/nl/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/nl/floater_report_abuse.xml
@@ -1,107 +1,109 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_report_abuse" title="Misbruik rapporteren">
- <check_box label="Voeg schermafbeelding toe" name="screen_check"/>
- <text name="reporter_title">
- Rapporteur:
- </text>
- <text name="reporter_field">
- Loremipsum Dolorsitamut
- </text>
- <text name="sim_title">
- Regio:
- </text>
- <text name="sim_field">
- Regionaam
- </text>
- <text name="pos_title">
- Positie:
- </text>
- <text name="pos_field">
- {128.1, 128.1, 15.4}
- </text>
- <text name="select_object_label">
- Klik de knop, daarna het object:
- </text>
- <button label="" label_selected="" name="pick_btn" tool_tip="Objectkiezer - Identificeer een object als het onderwerp van dit rapport"/>
- <text name="object_name_label">
- Naam:
- </text>
- <text name="object_name">
- Consetetur Sadipscing
- </text>
- <text name="owner_name_label">
- Eigenaar:
- </text>
- <text name="owner_name">
- Hendrerit Vulputate
- </text>
- <combo_box name="category_combo" tool_tip="Categorie -- selecteer de categorie die dit rapport het best beschrijft">
- <combo_box.item name="Select_category" label="Selecteer categorie"/>
- <combo_box.item name="Age__Age_play" label="Leeftijd &gt; Leeftijd spelen"/>
- <combo_box.item name="Age__Adult_resident_on_Teen_Second_Life" label="Leeftijd &gt; Volwassen inwoner in Teen Second Life"/>
-
-
-
- <combo_box.item name="Assault__Combat_sandbox___unsafe_area" label="Aanval &gt; Gevechtszandbak / onveilig gebied"/>
- <combo_box.item name="Assault__Safe_area" label="Aanval &gt; Veilig gebied"/>
- <combo_box.item name="Assault__Weapons_testing_sandbox" label="Aanval &gt; Zandbak voor het testen van wapens"/>
- <combo_box.item name="Commerce__Failure_to_deliver_product_or_service" label="Handel &gt; Product of dienst is niet geleverd"/>
- <combo_box.item name="Disclosure__Real_world_information" label="Openbaring &gt; Echte wereld informatie"/>
- <combo_box.item name="Disclosure__Remotely_monitoring chat" label="Openbaring &gt; Op afstand chat afluisteren"/>
- <combo_box.item name="Disclosure__Second_Life_information_chat_IMs" label="Openbaring &gt; Second Life informatie/chat/IMs"/>
- <combo_box.item name="Disturbing_the_peace__Unfair_use_of_region_resources" label="Vredebreuk &gt; Oneerlijk gebruik van regiomiddelen"/>
- <combo_box.item name="Disturbing_the_peace__Excessive_scripted_objects" label="Vredebreuk &gt; Excessieve gescripte objecten"/>
- <combo_box.item name="Disturbing_the_peace__Object_littering" label="Vredebreuk &gt; Objecten laten rondslingeren"/>
- <combo_box.item name="Disturbing_the_peace__Repetitive_spam" label="Vredebreuk &gt; Herhaalde spam"/>
- <combo_box.item name="Disturbing_the_peace__Unwanted_advert_spam" label="Vredebreuk &gt; Ongewenste reclame-spam"/>
- <combo_box.item name="Fraud__L$" label="Fraude &gt; L$"/>
- <combo_box.item name="Fraud__Land" label="Fraude &gt; Land"/>
- <combo_box.item name="Fraud__Pyramid_scheme_or_chain_letter" label="Fraude &gt; Piramideschema of kettingbrief"/>
- <combo_box.item name="Fraud__US$" label="Fraude &gt; US$"/>
- <combo_box.item name="Harassment__Advert_farms___visual_spam" label="Intimidatie &gt; Reclameverzamelingen / visuele spam"/>
- <combo_box.item name="Harassment__Defaming_individuals_or_groups" label="Intimidatie &gt; Individuen of groepen in diskrediet brengen"/>
- <combo_box.item name="Harassment__Impeding_movement" label="Intimidatie &gt; Beweging verhinderen"/>
- <combo_box.item name="Harassment__Sexual_harassment" label="Intimidatie &gt; Seksuele intimidatie"/>
- <combo_box.item name="Harassment__Solicting_inciting_others_to_violate_ToS" label="Intimidatie &gt; Anderen uitnodigen/aanzetten tot het schenden van de ToS"/>
- <combo_box.item name="Harassment__Verbal_abuse" label="Intimidatie &gt; Verbaal misbruik"/>
- <combo_box.item name="Indecency__Broadly_offensive_content_or_conduct" label="Onfatsoenlijkheid &gt; Globaal beledigende inhoud of gedrag"/>
-
-
-
- <combo_box.item name="Indecency__Inappropriate_avatar_name" label="Onfatsoenlijkheid &gt; Ongepaste avatar naam"/>
-
-
-
- <combo_box.item name="Intellectual_property_infringement_Content_Removal" label="Inbreuk op intellectueel eigendom &gt; Verwijderen van inhoud"/>
- <combo_box.item name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit" label="Inbreuk op intellectueel eigendom &gt; CopyBot of misbruik van permissies"/>
- <combo_box.item name="Intolerance" label="Intolerantie"/>
- <combo_box.item name="Land__Abuse_of_sandbox_resources" label="Land &gt; Misbruik van zandbakmiddelen"/>
- <combo_box.item name="Land__Encroachment__Objects_textures" label="Land &gt; Indringing &gt; Objecten/texturen"/>
- <combo_box.item name="Land__Encroachment__Particles" label="Land &gt; Indringing &gt; Particles"/>
- <combo_box.item name="Land__Encroachment__Trees_plants" label="Land &gt; Indringing &gt; Bomen/planten"/>
- <combo_box.item name="Wagering_gambling" label="Weddenschappen/gokken"/>
- <combo_box.item name="Other" label="Anders"/>
- </combo_box>
- <text name="abuser_name_title">
- Misbruikernaam:
- </text>
- <button label="Kies inwoner" label_selected="" name="select_abuser" tool_tip="Selecteer de naam van de misbruiker uit een lijst"/>
- <check_box label="Naam van misbruiker onbekend" name="omit_abuser_name" tool_tip="Vink dit aan wanneer u niet in staat bent de naam van de misbruiker te geven"/>
- <text name="abuser_name_title2">
- Locatie van misbruik:
- </text>
- <text name="sum_title">
- Samenvatting:
- </text>
- <text name="dscr_title">
- Details:
- </text>
- <text name="bug_aviso">
- Wees alstublieft zo specifiek mogelijk m.b.t. datum, locatie, aard van het misbruik, relevante chat/IM tekst, en selecteer het object indien mogelijk.
- </text>
- <text name="incomplete_title">
- Let op: onvolledige rapporten zullen niet worden onderzocht.
- </text>
- <button label="Annuleren" label_selected="Annuleren" name="cancel_btn"/>
- <button label="Misbruik rapporteren" label_selected="Misbruik rapporteren" name="send_btn"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_report_abuse" title="Misbruik rapporteren">
+ <check_box label="Voeg schermafbeelding toe" name="screen_check"/>
+ <text name="reporter_title" width="110">
+ Rapporteur:
+ </text>
+ <text name="reporter_field" left_delta="70">
+ Loremipsum Dolorsitamut
+ </text>
+ <text name="sim_title">
+ Regio:
+ </text>
+ <text name="sim_field" left_delta="70">
+ Regionaam
+ </text>
+ <text name="pos_title">
+ Positie:
+ </text>
+ <text name="pos_field" left_delta="70">
+ {128.1, 128.1, 15.4}
+ </text>
+ <text name="select_object_label">
+ Klik de knop, daarna het object:
+ </text>
+ <button label="" label_selected="" name="pick_btn" tool_tip="Objectkiezer - Identificeer een object als het onderwerp van dit rapport"/>
+ <text name="object_name_label">
+ Naam:
+ </text>
+ <text name="object_name" width="120">
+ Consetetur Sadipscing
+ </text>
+ <text name="owner_name_label">
+ Eigenaar:
+ </text>
+ <text name="owner_name">
+ Hendrerit Vulputate
+ </text>
+ <combo_box name="category_combo" tool_tip="Categorie -- selecteer de categorie die dit rapport het best beschrijft">
+ <combo_box.item name="Select_category" label="Selecteer categorie"/>
+ <combo_box.item name="Age__Age_play" label="Leeftijd &gt; Leeftijd spelen"/>
+ <combo_box.item name="Age__Adult_resident_on_Teen_Second_Life" label="Leeftijd &gt; Volwassen inwoner in Teen Second Life"/>
+ <combo_item name="Age__Underage_resident_outside_of_Teen_Second_Life">
+ Leeftijd &gt; Minderjarige inwoner buiten Teen Second Life
+ </combo_item>
+ <combo_box.item name="Assault__Combat_sandbox___unsafe_area" label="Aanval &gt; Gevechtszandbak / onveilig gebied"/>
+ <combo_box.item name="Assault__Safe_area" label="Aanval &gt; Veilig gebied"/>
+ <combo_box.item name="Assault__Weapons_testing_sandbox" label="Aanval &gt; Zandbak voor het testen van wapens"/>
+ <combo_box.item name="Commerce__Failure_to_deliver_product_or_service" label="Handel &gt; Product of dienst is niet geleverd"/>
+ <combo_box.item name="Disclosure__Real_world_information" label="Openbaring &gt; Echte wereld informatie"/>
+ <combo_box.item name="Disclosure__Remotely_monitoring chat" label="Openbaring &gt; Op afstand chat afluisteren"/>
+ <combo_box.item name="Disclosure__Second_Life_information_chat_IMs" label="Openbaring &gt; Second Life informatie/chat/IMs"/>
+ <combo_box.item name="Disturbing_the_peace__Unfair_use_of_region_resources" label="Vredebreuk &gt; Oneerlijk gebruik van regiomiddelen"/>
+ <combo_box.item name="Disturbing_the_peace__Excessive_scripted_objects" label="Vredebreuk &gt; Excessieve gescripte objecten"/>
+ <combo_box.item name="Disturbing_the_peace__Object_littering" label="Vredebreuk &gt; Objecten laten rondslingeren"/>
+ <combo_box.item name="Disturbing_the_peace__Repetitive_spam" label="Vredebreuk &gt; Herhaalde spam"/>
+ <combo_box.item name="Disturbing_the_peace__Unwanted_advert_spam" label="Vredebreuk &gt; Ongewenste reclame-spam"/>
+ <combo_box.item name="Fraud__L$" label="Fraude &gt; L$"/>
+ <combo_box.item name="Fraud__Land" label="Fraude &gt; Land"/>
+ <combo_box.item name="Fraud__Pyramid_scheme_or_chain_letter" label="Fraude &gt; Piramideschema of kettingbrief"/>
+ <combo_box.item name="Fraud__US$" label="Fraude &gt; US$"/>
+ <combo_box.item name="Harassment__Advert_farms___visual_spam" label="Intimidatie &gt; Reclameverzamelingen / visuele spam"/>
+ <combo_box.item name="Harassment__Defaming_individuals_or_groups" label="Intimidatie &gt; Individuen of groepen in diskrediet brengen"/>
+ <combo_box.item name="Harassment__Impeding_movement" label="Intimidatie &gt; Beweging verhinderen"/>
+ <combo_box.item name="Harassment__Sexual_harassment" label="Intimidatie &gt; Seksuele intimidatie"/>
+ <combo_box.item name="Harassment__Solicting_inciting_others_to_violate_ToS" label="Intimidatie &gt; Anderen uitnodigen/aanzetten tot het schenden van de ToS"/>
+ <combo_box.item name="Harassment__Verbal_abuse" label="Intimidatie &gt; Verbaal misbruik"/>
+ <combo_box.item name="Indecency__Broadly_offensive_content_or_conduct" label="Onfatsoenlijkheid &gt; Globaal beledigende inhoud of gedrag"/>
+ <combo_box.item name="Indecency__Inappropriate_avatar_name" label="Onfatsoenlijkheid &gt; Ongepaste avatar naam"/>
+ <combo_item name="Indecency__Mature_content_in_PG_region">
+ Onfatsoenlijkheid &gt; Ongepaste inhoud of gedrag in een PG regio
+ </combo_item>
+ <combo_item name="Indecency__Inappropriate_content_in_Mature_region">
+ Onfatsoenlijkheid &gt; Ongepaste inhoud of gedrag in een Mature regio
+ </combo_item>
+ <combo_box.item name="Intellectual_property_infringement_Content_Removal" label="Inbreuk op intellectueel eigendom &gt; Verwijderen van inhoud"/>
+ <combo_box.item name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit" label="Inbreuk op intellectueel eigendom &gt; CopyBot of misbruik van permissies"/>
+ <combo_box.item name="Intolerance" label="Intolerantie"/>
+ <combo_box.item name="Land__Abuse_of_sandbox_resources" label="Land &gt; Misbruik van zandbakmiddelen"/>
+ <combo_box.item name="Land__Encroachment__Objects_textures" label="Land &gt; Indringing &gt; Objecten/texturen"/>
+ <combo_box.item name="Land__Encroachment__Particles" label="Land &gt; Indringing &gt; Particles"/>
+ <combo_box.item name="Land__Encroachment__Trees_plants" label="Land &gt; Indringing &gt; Bomen/planten"/>
+ <combo_box.item name="Wagering_gambling" label="Weddenschappen/gokken"/>
+ <combo_box.item name="Other" label="Anders"/>
+ </combo_box>
+ <text name="abuser_name_title">
+ Misbruikernaam:
+ </text>
+ <button label="Kies inwoner" label_selected="" name="select_abuser" tool_tip="Selecteer de naam van de misbruiker uit een lijst"/>
+ <check_box label="Naam van misbruiker onbekend" name="omit_abuser_name" tool_tip="Vink dit aan wanneer u niet in staat bent de naam van de misbruiker te geven"/>
+ <text name="abuser_name_title2">
+ Locatie van misbruik:
+ </text>
+ <text name="sum_title">
+ Samenvatting:
+ </text>
+ <text name="dscr_title">
+ Details:
+ </text>
+ <text name="bug_aviso">
+ Wees alstublieft zo specifiek mogelijk m.b.t. datum, locatie,
+aard van het misbruik, relevante chat/IM tekst, en selecteer
+het object indien mogelijk.
+ </text>
+ <text name="incomplete_title">
+ Let op: onvolledige rapporten zullen niet worden onderzocht.
+ </text>
+ <button label="Annuleren" label_selected="Annuleren" name="cancel_btn"/>
+ <button label="Misbruik rapporteren" label_selected="Misbruik rapporteren" name="send_btn"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_script_debug.xml b/indra/newview/skins/default/xui/nl/floater_script_debug.xml
index 9ac059330e..306ad5d1a3 100644
--- a/indra/newview/skins/default/xui/nl/floater_script_debug.xml
+++ b/indra/newview/skins/default/xui/nl/floater_script_debug.xml
@@ -1,6 +1,6 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<multi_floater name="script debug floater" title="Script waarschuwing/fout">
- <tab_container name="Preview Tabs">
- <floater label="Script" name="all_scripts" title="[Alle scripts]"/>
- </tab_container>
-</multi_floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<multi_floater name="script debug floater" title="Script waarschuwing/fout">
+ <tab_container name="Preview Tabs">
+ <floater label="Script" name="all_scripts" title="[Alle scripts]"/>
+ </tab_container>
+</multi_floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_script_queue.xml b/indra/newview/skins/default/xui/nl/floater_script_queue.xml
index 18c0667036..38c227e53c 100644
--- a/indra/newview/skins/default/xui/nl/floater_script_queue.xml
+++ b/indra/newview/skins/default/xui/nl/floater_script_queue.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="queue" title="Voortgang opnieuw instellen">
- <button label="Sluiten" label_selected="Sluiten" name="close"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="queue" title="Voortgang opnieuw instellen">
+ <button label="Sluiten" label_selected="Sluiten" name="close"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_select_key.xml b/indra/newview/skins/default/xui/nl/floater_select_key.xml
index 7d29c6cc82..da97c03a6c 100644
--- a/indra/newview/skins/default/xui/nl/floater_select_key.xml
+++ b/indra/newview/skins/default/xui/nl/floater_select_key.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="modal container" title="">
- <button label="Annuleren" label_selected="Annuleren" name="Cancel"/>
- <text name="Save item as:">
- Druk een toets om te selecteren
- </text>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="modal container" title="">
+ <button label="Annuleren" label_selected="Annuleren" name="Cancel"/>
+ <text name="Save item as:">
+ Druk een toets om te selecteren
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_sell_land.xml b/indra/newview/skins/default/xui/nl/floater_sell_land.xml
index e8a65d0845..ed5cd50165 100644
--- a/indra/newview/skins/default/xui/nl/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/nl/floater_sell_land.xml
@@ -1,62 +1,61 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="sell land" title="Verkoop land">
- <text name="info_parcel_label">
- Perceel:
- </text>
- <text name="info_parcel">
- PERCEEL NAAM
- </text>
- <text name="info_size_label">
- Grootte:
- </text>
- <text name="info_size">
- [AREA] m2
- </text>
- <text name="info_action">
- Om dit perceel te verkopen:
- </text>
- <text name="price_label">
- Stel een prijs in:
- </text>
- <text name="price_text">
- Kies een geschikte prijs voor dit land
- </text>
- <text name="price_ld">
- L$
- </text>
- <text name="price_per_m">
- (L$[PER_METER] per vierkante meter)
- </text>
- <text name="sell_to_label">
- Verkoop het land aan:
- </text>
- <text name="sell_to_text">
- Kies of u aan iedereen wil verkopen of een specifieke koper.
- </text>
- <combo_box name="sell_to">
- <combo_box.item name="--selectone--" label="selecteer een --"/>
- <combo_box.item name="Anyone" label="Iedereen"/>
- <combo_box.item name="Specificuser:" label="Specifieke gebruiker:"/>
- </combo_box>
- <button label="Selecteren..." name="sell_to_select_agent"/>
- <text name="sell_objects_label">
- Verkoop de objecten samen met het land?
- </text>
- <text name="sell_objects_text">
- Overdraagbare objecten die eigendom zijn van de landeigenaar zullen van eigenaar veranderen.
- </text>
- <radio_group name="sell_objects">
- <radio_item name="no">
- Nee, behoud het eigendom van objecten
- </radio_item>
- <radio_item name="yes">
- Ja, verkoop objecten met het land
- </radio_item>
- </radio_group>
- <button label="Toon objecten" name="show_objects"/>
- <text name="nag_message_label">
- ONTHOUD: Alle verkopen zijn definitief.
- </text>
- <button label="Zet het land te koop" name="sell_btn"/>
- <button label="Annuleren" name="cancel_btn"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="sell land" title="Verkoop land">
+ <text name="info_parcel_label">
+ Perceel:
+ </text>
+ <text name="info_parcel">
+ PERCEEL NAAM
+ </text>
+ <text name="info_size_label">
+ Grootte:
+ </text>
+ <text name="info_size">
+ [AREA] m²
+ </text>
+ <text height="28" name="info_action" bottom_delta="-57">
+ Om dit perceel te
+verkopen:
+ </text>
+ <icon bottom_delta="-86" name="step_price" />
+ <text name="price_label">
+ Stel een prijs in:
+ </text>
+ <text name="price_text">
+ Kies een geschikte prijs voor dit land.
+ </text>
+ <text name="price_ld">
+ L$
+ </text>
+ <text name="price_per_m">
+ (L$[PER_METER] per vierkante meter)
+ </text>
+ <text name="sell_to_label">
+ Verkoop het land aan:
+ </text>
+ <text name="sell_to_text">
+ Kies of u aan iedereen wil verkopen of een specifieke koper.
+ </text>
+ <combo_box name="sell_to">
+ <combo_box.item name="--selectone--" label="selecteer een --"/>
+ <combo_box.item name="Anyone" label="Iedereen"/>
+ <combo_box.item name="Specificuser:" label="Specifieke gebruiker:"/>
+ </combo_box>
+ <button label="Selecteren..." name="sell_to_select_agent"/>
+ <text name="sell_objects_label">
+ Verkoop de objecten samen met het land?
+ </text>
+ <text name="sell_objects_text">
+ Overdraagbare objecten die eigendom zijn van de landeigenaar
+zullen van eigenaar veranderen.
+ </text>
+ <radio_group name="sell_objects" bottom_delta="-58">
+ <radio_item name="no" label="Nee, behoud het eigendom van objecten" />
+ <radio_item name="yes" label="Ja, verkoop objecten met het land" />
+ </radio_group>
+ <button label="Toon objecten" name="show_objects"/>
+ <text name="nag_message_label">
+ ONTHOUD: Alle verkopen zijn definitief.
+ </text>
+ <button label="Zet het land te koop" name="sell_btn"/>
+ <button label="Annuleren" name="cancel_btn"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_snapshot.xml b/indra/newview/skins/default/xui/nl/floater_snapshot.xml
index 6e3c71509e..c7174d42f3 100644
--- a/indra/newview/skins/default/xui/nl/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/nl/floater_snapshot.xml
@@ -1,85 +1,79 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Snapshot" title="Fotovoorbeeld">
- <text name="type_label">
- Fotobestemming
- </text>
- <radio_group label="Fototype" name="snapshot_type_radio">
- <radio_item name="postcard">
- Verzend via e-mail
- </radio_item>
- <radio_item name="texture">
- Opslaan in uw inventaris (L$[AMOUNT])
- </radio_item>
- <radio_item name="local">
- Opslaan op uw harde schijf
- </radio_item>
- </radio_group>
- <text name="file_size_label">
- Bestandsgrootte: [SIZE] KB
- </text>
- <button label="Ververs foto" name="new_snapshot_btn"/>
- <button label="Verzenden" name="send_btn"/>
- <button label="Opslaan (L$[AMOUNT])" name="upload_btn"/>
- <flyout_button label="Opslaan" name="save_btn" tool_tip="Afbeelding in een bestand opslaan">
- <flyout_button_item name="save_item" label="Opslaan"/>
- <flyout_button_item name="saveas_item" label="Opslaan als..."/>
- </flyout_button>
- <button label="Annuleren" name="discard_btn"/>
- <button label="Meer &gt;&gt;" name="more_btn" tool_tip="Geavanceerde opties"/>
- <button label="&lt;&lt; Minder" name="less_btn" tool_tip="Geavanceerde opties"/>
- <text name="type_label2">
- Grootte
- </text>
- <text name="format_label">
- Formaat
- </text>
- <combo_box label="Resolutie" name="postcard_size_combo">
- <combo_box.item name="CurrentWindow" label="Huidig venster"/>
- <combo_box.item name="640x480" label="640x480"/>
- <combo_box.item name="800x600" label="800x600"/>
- <combo_box.item name="1024x768" label="1024x768"/>
- <combo_box.item name="Custom" label="Aangepast"/>
- </combo_box>
- <combo_box label="Resolutie" name="texture_size_combo">
- <combo_box.item name="CurrentWindow" label="Huidig venster"/>
- <combo_box.item name="Small(128x128)" label="Klein (128x128)"/>
- <combo_box.item name="Medium(256x256)" label="Middel (256x256)"/>
- <combo_box.item name="Large(512x512)" label="Groot (512x512)"/>
- <combo_box.item name="Custom" label="Aangepast"/>
- </combo_box>
- <combo_box label="Resolutie" name="local_size_combo">
- <combo_box.item name="CurrentWindow" label="Huidig venster"/>
- <combo_box.item name="320x240" label="320x240"/>
- <combo_box.item name="640x480" label="640x480"/>
- <combo_box.item name="800x600" label="800x600"/>
- <combo_box.item name="1024x768" label="1024x768"/>
- <combo_box.item name="1280x1024" label="1280x1024"/>
- <combo_box.item name="1600x1200" label="1600x1200"/>
- <combo_box.item name="Custom" label="Aangepast"/>
- </combo_box>
- <combo_box label="Formaat" name="local_format_combo">
- <combo_box.item name="PNG" label="PNG"/>
- <combo_box.item name="JPEG" label="JPEG"/>
- <combo_box.item name="BMP" label="BMP"/>
- </combo_box>
- <spinner label="Breedte" name="snapshot_width"/>
- <spinner label="Hoogte" name="snapshot_height"/>
- <check_box label="Beperk verhoudingen" name="keep_aspect_check"/>
- <slider label="Afbeeldingkwaliteit" name="image_quality_slider"/>
- <text name="layer_type_label">
- Vastleggen:
- </text>
- <combo_box label="Afbeeldingslagen" name="layer_types">
- <combo_box.item name="Colors" label="Kleuren"/>
- <combo_box.item name="Depth" label="Diepte"/>
- <combo_box.item name="ObjectMattes" label="Object matheid"/>
- </combo_box>
- <check_box label="Toon interface in foto" name="ui_check"/>
- <check_box label="Toon HUD objecten in foto" name="hud_check"/>
- <check_box label="Open houden na opslaan" name="keep_open_check"/>
- <check_box label="Frame bevriezen (volledig scherm voorbeeld)" name="freeze_frame_check"/>
- <check_box label="Automatisch verversen" name="auto_snapshot_check"/>
- <string name="unknown">
- onbekend
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Snapshot" title="Fotovoorbeeld">
+ <text name="type_label">
+ Fotobestemming
+ </text>
+ <radio_group label="Fototype" name="snapshot_type_radio">
+ <radio_item name="postcard" label="Verzend via e-mail" />
+ <radio_item name="texture" label="Opslaan in uw inventaris (L$[AMOUNT])" />
+ <radio_item name="local" label="Opslaan op uw harde schijf" />
+ </radio_group>
+ <text name="file_size_label">
+ Bestandsgrootte: [SIZE] KB
+ </text>
+ <button label="Ververs foto" name="new_snapshot_btn"/>
+ <button label="Verzenden" name="send_btn"/>
+ <button label="Opslaan (L$[AMOUNT])" name="upload_btn"/>
+ <flyout_button label="Opslaan" name="save_btn" tool_tip="Afbeelding in een bestand opslaan">
+ <flyout_button_item name="save_item" label="Opslaan"/>
+ <flyout_button_item name="saveas_item" label="Opslaan als..."/>
+ </flyout_button>
+ <button label="Annuleren" name="discard_btn"/>
+ <button label="Meer &gt;&gt;" name="more_btn" tool_tip="Geavanceerde opties"/>
+ <button label="&lt;&lt; Minder" name="less_btn" tool_tip="Geavanceerde opties"/>
+ <text name="type_label2">
+ Grootte
+ </text>
+ <text name="format_label">
+ Formaat
+ </text>
+ <combo_box label="Resolutie" name="postcard_size_combo">
+ <combo_box.item name="CurrentWindow" label="Huidig venster"/>
+ <combo_box.item name="640x480" label="640x480"/>
+ <combo_box.item name="800x600" label="800x600"/>
+ <combo_box.item name="1024x768" label="1024x768"/>
+ <combo_box.item name="Custom" label="Aangepast"/>
+ </combo_box>
+ <combo_box label="Resolutie" name="texture_size_combo">
+ <combo_box.item name="CurrentWindow" label="Huidig venster"/>
+ <combo_box.item name="Small(128x128)" label="Klein (128x128)"/>
+ <combo_box.item name="Medium(256x256)" label="Middel (256x256)"/>
+ <combo_box.item name="Large(512x512)" label="Groot (512x512)"/>
+ <combo_box.item name="Custom" label="Aangepast"/>
+ </combo_box>
+ <combo_box label="Resolutie" name="local_size_combo">
+ <combo_box.item name="CurrentWindow" label="Huidig venster"/>
+ <combo_box.item name="320x240" label="320x240"/>
+ <combo_box.item name="640x480" label="640x480"/>
+ <combo_box.item name="800x600" label="800x600"/>
+ <combo_box.item name="1024x768" label="1024x768"/>
+ <combo_box.item name="1280x1024" label="1280x1024"/>
+ <combo_box.item name="1600x1200" label="1600x1200"/>
+ <combo_box.item name="Custom" label="Aangepast"/>
+ </combo_box>
+ <combo_box label="Formaat" name="local_format_combo">
+ <combo_box.item name="PNG" label="PNG"/>
+ <combo_box.item name="JPEG" label="JPEG"/>
+ <combo_box.item name="BMP" label="BMP"/>
+ </combo_box>
+ <spinner label="Breedte" name="snapshot_width" label_width="48" width="100"/>
+ <spinner label="Hoogte" name="snapshot_height" label_width="41" width="95" left="114"/>
+ <check_box label="Beperk verhoudingen" name="keep_aspect_check"/>
+ <slider label="Afbeeldingkwaliteit" name="image_quality_slider"/>
+ <text name="layer_type_label" width="100">
+ Vastleggen:
+ </text>
+ <combo_box label="Afbeeldingslagen" name="layer_types" width="130" left="76">
+ <combo_box.item name="Colors" label="Kleuren"/>
+ <combo_box.item name="Depth" label="Diepte"/>
+ <combo_box.item name="ObjectMattes" label="Object matheid"/>
+ </combo_box>
+ <check_box label="Toon interface in foto" name="ui_check"/>
+ <check_box label="Toon HUD objecten in foto" name="hud_check"/>
+ <check_box label="Open houden na opslaan" name="keep_open_check"/>
+ <check_box label="Frame bevriezen" name="freeze_frame_check"/>
+ <check_box label="Automatisch verversen" name="auto_snapshot_check"/>
+ <string name="unknown">
+ onbekend
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_statistics.xml b/indra/newview/skins/default/xui/nl/floater_statistics.xml
new file mode 100644
index 0000000000..b899c32a56
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/floater_statistics.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="stats floater" title="Statistieken"/>
diff --git a/indra/newview/skins/default/xui/nl/floater_telehub.xml b/indra/newview/skins/default/xui/nl/floater_telehub.xml
index 88f997f327..b1fc80cf3c 100644
--- a/indra/newview/skins/default/xui/nl/floater_telehub.xml
+++ b/indra/newview/skins/default/xui/nl/floater_telehub.xml
@@ -1,25 +1,25 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="telehub" title="Telehub">
- <text name="status_text_connected">
- Telehub verbonden met object [OBJECT]
- </text>
- <text name="status_text_not_connected">
- Geen telehub verbonden.
- </text>
- <text name="help_text_connected">
- Om te verwijderen, klik Verbinding verbreken
- </text>
- <text name="help_text_not_connected">
- Selecteer objecten klik Verbind telehub
- </text>
- <button label="Verbind telehub" name="connect_btn"/>
- <button label="Verbinding verbreken" name="disconnect_btn"/>
- <text name="spawn_points_text">
- Spawnpunten (posities, niet objecten):
- </text>
- <button label="Spawn toevoegen" name="add_spawn_point_btn"/>
- <button label="Verwijder Spawn" name="remove_spawn_point_btn"/>
- <text name="spawn_point_help">
- Selecteer object en klik Toevoegen om positie te specificeren. U kunt het object daarna verplaatsen of verwijderen. Posities zijn relatief ten opzichte van het middelpunt van de telehub. Selecteer een item in de lijst om de positie in de wereld te tonen.
- </text>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="telehub" title="Telehub">
+ <text name="status_text_connected">
+ Telehub verbonden met object [OBJECT]
+ </text>
+ <text name="status_text_not_connected">
+ Geen telehub verbonden.
+ </text>
+ <text name="help_text_connected">
+ Om te verwijderen, klik Verbinding verbreken
+ </text>
+ <text name="help_text_not_connected">
+ Selecteer objecten klik Verbind telehub
+ </text>
+ <button label="Verbind telehub" name="connect_btn"/>
+ <button label="Verbinding verbreken" name="disconnect_btn"/>
+ <text name="spawn_points_text">
+ Spawnpunten (posities, niet objecten):
+ </text>
+ <button label="Spawn toevoegen" name="add_spawn_point_btn"/>
+ <button label="Verwijder Spawn" name="remove_spawn_point_btn"/>
+ <text name="spawn_point_help">
+ Selecteer object en klik Toevoegen om positie te specificeren. U kunt het object daarna verplaatsen of verwijderen. Posities zijn relatief ten opzichte van het middelpunt van de telehub. Selecteer een item in de lijst om de positie in de wereld te tonen.
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/nl/floater_texture_ctrl.xml
index 8cdde0231a..440a31097d 100644
--- a/indra/newview/skins/default/xui/nl/floater_texture_ctrl.xml
+++ b/indra/newview/skins/default/xui/nl/floater_texture_ctrl.xml
@@ -1,23 +1,23 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="texture picker" title="Kies: Textuur">
- <string name="choose_picture">
- Klik om een afbeelding te kiezen
- </string>
- <text name="Multiple">
- Meerdere
- </text>
- <text name="unknown">
- Afmetingen: [DIMENSIONS]
- </text>
- <button label="Standaard" label_selected="Standaard" name="Default"/>
- <button label="Geen" label_selected="Geen" name="None"/>
- <button label="Blanco" label_selected="Blanco" name="Blank"/>
- <check_box label="Toon mappen" name="show_folders_check"/>
- <search_editor label="Type hier om te zoeken" name="inventory search editor"/>
- <check_box label="Meteen toepassen" name="apply_immediate_check"/>
- <button label="Annuleren" label_selected="Annuleren" name="Cancel"/>
- <button label="Selecteren" label_selected="Selecteren" name="Select"/>
- <string name="pick title">
- Kies:
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="texture picker" title="Kies: Textuur">
+ <string name="choose_picture">
+ Klik om een afbeelding te kiezen
+ </string>
+ <text name="Multiple">
+ Meerdere
+ </text>
+ <text name="unknown">
+ Afmetingen: [DIMENSIONS]
+ </text>
+ <button label="Standaard" label_selected="Standaard" name="Default"/>
+ <button label="Geen" label_selected="Geen" name="None"/>
+ <button label="Blanco" label_selected="Blanco" name="Blank"/>
+ <check_box label="Toon mappen" name="show_folders_check"/>
+ <search_editor label="Type hier om te zoeken" name="inventory search editor"/>
+ <check_box label="Meteen toepassen" name="apply_immediate_check"/>
+ <button label="Annuleren" label_selected="Annuleren" name="Cancel"/>
+ <button label="Selecteren" label_selected="Selecteren" name="Select"/>
+ <string name="pick title">
+ Kies:
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_tools.xml b/indra/newview/skins/default/xui/nl/floater_tools.xml
index 9e542799f0..c7f99195dd 100644
--- a/indra/newview/skins/default/xui/nl/floater_tools.xml
+++ b/indra/newview/skins/default/xui/nl/floater_tools.xml
@@ -1,488 +1,620 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="toolbox floater" title="">
- <button label="" label_selected="" name="button focus" tool_tip="Focus"/>
- <button label="" label_selected="" name="button move" tool_tip="Verplaats"/>
- <button label="" label_selected="" name="button edit" tool_tip="Bewerk"/>
- <button label="" label_selected="" name="button create" tool_tip="Maak"/>
- <button label="" label_selected="" name="button land" tool_tip="Land"/>
- <check_box label="Zoom" name="radio zoom"/>
- <check_box label="Draaien (Ctrl)" name="radio orbit"/>
- <check_box label="Verplaatsen (Ctrl-Shift)" name="radio pan"/>
- <check_box label="Verplaatsen" name="radio move"/>
- <check_box label="Optillen (Ctrl)" name="radio lift"/>
- <check_box label="Draaien (Ctrl-Shift)" name="radio spin"/>
- <check_box label="Positie" name="radio position"/>
- <check_box label="Draaien (Ctrl)" name="radio rotate"/>
- <check_box label="Uitrekken (Ctrl-Shift)" name="radio stretch"/>
- <check_box label="Selecteer textuur" name="radio select face"/>
- <check_box label="Bewerk gekoppelde onderdelen" name="checkbox edit linked parts"/>
- <text name="text ruler mode">
- Liniaal modus
- </text>
- <combo_box name="combobox grid mode">
- <combo_box.item name="World" label="Wereld"/>
- <combo_box.item name="Local" label="Lokaal"/>
- <combo_box.item name="Reference" label="Referentie"/>
- </combo_box>
- <check_box label="Beide zijden uitrekken" name="checkbox uniform"/>
- <check_box label="Texturen uitrekken" name="checkbox stretch textures"/>
- <check_box label="Gebruik grid" name="checkbox snap to grid"/>
- <button label="Opties..." label_selected="Opties..." name="Options..."/>
- <text name="text status">
- Sleep om te verplaatsen, Shift-slepen om te kopiëren
- </text>
- <button label="" label_selected="" name="ToolCube" tool_tip="Kubus"/>
- <button label="" label_selected="" name="ToolPrism" tool_tip="Prisma"/>
- <button label="" label_selected="" name="ToolPyramid" tool_tip="Piramide"/>
- <button label="" label_selected="" name="ToolTetrahedron" tool_tip="Tetrahedron"/>
- <button label="" label_selected="" name="ToolCylinder" tool_tip="Cylinder"/>
- <button label="" label_selected="" name="ToolHemiCylinder" tool_tip="Halve cilinder"/>
- <button label="" label_selected="" name="ToolCone" tool_tip="Kegel"/>
- <button label="" label_selected="" name="ToolHemiCone" tool_tip="Halve kegel"/>
- <button label="" label_selected="" name="ToolSphere" tool_tip="Bol"/>
- <button label="" label_selected="" name="ToolHemiSphere" tool_tip="Halve bol"/>
- <button label="" label_selected="" name="ToolTorus" tool_tip="Torus"/>
- <button label="" label_selected="" name="ToolTube" tool_tip="Buis"/>
- <button label="" label_selected="" name="ToolRing" tool_tip="Ring"/>
- <button label="" label_selected="" name="ToolTree" tool_tip="Boom"/>
- <button label="" label_selected="" name="ToolGrass" tool_tip="Gras"/>
- <check_box label="Behoud geselecteerde gereedschap" name="checkbox sticky"/>
- <check_box label="Kopieer selectie" name="checkbox copy selection"/>
- <check_box label="Middelpunt kopie" name="checkbox copy centers"/>
- <check_box label="Roteer kopie" name="checkbox copy rotates"/>
- <check_box label="Selecteer land" name="radio select land"/>
- <check_box label="Land vlakmaken" name="radio flatten"/>
- <check_box label="Land verhogen" name="radio raise"/>
- <check_box label="Land verlagen" name="radio lower"/>
- <check_box label="Land egaliseren" name="radio smooth"/>
- <check_box label="Land opruwen" name="radio noise"/>
- <check_box label="Herstel land" name="radio revert"/>
- <combo_box name="combobox brush size">
- <combo_box.item name="Small" label="Klein"/>
- <combo_box.item name="Medium" label="Medium"/>
- <combo_box.item name="Large" label="Groot"/>
- </combo_box>
- <text name="Strength:">
- Sterkte:
- </text>
- <button label="Toepassen op selectie" label_selected="Toepassen op selectie" name="button apply to selection" tool_tip="Wijzig geselecteerd land"/>
- <check_box label="Toon eigenaren" name="checkbox show owners"/>
- <button label="Meer &gt;&gt;" name="button more" tool_tip="Geavanceerde opties"/>
- <button label="&lt;&lt; Minder" name="button less" tool_tip="Geavanceerde opties"/>
- <tab_container name="Object Info Tabs">
- <panel label="Algemeen" name="General">
- <text name="Name:">
- Naam:
- </text>
- <text name="Description:">
- Omschrijving:
- </text>
- <text name="Creator:">
- Maker:
- </text>
- <text name="Creator Name">
- Thrax Linden
- </text>
- <button label="Profiel..." label_selected="Profiel..." name="button creator profile"/>
- <text name="Owner:">
- Eigenaar
- </text>
- <text name="Owner Name">
- Thrax Linden
- </text>
- <button label="Profiel..." label_selected="Profiel..." name="button owner profile"/>
- <text name="Group:">
- Groep:
- </text>
- <text name="Group Name Proxy">
- De Lindens
- </text>
- <button label="Instellen..." label_selected="Instellen..." name="button set group"/>
- <text name="prim info">
- 1 Object, 1 Primitief
- </text>
- <text name="Permissions:">
- Permissies:
- </text>
- <text name="perm_modify">
- U kunt dit object wijzigen
- </text>
- <check_box label="Deel met groep" name="checkbox share with group" tool_tip="Groepsleden toestaan om te verplaatsen, wijzigen, kopiëren en verwijderen."/>
- <string name="text deed continued">
- Overdragen...
- </string>
- <string name="text deed">
- Overdragen
- </string>
- <button label="Overdragen..." label_selected="Overdragen..." name="button deed" tool_tip="Groepgedeelde objecten kunnen door een groepofficier worden overgedragen"/>
- <check_box label="Iedereen mag verplaatsen" name="checkbox allow everyone move"/>
- <check_box label="Iedereen mag kopiëren" name="checkbox allow everyone copy"/>
- <check_box label="Toon in zoeken" name="search_check" tool_tip="Laat mensen dit object zien in zoekresultaten"/>
- <check_box label="Te koop" name="checkbox for sale"/>
- <text name="Cost">
- Prijs: L$
- </text>
- <radio_group name="sale type">
- <radio_item name="Original">
- Origineel
- </radio_item>
- <radio_item name="Copy">
- Kopie
- </radio_item>
- <radio_item name="Contents">
- Inhoud
- </radio_item>
- </radio_group>
- <text name="Next owner can:">
- Volgende eigenaar kan:
- </text>
- <check_box label="Wijzigen" name="checkbox next owner can modify"/>
- <check_box label="Kopiëren" name="checkbox next owner can copy"/>
- <check_box label="Verkopen/weggeven" name="checkbox next owner can transfer"/>
- <text name="label click action">
- Wanneer links-geklikt:
- </text>
- <combo_box name="clickaction">
- <combo_box.item name="Touch/grab(default)" label="Aanraken/pakken (standaard)"/>
- <combo_box.item name="Sitonobject" label="Zit op object"/>
- <combo_box.item name="Buyobject" label="Koop object"/>
- <combo_box.item name="Payobject" label="Betaal object"/>
- <combo_box.item name="Open" label="Open"/>
- <combo_box.item name="Play" label="Perceelmedia afspelen"/>
- <combo_box.item name="Opemmedia" label="Perceelmedia openen"/>
- </combo_box>
- <text name="B:">
- B:
- </text>
- <text name="O:">
- O:
- </text>
- <text name="G:">
- G:
- </text>
- <text name="E:">
- E:
- </text>
- <text name="N:">
- N:
- </text>
- <text name="F:">
- F:
- </text>
- <string name="text modify info 1">
- U kunt dit object wijzigen
- </string>
- <string name="text modify info 2">
- U kunt deze objecten wijzigen
- </string>
- <string name="text modify info 3">
- U kunt dit object niet wijzigen
- </string>
- <string name="text modify info 4">
- U kunt deze objecten niet wijzigen
- </string>
- <string name="text modify warning">
- U moet het hele object selecteren om permissies in te stellen
- </string>
- <string name="Cost Default">
- Prijs: L$
- </string>
- <string name="Cost Total">
- Totale Prijs: L$
- </string>
- <string name="Cost Per Unit">
- Prijs per: L$
- </string>
- <string name="Cost Mixed">
- Gemengde prijs
- </string>
- <string name="Sale Mixed">
- Gemengde verkoop
- </string>
- </panel>
- <panel label="Object" name="Object">
- <text name="select_single">
- Selecteer slechts één primitief om parameters te bewerken
- </text>
- <text name="edit_object">
- Bewerk object parameters:
- </text>
- <check_box label="Vergrendeld" name="checkbox locked" tool_tip="Voorkomt het verplaatsen of verwijderen van objecten. Regelmatig handig tijdens het bouwen om onbedoelde bewerkingen te voorkomen."/>
- <check_box label="Fysiek" name="Physical Checkbox Ctrl" tool_tip="Staat toe dat objecten geduwd worden en worden beïnvloed door de zwaartekracht"/>
- <check_box label="Tijdelijk" name="Temporary Checkbox Ctrl" tool_tip="Zorgt ervoor dat het object 1 minuut na creatie wordt verwijderd."/>
- <check_box label="Fantoom" name="Phantom Checkbox Ctrl" tool_tip="Zorgt ervoor dat objecten niet kunnen botsen met andere objecten of avatars"/>
- <text name="label position">
- Positie (meters)
- </text>
- <spinner label="X" name="Pos X"/>
- <spinner label="Y" name="Pos Y"/>
- <spinner label="Z" name="Pos Z"/>
- <text name="label size">
- Grootte (meters)
- </text>
- <spinner label="X" name="Scale X"/>
- <spinner label="Y" name="Scale Y"/>
- <spinner label="Z" name="Scale Z"/>
- <text name="label rotation">
- Rotatie (graden)
- </text>
- <spinner label="X" name="Rot X"/>
- <spinner label="Y" name="Rot Y"/>
- <spinner label="Z" name="Rot Z"/>
- <text name="label material">
- Materiaal
- </text>
- <combo_box name="material">
- <combo_box.item name="Stone" label="Steen"/>
- <combo_box.item name="Metal" label="Metaal"/>
- <combo_box.item name="Glass" label="Glas"/>
- <combo_box.item name="Wood" label="Hout"/>
- <combo_box.item name="Flesh" label="Vlees"/>
- <combo_box.item name="Plastic" label="Plastic"/>
- <combo_box.item name="Rubber" label="Rubber"/>
- </combo_box>
- <text name="label basetype">
- Bouwbloktype
- </text>
- <combo_box name="comboBaseType">
- <combo_box.item name="Box" label="Kubus"/>
- <combo_box.item name="Cylinder" label="Cilinder"/>
- <combo_box.item name="Prism" label="Prisma"/>
- <combo_box.item name="Sphere" label="Bol"/>
- <combo_box.item name="Torus" label="Torus"/>
- <combo_box.item name="Tube" label="Buis"/>
- <combo_box.item name="Ring" label="Ring"/>
- <combo_box.item name="Sculpted" label="Sculpted"/>
- </combo_box>
- <text name="text cut">
- Uitsnede begin en einde
- </text>
- <spinner label="B" name="cut begin"/>
- <spinner label="E" name="cut end"/>
- <text name="text hollow">
- Hol
- </text>
- <text name="text skew">
- Verschuiven
- </text>
- <text name="Hollow Shape">
- Holtevorm
- </text>
- <combo_box name="hole">
- <combo_box.item name="Default" label="Standaard"/>
- <combo_box.item name="Circle" label="Cirkel"/>
- <combo_box.item name="Square" label="Vierkant"/>
- <combo_box.item name="Triangle" label="Driehoek"/>
- </combo_box>
- <text name="text twist">
- Verdraai begin en einde
- </text>
- <spinner label="B" name="Twist Begin"/>
- <spinner label="E" name="Twist End"/>
- <text name="scale_taper">
- Knijpen
- </text>
- <text name="scale_hole">
- Gatgrootte
- </text>
- <spinner label="X" name="Taper Scale X"/>
- <spinner label="Y" name="Taper Scale Y"/>
- <text name="text topshear">
- Bovenkant verschuiven
- </text>
- <spinner label="X" name="Shear X"/>
- <spinner label="Y" name="Shear Y"/>
- <text name="advanced_cut">
- Profielsnede begin en einde
- </text>
- <text name="advanced_dimple">
- Deuk begin en einde
- </text>
- <spinner label="B" name="Path Limit Begin"/>
- <spinner label="E" name="Path Limit End"/>
- <text name="text taper2">
- Knijpen
- </text>
- <spinner label="X" name="Taper X"/>
- <spinner label="Y" name="Taper Y"/>
- <text name="text radius delta">
- Straal
- </text>
- <text name="text revolutions">
- Omwentelingen
- </text>
- <texture_picker label="Sculpt textuur" name="sculpt texture control" tool_tip="Klik om een afbeelding te kiezen"/>
- <check_box label="Spiegelen" name="sculpt mirror control" tool_tip="Spiegelt de sculpted prim om de X-as"/>
- <check_box label="Binnenstebuiten" name="sculpt invert control" tool_tip="Inverteert de normalen van de sculpted prim, zodat deze binnenstebuiten verschijnt."/>
- <text name="label sculpt type">
- Hechtingstype
- </text>
- <combo_box name="sculpt type control">
- <combo_box.item name="None" label="none)"/>
- <combo_box.item name="Sphere" label="Bol"/>
- <combo_box.item name="Torus" label="Torus"/>
- <combo_box.item name="Plane" label="Vlak"/>
- <combo_box.item name="Cylinder" label="Cilinder"/>
- </combo_box>
- </panel>
- <panel label="Kenmerken" name="Features">
- <text name="select_single">
- Selecteer slechts één primitief om kenmerken te bewerken
- </text>
- <text name="edit_object">
- Bewerk objectkenmerken:
- </text>
- <check_box label="Flexibiliteit" name="Flexible1D Checkbox Ctrl" tool_tip="Staat toe dat objecten kunnen buigen om de Z-as. (alleen aan de client kant)"/>
- <spinner label="Zachtheid" name="FlexNumSections"/>
- <spinner label="Zwaartekracht" name="FlexGravity"/>
- <spinner label="Slepen" name="FlexFriction"/>
- <spinner label="Wind" name="FlexWind"/>
- <spinner label="Spanning" name="FlexTension"/>
- <spinner label="Kracht X" name="FlexForceX"/>
- <spinner label="Kracht Y" name="FlexForceY"/>
- <spinner label="Kracht Z" name="FlexForceZ"/>
- <check_box label="Licht" name="Light Checkbox Ctrl" tool_tip="Zorgt dat het object licht uitstraalt"/>
- <text name="label color">
- Kleur
- </text>
- <color_swatch label="" name="colorswatch" tool_tip="Klik om kleurkiezer to openen"/>
- <spinner label="Intensiteit" name="Light Intensity"/>
- <spinner label="Straal" name="Light Radius"/>
- <spinner label="Uitstraling" name="Light Falloff"/>
- </panel>
- <panel label="Textuur" name="Texture">
- <texture_picker label="Textuur" name="texture control" tool_tip="Klik om een afbeelding te kiezen"/>
- <color_swatch label="Kleur" name="colorswatch" tool_tip="Klik om kleurkiezer to openen"/>
- <text name="color trans">
- Transparantie %
- </text>
- <text name="glow label">
- Gloed
- </text>
- <check_box label="Volledige helderheid" name="checkbox fullbright"/>
- <text name="tex gen">
- Mapping
- </text>
- <combo_box name="combobox texgen">
- <combo_box.item name="Default" label="Standaard"/>
- <combo_box.item name="Planar" label="Vlak"/>
- </combo_box>
- <text name="label shininess">
- Glans
- </text>
- <combo_box name="combobox shininess">
- <combo_box.item name="None" label="Geen"/>
- <combo_box.item name="Low" label="Laag"/>
- <combo_box.item name="Medium" label="Middel"/>
- <combo_box.item name="High" label="Hoog"/>
- </combo_box>
- <text name="label bumpiness">
- Bumpiness
- </text>
- <combo_box name="combobox bumpiness">
- <combo_box.item name="None" label="Geen"/>
- <combo_box.item name="Brightness" label="Helderheid"/>
- <combo_box.item name="Darkness" label="Donkerheid"/>
- <combo_box.item name="woodgrain" label="Houtnerf"/>
- <combo_box.item name="bark" label="Schors"/>
- <combo_box.item name="bricks" label="Stenen"/>
- <combo_box.item name="checker" label="Dambord"/>
- <combo_box.item name="concrete" label="Beton"/>
- <combo_box.item name="crustytile" label="gebarsten tegels"/>
- <combo_box.item name="cutstone" label="natuursteen"/>
- <combo_box.item name="discs" label="schijven"/>
- <combo_box.item name="gravel" label="grind"/>
- <combo_box.item name="petridish" label="petrischaal"/>
- <combo_box.item name="siding" label="wandpaneel"/>
- <combo_box.item name="stonetile" label="plavuizen"/>
- <combo_box.item name="stucco" label="stucwerk"/>
- <combo_box.item name="suction" label="zuignappen"/>
- <combo_box.item name="weave" label="weven"/>
- </combo_box>
- <text name="tex scale">
- Herhalingen per zijde
- </text>
- <spinner label="Horizontaal (U)" name="TexScaleU"/>
- <check_box label="Omkeren" name="checkbox flip s"/>
- <spinner label="Verticaal (V)" name="TexScaleV"/>
- <check_box label="Omkeren" name="checkbox flip t"/>
- <text name="tex rotate">
- Rotatie (graden)
- </text>
- <string name="string repeats per meter">
- Herhalingen per meter
- </string>
- <string name="string repeats per face">
- Herhalingen per zijde
- </string>
- <text name="rpt">
- Herhalingen per meter
- </text>
- <button label="Toepassen" label_selected="Toepassen" name="button apply"/>
- <text name="tex offset">
- Verplaatsing
- </text>
- <spinner label="Horizontaal (U)" name="TexOffsetU"/>
- <spinner label="Verticaal (V)" name="TexOffsetV"/>
- <text name="textbox autofix">
- Mediatextuur uitlijnen (moet eerst laden)
- </text>
- <button label="Uitlijnen" label_selected="Uitlijnen" name="button align"/>
- </panel>
- <panel label="Inhoud" name="Contents">
- <button label="Nieuw script..." label_selected="Nieuw script..." name="button new script"/>
- </panel>
- </tab_container>
- <panel name="land info panel">
- <text name="label_area_price">
- Prijs: L$[PRICE] voor [AREA] m2.
- </text>
- <text name="label_area">
- Gebied: [AREA] m2.
- </text>
- <button label="Koop land..." label_selected="Koop land..." name="button buy land"/>
- <button label="Land Afstaan..." label_selected="Land Afstaan..." name="button abandon land"/>
- <button label="Opdelen..." label_selected="Opdelen..." name="button subdivide land"/>
- <button label="Samenvoegen..." label_selected="Samenvoegen..." name="button join land"/>
- <button label="Over land..." label_selected="Over land..." name="button about land"/>
- </panel>
- <string name="status_rotate">
- Sleep de gekleurde banden om het object te roteren
- </string>
- <string name="status_scale">
- Klik en sleep om de geselecteerde zijde uit te rekken.
- </string>
- <string name="status_move">
- Sleep om te verplaatsen, Shift-slepen om te kopiëren
- </string>
- <string name="status_modifyland">
- Klik en houd vast om land te wijzigen
- </string>
- <string name="status_camera">
- Klik en sleep om beeld te wijzigen
- </string>
- <string name="status_grab">
- Sleep om objecten te verplaatsen, Ctrl om op te tillen, Ctrl-Shift om te draaien
- </string>
- <string name="status_place">
- Klik in de wereld om te creëren, shift-klik om te selecteren
- </string>
- <string name="status_selectland">
- Klik en sleep om land te selecteren
- </string>
- <string name="grid_screen_text">
- Scherm
- </string>
- <string name="grid_local_text">
- Lokaal
- </string>
- <string name="grid_world_text">
- Wereld
- </string>
- <string name="grid_reference_text">
- Referentie
- </string>
- <string name="grid_attachment_text">
- Bevestiging
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="toolbox floater" title="">
+ <button label="" label_selected="" name="button focus" tool_tip="Focus"/>
+ <button label="" label_selected="" name="button move" tool_tip="Verplaats"/>
+ <button label="" label_selected="" name="button edit" tool_tip="Bewerk"/>
+ <button label="" label_selected="" name="button create" tool_tip="Maak"/>
+ <button label="" label_selected="" name="button land" tool_tip="Land"/>
+ <check_box label="Zoom" name="radio zoom"/>
+ <check_box label="Draaien (Ctrl)" name="radio orbit"/>
+ <check_box label="Verplaatsen (Ctrl-Shift)" name="radio pan"/>
+ <check_box label="Verplaatsen" name="radio move"/>
+ <check_box label="Optillen (Ctrl)" name="radio lift"/>
+ <check_box label="Draaien (Ctrl-Shift)" name="radio spin"/>
+ <check_box label="Positie" name="radio position"/>
+ <check_box label="Draaien (Ctrl)" name="radio rotate"/>
+ <check_box label="Uitrekken (Ctrl-Shift)" name="radio stretch"/>
+ <check_box label="Selecteer textuur" name="radio select face"/>
+ <check_box label="Bewerk gekoppelde onderdelen" name="checkbox edit linked parts"/>
+ <text name="text ruler mode">
+ Liniaal:
+ </text>
+ <combo_box name="combobox grid mode">
+ <combo_item name="World">
+ Wereld
+ </combo_item>
+ <combo_item name="Local">
+ Lokaal
+ </combo_item>
+ <combo_item name="Reference">
+ Referentie
+ </combo_item>
+ </combo_box>
+ <check_box label="Beide zijden uitrekken" name="checkbox uniform"/>
+ <check_box label="Texturen uitrekken" name="checkbox stretch textures"/>
+ <check_box label="Gebruik grid" name="checkbox snap to grid"/>
+ <button label="Opties..." label_selected="Opties..." name="Options..."/>
+ <text name="text status">
+ Sleep om te verplaatsen, Shift-slepen om te kopiëren
+ </text>
+ <button label="" label_selected="" name="ToolCube" tool_tip="Kubus"/>
+ <button label="" label_selected="" name="ToolPrism" tool_tip="Prisma"/>
+ <button label="" label_selected="" name="ToolPyramid" tool_tip="Piramide"/>
+ <button label="" label_selected="" name="ToolTetrahedron" tool_tip="Tetrahedron"/>
+ <button label="" label_selected="" name="ToolCylinder" tool_tip="Cylinder"/>
+ <button label="" label_selected="" name="ToolHemiCylinder" tool_tip="Halve cilinder"/>
+ <button label="" label_selected="" name="ToolCone" tool_tip="Kegel"/>
+ <button label="" label_selected="" name="ToolHemiCone" tool_tip="Halve kegel"/>
+ <button label="" label_selected="" name="ToolSphere" tool_tip="Bol"/>
+ <button label="" label_selected="" name="ToolHemiSphere" tool_tip="Halve bol"/>
+ <button label="" label_selected="" name="ToolTorus" tool_tip="Torus"/>
+ <button label="" label_selected="" name="ToolTube" tool_tip="Buis"/>
+ <button label="" label_selected="" name="ToolRing" tool_tip="Ring"/>
+ <button label="" label_selected="" name="ToolTree" tool_tip="Boom"/>
+ <button label="" label_selected="" name="ToolGrass" tool_tip="Gras"/>
+ <check_box label="Behoud geselecteerd" name="checkbox sticky"/>
+ <check_box label="Kopiëer Selectie" name="checkbox copy selection"/>
+ <check_box label="Middelpunt" name="checkbox copy centers"/>
+ <check_box label="Roteer" name="checkbox copy rotates"/>
+ <check_box label="Selecteer land" name="radio select land"/>
+ <check_box label="Vlak maken" name="radio flatten"/>
+ <check_box label="Verhogen" name="radio raise"/>
+ <check_box label="Verlagen" name="radio lower"/>
+ <check_box label="Egaliseren" name="radio smooth"/>
+ <check_box label="Opruwen" name="radio noise"/>
+ <check_box label="Herstellen" name="radio revert"/>
+ <button label="Toepassen" label_selected="Toepassen" name="button apply to selection" tool_tip="Wijzig geselecteerd land"/>
+ <text name="Bulldozer:">
+ Bulldozer:
+ </text>
+ <text name="Dozer Size:">
+ Grootte
+ </text>
+ <text name="Strength:">
+ Sterkte
+ </text>
+ <text name="obj_count">
+ Geselecteerde objecten: [COUNT]
+ </text>
+ <text name="prim_count">
+ primitieven: [COUNT]
+ </text>
+ <tab_container name="Object Info Tabs">
+ <panel label="Algemeen" name="General">
+ <text name="Name:">
+ Naam:
+ </text>
+ <text name="Description:">
+ Omschrijving:
+ </text>
+ <text name="Creator:">
+ Maker:
+ </text>
+ <text name="Creator Name">
+ Thrax Linden
+ </text>
+ <button label="Profiel..." label_selected="Profiel..." name="button creator profile"/>
+ <text name="Owner:">
+ Eigenaar
+ </text>
+ <text name="Owner Name">
+ Thrax Linden
+ </text>
+ <button label="Profiel..." label_selected="Profiel..." name="button owner profile"/>
+ <text name="Group:">
+ Groep:
+ </text>
+ <text name="Group Name Proxy">
+ De Lindens
+ </text>
+ <button label="Instellen..." label_selected="Instellen..." name="button set group"/>
+ <text name="Permissions:">
+ Permissies:
+ </text>
+ <text name="perm_modify">
+ U kunt dit object wijzigen
+ </text>
+ <check_box label="Deel met groep" name="checkbox share with group" tool_tip="Alle leden van de ingestelde groep toestaan om te delen en uw permissies voor dit object te gebruiken. U moet &apos;Overdragen&apos; om rolbeperkingen in te schakelen."/>
+ <string name="text deed continued">
+ Overdragen...
+ </string>
+ <string name="text deed">
+ Overdragen
+ </string>
+ <button label="Overdragen..." label_selected="Overdragen..." name="button deed" tool_tip="Groepgedeelde objecten kunnen door een groepofficier worden overgedragen"/>
+ <check_box label="Iedereen mag verplaatsen" name="checkbox allow everyone move"/>
+ <check_box label="Iedereen mag kopiëren" name="checkbox allow everyone copy"/>
+ <check_box label="Toon in zoeken" name="search_check" tool_tip="Laat mensen dit object zien in zoekresultaten"/>
+ <check_box label="Te koop" name="checkbox for sale"/>
+ <text name="Cost">
+ Prijs: L$
+ </text>
+ <radio_group name="sale type">
+ <radio_item name="Original">
+ Origineel
+ </radio_item>
+ <radio_item name="Copy">
+ Kopie
+ </radio_item>
+ <radio_item name="Contents">
+ Inhoud
+ </radio_item>
+ </radio_group>
+ <text name="Next owner can:">
+ Volgende eigenaar kan:
+ </text>
+ <check_box label="Wijzigen" name="checkbox next owner can modify"/>
+ <check_box label="Kopiëren" name="checkbox next owner can copy"/>
+ <check_box label="Verkopen/weggeven" name="checkbox next owner can transfer"/>
+ <text name="label click action">
+ Wanneer links-geklikt:
+ </text>
+ <combo_box name="clickaction">
+ <combo_item name="Touch/grab(default)">
+ Aanraken/pakken (standaard)
+ </combo_item>
+ <combo_item name="Sitonobject">
+ Zit op object
+ </combo_item>
+ <combo_item name="Buyobject">
+ Koop object
+ </combo_item>
+ <combo_item name="Payobject">
+ Betaal object
+ </combo_item>
+ <combo_item name="Open">
+ Open
+ </combo_item>
+ <combo_item name="Play">
+ Perceelmedia afspelen
+ </combo_item>
+ <combo_item name="Opemmedia">
+ Perceelmedia openen
+ </combo_item>
+ </combo_box>
+ <text name="B:">
+ B:
+ </text>
+ <text name="O:">
+ O:
+ </text>
+ <text name="G:">
+ G:
+ </text>
+ <text name="E:">
+ E:
+ </text>
+ <text name="N:">
+ N:
+ </text>
+ <text name="F:">
+ F:
+ </text>
+ <string name="text modify info 1">
+ U kunt dit object wijzigen
+ </string>
+ <string name="text modify info 2">
+ U kunt deze objecten wijzigen
+ </string>
+ <string name="text modify info 3">
+ U kunt dit object niet wijzigen
+ </string>
+ <string name="text modify info 4">
+ U kunt deze objecten niet wijzigen
+ </string>
+ <string name="text modify warning">
+ U moet het hele object selecteren om permissies in te stellen
+ </string>
+ <string name="Cost Default">
+ Prijs: L$
+ </string>
+ <string name="Cost Total">
+ Totale Prijs: L$
+ </string>
+ <string name="Cost Per Unit">
+ Prijs per: L$
+ </string>
+ <string name="Cost Mixed">
+ Gemengde prijs
+ </string>
+ <string name="Sale Mixed">
+ Gemengde verkoop
+ </string>
+ </panel>
+ <panel label="Object" name="Object">
+ <text name="select_single">
+ Selecteer slechts één primitief om parameters te bewerken
+ </text>
+ <text name="edit_object">
+ Bewerk object parameters:
+ </text>
+ <check_box label="Vergrendeld" name="checkbox locked" tool_tip="Voorkomt het verplaatsen of verwijderen van objecten. Regelmatig handig tijdens het bouwen om onbedoelde bewerkingen te voorkomen."/>
+ <check_box label="Fysiek" name="Physical Checkbox Ctrl" tool_tip="Staat toe dat objecten geduwd worden en worden beïnvloed door de zwaartekracht"/>
+ <check_box label="Tijdelijk" name="Temporary Checkbox Ctrl" tool_tip="Zorgt ervoor dat het object 1 minuut na creatie wordt verwijderd."/>
+ <check_box label="Fantoom" name="Phantom Checkbox Ctrl" tool_tip="Zorgt ervoor dat objecten niet kunnen botsen met andere objecten of avatars"/>
+ <text name="label position">
+ Positie (meters)
+ </text>
+ <spinner label="X" name="Pos X"/>
+ <spinner label="Y" name="Pos Y"/>
+ <spinner label="Z" name="Pos Z"/>
+ <text name="label size">
+ Grootte (meters)
+ </text>
+ <spinner label="X" name="Scale X"/>
+ <spinner label="Y" name="Scale Y"/>
+ <spinner label="Z" name="Scale Z"/>
+ <text name="label rotation">
+ Rotatie (graden)
+ </text>
+ <spinner label="X" name="Rot X"/>
+ <spinner label="Y" name="Rot Y"/>
+ <spinner label="Z" name="Rot Z"/>
+ <text name="label material">
+ Materiaal
+ </text>
+ <combo_box name="material">
+ <combo_item name="Stone">
+ Steen
+ </combo_item>
+ <combo_item name="Metal">
+ Metaal
+ </combo_item>
+ <combo_item name="Glass">
+ Glas
+ </combo_item>
+ <combo_item name="Wood">
+ Hout
+ </combo_item>
+ <combo_item name="Flesh">
+ Vlees
+ </combo_item>
+ <combo_item name="Plastic">
+ Plastic
+ </combo_item>
+ <combo_item name="Rubber">
+ Rubber
+ </combo_item>
+ </combo_box>
+ <text name="label basetype">
+ Bouwbloktype
+ </text>
+ <combo_box name="comboBaseType">
+ <combo_item name="Box">
+ Kubus
+ </combo_item>
+ <combo_item name="Cylinder">
+ Cilinder
+ </combo_item>
+ <combo_item name="Prism">
+ Prisma
+ </combo_item>
+ <combo_item name="Sphere">
+ Bol
+ </combo_item>
+ <combo_item name="Torus">
+ Torus
+ </combo_item>
+ <combo_item name="Tube">
+ Buis
+ </combo_item>
+ <combo_item name="Ring">
+ Ring
+ </combo_item>
+ <combo_item name="Sculpted">
+ Sculpted
+ </combo_item>
+ </combo_box>
+ <text name="text cut">
+ Uitsnede begin en einde
+ </text>
+ <spinner label="B" name="cut begin"/>
+ <spinner label="E" name="cut end"/>
+ <text name="text hollow">
+ Hol
+ </text>
+ <text name="text skew">
+ Verschuiven
+ </text>
+ <text name="Hollow Shape">
+ Holtevorm
+ </text>
+ <combo_box name="hole">
+ <combo_item name="Default">
+ Standaard
+ </combo_item>
+ <combo_item name="Circle">
+ Cirkel
+ </combo_item>
+ <combo_item name="Square">
+ Vierkant
+ </combo_item>
+ <combo_item name="Triangle">
+ Driehoek
+ </combo_item>
+ </combo_box>
+ <text name="text twist">
+ Verdraai begin en einde
+ </text>
+ <spinner label="B" name="Twist Begin"/>
+ <spinner label="E" name="Twist End"/>
+ <text name="scale_taper">
+ Knijpen
+ </text>
+ <text name="scale_hole">
+ Gatgrootte
+ </text>
+ <spinner label="X" name="Taper Scale X"/>
+ <spinner label="Y" name="Taper Scale Y"/>
+ <text name="text topshear">
+ Bovenkant verschuiven
+ </text>
+ <spinner label="X" name="Shear X"/>
+ <spinner label="Y" name="Shear Y"/>
+ <text name="advanced_cut">
+ Profielsnede begin en einde
+ </text>
+ <text name="advanced_dimple">
+ Deuk begin en einde
+ </text>
+ <text name="advanced_slice">
+ Uitsnede Begin en Einde
+ </text>
+ <spinner label="B" name="Path Limit Begin"/>
+ <spinner label="E" name="Path Limit End"/>
+ <text name="text taper2">
+ Knijpen
+ </text>
+ <spinner label="X" name="Taper X"/>
+ <spinner label="Y" name="Taper Y"/>
+ <text name="text radius delta">
+ Straal
+ </text>
+ <text name="text revolutions">
+ Omwentelingen
+ </text>
+ <texture_picker label="Sculpt textuur" name="sculpt texture control" tool_tip="Klik om een afbeelding te kiezen"/>
+ <check_box label="Spiegelen" name="sculpt mirror control" tool_tip="Spiegelt de sculpted prim om de X-as"/>
+ <check_box label="Binnenstebuiten" name="sculpt invert control" tool_tip="Inverteert de normalen van de sculpted prim, zodat deze binnenstebuiten verschijnt."/>
+ <text name="label sculpt type">
+ Hechtingstype
+ </text>
+ <combo_box name="sculpt type control">
+ <combo_item name="None">
+ (none)
+ </combo_item>
+ <combo_item name="Sphere">
+ Bol
+ </combo_item>
+ <combo_item name="Torus">
+ Torus
+ </combo_item>
+ <combo_item name="Plane">
+ Vlak
+ </combo_item>
+ <combo_item name="Cylinder">
+ Cilinder
+ </combo_item>
+ </combo_box>
+ </panel>
+ <panel label="Kenmerken" name="Features">
+ <text name="select_single">
+ Selecteer slechts één primitief om kenmerken te bewerken
+ </text>
+ <text name="edit_object">
+ Bewerk objectkenmerken:
+ </text>
+ <check_box label="Flexibiliteit" name="Flexible1D Checkbox Ctrl" tool_tip="Staat toe dat objecten kunnen buigen om de Z-as. (alleen aan de client kant)"/>
+ <spinner label="Zachtheid" name="FlexNumSections"/>
+ <spinner label="Zwaartekracht" name="FlexGravity"/>
+ <spinner label="Slepen" name="FlexFriction"/>
+ <spinner label="Wind" name="FlexWind"/>
+ <spinner label="Spanning" name="FlexTension"/>
+ <spinner label="Kracht X" name="FlexForceX"/>
+ <spinner label="Kracht Y" name="FlexForceY"/>
+ <spinner label="Kracht Z" name="FlexForceZ"/>
+ <check_box label="Licht" name="Light Checkbox Ctrl" tool_tip="Zorgt dat het object licht uitstraalt"/>
+ <text name="label color">
+ Kleur
+ </text>
+ <color_swatch label="" name="colorswatch" tool_tip="Klik om kleurkiezer to openen"/>
+ <spinner label="Intensiteit" name="Light Intensity"/>
+ <spinner label="Straal" name="Light Radius"/>
+ <spinner label="Uitstraling" name="Light Falloff"/>
+ </panel>
+ <panel label="Textuur" name="Texture">
+ <texture_picker label="Textuur" name="texture control" tool_tip="Klik om een afbeelding te kiezen"/>
+ <color_swatch label="Kleur" name="colorswatch" tool_tip="Klik om kleurkiezer to openen"/>
+ <text name="color trans">
+ Transparantie %
+ </text>
+ <text name="glow label">
+ Gloed
+ </text>
+ <check_box label="Volledige helderheid" name="checkbox fullbright"/>
+ <text name="tex gen">
+ Mapping
+ </text>
+ <combo_box name="combobox texgen">
+ <combo_item name="Default">
+ Standaard
+ </combo_item>
+ <combo_item name="Planar">
+ Vlak
+ </combo_item>
+ </combo_box>
+ <text name="label shininess">
+ Glans
+ </text>
+ <combo_box name="combobox shininess">
+ <combo_item name="None">
+ Geen
+ </combo_item>
+ <combo_item name="Low">
+ Laag
+ </combo_item>
+ <combo_item name="Medium">
+ Middel
+ </combo_item>
+ <combo_item name="High">
+ Hoog
+ </combo_item>
+ </combo_box>
+ <text name="label bumpiness">
+ Bumpiness
+ </text>
+ <combo_box name="combobox bumpiness">
+ <combo_item name="None">
+ Geen
+ </combo_item>
+ <combo_item name="Brightness">
+ Helderheid
+ </combo_item>
+ <combo_item name="Darkness">
+ Donkerheid
+ </combo_item>
+ <combo_item name="woodgrain">
+ Houtnerf
+ </combo_item>
+ <combo_item name="bark">
+ Schors
+ </combo_item>
+ <combo_item name="bricks">
+ Stenen
+ </combo_item>
+ <combo_item name="checker">
+ Dambord
+ </combo_item>
+ <combo_item name="concrete">
+ Beton
+ </combo_item>
+ <combo_item name="crustytile">
+ gebarsten tegels
+ </combo_item>
+ <combo_item name="cutstone">
+ natuursteen
+ </combo_item>
+ <combo_item name="discs">
+ schijven
+ </combo_item>
+ <combo_item name="gravel">
+ grind
+ </combo_item>
+ <combo_item name="petridish">
+ petrischaal
+ </combo_item>
+ <combo_item name="siding">
+ wandpaneel
+ </combo_item>
+ <combo_item name="stonetile">
+ plavuizen
+ </combo_item>
+ <combo_item name="stucco">
+ stucwerk
+ </combo_item>
+ <combo_item name="suction">
+ zuignappen
+ </combo_item>
+ <combo_item name="weave">
+ weven
+ </combo_item>
+ </combo_box>
+ <text name="tex scale">
+ Herhalingen per zijde
+ </text>
+ <spinner label="Horizontaal (U)" name="TexScaleU"/>
+ <check_box label="Omkeren" name="checkbox flip s"/>
+ <spinner label="Verticaal (V)" name="TexScaleV"/>
+ <check_box label="Omkeren" name="checkbox flip t"/>
+ <text name="tex rotate">
+ Rotatie (graden)
+ </text>
+ <string name="string repeats per meter">
+ Herhalingen per meter
+ </string>
+ <string name="string repeats per face">
+ Herhalingen per zijde
+ </string>
+ <text name="rpt">
+ Herhalingen per meter
+ </text>
+ <button label="Toepassen" label_selected="Toepassen" name="button apply"/>
+ <text name="tex offset">
+ Verplaatsing
+ </text>
+ <spinner label="Horizontaal (U)" name="TexOffsetU"/>
+ <spinner label="Verticaal (V)" name="TexOffsetV"/>
+ <text name="textbox autofix">
+ Mediatextuur uitlijnen (moet eerst laden)
+ </text>
+ <button label="Uitlijnen" label_selected="Uitlijnen" name="button align"/>
+ </panel>
+ <panel label="Inhoud" name="Contents">
+ <button label="Nieuw script" label_selected="Nieuw script..." name="button new script"/>
+ <button label="Permissies..." name="button permissions"/>
+ </panel>
+ </tab_container>
+ <panel name="land info panel">
+ <text name="label_parcel_info">
+ Perceel Informatie
+ </text>
+ <text name="label_area_price">
+ Prijs: L$[PRICE] voor [AREA] m2.
+ </text>
+ <text name="label_area">
+ Gebied: [AREA] m2.
+ </text>
+ <button label="Over land..." label_selected="Over land..." name="button about land"/>
+ <check_box label="Toon Eigenaren" name="checkbox show owners" tool_tip="Kleur percelen op basis van hun eigendom"/>
+ <button label="?" label_selected="?" name="button show owners help"/>
+ <text name="label_parcel_modify">
+ Wijzig Perceel
+ </text>
+ <button label="Opdelen..." label_selected="Opdelen..." name="button subdivide land"/>
+ <button label="Samenvoegen..." label_selected="Samenvoegen..." name="button join land"/>
+ <text name="label_parcel_trans">
+ Landtransacties
+ </text>
+ <button label="Koop land..." label_selected="Koop land..." name="button buy land"/>
+ <button label="Land Afstaan..." label_selected="Land Afstaan..." name="button abandon land"/>
+ </panel>
+ <string name="status_rotate">
+ Sleep de gekleurde banden om het object te roteren
+ </string>
+ <string name="status_scale">
+ Klik en sleep om de geselecteerde zijde uit te rekken.
+ </string>
+ <string name="status_move">
+ Sleep om te verplaatsen, Shift-slepen om te kopiëren
+ </string>
+ <string name="status_modifyland">
+ Klik en houd vast om land te wijzigen
+ </string>
+ <string name="status_camera">
+ Klik en sleep om beeld te wijzigen
+ </string>
+ <string name="status_grab">
+ Sleep om te verplaatsen, Ctrl om op te tillen, Ctrl-Shift om te roteren.
+ </string>
+ <string name="status_place">
+ Klik in-wereld om te bouwen
+ </string>
+ <string name="status_selectland">
+ Klik en sleep om land te selecteren
+ </string>
+ <string name="grid_screen_text">
+ Scherm
+ </string>
+ <string name="grid_local_text">
+ Lokaal
+ </string>
+ <string name="grid_world_text">
+ Wereld
+ </string>
+ <string name="grid_reference_text">
+ Referentie
+ </string>
+ <string name="grid_attachment_text">
+ Bevestiging
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_top_objects.xml b/indra/newview/skins/default/xui/nl/floater_top_objects.xml
index 2d43b0bfe2..e79ee4ea56 100644
--- a/indra/newview/skins/default/xui/nl/floater_top_objects.xml
+++ b/indra/newview/skins/default/xui/nl/floater_top_objects.xml
@@ -1,55 +1,55 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="top_objects" title="laden…">
- <text name="title_text">
- Laden…
- </text>
- <scroll_list name="objects_list">
- <column label="Score" name="score"/>
- <column label="Naam" name="name"/>
- <column label="Eigenaar" name="owner"/>
- <column label="Locatie" name="location"/>
- <column label="Tijd" name="time"/>
- <column label="Mono tijd" name="mono_time"/>
- </scroll_list>
- <text name="id_text">
- Object ID:
- </text>
- <button label="Toon baken" name="show_beacon_btn"/>
- <text name="obj_name_text">
- Object naam:
- </text>
- <button label="Filter" name="filter_object_btn"/>
- <text name="owner_name_text">
- Eigenaar naam:
- </text>
- <button label="Filter" name="filter_owner_btn"/>
- <button label="Geselecteerde retourneren" name="return_selected_btn"/>
- <button label="Alles retourneren" name="return_all_btn"/>
- <button label="Geselecteerde uitschakelen" name="disable_selected_btn"/>
- <button label="Alles uitschakelen" name="disable_all_btn"/>
- <button label="Verversen" name="refresh_btn"/>
- <string name="top_scripts_title">
- Top scripts
- </string>
- <string name="top_scripts_text">
- [COUNT] scripts besteden in totaal [TIME] ms
- </string>
- <string name="scripts_score_label">
- Tijd
- </string>
- <string name="scripts_mono_time_label">
- Mono tijd
- </string>
- <string name="top_colliders_title">
- Top botsingen
- </string>
- <string name="top_colliders_text">
- Top [COUNT] objecten die veel mogelijke botsingen ervaren.
- </string>
- <string name="colliders_score_label">
- Score
- </string>
- <string name="none_descriptor">
- Geen gevonden.
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="top_objects" title="laden…">
+ <text name="title_text">
+ Laden…
+ </text>
+ <scroll_list name="objects_list">
+ <column label="Score" name="score"/>
+ <column label="Naam" name="name"/>
+ <column label="Eigenaar" name="owner"/>
+ <column label="Locatie" name="location"/>
+ <column label="Tijd" name="time"/>
+ <column label="Mono tijd" name="mono_time"/>
+ </scroll_list>
+ <text name="id_text">
+ Object ID:
+ </text>
+ <button label="Toon baken" name="show_beacon_btn"/>
+ <text name="obj_name_text">
+ Object naam:
+ </text>
+ <button label="Filter" name="filter_object_btn"/>
+ <text name="owner_name_text">
+ Eigenaar naam:
+ </text>
+ <button label="Filter" name="filter_owner_btn"/>
+ <button label="Geselecteerde retourneren" name="return_selected_btn"/>
+ <button label="Alles retourneren" name="return_all_btn"/>
+ <button label="Geselecteerde uitschakelen" name="disable_selected_btn"/>
+ <button label="Alles uitschakelen" name="disable_all_btn"/>
+ <button label="Verversen" name="refresh_btn"/>
+ <string name="top_scripts_title">
+ Top scripts
+ </string>
+ <string name="top_scripts_text">
+ [COUNT] scripts besteden in totaal [TIME] ms
+ </string>
+ <string name="scripts_score_label">
+ Tijd
+ </string>
+ <string name="scripts_mono_time_label">
+ Mono tijd
+ </string>
+ <string name="top_colliders_title">
+ Top botsingen
+ </string>
+ <string name="top_colliders_text">
+ Top [COUNT] objecten die veel mogelijke botsingen ervaren.
+ </string>
+ <string name="colliders_score_label">
+ Score
+ </string>
+ <string name="none_descriptor">
+ Geen gevonden.
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_tos.xml b/indra/newview/skins/default/xui/nl/floater_tos.xml
index f2176b83fe..b9a162be4a 100644
--- a/indra/newview/skins/default/xui/nl/floater_tos.xml
+++ b/indra/newview/skins/default/xui/nl/floater_tos.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="modal container" title="">
- <button label="Doorgaan" label_selected="Doorgaan" name="Continue"/>
- <button label="Annuleren" label_selected="Annuleren" name="Cancel"/>
- <check_box label="Ik ga akkoord met de voorwaarden van service" name="agree_chk"/>
- <text name="tos_heading">
- Leest u alstublieft de volgende voorwaarden van service door. Om door te gaan met inloggen in Second Life dient u de overeenkomst te accepteren.
- </text>
- <text_editor name="tos_text">
- TOS_TEXT
- </text_editor>
- <string name="real_url">
- http://secondlife.com/app/tos/
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="modal container" title="">
+ <button label="Doorgaan" label_selected="Doorgaan" name="Continue"/>
+ <button label="Annuleren" label_selected="Annuleren" name="Cancel"/>
+ <check_box label="Ik ga akkoord met de voorwaarden van service" name="agree_chk"/>
+ <text name="tos_heading">
+ Leest u alstublieft de volgende voorwaarden van service door. Om door te gaan met inloggen in Second Life dient u de overeenkomst te accepteren.
+ </text>
+ <text_editor name="tos_text">
+ TOS_TEXT
+ </text_editor>
+ <string name="real_url">
+ http://secondlife.com/app/tos/
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_url_entry.xml b/indra/newview/skins/default/xui/nl/floater_url_entry.xml
index 63918e46cf..23ea21bcc5 100644
--- a/indra/newview/skins/default/xui/nl/floater_url_entry.xml
+++ b/indra/newview/skins/default/xui/nl/floater_url_entry.xml
@@ -1,12 +1,12 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="url_entry" title="">
- <text name="media_label">
- Media URL:
- </text>
- <button label="OK" name="ok_btn"/>
- <button label="Annuleren" name="cancel_btn"/>
- <button label="Leegmaken" name="clear_btn"/>
- <text name="loading_label">
- Laden…
- </text>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="url_entry" title="">
+ <text name="media_label">
+ Media URL:
+ </text>
+ <button label="OK" name="ok_btn"/>
+ <button label="Annuleren" name="cancel_btn"/>
+ <button label="Leegmaken" name="clear_btn"/>
+ <text name="loading_label">
+ Laden…
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_water.xml b/indra/newview/skins/default/xui/nl/floater_water.xml
index ed36b59eac..38ec15d1a0 100644
--- a/indra/newview/skins/default/xui/nl/floater_water.xml
+++ b/indra/newview/skins/default/xui/nl/floater_water.xml
@@ -1,88 +1,88 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Water Floater" title="Geavanceerde water editor">
- <text name="KeyFramePresetsText">
- Watervoorinstellingen
- </text>
- <button label="Nieuw" label_selected="Nieuw" name="WaterNewPreset"/>
- <button label="Opslaan" label_selected="Opslaan" name="WaterSavePreset"/>
- <button label="Verwijderen" label_selected="Verwijderen" name="WaterDeletePreset"/>
- <tab_container name="Water Tabs">
- <panel label="Instellingen" name="Settings">
- <text name="BHText">
- Watermistkleur
- </text>
- <button label="?" name="WaterFogColorHelp"/>
- <color_swatch label="" name="WaterFogColor" tool_tip="Klik om de kleurkiezer te openen"/>
- <text name="WaterFogDensText">
- Mistdichtheidsexponent
- </text>
- <button label="?" name="WaterFogDensityHelp"/>
- <text name="WaterUnderWaterFogModText">
- Onderwatermist wijziger
- </text>
- <button label="?" name="WaterUnderWaterFogModHelp"/>
- <text name="BDensText">
- Reflectie wavelet schaal
- </text>
- <button label="?" name="WaterNormalScaleHelp"/>
- <text name="BHText2">
- 1
- </text>
- <text name="BHText3">
- 2
- </text>
- <text name="BHText4">
- 3
- </text>
- <text name="HDText">
- Fresnelschaal
- </text>
- <button label="?" name="WaterFresnelScaleHelp"/>
- <text name="FresnelOffsetText">
- Fresnelverplaatsing
- </text>
- <button label="?" name="WaterFresnelOffsetHelp"/>
- <text name="DensMultText">
- Refractieschaal boven
- </text>
- <button label="?" name="WaterScaleAboveHelp"/>
- <text name="WaterScaleBelowText">
- Refractieschaal onder
- </text>
- <button label="?" name="WaterScaleBelowHelp"/>
- <text name="MaxAltText">
- Wazigheidvermeerderaar
- </text>
- <button label="?" name="WaterBlurMultiplierHelp"/>
- </panel>
- <panel label="Afbeelding" name="Waves">
- <text name="BHText">
- Grote golven richting
- </text>
- <button label="?" name="WaterWave1Help"/>
- <text name="WaterWave1DirXText">
- X
- </text>
- <text name="WaterWave1DirYText">
- Y
- </text>
- <text name="BHText2">
- Kleine golf richting
- </text>
- <button label="?" name="WaterWave2Help"/>
- <text name="WaterWave2DirXText">
- X
- </text>
- <text name="WaterWave2DirYText">
- Y
- </text>
- <text name="BHText3">
- Normaalmap
- </text>
- <button label="?" name="WaterNormalMapHelp"/>
- </panel>
- </tab_container>
- <string name="WLDefaultWaterNames">
- Default:Glassy:Pond:Murky:Second Plague:SNAKE!!!:Valdez
- </string>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Water Floater" title="Geavanceerde water editor">
+ <text name="KeyFramePresetsText">
+ Watervoorinstellingen
+ </text>
+ <button label="Nieuw" label_selected="Nieuw" name="WaterNewPreset"/>
+ <button label="Opslaan" label_selected="Opslaan" name="WaterSavePreset"/>
+ <button label="Verwijderen" label_selected="Verwijderen" name="WaterDeletePreset"/>
+ <tab_container name="Water Tabs">
+ <panel label="Instellingen" name="Settings">
+ <text name="BHText">
+ Watermistkleur
+ </text>
+ <button label="?" name="WaterFogColorHelp"/>
+ <color_swatch label="" name="WaterFogColor" tool_tip="Klik om de kleurkiezer te openen"/>
+ <text name="WaterFogDensText">
+ Mistdichtheidsexponent
+ </text>
+ <button label="?" name="WaterFogDensityHelp"/>
+ <text name="WaterUnderWaterFogModText">
+ Onderwatermist wijziger
+ </text>
+ <button label="?" name="WaterUnderWaterFogModHelp"/>
+ <text name="BDensText">
+ Reflectie wavelet schaal
+ </text>
+ <button label="?" name="WaterNormalScaleHelp"/>
+ <text name="BHText2">
+ 1
+ </text>
+ <text name="BHText3">
+ 2
+ </text>
+ <text name="BHText4">
+ 3
+ </text>
+ <text name="HDText">
+ Fresnelschaal
+ </text>
+ <button label="?" name="WaterFresnelScaleHelp"/>
+ <text name="FresnelOffsetText">
+ Fresnelverplaatsing
+ </text>
+ <button label="?" name="WaterFresnelOffsetHelp"/>
+ <text name="DensMultText">
+ Refractieschaal boven
+ </text>
+ <button label="?" name="WaterScaleAboveHelp"/>
+ <text name="WaterScaleBelowText">
+ Refractieschaal onder
+ </text>
+ <button label="?" name="WaterScaleBelowHelp"/>
+ <text name="MaxAltText">
+ Wazigheidvermeerderaar
+ </text>
+ <button label="?" name="WaterBlurMultiplierHelp"/>
+ </panel>
+ <panel label="Afbeelding" name="Waves">
+ <text name="BHText">
+ Grote golven richting
+ </text>
+ <button label="?" name="WaterWave1Help"/>
+ <text name="WaterWave1DirXText">
+ X
+ </text>
+ <text name="WaterWave1DirYText">
+ Y
+ </text>
+ <text name="BHText2">
+ Kleine golf richting
+ </text>
+ <button label="?" name="WaterWave2Help"/>
+ <text name="WaterWave2DirXText">
+ X
+ </text>
+ <text name="WaterWave2DirYText">
+ Y
+ </text>
+ <text name="BHText3">
+ Normaalmap
+ </text>
+ <button label="?" name="WaterNormalMapHelp"/>
+ </panel>
+ </tab_container>
+ <string name="WLDefaultWaterNames">
+ Default:Glassy:Pond:Murky:Second Plague:SNAKE!!!:Valdez
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_world_map.xml b/indra/newview/skins/default/xui/nl/floater_world_map.xml
index cb2b3277f8..1205884062 100644
--- a/indra/newview/skins/default/xui/nl/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/nl/floater_world_map.xml
@@ -1,59 +1,54 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="worldmap" title="Wereldkaart">
- <tab_container name="maptab">
- <panel label="Objecten" name="objects_mapview"/>
- <panel label="Terrein" name="terrain_mapview"/>
- </tab_container>
- <text name="land_for_sale_label">
- Land te koop
- </text>
- <text name="auction_label">
- Veiling
- </text>
- <text name="you_label">
- U
- </text>
- <text name="home_label">
- Thuis
- </text>
- <button label="Ga naar Thuislocatie" label_selected="Ga naar Thuislocatie" name="Go Home" tool_tip="Teleport naar uw thuislocatie"/>
- <text name="person_label">
- Persoon
- </text>
- <text name="infohub_label">
- Infohub
- </text>
- <text name="telehub_label">
- Telehub
- </text>
- <text name="land_for_sale_label2">
- Land te koop
- </text>
- <text name="events_label">
- Evenementen
- </text>
-
- <combo_box label="Online vrienden" name="friend combo" tool_tip="Vriend die op kaart getoond wordt">
- <combo_box.item name="none_selected" label="Online vrienden"/>
- </combo_box>
- <combo_box label="Landmarkeringen" name="landmark combo" tool_tip="Landmarkering die op kaart getoond wordt">
- <combo_box.item name="none_selected" label="Landmarkeringen"/>
- </combo_box>
- <line_editor label="Zoek op regionaam" name="location" tool_tip="Type de naam van een regio"/>
- <button label="Zoeken" name="DoSearch" tool_tip="Zoek naar regio"/>
- <text name="search_label">
- Zoekresultaten
- </text>
- <text name="location_label">
- Locatie:
- </text>
- <spinner name="spin x" tool_tip="X coördinaat van de locatie die op de kaart getoond wordt"/>
- <spinner name="spin y" tool_tip="Y coördinaat van de locatie die op de kaart getoond wordt"/>
- <spinner name="spin z" tool_tip="Z coördinaat van de locatie die op de kaart getoond wordt"/>
- <button label="Teleport" label_selected="Teleport" name="Teleport" tool_tip="Teleport naar geselecteerde locatie"/>
- <button label="Toon bestemming" label_selected="Toon bestemming" name="Show Destination" tool_tip="Centreer kaart op geselecteerde locatie"/>
- <button label="Verwijder" label_selected="Verwijder" name="Clear" tool_tip="Stop volgen"/>
- <button label="Toon mijn locatie" label_selected="Toon mijn locatie" name="Show My Location" tool_tip="Centreer kaart op de locatie van uw avatar"/>
- <button label="Kopieer SLURL naar klembord" name="copy_slurl" tool_tip="Kopieert huidige locatie als SLURL, zodat deze op het web gebruikt kan worden."/>
- <slider label="Zoom" name="zoom slider"/>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="worldmap" title="Wereldkaart">
+ <tab_container name="maptab">
+ <panel label="Objecten" name="objects_mapview"/>
+ <panel label="Terrein" name="terrain_mapview"/>
+ </tab_container>
+ <text name="you_label">
+ U
+ </text>
+ <icon left="1058" name="home"/>
+ <text name="home_label">
+ Thuis
+ </text>
+ <text name="auction_label">
+ Veiling
+ </text>
+ <text name="land_for_sale_label">
+ Land te koop
+ </text>
+ <button width="122" left="1116" label="Ga naar Thuislocatie" label_selected="Ga naar Thuislocatie" name="Go Home" tool_tip="Teleport naar uw thuislocatie"/>
+ <check_box label="Inwoner" name="people_chk"/>
+ <check_box label="Infohub" name="infohub_chk"/>
+ <check_box label="Telehub" name="telehubchk"/>
+ <check_box label="Land te koop" name="land_for_sale_chk"/>
+ <text name="events_label">
+ Evenementen:
+ </text>
+ <check_box label="PG" name="event_chk"/>
+ <check_box label="Mature" name="event_mature_chk"/>
+ <check_box label="Adult" name="event_adult_chk"/>
+ <combo_box label="Online vrienden" name="friend combo" tool_tip="Vriend die op kaart getoond wordt">
+ <combo_box.item name="none_selected" label="Online vrienden"/>
+ </combo_box>
+ <combo_box label="Landmarkeringen" name="landmark combo" tool_tip="Landmarkering die op kaart getoond wordt">
+ <combo_box.item name="none_selected" label="Landmarkeringen"/>
+ </combo_box>
+ <line_editor label="Zoek op regionaam" name="location" tool_tip="Type de naam van een regio"/>
+ <button label="Zoeken" name="DoSearch" tool_tip="Zoek naar regio"/>
+ <text name="search_label">
+ Zoekresultaten
+ </text>
+ <text name="location_label">
+ Locatie:
+ </text>
+ <spinner name="spin x" tool_tip="X coördinaat van de locatie die op de kaart getoond wordt"/>
+ <spinner name="spin y" tool_tip="Y coördinaat van de locatie die op de kaart getoond wordt"/>
+ <spinner name="spin z" tool_tip="Z coördinaat van de locatie die op de kaart getoond wordt"/>
+ <button label="Teleport" label_selected="Teleport" name="Teleport" tool_tip="Teleport naar geselecteerde locatie"/>
+ <button label="Toon bestemming" label_selected="Toon bestemming" name="Show Destination" tool_tip="Centreer kaart op geselecteerde locatie"/>
+ <button label="Verwijder" label_selected="Verwijder" name="Clear" tool_tip="Stop volgen"/>
+ <button label="Toon mijn locatie" label_selected="Toon mijn locatie" name="Show My Location" tool_tip="Centreer kaart op de locatie van uw avatar"/>
+ <button label="Kopieer SLURL naar klembord" name="copy_slurl" tool_tip="Kopieert huidige locatie als SLURL, zodat deze op het web gebruikt kan worden."/>
+ <slider label="Zoom" name="zoom slider"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/menu_inventory.xml b/indra/newview/skins/default/xui/nl/menu_inventory.xml
index ae0bc0e5c3..f406bcf6bc 100644
--- a/indra/newview/skins/default/xui/nl/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/nl/menu_inventory.xml
@@ -1,65 +1,66 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<menu name="Popup">
- <menu_item_call label="Koop" name="Task Buy"/>
- <menu_item_call label="Open" name="Task Open"/>
- <menu_item_call label="Afspelen" name="Task Play"/>
- <menu_item_call label="Eigenschappen" name="Task Properties"/>
- <menu_item_call label="Hernoemen" name="Task Rename"/>
- <menu_item_call label="Verwijderen" name="Task Remove"/>
- <menu_item_call label="Prullenbak legen" name="Empty Trash"/>
- <menu_item_call label="Verloren en gevonden leegmaken" name="Empty Lost And Found"/>
- <menu_item_call label="Nieuwe map" name="New Folder"/>
- <menu_item_call label="Nieuw script" name="New Script"/>
- <menu_item_call label="Nieuwe notitie" name="New Note"/>
- <menu_item_call label="Nieuw gebaar" name="New Gesture"/>
- <menu name="New Clothes">
- <menu_item_call label="Nieuw shirt" name="New Shirt"/>
- <menu_item_call label="Nieuwe broek" name="New Pants"/>
- <menu_item_call label="Nieuwe schoenen" name="New Shoes"/>
- <menu_item_call label="Nieuwe sokken" name="New Socks"/>
- <menu_item_call label="Nieuwe jas" name="New Jacket"/>
- <menu_item_call label="Nieuwe rok" name="New Skirt"/>
- <menu_item_call label="Nieuwe handschoenen" name="New Gloves"/>
- <menu_item_call label="Nieuw onderhemd" name="New Undershirt"/>
- <menu_item_call label="Nieuwe onderbroek" name="New Underpants"/>
- </menu>
- <menu name="New Body Parts">
- <menu_item_call label="Nieuwe postuur" name="New Shape"/>
- <menu_item_call label="Nieuwe huid" name="New Skin"/>
- <menu_item_call label="Nieuw haar" name="New Hair"/>
- <menu_item_call label="Nieuwe ogen" name="New Eyes"/>
- </menu>
- <menu_item_call label="Teleport" name="Landmark Open"/>
- <menu_item_call label="Open" name="Animation Open"/>
- <menu_item_call label="Open" name="Sound Open"/>
- <menu_item_call label="Verwijderen item" name="Purge Item"/>
- <menu_item_call label="Herstellen item" name="Restore Item"/>
- <menu_item_call label="Open" name="Open"/>
- <menu_item_call label="Eigenschappen" name="Properties"/>
- <menu_item_call label="Hernoemen" name="Rename"/>
- <menu_item_call label="Kopieer asset UUID" name="Copy Asset UUID"/>
- <menu_item_call label="Kopiëren" name="Copy"/>
- <menu_item_call label="Plakken" name="Paste"/>
- <menu_item_call label="Verwijderen" name="Delete"/>
- <menu_item_call label="Items uitdoen" name="Take Off Items"/>
- <menu_item_call label="Voeg toe aan kleding" name="Add To Outfit"/>
- <menu_item_call label="Vervang kleding" name="Replace Outfit"/>
- <menu_item_call label="Start conferentie chat" name="Conference Chat Folder"/>
- <menu_item_call label="Afspelen" name="Sound Play"/>
- <menu_item_call label="Over landmarkering" name="Teleport To Landmark"/>
- <menu_item_call label="In wereld afspelen" name="Animation Play"/>
- <menu_item_call label="Lokaal afspelen" name="Animation Audition"/>
- <menu_item_call label="Stuur instant message" name="Send Instant Message"/>
- <menu_item_call label="Bied teleport aan…" name="Offer Teleport..."/>
- <menu_item_call label="Start conferentie chat" name="Conference Chat"/>
- <menu_item_call label="Activeren" name="Activate"/>
- <menu_item_call label="Deactiveren" name="Deactivate"/>
- <menu_item_call label="Losmaken van jezelf" name="Detach From Yourself"/>
- <menu_item_call label="Dragen" name="Object Wear"/>
- <menu label="Bevestigen aan" name="Attach To"/>
- <menu label="Bevestigen aan HUD" name="Attach To HUD"/>
- <menu_item_call label="Bewerken" name="Wearable Edit"/>
- <menu_item_call label="Dragen" name="Wearable Wear"/>
- <menu_item_call label="Uitdoen" name="Take Off"/>
- <menu_item_call label="--geen opties--" name="--no options--"/>
-</menu>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="Popup">
+ <menu_item_call label="Koop" name="Task Buy"/>
+ <menu_item_call label="Open" name="Task Open"/>
+ <menu_item_call label="Afspelen" name="Task Play"/>
+ <menu_item_call label="Eigenschappen" name="Task Properties"/>
+ <menu_item_call label="Hernoemen" name="Task Rename"/>
+ <menu_item_call label="Verwijderen" name="Task Remove"/>
+ <menu_item_call label="Prullenbak legen" name="Empty Trash"/>
+ <menu_item_call label="Verloren en gevonden leegmaken" name="Empty Lost And Found"/>
+ <menu_item_call label="Nieuwe map" name="New Folder"/>
+ <menu_item_call label="Nieuw script" name="New Script"/>
+ <menu_item_call label="Nieuwe notitie" name="New Note"/>
+ <menu_item_call label="Nieuw gebaar" name="New Gesture"/>
+ <menu name="New Clothes">
+ <menu_item_call label="Nieuw shirt" name="New Shirt"/>
+ <menu_item_call label="Nieuwe broek" name="New Pants"/>
+ <menu_item_call label="Nieuwe schoenen" name="New Shoes"/>
+ <menu_item_call label="Nieuwe sokken" name="New Socks"/>
+ <menu_item_call label="Nieuwe jas" name="New Jacket"/>
+ <menu_item_call label="Nieuwe rok" name="New Skirt"/>
+ <menu_item_call label="Nieuwe handschoenen" name="New Gloves"/>
+ <menu_item_call label="Nieuw onderhemd" name="New Undershirt"/>
+ <menu_item_call label="Nieuwe onderbroek" name="New Underpants"/>
+ </menu>
+ <menu name="New Body Parts">
+ <menu_item_call label="Nieuwe postuur" name="New Shape"/>
+ <menu_item_call label="Nieuwe huid" name="New Skin"/>
+ <menu_item_call label="Nieuw haar" name="New Hair"/>
+ <menu_item_call label="Nieuwe ogen" name="New Eyes"/>
+ </menu>
+ <menu_item_call label="Teleport" name="Landmark Open"/>
+ <menu_item_call label="Open" name="Animation Open"/>
+ <menu_item_call label="Open" name="Sound Open"/>
+ <menu_item_call label="Verwijderen item" name="Purge Item"/>
+ <menu_item_call label="Herstellen item" name="Restore Item"/>
+ <menu_item_call label="Open" name="Open"/>
+ <menu_item_call label="Eigenschappen" name="Properties"/>
+ <menu_item_call label="Hernoemen" name="Rename"/>
+ <menu_item_call label="Kopieer asset UUID" name="Copy Asset UUID"/>
+ <menu_item_call label="Kopiëren" name="Copy"/>
+ <menu_item_call label="Plakken" name="Paste"/>
+ <menu_item_call label="Verwijderen" name="Delete"/>
+ <menu_item_call label="Items uitdoen" name="Take Off Items"/>
+ <menu_item_call label="Voeg toe aan kleding" name="Add To Outfit"/>
+ <menu_item_call label="Vervang kleding" name="Replace Outfit"/>
+ <menu_item_call label="Start conferentie chat" name="Conference Chat Folder"/>
+ <menu_item_call label="Afspelen" name="Sound Play"/>
+ <menu_item_call label="Over landmarkering" name="Teleport To Landmark"/>
+ <menu_item_call label="In wereld afspelen" name="Animation Play"/>
+ <menu_item_call label="Lokaal afspelen" name="Animation Audition"/>
+ <menu_item_call label="Stuur instant message" name="Send Instant Message"/>
+ <menu_item_call label="Bied teleport aan…" name="Offer Teleport..."/>
+ <menu_item_call label="Start conferentie chat" name="Conference Chat"/>
+ <menu_item_call label="Activeren" name="Activate"/>
+ <menu_item_call label="Deactiveren" name="Deactivate"/>
+ <menu_item_call label="Losmaken van jezelf" name="Detach From Yourself"/>
+ <menu_item_call label="Herstellen naar laatste positie" name="Restore to Last Position"/>
+ <menu_item_call label="Dragen" name="Object Wear"/>
+ <menu label="Bevestigen aan" name="Attach To"/>
+ <menu label="Bevestigen aan HUD" name="Attach To HUD"/>
+ <menu_item_call label="Bewerken" name="Wearable Edit"/>
+ <menu_item_call label="Dragen" name="Wearable Wear"/>
+ <menu_item_call label="Uitdoen" name="Take Off"/>
+ <menu_item_call label="--geen opties--" name="--no options--"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/nl/menu_login.xml b/indra/newview/skins/default/xui/nl/menu_login.xml
index 5e82a736ba..188418e34c 100644
--- a/indra/newview/skins/default/xui/nl/menu_login.xml
+++ b/indra/newview/skins/default/xui/nl/menu_login.xml
@@ -1,13 +1,13 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<menu_bar name="Login Menu">
- <menu label="Bestand" name="File">
- <menu_item_call label="Afsluiten" name="Quit"/>
- </menu>
- <menu label="Bewerken" name="Edit">
- <menu_item_call label="Voorkeuren..." name="Preferences..."/>
- </menu>
- <menu label="Help" name="Help">
- <menu_item_call label="Second Life Help" name="Second Life Help"/>
- <menu_item_call label="Over Second Life..." name="About Second Life..."/>
- </menu>
-</menu_bar>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu_bar name="Login Menu">
+ <menu label="Bestand" name="File">
+ <menu_item_call label="Afsluiten" name="Quit"/>
+ </menu>
+ <menu label="Bewerken" name="Edit">
+ <menu_item_call label="Voorkeuren..." name="Preferences..."/>
+ </menu>
+ <menu label="Help" name="Help">
+ <menu_item_call label="Second Life Help" name="Second Life Help"/>
+ <menu_item_call label="Over Second Life..." name="About Second Life..."/>
+ </menu>
+</menu_bar>
diff --git a/indra/newview/skins/default/xui/nl/menu_mini_map.xml b/indra/newview/skins/default/xui/nl/menu_mini_map.xml
new file mode 100644
index 0000000000..0a6dfa3465
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/menu_mini_map.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="popup">
+ <menu_item_call label="Zoom dichtbij" name="Zoom Close"/>
+ <menu_item_call label="Zoom gemiddeld" name="Zoom Medium"/>
+ <menu_item_call label="Zoom veraf" name="Zoom Far"/>
+ <menu_item_call label="Stop volgen" name="Stop Tracking"/>
+ <menu_item_call label="Profiel..." name="Profile"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/nl/menu_slurl.xml b/indra/newview/skins/default/xui/nl/menu_slurl.xml
index a5aa95cd8b..48a4698d0c 100644
--- a/indra/newview/skins/default/xui/nl/menu_slurl.xml
+++ b/indra/newview/skins/default/xui/nl/menu_slurl.xml
@@ -1,6 +1,6 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<menu name="Popup">
- <menu_item_call label="Over URL" name="about_url"/>
- <menu_item_call label="Teleport naar URL" name="teleport_to_url"/>
- <menu_item_call label="Toon op kaart" name="show_on_map"/>
-</menu>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="Popup">
+ <menu_item_call label="Over URL" name="about_url"/>
+ <menu_item_call label="Teleport naar URL" name="teleport_to_url"/>
+ <menu_item_call label="Toon op kaart" name="show_on_map"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/nl/menu_viewer.xml b/indra/newview/skins/default/xui/nl/menu_viewer.xml
index 2f85909ccc..0827858d68 100644
--- a/indra/newview/skins/default/xui/nl/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/nl/menu_viewer.xml
@@ -1,203 +1,205 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<menu_bar name="Main Menu">
- <menu label="Bestand" name="File">
- <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~"/>
- <menu label="Upload" name="upload">
- <menu_item_call label="Upload afbeelding (L$[COST])..." name="Upload Image"/>
- <menu_item_call label="Upload geluid (L$[COST])..." name="Upload Sound"/>
- <menu_item_call label="Upload animatie (L$[COST])..." name="Upload Animation"/>
- <menu_item_call label="Bulk Upload (L$[COST] per bestand)..." name="Bulk Upload"/>
- </menu>
- <menu_item_separator label="-----------" name="separator"/>
- <menu_item_call label="Sluit venster" name="Close Window"/>
- <menu_item_call label="Sluit alle vensters" name="Close All Windows"/>
- <menu_item_separator label="-----------" name="separator2"/>
- <menu_item_call label="Textuur opslaan als..." name="Save Texture As..."/>
- <menu_item_separator label="-----------" name="separator3"/>
- <menu_item_call label="Maak foto" name="Take Snapshot"/>
- <menu_item_call label="Foto naar harde schijf" name="Snapshot to Disk"/>
- <menu_item_separator label="-----------" name="separator4"/>
- <menu_item_call label="Afsluiten" name="Quit"/>
- </menu>
- <menu label="Bewerken" name="Edit">
- <menu_item_call label="Ongedaan maken" name="Undo"/>
- <menu_item_call label="Herhalen" name="Redo"/>
- <menu_item_separator label="-----------" name="separator"/>
- <menu_item_call label="Knippen" name="Cut"/>
- <menu_item_call label="Kopiëren" name="Copy"/>
- <menu_item_call label="Plakken" name="Paste"/>
- <menu_item_call label="Verwijderen" name="Delete"/>
- <menu_item_separator label="-----------" name="separator2"/>
- <menu_item_call label="Zoeken..." name="Search..."/>
- <menu_item_separator label="-----------" name="separator3"/>
- <menu_item_call label="Alles selecteren" name="Select All"/>
- <menu_item_call label="Deselecteren" name="Deselect"/>
- <menu_item_separator label="-----------" name="separator4"/>
- <menu_item_call label="Dupliceren" name="Duplicate"/>
- <menu_item_separator label="-----------" name="separator5"/>
- <menu label="Bevestig object" name="Attach Object"/>
- <menu label="Object losmaken" name="Detach Object"/>
- <menu label="Kleding uitdoen" name="Take Off Clothing">
- <menu_item_call label="Hemd" name="Shirt"/>
- <menu_item_call label="Broek" name="Pants"/>
- <menu_item_call label="Schoenen" name="Shoes"/>
- <menu_item_call label="Sokken" name="Socks"/>
- <menu_item_call label="Jas" name="Jacket"/>
- <menu_item_call label="Handschoenen" name="Gloves"/>
- <menu_item_call label="Onderhemd" name="Menu Undershirt"/>
- <menu_item_call label="Onderbroek" name="Menu Underpants"/>
- <menu_item_call label="Rok" name="Skirt"/>
- <menu_item_call label="Alle kleding" name="All Clothes"/>
- </menu>
- <menu_item_separator label="-----------" name="separator6"/>
- <menu_item_call label="Gebaren..." name="Gestures..."/>
- <menu_item_call label="Profiel..." name="Profile..."/>
- <menu_item_call label="Uiterlijk..." name="Appearance..."/>
- <menu_item_separator label="-----------" name="separator7"/>
- <menu_item_check label="Vrienden..." name="Friends..."/>
- <menu_item_call label="Groepen..." name="Groups..."/>
- <menu_item_separator label="-----------" name="separator8"/>
- <menu_item_call label="Voorkeuren..." name="Preferences..."/>
- </menu>
- <menu label="Weergave" name="View">
- <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~"/>
- <menu_item_call label="Mouselook" name="Mouselook"/>
- <menu_item_check label="Bouwen" name="Build"/>
- <menu_item_check label="Joystick vliegcamera" name="Joystick Flycam"/>
- <menu_item_call label="Weergave opnieuw instellen" name="Reset View"/>
- <menu_item_call label="Kijk naar laatste geklets" name="Look at Last Chatter"/>
- <menu_item_separator label="-----------" name="separator"/>
- <menu_item_check label="Werkbalk" name="Toolbar"/>
- <menu_item_check label="Lokale chat" name="Chat History"/>
- <menu_item_check label="Communiceren" name="Instant Message"/>
- <menu_item_check label="Inventaris" name="Inventory"/>
- <menu_item_check label="Actieve sprekers" name="Active Speakers"/>
- <menu_item_check label="Negeerlijst" name="Mute List"/>
- <menu_item_separator label="-----------" name="separator2"/>
- <menu_item_check label="Camerabediening" name="Camera Controls"/>
- <menu_item_check label="Bewegingsbediening" name="Movement Controls"/>
- <menu_item_check label="Wereldkaart" name="World Map"/>
- <menu_item_check label="Mini-kaart" name="Mini-Map"/>
- <menu_item_separator label="-----------" name="separator3"/>
- <menu_item_check label="Statistiekenbalk" name="Statistics Bar"/>
- <menu_item_check label="Eigendomlijnen" name="Property Lines"/>
- <menu_item_check label="Landeigenaren" name="Land Owners"/>
- <menu_item_separator label="-----------" name="separator4"/>
- <menu label="Tooltips" name="Hover Tips">
- <menu_item_check label="Toon tips" name="Show Tips"/>
- <menu_item_separator label="-----------" name="separator"/>
- <menu_item_check label="Land tips" name="Land Tips"/>
- <menu_item_check label="Tips voor alle objecten" name="Tips On All Objects"/>
- </menu>
- <menu_item_check label="Markeer transparant" name="Highlight Transparent"/>
- <menu_item_check label="Bakens" name="beacons"/>
- <menu_item_check label="Verberg particles" name="Hide Particles"/>
- <menu_item_check label="Toon HUD bevestigingen" name="Show HUD Attachments"/>
- <menu_item_separator label="-----------" name="separator5"/>
- <menu_item_call label="Inzoomen" name="Zoom In"/>
- <menu_item_call label="Zoom standaard" name="Zoom Default"/>
- <menu_item_call label="Uitzoomen" name="Zoom Out"/>
- <menu_item_separator label="-----------" name="separator6"/>
- <menu_item_call label="Schakelen naar volledig scherm" name="Toggle Fullscreen"/>
- <menu_item_call label="UI grootte naar standaard instellen" name="Set UI Size to Default"/>
- </menu>
- <menu label="Wereld" name="World">
- <menu_item_call label="Chat" name="Chat"/>
- <menu_item_check label="Altijd rennen" name="Always Run"/>
- <menu_item_check label="Vliegen" name="Fly"/>
- <menu_item_separator label="-----------" name="separator"/>
- <menu_item_call label="Maak hier landmarkering" name="Create Landmark Here"/>
- <menu_item_call label="Thuis hier instellen" name="Set Home to Here"/>
- <menu_item_separator label="-----------" name="separator2"/>
- <menu_item_call label="Teleport naar huis" name="Teleport Home"/>
- <menu_item_separator label="-----------" name="separator3"/>
- <menu_item_call label="Afwezig instellen" name="Set Away"/>
- <menu_item_call label="Niet-storen instellen" name="Set Busy"/>
- <menu_item_call label="Stop alle animaties" name="Stop All Animations"/>
- <menu_item_call label="Toetsen vrijgeven" name="Release Keys"/>
- <menu_item_separator label="-----------" name="separator4"/>
- <menu_item_call label="Account geschiedenis..." name="Account History..."/>
- <menu_item_call label="Beheer mijn account" name="Manage My Account..."/>
- <menu_item_call label="Koop L$..." name="Buy and Sell L$..."/>
- <menu_item_separator label="-----------" name="separator5"/>
- <menu_item_call label="Mijn land..." name="My Land..."/>
- <menu_item_call label="Over land..." name="About Land..."/>
- <menu_item_call label="Koop land..." name="Buy Land..."/>
- <menu_item_call label="Regio/Estate..." name="Region/Estate..."/>
- <menu_item_separator label="-----------" name="separator6"/>
- <menu label="Omgeving instellingen" name="Environment Settings">
- <menu_item_call label="Zonsopgang" name="Sunrise"/>
- <menu_item_call label="Middag" name="Noon"/>
- <menu_item_call label="Zonsondergang" name="Sunset"/>
- <menu_item_call label="Middernacht" name="Midnight"/>
- <menu_item_call label="Herstel naar regiostandaard" name="Revert to Region Default"/>
- <menu_item_separator label="-----------" name="separator"/>
- <menu_item_call label="Omgeving editor" name="Environment Editor"/>
- </menu>
- </menu>
- <menu label="Gereedschappen" name="Tools">
- <menu label="Selecteergereedschap" name="Select Tool">
- <menu_item_call label="Focus" name="Focus"/>
- <menu_item_call label="Verplaatsen" name="Move"/>
- <menu_item_call label="Bewerken" name="Edit"/>
- <menu_item_call label="Maak" name="Create"/>
- <menu_item_call label="Land" name="Land"/>
- </menu>
- <menu_item_separator label="-----------" name="separator"/>
- <menu_item_check label="Selecteer alleen mijn objecten" name="Select Only My Objects"/>
- <menu_item_check label="Selecteer alleen verplaatsbare objecten" name="Select Only Movable Objects"/>
- <menu_item_check label="Selecteer op omgeving" name="Select By Surrounding"/>
- <menu_item_check label="Toon verborgen selectie" name="Show Hidden Selection"/>
- <menu_item_check label="Toon lichtradius voor selectie" name="Show Light Radius for Selection"/>
- <menu_item_check label="Toon selectiestraal" name="Show Selection Beam"/>
- <menu_item_separator label="-----------" name="separator2"/>
- <menu_item_check label="Snap aan grid" name="Snap to Grid"/>
- <menu_item_call label="Snap object XY aan grid" name="Snap Object XY to Grid"/>
- <menu_item_call label="Gebruik selectie voor grid" name="Use Selection for Grid"/>
- <menu_item_call label="Gridopties..." name="Grid Options..."/>
- <menu_item_separator label="-----------" name="separator3"/>
- <menu_item_check label="Bewerk gekoppelde delen" name="Edit Linked Parts"/>
- <menu_item_call label="Koppel" name="Link"/>
- <menu_item_call label="Ontkoppel" name="Unlink"/>
- <menu_item_separator label="-----------" name="separator4"/>
- <menu_item_call label="Focus op selectie" name="Focus on Selection"/>
- <menu_item_call label="Zoom naar selectie" name="Zoom to Selection"/>
- <menu_item_call label="Koop object" name="Menu Object Take"/>
- <menu_item_call label="Neem kopie" name="Take Copy"/>
- <menu_item_call label="Object terug opslaan in mijn inventaris" name="Save Object Back to My Inventory"/>
- <menu_item_call label="Object terug opslaan in objectinhoud" name="Save Object Back to Object Contents"/>
- <menu_item_separator label="-----------" name="separator6"/>
- <menu_item_call label="Toon script waarschuwing/fout venster" name="Show Script Warning/Error Window"/>
- <menu label="Hercompileer scripts in selectie" name="Recompile Scripts in Selection">
- <menu_item_call label="Mono" name="Mono"/>
- <menu_item_call label="LSL" name="LSL"/>
- </menu>
- <menu_item_call label="Scripts in selectie opnieuw instellen" name="Reset Scripts in Selection"/>
- <menu_item_call label="Scripts in selectie instellen op uitvoeren" name="Set Scripts to Running in Selection"/>
- <menu_item_call label="Scripts in selectie instellen op niet uitvoeren" name="Set Scripts to Not Running in Selection"/>
- </menu>
- <menu label="Help" name="Help">
- <menu_item_call label="Second Life Help" name="Second Life Help"/>
- <menu_item_call label="Handleiding" name="Tutorial"/>
- <menu_item_separator label="-----------" name="separator"/>
- <menu_item_call label="Officiële Linden blog..." name="Official Linden Blog..."/>
- <menu_item_separator label="-----------" name="separator2"/>
- <menu_item_call label="Scripting portaal..." name="Scripting Portal..."/>
- <menu_item_separator label="-----------" name="separator3"/>
- <menu_item_call label="Rapporteer misbruik..." name="Report Abuse..."/>
- <menu_item_call label="Botsingen, duwen &amp; slaan" name="Bumps, Pushes &amp;amp; Hits..."/>
- <menu_item_call label="Lag Meter" name="Lag Meter"/>
- <menu_item_separator label="-----------" name="separator7"/>
- <menu label="Bug rapporteren" name="Bug Reporting">
- <menu_item_call label="Publieke problemenlijst..." name="Public Issue Tracker..."/>
- <menu_item_call label="Publieke problemenlijst help" name="Publc Issue Tracker Help..."/>
- <menu_item_separator label="-----------" name="separator7"/>
- <menu_item_call label="Bug rapporteren 101" name="Bug Reporing 101..."/>
- <menu_item_call label="Beveiligingsbevindingen..." name="Security Issues..."/>
- <menu_item_call label="Kwaliteitsbeheersing Wiki..." name="QA Wiki..."/>
- <menu_item_separator label="-----------" name="separator9"/>
- <menu_item_call label="Rapporteer bug..." name="Report Bug..."/>
- </menu>
- <menu_item_call label="Over Second Life..." name="About Second Life..."/>
- </menu>
-</menu_bar>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu_bar name="Main Menu">
+ <menu label="Bestand" name="File">
+ <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~"/>
+ <menu label="Upload" name="upload">
+ <menu_item_call label="Afbeelding (L$[COST])..." name="Upload Image"/>
+ <menu_item_call label="Geluid (L$[COST])..." name="Upload Sound"/>
+ <menu_item_call label="Animatie (L$[COST])..." name="Upload Animation"/>
+ <menu_item_call label="Bulk (L$[COST] per bestand)..." name="Bulk Upload"/>
+ <menu_item_separator label="-----------" name="separator"/>
+ <menu_item_call label="Standaard permissies instellen..." name="perm prefs"/>
+ </menu>
+ <menu_item_separator label="-----------" name="separator"/>
+ <menu_item_call label="Sluit venster" name="Close Window"/>
+ <menu_item_call label="Sluit alle vensters" name="Close All Windows"/>
+ <menu_item_separator label="-----------" name="separator2"/>
+ <menu_item_call label="Textuur opslaan als..." name="Save Texture As..."/>
+ <menu_item_separator label="-----------" name="separator3"/>
+ <menu_item_call label="Maak foto" name="Take Snapshot"/>
+ <menu_item_call label="Foto naar harde schijf" name="Snapshot to Disk"/>
+ <menu_item_separator label="-----------" name="separator4"/>
+ <menu_item_call label="Afsluiten" name="Quit"/>
+ </menu>
+ <menu label="Bewerken" name="Edit">
+ <menu_item_call label="Ongedaan maken" name="Undo"/>
+ <menu_item_call label="Herhalen" name="Redo"/>
+ <menu_item_separator label="-----------" name="separator"/>
+ <menu_item_call label="Knippen" name="Cut"/>
+ <menu_item_call label="Kopiëren" name="Copy"/>
+ <menu_item_call label="Plakken" name="Paste"/>
+ <menu_item_call label="Verwijderen" name="Delete"/>
+ <menu_item_separator label="-----------" name="separator2"/>
+ <menu_item_call label="Zoeken..." name="Search..."/>
+ <menu_item_separator label="-----------" name="separator3"/>
+ <menu_item_call label="Alles selecteren" name="Select All"/>
+ <menu_item_call label="Deselecteren" name="Deselect"/>
+ <menu_item_separator label="-----------" name="separator4"/>
+ <menu_item_call label="Dupliceren" name="Duplicate"/>
+ <menu_item_separator label="-----------" name="separator5"/>
+ <menu label="Bevestig object" name="Attach Object"/>
+ <menu label="Object losmaken" name="Detach Object"/>
+ <menu label="Kleding uitdoen" name="Take Off Clothing">
+ <menu_item_call label="Hemd" name="Shirt"/>
+ <menu_item_call label="Broek" name="Pants"/>
+ <menu_item_call label="Schoenen" name="Shoes"/>
+ <menu_item_call label="Sokken" name="Socks"/>
+ <menu_item_call label="Jas" name="Jacket"/>
+ <menu_item_call label="Handschoenen" name="Gloves"/>
+ <menu_item_call label="Onderhemd" name="Menu Undershirt"/>
+ <menu_item_call label="Onderbroek" name="Menu Underpants"/>
+ <menu_item_call label="Rok" name="Skirt"/>
+ <menu_item_call label="Alle kleding" name="All Clothes"/>
+ </menu>
+ <menu_item_separator label="-----------" name="separator6"/>
+ <menu_item_call label="Gebaren..." name="Gestures..."/>
+ <menu_item_call label="Profiel..." name="Profile..."/>
+ <menu_item_call label="Uiterlijk..." name="Appearance..."/>
+ <menu_item_separator label="-----------" name="separator7"/>
+ <menu_item_check label="Vrienden..." name="Friends..."/>
+ <menu_item_call label="Groepen..." name="Groups..."/>
+ <menu_item_separator label="-----------" name="separator8"/>
+ <menu_item_call label="Voorkeuren..." name="Preferences..."/>
+ </menu>
+ <menu label="Weergave" name="View">
+ <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~"/>
+ <menu_item_call label="Mouselook" name="Mouselook"/>
+ <menu_item_check label="Bouwen" name="Build"/>
+ <menu_item_check label="Joystick vliegcamera" name="Joystick Flycam"/>
+ <menu_item_call label="Weergave opnieuw instellen" name="Reset View"/>
+ <menu_item_call label="Kijk naar laatste geklets" name="Look at Last Chatter"/>
+ <menu_item_separator label="-----------" name="separator"/>
+ <menu_item_check label="Werkbalk" name="Toolbar"/>
+ <menu_item_check label="Lokale chat" name="Chat History"/>
+ <menu_item_check label="Communiceren" name="Instant Message"/>
+ <menu_item_check label="Inventaris" name="Inventory"/>
+ <menu_item_check label="Actieve sprekers" name="Active Speakers"/>
+ <menu_item_check label="Negeerlijst" name="Mute List"/>
+ <menu_item_separator label="-----------" name="separator2"/>
+ <menu_item_check label="Camerabediening" name="Camera Controls"/>
+ <menu_item_check label="Bewegingsbediening" name="Movement Controls"/>
+ <menu_item_check label="Wereldkaart" name="World Map"/>
+ <menu_item_check label="Mini-kaart" name="Mini-Map"/>
+ <menu_item_separator label="-----------" name="separator3"/>
+ <menu_item_check label="Statistiekenbalk" name="Statistics Bar"/>
+ <menu_item_check label="Eigendomlijnen" name="Property Lines"/>
+ <menu_item_check label="Banlijnen" name="Banlines"/>
+ <menu_item_check label="Landeigenaren" name="Land Owners"/>
+ <menu_item_separator label="-----------" name="separator4"/>
+ <menu label="Tooltips" name="Hover Tips">
+ <menu_item_check label="Toon tips" name="Show Tips"/>
+ <menu_item_separator label="-----------" name="separator"/>
+ <menu_item_check label="Land tips" name="Land Tips"/>
+ <menu_item_check label="Tips voor alle objecten" name="Tips On All Objects"/>
+ </menu>
+ <menu_item_check label="Markeer transparant" name="Highlight Transparent"/>
+ <menu_item_check label="Bakens" name="beacons"/>
+ <menu_item_check label="Verberg particles" name="Hide Particles"/>
+ <menu_item_check label="Toon HUD bevestigingen" name="Show HUD Attachments"/>
+ <menu_item_separator label="-----------" name="separator5"/>
+ <menu_item_call label="Inzoomen" name="Zoom In"/>
+ <menu_item_call label="Zoom standaard" name="Zoom Default"/>
+ <menu_item_call label="Uitzoomen" name="Zoom Out"/>
+ <menu_item_separator label="-----------" name="separator6"/>
+ <menu_item_call label="Schakelen naar volledig scherm" name="Toggle Fullscreen"/>
+ <menu_item_call label="UI grootte naar standaard instellen" name="Set UI Size to Default"/>
+ </menu>
+ <menu label="Wereld" name="World">
+ <menu_item_call label="Chat" name="Chat"/>
+ <menu_item_check label="Altijd rennen" name="Always Run"/>
+ <menu_item_check label="Vliegen" name="Fly"/>
+ <menu_item_separator label="-----------" name="separator"/>
+ <menu_item_call label="Maak hier landmarkering" name="Create Landmark Here"/>
+ <menu_item_call label="Thuis hier instellen" name="Set Home to Here"/>
+ <menu_item_separator label="-----------" name="separator2"/>
+ <menu_item_call label="Teleport naar huis" name="Teleport Home"/>
+ <menu_item_separator label="-----------" name="separator3"/>
+ <menu_item_call label="Afwezig instellen" name="Set Away"/>
+ <menu_item_call label="Niet-storen instellen" name="Set Busy"/>
+ <menu_item_call label="Stop het animeren van mijn avatar" name="Stop Animating My Avatar"/>
+ <menu_item_call label="Toetsen vrijgeven" name="Release Keys"/>
+ <menu_item_separator label="-----------" name="separator4"/>
+ <menu_item_call label="Account geschiedenis..." name="Account History..."/>
+ <menu_item_call label="Beheer mijn account" name="Manage My Account..."/>
+ <menu_item_call label="Koop L$..." name="Buy and Sell L$..."/>
+ <menu_item_separator label="-----------" name="separator5"/>
+ <menu_item_call label="Mijn land..." name="My Land..."/>
+ <menu_item_call label="Over land..." name="About Land..."/>
+ <menu_item_call label="Koop land..." name="Buy Land..."/>
+ <menu_item_call label="Regio/Estate..." name="Region/Estate..."/>
+ <menu_item_separator label="-----------" name="separator6"/>
+ <menu label="Omgeving instellingen" name="Environment Settings">
+ <menu_item_call label="Zonsopgang" name="Sunrise"/>
+ <menu_item_call label="Middag" name="Noon"/>
+ <menu_item_call label="Zonsondergang" name="Sunset"/>
+ <menu_item_call label="Middernacht" name="Midnight"/>
+ <menu_item_call label="Herstel naar regiostandaard" name="Revert to Region Default"/>
+ <menu_item_separator label="-----------" name="separator"/>
+ <menu_item_call label="Omgeving editor" name="Environment Editor"/>
+ </menu>
+ </menu>
+ <menu label="Gereedschappen" name="Tools">
+ <menu label="Selecteergereedschap" name="Select Tool">
+ <menu_item_call label="Focus" name="Focus"/>
+ <menu_item_call label="Verplaatsen" name="Move"/>
+ <menu_item_call label="Bewerken" name="Edit"/>
+ <menu_item_call label="Maak" name="Create"/>
+ <menu_item_call label="Land" name="Land"/>
+ </menu>
+ <menu_item_separator label="-----------" name="separator"/>
+ <menu_item_check label="Selecteer alleen mijn objecten" name="Select Only My Objects"/>
+ <menu_item_check label="Selecteer alleen verplaatsbare objecten" name="Select Only Movable Objects"/>
+ <menu_item_check label="Selecteer op omgeving" name="Select By Surrounding"/>
+ <menu_item_check label="Toon verborgen selectie" name="Show Hidden Selection"/>
+ <menu_item_check label="Toon lichtradius voor selectie" name="Show Light Radius for Selection"/>
+ <menu_item_check label="Toon selectiestraal" name="Show Selection Beam"/>
+ <menu_item_separator label="-----------" name="separator2"/>
+ <menu_item_check label="Snap aan grid" name="Snap to Grid"/>
+ <menu_item_call label="Snap object XY aan grid" name="Snap Object XY to Grid"/>
+ <menu_item_call label="Gebruik selectie voor grid" name="Use Selection for Grid"/>
+ <menu_item_call label="Gridopties..." name="Grid Options..."/>
+ <menu_item_separator label="-----------" name="separator3"/>
+ <menu_item_check label="Bewerk gekoppelde delen" name="Edit Linked Parts"/>
+ <menu_item_call label="Koppel" name="Link"/>
+ <menu_item_call label="Ontkoppel" name="Unlink"/>
+ <menu_item_separator label="-----------" name="separator4"/>
+ <menu_item_call label="Focus op selectie" name="Focus on Selection"/>
+ <menu_item_call label="Zoom naar selectie" name="Zoom to Selection"/>
+ <menu_item_call label="Koop object" name="Menu Object Take"/>
+ <menu_item_call label="Neem kopie" name="Take Copy"/>
+ <menu_item_call label="Object terug opslaan in objectinhoud" name="Save Object Back to Object Contents"/>
+ <menu_item_separator label="-----------" name="separator6"/>
+ <menu_item_call label="Toon script waarschuwing/fout venster" name="Show Script Warning/Error Window"/>
+ <menu label="Hercompileer scripts in selectie" name="Recompile Scripts in Selection">
+ <menu_item_call label="Mono" name="Mono"/>
+ <menu_item_call label="LSL" name="LSL"/>
+ </menu>
+ <menu_item_call label="Scripts in selectie opnieuw instellen" name="Reset Scripts in Selection"/>
+ <menu_item_call label="Scripts in selectie instellen op uitvoeren" name="Set Scripts to Running in Selection"/>
+ <menu_item_call label="Scripts in selectie instellen op niet uitvoeren" name="Set Scripts to Not Running in Selection"/>
+ </menu>
+ <menu label="Help" name="Help">
+ <menu_item_call label="Second Life Help" name="Second Life Help"/>
+ <menu_item_call label="Handleiding" name="Tutorial"/>
+ <menu_item_separator label="-----------" name="separator"/>
+ <menu_item_call label="Officiële Linden blog..." name="Official Linden Blog..."/>
+ <menu_item_separator label="-----------" name="separator2"/>
+ <menu_item_call label="Scripting portaal..." name="Scripting Portal..."/>
+ <menu_item_separator label="-----------" name="separator3"/>
+ <menu_item_call label="Rapporteer misbruik..." name="Report Abuse..."/>
+ <menu_item_call label="Botsingen, duwen &amp; slaan" name="Bumps, Pushes &amp;amp; Hits..."/>
+ <menu_item_call label="Lag Meter" name="Lag Meter"/>
+ <menu_item_separator label="-----------" name="separator7"/>
+ <menu label="Bug rapporteren" name="Bug Reporting">
+ <menu_item_call label="Publieke problemenlijst..." name="Public Issue Tracker..."/>
+ <menu_item_call label="Publieke problemenlijst help" name="Publc Issue Tracker Help..."/>
+ <menu_item_separator label="-----------" name="separator7"/>
+ <menu_item_call label="Bug rapporteren 101" name="Bug Reporing 101..."/>
+ <menu_item_call label="Beveiligingsbevindingen..." name="Security Issues..."/>
+ <menu_item_call label="Kwaliteitsbeheersing Wiki..." name="QA Wiki..."/>
+ <menu_item_separator label="-----------" name="separator9"/>
+ <menu_item_call label="Rapporteer bug..." name="Report Bug..."/>
+ </menu>
+ <menu_item_call label="Over Second Life..." name="About Second Life..."/>
+ </menu>
+</menu_bar>
diff --git a/indra/newview/skins/default/xui/nl/mime_types.xml b/indra/newview/skins/default/xui/nl/mime_types.xml
index f6ff9e0be4..ba5de136a0 100644
--- a/indra/newview/skins/default/xui/nl/mime_types.xml
+++ b/indra/newview/skins/default/xui/nl/mime_types.xml
@@ -1,230 +1,230 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<mimetypes name="default">
- <widgetset name="web">
- <label name="web_label">
- Web Inhoud
- </label>
- <tooltip name="web_tooltip">
- Deze locatie bevat Web inhoud
- </tooltip>
- <playtip name="web_playtip">
- Toon Web inhoud
- </playtip>
- </widgetset>
- <widgetset name="movie">
- <label name="movie_label">
- Film
- </label>
- <tooltip name="movie_tooltip">
- Hier kan een film afgespeeld worden
- </tooltip>
- <playtip name="movie_playtip">
- Afspelen film
- </playtip>
- </widgetset>
- <widgetset name="none">
- <label name="none_label">
- Geen Inhoud
- </label>
- <tooltip name="none_tooltip">
- Geen media hier
- </tooltip>
- </widgetset>
- <widgetset name="image">
- <label name="image_label">
- Afbeelding
- </label>
- <tooltip name="image_tooltip">
- Er is een afbeelding op deze locatie
- </tooltip>
- <playtip name="image_playtip">
- Bekijk de afbeelding van deze locatie
- </playtip>
- </widgetset>
- <widgetset name="audio">
- <label name="audio_label">
- Audio
- </label>
- <tooltip name="audio_tooltip">
- Er is audio op deze locatie
- </tooltip>
- <playtip name="audio_playtip">
- Speel de audio van deze locatie af
- </playtip>
- </widgetset>
- <scheme name="rtsp">
- <label name="rtsp_label">
- Real Time Streaming
- </label>
- </scheme>
- <mimetype name="blank">
- <label name="blank_label">
- - Geen -
- </label>
- </mimetype>
- <mimetype name="none/none">
- <label name="none/none_label">
- - Geen -
- </label>
- </mimetype>
- <mimetype name="audio/*">
- <label name="audio2_label">
- Audio
- </label>
- </mimetype>
- <mimetype name="video/*">
- <label name="video2_label">
- Video
- </label>
- </mimetype>
- <mimetype name="image/*">
- <label name="image2_label">
- Afbeelding
- </label>
- </mimetype>
- <mimetype name="video/vnd.secondlife.qt.legacy">
- <label name="vnd.secondlife.qt.legacy_label">
- Film (QuickTime)
- </label>
- </mimetype>
- <mimetype name="application/javascript">
- <label name="application/javascript_label">
- Javascript
- </label>
- </mimetype>
- <mimetype name="application/ogg">
- <label name="application/ogg_label">
- Ogg Audio/Video
- </label>
- </mimetype>
- <mimetype name="application/pdf">
- <label name="application/pdf_label">
- PDF Document
- </label>
- </mimetype>
- <mimetype name="application/postscript">
- <label name="application/postscript_label">
- Postscript Document
- </label>
- </mimetype>
- <mimetype name="application/rtf">
- <label name="application/rtf_label">
- Rich Text (RTF)
- </label>
- </mimetype>
- <mimetype name="application/smil">
- <label name="application/smil_label">
- Synchronized Multimedia Integration Language (SMIL)
- </label>
- </mimetype>
- <mimetype name="application/xhtml+xml">
- <label name="application/xhtml+xml_label">
- Web Pagina (XHTML)
- </label>
- </mimetype>
- <mimetype name="application/x-director">
- <label name="application/x-director_label">
- Macromedia Director
- </label>
- </mimetype>
- <mimetype name="application/x-shockwave-flash">
- <label name="application/x-shockwave-flash_label">
- Flash
- </label>
- </mimetype>
- <mimetype name="audio/mid">
- <label name="audio/mid_label">
- Audio (MIDI)
- </label>
- </mimetype>
- <mimetype name="audio/mpeg">
- <label name="audio/mpeg_label">
- Audio (MP3)
- </label>
- </mimetype>
- <mimetype name="audio/x-aiff">
- <label name="audio/x-aiff_label">
- Audio (AIFF)
- </label>
- </mimetype>
- <mimetype name="audio/x-wav">
- <label name="audio/x-wav_label">
- Audio (WAV)
- </label>
- </mimetype>
- <mimetype name="image/bmp">
- <label name="image/bmp_label">
- Afbeelding (BMP)
- </label>
- </mimetype>
- <mimetype name="image/gif">
- <label name="image/gif_label">
- Afbeelding (GIF)
- </label>
- </mimetype>
- <mimetype name="image/jpeg">
- <label name="image/jpeg_label">
- Afbeelding (JPEG)
- </label>
- </mimetype>
- <mimetype name="image/png">
- <label name="image/png_label">
- Afbeelding (PNG)
- </label>
- </mimetype>
- <mimetype name="image/svg+xml">
- <label name="image/svg+xml_label">
- Afbeelding (SVG)
- </label>
- </mimetype>
- <mimetype name="image/tiff">
- <label name="image/tiff_label">
- Afbeelding (TIFF)
- </label>
- </mimetype>
- <mimetype name="text/html">
- <label name="text/html_label">
- Web Pagina
- </label>
- </mimetype>
- <mimetype name="text/plain">
- <label name="text/plain_label">
- Tekst
- </label>
- </mimetype>
- <mimetype name="text/xml">
- <label name="text/xml_label">
- XML
- </label>
- </mimetype>
- <mimetype name="video/mpeg">
- <label name="video/mpeg_label">
- Film (MPEG)
- </label>
- </mimetype>
- <mimetype name="video/mp4">
- <label name="video/mp4_label">
- Film (MP4)
- </label>
- </mimetype>
- <mimetype name="video/quicktime">
- <label name="video/quicktime_label">
- Film (QuickTime)
- </label>
- </mimetype>
- <mimetype name="video/x-ms-asf">
- <label name="video/x-ms-asf_label">
- Film (Windows Media ASF)
- </label>
- </mimetype>
- <mimetype name="video/x-ms-wmv">
- <label name="video/x-ms-wmv_label">
- Film (Windows Media WMV)
- </label>
- </mimetype>
- <mimetype name="video/x-msvideo">
- <label name="video/x-msvideo_label">
- Film (AVI)
- </label>
- </mimetype>
-</mimetypes>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<mimetypes name="default">
+ <widgetset name="web">
+ <label name="web_label">
+ Web Inhoud
+ </label>
+ <tooltip name="web_tooltip">
+ Deze locatie bevat Web inhoud
+ </tooltip>
+ <playtip name="web_playtip">
+ Toon Web inhoud
+ </playtip>
+ </widgetset>
+ <widgetset name="movie">
+ <label name="movie_label">
+ Film
+ </label>
+ <tooltip name="movie_tooltip">
+ Hier kan een film afgespeeld worden
+ </tooltip>
+ <playtip name="movie_playtip">
+ Afspelen film
+ </playtip>
+ </widgetset>
+ <widgetset name="none">
+ <label name="none_label">
+ Geen Inhoud
+ </label>
+ <tooltip name="none_tooltip">
+ Geen media hier
+ </tooltip>
+ </widgetset>
+ <widgetset name="image">
+ <label name="image_label">
+ Afbeelding
+ </label>
+ <tooltip name="image_tooltip">
+ Er is een afbeelding op deze locatie
+ </tooltip>
+ <playtip name="image_playtip">
+ Bekijk de afbeelding van deze locatie
+ </playtip>
+ </widgetset>
+ <widgetset name="audio">
+ <label name="audio_label">
+ Audio
+ </label>
+ <tooltip name="audio_tooltip">
+ Er is audio op deze locatie
+ </tooltip>
+ <playtip name="audio_playtip">
+ Speel de audio van deze locatie af
+ </playtip>
+ </widgetset>
+ <scheme name="rtsp">
+ <label name="rtsp_label">
+ Real Time Streaming
+ </label>
+ </scheme>
+ <mimetype name="blank">
+ <label name="blank_label">
+ - Geen -
+ </label>
+ </mimetype>
+ <mimetype name="none/none">
+ <label name="none/none_label">
+ - Geen -
+ </label>
+ </mimetype>
+ <mimetype name="audio/*">
+ <label name="audio2_label">
+ Audio
+ </label>
+ </mimetype>
+ <mimetype name="video/*">
+ <label name="video2_label">
+ Video
+ </label>
+ </mimetype>
+ <mimetype name="image/*">
+ <label name="image2_label">
+ Afbeelding
+ </label>
+ </mimetype>
+ <mimetype name="video/vnd.secondlife.qt.legacy">
+ <label name="vnd.secondlife.qt.legacy_label">
+ Film (QuickTime)
+ </label>
+ </mimetype>
+ <mimetype name="application/javascript">
+ <label name="application/javascript_label">
+ Javascript
+ </label>
+ </mimetype>
+ <mimetype name="application/ogg">
+ <label name="application/ogg_label">
+ Ogg Audio/Video
+ </label>
+ </mimetype>
+ <mimetype name="application/pdf">
+ <label name="application/pdf_label">
+ PDF Document
+ </label>
+ </mimetype>
+ <mimetype name="application/postscript">
+ <label name="application/postscript_label">
+ Postscript Document
+ </label>
+ </mimetype>
+ <mimetype name="application/rtf">
+ <label name="application/rtf_label">
+ Rich Text (RTF)
+ </label>
+ </mimetype>
+ <mimetype name="application/smil">
+ <label name="application/smil_label">
+ Synchronized Multimedia Integration Language (SMIL)
+ </label>
+ </mimetype>
+ <mimetype name="application/xhtml+xml">
+ <label name="application/xhtml+xml_label">
+ Web Pagina (XHTML)
+ </label>
+ </mimetype>
+ <mimetype name="application/x-director">
+ <label name="application/x-director_label">
+ Macromedia Director
+ </label>
+ </mimetype>
+ <mimetype name="application/x-shockwave-flash">
+ <label name="application/x-shockwave-flash_label">
+ Flash
+ </label>
+ </mimetype>
+ <mimetype name="audio/mid">
+ <label name="audio/mid_label">
+ Audio (MIDI)
+ </label>
+ </mimetype>
+ <mimetype name="audio/mpeg">
+ <label name="audio/mpeg_label">
+ Audio (MP3)
+ </label>
+ </mimetype>
+ <mimetype name="audio/x-aiff">
+ <label name="audio/x-aiff_label">
+ Audio (AIFF)
+ </label>
+ </mimetype>
+ <mimetype name="audio/x-wav">
+ <label name="audio/x-wav_label">
+ Audio (WAV)
+ </label>
+ </mimetype>
+ <mimetype name="image/bmp">
+ <label name="image/bmp_label">
+ Afbeelding (BMP)
+ </label>
+ </mimetype>
+ <mimetype name="image/gif">
+ <label name="image/gif_label">
+ Afbeelding (GIF)
+ </label>
+ </mimetype>
+ <mimetype name="image/jpeg">
+ <label name="image/jpeg_label">
+ Afbeelding (JPEG)
+ </label>
+ </mimetype>
+ <mimetype name="image/png">
+ <label name="image/png_label">
+ Afbeelding (PNG)
+ </label>
+ </mimetype>
+ <mimetype name="image/svg+xml">
+ <label name="image/svg+xml_label">
+ Afbeelding (SVG)
+ </label>
+ </mimetype>
+ <mimetype name="image/tiff">
+ <label name="image/tiff_label">
+ Afbeelding (TIFF)
+ </label>
+ </mimetype>
+ <mimetype name="text/html">
+ <label name="text/html_label">
+ Web Pagina
+ </label>
+ </mimetype>
+ <mimetype name="text/plain">
+ <label name="text/plain_label">
+ Tekst
+ </label>
+ </mimetype>
+ <mimetype name="text/xml">
+ <label name="text/xml_label">
+ XML
+ </label>
+ </mimetype>
+ <mimetype name="video/mpeg">
+ <label name="video/mpeg_label">
+ Film (MPEG)
+ </label>
+ </mimetype>
+ <mimetype name="video/mp4">
+ <label name="video/mp4_label">
+ Film (MP4)
+ </label>
+ </mimetype>
+ <mimetype name="video/quicktime">
+ <label name="video/quicktime_label">
+ Film (QuickTime)
+ </label>
+ </mimetype>
+ <mimetype name="video/x-ms-asf">
+ <label name="video/x-ms-asf_label">
+ Film (Windows Media ASF)
+ </label>
+ </mimetype>
+ <mimetype name="video/x-ms-wmv">
+ <label name="video/x-ms-wmv_label">
+ Film (Windows Media WMV)
+ </label>
+ </mimetype>
+ <mimetype name="video/x-msvideo">
+ <label name="video/x-msvideo_label">
+ Film (AVI)
+ </label>
+ </mimetype>
+</mimetypes>
diff --git a/indra/newview/skins/default/xui/nl/notifications.xml b/indra/newview/skins/default/xui/nl/notifications.xml
index c5aff54765..c64c2cd021 100644
--- a/indra/newview/skins/default/xui/nl/notifications.xml
+++ b/indra/newview/skins/default/xui/nl/notifications.xml
@@ -1,5791 +1,3085 @@
-<?xml version="1.0" ?><notifications>
-
- <global name="skipnexttime">
-
- Toon mij dit niet meer.
- </global>
-
- <global name="alwayschoose">
-
- Kies altijd deze optie
- </global>
-
- <template name="okbutton">
- <form>
- <button
-
-
- name="OK"
- text="$yestext"/>
- </form>
- </template>
-
- <template name="okignore">
- <form>
- <button
-
-
- name="OK"
- text="$yestext"/>
- <ignore text="$ignoretext"/>
- </form>
- </template>
-
- <template name="okcancelbuttons">
- <form>
- <button
-
-
- name="OK"
- text="$yestext"/>
- <button
-
- name="Cancel"
- text="$notext"/>
- </form>
- </template>
-
- <template name="okcancelignore">
- <form>
- <button
-
-
- name="OK"
- text="$yestext"/>
- <button
-
- name="Cancel"
- text="$notext"/>
- <ignore text="$ignoretext"/>
- </form>
- </template>
-
- <template name="okhelpbuttons">
- <form>
- <button
-
-
- name="OK"
- text="$yestext"/>
- <button
-
- name="Help"
- text="$helptext"/>
- </form>
- </template>
-
- <template name="yesnocancelbuttons">
- <form>
- <button
-
-
- name="Yes"
- text="$yestext"/>
- <button
-
- name="No"
- text="$notext"/>
- <button
-
- name="Cancel"
- text="$canceltext"/>
- </form>
- </template>
-
- <notification
- functor="GenericAcknowledge"
-
- name="MissingAlert"
- >
-&apos;[_NAME]&apos; ontbreekt in notifications.xml.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="FloaterNotFound"
- >
-Reële waarde fout: Kon de volgende controllers niet vinden:
-
-[CONTROLS]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="TutorialNotFound"
- >
-Er is momenteel geen handleiding beschikbaar.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GenericAlert"
- >
-[MESSAGE]
- </notification>
-
- <notification
-
- name="GenericAlertYesCancel"
- >
-[MESSAGE]
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="WearableSave"
- >
-Wijzigingen aan huidig kledingstuk/lichaamsdeel opslaan?
- <usetemplate
- canceltext="Annuleren"
- name="yesnocancelbuttons"
- notext="Niet Opslaan"
- yestext="Opslaan"/>
- </notification>
-
- <notification
-
- name="CompileQueueSaveText"
- >
-Er was een probleem met het uploaden van de tekst van een script vanwege de volgende reden: [REASON]. Probeer het alstublieft later nog eens.
- </notification>
-
- <notification
-
- name="CompileQueueSaveBytecode"
- >
-Er was een probleem met het uploaden van het gecompileerde script vanwege de volgende reden: [REASON]. Probeer het alstublieft later nog eens.
- </notification>
-
- <notification
-
- name="WriteAnimationFail"
- >
-Er was een probleem met het wegschrijven van animatie gegevens. Probeer het alstublieft later nog eens.
- </notification>
-
- <notification
-
- name="UploadAuctionSnapshotFail"
- >
-Er was een probleem met het uploaden van de veiling foto vanwege de volgende reden: [REASON]
- </notification>
-
- <notification
-
- name="UnableToViewContentsMoreThanOne"
- >
-Het is niet mogelijk om de inhoud van meer dan één item tegelijk te zien.
-Kies alstublieft slechts één item en probeer het opnieuw.
- </notification>
-
- <notification
-
- name="SaveClothingBodyChanges"
- >
-Wijzigingen aan kledingstuk/lichaamsdeel opslaan?
- <usetemplate
- canceltext="Annuleren"
- name="yesnocancelbuttons"
- notext="Niet Opslaan"
- yestext="Alles Opslaan"/>
- </notification>
-
- <notification
-
- name="GrantModifyRights"
- >
-Het geven van wijzigingsrechten aan een andere inwoner, maakt het voor hun mogelijk om elk willekeurig object te wijzigen, te verwijderen of om WILLEKEURIGE objecten die u in wereld heeft terug te nemen. Wees HEEL voorzichtig met het uitgeven van dit recht.
-Wilt u wijzigingsrechten aan [FIRST_NAME] [LAST_NAME] geven?
- <usetemplate
- name="okcancelbuttons"
- notext="Nee"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="GrantModifyRightsMultiple"
- >
-Het geven van wijzigingsrechten aan een andere inwoner, maakt het voor hun mogelijk elk WILLEKEURIG object te wijzigen die u in wereld heeft. Wees HEEL voorzichtig met het uitgeven van dit recht.
-Wilt u wijzigingsrechten aan de geselecteerde inwoners geven?
- <usetemplate
- name="okcancelbuttons"
- notext="Nee"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="RevokeModifyRights"
- >
-Wilt u de wijzigingsrechten voor [FIRST_NAME] [LAST_NAME] terugnemen?
- <usetemplate
- name="okcancelbuttons"
- notext="Nee"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="RevokeModifyRightsMultiple"
- >
-Wilt u de wijzigingsrechten voor de geselecteerde inwoners terugnemen?
- <usetemplate
- name="okcancelbuttons"
- notext="Nee"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="UnableToCreateGroup"
- >
-Kan geen groep aanmaken.
-[MESSAGE]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="PanelGroupApply"
- >
-[NEEDS_APPLY_MESSAGE]
-[WANT_APPLY_MESSAGE]
- <usetemplate
- canceltext="Annuleren"
- name="yesnocancelbuttons"
- notext="Wijzigingen Negeren"
- yestext="Wijzigingen Toepassen"/>
- </notification>
-
- <notification
-
- name="MustSpecifyGroupNoticeSubject"
- >
-U moet een onderwerp opgeven om dit bericht te kunnen versturen.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="AddGroupOwnerWarning"
- >
-U staat op het punt groepsleden de rol [ROLE_NAME] te geven.
-Leden kunnen niet van die groep worden verwijderd.
-De leden moeten zichzelf ontheffen uit deze rol.
-Weet u zeker dat u door wilt gaan?
- <usetemplate
- ignoretext="Wanneer u groepsleden toevoegt aan de eigenaren rol"
- name="okcancelignore"
- notext="Nee"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="AssignDangerousActionWarning"
- >
-U staat op het punt de Bekwaamheid &apos;[ACTION_NAME]&apos; aan de Rol &apos;[ROLE_NAME]&apos; toe te voegen.
-
- *WAARSCHUWING*
- Elk lid in de Rol met deze Bekwaamheid kan zichzelf - en elk ander lid - Rollen geven die meer mogelijkheden hebben dan waar zij nu over beschikken, zichzelf daarmee verheffend tot bijna eigenaar mogelijkheden. Weet zeker waar u mee bezig bent alvorens deze Bekwaamheid toe te kennen.
-
-Deze Bekwaamheid toevoegen aan &apos;[ROLE_NAME]&apos;?
- <usetemplate
- name="okcancelbuttons"
- notext="Nee"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="AssignDangerousAbilityWarning"
- >
-U staat op het punt de Bekwaamheid &apos;[ACTION_NAME]&apos; aan de Rol &apos;[ROLE_NAME]&apos; toe te voegen.
-
- *WAARSCHUWING*
- Elk lid in de Rol met deze Bekwaamheid kan zichzelf - en elk ander lid - alle Bekwaamheden geven, zich daarmee verheffend tot bijna Eigenaar mogelijkheden.
-
-Deze Bekwaamheid toevoegen aan &apos;[ROLE_NAME]&apos;?
- <usetemplate
- name="okcancelbuttons"
- notext="Nee"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="ClickPublishHelpLand"
- >
-Het selecteren van de &quot;Publiceer in Zoeken&quot; optie
-Het aan vinken van deze optie zal:
-- dit perceel weergeven in de zoek resultaten
-- de publieke objecten van dit perceel weergeven
-- dit perceel in web zoeken weergeven
- </notification>
-
- <notification
-
- name="ClickPublishHelpLandDisabled"
- >
-U kunt dit perceel niet zichtbaar maken in zoeken omdat het zich in een regio bevindt dat dit niet toelaat
- </notification>
-
- <notification
-
- name="ClickPublishHelpAvatar"
- >
-Het selecteren van &quot;Weergeven in Zoeken&quot; zal weergeven:
-- mijn profiel in de zoek resultaten
-- een link naar mijn profiel in de publieke groep pagina&apos;s
- </notification>
-
- <notification
-
- name="ClickPartnerHelpAvatar"
- >
-U kunt een andere Inwoner ten huwelijk vragen of een bestaand partner schap verbreken via de [SECOND_LIFE] website.
-
-Naar de Second Life website gaan voor meer informatie over partner schap?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="Ga naar Pagina"/>
- </notification>
-
- <notification
-
- name="ClickWebProfileHelpAvatar"
- >
-Als een Inwoner een web profiel URL heeft ingesteld:
-* Klik op &apos;Laden&apos; om de pagina in deze web tab te zien.
-* Klik op Laden &gt; &apos;In externe browser&apos; om de pagina in uw standaard browser te zien
-* Klik op Laden &gt; &apos;Thuis pagina URL&apos; om terug te keren naar het web profiel van deze Inwoner indien U verder genavigeerd bent.
-
-Indien u uw eigen profiel bekijkt, kunt U elke willekeurige URL opgeven als uw web profiel en op OK klikken om het in te stellen.
-Andere Inwoners kunnen de door U opgegeven URL bezoeken indien zijn uw profiel bekijken.
- </notification>
-
- <notification
-
- name="JoinGroupCanAfford"
- >
-Deelname aan deze groep kost L$[COST].
-Wilt u doorgaan?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="Deelnemen"/>
- </notification>
-
- <notification
-
- name="JoinGroupCannotAfford"
- >
-Deelname aan deze groep kost L$[COST].
-U heeft niet genoeg L$ om deel te kunnen nemen aan deze groep.
- </notification>
-
- <notification
-
- name="LandBuyPass"
- >
-Voor L$[COST] krijgt u toegang tot het land (&apos;[PARCEL_NAME]&apos;) voor de duur van [TIME] uur.
-
-Een pas kopen?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SalePriceRestriction"
- >
-De verkoopprijs moet ingesteld staan op meer dan L$0 indien u aan iemand verkoopt.
-Kies een individu indien u het voor L$0 verkoopt.
- </notification>
-
- <notification
-
- name="ConfirmLandSaleChange"
-
- >
-De geselecteerde [LAND_SIZE] m² land is te koop gezet.
-Uw verkoopprijs is L$[SALE_PRICE] en zal geautoriseerd worden voor verkoop door [NAME].
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmLandSaleToAnyoneChange"
- >
-ATTENTIE: Het aanklikken van &apos;verkoop aan iedereen&apos; zal uw land beschikbaar maken aan de gehele Second Life gemeenschap, zo ook diegenen niet in deze regio!
-
-De geselecteerde [LAND_SIZE] m² land is te koop gezet.
-Uw verkoopprijs is L$[SALE_PRICE] en zal geautoriseerd worden voor verkoop door [NAME].
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsDeededToGroup"
- >
-Weet u zeker dat u alle met de groep &apos;[NAME]&apos; gedeelde objecten van dit perceel wilt retourneren naar de inventaris van hun vorige eigenaren?
-
-*WAARSCHUWING* Dit zal alle niet-overdraagbare aan de groep toegekende objecten verwijderen!
-
-Objecten: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsOwnedByUser"
- >
-Weet u zeker dat u alle objecten van Inwoner &apos;[NAME]&apos; op dit perceel wilt retourneren naar hun inventaris?
-
-Objecten: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsOwnedBySelf"
- >
-Weet u zeker dat u al uw eigen objecten op dit perceel wilt retourneren naar uw inventaris?
-
-Objecten: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsNotOwnedBySelf"
- >
-Weet u zeker dat u alle objecten op dit perceel die geen eigendom van u zijn wilt retourneren naar de inventaris van hun eigenaren?
-Overdraagbare objecten toegekend aan de groep zullen worden geretourneerd naar de oorspronkelijke eigenaren.
-
-*WAARSCHUWING* Dit zal alle niet-overdraagbare aan de groep toegekende objecten verwijderen!
-
-Objecten: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsNotOwnedByUser"
- >
-Weet u zeker dat u alle objecten op dit perceel die GEEN eigendom zijn van [NAME] wilt retourneren naar de inventaris van hun eigenaar? Overdraagbare objecten toegekend aan de groep zullen worden geretourneerd naar de oorspronkelijke eigenaren.
-
-*WAARSCHUWING* Dit zal alle niet-overdraagbare aan de groep toegekende objecten verwijderen!
-
-Objecten: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnAllTopObjects"
- >
-Weet u zeker dat u alle weergegeven objecten wilt retourneren naar de inventaris van hun eigenaar?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="DisableAllTopObjects"
- >
-Weet u zeker dat u alle objecten in deze regio uit wilt schakelen?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsNotOwnedByGroup"
- >
-Alle objecten op dit perceel die NIET gedeeld worden met de groep [NAME] retourneren naar hun eigenaren?
-
-Objecten: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="UnableToDisableOutsideScripts"
- >
-Kan scripts niet uitschakelen.
-Voor de hele regio is letsel ingeschakeld.
-Scripts moeten toegestaan worden om wapens te kunnen laten werken.
- </notification>
-
- <notification
-
- name="MustBeInParcel"
- >
-U moet binnen een perceel staan om het Landings Punt in te stellen.
- </notification>
-
- <notification
-
- name="PromptRecipientEmail"
- >
-Geef alstublieft een geldig email adres op van de ontvanger(s).
- </notification>
-
- <notification
-
- name="PromptSelfEmail"
- >
-Voer uw email adres in.
- </notification>
-
- <notification
-
- name="PromptMissingSubjMsg"
- >
-Foto e-mailen met het standaard onderwerp of bericht?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ErrorProcessingSnapshot"
- >
-Fout opgetreden met het verwerken van de foto gegevens
- </notification>
-
- <notification
-
- name="ErrorEncodingSnapshot"
- >
-Fout opgetreden met het coderen van de foto.
- </notification>
-
- <notification
-
- name="ErrorUploadingPostcard"
- >
-Er is een probleem met het verzenden van de foto vanwege de volgende reden: [REASON]
- </notification>
-
- <notification
-
- name="ErrorUploadingReportScreenshot"
- >
-Er is een probleem met het uploaden van de rapport foto vanwege de volgende reden: [REASON]
- </notification>
-
- <notification
-
- name="MustAgreeToLogIn"
- >
-U moet akkoord gaan met de Voorwaarden van Dienstverlening (Terms of Service) om in te kunnen loggen in [SECOND_LIFE].
- </notification>
-
- <notification
-
- name="CouldNotPutOnOutfit"
- >
-Kon de outfit niet aan doen.
-De outfit folder bevat geen kleding, lichaamsdelen of externe bevestigingen.
- </notification>
-
- <notification
-
- name="CannotWearTrash"
- >
-U kunt geen kleding of lichaamsdelen aan trekken die zich in de vuilnisbak bevinden.
- </notification>
-
- <notification
-
- name="CannotWearInfoNotComplete"
- >
-U kunt dat item niet aantrekken omdat het nog niet geladen is. Probeer het over een minuut opnieuw.
- </notification>
-
- <notification
-
- name="MustHaveAccountToLogIn"
- >
-Oeps! Iets is nog leeg.
-U moet zowel de voornaam als de achternaam van uw avatar opgeven.
-
-U heeft een account nodig om [SECOND_LIFE] binnen te gaan. Wilt u er nu een maken?
- <usetemplate
- name="okcancelbuttons"
- notext="Probeer het opnieuw"
- yestext="Maak een nieuw account"/>
- </notification>
-
- <notification
-
- name="AddClassified"
- >
-Geclassificeerde advertenties verschijnen een week lang in de &apos;Advertentie&apos; sectie van de Zoek gids en op www.secondlife.com.
-Vul uw advertentie in en klik op &apos;Publiceer...&apos; om het toe te voegen aan de gids.
-Er zal u om een prijs worden gevraagd als u deze gaat publiceren.
-Indien u meer betaald zal uw advertentie hoger in de lijst verschijnen en ook hoger als men op sleutelwoorden zoekt.
- <usetemplate
- ignoretext="Indien u een advertentie toevoegt"
- name="okcancelignore"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="DeleteClassified"
- >
-Advertentie &apos;[NAME]&apos; verwijderen?
-Betaalde advertentiekosten zullen niet worden terug gestort.
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ClassifiedSave"
- >
-Wijzigingen in advertentie [NAME] opslaan?
- <usetemplate
- canceltext="Annuleren"
- name="yesnocancelbuttons"
- notext="Niet Opslaan"
- yestext="Opslaan"/>
- </notification>
-
- <notification
-
- name="DeleteAvatarPick"
- >
-Favoriet [PICK] verwijderen?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="PromptGoToEventsPage"
- >
-Naar de [SECOND_LIFE] evenementen web pagina gaan?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SelectProposalToView"
- >
-Kies alstublieft een voorstel om in te zien.
- </notification>
-
- <notification
-
- name="SelectHistoryItemToView"
- >
-Kies alstublieft een geschiedenis item om in te zien.
- </notification>
-
- <notification
-
- name="ResetShowNextTimeDialogs"
- >
-Wilt u alle Pop-Up&apos;s opnieuw inschakelen die u eerder aanmerkte als &apos;Laat mij niet opnieuw zien&apos;?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SkipShowNextTimeDialogs"
- >
-Wilt u alle Pop-Up&apos;s uitschakelen die overgeslagen kunnen worden?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CacheWillClear"
- >
-De Cache zal geleegd worden als u [SECOND_LIFE] opnieuw start.
- </notification>
-
- <notification
-
- name="CacheWillBeMoved"
- >
-De Cache zal verplaatst worden als u [SECOND_LIFE] opnieuw start.
-Opmerking: Dit zal de Cache legen.
- </notification>
-
- <notification
-
- name="ChangeConnectionPort"
- >
-Poort instelling zullen effect hebben nadat u [SECOND_LIFE] opnieuw start.
- </notification>
-
- <notification
-
- name="ChangeSkin"
- >
-De nieuwe skin zal verschijnen nadat u [SECOND_LIFE] opnieuw start.
- </notification>
-
- <notification
-
- name="GoToAuctionPage"
- >
-Ga naar de [SECOND_LIFE] web pagina om de veiling details te zien of een bod uit te brengen.
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SaveChanges"
- >
-Wijzigingen Opslaan?
- <usetemplate
- canceltext="Annuleren"
- name="yesnocancelbuttons"
- notext="Niet Opslaan"
- yestext="Opslaan"/>
- </notification>
-
- <notification
-
- name="GestureSaveFailedTooManySteps"
- >
-Gebaar opslaan is niet gelukt.
-Dit gebaar heeft te veel stappen.
-Probeer enkele stappen te verwijderen en opnieuw op te slaan.
- </notification>
-
- <notification
-
- name="GestureSaveFailedTryAgain"
- >
-Gebaar opslaan is niet gelukt. Probeer het over enkele ogenblikken opnieuw.
- </notification>
-
- <notification
-
- name="GestureSaveFailedObjectNotFound"
- >
-Kon het gebaar niet opslaan omdat het object of bijbehorende object niet in de inventaris kon worden gevonden.
-
-Het object kan buiten bereik of mogelijk verwijderd zijn.
- </notification>
-
- <notification
-
- name="GestureSaveFailedReason"
- >
-Er was een probleem met het opslaan van het gebaar vanwege de volgende reden: [REASON]. Probeert u het gebaar later nogmaals op te slaan.
- </notification>
-
- <notification
-
- name="SaveNotecardFailObjectNotFound"
- >
-Kon de notitiekaart niet opslaan omdat het object of bijbehorende object niet in de inventaris kon worden gevonden.
-
-Het object kan buiten bereik of mogelijk verwijderd zijn.
- </notification>
-
- <notification
-
- name="SaveNotecardFailReason"
- >
-Er was een probleem met het opslaan van de notitiekaart vanwege de volgende reden: [REASON]. Probeert u de notitiekaart later nogmaals op te slaan.
- </notification>
-
- <notification
-
- name="ScriptCannotUndo"
- >
-Kon niet alle wijzigingen ongedaan maken in uw versie van het script.
-Wilt u de laatst op de server opgeslagen versie laden?
-(**Waarschuwing** Deze operatie kan niet ongedaan gemaakt worden.)
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SaveScriptFailReason"
- >
-Er was een probleem met het opslaan van een script vanwege de volgende reden: [REASON]. Probeert u het script later nogmaals op te slaan.
- </notification>
-
- <notification
-
- name="SaveScriptFailObjectNotFound"
- >
-Kon het script niet opslaan omdat het object waar het in zit niet gevonden kon worden.
-Het object kan buiten bereik of mogelijk verwijderd zijn.
- </notification>
-
- <notification
-
- name="SaveBytecodeFailReason"
- >
-Er was een probleem met het opslaan van een gecompileerd script vanwege de volgende reden: [REASON]. Probeert u het script later nogmaals op te slaan.
- </notification>
-
- <notification
-
- name="CouldNotStartStopScript"
- >
-Kon het script niet starten of stoppen omdat het object wat het in zit niet gevonden kon worden.
-Het object kan buiten bereik of mogelijk verwijderd zijn.
- </notification>
-
- <notification
-
- name="CannotDownloadFile"
- >
-Kon het bestand niet downloaden
- </notification>
-
- <notification
-
- name="CannotWriteFile"
- >
-Kan niet naar bestand [[FILE]] schrijven
- </notification>
-
- <notification
-
- name="UnsupportedHardware"
- >
-Waarschuwing: Uw systeem voldoet niet aan de Second Life minimum systeem eisen. Indien u Second Life gebruikt, ervaart u mogelijk slechte prestaties. Helaas kunnen we geen technische ondersteuning geven voor niet ondersteunde configuraties.
-
-MINSPECS
-Wilt u [_URL] bezoeken voor meer informatie?
- <url option="0" name="url">
-
- http://secondlife.com/support/sysreqs.php?lang=nl
- </url>
- <usetemplate
- ignoretext="Indien niet ondersteunde hardware gedetecteerd"
- name="okcancelignore"
- notext="Nee"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="UnknownGPU"
- >
-Uw systeem heeft een grafische kaart die bij ons nog niet bekend is op dit moment.
-
-Dit is vaak het geval met nieuwe hardware waarbij wij nog niet de kans gehad hebben om het te testen. Second Life zal mogelijk naar behoren functioneren, doch het kan zijn dat u uw grafische instellingen naar geschiktere waarden zult moeten instellen.
-(Bewerken menu &gt; Voorkeuren &gt; Grafisch).
- <form name="form">
- <ignore name="ignore"
- text="Indien een onbekende grafische kaart gedetecteerd"/>
- </form>
- </notification>
-
- <notification
-
- name="DisplaySettingsNoShaders"
- >
-[SECOND_LIFE] is gestopt bij het initialiseren van de grafische stuurprogramma&apos;s.
-Grafische kwaliteit zal op zijn laagst worden ingesteld om veel voorkomende fouten met stuurprogramma&apos;s te vermijden.
-Dit zal sommige grafische opties uitschakelen.
-Wij adviseren u de stuurprogramma&apos;s van uw grafische kaart bij te werken.
-Grafische kwaliteit kan verhoogd worden in Voorkeuren &gt; Grafisch.
- </notification>
-
- <notification
-
- name="RegionNoTerraforming"
- >
-De regio [REGION] staat geen land aanpassingen toe.
- </notification>
-
- <notification
-
- name="CannotCopyWarning"
- >
-U heeft geen permissie dit item te kopiëren en zult het kwijtraken als u het weg geeft. Wilt u dit item echt aanbieden?
- <usetemplate
- name="okcancelbuttons"
- notext="Nee"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="CannotGiveItem"
- >
-Kan inventaris item niet geven.
- </notification>
-
- <notification
-
- name="TransactionCancelled"
- >
-Transactie afgebroken.
- </notification>
-
- <notification
-
- name="TooManyItems"
- >
-Kan niet meer dan 42 items in één enkele inventaris overdracht geven.
- </notification>
-
- <notification
-
- name="NoItems"
- >
-U heeft geen permissie de geselecteerde items over te dragen.
- </notification>
-
- <notification
-
- name="CannotCopyCountItems"
- >
-U heeft geen permissie om [COUNT] geselecteerde items te kopiëren. U zult deze items uit uw inventaris kwijtraken.
-Weet u zeker dat u deze items wilt geven?
- <usetemplate
- name="okcancelbuttons"
- notext="Nee"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="CannotGiveCategory"
- >
-U heeft geen permissie de geselecteerde map over te dragen.
- </notification>
-
- <notification
-
- name="FreezeAvatar"
- >
-Avatar bevriezen?
-Hij of zij zal zich tijdelijk niet kunnen bewegen, praten of interactie kunnen hebben met de wereld.
- <usetemplate
- canceltext="Annuleren"
- name="yesnocancelbuttons"
- notext="Ontdooien"
- yestext="Bevriezen"/>
- </notification>
-
- <notification
-
- name="FreezeAvatarFullname"
- >
-Bevries [AVATAR_NAME]?
-Hij of zij zal zich tijdelijk niet kunnen bewegen, praten of interactie kunnen hebben met de wereld.
- <usetemplate
- canceltext="Annuleren"
- name="yesnocancelbuttons"
- notext="Ontdooien"
- yestext="Bevriezen"/>
- </notification>
-
- <notification
-
- name="EjectAvatarFullname"
- >
-[AVATAR_NAME] van uw land verwijderen?
- <usetemplate
- canceltext="Annuleren"
- name="yesnocancelbuttons"
- notext="Verwijderen en Bannen"
- yestext="Verwijderen"/>
- </notification>
-
- <notification
-
- name="EjectAvatarNoBan"
- >
-Deze avatar van u land verwijderen?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="Verwijder"/>
- </notification>
-
- <notification
-
- name="EjectAvatarFullnameNoBan"
- >
-[AVATAR_NAME] van uw land verwijderen?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="Verwijder"/>
- </notification>
-
- <notification
-
- name="AcquireErrorTooManyObjects"
- >
-VERWERVINGS FOUT: Te veel objecten geselecteerd
- </notification>
-
- <notification
-
- name="AcquireErrorObjectSpan"
- >
-VERWERVINGS FOUT: Objecten beslaan meer dan één regio.
-Verplaats alstublieft alle objecten die u wilt verwerven naar dezelfde regio.
- </notification>
-
- <notification
-
- name="PromptGoToCurrencyPage"
- >
-[EXTRA]
-
-Naar [URL] gaan voor informatie over de aankoop valuta?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="UnableToLinkObjects"
- >
-Kon deze [COUNT] objecten niet linken.
-U kunt maximaal [MAX] objecten linken.
- </notification>
-
- <notification
-
- name="CannotLinkIncompleteSet"
- >
-U kunt alleen complete sets van objecten linken en moet meer dan één object selecteren.
- </notification>
-
- <notification
-
- name="CannotLinkModify"
- >
-Kon niet linken omdat u geen wijziging permissies heeft op alle objecten.
-
-Wees er van overtuigd dat er geen enkele geblokkeerd is en dat ze allen uw eigendom zijn.
- </notification>
-
- <notification
-
- name="CannotLinkDifferentOwners"
- >
-Kon niet linken omdat niet alle objecten dezelfde eigenaar hebben.
-
-Wees er van overtuigd dat alle objecten uw eigendom zijn.
- </notification>
-
- <notification
-
- name="NoFileExtension"
- >
-Geen bestandsextensie voor het bestand: &apos;[FILE]&apos;
-
-Zorg dat het bestand de juiste bestandsextensie heeft.
- </notification>
-
- <notification
-
- name="InvalidFileExtension"
- >
-Ongeldige bestandsextensie [EXTENSION]
-Verwacht [VALIDS]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CannotUploadSoundFile"
- >
-Kon het geüploade geluidsbestand niet openen om te lezen:
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileNotRIFF"
- >
-Het bestand lijkt geen RIFF WAVE bestand te zijn:
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileNotPCM"
- >
-Het bestand lijkt geen PCM WAVE audio bestand te zijn:
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidChannelCount"
- >
-Het bestand heeft een ongeldig aantal kanalen (moet mono of stereo zijn):
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidSampleRate"
- >
-Het bestand lijkt geen ondersteund sample rate te hebben (moet 44.1k zijn):
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidWordSize"
- >
-Het bestand lijkt geen ondersteund word size te hebben (moet 8 of 16 bit zijn):
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidHeader"
- >
-Kon geen &apos;data&apos; chunk in WAV header vinden:
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidTooLong"
- >
-Audio bestand is te lang (10 seconden maximum):
-[FILE]
- </notification>
-
- <notification
-
- name="ProblemWithFile"
- >
-Probleem met bestand [FILE]:
-
-[ERROR]
- </notification>
-
- <notification
-
- name="CannotOpenTemporarySoundFile"
- >
-Kon geen tijdelijk gecomprimeerd geluidsbestand openen om naar toe te schrijven: [FILE]
- </notification>
-
- <notification
-
- name="UnknownVorbisEncodeFailure"
- >
-Onbekende Vorbis codeer fout in: [FILE]
- </notification>
-
- <notification
-
- name="CorruptResourceFile"
- >
-Beschadigd bron bestand: [FILE]
- </notification>
-
- <notification
-
- name="UnknownResourceFileVersion"
- >
-Onbekende Linden bronbestandsversie in bestand: [FILE]
- </notification>
-
- <notification
-
- name="UnableToCreateOutputFile"
- >
-Niet mogelijk om uitvoerbestand te maken: [FILE]
- </notification>
-
- <notification
-
- name="DoNotSupportBulkAnimationUpload"
- >
-Wij ondersteunen momenteel geen bulk upload van animatie bestanden.
- </notification>
-
- <notification
-
- name="CannotUploadReason"
- >
-Niet mogelijk om bestand [FILE] te uploaden vanwege de volgende reden: [REASON]
-Probeer het later opnieuw.
- </notification>
-
- <notification
-
- name="CannotCreateLandmarkNotOwner"
- >
-U kunt hier geen land markering maken omdat de eigenaar van het land dit niet toestaat.
- </notification>
-
- <notification
-
- name="CannotRecompileSelectObjectsNoScripts"
- >
-Niet mogelijk om te &apos;her compileren&apos;.
-Selecteer een object met een script.
- </notification>
-
- <notification
-
- name="CannotRecompileSelectObjectsNoPermission"
- >
-Niet mogelijk om te &apos;hercompileren&apos;.
-
-Selecteer objecten met scripts waarvan u permissie heeft deze aan te passen.
- </notification>
-
- <notification
-
- name="CannotResetSelectObjectsNoScripts"
- >
-Kan geen &apos;Opnieuw instellen&apos; uitvoeren.
-
-Selecteer objecten met scripts.
- </notification>
-
- <notification
-
- name="CannotResetSelectObjectsNoPermission"
- >
-Kan geen &apos;Opnieuw instellen&apos; uitvoeren.
-
-Selecte objecten met scripts waarvan u permissie heeft deze aan te passen.
- </notification>
-
- <notification
-
- name="CannotSetRunningSelectObjectsNoScripts"
- >
-Kan geen enkele scripts instellen op &apos;Uitvoeren&apos;.
-
-Selecteer objecten met scripts.
- </notification>
-
- <notification
-
- name="CannotSetRunningNotSelectObjectsNoScripts"
- >
-Kan geen enkele scripts instellen op &apos;Niet uitvoeren&apos;.
-
-Selecteer objecten met scripts.
- </notification>
-
- <notification
-
- name="NoFrontmostFloater"
- >
-Geen voorgaande floating waarde om op te slaan.
- </notification>
-
- <notification
-
- name="SeachFilteredOnShortWords"
- >
-Uw zoek opdracht was aangepast en de woorden die te kort waren zijn verwijderd.
-
-Gezocht naar: [FINALQUERY]
- </notification>
-
- <notification
-
- name="SeachFilteredOnShortWordsEmpty"
- >
-Uw zoek termen waren te kort en er is geen zoekopdracht uitgevoerd.
- </notification>
-
- <notification
-
- name="CouldNotTeleportReason"
- >
-Kon niet Teleporteren.
-[REASON]
- </notification>
-
- <notification
-
- name="CannotSetLandOwnerNothingSelected"
- >
-Kan landeigenaar niet instellen:
-Geen perceel geselecteerd.
- </notification>
-
- <notification
-
- name="CannotSetLandOwnerMultipleRegions"
- >
-Kon geen land eigendom forceren omdat de selectie meerder regio&apos;s omvat.
-Selecteer alstublieft een kleiner gebied en probeer het opnieuw.
- </notification>
-
- <notification
-
- name="ForceOwnerAuctionWarning"
- >
-Dit perceel staat voor veiling aangemerkt. Eigendom forceren zal de veiling afbreking en kan potentieel een aantal inwoners niet erg blij maken als het bieden al is begonnen. Eigendom forceren?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CannotContentifyNothingSelected"
- >
-Unable to contentify:
-Geen perceel geselecteerd.
- </notification>
-
- <notification
-
- name="CannotContentifyNoRegion"
- >
-Unable to contentify:
-Geen regio geselecteerd.
- </notification>
-
- <notification
-
- name="CannotReleaseLandNothingSelected"
- >
-Kan land niet afstaan:
-Geen perceel geselecteerd.
- </notification>
-
- <notification
-
- name="CannotReleaseLandNoRegion"
- >
-Kan land niet afstaan:
-kan de regio niet vinden.
- </notification>
-
- <notification
-
- name="CannotBuyLandNothingSelected"
- >
-Kan land niet kopen:
-Geen perceel geselecteerd.
- </notification>
-
- <notification
-
- name="CannotBuyLandNoRegion"
- >
-Kan land niet kopen:
-Kan de regio niet vinden waar dit land zich bevind.
- </notification>
-
- <notification
-
- name="CannotCloseFloaterBuyLand"
- >
-U kunt het Koop Land venster niet sluiten totdat Second Life de prijs van de transactie geschat heeft.
- </notification>
-
- <notification
-
- name="CannotDeedLandNothingSelected"
- >
-Kan land niet toekennen:
-Geen perceel geselecteerd.
- </notification>
-
- <notification
-
- name="CannotDeedLandNoGroup"
- >
-Kan land niet toekennen:
-Geen groep geselecteerd.
- </notification>
-
- <notification
-
- name="CannotDeedLandNoRegion"
- >
-Kan land niet toekennen:
-Kan de regio niet vinden waar dit land zich bevind.
-Gebruik alstublieft Gereedschappen -&gt; Report Bug om het te rapporteren.
- </notification>
-
- <notification
-
- name="CannotDeedLandMultipleSelected"
- >
-Kan land niet toekennen:
-Meerder percelen geselecteerd.
-
-Probeer één enkel perceel te selecteren.
- </notification>
-
- <notification
-
- name="ParcelCanPlayMedia"
- >
-Deze locatie van streaming media afspelen.
-
-Streaming media vereisen een snelle internet verbinding.
-
-Streaming media afspelen wanneer beschikbaar?
-(U kunt deze optie later wijzigen onder Preferenties &gt; Audio &amp; Video.)
- <usetemplate
- name="okcancelbuttons"
- notext="Uitschakelen"
- yestext="Media Afspelen"/>
- </notification>
-
- <notification
-
- name="CannotDeedLandWaitingForServer"
- >
-Kan land niet toekennen:
-Wacht op de server om eigendom te rapporteren.
-
-Probeer het alstublieft opnieuw.
- </notification>
-
- <notification
-
- name="CannotDeedLandNoTransfer"
- >
-Kan land niet toekennen:
-De regio [REGION] staat geen overdracht van land toe.
- </notification>
-
- <notification
-
- name="CannotReleaseLandWatingForServer"
- >
-Kan land niet afstaan:
-Wacht op server om de perceel informatie bij te werken.
-
-Probeer het over enkele ogenblikken opnieuw.
- </notification>
-
- <notification
-
- name="CannotReleaseLandSelected"
- >
-Kan land niet afstaan:
-Niet alle geselecteerde percelen zijn uw eigendom.
-
-Kies alstublieft één perceel.
- </notification>
-
- <notification
-
- name="CannotReleaseLandDontOwn"
- >
-Kan land niet afstaan:
-U heeft geen permissie dit perceel vrij te geven.
-Percelen in uw eigendom verschijnen in groen.
- </notification>
-
- <notification
-
- name="CannotReleaseLandRegionNotFound"
- >
-Kan land niet afstaan:
-Kan de regio niet vinden waar dit land zich bevind.
-
-Gebruik alstublieft Gereedschappen &gt; Report Bug om het te rapporteren.
- </notification>
-
- <notification
-
- name="CannotReleaseLandNoTransfer"
- >
-Kan land niet afstaan:
-De regio [REGION] staat geen overdracht van land toe.
- </notification>
-
- <notification
-
- name="CannotReleaseLandPartialSelection"
- >
-Kan land niet afstaan:
-U moet het gehele perceel selecteren om het vrij te kunnen geven.
-
-Selecteer het gehele perceel of deel het eerst op.
- </notification>
-
- <notification
-
- name="ReleaseLandWarning"
- >
-U staat op het punt om [AREA] m² land af te staan.
-Met het afstaan van dit perceel zal het uit uw land houderschapsoverzicht verdwijnen, maar zal u geen L$ toekennen.
-
-Dit land afstaan?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CannotDivideLandNothingSelected"
- >
-Kan land niet opdelen:
-
-Geen percelen geselecteerd.
- </notification>
-
- <notification
-
- name="CannotDivideLandPartialSelection"
- >
-Kan land niet opdelen:
-
-U heeft het gehele perceel geselecteerd.
-Probeer een deel van het perceel te selecteren.
- </notification>
-
- <notification
-
- name="LandDivideWarning"
- >
-Opdelen zal het perceel in twee delen verdelen en elk perceel kan zijn eigen instellingen hebben. Sommige instellingen zullen naar de standaard waarden terugkeren als de operatie voltooid is.
-
-Land opdelen?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CannotDivideLandNoRegion"
- >
-Kan het land niet opdelen:
-Kan de regio niet vinden waar dit land zich bevind.
-
-Gebruik alstublieft Gereedschappen &gt; Report Bug om het te rapporteren.
- </notification>
-
- <notification
-
- name="CannotJoinLandNoRegion"
- >
-Kan land niet verbinden:
-Kan de regio niet vinden waar dit land zich bevind.
-
-Gebruik alstublieft Gereedschappen &gt; Report Bug om het te rapporteren.
- </notification>
-
- <notification
-
- name="CannotJoinLandNothingSelected"
- >
-Kan land niet verbinden:
-Geen perceel geselecteerd.
- </notification>
-
- <notification
-
- name="CannotJoinLandEntireParcelSelected"
- >
-Kan land niet verbinden:
-U heeft slechts één perceel geselecteerd.
-
-Selecteer land over beide percelen.
- </notification>
-
- <notification
-
- name="CannotJoinLandSelection"
- >
-Kan land niet verbinden:
-U moet meer dan één perceel selecteren.
-
-Selecteer land over beide percelen.
- </notification>
-
- <notification
-
- name="JoinLandWarning"
- >
-Het verbinding van dit land zal één groot perceel opleveren uit alle percelen die de rechthoek doorkruisen.
-U zult de naam en opties van het nieuwe perceel opnieuw in moeten stellen.
-
-Land verbinden?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmNotecardSave"
- >
-Deze notitiekaart zal moet worden opgeslagen voordat het item kan worden gekopieerd of bekeken. Notitiekaart opslaan?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmItemCopy"
- >
-Dit item naar uw inventaris kopiëren?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="Kopiëren"/>
- </notification>
-
- <notification
-
- name="ResolutionSwitchFail"
- >
-Mislukt om resolutie te verwisselen van [RESX] naar [RESY]
- </notification>
-
- <notification
-
- name="ErrorUndefinedGrasses"
- >
-Fout: Onbekend gras: [SPECIES]
- </notification>
-
- <notification
-
- name="ErrorUndefinedTrees"
- >
-Fout: Onbekende bomen: [SPECIES]
- </notification>
-
- <notification
-
- name="CannotSaveWearableOutOfSpace"
- >
-Kon &apos;[NAME]&apos; niet opslaan voor draagbaar item. U zult wat ruimte moeten maken op uw computer en het draagbare item opnieuw op moeten slaan.
- </notification>
-
- <notification
-
- name="CannotSaveToAssetStore"
- >
-Kon [NAME] niet opslaan in centrale (asset) opslag.
-Meestal is dit een tijdelijk probleem.
-Wijzig en sla het draagbaar item over een paar minuten opnieuw op.
-
-Indien dit probleem aanhoudt, klik dan alstublieft op &apos;Gereedschap &gt; Rapporteer Bug&apos; in het menu en voeg informatie toe over uw netwerk instellingen.
- </notification>
-
- <notification
-
- name="YouHaveBeenLoggedOut"
- >
-U bent uitgelogd uit [SECOND_LIFE]:
-[MESSAGE]
-U kunt uw bestaande IM en chat bekijken door te klikken op &apos;Toon IM &amp; Chat&apos;. Anders, klik op Afsluiten om [SECOND_LIFE] direct te verlaten.
- <usetemplate
- name="okcancelbuttons"
- notext="Afsluiten"
- yestext="Toon IM &amp; Chat"/>
- </notification>
-
- <notification
-
- name="OnlyOfficerCanBuyLand"
- >
-Kan land niet voor de groep kopen:
-U heeft geen permissie land te kopen voor de actieve groep.
- </notification>
-
- <notification
-
- label="Vriend Toevoegen"
- name="AddFriend"
- >
-Vrienden kunnen elkaar permissie geven om elkaar te volgen op de Kaart en om Online status updates te verkrijgen.
-
-Vriendschap aanbieden aan [NAME]?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Vriend Toevoegen"
- name="AddFriendWithMessage"
- >
-Vrienden kunnen elkaar permissie geven om elkaar te volgen op de Kaart en om Online status updates te verkrijgen.
-
-Vriendschap aanbieden aan [NAME]?
- <form name="form">
- <input name="message" type="text">
-Wilt U mijn vriend zijn?
- </input>
- <button
-
-
- name="Offer"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annuleren"/>
- </form>
- </notification>
-
- <notification
-
- name="RemoveFromFriends"
- >
-Wilt u [FIRST_NAME] [LAST_NAME] van uw Vriend lijst verwijderen?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="RemoveMultipleFromFriends"
- >
-Wilt u meerder vrienden van uw Vrienden lijst verwijderen?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GodDeleteAllScriptedPublicObjectsByUser"
- >
-Weet u zeker dat u alle gescripte objecten wilt verwijderen eigendom van
-** [AVATAR_NAME] **
-op allen hun land in deze sim?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GodDeleteAllScriptedObjectsByUser"
- >
-Weet u zeker dat u ALLE gescripte objecten wilt VERWIJDEREN eigendom van
-** [AVATAR_NAME] **
-op AL het land in deze sim?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GodDeleteAllObjectsByUser"
- >
-Weet u zeker, dat u ALLE objecten (gescript of niet) wilt VERWIJDEREN eigendom van
-** [AVATAR_NAME] **
-op AL het LAND in deze sim?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BlankClassifiedName"
- >
-U moet een naam opgeven voor uw advertentie.
- </notification>
-
- <notification
-
- name="MinClassifiedPrice"
- >
-De prijs voor weergave moet minimaal L$[MIN_PRICE] zijn.
-
-Voor alstublieft een hoger bedrag in.
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLock"
- >
-Ten minste één van de geselecteerde items is geblokkeerd.
-
-Weet u zeker dat u deze items wilt verwijderen?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteNoCopy"
- >
-Ten minste één van de geselecteerde items is niet kopieerbaar.
-
-Weet u zeker dat u deze items wilt verwijderen?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteNoOwn"
- >
-Tenminste één van de geselecteerde items is niet uw eigendom.
-
-Weet u zeker dat u deze items wilt verwijderen?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLockNoCopy"
- >
-Ten minste één item is geblokkeerd.
-Ten minste één item is niet kopieerbaar.
-
-Weet u zeker dat u deze items wilt verwijderen?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLockNoOwn"
- >
-Ten minste één item is geblokkeerd.
-Tenminste één object is niet uw eigendom.
-
-Weet u zeker dat u deze items wilt verwijderen?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteNoCopyNoOwn"
- >
-Ten minste één object is niet kopieerbaar.
-Tenminste één object is niet uw eigendom.
-
-Weet u zeker dat u deze items wilt verwijderen?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLockNoCopyNoOwn"
- >
-Ten minste één item is geblokkeerd.
-Ten minste één item is niet kopieerbaar.
-Tenminste één object is niet uw eigendom.
-
-Weet u zeker dat u deze items wilt verwijderen?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectTakeLock"
- >
-Ten minste één object is geblokkeerd.
-
-Weet u zeker dat u deze items terug wilt nemen?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectTakeNoOwn"
- >
-Niet alle objecten die u terug neemt zijn uw eigendom.
-Indien u verder gaat, worden de permissies van de volgende eigenaar er op toegepast en beperkt het u mogelijk het aan te passen of te kopiëren.
-
-Weet u zeker dat u deze items terug wilt nemen?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectTakeLockNoOwn"
- >
-Ten minste één object is geblokkeerd.
-Niet alle objecten die u terug neemt zijn uw eigendom.
-Indien u verder gaat, worden de permissies van de volgende eigenaar er op toegepast en beperkt het u mogelijk het aan te passen of te kopiëren.
-Echter, U kunt de huidige selectie wel terugnemen.
-
-Weet u zeker dat u deze items terug wilt nemen?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CantBuyLandAcrossMultipleRegions"
- >
-Kan het land niet kopen omdat het meerder regio&apos;s omvat.
-
-Kiest u alstublieft een kleiner gebied en probeer het opnieuw.
- </notification>
-
- <notification
-
- name="DeedLandToGroup"
- >
-Voor het overdragen van dit perceel zal de groep voldoen land gebruikscredit moeten hebben en onderhouden.
-Het aankoop bedrag zal niet naar de eigenaar worden terug gestort.
-Indien een overgedragen perceel wordt verkocht, zal het verkoop bedrag gelijkmatig over de groepsleden worden verdeeld.
-
-Deze [AREA] m² land overdragen aan de groep &apos;[GROUP_NAME]&apos;?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="DeedLandToGroupWithContribution"
- >
-Voor het overdragen van dit perceel zal de groep voldoen land gebruikscredit moeten hebben en onderhouden.
-De overdracht zal een simultane land contributie verlangen van de groep van &apos;[FIRST_NAME] [LAST_NAME]&apos;.
-Het aankoop bedrag zal niet naar de eigenaar worden terug gestort.
-Indien een overgedragen perceel wordt verkocht, zal het verkoop bedrag gelijkmatig over de groepsleden worden verdeeld.
-
-Deze [AREA] m² land overdragen aan de groep &apos;[GROUP_NAME]&apos;?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="DisplaySetToSafe"
- >
-Weergave instellingen zijn op veilige waarden ingesteld omdat u de -save optie op heeft gegeven.
- </notification>
-
- <notification
-
- name="DisplaySetToRecommended"
- >
-Weergave instellingen zijn ingesteld op geadviseerde waarden, gebaseerd op uw systeem configuratie.
- </notification>
-
- <notification
-
- name="ErrorMessage"
- >
-[ERROR_MESSAGE]
- </notification>
-
- <notification
-
- name="AvatarMoved"
- >
-Uw [TYPE] locatie is momenteel niet beschikbaar.
-[HELP]
-U bent naar een nabij gelegen regio verplaatst.
- </notification>
-
- <notification
-
- name="ClothingLoading"
- >
-Uw kleding wordt nog steeds geladen.
-U kunt [SECOND_LIFE] normaal gebruiken en anderen zullen u correct zien.
- <form name="form">
- <ignore name="ignore"
- text="Indien kleding een erg lange tijd in beslag neemt om de laden"/>
- </form>
- </notification>
-
- <notification
-
- name="FirstRun"
- >
-[SECOND_LIFE] installatie compleet.
-
-Als dit de eerste keer is dat u [SECOND_LIFE] gebruikt, zult u een account aan moeten maken voordat u in kan loggen.
-Terugkeren naar www.secondlife.com om een nieuw account aan te maken?
- <usetemplate
- name="okcancelbuttons"
- notext="Doorgaan"
- yestext="Nieuw Account..."/>
- </notification>
-
- <notification
-
- name="LoginPacketNeverReceived"
- >
-Wij hebben problemen verbinding te maken. Er zou een probleem kunnen zijn met uw internet verbinding of met de Second Life servers.
-
-U kunt uw internet verbinding controleren en het over een paar minuten opnieuw proberen, op Help klikken om verbinding te maken met onze support website, of klik op Teleporteren om een poging te doen naar uw thuis locatie te teleporteren.
- <form name="form">
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Help"
- text="Help"/>
- <button
-
- name="Teleport"
- text="Teleport"/>
- </form>
- </notification>
-
- <notification
-
- name="WelcomeChooseSex"
- >
-Uw avatar zal over enkele ogenblikken verschijnen.
-
-Gebruik de pijltjestoetsen om te lopen.
-Druk op elk gewenst moment op F1 voor Help en om meer te leren over [SECOND_LIFE].
-Kies alstublieft een mannelijk of vrouwelijke avatar. U kunt later nog van gedachten veranderen.
- <usetemplate
- name="okcancelbuttons"
- notext="Vrouw"
- yestext="Man"/>
- </notification>
-
- <notification
-
- name="NotEnoughCurrency"
- >
-[NAME] L$ [PRICE] U heeft niet genoeg L$ om dit te doen.
- </notification>
-
- <notification
-
- name="GrantedModifyRights"
- >
-U heeft het recht verkregen om objecten van [FIRST_NAME] [LAST_NAME] te wijzigen.
- </notification>
-
- <notification
-
- name="RevokedModifyRights"
- >
-Uw recht om objecten van [FIRST_NAME] [LAST_NAME] is ingetrokken.
- </notification>
-
- <notification
-
- name="FlushMapVisibilityCaches"
- >
-Dit zal de Kaart cache van deze regio opschonen.
-
-Dit is eigenlijk alleen nuttig voor debugging.
-(In productie, wacht 5 minuten, dan zal de Kaart van iedereen bijgewerkt worden als ze opnieuw verbinden.)
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="OnlyCopyContentsOfSingleItem"
- >
-Kan niet de inhoud van meer dan één item per keer kopiëren.
-Kies alstublieft slechts één object en probeer het opnieuw.
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="KickUsersFromRegion"
- >
-Alle Inwoners in deze regio naar de thuis locatie Teleporteren?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="EstateObjectReturn"
- >
-Weet u zeker dat u alle objecten wilt retourneren eigendom van [USER_NAME] ?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="InvalidTerrainBitDepth"
- >
-Kon de regio textuur niet plaatsen:
-Terrein textuur [TEXTURE_NUM] heeft een ongeldige bit diepte van [TEXTURE_BIT_DEPTH].
-
-Vervang de textuur [TEXTURE_NUM] met een 24-bit 512x512 of een kleinere afbeelding, klik dan op opnieuw op &quot;Toepassen&quot;.
- </notification>
-
- <notification
-
- name="InvalidTerrainSize"
- >
-Kon de regio textuur niet plaatsen:
-Terrein textuur [TEXTURE_NUM] is te groot met [TEXTURE_SIZE_X]x[TEXTURE_SIZE_Y].
-
-Vervang de textuur [TEXTURE_NUM] met een 24-bit 512x512 of een kleinere afbeelding, klik dan op opnieuw op &quot;Toepassen&quot;.
- </notification>
-
- <notification
-
- name="RawUploadStarted"
- >
-Upload gestart. Het kan tot twee minuten duren, afhankelijk van u verbindings snelheid.
- </notification>
-
- <notification
-
- name="ConfirmBakeTerrain"
- >
-Wilt u werkelijk het huidige terrein &apos;baken&apos;, dit als middelpunt voor de verhoog/verlaag limieten instellen en als standaard instellen voor het &apos;Herstel&apos; gereedschap?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="MaxAllowedAgentOnRegion"
- >
-U kunt slechts [MAX_AGENTS] Toegestane Inwoners hebben.
- </notification>
-
- <notification
-
- name="MaxBannedAgentsOnRegion"
- >
-U kunt slechts [MAX_BANNED] Verbannen Inwoners hebben.
- </notification>
-
- <notification
-
- name="MaxAgentOnRegionBatch"
- >
-Een poging [NUM_ADDED] agents toe te voegen is mislukt:
-Overstijgt de [MAX_AGENTS] [LIST_TYPE] limiet met [NUM_EXCESS].
- </notification>
-
- <notification
-
- name="MaxAllowedGroupsOnRegion"
- >
-U kunt slechts [MAX_GROUPS] Toegestane Groepen hebben.
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="Bake"/>
- </notification>
-
- <notification
-
- name="MaxManagersOnRegion"
- >
-U kunt slechts [MAX_MANAGER] Estate Beheerders hebben.
- </notification>
-
- <notification
-
- name="OwnerCanNotBeDenied"
- >
-Kan de estate eigenaar niet aan de Verbannen lijst van het estate toe voegen.
- </notification>
-
- <notification
-
- name="CanNotChangeAppearanceUntilLoaded"
- >
-Kan het Uiterlijk niet veranderen totdat kleding en Postuur geladen zijn.
- </notification>
-
- <notification
-
- name="ClassifiedMustBeAlphanumeric"
- >
-De naam van uw advertentie moet beginnen met een letter van A tot Z of een nummer.
-Leestekens zijn niet toegestaan.
- </notification>
-
- <notification
-
- name="CantSetBuyObject"
- >
-Kan Koop Object niet instellen omdat het object niet te koop is.
-Zet het object alstublieft te koop en probeer het opnieuw.
- </notification>
-
- <notification
-
- name="FinishedRawDownload"
- >
-Download van raw terrein bestand geëindigd naar:
-[DOWNLOAD_PATH].
- </notification>
-
- <notification
-
- name="DownloadWindowsMandatory"
- >
-Een nieuwe versie van [SECOND_LIFE] is beschikbaar.
-[MESSAGE]
-U moet deze update downloaden om [SECOND_LIFE] te kunnen gebruiken.
- <usetemplate
- name="okcancelbuttons"
- notext="Afsluiten"
- yestext="Download"/>
- </notification>
-
- <notification
-
- name="DownloadWindows"
- >
-Een bijgewerkte versie van [SECOND_LIFE] is beschikbaar.
-[MESSAGE]
-Deze update is niet vereist, maar wij raden aan dat u het installeert om de prestaties en stabiliteit te verbeteren.
- <usetemplate
- name="okcancelbuttons"
- notext="Doorgaan"
- yestext="Download"/>
- </notification>
-
- <notification
-
- name="DownloadWindowsReleaseForDownload"
- >
-Een bijgewerkte versie van [SECOND_LIFE] is beschikbaar.
-[MESSAGE]
-Deze update is niet vereist, maar wij raden aan dat u het installeert om de prestaties en stabiliteit te verbeteren.
- <usetemplate
- name="okcancelbuttons"
- notext="Doorgaan"
- yestext="Download"/>
- </notification>
-
- <notification
-
- name="DownloadMacMandatory"
- >
-Een nieuwe versie van [SECOND_LIFE] is beschikbaar.
-[MESSAGE]
-U moet deze update downloaden om [SECOND_LIFE] te kunnen gebruiken.
-
-Downloaden naar uw Applicatie Data map?
- <usetemplate
- name="okcancelbuttons"
- notext="Afsluiten"
- yestext="Download"/>
- </notification>
-
- <notification
-
- name="DownloadMac"
- >
-Een bijgewerkte versie van [SECOND_LIFE] is beschikbaar.
-[MESSAGE]
-Deze update is niet vereist, maar wij raden aan dat u het installeert om de prestaties en stabiliteit te verbeteren.
-
-Downloaden naar uw Applicatie Data map?
- <usetemplate
- name="okcancelbuttons"
- notext="Doorgaan"
- yestext="Download"/>
- </notification>
-
- <notification
-
- name="DownloadMacReleaseForDownload"
- >
-Een bijgewerkte versie van [SECOND_LIFE] is beschikbaar.
-[MESSAGE]
-Deze update is niet vereist, maar wij raden aan dat u het installeert om de prestaties en stabiliteit te verbeteren.
-
-Downloaden naar uw Applicatie Data map?
- <usetemplate
- name="okcancelbuttons"
- notext="Doorgaan"
- yestext="Download"/>
- </notification>
-
- <notification
-
- name="DeedObjectToGroup"
- >
-Dit object overdragen aan de groep zal de groep:
-* L$ ontvangen als betaald in het object
- <usetemplate
- ignoretext="Bij objecten die overgedragen worden aan groepen"
- name="okcancelignore"
- notext="Annuleren"
- yestext="Overdragen"/>
- </notification>
-
- <notification
-
- name="WebLaunchExternalTarget"
- >
-Uw systeem browser openen om deze inhoud te bekijken?
- <usetemplate
- ignoretext="Bij openen van systeem browser om de webpagina te bekijken"
- name="okcancelignore"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchJoinNow"
- >
-Naar www.secondlife.com gaan om uw account te beheren?
- <usetemplate
- ignoretext="Bij openen van webbrowser om uw account te beheren"
- name="okcancelignore"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchBugReport101"
- >
-Bezoek de [SECOND_LIFE] Wiki en leer hoe Bugs correct gerapporteerd kunnen worden.
- <usetemplate
- ignoretext="Bij openen webbrowser om de Bug Reporting 101 Wiki te bekijken"
- name="okcancelignore"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchSecurityIssues"
- >
-Bezoek de [SECOND_LIFE] Wiki voor details over hoe een Veiligheids Probleem (Security Issue) te rapporteren.
- <usetemplate
- ignoretext="Bij openen webbrowser om de Veiligheids Problemen Wiki (Security Issues Wiki) te bekijken"
- name="okcancelignore"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchQAWiki"
- >
-Bezoek de [SECOND_LIFE] QA Wiki (Kwaliteitsbeheersing Wiki).
- <usetemplate
- ignoretext="Bij openen webbrowser om de QA Wiki (Kwaliteitsbeheersing Wiki) te bekijken"
- name="okcancelignore"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchPublicIssue"
- >
-Bezoek de [SECOND_LIFE] Publieke problemenlijst, waar u Bugs en andere Problemen kunt rapporteren.
- <usetemplate
- ignoretext="Bij openen webbrowser om de Publieke problemenlijst te bekijken"
- name="okcancelignore"
- notext="Annuleren"
- yestext="Ga naar pagina"/>
- </notification>
-
- <notification
-
- name="WebLaunchPublicIssueHelp"
- >
-Bezoek de [SECOND_LIFE] Wiki voor informatie over het gebruik van de Publieke problemenlijst.
- <usetemplate
- ignoretext="Bij openen webbrowser om de Publieke problemenlijst Wiki te bekijken"
- name="okcancelignore"
- notext="Annuleren"
- yestext="Ga naar pagina"/>
- </notification>
-
- <notification
-
- name="WebLaunchSupportWiki"
- >
-Ga naar de Officiële Linden Blog voor het laatste Nieuws en Informatie.
- <usetemplate
- ignoretext="Bij openen webbrowser om de blog te bekijken"
- name="okcancelignore"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchLSLGuide"
- >
-Naar de Script Gids gaan voor hulp met scripten?
- <usetemplate
- ignoretext="Bij openen webbrowser om de Script Gids te bekijken"
- name="okcancelignore"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchLSLWiki"
- >
-Naar de LSL Portaal gaan voor hulp met scripten?
- <usetemplate
- ignoretext="Bij openen webbrowser om de LSL Portal te bekijken"
- name="okcancelignore"
- notext="Annuleren"
- yestext="Ga naar pagina"/>
- </notification>
-
- <notification
-
- name="ReturnToOwner"
- >
-Weet u zeker dat u de geselecteerde objecten wilt retourneren naar de eigenaren?
-Overdraagbare toegekende objecten zullen naar de oorspronkelijke eigenaren worden geretourneerd.
-
-*WAARSCHUWING* Niet overdraagbare toegekende objecten zullen worden verwijderd!
- <usetemplate
- ignoretext="Bij retourneren objecten naar de eigenaren"
- name="okcancelignore"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GroupLeaveConfirmMember"
- >
-U bent momenteel een lid van de groep [GROUP].
-Groep Verlaten?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmKick"
- >
-Weet u HEEL ZEKER dat u alle gebruikers uit het grid wilt verwijderen?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="Verwijder Alle Gebruikers"/>
- </notification>
-
- <notification
-
- name="MuteLinden"
- >
-Sorry, u kunt geen Linden Negeren
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Negeren van object mislukt"
- name="MuteByNameFailed"
- >
-U heeft deze naam al genegeerd.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="RemoveItemWarn"
- >
-Alhoewel toegestaan, verwijderen van de inhoud kan het object beschadigen. Wilt u dit item verwijderen?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CantOfferCallingCard"
- >
-Kan op dit moment geen visitekaart aanbieden. Probeer het alstublieft later opnieuw.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CantOfferFriendship"
- >
-Kan op dit moment geen vriendschap aanbieden. Probeer het alstublieft later opnieuw.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BusyModeSet"
- >
-Niet Storen modus ingesteld.
-
-Chat and instant messages zullen verborgen blijven. Instant messages zullen uw Niet Storen melding krijgen. Alle teleport aanbiedingen zullen worden afgewezen. Alle inventaris aanbiedingen zullen in uw Vuilnisbak terecht komen.
- <usetemplate
- ignoretext="Bij instellen Niet Storen modus"
- name="okignore"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="JoinedTooManyGroupsMember"
- >
-U ben lid van teveel groepen om lid te worden van een andere. Verlaat op zijn minst één groep alvorens lid te worden van een andere of weiger de lidmaatschap aanbieding.
-Om een groep te verlaten, selecteer de &apos;Groep..&apos; optie via het &apos;Bewerken&apos; menu.
-
-[NAME] heeft u uitgenodigd om lid te worden van de groep als algemeen lid.
-
-[INVITE]
- <usetemplate
- name="okcancelbuttons"
- notext="Afslaan"
- yestext="Lid worden"/>
- </notification>
-
- <notification
-
- name="KickUser"
- >
-Verwijder deze gebruiker met welk bericht?
- <form name="form">
- <input name="message" type="text">
-Een administrator heeft u uitgelogd.
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annuleren"/>
- </form>
- </notification>
-
- <notification
-
- name="KickAllUsers"
- >
-Verwijder iedereen momenteel op het grid met welk bericht?
- <form name="form">
- <input name="message" type="text">
-Een administrator heeft u uitgelogd.
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annuleren"/>
- </form>
- </notification>
-
- <notification
-
- name="FreezeUser"
- >
-Bevries deze gebruiker met welk bericht?
- <form name="form">
- <input name="message" type="text">
-U bent bevroren. U kunt zich niet verplaatsen of praten. Een administrator zal contact met u opnemen via instant message (IM).
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annuleren"/>
- </form>
- </notification>
-
- <notification
-
- name="UnFreezeUser"
- >
-Ontdooi deze gebruiker met welk bericht?
- <form name="form">
- <input name="message" type="text">
-U bent niet langer bevroren.
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annuleren"/>
- </form>
- </notification>
-
- <notification
-
- name="OfferTeleport"
- >
-Een Teleport aanbieden naar uw locatie met welk bericht?
- <form name="form">
- <input name="message" type="text">
-Voeg u bij mij in [REGION]
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annuleren"/>
- </form>
- </notification>
-
- <notification
-
- name="OfferTeleportFromGod"
- >
-God beveel gebruiker naar uw locatie?
- <form name="form">
- <input name="message" type="text">
-Voeg u bij mij in [REGION]
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annuleren"/>
- </form>
- </notification>
-
- <notification
-
- name="TeleportFromLandmark"
- >
-Weet u zeker dat u wilt teleporteren?
- <usetemplate
- ignoretext="Bij teleporteren via een landmarkering in inventaris"
- name="okcancelignore"
- notext="Annuleren"
- yestext="Teleporteren"/>
- </notification>
-
- <notification
-
- label="Bericht iedereen in uw Estate"
- name="MessageEstate"
- >
-Type een kort bericht om naar iedereen sturen die momenteel in uw Estate aanwezig is.
- <form name="form">
- <input name="message" type="text"/>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annuleren"/>
- </form>
- </notification>
-
- <notification
-
- label="Wijzig Linden Estate"
- name="ChangeLindenEstate"
- >
-U staat op het punt een Linden beheerde Estate te wijzigen mainland, teen grid, orientation, etc.).
-
-Dit is EXTREEM GEVAARLIJK om het fundamenteel de gebruikers ervaring kan aantasten.
-Op het mainland zal het duizenden regionen wijzigen en de spaceserver kan storingen vertonen.
-
-Doorgaan?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Wijzig Linden Estate Toegang"
- name="ChangeLindenAccess"
- >
-U staat op het punt de toegangslijst van een Linden Estate eigendom aan te passen (mainland, teen grid, orientation, etc.).
-
-Dit is GEVAARLIJK en zou alleen gedaan moeten worden om de hack toe te staan om objecten/L$ over te dragen in/uit het grid.
-Het zal het duizenden regionen wijzigen en de spaceserver kan storingen vertonen.
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Selecteer Estate"
- name="EstateAllowedAgentAdd"
- >
-Alleen aan toegangslijst voor dit Estate toevoegen of voor [ALL_ESTATES]?
- <usetemplate
- canceltext="Annuleren"
- name="yesnocancelbuttons"
- notext="Alle Estates"
- yestext="Dit Estate"/>
- </notification>
-
- <notification
-
- label="Selecteer Estate"
- name="EstateAllowedAgentRemove"
- >
-Verwijderen van toegangslijst voor alleen dit Estate of voor [ALL_ESTATES]?
- <usetemplate
- canceltext="Annuleren"
- name="yesnocancelbuttons"
- notext="Alle Estates"
- yestext="Dit Estate"/>
- </notification>
-
- <notification
-
- label="Selecteer Estate"
- name="EstateAllowedGroupAdd"
- >
-Alleen aan groeps toegangslijst voor dit Estate toevoegen of voor [ALL_ESTATES]?
- <usetemplate
- canceltext="Annuleren"
- name="yesnocancelbuttons"
- notext="Alle Estates"
- yestext="Dit Estate"/>
- </notification>
-
- <notification
-
- label="Selecteer Estate"
- name="EstateAllowedGroupRemove"
- >
-Verwijderen van groeps toegangslijst voor alleen dit Estate of voor [ALL_ESTATES]?
- <usetemplate
- canceltext="Annuleren"
- name="yesnocancelbuttons"
- notext="Alle Estates"
- yestext="Dit Estate"/>
- </notification>
-
- <notification
-
- label="Selecteer Estate"
- name="EstateBannedAgentAdd"
- >
-Weiger toegang voor alleen dit Estate of voor [ALL_ESTATES]?
- <usetemplate
- canceltext="Annuleren"
- name="yesnocancelbuttons"
- notext="Alle Estates"
- yestext="Dit Estate"/>
- </notification>
-
- <notification
-
- label="Selecteer Estate"
- name="EstateBannedAgentRemove"
- >
-Deze Inwoner van de ban lijst voor toegang voor alleen dit Estate verwijderen of voor [ALL_ESTATES]?
- <usetemplate
- canceltext="Annuleren"
- name="yesnocancelbuttons"
- notext="Alle Estates"
- yestext="Dit Estate"/>
- </notification>
-
- <notification
-
- label="Selecteer Estate"
- name="EstateManagerAdd"
- >
-Estate beheerder toevoegen voor alleen dit Estate of voor [ALL_ESTATES]?
- <usetemplate
- canceltext="Annuleren"
- name="yesnocancelbuttons"
- notext="Alle Estates"
- yestext="Dit Estate"/>
- </notification>
-
- <notification
-
- label="Selecteer Estate"
- name="EstateManagerRemove"
- >
-Estate beheerder verwijderen voor alleen dit Estate of voor [ALL_ESTATES]?
- <usetemplate
- canceltext="Annuleren"
- name="yesnocancelbuttons"
- notext="Alle Estates"
- yestext="Dit Estate"/>
- </notification>
-
- <notification
-
- label="Bevestig Verwijderen"
- name="EstateKickUser"
- >
-Verwijder [EVIL_USER] van deze Estate?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="EstateChangeCovenant"
- >
-Weet u zeker dat u de Estate Convenant wilt wijzigen?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ProblemImportingEstateCovenant"
- >
-Probleem met importeren Estate Convenant.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ProblemAddingEstateManager"
- >
-Problemen met het toevoegen van een Estate beheerder. Eén of meer Estates kunnen een volle beheerders lijst hebben.
- </notification>
-
- <notification
-
- name="ProblemAddingEstateGeneric"
- >
-Problemen met toevoegen aan deze Estate lijst. Eén of meer Estates kunnen een volle lijst hebben.
- </notification>
-
- <notification
-
- name="UnableToLoadNotecard"
- >
-Kan op dit moment notitiekaart inhoud niet laden.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="NotAllowedToViewNotecard"
- >
-Onvoldoende rechten om de notitiekaart in te zien geassocieerd met het opgevraagde asset ID.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="MissingNotecardAssetID"
- >
-Asset ID voor de notitiekaart ontbreekt in de database.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="PublishClassified"
- >
-Bedenk: kosten voor advertenties worden niet terugbetaald.
-
-Advertentie nu Publiceren voor L$[AMOUNT]?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
-
-
-
-
- <notification
-
- label="Bevestig herstart"
- name="ConfirmRestart"
- >
-Wilt u deze regio echt binnen 2 minuten herstarten?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Bericht iedereen in deze regio"
- name="MessageRegion"
- >
-Type een kort bericht om naar iedereen sturen die momenteel in regio aanwezig is.
- <form name="form">
- <input name="message" type="text"/>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annuleren"/>
- </form>
- </notification>
-
- <notification
-
- label="Weiger Land aanpassingen"
- name="HelpRegionBlockTerraform"
- >
-Indien dit aan gevinkt kunnen landeigenaren geen terrein bewerkingen doen op hun land, ongeacht de per perceel ingestelde waarde voor &apos;Wijzig Terrein&apos;
-
-Standaard: uitgeschakeld
- </notification>
-
- <notification
-
- label="Blokkeer Vliegen"
- name="HelpRegionBlockFly"
- >
-Indien dit is aan gevinkt kunnen personen niet vliegen in deze regio ongeacht de per perceel ingestelde waarde &apos;Vliegen&apos;
-
-Standaard: uitgeschakeld
- </notification>
-
- <notification
-
- label="Sta Letsel Toe"
- name="HelpRegionAllowDamage"
- >
-Indien dit is aan gevinkt stelt het Letsel systeem in voor alle percelen, ongeacht de individuele instellingen op de percelen. Indien uitgeschakeld, kunnen perceel eigenaren het Letsel systeem op hun perceel activeren.
-
-Standaard: uitgeschakeld
- </notification>
-
- <notification
-
- label="Agent Limiet"
- name="HelpRegionAgentLimit"
- >
-Stelt het maximale aantal toegestane avatars in voor deze regio.
-De prestaties kunnen variëren afhankelijk van het aantal aanwezige avatars.
-
-Standaard: 40
- </notification>
-
- <notification
-
- label="Object Bonus"
- name="HelpRegionObjectBonus"
- >
-De Object Bonus is een vermeerderaar voor primitieven op een willekeurig perceel.
-Het bereik is van 1 tot 10. Ingesteld op &apos;1&apos; kan elk 512m² perceel 117 objecten bevatten. Ingesteld op &apos;2&apos; kan elk 512m² perceel 234 objecten bevatten, enzovoort. Het maximale aantal objecten blijft 15.000, ongeacht wat de Object Bonus is. Denk er aan, dat eenmaal ingesteld, het verlagen van de Object Bonus het retourneren of verwijderen van objecten tot gevolg kan hebben.
-
-Standaard: 1.0
- </notification>
-
-
-
- <notification
-
- label="Beperk Duwen"
- name="HelpRegionRestrictPushObject"
- >
-Deze instelling stelt de hele regio in op beperkte duwen permissies.
-Indien aan gevinkt kunnen Inwoners alleen door hun zelf geduwd worden of door de perceel eigenaar.
-
-(Push (Duwen) verwijst naar de llPushObject() LSL functie)
-
-Standaard: Uitgeschakeld
- </notification>
-
- <notification
-
- label="Perceel Samenvoegen/Opsplitsen"
- name="HelpParcelChanges"
- >
-Deze instelling stel in of percelen die niet van de estate eigenaar zijn kunnen worden samengevoegd of opgesplitst.
-
-Indien niet aan gevinkt:
- * Alleen Estate eigenaren of beheerders kunnen percelen samenvoegen op opsplitsen.
- * Zij kunnen alleen percelen samenvoegen of opsplitsen die eigendom zijn van de eigenaar of van een groep met de juiste bevoegdheden.
-
-Indien aan gevinkt:
- * Alle perceel eigenaren kunnen percelen samenvoegen of opsplitsen die zij bezitten.
- * Voor percelen in Groep eigendom, kunnen alleen zij met de juiste rechten percelen samenvoegen of opsplitsen.
-
-Standaard: Ingeschakeld
- </notification>
-
- <notification
-
- label="Niet in Zoeken tonen"
- name="HelpRegionSearch"
- >
-Deze optie aan vinken zal perceel eigenaren blokkeren hun perceel in Zoeken te tonen.
-
-Standaard: Uitgeschakeld
- </notification>
-
- <notification
-
- label="Regio Volwassenen Gewijzigd"
- name="RegionMaturityChange"
- >
-De Volwassen instelling voor deze regio is bijgewerkt.
-Het kan enige tijd duren voordat de wijziging zichtbaar is op de Kaart.
- </notification>
-
- <notification
-
- label="Land Herverkoop"
- name="HelpRegionLandResell"
- >
-Estate eigenaren en beheerders kunnen elk stuk land verkopen in eigendom van de Estate eigenaar.
-
-Indien deze optie niet is aan gevinkt, kunnen kopers hun land in deze regio niet verkopen.
-Indien deze optie is aan gevinkt, kunnen kopers hun land in deze regio verkopen.
-
-Standaard: Niet toestaan
- </notification>
-
- <notification
-
- label="Scripts Uitschakelen"
- name="HelpRegionDisableScripts"
- >
-Indien de sim prestaties slecht zijn, kan een script de oorzaak zijn. Open de Statistieken balk (Ctrl-Shift-1). Kijk naar de Simulator Fysieke FPS. Indien het lager is dan 45, open dan het Tijd paneel onderaan de Statistieken balk. Indien de Script Tijd 25 ms of hoger is, klik dan op de Top Scripts knop. U krijgt dan een naam en lokatie van scripts die mogelijk de slechte prestaties veroorzaken.
-
-Het aan vinken van Scripts Uitschakelen en vervolgens op de Toepassen knop drukken, zal tijdelijk alle scripts in deze regio uitschakelen. U zult dit mogelijk moeten doen om naar de lokatie te gaan van het &apos;top script&apos;. Eenmaal aangekomen, onderzoek dan of het script het probleem veroorzaakt. U zult mogelijk de eigenaar willen contacteren of het object willen retourneren c.q. verwijderen.
-Verwijder het vinkje van Scripts Uitschakelen en klik op Toepassen om scripts weer te reactiveren in de regio.
-
-Standaard: Uitgeschakeld
- </notification>
-
- <notification
-
- label="Botsingen Uitschakelen"
- name="HelpRegionDisableCollisions"
- >
-Indien de sim prestaties slecht zijn, kunnen fysieke objecten de oorzaak zijn. Open de Statistieken balk (Ctrl-Shift-1). Kijk naar de Simulator Fysieke FPS. Indien het lager is dan 45, open dan het Tijd paneel onderaan de Statistieken balk. Indien de Sim Tijd (Fysiek) 20 ms of hoger is, klik dan op de Toon Top Botsingen knop. U krijgt dan een naam en lokatie van de fysieke objecten die mogelijk de slecht prestaties veroorzaken.
-
-Het aan vinken van de Botsingen Uitschakelen knop en vervolgens op de Toepassen knop drukken, zal tijdelijk object-object botsingen uitschakelen. U zult dit mogelijk moeten doen om naar de lokatie te gaan van de &apos;top botsingen&apos;. Eenmaal aangekomen, onderzoek dan het object. Botst het constant met andere objecten? U zult mogelijk de eigenaar willen contacteren of het object willen retourneren c.q. verwijderen.
-Verwijder het vinkje van Botsingen Uitschakelen en klik op Toepassen om botsingen weer te reactiveren in de regio.
-
-Standaard: Uitgeschakeld
- </notification>
-
- <notification
-
- label="Fysiek Uitschakelen"
- name="HelpRegionDisablePhysics"
- >
-Fysiek Uitschakelen is gelijkwaardig aan Botsingen Uitschakelen, alleen alle fysieke simulatie is uitgeschakeld. Dit betekend dat niet alleen alle objecten zullen stoppen met botsen, maar ook dat avatars zich niet meer kunnen bewegen.
-
-Dit zou alleen gebruikt moeten worden als het uitschakelen van Botsingen niet genoeg prestatie winst geeft om een fysiek probleem of top botsingen te onderzoeken.
-
-Indien u klaar bent, wees er dan zeker van Fysiek weer in te schakelen, anders kunnen avatars zich niet meer bewegen.
-
-Standaard: Uitgeschakeld
- </notification>
-
- <notification
-
- label="Top Botsingen"
- name="HelpRegionTopColliders"
- >
-Toon een lijst van objecten van het grootste aantal potentiële object-object botsingen.
-Deze objecten kunnen een trage prestatie veroorzaken. Selecteer Beeld &gt; Statistieken Balk en kijk onder Simulator &gt; Tijd &gt; Sim Tijd (Fysiek) om te zien of meer dan 20 ms wordt gespendeerd aan fysiek.
- </notification>
-
- <notification
-
- label="Top Scripts"
- name="HelpRegionTopScripts"
- >
-Toon een lijst van objecten die de meeste tijd besteden aan het uitvoeren van LSL scripts.
-Deze objecten kunnen een trage prestatie veroorzaken. Selecteer Beeld &gt; Statistieken Balk en kijk onder Simulator &gt; Tijd &gt; Script Tijd om te zien of meer dan 25 ms wordt gespendeerd aan scripts.
- </notification>
-
- <notification
-
- label="Herstart Regio"
- name="HelpRegionRestart"
- >
-Herstart het server proces van de regio na een twee minuten waarschuwing.
-Alle Inwoners van de regio zullen de verbinding kwijt raken. De regio zal alle gegevens bewaren en zou binnen 90 seconden weer operabel moeten zijn.
-
-De regio herstarten zou de meeste prestatie problemen moeten verhelpen en zou normaal gesproken alleen gebruikt moeten worden indien aangegeven.
- </notification>
-
- <notification
-
- label="Water Hoogte"
- name="HelpRegionWaterHeight"
- >
-Dit is de hoogte in meters waarop het water verschijnt.
-Als deze instelling anders is dan 20 en u heeft water aan de rand van de wereld of u heeft &apos;ontbrekend&apos; water, zal er een gat zichtbaar zijn.
-
-Standaard: 20
- </notification>
-
- <notification
-
- label="Terrein Ophogen"
- name="HelpRegionTerrainRaise"
- >
-Dit is de hoogte in meters dat perceel eigenaren hun terrein kunnen verhogen boven de standaard &apos;baked&apos; terrein hoogte.
-
-Standaard: 4
- </notification>
-
- <notification
-
- label="Terrein Verlagen"
- name="HelpRegionTerrainLower"
- >
-Dit is de hoogte in meters dat perceel eigenaren hun terrein kunnen verlagen onder de standaard &apos;baked&apos; terrein hoogte.
-
-Standaard: -4
- </notification>
-
- <notification
-
- label="Upload RAW Terrein"
- name="HelpRegionUploadRaw"
- >
-Deze knop upload een .RAW bestand naar de regio waar u zich bevindt.
-Het bestand moet de juiste afmetingen hebben (RGB, 256x256) en 13 kanalen.
-De beste manier om een terrein bestand te maken is het downloaden van een bestaand RAW bestand. Een goede eerste stap is om het rode kanaal (land hoogte) aan te passen en dat te uploaden.
-
-De upload kan tot 45 seconden in beslag nemen. Bedenk dat het uploaden van een terrein bestand de objecten reeds aanwezig op het land *niet* zal verplaatsen, alleen het terrein zelf en de permissies geassocieerd met de percelen. Dit kan resulteren in objecten die ondergronds gaan.
-
-Voor meer informatie over het wijzigen van de hoogte velden, raadpleeg F1 Help.
- </notification>
-
- <notification
-
- label="Download RAW Terrein"
- name="HelpRegionDownloadRaw"
- >
-Deze knop download een bestand welke de hoogte veld gegevens, perceel afmetingen, perceel te koop status en sommige perceel permissies bevat voor deze regio.
-Indien u het bestand opent in een programma als Photoshop, moet u de document afmetingen opgeven, welk RGB, 256x256 met 13 kanalen is. Dit terrein bestand kan op geen enkele andere manier worden geopend.
-
-Voor meer informatie over het wijzigen van de hoogte velden, raadpleeg F1 Help.
- </notification>
-
- <notification
-
- label="Gebruik Estate Zon"
- name="HelpRegionUseEstateSun"
- >
-Dit aan vinken zorgt er voor dat de zon positie overeen komt met de zon positie in de rest van het Estate.
-
-Standaard: Ingeschakeld
- </notification>
-
- <notification
-
- label="Vaste Zon"
- name="HelpRegionFixedSun"
- >
-Dit aan vinken stelt de zon in op de positie van de Fase schuif knop en stopt het verder bewegen van de zon.
-
-Standaard: Uitgeschakeld
- </notification>
-
- <notification
-
- label="Bake Terrein"
- name="HelpRegionBakeTerrain"
- >
-Deze knop slaat de huidige vorm van het terrein op als nieuwe standaard voor de regio. Eenmaal baked, kan het land terugkeren naar de opgeslagen vorm wanneer u of anderen gebruik maken van de Wijzig Terrein &apos;Terugkeer&apos; optie. Het baked terrein is ook het uitgangspunt voor de terrein verhogings- en verlagingslimieten.
- </notification>
-
- <notification
-
- label="Estate Beheerders"
- name="HelpEstateEstateManager"
- >
-Een Estate Beheerder is een Inwoner aan wie u de controle over de regio en estate instellingen heeft uitbesteed. De Estate Beheerder kan de instellingen wijzigen in deze panels, behalve het uploaden, downloaden en terrein bakken. In bijzonder kunnen zij Inwoners toestaan of verbannen van het Estate.
-
-Estate Beheerders kunnen alleen toegevoegd of verwijderd worden door de eigenaar van het Estate, niet door elkaar. Gebruik alstublieft alleen Inwoners die u kunt vertrouwen als Estate Beheerders, omdat uiteindelijk u verantwoordelijk bent voor hun acties.
- </notification>
-
- <notification
-
- label="Gebruik Globale Tijd"
- name="HelpEstateUseGlobalTime"
- >
-Dit aan vinken zorgt ervoor dat de zon in uw estate dezelfde positie volgt als in Linden-eigendom &apos;mainland&apos; Estates.
-
-Standaard: aan
- </notification>
-
- <notification
-
- label="Vaste Zon"
- name="HelpEstateFixedSun"
- >
-Dit aan vinken stelt de zon in op de positie van de Fase schuif knop en stopt het verder bewegen van de zon.
- </notification>
-
- <notification
-
- label="Publieke Toegang"
- name="HelpEstateExternallyVisible"
- >
-Dit aan vinken geeft aan dat Inwoners die in andere Estates zijn, deze Estate kunnen bezoeken zonder op de Toegangs lijst te staan.
-
-Standaard: Ingeschakeld
- </notification>
-
- <notification
-
- label="Direct Teleporteren Toestaan"
- name="HelpEstateAllowDirectTeleport"
- >
-Indien aan gevinkt staat het Inwoners toe om direct te Teleporteren naar elke plek in uw Estate. Indien niet aan gevinkt kunnen Inwoners Teleporteren naar de dichtstbijzijnde telehub.
-
-Standaard: Uitgeschakeld
- </notification>
-
- <notification
-
- label="Toegang Toestaan"
- name="HelpEstateAllowResident"
- >
-Toegang tot dit Estate zal gelimiteerd zijn tot Inwoners in deze lijst en onderstaande groepen. Deze instelling is allen beschikbaar indien Publieke Toegang niet is aan gevinkt.
- </notification>
-
- <notification
-
- label="Groeps Toegang Toestaan"
- name="HelpEstateAllowGroup"
- >
-Toegang tot dit Estate zal gelimiteerd worden tot groepen in deze lijst en elke Inwoner bovenaan. Deze Instelling is alleen beschikbaar als Publieke Toegang niet is aan gevinkt.
- </notification>
-
- <notification
-
- label="Misbruik Email Adres"
- name="HelpEstateAbuseEmailAddress"
- >
-Dit instellen met een geldig email adres zal misbruik rapporten op dit Estate doen versturen naar dat adres.
-Indien u het leeg laat, zullen misbruik rapporten alleen verzonden worden naar Linden Lab.
- </notification>
-
- <notification
-
- label="Toegang Weigeren"
- name="HelpEstateBanResident"
- >
-Inwoners in deze lijst zijn de toegang geweigerd in uw Estate, ongeacht elke andere instelling.
- </notification>
-
- <notification
-
- label="Voice Chat Toestaan"
- name="HelpEstateVoiceChat"
- >
-Percelen in dit Estate kunnen hun eigen Voice kanalen hebben waarin Inwoners die in de buurt van elkaar zijn, elkaar kunnen horen en met elkaar kunnen praten.
-
-Standaard: Uitgeschakeld
- </notification>
-
- <notification
-
- label="Voice Versie Ongelijkheid"
- name="VoiceVersionMismatch"
- >
-Deze versie van Second Life is niet compatibel met de Voice spraak optie in deze regio. Om Voice Chat goed te laten functioneren, moet u Second Life bijwerken.
- </notification>
-
- <notification
-
- label="Estate Convenant"
- name="HelpEstateCovenant"
- >
-Het instellen van een Estate Convenant maakt het u mogelijk om percelen in het Estate te verkopen. Indien de Convenant niet is ingesteld kunt u het niet verkopen. Een notitiekaart voor uw Convenant kan leeg zijn indien u geen regels wilt instellen, advies aan kopers wilt geven of iets anders in relatie tot het land wilt mededelen voor als men het koopt.
-
-Een Convenant kan gebruikt worden als u regels wilt mededelen, richtlijnen, culturele informatie of simpelweg uw eigen verwachtingen aan prospect kopers.
-Dit kan zoneren bevatten, bouw reglementen, betaal opties of elke andere vorm van informatie waarvan u het belangrijk vind dat de nieuwe eigenaar het heeft gezien en mee akkoord is gegaan alvorens het te kopen.
-
-De koper moet instemmen met de Convenant middels het aan vinken van het kadertje alvorens zij de aankoop af kunnen ronden. Estate Overeenkomsten zijn altijd zichtbaar in het Over Land dialoog venster voor elk perceel dat er eentje ingesteld heeft staan.
- </notification>
-
- <notification
-
- label="Kan Geen Objecten Kopen"
- name="BuyObjectOneOwner"
- >
-Kan geen objecten van verschillende eigenaren tegelijk kopen.
-
-Kies alstublieft slechts één object en probeer het opnieuw.
- </notification>
-
- <notification
-
- label="Kan Inhoud Niet Kopen"
- name="BuyContentsOneOnly"
- >
-Kan geen inhoud kopen van meer dan één object tegelijk.
-
-Kies alstublieft slechts één object en probeer het opnieuw.
- </notification>
-
- <notification
-
- label="Kan Inhoud Niet Kopen"
- name="BuyContentsOneOwner"
- >
-Kan geen inhoud kopen van verschillende eigenaren tegelijk.
-
-Kies alstublieft slechts één object en probeer het opnieuw.
- </notification>
-
- <notification
-
- name="BuyOriginal"
- >
-Koop originele object van [OWNER] voor L$[PRICE]?
-U zult de eigenaar worden van dit object.
-U kunt het dan:
- Wijzigen: [MODIFYPERM]
- Kopiëren: [COPYPERM]
- Verkopen of Weggeven: [RESELLPERM]
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyOriginalNoOwner"
- >
-Koop originele object voor L$[PRICE]?
-U zult de eigenaar worden van dit object.
-U kunt het dan:
- Wijzigen: [MODIFYPERM]
- Kopiëren: [COPYPERM]
- Verkopen of Weggeven: [RESELLPERM]
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyCopy"
- >
-Koop een kopie van [OWNER] voor L$[PRICE]?
-Het object zal gekopieerd worden naar uw inventaris.
-U kunt het dan:
- Wijzigen: [MODIFYPERM]
- Kopiëren: [COPYPERM]
- Verkopen of Weggeven: [RESELLPERM]
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyCopyNoOwner"
- >
-Koop een kopie voor L$[PRICE]?
-Het object zal gekopieerd worden naar uw inventaris.
-U kunt het dan:
- Wijzigen: [MODIFYPERM]
- Kopiëren: [COPYPERM]
- Verkopen of Weggeven: [RESELLPERM]
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyContents"
- >
-Koop de inhoud van [OWNER] voor L$[PRICE]?
-De inhoud zal naar uw inventaris gekopieerd worden.
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyContentsNoOwner"
- >
-Koop de inhoud voor L$[PRICE]?
-De inhoud zal naar uw inventaris gekopieerd worden.
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmPurchase"
- >
-Deze transactie zal:
-[ACTION]
-
-Weet u zeker dat u verder wilt gaan met deze aankoop?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmPurchasePassword"
- type="password">
-Deze transactie zal:
-[ACTION]
-
-Weet u zeker dat u verder wilt gaan met deze aankoop?
-Voer alstublieft opnieuw uw wachtwoord in en klik op OK.
- <form name="form">
- <input
- name="message"
- type="password"/>
- <button
-
-
- name="ConfirmPurchase"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annuleren"/>
- </form>
- </notification>
-
- <notification
-
- name="SetPickLocation"
- >
-Opmerking:
-
-U heeft de locatie van deze Favoriet bijgewerkt, maar andere details blijven ongewijzigd.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="MoveInventoryFromObject"
- >
-U heeft &apos;niet kopieerbare&apos; items geselecteerd.
-Deze items zullen worden verplaatst naar uw inventaris, niet gekopieerd.
-
-Verplaats de inventaris item(s)?
- <usetemplate
- ignoretext="Wanneer niet kopieerbare inventaris uit objecten verplaatst wordt"
- name="okcancelignore"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="MoveInventoryFromScriptedObject"
- >
-U heeft &apos;niet kopieerbare&apos; inventaris items geselecteerd.
-Deze items zullen verplaatst worden naar uw inventaris, niet gekopieerd.
-Omdat deze objecten scripts bevatten, kan het verplaatsen naar uw inventaris er voor zorgen dat het object niet meer werkt.
-inventaris item(s) verplaatsen?
- <usetemplate
- ignoretext="Indien verplaatsen &apos;niet kopieerbare&apos; inventaris van gescripte objecten"
- name="okcancelignore"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ClickActionNotPayable"
- >
-Waarschuwing: Het Betaal Object aan klik actie is ingesteld, maar het zal alleen werken als er een script is toegevoegd met een money() event.
- <form name="form">
- <ignore name="ignore"
- text="Indien instellen &apos;Betaal&apos; op objecten zonder money() events"/>
- </form>
- </notification>
-
- <notification
-
- name="OpenObjectCannotCopy"
- >
-Er zitten geen items in dit object die u kunt kopiëren.
- </notification>
-
- <notification
-
- name="WebLaunchAccountHistory"
- >
-Naar de Second Life web site gaan om uw account geschiedenis te bekijken?
- <usetemplate
- ignoretext="Bij laden van de account geschiedenis webpagina"
- name="okcancelignore"
- notext="Annuleren"
- yestext="Ga naar pagina"/>
- </notification>
-
- <notification
-
- name="ClickOpenF1Help"
- >
-De Second Life Support Web site bezoeken?
- <usetemplate
- ignoretext="Bij bezoeken van de Second Life Support Website."
- name="okcancelignore"
- notext="Annuleren"
- yestext="Ga"/>
- </notification>
-
- <notification
-
- name="ConfirmQuit"
- >
-Weet u zeker dat u wilt afsluiten?
- <usetemplate
- ignoretext="Bij afsluiten Second Life."
- name="okcancelignore"
- notext="Doorgaan"
- yestext="Afsluiten"/>
- </notification>
-
- <notification
-
- name="HelpReportAbuseEmailLL"
- >
-Gebruik dit gereedschap om overtredingen van de Voorwaarden voor Service (Terms of Service) en Gemeenschaps Standaarden (Community Standards)te rapporteren. Zie:
-
-http://secondlife.com/corporate/tos.php
-http://secondlife.com/corporate/cs.php
-
-Alle gerapporteerde misbruiken van de Voorwaarden voor Service en Gemeenschaps Standaarden zullen worden onderzocht en opgelost. U kunt de incident oplossing in de Incidenten Rapportage zien op:
-
-http://secondlife.com/support/incidentreport.php
- </notification>
-
- <notification
-
- name="HelpReportAbuseEmailEO"
- >
-BELANGRIJK: Dit rapport zal naar de eigenaar van deze regio gaan en niet naar Linden Lab!
-
-Als een service aan Inwoners en bezoekers heeft de eigenaar van deze regio er voor gekozen om rapporten vanuit deze regio zelf te ontvangen en af te handelen. Linden Lab zal geen onderzoek doen naar rapporten die u indient vanaf deze locatie.
-
-De regio eigenaar zal de rapporten afhandelen op basis van de regels geldend voor deze regio zoals weergegeven in het Estate Convenant (Bekijk Convenants door naar Wereld te gaan in het menu en te kiezen voor Over Land).
-
-De afhandeling van dit rapport is alleen van toepassing op deze regio.
-Toegang van Inwoners tot andere gebieden van Second Life zullen niet beïnvloed worden door de uitkomst van dit rapport. Alleen Linden Lab kan de toegang tot geheel Second Life beperken.
- </notification>
-
- <notification
-
- name="HelpReportBug"
- >
-Gebruik dit gereedschap *alleen* voor het rapporteren van technische opties die niet functioneren als verwacht. Geef alstublieft zoveel mogelijk technische details als mogelijk. U kunt de automatische-antwoord email gebruiken om op te reageren om aanvullende gegevens toe te voegen aan uw rapport.
-
-Alle bug rapporten worden onderzocht en ingeschat. Er zal geen antwoord per email worden verzonden.
-
-Als u technische problemen heeft, neem dan contact op met Support op:
-http://secondlife.com/community/support.php
-
-Opmerking: Onvolledige rapporten zullen niet worden onderzocht.
- </notification>
-
- <notification
-
- name="HelpReportAbuseSelectCategory"
- >
-Selecteer alstublieft een categorie voor dit misbruik rapport.
-
-Het selecteren van een categorie helpt ons met het archiveren en verwerken van misbruik rapporten.
- </notification>
-
- <notification
-
- name="HelpReportBugSelectCategory"
- >
-Selecteer alstublieft een categorie voor dit bug rapport.
-
-Het selecteren van een categorie helpt ons met het archiveren en verwerken van bug rapporten.
- </notification>
-
- <notification
-
- name="HelpReportAbuseAbuserNameEmpty"
- >
-Geef alstublieft een naam op van de misbruiker.
-
-Een accurate waarde opgeven helpt ons met het archiveren en verwerken van misbruik rapporten.
- </notification>
-
- <notification
-
- name="HelpReportAbuseAbuserLocationEmpty"
- >
-Geef alstublieft een locatie op waar het misbruik plaats vond.
-
-Een accurate waarde opgeven helpt ons met het archiveren en verwerken van misbruik rapporten.
- </notification>
-
- <notification
-
- name="HelpReportAbuseSummaryEmpty"
- >
-Geef alstublieft een korte samenvatting op van het misbruik dat plaats vond.
-
-Een accurate waarde opgeven helpt ons met het archiveren en verwerken van misbruik rapporten.
- </notification>
-
- <notification
-
- name="HelpReportBugSummaryEmpty"
- >
-Geef alstublieft een korte samenvatting van de bug.
-
-Een accurate samenvatting opgeven helpt ons met het archiveren en verwerken van bug rapporten.
- </notification>
-
- <notification
-
- name="HelpReportAbuseDetailsEmpty"
- >
-Geef alstublieft een gedetailleerde omschrijving van het misbruik dat plaats vond.
-
-Wees zo specifiek als mogelijk, inclusief namen en details van het incident waarover u rapporteert.
-
-Het opgeven van een accurate omschrijving helpt ons met het archiveren en verwerken van misbruik rapporten.
- </notification>
-
- <notification
-
- name="HelpReportBugDetailsEmpty"
- >
-Geef alstublieft een gedetailleerde omschrijving van de bug.
-
-Wees zo specifiek als mogelijk, inclusief stappen om de bug te reproduceren, indien mogelijk.
-
-Het opgeven van een accurate omschrijving helpt ons met het archiveren en verwerken van misbruik rapporten.
- </notification>
-
- <notification
-
- name="HelpReportAbuseContainsCopyright"
- >
-Beste Inwoner,
-
-Het lijkt er op dat u intellectueel eigendoms misbruik rapporteert. Wees er alstublieft van overtuigd dat u dit correct rapporteert:
-
-(1) Het Misbruik Proces. U kunt een misbruik rapport indienen als u er van overtuigd bent dat een Inwoner het Second Life permissie systeem uitbuit, bijvoorbeeld door gebruik van CopyBot of soortgelijke gereedschappen, daarmee de intellectuele eigendoms rechten overtredend. Het Abuse Team onderzoekt en zal passende maatregelen uitvaardigen tegen gedrag dat de Second Life Gemeenschaps Standaarden overtreedt. Echter, het Abuse Team zal geen actie ondernemen en niet reageren op verzoeken om inhoud te verwijderen uit de Second Life wereld.
-
-(2) Het DMCA of Inhoud Verwijder Proces. Voor een verzoek tot verwijdering van inhoud in Second Life, MOET u een geldige berichtgeving van misbruik indienen zoals voorzien in onze DMCA beleid op http://secondlife.com/corporate/dmca.php.
-
-Indien u nog steeds door wilt gaan met het misbruik proces, sluit dan alstublieft dit venster en maak het indienen van uw rapport af. U zult mogelijk een specifieke catagorie moeten kiezen &apos;CopyBot of Permissie Uitbuiting&apos;.
-
-Dank U,
-Linden Lab
- </notification>
-
- <notification
-
- name="FailedRequirementsCheck"
- >
-De volgende vereiste componenten ontbreken van [FLOATER]:
-[COMPONENTS]
- </notification>
-
- <notification
-
- label="Vervang Bestaande Bevestiging"
- name="ReplaceAttachment"
- >
-Er is al een object bevestigd op dit punt aan uw lichaam.
-Wilt u dit vervangen met het geselecteerde object?
- <form name="form">
- <ignore name="ignore"
- save_option="true"
- text="Bij vervangen van bestaande bevestigingen"/>
- <button
-
-
-
- name="Yes"
- text="OK"/>
- <button
-
-
- name="No"
- text="Annuleren"/>
- </form>
- </notification>
-
- <notification
-
- label="Niet Storen Modus Waarschuwing"
- name="BusyModePay"
- >
-U bevind zich in Niet Storen Modus, hetgeen inhoudt dat u geen enkele items kunt ontvangen voor deze betaling.
-
-Wilt u de Niet Storen Modus verlaten voordat u deze transactie completeert?
- <form name="form">
- <ignore name="ignore"
- save_option="true"
- text="Bij betalen van een persoon of object in Niet Storen modus"/>
- <button
-
-
-
- name="Yes"
- text="OK"/>
- <button
-
-
- name="No"
- text="Annuleren"/>
- </form>
- </notification>
-
- <notification
-
- name="ConfirmEmptyTrash"
- >
-Weet u zeker dat u de inhoud van uw vuilnisbak map permanent wilt verwijderen?
- <usetemplate
- ignoretext="Bij verwijderen van de inhoud uit de inventaris vuilnisbak map"
- name="okcancelignore"
- notext="Annuleren"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmClearBrowserCache"
- >
-Weet u zeker dat u uw browser cache wilt legen?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="ConfirmClearCookies"
- >
-Weet u zeker dat u al uw cookies wilt verwijderen?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="ConfirmClearMediaUrlList"
- >
-Weet u zeker dat u uw lijst met al de opgeslagen URL&apos;s wilt verwijderen?
- <usetemplate
- name="okcancelbuttons"
- notext="Annuleren"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="ConfirmEmptyLostAndFound"
- >
-Weet u zeker dat u de inhoud van de Verloren en Gevonden map permanent wilt verwijderen?
- <usetemplate
- ignoretext="Bij legen van uw inventaris Verloren en Gevonden map"
- name="okcancelignore"
- notext="Nee"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="CopySLURL"
- >
-De volgende SLURL is gekopieerd naar uw klem bord:
-[SLURL]
-
-Plaats het in een web pagina om anderen eenvoudig toegang te verschaffen naar de locatie of test het zelf door het te plakken in de adres balk van uw web browser.
- <form name="form">
- <ignore name="ignore"
- text="Bij kopiëren van een SLURL naar het klem bord"/>
- </form>
- </notification>
-
- <notification
-
- name="GraphicsPreferencesHelp"
- >
-Dit venster bepaald de venster afmetingen, resolutie en kwaliteit van de client&apos;s grafische weergave. De Voorkeuren &gt; Grafische interface laat u kiezen uit vier grafische niveaus: Laag, Middel, Hoog en Ultra. U kunt ook uw grafische instellingen aanpassen met het aan vinken van het Custom vakje en de volgende instellingen manipuleren:
-
-Shaders: In of uitschakelen van de verschillende typen pixel shaders.
-
-Reflectie Detail: Stelt het type objecten in hetgeen water kan reflecteren.
-
-Avatar Weergave: Stelt de opties in die van invloed zijn op hoe de client een avatar zal renderen.
-
-Zicht bereik: Beïnvloed tot hoe ver objecten vanaf uw zichtpunt worden weergegeven in de scène.
-
-Maximaal Aantal Particles: Stelt het maximaal aantal particles in die u tegelijk kunt zien op uw scherm.
-
-Nabewerking Kwaliteit: Stelt de resolutie in waarmee Gloei wordt weergegeven.
-
-Maas Detail: Stelt de hoeveelheid detail of het aantal driehoeken in gebruikt voor de weergave van bepaalde objecten. Een hogere waarde zal langer nemen om weer te gegeven, maar zorgen voor objecten met meer detail.
-
-Licht Detail: Bepaald welke typen lichten u wenst weer te geven.
-
-Terrein Detail: Stelt de hoeveelheid detail in die u wilt zien voor het terrein textuur.
- </notification>
-
- <notification
-
- name="WLSavePresetAlert"
- >
-Wilt u de opgeslagen voor instellingen overschrijven?
- <usetemplate
- name="okcancelbuttons"
- notext="Nee"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="WLDeletePresetAlert"
- >
-Wilt u [SKY] verwijderen?
- <usetemplate
- name="okcancelbuttons"
- notext="Nee"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="WLNoEditDefault"
- >
-U kunt de standaard instellingen niet wijzigen of verwijderen.
- </notification>
-
- <notification
-
- name="WLMissingSky"
- >
-Dit dag cyclus bestand heeft een ontbrekend lucht bestand: [SKY].
- </notification>
-
- <notification
-
- name="PPSaveEffectAlert"
- >
-Voorbewerkingeffecten bestaan. Wilt u ze alsnog overschrijven?
- <usetemplate
- name="okcancelbuttons"
- notext="Nee"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="HelpEditSky"
- >
-Wijzig de WindLight schuif knoppen en maak en sla een set van luchten op.
- </notification>
-
- <notification
-
- name="HelpEditDayCycle"
- >
-Bepaald de luchten te gebruiken gedurende de dag.
- </notification>
-
- <notification
-
- name="EnvSettingsHelpButton"
- >
-Deze instelling bepalen hoe de omgeving er uit ziet op uw computer. Uw grafische kaart zal grafische shaders moeten ondersteunen om toegang te krijgen tot alle instellingen.
-
-Wijzig de &quot;Tijd van de Dag&quot; schuif knop om de fase van de dag lokaal in de viewer aan te passen.
-
-Wijzig de &quot;Wolken Dichtheid&quot; schuif knop om de hoeveelheid wolken die de lucht bedekken in te stellen.
-
-Kies een kleur in de &quot;Water Kleur&quot; kleuren kiezer om de kleur van het water aan te passen.
-
-Wijzig de &quot;Water Mist&quot; schuif knop om de dichtheid van de mist onder water in te stellen.
-
-Klik op &quot;Gebruik Estate Tijd&quot; om de tijd van de dag te herstellen naar de huidige tijd en die te volgen.
-
-Klik op &quot;Geavanceerde Lucht&quot; om de editor op te roepen voor geavanceerde instellingen voor de lucht.
-
-Klik op &quot;Geavanceerd Water&quot; om de editor op te roepen voor geavanceerde instellingen voor water.
- </notification>
-
- <notification
-
- name="HelpDayCycle"
- >
-De Dag Cyclus Editor geeft u controle over de lucht gedurende de Second Life&apos;s dag/nacht cyclus. Dit is de cyclus die gebruikt wordt in de Basis Omgeving Editor&apos;s Tijd van de Dag schuif knop.
-
-De Dag Cyclus Editor werkt beter met het instellen van gemarkeerde frames. Dit zijn nodes (weergegeven als grijze blips in de tijd weergave) die Hemel voorinstelling met zich geassocieerd hebben. Als de Tijd van de Dag voortschrijdt, &quot;animeert&quot; de WindLight Hemel als het interpoleert tussen de gemarkeerde frames.
-
-De gele pijlen boven de tijdlijn representeert uw huidige zicht, gebaseerd op de Tijd van de Dag. Klik en sleep deze om te zien hoe uw dag zal animeren. U kunt gemarkeerde frames toe voegen of verwijderen middels het indrukken van de Frame Toevoegen of Frame Verwijderen knoppen, rechts van de tijdlijn.
-
-U kunt de tijds positie van een gemarkeerd frame instellen door het te slepen over de tijdlijn of middels het handmatig invullen van de Gemarkeerde Frame Instellingen. Binnen de Gemarkeerde Frame Instellingen krijgt u de mogelijkheid het gemarkeerde frame te associëren met de respectievelijke WindLight voorinstelling.
-
-De lengte van de Cyclus bepaald de totale tijdsduur van een &quot;dag&quot;. Stelt u dit in op een lage waarde (bijv. twee minuten) betekend dat uw volledig 24 uurs tijdlijn zal animeren in slechts twee minuten! Als u tevreden bent met uw tijdlijn en gemarkeerde frame cyclus, gebruik dan de Start en Stop knoppen om het resultaat voor te beschouwen. Onthoud dat u ook de gele tijd indicator pijl boven de tijdlijn kunt bewegen om de animatie cyclus interactief te bekijken. Het gebruik van de Estate Tijd knop zal de lengte en tijd van uw dag synchroniseren met de Estate&apos;s dag cyclus.
-
-Als u tevreden bent met uw Dag Cyclus, kunt het opslaan en laden met de Test Dag Opslaan en Laad Test Dag knoppen. Merk op, dat wij momenteel slechts één Dag Cyclus toestaan.
- </notification>
-
- <notification
-
- name="HelpBlueHorizon"
- >
-Gebruik de Rood/Groen/Blauw schuif knoppen om de kleur van de hemel aan te passen. U kunt de Intensiteit (I) schuif knop gebruiken om alle drie de schuif knoppen tegelijk te bewegen.
- </notification>
-
- <notification
-
- name="HelpHazeHorizon"
- >
-Nevel Horizon is één van de meest handige parameters voor de algehele belichting in de scène. Het is effectief om de vele belichting instellingen te simuleren, zoals wit-vlakken van de zon en donkere gesloten iris instellingen.
- </notification>
-
- <notification
-
- name="HelpBlueDensity"
- >
-Blauw Dichtheid beïnvloed de algehele kleur verzadiging van de hemel en mist. Indien u de Intensiteit (I) schuif knop naar rechts schuift, zullen de kleuren lichter en sprekender worden. Indien u het geheel naar links schuift, worden de kleuren doffer, uiteindelijk vervagend naar zwart en wit. Als u de hemel kleur nauwkeurig wilt uitbalanceren, kunt u de individuele elementen van verzadiging instellen door gebruik van de Rood/Groen/Blauw (RGB) schuif knoppen.
- </notification>
-
- <notification
-
- name="HelpHazeDensity"
- >
-Nevel Dichtheid bepaald de hoeveelheid dofheid, grijze nevel in de atmosfeer. Het is effectief om scènes met veel rook of zelf gemaakte vervuiling te simuleren. Het is ook effectief voor het simuleren van nevel en mist.
- </notification>
-
- <notification
-
- name="HelpDensityMult"
- >
-De Dichtheid Vermeerderaar kan gebruikt worden om de algehele dichtheid van de atmosfeer te beïnvloeden.
-Bij lagere instelling creëert het een gevoel van &quot;dunne lucht&quot; en met hogere instellingen een dik zwaar smog effect.
- </notification>
-
- <notification
-
- name="HelpDistanceMult"
- >
-Stelt de WindLight&apos;s waargenomen afstand in. Een waarde van nul stopt de invloed van WindLight op terrein en objecten. Waarden groter dan 1 simuleren grotere afstanden voor dikkere atmosferische effecten.
- </notification>
-
- <notification
-
- name="HelpMaxAltitude"
- >
-Maximale Hoogte bepaald de hoogte calculaties die WindLight uitvoert bij het berekenen van de atmosferische belichting. Later op de dag is het handig om de &quot;diepte&quot; van de zonsondergang weergave in te stellen.
- </notification>
-
- <notification
-
- name="HelpSunlightColor"
- >
-Stelt de kleur en intensiteit in van direct licht in de scène.
- </notification>
-
- <notification
-
- name="HelpSunAmbient"
- >
-Stelt de kleur en intensiteit in van het omgevings atmosferische licht in de scène.
- </notification>
-
- <notification
-
- name="HelpSunGlow"
- >
-De Afmeting schuif knop stelt de afmeting van de zon in.
-De Focus schuif knop bepaald de wazigheid van de zon aan de hemel.
- </notification>
-
- <notification
-
- name="HelpSceneGamma"
- >
-Wijzigt de verdeling van licht op het scherm in licht of donker.
- </notification>
-
- <notification
-
- name="HelpStarBrightness"
- >
-Wijzigt de helderheid van sterren aan de hemel.
- </notification>
-
- <notification
-
- name="HelpTimeOfDay"
- >
-Bepaald de locatie van de zon aan de hemel.
-Gelijkwaardig aan elevatie.
- </notification>
-
- <notification
-
- name="HelpEastAngle"
- >
-Bepaald de locatie van de zon aan de hemel.
-Gelijkwaardig aan azimut.
- </notification>
-
- <notification
-
- name="HelpCloudColor"
- >
-Wijzigt de kleur van de wolken. Het is algemeen aanbevolen deze wit-achtig te houden, maar hé, heb plezier als u dit wilt.
- </notification>
-
- <notification
-
- name="HelpCloudDetail"
- >
-Bepaald het detail plaatje als laag bovenop het basis wolken plaatje. X en Y bepalen de positie. D (Dichtheid) bepaald hoe wollig of verspreid de wolken verschijnen.
- </notification>
-
- <notification
-
- name="HelpCloudDensity"
- >
-Geeft u de mogelijkheid de positie van wolken met de X en Y schuif knoppen in te stellen en hoe dicht ze zijn met de D schuif knop.
- </notification>
-
- <notification
-
- name="HelpCloudCoverage"
- >
-Bepaald hoeveel de wolken de hemel bedekken.
- </notification>
-
- <notification
-
- name="HelpCloudScale"
- >
-Bepaald de schaal van het wolken plaatje op de hemelboog.
- </notification>
-
- <notification
-
- name="HelpCloudScrollX"
- >
-Bepaald de snelheid van de wolken terwijl zij in X richting bewegen.
- </notification>
-
- <notification
-
- name="HelpCloudScrollY"
- >
-Bepaald de snelheid van de wolken terwijl zij in Y richting bewegen.
- </notification>
-
- <notification
-
- name="HelpClassicClouds"
- >
-Vink dit aan voor weergave van Second Life&apos;s oudere klassieke wolken als toevoeging op WindLight&apos;s wolken.
- </notification>
-
- <notification
-
- name="HelpWaterFogColor"
- >
-Kiest de kleur van de onder water nevel.
- </notification>
-
- <notification
-
- name="HelpWaterFogDensity"
- >
-Bepaald hoe dicht de water nevel is en hoe ver u kunt zien onder water.
- </notification>
-
- <notification
-
- name="HelpUnderWaterFogMod"
- >
-Past het effect aan van de Nevel Dichtheid Exponent om zo te bepalen hoe ver uw avatar onder water kan zien.
- </notification>
-
- <notification
-
- name="HelpWaterGlow"
- >
-Bepaald hoeveel het oppervlak van het water gloeit.
- </notification>
-
- <notification
-
- name="HelpWaterNormalScale"
- >
-Bepaald de schaling van de drie wavelets (golf patronen) die samen water vormen.
- </notification>
-
- <notification
-
- name="HelpWaterFresnelScale"
- >
-Bepaald hoeveel licht er wordt gereflecteerd onder verschillende hoeken.
- </notification>
-
- <notification
-
- name="HelpWaterFresnelOffset"
- >
-Bepaald de hoeveelheid licht intensiteit welke wordt gereflecteerd.
- </notification>
-
- <notification
-
- name="HelpWaterScaleAbove"
- >
-Bepaald hoeveel licht er wordt weerkaatst wanneer van bovenop het water oppervlak gezien.
- </notification>
-
- <notification
-
- name="HelpWaterScaleBelow"
- >
-Bepaald hoeveel licht er wordt weerkaatst wanneer van onder het water oppervlak gezien.
- </notification>
-
- <notification
-
- name="HelpWaterBlurMultiplier"
- >
-Bepaald hoe golven en reflectie worden ge mixed.
- </notification>
-
- <notification
-
- name="HelpWaterNormalMap"
- >
-Bepaald welke Normaal map gelaagd is over het water om de reflectie/weerkaatsing te bepalen.
- </notification>
-
- <notification
-
- name="HelpWaterWave1"
- >
-Bepaald waar en hoe snel de grote schaal versie van de Normaal map beweegt in X en Y richting.
- </notification>
-
- <notification
-
- name="HelpWaterWave2"
- >
-Bepaald waar en hoe snel de kleine schaal versie van de Normaal map beweegt in X en Y richting.
- </notification>
-
- <notification
-
- name="NewSkyPreset"
- >
-Geef een naam op voor de nieuwe lucht.
- <form name="form">
- <input name="message" type="text">
-Nieuwe Voorinstelling
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annuleren"/>
- </form>
- </notification>
-
- <notification
-
- name="ExistsSkyPresetAlert"
- >
-Voorinstelling bestaat al!
- </notification>
-
- <notification
-
- name="NewWaterPreset"
- >
-Geef een naam voor de nieuwe voorinstelling van water.
- <form name="form">
- <input name="message" type="text">
-Nieuwe Voorinstelling
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annuleren"/>
- </form>
- </notification>
-
- <notification
-
- name="ExistsWaterPresetAlert"
- >
-Voorinstelling bestaat al!
- </notification>
-
- <notification
-
- name="WaterNoEditDefault"
- >
-u kunt de standaard voorinstelling niet wijzigen of verwijderen.
- </notification>
-
- <notification
-
- name="ChatterBoxSessionStartError"
- >
-Kan geen nieuwe chat sessie starten met [RECIPIENT].
-[REASON]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ChatterBoxSessionEventError"
- >
-[EVENT]
-[REASON]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ForceCloseChatterBoxSession"
- >
-Uw chat sessie met [NAME] zal moeten worden gesloten.
-[REASON]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="Cannot_Purchase_an_Attachment"
- >
-Items kunnen niet worden gekocht indien ze deel uit maken van een Bevestiging.
- </notification>
-
- <notification
-
- label="Over verzoeken voor debet permissies"
- name="DebitPermissionDetails"
- >
-Toestemming geven aan dit script geeft het object een onbeperkte permissie om Linden dollars (L$) uit uw account te nemen!
-Om dit recht in te trekken, moet de object eigenaar het object verwijderen of de scripts in het object opnieuw instellen.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="AutoWearNewClothing"
- >
-Wilt u de kleding items die u maakt automatisch aantrekken?
- <usetemplate
- ignoretext="Automatisch nieuwe kleding aantrekken"
- name="okcancelignore"
- notext="Nee"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="NotAgeVerified"
- >
-U moet leeftijd geverifieerd zijn om toegang te verkrijgen tot dit perceel.
-Wilt u de Second Life website bezoeken om uw leeftijd te verifiëren?
-
-[_URL]
- <url option="0" name="url">
-
- https://secondlife.com/account/verification.php
- </url>
- <usetemplate
- ignoretext="Waarschuw voor gebrek aan leeftijd verificatie"
- name="okcancelignore"
- notext="Nee"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="Cannot enter parcel: no payment info on file"
- >
-Dit perceel verlangd dat u betaal informatie geregistreerd hebt staan alvorens toegang te verkrijgen.
-Wilt u de Second Life website bezoeken om dit in te stellen?
-
-[_URL]
- <url option="0" name="url">
-
- https://secondlife.com/account/index.php?lang=nl
- </url>
- <usetemplate
- ignoretext="Waarschuw voor gebrek aan betaal informatie"
- name="okcancelignore"
- notext="Nee"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="MissingString"
- >
-De tekst [STRING_NAME] ontbreekt in strings.xml
- </notification>
-
- <notification
-
- name="SystemMessageTip"
- >
-[MESSAGE]
- </notification>
-
- <notification
-
- name="Cancelled"
- >
-Geannuleerd
- </notification>
-
- <notification
-
- name="CancelledSit"
- >
-Zitten geannuleerd
- </notification>
-
- <notification
-
- name="CancelledAttach"
- >
-Bevestigen geannuleerd
- </notification>
-
- <notification
-
- name="ReplacedMissingWearable"
- >
-Missend kleding/lichaamsdeel is vervangen door standaard.
- </notification>
-
- <notification
-
- name="GroupNotice"
- >
-Onderwerp: [SUBJECT], Bericht: [MESSAGE]
- </notification>
-
- <notification
-
- name="FriendOnline"
- >
-[FIRST] [LAST] is Online
- </notification>
-
- <notification
-
- name="FriendOffline"
- >
-[FIRST] [LAST] is Offline
- </notification>
-
- <notification
-
- name="AddSelfFriend"
- >
-U kunt uzelf niet als vriend toevoegen.
- </notification>
-
- <notification
-
- name="UploadingAuctionSnapshot"
- >
-In-wereld en website foto&apos;s worden geüpload...
-(Duurt ongeveer 5 minuten.)
- </notification>
-
- <notification
-
- name="UploadPayment"
- >
-U heeft L$[AMOUNT] betaald om te uploaden.
- </notification>
-
- <notification
-
- name="UploadWebSnapshotDone"
- >
-Upload van website foto is gereed.
- </notification>
-
- <notification
-
- name="UploadSnapshotDone"
- >
-Upload van in-wereld foto is gereed.
- </notification>
-
- <notification
-
- name="TerrainDownloaded"
- >
-Terrain.raw gedownload
- </notification>
-
- <notification
-
- name="GestureMissing"
- >
-Gebaar [NAME] mist in de database.
- </notification>
-
- <notification
-
- name="UnableToLoadGesture"
- >
-Kan gebaar [NAME] niet laden. Probeer het a.u.b. opnieuw.
- </notification>
-
- <notification
-
- name="LandmarkMissing"
- >
-Landmarkering mist in de database.
- </notification>
-
- <notification
-
- name="UnableToLoadLandmark"
- >
-Kan landmarkering niet laden. Probeer het a.u.b. opnieuw.
- </notification>
-
- <notification
-
- name="CapsKeyOn"
- >
-Uw Caps Lock toets staat aan. Aangezien dit effect heeft op het wachtwoord dat u intypt, zult u het wellicht willen uitzetten.
- </notification>
-
- <notification
-
- name="NotecardMissing"
- >
-Notitiekaart mist in de database.
- </notification>
-
- <notification
-
- name="NotecardNoPermissions"
- >
-Onvoldoende permissies om de notitiekaart te bekijken.
- </notification>
-
- <notification
-
- name="RezItemNoPermissions"
- >
-Onvoldoende permissies om het object te rezzen.
- </notification>
-
- <notification
-
- name="UnableToLoadNotecard"
- >
-Kan notitiekaart niet laden. Probeer het a.u.b. opnieuw.
- </notification>
-
- <notification
-
- name="ScriptMissing"
- >
-Script mist in de database.
- </notification>
-
- <notification
-
- name="ScriptNoPermissions"
- >
-Onvoldoende permissies om het script te bekijken.
- </notification>
-
- <notification
-
- name="UnableToLoadScript"
- >
-Kan script niet laden. Probeer het a.u.b. opnieuw.
- </notification>
-
- <notification
-
- name="IncompleteInventory"
- >
-De complete inhoud die u aanbiedt is nog niet lokaal beschikbaar. Probeer die items over een minuut nogmaals aan te bieden.
- </notification>
-
- <notification
-
- name="CannotModifyProtectedCategories"
- >
-U kunt geen beschermde categorieën wijzigen.
- </notification>
-
- <notification
-
- name="CannotRemoveProtectedCategories"
- >
-U kunt geen beschermde categorieën verwijderen.
- </notification>
-
- <notification
-
- name="OfferedCard"
- >
-U heeft een visitekaartje aangeboden aan [FIRST] [LAST]
- </notification>
-
- <notification
-
- name="UnableToBuyWhileDownloading"
- >
-Niet mogelijk te kopen terwijl objectdata wordt gedownload. Probeer het alstublieft opnieuw.
- </notification>
-
- <notification
-
- name="UnableToLinkWhileDownloading"
- >
-Niet mogelijk om te koppelen terwijl objectdata wordt gedownload. Probeer het alstublieft opnieuw.
- </notification>
-
- <notification
-
- name="CannotBuyObjectsFromDifferentOwners"
- >
-Kan geen objecten van meerdere eigenaren op hetzelfde moment kopen. Selecteer alstublieft een enkel object.
- </notification>
-
- <notification
-
- name="ObjectNotForSale"
- >
-Object lijkt niet te koop.
- </notification>
-
- <notification
-
- name="EnteringGodMode"
- >
-God modus binnengaan, niveau [LEVEL]
- </notification>
-
- <notification
-
- name="LeavingGodMode"
- >
-God modus verlaten, niveau [LEVEL]
- </notification>
-
- <notification
-
- name="CopyFailed"
- >
-Kopiëren mislukt omdat u geen kopieerpermissie bezit.
- </notification>
-
- <notification
-
- name="InventoryAccepted"
- >
-[NAME] heeft uw inventarisaanbod geaccepteerd.
- </notification>
-
- <notification
-
- name="InventoryDeclined"
- >
-[NAME] heeft uw inventarisaanbod afgewezen.
- </notification>
-
- <notification
-
- name="ObjectMessage"
- >
-[NAME]: [MESSAGE]
- </notification>
-
- <notification
-
- name="CallingCardAccepted"
- >
-Uw visitekaartje is geaccepteerd.
- </notification>
-
- <notification
-
- name="CallingCardDeclined"
- >
-Uw visite kaart is afgewezen.
- </notification>
-
- <notification
-
- name="TeleportToLandmark"
- >
-Nu u het mainland bereikt heeft, kunt u teleporteren naar locaties als &apos;[NAME]&apos; door op de Inventaris knop rechtsonder in uw scherm te klikken en dan de Landmarkeringen map te selecteren. Dubbelklik op de landmarkering en klik op Teleport om ernaartoe te reizen.
- </notification>
-
- <notification
-
- name="TeleportToPerson"
- >
-Nu u het mainland bereikt heeft, kunt u contact opnemen met inwoners als &apos;[NAME]&apos; door op de Inventaris knop rechtsonder in uw scherm te klikken en dan de Visitekaartjes map te selecteren. Dubbelklik op het visitekaartje, klik op Instant Message en type een bericht.
- </notification>
-
- <notification
-
- name="CantSelectLandFromMultipleRegions"
- >
-Kan geen land selecteren over servergrenzen.
-Probeer een kleiner stuk land te selecteren.
- </notification>
-
- <notification
-
- name="GroupVote"
- >
-[NAME] heeft voorgesteld om te stemmen over:
-[MESSAGE]
- <form name="form">
- <button
-
- name="VoteNow"
- text="Stem Nu"/>
- <button
-
- name="Later"
- text="Later"/>
- </form>
- </notification>
-
- <notification
-
- name="SystemMessage"
- >
-[MESSAGE]
- </notification>
-
- <notification
-
- name="EventNotification"
- >
-Evenement Bericht:
-
-[NAME]
-[DATE]
- <form name="form">
- <button
-
- name="Teleport"
- text="Teleport"/>
- <button
-
- name="Description"
- text="Omschrijving"/>
- <button
-
- name="Cancel"
- text="Annuleren"/>
- </form>
- </notification>
-
- <notification
-
- name="TransferObjectsHighlighted"
- >
-Alle objecten op dit perceel die zullen worden overgedragen aan de koper van dit perceel zijn nu opgelicht.
-
-* Bomen en grassen die worden overgedragen zijn niet opgelicht.
- <form name="form">
- <button
-
- name="Done"
- text="Gereed"/>
- </form>
- </notification>
-
- <notification
-
- name="DeactivatedGesturesTrigger"
- >
-Deactiveren van gebaren met dezelfde trigger:
-[NAMES]
- </notification>
-
- <notification
-
- name="NoQuickTime"
- >
-De QuickTime software van Apple schijnt niet op uw systeem geïnstalleerd te zijn.
-Indien u streaming media wilt zien op percelen die dit ondersteunen, dient u naar de QuickTime webpagina te gaan (http://www.apple.com/QuickTime) en de QuickTime Player te installeren.
- </notification>
-
- <notification
-
- name="OwnedObjectsReturned"
- >
-De objecten die uw eigendom zijn op het geselecteerde perceel zijn geretourneerd naar uw inventaris.
- </notification>
-
- <notification
-
- name="OtherObjectsReturned"
- >
-De objecten op het geselecteerde perceel dat het eigendom is van [FIRST] [LAST], zijn geretourneerd naar zijn of haar inventaris.
- </notification>
-
- <notification
-
- name="OtherObjectsReturned2"
- >
-De objecten op het geselecteerde perceel dat het eigendom is van inwoner &apos;[NAME]&apos;, zijn geretourneerd naar hun eigenaar.
- </notification>
-
- <notification
-
- name="GroupObjectsReturned"
- >
-De objecten op het geselecteerde perceel dat gedeeld is met de groep [GROUPNAME] zijn geretourneerd naar de inventaris van hun eigenaar.
-Overdraagbare objecten die eigendom zijn van de groep zijn geretourneerd naar hun voormalige eigenaren.
-Niet-overdraagbare objecten die eigendom zijn van de groep zijn verwijderd.
- </notification>
-
- <notification
-
- name="UnOwnedObjectsReturned"
- >
-De objecten op het geselecteerde perceel die NIET uw eigendom zijn, zijn geretourneerd naar hun eigenaren.
- </notification>
-
- <notification
-
- name="NotSafe"
- >
-Op dit land is letsel ingeschakeld (&apos;niet veilig&apos;).
-U kunt hier letsel oplopen. Indien u sterft, zult u naar uw thuis locatie worden geteleporteerd.
- </notification>
-
- <notification
-
- name="NoFly"
- >
-Op dit land is vliegen uitgeschakeld (&apos;niet vliegen&apos;).
-U kunt hier niet vliegen.
- </notification>
-
- <notification
-
- name="PushRestricted"
- >
-Dit land is &apos;Niet Duwen&apos;.
-U kunt geen anderen duwen, tenzij u het land bezit.
- </notification>
-
- <notification
-
- name="NoVoice"
- >
-Op dit land is voice uitgeschakeld.
- </notification>
-
- <notification
-
- name="NoBuild"
- >
-Op dit land is bouwen uitgeschakeld (&apos;niet bouwen&apos;).
-U kunt hier geen objecten creëren.
- </notification>
-
- <notification
-
- name="ScriptsStopped"
- >
-Een beheerder heeft scripts in deze regio tijdelijk gestopt.
- </notification>
-
- <notification
-
- name="ScriptsNotRunning"
- >
-In deze regio worden geen scripts uitgevoerd.
- </notification>
-
- <notification
-
- name="NoOutsideScripts"
- >
-Op dit land zijn externe scripts uitgeschakeld (geen externe scripts).
-Geen scripts zullen worden uitgevoerd, behalve scripts die toebehoren aan de landeigenaar.
- </notification>
-
- <notification
-
- name="ClaimPublicLand"
- >
-Kan alleen publiek land claimen in de regio waar u aanwezig bent.
- </notification>
-
- <notification
-
- name="ObjectGiveItem"
- >
-Een object genaamd [OBJECTFROMNAME], eigendom van [FIRST] [LAST], heeft u een [OBJECTTYPE] genaamd [OBJECTNAME] gegeven.
- <form name="form">
- <button
-
- name="Keep"
- text="Behouden"/>
- <button
-
- name="Discard"
- text="Afwijzen"/>
- <button
-
- name="Mute"
- text="Negeren"/>
- </form>
- </notification>
-
- <notification
-
- name="ObjectGiveItemUnknownUser"
- >
-Een object genaamd [OBJECTFROMNAME], eigendom van (een onbekende gebruiker), heeft u een [OBJECTTYPE] genaamd [OBJECTNAME] gegeven.
- <form name="form">
- <button
-
- name="Keep"
- text="Behouden"/>
- <button
-
- name="Discard"
- text="Afwijzen"/>
- <button
-
- name="Mute"
- text="Negeren"/>
- </form>
- </notification>
-
- <notification
-
- name="UserGiveItem"
- >
-[NAME] heeft u een [OBJECTTYPE] genaamd &apos;[OBJECTNAME]&apos; gegeven.
- <form name="form">
- <button
-
- name="Keep"
- text="Behouden"/>
- <button
-
- name="Discard"
- text="Afwijzen"/>
- <button
-
- name="Mute"
- text="Negeren"/>
- </form>
- </notification>
-
- <notification
-
- name="GodMessage"
- >
-[NAME]
-[MESSAGE]
- </notification>
-
- <notification
-
- name="JoinGroup"
- >
-[MESSAGE]
- <form name="form">
- <button
-
- name="Join"
- text="Deelnemen"/>
- <button
-
- name="Decline"
- text="Afwijzen"/>
- <button
-
- name="Info"
- text="Info"/>
- </form>
- </notification>
-
- <notification
-
- name="TeleportOffered"
- >
-[NAME] heeft aangeboden u te teleporteren naar zijn of haar locatie:
-
-[MESSAGE]
- <form name="form">
- <button
-
- name="Teleport"
- text="Teleport"/>
- <button
-
- name="Cancel"
- text="Annuleren"/>
- </form>
- </notification>
-
- <notification
-
- name="GotoURL"
- >
-[MESSAGE]
-[URL]
- <form name="form">
- <button
-
- name="Later"
- text="Later"/>
- <button
-
- name="GoNow..."
- text="Ga Nu..."/>
- </form>
- </notification>
-
- <notification
-
- name="OfferFriendship"
- >
-[NAME] biedt vriendschap aan.
-
-[MESSAGE]
-
-(Standaard zult u in staat zijn om elkaars online status te zien.)
- <form name="form">
- <button
-
- name="Accept"
- text="Accepteren"/>
- <button
-
- name="Decline"
- text="Afwijzen"/>
- </form>
- </notification>
-
- <notification
-
- name="OfferFriendshipNoMessage"
- >
-[NAME] biedt vriendschap aan.
-
-(Standaard zult u in staat zijn om elkaars online status te zien.)
- <form name="form">
- <button
-
- name="Accept"
- text="Accepteren"/>
- <button
-
- name="Decline"
- text="Afwijzen"/>
- </form>
- </notification>
-
- <notification
-
- name="FriendshipAccepted"
- >
-[NAME] heeft uw vriendschapsaanbod geaccepteerd.
- </notification>
-
- <notification
-
- name="FriendshipDeclined"
- >
-[NAME] heeft uw vriendschapsaanbod afgewezen.
- </notification>
-
- <notification
-
- name="OfferCallingCard"
- >
-[FIRST] [LAST] biedt zijn/haar visitekaartje aan.
-Dit zal een bladwijzer in uw inventaris toevoegen zodat u deze inwoner snel kunt een IM kunt sturen.
- <form name="form">
- <button
-
- name="Accept"
- text="Accepteren"/>
- <button
-
- name="Decline"
- text="Afwijzen"/>
- </form>
- </notification>
-
- <notification
-
- name="RegionRestartMinutes"
-
-
- >
-De regio zal over [MINUTES] minuten herstarten.
-Indien u in deze regio blijft, zult u worden uitgelogd.
- </notification>
-
- <notification
-
- name="RegionRestartSeconds"
-
-
- >
-De regio zal over [SECONDS] seconden herstarten.
-Indien u in deze regio blijft, zult u worden uitgelogd.
- </notification>
-
- <notification
-
- name="LoadWebPage"
- >
-Laad webpagina [URL]?
-
-[MESSAGE]
-
-Van object: [OBJECTNAME], eigenaar: [NAME]?
- <form name="form">
- <button
-
- name="Gotopage"
- text="Ga naar pagina"/>
- <button
-
- name="Cancel"
- text="Annuleren"/>
- </form>
- </notification>
-
- <notification
-
- name="FailedToFindWearableUnnamed"
- >
-Kon [TYPE] niet in de database vinden.
- </notification>
-
- <notification
-
- name="FailedToFindWearable"
- >
-Kon [TYPE] genaamd [DESC] niet in de database vinden.
- </notification>
-
- <notification
-
- name="ScriptQuestion"
- >
-[OBJECTNAME]&apos;, een object van &apos;[NAME]&apos;, wil graag:
-
-[QUESTIONS]
-Is dit OK?
- <form name="form">
- <button
-
- name="Yes"
- text="Ja"/>
- <button
-
- name="No"
- text="Nee"/>
- <button
-
- name="Mute"
- text="Negeren"/>
- </form>
- </notification>
-
- <notification
-
- name="ScriptQuestionCaution"
- >
-[OBJECTNAME]&apos;, een object van &apos;[NAME]&apos;, wil graag
-
-[QUESTIONS]
-Indien u dit object en zijn maker niet vertrouwt, zou u het verzoek moeten weigeren. Klik de Details knop voor additionele informatie.
-
-Dit verzoek inwilligen?
- <form name="form">
- <button
-
- name="Grant"
- text="Inwilligen"/>
- <button
-
- name="Deny"
- text="Weigeren"/>
- <button
-
- name="Details"
- text="Details..."/>
- </form>
- </notification>
-
- <notification
-
- name="ScriptDialog"
- >
-[FIRST] [LAST]&apos;s &apos;[TITLE]&apos;
-[MESSAGE]
- <form name="form">
- <button
-
- name="Ignore"
- text="Negeren"/>
- </form>
- </notification>
-
- <notification
-
- name="ScriptDialogGroup"
- >
-[GROUPNAME]&apos;s &apos;[TITLE]&apos;
-[MESSAGE]
- <form name="form">
- <button
-
- name="Ignore"
- text="Negeren"/>
- </form>
- </notification>
-
- <notification
-
- name="FirstBalanceIncrease"
- >
-U heeft zojuist L$[AMOUNT] ontvangen.
-Objecten en andere gebruikers kunnen u L$ geven.
-Uw saldo wordt in de rechterbovenhoek van het scherm getoond.
- </notification>
-
- <notification
-
- name="FirstBalanceDecrease"
- >
-U heeft zojuist L$[AMOUNT] betaald.
-Uw saldo wordt in de rechterbovenhoek van het scherm getoond.
- </notification>
-
- <notification
-
- name="FirstSit"
- >
-U zit.
-Gebruik de pijltjestoetsen (of AWSD) of uw gezichtsveld te wijzigen.
-Klik de &apos;Sta Op&apos; knop om op te staan.
- </notification>
-
- <notification
-
- name="FirstMap"
- >
-Klik en sleep om de kaart te verplaatsen.
-Dubbelklik om te teleporteren.
-Gebruik de bedieningselementen aan de rechterkant om dingen te vinden en verschillende achtergronden te tonen.
- </notification>
-
- <notification
-
- name="FirstBuild"
- >
-U kunt nieuwe objecten bouwen in sommige gebieden van [SECOND_LIFE].
-Gebruik de gereedschappen in de linkerbovenhoek om te bouwen en probeer Ctrl en Alt ingedrukt te houden om snel tussen gereedschappen te wisselen.
-Druk Esc om te stoppen met bouwen.
- </notification>
-
- <notification
-
- name="FirstLeftClickNoHit"
- >
-Links-klikken werkt in op speciale objecten.
-Indien de muisaanwijzer verandert in een hand, kunt u interacteren met het object.
-Rechts-klikken toont altijd een menu van dingen die u kunt doen.
- </notification>
-
- <notification
-
- name="FirstTeleport"
- >
-Deze regio staat geen point-to-point teleport toe, dus u bent naar de dichtstbijzijnde telehub getransporteerd.
-Uw bestemming is gemarkeerd met een groot baken.
-Volg de rode pijl naar het baken, of klik de pijl om het baken te verwijderen.
- </notification>
-
- <notification
-
- name="FirstOverrideKeys"
- >
-Uw bewegingstoetsen worden nu door een object afgehandeld.
-Probeer de pijltjestoetsen of AWSD om te zien wat ze doen.
-Sommige objecten (zoals geweren) vereisen dat u in mouselook gaat om ze te gebruiken.
-Druk &apos;M&apos; om dit te doen.
- </notification>
-
- <notification
-
- name="FirstAppearance"
- >
-U bent uw uiterlijk aan het bewerken.
-Gebruik de pijltjestoetsen om uw gezichtsveld te draaien en te zoomen.
-Druk &apos;Alles Opslaan&apos; om uw uiterlijk op te slaan wanneer u klaar bent.
-U kunt uw uiterlijk zo vaak als u wil bewerken.
- </notification>
-
- <notification
-
- name="FirstInventory"
- >
-Dit is uw inventaris, die objecten, notitiekaarten, kleding en andere eigendommen bevat.
-* Om een object of een kleding-map te dragen, sleep het op uzelf.
-* Om een object in de wereld te brengen, sleep het op de grond.
-* Om een notitiekaart te lezen, dubbelklik erop.
- </notification>
-
- <notification
-
- name="FirstSandbox"
- >
-Dit is een zandbak regio.
-Objecten die u hier bouwt, kunnen worden verwijderd nadat u het gebied verlaat. Zandbakken schonen op regelmatige basis, kijk alstublieft naar de informatie aan de bovenkant van het scherm, naast de regionaam.
-
-Zandbak regio&apos;s zijn ongewoon en gemarkeerd met borden.
- </notification>
-
- <notification
-
- name="FirstFlexible"
- >
-Dit object is flexibel.
-Flexibele objecten mogen niet fysiek zijn en moeten fantoom zijn tot de &apos;flexibel&apos; checkbox wordt uitgezet.
- </notification>
-
- <notification
-
- name="FirstDebugMenus"
- >
-U heeft het menu Geavanceerd geactiveerd.
-Dit menu bevat opties die handig zijn voor ontwikkelaars tijdens het debuggen van Second Life.
-Om dit menu in en uit te schakelen drukt u binnen Windows Ctrl-Alt-D. Met een Mac drukt u Cmd-Opt-Shift-D.
- </notification>
-
- <notification
-
- name="FirstSculptedPrim"
- >
-U bent een sculpted prim aan het bewerken.
-Sculpted prims vereisen een speciaal textuur om hun vorm te bepalen.
-U kunt voorbeelden van sculpt-texturen in de inventaris bibliotheek vinden.
- </notification>
-
- <notification
-
- name="FirstMedia"
- >
-U bent begonnen met het afspelen van media. In het Voorkeurenvenster, onder Audio / Video, kan media worden ingesteld om automatisch te beginnen met afspelen. Let op dat dit een beveiligingsrisico kan zijn voor media sites die u niet vertrouwt.
- </notification>
-
- <notification
-
- name="MaxListSelectMessage"
- >
-U mag slecht maximaal [MAX_SELECT] items van deze lijst kiezen.
- </notification>
-
- <notification
-
- name="VoiceInviteP2P"
- >
-[NAME] nodigt u uit voor een Voice chat gesprek.
-Klik Accepteren om deel te nemen aan dit gesprek of Afwijzen om de uitnodiging af te wijzen. Klik Negeren om deze persoon te negeren.
- <form name="form">
- <button
-
- name="Accept"
- text="Accepteren"/>
- <button
-
- name="Decline"
- text="Afwijzen"/>
- <button
-
- name="Mute"
- text="Negeren"/>
- </form>
- </notification>
-
- <notification
-
- name="AutoUnmuteByIM"
- >
-Er is een instant message naar [FIRST] [LAST] gestuurd, waardoor deze automatisch van de negeerlijst is gehaald.
- </notification>
-
- <notification
-
- name="AutoUnmuteByMoney"
- >
-Er is geld gegeven aan [FIRST] [LAST], waardoor deze automatisch van de negeerlijst is gehaald.
- </notification>
-
- <notification
-
- name="AutoUnmuteByInventory"
- >
-Er is inventaris aangeboden aan [FIRST] [LAST], waardoor deze automatisch van de negeerlijst is gehaald.
- </notification>
-
- <notification
-
- name="VoiceInviteGroup"
- >
-[NAME] doet nu mee met een Voice chat gesprek binnen de groep [GROUP].
-Klik Accepteren om deel te nemen aan het gesprek of Afwijzen om de uitnodiging af te wijzen. Klik Negeren om deze persoon te negeren.
- <form name="form">
- <button
-
- name="Accept"
- text="Accepteren"/>
- <button
-
- name="Decline"
- text="Afwijzen"/>
- <button
-
- name="Mute"
- text="Negeren"/>
- </form>
- </notification>
-
- <notification
-
- name="VoiceInviteAdHoc"
- >
-[NAME] doet nu mee met een Voice chat gesprek binnen een conferentie chat.
-Klik Accepteren om deel te nemen aan het gesprek of Afwijzen om de uitnodiging af te wijzen. Klik Negeren om deze persoon te negeren.
- <form name="form">
- <button
-
- name="Accept"
- text="Accepteren"/>
- <button
-
- name="Decline"
- text="Afwijzen"/>
- <button
-
- name="Mute"
- text="Negeren"/>
- </form>
- </notification>
-
- <notification
-
- name="InviteAdHoc"
- >
-[NAME] nodigt u uit voor een conferentie chat.
-Klik Accepteren om deel te nemen aan de chat of Afwijzen om de uitnodiging af te wijzen. Klik Negeren om deze persoon te negeren.
- <form name="form">
- <button
-
- name="Accept"
- text="Accepteren"/>
- <button
-
- name="Decline"
- text="Afwijzen"/>
- <button
-
- name="Mute"
- text="Negeren"/>
- </form>
- </notification>
-
- <notification
-
- name="VoiceChannelFull"
- >
-Het voice gesprek waaraan u probeert deel te nemen, [VOICE_CHANNEL_NAME], heeft zijn maximale capaciteit bereikt. Probeert u het alstublieft later nog een keer.
- </notification>
-
- <notification
-
- name="ProximalVoiceChannelFull"
- >
-Onze excuses. Dit gebied heeft zijn maximale capaciteit voor voice conversaties bereikt. Probeert u alstublieft voice te gebruiken in een ander gebied.
- </notification>
-
- <notification
-
- name="VoiceChannelDisconnected"
- >
-U bent niet meer verbonden met [VOICE_CHANNEL_NAME]. U zult weer worden verbonden met spatiale voice chat.
- </notification>
-
- <notification
-
- name="VoiceChannelDisconnectedP2P"
- >
-[VOICE_CHANNEL_NAME] heeft het gesprek beëindigd. U zult weer worden verbonden met spatiale voice chat.
- </notification>
-
- <notification
-
- name="P2PCallDeclined"
- >
-[VOICE_CHANNEL_NAME] heeft uw oproep afgewezen. U zult weer worden verbonden met spatiale voice chat.
- </notification>
-
- <notification
-
- name="P2PCallNoAnswer"
- >
-[VOICE_CHANNEL_NAME] is niet beschikbaar om uw oproep aan te nemen. U zult weer worden verbonden met spatiale voice chat.
- </notification>
-
- <notification
-
- name="VoiceChannelJoinFailed"
- >
-Verbinden met [VOICE_CHANNEL_NAME] is mislukt, probeert u het later alstublieft nog een keer. U zult weer worden verbonden met spatiale voice chat.
- </notification>
-
- <notification
-
- name="VoiceLoginRetry"
- >
-We zijn bezig om een voice kanaal voor u te maken. Dit kan tot een minuut duren.
- </notification>
-
- <notification
-
- name="Cannot enter parcel: not a group member"
- >
-Kan het perceel niet betreden, u bent geen lid van de juiste groep.
- </notification>
-
- <notification
-
- name="Cannot enter parcel: banned"
- >
-Kan het perceel niet betreden, u bent verbannen.
- </notification>
-
- <notification
-
- name="Cannot enter parcel: not on access list"
- >
-Kan het perceel niet betreden, u staat niet op de toegangslijst.
- </notification>
-
- <notification
-
- name="VoiceNotAllowed"
- >
-U heeft geen permissie om met voice chat te verbinden voor [VOICE_CHANNEL_NAME].
- </notification>
-
- <notification
-
- name="VoiceCallGenericError"
- >
-Er is een fout opgetreden tijdens het verbinden met voice chat voor [VOICE_CHANNEL_NAME]. Probeert u het later alstublieft opnieuw.
- </notification>
-
- <notification
-
- name="ServerVersionChanged"
- >
-De regio die u bent binnengetreden wordt onder een andere simulatorversie uitgevoerd. Klik dit bericht voor meer details.
- </notification>
-
- <notification
-
- name="UnableToOpenCommandURL"
- >
-De URL die u heeft geklikt kan niet binnen deze webbrowser worden geopend.
- </notification>
-
- <global name="UnsupportedCPU">
-- Uw Processor snelheid (CPU) voldoet niet aan de minimale eisen.
- </global>
-
- <global name="UnsupportedGLRequirements">
-U heeft mogelijk niet de vereiste hardware voor Second Life. Second Life verlangd een OpenGL grafische kaart die multi-texture ondersteund. Indien dat het geval is, overtuig u er dan van dat u de laatste stuurprogramma&apos;s voor uw grafische kaart, service packs en patches voor uw Operating systeem heeft.
-
-Indien u problemen blijft houden, bezoek dan: http://www.secondlife.com/support
- </global>
-
- <global name="UnsupportedCPUAmount">
-796
- </global>
-
- <global name="UnsupportedRAMAmount">
-510
- </global>
-
- <global name="UnsupportedGPU">
-- Uw grafische kaart voldoet niet aan de minimale eisen.
- </global>
-
- <global name="UnsupportedRAM">
-- Uw systeem geheugen voldoet niet aan de minimale eisen.
- </global>
-
- <global name="PermYes">
-Ja
- </global>
-
- <global name="PermNo">
-Nee
- </global>
-</notifications>
-
+<?xml version="1.0" encoding="utf-8"?>
+<notifications>
+ <global name="skipnexttime">
+ Toon mij dit niet meer.
+ </global>
+ <global name="alwayschoose">
+ Kies altijd deze optie
+ </global>
+ <template name="okbutton">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ </form>
+ </template>
+
+ <template name="okignore">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <ignore text="$ignoretext"/>
+ </form>
+ </template>
+
+ <template name="okcancelbuttons">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <button
+ name="Cancel"
+ text="$notext"/>
+ </form>
+ </template>
+
+ <template name="okcancelignore">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <button
+ name="Cancel"
+ text="$notext"/>
+ <ignore text="$ignoretext"/>
+ </form>
+ </template>
+
+ <template name="okhelpbuttons">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <button
+ name="Help"
+ text="$helptext"/>
+ </form>
+ </template>
+
+ <template name="yesnocancelbuttons">
+ <form>
+ <button
+ name="Yes"
+ text="$yestext"/>
+ <button
+ name="No"
+ text="$notext"/>
+ <button
+ name="Cancel"
+ text="$canceltext"/>
+ </form>
+ </template>
+ <notification functor="GenericAcknowledge" label="Onbekende waarschuwingsboodschap" name="MissingAlert">
+ Uw versie van Second Life weet niet hoe het de waarschuwingsboodschap die zojuist ontvangen is moet weergeven.
+
+Foutdetails: De waarschuwing genaamd &apos;[_NAME]&apos; is niet gevonden in notifications.xml.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="FloaterNotFound">
+ Reële waarde fout: Kon de volgende controllers niet vinden:
+
+[CONTROLS]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="TutorialNotFound">
+ Er is momenteel geen handleiding beschikbaar.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="GenericAlert">
+ [MESSAGE]
+ </notification>
+ <notification name="GenericAlertYesCancel">
+ [MESSAGE]
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="Ja"/>
+ </notification>
+ <notification name="BadInstallation">
+ Er is een fout opgetreden tijdens het bijwerken van Second Life. Download alstublieft de meest recente versie van secondlife.com
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="LoginFailedNoNetwork">
+ Netwerkfout: Kan geen verbinding opzetten.
+&apos;[DIAGNOSTIC]&apos;
+Controleer alstublieft uw netwerkverbinding.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="MessageTemplateNotFound">
+ Berichtsjabloon [PATH] niet gevonden.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="WearableSave">
+ Wijzigingen aan huidig kledingstuk/lichaamsdeel opslaan?
+ <usetemplate canceltext="Annuleren" name="yesnocancelbuttons" notext="Niet Opslaan" yestext="Opslaan"/>
+ </notification>
+ <notification name="CompileQueueSaveText">
+ Er was een probleem met het uploaden van de tekst van een script vanwege de volgende reden: [REASON]. Probeer het alstublieft later nog eens.
+ </notification>
+ <notification name="CompileQueueSaveBytecode">
+ Er was een probleem met het uploaden van het gecompileerde script vanwege de volgende reden: [REASON]. Probeer het alstublieft later nog eens.
+ </notification>
+ <notification name="WriteAnimationFail">
+ Er was een probleem met het wegschrijven van animatie gegevens. Probeer het alstublieft later nog eens.
+ </notification>
+ <notification name="UploadAuctionSnapshotFail">
+ Er was een probleem met het uploaden van de veiling foto vanwege de volgende reden: [REASON]
+ </notification>
+ <notification name="UnableToViewContentsMoreThanOne">
+ Het is niet mogelijk om de inhoud van meer dan één item tegelijk te zien.
+Kies alstublieft slechts één item en probeer het opnieuw.
+ </notification>
+ <notification name="SaveClothingBodyChanges">
+ Wijzigingen aan kledingstuk/lichaamsdeel opslaan?
+ <usetemplate canceltext="Annuleren" name="yesnocancelbuttons" notext="Niet Opslaan" yestext="Alles Opslaan"/>
+ </notification>
+ <notification name="GrantModifyRights">
+ Het geven van wijzigingsrechten aan een andere inwoner, maakt het voor hun mogelijk om elk willekeurig object te wijzigen, te verwijderen of om WILLEKEURIGE objecten die u in wereld heeft terug te nemen. Wees HEEL voorzichtig met het uitgeven van dit recht.
+Wilt u wijzigingsrechten aan [FIRST_NAME] [LAST_NAME] geven?
+ <usetemplate name="okcancelbuttons" notext="Nee" yestext="Ja"/>
+ </notification>
+ <notification name="GrantModifyRightsMultiple">
+ Het geven van wijzigingsrechten aan een andere inwoner, maakt het voor hun mogelijk elk WILLEKEURIG object te wijzigen die u in wereld heeft. Wees HEEL voorzichtig met het uitgeven van dit recht.
+Wilt u wijzigingsrechten aan de geselecteerde inwoners geven?
+ <usetemplate name="okcancelbuttons" notext="Nee" yestext="Ja"/>
+ </notification>
+ <notification name="RevokeModifyRights">
+ Wilt u de wijzigingsrechten voor [FIRST_NAME] [LAST_NAME] terugnemen?
+ <usetemplate name="okcancelbuttons" notext="Nee" yestext="Ja"/>
+ </notification>
+ <notification name="RevokeModifyRightsMultiple">
+ Wilt u de wijzigingsrechten voor de geselecteerde inwoners terugnemen?
+ <usetemplate name="okcancelbuttons" notext="Nee" yestext="Ja"/>
+ </notification>
+ <notification name="UnableToCreateGroup">
+ Kan geen groep aanmaken.
+[MESSAGE]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="PanelGroupApply">
+ [NEEDS_APPLY_MESSAGE]
+[WANT_APPLY_MESSAGE]
+ <usetemplate canceltext="Annuleren" name="yesnocancelbuttons" notext="Wijzigingen Negeren" yestext="Wijzigingen Toepassen"/>
+ </notification>
+ <notification name="MustSpecifyGroupNoticeSubject">
+ U moet een onderwerp opgeven om dit bericht te kunnen versturen.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="AddGroupOwnerWarning">
+ U staat op het punt groepsleden de rol [ROLE_NAME] te geven.
+Leden kunnen niet van die groep worden verwijderd.
+De leden moeten zichzelf ontheffen uit deze rol.
+Weet u zeker dat u door wilt gaan?
+ <usetemplate ignoretext="Wanneer u groepsleden toevoegt aan de eigenaren rol" name="okcancelignore" notext="Nee" yestext="Ja"/>
+ </notification>
+ <notification name="AssignDangerousActionWarning">
+ U staat op het punt de Bekwaamheid &apos;[ACTION_NAME]&apos; aan de Rol &apos;[ROLE_NAME]&apos; toe te voegen.
+
+ *WAARSCHUWING*
+ Elk lid in de Rol met deze Bekwaamheid kan zichzelf - en elk ander lid - Rollen geven die meer mogelijkheden hebben dan waar zij nu over beschikken, zichzelf daarmee verheffend tot bijna eigenaar mogelijkheden. Weet zeker waar u mee bezig bent alvorens deze Bekwaamheid toe te kennen.
+
+Deze Bekwaamheid toevoegen aan &apos;[ROLE_NAME]&apos;?
+ <usetemplate name="okcancelbuttons" notext="Nee" yestext="Ja"/>
+ </notification>
+ <notification name="AssignDangerousAbilityWarning">
+ U staat op het punt de Bekwaamheid &apos;[ACTION_NAME]&apos; aan de Rol &apos;[ROLE_NAME]&apos; toe te voegen.
+
+ *WAARSCHUWING*
+ Elk lid in de Rol met deze Bekwaamheid kan zichzelf - en elk ander lid - alle Bekwaamheden geven, zich daarmee verheffend tot bijna Eigenaar mogelijkheden.
+
+Deze Bekwaamheid toevoegen aan &apos;[ROLE_NAME]&apos;?
+ <usetemplate name="okcancelbuttons" notext="Nee" yestext="Ja"/>
+ </notification>
+ <notification name="ClickPublishHelpLand">
+ Het selecteren van de &quot;Publiceer in Zoeken&quot; optie
+Het aan vinken van deze optie zal:
+- dit perceel weergeven in de zoek resultaten
+- de publieke objecten van dit perceel weergeven
+- dit perceel in web zoeken weergeven
+ </notification>
+ <notification name="ClickSoundHelpLand">
+ Media en muziek kunnen alleen binnen het perceel ervaren worden. Geluid- en voice-opties kunnen worden beperkt tot het perceel of zullen worden gehoord door inwoners buiten het perceel, gebaseerd op hun inhoudscategorie. Ga naar de kennisbank om meer te leren over hoe deze opties ingesteld kunnen worden.
+ <url name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=5046
+ </url>
+ <usetemplate
+ name="okcancelbuttons"
+ yestext="Ga naar kennisbank"
+ notext="Sluiten" />
+ </notification>
+ <notification name="ClickSearchHelpAll">
+ Zoekresultaten zijn georganiseerd op basis van het tabblad waar u zich in bevindt, uw inhoudscategorie, de gekozen categorie en andere factoren. Kijk alstublieft in de kennisbank voor meer details.
+ <url name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=4722
+ </url>
+ <usetemplate
+ name="okcancelbuttons"
+ yestext="Ga naar kennisbank"
+ notext="Sluiten" />
+ </notification>
+ <notification name="ClickPublishHelpLandDisabled">
+ U kunt dit perceel niet zichtbaar maken in zoeken omdat het zich in een regio bevindt dat dit niet toelaat
+ </notification>
+ <notification name="ClickPublishHelpAvatar">
+ Het selecteren van &quot;Weergeven in Zoeken&quot; zal weergeven:
+- mijn profiel in de zoek resultaten
+- een link naar mijn profiel in de publieke groep pagina&apos;s
+ </notification>
+ <notification name="ClickPartnerHelpAvatar">
+ U kunt een andere Inwoner ten huwelijk vragen of een bestaand partner schap verbreken via de [SECOND_LIFE] website.
+
+Naar de Second Life website gaan voor meer informatie over partner schap?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="Ga naar Pagina"/>
+ </notification>
+ <notification name="ClickUploadHelpPermissions">
+ Uw standaard permissies werken mogelijk niet in oudere regio&apos;s.
+ </notification>
+ <notification name="ClickWebProfileHelpAvatar">
+ Als een Inwoner een web profiel URL heeft ingesteld:
+* Klik op &apos;Laden&apos; om de pagina in deze web tab te zien.
+* Klik op Laden &gt; &apos;In externe browser&apos; om de pagina in uw standaard browser te zien
+* Klik op Laden &gt; &apos;Thuis pagina URL&apos; om terug te keren naar het web profiel van deze Inwoner indien U verder genavigeerd bent.
+
+Indien u uw eigen profiel bekijkt, kunt U elke willekeurige URL opgeven als uw web profiel en op OK klikken om het in te stellen.
+Andere Inwoners kunnen de door U opgegeven URL bezoeken indien zijn uw profiel bekijken.
+ </notification>
+ <notification name="JoinGroupCanAfford">
+ Deelname aan deze groep kost L$[COST].
+Wilt u doorgaan?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="Deelnemen"/>
+ </notification>
+ <notification name="JoinGroupCannotAfford">
+ Deelname aan deze groep kost L$[COST].
+U heeft niet genoeg L$ om deel te kunnen nemen aan deze groep.
+ </notification>
+ <notification name="LandBuyPass">
+ Voor L$[COST] krijgt u toegang tot het land (&apos;[PARCEL_NAME]&apos;) voor de duur van [TIME] uur.
+
+Een pas kopen?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="SalePriceRestriction">
+ De verkoopprijs moet ingesteld staan op meer dan L$0 indien u aan iemand verkoopt.
+Kies een individu indien u het voor L$0 verkoopt.
+ </notification>
+ <notification name="ConfirmLandSaleChange">
+ De geselecteerde [LAND_SIZE] m² land is te koop gezet.
+Uw verkoopprijs is L$[SALE_PRICE] en zal geautoriseerd worden voor verkoop door [NAME].
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmLandSaleToAnyoneChange">
+ ATTENTIE: Het aanklikken van &apos;verkoop aan iedereen&apos; zal uw land beschikbaar maken aan de gehele Second Life gemeenschap, zo ook diegenen niet in deze regio!
+
+De geselecteerde [LAND_SIZE] m² land is te koop gezet.
+Uw verkoopprijs is L$[SALE_PRICE] en zal geautoriseerd worden voor verkoop door [NAME].
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsDeededToGroup">
+ Weet u zeker dat u alle met de groep &apos;[NAME]&apos; gedeelde objecten van dit perceel wilt retourneren naar de inventaris van hun vorige eigenaren?
+
+*WAARSCHUWING* Dit zal alle niet-overdraagbare aan de groep toegekende objecten verwijderen!
+
+Objecten: [N]
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsOwnedByUser">
+ Weet u zeker dat u alle objecten van Inwoner &apos;[NAME]&apos; op dit perceel wilt retourneren naar hun inventaris?
+
+Objecten: [N]
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsOwnedBySelf">
+ Weet u zeker dat u al uw eigen objecten op dit perceel wilt retourneren naar uw inventaris?
+
+Objecten: [N]
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsNotOwnedBySelf">
+ Weet u zeker dat u alle objecten op dit perceel die geen eigendom van u zijn wilt retourneren naar de inventaris van hun eigenaren?
+Overdraagbare objecten toegekend aan de groep zullen worden geretourneerd naar de oorspronkelijke eigenaren.
+
+*WAARSCHUWING* Dit zal alle niet-overdraagbare aan de groep toegekende objecten verwijderen!
+
+Objecten: [N]
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsNotOwnedByUser">
+ Weet u zeker dat u alle objecten op dit perceel die GEEN eigendom zijn van [NAME] wilt retourneren naar de inventaris van hun eigenaar? Overdraagbare objecten toegekend aan de groep zullen worden geretourneerd naar de oorspronkelijke eigenaren.
+
+*WAARSCHUWING* Dit zal alle niet-overdraagbare aan de groep toegekende objecten verwijderen!
+
+Objecten: [N]
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="ReturnAllTopObjects">
+ Weet u zeker dat u alle weergegeven objecten wilt retourneren naar de inventaris van hun eigenaar?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="DisableAllTopObjects">
+ Weet u zeker dat u alle objecten in deze regio uit wilt schakelen?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsNotOwnedByGroup">
+ Alle objecten op dit perceel die NIET gedeeld worden met de groep [NAME] retourneren naar hun eigenaren?
+
+Objecten: [N]
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="UnableToDisableOutsideScripts">
+ Kan scripts niet uitschakelen.
+Voor de hele regio is letsel ingeschakeld.
+Scripts moeten toegestaan worden om wapens te kunnen laten werken.
+ </notification>
+ <notification name="MustBeInParcel">
+ U moet binnen een perceel staan om het Landings Punt in te stellen.
+ </notification>
+ <notification name="PromptRecipientEmail">
+ Geef alstublieft een geldig email adres op van de ontvanger(s).
+ </notification>
+ <notification name="PromptSelfEmail">
+ Voer uw email adres in.
+ </notification>
+ <notification name="PromptMissingSubjMsg">
+ Foto e-mailen met het standaard onderwerp of bericht?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="ErrorProcessingSnapshot">
+ Fout opgetreden met het verwerken van de foto gegevens
+ </notification>
+ <notification name="ErrorEncodingSnapshot">
+ Fout opgetreden met het coderen van de foto.
+ </notification>
+ <notification name="ErrorUploadingPostcard">
+ Er is een probleem met het verzenden van de foto vanwege de volgende reden: [REASON]
+ </notification>
+ <notification name="ErrorUploadingReportScreenshot">
+ Er is een probleem met het uploaden van de rapport foto vanwege de volgende reden: [REASON]
+ </notification>
+ <notification name="MustAgreeToLogIn">
+ U moet akkoord gaan met de Voorwaarden van Dienstverlening (Terms of Service) om in te kunnen loggen in [SECOND_LIFE].
+ </notification>
+ <notification name="CouldNotPutOnOutfit">
+ Kon de outfit niet aan doen.
+De outfit folder bevat geen kleding, lichaamsdelen of externe bevestigingen.
+ </notification>
+ <notification name="CannotWearTrash">
+ U kunt geen kleding of lichaamsdelen aan trekken die zich in de vuilnisbak bevinden.
+ </notification>
+ <notification name="CannotWearInfoNotComplete">
+ U kunt dat item niet aantrekken omdat het nog niet geladen is. Probeer het over een minuut opnieuw.
+ </notification>
+ <notification name="MustHaveAccountToLogIn">
+ Oeps! Iets is nog leeg.
+U moet zowel de voornaam als de achternaam van uw avatar opgeven.
+
+U heeft een account nodig om [SECOND_LIFE] binnen te gaan. Wilt u er nu een maken?
+ <usetemplate name="okcancelbuttons" notext="Probeer het opnieuw" yestext="Maak een nieuw account"/>
+ </notification>
+ <notification name="AddClassified">
+ Geclassificeerde advertenties verschijnen een week lang in de &apos;Advertentie&apos; sectie van de Zoek gids en op www.secondlife.com.
+Vul uw advertentie in en klik op &apos;Publiceer...&apos; om het toe te voegen aan de gids.
+Er zal u om een prijs worden gevraagd als u deze gaat publiceren.
+Indien u meer betaald zal uw advertentie hoger in de lijst verschijnen en ook hoger als men op sleutelwoorden zoekt.
+ <usetemplate ignoretext="Indien u een advertentie toevoegt" name="okcancelignore" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="DeleteClassified">
+ Advertentie &apos;[NAME]&apos; verwijderen?
+Betaalde advertentiekosten zullen niet worden terug gestort.
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="ClassifiedSave">
+ Wijzigingen in advertentie [NAME] opslaan?
+ <usetemplate canceltext="Annuleren" name="yesnocancelbuttons" notext="Niet Opslaan" yestext="Opslaan"/>
+ </notification>
+ <notification name="DeleteAvatarPick">
+ Favoriet [PICK] verwijderen?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="PromptGoToEventsPage">
+ Naar de [SECOND_LIFE] evenementen web pagina gaan?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="SelectProposalToView">
+ Kies alstublieft een voorstel om in te zien.
+ </notification>
+ <notification name="SelectHistoryItemToView">
+ Kies alstublieft een geschiedenis item om in te zien.
+ </notification>
+ <notification name="ResetShowNextTimeDialogs">
+ Wilt u alle Pop-Up&apos;s opnieuw inschakelen die u eerder aanmerkte als &apos;Laat mij niet opnieuw zien&apos;?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="SkipShowNextTimeDialogs">
+ Wilt u alle Pop-Up&apos;s uitschakelen die overgeslagen kunnen worden?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="CacheWillClear">
+ De Cache zal geleegd worden als u [SECOND_LIFE] opnieuw start.
+ </notification>
+ <notification name="CacheWillBeMoved">
+ De Cache zal verplaatst worden als u [SECOND_LIFE] opnieuw start.
+Opmerking: Dit zal de Cache legen.
+ </notification>
+ <notification name="ChangeConnectionPort">
+ Poort instelling zullen effect hebben nadat u [SECOND_LIFE] opnieuw start.
+ </notification>
+ <notification name="ChangeSkin">
+ De nieuwe skin zal verschijnen nadat u [SECOND_LIFE] opnieuw start.
+ </notification>
+ <notification name="GoToAuctionPage">
+ Ga naar de [SECOND_LIFE] web pagina om de veiling details te zien of een bod uit te brengen.
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="SaveChanges">
+ Wijzigingen Opslaan?
+ <usetemplate canceltext="Annuleren" name="yesnocancelbuttons" notext="Niet Opslaan" yestext="Opslaan"/>
+ </notification>
+ <notification name="GestureSaveFailedTooManySteps">
+ Gebaar opslaan is niet gelukt.
+Dit gebaar heeft te veel stappen.
+Probeer enkele stappen te verwijderen en opnieuw op te slaan.
+ </notification>
+ <notification name="GestureSaveFailedTryAgain">
+ Gebaar opslaan is niet gelukt. Probeer het over enkele ogenblikken opnieuw.
+ </notification>
+ <notification name="GestureSaveFailedObjectNotFound">
+ Kon het gebaar niet opslaan omdat het object of bijbehorende object niet in de inventaris kon worden gevonden.
+
+Het object kan buiten bereik of mogelijk verwijderd zijn.
+ </notification>
+ <notification name="GestureSaveFailedReason">
+ Er was een probleem met het opslaan van het gebaar vanwege de volgende reden: [REASON]. Probeert u het gebaar later nogmaals op te slaan.
+ </notification>
+ <notification name="SaveNotecardFailObjectNotFound">
+ Kon de notitiekaart niet opslaan omdat het object of bijbehorende object niet in de inventaris kon worden gevonden.
+
+Het object kan buiten bereik of mogelijk verwijderd zijn.
+ </notification>
+ <notification name="SaveNotecardFailReason">
+ Er was een probleem met het opslaan van de notitiekaart vanwege de volgende reden: [REASON]. Probeert u de notitiekaart later nogmaals op te slaan.
+ </notification>
+ <notification name="ScriptCannotUndo">
+ Kon niet alle wijzigingen ongedaan maken in uw versie van het script.
+Wilt u de laatst op de server opgeslagen versie laden?
+(**Waarschuwing** Deze operatie kan niet ongedaan gemaakt worden.)
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="SaveScriptFailReason">
+ Er was een probleem met het opslaan van een script vanwege de volgende reden: [REASON]. Probeert u het script later nogmaals op te slaan.
+ </notification>
+ <notification name="SaveScriptFailObjectNotFound">
+ Kon het script niet opslaan omdat het object waar het in zit niet gevonden kon worden.
+Het object kan buiten bereik of mogelijk verwijderd zijn.
+ </notification>
+ <notification name="SaveBytecodeFailReason">
+ Er was een probleem met het opslaan van een gecompileerd script vanwege de volgende reden: [REASON]. Probeert u het script later nogmaals op te slaan.
+ </notification>
+ <notification name="CouldNotStartStopScript">
+ Kon het script niet starten of stoppen omdat het object wat het in zit niet gevonden kon worden.
+Het object kan buiten bereik of mogelijk verwijderd zijn.
+ </notification>
+ <notification name="CannotDownloadFile">
+ Kon het bestand niet downloaden
+ </notification>
+ <notification name="CannotWriteFile">
+ Kan niet naar bestand [[FILE]] schrijven
+ </notification>
+ <notification name="UnsupportedHardware">
+ Waarschuwing: Uw systeem voldoet niet aan de Second Life minimum systeem eisen. Indien u Second Life gebruikt, ervaart u mogelijk slechte prestaties. Helaas kunnen we geen technische ondersteuning geven voor niet ondersteunde configuraties.
+
+MINSPECS
+Wilt u [_URL] bezoeken voor meer informatie?
+ <url name="url" option="0">
+ http://secondlife.com/support/sysreqs.php?lang=nl
+ </url>
+ <usetemplate ignoretext="Indien niet ondersteunde hardware gedetecteerd" name="okcancelignore" notext="Nee" yestext="Ja"/>
+ </notification>
+ <notification name="UnknownGPU">
+ Uw systeem heeft een grafische kaart die bij ons nog niet bekend is op dit moment.
+
+Dit is vaak het geval met nieuwe hardware waarbij wij nog niet de kans gehad hebben om het te testen. Second Life zal mogelijk naar behoren functioneren, doch het kan zijn dat u uw grafische instellingen naar geschiktere waarden zult moeten instellen.
+(Bewerken menu &gt; Voorkeuren &gt; Grafisch).
+ <form name="form">
+ <ignore name="ignore" text="Indien een onbekende grafische kaart gedetecteerd"/>
+ </form>
+ </notification>
+ <notification name="DisplaySettingsNoShaders">
+ [SECOND_LIFE] is gestopt bij het initialiseren van de grafische stuurprogramma&apos;s.
+Grafische kwaliteit zal op zijn laagst worden ingesteld om veel voorkomende fouten met stuurprogramma&apos;s te vermijden.
+Dit zal sommige grafische opties uitschakelen.
+Wij adviseren u de stuurprogramma&apos;s van uw grafische kaart bij te werken.
+Grafische kwaliteit kan verhoogd worden in Voorkeuren &gt; Grafisch.
+ </notification>
+ <notification name="RegionNoTerraforming">
+ De regio [REGION] staat geen land aanpassingen toe.
+ </notification>
+ <notification name="CannotCopyWarning">
+ U heeft geen permissie dit item te kopiëren en zult het kwijtraken als u het weg geeft. Wilt u dit item echt aanbieden?
+ <usetemplate name="okcancelbuttons" notext="Nee" yestext="Ja"/>
+ </notification>
+ <notification name="CannotGiveItem">
+ Kan inventaris item niet geven.
+ </notification>
+ <notification name="TransactionCancelled">
+ Transactie afgebroken.
+ </notification>
+ <notification name="TooManyItems">
+ Kan niet meer dan 42 items in één enkele inventaris overdracht geven.
+ </notification>
+ <notification name="NoItems">
+ U heeft geen permissie de geselecteerde items over te dragen.
+ </notification>
+ <notification name="CannotCopyCountItems">
+ U heeft geen permissie om [COUNT] geselecteerde items te kopiëren. U zult deze items uit uw inventaris kwijtraken.
+Weet u zeker dat u deze items wilt geven?
+ <usetemplate name="okcancelbuttons" notext="Nee" yestext="Ja"/>
+ </notification>
+ <notification name="CannotGiveCategory">
+ U heeft geen permissie de geselecteerde map over te dragen.
+ </notification>
+ <notification name="FreezeAvatar">
+ Avatar bevriezen?
+Hij of zij zal zich tijdelijk niet kunnen bewegen, praten of interactie kunnen hebben met de wereld.
+ <usetemplate canceltext="Annuleren" name="yesnocancelbuttons" notext="Ontdooien" yestext="Bevriezen"/>
+ </notification>
+ <notification name="FreezeAvatarFullname">
+ Bevries [AVATAR_NAME]?
+Hij of zij zal zich tijdelijk niet kunnen bewegen, praten of interactie kunnen hebben met de wereld.
+ <usetemplate canceltext="Annuleren" name="yesnocancelbuttons" notext="Ontdooien" yestext="Bevriezen"/>
+ </notification>
+ <notification name="EjectAvatarFullname">
+ [AVATAR_NAME] van uw land verwijderen?
+ <usetemplate canceltext="Annuleren" name="yesnocancelbuttons" notext="Verwijderen en Bannen" yestext="Verwijderen"/>
+ </notification>
+ <notification name="EjectAvatarNoBan">
+ Deze avatar van u land verwijderen?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="Verwijder"/>
+ </notification>
+ <notification name="EjectAvatarFullnameNoBan">
+ [AVATAR_NAME] van uw land verwijderen?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="Verwijder"/>
+ </notification>
+ <notification name="AcquireErrorTooManyObjects">
+ VERWERVINGS FOUT: Te veel objecten geselecteerd
+ </notification>
+ <notification name="AcquireErrorObjectSpan">
+ VERWERVINGS FOUT: Objecten beslaan meer dan één regio.
+Verplaats alstublieft alle objecten die u wilt verwerven naar dezelfde regio.
+ </notification>
+ <notification name="PromptGoToCurrencyPage">
+ [EXTRA]
+
+Naar [URL] gaan voor informatie over de aankoop valuta?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="UnableToLinkObjects">
+ Kon deze [COUNT] objecten niet linken.
+U kunt maximaal [MAX] objecten linken.
+ </notification>
+ <notification name="CannotLinkIncompleteSet">
+ U kunt alleen complete sets van objecten linken en moet meer dan één object selecteren.
+ </notification>
+ <notification name="CannotLinkModify">
+ Kon niet linken omdat u geen wijziging permissies heeft op alle objecten.
+
+Wees er van overtuigd dat er geen enkele geblokkeerd is en dat ze allen uw eigendom zijn.
+ </notification>
+ <notification name="CannotLinkDifferentOwners">
+ Kon niet linken omdat niet alle objecten dezelfde eigenaar hebben.
+
+Wees er van overtuigd dat alle objecten uw eigendom zijn.
+ </notification>
+ <notification name="NoFileExtension">
+ Geen bestandsextensie voor het bestand: &apos;[FILE]&apos;
+
+Zorg dat het bestand de juiste bestandsextensie heeft.
+ </notification>
+ <notification name="InvalidFileExtension">
+ Ongeldige bestandsextensie [EXTENSION]
+Verwacht [VALIDS]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="CannotUploadSoundFile">
+ Kon het geüploade geluidsbestand niet openen om te lezen:
+[FILE]
+ </notification>
+ <notification name="SoundFileNotRIFF">
+ Het bestand lijkt geen RIFF WAVE bestand te zijn:
+[FILE]
+ </notification>
+ <notification name="SoundFileNotPCM">
+ Het bestand lijkt geen PCM WAVE audio bestand te zijn:
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidChannelCount">
+ Het bestand heeft een ongeldig aantal kanalen (moet mono of stereo zijn):
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidSampleRate">
+ Het bestand lijkt geen ondersteund sample rate te hebben (moet 44.1k zijn):
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidWordSize">
+ Het bestand lijkt geen ondersteund word size te hebben (moet 8 of 16 bit zijn):
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidHeader">
+ Kon geen &apos;data&apos; chunk in WAV header vinden:
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidTooLong">
+ Audio bestand is te lang (10 seconden maximum):
+[FILE]
+ </notification>
+ <notification name="ProblemWithFile">
+ Probleem met bestand [FILE]:
+
+[ERROR]
+ </notification>
+ <notification name="CannotOpenTemporarySoundFile">
+ Kon geen tijdelijk gecomprimeerd geluidsbestand openen om naar toe te schrijven: [FILE]
+ </notification>
+ <notification name="UnknownVorbisEncodeFailure">
+ Onbekende Vorbis codeer fout in: [FILE]
+ </notification>
+ <notification name="CannotEncodeFile">
+ Kan bestand niet coderen: [FILE]
+ </notification>
+ <notification name="CorruptResourceFile">
+ Beschadigd bron bestand: [FILE]
+ </notification>
+ <notification name="UnknownResourceFileVersion">
+ Onbekende Linden bronbestandsversie in bestand: [FILE]
+ </notification>
+ <notification name="UnableToCreateOutputFile">
+ Niet mogelijk om uitvoerbestand te maken: [FILE]
+ </notification>
+ <notification name="DoNotSupportBulkAnimationUpload">
+ Wij ondersteunen momenteel geen bulk upload van animatie bestanden.
+ </notification>
+ <notification name="CannotUploadReason">
+ Niet mogelijk om bestand [FILE] te uploaden vanwege de volgende reden: [REASON]
+Probeer het later opnieuw.
+ </notification>
+ <notification name="CannotCreateLandmarkNotOwner">
+ U kunt hier geen land markering maken omdat de eigenaar van het land dit niet toestaat.
+ </notification>
+ <notification name="CannotRecompileSelectObjectsNoScripts">
+ Niet mogelijk om te &apos;her compileren&apos;.
+Selecteer een object met een script.
+ </notification>
+ <notification name="CannotRecompileSelectObjectsNoPermission">
+ Niet mogelijk om te &apos;hercompileren&apos;.
+
+Selecteer objecten met scripts waarvan u permissie heeft deze aan te passen.
+ </notification>
+ <notification name="CannotResetSelectObjectsNoScripts">
+ Kan geen &apos;Opnieuw instellen&apos; uitvoeren.
+
+Selecteer objecten met scripts.
+ </notification>
+ <notification name="CannotResetSelectObjectsNoPermission">
+ Kan geen &apos;Opnieuw instellen&apos; uitvoeren.
+
+Selecte objecten met scripts waarvan u permissie heeft deze aan te passen.
+ </notification>
+ <notification name="CannotSetRunningSelectObjectsNoScripts">
+ Kan geen enkele scripts instellen op &apos;Uitvoeren&apos;.
+
+Selecteer objecten met scripts.
+ </notification>
+ <notification name="CannotSetRunningNotSelectObjectsNoScripts">
+ Kan geen enkele scripts instellen op &apos;Niet uitvoeren&apos;.
+
+Selecteer objecten met scripts.
+ </notification>
+ <notification name="NoFrontmostFloater">
+ Geen voorgaande floating waarde om op te slaan.
+ </notification>
+ <notification name="SeachFilteredOnShortWords">
+ Uw zoek opdracht was aangepast en de woorden die te kort waren zijn verwijderd.
+
+Gezocht naar: [FINALQUERY]
+ </notification>
+ <notification name="SeachFilteredOnShortWordsEmpty">
+ Uw zoek termen waren te kort en er is geen zoekopdracht uitgevoerd.
+ </notification>
+ <notification name="CouldNotTeleportReason">
+ Kon niet Teleporteren.
+[REASON]
+ </notification>
+
+ <notification name="invalid_tport">
+Er is een probleem opgetreden bij het verwerken van uw verzoek voor een teleport. U dient wellicht opnieuw in te loggen voor uw kunt teleporteren. Wanneer u deze boodschap blijft ontvangen, controleert u dan alstublieft de Tech Support FAQ op:
+www.secondlife.com/support
+ </notification>
+ <notification name="invalid_region_handoff">
+Er is een probleem opgetreden bij het oversteken naar een andere regio. U dient wellicht opnieuw in te loggen voor uw kunt oversteken naar andere regio&apos;s. Wanneer u deze boodschap blijft ontvangen, controleert u dan alstublieft de Tech Support FAQ op:
+www.secondlife.com/support
+ </notification>
+ <notification name="blocked_tport">
+Sorry, teleport is momenteel geblokkeerd. Probeer het zo meteen opnieuw. Indien u nog steeds niet kunt teleporteren, log dan alstublieft uit en weer in om het probleem te verhelpen.
+ </notification>
+ <notification name="nolandmark_tport">
+Sorry, het systeem was niet in staat de bestemming van de landmarkering te vinden.
+ </notification>
+ <notification name="timeout_tport">
+Sorry, het systeem was niet in staat om de teleport verbinding af te ronden. Probeer het zo meteen nog een keer.
+ </notification>
+ <notification name="noaccess_tport">
+Sorry, u heeft geen toegang tot die teleportbestemming.
+ </notification>
+ <notification name="missing_attach_tport">
+Uw bevestigingen zijn nog niet gearriveerd. Probeer nog een aantal seconden te wachten of log uit en weer in voor u probeert te teleporteren.
+ </notification>
+ <notification name="too_many_uploads_tport">
+De assetwachtrij in deze regio is momenteel volgelopen, dus uw teleportverzoek zal niet tijdig afgerond kunnen worden. Probeer het alstublieft opnieuw over een aantal minuten of ga naar een minder druk gebied.
+ </notification>
+ <notification name="expired_tport">
+Sorry, het systeem was niet in staat uw teleportverzoek tijdig af te ronden. Probeer het alstublieft opnieuw over een aantal minuten.
+ </notification>
+ <notification name="expired_region_handoff">
+Sorry, het systeem was niet in staat om het oversteken naar een andere regio tijdig af te ronden. Probeer het alstublieft opnieuw over een aantal minuten.
+ </notification>
+ <notification name="no_host">
+Kan teleportbestemming niet vinden. De bestemming is mogelijk tijdelijk niet beschikbaar of bestaat niet meer. Probeer het alstublieft opnieuw over een aantal minuten.
+ </notification>
+ <notification name="no_inventory_host">
+Het inventarissysteem is momenteel niet beschikbaar.
+ </notification>
+
+ <notification name="CannotSetLandOwnerNothingSelected">
+ Kan landeigenaar niet instellen:
+Geen perceel geselecteerd.
+ </notification>
+ <notification name="CannotSetLandOwnerMultipleRegions">
+ Kon geen land eigendom forceren omdat de selectie meerder regio&apos;s omvat.
+Selecteer alstublieft een kleiner gebied en probeer het opnieuw.
+ </notification>
+ <notification name="ForceOwnerAuctionWarning">
+ Dit perceel staat voor veiling aangemerkt. Eigendom forceren zal de veiling afbreking en kan potentieel een aantal inwoners niet erg blij maken als het bieden al is begonnen. Eigendom forceren?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="CannotContentifyNothingSelected">
+ Unable to contentify:
+Geen perceel geselecteerd.
+ </notification>
+ <notification name="CannotContentifyNoRegion">
+ Unable to contentify:
+Geen regio geselecteerd.
+ </notification>
+ <notification name="CannotReleaseLandNothingSelected">
+ Kan land niet afstaan:
+Geen perceel geselecteerd.
+ </notification>
+ <notification name="CannotReleaseLandNoRegion">
+ Kan land niet afstaan:
+kan de regio niet vinden.
+ </notification>
+ <notification name="CannotBuyLandNothingSelected">
+ Kan land niet kopen:
+Geen perceel geselecteerd.
+ </notification>
+ <notification name="CannotBuyLandNoRegion">
+ Kan land niet kopen:
+Kan de regio niet vinden waar dit land zich bevind.
+ </notification>
+ <notification name="CannotCloseFloaterBuyLand">
+ U kunt het Koop Land venster niet sluiten totdat Second Life de prijs van de transactie geschat heeft.
+ </notification>
+ <notification name="CannotDeedLandNothingSelected">
+ Kan land niet toekennen:
+Geen perceel geselecteerd.
+ </notification>
+ <notification name="CannotDeedLandNoGroup">
+ Kan land niet toekennen:
+Geen groep geselecteerd.
+ </notification>
+ <notification name="CannotDeedLandNoRegion">
+ Kan land niet toekennen:
+Kan de regio niet vinden waar dit land zich bevind.
+Gebruik alstublieft Gereedschappen -&gt; Report Bug om het te rapporteren.
+ </notification>
+ <notification name="CannotDeedLandMultipleSelected">
+ Kan land niet toekennen:
+Meerder percelen geselecteerd.
+
+Probeer één enkel perceel te selecteren.
+ </notification>
+ <notification name="ParcelCanPlayMedia">
+ Deze locatie van streaming media afspelen.
+
+Streaming media vereisen een snelle internet verbinding.
+
+Streaming media afspelen wanneer beschikbaar?
+(U kunt deze optie later wijzigen onder Preferenties &gt; Audio &amp; Video.)
+ <usetemplate name="okcancelbuttons" notext="Uitschakelen" yestext="Media Afspelen"/>
+ </notification>
+ <notification name="CannotDeedLandWaitingForServer">
+ Kan land niet toekennen:
+Wacht op de server om eigendom te rapporteren.
+
+Probeer het alstublieft opnieuw.
+ </notification>
+ <notification name="CannotDeedLandNoTransfer">
+ Kan land niet toekennen:
+De regio [REGION] staat geen overdracht van land toe.
+ </notification>
+ <notification name="CannotReleaseLandWatingForServer">
+ Kan land niet afstaan:
+Wacht op server om de perceel informatie bij te werken.
+
+Probeer het over enkele ogenblikken opnieuw.
+ </notification>
+ <notification name="CannotReleaseLandSelected">
+ Kan land niet afstaan:
+Niet alle geselecteerde percelen zijn uw eigendom.
+
+Kies alstublieft één perceel.
+ </notification>
+ <notification name="CannotReleaseLandDontOwn">
+ Kan land niet afstaan:
+U heeft geen permissie dit perceel vrij te geven.
+Percelen in uw eigendom verschijnen in groen.
+ </notification>
+ <notification name="CannotReleaseLandRegionNotFound">
+ Kan land niet afstaan:
+Kan de regio niet vinden waar dit land zich bevind.
+
+Gebruik alstublieft Gereedschappen &gt; Report Bug om het te rapporteren.
+ </notification>
+ <notification name="CannotReleaseLandNoTransfer">
+ Kan land niet afstaan:
+De regio [REGION] staat geen overdracht van land toe.
+ </notification>
+ <notification name="CannotReleaseLandPartialSelection">
+ Kan land niet afstaan:
+U moet het gehele perceel selecteren om het vrij te kunnen geven.
+
+Selecteer het gehele perceel of deel het eerst op.
+ </notification>
+ <notification name="ReleaseLandWarning">
+ U staat op het punt om [AREA] m² land af te staan.
+Met het afstaan van dit perceel zal het uit uw land houderschapsoverzicht verdwijnen, maar zal u geen L$ toekennen.
+
+Dit land afstaan?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="CannotDivideLandNothingSelected">
+ Kan land niet opdelen:
+
+Geen percelen geselecteerd.
+ </notification>
+ <notification name="CannotDivideLandPartialSelection">
+ Kan land niet opdelen:
+
+U heeft het gehele perceel geselecteerd.
+Probeer een deel van het perceel te selecteren.
+ </notification>
+ <notification name="LandDivideWarning">
+ Opdelen zal het perceel in twee delen verdelen en elk perceel kan zijn eigen instellingen hebben. Sommige instellingen zullen naar de standaard waarden terugkeren als de operatie voltooid is.
+
+Land opdelen?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="CannotDivideLandNoRegion">
+ Kan het land niet opdelen:
+Kan de regio niet vinden waar dit land zich bevind.
+
+Gebruik alstublieft Gereedschappen &gt; Report Bug om het te rapporteren.
+ </notification>
+ <notification name="CannotJoinLandNoRegion">
+ Kan land niet verbinden:
+Kan de regio niet vinden waar dit land zich bevind.
+
+Gebruik alstublieft Gereedschappen &gt; Report Bug om het te rapporteren.
+ </notification>
+ <notification name="CannotJoinLandNothingSelected">
+ Kan land niet verbinden:
+Geen perceel geselecteerd.
+ </notification>
+ <notification name="CannotJoinLandEntireParcelSelected">
+ Kan land niet verbinden:
+U heeft slechts één perceel geselecteerd.
+
+Selecteer land over beide percelen.
+ </notification>
+ <notification name="CannotJoinLandSelection">
+ Kan land niet verbinden:
+U moet meer dan één perceel selecteren.
+
+Selecteer land over beide percelen.
+ </notification>
+ <notification name="JoinLandWarning">
+ Het verbinding van dit land zal één groot perceel opleveren uit alle percelen die de rechthoek doorkruisen.
+U zult de naam en opties van het nieuwe perceel opnieuw in moeten stellen.
+
+Land verbinden?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="ShowOwnersHelp">
+ Toon eigenaren:
+Kleur percelen om het eigenaarstype te tonen.
+
+Groen = Uw land
+Aqua = Land van uw groep
+Rood = Eigendom van anderen
+Geel = Te koop
+Paars = Ter veiling
+Grijs = Openbaar
+ </notification>
+ <notification name="ConfirmNotecardSave">
+ Deze notitiekaart zal moet worden opgeslagen voordat het item kan worden gekopieerd of bekeken. Notitiekaart opslaan?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmItemCopy">
+ Dit item naar uw inventaris kopiëren?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="Kopiëren"/>
+ </notification>
+ <notification name="ResolutionSwitchFail">
+ Mislukt om resolutie te verwisselen van [RESX] naar [RESY]
+ </notification>
+ <notification name="ErrorUndefinedGrasses">
+ Fout: Onbekend gras: [SPECIES]
+ </notification>
+ <notification name="ErrorUndefinedTrees">
+ Fout: Onbekende bomen: [SPECIES]
+ </notification>
+ <notification name="CannotSaveWearableOutOfSpace">
+ Kon &apos;[NAME]&apos; niet opslaan voor draagbaar item. U zult wat ruimte moeten maken op uw computer en het draagbare item opnieuw op moeten slaan.
+ </notification>
+ <notification name="CannotSaveToAssetStore">
+ Kon [NAME] niet opslaan in centrale (asset) opslag.
+Meestal is dit een tijdelijk probleem.
+Wijzig en sla het draagbaar item over een paar minuten opnieuw op.
+
+Indien dit probleem aanhoudt, klik dan alstublieft op &apos;Gereedschap &gt; Rapporteer Bug&apos; in het menu en voeg informatie toe over uw netwerk instellingen.
+ </notification>
+ <notification name="YouHaveBeenLoggedOut">
+ U bent uitgelogd uit [SECOND_LIFE]:
+[MESSAGE]
+U kunt uw bestaande IM en chat bekijken door te klikken op &apos;Toon IM &amp; Chat&apos;. Anders, klik op Afsluiten om [SECOND_LIFE] direct te verlaten.
+ <usetemplate name="okcancelbuttons" notext="Afsluiten" yestext="Toon IM &amp; Chat"/>
+ </notification>
+ <notification name="OnlyOfficerCanBuyLand">
+ Kan land niet voor de groep kopen:
+U heeft geen permissie land te kopen voor de actieve groep.
+ </notification>
+ <notification label="Vriend Toevoegen" name="AddFriend">
+ Vrienden kunnen elkaar permissie geven om elkaar te volgen op de Kaart en om Online status updates te verkrijgen.
+
+Vriendschap aanbieden aan [NAME]?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification label="Vriend Toevoegen" name="AddFriendWithMessage">
+ Vrienden kunnen elkaar permissie geven om elkaar te volgen op de Kaart en om Online status updates te verkrijgen.
+
+Vriendschap aanbieden aan [NAME]?
+ <form name="form">
+ <input name="message" type="text">
+ Wilt U mijn vriend zijn?
+ </input>
+ <button name="Offer" text="OK"/>
+ <button name="Cancel" text="Annuleren"/>
+ </form>
+ </notification>
+ <notification name="RemoveFromFriends">
+ Wilt u [FIRST_NAME] [LAST_NAME] van uw Vriend lijst verwijderen?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="RemoveMultipleFromFriends">
+ Wilt u meerder vrienden van uw Vrienden lijst verwijderen?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="GodDeleteAllScriptedPublicObjectsByUser">
+ Weet u zeker dat u alle gescripte objecten wilt verwijderen eigendom van
+** [AVATAR_NAME] **
+op allen hun land in deze sim?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="GodDeleteAllScriptedObjectsByUser">
+ Weet u zeker dat u ALLE gescripte objecten wilt VERWIJDEREN eigendom van
+** [AVATAR_NAME] **
+op AL het land in deze sim?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="GodDeleteAllObjectsByUser">
+ Weet u zeker, dat u ALLE objecten (gescript of niet) wilt VERWIJDEREN eigendom van
+** [AVATAR_NAME] **
+op AL het LAND in deze sim?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="BlankClassifiedName">
+ U moet een naam opgeven voor uw advertentie.
+ </notification>
+ <notification name="MinClassifiedPrice">
+ De prijs voor weergave moet minimaal L$[MIN_PRICE] zijn.
+
+Voor alstublieft een hoger bedrag in.
+ </notification>
+ <notification name="ConfirmObjectDeleteLock">
+ Ten minste één van de geselecteerde items is geblokkeerd.
+
+Weet u zeker dat u deze items wilt verwijderen?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteNoCopy">
+ Ten minste één van de geselecteerde items is niet kopieerbaar.
+
+Weet u zeker dat u deze items wilt verwijderen?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteNoOwn">
+ Tenminste één van de geselecteerde items is niet uw eigendom.
+
+Weet u zeker dat u deze items wilt verwijderen?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteLockNoCopy">
+ Ten minste één item is geblokkeerd.
+Ten minste één item is niet kopieerbaar.
+
+Weet u zeker dat u deze items wilt verwijderen?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteLockNoOwn">
+ Ten minste één item is geblokkeerd.
+Tenminste één object is niet uw eigendom.
+
+Weet u zeker dat u deze items wilt verwijderen?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteNoCopyNoOwn">
+ Ten minste één object is niet kopieerbaar.
+Tenminste één object is niet uw eigendom.
+
+Weet u zeker dat u deze items wilt verwijderen?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteLockNoCopyNoOwn">
+ Ten minste één item is geblokkeerd.
+Ten minste één item is niet kopieerbaar.
+Tenminste één object is niet uw eigendom.
+
+Weet u zeker dat u deze items wilt verwijderen?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectTakeLock">
+ Ten minste één object is geblokkeerd.
+
+Weet u zeker dat u deze items terug wilt nemen?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectTakeNoOwn">
+ Niet alle objecten die u terug neemt zijn uw eigendom.
+Indien u verder gaat, worden de permissies van de volgende eigenaar er op toegepast en beperkt het u mogelijk het aan te passen of te kopiëren.
+
+Weet u zeker dat u deze items terug wilt nemen?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectTakeLockNoOwn">
+ Ten minste één object is geblokkeerd.
+Niet alle objecten die u terug neemt zijn uw eigendom.
+Indien u verder gaat, worden de permissies van de volgende eigenaar er op toegepast en beperkt het u mogelijk het aan te passen of te kopiëren.
+Echter, U kunt de huidige selectie wel terugnemen.
+
+Weet u zeker dat u deze items terug wilt nemen?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="CantBuyLandAcrossMultipleRegions">
+ Kan het land niet kopen omdat het meerder regio&apos;s omvat.
+
+Kiest u alstublieft een kleiner gebied en probeer het opnieuw.
+ </notification>
+ <notification name="DeedLandToGroup">
+ Voor het overdragen van dit perceel zal de groep voldoen land gebruikscredit moeten hebben en onderhouden.
+Het aankoop bedrag zal niet naar de eigenaar worden terug gestort.
+Indien een overgedragen perceel wordt verkocht, zal het verkoop bedrag gelijkmatig over de groepsleden worden verdeeld.
+
+Deze [AREA] m² land overdragen aan de groep &apos;[GROUP_NAME]&apos;?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="DeedLandToGroupWithContribution">
+ Voor het overdragen van dit perceel zal de groep voldoen land gebruikscredit moeten hebben en onderhouden.
+De overdracht zal een simultane land contributie verlangen van de groep van &apos;[FIRST_NAME] [LAST_NAME]&apos;.
+Het aankoop bedrag zal niet naar de eigenaar worden terug gestort.
+Indien een overgedragen perceel wordt verkocht, zal het verkoop bedrag gelijkmatig over de groepsleden worden verdeeld.
+
+Deze [AREA] m² land overdragen aan de groep &apos;[GROUP_NAME]&apos;?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="DisplaySetToSafe">
+ Weergave instellingen zijn op veilige waarden ingesteld omdat u de -save optie op heeft gegeven.
+ </notification>
+ <notification name="DisplaySetToRecommended">
+ Weergave instellingen zijn ingesteld op geadviseerde waarden, gebaseerd op uw systeem configuratie.
+ </notification>
+ <notification name="ErrorMessage">
+ [ERROR_MESSAGE]
+ </notification>
+ <notification name="AvatarMoved">
+ Uw [TYPE] locatie is momenteel niet beschikbaar.
+[HELP]
+U bent naar een nabij gelegen regio verplaatst.
+ </notification>
+ <notification name="ClothingLoading">
+ Uw kleding wordt nog steeds geladen.
+U kunt [SECOND_LIFE] normaal gebruiken en anderen zullen u correct zien.
+ <form name="form">
+ <ignore name="ignore" text="Indien kleding een erg lange tijd in beslag neemt om de laden"/>
+ </form>
+ </notification>
+ <notification name="FirstRun">
+ [SECOND_LIFE] installatie compleet.
+
+Als dit de eerste keer is dat u [SECOND_LIFE] gebruikt, zult u een account aan moeten maken voordat u in kan loggen.
+Terugkeren naar www.secondlife.com om een nieuw account aan te maken?
+ <usetemplate name="okcancelbuttons" notext="Doorgaan" yestext="Nieuw Account..."/>
+ </notification>
+ <notification name="LoginPacketNeverReceived">
+ Wij hebben problemen verbinding te maken. Er zou een probleem kunnen zijn met uw internet verbinding of met de Second Life servers.
+
+U kunt uw internet verbinding controleren en het over een paar minuten opnieuw proberen, op Help klikken om verbinding te maken met onze support website, of klik op Teleporteren om een poging te doen naar uw thuis locatie te teleporteren.
+ <form name="form">
+ <button name="OK" text="OK"/>
+ <button name="Help" text="Help"/>
+ <button name="Teleport" text="Teleport"/>
+ </form>
+ </notification>
+ <notification name="WelcomeChooseSex">
+ Uw avatar zal over enkele ogenblikken verschijnen.
+
+Gebruik de pijltjestoetsen om te lopen.
+Druk op elk gewenst moment op F1 voor Help en om meer te leren over [SECOND_LIFE].
+Kies alstublieft een mannelijk of vrouwelijke avatar. U kunt later nog van gedachten veranderen.
+ <usetemplate name="okcancelbuttons" notext="Vrouw" yestext="Man"/>
+ </notification>
+ <notification name="NotEnoughCurrency">
+ [NAME] L$ [PRICE] U heeft niet genoeg L$ om dit te doen.
+ </notification>
+ <notification name="GrantedModifyRights">
+ U heeft het recht verkregen om objecten van [FIRST_NAME] [LAST_NAME] te wijzigen.
+ </notification>
+ <notification name="RevokedModifyRights">
+ Uw recht om objecten van [FIRST_NAME] [LAST_NAME] is ingetrokken.
+ </notification>
+ <notification name="FlushMapVisibilityCaches">
+ Dit zal de Kaart cache van deze regio opschonen.
+
+Dit is eigenlijk alleen nuttig voor debugging.
+(In productie, wacht 5 minuten, dan zal de Kaart van iedereen bijgewerkt worden als ze opnieuw verbinden.)
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="BuyOneObjectOnly">
+ Kan niet meer dan één object tegelijkertijd kopen. Selecteer alstublieft slechts één object en probeer opnieuw.
+ </notification>
+ <notification name="OnlyCopyContentsOfSingleItem">
+ Kan niet de inhoud van meer dan één item per keer kopiëren.
+Kies alstublieft slechts één object en probeer het opnieuw.
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="KickUsersFromRegion">
+ Alle Inwoners in deze regio naar de thuis locatie Teleporteren?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="EstateObjectReturn">
+ Weet u zeker dat u alle objecten wilt retourneren eigendom van [USER_NAME] ?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="InvalidTerrainBitDepth">
+ Kon de regio textuur niet plaatsen:
+Terrein textuur [TEXTURE_NUM] heeft een ongeldige bit diepte van [TEXTURE_BIT_DEPTH].
+
+Vervang de textuur [TEXTURE_NUM] met een 24-bit 512x512 of een kleinere afbeelding, klik dan op opnieuw op &quot;Toepassen&quot;.
+ </notification>
+ <notification name="InvalidTerrainSize">
+ Kon de regio textuur niet plaatsen:
+Terrein textuur [TEXTURE_NUM] is te groot met [TEXTURE_SIZE_X]x[TEXTURE_SIZE_Y].
+
+Vervang de textuur [TEXTURE_NUM] met een 24-bit 512x512 of een kleinere afbeelding, klik dan op opnieuw op &quot;Toepassen&quot;.
+ </notification>
+ <notification name="RawUploadStarted">
+ Upload gestart. Het kan tot twee minuten duren, afhankelijk van u verbindings snelheid.
+ </notification>
+ <notification name="ConfirmBakeTerrain">
+ Wilt u werkelijk het huidige terrein &apos;baken&apos;, dit als middelpunt voor de verhoog/verlaag limieten instellen en als standaard instellen voor het &apos;Herstel&apos; gereedschap?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="MaxAllowedAgentOnRegion">
+ U kunt slechts [MAX_AGENTS] Toegestane Inwoners hebben.
+ </notification>
+ <notification name="MaxBannedAgentsOnRegion">
+ U kunt slechts [MAX_BANNED] Verbannen Inwoners hebben.
+ </notification>
+ <notification name="MaxAgentOnRegionBatch">
+ Een poging [NUM_ADDED] agents toe te voegen is mislukt:
+Overstijgt de [MAX_AGENTS] [LIST_TYPE] limiet met [NUM_EXCESS].
+ </notification>
+ <notification name="MaxAllowedGroupsOnRegion">
+ U kunt slechts [MAX_GROUPS] Toegestane Groepen hebben.
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="Bake"/>
+ </notification>
+ <notification name="MaxManagersOnRegion">
+ U kunt slechts [MAX_MANAGER] Estate Beheerders hebben.
+ </notification>
+ <notification name="OwnerCanNotBeDenied">
+ Kan de estate eigenaar niet aan de Verbannen lijst van het estate toe voegen.
+ </notification>
+ <notification name="CanNotChangeAppearanceUntilLoaded">
+ Kan het Uiterlijk niet veranderen totdat kleding en Postuur geladen zijn.
+ </notification>
+ <notification name="ClassifiedMustBeAlphanumeric">
+ De naam van uw advertentie moet beginnen met een letter van A tot Z of een nummer.
+Leestekens zijn niet toegestaan.
+ </notification>
+ <notification name="CantSetBuyObject">
+ Kan Koop Object niet instellen omdat het object niet te koop is.
+Zet het object alstublieft te koop en probeer het opnieuw.
+ </notification>
+ <notification name="FinishedRawDownload">
+ Download van raw terrein bestand geëindigd naar:
+[DOWNLOAD_PATH].
+ </notification>
+ <notification name="DownloadWindowsMandatory">
+ Een nieuwe versie van [SECOND_LIFE] is beschikbaar.
+[MESSAGE]
+U moet deze update downloaden om [SECOND_LIFE] te kunnen gebruiken.
+ <usetemplate name="okcancelbuttons" notext="Afsluiten" yestext="Download"/>
+ </notification>
+ <notification name="DownloadWindows">
+ Een bijgewerkte versie van [SECOND_LIFE] is beschikbaar.
+[MESSAGE]
+Deze update is niet vereist, maar wij raden aan dat u het installeert om de prestaties en stabiliteit te verbeteren.
+ <usetemplate name="okcancelbuttons" notext="Doorgaan" yestext="Download"/>
+ </notification>
+ <notification name="DownloadWindowsReleaseForDownload">
+ Een bijgewerkte versie van [SECOND_LIFE] is beschikbaar.
+[MESSAGE]
+Deze update is niet vereist, maar wij raden aan dat u het installeert om de prestaties en stabiliteit te verbeteren.
+ <usetemplate name="okcancelbuttons" notext="Doorgaan" yestext="Download"/>
+ </notification>
+ <notification name="DownloadMacMandatory">
+ Een nieuwe versie van [SECOND_LIFE] is beschikbaar.
+[MESSAGE]
+U moet deze update downloaden om [SECOND_LIFE] te kunnen gebruiken.
+
+Downloaden naar uw Applicatie Data map?
+ <usetemplate name="okcancelbuttons" notext="Afsluiten" yestext="Download"/>
+ </notification>
+ <notification name="DownloadMac">
+ Een bijgewerkte versie van [SECOND_LIFE] is beschikbaar.
+[MESSAGE]
+Deze update is niet vereist, maar wij raden aan dat u het installeert om de prestaties en stabiliteit te verbeteren.
+
+Downloaden naar uw Applicatie Data map?
+ <usetemplate name="okcancelbuttons" notext="Doorgaan" yestext="Download"/>
+ </notification>
+ <notification name="DownloadMacReleaseForDownload">
+ Een bijgewerkte versie van [SECOND_LIFE] is beschikbaar.
+[MESSAGE]
+Deze update is niet vereist, maar wij raden aan dat u het installeert om de prestaties en stabiliteit te verbeteren.
+
+Downloaden naar uw Applicatie Data map?
+ <usetemplate name="okcancelbuttons" notext="Doorgaan" yestext="Download"/>
+ </notification>
+ <notification name="DeedObjectToGroup">
+ Dit object overdragen aan de groep zal de groep:
+* L$ ontvangen als betaald in het object
+ <usetemplate ignoretext="Bij objecten die overgedragen worden aan groepen" name="okcancelignore" notext="Annuleren" yestext="Overdragen"/>
+ </notification>
+ <notification name="WebLaunchExternalTarget">
+ Uw systeem browser openen om deze inhoud te bekijken?
+ <usetemplate ignoretext="Bij openen van systeem browser om de webpagina te bekijken" name="okcancelignore" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchJoinNow">
+ Naar www.secondlife.com gaan om uw account te beheren?
+ <usetemplate ignoretext="Bij openen van webbrowser om uw account te beheren" name="okcancelignore" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchBugReport101">
+ Bezoek de [SECOND_LIFE] Wiki en leer hoe Bugs correct gerapporteerd kunnen worden.
+ <usetemplate ignoretext="Bij openen webbrowser om de Bug Reporting 101 Wiki te bekijken" name="okcancelignore" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchSecurityIssues">
+ Bezoek de [SECOND_LIFE] Wiki voor details over hoe een Veiligheids Probleem (Security Issue) te rapporteren.
+ <usetemplate ignoretext="Bij openen webbrowser om de Veiligheids Problemen Wiki (Security Issues Wiki) te bekijken" name="okcancelignore" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchQAWiki">
+ Bezoek de [SECOND_LIFE] QA Wiki (Kwaliteitsbeheersing Wiki).
+ <usetemplate ignoretext="Bij openen webbrowser om de QA Wiki (Kwaliteitsbeheersing Wiki) te bekijken" name="okcancelignore" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchPublicIssue">
+ Bezoek de [SECOND_LIFE] Publieke problemenlijst, waar u Bugs en andere Problemen kunt rapporteren.
+ <usetemplate ignoretext="Bij openen webbrowser om de Publieke problemenlijst te bekijken" name="okcancelignore" notext="Annuleren" yestext="Ga naar pagina"/>
+ </notification>
+ <notification name="WebLaunchPublicIssueHelp">
+ Bezoek de [SECOND_LIFE] Wiki voor informatie over het gebruik van de Publieke problemenlijst.
+ <usetemplate ignoretext="Bij openen webbrowser om de Publieke problemenlijst Wiki te bekijken" name="okcancelignore" notext="Annuleren" yestext="Ga naar pagina"/>
+ </notification>
+ <notification name="WebLaunchSupportWiki">
+ Ga naar de Officiële Linden Blog voor het laatste Nieuws en Informatie.
+ <usetemplate ignoretext="Bij openen webbrowser om de blog te bekijken" name="okcancelignore" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchLSLGuide">
+ Naar de Script Gids gaan voor hulp met scripten?
+ <usetemplate ignoretext="Bij openen webbrowser om de Script Gids te bekijken" name="okcancelignore" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchLSLWiki">
+ Naar de LSL Portaal gaan voor hulp met scripten?
+ <usetemplate ignoretext="Bij openen webbrowser om de LSL Portal te bekijken" name="okcancelignore" notext="Annuleren" yestext="Ga naar pagina"/>
+ </notification>
+ <notification name="ReturnToOwner">
+ Weet u zeker dat u de geselecteerde objecten wilt retourneren naar de eigenaren?
+Overdraagbare toegekende objecten zullen naar de oorspronkelijke eigenaren worden geretourneerd.
+
+*WAARSCHUWING* Niet overdraagbare toegekende objecten zullen worden verwijderd!
+ <usetemplate ignoretext="Bij retourneren objecten naar de eigenaren" name="okcancelignore" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="GroupLeaveConfirmMember">
+ U bent momenteel een lid van de groep [GROUP].
+Groep Verlaten?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmKick">
+ Weet u HEEL ZEKER dat u alle gebruikers uit het grid wilt verwijderen?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="Verwijder Alle Gebruikers"/>
+ </notification>
+ <notification name="MuteLinden">
+ Sorry, u kunt geen Linden Negeren
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="CannotStartAuctionAlreadyForSale">
+ U kunt geen veiling starten op een perceel dat al te koop is gezet. Schakel de landverkoop uit wanneer u zeker bent dat u een veiling wil starten.
+ </notification>
+ <notification label="Negeren van object mislukt" name="MuteByNameFailed">
+ U heeft deze naam al genegeerd.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="RemoveItemWarn">
+ Alhoewel toegestaan, verwijderen van de inhoud kan het object beschadigen. Wilt u dit item verwijderen?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="CantOfferCallingCard">
+ Kan op dit moment geen visitekaart aanbieden. Probeer het alstublieft later opnieuw.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="CantOfferFriendship">
+ Kan op dit moment geen vriendschap aanbieden. Probeer het alstublieft later opnieuw.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="BusyModeSet">
+ Niet Storen modus ingesteld.
+
+Chat and instant messages zullen verborgen blijven. Instant messages zullen uw Niet Storen melding krijgen. Alle teleport aanbiedingen zullen worden afgewezen. Alle inventaris aanbiedingen zullen in uw Vuilnisbak terecht komen.
+ <usetemplate ignoretext="Bij instellen Niet Storen modus" name="okignore" yestext="OK"/>
+ </notification>
+ <notification name="JoinedTooManyGroupsMember">
+ U ben lid van teveel groepen om lid te worden van een andere. Verlaat op zijn minst één groep alvorens lid te worden van een andere of weiger de lidmaatschap aanbieding.
+Om een groep te verlaten, selecteer de &apos;Groep..&apos; optie via het &apos;Bewerken&apos; menu.
+
+[NAME] heeft u uitgenodigd om lid te worden van de groep als algemeen lid.
+
+[INVITE]
+ <usetemplate name="okcancelbuttons" notext="Afslaan" yestext="Lid worden"/>
+ </notification>
+ <notification name="KickUser">
+ Verwijder deze gebruiker met welk bericht?
+ <form name="form">
+ <input name="message" type="text">
+ Een administrator heeft u uitgelogd.
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annuleren"/>
+ </form>
+ </notification>
+ <notification name="KickAllUsers">
+ Verwijder iedereen momenteel op het grid met welk bericht?
+ <form name="form">
+ <input name="message" type="text">
+ Een administrator heeft u uitgelogd.
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annuleren"/>
+ </form>
+ </notification>
+ <notification name="FreezeUser">
+ Bevries deze gebruiker met welk bericht?
+ <form name="form">
+ <input name="message" type="text">
+ U bent bevroren. U kunt zich niet verplaatsen of praten. Een administrator zal contact met u opnemen via instant message (IM).
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annuleren"/>
+ </form>
+ </notification>
+ <notification name="UnFreezeUser">
+ Ontdooi deze gebruiker met welk bericht?
+ <form name="form">
+ <input name="message" type="text">
+ U bent niet langer bevroren.
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annuleren"/>
+ </form>
+ </notification>
+ <notification name="OfferTeleport">
+ Een Teleport aanbieden naar uw locatie met welk bericht?
+ <form name="form">
+ <input name="message" type="text">
+ Voeg u bij mij in [REGION]
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annuleren"/>
+ </form>
+ </notification>
+ <notification name="OfferTeleportFromGod">
+ God beveel gebruiker naar uw locatie?
+ <form name="form">
+ <input name="message" type="text">
+ Voeg u bij mij in [REGION]
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annuleren"/>
+ </form>
+ </notification>
+ <notification name="TeleportFromLandmark">
+ Weet u zeker dat u wilt teleporteren?
+ <usetemplate ignoretext="Bij teleporteren via een landmarkering in inventaris" name="okcancelignore" notext="Annuleren" yestext="Teleporteren"/>
+ </notification>
+ <notification label="Bericht iedereen in uw Estate" name="MessageEstate">
+ Type een kort bericht om naar iedereen sturen die momenteel in uw Estate aanwezig is.
+ <form name="form">
+ <input name="message" type="text"/>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annuleren"/>
+ </form>
+ </notification>
+ <notification label="Wijzig Linden Estate" name="ChangeLindenEstate">
+ U staat op het punt een Linden beheerde Estate te wijzigen mainland, teen grid, orientation, etc.).
+
+Dit is EXTREEM GEVAARLIJK om het fundamenteel de gebruikers ervaring kan aantasten.
+Op het mainland zal het duizenden regionen wijzigen en de spaceserver kan storingen vertonen.
+
+Doorgaan?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification label="Wijzig Linden Estate Toegang" name="ChangeLindenAccess">
+ U staat op het punt de toegangslijst van een Linden Estate eigendom aan te passen (mainland, teen grid, orientation, etc.).
+
+Dit is GEVAARLIJK en zou alleen gedaan moeten worden om de hack toe te staan om objecten/L$ over te dragen in/uit het grid.
+Het zal het duizenden regionen wijzigen en de spaceserver kan storingen vertonen.
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification label="Selecteer Estate" name="EstateAllowedAgentAdd">
+ Alleen aan toegangslijst voor dit Estate toevoegen of voor [ALL_ESTATES]?
+ <usetemplate canceltext="Annuleren" name="yesnocancelbuttons" notext="Alle Estates" yestext="Dit Estate"/>
+ </notification>
+ <notification label="Selecteer Estate" name="EstateAllowedAgentRemove">
+ Verwijderen van toegangslijst voor alleen dit Estate of voor [ALL_ESTATES]?
+ <usetemplate canceltext="Annuleren" name="yesnocancelbuttons" notext="Alle Estates" yestext="Dit Estate"/>
+ </notification>
+ <notification label="Selecteer Estate" name="EstateAllowedGroupAdd">
+ Alleen aan groeps toegangslijst voor dit Estate toevoegen of voor [ALL_ESTATES]?
+ <usetemplate canceltext="Annuleren" name="yesnocancelbuttons" notext="Alle Estates" yestext="Dit Estate"/>
+ </notification>
+ <notification label="Selecteer Estate" name="EstateAllowedGroupRemove">
+ Verwijderen van groeps toegangslijst voor alleen dit Estate of voor [ALL_ESTATES]?
+ <usetemplate canceltext="Annuleren" name="yesnocancelbuttons" notext="Alle Estates" yestext="Dit Estate"/>
+ </notification>
+ <notification label="Selecteer Estate" name="EstateBannedAgentAdd">
+ Weiger toegang voor alleen dit Estate of voor [ALL_ESTATES]?
+ <usetemplate canceltext="Annuleren" name="yesnocancelbuttons" notext="Alle Estates" yestext="Dit Estate"/>
+ </notification>
+ <notification label="Selecteer Estate" name="EstateBannedAgentRemove">
+ Deze Inwoner van de ban lijst voor toegang voor alleen dit Estate verwijderen of voor [ALL_ESTATES]?
+ <usetemplate canceltext="Annuleren" name="yesnocancelbuttons" notext="Alle Estates" yestext="Dit Estate"/>
+ </notification>
+ <notification label="Selecteer Estate" name="EstateManagerAdd">
+ Estate beheerder toevoegen voor alleen dit Estate of voor [ALL_ESTATES]?
+ <usetemplate canceltext="Annuleren" name="yesnocancelbuttons" notext="Alle Estates" yestext="Dit Estate"/>
+ </notification>
+ <notification label="Selecteer Estate" name="EstateManagerRemove">
+ Estate beheerder verwijderen voor alleen dit Estate of voor [ALL_ESTATES]?
+ <usetemplate canceltext="Annuleren" name="yesnocancelbuttons" notext="Alle Estates" yestext="Dit Estate"/>
+ </notification>
+ <notification label="Bevestig Verwijderen" name="EstateKickUser">
+ Verwijder [EVIL_USER] van deze Estate?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="EstateChangeCovenant">
+ Weet u zeker dat u de Estate Convenant wilt wijzigen?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="RegionEntryAccessBlocked">
+ U wordt niet in die regio toegelaten vanwege uw inhoudscategorie. Dit kan het gevolg zijn van een gebrek aan informatie die uw leeftijd valideert.
+
+Verifieer alstublieft dat u de nieuwste viewer heeft geïnstalleerd en ga naar de kennisbank voor details over het betreden van gebieden met deze inhoudscategorie.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="RegionEntryAccessBlocked_KB">
+ U wordt niet in die regio toegelaten vanwege uw inhoudscategorie.
+
+Ga naar de kennisbank voor meer informatie over inhoudscategorieën?
+ <url name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=6010
+ </url>
+ <usetemplate
+ name="okcancelignore"
+ yestext="Ga naar kennisbank"
+ notext="Sluiten"
+ ignoretext="Wanneer regiotoegang wordt geblokkeerd vanwege de inhoudscategorie"/>
+ </notification>
+ <notification name="RegionEntryAccessBlocked_Notify">
+ U wordt niet in die regio toegelaten vanwege uw inhoudscategorie.
+ </notification>
+ <notification name="RegionEntryAccessBlocked_Change">
+ U wordt niet in die regio toegelaten vanwege uw inhoudscategorie.
+
+U kunt klikken op &apos;Wijzig voorkeur&apos; om uw inhoudscategorie voorkeur nu te verhogen en toegelaten te worden. U zult in staat zijn om [REGIONMATURITY] inhoud te zoeken en benaderen vanaf dit moment. Wanneer u later deze instelling wilt wijzigen, ga dan naar Bewerken &gt; Voorkeuren... &gt; Algemeen.
+ <form>
+ <button
+ name="OK"
+ text="Wijzig voorkeur"/>
+ <button
+ default="true"
+ name="Cancel"
+ text="Sluiten"/>
+ <ignore text="Wanneer regiotoegang wordt geblokkeerd vanwege de inhoudscategorie voorkeur"/>
+ </form>
+ </notification>
+ <notification name="LandClaimAccessBlocked">
+ U kunt dit land niet opeisen vanwege uw inhoudscategorie. Dit kan het gevolg zijn van een gebrek aan informatie die uw leeftijd valideert.
+
+Verifieer alstublieft dat u de nieuwste viewer heeft geïnstalleerd en ga naar de kennisbank voor details over het betreden van gebieden met deze inhoudscategorie.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="LandClaimAccessBlocked_KB">
+ U kunt dit land niet opeisen vanwege uw inhoudscategorie.
+
+Ga naar de kennisbank voor meer informatie over inhoudscategorieën?
+ <url name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=6010
+ </url>
+ <usetemplate
+ name="okcancelignore"
+ yestext="Ga naar kennisbank"
+ notext="Sluiten"
+ ignoretext="Wanneer het opeisen van land wordt geblokkeerd vanwege de inhoudscategorie"/>
+ </notification>
+ <notification name="LandClaimAccessBlocked_Notify">
+ U kunt dit land niet opeisen vanwege uw inhoudscategorie.
+ </notification>
+ <notification name="LandClaimAccessBlocked_Change">
+ U kunt dit land niet opeisen vanwege uw inhoudscategorie voorkeur.
+
+U kunt klikken op &apos;Wijzig voorkeur&apos; om uw inhoudscategorie voorkeur nu te verhogen en toegang te krijgen om binnen te treden. U zult in staat zijn om [REGIONMATURITY] inhoud vanaf nu te zoeken en benaderen. Wanneer u deze instelling later terug wilt zetten, gaat u naar Bewerken &gt; Voorkeuren... &gt; Algemeen.
+ <usetemplate
+ name="okcancelignore"
+ yestext="Wijzig voorkeur"
+ notext="Sluiten"
+ ignoretext="Wanneer het opeisen van land wordt geblokkeerd vanwege de inhoudscategorie voorkeur"/>
+ </notification>
+ <notification name="LandBuyAccessBlocked">
+ U kunt dit land niet kopen vanwege uw inhoudscategorie. Dit kan het gevolg zijn van een gebrek aan informatie die uw leeftijd valideert.
+
+Verifieer alstublieft of u de nieuwste viewer heeft geïnstalleerd en ga naar de kennisbank voor details over het betreden van gebieden met deze inhoudscategorie.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="LandBuyAccessBlocked_KB">
+ U kunt dit land niet kopen vanwege uw inhoudscategorie.
+
+Ga naar de kennisbank voor meer informatie over inhoudscategorieën?
+ <url name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=6010
+ </url>
+ <usetemplate
+ name="okcancelignore"
+ yestext="Ga naar kennisbank"
+ notext="Sluiten"
+ ignoretext="Wanneer een landaankoop wordt geblokkeerd vanwege de inhoudscategorie"/>
+ </notification>
+ <notification name="LandBuyAccessBlocked_Notify">
+ U kunt dit land niet kopen vanwege uw inhoudscategorie.
+ </notification>
+ <notification name="LandBuyAccessBlocked_Change">
+ U kunt dit land niet kopen vanwege uw inhoudscategorie voorkeur.
+
+U kunt klikken op &apos;Wijzig voorkeur&apos; om uw inhoudscategorie voorkeur nu te verhogen en toegang te krijgen om binnen te treden. U zult in staat zijn om [REGIONMATURITY] inhoud vanaf nu te zoeken en benaderen. Wanneer u deze instelling later terug wilt zetten, gaat u naar Bewerken &gt; Voorkeuren... &gt; Algemeen.
+ <usetemplate
+ name="okcancelignore"
+ yestext="Wijzig voorkeur"
+ notext="Sluiten"
+ ignoretext="Wanneer een landaankoop wordt geblokkeerd vanwege de inhoudscategorie voorkeur"/>
+ </notification>
+ <notification name="TooManyPrimsSelected">
+ &quot;Er zijn teveel prims geselecteerd. Selecteer alstublieft [MAX_PRIM_COUNT] of minder prims en probeer opnieuw.&quot;
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="ProblemImportingEstateCovenant">
+ Probleem met importeren Estate Convenant.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="ProblemAddingEstateManager">
+ Problemen met het toevoegen van een Estate beheerder. Eén of meer Estates kunnen een volle beheerders lijst hebben.
+ </notification>
+ <notification name="ProblemAddingEstateGeneric">
+ Problemen met toevoegen aan deze Estate lijst. Eén of meer Estates kunnen een volle lijst hebben.
+ </notification>
+ <notification name="UnableToLoadNotecardAsset">
+ Kan de asset van de notitiekaart op dit moment niet laden.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="NotAllowedToViewNotecard">
+ Onvoldoende rechten om de notitiekaart in te zien geassocieerd met het opgevraagde asset ID.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="MissingNotecardAssetID">
+ Asset ID voor de notitiekaart ontbreekt in de database.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="PublishClassified">
+ Bedenk: kosten voor advertenties worden niet terugbetaald.
+
+Advertentie nu Publiceren voor L$[AMOUNT]?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="SetClassifiedMature">
+ Bevat deze advertentie Mature inhoud?
+ <usetemplate
+ canceltext="Annuleren"
+ name="yesnocancelbuttons"
+ notext="Nee"
+ yestext="Ja"/>
+ </notification>
+ <notification name="SetGroupMature">
+ Bevat deze groep Mature inhoud?
+ <usetemplate
+ canceltext="Annuleren"
+ name="yesnocancelbuttons"
+ notext="Nee"
+ yestext="Ja"/>
+ </notification>
+ <notification label="Bevestig herstart" name="ConfirmRestart">
+ Wilt u deze regio echt binnen 2 minuten herstarten?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification label="Bericht iedereen in deze regio" name="MessageRegion">
+ Type een kort bericht om naar iedereen sturen die momenteel in regio aanwezig is.
+ <form name="form">
+ <input name="message" type="text"/>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annuleren"/>
+ </form>
+ </notification>
+ <notification label="Weiger Land aanpassingen" name="HelpRegionBlockTerraform">
+ Indien dit aan gevinkt kunnen landeigenaren geen terrein bewerkingen doen op hun land, ongeacht de per perceel ingestelde waarde voor &apos;Wijzig Terrein&apos;
+
+Standaard: uitgeschakeld
+ </notification>
+ <notification label="Blokkeer Vliegen" name="HelpRegionBlockFly">
+ Indien dit is aan gevinkt kunnen personen niet vliegen in deze regio ongeacht de per perceel ingestelde waarde &apos;Vliegen&apos;
+
+Standaard: uitgeschakeld
+ </notification>
+ <notification label="Bulkwijzigen Inhoudpermissies" name="HelpBulkPermission">
+ Het Bulkpermissiesgereedschap helpt u om snel de permissies op meerdere items in de inhoud van het geselecteerde object te wijzigen. Let echter op dat u alleen de permissies op de items in de Inhoud van de geselecteerde objecten instelt -- niet de permissies van het containerobject zelf.
+
+Merk ook op dat de permissies niet worden toegepast op de geneste inhoud van de items in Inhoud. Uw verzoek werkt alleen op items precies één niveau diep.
+
+U kunt selectief kiezen welke soorten objecten te wijzigen door gebruik te maken van de checklist onder &apos;Inhoud Types&apos; hier. Foto&apos;s worden opgenomen wanneer u Texturen selecteert.
+
+* Dit gereedschap is alleen succesvol in het wijzigen van permissies op objecten die u mag wijzigen.
+* U kunt geen &apos;Volgende Eigenaar&apos; permissies toekennen die u niet al bezit.
+* De &apos;Volgende Eigenaar&apos; permissies zijn slechts verzoeken. Indien een item niet alle nieuwe permissies kan overnemen, zal geen van zijn permissies wijzigen.
+
+Wanneer u klaar bent om de permissies in bulk te wijzigen, klik dan &apos;Toepassen&apos; en wacht tot de resultaten worden weergegeven.
+
+Indien u het Bulkpermissies venster sluit terwijl permissies gewijzigd worden, zal de verwerking gestopt worden.
+ </notification>
+ <notification label="Sta Letsel Toe" name="HelpRegionAllowDamage">
+ Indien dit is aan gevinkt stelt het Letsel systeem in voor alle percelen, ongeacht de individuele instellingen op de percelen. Indien uitgeschakeld, kunnen perceel eigenaren het Letsel systeem op hun perceel activeren.
+
+Standaard: uitgeschakeld
+ </notification>
+ <notification label="Agent Limiet" name="HelpRegionAgentLimit">
+ Stelt het maximale aantal toegestane avatars in voor deze regio.
+De prestaties kunnen variëren afhankelijk van het aantal aanwezige avatars.
+
+Standaard: 40
+ </notification>
+ <notification label="Object Bonus" name="HelpRegionObjectBonus">
+ De Object Bonus is een vermeerderaar voor primitieven op een willekeurig perceel.
+Het bereik is van 1 tot 10. Ingesteld op &apos;1&apos; kan elk 512m² perceel 117 objecten bevatten. Ingesteld op &apos;2&apos; kan elk 512m² perceel 234 objecten bevatten, enzovoort. Het maximale aantal objecten blijft 15.000, ongeacht wat de Object Bonus is. Denk er aan, dat eenmaal ingesteld, het verlagen van de Object Bonus het retourneren of verwijderen van objecten tot gevolg kan hebben.
+
+Standaard: 1.0
+ </notification>
+ <notification label="Inhoudscategorie:" name="HelpRegionMaturity">
+ Stelt de inhoudscategorie van de regio in, zoals getoond in de menubalk bovenaan de viewer van elke inwoner en in tooltips op de wereldkaart wanneer de aanwijzer boven deze regio zweeft. Deze instelling heeft ook invloed op de toegang tot deze regio en zoekresultaten. Andere inwoners kunnen alleen regio&apos;s binnengaan of zoekresultaten zien met dezelfde inhoudscategorie als die zij zelf hebben gekozen in hun voorkeuren.
+
+Het kan enige tijd duren voordat deze wijziging zichtbaar is op de wereldkaart.
+ </notification>
+ <notification label="Beperk Duwen" name="HelpRegionRestrictPushObject">
+ Deze instelling stelt de hele regio in op beperkte duwen permissies.
+Indien aan gevinkt kunnen Inwoners alleen door hun zelf geduwd worden of door de perceel eigenaar.
+
+(Push (Duwen) verwijst naar de llPushObject() LSL functie)
+
+Standaard: Uitgeschakeld
+ </notification>
+ <notification label="Perceel Samenvoegen/Opsplitsen" name="HelpParcelChanges">
+ Deze instelling stel in of percelen die niet van de estate eigenaar zijn kunnen worden samengevoegd of opgesplitst.
+
+Indien niet aan gevinkt:
+ * Alleen Estate eigenaren of beheerders kunnen percelen samenvoegen op opsplitsen.
+ * Zij kunnen alleen percelen samenvoegen of opsplitsen die eigendom zijn van de eigenaar of van een groep met de juiste bevoegdheden.
+
+Indien aan gevinkt:
+ * Alle perceel eigenaren kunnen percelen samenvoegen of opsplitsen die zij bezitten.
+ * Voor percelen in Groep eigendom, kunnen alleen zij met de juiste rechten percelen samenvoegen of opsplitsen.
+
+Standaard: Ingeschakeld
+ </notification>
+ <notification label="Niet in Zoeken tonen" name="HelpRegionSearch">
+ Deze optie aan vinken zal perceel eigenaren blokkeren hun perceel in Zoeken te tonen.
+
+Standaard: Uitgeschakeld
+ </notification>
+ <notification label="Regio Volwassenen Gewijzigd" name="RegionMaturityChange">
+ De Volwassen instelling voor deze regio is bijgewerkt.
+Het kan enige tijd duren voordat de wijziging zichtbaar is op de Kaart.
+ </notification>
+ <notification label="Land Herverkoop" name="HelpRegionLandResell">
+ Estate eigenaren en beheerders kunnen elk stuk land verkopen in eigendom van de Estate eigenaar.
+
+Indien deze optie niet is aan gevinkt, kunnen kopers hun land in deze regio niet verkopen.
+Indien deze optie is aan gevinkt, kunnen kopers hun land in deze regio verkopen.
+
+Standaard: Niet toestaan
+ </notification>
+ <notification label="Scripts Uitschakelen" name="HelpRegionDisableScripts">
+ Indien de sim prestaties slecht zijn, kan een script de oorzaak zijn. Open de Statistieken balk (Ctrl-Shift-1). Kijk naar de Simulator Fysieke FPS. Indien het lager is dan 45, open dan het Tijd paneel onderaan de Statistieken balk. Indien de Script Tijd 25 ms of hoger is, klik dan op de Top Scripts knop. U krijgt dan een naam en lokatie van scripts die mogelijk de slechte prestaties veroorzaken.
+
+Het aan vinken van Scripts Uitschakelen en vervolgens op de Toepassen knop drukken, zal tijdelijk alle scripts in deze regio uitschakelen. U zult dit mogelijk moeten doen om naar de lokatie te gaan van het &apos;top script&apos;. Eenmaal aangekomen, onderzoek dan of het script het probleem veroorzaakt. U zult mogelijk de eigenaar willen contacteren of het object willen retourneren c.q. verwijderen.
+Verwijder het vinkje van Scripts Uitschakelen en klik op Toepassen om scripts weer te reactiveren in de regio.
+
+Standaard: Uitgeschakeld
+ </notification>
+ <notification label="Botsingen Uitschakelen" name="HelpRegionDisableCollisions">
+ Indien de sim prestaties slecht zijn, kunnen fysieke objecten de oorzaak zijn. Open de Statistieken balk (Ctrl-Shift-1). Kijk naar de Simulator Fysieke FPS. Indien het lager is dan 45, open dan het Tijd paneel onderaan de Statistieken balk. Indien de Sim Tijd (Fysiek) 20 ms of hoger is, klik dan op de Toon Top Botsingen knop. U krijgt dan een naam en lokatie van de fysieke objecten die mogelijk de slecht prestaties veroorzaken.
+
+Het aan vinken van de Botsingen Uitschakelen knop en vervolgens op de Toepassen knop drukken, zal tijdelijk object-object botsingen uitschakelen. U zult dit mogelijk moeten doen om naar de lokatie te gaan van de &apos;top botsingen&apos;. Eenmaal aangekomen, onderzoek dan het object. Botst het constant met andere objecten? U zult mogelijk de eigenaar willen contacteren of het object willen retourneren c.q. verwijderen.
+Verwijder het vinkje van Botsingen Uitschakelen en klik op Toepassen om botsingen weer te reactiveren in de regio.
+
+Standaard: Uitgeschakeld
+ </notification>
+ <notification label="Fysiek Uitschakelen" name="HelpRegionDisablePhysics">
+ Fysiek Uitschakelen is gelijkwaardig aan Botsingen Uitschakelen, alleen alle fysieke simulatie is uitgeschakeld. Dit betekend dat niet alleen alle objecten zullen stoppen met botsen, maar ook dat avatars zich niet meer kunnen bewegen.
+
+Dit zou alleen gebruikt moeten worden als het uitschakelen van Botsingen niet genoeg prestatie winst geeft om een fysiek probleem of top botsingen te onderzoeken.
+
+Indien u klaar bent, wees er dan zeker van Fysiek weer in te schakelen, anders kunnen avatars zich niet meer bewegen.
+
+Standaard: Uitgeschakeld
+ </notification>
+ <notification label="Top Botsingen" name="HelpRegionTopColliders">
+ Toon een lijst van objecten van het grootste aantal potentiële object-object botsingen.
+Deze objecten kunnen een trage prestatie veroorzaken. Selecteer Beeld &gt; Statistieken Balk en kijk onder Simulator &gt; Tijd &gt; Sim Tijd (Fysiek) om te zien of meer dan 20 ms wordt gespendeerd aan fysiek.
+ </notification>
+ <notification label="Top Scripts" name="HelpRegionTopScripts">
+ Toon een lijst van objecten die de meeste tijd besteden aan het uitvoeren van LSL scripts.
+Deze objecten kunnen een trage prestatie veroorzaken. Selecteer Beeld &gt; Statistieken Balk en kijk onder Simulator &gt; Tijd &gt; Script Tijd om te zien of meer dan 25 ms wordt gespendeerd aan scripts.
+ </notification>
+ <notification label="Herstart Regio" name="HelpRegionRestart">
+ Herstart het server proces van de regio na een twee minuten waarschuwing.
+Alle Inwoners van de regio zullen de verbinding kwijt raken. De regio zal alle gegevens bewaren en zou binnen 90 seconden weer operabel moeten zijn.
+
+De regio herstarten zou de meeste prestatie problemen moeten verhelpen en zou normaal gesproken alleen gebruikt moeten worden indien aangegeven.
+ </notification>
+ <notification label="Water Hoogte" name="HelpRegionWaterHeight">
+ Dit is de hoogte in meters waarop het water verschijnt.
+Als deze instelling anders is dan 20 en u heeft water aan de rand van de wereld of u heeft &apos;ontbrekend&apos; water, zal er een gat zichtbaar zijn.
+
+Standaard: 20
+ </notification>
+ <notification label="Terrein Ophogen" name="HelpRegionTerrainRaise">
+ Dit is de hoogte in meters dat perceel eigenaren hun terrein kunnen verhogen boven de standaard &apos;baked&apos; terrein hoogte.
+
+Standaard: 4
+ </notification>
+ <notification label="Terrein Verlagen" name="HelpRegionTerrainLower">
+ Dit is de hoogte in meters dat perceel eigenaren hun terrein kunnen verlagen onder de standaard &apos;baked&apos; terrein hoogte.
+
+Standaard: -4
+ </notification>
+ <notification label="Upload RAW Terrein" name="HelpRegionUploadRaw">
+ Deze knop upload een .RAW bestand naar de regio waar u zich bevindt.
+Het bestand moet de juiste afmetingen hebben (RGB, 256x256) en 13 kanalen.
+De beste manier om een terrein bestand te maken is het downloaden van een bestaand RAW bestand. Een goede eerste stap is om het rode kanaal (land hoogte) aan te passen en dat te uploaden.
+
+De upload kan tot 45 seconden in beslag nemen. Bedenk dat het uploaden van een terrein bestand de objecten reeds aanwezig op het land *niet* zal verplaatsen, alleen het terrein zelf en de permissies geassocieerd met de percelen. Dit kan resulteren in objecten die ondergronds gaan.
+
+Voor meer informatie over het wijzigen van de hoogte velden, raadpleeg F1 Help.
+ </notification>
+ <notification label="Download RAW Terrein" name="HelpRegionDownloadRaw">
+ Deze knop download een bestand welke de hoogte veld gegevens, perceel afmetingen, perceel te koop status en sommige perceel permissies bevat voor deze regio.
+Indien u het bestand opent in een programma als Photoshop, moet u de document afmetingen opgeven, welk RGB, 256x256 met 13 kanalen is. Dit terrein bestand kan op geen enkele andere manier worden geopend.
+
+Voor meer informatie over het wijzigen van de hoogte velden, raadpleeg F1 Help.
+ </notification>
+ <notification label="Gebruik Estate Zon" name="HelpRegionUseEstateSun">
+ Dit aan vinken zorgt er voor dat de zon positie overeen komt met de zon positie in de rest van het Estate.
+
+Standaard: Ingeschakeld
+ </notification>
+ <notification label="Vaste Zon" name="HelpRegionFixedSun">
+ Dit aan vinken stelt de zon in op de positie van de Fase schuif knop en stopt het verder bewegen van de zon.
+
+Standaard: Uitgeschakeld
+ </notification>
+ <notification label="Bake Terrein" name="HelpRegionBakeTerrain">
+ Deze knop slaat de huidige vorm van het terrein op als nieuwe standaard voor de regio. Eenmaal baked, kan het land terugkeren naar de opgeslagen vorm wanneer u of anderen gebruik maken van de Wijzig Terrein &apos;Terugkeer&apos; optie. Het baked terrein is ook het uitgangspunt voor de terrein verhogings- en verlagingslimieten.
+ </notification>
+ <notification label="Estate Beheerders" name="HelpEstateEstateManager">
+ Een Estate Beheerder is een Inwoner aan wie u de controle over de regio en estate instellingen heeft uitbesteed. De Estate Beheerder kan de instellingen wijzigen in deze panels, behalve het uploaden, downloaden en terrein bakken. In bijzonder kunnen zij Inwoners toestaan of verbannen van het Estate.
+
+Estate Beheerders kunnen alleen toegevoegd of verwijderd worden door de eigenaar van het Estate, niet door elkaar. Gebruik alstublieft alleen Inwoners die u kunt vertrouwen als Estate Beheerders, omdat uiteindelijk u verantwoordelijk bent voor hun acties.
+ </notification>
+ <notification label="Gebruik Globale Tijd" name="HelpEstateUseGlobalTime">
+ Dit aan vinken zorgt ervoor dat de zon in uw estate dezelfde positie volgt als in Linden-eigendom &apos;mainland&apos; Estates.
+
+Standaard: aan
+ </notification>
+ <notification label="Vaste Zon" name="HelpEstateFixedSun">
+ Dit aan vinken stelt de zon in op de positie van de Fase schuif knop en stopt het verder bewegen van de zon.
+ </notification>
+ <notification label="Publieke Toegang" name="HelpEstateExternallyVisible">
+ Dit aan vinken geeft aan dat Inwoners die in andere Estates zijn, deze Estate kunnen bezoeken zonder op de Toegangs lijst te staan.
+
+Standaard: Ingeschakeld
+ </notification>
+ <notification label="Direct Teleporteren Toestaan" name="HelpEstateAllowDirectTeleport">
+ Indien aan gevinkt staat het Inwoners toe om direct te Teleporteren naar elke plek in uw Estate. Indien niet aan gevinkt kunnen Inwoners Teleporteren naar de dichtstbijzijnde telehub.
+
+Standaard: Uitgeschakeld
+ </notification>
+ <notification label="Toegang Toestaan" name="HelpEstateAllowResident">
+ Toegang tot dit Estate zal gelimiteerd zijn tot Inwoners in deze lijst en onderstaande groepen. Deze instelling is allen beschikbaar indien Publieke Toegang niet is aan gevinkt.
+ </notification>
+ <notification label="Groeps Toegang Toestaan" name="HelpEstateAllowGroup">
+ Toegang tot dit Estate zal gelimiteerd worden tot groepen in deze lijst en elke Inwoner bovenaan. Deze Instelling is alleen beschikbaar als Publieke Toegang niet is aan gevinkt.
+ </notification>
+ <notification label="Misbruik Email Adres" name="HelpEstateAbuseEmailAddress">
+ Dit instellen met een geldig email adres zal misbruik rapporten op dit Estate doen versturen naar dat adres.
+Indien u het leeg laat, zullen misbruik rapporten alleen verzonden worden naar Linden Lab.
+ </notification>
+ <notification label="Toegang Weigeren" name="HelpEstateBanResident">
+ Inwoners in deze lijst zijn de toegang geweigerd in uw Estate, ongeacht elke andere instelling.
+ </notification>
+ <notification label="Voice Chat Toestaan" name="HelpEstateVoiceChat">
+ Percelen in dit Estate kunnen hun eigen Voice kanalen hebben waarin Inwoners die in de buurt van elkaar zijn, elkaar kunnen horen en met elkaar kunnen praten.
+
+Standaard: Uitgeschakeld
+ </notification>
+ <notification label="Voice Versie Ongelijkheid" name="VoiceVersionMismatch">
+ Deze versie van Second Life is niet compatibel met de Voice spraak optie in deze regio. Om Voice Chat goed te laten functioneren, moet u Second Life bijwerken.
+ </notification>
+ <notification label="Estate Convenant" name="HelpEstateCovenant">
+ Het instellen van een Estate Convenant maakt het u mogelijk om percelen in het Estate te verkopen. Indien de Convenant niet is ingesteld kunt u het niet verkopen. Een notitiekaart voor uw Convenant kan leeg zijn indien u geen regels wilt instellen, advies aan kopers wilt geven of iets anders in relatie tot het land wilt mededelen voor als men het koopt.
+
+Een Convenant kan gebruikt worden als u regels wilt mededelen, richtlijnen, culturele informatie of simpelweg uw eigen verwachtingen aan prospect kopers.
+Dit kan zoneren bevatten, bouw reglementen, betaal opties of elke andere vorm van informatie waarvan u het belangrijk vind dat de nieuwe eigenaar het heeft gezien en mee akkoord is gegaan alvorens het te kopen.
+
+De koper moet instemmen met de Convenant middels het aan vinken van het kadertje alvorens zij de aankoop af kunnen ronden. Estate Overeenkomsten zijn altijd zichtbaar in het Over Land dialoog venster voor elk perceel dat er eentje ingesteld heeft staan.
+ </notification>
+ <notification label="Kan Geen Objecten Kopen" name="BuyObjectOneOwner">
+ Kan geen objecten van verschillende eigenaren tegelijk kopen.
+
+Kies alstublieft slechts één object en probeer het opnieuw.
+ </notification>
+ <notification label="Kan Inhoud Niet Kopen" name="BuyContentsOneOnly">
+ Kan geen inhoud kopen van meer dan één object tegelijk.
+
+Kies alstublieft slechts één object en probeer het opnieuw.
+ </notification>
+ <notification label="Kan Inhoud Niet Kopen" name="BuyContentsOneOwner">
+ Kan geen inhoud kopen van verschillende eigenaren tegelijk.
+
+Kies alstublieft slechts één object en probeer het opnieuw.
+ </notification>
+ <notification name="BuyOriginal">
+ Koop originele object van [OWNER] voor L$[PRICE]?
+U zult de eigenaar worden van dit object.
+U kunt het dan:
+ Wijzigen: [MODIFYPERM]
+ Kopiëren: [COPYPERM]
+ Verkopen of Weggeven: [RESELLPERM]
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="BuyOriginalNoOwner">
+ Koop originele object voor L$[PRICE]?
+U zult de eigenaar worden van dit object.
+U kunt het dan:
+ Wijzigen: [MODIFYPERM]
+ Kopiëren: [COPYPERM]
+ Verkopen of Weggeven: [RESELLPERM]
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="BuyCopy">
+ Koop een kopie van [OWNER] voor L$[PRICE]?
+Het object zal gekopieerd worden naar uw inventaris.
+U kunt het dan:
+ Wijzigen: [MODIFYPERM]
+ Kopiëren: [COPYPERM]
+ Verkopen of Weggeven: [RESELLPERM]
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="BuyCopyNoOwner">
+ Koop een kopie voor L$[PRICE]?
+Het object zal gekopieerd worden naar uw inventaris.
+U kunt het dan:
+ Wijzigen: [MODIFYPERM]
+ Kopiëren: [COPYPERM]
+ Verkopen of Weggeven: [RESELLPERM]
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="BuyContents">
+ Koop de inhoud van [OWNER] voor L$[PRICE]?
+De inhoud zal naar uw inventaris gekopieerd worden.
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="BuyContentsNoOwner">
+ Koop de inhoud voor L$[PRICE]?
+De inhoud zal naar uw inventaris gekopieerd worden.
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmPurchase">
+ Deze transactie zal:
+[ACTION]
+
+Weet u zeker dat u verder wilt gaan met deze aankoop?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmPurchasePassword" type="password">
+ Deze transactie zal:
+[ACTION]
+
+Weet u zeker dat u verder wilt gaan met deze aankoop?
+Voer alstublieft opnieuw uw wachtwoord in en klik op OK.
+ <form name="form">
+ <input name="message" type="password"/>
+ <button name="ConfirmPurchase" text="OK"/>
+ <button name="Cancel" text="Annuleren"/>
+ </form>
+ </notification>
+ <notification name="SetPickLocation">
+ Opmerking:
+
+U heeft de locatie van deze Favoriet bijgewerkt, maar andere details blijven ongewijzigd.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="MoveInventoryFromObject">
+ U heeft &apos;niet kopieerbare&apos; items geselecteerd.
+Deze items zullen worden verplaatst naar uw inventaris, niet gekopieerd.
+
+Verplaats de inventaris item(s)?
+ <usetemplate ignoretext="Wanneer niet kopieerbare inventaris uit objecten verplaatst wordt" name="okcancelignore" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="MoveInventoryFromScriptedObject">
+ U heeft &apos;niet kopieerbare&apos; inventaris items geselecteerd.
+Deze items zullen verplaatst worden naar uw inventaris, niet gekopieerd.
+Omdat deze objecten scripts bevatten, kan het verplaatsen naar uw inventaris er voor zorgen dat het object niet meer werkt.
+inventaris item(s) verplaatsen?
+ <usetemplate ignoretext="Indien verplaatsen &apos;niet kopieerbare&apos; inventaris van gescripte objecten" name="okcancelignore" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="ClickActionNotPayable">
+ Waarschuwing: Het Betaal Object aan klik actie is ingesteld, maar het zal alleen werken als er een script is toegevoegd met een money() event.
+ <form name="form">
+ <ignore name="ignore" text="Indien instellen &apos;Betaal&apos; op objecten zonder money() events"/>
+ </form>
+ </notification>
+ <notification name="OpenObjectCannotCopy">
+ Er zitten geen items in dit object die u kunt kopiëren.
+ </notification>
+ <notification name="WebLaunchAccountHistory">
+ Naar de Second Life web site gaan om uw account geschiedenis te bekijken?
+ <usetemplate ignoretext="Bij laden van de account geschiedenis webpagina" name="okcancelignore" notext="Annuleren" yestext="Ga naar pagina"/>
+ </notification>
+ <notification name="ClickOpenF1Help">
+ De Second Life Support Web site bezoeken?
+ <usetemplate ignoretext="Bij bezoeken van de Second Life Support Website." name="okcancelignore" notext="Annuleren" yestext="Ga"/>
+ </notification>
+ <notification name="ConfirmQuit">
+ Weet u zeker dat u wilt afsluiten?
+ <usetemplate ignoretext="Bij afsluiten Second Life." name="okcancelignore" notext="Doorgaan" yestext="Afsluiten"/>
+ </notification>
+ <notification name="HelpReportAbuseEmailLL">
+ Gebruik dit gereedschap om overtredingen van de Voorwaarden voor Service (Terms of Service) en Gemeenschaps Standaarden (Community Standards)te rapporteren. Zie:
+
+http://secondlife.com/corporate/tos.php
+http://secondlife.com/corporate/cs.php
+
+Alle gerapporteerde misbruiken van de Voorwaarden voor Service en Gemeenschaps Standaarden zullen worden onderzocht en opgelost. U kunt de incident oplossing in de Incidenten Rapportage zien op:
+
+http://secondlife.com/support/incidentreport.php
+ </notification>
+ <notification name="HelpReportAbuseEmailEO">
+ BELANGRIJK: Dit rapport zal naar de eigenaar van deze regio gaan en niet naar Linden Lab!
+
+Als een service aan Inwoners en bezoekers heeft de eigenaar van deze regio er voor gekozen om rapporten vanuit deze regio zelf te ontvangen en af te handelen. Linden Lab zal geen onderzoek doen naar rapporten die u indient vanaf deze locatie.
+
+De regio eigenaar zal de rapporten afhandelen op basis van de regels geldend voor deze regio zoals weergegeven in het Estate Convenant (Bekijk Convenants door naar Wereld te gaan in het menu en te kiezen voor Over Land).
+
+De afhandeling van dit rapport is alleen van toepassing op deze regio.
+Toegang van Inwoners tot andere gebieden van Second Life zullen niet beïnvloed worden door de uitkomst van dit rapport. Alleen Linden Lab kan de toegang tot geheel Second Life beperken.
+ </notification>
+ <notification name="HelpReportBug">
+ Gebruik dit gereedschap *alleen* voor het rapporteren van technische opties die niet functioneren als verwacht. Geef alstublieft zoveel mogelijk technische details als mogelijk. U kunt de automatische-antwoord email gebruiken om op te reageren om aanvullende gegevens toe te voegen aan uw rapport.
+
+Alle bug rapporten worden onderzocht en ingeschat. Er zal geen antwoord per email worden verzonden.
+
+Als u technische problemen heeft, neem dan contact op met Support op:
+http://secondlife.com/community/support.php
+
+Opmerking: Onvolledige rapporten zullen niet worden onderzocht.
+ </notification>
+ <notification name="HelpReportAbuseSelectCategory">
+ Selecteer alstublieft een categorie voor dit misbruik rapport.
+
+Het selecteren van een categorie helpt ons met het archiveren en verwerken van misbruik rapporten.
+ </notification>
+ <notification name="HelpReportBugSelectCategory">
+ Selecteer alstublieft een categorie voor dit bug rapport.
+
+Het selecteren van een categorie helpt ons met het archiveren en verwerken van bug rapporten.
+ </notification>
+ <notification name="HelpReportAbuseAbuserNameEmpty">
+ Geef alstublieft een naam op van de misbruiker.
+
+Een accurate waarde opgeven helpt ons met het archiveren en verwerken van misbruik rapporten.
+ </notification>
+ <notification name="HelpReportAbuseAbuserLocationEmpty">
+ Geef alstublieft een locatie op waar het misbruik plaats vond.
+
+Een accurate waarde opgeven helpt ons met het archiveren en verwerken van misbruik rapporten.
+ </notification>
+ <notification name="HelpReportAbuseSummaryEmpty">
+ Geef alstublieft een korte samenvatting op van het misbruik dat plaats vond.
+
+Een accurate waarde opgeven helpt ons met het archiveren en verwerken van misbruik rapporten.
+ </notification>
+ <notification name="HelpReportBugSummaryEmpty">
+ Geef alstublieft een korte samenvatting van de bug.
+
+Een accurate samenvatting opgeven helpt ons met het archiveren en verwerken van bug rapporten.
+ </notification>
+ <notification name="HelpReportAbuseDetailsEmpty">
+ Geef alstublieft een gedetailleerde omschrijving van het misbruik dat plaats vond.
+
+Wees zo specifiek als mogelijk, inclusief namen en details van het incident waarover u rapporteert.
+
+Het opgeven van een accurate omschrijving helpt ons met het archiveren en verwerken van misbruik rapporten.
+ </notification>
+ <notification name="HelpReportBugDetailsEmpty">
+ Geef alstublieft een gedetailleerde omschrijving van de bug.
+
+Wees zo specifiek als mogelijk, inclusief stappen om de bug te reproduceren, indien mogelijk.
+
+Het opgeven van een accurate omschrijving helpt ons met het archiveren en verwerken van misbruik rapporten.
+ </notification>
+ <notification name="HelpReportAbuseContainsCopyright">
+ Beste Inwoner,
+
+Het lijkt er op dat u intellectueel eigendoms misbruik rapporteert. Wees er alstublieft van overtuigd dat u dit correct rapporteert:
+
+(1) Het Misbruik Proces. U kunt een misbruik rapport indienen als u er van overtuigd bent dat een Inwoner het Second Life permissie systeem uitbuit, bijvoorbeeld door gebruik van CopyBot of soortgelijke gereedschappen, daarmee de intellectuele eigendoms rechten overtredend. Het Abuse Team onderzoekt en zal passende maatregelen uitvaardigen tegen gedrag dat de Second Life Gemeenschaps Standaarden overtreedt. Echter, het Abuse Team zal geen actie ondernemen en niet reageren op verzoeken om inhoud te verwijderen uit de Second Life wereld.
+
+(2) Het DMCA of Inhoud Verwijder Proces. Voor een verzoek tot verwijdering van inhoud in Second Life, MOET u een geldige berichtgeving van misbruik indienen zoals voorzien in onze DMCA beleid op http://secondlife.com/corporate/dmca.php.
+
+Indien u nog steeds door wilt gaan met het misbruik proces, sluit dan alstublieft dit venster en maak het indienen van uw rapport af. U zult mogelijk een specifieke catagorie moeten kiezen &apos;CopyBot of Permissie Uitbuiting&apos;.
+
+Dank U,
+Linden Lab
+ </notification>
+ <notification name="FailedRequirementsCheck">
+ De volgende vereiste componenten ontbreken van [FLOATER]:
+[COMPONENTS]
+ </notification>
+ <notification label="Vervang Bestaande Bevestiging" name="ReplaceAttachment">
+ Er is al een object bevestigd op dit punt aan uw lichaam.
+Wilt u dit vervangen met het geselecteerde object?
+ <form name="form">
+ <ignore name="ignore" save_option="true" text="Bij vervangen van bestaande bevestigingen"/>
+ <button name="Yes" text="OK"/>
+ <button name="No" text="Annuleren"/>
+ </form>
+ </notification>
+ <notification label="Niet Storen Modus Waarschuwing" name="BusyModePay">
+ U bevind zich in Niet Storen Modus, hetgeen inhoudt dat u geen enkele items kunt ontvangen voor deze betaling.
+
+Wilt u de Niet Storen Modus verlaten voordat u deze transactie completeert?
+ <form name="form">
+ <ignore name="ignore" save_option="true" text="Bij betalen van een persoon of object in Niet Storen modus"/>
+ <button name="Yes" text="OK"/>
+ <button name="No" text="Annuleren"/>
+ </form>
+ </notification>
+ <notification name="ConfirmEmptyTrash">
+ Weet u zeker dat u de inhoud van uw vuilnisbak map permanent wilt verwijderen?
+ <usetemplate ignoretext="Bij verwijderen van de inhoud uit de inventaris vuilnisbak map" name="okcancelignore" notext="Annuleren" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmClearBrowserCache">
+ Weet u zeker dat u uw browser cache wilt legen?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="Ja"/>
+ </notification>
+ <notification name="ConfirmClearCookies">
+ Weet u zeker dat u al uw cookies wilt verwijderen?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="Ja"/>
+ </notification>
+ <notification name="ConfirmClearMediaUrlList">
+ Weet u zeker dat u uw lijst met al de opgeslagen URL&apos;s wilt verwijderen?
+ <usetemplate name="okcancelbuttons" notext="Annuleren" yestext="Ja"/>
+ </notification>
+ <notification name="ConfirmEmptyLostAndFound">
+ Weet u zeker dat u de inhoud van de Verloren en Gevonden map permanent wilt verwijderen?
+ <usetemplate ignoretext="Bij legen van uw inventaris Verloren en Gevonden map" name="okcancelignore" notext="Nee" yestext="Ja"/>
+ </notification>
+ <notification name="CopySLURL">
+ De volgende SLURL is gekopieerd naar uw klem bord:
+[SLURL]
+
+Plaats het in een web pagina om anderen eenvoudig toegang te verschaffen naar de locatie of test het zelf door het te plakken in de adres balk van uw web browser.
+ <form name="form">
+ <ignore name="ignore" text="Bij kopiëren van een SLURL naar het klem bord"/>
+ </form>
+ </notification>
+ <notification name="GraphicsPreferencesHelp">
+ Dit venster bepaald de venster afmetingen, resolutie en kwaliteit van de client&apos;s grafische weergave. De Voorkeuren &gt; Grafische interface laat u kiezen uit vier grafische niveaus: Laag, Middel, Hoog en Ultra. U kunt ook uw grafische instellingen aanpassen met het aan vinken van het Custom vakje en de volgende instellingen manipuleren:
+
+Shaders: In of uitschakelen van de verschillende typen pixel shaders.
+
+Reflectie Detail: Stelt het type objecten in hetgeen water kan reflecteren.
+
+Avatar Weergave: Stelt de opties in die van invloed zijn op hoe de client een avatar zal renderen.
+
+Zicht bereik: Beïnvloed tot hoe ver objecten vanaf uw zichtpunt worden weergegeven in de scène.
+
+Maximaal Aantal Particles: Stelt het maximaal aantal particles in die u tegelijk kunt zien op uw scherm.
+
+Nabewerking Kwaliteit: Stelt de resolutie in waarmee Gloei wordt weergegeven.
+
+Maas Detail: Stelt de hoeveelheid detail of het aantal driehoeken in gebruikt voor de weergave van bepaalde objecten. Een hogere waarde zal langer nemen om weer te gegeven, maar zorgen voor objecten met meer detail.
+
+Licht Detail: Bepaald welke typen lichten u wenst weer te geven.
+
+Terrein Detail: Stelt de hoeveelheid detail in die u wilt zien voor het terrein textuur.
+ </notification>
+ <notification name="WLSavePresetAlert">
+ Wilt u de opgeslagen voor instellingen overschrijven?
+ <usetemplate name="okcancelbuttons" notext="Nee" yestext="Ja"/>
+ </notification>
+ <notification name="WLDeletePresetAlert">
+ Wilt u [SKY] verwijderen?
+ <usetemplate name="okcancelbuttons" notext="Nee" yestext="Ja"/>
+ </notification>
+ <notification name="WLNoEditDefault">
+ U kunt de standaard instellingen niet wijzigen of verwijderen.
+ </notification>
+ <notification name="WLMissingSky">
+ Dit dag cyclus bestand heeft een ontbrekend lucht bestand: [SKY].
+ </notification>
+ <notification name="PPSaveEffectAlert">
+ Voorbewerkingeffecten bestaan. Wilt u ze alsnog overschrijven?
+ <usetemplate name="okcancelbuttons" notext="Nee" yestext="Ja"/>
+ </notification>
+ <notification name="HelpEditSky">
+ Wijzig de WindLight schuif knoppen en maak en sla een set van luchten op.
+ </notification>
+ <notification name="HelpEditDayCycle">
+ Bepaald de luchten te gebruiken gedurende de dag.
+ </notification>
+ <notification name="EnvSettingsHelpButton">
+ Deze instelling bepalen hoe de omgeving er uit ziet op uw computer. Uw grafische kaart zal grafische shaders moeten ondersteunen om toegang te krijgen tot alle instellingen.
+
+Wijzig de &quot;Tijd van de Dag&quot; schuif knop om de fase van de dag lokaal in de viewer aan te passen.
+
+Wijzig de &quot;Wolken Dichtheid&quot; schuif knop om de hoeveelheid wolken die de lucht bedekken in te stellen.
+
+Kies een kleur in de &quot;Water Kleur&quot; kleuren kiezer om de kleur van het water aan te passen.
+
+Wijzig de &quot;Water Mist&quot; schuif knop om de dichtheid van de mist onder water in te stellen.
+
+Klik op &quot;Gebruik Estate Tijd&quot; om de tijd van de dag te herstellen naar de huidige tijd en die te volgen.
+
+Klik op &quot;Geavanceerde Lucht&quot; om de editor op te roepen voor geavanceerde instellingen voor de lucht.
+
+Klik op &quot;Geavanceerd Water&quot; om de editor op te roepen voor geavanceerde instellingen voor water.
+ </notification>
+ <notification name="HelpDayCycle">
+ De Dag Cyclus Editor geeft u controle over de lucht gedurende de Second Life&apos;s dag/nacht cyclus. Dit is de cyclus die gebruikt wordt in de Basis Omgeving Editor&apos;s Tijd van de Dag schuif knop.
+
+De Dag Cyclus Editor werkt beter met het instellen van gemarkeerde frames. Dit zijn nodes (weergegeven als grijze blips in de tijd weergave) die Hemel voorinstelling met zich geassocieerd hebben. Als de Tijd van de Dag voortschrijdt, &quot;animeert&quot; de WindLight Hemel als het interpoleert tussen de gemarkeerde frames.
+
+De gele pijlen boven de tijdlijn representeert uw huidige zicht, gebaseerd op de Tijd van de Dag. Klik en sleep deze om te zien hoe uw dag zal animeren. U kunt gemarkeerde frames toe voegen of verwijderen middels het indrukken van de Frame Toevoegen of Frame Verwijderen knoppen, rechts van de tijdlijn.
+
+U kunt de tijds positie van een gemarkeerd frame instellen door het te slepen over de tijdlijn of middels het handmatig invullen van de Gemarkeerde Frame Instellingen. Binnen de Gemarkeerde Frame Instellingen krijgt u de mogelijkheid het gemarkeerde frame te associëren met de respectievelijke WindLight voorinstelling.
+
+De lengte van de Cyclus bepaald de totale tijdsduur van een &quot;dag&quot;. Stelt u dit in op een lage waarde (bijv. twee minuten) betekend dat uw volledig 24 uurs tijdlijn zal animeren in slechts twee minuten! Als u tevreden bent met uw tijdlijn en gemarkeerde frame cyclus, gebruik dan de Start en Stop knoppen om het resultaat voor te beschouwen. Onthoud dat u ook de gele tijd indicator pijl boven de tijdlijn kunt bewegen om de animatie cyclus interactief te bekijken. Het gebruik van de Estate Tijd knop zal de lengte en tijd van uw dag synchroniseren met de Estate&apos;s dag cyclus.
+
+Als u tevreden bent met uw Dag Cyclus, kunt het opslaan en laden met de Test Dag Opslaan en Laad Test Dag knoppen. Merk op, dat wij momenteel slechts één Dag Cyclus toestaan.
+ </notification>
+ <notification name="HelpBlueHorizon">
+ Gebruik de Rood/Groen/Blauw schuif knoppen om de kleur van de hemel aan te passen. U kunt de Intensiteit (I) schuif knop gebruiken om alle drie de schuif knoppen tegelijk te bewegen.
+ </notification>
+ <notification name="HelpHazeHorizon">
+ Nevel Horizon is één van de meest handige parameters voor de algehele belichting in de scène. Het is effectief om de vele belichting instellingen te simuleren, zoals wit-vlakken van de zon en donkere gesloten iris instellingen.
+ </notification>
+ <notification name="HelpBlueDensity">
+ Blauw Dichtheid beïnvloed de algehele kleur verzadiging van de hemel en mist. Indien u de Intensiteit (I) schuif knop naar rechts schuift, zullen de kleuren lichter en sprekender worden. Indien u het geheel naar links schuift, worden de kleuren doffer, uiteindelijk vervagend naar zwart en wit. Als u de hemel kleur nauwkeurig wilt uitbalanceren, kunt u de individuele elementen van verzadiging instellen door gebruik van de Rood/Groen/Blauw (RGB) schuif knoppen.
+ </notification>
+ <notification name="HelpHazeDensity">
+ Nevel Dichtheid bepaald de hoeveelheid dofheid, grijze nevel in de atmosfeer. Het is effectief om scènes met veel rook of zelf gemaakte vervuiling te simuleren. Het is ook effectief voor het simuleren van nevel en mist.
+ </notification>
+ <notification name="HelpDensityMult">
+ De Dichtheid Vermeerderaar kan gebruikt worden om de algehele dichtheid van de atmosfeer te beïnvloeden.
+Bij lagere instelling creëert het een gevoel van &quot;dunne lucht&quot; en met hogere instellingen een dik zwaar smog effect.
+ </notification>
+ <notification name="HelpDistanceMult">
+ Stelt de WindLight&apos;s waargenomen afstand in. Een waarde van nul stopt de invloed van WindLight op terrein en objecten. Waarden groter dan 1 simuleren grotere afstanden voor dikkere atmosferische effecten.
+ </notification>
+ <notification name="HelpMaxAltitude">
+ Maximale Hoogte bepaald de hoogte calculaties die WindLight uitvoert bij het berekenen van de atmosferische belichting. Later op de dag is het handig om de &quot;diepte&quot; van de zonsondergang weergave in te stellen.
+ </notification>
+ <notification name="HelpSunlightColor">
+ Stelt de kleur en intensiteit in van direct licht in de scène.
+ </notification>
+ <notification name="HelpSunAmbient">
+ Stelt de kleur en intensiteit in van het omgevings atmosferische licht in de scène.
+ </notification>
+ <notification name="HelpSunGlow">
+ De Afmeting schuif knop stelt de afmeting van de zon in.
+De Focus schuif knop bepaald de wazigheid van de zon aan de hemel.
+ </notification>
+ <notification name="HelpSceneGamma">
+ Wijzigt de verdeling van licht op het scherm in licht of donker.
+ </notification>
+ <notification name="HelpStarBrightness">
+ Wijzigt de helderheid van sterren aan de hemel.
+ </notification>
+ <notification name="HelpTimeOfDay">
+ Bepaald de locatie van de zon aan de hemel.
+Gelijkwaardig aan elevatie.
+ </notification>
+ <notification name="HelpEastAngle">
+ Bepaald de locatie van de zon aan de hemel.
+Gelijkwaardig aan azimut.
+ </notification>
+ <notification name="HelpCloudColor">
+ Wijzigt de kleur van de wolken. Het is algemeen aanbevolen deze wit-achtig te houden, maar hé, heb plezier als u dit wilt.
+ </notification>
+ <notification name="HelpCloudDetail">
+ Bepaald het detail plaatje als laag bovenop het basis wolken plaatje. X en Y bepalen de positie. D (Dichtheid) bepaald hoe wollig of verspreid de wolken verschijnen.
+ </notification>
+ <notification name="HelpCloudDensity">
+ Geeft u de mogelijkheid de positie van wolken met de X en Y schuif knoppen in te stellen en hoe dicht ze zijn met de D schuif knop.
+ </notification>
+ <notification name="HelpCloudCoverage">
+ Bepaald hoeveel de wolken de hemel bedekken.
+ </notification>
+ <notification name="HelpCloudScale">
+ Bepaald de schaal van het wolken plaatje op de hemelboog.
+ </notification>
+ <notification name="HelpCloudScrollX">
+ Bepaald de snelheid van de wolken terwijl zij in X richting bewegen.
+ </notification>
+ <notification name="HelpCloudScrollY">
+ Bepaald de snelheid van de wolken terwijl zij in Y richting bewegen.
+ </notification>
+ <notification name="HelpClassicClouds">
+ Vink dit aan voor weergave van Second Life&apos;s oudere klassieke wolken als toevoeging op WindLight&apos;s wolken.
+ </notification>
+ <notification name="HelpWaterFogColor">
+ Kiest de kleur van de onder water nevel.
+ </notification>
+ <notification name="HelpWaterFogDensity">
+ Bepaald hoe dicht de water nevel is en hoe ver u kunt zien onder water.
+ </notification>
+ <notification name="HelpUnderWaterFogMod">
+ Past het effect aan van de Nevel Dichtheid Exponent om zo te bepalen hoe ver uw avatar onder water kan zien.
+ </notification>
+ <notification name="HelpWaterGlow">
+ Bepaald hoeveel het oppervlak van het water gloeit.
+ </notification>
+ <notification name="HelpWaterNormalScale">
+ Bepaald de schaling van de drie wavelets (golf patronen) die samen water vormen.
+ </notification>
+ <notification name="HelpWaterFresnelScale">
+ Bepaald hoeveel licht er wordt gereflecteerd onder verschillende hoeken.
+ </notification>
+ <notification name="HelpWaterFresnelOffset">
+ Bepaald de hoeveelheid licht intensiteit welke wordt gereflecteerd.
+ </notification>
+ <notification name="HelpWaterScaleAbove">
+ Bepaald hoeveel licht er wordt weerkaatst wanneer van bovenop het water oppervlak gezien.
+ </notification>
+ <notification name="HelpWaterScaleBelow">
+ Bepaald hoeveel licht er wordt weerkaatst wanneer van onder het water oppervlak gezien.
+ </notification>
+ <notification name="HelpWaterBlurMultiplier">
+ Bepaald hoe golven en reflectie worden ge mixed.
+ </notification>
+ <notification name="HelpWaterNormalMap">
+ Bepaald welke Normaal map gelaagd is over het water om de reflectie/weerkaatsing te bepalen.
+ </notification>
+ <notification name="HelpWaterWave1">
+ Bepaald waar en hoe snel de grote schaal versie van de Normaal map beweegt in X en Y richting.
+ </notification>
+ <notification name="HelpWaterWave2">
+ Bepaald waar en hoe snel de kleine schaal versie van de Normaal map beweegt in X en Y richting.
+ </notification>
+ <notification name="NewSkyPreset">
+ Geef een naam op voor de nieuwe lucht.
+ <form name="form">
+ <input name="message" type="text">
+ Nieuwe Voorinstelling
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annuleren"/>
+ </form>
+ </notification>
+ <notification name="ExistsSkyPresetAlert">
+ Voorinstelling bestaat al!
+ </notification>
+ <notification name="NewWaterPreset">
+ Geef een naam voor de nieuwe voorinstelling van water.
+ <form name="form">
+ <input name="message" type="text">
+ Nieuwe Voorinstelling
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annuleren"/>
+ </form>
+ </notification>
+ <notification name="ExistsWaterPresetAlert">
+ Voorinstelling bestaat al!
+ </notification>
+ <notification name="WaterNoEditDefault">
+ u kunt de standaard voorinstelling niet wijzigen of verwijderen.
+ </notification>
+ <notification name="ChatterBoxSessionStartError">
+ Kan geen nieuwe chat sessie starten met [RECIPIENT].
+[REASON]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="ChatterBoxSessionEventError">
+ [EVENT]
+[REASON]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="ForceCloseChatterBoxSession">
+ Uw chat sessie met [NAME] zal moeten worden gesloten.
+[REASON]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="Cannot_Purchase_an_Attachment">
+ Items kunnen niet worden gekocht indien ze deel uit maken van een Bevestiging.
+ </notification>
+ <notification label="Over verzoeken voor debet permissies" name="DebitPermissionDetails">
+ Toestemming geven aan dit script geeft het object een onbeperkte permissie om Linden dollars (L$) uit uw account te nemen!
+Om dit recht in te trekken, moet de object eigenaar het object verwijderen of de scripts in het object opnieuw instellen.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="AutoWearNewClothing">
+ Wilt u de kleding items die u maakt automatisch aantrekken?
+ <usetemplate ignoretext="Automatisch nieuwe kleding aantrekken" name="okcancelignore" notext="Nee" yestext="Ja"/>
+ </notification>
+ <notification name="NotAgeVerified">
+ U moet leeftijd geverifieerd zijn om toegang te verkrijgen tot dit perceel.
+Wilt u de Second Life website bezoeken om uw leeftijd te verifiëren?
+
+[_URL]
+ <url name="url" option="0">
+ https://secondlife.com/account/verification.php
+ </url>
+ <usetemplate ignoretext="Waarschuw voor gebrek aan leeftijd verificatie" name="okcancelignore" notext="Nee" yestext="Ja"/>
+ </notification>
+ <notification name="Cannot enter parcel: no payment info on file">
+ Dit perceel verlangd dat u betaal informatie geregistreerd hebt staan alvorens toegang te verkrijgen.
+Wilt u de Second Life website bezoeken om dit in te stellen?
+
+[_URL]
+ <url name="url" option="0">
+ https://secondlife.com/account/index.php?lang=nl
+ </url>
+ <usetemplate ignoretext="Waarschuw voor gebrek aan betaal informatie" name="okcancelignore" notext="Nee" yestext="Ja"/>
+ </notification>
+ <notification name="MissingString">
+ De tekst [STRING_NAME] ontbreekt in strings.xml
+ </notification>
+ <notification name="SystemMessageTip">
+ [MESSAGE]
+ </notification>
+ <notification name="Cancelled">
+ Geannuleerd
+ </notification>
+ <notification name="CancelledSit">
+ Zitten geannuleerd
+ </notification>
+ <notification name="CancelledAttach">
+ Bevestigen geannuleerd
+ </notification>
+ <notification name="ReplacedMissingWearable">
+ Missend kleding/lichaamsdeel is vervangen door standaard.
+ </notification>
+ <notification name="GroupNotice">
+ Onderwerp: [SUBJECT], Bericht: [MESSAGE]
+ </notification>
+ <notification name="FriendOnline">
+ [FIRST] [LAST] is Online
+ </notification>
+ <notification name="FriendOffline">
+ [FIRST] [LAST] is Offline
+ </notification>
+ <notification name="AddSelfFriend">
+ U kunt uzelf niet als vriend toevoegen.
+ </notification>
+ <notification name="UploadingAuctionSnapshot">
+ In-wereld en website foto&apos;s worden geüpload...
+(Duurt ongeveer 5 minuten.)
+ </notification>
+ <notification name="UploadPayment">
+ U heeft L$[AMOUNT] betaald om te uploaden.
+ </notification>
+ <notification name="UploadWebSnapshotDone">
+ Upload van website foto is gereed.
+ </notification>
+ <notification name="UploadSnapshotDone">
+ Upload van in-wereld foto is gereed.
+ </notification>
+ <notification name="TerrainDownloaded">
+ Terrain.raw gedownload
+ </notification>
+ <notification name="GestureMissing">
+ Gebaar [NAME] mist in de database.
+ </notification>
+ <notification name="UnableToLoadGesture">
+ Kan gebaar [NAME] niet laden. Probeer het a.u.b. opnieuw.
+ </notification>
+ <notification name="LandmarkMissing">
+ Landmarkering mist in de database.
+ </notification>
+ <notification name="UnableToLoadLandmark">
+ Kan landmarkering niet laden. Probeer het a.u.b. opnieuw.
+ </notification>
+ <notification name="CapsKeyOn">
+ Uw Caps Lock toets staat aan. Aangezien dit effect heeft op het wachtwoord dat u intypt, zult u het wellicht willen uitzetten.
+ </notification>
+ <notification name="NotecardMissing">
+ Notitiekaart mist in de database.
+ </notification>
+ <notification name="NotecardNoPermissions">
+ Onvoldoende permissies om de notitiekaart te bekijken.
+ </notification>
+ <notification name="RezItemNoPermissions">
+ Onvoldoende permissies om het object te rezzen.
+ </notification>
+ <notification name="UnableToLoadNotecard">
+ Kan op dit moment notitiekaart inhoud niet laden.
+ </notification>
+ <notification name="ScriptMissing">
+ Script mist in de database.
+ </notification>
+ <notification name="ScriptNoPermissions">
+ Onvoldoende permissies om het script te bekijken.
+ </notification>
+ <notification name="UnableToLoadScript">
+ Kan script niet laden. Probeer het a.u.b. opnieuw.
+ </notification>
+ <notification name="IncompleteInventory">
+ De complete inhoud die u aanbiedt is nog niet lokaal beschikbaar. Probeer die items over een minuut nogmaals aan te bieden.
+ </notification>
+ <notification name="CannotModifyProtectedCategories">
+ U kunt geen beschermde categorieën wijzigen.
+ </notification>
+ <notification name="CannotRemoveProtectedCategories">
+ U kunt geen beschermde categorieën verwijderen.
+ </notification>
+ <notification name="OfferedCard">
+ U heeft een visitekaartje aangeboden aan [FIRST] [LAST]
+ </notification>
+ <notification name="UnableToBuyWhileDownloading">
+ Niet mogelijk te kopen terwijl objectdata wordt gedownload. Probeer het alstublieft opnieuw.
+ </notification>
+ <notification name="UnableToLinkWhileDownloading">
+ Niet mogelijk om te koppelen terwijl objectdata wordt gedownload. Probeer het alstublieft opnieuw.
+ </notification>
+ <notification name="CannotBuyObjectsFromDifferentOwners">
+ Kan geen objecten van meerdere eigenaren op hetzelfde moment kopen. Selecteer alstublieft een enkel object.
+ </notification>
+ <notification name="ObjectNotForSale">
+ Object lijkt niet te koop.
+ </notification>
+ <notification name="EnteringGodMode">
+ God modus binnengaan, niveau [LEVEL]
+ </notification>
+ <notification name="LeavingGodMode">
+ God modus verlaten, niveau [LEVEL]
+ </notification>
+ <notification name="CopyFailed">
+ Kopiëren mislukt omdat u geen kopieerpermissie bezit.
+ </notification>
+ <notification name="InventoryAccepted">
+ [NAME] heeft uw inventarisaanbod geaccepteerd.
+ </notification>
+ <notification name="InventoryDeclined">
+ [NAME] heeft uw inventarisaanbod afgewezen.
+ </notification>
+ <notification name="ObjectMessage">
+ [NAME]: [MESSAGE]
+ </notification>
+ <notification name="CallingCardAccepted">
+ Uw visitekaartje is geaccepteerd.
+ </notification>
+ <notification name="CallingCardDeclined">
+ Uw visite kaart is afgewezen.
+ </notification>
+ <notification name="TeleportToLandmark">
+ Nu u het mainland bereikt heeft, kunt u teleporteren naar locaties als &apos;[NAME]&apos; door op de Inventaris knop rechtsonder in uw scherm te klikken en dan de Landmarkeringen map te selecteren. Dubbelklik op de landmarkering en klik op Teleport om ernaartoe te reizen.
+ </notification>
+ <notification name="TeleportToPerson">
+ Nu u het mainland bereikt heeft, kunt u contact opnemen met inwoners als &apos;[NAME]&apos; door op de Inventaris knop rechtsonder in uw scherm te klikken en dan de Visitekaartjes map te selecteren. Dubbelklik op het visitekaartje, klik op Instant Message en type een bericht.
+ </notification>
+ <notification name="CantSelectLandFromMultipleRegions">
+ Kan geen land selecteren over servergrenzen.
+Probeer een kleiner stuk land te selecteren.
+ </notification>
+ <notification name="SearchWordBanned">
+ Sommige termen in uw zoekopdracht werden uitgesloten vanwege inhoudbeperkingen zoals beschreven in de Gemeenschap Standaarden.
+ </notification>
+ <notification name="NoContentToSearch">
+ Selecteer alstublieft minstens een type inhoud om te zoeken (PG, Mature of Adult).
+ </notification>
+ <notification name="GroupVote">
+ [NAME] heeft voorgesteld om te stemmen over:
+[MESSAGE]
+ <form name="form">
+ <button name="VoteNow" text="Stem Nu"/>
+ <button name="Later" text="Later"/>
+ </form>
+ </notification>
+ <notification name="SystemMessage">
+ [MESSAGE]
+ </notification>
+ <notification name="EventNotification">
+ Evenement Bericht:
+
+[NAME]
+[DATE]
+ <form name="form">
+ <button name="Teleport" text="Teleport"/>
+ <button name="Description" text="Omschrijving"/>
+ <button name="Cancel" text="Annuleren"/>
+ </form>
+ </notification>
+ <notification name="TransferObjectsHighlighted">
+ Alle objecten op dit perceel die zullen worden overgedragen aan de koper van dit perceel zijn nu opgelicht.
+
+* Bomen en grassen die worden overgedragen zijn niet opgelicht.
+ <form name="form">
+ <button name="Done" text="Gereed"/>
+ </form>
+ </notification>
+ <notification name="DeactivatedGesturesTrigger">
+ Deactiveren van gebaren met dezelfde trigger:
+[NAMES]
+ </notification>
+ <notification name="NoQuickTime">
+ De QuickTime software van Apple schijnt niet op uw systeem geïnstalleerd te zijn.
+Indien u streaming media wilt zien op percelen die dit ondersteunen, dient u naar de QuickTime webpagina te gaan (http://www.apple.com/QuickTime) en de QuickTime Player te installeren.
+ </notification>
+ <notification name="OwnedObjectsReturned">
+ De objecten die uw eigendom zijn op het geselecteerde perceel zijn geretourneerd naar uw inventaris.
+ </notification>
+ <notification name="OtherObjectsReturned">
+ De objecten op het geselecteerde perceel dat het eigendom is van [FIRST] [LAST], zijn geretourneerd naar zijn of haar inventaris.
+ </notification>
+ <notification name="OtherObjectsReturned2">
+ De objecten op het geselecteerde perceel dat het eigendom is van inwoner &apos;[NAME]&apos;, zijn geretourneerd naar hun eigenaar.
+ </notification>
+ <notification name="GroupObjectsReturned">
+ De objecten op het geselecteerde perceel dat gedeeld is met de groep [GROUPNAME] zijn geretourneerd naar de inventaris van hun eigenaar.
+Overdraagbare objecten die eigendom zijn van de groep zijn geretourneerd naar hun voormalige eigenaren.
+Niet-overdraagbare objecten die eigendom zijn van de groep zijn verwijderd.
+ </notification>
+ <notification name="UnOwnedObjectsReturned">
+ De objecten op het geselecteerde perceel die NIET uw eigendom zijn, zijn geretourneerd naar hun eigenaren.
+ </notification>
+ <notification name="NotSafe">
+ Op dit land is letsel ingeschakeld (&apos;niet veilig&apos;).
+U kunt hier letsel oplopen. Indien u sterft, zult u naar uw thuis locatie worden geteleporteerd.
+ </notification>
+ <notification name="NoFly">
+ Op dit land is vliegen uitgeschakeld (&apos;niet vliegen&apos;).
+U kunt hier niet vliegen.
+ </notification>
+ <notification name="PushRestricted">
+ Dit land is &apos;Niet Duwen&apos;.
+U kunt geen anderen duwen, tenzij u het land bezit.
+ </notification>
+ <notification name="NoVoice">
+ Op dit land is voice uitgeschakeld.
+ </notification>
+ <notification name="NoBuild">
+ Op dit land is bouwen uitgeschakeld (&apos;niet bouwen&apos;).
+U kunt hier geen objecten creëren.
+ </notification>
+ <notification name="ScriptsStopped">
+ Een beheerder heeft scripts in deze regio tijdelijk gestopt.
+ </notification>
+ <notification name="ScriptsNotRunning">
+ In deze regio worden geen scripts uitgevoerd.
+ </notification>
+ <notification name="NoOutsideScripts">
+ Op dit land zijn externe scripts uitgeschakeld (geen externe scripts).
+Geen scripts zullen worden uitgevoerd, behalve scripts die toebehoren aan de landeigenaar.
+ </notification>
+ <notification name="ClaimPublicLand">
+ Kan alleen publiek land claimen in de regio waar u aanwezig bent.
+ </notification>
+ <notification name="RegionTPAccessBlocked">
+ U bent niet toegestaan in die regio vanwege uw inhoudscategorie. Wellicht dient u uw leeftijd te valideren en/of de nieuwste viewer te installeren.
+
+Gaat u alstublieft naar de kennisbank voor details over het betreden van gebieden met deze inhoudscategorie.
+ </notification>
+ <notification name="URBannedFromRegion">
+ U bent uit deze regio verbannen.
+ </notification>
+ <notification name="NoTeenGridAccess">
+ Uw account kan geen verbinding maken met deze teen grid regio.
+ </notification>
+ <notification name="NoHelpIslandTP">
+ U kunt niet terug teleporteren naar Help Island. Ga naar &apos;Help Island Public&apos; om de handleiding te herhalen.
+ </notification>
+ <notification name="ImproperPaymentStatus">
+ U heeft niet de juiste betalingstatus om deze regio binnen te gaan.
+ </notification>
+ <notification name="MustGetAgeRgion">
+ U moet leeftijd geverifieerd zijn om deze regio binnen te gaan.
+ </notification>
+ <notification name="MustGetAgeParcel">
+ U moet leeftijd geverifieerd zijn om dit perceel binnen te gaan.
+ </notification>
+ <notification name="NoDestRegion">
+ Geen bestemmingsregio gevonden.
+ </notification>
+ <notification name="NotAllowedInDest">
+ U wordt niet op de bestemming toegelaten.
+ </notification>
+ <notification name="RegionParcelBan">
+ Kan niet naar de regio oversteken in een verbannen perceel. Probeer het op een andere manier.
+ </notification>
+ <notification name="TelehubRedirect">
+ U bent doorverwezen naar een telehub.
+ </notification>
+ <notification name="CouldntTPCloser">
+ Kan niet dichter bij bestemming teleporteren.
+ </notification>
+ <notification name="TPCancelled">
+ Teleport geannuleerd.
+ </notification>
+ <notification name="FullRegionTryAgain">
+ De regio die u probeert binnen te gaan is momenteel vol.
+Probeer het alstublieft opnieuw over enkele ogenblikken.
+ </notification>
+ <notification name="GeneralFailure">
+ Algemene fout.
+ </notification>
+ <notification name="RoutedWrongRegion">
+ Gerouteerd naar de verkeerde regio. Probeer het alstublieft opnieuw.
+ </notification>
+ <notification name="NoValidAgentID">
+ Geen geldige agent ID.
+ </notification>
+ <notification name="NoValidSession">
+ Geen geldige sessie ID.
+ </notification>
+ <notification name="NoValidCircuit">
+ Geen geldige circuit code.
+ </notification>
+ <notification name="NoValidTimestamp">
+ Geen geldige tijdstempel.
+ </notification>
+ <notification name="NoPendingConnection">
+ Kan wachtende verbinding niet maken.
+ </notification>
+ <notification name="InternalUsherError">
+ Er is een interne fout opgetreden terwijl geprobeerd werd u naar uw teleportbestemming te begeleiden. Second Life heeft op dit moment mogelijk problemen met de dienstverlening.
+ </notification>
+ <notification name="NoGoodTPDestination">
+ Kan geen goede teleportbestemming vinden in deze regio.
+ </notification>
+ <notification name="InternalErrorRegionResolver">
+ Er is een interne fout opgetreden terwijl de globale coördinaten voor uw teleportverzoek werden bepaald. Second Life heeft op dit moment mogelijk problemen met de dienstverlening.
+ </notification>
+ <notification name="NoValidLanding">
+ Er kon geen geldig landingspunt worden gevonden.
+ </notification>
+ <notification name="NoValidParcel">
+ Geen geldig perceel kon gevonden worden.
+ </notification>
+ <notification name="ObjectGiveItem">
+ Een object genaamd [OBJECTFROMNAME], eigendom van [FIRST] [LAST], heeft u een [OBJECTTYPE] genaamd [OBJECTNAME] gegeven.
+ <form name="form">
+ <button name="Keep" text="Behouden"/>
+ <button name="Discard" text="Afwijzen"/>
+ <button name="Mute" text="Negeren"/>
+ </form>
+ </notification>
+ <notification name="ObjectGiveItemUnknownUser">
+ Een object genaamd [OBJECTFROMNAME], eigendom van (een onbekende gebruiker), heeft u een [OBJECTTYPE] genaamd [OBJECTNAME] gegeven.
+ <form name="form">
+ <button name="Keep" text="Behouden"/>
+ <button name="Discard" text="Afwijzen"/>
+ <button name="Mute" text="Negeren"/>
+ </form>
+ </notification>
+ <notification name="UserGiveItem">
+ [NAME] heeft u een [OBJECTTYPE] genaamd &apos;[OBJECTNAME]&apos; gegeven.
+ <form name="form">
+ <button name="Keep" text="Behouden"/>
+ <button name="Discard" text="Afwijzen"/>
+ <button name="Mute" text="Negeren"/>
+ </form>
+ </notification>
+ <notification name="GodMessage">
+ [NAME]
+[MESSAGE]
+ </notification>
+ <notification name="JoinGroup">
+ [MESSAGE]
+ <form name="form">
+ <button name="Join" text="Deelnemen"/>
+ <button name="Decline" text="Afwijzen"/>
+ <button name="Info" text="Info"/>
+ </form>
+ </notification>
+ <notification name="TeleportOffered">
+ [NAME] heeft aangeboden u te teleporteren naar zijn of haar locatie:
+
+[MESSAGE]
+ <form name="form">
+ <button name="Teleport" text="Teleport"/>
+ <button name="Cancel" text="Annuleren"/>
+ </form>
+ </notification>
+ <notification name="GotoURL">
+ [MESSAGE]
+[URL]
+ <form name="form">
+ <button name="Later" text="Later"/>
+ <button name="GoNow..." text="Ga Nu..."/>
+ </form>
+ </notification>
+ <notification name="OfferFriendship">
+ [NAME] biedt vriendschap aan.
+
+[MESSAGE]
+
+(Standaard zult u in staat zijn om elkaars online status te zien.)
+ <form name="form">
+ <button name="Accept" text="Accepteren"/>
+ <button name="Decline" text="Afwijzen"/>
+ </form>
+ </notification>
+ <notification name="OfferFriendshipNoMessage">
+ [NAME] biedt vriendschap aan.
+
+(Standaard zult u in staat zijn om elkaars online status te zien.)
+ <form name="form">
+ <button name="Accept" text="Accepteren"/>
+ <button name="Decline" text="Afwijzen"/>
+ </form>
+ </notification>
+ <notification name="FriendshipAccepted">
+ [NAME] heeft uw vriendschapsaanbod geaccepteerd.
+ </notification>
+ <notification name="FriendshipDeclined">
+ [NAME] heeft uw vriendschapsaanbod afgewezen.
+ </notification>
+ <notification name="OfferCallingCard">
+ [FIRST] [LAST] biedt zijn/haar visitekaartje aan.
+Dit zal een bladwijzer in uw inventaris toevoegen zodat u deze inwoner snel kunt een IM kunt sturen.
+ <form name="form">
+ <button name="Accept" text="Accepteren"/>
+ <button name="Decline" text="Afwijzen"/>
+ </form>
+ </notification>
+ <notification name="RegionRestartMinutes">
+ De regio zal over [MINUTES] minuten herstarten.
+Indien u in deze regio blijft, zult u worden uitgelogd.
+ </notification>
+ <notification name="RegionRestartSeconds">
+ De regio zal over [SECONDS] seconden herstarten.
+Indien u in deze regio blijft, zult u worden uitgelogd.
+ </notification>
+ <notification name="LoadWebPage">
+ Laad webpagina [URL]?
+
+[MESSAGE]
+
+Van object: [OBJECTNAME], eigenaar: [NAME]?
+ <form name="form">
+ <button name="Gotopage" text="Laden"/>
+ <button name="Cancel" text="Annuleren"/>
+ </form>
+ </notification>
+ <notification name="FailedToFindWearableUnnamed">
+ Kon [TYPE] niet in de database vinden.
+ </notification>
+ <notification name="FailedToFindWearable">
+ Kon [TYPE] genaamd [DESC] niet in de database vinden.
+ </notification>
+ <notification name="InvalidWearable">
+ Het item dat u probeert te dragen gebruikt een kenmerk dat uw viewer niet kan lezen. Upgrade u alstublieft uw versie van Second Life om dit item te dragen.
+ </notification>
+ <notification name="ScriptQuestion">
+ [OBJECTNAME]&apos;, een object van &apos;[NAME]&apos;, wil graag:
+
+[QUESTIONS]
+Is dit OK?
+ <form name="form">
+ <button name="Yes" text="Ja"/>
+ <button name="No" text="Nee"/>
+ <button name="Mute" text="Negeren"/>
+ </form>
+ </notification>
+ <notification name="ScriptQuestionCaution">
+ [OBJECTNAME]&apos;, een object van &apos;[NAME]&apos;, wil graag
+
+[QUESTIONS]
+Indien u dit object en zijn maker niet vertrouwt, zou u het verzoek moeten weigeren. Klik de Details knop voor additionele informatie.
+
+Dit verzoek inwilligen?
+ <form name="form">
+ <button name="Grant" text="Inwilligen"/>
+ <button name="Deny" text="Weigeren"/>
+ <button name="Details" text="Details..."/>
+ </form>
+ </notification>
+ <notification name="ScriptDialog">
+ [FIRST] [LAST]&apos;s &apos;[TITLE]&apos;
+[MESSAGE]
+ <form name="form">
+ <button name="Ignore" text="Negeren"/>
+ </form>
+ </notification>
+ <notification name="ScriptDialogGroup">
+ [GROUPNAME]&apos;s &apos;[TITLE]&apos;
+[MESSAGE]
+ <form name="form">
+ <button name="Ignore" text="Negeren"/>
+ </form>
+ </notification>
+ <notification name="FirstBalanceIncrease">
+ U heeft zojuist L$[AMOUNT] ontvangen.
+Objecten en andere gebruikers kunnen u L$ geven.
+Uw saldo wordt in de rechterbovenhoek van het scherm getoond.
+ </notification>
+ <notification name="FirstBalanceDecrease">
+ U heeft zojuist L$[AMOUNT] betaald.
+Uw saldo wordt in de rechterbovenhoek van het scherm getoond.
+ </notification>
+ <notification name="FirstSit">
+ U zit.
+Gebruik de pijltjestoetsen (of AWSD) of uw gezichtsveld te wijzigen.
+Klik de &apos;Sta Op&apos; knop om op te staan.
+ </notification>
+ <notification name="FirstMap">
+ Klik en sleep om de kaart te verplaatsen.
+Dubbelklik om te teleporteren.
+Gebruik de bedieningselementen aan de rechterkant om dingen te vinden en verschillende achtergronden te tonen.
+ </notification>
+ <notification name="FirstBuild">
+ U kunt nieuwe objecten bouwen in sommige gebieden van [SECOND_LIFE].
+Gebruik de gereedschappen in de linkerbovenhoek om te bouwen en probeer Ctrl en Alt ingedrukt te houden om snel tussen gereedschappen te wisselen.
+Druk Esc om te stoppen met bouwen.
+ </notification>
+ <notification name="FirstLeftClickNoHit">
+ Links-klikken werkt in op speciale objecten.
+Indien de muisaanwijzer verandert in een hand, kunt u interacteren met het object.
+Rechts-klikken toont altijd een menu van dingen die u kunt doen.
+ </notification>
+ <notification name="FirstTeleport">
+ Deze regio staat geen point-to-point teleport toe, dus u bent naar de dichtstbijzijnde telehub getransporteerd.
+Uw bestemming is gemarkeerd met een groot baken.
+Volg de rode pijl naar het baken, of klik de pijl om het baken te verwijderen.
+ </notification>
+ <notification name="FirstOverrideKeys">
+ Uw bewegingstoetsen worden nu door een object afgehandeld.
+Probeer de pijltjestoetsen of AWSD om te zien wat ze doen.
+Sommige objecten (zoals geweren) vereisen dat u in mouselook gaat om ze te gebruiken.
+Druk &apos;M&apos; om dit te doen.
+ </notification>
+ <notification name="FirstAppearance">
+ U bent uw uiterlijk aan het bewerken.
+Gebruik de pijltjestoetsen om uw gezichtsveld te draaien en te zoomen.
+Druk &apos;Alles Opslaan&apos; om uw uiterlijk op te slaan wanneer u klaar bent.
+U kunt uw uiterlijk zo vaak als u wil bewerken.
+ </notification>
+ <notification name="FirstInventory">
+ Dit is uw inventaris, die objecten, notitiekaarten, kleding en andere eigendommen bevat.
+* Om een object of een kleding-map te dragen, sleep het op uzelf.
+* Om een object in de wereld te brengen, sleep het op de grond.
+* Om een notitiekaart te lezen, dubbelklik erop.
+ </notification>
+ <notification name="FirstSandbox">
+ Dit is een zandbak regio.
+Objecten die u hier bouwt, kunnen worden verwijderd nadat u het gebied verlaat. Zandbakken schonen op regelmatige basis, kijk alstublieft naar de informatie aan de bovenkant van het scherm, naast de regionaam.
+
+Zandbak regio&apos;s zijn ongewoon en gemarkeerd met borden.
+ </notification>
+ <notification name="FirstFlexible">
+ Dit object is flexibel.
+Flexibele objecten mogen niet fysiek zijn en moeten fantoom zijn tot de &apos;flexibel&apos; checkbox wordt uitgezet.
+ </notification>
+ <notification name="FirstDebugMenus">
+ U heeft het menu Geavanceerd geactiveerd.
+Dit menu bevat opties die handig zijn voor ontwikkelaars tijdens het debuggen van Second Life.
+Om dit menu in en uit te schakelen drukt u binnen Windows Ctrl-Alt-D. Met een Mac drukt u Cmd-Opt-Shift-D.
+ </notification>
+ <notification name="FirstSculptedPrim">
+ U bent een sculpted prim aan het bewerken.
+Sculpted prims vereisen een speciaal textuur om hun vorm te bepalen.
+U kunt voorbeelden van sculpt-texturen in de inventaris bibliotheek vinden.
+ </notification>
+ <notification name="FirstMedia">
+ U bent begonnen met het afspelen van media. In het Voorkeurenvenster, onder Audio / Video, kan media worden ingesteld om automatisch te beginnen met afspelen. Let op dat dit een beveiligingsrisico kan zijn voor media sites die u niet vertrouwt.
+ </notification>
+ <notification name="MaxListSelectMessage">
+ U mag slecht maximaal [MAX_SELECT] items van deze lijst kiezen.
+ </notification>
+ <notification name="VoiceInviteP2P">
+ [NAME] nodigt u uit voor een Voice chat gesprek.
+Klik Accepteren om deel te nemen aan dit gesprek of Afwijzen om de uitnodiging af te wijzen. Klik Negeren om deze persoon te negeren.
+ <form name="form">
+ <button name="Accept" text="Accepteren"/>
+ <button name="Decline" text="Afwijzen"/>
+ <button name="Mute" text="Negeren"/>
+ </form>
+ </notification>
+ <notification name="AutoUnmuteByIM">
+ Er is een instant message naar [FIRST] [LAST] gestuurd, waardoor deze automatisch van de negeerlijst is gehaald.
+ </notification>
+ <notification name="AutoUnmuteByMoney">
+ Er is geld gegeven aan [FIRST] [LAST], waardoor deze automatisch van de negeerlijst is gehaald.
+ </notification>
+ <notification name="AutoUnmuteByInventory">
+ Er is inventaris aangeboden aan [FIRST] [LAST], waardoor deze automatisch van de negeerlijst is gehaald.
+ </notification>
+ <notification name="VoiceInviteGroup">
+ [NAME] doet nu mee met een Voice chat gesprek binnen de groep [GROUP].
+Klik Accepteren om deel te nemen aan het gesprek of Afwijzen om de uitnodiging af te wijzen. Klik Negeren om deze persoon te negeren.
+ <form name="form">
+ <button name="Accept" text="Accepteren"/>
+ <button name="Decline" text="Afwijzen"/>
+ <button name="Mute" text="Negeren"/>
+ </form>
+ </notification>
+ <notification name="VoiceInviteAdHoc">
+ [NAME] doet nu mee met een Voice chat gesprek binnen een conferentie chat.
+Klik Accepteren om deel te nemen aan het gesprek of Afwijzen om de uitnodiging af te wijzen. Klik Negeren om deze persoon te negeren.
+ <form name="form">
+ <button name="Accept" text="Accepteren"/>
+ <button name="Decline" text="Afwijzen"/>
+ <button name="Mute" text="Negeren"/>
+ </form>
+ </notification>
+ <notification name="InviteAdHoc">
+ [NAME] nodigt u uit voor een conferentie chat.
+Klik Accepteren om deel te nemen aan de chat of Afwijzen om de uitnodiging af te wijzen. Klik Negeren om deze persoon te negeren.
+ <form name="form">
+ <button name="Accept" text="Accepteren"/>
+ <button name="Decline" text="Afwijzen"/>
+ <button name="Mute" text="Negeren"/>
+ </form>
+ </notification>
+ <notification name="VoiceChannelFull">
+ Het voice gesprek waaraan u probeert deel te nemen, [VOICE_CHANNEL_NAME], heeft zijn maximale capaciteit bereikt. Probeert u het alstublieft later nog een keer.
+ </notification>
+ <notification name="ProximalVoiceChannelFull">
+ Onze excuses. Dit gebied heeft zijn maximale capaciteit voor voice conversaties bereikt. Probeert u alstublieft voice te gebruiken in een ander gebied.
+ </notification>
+ <notification name="VoiceChannelDisconnected">
+ U bent niet meer verbonden met [VOICE_CHANNEL_NAME]. U zult weer worden verbonden met spatiale voice chat.
+ </notification>
+ <notification name="VoiceChannelDisconnectedP2P">
+ [VOICE_CHANNEL_NAME] heeft het gesprek beëindigd. U zult weer worden verbonden met spatiale voice chat.
+ </notification>
+ <notification name="P2PCallDeclined">
+ [VOICE_CHANNEL_NAME] heeft uw oproep afgewezen. U zult weer worden verbonden met spatiale voice chat.
+ </notification>
+ <notification name="P2PCallNoAnswer">
+ [VOICE_CHANNEL_NAME] is niet beschikbaar om uw oproep aan te nemen. U zult weer worden verbonden met spatiale voice chat.
+ </notification>
+ <notification name="VoiceChannelJoinFailed">
+ Verbinden met [VOICE_CHANNEL_NAME] is mislukt, probeert u het later alstublieft nog een keer. U zult weer worden verbonden met spatiale voice chat.
+ </notification>
+ <notification name="VoiceLoginRetry">
+ We zijn bezig om een voice kanaal voor u te maken. Dit kan tot een minuut duren.
+ </notification>
+ <notification name="Cannot enter parcel: not a group member">
+ Kan het perceel niet betreden, u bent geen lid van de juiste groep.
+ </notification>
+ <notification name="Cannot enter parcel: banned">
+ Kan het perceel niet betreden, u bent verbannen.
+ </notification>
+ <notification name="Cannot enter parcel: not on access list">
+ Kan het perceel niet betreden, u staat niet op de toegangslijst.
+ </notification>
+ <notification name="VoiceNotAllowed">
+ U heeft geen permissie om met voice chat te verbinden voor [VOICE_CHANNEL_NAME].
+ </notification>
+ <notification name="VoiceCallGenericError">
+ Er is een fout opgetreden tijdens het verbinden met voice chat voor [VOICE_CHANNEL_NAME]. Probeert u het later alstublieft opnieuw.
+ </notification>
+ <notification name="ServerVersionChanged">
+ De regio die u bent binnengetreden wordt onder een andere simulatorversie uitgevoerd. Klik dit bericht voor meer details.
+ </notification>
+ <notification name="UnableToOpenCommandURL">
+ De URL die u heeft geklikt kan niet binnen deze webbrowser worden geopend.
+ </notification>
+ <global name="UnsupportedCPU">
+ - Uw Processor snelheid (CPU) voldoet niet aan de minimale eisen.
+ </global>
+ <global name="UnsupportedGLRequirements">
+ U heeft mogelijk niet de vereiste hardware voor Second Life. Second Life verlangd een OpenGL grafische kaart die multi-texture ondersteund. Indien dat het geval is, overtuig u er dan van dat u de laatste stuurprogramma&apos;s voor uw grafische kaart, service packs en patches voor uw Operating systeem heeft.
+
+Indien u problemen blijft houden, bezoek dan: http://www.secondlife.com/support
+ </global>
+ <global name="UnsupportedCPUAmount">
+ 796
+ </global>
+ <global name="UnsupportedRAMAmount">
+ 510
+ </global>
+ <global name="UnsupportedGPU">
+ - Uw grafische kaart voldoet niet aan de minimale eisen.
+ </global>
+ <global name="UnsupportedRAM">
+ - Uw systeem geheugen voldoet niet aan de minimale eisen.
+ </global>
+ <global name="PermYes">
+ Ja
+ </global>
+ <global name="PermNo">
+ Nee
+ </global>
+</notifications>
diff --git a/indra/newview/skins/default/xui/nl/panel_audio_device.xml b/indra/newview/skins/default/xui/nl/panel_audio_device.xml
index ba4af43599..fd5dda799f 100644
--- a/indra/newview/skins/default/xui/nl/panel_audio_device.xml
+++ b/indra/newview/skins/default/xui/nl/panel_audio_device.xml
@@ -1,25 +1,25 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="device_settings">
- <text name="Audio Devices">
- Audioapparaten
- </text>
- <text name="Input device (microphone):">
- Invoerapparaat (microfoon):
- </text>
- <text name="Output device (speakers):">
- Uitvoerapparaat (luidsprekers)
- </text>
- <text name="Input level:">
- Invoerniveau
- </text>
- <text_editor name="voice_intro_text1">
- Wijzig de schuifbalk om in te stellen hoe luid u klinkt voor andere inwoners. Spreek gewoon in uw microfoon om het invoerniveau te testen.
- </text_editor>
- <volume_slider name="mic_volume_slider" tool_tip="Wijzig het volume met deze schuifknop"/>
- <text name="wait_text">
- Wacht u alstublieft
- </text>
- <string name="default_text">
- Standaard
- </string>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="device_settings">
+ <text name="Audio Devices">
+ Audioapparaten
+ </text>
+ <text name="Input device (microphone):">
+ Invoerapparaat (microfoon):
+ </text>
+ <text name="Output device (speakers):">
+ Uitvoerapparaat (luidsprekers)
+ </text>
+ <text name="Input level:">
+ Invoerniveau
+ </text>
+ <text_editor name="voice_intro_text1">
+ Wijzig de schuifbalk om in te stellen hoe luid u klinkt voor andere inwoners. Spreek gewoon in uw microfoon om het invoerniveau te testen.
+ </text_editor>
+ <volume_slider name="mic_volume_slider" tool_tip="Wijzig het volume met deze schuifknop"/>
+ <text name="wait_text">
+ Wacht u alstublieft
+ </text>
+ <string name="default_text">
+ Standaard
+ </string>
+</panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_friends.xml b/indra/newview/skins/default/xui/nl/panel_friends.xml
index 59bbf92919..2f43ee0a53 100644
--- a/indra/newview/skins/default/xui/nl/panel_friends.xml
+++ b/indra/newview/skins/default/xui/nl/panel_friends.xml
@@ -1,20 +1,20 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="friends">
- <string name="Multiple">
- Meerdere vrienden...
- </string>
- <scroll_list name="friend_list" tool_tip="Houd shift of control ingedrukt terwijl u meerdere vrienden klikt">
- <column name="icon_online_status" tool_tip="Online status"/>
- <column label="Naam" name="friend_name" tool_tip="Naam"/>
- <column name="icon_visible_online" tool_tip="Vriend kan zien wanneer u online bent"/>
- <column name="icon_visible_map" tool_tip="Vriend kan u op de kaart lokaliseren"/>
- <column name="icon_edit_mine" tool_tip="Vriend kan objecten wijzigen, verwijderen of oppakken"/>
- <column name="icon_edit_theirs" tool_tip="U kunt de objecten van deze vriend bewerken"/>
- </scroll_list>
- <button label="IM/Oproepen" name="im_btn" tool_tip="Open Instant Message sessie"/>
- <button label="Profiel" name="profile_btn" tool_tip="Toon afbeelding, groepen en andere informatie"/>
- <button label="Teleport..." name="offer_teleport_btn" tool_tip="Bied deze vriend een teleport naar uw huidige locatie aan"/>
- <button label="Betaal..." name="pay_btn" tool_tip="Geef Linden dollars (L$) aan deze vriend"/>
- <button label="Verwijderen..." name="remove_btn" tool_tip="Verwijder deze persoon van uw vriendenlijst"/>
- <button label="Toevoegen..." name="add_btn" tool_tip="Bied vriendschap aan een inwoner aan"/>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="friends">
+ <string name="Multiple">
+ Meerdere vrienden...
+ </string>
+ <scroll_list name="friend_list" tool_tip="Houd shift of control ingedrukt terwijl u meerdere vrienden klikt">
+ <column name="icon_online_status" tool_tip="Online status"/>
+ <column label="Naam" name="friend_name" tool_tip="Naam"/>
+ <column name="icon_visible_online" tool_tip="Vriend kan zien wanneer u online bent"/>
+ <column name="icon_visible_map" tool_tip="Vriend kan u op de kaart lokaliseren"/>
+ <column name="icon_edit_mine" tool_tip="Vriend kan objecten wijzigen, verwijderen of oppakken"/>
+ <column name="icon_edit_theirs" tool_tip="U kunt de objecten van deze vriend bewerken"/>
+ </scroll_list>
+ <button label="IM/Oproepen" name="im_btn" tool_tip="Open Instant Message sessie"/>
+ <button label="Profiel" name="profile_btn" tool_tip="Toon afbeelding, groepen en andere informatie"/>
+ <button label="Teleport..." name="offer_teleport_btn" tool_tip="Bied deze vriend een teleport naar uw huidige locatie aan"/>
+ <button label="Betaal..." name="pay_btn" tool_tip="Geef Linden dollars (L$) aan deze vriend"/>
+ <button label="Verwijderen..." name="remove_btn" tool_tip="Verwijder deze persoon van uw vriendenlijst"/>
+ <button label="Toevoegen..." name="add_btn" tool_tip="Bied vriendschap aan een inwoner aan"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_group_general.xml b/indra/newview/skins/default/xui/nl/panel_group_general.xml
index 4bf1ff78b7..9982a527f4 100644
--- a/indra/newview/skins/default/xui/nl/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/nl/panel_group_general.xml
@@ -1,67 +1,77 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Algemeen" name="general_tab">
- <string name="help_text">
- Het tabblad Algemeen bevat algemene informatie over deze groep, een lijst met eigenaren en zichtbare leden, algemene groepsvoorkeuren en ledenopties.
-
-Laat uw muis boven de opties zweven voor meer help.
- </string>
- <string name="group_info_unchanged">
- Algemene groepsinformatie is gewijzigd.
- </string>
- <button label="?" label_selected="?" name="help_button"/>
- <line_editor label="Typ uw nieuwe groepsnaam hier" name="group_name_editor"/>
- <text name="group_name">
- Typ uw nieuwe groepsnaam hier
- </text>
- <text name="prepend_founded_by">
- Opgericht door
- </text>
- <text name="founder_name">
- (wachten)
- </text>
- <text name="group_charter_label">
- Groepcharter
- </text>
- <texture_picker label="Groepinsigne" name="insignia" tool_tip="Klik om een afbeelding te kiezen"/>
- <text_editor name="charter">
- Groepcharter
- </text_editor>
- <button label="Deelnemen (L$0)" label_selected="Deelnemen (L$0)" name="join_button"/>
- <button label="Gedetailleerde weergave" label_selected="Gedetailleerde weergave" name="info_button"/>
- <text name="text_owners_and_visible_members">
- Eigenaren en zichtbare leden
- </text>
- <text name="text_owners_are_shown_in_bold">
- (Eigenaren worden vet getoond)
- </text>
- <name_list name="visible_members">
- <column label="Lidnaam" name="name"/>
- <column label="Titel" name="title"/>
- <column label="Laatste login" name="online"/>
- </name_list>
- <text name="text_group_preferences">
- Groepvoorkeuren
- </text>
- <panel name="preferences_container">
- <check_box label="Toon in zoeken" name="show_in_group_list" tool_tip="Laat mensen deze groep zien in zoekresultaten."/>
- <check_box label="Vrije toegang" name="open_enrollement" tool_tip="Stelt in of deze groep toestaat dat nieuwe leden lid kunnen worden zonder uitgenodigd te zijn."/>
- <check_box label="Contributiebijdrage: L$" name="check_enrollment_fee" tool_tip="Stelt in of er een contributiebijdrage vereist is om lid te worden van de groep."/>
- <spinner name="spin_enrollment_fee" tool_tip="Nieuwe leden moeten deze bijdrage betalen om deel te nemen aan de groep wanneer &quot;Contributie bijdrage&quot; is aangevinkt."/>
-
- <panel name="title_container">
- <text name="active_title_label">
- Mijn actieve titel
- </text>
- <combo_box name="active_title" tool_tip="Stelt de titel in die in uw avatar&apos;s naamlabel verschijnt wanneer deze groep actief is."/>
- </panel>
- <check_box label="Ontvang groepsberichten" name="receive_notices" tool_tip="Stelt in of u berichten van deze groep wilt ontvangen. Verwijder het vinkje wanneer u spam ontvangt van deze groep."/>
- <check_box label="Toon deze groep in mijn profiel" name="list_groups_in_profile" tool_tip="Stelt in of u deze groep in uw profiel wil laten zien"/>
- </panel>
- <string name="incomplete_member_data_str">
- Ledendata ophalen
- </string>
- <string name="confirm_group_create_str">
- Het maken van deze groep zal u L$100 kosten. Weet u echt, echt, ECHT zeker dat u L$100 wil besteden om deze groep te maken?
-Wees u ervan bewust dat, indien niemand anders binnen 48 uur lid wordt van deze groep, deze ontmanteld zal worden, waarbij de groepsnaam onbeschikbaar zal blijven voor toekomstig gebruik.
- </string>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Algemeen" name="general_tab">
+ <string name="help_text">
+ Het tabblad Algemeen bevat algemene informatie over deze groep, een lijst met eigenaren en zichtbare leden, algemene groepsvoorkeuren en ledenopties.
+
+Laat uw muis boven de opties zweven voor meer help.
+ </string>
+ <string name="group_info_unchanged">
+ Algemene groepsinformatie is gewijzigd.
+ </string>
+ <button label="?" label_selected="?" name="help_button"/>
+ <line_editor label="Typ uw nieuwe groepsnaam hier" name="group_name_editor"/>
+ <text name="group_name">
+ Typ uw nieuwe groepsnaam hier
+ </text>
+ <text name="prepend_founded_by">
+ Opgericht door
+ </text>
+ <text name="founder_name">
+ (wachten)
+ </text>
+ <text name="group_charter_label">
+ Groepcharter
+ </text>
+ <texture_picker label="Groepinsigne" name="insignia" tool_tip="Klik om een afbeelding te kiezen"/>
+ <text_editor name="charter">
+ Groepcharter
+ </text_editor>
+ <button label="Deelnemen (L$0)" label_selected="Deelnemen (L$0)" name="join_button"/>
+ <button label="Gedetailleerde weergave" label_selected="Gedetailleerde weergave" name="info_button"/>
+ <text name="text_owners_and_visible_members">
+ Eigenaren en zichtbare leden
+ </text>
+ <text name="text_owners_are_shown_in_bold">
+ (Eigenaren worden vet getoond)
+ </text>
+ <name_list name="visible_members">
+ <column label="Lidnaam" name="name"/>
+ <column label="Titel" name="title"/>
+ <column label="Laatste login" name="online"/>
+ </name_list>
+ <text name="text_group_preferences">
+ Groepvoorkeuren
+ </text>
+ <panel name="preferences_container">
+ <check_box label="Toon in zoeken" name="show_in_group_list" tool_tip="Laat mensen deze groep zien in zoekresultaten."/>
+ <check_box label="Vrije toegang" name="open_enrollement" tool_tip="Stelt in of deze groep toestaat dat nieuwe leden lid kunnen worden zonder uitgenodigd te zijn."/>
+ <check_box label="Contributiebijdrage: L$" name="check_enrollment_fee" tool_tip="Stelt in of er een contributiebijdrage vereist is om lid te worden van de groep."/>
+ <spinner name="spin_enrollment_fee" tool_tip="Nieuwe leden moeten deze bijdrage betalen om deel te nemen aan de groep wanneer &quot;Contributie bijdrage&quot; is aangevinkt."/>
+ <combo_box name="group_mature_check" tool_tip="Stelt in of uw groepsinformatie als mature beschouwd wordt.">
+ <combo_item name="select_mature">
+ - Selecteer -
+ </combo_item>
+ <combo_item name="mature">
+ Mature inhoud
+ </combo_item>
+ <combo_item name="pg">
+ PG inhoud
+ </combo_item>
+ </combo_box>
+ <panel name="title_container">
+ <text name="active_title_label">
+ Mijn actieve titel
+ </text>
+ <combo_box name="active_title" tool_tip="Stelt de titel in die in uw avatar&apos;s naamlabel verschijnt wanneer deze groep actief is."/>
+ </panel>
+ <check_box label="Ontvang groepsberichten" name="receive_notices" tool_tip="Stelt in of u berichten van deze groep wilt ontvangen. Verwijder het vinkje wanneer u spam ontvangt van deze groep."/>
+ <check_box label="Toon deze groep in mijn profiel" name="list_groups_in_profile" tool_tip="Stelt in of u deze groep in uw profiel wil laten zien"/>
+ </panel>
+ <string name="incomplete_member_data_str">
+ Ledendata ophalen
+ </string>
+ <string name="confirm_group_create_str">
+ Het maken van deze groep zal u L$100 kosten. Weet u echt, echt, ECHT zeker dat u L$100 wil besteden om deze groep te maken?
+Wees u ervan bewust dat, indien niemand anders binnen 48 uur lid wordt van deze groep, deze ontmanteld zal worden, waarbij de groepsnaam onbeschikbaar zal blijven voor toekomstig gebruik.
+ </string>
+</panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_group_invite.xml b/indra/newview/skins/default/xui/nl/panel_group_invite.xml
index 27329539b9..004fdc4bee 100644
--- a/indra/newview/skins/default/xui/nl/panel_group_invite.xml
+++ b/indra/newview/skins/default/xui/nl/panel_group_invite.xml
@@ -1,21 +1,21 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Nodig een lid uit" name="invite_panel">
- <text name="help_text">
- U kunt meerdere inwoners uitnodigen voor uw groep. Klik &apos;Open persoonkiezer&apos; om te starten.
- </text>
- <button label="Open persoonkiezer" name="add_button" tool_tip=""/>
- <name_list name="invitee_list" tool_tip="Houd de Ctrl-toets vast en klik de namen van de inwoners om meerdere te selecteren."/>
- <button label="Verwijder geselecteerden van lijst" name="remove_button" tool_tip="Verwijderd hierboven geselecteerde inwoners van de uitnodigingslijst."/>
- <text name="role_text">
- Kies welke rol aan hen wordt toegewezen:
- </text>
- <combo_box name="role_name" tool_tip="Kies uit de lijst met rollen waarvoor u toestemming heeft om leden toe te wijzen."/>
- <button label="Verzend uitnodigingen" name="ok_button"/>
- <button label="Annuleren" name="cancel_button"/>
- <string name="confirm_invite_owner_str">
- Weet u zeker dat u een (een) nieuwe eigenaar(s) wilt uitnodigen? Deze actie is permanent!
- </string>
- <string name="loading">
- (laden...)
- </string>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Nodig een lid uit" name="invite_panel">
+ <text name="help_text">
+ U kunt meerdere inwoners selecteren om voor uw groep uit te nodigen. Klik &apos;Open inwonerkiezer&apos; om te starten.
+ </text>
+ <button label="Open inwonerkiezer" name="add_button" tool_tip=""/>
+ <name_list name="invitee_list" tool_tip="Houd de Ctrl-toets vast en klik de namen van de inwoners om meerdere te selecteren."/>
+ <button label="Verwijder geselecteerden van lijst" name="remove_button" tool_tip="Verwijderd hierboven geselecteerde inwoners van de uitnodigingslijst."/>
+ <text name="role_text">
+ Kies welke rol aan hen wordt toegewezen:
+ </text>
+ <combo_box name="role_name" tool_tip="Kies uit de lijst met rollen waarvoor u toestemming heeft om leden toe te wijzen."/>
+ <button label="Verzend uitnodigingen" name="ok_button"/>
+ <button label="Annuleren" name="cancel_button"/>
+ <string name="confirm_invite_owner_str">
+ Weet u zeker dat u een (een) nieuwe eigenaar(s) wilt uitnodigen? Deze actie is permanent!
+ </string>
+ <string name="loading">
+ (laden...)
+ </string>
+</panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_group_notices.xml b/indra/newview/skins/default/xui/nl/panel_group_notices.xml
index 2e464e3a7a..41aff527dd 100644
--- a/indra/newview/skins/default/xui/nl/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/nl/panel_group_notices.xml
@@ -1,61 +1,61 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Berichten" name="notices_tab">
- <string name="help_text">
- Berichten vormen een snelle manier om met een groep te communiceren door een bericht en optioneel een bevestigd item af te leveren. Berichten gaan alleen naar groepsleden in rollen die de mogelijkheid hebben om berichten te ontvangen. U kunt berichten uitzetten in de tab Algemeen.
- </string>
- <string name="no_notices_text">
- Er zijn geen oude berichten.
- </string>
- <button label="?" label_selected="?" name="help_button"/>
- <text name="lbl">
- Groepsberichtenarchief
- </text>
- <text name="lbl2">
- Berichten worden 14 dagen bewaard. Klik hieronder het bericht dat u wilt bekijken. Klik de &apos;Verversen&apos; knop om te controleren of nieuwe berichten zijn ontvangen. Berichtenlijsten zijn gelimiteerd tot 200 berichten groep per dag.
- </text>
- <scroll_list name="notice_list">
- <column label="Onderwerp" name="subject"/>
- <column label="Van" name="from"/>
- <column label="Datum" name="date"/>
- </scroll_list>
- <text name="notice_list_none_found">
- Geen gevonden.
- </text>
- <button label="Maak nieuw bericht" label_selected="Maak nieuw bericht" name="create_new_notice"/>
- <button label="Verversen" label_selected="Ververs lijst" name="refresh_notices"/>
- <panel label="Maak nieuw bericht" name="panel_create_new_notice">
- <text name="lbl">
- Maak een bericht
- </text>
- <text name="lbl2">
- U dient een onderwerp in te voeren om een bericht te versturen. U kunt een enkel item aan een bericht toevoegen door het van uw inventaris naar dit paneel te slepen. Bevestigde items moeten kopieerbaar en overdraagbaar zijn en u kunt geen mappen versturen.
- </text>
- <text name="lbl3">
- Onderwerp:
- </text>
- <text name="lbl4">
- Bericht:
- </text>
- <text name="lbl5">
- Bevestig:
- </text>
- <button label="Verwijder bevestiging:" label_selected="Verwijder bevestiging:" name="remove_attachment"/>
- <button label="Verzend bericht" label_selected="Verzend bericht" name="send_notice"/>
- <panel name="drop_target" tool_tip="Sleep een inventarisitem op het berichtvenster om het met het bericht mee te sturen. U dient permissie te hebben om het object te kopiëren en over te dragen wilt u het met het bericht mee kunnen sturen."/>
- </panel>
- <panel label="Bekijk oud bericht" name="panel_view_past_notice">
- <text name="lbl">
- Gearchiveerd bericht
- </text>
- <text name="lbl2">
- Om een nieuw bericht te sturen, klik de &apos;Maak nieuw bericht&apos; knop hierboven.
- </text>
- <text name="lbl3">
- Onderwerp:
- </text>
- <text name="lbl4">
- Bericht:
- </text>
- <button label="Open bevestiging" label_selected="Open bevestiging" name="open_attachment"/>
- </panel>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Berichten" name="notices_tab">
+ <string name="help_text">
+ Berichten vormen een snelle manier om met een groep te communiceren door een bericht en optioneel een bevestigd item af te leveren. Berichten gaan alleen naar groepsleden in rollen die de mogelijkheid hebben om berichten te ontvangen. U kunt berichten uitzetten in de tab Algemeen.
+ </string>
+ <string name="no_notices_text">
+ Er zijn geen oude berichten.
+ </string>
+ <button label="?" label_selected="?" name="help_button"/>
+ <text name="lbl">
+ Groepsberichtenarchief
+ </text>
+ <text name="lbl2">
+ Berichten worden 14 dagen bewaard. Klik hieronder het bericht dat u wilt bekijken. Klik de &apos;Verversen&apos; knop om te controleren of nieuwe berichten zijn ontvangen. Berichtenlijsten zijn gelimiteerd tot 200 berichten groep per dag.
+ </text>
+ <scroll_list name="notice_list">
+ <column label="Onderwerp" name="subject"/>
+ <column label="Van" name="from"/>
+ <column label="Datum" name="date"/>
+ </scroll_list>
+ <text name="notice_list_none_found">
+ Geen gevonden.
+ </text>
+ <button label="Maak nieuw bericht" label_selected="Maak nieuw bericht" name="create_new_notice"/>
+ <button label="Verversen" label_selected="Ververs lijst" name="refresh_notices"/>
+ <panel label="Maak nieuw bericht" name="panel_create_new_notice">
+ <text name="lbl">
+ Maak een bericht
+ </text>
+ <text name="lbl2">
+ U dient een onderwerp in te voeren om een bericht te versturen. U kunt een enkel item aan een bericht toevoegen door het van uw inventaris naar dit paneel te slepen. Bevestigde items moeten kopieerbaar en overdraagbaar zijn en u kunt geen mappen versturen.
+ </text>
+ <text name="lbl3">
+ Onderwerp:
+ </text>
+ <text name="lbl4">
+ Bericht:
+ </text>
+ <text name="lbl5">
+ Bevestig:
+ </text>
+ <button label="Verwijder bevestiging:" label_selected="Verwijder bevestiging:" name="remove_attachment"/>
+ <button label="Verzend bericht" label_selected="Verzend bericht" name="send_notice"/>
+ <panel name="drop_target" tool_tip="Sleep een inventarisitem op het berichtvenster om het met het bericht mee te sturen. U dient permissie te hebben om het object te kopiëren en over te dragen wilt u het met het bericht mee kunnen sturen."/>
+ </panel>
+ <panel label="Bekijk oud bericht" name="panel_view_past_notice">
+ <text name="lbl">
+ Gearchiveerd bericht
+ </text>
+ <text name="lbl2">
+ Om een nieuw bericht te sturen, klik de &apos;Maak nieuw bericht&apos; knop hierboven.
+ </text>
+ <text name="lbl3">
+ Onderwerp:
+ </text>
+ <text name="lbl4">
+ Bericht:
+ </text>
+ <button label="Open bevestiging" label_selected="Open bevestiging" name="open_attachment"/>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_group_roles.xml b/indra/newview/skins/default/xui/nl/panel_group_roles.xml
index 3c071611a7..50aabb0433 100644
--- a/indra/newview/skins/default/xui/nl/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/nl/panel_group_roles.xml
@@ -1,135 +1,135 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Leden &amp; Rollen" name="roles_tab">
- <string name="default_needs_apply_text">
- Er zijn niet toegepaste wijzigingen op de huidige sub-tab.
- </string>
- <string name="want_apply_text">
- Wilt u deze wijzigingen toepassen?
- </string>
- <button label="?" name="help_button"/>
- <panel name="members_header">
- <text name="static">
- Leden &amp; Rollen
- </text>
- <text name="static2">
- Groepsleden krijgen Rollen met Mogelijkheden toegekend. Deze instellingen kunnen eenvoudig aangepast worden, zodat meer organisatie en flexibiliteit mogelijk is.
- </text>
- </panel>
- <panel name="roles_header">
- <text name="static">
- Rollen
- </text>
- <text name="role_properties_modifiable">
- Selecteer een Rol hieronder. U kunt zijn Naam, Omschrijving en Lid Titel wijzigen.
- </text>
- <text name="role_properties_not_modifiable">
- Selecteer een Rol hieronder om zijn eigenschappen, Leden en toegestane Mogelijkheden te bekijken.
- </text>
- <text name="role_actions_modifiable">
- U kunt ook Mogelijkheden aan de Rol toekennen.
- </text>
- <text name="role_actions_not_modifiable">
- U kunt de toegekende Mogelijkheden bekijken, maar niet wijzigen.
- </text>
- </panel>
- <panel name="actions_header">
- <text name="static">
- Mogelijkheden
- </text>
- <text name="static2">
- U kunt de Omschrijving van een Mogelijkheid bekijken en welke Rollen en Leden de Mogelijkheid kunnen uitvoeren.
- </text>
- </panel>
- <tab_container name="roles_tab_container">
- <panel label="Leden" name="members_sub_tab" tool_tip="Leden">
- <button label="Zoeken" name="search_button"/>
- <button label="Alles Tonen" name="show_all_button"/>
- <name_list name="member_list">
- <column label="Lid Naam" name="name"/>
- <column label="Gedoneerde Tier" name="donated"/>
- <column label="Laatste Login" name="online"/>
- </name_list>
- <button label="Uitnodigen Nieuwe Persoon..." name="member_invite"/>
- <button label="Uitwerpen uit de Groep" name="member_eject"/>
- <string name="help_text">
- U kunt Rollen aan Leden toewijzen of van Leden afnemen. Selecteer meerdere Leden door de Ctrl toets ingedrukt te houden en op hun namen te klikken.
- </string>
- </panel>
- <panel label="Rollen" name="roles_sub_tab">
- <button label="Zoeken" name="search_button"/>
- <button label="Alles Tonen" name="show_all_button"/>
- <scroll_list name="role_list">
- <column label="Rol Naam" name="name"/>
- <column label="Titel" name="title"/>
- <column label="Leden" name="members"/>
- </scroll_list>
- <button label="Nieuwe Rol Maken ..." name="role_create"/>
- <button label="Rol Verwijderen" name="role_delete"/>
- <string name="help_text">
- Rollen hebben een titel en een toegestane lijst met Mogelijkheden die Leden kunnen uitvoeren. Leden kunnen tot 1 of meer Rollen behoren. Een groep kan tot 10 Rollen bevatten, inclusief de Iedereen en Eigenaren Rollen.
- </string>
- <string name="cant_delete_role">
- De &apos;Iedereen&apos; en &apos;Eigenaren&apos; Rollen zijn speciaal en kunnen niet verwijderd worden.
- </string>
- </panel>
- <panel label="Mogelijkheden" name="actions_sub_tab">
- <button label="Zoeken" name="search_button"/>
- <button label="Alles Tonen" name="show_all_button"/>
- <scroll_list name="action_list" tool_tip="Selecteer een Mogelijkheid om meer details te bekijken."/>
- <string name="help_text">
- Mogelijkheden stellen leden in staat om specifieke dingen in een groep te doen. Er is een brede variëteit aan Mogelijkheden.
- </string>
- </panel>
- </tab_container>
- <panel name="members_footer">
- <text name="static">
- Toegekende Rollen
- </text>
- <text name="static2">
- Toegestane Mogelijkheden
- </text>
- <scroll_list name="member_allowed_actions" tool_tip="Kijk voor details van elke Toegestane Mogelijkheid in de Mogelijkheden tab."/>
- </panel>
- <panel name="roles_footer">
- <text name="static">
- Naam
- </text>
- <text name="static2">
- Omschrijving
- </text>
- <line_editor name="role_name">
- Werknemers
- </line_editor>
- <text name="static3">
- Titel
- </text>
- <line_editor name="role_title">
- (wachten)
- </line_editor>
- <text_editor name="role_description">
- (wachten)
- </text_editor>
- <text name="static4">
- Toegewezen Leden
- </text>
- <text name="static5" tool_tip="Een lijst met Mogelijkheden die de geselecteerd rol kan uitvoeren.">
- Toegestane Mogelijkheden
- </text>
- <check_box label="Leden zijn zichtbaar" name="role_visible_in_list" tool_tip="Bepaalt of leden van deze rol zichtbaar zijn in de Algemeen tab voor mensen buiten de groep."/>
- <scroll_list name="role_allowed_actions" tool_tip="Kijk voor details van elke Toegestane Mogelijkheid in de Mogelijkheden tab."/>
- </panel>
- <panel name="actions_footer">
- <text name="static">
- Omschrijving
- </text>
- <text_editor name="action_description">
- Dit is de Mogelijkheid &apos;Werp Leden uit deze Groep&apos;. Alleen een Eigenaar kan een andere Eigenaar uitwerpen.
- </text_editor>
- <text name="static2">
- Rollen met Mogelijkheid
- </text>
- <text name="static3">
- Leden met Mogelijkheid
- </text>
- </panel>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Leden &amp; Rollen" name="roles_tab">
+ <string name="default_needs_apply_text">
+ Er zijn niet toegepaste wijzigingen op de huidige sub-tab.
+ </string>
+ <string name="want_apply_text">
+ Wilt u deze wijzigingen toepassen?
+ </string>
+ <button label="?" name="help_button"/>
+ <panel name="members_header">
+ <text name="static">
+ Leden &amp; Rollen
+ </text>
+ <text name="static2">
+ Groepsleden krijgen Rollen met Mogelijkheden toegekend. Deze instellingen kunnen eenvoudig aangepast worden, zodat meer organisatie en flexibiliteit mogelijk is.
+ </text>
+ </panel>
+ <panel name="roles_header">
+ <text name="static">
+ Rollen
+ </text>
+ <text name="role_properties_modifiable">
+ Selecteer een Rol hieronder. U kunt zijn Naam, Omschrijving en Lid Titel wijzigen.
+ </text>
+ <text name="role_properties_not_modifiable">
+ Selecteer een Rol hieronder om zijn eigenschappen, Leden en toegestane Mogelijkheden te bekijken.
+ </text>
+ <text name="role_actions_modifiable">
+ U kunt ook Mogelijkheden aan de Rol toekennen.
+ </text>
+ <text name="role_actions_not_modifiable">
+ U kunt de toegekende Mogelijkheden bekijken, maar niet wijzigen.
+ </text>
+ </panel>
+ <panel name="actions_header">
+ <text name="static">
+ Mogelijkheden
+ </text>
+ <text name="static2">
+ U kunt de Omschrijving van een Mogelijkheid bekijken en welke Rollen en Leden de Mogelijkheid kunnen uitvoeren.
+ </text>
+ </panel>
+ <tab_container name="roles_tab_container">
+ <panel label="Leden" name="members_sub_tab" tool_tip="Leden">
+ <button label="Zoeken" name="search_button"/>
+ <button label="Alles Tonen" name="show_all_button"/>
+ <name_list name="member_list">
+ <column label="Lid Naam" name="name"/>
+ <column label="Gedoneerde Tier" name="donated"/>
+ <column label="Laatste Login" name="online"/>
+ </name_list>
+ <button label="Nieuw Lid Uitnodigen..." name="member_invite"/>
+ <button label="Uitwerpen uit de Groep" name="member_eject"/>
+ <string name="help_text">
+ U kunt Rollen aan Leden toewijzen of van Leden afnemen. Selecteer meerdere Leden door de Ctrl toets ingedrukt te houden en op hun namen te klikken.
+ </string>
+ </panel>
+ <panel label="Rollen" name="roles_sub_tab">
+ <button label="Zoeken" name="search_button"/>
+ <button label="Alles Tonen" name="show_all_button"/>
+ <scroll_list name="role_list">
+ <column label="Rol Naam" name="name"/>
+ <column label="Titel" name="title"/>
+ <column label="Leden" name="members"/>
+ </scroll_list>
+ <button label="Nieuwe Rol Maken ..." name="role_create"/>
+ <button label="Rol Verwijderen" name="role_delete"/>
+ <string name="help_text">
+ Rollen hebben een titel en een toegestane lijst met Mogelijkheden die Leden kunnen uitvoeren. Leden kunnen tot 1 of meer Rollen behoren. Een groep kan tot 10 Rollen bevatten, inclusief de Iedereen en Eigenaren Rollen.
+ </string>
+ <string name="cant_delete_role">
+ De &apos;Iedereen&apos; en &apos;Eigenaren&apos; Rollen zijn speciaal en kunnen niet verwijderd worden.
+ </string>
+ </panel>
+ <panel label="Mogelijkheden" name="actions_sub_tab">
+ <button label="Zoeken" name="search_button"/>
+ <button label="Alles Tonen" name="show_all_button"/>
+ <scroll_list name="action_list" tool_tip="Selecteer een Mogelijkheid om meer details te bekijken."/>
+ <string name="help_text">
+ Mogelijkheden stellen leden in staat om specifieke dingen in een groep te doen. Er is een brede variëteit aan Mogelijkheden.
+ </string>
+ </panel>
+ </tab_container>
+ <panel name="members_footer">
+ <text name="static">
+ Toegekende Rollen
+ </text>
+ <text name="static2">
+ Toegestane Mogelijkheden
+ </text>
+ <scroll_list name="member_allowed_actions" tool_tip="Kijk voor details van elke Toegestane Mogelijkheid in de Mogelijkheden tab."/>
+ </panel>
+ <panel name="roles_footer">
+ <text name="static">
+ Naam
+ </text>
+ <text name="static2">
+ Omschrijving
+ </text>
+ <line_editor name="role_name">
+ Werknemers
+ </line_editor>
+ <text name="static3">
+ Titel
+ </text>
+ <line_editor name="role_title">
+ (wachten)
+ </line_editor>
+ <text_editor name="role_description">
+ (wachten)
+ </text_editor>
+ <text name="static4">
+ Toegewezen Leden
+ </text>
+ <text name="static5" tool_tip="Een lijst met Mogelijkheden die de geselecteerd rol kan uitvoeren.">
+ Toegestane Mogelijkheden
+ </text>
+ <check_box label="Leden zijn zichtbaar" name="role_visible_in_list" tool_tip="Bepaalt of leden van deze rol zichtbaar zijn in de Algemeen tab voor mensen buiten de groep."/>
+ <scroll_list name="role_allowed_actions" tool_tip="Kijk voor details van elke Toegestane Mogelijkheid in de Mogelijkheden tab."/>
+ </panel>
+ <panel name="actions_footer">
+ <text name="static">
+ Omschrijving
+ </text>
+ <text_editor name="action_description">
+ Dit is de Mogelijkheid &apos;Werp Leden uit deze Groep&apos;. Alleen een Eigenaar kan een andere Eigenaar uitwerpen.
+ </text_editor>
+ <text name="static2">
+ Rollen met Mogelijkheid
+ </text>
+ <text name="static3">
+ Leden met Mogelijkheid
+ </text>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_groups.xml b/indra/newview/skins/default/xui/nl/panel_groups.xml
index 1e4493c5e8..5b66eddb73 100644
--- a/indra/newview/skins/default/xui/nl/panel_groups.xml
+++ b/indra/newview/skins/default/xui/nl/panel_groups.xml
@@ -1,15 +1,15 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="groups">
- <text name="groupdesc">
- Uw huidige actieve groep wordt vet getoond.
- </text>
- <text name="groupcount">
- U behoort tot [COUNT] groepen (maximaal [MAX]).
- </text>
- <button label="IM/Oproepen" name="IM" tool_tip="Open Instant Message sessie"/>
- <button label="Info" name="Info"/>
- <button label="Activeren" name="Activate"/>
- <button label="Verlaten" name="Leave"/>
- <button label="Maak…" name="Create"/>
- <button label="Zoeken…" name="Search..."/>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="groups">
+ <text name="groupdesc">
+ Uw huidige actieve groep wordt vet getoond.
+ </text>
+ <text name="groupcount">
+ U behoort tot [COUNT] groepen (maximaal [MAX]).
+ </text>
+ <button label="IM/Oproepen" name="IM" tool_tip="Open Instant Message sessie"/>
+ <button label="Info" name="Info"/>
+ <button label="Activeren" name="Activate"/>
+ <button label="Verlaten" name="Leave"/>
+ <button label="Maak…" name="Create"/>
+ <button label="Zoeken…" name="Search..."/>
+</panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_login.xml b/indra/newview/skins/default/xui/nl/panel_login.xml
index ad56a9c348..5014d7761c 100644
--- a/indra/newview/skins/default/xui/nl/panel_login.xml
+++ b/indra/newview/skins/default/xui/nl/panel_login.xml
@@ -1,37 +1,37 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="panel_login">
- <string name="real_url">
- http://secondlife.com/app/login/
- </string>
- <string name="forgot_password_url">
- http://secondlife.com/account/request.php
- </string>
- <text name="first_name_text">
- Voornaam:
- </text>
- <text name="last_name_text">
- Achternaam:
- </text>
- <text name="password_text">
- Wachtwoord:
- </text>
- <text name="start_location_text">
- Start Locatie:
- </text>
- <combo_box name="start_location_combo">
- <combo_box.item name="MyHome" label="Mijn Thuis"/>
- <combo_box.item name="MyLastLocation" label="Mijn Laatste Locatie"/>
- <combo_box.item name="Typeregionname" label="lt; Type regio naam &gt;"/>
- </combo_box>
- <check_box label="Onthoud wachtwoord" name="remember_check"/>
- <button label="Inloggen" label_selected="Inloggen" name="connect_btn"/>
- <text name="create_new_account_text">
- Nieuw account maken
- </text>
- <text name="forgot_password_text">
- Naam of wachtwoord vergeten?
- </text>
- <text name="channel_text">
- [VERSION]
- </text>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="panel_login">
+ <string name="real_url">
+ http://secondlife.com/app/login/
+ </string>
+ <string name="forgot_password_url">
+ http://secondlife.com/account/request.php
+ </string>
+ <text name="first_name_text">
+ Voornaam:
+ </text>
+ <text name="last_name_text">
+ Achternaam:
+ </text>
+ <text name="password_text">
+ Wachtwoord:
+ </text>
+ <text name="start_location_text">
+ Startlocatie:
+ </text>
+ <combo_box name="start_location_combo">
+ <combo_box.item name="MyHome" label="Mijn Thuis"/>
+ <combo_box.item name="MyLastLocation" label="Mijn Laatste Locatie"/>
+ <combo_box.item name="Typeregionname" label="lt; Type regio naam &gt;"/>
+ </combo_box>
+ <check_box label="Onthoud wachtwoord" name="remember_check"/>
+ <button label="Inloggen" label_selected="Inloggen" name="connect_btn"/>
+ <text name="create_new_account_text">
+ Nieuw account maken
+ </text>
+ <text name="forgot_password_text">
+ Naam of wachtwoord vergeten?
+ </text>
+ <text name="channel_text">
+ [VERSION]
+ </text>
+</panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_region_debug.xml b/indra/newview/skins/default/xui/nl/panel_region_debug.xml
index daaec12783..9fad8e478a 100644
--- a/indra/newview/skins/default/xui/nl/panel_region_debug.xml
+++ b/indra/newview/skins/default/xui/nl/panel_region_debug.xml
@@ -1,40 +1,40 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Debug" name="Debug">
- <text name="region_text_lbl">
- Regio:
- </text>
- <text name="region_text">
- onbekend
- </text>
- <check_box label="Schakel scripts uit" name="disable_scripts_check" tool_tip="Schakel alle scripts in deze regio uit"/>
- <button label="?" name="disable_scripts_help"/>
- <check_box label="Schakel botsingen uit" name="disable_collisions_check" tool_tip="Schakel alle niet-avatar botsingen in deze regio uit"/>
- <button label="?" name="disable_collisions_help"/>
- <check_box label="Fysiek uitschakelen" name="disable_physics_check" tool_tip="Alle fysiek in deze regio uitschakelen"/>
- <button label="?" name="disable_physics_help"/>
- <button label="Toepassen" name="apply_btn"/>
- <text name="objret_text_lbl">
- Object retourneren
- </text>
- <text name="resident_text_lbl">
- Inwoner:
- </text>
- <line_editor name="target_avatar_name">
- (none)
- </line_editor>
- <button label="Kies..." name="choose_avatar_btn"/>
- <text name="options_text_lbl">
- Opties:
- </text>
- <check_box label="Retourneer alleen objecten die scripts bevatten." name="return_scripts" tool_tip="Retourneer alleen objecten met scripts."/>
- <check_box label="Retourneer alleen die objecten op het land van iemand anders" name="return_other_land" tool_tip="Retourneer alleen objecten die zich op land bevinden dat aan iemand anders toebehoort"/>
- <check_box label="Retourneer objecten in alle regio&apos;s van dit estate" name="return_estate_wide" tool_tip="Retourneer objecten in alle regio&apos;s van dit estate"/>
- <button label="Retourneren" name="return_btn"/>
- <button label="Toon top botsingen..." name="top_colliders_btn" tool_tip="Lijst met objecten die de meeste mogelijke botsingen ondergaan"/>
- <button label="?" name="top_colliders_help"/>
- <button label="Toon top scripts..." name="top_scripts_btn" tool_tip="Lijst met objecten die de meeste tijd besteden met het uitvoeren van scripts"/>
- <button label="?" name="top_scripts_help"/>
- <button label="Herstart regio" name="restart_btn" tool_tip="Geef een 2 minuten afteltijd en herstart de regio."/>
- <button label="?" name="restart_help"/>
- <button label="Vertraag herstart" name="cancel_restart_btn" tool_tip="Vertraag herstart met een uur"/>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Debug" name="Debug">
+ <text name="region_text_lbl">
+ Regio:
+ </text>
+ <text name="region_text">
+ onbekend
+ </text>
+ <check_box label="Schakel scripts uit" name="disable_scripts_check" tool_tip="Schakel alle scripts in deze regio uit"/>
+ <button label="?" name="disable_scripts_help"/>
+ <check_box label="Schakel botsingen uit" name="disable_collisions_check" tool_tip="Schakel alle niet-avatar botsingen in deze regio uit"/>
+ <button label="?" name="disable_collisions_help"/>
+ <check_box label="Fysiek uitschakelen" name="disable_physics_check" tool_tip="Alle fysiek in deze regio uitschakelen"/>
+ <button label="?" name="disable_physics_help"/>
+ <button label="Toepassen" name="apply_btn"/>
+ <text name="objret_text_lbl">
+ Object retourneren
+ </text>
+ <text name="resident_text_lbl">
+ Inwoner:
+ </text>
+ <line_editor name="target_avatar_name">
+ (none)
+ </line_editor>
+ <button label="Kies..." name="choose_avatar_btn"/>
+ <text name="options_text_lbl">
+ Opties:
+ </text>
+ <check_box label="Retourneer alleen objecten die scripts bevatten." name="return_scripts" tool_tip="Retourneer alleen objecten met scripts."/>
+ <check_box label="Retourneer alleen die objecten op het land van iemand anders" name="return_other_land" tool_tip="Retourneer alleen objecten die zich op land bevinden dat aan iemand anders toebehoort"/>
+ <check_box label="Retourneer objecten in alle regio&apos;s van dit estate" name="return_estate_wide" tool_tip="Retourneer objecten in alle regio&apos;s van dit estate"/>
+ <button label="Retourneren" name="return_btn"/>
+ <button label="Toon top botsingen..." name="top_colliders_btn" tool_tip="Lijst met objecten die de meeste mogelijke botsingen ondergaan"/>
+ <button label="?" name="top_colliders_help"/>
+ <button label="Toon top scripts..." name="top_scripts_btn" tool_tip="Lijst met objecten die de meeste tijd besteden met het uitvoeren van scripts"/>
+ <button label="?" name="top_scripts_help"/>
+ <button label="Herstart regio" name="restart_btn" tool_tip="Geef een 2 minuten afteltijd en herstart de regio."/>
+ <button label="?" name="restart_help"/>
+ <button label="Vertraag herstart" name="cancel_restart_btn" tool_tip="Vertraag herstart met een uur"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_region_estate.xml b/indra/newview/skins/default/xui/nl/panel_region_estate.xml
index 18dd3bf147..731887dc5d 100644
--- a/indra/newview/skins/default/xui/nl/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/nl/panel_region_estate.xml
@@ -1,68 +1,68 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Estate" name="Estate">
- <text name="estate_help_text">
- Wijzigingen van instellingen op dit tabblad zullen alle regio&apos;s in de estate beïnvloeden.
- </text>
- <text name="estate_text">
- Estate:
- </text>
- <text name="estate_name">
- (onbekend)
- </text>
- <text name="owner_text">
- Eigenaar
- </text>
- <text name="estate_owner">
- (onbekend)
- </text>
- <check_box label="Gebruik globale tijd" name="use_global_time_check"/>
- <button label="?" name="use_global_time_help"/>
- <check_box label="Vaste zon" name="fixed_sun_check"/>
- <button label="?" name="fixed_sun_help"/>
- <slider label="Fase" name="sun_hour_slider"/>
- <check_box label="Publieke toegang toestaan" name="externally_visible_check"/>
- <button label="?" name="externally_visible_help"/>
- <text name="Only Allow">
- Beperk toegang tot:
- </text>
- <check_box label="Inwoners met betalingsinformatie opgeslagen" name="limit_payment" tool_tip="Verban ongeïdentificeerde inwoners."/>
- <check_box label="Leeftijdgeverifieerde volwassenen" name="limit_age_verified" tool_tip="Verban inwoners die hun leeftijd niet geverifieerd hebben. Zie support.secondlife.com voor meer informatie."/>
- <check_box label="Voice chat toestaan" name="voice_chat_check"/>
- <button label="?" name="voice_chat_help"/>
- <check_box label="Directe teleport toestaan" name="allow_direct_teleport"/>
- <button label="?" name="allow_direct_teleport_help"/>
- <text name="abuse_email_text">
- Misbruik e-mail adres:
- </text>
- <string name="email_unsupported">
- Optie niet ondersteund
- </string>
- <button label="?" name="abuse_email_address_help"/>
- <button label="Toepassen" name="apply_btn"/>
- <button label="Gebruiker verwijderen van estate" name="kick_user_from_estate_btn"/>
- <button label="Zend bericht naar estate..." name="message_estate_btn"/>
- <text name="estate_manager_label">
- Estate beheerders:
- </text>
- <button label="?" name="estate_manager_help"/>
- <button label="Verwijderen..." name="remove_estate_manager_btn"/>
- <button label="Toevoegen..." name="add_estate_manager_btn"/>
- <text name="allow_resident_label">
- Toegestane inwoners:
- </text>
- <button label="?" name="allow_resident_help"/>
- <button label="Verwijderen..." name="remove_allowed_avatar_btn"/>
- <button label="Toevoegen..." name="add_allowed_avatar_btn"/>
- <text name="allow_group_label">
- Toegestane groepen
- </text>
- <button label="?" name="allow_group_help"/>
- <button label="Verwijderen..." name="remove_allowed_group_btn"/>
- <button label="Toevoegen..." name="add_allowed_group_btn"/>
- <text name="ban_resident_label">
- Verbannen inwoners:
- </text>
- <button label="?" name="ban_resident_help"/>
- <button label="Verwijderen..." name="remove_banned_avatar_btn"/>
- <button label="Toevoegen..." name="add_banned_avatar_btn"/>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Estate" name="Estate">
+ <text name="estate_help_text">
+ Wijzigingen van instellingen op dit tabblad zullen alle regio&apos;s in de estate beïnvloeden.
+ </text>
+ <text name="estate_text">
+ Estate:
+ </text>
+ <text name="estate_name">
+ (onbekend)
+ </text>
+ <text name="owner_text">
+ Eigenaar
+ </text>
+ <text name="estate_owner">
+ (onbekend)
+ </text>
+ <check_box label="Gebruik globale tijd" name="use_global_time_check"/>
+ <button label="?" name="use_global_time_help"/>
+ <check_box label="Vaste zon" name="fixed_sun_check"/>
+ <button label="?" name="fixed_sun_help"/>
+ <slider label="Fase" name="sun_hour_slider"/>
+ <check_box label="Publieke toegang toestaan" name="externally_visible_check"/>
+ <button label="?" name="externally_visible_help"/>
+ <text name="Only Allow">
+ Beperk toegang tot:
+ </text>
+ <check_box label="Inwoners met betalingsinformatie opgeslagen" name="limit_payment" tool_tip="Verban ongeïdentificeerde inwoners."/>
+ <check_box label="Leeftijdgeverifieerde volwassenen" name="limit_age_verified" tool_tip="Verban inwoners die hun leeftijd niet geverifieerd hebben. Zie support.secondlife.com voor meer informatie."/>
+ <check_box label="Voice chat toestaan" name="voice_chat_check"/>
+ <button label="?" name="voice_chat_help"/>
+ <check_box label="Directe teleport toestaan" name="allow_direct_teleport"/>
+ <button label="?" name="allow_direct_teleport_help"/>
+ <text name="abuse_email_text">
+ Misbruik e-mail adres:
+ </text>
+ <string name="email_unsupported">
+ Optie niet ondersteund
+ </string>
+ <button label="?" name="abuse_email_address_help"/>
+ <button label="Toepassen" name="apply_btn"/>
+ <button label="Gebruiker verwijderen van estate" name="kick_user_from_estate_btn"/>
+ <button label="Zend bericht naar estate..." name="message_estate_btn"/>
+ <text name="estate_manager_label">
+ Estate beheerders:
+ </text>
+ <button label="?" name="estate_manager_help"/>
+ <button label="Verwijderen..." name="remove_estate_manager_btn"/>
+ <button label="Toevoegen..." name="add_estate_manager_btn"/>
+ <text name="allow_resident_label">
+ Toegestane inwoners:
+ </text>
+ <button label="?" name="allow_resident_help"/>
+ <button label="Verwijderen..." name="remove_allowed_avatar_btn"/>
+ <button label="Toevoegen..." name="add_allowed_avatar_btn"/>
+ <text name="allow_group_label">
+ Toegestane groepen
+ </text>
+ <button label="?" name="allow_group_help"/>
+ <button label="Verwijderen..." name="remove_allowed_group_btn"/>
+ <button label="Toevoegen..." name="add_allowed_group_btn"/>
+ <text name="ban_resident_label">
+ Verbannen inwoners:
+ </text>
+ <button label="?" name="ban_resident_help"/>
+ <button label="Verwijderen..." name="remove_banned_avatar_btn"/>
+ <button label="Toevoegen..." name="add_banned_avatar_btn"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_region_general.xml b/indra/newview/skins/default/xui/nl/panel_region_general.xml
index c1b8961c21..9ed822ac13 100644
--- a/indra/newview/skins/default/xui/nl/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/nl/panel_region_general.xml
@@ -1,46 +1,59 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Regio" name="General">
- <text name="region_text_lbl">
- Regio:
- </text>
- <text name="region_text">
- onbekend
- </text>
- <text name="version_channel_text_lbl">
- Versie:
- </text>
- <text name="version_channel_text">
- onbekend
- </text>
- <check_box label="Blokkeer terreinbewerking" name="block_terraform_check"/>
- <button label="?" name="terraform_help"/>
- <check_box label="Blokkeer vliegen" name="block_fly_check"/>
- <button label="?" name="fly_help"/>
- <check_box label="Letsel toestaan" name="allow_damage_check"/>
- <button label="?" name="damage_help"/>
- <check_box label="Duwen Uitschakelen" name="restrict_pushobject"/>
- <button label="?" name="restrict_pushobject_help"/>
- <check_box label="Landverkoop toestaan" name="allow_land_resell_check"/>
- <button label="?" name="land_resell_help"/>
- <check_box label="Samenvoegen/opsplitsen land toestaan" name="allow_parcel_changes_check"/>
- <button label="?" name="parcel_changes_help"/>
- <check_box label="Blokkeer zichtbaarheid land in zoeken" name="block_parcel_search_check" tool_tip="Laat mensen deze regio en zijn percelen in zoekresultaten zien"/>
- <button label="?" name="parcel_search_help"/>
- <spinner label="Agent limiet" name="agent_limit_spin"/>
- <button label="?" name="agent_limit_help"/>
- <spinner label="Object bonus" name="object_bonus_spin"/>
- <button label="?" name="object_bonus_help"/>
- <text label="Volwassenheid" name="access_text">
- Volwassenheid:
- </text>
-
-
-
-
- <button label="?" name="access_help"/>
- <button label="Toepassen" name="apply_btn"/>
- <button label="Teleport één gebruiker naar thuislocatie…" name="kick_btn"/>
- <button label="Teleport alle gebruikers naar thuislocatie…" name="kick_all_btn"/>
- <button label="Zend bericht naar regio…" name="im_btn"/>
- <button label="Beheer telehub…" name="manage_telehub_btn"/>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Regio" name="General">
+ <text name="region_text_lbl">
+ Regio:
+ </text>
+ <text name="region_text">
+ onbekend
+ </text>
+ <text name="version_channel_text_lbl">
+ Versie:
+ </text>
+ <text name="version_channel_text">
+ onbekend
+ </text>
+ <text name="region_type_lbl">
+ Type:
+ </text>
+ <text name="region_type">
+ onbekend
+ </text>
+ <check_box label="Blokkeer terreinbewerking" name="block_terraform_check"/>
+ <button label="?" name="terraform_help"/>
+ <check_box label="Blokkeer vliegen" name="block_fly_check"/>
+ <button label="?" name="fly_help"/>
+ <check_box label="Letsel toestaan" name="allow_damage_check"/>
+ <button label="?" name="damage_help"/>
+ <check_box label="Duwen Uitschakelen" name="restrict_pushobject"/>
+ <button label="?" name="restrict_pushobject_help"/>
+ <check_box label="Landverkoop toestaan" name="allow_land_resell_check"/>
+ <button label="?" name="land_resell_help"/>
+ <check_box label="Samenvoegen/opsplitsen land toestaan" name="allow_parcel_changes_check"/>
+ <button label="?" name="parcel_changes_help"/>
+ <check_box label="Blokkeer zichtbaarheid land in zoeken" name="block_parcel_search_check" tool_tip="Laat mensen deze regio en zijn percelen in zoekresultaten zien"/>
+ <button label="?" name="parcel_search_help"/>
+ <spinner label="Agent limiet" name="agent_limit_spin"/>
+ <button label="?" name="agent_limit_help"/>
+ <spinner label="Object bonus" name="object_bonus_spin"/>
+ <button label="?" name="object_bonus_help"/>
+ <text label="Volwassenheid" name="access_text">
+ Inhoudscategorie:
+ </text>
+ <combo_box label="Mature" name="access_combo">
+ <combo_item name="Adult">
+ Adult
+ </combo_item>
+ <combo_item name="Mature">
+ Mature
+ </combo_item>
+ <combo_item name="PG">
+ PG
+ </combo_item>
+ </combo_box>
+ <button label="?" name="access_help"/>
+ <button label="Toepassen" name="apply_btn"/>
+ <button label="Teleport één gebruiker naar thuislocatie…" name="kick_btn"/>
+ <button label="Teleport alle gebruikers naar thuislocatie…" name="kick_all_btn"/>
+ <button label="Zend bericht naar regio…" name="im_btn"/>
+ <button label="Beheer telehub…" name="manage_telehub_btn"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_region_terrain.xml b/indra/newview/skins/default/xui/nl/panel_region_terrain.xml
index 52a944a992..a79bcc0eb5 100644
--- a/indra/newview/skins/default/xui/nl/panel_region_terrain.xml
+++ b/indra/newview/skins/default/xui/nl/panel_region_terrain.xml
@@ -1,27 +1,27 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Terrein" name="Terrain">
- <text name="region_text_lbl">
- Regio:
- </text>
- <text name="region_text">
- onbekend
- </text>
- <spinner label="Waterhoogte" name="water_height_spin"/>
- <button label="?" name="water_height_help"/>
- <spinner label="Terrein verhooglimiet" name="terrain_raise_spin"/>
- <button label="?" name="terrain_raise_help"/>
- <spinner label="Terrein verlaaglimiet" name="terrain_lower_spin"/>
- <button label="?" name="terrain_lower_help"/>
- <check_box label="Gebruik estate zon" name="use_estate_sun_check"/>
- <button label="?" name="use_estate_sun_help"/>
- <check_box label="Vaste zon" name="fixed_sun_check"/>
- <button label="?" name="fixed_sun_help"/>
- <slider label="Fase" name="sun_hour_slider"/>
- <button label="Toepassen" name="apply_btn"/>
- <button label="Download RAW terrein..." name="download_raw_btn" tool_tip="Alleen beschikbaar voor estate-eigenaren, niet beheerders"/>
- <button label="?" name="download_raw_help"/>
- <button label="Upload RAW terrein..." name="upload_raw_btn" tool_tip="Alleen beschikbaar voor estate-eigenaren, niet beheerders"/>
- <button label="?" name="upload_raw_help"/>
- <button label="Bake terrein" name="bake_terrain_btn" tool_tip="Huidig terrein instellen als middelpunt voor verhoog/verlaag limieten"/>
- <button label="?" name="bake_terrain_help"/>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Terrein" name="Terrain">
+ <text name="region_text_lbl">
+ Regio:
+ </text>
+ <text name="region_text">
+ onbekend
+ </text>
+ <spinner label="Waterhoogte" name="water_height_spin"/>
+ <button label="?" name="water_height_help"/>
+ <spinner label="Terrein verhooglimiet" name="terrain_raise_spin"/>
+ <button label="?" name="terrain_raise_help"/>
+ <spinner label="Terrein verlaaglimiet" name="terrain_lower_spin"/>
+ <button label="?" name="terrain_lower_help"/>
+ <check_box label="Gebruik estate zon" name="use_estate_sun_check"/>
+ <button label="?" name="use_estate_sun_help"/>
+ <check_box label="Vaste zon" name="fixed_sun_check"/>
+ <button label="?" name="fixed_sun_help"/>
+ <slider label="Fase" name="sun_hour_slider"/>
+ <button label="Toepassen" name="apply_btn"/>
+ <button label="Download RAW terrein..." name="download_raw_btn" tool_tip="Alleen beschikbaar voor estate-eigenaren, niet beheerders"/>
+ <button label="?" name="download_raw_help"/>
+ <button label="Upload RAW terrein..." name="upload_raw_btn" tool_tip="Alleen beschikbaar voor estate-eigenaren, niet beheerders"/>
+ <button label="?" name="upload_raw_help"/>
+ <button label="Bake terrein" name="bake_terrain_btn" tool_tip="Huidig terrein instellen als middelpunt voor verhoog/verlaag limieten"/>
+ <button label="?" name="bake_terrain_help"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_region_texture.xml b/indra/newview/skins/default/xui/nl/panel_region_texture.xml
index 6ecf438f98..ff10e20b7c 100644
--- a/indra/newview/skins/default/xui/nl/panel_region_texture.xml
+++ b/indra/newview/skins/default/xui/nl/panel_region_texture.xml
@@ -1,57 +1,57 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Grond texturen" name="Textures">
- <text name="region_text_lbl">
- Regio:
- </text>
- <text name="region_text">
- onbekend
- </text>
- <text name="detail_texture_text">
- Terreintexturen (vereist 512x512, 24 bit .tga bestanden)
- </text>
- <text name="height_text_lbl">
- 1 (Laag)
- </text>
- <text name="height_text_lbl2">
- 2
- </text>
- <text name="height_text_lbl3">
- 3
- </text>
- <text name="height_text_lbl4">
- 4 (Hoog)
- </text>
- <text name="height_text_lbl5">
- Textuur hoogtebereiken
- </text>
- <text name="height_text_lbl6">
- Zuidwest
- </text>
- <text name="height_text_lbl7">
- Noordwest
- </text>
- <text name="height_text_lbl8">
- Zuidoost
- </text>
- <text name="height_text_lbl9">
- Noordoost
- </text>
- <spinner label="Laag" name="height_start_spin_0"/>
- <spinner label="Laag" name="height_start_spin_1"/>
- <spinner label="Laag" name="height_start_spin_2"/>
- <spinner label="Laag" name="height_start_spin_3"/>
- <spinner label="Hoog" name="height_range_spin_0"/>
- <spinner label="Hoog" name="height_range_spin_1"/>
- <spinner label="Hoog" name="height_range_spin_2"/>
- <spinner label="Hoog" name="height_range_spin_3"/>
- <text name="height_text_lbl10">
- Deze waardes vertegenwoordigen het mengbereik voor bovenstaande texturen.
- </text>
- <text name="height_text_lbl11">
- Gemeten in meters, is de LOW waarde de MAXIMUM hoogte van textuur #1,
- </text>
- <text name="height_text_lbl12">
- en de HIGH waarde is de MINIMUM hoogte van textuur #4.
- </text>
- <button label="Toepassen" name="apply_btn"/>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Grond texturen" name="Textures">
+ <text name="region_text_lbl">
+ Regio:
+ </text>
+ <text name="region_text">
+ onbekend
+ </text>
+ <text name="detail_texture_text">
+ Terreintexturen (vereist 512x512, 24 bit .tga bestanden)
+ </text>
+ <text name="height_text_lbl">
+ 1 (Laag)
+ </text>
+ <text name="height_text_lbl2">
+ 2
+ </text>
+ <text name="height_text_lbl3">
+ 3
+ </text>
+ <text name="height_text_lbl4">
+ 4 (Hoog)
+ </text>
+ <text name="height_text_lbl5">
+ Textuur hoogtebereiken
+ </text>
+ <text name="height_text_lbl6">
+ Zuidwest
+ </text>
+ <text name="height_text_lbl7">
+ Noordwest
+ </text>
+ <text name="height_text_lbl8">
+ Zuidoost
+ </text>
+ <text name="height_text_lbl9">
+ Noordoost
+ </text>
+ <spinner label="Laag" name="height_start_spin_0"/>
+ <spinner label="Laag" name="height_start_spin_1"/>
+ <spinner label="Laag" name="height_start_spin_2"/>
+ <spinner label="Laag" name="height_start_spin_3"/>
+ <spinner label="Hoog" name="height_range_spin_0"/>
+ <spinner label="Hoog" name="height_range_spin_1"/>
+ <spinner label="Hoog" name="height_range_spin_2"/>
+ <spinner label="Hoog" name="height_range_spin_3"/>
+ <text name="height_text_lbl10">
+ Deze waardes vertegenwoordigen het mengbereik voor bovenstaande texturen.
+ </text>
+ <text name="height_text_lbl11">
+ Gemeten in meters, is de LOW waarde de MAXIMUM hoogte van textuur #1,
+ </text>
+ <text name="height_text_lbl12">
+ en de HIGH waarde is de MINIMUM hoogte van textuur #4.
+ </text>
+ <button label="Toepassen" name="apply_btn"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_status_bar.xml b/indra/newview/skins/default/xui/nl/panel_status_bar.xml
index fa7ebe3d6b..d499ef5af0 100644
--- a/indra/newview/skins/default/xui/nl/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/nl/panel_status_bar.xml
@@ -1,38 +1,38 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="status">
- <text name="ParcelNameText" tool_tip="Naam van het landperceel waar u staat. Klik voor &apos;Over land&apos;.">
- Hier komt de naam van het perceel
- </text>
- <text name="BalanceText" tool_tip="Account saldo">
- Laden...
- </text>
- <button label="" label_selected="" name="buycurrency" tool_tip="Koop valuta"/>
- <text name="TimeText" tool_tip="Huidige tijd (Pacifisch)">
- -3
- </text>
- <string name="StatBarDaysOfWeek">
- Zondag:Maandag:Dinsdag:Woensdag:Donderdag:Vrijdag:Zaterdag
- </string>
- <string name="StatBarMonthsOfYear">
- Januari:Februari:Maart:April:Mei:Juni:Juli:Augustus:September:Oktober:November:December
- </string>
- <button label="" label_selected="" name="scriptout" tool_tip="Script waarschuwingen en fouten"/>
- <button label="" label_selected="" name="health" tool_tip="Letsel"/>
- <text name="HealthText" tool_tip="Letsel">
- 1
- </text>
- <button label="" label_selected="" name="no_fly" tool_tip="Vliegen niet toegestaan"/>
- <button label="" label_selected="" name="no_build" tool_tip="Bouwen/rezzen niet toegestaan"/>
- <button label="" label_selected="" name="no_scripts" tool_tip="Scripts niet toegestaan"/>
- <button label="" label_selected="" name="restrictpush" tool_tip="Niet duwen"/>
- <button label="" label_selected="" name="status_no_voice" tool_tip="Voice is niet beschikbaar hier"/>
- <button label="" label_selected="" name="buyland" tool_tip="Koop dit perceel"/>
- <line_editor label="Zoeken" name="search_editor" tool_tip="Doorzoek Second Life"/>
- <button label="" label_selected="" name="search_btn" tool_tip="Doorzoek Second Life"/>
- <string name="packet_loss_tooltip">
- Pakketten verlies
- </string>
- <string name="bandwidth_tooltip">
- Bandbreedte
- </string>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="status">
+ <text name="ParcelNameText" tool_tip="Naam van het landperceel waar u staat. Klik voor &apos;Over land&apos;.">
+ Hier komt de naam van het perceel
+ </text>
+ <text name="BalanceText" tool_tip="Account saldo">
+ Laden...
+ </text>
+ <button label="" label_selected="" name="buycurrency" tool_tip="Koop valuta"/>
+ <text name="TimeText" tool_tip="Huidige tijd (Pacifisch)">
+ -3
+ </text>
+ <string name="StatBarDaysOfWeek">
+ Zondag:Maandag:Dinsdag:Woensdag:Donderdag:Vrijdag:Zaterdag
+ </string>
+ <string name="StatBarMonthsOfYear">
+ Januari:Februari:Maart:April:Mei:Juni:Juli:Augustus:September:Oktober:November:December
+ </string>
+ <button label="" label_selected="" name="scriptout" tool_tip="Script waarschuwingen en fouten"/>
+ <button label="" label_selected="" name="health" tool_tip="Letsel"/>
+ <text name="HealthText" tool_tip="Letsel">
+ 1
+ </text>
+ <button label="" label_selected="" name="no_fly" tool_tip="Vliegen niet toegestaan"/>
+ <button label="" label_selected="" name="no_build" tool_tip="Bouwen/rezzen niet toegestaan"/>
+ <button label="" label_selected="" name="no_scripts" tool_tip="Scripts niet toegestaan"/>
+ <button label="" label_selected="" name="restrictpush" tool_tip="Niet duwen"/>
+ <button label="" label_selected="" name="status_no_voice" tool_tip="Voice is niet beschikbaar hier"/>
+ <button label="" label_selected="" name="buyland" tool_tip="Koop dit perceel"/>
+ <line_editor label="Zoeken" name="search_editor" tool_tip="Doorzoek Second Life"/>
+ <button label="" label_selected="" name="search_btn" tool_tip="Doorzoek Second Life"/>
+ <string name="packet_loss_tooltip">
+ Pakketten verlies
+ </string>
+ <string name="bandwidth_tooltip">
+ Bandbreedte
+ </string>
+</panel>
diff --git a/indra/newview/skins/default/xui/nl/strings.xml b/indra/newview/skins/default/xui/nl/strings.xml
index 6a35587109..4b64586887 100644
--- a/indra/newview/skins/default/xui/nl/strings.xml
+++ b/indra/newview/skins/default/xui/nl/strings.xml
@@ -1,421 +1,486 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<!-- This file contains strings that used to be hardcoded in the source.
- It is only for those strings which don&apos;t belong in a floater.
- For example, the strings used in avatar chat bubbles, and strings
- that are returned from one component and may appear in many places-->
-<strings>
- <string name="LoginInProgress">
- Inloggen. Het kan lijken dat [APP_NAME] is vastgelopen. Wacht u alstublieft... .
- </string>
- <string name="LoginAuthenticating">
- Authenticeren
- </string>
- <string name="LoginMaintenance">
- Account onderhoud wordt uitgevoerd...
- </string>
- <string name="LoginAttempt">
- Vorige loginpoging is mislukt. Inloggen, poging [NUMBER]
- </string>
- <string name="LoginPrecaching">
- Wereld laden...
- </string>
- <string name="LoginInitializingBrowser">
- Geïntegreerde web browser initialiseren...
- </string>
- <string name="LoginInitializingMultimedia">
- Multimedia initialiseren...
- </string>
- <string name="LoginVerifyingCache">
- Cache bestanden verifiëren (kan 60-90 seconden duren)...
- </string>
- <string name="LoginProcessingResponse">
- Antwoord verwerken...
- </string>
- <string name="LoginInitializingWorld">
- Wereld initialiseren...
- </string>
- <string name="LoginDecodingImages">
- Afbeeldingen decoderen...
- </string>
- <string name="LoginInitializingQuicktime">
- QuickTime initialiseren...
- </string>
- <string name="LoginQuicktimeNotFound">
- QuickTime niet gevonden - kan niet initialiseren.
- </string>
- <string name="LoginQuicktimeOK">
- QuickTime succesvol geïnitialiseerd.
- </string>
- <string name="LoginWaitingForRegionHandshake">
- Wachten op overeenstemming met regio...
- </string>
- <string name="LoginConnectingToRegion">
- Verbinden met regio...
- </string>
- <string name="LoginDownloadingClothing">
- Kleding downloaden...
- </string>
- <string name="LoginFailedNoNetwork">
- Netwerk fout: Kan geen verbinding opzetten, controleer alstublieft uw netwerkverbinding
- </string>
- <string name="AgentLostConnection">
- Deze regio kan problemen ondervinden. Controleer alstublieft uw verbinding met het internet.
- </string>
- <string name="TooltipPerson">
- Persoon
- </string>
- <string name="TooltipNoName">
- (geen naam)
- </string>
- <string name="TooltipOwner">
- Eigenaar:
- </string>
- <string name="TooltipPublic">
- Openbaar
- </string>
- <string name="TooltipIsGroup">
- (Groep)
- </string>
- <string name="TooltipFlagScript">
- Script
- </string>
- <string name="TooltipFlagPhysics">
- Fysiek
- </string>
- <string name="TooltipFlagTouch">
- Aanraken
- </string>
- <string name="TooltipFlagL$">
- L$
- </string>
- <string name="TooltipFlagDropInventory">
- Deponeer inventaris
- </string>
- <string name="TooltipFlagPhantom">
- Fantoom
- </string>
- <string name="TooltipFlagTemporary">
- Tijdelijk
- </string>
- <string name="TooltipFlagRightClickMenu">
- (Rechtsklikken voor menu)
- </string>
- <string name="TooltipFreeToCopy">
- Vrij te kopiëren
- </string>
- <string name="TooltipForSaleL$">
- Te koop: L$[AMOUNT]
- </string>
- <string name="TooltipForSaleMsg">
- Te koop: [MESSAGE]
- </string>
- <string name="TooltipFlagGroupBuild">
- Groep bouwen
- </string>
- <string name="TooltipFlagNoBuild">
- Niet bouwen
- </string>
- <string name="TooltipFlagNoEdit">
- Groep bouwen
- </string>
- <string name="TooltipFlagNotSafe">
- Niet veilig
- </string>
- <string name="TooltipFlagNoFly">
- Niet vliegen
- </string>
- <string name="TooltipFlagGroupScripts">
- Groep scripts
- </string>
- <string name="TooltipFlagNoScripts">
- Geen scripts
- </string>
- <string name="TooltipLand">
- Land:
- </string>
- <string name="TooltipMustSingleDrop">
- Slechts een enkel item kan hier naartoe gesleept worden
- </string>
- <string name="RetrievingData">
- Ophalen...
- </string>
- <string name="ReleaseNotes">
- Release Notes
- </string>
- <string name="LoadingData">
- Laden...
- </string>
- <string name="AvatarNameNobody">
- (niemand)
- </string>
- <string name="AvatarNameWaiting">
- (wachten)
- </string>
- <string name="AvatarNameHippos">
- (hippos)
- </string>
- <string name="GroupNameNone">
- (geen)
- </string>
- <string name="AssetErrorNone">
- Geen fout
- </string>
- <string name="AssetErrorRequestFailed">
- Asset verzoek: mislukt
- </string>
- <string name="AssetErrorNonexistentFile">
- Asset verzoek: niet-bestaand bestand
- </string>
- <string name="AssetErrorNotInDatabase">
- Asset verzoek: asset niet gevonden in de database
- </string>
- <string name="AssetErrorEOF">
- Einde van bestand
- </string>
- <string name="AssetErrorCannotOpenFile">
- Kan bestand niet openen
- </string>
- <string name="AssetErrorFileNotFound">
- Bestand niet gevonden
- </string>
- <string name="AssetErrorTCPTimeout">
- Bestandsoverdracht time-out
- </string>
- <string name="AssetErrorCircuitGone">
- Circuit verdwenen
- </string>
- <string name="AssetErrorUnknownStatus">
- Onbekende status
- </string>
- <string name="AvatarEditingApparance">
- (Uiterlijk bewerken)
- </string>
- <string name="AvatarAway">
- Afwezig
- </string>
- <string name="AvatarBusy">
- Bezet
- </string>
- <string name="AvatarMuted">
- Genegeerd
- </string>
- <string name="anim_express_afraid">
- Bang
- </string>
- <string name="anim_express_anger">
- Boos
- </string>
- <string name="anim_away">
- Afwezig
- </string>
- <string name="anim_backflip">
- Salto achterwaarts
- </string>
- <string name="anim_express_laugh">
- Daverende lach
- </string>
- <string name="anim_express_toothsmile">
- Grote lach
- </string>
- <string name="anim_blowkiss">
- Blaas kus
- </string>
- <string name="anim_express_bored">
- Verveeld
- </string>
- <string name="anim_bow">
- Buigen
- </string>
- <string name="anim_clap">
- Klappen
- </string>
- <string name="anim_courtbow">
- Hof buiging
- </string>
- <string name="anim_express_cry">
- Huilen
- </string>
- <string name="anim_dance1">
- Dansen 1
- </string>
- <string name="anim_dance2">
- Dansen 2
- </string>
- <string name="anim_dance3">
- Dansen 3
- </string>
- <string name="anim_dance4">
- Dansen 4
- </string>
- <string name="anim_dance5">
- Dansen 5
- </string>
- <string name="anim_dance6">
- Dansen 6
- </string>
- <string name="anim_dance7">
- Dansen 7
- </string>
- <string name="anim_dance8">
- Dansen 8
- </string>
- <string name="anim_express_disdain">
- Minachting
- </string>
- <string name="anim_drink">
- Drinken
- </string>
- <string name="anim_express_embarrased">
- Beschaamd
- </string>
- <string name="anim_angry_fingerwag">
- Vinger opsteken
- </string>
- <string name="anim_fist_pump">
- Vuist pompen
- </string>
- <string name="anim_yoga_float">
- Zwevende Yoga
- </string>
- <string name="anim_express_frown">
- Fronsen
- </string>
- <string name="anim_impatient">
- Ongeduldig
- </string>
- <string name="anim_jumpforjoy">
- Vreugdesprong
- </string>
- <string name="anim_kissmybutt">
- Kus mijn reet
- </string>
- <string name="anim_express_kiss">
- Kussen
- </string>
- <string name="anim_laugh_short">
- Lachen
- </string>
- <string name="anim_musclebeach">
- Spieren tonen
- </string>
- <string name="anim_no_unhappy">
- Nee (ongelukkig)
- </string>
- <string name="anim_no_head">
- Nee
- </string>
- <string name="anim_nyanya">
- Nya-nya-nya
- </string>
- <string name="anim_punch_onetwo">
- Een-twee stomp
- </string>
- <string name="anim_express_open_mouth">
- Open mond
- </string>
- <string name="anim_peace">
- Vrede
- </string>
- <string name="anim_point_you">
- Wijzen naar ander
- </string>
- <string name="anim_point_me">
- Wijzen naar jezelf
- </string>
- <string name="anim_punch_l">
- Stomp links
- </string>
- <string name="anim_punch_r">
- Stomp rechts
- </string>
- <string name="anim_rps_countdown">
- SPS tellen
- </string>
- <string name="anim_rps_paper">
- SPS papier
- </string>
- <string name="anim_rps_rock">
- SPS steen
- </string>
- <string name="anim_rps_scissors">
- SPS schaar
- </string>
- <string name="anim_express_repulsed">
- Afkeer
- </string>
- <string name="anim_kick_roundhouse_r">
- Ronddraaiende trap
- </string>
- <string name="anim_express_sad">
- Droevig
- </string>
- <string name="anim_salute">
- Groet
- </string>
- <string name="anim_shout">
- Roepen
- </string>
- <string name="anim_express_shrug">
- Schouders ophalen
- </string>
- <string name="anim_express_smile">
- Glimlachen
- </string>
- <string name="anim_smoke_idle">
- Roken inactief
- </string>
- <string name="anim_smoke_inhale">
- Roken inhaleren
- </string>
- <string name="anim_smoke_throw_down">
- Roken neergooien
- </string>
- <string name="anim_express_surprise">
- Verrassing
- </string>
- <string name="anim_sword_strike_r">
- Zwaardslag
- </string>
- <string name="anim_angry_tantrum">
- Woedeaanval
- </string>
- <string name="anim_express_tongue_out">
- Tong uitsteken
- </string>
- <string name="anim_hello">
- Zwaaien
- </string>
- <string name="anim_whisper">
- Fluisteren
- </string>
- <string name="anim_whistle">
- Fluiten
- </string>
- <string name="anim_express_wink">
- Knipogen
- </string>
- <string name="anim_wink_hollywood">
- Knipogen (Hollywood)
- </string>
- <string name="anim_express_worry">
- Bezorgd
- </string>
- <string name="anim_yes_happy">
- Ja (vrolijk)
- </string>
- <string name="anim_yes_head">
- Ja
- </string>
- <string name="texture_loading">
- Laden...
- </string>
- <string name="worldmap_offline">
- Offline
- </string>
- <string name="whisper">
- fluistert:
- </string>
- <string name="shout">
- schreeuwt:
- </string>
-</strings>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- This file contains strings that used to be hardcoded in the source.
+ It is only for those strings which do not belong in a floater.
+ For example, the strings used in avatar chat bubbles, and strings
+ that are returned from one component and may appear in many places-->
+<strings>
+ <string name="LoginInProgress">
+ Inloggen. Het kan lijken dat [APP_NAME] is vastgelopen. Wacht u alstublieft... .
+ </string>
+ <string name="LoginAuthenticating">
+ Authenticeren
+ </string>
+ <string name="LoginMaintenance">
+ Account onderhoud wordt uitgevoerd...
+ </string>
+ <string name="LoginAttempt">
+ Vorige loginpoging is mislukt. Inloggen, poging [NUMBER]
+ </string>
+ <string name="LoginPrecaching">
+ Wereld laden...
+ </string>
+ <string name="LoginInitializingBrowser">
+ Geïntegreerde web browser initialiseren...
+ </string>
+ <string name="LoginInitializingMultimedia">
+ Multimedia initialiseren...
+ </string>
+ <string name="LoginVerifyingCache">
+ Cache bestanden verifiëren (kan 60-90 seconden duren)...
+ </string>
+ <string name="LoginProcessingResponse">
+ Antwoord verwerken...
+ </string>
+ <string name="LoginInitializingWorld">
+ Wereld initialiseren...
+ </string>
+ <string name="LoginDecodingImages">
+ Afbeeldingen decoderen...
+ </string>
+ <string name="LoginInitializingQuicktime">
+ QuickTime initialiseren...
+ </string>
+ <string name="LoginQuicktimeNotFound">
+ QuickTime niet gevonden - kan niet initialiseren.
+ </string>
+ <string name="LoginQuicktimeOK">
+ QuickTime succesvol geïnitialiseerd.
+ </string>
+ <string name="LoginWaitingForRegionHandshake">
+ Wachten op overeenstemming met regio...
+ </string>
+ <string name="LoginConnectingToRegion">
+ Verbinden met regio...
+ </string>
+ <string name="LoginDownloadingClothing">
+ Kleding downloaden...
+ </string>
+ <string name="AgentLostConnection">
+ Deze regio kan problemen ondervinden. Controleer alstublieft uw verbinding met het internet.
+ </string>
+ <string name="TooltipPerson">
+ Persoon
+ </string>
+ <string name="TooltipNoName">
+ (geen naam)
+ </string>
+ <string name="TooltipOwner">
+ Eigenaar:
+ </string>
+ <string name="TooltipPublic">
+ Openbaar
+ </string>
+ <string name="TooltipIsGroup">
+ (Groep)
+ </string>
+ <string name="TooltipFlagScript">
+ Script
+ </string>
+ <string name="TooltipFlagPhysics">
+ Fysiek
+ </string>
+ <string name="TooltipFlagTouch">
+ Aanraken
+ </string>
+ <string name="TooltipFlagL$">
+ L$
+ </string>
+ <string name="TooltipFlagDropInventory">
+ Deponeer inventaris
+ </string>
+ <string name="TooltipFlagPhantom">
+ Fantoom
+ </string>
+ <string name="TooltipFlagTemporary">
+ Tijdelijk
+ </string>
+ <string name="TooltipFlagRightClickMenu">
+ (Rechtsklikken voor menu)
+ </string>
+ <string name="TooltipFreeToCopy">
+ Vrij te kopiëren
+ </string>
+ <string name="TooltipForSaleL$">
+ Te koop: L$[AMOUNT]
+ </string>
+ <string name="TooltipForSaleMsg">
+ Te koop: [MESSAGE]
+ </string>
+ <string name="TooltipFlagGroupBuild">
+ Groep bouwen
+ </string>
+ <string name="TooltipFlagNoBuild">
+ Niet bouwen
+ </string>
+ <string name="TooltipFlagNoEdit">
+ Groep bouwen
+ </string>
+ <string name="TooltipFlagNotSafe">
+ Niet veilig
+ </string>
+ <string name="TooltipFlagNoFly">
+ Niet vliegen
+ </string>
+ <string name="TooltipFlagGroupScripts">
+ Groep scripts
+ </string>
+ <string name="TooltipFlagNoScripts">
+ Geen scripts
+ </string>
+ <string name="TooltipLand">
+ Land:
+ </string>
+ <string name="TooltipMustSingleDrop">
+ Slechts een enkel item kan hier naartoe gesleept worden
+ </string>
+ <string name="RetrievingData">
+ Ophalen...
+ </string>
+ <string name="ReleaseNotes">
+ Release Notes
+ </string>
+ <string name="LoadingData">
+ Laden...
+ </string>
+ <string name="AvatarNameNobody">
+ (niemand)
+ </string>
+ <string name="AvatarNameWaiting">
+ (wachten)
+ </string>
+ <string name="AvatarNameHippos">
+ (hippos)
+ </string>
+ <string name="GroupNameNone">
+ (geen)
+ </string>
+ <string name="AssetErrorNone">
+ Geen fout
+ </string>
+ <string name="AssetErrorRequestFailed">
+ Asset verzoek: mislukt
+ </string>
+ <string name="AssetErrorNonexistentFile">
+ Asset verzoek: niet-bestaand bestand
+ </string>
+ <string name="AssetErrorNotInDatabase">
+ Asset verzoek: asset niet gevonden in de database
+ </string>
+ <string name="AssetErrorEOF">
+ Einde van bestand
+ </string>
+ <string name="AssetErrorCannotOpenFile">
+ Kan bestand niet openen
+ </string>
+ <string name="AssetErrorFileNotFound">
+ Bestand niet gevonden
+ </string>
+ <string name="AssetErrorTCPTimeout">
+ Bestandsoverdracht time-out
+ </string>
+ <string name="AssetErrorCircuitGone">
+ Circuit verdwenen
+ </string>
+ <string name="AssetErrorPriceMismatch">
+ Viewer en server zijn het niet eens over de prijs.
+ </string>
+ <string name="AssetErrorUnknownStatus">
+ Onbekende status
+ </string>
+ <string name="AvatarEditingApparance">
+ (Uiterlijk bewerken)
+ </string>
+ <string name="AvatarAway">
+ Afwezig
+ </string>
+ <string name="AvatarBusy">
+ Bezet
+ </string>
+ <string name="AvatarMuted">
+ Genegeerd
+ </string>
+ <string name="anim_express_afraid">
+ Bang
+ </string>
+ <string name="anim_express_anger">
+ Boos
+ </string>
+ <string name="anim_away">
+ Afwezig
+ </string>
+ <string name="anim_backflip">
+ Salto achterwaarts
+ </string>
+ <string name="anim_express_laugh">
+ Daverende lach
+ </string>
+ <string name="anim_express_toothsmile">
+ Grote lach
+ </string>
+ <string name="anim_blowkiss">
+ Blaas kus
+ </string>
+ <string name="anim_express_bored">
+ Verveeld
+ </string>
+ <string name="anim_bow">
+ Buigen
+ </string>
+ <string name="anim_clap">
+ Klappen
+ </string>
+ <string name="anim_courtbow">
+ Hof buiging
+ </string>
+ <string name="anim_express_cry">
+ Huilen
+ </string>
+ <string name="anim_dance1">
+ Dansen 1
+ </string>
+ <string name="anim_dance2">
+ Dansen 2
+ </string>
+ <string name="anim_dance3">
+ Dansen 3
+ </string>
+ <string name="anim_dance4">
+ Dansen 4
+ </string>
+ <string name="anim_dance5">
+ Dansen 5
+ </string>
+ <string name="anim_dance6">
+ Dansen 6
+ </string>
+ <string name="anim_dance7">
+ Dansen 7
+ </string>
+ <string name="anim_dance8">
+ Dansen 8
+ </string>
+ <string name="anim_express_disdain">
+ Minachting
+ </string>
+ <string name="anim_drink">
+ Drinken
+ </string>
+ <string name="anim_express_embarrased">
+ Beschaamd
+ </string>
+ <string name="anim_angry_fingerwag">
+ Vinger opsteken
+ </string>
+ <string name="anim_fist_pump">
+ Vuist pompen
+ </string>
+ <string name="anim_yoga_float">
+ Zwevende Yoga
+ </string>
+ <string name="anim_express_frown">
+ Fronsen
+ </string>
+ <string name="anim_impatient">
+ Ongeduldig
+ </string>
+ <string name="anim_jumpforjoy">
+ Vreugdesprong
+ </string>
+ <string name="anim_kissmybutt">
+ Kus mijn reet
+ </string>
+ <string name="anim_express_kiss">
+ Kussen
+ </string>
+ <string name="anim_laugh_short">
+ Lachen
+ </string>
+ <string name="anim_musclebeach">
+ Spieren tonen
+ </string>
+ <string name="anim_no_unhappy">
+ Nee (ongelukkig)
+ </string>
+ <string name="anim_no_head">
+ Nee
+ </string>
+ <string name="anim_nyanya">
+ Nya-nya-nya
+ </string>
+ <string name="anim_punch_onetwo">
+ Een-twee stomp
+ </string>
+ <string name="anim_express_open_mouth">
+ Open mond
+ </string>
+ <string name="anim_peace">
+ Vrede
+ </string>
+ <string name="anim_point_you">
+ Wijzen naar ander
+ </string>
+ <string name="anim_point_me">
+ Wijzen naar jezelf
+ </string>
+ <string name="anim_punch_l">
+ Stomp links
+ </string>
+ <string name="anim_punch_r">
+ Stomp rechts
+ </string>
+ <string name="anim_rps_countdown">
+ SPS tellen
+ </string>
+ <string name="anim_rps_paper">
+ SPS papier
+ </string>
+ <string name="anim_rps_rock">
+ SPS steen
+ </string>
+ <string name="anim_rps_scissors">
+ SPS schaar
+ </string>
+ <string name="anim_express_repulsed">
+ Afkeer
+ </string>
+ <string name="anim_kick_roundhouse_r">
+ Ronddraaiende trap
+ </string>
+ <string name="anim_express_sad">
+ Droevig
+ </string>
+ <string name="anim_salute">
+ Groet
+ </string>
+ <string name="anim_shout">
+ Roepen
+ </string>
+ <string name="anim_express_shrug">
+ Schouders ophalen
+ </string>
+ <string name="anim_express_smile">
+ Glimlachen
+ </string>
+ <string name="anim_smoke_idle">
+ Roken inactief
+ </string>
+ <string name="anim_smoke_inhale">
+ Roken inhaleren
+ </string>
+ <string name="anim_smoke_throw_down">
+ Roken neergooien
+ </string>
+ <string name="anim_express_surprise">
+ Verrassing
+ </string>
+ <string name="anim_sword_strike_r">
+ Zwaardslag
+ </string>
+ <string name="anim_angry_tantrum">
+ Woedeaanval
+ </string>
+ <string name="anim_express_tongue_out">
+ Tong uitsteken
+ </string>
+ <string name="anim_hello">
+ Zwaaien
+ </string>
+ <string name="anim_whisper">
+ Fluisteren
+ </string>
+ <string name="anim_whistle">
+ Fluiten
+ </string>
+ <string name="anim_express_wink">
+ Knipogen
+ </string>
+ <string name="anim_wink_hollywood">
+ Knipogen (Hollywood)
+ </string>
+ <string name="anim_express_worry">
+ Bezorgd
+ </string>
+ <string name="anim_yes_happy">
+ Ja (vrolijk)
+ </string>
+ <string name="anim_yes_head">
+ Ja
+ </string>
+ <string name="texture_loading">
+ Laden...
+ </string>
+ <string name="worldmap_offline">
+ Offline
+ </string>
+ <string name="whisper">
+ fluistert:
+ </string>
+ <string name="shout">
+ schreeuwt:
+ </string>
+ <string name="SIM_ACCESS_PG">
+ PG
+ </string>
+ <string name="SIM_ACCESS_MATURE">
+ Mature
+ </string>
+ <string name="SIM_ACCESS_ADULT">
+ Adult
+ </string>
+ <string name="SIM_ACCESS_DOWN">
+ Offline
+ </string>
+ <string name="SIM_ACCESS_MIN">
+ Onbekend
+ </string>
+ <string name="land_type_unknown">
+ (onbekend)
+ </string>
+ <string name="covenant_never_modified">Laatst gewijzigd: (nooit)</string>
+ <string name="covenant_modified">Laatst gewijzigd: </string>
+ <string name="all_files">
+ Alle bestanden
+ </string>
+ <string name="sound_files">
+ Geluiden
+ </string>
+ <string name="animation_files">
+ Animaties
+ </string>
+ <string name="image_files">
+ Afbeeldingen
+ </string>
+ <string name="save_file_verb">
+ Opslaan
+ </string>
+ <string name="load_file_verb">
+ Laden
+ </string>
+ <string name="targa_image_files">
+ Targa afbeeldingen
+ </string>
+ <string name="bitmap_image_files">
+ Bitmap afbeeldingen
+ </string>
+ <string name="avi_movie_file">
+ AVI Film bestand
+ </string>
+ <string name="xaf_animation_file">
+ XAF Anim bestand
+ </string>
+ <string name="xml_file">
+ XML bestand
+ </string>
+ <string name="dot_raw_file">
+ RAW bestand
+ </string>
+ <string name="compressed_image_files">
+ Gecomprimeerde afbeeldingen
+ </string>
+ <string name="load_files">
+ Laad bestanden
+ </string>
+ <string name="choose_the_directory">
+ Kies folder
+ </string>
+</strings>
diff --git a/indra/newview/skins/default/xui/nl/teleport_strings.xml b/indra/newview/skins/default/xui/nl/teleport_strings.xml
index f524fda724..ff43e0f32f 100644
--- a/indra/newview/skins/default/xui/nl/teleport_strings.xml
+++ b/indra/newview/skins/default/xui/nl/teleport_strings.xml
@@ -1,73 +1,75 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<teleport_messages>
- <message_set name="errors">
- <message name="invalid_tport">
- Er is een probleem opgetreden bij het verwerken van uw verzoek voor een teleport. U dient wellicht opnieuw in te loggen voor uw kunt teleporteren. Wanneer u deze boodschap blijft ontvangen, controleert u dan alstublieft de Tech Support FAQ op: www.secondlife.com/support.
- </message>
- <message name="invalid_region_handoff">
- Er is een probleem opgetreden bij het oversteken naar een andere regio. U dient wellicht opnieuw in te loggen voor uw kunt oversteken naar andere regio&apos;s. Wanneer u deze boodschap blijft ontvangen, controleert u dan alstublieft de Tech Support FAQ op: www.secondlife.com/support.
- </message>
- <message name="blocked_tport">
- Sorry, teleport is momenteel geblokkeerd. Probeer het zo meteen opnieuw. Indien u nog steeds niet kunt teleporteren, log dan alstublieft uit en weer in om het probleem te verhelpen.
- </message>
- <message name="nolandmark_tport">
- Sorry, het systeem was niet in staat de bestemming van de landmarkering te vinden.
- </message>
- <message name="timeout_tport">
- Sorry, het systeem was niet in staat om de teleport verbinding af te ronden. Probeer het zo meteen nog een keer.
- </message>
- <message name="noaccess_tport">
- Sorry, u heeft geen toegang tot die teleportbestemming.
- </message>
- <message name="missing_attach_tport">
- Uw bevestigingen zijn nog niet gearriveerd. Probeer nog een aantal seconden te wachten of log uit en weer in voor u probeert te teleporteren.
- </message>
- <message name="too_many_uploads_tport">
- De assetwachtrij in deze regio is momenteel volgelopen, dus uw teleportverzoek zal niet tijdig afgerond kunnen worden. Probeer het alstublieft opnieuw over een aantal minuten of ga naar een minder druk gebied.
- </message>
- <message name="expired_tport">
- Sorry, het systeem was niet in staat uw teleportverzoek tijdig af te ronden. Probeer het alstublieft opnieuw over een aantal minuten.
- </message>
- <message name="expired_region_handoff">
- Sorry, het systeem was niet in staat om het oversteken naar een andere regio tijdig af te ronden. Probeer het alstublieft opnieuw over een aantal minuten.
- </message>
- <message name="no_host">
- Kan teleportbestemming niet vinden. De bestemming is mogelijk tijdelijk niet beschikbaar of bestaat niet meer. Probeer het alstublieft opnieuw over een aantal minuten.
- </message>
- <message name="no_inventory_host">
- Het inventarissysteem is momenteel niet beschikbaar
- </message>
- </message_set>
- <message_set name="progress">
- <message name="sending_dest">
- Verzenden naar bestemming
- </message>
- <message name="redirecting">
- U wordt doorverwezen naar andere locatie.
- </message>
- <message name="relaying">
- Omschakelen naar bestemming.
- </message>
- <message name="sending_home">
- Thuislocatieverzoek verzenden
- </message>
- <message name="sending_landmark">
- Landmarkeringlocatieverzoek verzenden
- </message>
- <message name="completing">
- Teleport voltooien
- </message>
- <message name="resolving">
- Bestemming bepalen.
- </message>
- <message name="contacting">
- Contact maken met nieuwe regio.
- </message>
- <message name="arriving">
- Arriveren…
- </message>
- <message name="requesting">
- Teleport aanvragen…
- </message>
- </message_set>
-</teleport_messages>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<teleport_messages>
+ <message_set name="errors">
+ <message name="invalid_tport">
+ Er is een probleem opgetreden bij het verwerken van uw verzoek voor een teleport. U dient wellicht opnieuw in te loggen voor uw kunt teleporteren. Wanneer u deze boodschap blijft ontvangen, controleert u dan alstublieft de Tech Support FAQ op:
+www.secondlife.com/support
+ </message>
+ <message name="invalid_region_handoff">
+ Er is een probleem opgetreden bij het oversteken naar een andere regio. U dient wellicht opnieuw in te loggen voor uw kunt oversteken naar andere regio&apos;s. Wanneer u deze boodschap blijft ontvangen, controleert u dan alstublieft de Tech Support FAQ op:
+www.secondlife.com/support
+ </message>
+ <message name="blocked_tport">
+ Sorry, teleport is momenteel geblokkeerd. Probeer het zo meteen opnieuw. Indien u nog steeds niet kunt teleporteren, log dan alstublieft uit en weer in om het probleem te verhelpen.
+ </message>
+ <message name="nolandmark_tport">
+ Sorry, het systeem was niet in staat de bestemming van de landmarkering te vinden.
+ </message>
+ <message name="timeout_tport">
+ Sorry, het systeem was niet in staat om de teleport verbinding af te ronden. Probeer het zo meteen nog een keer.
+ </message>
+ <message name="noaccess_tport">
+ Sorry, u heeft geen toegang tot die teleportbestemming.
+ </message>
+ <message name="missing_attach_tport">
+ Uw bevestigingen zijn nog niet gearriveerd. Probeer nog een aantal seconden te wachten of log uit en weer in voor u probeert te teleporteren.
+ </message>
+ <message name="too_many_uploads_tport">
+ De assetwachtrij in deze regio is momenteel volgelopen, dus uw teleportverzoek zal niet tijdig afgerond kunnen worden. Probeer het alstublieft opnieuw over een aantal minuten of ga naar een minder druk gebied.
+ </message>
+ <message name="expired_tport">
+ Sorry, het systeem was niet in staat uw teleportverzoek tijdig af te ronden. Probeer het alstublieft opnieuw over een aantal minuten.
+ </message>
+ <message name="expired_region_handoff">
+ Sorry, het systeem was niet in staat om het oversteken naar een andere regio tijdig af te ronden. Probeer het alstublieft opnieuw over een aantal minuten.
+ </message>
+ <message name="no_host">
+ Kan teleportbestemming niet vinden. De bestemming is mogelijk tijdelijk niet beschikbaar of bestaat niet meer. Probeer het alstublieft opnieuw over een aantal minuten.
+ </message>
+ <message name="no_inventory_host">
+ Het inventarissysteem is momenteel niet beschikbaar.
+ </message>
+ </message_set>
+ <message_set name="progress">
+ <message name="sending_dest">
+ Verzenden naar bestemming
+ </message>
+ <message name="redirecting">
+ U wordt doorverwezen naar andere locatie.
+ </message>
+ <message name="relaying">
+ Omschakelen naar bestemming.
+ </message>
+ <message name="sending_home">
+ Thuislocatieverzoek verzenden
+ </message>
+ <message name="sending_landmark">
+ Landmarkeringlocatieverzoek verzenden
+ </message>
+ <message name="completing">
+ Teleport voltooien
+ </message>
+ <message name="resolving">
+ Bestemming bepalen.
+ </message>
+ <message name="contacting">
+ Contact maken met nieuwe regio.
+ </message>
+ <message name="arriving">
+ Arriveren…
+ </message>
+ <message name="requesting">
+ Teleport aanvragen…
+ </message>
+ </message_set>
+</teleport_messages>
diff --git a/indra/newview/skins/default/xui/pl/floater_about_land.xml b/indra/newview/skins/default/xui/pl/floater_about_land.xml
index c0e053094a..7612212105 100755
--- a/indra/newview/skins/default/xui/pl/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/pl/floater_about_land.xml
@@ -8,6 +8,18 @@
<text length="1" name="Description:" type="string">
Opis:
</text>
+ <text name="LandType">
+ Typ:
+ </text>
+ <text name="LandTypeText">
+ Region Główny / Ziemia
+ </text>
+ <text name="ContentRating">
+ Rodzaj:
+ </text>
+ <text name="ContentRatingText">
+ &apos;Adult&apos;
+ </text>
<text length="1" name="Owner:" type="string">
Właściciel:
</text>
@@ -16,7 +28,7 @@
</text>
<button label="Profile..." label_selected="Profile..." name="Profile..."/>
<text length="1" name="Group:" type="string">
- Groupa:
+ Grupa:
</text>
<button label="Ustaw..." label_selected="Ustaw..." name="Set..."/>
<check_box label="Udostępnij przypisywanie na grupę" name="check deed" tool_tip="Oficer grupy ma prawo przepisać prawo własności posiadłości na grupę. Posiadłość wspierana jest przez przydziały pochodzące od członków grupy."/>
@@ -29,7 +41,7 @@
Nie
</text>
<text length="1" name="For Sale: Price L$[PRICE]." type="string">
- Cena: [PRICE]L$.
+ Cena: L$[PRICE] (L$[PRICE_PER_SQM]/m²).
</text>
<button label="Sprzedaj Posiadłość..." label_selected="Sprzedaj Posiadłość..." name="Sell Land..."/>
<text length="1" name="For sale to" type="string">
@@ -52,7 +64,7 @@
Obszar:
</text>
<text length="1" name="PriceText" type="string">
- 4048 m
+ 4048 m²
</text>
<text length="1" name="Traffic:" type="string">
Ruch:
@@ -60,9 +72,9 @@
<text length="1" name="DwellText" type="string">
0
</text>
- <button label="Kup Posiadłość..." label_selected="Kup Posiadłość..." name="Buy Land..." width="125" left="130"/>
+ <button label="Kup Posiadłość..." label_selected="Kup Posiadłość..." left="130" name="Buy Land..." width="125"/>
<button label="Kup dla Grupy..." label_selected="Kup dla Grupy..." name="Buy For Group..."/>
- <button label="Kup Przepustkę..." label_selected="Kup Przeputkę..." name="Buy Pass..." tool_tip="Przepustka udostępnia tymczasowy wstęp na posiadłość." width="125" left="130"/>
+ <button label="Kup Przepustkę..." label_selected="Kup Przeputkę..." left="130" name="Buy Pass..." tool_tip="Przepustka udostępnia tymczasowy wstęp na posiadłość." width="125"/>
<button label="Porzuć z Posiadłości..." label_selected="Porzuć z Posiadłości..." name="Abandon Land..."/>
<button label="Odzyskaj Posiadłość..." label_selected="Odzyskaj Posiadłość..." name="Reclaim Land..."/>
<button label="Sprzedaż przez Lindenów..." label_selected="Sprzedaż przez Lindenów..." name="Linden Sale..." tool_tip="Posiadłość musi mieć właściciela, zawartość oraz nie może być wystawiona na aukcę."/>
@@ -76,7 +88,7 @@
Obszar:
</string>
<string name="area_size_text">
- [AREA] m
+ [AREA] m²
</string>
<string name="auction_id_text">
Numer aukcji: [ID]
@@ -108,36 +120,61 @@ Idź do Świat &gt; O Posiadłości albo wybierz inną posiadłość żeby pokaz
</string>
</panel>
<panel label="Umowa" name="land_covenant_panel">
- <text length="1" name="covenant_timestamp_text" type="string">
- Ostatnia Modyfikacja Wed Dec 31 16:00:00 1969
- </text>
- <text length="1" name="region_name_lbl" type="string">
- Region:
- </text>
- <text length="1" name="region_name_text" type="string">
- leyla
+ <text name="estate_section_lbl">
+ Majątek:
</text>
<text length="1" name="estate_name_lbl" type="string">
- Posiadłość:
+ Nazwa:
</text>
- <text length="1" name="estate_name_text" type="string">
+ <text length="1" name="estate_name_text" type="string" left="115">
Główne
</text>
<text length="1" name="estate_owner_lbl" type="string">
Właściciel:
</text>
- <text length="1" name="estate_owner_text" type="string">
+ <text length="1" name="estate_owner_text" type="string" left="115">
(brak)
</text>
- <text length="1" name="resellable_clause" type="string">
+ <text_editor length="1" name="covenant_editor" type="string" left="115">
+ Ta posiadłość nie wymaga żadej umowy.
+ </text_editor>
+ <text length="1" name="covenant_timestamp_text" type="string" left="115">
+ Ostatnia Modyfikacja Wed Dec 31 16:00:00 1969
+ </text>
+ <text name="region_section_lbl">
+ Region:
+ </text>
+ <text length="1" name="region_name_lbl" type="string">
+ Nazwa:
+ </text>
+ <text length="1" name="region_name_text" type="string" left="115">
+ leyla
+ </text>
+ <text name="region_landtype_lbl">
+ Typ:
+ </text>
+ <text name="region_landtype_text" left="115">
+ Region Główny / Ziemia
+ </text>
+ <text name="region_maturity_lbl">
+ Rodzaj:
+ </text>
+ <text name="region_maturity_text" left="115">
+ &apos;Adult&apos;
+ </text>
+ <text name="resellable_lbl">
+ Odsprzedaj:
+ </text>
+ <text length="1" name="resellable_clause" type="string" width="338" left="115">
Posiadłość zakupiona w tym regionie nie może być odsprzedana.
</text>
- <text length="1" name="changeable_clause" type="string">
- Posiadłość zakupiona w tym regionie nie może być łączona/dzielona
+ <text name="changeable_lbl">
+ Podziel:
+ </text>
+ <text length="1" name="changeable_clause" type="string" width="338" left="115">
+ Posiadłość zakupiona w tym regionie nie może być
+łączona/dzielona.
</text>
- <text_editor length="1" name="covenant_editor" type="string">
- Ta posiadłość nie wymaga żadej umowy.
- </text_editor>
<string name="can_resell">
Posiadłość zakupiona w tym regionie może być odsprzedana.
</string>
@@ -145,10 +182,11 @@ Idź do Świat &gt; O Posiadłości albo wybierz inną posiadłość żeby pokaz
Posiadłość zakupiona w tym regionie nie może być odsprzedana.
</string>
<string name="can_change">
- Posiadłość zakupiona w tym regionie może być łączona/dzielona
+ Posiadłość zakupiona w tym regionie może być łączona/dzielona.
</string>
<string name="can_not_change">
- Posiadłość zakupiona w tym regionie nie może być łączona/dzielona
+ Posiadłość zakupiona w tym regionie nie może być
+łączona/dzielona.
</string>
</panel>
<panel label="Obiekty" name="land_objects_panel">
@@ -215,13 +253,14 @@ Idź do Świat &gt; O Posiadłości albo wybierz inną posiadłość żeby pokaz
<text length="1" name="Object Owners:" type="string" width="108">
Właściciel Obiektów:
</text>
- <button label="Odśwież Listę" label_selected="Odśwież Listę" name="Refresh List" left="112"/>
- <button label="Zwróć obiekty..." label_selected="Zwróć obiekty..." name="Return objects..." left="224"/>
+ <button label="Odśwież Listę" label_selected="Odśwież Listę" left="112" name="Refresh List"/>
+ <button label="Zwróć obiekty..." label_selected="Zwróć obiekty..." left="224" name="Return objects..."/>
<name_list name="owner list">
<column label="Typ" name="type"/>
<column name="online_status"/>
<column label="Nazwa" name="name"/>
<column label="Liczba" name="count"/>
+ <column label="Najbardziej aktualne" name="mostrecent"/>
</name_list>
</panel>
<panel label="Opcje" name="land_options_panel">
@@ -240,7 +279,7 @@ Idź do Świat &gt; O Posiadłości albo wybierz inną posiadłość żeby pokaz
Nowe Obiekty:
</text>
<check_box label="Wszyscy" name="all object entry check"/>
- <check_box label="Gropa" name="group object entry check"/>
+ <check_box label="Grupa" name="group object entry check"/>
<text length="1" name="allow_label4" type="string">
Skrypty:
</text>
@@ -252,10 +291,60 @@ Idź do Świat &gt; O Posiadłości albo wybierz inną posiadłość żeby pokaz
<check_box label="Bezpieczna (brak zniszczeń)" name="check safe" tool_tip="Wybrana - posiadłość jest bezpieczna - zniszczenia w walce są zablokowane. Nie wybrana - zniszczenia w walce są włączone."/>
<check_box label="Popychanie niedozwolone" name="PushRestrictCheck" tool_tip="Nie pozwalaj skryptom na popychanie. Wybranie tej opcji może być przydatne do ograniczenia zakłóceń spokoju w Twojej posiadłości."/>
<check_box label="Wyświetlaj w wyszukiwarce (30L$/tyg.)" name="ShowDirectoryCheck" tool_tip="Udostępnij ukazywanie się nazwy posiadłości w wyszukiwarce"/>
+ <string name="search_enabled_tooltip">
+ Udostępnij wyświetlanie tej posiadłości w wyszukiwarce
+ </string>
+ <string name="search_disabled_small_tooltip">
+ Wybrana opcja jest wyłączona ze względu iż wielkość posiadłości wynosi 128 m² bądź mniej.
+Jedynie większe posiadłości mogą być umieszczone w bazie wyszukiwarki.
+ </string>
+ <string name="search_disabled_permissions_tooltip">
+ Wybrana opcja jest wyłączona ponieważ nie posiadasz prawa do modyfikacji posiadłości.
+ </string>
+ <combo_box name="land category with adult">
+ <combo_item name="AnyCategory">
+ Każda Kategoria
+ </combo_item>
+ <combo_item name="LindenLocation">
+ Linden Lokacja
+ </combo_item>
+ <combo_item name="Adult">
+ &apos;Adult&apos;
+ </combo_item>
+ <combo_item name="Arts&amp;Culture">
+ Sztuka i Kultura
+ </combo_item>
+ <combo_item name="Business">
+ Biznes
+ </combo_item>
+ <combo_item name="Educational">
+ Edukacja
+ </combo_item>
+ <combo_item name="Gaming">
+ Gra
+ </combo_item>
+ <combo_item name="Hangout">
+ Poznawanie ludzi
+ </combo_item>
+ <combo_item name="NewcomerFriendly">
+ Przyjazne dla nowych
+ </combo_item>
+ <combo_item name="Parks&amp;Nature">
+ Park i Natura
+ </combo_item>
+ <combo_item name="Residential">
+ Mieszkalna
+ </combo_item>
+ <combo_item name="Shopping">
+ Zakupy
+ </combo_item>
+ <combo_item name="Other">
+ Inne
+ </combo_item>
+ </combo_box>
<combo_box name="land category">
<combo_box.item name="AnyCategory" label="Każda"/>
<combo_box.item name="LindenLocation" label="Linden Lokacja"/>
-
<combo_box.item name="Arts&amp;Culture" label="Sztuka i Kultura"/>
<combo_box.item name="Business" label="Biznes"/>
<combo_box.item name="Educational" label="Edukacyjna"/>
@@ -268,7 +357,19 @@ Idź do Świat &gt; O Posiadłości albo wybierz inną posiadłość żeby pokaz
<combo_box.item name="Other" label="Inna"/>
</combo_box>
<button label="?" label_selected="?" name="?"/>
- <check_box name="MatureCheck" />
+ <check_box label="Treść &apos;Mature&apos;" name="MatureCheck" tool_tip=""/>
+ <string name="mature_check_mature">
+ Treść &apos;Mature&apos;
+ </string>
+ <string name="mature_check_adult">
+ Treść &apos;Adult&apos;
+ </string>
+ <string name="mature_check_mature_tooltip">
+ Twoja posiadłość bądź treść jaką zawiera klasyfikowana jest jako &apos;Mature&apos;.
+ </string>
+ <string name="mature_check_adult_tooltip">
+ Informacje o Twojej posiadłości i treści jaką zawiera klasyfikowane są jako &apos;Adult&apos;.
+ </string>
<text length="1" name="Snapshot:" type="string">
Zdjęcie:
</text>
@@ -341,21 +442,14 @@ Mediów:
<text length="1" name="Sound:" type="string">
Dźwięk:
</text>
- <check_box label="Ogranicz dźwięki przestrzenne w posiadłości" name="check sound local"/>
+ <check_box label="Restrykcja obiektów oraz gestur dozwolonych w tej posiadłości" name="check sound local"/>
+ <button label="?" label_selected="?" name="?" left="432"/>
<text length="1" name="Voice settings:" type="string">
Głos:
</text>
- <radio_group name="parcel_voice_channel" width="310">
- <radio_item length="1" name="Estate" type="string">
- Użyj kanału przestrzennego na posiadlości
- </radio_item>
- <radio_item length="1" name="Private" type="string">
- Użyj kanału prywatnego na posiadlości
- </radio_item>
- <radio_item length="1" name="Disabled" type="string">
- Zablokuj kanał przestrzenny na posiadlości
- </radio_item>
- </radio_group>
+ <check_box label="Rozmowy Dozwolone" name="parcel_enable_voice_channel"/>
+ <check_box label="Rozmowy Dozwolone (ustawione przez majątek)" name="parcel_enable_voice_channel_is_estate_disabled"/>
+ <check_box label="Ogranicz komunikację głosową w tej posiadłości." name="parcel_enable_voice_channel_parcel"/>
</panel>
<panel label="Dostęp" name="land_access_panel">
<text length="1" name="Limit access to this parcel to:" type="string">
diff --git a/indra/newview/skins/default/xui/pl/floater_animation_preview.xml b/indra/newview/skins/default/xui/pl/floater_animation_preview.xml
index f430651b79..0524b8ade3 100755
--- a/indra/newview/skins/default/xui/pl/floater_animation_preview.xml
+++ b/indra/newview/skins/default/xui/pl/floater_animation_preview.xml
@@ -7,66 +7,140 @@
Opis:
</text>
<spinner label="Pierwszeństwo" name="priority"
- tool_tip="Kontroluj,które z animacji,które też używasz mogą zostać zdominowane przez tą animację" />
- <check_box label="Loop" name="loop_check" tool_tip="Powtarzaj tę animację" />
- <spinner label="In(%)" name="loop_in_point"
+ tool_tip="Kontroluj,animacje,które mogą zostać zdominowane przez tą animację" />
+ <check_box label="Powtarzaj" name="loop_check" tool_tip="Powtarzaj tą animację" />
+ <spinner label="Od(%)" name="loop_in_point"
tool_tip="Wybierz punkt, od którego chcesz zacząć powtarzać animację" />
- <spinner label="Out(%)" name="loop_out_point"
+ <spinner label="Do(%)" name="loop_out_point"
tool_tip="Wybierz punkt, od którego chcesz zakończyć powtarznie animacji" />
<text name="hand_label">
Pozycja Ręki
</text>
<combo_box label="" name="hand_pose_combo"
tool_tip="Kontroluje co robi ręka podczas animacji">
- <combo_box.item name="Spread" label="Rozciągaj" />
- <combo_box.item name="Relaxed" label="Odpocznij" />
- <combo_box.item name="PointBoth" label="Wskazuj" />
- <combo_box.item name="Fist" label="Pięść" />
- <combo_box.item name="RelaxedLeft" label="Lewa-Odpocznij" />
- <combo_box.item name="PointLeft" label="Wskazuj Lewą" />
- <combo_box.item name="FistLeft" label="Zaciśnij Lewą" />
- <combo_box.item name="RelaxedRight" label="Prawa-Odpocznj" />
- <combo_box.item name="PointRight" label="Wskazuj Prawą" />
- <combo_box.item name="FistRight" label="Zaciśnij Prawą" />
- <combo_box.item name="SaluteRight" label="Salutuj Prawą" />
- <combo_box.item name="Typing" label="Pisz" />
- <combo_box.item name="PeaceRight" label="Prawa-Pokój" />
+ <combo_item name="Spread">
+ Rozciągaj
+ </combo_item>
+ <combo_item name="Relaxed">
+ Odpocznij
+ </combo_item>
+ <combo_item name="PointBoth">
+ Wskazuj
+ </combo_item>
+ <combo_item name="Fist">
+ Pięść
+ </combo_item>
+ <combo_item name="RelaxedLeft">
+ Lewa-Odpocznij
+ </combo_item>
+ <combo_item name="PointLeft">
+ Wskazuj Lewą
+ </combo_item>
+ <combo_item name="FistLeft">
+ Zaciśnij Lewą
+ </combo_item>
+ <combo_item name="RelaxedRight">
+ Prawa-Odpocznj
+ </combo_item>
+ <combo_item name="PointRight">
+ Wskazuj Prawą
+ </combo_item>
+ <combo_item name="FistRight">
+ Zaciśnij Prawą
+ </combo_item>
+ <combo_item name="SaluteRight">
+ Salutuj Prawą
+ </combo_item>
+ <combo_item name="Typing">
+ Pisz
+ </combo_item>
+ <combo_item name="PeaceRight">
+ Prawa-Pokój
+ </combo_item>
</combo_box>
<text name="emote_label">
Ekspresja
</text>
<combo_box label="" name="emote_combo"
- tool_tip="Kontroluj co wykonuje twarz w czasie animacji">
- <combo_box.item name="[None]" label="Żadne]" />
- <combo_box.item name="Aaaaah" label="Aaaaah" />
- <combo_box.item name="Afraid" label="Obawa" />
- <combo_box.item name="Angry" label="Zlość" />
- <combo_box.item name="BigSmile" label="Duży Uśmiech" />
- <combo_box.item name="Bored" label="Znudzenie" />
- <combo_box.item name="Cry" label="Placz" />
- <combo_box.item name="Disdain" label="Wzgarda" />
- <combo_box.item name="Embarrassed" label="Zakłopotanie" />
- <combo_box.item name="Frown" label="Marszczenie Brwi" />
- <combo_box.item name="Kiss" label="Pocałunek" />
- <combo_box.item name="Laugh" label="Śmiech" />
- <combo_box.item name="Plllppt" label="Plllppt" />
- <combo_box.item name="Repulsed" label="Odrzucenie" />
- <combo_box.item name="Sad" label="Smutek" />
- <combo_box.item name="Shrug" label="Wzruszanie Ramionami" />
- <combo_box.item name="Smile" label="Uśmiech" />
- <combo_box.item name="Surprise" label="Niespodzianka" />
- <combo_box.item name="Wink" label="Mrugnięcie" />
- <combo_box.item name="Worry" label="Zmartwienie" />
+ tool_tip="Kontroluj mimikę twarzy w czasie animacji">
+ <combo_item name="[None]">
+ [Żadne]
+ </combo_item>
+ <combo_item name="Aaaaah">
+ Aaaaah
+ </combo_item>
+ <combo_item name="Afraid">
+ Obawa
+ </combo_item>
+ <combo_item name="Angry">
+ Złość
+ </combo_item>
+ <combo_item name="BigSmile">
+ Duży Uśmiech
+ </combo_item>
+ <combo_item name="Bored">
+ Znudzenie
+ </combo_item>
+ <combo_item name="Cry">
+ Płacz
+ </combo_item>
+ <combo_item name="Disdain">
+ Wzgarda
+ </combo_item>
+ <combo_item name="Embarrassed">
+ Zakłopotanie
+ </combo_item>
+ <combo_item name="Frown">
+ Marszczenie Brwi
+ </combo_item>
+ <combo_item name="Kiss">
+ Pocałunek
+ </combo_item>
+ <combo_item name="Laugh">
+ Śmiech
+ </combo_item>
+ <combo_item name="Plllppt">
+ Plllppt
+ </combo_item>
+ <combo_item name="Repulsed">
+ Odrzucenie
+ </combo_item>
+ <combo_item name="Sad">
+ Smutek
+ </combo_item>
+ <combo_item name="Shrug">
+ Wzruszanie Ramionami
+ </combo_item>
+ <combo_item name="Smile">
+ Uśmiech
+ </combo_item>
+ <combo_item name="Surprise">
+ Niespodzianka
+ </combo_item>
+ <combo_item name="Wink">
+ Mrugnięcie
+ </combo_item>
+ <combo_item name="Worry">
+ Zmartwienie
+ </combo_item>
</combo_box>
<text name="preview_label">
- Przeglądaj kiedy
+ Przeglądaj kiedy:
</text>
<combo_box label="" name="preview_base_anim"
tool_tip="Przetestuj zachowanie animacji kiedy awatar wykonuje normalne czynności">
- <combo_box.item name="Standing" label="Stanie" />
- <combo_box.item name="Walking" label="Chodzenie" />
- <combo_box.item name="Sitting" label="Siedzenie" />
- <combo_box.item name="Flying" label="Latanie" />
+ <combo_item name="Standing">
+ Stoisz
+ </combo_item>
+ <combo_item name="Walking">
+ Chodzisz
+ </combo_item>
+ <combo_item name="Sitting">
+ Siedzisz
+ </combo_item>
+ <combo_item name="Flying">
+ Latasz
+ </combo_item>
</combo_box>
<spinner label="Złagodzić w (sekund)" name="ease_in_time"
tool_tip="Ilość Czasu (w sekundach), w których animacje mieszają się" />
@@ -76,12 +150,12 @@
<button label="" name="stop_btn" tool_tip="Stop animation playback" />
<slider label="" name="playback_slider" />
<text name="bad_animation_text">
- Niemożliwość odczytania pliku animacji do wyświetlenia/
-
- Sugerujemy pliki BVH eksportowane z pozycji.
+ Brak możliwości wczytania pliku animacji.
+
+Doradzamy eksport plików BVH z Poser 4.
</text>
<button label="Anuluj" name="cancel_btn" />
- <button label="Upload (L$[AMOUNT])" name="ok_btn" />
+ <button label="Załaduj (L$[AMOUNT])" name="ok_btn" />
<string name="failed_to_initialize">
Inicjalizacja ruchu nie powiodła się.
</string>
diff --git a/indra/newview/skins/default/xui/pl/floater_auction.xml b/indra/newview/skins/default/xui/pl/floater_auction.xml
index a81850c2fd..65a1bb85ea 100755
--- a/indra/newview/skins/default/xui/pl/floater_auction.xml
+++ b/indra/newview/skins/default/xui/pl/floater_auction.xml
@@ -4,6 +4,6 @@
<button label="Zdjęce" label_selected="Zdjęce" name="snapshot_btn" />
<button label="OK" label_selected="OK" name="ok_btn" />
<string name="already for sale">
- Nie możesz umiescić posiadłości na aukcji, jeżeli już została wystawiona na sprzedaż.
+ Nie możesz umieścić posiadłości na aukcji, jeżeli już została wystawiona na sprzedaż.
</string>
</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_avatar_picker.xml b/indra/newview/skins/default/xui/pl/floater_avatar_picker.xml
index 9a3355358e..cf4dcb91bf 100755
--- a/indra/newview/skins/default/xui/pl/floater_avatar_picker.xml
+++ b/indra/newview/skins/default/xui/pl/floater_avatar_picker.xml
@@ -1,15 +1,40 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="avatarpicker" title="Wybierz Rezydenta">
- <text name="instruct_search_resident_name">
- Wpisz imię Rezydenta:
- </text>
- <button label="Znajdź" label_selected="Znajdź" name="Find" />
- <text name="Or select their calling card:">
- lub wybierz wizytówkę:
- </text>
- <button label="Zamknij" label_selected="Zamknij" name="Close" />
- <button label="Wybierz" label_selected="Wybierz" name="Select" />
- <string name="NotFound">
- &apos;[TEXT]&apos; nie odnaleziony
+ <tab_container name="ResidentChooserTabs">
+ <panel label="Znajdź" name="SearchPanel">
+ <text name="InstructSearchResidentName">
+ Wpisz imię Rezydenta:
+ </text>
+ <button label="Znajdź" label_selected="Znajdź" name="Find"/>
+ </panel>
+ <panel label="Wizytówka" name="CallingCardsPanel">
+ <text name="InstructSelectCallingCard">
+ Wybierz wizytówkę:
+ </text>
+ </panel>
+ <panel label="Obok mnie:" name="NearMePanel">
+ <text name="InstructSelectResident">
+ Wybierz Rezydenta obok:
+ </text>
+ <button label="Odśwież" label_selected="Odśwież" name="Refresh"/>
+ <slider label="Zasięg" name="near_me_range"/>
+ <text name="meters">
+ Metry
+ </text>
+ </panel>
+ </tab_container>
+ <button label="Wybierz" label_selected="Wybierz" name="Select"/>
+ <button label="Anuluj" label_selected="Anuluj" name="Cancel"/>
+ <string name="not_found">
+ &apos;[TEXT]&apos; nie zostało odnalezione
+ </string>
+ <string name="no_one_near">
+ Nikt w pobliżu
+ </string>
+ <string name="no_results">
+ Brak wyników
+ </string>
+ <string name="searching">
+ Wyszukiwanie...
</string>
</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_avatar_textures.xml b/indra/newview/skins/default/xui/pl/floater_avatar_textures.xml
index f6f36d5b68..b27c90b8f2 100755
--- a/indra/newview/skins/default/xui/pl/floater_avatar_textures.xml
+++ b/indra/newview/skins/default/xui/pl/floater_avatar_textures.xml
@@ -17,10 +17,10 @@
<texture_picker label="Podkoszulek" name="undershirt" />
<texture_picker label="Rękawiczki" name="gloves" />
<texture_picker label="Koszula" name="shirt" />
- <texture_picker label="Wierznie Górne Ubranie" name="upper_jacket" />
+ <texture_picker label="Górna Część Kurtki" name="upper_jacket" />
<texture_picker label="Dolna Część Ciała" name="baked_lower_body" />
<texture_picker label="Tatuaż Dolnej Części Ciała" name="lower_bodypaint" />
- <texture_picker label="Majtasy" name="underpants" />
+ <texture_picker label="Bielizna" name="underpants" />
<texture_picker label="Skarpety" name="socks" />
<texture_picker label="Buty" name="shoes" />
<texture_picker label="Spodnie" name="pants" />
diff --git a/indra/newview/skins/default/xui/pl/floater_beacons.xml b/indra/newview/skins/default/xui/pl/floater_beacons.xml
index 9f614470da..fd12d13595 100644
--- a/indra/newview/skins/default/xui/pl/floater_beacons.xml
+++ b/indra/newview/skins/default/xui/pl/floater_beacons.xml
@@ -9,7 +9,7 @@
<check_box label="Podkreśl Emitery" name="highlights"/>
<check_box label="Pokaż Emitery" name="beacons"/>
<text name="beacon_width_label">
- Szerokość Emiterów:
+ Zasięg Emiterów:
</text>
</panel>
</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_build_options.xml b/indra/newview/skins/default/xui/pl/floater_build_options.xml
index 71363e3954..7cbc410614 100755
--- a/indra/newview/skins/default/xui/pl/floater_build_options.xml
+++ b/indra/newview/skins/default/xui/pl/floater_build_options.xml
@@ -3,6 +3,6 @@
<spinner label="Jednostka Siatki (metry)" name="GridResolution" />
<spinner label="Rozmiary Siatki (metry)" name="GridDrawSize" />
<check_box label="Udostępnij Podjednostkowe Dopasowywanie" name="GridSubUnit" />
- <check_box label="Pokaż Sekcje Skrośne" name="GridCrossSection" />
+ <check_box label="Pokaż Sekcje Skośne" name="GridCrossSection" />
<slider label="Nieprzezroczystość Siatki" name="GridOpacity" />
</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_bulk_perms.xml b/indra/newview/skins/default/xui/pl/floater_bulk_perms.xml
new file mode 100644
index 0000000000..a99acdb238
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/floater_bulk_perms.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floaterbulkperms" title="Hurtowa zmiana praw zawartości">
+ <text name="applyto">
+ Rodzaj Zawartości
+ </text>
+ <check_box label="Animacje" name="check_animation"/>
+ <check_box label="Części Ciała" name="check_bodypart"/>
+ <check_box label="Ubranie" name="check_clothing"/>
+ <check_box label="Gestury" name="check_gesture"/>
+ <check_box label="Zapamiętane Miejsca" name="check_landmark"/>
+ <check_box label="Noty" name="check_notecard"/>
+ <check_box label="Obiekty" name="check_object"/>
+ <check_box label="Skrypty" name="check_script"/>
+ <check_box label="Dźwięki" name="check_sound"/>
+ <check_box label="Tekstury" name="check_texture"/>
+ <button width="115" font="SansSerifSmall" label="Wybierz Wszystkie" label_selected="Wszystkie" name="check_all"/>
+ <button width="115" font="SansSerifSmall" label="Odznacz Wszystkie" label_selected="Żadne" name="check_none"/>
+ <text name="newperms">
+ Nowe Prawa
+ </text>
+ <check_box label="Udostępnij Grupie" name="share_with_group"/>
+ <check_box label="Pozwól kopiować każdemu" name="everyone_copy"/>
+ <text name="NextOwnerLabel">
+ Następny Właściciel:
+ </text>
+ <check_box label="Modyfikuje" name="next_owner_modify"/>
+ <check_box label="Kopiuje" name="next_owner_copy"/>
+ <check_box label="Oddaje/Sprzedaje" name="next_owner_transfer"/>
+ <button label="Pomoc" name="help"/>
+ <button label="Zastosuj" name="apply"/>
+ <button label="Zamknij" name="close"/>
+ <string name="nothing_to_modify_text">
+ Selekcja zawiera zawartość niemodfyfikowalną
+ </string>
+ <string name="status_text">
+ Ustawienie praw na [NAME]
+ </string>
+ <string name="start_text">
+ Rozpoczęcie prośby o zmianę praw...
+ </string>
+ <string name="done_text">
+ Zakończenie prośby o zmianę praw.
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_bumps.xml b/indra/newview/skins/default/xui/pl/floater_bumps.xml
index 88b1ed4fb3..365268dbd6 100755
--- a/indra/newview/skins/default/xui/pl/floater_bumps.xml
+++ b/indra/newview/skins/default/xui/pl/floater_bumps.xml
@@ -7,7 +7,7 @@
[TIME] [FIRST] [LAST] awatar zderzył się z Tobą
</string>
<string name="llpushobject">
- [TIME] [FIRST] [LAST] awatar pochnął Cię swoim skryptem
+ [TIME] [FIRST] [LAST] awatar popchnął Cię swoim skryptem
</string>
<string name="selected_object_collide">
[TIME] [FIRST] [LAST] awatar uderzył Cię swoim obiektem
diff --git a/indra/newview/skins/default/xui/pl/floater_buy_currency.xml b/indra/newview/skins/default/xui/pl/floater_buy_currency.xml
index dd0b069467..a5c0a2498a 100755
--- a/indra/newview/skins/default/xui/pl/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/pl/floater_buy_currency.xml
@@ -10,7 +10,7 @@
Potrzebujesz wiecęj L$:
</text>
<text name="error_message">
- Pojawienie się błedu.
+ Pojawienie się błędu.
</text>
<button label="Idź do strony internetowej" name="error_web" width="168"/>
<text name="contacting">
@@ -23,13 +23,13 @@
[NAME] [PRICE]L$
</text>
<text name="currency_action">
- Kup L$
+ Kup
</text>
- <line_editor name="currency_amt">
+ <line_editor name="currency_amt" left_delta="32">
1234
</line_editor>
<text name="currency_est">
- za [USD]US$
+ L$ za [USD]US$
</text>
<text name="getting_data">
Otrzymywanie danych...
@@ -52,12 +52,12 @@
<text name="total_amount">
[AMT]L$
</text>
- <text name="purchase_warning_repurchase">
- Potwierdzając tę transkację zgadzasz się na zakup
-TYLKO waluty. Proszę spróbować wykonać
-operację jeszcze raz.
+ <text name="purchase_warning_repurchase" height="48" bottom_delta="-64" right="-10">
+ Dokonując potwierdzenia na podaną transakcję,
+wyrażasz zgodę jedynie na zakup waluty.
+Sprobuj wykonać operację ponownie.
</text>
- <text name="purchase_warning_notenough">
+ <text name="purchase_warning_notenough" bottom_delta="16">
Nie zakupujesz wystarczającej ilości waluty.
Proszę zwiększyć ilość.
</text>
diff --git a/indra/newview/skins/default/xui/pl/floater_buy_land.xml b/indra/newview/skins/default/xui/pl/floater_buy_land.xml
index 282732cb5b..ff371b38c0 100755
--- a/indra/newview/skins/default/xui/pl/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/pl/floater_buy_land.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="buy land" title="Buy Land">
<text name="region_name_label">
Region:
@@ -6,6 +6,12 @@
<text name="region_name_text">
(brak danych)
</text>
+ <text name="region_type_label">
+ Typ:
+ </text>
+ <text name="region_type_text">
+ (nieznany)
+ </text>
<text name="estate_name_label">
Majątek:
</text>
@@ -22,10 +28,10 @@
Posiadłości zakupione w tym Regionie:
</text>
<text name="resellable_clause">
- Posiadłosci zakupione w tym Regionie mogą lub nie mogą być odsprzedane.
+ Posiadłość może lub nie może być odsprzedana.
</text>
<text name="changeable_clause">
- mogą lub nie mogą być łaczone i dzielone.
+ Posiadłość może lub nie może być dzielona i łączona.
</text>
<text name="covenant_text">
Musisz zaakceptować Umowę z Majątku:
@@ -33,32 +39,34 @@
<text_editor name="covenant_editor">
Ładowanie...
</text_editor>
- <check_box label="Zgadzam się na Powyższą Umowę." name="agree_covenant" />
+ <check_box label="Zgadzam się na Powyższą Umowę." name="agree_covenant"/>
<text name="info_parcel_label" width="60">
Posiadłość:
</text>
- <text name="info_parcel" left_delta="62">
+ <text left_delta="62" name="info_parcel">
Scotopteryx 138,204
</text>
<text name="info_size_label">
Obszar:
</text>
- <text name="info_size" left_delta="62">
- 1024 m.
+ <text left_delta="62" name="info_size">
+ 1024 m²
</text>
<text name="info_price_label">
Cena:
</text>
- <text name="info_price" left_delta="62">
- 1500 L$, obiekty wliczone
+ <text left_delta="62" name="info_price">
+ L$ 1500
+(L$ 1.1/m²)
+sprzedaż z obiektami
</text>
<text name="info_action">
Zakup tej Posiadłości spowoduje:
</text>
<text name="error_message">
- Coś się nie zgadza.
+ Wystąpił błąd.
</text>
- <button label="Idź na stronę www" name="error_web" />
+ <button label="Idź na stronę www" name="error_web"/>
<text name="account_action">
Zmianę Twojego konta na Premium.
</text>
@@ -74,14 +82,14 @@
Zwiększ opłatę za używanie Posiadłości do 40US$/miesiąc.
</text>
<text name="land_use_reason">
- Twoje Posiadłości mają powierzchnię 1,309 metrów.
-Ta Posiadłość ma 512 metrów.
+ Jesteś właścicielem 1309 m² ziemi.
+Posiadłość ta zawiera 512 m² ziemi.
</text>
<text name="purchase_action">
- Zapłać Rezydentowi Jasiowi 4000L$ za Posiadłość
+ Pay Joe Resident L$ 4000 for the land
</text>
<text name="currency_reason">
- Masz 2,100L$.
+ You have L$ 2,100.
</text>
<text name="currency_action">
Kup więcej L$
@@ -95,9 +103,9 @@ Ta Posiadłość ma 512 metrów.
<text name="currency_balance">
Masz 2,100L$.
</text>
- <check_box label="Zabierz [AMOUNT] metrów donacji z Grupy." name="remove_contribution" />
- <button label="Zakup" name="buy_btn" />
- <button label="Anuluj" name="cancel_btn" />
+ <check_box label="Zabierz [AMOUNT] metrów donacji z Grupy." name="remove_contribution"/>
+ <button label="Zakup" name="buy_btn"/>
+ <button label="Anuluj" name="cancel_btn"/>
<string name="can_resell">
Może być odsprzedana.
</string>
@@ -154,7 +162,7 @@ Spróbuj wybrać inny obszar.
Zakup tej Posiadłości spowoduje:
</string>
<string name="buying_for_group">
- Zakup Posiadłości dla Grupy:
+ Zakup ziemi dla grupy:
</string>
<string name="cannot_buy_now">
Nie możesz teraz kupić:
@@ -163,7 +171,7 @@ Spróbuj wybrać inny obszar.
Nie jest na sprzedaż:
</string>
<string name="none_needed">
- wszystko w porządku
+ Poprawność danych.
</string>
<string name="must_upgrade">
Musisz mieć konto Premium żebyś mógł mieć Posiadłości.
@@ -172,30 +180,38 @@ Spróbuj wybrać inny obszar.
Twoje konto pozwala Ci mieć Posiadłości.
</string>
<string name="land_holdings">
- Twoje Posiadłości mają [BUYER] metrów.
+ Jesteś właścicielem [BUYER] m² ziemi.
</string>
<string name="pay_to_for_land">
Zapłać [SELLER] [AMOUNT]L$ za Posiadłość
</string>
<string name="buy_for_US">
- Kup [AMOUNT]L$ za około [AMOUNT2]US$ ,
+ Kup L$ [AMOUNT] za US$ [AMOUNT2],
</string>
<string name="parcel_meters">
- Ta Posiadłość ma [AMOUNT] metrów.
+ Podana posiadłość to [AMOUNT] m² ziemi.
</string>
<string name="premium_land">
- To jest wartościowa Posiadłość i kosztuje [AMOUNT] za metr.
+ Podana posiadłość jest w cenie premium adekwatnie jak za [AMOUNT] m².
</string>
<string name="discounted_land">
- To jest przeceniona Posiadłość i kosztuje [AMOUNT] za metr.
+ Wybrana posiadłość jest w cenie zniżkowej adekwatnie jak za [AMOUNT] m².
</string>
<string name="meters_supports_object">
- [AMOUNT] metrów
-pozwala na [AMOUNT2] obikty
+ [AMOUNT] m²
+wspiera [AMOUNT2] obiektów
</string>
<string name="sold_with_objects">
sprzedane z obiektami
</string>
+ <string name="sold_without_objects">
+ obiekty nie są zawarte w sprzedaży
+ </string>
+ <string name="info_price_string">
+ L$ [PRICE]
+(L$ [PRICE_PER_SQM]/m²)
+[SOLD_WITH_OBJECTS]
+ </string>
<string name="insufficient_land_credits">
Grupa [GROUP] musi mieć wystarczający kredyt na
używanie Posiadłości żeby sfinalizować ten zakup.
diff --git a/indra/newview/skins/default/xui/pl/floater_camera.xml b/indra/newview/skins/default/xui/pl/floater_camera.xml
index 985d69a9e1..24da91c081 100755
--- a/indra/newview/skins/default/xui/pl/floater_camera.xml
+++ b/indra/newview/skins/default/xui/pl/floater_camera.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="move floater" title="">
<string name="rotate_tooltip">
- Odwracaj kamerę wokół obiektu
+ Obracaj kamerę wokół obiektu
</string>
<string name="zoom_tooltip">
Najedź kamerą w kierunku obiektu
diff --git a/indra/newview/skins/default/xui/pl/floater_critical.xml b/indra/newview/skins/default/xui/pl/floater_critical.xml
index a6558ae92b..8221a4e1bd 100755
--- a/indra/newview/skins/default/xui/pl/floater_critical.xml
+++ b/indra/newview/skins/default/xui/pl/floater_critical.xml
@@ -3,7 +3,7 @@
<button label="Kontynuuj" label_selected="Kontynuuj" name="Continue" />
<button label="Anuluj" label_selected="Anuluj" name="Cancel" />
<text name="tos_heading">
- Proszę przeczytać poniższą wiadomość ostrożnie
+ Proszę przeczytać poniższą wiadomość dokładnie.
</text>
<text_editor name="tos_text">
TOS_TEXT
diff --git a/indra/newview/skins/default/xui/pl/floater_customize.xml b/indra/newview/skins/default/xui/pl/floater_customize.xml
index e026053e74..83c7c5c87d 100755
--- a/indra/newview/skins/default/xui/pl/floater_customize.xml
+++ b/indra/newview/skins/default/xui/pl/floater_customize.xml
@@ -1,456 +1,484 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="floater customize" title="Wygląd">
<tab_container name="customize tab container">
- <panel label="Części Ciała" name="body_parts_placeholder" />
+ <panel label="Części Ciała" name="body_parts_placeholder"/>
<panel label="Kształt" name="Shape">
- <button label="Wróć" label_selected="Wróć" name="Revert" />
- <button label="Ciało" label_selected="Ciało" name="Body" />
- <button label="Głowa" label_selected="Głowa" name="Head" />
- <button label="Oczy" label_selected="Oczy" name="Eyes" />
- <button label="Uszy" label_selected="Uszy" name="Ears" />
- <button label="Nos" label_selected="Nos" name="Nose" />
- <button label="Usta" label_selected="Usta" name="Mouth" />
- <button label="Broda " label_selected="Broda" name="Chin" />
- <button label="Tułów" label_selected="Tułów" name="Torso" />
- <button label="Nogi" label_selected="Nogi" name="Legs" />
+ <button label="Wróć" label_selected="Wróć" name="Revert"/>
+ <button label="Ciało" label_selected="Ciało" name="Body"/>
+ <button label="Głowa" label_selected="Głowa" name="Head"/>
+ <button label="Oczy" label_selected="Oczy" name="Eyes"/>
+ <button label="Uszy" label_selected="Uszy" name="Ears"/>
+ <button label="Nos" label_selected="Nos" name="Nose"/>
+ <button label="Usta" label_selected="Usta" name="Mouth"/>
+ <button label="Broda " label_selected="Broda" name="Chin"/>
+ <button label="Tułów" label_selected="Tułów" name="Torso"/>
+ <button label="Nogi" label_selected="Nogi" name="Legs"/>
<radio_group name="sex radio">
- <radio_item type="string" length="1" name="radio">
+ <radio_item length="1" name="radio" type="string">
Kobieta
</radio_item>
- <radio_item type="string" length="1" name="radio2">
+ <radio_item length="1" name="radio2" type="string">
Mężczyzna
</radio_item>
</radio_group>
- <button label="Losowe" label_selected="Losowe" name="Randomize" />
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: zabroniona modyfikacja
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: ładowanie...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: niezałożone
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
Zapisane w [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Załóż nowy kształt poprzez przeciągnięcie go ze swojej szafy
na awatara. Alternatywnie, możesz także stworzyć własny kształt
-z plików roboczych. --&gt; (Kliknij na Nowy Kształt)
+z plików roboczych.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Nie posiadasz prawa do modyfikowania tego kształtu.
</text>
- <button label="Nowy Kształt" label_selected="Nowy Kształt" name="Create New" />
- <button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
- <button label="Zapisz" label_selected="Zapisz" name="Save" />
- <button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
+ <text name="Item Action Label">
+ Kształt:
+ </text>
+ <button label="Nowy Kształt" label_selected="Nowy Kształt" name="Create New"/>
+ <button label="Zapisz" label_selected="Zapisz" name="Save"/>
+ <button label="Zapisz Jako..." label_selected="Zapisz Jako..." name="Save As"/>
</panel>
<panel label="Skórka" name="Skin">
- <button label="Kolor Skórki" label_selected="Kolor Skórki" name="Skin Color" />
- <button label="Detale Twarzy" label_selected="Detale Twarzy" name="Face Detail" />
- <button label="Makijaż" label_selected="Makijaż" name="Makeup" />
- <button label="Detale Ciała" label_selected="Detale Ciała" name="Body Detail" />
- <text type="string" length="1" name="title">
+ <button label="Kolor Skórki" label_selected="Kolor Skórki" name="Skin Color"/>
+ <button label="Detale Twarzy" label_selected="Detale Twarzy" name="Face Detail"/>
+ <button label="Makijaż" label_selected="Makijaż" name="Makeup"/>
+ <button label="Detale Ciała" label_selected="Detale Ciała" name="Body Detail"/>
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: modyfikacja zabroniona
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: ładowanie...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: niezałożone
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
Zapisane w [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Załóż nową skórkę poprzez przeciągnięcie jej ze swojej szafy
na awatara. Alternatywnie, możesz także stworzyć własną skórkę
-z plików roboczych. --&gt; (Kliknij na Nowa Skórka)
+z plików roboczych.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Nie posiadasz prawa do modyfikowania tej skórki.
</text>
- <texture_picker label="Tatuaże Głowy" name="Head Tattoos"
- tool_tip="Kliknij by wybrać teksturę" />
- <texture_picker label="Tatuaże Górne" name="Upper Tattoos"
- tool_tip="Kliknij by wybrać teksturę" />
- <texture_picker label="Tatuaże Dolne" name="Lower Tattoos"
- tool_tip="Kliknij by wybrać teksturę" />
- <button label="Losowe" label_selected="Losowe" name="Randomize" />
- <button label="Nowa Skórka" label_selected="Nowa Skórka" name="Create New" />
- <button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
- <button label="Zapisz" label_selected="Zapisz" name="Save" />
- <button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
- <button label="Wróć" label_selected="Wróć" name="Revert" />
+ <text name="Item Action Label">
+ Skórka:
+ </text>
+ <texture_picker label="Tatuaże Głowy" name="Head Tattoos" tool_tip="Kliknij by wybrać teksturę"/>
+ <texture_picker label="Tatuaże Górne" name="Upper Tattoos" tool_tip="Kliknij by wybrać teksturę"/>
+ <texture_picker label="Tatuaże Dolne" name="Lower Tattoos" tool_tip="Kliknij by wybrać teksturę"/>
+ <button label="Nowa Skórka" label_selected="Nowa Skórka" name="Create New"/>
+ <button label="Zapisz" label_selected="Zapisz" name="Save"/>
+ <button label="Zapisz Jako..." label_selected="Zapisz Jako..." name="Save As"/>
+ <button label="Wróć" label_selected="Wróć" name="Revert"/>
</panel>
<panel label="Włosy" name="Hair">
- <button label="Kolor" label_selected="Kolor" name="Color" />
- <button label="Styl" label_selected="Styl" name="Style" />
- <button label="Brwi" label_selected="Brwi" name="Eyebrows" />
- <button label="Twarzy" label_selected="Twarzy" name="Facial" />
- <text type="string" length="1" name="title">
+ <button label="Kolor" label_selected="Kolor" name="Color"/>
+ <button label="Styl" label_selected="Styl" name="Style"/>
+ <button label="Brwi" label_selected="Brwi" name="Eyebrows"/>
+ <button label="Twarzy" label_selected="Twarzy" name="Facial"/>
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: modyfikacja zabroniona
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: ładowanie...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: niezałożone
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
Zapisane w [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Załóż nowe włosy poprzez przeciągnięcie ich ze swojej szafy
na awatara. Alternatywnie, możesz także stworzyć własne włosy
-z plików roboczych. --&gt; (Kliknij na Nowe Włosy)
+z plików roboczych.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Nie posiadasz prawa do modyfikowania tych włosów.
</text>
- <texture_picker label="Tekstura" name="Texture" tool_tip="Kliknij by wybrać teksturę" />
- <button label="Losowe" label_selected="Losowe" name="Randomize" />
- <button label="Nowe Włosy" label_selected="Nowe Włosy" name="Create New" />
- <button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
- <button label="Zapisz" label_selected="Zapisz" name="Save" />
- <button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
- <button label="Wróć" label_selected="Wróć" name="Revert" />
+ <text name="Item Action Label">
+ Włosy:
+ </text>
+ <texture_picker label="Tekstura" name="Texture" tool_tip="Kliknij by wybrać teksturę"/>
+ <button label="Nowe Włosy" label_selected="Nowe Włosy" name="Create New"/>
+ <button label="Zapisz" label_selected="Zapisz" name="Save"/>
+ <button label="Zapisz Jako..." label_selected="Zapisz Jako..." name="Save As"/>
+ <button label="Wróć" label_selected="Wróć" name="Revert"/>
</panel>
<panel label="Oczy" name="Eyes">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: modyfikacja zabroniona
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: ładowanie...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: niezałożone
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
Zapisane w [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Załóż nowe oczy poprzez przeciągnięcie ich ze swojej szafy
na awatara. Alternatywnie, możesz także stworzyć własne oczy
-z plików roboczych. --&gt; (Kliknij na Nowe Oczy)
+z plików roboczych.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Nie posiadasz prawa do modyfikowania tych oczów.
</text>
- <texture_picker label="Tęczówka" name="Iris" tool_tip="Kliknij by wybrać teksturę" />
- <button label="Losowe" label_selected="Losowe" name="Randomize" />
- <button label="Nowe Oczy" label_selected="Nowe Oczy" name="Create New" />
- <button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
- <button label="Zapisz" label_selected="Zapisz" name="Save" />
- <button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
- <button label="Wróć" label_selected="Wróć" name="Revert" />
+ <text name="Item Action Label">
+ Oczy:
+ </text>
+ <texture_picker label="Tęczówka" name="Iris" tool_tip="Kliknij by wybrać teksturę"/>
+ <button label="Nowe Oczy" label_selected="Nowe Oczy" name="Create New"/>
+ <button label="Zapisz" label_selected="Zapisz" name="Save"/>
+ <button label="Zapisz Jako..." label_selected="Zapisz Jako..." name="Save As"/>
+ <button label="Wróć" label_selected="Wróć" name="Revert"/>
</panel>
- <panel label="Ubrania" name="clothes_placeholder" />
+ <panel label="Ubrania" name="clothes_placeholder"/>
<panel label="Koszula" name="Shirt">
- <texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij by wybrać teksturę" />
- <color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij by wybrać kolor" />
- <button label="Nowa Koszula" label_selected="Nowa Koszula" name="Create New" />
- <button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
- <button label="Zapisz" label_selected="Zapisz" name="Save" />
- <button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
- <button label="Wróć" label_selected="Wróć" name="Revert" />
- <text type="string" length="1" name="title">
+ <texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij by wybrać teksturę"/>
+ <color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij by wybrać kolor"/>
+ <button label="Nowa Koszula" label_selected="Nowa Koszula" name="Create New"/>
+ <button label="Zdejmij" label_selected="Zdejmij" name="Take Off"/>
+ <button label="Zapisz" label_selected="Zapisz" name="Save"/>
+ <button label="Zapisz Jako..." label_selected="Zapisz Jako..." name="Save As"/>
+ <button label="Wróć" label_selected="Wróć" name="Revert"/>
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: modyfikowanie zabronione
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: ładowanie...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: niezałożone
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
Zapisane w [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Załóż nową koszulę poprzez przeciągnięcie jej ze swojej szafy
na awatara. Alternatywnie, możesz także stworzyć własną koszulę
-z plików roboczych. --&gt; (Kliknij na Nowa Koszula)
+z plików roboczych.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Nie posiadasz prawa do modyfikowania tej koszuli.
</text>
+ <text name="Item Action Label">
+ Koszulka:
+ </text>
</panel>
<panel label="Spodnie" name="Pants">
- <texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij tutaj by wybrać teksturę" />
- <color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij by wybrać kolor" />
- <button label="Nowe Spodnie" label_selected="Nowe Spodnie" name="Create New" />
- <button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
- <button label="Zapisz" label_selected="Zapisz" name="Save" />
- <button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
- <button label="Wróć" label_selected="Wróć" name="Revert" />
- <text type="string" length="1" name="title">
+ <texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij tutaj by wybrać teksturę"/>
+ <color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij by wybrać kolor"/>
+ <button label="Nowe Spodnie" label_selected="Nowe Spodnie" name="Create New"/>
+ <button label="Zdejmij" label_selected="Zdejmij" name="Take Off"/>
+ <button label="Zapisz" label_selected="Zapisz" name="Save"/>
+ <button label="Zapisz Jako..." label_selected="Zapisz Jako..." name="Save As"/>
+ <button label="Wróć" label_selected="Wróć" name="Revert"/>
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: modyfikcja zabroniona
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: ładowanie...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: niezałożone
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
Zapisane w [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Załóż nowe spodnie poprzez przeciągnięcie ich ze swojej szafy
na awatara. Alternatywnie, możesz także stworzyć własne spodnie
-z plików roboczych. --&gt; (Kliknij na Nowe Spodnie)
+z plików roboczych.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Nie posiadasz prawa do modyfikowania tych spodni.
</text>
+ <text name="Item Action Label">
+ Spodnie:
+ </text>
</panel>
<panel label="Buty" name="Shoes">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: modyfikacja zabroniona
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: ładwanie...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: niezałożone
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
Zapisane w [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Załóż nowe buty poprzez przeciągnięcie ich ze swojej szafy
na awatara. Alternatywnie, możesz także stworzyć własne buty
-z plików roboczych. --&gt; (Kliknij na Nowe Buty)
+z plików roboczych.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Nie posiadasz prawa do modyfikowania tych butów.
</text>
- <texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij by wybrać teksturę" />
- <color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij by wybrać kolor" />
- <button label="Nowe Buty" label_selected="Nowe Buty" name="Create New" />
- <button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
- <button label="Zapisz" label_selected="Zapisz" name="Save" />
- <button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
- <button label="Wróć" label_selected="Wróć" name="Revert" />
+ <text name="Item Action Label">
+ Buty:
+ </text>
+ <texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij by wybrać teksturę"/>
+ <color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij by wybrać kolor"/>
+ <button label="Nowe Buty" label_selected="Nowe Buty" name="Create New"/>
+ <button label="Zdejmij" label_selected="Zdejmij" name="Take Off"/>
+ <button label="Zapisz" label_selected="Zapisz" name="Save"/>
+ <button label="Zapisz Jako..." label_selected="Zapisz Jako..." name="Save As"/>
+ <button label="Wróć" label_selected="Wróć" name="Revert"/>
</panel>
<panel label="Skarpety" name="Socks">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: modyfikacja zabroniona
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: ładowanie...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: niezałożone
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
Zapisane w [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Załóż nowe skarpety poprzez przeciągnięcie ich ze swojej szafy
na awatara. Alternatywnie, możesz także stworzyć własne skarpety
-z plików roboczych. --&gt; (Kliknij na Nowe Skarpety)
+z plików roboczych.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Nie posiadasz prawa do modyfikowania tych skarpet.
</text>
- <texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij by wybrać teksturę" />
- <color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij by wybrać kolor" />
- <button label="Nowe Skarpety" label_selected="Nowe Skarpety" name="Create New" />
- <button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
- <button label="Zapisz" label_selected="Zapisz" name="Save" />
- <button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
- <button label="Wróć" label_selected="Wróć" name="Revert" />
+ <text name="Item Action Label">
+ Skarpetki:
+ </text>
+ <texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij by wybrać teksturę"/>
+ <color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij by wybrać kolor"/>
+ <button label="Nowe Skarpety" label_selected="Nowe Skarpety" name="Create New"/>
+ <button label="Zdejmij" label_selected="Zdejmij" name="Take Off"/>
+ <button label="Zapisz" label_selected="Zapisz" name="Save"/>
+ <button label="Zapisz Jako..." label_selected="Zapisz Jako..." name="Save As"/>
+ <button label="Wróć" label_selected="Wróć" name="Revert"/>
</panel>
<panel label="Kurtka" name="Jacket">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: modyfikacja zabroniona
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: ładowanie...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: niezałożone
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
Zapisane w [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Załóż nową kurtkę poprzez przeciągnięcie jej ze swojej szafy
na awatara. Alternatywnie, możesz także stworzyć własną kurtkę
-z plików roboczych. --&gt; (Kliknij na Nowa Kurtka)
+z plików roboczych.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Nie posiadasz prawa do modyfikowania tej kurtki.
</text>
+ <text name="Item Action Label">
+ Kurtka:
+ </text>
<texture_picker label="Górny Materiał" name="Upper Fabric" tool_tip="Kliknij by wybrać teksturę" width="76"/>
<texture_picker label="Dolny Materiał" name="Lower Fabric" tool_tip="Kliknij by wybrać kolor" width="76"/>
<color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij by wybrać kolor" width="76"/>
- <button label="Nowa Kurtka" label_selected="Nowa Kurtka" name="Create New" />
- <button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
- <button label="Zapisz" label_selected="Zapisz" name="Save" />
- <button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
- <button label="Wróć" label_selected="Wróć" name="Revert" />
+ <button label="Nowa Kurtka" label_selected="Nowa Kurtka" name="Create New"/>
+ <button label="Zdejmij" label_selected="Zdejmij" name="Take Off"/>
+ <button label="Zapisz" label_selected="Zapisz" name="Save"/>
+ <button label="Zapisz Jako..." label_selected="Zapisz Jako..." name="Save As"/>
+ <button label="Wróć" label_selected="Wróć" name="Revert"/>
</panel>
<panel label="Rękawiczki" name="Gloves">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: modyfikacja zabroniona
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: ładowanie...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: niezałożone
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
Zapisane w [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Załóż nowe rękawiczki poprzez przeciągnięcie ich ze swojej szafy
na awatara. Alternatywnie, możesz także stworzyć własne rękawiczki
-z plików roboczych. --&gt; (Kliknij na Nowe Rękawiczki)
+z plików roboczych.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Nie posiadasz prawa do modyfikowania tych rękawiczek
</text>
- <texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij by wybrać teksturę" />
- <color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij by wybrać kolor" />
- <button label="Nowe Rękawiczki" label_selected="Nowe Rękawiczki" name="Create New" />
- <button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
- <button label="Zapisz" label_selected="Zapisz" name="Save" />
- <button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
- <button label="Wróć" label_selected="Wróć" name="Revert" />
+ <text name="Item Action Label">
+ Rękawiczki:
+ </text>
+ <texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij by wybrać teksturę"/>
+ <color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij by wybrać kolor"/>
+ <button label="Nowe Rękawiczki" label_selected="Nowe Rękawiczki" name="Create New"/>
+ <button label="Zdejmij" label_selected="Zdejmij" name="Take Off"/>
+ <button label="Zapisz" label_selected="Zapisz" name="Save"/>
+ <button label="Zapisz Jako..." label_selected="Zapisz Jako..." name="Save As"/>
+ <button label="Wróć" label_selected="Wróć" name="Revert"/>
</panel>
<panel label="Podkoszulek" name="Undershirt">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: modyfikacja zabroniona
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: ładowanie...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: niezałożone
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
Zapisane w [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Załóż nowy podkoszulek poprzez przeciągnięcie ich ze swojej szafy
na awatara. Alternatywnie, możesz także stworzyć własny podkoszulek
-z plików roboczych. --&gt; (Kliknij na Nowy Podkoszulek)
+z plików roboczych.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Nie posiadasz prawa do modyfikowania tego podkoszulka.
</text>
- <texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij by wybrać teksturę" />
- <color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij by wybrać kolor" />
- <button label="Nowy Podkoszulek" label_selected="Nowy Podkoszulek" name="Create New" />
- <button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
- <button label="Zapisz" label_selected="Zapisz" name="Save" />
- <button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
- <button label="Wróć" label_selected="Wróć" name="Revert" />
+ <text name="Item Action Label">
+ Podkoszulka:
+ </text>
+ <texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij by wybrać teksturę"/>
+ <color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij by wybrać kolor"/>
+ <button label="Nowy Podkoszulek" label_selected="Nowy Podkoszulek" name="Create New"/>
+ <button label="Zdejmij" label_selected="Zdejmij" name="Take Off"/>
+ <button label="Zapisz" label_selected="Zapisz" name="Save"/>
+ <button label="Zapisz Jako..." label_selected="Zapisz Jako..." name="Save As"/>
+ <button label="Wróć" label_selected="Wróć" name="Revert"/>
</panel>
<panel label="Bielizna" name="Underpants">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: modyfikacja zabroniona
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: ładowanie...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: niezałożone
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
Zapisane w [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Załóż nową bieliznę poprzez przeciągnięcie jej ze swojej szafy
na awatara. Alternatywnie, możesz także stworzyć własną bieliznę
-z plików roboczych. --&gt; (Kliknij na Nowa Bielizna)
+z plików roboczych.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Nie posiadasz prawa do modyfikowania tej bielizny.
</text>
- <texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij by wybrać teksturę" />
- <color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij by wybrać kolor" />
- <button label="Nowa Bielizna" label_selected="Nowa Bielizna" name="Create New" />
- <button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
- <button label="Zapisz" label_selected="Zapisz" name="Save" />
- <button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
- <button label="Wróć" label_selected="Wróć" name="Revert" />
+ <text name="Item Action Label">
+ Bielizna:
+ </text>
+ <texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij by wybrać teksturę"/>
+ <color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij by wybrać kolor"/>
+ <button label="Nowa Bielizna" label_selected="Nowa Bielizna" name="Create New"/>
+ <button label="Zdejmij" label_selected="Zdejmij" name="Take Off"/>
+ <button label="Zapisz" label_selected="Zapisz" name="Save"/>
+ <button label="Zapisz Jako..." label_selected="Zapisz Jako..." name="Save As"/>
+ <button label="Wróć" label_selected="Wróć" name="Revert"/>
</panel>
<panel label="Spódnica" name="Skirt">
- <text type="string" length="1" name="title">
+ <text length="1" name="title" type="string">
[DESC]
</text>
- <text type="string" length="1" name="title_no_modify">
+ <text length="1" name="title_no_modify" type="string">
[DESC]: modyfikacja zabroniona
</text>
- <text type="string" length="1" name="title_loading">
+ <text length="1" name="title_loading" type="string">
[DESC]: ładowanie...
</text>
- <text type="string" length="1" name="title_not_worn">
+ <text length="1" name="title_not_worn" type="string">
[DESC]: niezałożone
</text>
- <text type="string" length="1" name="path">
+ <text length="1" name="path" type="string">
Zapisane w [PATH]
</text>
- <text type="string" length="1" name="not worn instructions">
+ <text length="1" name="not worn instructions" type="string">
Załóż nową spódnicę poprzez przeciągnięcie jej ze swojej szafy
na awatara. Alternatywnie, możesz także stworzyć własną spódnicę
-z plików roboczych. --&gt; (Kliknij na Nowa Spódnica)
+z plików roboczych.
</text>
- <text type="string" length="1" name="no modify instructions">
+ <text length="1" name="no modify instructions" type="string">
Nie posiadasz prawa do modyfikowania tej spódnicy.
</text>
- <texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij by wybrać teksturę" />
- <color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij by wybrać kolor" />
- <button label="Nowa Spódnica" label_selected="Nowa Spódnica" name="Create New" />
- <button label="Zdejmij" label_selected="Zdejmij" name="Take Off" />
- <button label="Zapisz" label_selected="Zapisz" name="Save" />
- <button label="Zapisz Jako" label_selected="Zapisz Jako" name="Save As" />
- <button label="Wróć" label_selected="Wróć" name="Revert" />
+ <text name="Item Action Label">
+ Spódnica:
+ </text>
+ <texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij by wybrać teksturę"/>
+ <color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij by wybrać kolor"/>
+ <button label="Nowa Spódnica" label_selected="Nowa Spódnica" name="Create New"/>
+ <button label="Zdejmij" label_selected="Zdejmij" name="Take Off"/>
+ <button label="Zapisz" label_selected="Zapisz" name="Save"/>
+ <button label="Zapisz Jako..." label_selected="Zapisz Jako..." name="Save As"/>
+ <button label="Wróć" label_selected="Wróć" name="Revert"/>
</panel>
</tab_container>
- <button label="Zamknij" label_selected="Zamknij" name="Close" />
- <button label="Zapisz Wygląd" label_selected="Zapisz Wygląd" name="Save All" />
- <button label="Stwórz Ubranie" label_selected="Stwórz Ubranie" name="Make Outfit" />
+ <button label="Anuluj" label_selected="Anuluj" name="Cancel"/>
+ <button label="OK" label_selected="OK" name="Ok"/>
+ <button label="Stwórz Ubranie..." label_selected="Stwórz Ubranie..." name="Make Outfit" width="115"/>
</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_font_test.xml b/indra/newview/skins/default/xui/pl/floater_font_test.xml
new file mode 100644
index 0000000000..586d2690b3
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/floater_font_test.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="contents" title="Czcionka Tekstu">
+ <text name="linea">
+ OverrideTest, powinno wyświetlać się jako Times. (From default/xui/en-us)
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_god_tools.xml b/indra/newview/skins/default/xui/pl/floater_god_tools.xml
index 64213cbca1..c978da6d65 100755
--- a/indra/newview/skins/default/xui/pl/floater_god_tools.xml
+++ b/indra/newview/skins/default/xui/pl/floater_god_tools.xml
@@ -2,25 +2,26 @@
<floater name="godtools floater" title="Boskie Narzędzia">
<tab_container name="GodTools Tabs">
<panel label="Grid" name="grid">
- <button label="Usuń wszystkich użytkowników" label_selected="Usuń wszystkich użytkowników" name="Kick all users"/>
- <button label="Wyrównaj ten region&apos;s Widoczność Buforu Mapy" label_selected="Wyrównaj ten region&apos;s Widoczność Buforu Mapy" name="Flush This Region&apos;s Map Visibility Caches"/>
+ <button width="205" label="Usuń wszystkich użytkowników" label_selected="Usuń wszystkich użytkowników" name="Kick all users"/>
+ <button width="285" label="Wyrównaj Widoczność Buforu Mapy Regionu" label_selected="Wyrównaj Widoczność Buforu Mapy Regionu" name="Flush This Region&apos;s Map Visibility Caches"/>
</panel>
<panel label="Region" name="region">
- <text name="Sim Name:">
+ <text name="Sim Name:" width="100">
Nazwa Symulatora:
</text>
+ <line_editor left="115" name="region name" width="178" />
<line_editor name="region name"/>
<check_box label="Wstęp" name="check prelude" />
<check_box label="Korekta Słońca" name="check fixed sun" tool_tip="Skorektuj ustawienia pozycji słońca."/>
- <check_box label="Zresetuj Pozycję Miejsca Startwego" name="check reset home" />
- <check_box label="Widoczny" name="check visible" tool_tip="Wybierz tę opcję by ustawić region widocznym dla wszystkich."/>
+ <check_box height="32" label="Zresetuj Pozycję &#10;Miejsca Startowego" name="check reset home" />
+ <check_box bottom_delta="-32" label="Widoczny" name="check visible" tool_tip="Wybierz tę opcję by ustawić region widocznym dla wszystkich."/>
<check_box label="Zniszczenia" name="check damage" tool_tip="Wybierz tę opcję by uruchomić opcję zniszczeń w regionie."/>
<check_box label="Zablokuj Monitorowanie Trafficu" name="block dwell" tool_tip="Wybierz tę opcję by zablokować monitorowanie trafficu w regionie."/>
<check_box label="Zablokuj Terraformowanie" name="block terraform" tool_tip="Wybierz tę opcję by zablokować terraforming w regionie"/>
<check_box label="Piaskownica" name="is sandbox" />
- <button label="Bake Teren" label_selected="Bake Teren" name="Bake Terrain" tool_tip="Zachowaj obecne ustawienia jako domyślne"/>
- <button label="Cofnięcie Modyfikacji" label_selected="Cofnięcie Modyfikacji" name="Revert Terrain" tool_tip="Przywróć Ustawienia Domyślne Regionu."/>
- <button label="Zamień Teren" label_selected="Zamień Teren" name="Swap Terrain" />
+ <button width="138" label="Ustal Teren" label_selected="Ustal Teren" name="Bake Terrain" tool_tip="Zapamiętaj obecny teren jako początkowy dla cofnięcia modyfikacji terenu."/>
+ <button width="138" label="Cofnięcie Modyfikacji" label_selected="Cofnięcie Modyfikacji" name="Revert Terrain" tool_tip="Przywróć Ustawienia Domyślne Regionu."/>
+ <button width="138" label="Zamień Teren" label_selected="Zamień Teren" name="Swap Terrain" />
<text name="estate id">
ID Regionu:
</text>
@@ -32,13 +33,13 @@
<text name="Grid Pos: ">
Pozycje Gridu:
</text>
- <line_editor name="gridposx" tool_tip="Pozycja x gridu dla regionu"/>
- <line_editor name="gridposy" tool_tip="Pozycja y gridu dla regionu"/>
+ <line_editor name="gridposx" tool_tip="Pozycja x gridu dla regionu" left_delta="110" width="35" />
+ <line_editor name="gridposy" tool_tip="Pozycja y gridu dla regionu" left_delta="45" width="35" />
<text name="Redirect to Grid: ">
Przełącz do gridu:
</text>
- <line_editor name="redirectx"/>
- <line_editor name="redirecty"/>
+ <line_editor left_delta="110" name="redirectx" width="35" />
+ <line_editor left_delta="45" name="redirecty" width="35" />
<spinner name="billable factor"/>
<text name="billable factor text">
Czynnik Płatnośći:
@@ -48,15 +49,15 @@
L$/m:
</text>
<button label="Odśwież" label_selected="Odśwież" name="Refresh" />
- <button label="Apply" label_selected="Apply" name="Apply" />
- <button label="Wybierz Region" label_selected="Wybierz Region" name="Select Region" tool_tip="Wybierz cały region za pomocą narzędzi edycji terenu"/>
- <button label="Automatyczne Zapisanie" label_selected="Automatyczne Zapisanie" name="Autosave now" />
+ <button label="Zastosuj" label_selected="Zastosuj" name="Apply" />
+ <button width="150" left="156" label="Wybierz Region" label_selected="Wybierz Region" name="Select Region" tool_tip="Wybierz cały region za pomocą narzędzi edycji terenu"/>
+ <button width="150" left="156" label="Automatyczne Zapisanie" label_selected="Automatyczne Zapisanie" name="Autosave now" />
</panel>
<panel label="Obiekty" name="objects">
- <text name="Sim Name:">
+ <text name="Sim Name:" width="105">
Nazwa Symulatora:
</text>
- <text name="region name">
+ <text name="region name" left_delta="110">
Welsh
</text>
<check_box label="Wyłącz Skrypty" name="disable scripts" />
@@ -74,7 +75,7 @@
<button label="Główne Skrypty" label_selected="Główne Skrypty" name="Get Top Scripts" />
<button label="Treść skryptów" label_selected="Treść skryptów" name="Scripts digest" tool_tip="Wyświetla listę wszystkich skryptów i liczbę ich zastosowań."/>
</panel>
- <panel label="Zarządaj" name="request">
+ <panel label="Zażądaj" name="request">
<text name="Destination:">
Cel:
</text>
@@ -83,7 +84,7 @@
<combo_box.item name="AgentRegion" label="Agent Regionu" />
</combo_box>
<text name="Request:">
- Rządanie:
+ Żądanie:
</text>
<combo_box name="request">
<combo_box.item name="colliders&lt;steps&gt;" label="kolidery &lt;kroki&gt;" />
@@ -95,7 +96,7 @@
Parameter:
</text>
<line_editor name="parameter"/>
- <button label="Zarządaj" label_selected="Zarządaj" name="Make Request"/>
+ <button label="Zażądaj" label_selected="Zażądaj" name="Make Request"/>
</panel>
</tab_container>
</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_im.xml b/indra/newview/skins/default/xui/pl/floater_im.xml
index 00a91bdf6c..67c9d13496 100755
--- a/indra/newview/skins/default/xui/pl/floater_im.xml
+++ b/indra/newview/skins/default/xui/pl/floater_im.xml
@@ -10,7 +10,7 @@
Kliknij na [BUTTON NAME] przycisk by zaakceptować/dołączyć do tej rozmowy.
</string>
<string name="muted_message">
- Ten rezydent jest przez Ciebie wyciszony. Wysyłanie wiadomośći automatycznie wyłączy tryb wyciszenia.
+ Ten Rezydent jest przez Ciebie wyciszony. Wysyłanie wiadomości automatycznie wyłączy tryb wyciszenia.
</string>
<string name="generic_request_error">
Błąd. Spróbuj ponownie za kilka minut.
diff --git a/indra/newview/skins/default/xui/pl/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/pl/floater_inventory_item_properties.xml
index f754610ee3..c32d1eeabf 100755
--- a/indra/newview/skins/default/xui/pl/floater_inventory_item_properties.xml
+++ b/indra/newview/skins/default/xui/pl/floater_inventory_item_properties.xml
@@ -60,12 +60,8 @@
</text>
<check_box label="Sprzedaż" name="CheckPurchase" />
<radio_group name="RadioSaleType">
- <radio_item name="radio">
- Oryginał
- </radio_item>
- <radio_item name="radio2">
- Kopia
- </radio_item>
+ <radio_item name="radio" label="Oryginał" />
+ <radio_item name="radio2" label="Kopia" />
</radio_group>
<text name="TextPrice">
Cena: L$
diff --git a/indra/newview/skins/default/xui/pl/floater_land_holdings.xml b/indra/newview/skins/default/xui/pl/floater_land_holdings.xml
index 21e6b5ae22..29268f0e97 100755
--- a/indra/newview/skins/default/xui/pl/floater_land_holdings.xml
+++ b/indra/newview/skins/default/xui/pl/floater_land_holdings.xml
@@ -1,21 +1,20 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="land holdings floater" title="My Land">
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="land holdings floater" title="Moja posiadłość">
<scroll_list name="parcel list">
- <column label="Nazwa" name="name" />
- <column label="Położenie" name="location" />
- <column label="Obszar" name="area" />
- <column label="" name="hidden" />
+ <column label="Nazwa posiadłości" name="name"/>
+ <column label="Region" name="location"/>
+ <column label="Typ" name="type"/>
+ <column label="Obszar" name="area"/>
+ <column label="" name="hidden"/>
</scroll_list>
- <button label="Teleportuj" label_selected="Teleport" name="Teleport"
- tool_tip="Teleportuj się do centrum tej Posiadłości." />
- <button label="Pokaż na Mapie" label_selected="Show on Map" name="Show on Map"
- tool_tip="Pokaż to miejsce na mapie świata." />
+ <button label="Teleportuj" label_selected="Teleport" name="Teleport" tool_tip="Teleportuj się do centrum tej Posiadłości."/>
+ <button label="Pokaż na Mapie" label_selected="Pokaż na mapie" name="Show on Map" tool_tip="Pokaż to miejsce na mapie świata."/>
<text name="contrib_label">
Kontrybucje do Twoich Grup:
</text>
<scroll_list name="grant list">
- <column label="Grupa" name="group" />
- <column label="Obszar" name="area" />
+ <column label="Grupa" name="group"/>
+ <column label="Obszar" name="area"/>
</scroll_list>
<text name="allowed_label">
Dozwolone udziały przy obecnym planie płatności:
diff --git a/indra/newview/skins/default/xui/pl/floater_mute_object.xml b/indra/newview/skins/default/xui/pl/floater_mute_object.xml
index a09c6baac2..310810db76 100755
--- a/indra/newview/skins/default/xui/pl/floater_mute_object.xml
+++ b/indra/newview/skins/default/xui/pl/floater_mute_object.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="mute by name" title="Wycisz Obiekt Według Nazwy">
+<floater name="mute by name" title="Wycisz Obiekt Według Nazwy" height="160" min_height="160" >
<text name="message">
- Wyciszenie obiektu jest skuteczne jedynie na czacie oraz w wiadomościach IM. Nie obejmuje natomiast dźwięków.
+ Wyciszenie obiektu jest skuteczne jedynie na czacie oraz w
+wiadomościach IM. Nie obejmuje natomiast dźwięków.
By wyciszyć obiekt musisz wpisać dokładnie jego nazwę.
</text>
- <line_editor name="object_name">
+ <line_editor name="object_name" bottom_delta="-60">
Nazwa Obiektu
</line_editor>
<button label="Ok" name="OK" />
diff --git a/indra/newview/skins/default/xui/pl/floater_perm_prefs.xml b/indra/newview/skins/default/xui/pl/floater_perm_prefs.xml
new file mode 100644
index 0000000000..dd7cbe1f79
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/floater_perm_prefs.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="perm prefs" title="Prawa Domyślne">
+ <panel label="Prawa" name="permissions">
+ <button label="?" label_selected="?" name="help"/>
+ <check_box label="Udostępnij grupie" name="share_with_group"/>
+ <check_box label="Pozwól kopiować każdemu" name="everyone_copy"/>
+ <text name="NextOwnerLabel">
+ Następny właściciel:
+ </text>
+ <check_box label="Modyfikuje" name="next_owner_modify"/>
+ <check_box label="Kopiuje" name="next_owner_copy"/>
+ <check_box label="Oddaje/Sprzedaje" name="next_owner_transfer"/>
+ </panel>
+ <button label="OK" label_selected="OK" name="ok"/>
+ <button label="Anuluj" label_selected="Anuluj" name="cancel"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_post_process.xml b/indra/newview/skins/default/xui/pl/floater_post_process.xml
index 21c92764f6..a86e1bcfa5 100755
--- a/indra/newview/skins/default/xui/pl/floater_post_process.xml
+++ b/indra/newview/skins/default/xui/pl/floater_post_process.xml
@@ -2,7 +2,7 @@
<floater name="Post-Process Floater" title="Ustawienia Przetwarzania Końcowego">
<tab_container name="Post-Process Tabs">
<panel label="Kolor Filtru" name="wmiColorFilterPanel">
- <check_box label="Enable" name="wmiColorFilterToggle" />
+ <check_box label="Udostępnij" name="wmiColorFilterToggle" />
<text type="string" length="1" name="wmiColorFilterBrightnessText">
Jasność
</text>
diff --git a/indra/newview/skins/default/xui/pl/floater_preview_gesture.xml b/indra/newview/skins/default/xui/pl/floater_preview_gesture.xml
index 013780ebf9..1c7a3f6631 100755
--- a/indra/newview/skins/default/xui/pl/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/pl/floater_preview_gesture.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="gesture_preview">
<string name="stop_txt">
Stop
@@ -15,43 +15,42 @@
<text name="trigger_label">
Włączanie:
</text>
- <text name="replace_text"
- tool_tip="Zmień włączającą frazę na inną. Na przykład zmiana &apos;witam&apos; na &apos;cześć&apos; zmieni czat &apos;Chciałem powiedzieć witam&apos; na &apos;Chciałem powiedzieć cześć&apos; i pokaże animację!">
+ <text name="replace_text" tool_tip="Zmień włączającą frazę na inną. Na przykład zmiana &apos;witam&apos; na &apos;cześć&apos; zmieni czat &apos;Chciałem powiedzieć witam&apos; na &apos;Chciałem powiedzieć cześć&apos; i pokaże animację!">
Zamień na:
</text>
- <line_editor name="replace_editor"
- tool_tip="Zmień włączającą frazę na inną. Na przykład zmiana &apos;witam&apos; na &apos;cześć&apos; zmieni czat &apos;Chciałem powiedzieć witam&apos; na &apos;Chciałem powiedzieć cześć&apos; i pokaże animację!" />
+ <line_editor name="replace_editor" tool_tip="Zmień włączającą frazę na inną. Na przykład zmiana &apos;witam&apos; na &apos;cześć&apos; zmieni czat &apos;Chciałem powiedzieć witam&apos; na &apos;Chciałem powiedzieć cześć&apos; i pokaże animację!"/>
<text name="key_label">
Skrót:
</text>
- <combo_box label="Brak" name="modifier_combo" />
- <combo_box label="Brak" name="key_combo" />
+ <combo_box label="Brak" name="modifier_combo"/>
+ <combo_box label="Brak" name="key_combo"/>
<text name="library_label">
Zbiór:
</text>
<text name="steps_label">
Etapy:
</text>
- <button label="Dodaj &gt;&gt;" name="add_btn" />
- <button label="W Górę" name="up_btn" />
- <button label="W Dół" name="down_btn" />
- <button label="Usuń" name="delete_btn" />
+ <scroll_list name="library_list">
+ Animacja
+Dźwięk
+Czat
+Wstrzymaj
+ </scroll_list>
+ <button label="Dodaj &gt;&gt;" name="add_btn"/>
+ <button label="W Górę" name="up_btn"/>
+ <button label="W Dół" name="down_btn"/>
+ <button label="Usuń" name="delete_btn"/>
<text name="help_label">
Wszystkie etapy nastąpią razem,
chyba, że dodasz pauzy.
</text>
<radio_group name="animation_trigger_type">
- <radio_item name="start">
- Start
- </radio_item>
- <radio_item name="stop">
- Stop
- </radio_item>
+ <radio_item name="start" label="Start" />
+ <radio_item name="stop" label="Stop" />
</radio_group>
- <check_box label="do końca animacji" name="wait_anim_check" />
- <check_box label="czas w sekundach" name="wait_time_check" />
- <check_box label="Aktywny" name="active_check"
- tool_tip="Aktywne gesty można włączać używając przypisanej frazy w czacie albo używając przypisanego klawisza skrótowego. W przypaku konfliktu przypisań gesty zazwyczaj nie będą działać." />
- <button label="Pokaż" name="preview_btn" />
- <button label="Zapisz" name="save_btn" />
+ <check_box label="do końca animacji" name="wait_anim_check"/>
+ <check_box label="czas w sekundach" name="wait_time_check"/>
+ <check_box label="Aktywny" name="active_check" tool_tip="Aktywne gesty można włączać używając przypisanej frazy w czacie albo używając przypisanego klawisza skrótowego. W przypaku konfliktu przypisań gesty zazwyczaj nie będą działać."/>
+ <button label="Pokaż" name="preview_btn"/>
+ <button label="Zapisz" name="save_btn"/>
</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_preview_notecard.xml b/indra/newview/skins/default/xui/pl/floater_preview_notecard.xml
index 88a95adb94..c67d9a9206 100755
--- a/indra/newview/skins/default/xui/pl/floater_preview_notecard.xml
+++ b/indra/newview/skins/default/xui/pl/floater_preview_notecard.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="preview notecard" title="Note:">
+<floater name="preview notecard" title="Nota:">
<button label="Zapisz" label_selected="Zapisz" name="Save" />
<text type="string" length="1" name="desc txt">
Opis:
diff --git a/indra/newview/skins/default/xui/pl/floater_report_abuse.xml b/indra/newview/skins/default/xui/pl/floater_report_abuse.xml
index f24eb02886..a831c7e511 100755
--- a/indra/newview/skins/default/xui/pl/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/pl/floater_report_abuse.xml
@@ -21,7 +21,7 @@
{128.1, 128.1, 15.4}
</text>
<text name="select_object_label">
- Kliknij na przycisk, a pózniej na obiekt:
+ Kliknij na przycisk, a później na obiekt:
</text>
<button label="" label_selected="" name="pick_btn" tool_tip="Wybór obiektu - wybierz obiekt, którego dotyczy raport"/>
<text name="object_name_label">
@@ -40,9 +40,9 @@
<combo_box.item name="Select_category" label="Wybierz Kategorię:"/>
<combo_box.item name="Age__Age_play" label="Wiek &gt; Udawanie Nieletniej Osoby"/>
<combo_box.item name="Age__Adult_resident_on_Teen_Second_Life" label="Wiek &gt; Dorosły Rezydent w Teen Second Life"/>
-
-
-
+ <combo_item name="Age__Underage_resident_outside_of_Teen_Second_Life">
+ Wiek &gt; Nieletni Rezydent poza Teen Second Life
+ </combo_item>
<combo_box.item name="Assault__Combat_sandbox___unsafe_area" label="Napaść &gt; Strefa Militarna / Niebezpieczny Obszar"/>
<combo_box.item name="Assault__Safe_area" label="Napaść &gt; Bezpieczny Obszar"/>
<combo_box.item name="Assault__Weapons_testing_sandbox" label="Napaść &gt; Obszar do Testowania Broni"/>
@@ -66,13 +66,13 @@
<combo_box.item name="Harassment__Solicting_inciting_others_to_violate_ToS" label="Prześladowanie &gt; Namawianie/Zachęcanie Innych do Łamania Warunków Umowy (ToS)"/>
<combo_box.item name="Harassment__Verbal_abuse" label="Prześladowanie &gt; Znieważanie Słowne"/>
<combo_box.item name="Indecency__Broadly_offensive_content_or_conduct" label="Nieprzyzwoitość &gt; Obraźliwa Treść lub Postępowanie"/>
-
-
-
<combo_box.item name="Indecency__Inappropriate_avatar_name" label="Nieprzyzwoitość &gt; Niestosowne Imię Awatara"/>
-
-
-
+ <combo_item name="Indecency__Mature_content_in_PG_region">
+ Nieprzyzwoitość &gt; Obraźliwa treść i postępowanie w regionie &apos;PG&apos;
+ </combo_item>
+ <combo_item name="Indecency__Inappropriate_content_in_Mature_region">
+ Nieprzyzwoitość &gt; Obraźliwa treść i postępowanie w regionie &apos;Mature&apos;
+ </combo_item>
<combo_box.item name="Intellectual_property_infringement_Content_Removal" label="Naruszenie Własności Intelektualnej &gt; Usunięcie Treści"/>
<combo_box.item name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit" label="Naruszenie Własności Intelektualnej &gt; CopyBot albo Nadużycie Przywilejów"/>
<combo_box.item name="Intolerance" label="Nietolerancja"/>
diff --git a/indra/newview/skins/default/xui/pl/floater_script_search.xml b/indra/newview/skins/default/xui/pl/floater_script_search.xml
index ce5e980f54..d00f1c267a 100755
--- a/indra/newview/skins/default/xui/pl/floater_script_search.xml
+++ b/indra/newview/skins/default/xui/pl/floater_script_search.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="script search" title="Wyszukaj Skryptu">
- <check_box label="Neutralne na wielkość" name="case_text" />
- <button label="Wyszukaj" label_selected="Wyszukaj" name="search_btn" />
+<floater name="script search" title="Szukaj Skryptu">
+ <check_box label="CapsLoock Nieaktywny" name="case_text" />
+ <button label="Szukaj" label_selected="Szukaj" name="search_btn" />
<button label="Zamień" label_selected="Zamień" name="replace_btn" />
<button label="Zamień Wszystko" label_selected="Zamień Wszystko"
name="replace_all_btn" />
diff --git a/indra/newview/skins/default/xui/pl/floater_sell_land.xml b/indra/newview/skins/default/xui/pl/floater_sell_land.xml
index 89a6be2f6c..70451fb5f6 100755
--- a/indra/newview/skins/default/xui/pl/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/pl/floater_sell_land.xml
@@ -46,12 +46,8 @@
Przekazywalne obiekty właściciela Posiadłości zmienią właściciela.
</text>
<radio_group name="sell_objects">
- <radio_item name="no">
- Nie, zatrzymaj obiekty
- </radio_item>
- <radio_item name="yes">
- Tak, sprzedaj obiekty razem z Posiadłością
- </radio_item>
+ <radio_item name="no" label="Nie, zatrzymaj obiekty" />
+ <radio_item name="yes" label="Tak, sprzedaj obiekty razem z Posiadłością" />
</radio_group>
<button label="Pokaż Obiekty" name="show_objects" />
<text name="nag_message_label">
diff --git a/indra/newview/skins/default/xui/pl/floater_snapshot.xml b/indra/newview/skins/default/xui/pl/floater_snapshot.xml
index b280213575..24bf88da85 100755
--- a/indra/newview/skins/default/xui/pl/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/pl/floater_snapshot.xml
@@ -4,15 +4,9 @@
Lokacja zapisu
</text>
<radio_group label="Rodzaje zdjęć" name="snapshot_type_radio">
- <radio_item name="postcard">
- Wyślij (email) pocztówkę
- </radio_item>
- <radio_item name="texture">
- Załaduj do szafy ([AMOUNT]L$)
- </radio_item>
- <radio_item name="local">
- Zapisz na dysk
- </radio_item>
+ <radio_item name="postcard" label="Wyślij (email) pocztówkę" />
+ <radio_item name="texture" label="Załaduj do szafy ([AMOUNT]L$)" />
+ <radio_item name="local" label="Zapisz na dysk" />
</radio_group>
<text name="file_size_label">
Rozmiar pliku: [SIZE] KB
diff --git a/indra/newview/skins/default/xui/pl/floater_sound_preview.xml b/indra/newview/skins/default/xui/pl/floater_sound_preview.xml
index afd1f9842d..2461aebbcf 100755
--- a/indra/newview/skins/default/xui/pl/floater_sound_preview.xml
+++ b/indra/newview/skins/default/xui/pl/floater_sound_preview.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="Name/Description" title="dźwięk.wav">
+<floater name="Sound Preview" title="dźwięk.wav">
<text name="name_label">
Opis:
</text>
diff --git a/indra/newview/skins/default/xui/pl/floater_statistics.xml b/indra/newview/skins/default/xui/pl/floater_statistics.xml
new file mode 100644
index 0000000000..933801bbda
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/floater_statistics.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="stats floater" title="Statystyki"/>
diff --git a/indra/newview/skins/default/xui/pl/floater_telehub.xml b/indra/newview/skins/default/xui/pl/floater_telehub.xml
index 33d353a937..b4cf098878 100755
--- a/indra/newview/skins/default/xui/pl/floater_telehub.xml
+++ b/indra/newview/skins/default/xui/pl/floater_telehub.xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="telehub" title="Obsługa Teleportera">
- <text name="status_text_connected">
+<floater name="telehub" title="Obsługa Teleportera" min_height="300" height="300" >
+ <text name="status_text_connected" width="250">
Teleporter połączony z obiektem [OBJECT]
</text>
- <text name="status_text_not_connected">
+ <text name="status_text_not_connected" width="250">
Brak połączenia z teleporterem
</text>
<text name="help_text_connected">
@@ -12,17 +12,20 @@
<text name="help_text_not_connected">
Wybierz obiekt i kliknij Połącz z teleporterem
</text>
- <button label="Connect Telehub" name="connect_btn" />
- <button label="Rozłącz" name="disconnect_btn" />
- <text name="spawn_points_text">
+ <button label="Połącz z teleporterem" name="connect_btn" width="122" />
+ <button label="Rozłącz" name="disconnect_btn" left="142" width="98"/>
+ <text name="spawn_points_text" width="250">
Punkty Składowe (pozycje - nie obiekty!):
</text>
- <button label="Add Spawn" name="add_spawn_point_btn" />
- <button label="Remove Spawn" name="remove_spawn_point_btn" />
+ <button label="Dodaj Punkt" name="add_spawn_point_btn" />
+ <button label="Usuń Punkt" name="remove_spawn_point_btn" />
<text name="spawn_point_help">
- Wybierz obiekt i wybierz Dodaj by sprecyzować pozycję.
-Wówczas możesz przesunąć lub usunąć obiekt.
-Pozycje są relatywne do części centralnej teleportera.
-Wybierz obiekt z listy by zobaczyć jego pozycję w świecie.
+ Wybierz obiekt i wybierz Dodaj by sprecyzować
+pozycję. Wówczas możesz przesunąć lub
+usunąć obiekt. Pozycje są relatywne do części
+centralnej teleportera.
+
+Wybierz obiekt z listy by zobaczyć jego pozycję
+w świecie.
</text>
</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/pl/floater_texture_ctrl.xml
index f6802416cb..702422f1ba 100755
--- a/indra/newview/skins/default/xui/pl/floater_texture_ctrl.xml
+++ b/indra/newview/skins/default/xui/pl/floater_texture_ctrl.xml
@@ -12,7 +12,7 @@
<button label="Domyślna" label_selected="Domyślna" name="Default"/>
<button label="Żadna" label_selected="Żadna" name="None"/>
<button label="Pusta" label_selected="Pusta" name="Blank"/>
- <check_box label="Show Folders" name="show_folders_check"/>
+ <check_box label="Pokaż Foldery" name="show_folders_check"/>
<search_editor label="Wpisz nazwę tutaj by wyszukać" name="inventory search editor"/>
<check_box label="Zastosuj od razu" name="apply_immediate_check"/>
<button label="" label_selected="" name="Pipette"/>
diff --git a/indra/newview/skins/default/xui/pl/floater_tools.xml b/indra/newview/skins/default/xui/pl/floater_tools.xml
index 25e1797605..380943f4ad 100755
--- a/indra/newview/skins/default/xui/pl/floater_tools.xml
+++ b/indra/newview/skins/default/xui/pl/floater_tools.xml
@@ -1,49 +1,43 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="toolbox floater" title="">
- <!-- Main floater tabs -->
<button label="" label_selected="" name="button focus" tool_tip="Zbliżenie"/>
<button label="" label_selected="" name="button move" tool_tip="Przesunięcie"/>
<button label="" label_selected="" name="button edit" tool_tip="Edycja"/>
<button label="" label_selected="" name="button create" tool_tip="Stwórz"/>
<button label="" label_selected="" name="button land" tool_tip="Teren"/>
- <!-- Focus panel -->
- <volume_slider name="slider zoom"/>
- <radio_group name="focus_radio_group">
- <radio_item label="Zbliżenie" name="radio zoom"/>
- <radio_item label="Obracanie (Ctrl)" name="radio orbit"/>
- <radio_item label="Przesunięcie (Ctrl-Shift)" name="radio pan"/>
- </radio_group>
- <!-- Move panel -->
- <radio_group name="move_radio_group">
- <radio_item label="Przesuń" name="radio move"/>
- <radio_item label="Podnieś (Ctrl)" name="radio lift"/>
- <radio_item label="Obróć (Ctrl-Shift)" name="radio spin"/>
- </radio_group>
- <!-- Edit panel -->
- <radio_group name="edit_radio_group">
- <radio_item label="Pozycja" name="radio position"/>
- <radio_item label="Obróć (Ctrl)" name="radio rotate"/>
- <radio_item label="Rozciągnij (Ctrl-Shift)" name="radio stretch"/>
- <radio_item label="Wybierz Teksturę" name="radio select face"/>
- </radio_group>
+ <check_box label="Zbliżenie" name="radio zoom"/>
+ <volume_slider name="slider zoom"/>
+ <check_box label="Obracanie (Ctrl)" name="radio orbit"/>
+ <check_box label="Przesunięcie (Ctrl-Shift)" name="radio pan"/>
+ <check_box label="Przesuń" name="radio move"/>
+ <check_box label="Podnieś (Ctrl)" name="radio lift"/>
+ <check_box label="Obróć (Ctrl-Shift)" name="radio spin"/>
+ <check_box label="Pozycja" name="radio position"/>
+ <check_box label="Obróć (Ctrl)" name="radio rotate"/>
+ <check_box label="Rozciągnij (Ctrl-Shift)" name="radio stretch"/>
+ <check_box label="Wybierz Teksturę" name="radio select face"/>
<check_box label="Edytuj Połączone Części" name="checkbox edit linked parts"/>
<text name="text ruler mode">
Linijka:
</text>
<combo_box name="combobox grid mode">
- <combo_box.item name="World" label="Świat" />
- <combo_box.item name="Local" label="Lokalna" />
- <combo_box.item name="Reference" label="Względna" />
+ <combo_item name="World">
+ Świat
+ </combo_item>
+ <combo_item name="Local">
+ Lokalna
+ </combo_item>
+ <combo_item name="Reference">
+ Względna
+ </combo_item>
</combo_box>
<check_box label="Rozciągnij 2 Strony" name="checkbox uniform"/>
<check_box label="Rozciągnij Teksturę" name="checkbox stretch textures"/>
<check_box label="Użyj Siatki" name="checkbox snap to grid"/>
<button label="Opcje..." label_selected="Opcje..." name="Options..."/>
- <!-- Help text -->
<text name="text status">
Przeciągnij żeby przenieść, shift-przeciągnij żeby skopiować
</text>
- <!-- Create panel -->
<button label="" label_selected="" name="ToolCube" tool_tip="Sześcian"/>
<button label="" label_selected="" name="ToolPrism" tool_tip="Graniastosłup"/>
<button label="" label_selected="" name="ToolPyramid" tool_tip="Ostrosłup"/>
@@ -59,34 +53,34 @@
<button label="" label_selected="" name="ToolRing" tool_tip="Pierścień"/>
<button label="" label_selected="" name="ToolTree" tool_tip="Drzewo"/>
<button label="" label_selected="" name="ToolGrass" tool_tip="Trawa"/>
- <check_box label="Pamiętaj Wybrane Narzędzia" name="checkbox sticky"/>
- <check_box label="Kopiuj Selekcję" name="checkbox copy selection"/>
- <check_box label="Kopia Środka" name="checkbox copy centers"/>
- <check_box label="Kopia Obrotu" name="checkbox copy rotates"/>
- <!-- Land panel -->
- <radio_group name="land_radio_group">
- <radio_item label="Zaznaczanie" name="radio select land"/>
- <radio_item label="Niwelowanie" name="radio flatten"/>
- <radio_item label="Podnoszenie" name="radio raise"/>
- <radio_item label="Obniżanie" name="radio lower"/>
- <radio_item label="Wygładzanie" name="radio smooth"/>
- <radio_item label="Fałdowanie terenu" name="radio noise"/>
- <radio_item label="Cofnięcie modyfikacji" name="radio revert"/>
- </radio_group>
- <combo_box name="combobox brush size">
- <combo_box.item name="Small" label="Małe" />
- <combo_box.item name="Medium" label="Średnie" />
- <combo_box.item name="Large" label="Duże" />
- </combo_box>
- <volume_slider name="slider force"/>
+ <check_box label="Trzymaj zaznaczone" name="checkbox sticky"/>
+ <check_box label="Kopiuj zaznaczone" name="checkbox copy selection"/>
+ <check_box label="Środek" name="checkbox copy centers"/>
+ <check_box label="Obróć" name="checkbox copy rotates"/>
+ <check_box label="Zaznaczanie" name="radio select land"/>
+ <check_box label="Prostowanie" name="radio flatten"/>
+ <check_box label="Podnoszenie" name="radio raise"/>
+ <check_box label="Obniżanie" name="radio lower"/>
+ <check_box label="Wygładzanie" name="radio smooth"/>
+ <check_box label="Fałdowanie" name="radio noise"/>
+ <check_box label="Cofnij modyfikację" name="radio revert"/>
+ <button label="Zastosuj" label_selected="Zastosuj" name="button apply to selection" tool_tip="Modyfikuj zaznaczony teren"/>
+ <text name="Bulldozer:">
+ Burzenie:
+ </text>
+ <text name="Dozer Size:">
+ Rozmiar
+ </text>
<text length="1" name="Strength:" type="string">
- Siła:
+ Siła
+ </text>
+ <volume_slider name="slider force"/>
+ <text name="obj_count">
+ Wybrane obiekty: [COUNT]
+ </text>
+ <text name="prim_count">
+ primy: [COUNT]
</text>
- <button label="Zastosuj do selekcji" label_selected="Zastosuj do selekcji" name="button apply to selection" tool_tip="Modyfikuj zaznaczony teren"/>
- <check_box label="Pokaż Właścicieli" name="checkbox show owners"/>
- <button label="Więcej &gt;&gt;" name="button more" tool_tip="Zaawansowane Opcje"/>
- <button label="&lt;&lt; Mniej" name="button less" tool_tip="Zaawansowane Opcje"/>
- <!-- Sub-tabs -->
<tab_container name="Object Info Tabs">
<panel label="Ogólne" name="General">
<text name="Name:">
@@ -118,9 +112,6 @@
The Lindens
</text>
<button label="Ustaw..." label_selected="Ustaw..." name="button set group"/>
- <text name="prim info">
- 1 obiekt, 1 element
- </text>
<text name="Permissions:">
Prawa:
</text>
@@ -164,13 +155,27 @@
Lewe Kliknięcie:
</text>
<combo_box name="clickaction">
- <combo_box.item name="Touch/grab(default)" label="Dotknij (domyślne)" />
- <combo_box.item name="Sitonobject" label="Usiądź na Obiekcie" />
- <combo_box.item name="Buyobject" label="Kup Obiekt" />
- <combo_box.item name="Payobject" label="Zapłać Obiektowi" />
- <combo_box.item name="Open" label="Otwórz" />
- <combo_box.item name="Play" label="Odtwarzaj Media" />
- <combo_box.item name="Opemmedia" label="Otwrórz Media" />
+ <combo_item name="Touch/grab(default)">
+ Dotknij (domyślne)
+ </combo_item>
+ <combo_item name="Sitonobject">
+ Usiądź na Obiekcie
+ </combo_item>
+ <combo_item name="Buyobject">
+ Kup Obiekt
+ </combo_item>
+ <combo_item name="Payobject">
+ Zapłać Obiektowi
+ </combo_item>
+ <combo_item name="Open">
+ Otwórz
+ </combo_item>
+ <combo_item name="Play">
+ Odtwarzaj Media
+ </combo_item>
+ <combo_item name="Opemmedia">
+ Otwrórz Media
+ </combo_item>
</combo_box>
<text name="B:">
B:
@@ -221,7 +226,6 @@
Sprzedaż Mieszana
</string>
</panel>
- <!-- Object sub-tab -->
<panel label="Obiekt" name="Object">
<text name="select_single">
Wybierz tylko jeden element by edytować jego parametry
@@ -255,26 +259,56 @@
Materiał
</text>
<combo_box name="material">
- <combo_box.item name="Stone" label="Kamień" />
- <combo_box.item name="Metal" label="Metal" />
- <combo_box.item name="Glass" label="Szkło" />
- <combo_box.item name="Wood" label="Drewno" />
- <combo_box.item name="Flesh" label="Ciało" />
- <combo_box.item name="Plastic" label="Plastik" />
- <combo_box.item name="Rubber" label="Guma" />
+ <combo_item name="Stone">
+ Kamień
+ </combo_item>
+ <combo_item name="Metal">
+ Metal
+ </combo_item>
+ <combo_item name="Glass">
+ Szkło
+ </combo_item>
+ <combo_item name="Wood">
+ Drewno
+ </combo_item>
+ <combo_item name="Flesh">
+ Ciało
+ </combo_item>
+ <combo_item name="Plastic">
+ Plastik
+ </combo_item>
+ <combo_item name="Rubber">
+ Guma
+ </combo_item>
</combo_box>
<text name="label basetype">
Rodzaj Bloku Budowalnego
</text>
<combo_box name="comboBaseType">
- <combo_box.item name="Box" label="Klocek" />
- <combo_box.item name="Cylinder" label="Walec" />
- <combo_box.item name="Prism" label="Graniastosłup" />
- <combo_box.item name="Sphere" label="Kula" />
- <combo_box.item name="Torus" label="Torus" />
- <combo_box.item name="Tube" label="Rura" />
- <combo_box.item name="Ring" label="Pierścień" />
- <combo_box.item name="Sculpted" label="Skulpty" />
+ <combo_item name="Box">
+ Klocek
+ </combo_item>
+ <combo_item name="Cylinder">
+ Walec
+ </combo_item>
+ <combo_item name="Prism">
+ Graniastosłup
+ </combo_item>
+ <combo_item name="Sphere">
+ Kula
+ </combo_item>
+ <combo_item name="Torus">
+ Torus
+ </combo_item>
+ <combo_item name="Tube">
+ Rura
+ </combo_item>
+ <combo_item name="Ring">
+ Pierścień
+ </combo_item>
+ <combo_item name="Sculpted">
+ Skulpty
+ </combo_item>
</combo_box>
<text name="text cut">
Wykrój
@@ -293,10 +327,18 @@
Kształt Wydrążenia
</text>
<combo_box name="hole">
- <combo_box.item name="Default" label="Domyślny" />
- <combo_box.item name="Circle" label="Koło" />
- <combo_box.item name="Square" label="Kwadrat" />
- <combo_box.item name="Triangle" label="Trójkąt" />
+ <combo_item name="Default">
+ Domyślny
+ </combo_item>
+ <combo_item name="Circle">
+ Koło
+ </combo_item>
+ <combo_item name="Square">
+ Kwadrat
+ </combo_item>
+ <combo_item name="Triangle">
+ Trójkąt
+ </combo_item>
</combo_box>
<text name="text twist">
Skręcenie
@@ -322,6 +364,9 @@
<text name="advanced_dimple">
Przesunięcie Promienia
</text>
+ <text name="advanced_slice">
+ Przetnij początek i koniec
+ </text>
<spinner label="B" name="Path Limit Begin"/>
<spinner label="E" name="Path Limit End"/>
<text name="text taper2">
@@ -344,14 +389,23 @@
Typ Ścięgna
</text>
<combo_box name="sculpt type control">
- <combo_box.item name="None" label="żadne)" />
- <combo_box.item name="Sphere" label="Kula" />
- <combo_box.item name="Torus" label="Torus" />
- <combo_box.item name="Plane" label="Płaczyzna" />
- <combo_box.item name="Cylinder" label="Walec" />
+ <combo_item name="None">
+ (żadne)
+ </combo_item>
+ <combo_item name="Sphere">
+ Kula
+ </combo_item>
+ <combo_item name="Torus">
+ Torus
+ </combo_item>
+ <combo_item name="Plane">
+ Płaczyzna
+ </combo_item>
+ <combo_item name="Cylinder">
+ Walec
+ </combo_item>
</combo_box>
</panel>
- <!-- Features sub-tab -->
<panel label="Atrybuty" name="Features">
<text name="select_single">
Wybierz tylko jeden element by edytować jego cechę.
@@ -377,7 +431,6 @@
<spinner label="Promień" name="Light Radius"/>
<spinner label="Spadek" name="Light Falloff"/>
</panel>
- <!-- Texture sub-tab -->
<panel label="Tekstura" name="Texture">
<texture_picker label="Tekstura" name="texture control" tool_tip="Kliknij by wybrać obraz"/>
<color_swatch label="Kolor" name="colorswatch" tool_tip="Kliknij by wybrać kolor"/>
@@ -394,40 +447,88 @@
Mapowanie
</text>
<combo_box name="combobox texgen">
- <combo_box.item name="Default" label="Domyślne" />
- <combo_box.item name="Planar" label="Planarne" />
+ <combo_item name="Default">
+ Domyślne
+ </combo_item>
+ <combo_item name="Planar">
+ Planarne
+ </combo_item>
</combo_box>
<text name="label shininess">
Połysk
</text>
<combo_box name="combobox shininess">
- <combo_box.item name="None" label="Żadny" />
- <combo_box.item name="Low" label="Niski" />
- <combo_box.item name="Medium" label="Średni" />
- <combo_box.item name="High" label="Wysoki" />
+ <combo_item name="None">
+ Żadny
+ </combo_item>
+ <combo_item name="Low">
+ Niski
+ </combo_item>
+ <combo_item name="Medium">
+ Średni
+ </combo_item>
+ <combo_item name="High">
+ Wysoki
+ </combo_item>
</combo_box>
<text name="label bumpiness">
Powierzchnia
</text>
<combo_box name="combobox bumpiness">
- <combo_box.item name="None" label="Żadna" />
- <combo_box.item name="Brightness" label="Najjaśniejsza" />
- <combo_box.item name="Darkness" label="Najciemniejsza" />
- <combo_box.item name="woodgrain" label="Drewniano-ziarnista" />
- <combo_box.item name="bark" label="Kory Drzewa" />
- <combo_box.item name="bricks" label="Cegieł" />
- <combo_box.item name="checker" label="Planszy Szachowej" />
- <combo_box.item name="concrete" label="Betonu" />
- <combo_box.item name="crustytile" label="Płytki/Kafelki" />
- <combo_box.item name="cutstone" label="Kamienia" />
- <combo_box.item name="discs" label="Dysku CD" />
- <combo_box.item name="gravel" label="Żwiru" />
- <combo_box.item name="petridish" label="Skamieliny" />
- <combo_box.item name="siding" label="Sidingu" />
- <combo_box.item name="stonetile" label="Płytki Kamiennej" />
- <combo_box.item name="stucco" label="Stucco" />
- <combo_box.item name="suction" label="Suction" />
- <combo_box.item name="weave" label="Fali" />
+ <combo_item name="None">
+ Żadna
+ </combo_item>
+ <combo_item name="Brightness">
+ Najjaśniejsza
+ </combo_item>
+ <combo_item name="Darkness">
+ Najciemniejsza
+ </combo_item>
+ <combo_item name="woodgrain">
+ Drewniano-ziarnista
+ </combo_item>
+ <combo_item name="bark">
+ Kory Drzewa
+ </combo_item>
+ <combo_item name="bricks">
+ Cegieł
+ </combo_item>
+ <combo_item name="checker">
+ Planszy Szachowej
+ </combo_item>
+ <combo_item name="concrete">
+ Betonu
+ </combo_item>
+ <combo_item name="crustytile">
+ Płytki/Kafelki
+ </combo_item>
+ <combo_item name="cutstone">
+ Kamienia
+ </combo_item>
+ <combo_item name="discs">
+ Dysku CD
+ </combo_item>
+ <combo_item name="gravel">
+ Żwiru
+ </combo_item>
+ <combo_item name="petridish">
+ Skamieliny
+ </combo_item>
+ <combo_item name="siding">
+ Brzegu
+ </combo_item>
+ <combo_item name="stonetile">
+ Płytki Kamiennej
+ </combo_item>
+ <combo_item name="stucco">
+ Stucco
+ </combo_item>
+ <combo_item name="suction">
+ Suction
+ </combo_item>
+ <combo_item name="weave">
+ Fali
+ </combo_item>
</combo_box>
<text name="tex scale">
Ilość powtórzeń
@@ -463,22 +564,33 @@
<button label="Dopasuj" label_selected="Dopasuj" name="button align"/>
</panel>
<panel label="Treść" name="Contents">
- <button label="Nowy Skrypt..." label_selected="Nowy Skrypt..." name="button new script"/>
+ <button label="Nowy Skrypt" label_selected="Nowy Skrypt..." name="button new script"/>
+ <button label="Prawa..." name="button permissions"/>
</panel>
</tab_container>
- <!-- Land Info sub-tab -->
<panel name="land info panel">
+ <text name="label_parcel_info">
+ Informacje o Posiadłości
+ </text>
<text name="label_area_price">
Cena: L$[PRICE] za [AREA] m
</text>
<text name="label_area">
Obszar: [AREA] m
</text>
- <button label="Kup..." label_selected="Kup..." name="button buy land"/>
- <button label="Anuluj..." label_selected="Anuluj..." name="button abandon land"/>
+ <button label="O Posiadłości..." label_selected="O Posiadłości..." name="button about land"/>
+ <check_box label="Pokaż Właścicieli" name="checkbox show owners" tool_tip="Pokoloruj posiadłości zgodnie z przynależnością do właściciela"/>
+ <button label="?" label_selected="?" name="button show owners help" left_delta="120"/>
+ <text name="label_parcel_modify">
+ Modyfikuj Posiadłość
+ </text>
<button label="Podziel..." label_selected="Podziel..." name="button subdivide land"/>
<button label="Złącz..." label_selected="Złącz..." name="button join land"/>
- <button label="O Posiadłości..." label_selected="O Posiadłości..." name="button about land"/>
+ <text name="label_parcel_trans">
+ Transakcje na posiadłości
+ </text>
+ <button label="Kup..." label_selected="Kup..." name="button buy land"/>
+ <button label="Anuluj..." label_selected="Anuluj..." name="button abandon land"/>
</panel>
<string name="status_rotate">
Przeciągaj kolorowe pierścienie żeby obracać obiekt
@@ -496,10 +608,10 @@
Kliknij i przeciągnij żeby zmienić widok
</string>
<string name="status_grab">
- Opcje:
+ Przeciągnij by przesunąć, wybierz Ctrl by podnieść, wybierz Ctrl-Shift by obrócić
</string>
<string name="status_place">
- Rodzaje obiektów:
+ Kliknij in-world by zacząć budować
</string>
<string name="status_selectland">
Edytowanie Terenu:
diff --git a/indra/newview/skins/default/xui/pl/floater_top_objects.xml b/indra/newview/skins/default/xui/pl/floater_top_objects.xml
index dafe420281..44d838035d 100755
--- a/indra/newview/skins/default/xui/pl/floater_top_objects.xml
+++ b/indra/newview/skins/default/xui/pl/floater_top_objects.xml
@@ -1,32 +1,33 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="top_objects" title="Ładowanie...">
<text name="title_text">
Ładowanie...
</text>
<scroll_list name="objects_list">
- <column label="Wynik" name="score" />
- <column label="Nazwa" name="name" />
- <column label="Właściciel" name="owner" />
- <column label="Miejsce" name="location" />
- <column label="Czas" name="time" />
+ <column label="Wynik" name="score"/>
+ <column label="Nazwa" name="name"/>
+ <column label="Właściciel" name="owner"/>
+ <column label="Miejsce" name="location"/>
+ <column label="Czas" name="time"/>
+ <column label="Mono Time" name="mono_time"/>
</scroll_list>
<text name="id_text">
ID Obiektu:
</text>
- <button label="Pokaż Emitery" name="show_beacon_btn" />
+ <button label="Pokaż Emitery" name="show_beacon_btn"/>
<text name="obj_name_text">
Nazwa Obiektu:
</text>
- <button label="Filtr" name="filter_object_btn" />
+ <button label="Filtr" name="filter_object_btn"/>
<text name="owner_name_text">
Owner Name:
</text>
- <button label="Filter" name="filter_owner_btn" />
- <button label="Zwróć Wybrane" name="return_selected_btn" />
- <button label="Zwróć Wszystko" name="return_all_btn" />
- <button label="Deaktywuj Wybrane" name="disable_selected_btn" />
- <button label="Deaktywuj Wszystko" name="disable_all_btn" />
- <button label="Odśwież" name="refresh_btn" />
+ <button label="Filter" name="filter_owner_btn"/>
+ <button label="Zwróć Wybrane" name="return_selected_btn"/>
+ <button label="Zwróć Wszystko" name="return_all_btn"/>
+ <button label="Deaktywuj Wybrane" name="disable_selected_btn"/>
+ <button label="Deaktywuj Wszystko" name="disable_all_btn"/>
+ <button label="Odśwież" name="refresh_btn"/>
<string name="top_scripts_title">
Główne Skrypty
</string>
@@ -36,6 +37,9 @@
<string name="scripts_score_label">
Czas
</string>
+ <string name="scripts_mono_time_label">
+ Mono Time
+ </string>
<string name="top_colliders_title">
Główne Kolizje
</string>
diff --git a/indra/newview/skins/default/xui/pl/floater_tos.xml b/indra/newview/skins/default/xui/pl/floater_tos.xml
index 32b25481c3..d05a3c246a 100755
--- a/indra/newview/skins/default/xui/pl/floater_tos.xml
+++ b/indra/newview/skins/default/xui/pl/floater_tos.xml
@@ -4,8 +4,8 @@
<button label="Anuluj" label_selected="Anuluj" name="Cancel" />
<check_box label="Zgadzam się na Warunki Serwisu (Terms of Service)" name="agree_chk" />
<text name="tos_heading">
- Proszę dokładnie przeczytać następujące Warunki Serwisu (Terms of Service). Musisz zaakceptować
-umową żeby kontynuować logowanie do Second Life.
+ Proszę dokładnie przeczytać następujące Warunki Serwisu (Terms of Service). Musisz
+zaakceptować umową żeby kontynuować logowanie do Second Life.
</text>
<text_editor name="tos_text">
TOS_TEXT
diff --git a/indra/newview/skins/default/xui/pl/floater_windlight_options.xml b/indra/newview/skins/default/xui/pl/floater_windlight_options.xml
index d2becee69c..2a9d1dff24 100755
--- a/indra/newview/skins/default/xui/pl/floater_windlight_options.xml
+++ b/indra/newview/skins/default/xui/pl/floater_windlight_options.xml
@@ -6,7 +6,7 @@
<button label="Nowe" label_selected="Nowe" name="WLNewPreset" />
<button label="Zapisz" label_selected="Zapisz" name="WLSavePreset" />
<button label="Usuń" label_selected="Usuń" name="WLDeletePreset" />
- <button label="Edytor Cyklu Dnia" label_selected="Day Cycle Editor"
+ <button label="Edytor Cyklu Dnia" label_selected="Edytor Cyklu Dnia"
name="WLDayCycleMenuButton" />
<tab_container name="WindLight Tabs">
<panel label="Atmosfera" name="Atmosphere">
diff --git a/indra/newview/skins/default/xui/pl/floater_world_map.xml b/indra/newview/skins/default/xui/pl/floater_world_map.xml
index 59235e68f3..c18c529c94 100755
--- a/indra/newview/skins/default/xui/pl/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/pl/floater_world_map.xml
@@ -1,77 +1,59 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="worldmap" title="Mapa Świata">
<tab_container name="maptab">
- <panel label="Obiekty" name="objects_mapview" />
- <panel label="Teren" name="terrain_mapview" />
+ <panel label="Obiekty" name="objects_mapview"/>
+ <panel label="Teren" name="terrain_mapview"/>
</tab_container>
- <text name="land_for_sale_label">
- Na Sprzedaż
- </text>
- <text name="auction_label">
- Aukcja
- </text>
<text name="you_label">
Ty
</text>
+ <icon left="1058" name="home"/>
<text name="home_label">
Start
</text>
- <button label="Start" label_selected="Start" name="Go Home"
- tool_tip="Teleportuj się do miejsca startowego" />
- <text name="person_label">
- Osoba
- </text>
- <check_box label=" " name="people_chk" />
- <text name="infohub_label">
- Informacja
- </text>
- <check_box label="" name="infohub_chk" />
- <text name="telehub_label">
- Teleporter
+ <text name="auction_label">
+ Aukcja
</text>
- <check_box label="" name="telehubchk" />
- <text name="land_for_sale_label2">
+ <text name="land_for_sale_label">
Na Sprzedaż
</text>
- <check_box label="" name="land_for_sale_chk" />
+ <button width="122" left="1116" label="Teleportuj do Start" label_selected="Teleportuj do Start" name="Go Home" tool_tip="Teleportuj się do miejsca startowego"/>
+ <check_box label="Rezydent" name="people_chk"/>
+ <check_box label="Infohub" name="infohub_chk"/>
+ <check_box label="Telehub" name="telehubchk"/>
+ <check_box label="Posiadłość na &#10;sprzedaż" name="land_for_sale_chk"/>
<text name="events_label">
- Impreza
+ Wydarzenia:
</text>
- <check_box label="" name="event_chk" />
-
- <check_box label="" name="event_mature_chk" />
+ <check_box label="&apos;PG&apos;" name="event_chk"/>
+ <check_box label="&apos;Mature&apos;" name="event_mature_chk"/>
+ <check_box label="&apos;Adult&apos;" name="event_adult_chk"/>
+ <icon bottom="-196" name="avatar_icon"/>
<combo_box label="Dostępni Znajomi" name="friend combo" tool_tip="Znajomi na mapie">
<combo_box.item name="none_selected" label="Dostępni Znajomi" />
</combo_box>
- <combo_box label="Zapisane Miejsca" name="landmark combo"
- tool_tip="Zapisane miejsca na mapie">
+ <combo_box label="Zapisane Miejsca" name="landmark combo" tool_tip="Zapisane miejsca na mapie">
<combo_box.item name="none_selected" label="Zapisane Miejsca" />
</combo_box>
- <line_editor label="Szukaj po nazwie regionu" name="location"
- tool_tip="Wpisz nazwę regionu" />
- <button label="Szukaj" name="DoSearch" tool_tip="Wyszukiwaie regionu" />
+ <line_editor label="Szukaj po nazwie regionu" name="location" tool_tip="Wpisz nazwę regionu"/>
+ <button label="Szukaj" name="DoSearch" tool_tip="Wyszukiwaie regionu"/>
<text name="search_label">
Wyniki wyszukiwania:
</text>
- <scroll_list name="search_results">
- <column label="" name="icon" />
- <column label="" name="sim_name" />
+ <scroll_list name="search_results" bottom_delta="-310" height="304" >
+ <column label="" name="icon"/>
+ <column label="" name="sim_name"/>
</scroll_list>
<text name="location_label">
Położenie:
</text>
- <spinner name="spin x" tool_tip="współrzędne X na mapie" />
- <spinner name="spin y" tool_tip="współrzędne Y na mapie" />
- <spinner name="spin z" tool_tip="współrzędne Z na mapie" />
- <button label="Teleportuj" label_selected="Teleportuj" name="Teleport"
- tool_tip="Teleportuj do wybranego miejsca" />
- <button label="Pokaż Cel" label_selected="Pokaż Cel" name="Show Destination"
- tool_tip="Wycentruj miejsce celu na mapie" />
- <button label="Wyczyść" label_selected="Wyczyść" name="Clear"
- tool_tip="Stop tracking" />
- <button label="Pokaż moje miejsce" label_selected="Pokaż moje miejsce"
- name="Show My Location" tool_tip="Wycentruj pozcję awatara na mapie" />
- <button label="Kopiuj SLURL do schowka" name="copy_slurl"
- tool_tip="Kopie SLURL obecnego miejsca będę mogły zostać użyte na stronie internetowej." />
- <slider label="Skala" name="zoom slider" />
+ <spinner name="spin x" tool_tip="współrzędne X na mapie"/>
+ <spinner name="spin y" tool_tip="współrzędne Y na mapie"/>
+ <spinner name="spin z" tool_tip="współrzędne Z na mapie"/>
+ <button label="Teleportuj" label_selected="Teleportuj" name="Teleport" tool_tip="Teleportuj do wybranego miejsca"/>
+ <button label="Pokaż Cel" label_selected="Pokaż Cel" name="Show Destination" tool_tip="Wycentruj miejsce celu na mapie"/>
+ <button label="Wyczyść" label_selected="Wyczyść" name="Clear" tool_tip="Stop tracking"/>
+ <button label="Pokaż moje miejsce" label_selected="Pokaż moje miejsce" name="Show My Location" tool_tip="Wycentruj pozcję awatara na mapie"/>
+ <button label="Kopiuj SLURL do schowka" name="copy_slurl" tool_tip="Kopie SLURL obecnego miejsca będę mogły zostać użyte na stronie internetowej."/>
+ <slider label="Skala" name="zoom slider"/>
</floater>
diff --git a/indra/newview/skins/default/xui/pl/menu_inventory.xml b/indra/newview/skins/default/xui/pl/menu_inventory.xml
index 383f4a4fa4..7f89f78324 100755
--- a/indra/newview/skins/default/xui/pl/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/pl/menu_inventory.xml
@@ -1,65 +1,66 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="Popup">
- <menu_item_call label="Kupuj" name="Task Buy" />
- <menu_item_call label="Otwórz" name="Task Open" />
- <menu_item_call label="Odtwarzaj" name="Task Play" />
- <menu_item_call label="Właściwości" name="Task Properties" />
- <menu_item_call label="Zmień Nazwę" name="Task Rename" />
- <menu_item_call label="Usuń" name="Task Remove" />
- <menu_item_call label="Opróżnij Kosz" name="Empty Trash" />
- <menu_item_call label="Opróżnij Folder Zgubione i Odnalezione" name="Empty Lost And Found" />
- <menu_item_call label="Nowy Folder" name="New Folder" />
- <menu_item_call label="Nowy Skrypt" name="New Script" />
- <menu_item_call label="Nowa Nota" name="New Note" />
- <menu_item_call label="Nowy Gest" name="New Gesture" />
+ <menu_item_call label="Kupuj" name="Task Buy"/>
+ <menu_item_call label="Otwórz" name="Task Open"/>
+ <menu_item_call label="Odtwarzaj" name="Task Play"/>
+ <menu_item_call label="Właściwości" name="Task Properties"/>
+ <menu_item_call label="Zmień Nazwę" name="Task Rename"/>
+ <menu_item_call label="Usuń" name="Task Remove"/>
+ <menu_item_call label="Opróżnij Kosz" name="Empty Trash"/>
+ <menu_item_call label="Opróżnij Folder Zgubione i Odnalezione" name="Empty Lost And Found"/>
+ <menu_item_call label="Nowy Folder" name="New Folder"/>
+ <menu_item_call label="Nowy Skrypt" name="New Script"/>
+ <menu_item_call label="Nowa Nota" name="New Note"/>
+ <menu_item_call label="Nowy Gest" name="New Gesture"/>
<menu name="New Clothes">
- <menu_item_call label="Nowa Koszulka" name="New Shirt" />
- <menu_item_call label="Nowe Spodnie" name="New Pants" />
- <menu_item_call label="Nowe Buty" name="New Shoes" />
- <menu_item_call label="Nowe Skarpety" name="New Socks" />
- <menu_item_call label="Nowa Kurtka" name="New Jacket" />
- <menu_item_call label="Nowa Spódnica" name="New Skirt" />
- <menu_item_call label="Nowe Rękawiczki" name="New Gloves" />
- <menu_item_call label="Nowy Podkoszulek" name="New Undershirt" />
- <menu_item_call label="Nowa Bielizna" name="New Underpants" />
+ <menu_item_call label="Nowa Koszulka" name="New Shirt"/>
+ <menu_item_call label="Nowe Spodnie" name="New Pants"/>
+ <menu_item_call label="Nowe Buty" name="New Shoes"/>
+ <menu_item_call label="Nowe Skarpety" name="New Socks"/>
+ <menu_item_call label="Nowa Kurtka" name="New Jacket"/>
+ <menu_item_call label="Nowa Spódnica" name="New Skirt"/>
+ <menu_item_call label="Nowe Rękawiczki" name="New Gloves"/>
+ <menu_item_call label="Nowy Podkoszulek" name="New Undershirt"/>
+ <menu_item_call label="Nowa Bielizna" name="New Underpants"/>
</menu>
<menu name="New Body Parts">
- <menu_item_call label="Nowy Kształt" name="New Shape" />
- <menu_item_call label="Nowa Skórka" name="New Skin" />
- <menu_item_call label="Nowe Włosy" name="New Hair" />
- <menu_item_call label="Nowe Oczy" name="New Eyes" />
+ <menu_item_call label="Nowy Kształt" name="New Shape"/>
+ <menu_item_call label="Nowa Skórka" name="New Skin"/>
+ <menu_item_call label="Nowe Włosy" name="New Hair"/>
+ <menu_item_call label="Nowe Oczy" name="New Eyes"/>
</menu>
- <menu_item_call label="Teleportuj" name="Landmark Open" />
- <menu_item_call label="Otwórz" name="Animation Open" />
- <menu_item_call label="Otwórz" name="Sound Open" />
- <menu_item_call label="Usuń Obiekt" name="Purge Item" />
- <menu_item_call label="Przywróć Obiekt" name="Restore Item" />
- <menu_item_call label="Otwórz" name="Open" />
- <menu_item_call label="Właściwości" name="Properties" />
- <menu_item_call label="Zmień Nazwę" name="Rename" />
- <menu_item_call label="Kopiuj Dane UUID" name="Copy Asset UUID" />
- <menu_item_call label="Kopiuj" name="Copy" />
- <menu_item_call label="Wklej" name="Paste" />
- <menu_item_call label="Usuń" name="Delete" />
- <menu_item_call label="Zdejmij Obiekt" name="Take Off Items" />
- <menu_item_call label="Dodaj do Stroju" name="Add To Outfit" />
- <menu_item_call label="Zmień Strój" name="Replace Outfit" />
- <menu_item_call label="Rozpocznij Konferencję Czatową" name="Conference Chat Folder" />
- <menu_item_call label="Odtwarzaj" name="Sound Play" />
- <menu_item_call label="O Miejscu" name="Teleport To Landmark" />
- <menu_item_call label="Odtwarzaj w Świecie" name="Animation Play" />
- <menu_item_call label="Odtwarzaj Lokalnie" name="Animation Audition" />
- <menu_item_call label="Wyślij IM" name="Send Instant Message" />
- <menu_item_call label="Zaoferuj Teleportację..." name="Offer Teleport..." />
- <menu_item_call label="Rozpocznij Konferencję Czatową" name="Conference Chat" />
- <menu_item_call label="Aktywuj" name="Activate" />
- <menu_item_call label="Deaktywuj" name="Deactivate" />
- <menu_item_call label="Odłącz od Siebie" name="Detach From Yourself" />
- <menu_item_call label="Ubierz" name="Object Wear" />
- <menu label="Dołącz do" name="Attach To" />
- <menu label="Dołącz do Załączników HUD" name="Attach To HUD" />
- <menu_item_call label="Edytuj" name="Wearable Edit" />
- <menu_item_call label="Ubierz" name="Wearable Wear" />
- <menu_item_call label="Zdejmij" name="Take Off" />
- <menu_item_call label="--brak opcji--" name="--no options--" />
+ <menu_item_call label="Teleportuj" name="Landmark Open"/>
+ <menu_item_call label="Otwórz" name="Animation Open"/>
+ <menu_item_call label="Otwórz" name="Sound Open"/>
+ <menu_item_call label="Usuń Obiekt" name="Purge Item"/>
+ <menu_item_call label="Przywróć Obiekt" name="Restore Item"/>
+ <menu_item_call label="Otwórz" name="Open"/>
+ <menu_item_call label="Właściwości" name="Properties"/>
+ <menu_item_call label="Zmień Nazwę" name="Rename"/>
+ <menu_item_call label="Kopiuj Dane UUID" name="Copy Asset UUID"/>
+ <menu_item_call label="Kopiuj" name="Copy"/>
+ <menu_item_call label="Wklej" name="Paste"/>
+ <menu_item_call label="Usuń" name="Delete"/>
+ <menu_item_call label="Zdejmij Obiekt" name="Take Off Items"/>
+ <menu_item_call label="Dodaj do Stroju" name="Add To Outfit"/>
+ <menu_item_call label="Zmień Strój" name="Replace Outfit"/>
+ <menu_item_call label="Rozpocznij Konferencję Czatową" name="Conference Chat Folder"/>
+ <menu_item_call label="Odtwarzaj" name="Sound Play"/>
+ <menu_item_call label="O Miejscu" name="Teleport To Landmark"/>
+ <menu_item_call label="Odtwarzaj w Świecie" name="Animation Play"/>
+ <menu_item_call label="Odtwarzaj Lokalnie" name="Animation Audition"/>
+ <menu_item_call label="Wyślij IM" name="Send Instant Message"/>
+ <menu_item_call label="Zaoferuj Teleportację..." name="Offer Teleport..."/>
+ <menu_item_call label="Rozpocznij Konferencję Czatową" name="Conference Chat"/>
+ <menu_item_call label="Aktywuj" name="Activate"/>
+ <menu_item_call label="Deaktywuj" name="Deactivate"/>
+ <menu_item_call label="Odłącz od Siebie" name="Detach From Yourself"/>
+ <menu_item_call label="Przywróć ostatnią pozycję" name="Restore to Last Position"/>
+ <menu_item_call label="Ubierz" name="Object Wear"/>
+ <menu label="Dołącz do" name="Attach To"/>
+ <menu label="Dołącz do Załączników HUD" name="Attach To HUD"/>
+ <menu_item_call label="Edytuj" name="Wearable Edit"/>
+ <menu_item_call label="Ubierz" name="Wearable Wear"/>
+ <menu_item_call label="Zdejmij" name="Take Off"/>
+ <menu_item_call label="--brak opcji--" name="--no options--"/>
</menu>
diff --git a/indra/newview/skins/default/xui/pl/menu_mini_map.xml b/indra/newview/skins/default/xui/pl/menu_mini_map.xml
new file mode 100644
index 0000000000..da2eba07a0
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/menu_mini_map.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="popup">
+ <menu_item_call label="Zoom Blisko" name="Zoom Close"/>
+ <menu_item_call label="Zoom Średnio" name="Zoom Medium"/>
+ <menu_item_call label="Zoom Daleko" name="Zoom Far"/>
+ <menu_item_call label="Zatrzymaj" name="Stop Tracking"/>
+ <menu_item_call label="Profil..." name="Profile"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/pl/menu_viewer.xml b/indra/newview/skins/default/xui/pl/menu_viewer.xml
index 51522b1ba9..8a86086e54 100755
--- a/indra/newview/skins/default/xui/pl/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/pl/menu_viewer.xml
@@ -1,203 +1,205 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu_bar name="Main Menu">
- <menu label="Plik" name="File">
- <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" />
- <menu label="Załaduj" name="upload">
- <menu_item_call label="Obraz (L$[COST])..." name="Upload Image" />
- <menu_item_call label="Dźwięk (L$[COST])..." name="Upload Sound" />
- <menu_item_call label="Animację (L$[COST])..." name="Upload Animation" />
- <menu_item_call label="Zbiór Plików (L$[COST] za plik)..." name="Bulk Upload" />
- </menu>
- <menu_item_separator label="-----------" name="separator" />
- <menu_item_call label="Zamknij Bieżące Okno" name="Close Window" />
- <menu_item_call label="Zamknij Wszystkie Okna" name="Close All Windows" />
- <menu_item_separator label="-----------" name="separator2" />
- <menu_item_call label="Zapisz Obraz Jako..." name="Save Texture As..." />
- <menu_item_separator label="-----------" name="separator3" />
- <menu_item_call label="Zrób Zdjęcie" name="Take Snapshot" />
- <menu_item_call label="Zapisz Zdjęcie na Dysk" name="Snapshot to Disk" />
- <menu_item_separator label="-----------" name="separator4" />
- <menu_item_call label="Wyłącz Program" name="Quit" />
- </menu>
- <menu label="Edycja" name="Edit">
- <menu_item_call label="Cofnij" name="Undo" />
- <menu_item_call label="Powtórz" name="Redo" />
- <menu_item_separator label="-----------" name="separator" />
- <menu_item_call label="Wytnij" name="Cut" />
- <menu_item_call label="Kopiuj" name="Copy" />
- <menu_item_call label="Wklej" name="Paste" />
- <menu_item_call label="Usuń" name="Delete" />
- <menu_item_separator label="-----------" name="separator2" />
- <menu_item_call label="Szukaj..." name="Search..." />
- <menu_item_separator label="-----------" name="separator3" />
- <menu_item_call label="Zaznacz Wszystko" name="Select All" />
- <menu_item_call label="Cofnij Zaznaczenie" name="Deselect" />
- <menu_item_separator label="-----------" name="separator4" />
- <menu_item_call label="Duplikat" name="Duplicate" />
- <menu_item_separator label="-----------" name="separator5" />
- <menu label="Dołącz Obiekt" name="Attach Object" />
- <menu label="Odłącz Obiekt" name="Detach Object" />
- <menu label="Zdejmij Ubranie" name="Take Off Clothing">
- <menu_item_call label="Koszulę" name="Shirt" />
- <menu_item_call label="Spodnie" name="Pants" />
- <menu_item_call label="Buty" name="Shoes" />
- <menu_item_call label="Skarpety" name="Socks" />
- <menu_item_call label="Kurtkę" name="Jacket" />
- <menu_item_call label="Rękawiczki" name="Gloves" />
- <menu_item_call label="Podkoszulek" name="Menu Undershirt" />
- <menu_item_call label="Bieliznę" name="Menu Underpants" />
- <menu_item_call label="Spódnicę" name="Skirt" />
- <menu_item_call label="Całe Ubranie" name="All Clothes" />
- </menu>
- <menu_item_separator label="-----------" name="separator6" />
- <menu_item_call label="Gesty..." name="Gestures..." />
- <menu_item_call label="Profil..." name="Profile..." />
- <menu_item_call label="Wygląd..." name="Appearance..." />
- <menu_item_separator label="-----------" name="separator7" />
- <menu_item_check label="Znajomi..." name="Friends..." />
- <menu_item_call label="Grupy..." name="Groups..." />
- <menu_item_separator label="-----------" name="separator8" />
- <menu_item_call label="Ustawienia..." name="Preferences..." />
- </menu>
- <menu label="Widok" name="View">
- <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~" />
- <menu_item_call label="Widok Panoramiczny" name="Mouselook" />
- <menu_item_check label="Budowanie" name="Build" />
- <menu_item_check label="Wolna Kamera" name="Joystick Flycam" />
- <menu_item_call label="Normalny Widok" name="Reset View" />
- <menu_item_call label="Historia Rozmów" name="Look at Last Chatter" />
- <menu_item_separator label="-----------" name="separator" />
- <menu_item_check label="Narzędzia" name="Toolbar" />
- <menu_item_check label="Rozmowa Lokalna" name="Chat History" />
- <menu_item_check label="Rozmowa Prywatna (IM)" name="Instant Message" />
- <menu_item_call label="Moja Szafa" name="Inventory" />
- <menu_item_check label="Rozmawiające Osoby" name="Active Speakers" />
- <menu_item_check label="Wyciszone Osoby" name="Mute List" />
- <menu_item_separator label="-----------" name="separator2" />
- <menu_item_check label="Ustawienia Kamery" name="Camera Controls" />
- <menu_item_check label="Ustawienia Ruchu" name="Movement Controls" />
- <menu_item_check label="Mapa Świata" name="World Map" />
- <menu_item_check label="Mini-Mapa" name="Mini-Map" />
- <menu_item_separator label="-----------" name="separator3" />
- <menu_item_check label="Statystyki" name="Statistics Bar" />
- <menu_item_check label="Granice Posiadłości" name="Property Lines" />
- <menu_item_check label="Właściciele Posiadłości" name="Land Owners" />
- <menu_item_separator label="-----------" name="separator4" />
- <menu label="Podpowiedzi" name="Hover Tips">
- <menu_item_check label="Pokaż Podpowiedzi" name="Show Tips" />
- <menu_item_separator label="-----------" name="separator" />
- <menu_item_check label="Posiadłość: wskazówki" name="Land Tips" />
- <menu_item_check label="Obiekty: wskazówki" name="Tips On All Objects" />
- </menu>
- <menu_item_check label="Pokaż Przezroczyste Obiekty" name="Highlight Transparent" />
- <menu_item_check label="Emitery" name="beacons" />
- <menu_item_check label="Ukryj Cząsteczki" name="Hide Particles" />
- <menu_item_check label="Pokaż Załączniki HUD" name="Show HUD Attachments" />
- <menu_item_separator label="-----------" name="separator5" />
- <menu_item_call label="Zbliżenie" name="Zoom In" />
- <menu_item_call label="Domyślny Tryb Widoku" name="Zoom Default" />
- <menu_item_call label="Oddalenie" name="Zoom Out" />
- <menu_item_separator label="-----------" name="separator6" />
- <menu_item_call label="Tryb Widoku Pełnoekranowego" name="Toggle Fullscreen" />
- <menu_item_call label="Ustaw Domyślny Rozmiar Interfejsu Użytkownika" name="Set UI Size to Default" />
- </menu>
- <menu label="Świat" name="World">
- <menu_item_call label="Rozmowa/Czat" name="Chat" />
- <menu_item_check label="Biegnij" name="Always Run" />
- <menu_item_check label="Leć" name="Fly" />
- <menu_item_separator label="-----------" name="separator" />
- <menu_item_call label="Zapamiętaj Miejsce (LM)" name="Create Landmark Here" />
- <menu_item_call label="Ustaw Miejsce Startu" name="Set Home to Here" />
- <menu_item_separator label="-----------" name="separator2" />
- <menu_item_call label="Teleportuj do Miejsca Startu" name="Teleport Home" />
- <menu_item_separator label="-----------" name="separator3" />
- <menu_item_call label="Śpij" name="Set Away" />
- <menu_item_call label="Pracuj" name="Set Busy" />
- <menu_item_call label="Zatrzymaj Wszystkie Animacje" name="Stop All Animations" />
- <menu_item_call label="Zwolnij Klawisze" name="Release Keys" />
- <menu_item_separator label="-----------" name="separator4" />
- <menu_item_call label="Historia Konta..." name="Account History..." />
- <menu_item_call label="Zarządzaj Kontem..." name="Manage My Account..." />
- <menu_item_call label="Kup L$..." name="Buy and Sell L$..." />
- <menu_item_separator label="-----------" name="separator5" />
- <menu_item_call label="Moje Posiadłości..." name="My Land..." />
- <menu_item_call label="O Posiadłości..." name="About Land..." />
- <menu_item_call label="Kup Posiadłość..." name="Buy Land..." />
- <menu_item_call label="Region/Majątek..." name="Region/Estate..." />
- <menu_item_separator label="-----------" name="separator6" />
- <menu label="Ustawienia Środowiska" name="Environment Settings">
- <menu_item_call label="Wschód Słońca" name="Sunrise" />
- <menu_item_call label="Południe" name="Noon" />
- <menu_item_call label="Zachód Słońca" name="Sunset" />
- <menu_item_call label="Północ" name="Midnight" />
- <menu_item_call label="Przywróć Domyślne Ustawienia Regionu" name="Revert to Region Default" />
- <menu_item_separator label="-----------" name="separator" />
- <menu_item_call label="Edytor Środowiska" name="Environment Editor" />
- </menu>
- </menu>
- <menu label="Narzędzia" name="Tools">
- <menu label="Wybierz Narzędzie " name="Select Tool">
- <menu_item_call label="Przybliżenie" name="Focus" />
- <menu_item_call label="Przesuń" name="Move" />
- <menu_item_call label="Edytuj" name="Edit" />
- <menu_item_call label="Stwórz" name="Create" />
- <menu_item_call label="Posiadłość" name="Land" />
- </menu>
- <menu_item_separator label="-----------" name="separator" />
- <menu_item_check label="Wybierz Tylko Moje Obiekty" name="Select Only My Objects" />
- <menu_item_check label="Wybierz Tylko Obiekty Przesuwalne" name="Select Only Movable Objects" />
- <menu_item_check label="Wybierz Przez Zaznaczenie" name="Select By Surrounding" />
- <menu_item_check label="Pokaż Ukrytą Selekcję" name="Show Hidden Selection" />
- <menu_item_check label="Pokaż Zasięg Światła dla Selekcji" name="Show Light Radius for Selection" />
- <menu_item_check label="Pokaż Źródło Selekcji" name="Show Selection Beam" />
- <menu_item_separator label="-----------" name="separator2" />
- <menu_item_check label="Przeciągnij Obiekt" name="Snap to Grid" />
- <menu_item_call label="Przeciągnij Obiekt Do Siatki" name="Snap Object XY to Grid" />
- <menu_item_call label="Zastosuj Zaznaczenie Dla Siatki" name="Use Selection for Grid" />
- <menu_item_call label="Opcje Siatki..." name="Grid Options..." />
- <menu_item_separator label="-----------" name="separator3" />
- <menu_item_check label="Edytuj Zgrupowane Obiekty" name="Edit Linked Parts" />
- <menu_item_call label="Grupuj" name="Link" />
- <menu_item_call label="Rozgrupuj" name="Unlink" />
- <menu_item_separator label="-----------" name="separator4" />
- <menu_item_call label="Oglądaj Selekcję" name="Focus on Selection" />
- <menu_item_call label="Przybliż do Selekcji" name="Zoom to Selection" />
- <menu_item_call label="Kup Obiekt" name="Menu Object Take" />
- <menu_item_call label="Weź Kopię" name="Take Copy" />
- <menu_item_call label="Zapisz Obiekt w Szafie" name="Save Object Back to My Inventory" />
- <menu_item_call label="Zapisz Obiekt z Poprawkami" name="Save Object Back to Object Contents" />
- <menu_item_separator label="-----------" name="separator6" />
- <menu_item_call label="Pokaż Okno Ostrzeżenia/Błędu Skryptu" name="Show Script Warning/Error Window" />
- <menu label="Zrekompiluj Skrypt w Selekcji" name="Recompile Scripts in Selection">
- <menu_item_call label="Mono" name="Mono" />
- <menu_item_call label="LSL" name="LSL" />
- </menu>
- <menu_item_call label="Zresetuj Skrypt w Selekcji" name="Reset Scripts in Selection" />
- <menu_item_call label="Uruchom Działanie Skryptów w Selekcji" name="Set Scripts to Running in Selection" />
- <menu_item_call label="Wstrzymaj Działanie Skryptów w Selekcji" name="Set Scripts to Not Running in Selection" />
- </menu>
- <menu label="Pomoc" name="Help">
- <menu_item_call label="Second Life: Pomoc" name="Second Life Help" />
- <menu_item_call label="Samouczek" name="Tutorial" />
- <menu_item_separator label="-----------" name="separator" />
- <menu_item_call label="Oficjalny Blog Second Life..." name="Official Linden Blog..." />
- <menu_item_separator label="-----------" name="separator2" />
- <menu_item_call label="Portal dla Skrypterów..." name="Scripting Portal..." />
- <menu_item_separator label="-----------" name="separator3" />
- <menu_item_call label="Złóż Raport o Nadużyciu..." name="Report Abuse..." />
- <menu_item_call label="Zderzenia, Popchnięcia, Uderzenia..." name="Bumps, Pushes &amp;amp; Hits..." />
- <menu_item_call label="Pomiar Lagów" name="Lag Meter" />
- <menu_item_separator label="-----------" name="separator7" />
- <menu label="Zgłoś Błędy Klienta" name="Bug Reporting">
- <menu_item_call label="Publiczna Baza Błędów (JIRA)..." name="Public Issue Tracker..." />
- <menu_item_call label="Co to jest JIRA?..." name="Publc Issue Tracker Help..." />
- <menu_item_separator label="-----------" name="separator7" />
- <menu_item_call label="Instrukcje: Jak Zgłosić Błąd?..." name="Bug Reporing 101..." />
- <menu_item_call label="Zabezpieczenia..." name="Security Issues..." />
- <menu_item_call label="Pytania i Odpowiedzi: Wikipedia..." name="QA Wiki..." />
- <menu_item_separator label="-----------" name="separator9" />
- <menu_item_call label="Wyślij Raport Błędu..." name="Report Bug..." />
- </menu>
- <menu_item_call label="O Second Life..." name="About Second Life..." />
- </menu>
+ <menu label="Plik" name="File">
+ <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~"/>
+ <menu label="Załaduj" name="upload">
+ <menu_item_call label="Obraz (L$[COST])..." name="Upload Image"/>
+ <menu_item_call label="Dźwięk (L$[COST])..." name="Upload Sound"/>
+ <menu_item_call label="Animacja (L$[COST])..." name="Upload Animation"/>
+ <menu_item_call label="Zbiór plików (L$[COST] za plik)..." name="Bulk Upload"/>
+ <menu_item_separator label="-----------" name="separator"/>
+ <menu_item_call label="Wybierz ustawienia domyślne..." name="perm prefs"/>
+ </menu>
+ <menu_item_separator label="-----------" name="separator"/>
+ <menu_item_call label="Zamknij Bieżące Okno" name="Close Window"/>
+ <menu_item_call label="Zamknij Wszystkie Okna" name="Close All Windows"/>
+ <menu_item_separator label="-----------" name="separator2"/>
+ <menu_item_call label="Zapisz Obraz Jako..." name="Save Texture As..."/>
+ <menu_item_separator label="-----------" name="separator3"/>
+ <menu_item_call label="Zrób Zdjęcie" name="Take Snapshot"/>
+ <menu_item_call label="Zapisz Zdjęcie na Dysk" name="Snapshot to Disk"/>
+ <menu_item_separator label="-----------" name="separator4"/>
+ <menu_item_call label="Wyłącz Program" name="Quit"/>
+ </menu>
+ <menu label="Edycja" name="Edit">
+ <menu_item_call label="Cofnij" name="Undo"/>
+ <menu_item_call label="Powtórz" name="Redo"/>
+ <menu_item_separator label="-----------" name="separator"/>
+ <menu_item_call label="Wytnij" name="Cut"/>
+ <menu_item_call label="Kopiuj" name="Copy"/>
+ <menu_item_call label="Wklej" name="Paste"/>
+ <menu_item_call label="Usuń" name="Delete"/>
+ <menu_item_separator label="-----------" name="separator2"/>
+ <menu_item_call label="Szukaj..." name="Search..."/>
+ <menu_item_separator label="-----------" name="separator3"/>
+ <menu_item_call label="Zaznacz Wszystko" name="Select All"/>
+ <menu_item_call label="Cofnij Zaznaczenie" name="Deselect"/>
+ <menu_item_separator label="-----------" name="separator4"/>
+ <menu_item_call label="Duplikat" name="Duplicate"/>
+ <menu_item_separator label="-----------" name="separator5"/>
+ <menu label="Dołącz Obiekt" name="Attach Object"/>
+ <menu label="Odłącz Obiekt" name="Detach Object"/>
+ <menu label="Zdejmij Ubranie" name="Take Off Clothing">
+ <menu_item_call label="Koszulę" name="Shirt"/>
+ <menu_item_call label="Spodnie" name="Pants"/>
+ <menu_item_call label="Buty" name="Shoes"/>
+ <menu_item_call label="Skarpety" name="Socks"/>
+ <menu_item_call label="Kurtkę" name="Jacket"/>
+ <menu_item_call label="Rękawiczki" name="Gloves"/>
+ <menu_item_call label="Podkoszulek" name="Menu Undershirt"/>
+ <menu_item_call label="Bieliznę" name="Menu Underpants"/>
+ <menu_item_call label="Spódnicę" name="Skirt"/>
+ <menu_item_call label="Całe Ubranie" name="All Clothes"/>
+ </menu>
+ <menu_item_separator label="-----------" name="separator6"/>
+ <menu_item_call label="Gesty..." name="Gestures..."/>
+ <menu_item_call label="Profil..." name="Profile..."/>
+ <menu_item_call label="Wygląd..." name="Appearance..."/>
+ <menu_item_separator label="-----------" name="separator7"/>
+ <menu_item_check label="Znajomi..." name="Friends..."/>
+ <menu_item_call label="Grupy..." name="Groups..."/>
+ <menu_item_separator label="-----------" name="separator8"/>
+ <menu_item_call label="Ustawienia..." name="Preferences..."/>
+ </menu>
+ <menu label="Widok" name="View">
+ <tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~"/>
+ <menu_item_call label="Widok Panoramiczny" name="Mouselook"/>
+ <menu_item_check label="Budowanie" name="Build"/>
+ <menu_item_check label="Wolna Kamera" name="Joystick Flycam"/>
+ <menu_item_call label="Normalny Widok" name="Reset View"/>
+ <menu_item_call label="Historia Rozmów" name="Look at Last Chatter"/>
+ <menu_item_separator label="-----------" name="separator"/>
+ <menu_item_check label="Narzędzia" name="Toolbar"/>
+ <menu_item_check label="Rozmowa Lokalna" name="Chat History"/>
+ <menu_item_check label="Rozmowa Prywatna (IM)" name="Instant Message"/>
+ <menu_item_check label="Moja Szafa" name="Inventory"/>
+ <menu_item_check label="Rozmawiające Osoby" name="Active Speakers"/>
+ <menu_item_check label="Wyciszone Osoby" name="Mute List"/>
+ <menu_item_separator label="-----------" name="separator2"/>
+ <menu_item_check label="Ustawienia Kamery" name="Camera Controls"/>
+ <menu_item_check label="Ustawienia Ruchu" name="Movement Controls"/>
+ <menu_item_check label="Mapa Świata" name="World Map"/>
+ <menu_item_check label="Mini-Mapa" name="Mini-Map"/>
+ <menu_item_separator label="-----------" name="separator3"/>
+ <menu_item_check label="Statystyki" name="Statistics Bar"/>
+ <menu_item_check label="Granice Posiadłości" name="Property Lines"/>
+ <menu_item_check label="Linie banu" name="Banlines"/>
+ <menu_item_check label="Właściciele Posiadłości" name="Land Owners"/>
+ <menu_item_separator label="-----------" name="separator4"/>
+ <menu label="Podpowiedzi" name="Hover Tips">
+ <menu_item_check label="Pokaż Podpowiedzi" name="Show Tips"/>
+ <menu_item_separator label="-----------" name="separator"/>
+ <menu_item_check label="Posiadłość: wskazówki" name="Land Tips"/>
+ <menu_item_check label="Obiekty: wskazówki" name="Tips On All Objects"/>
+ </menu>
+ <menu_item_check label="Pokaż Przezroczyste Obiekty" name="Highlight Transparent"/>
+ <menu_item_check label="Emitery" name="beacons"/>
+ <menu_item_check label="Ukryj Cząsteczki" name="Hide Particles"/>
+ <menu_item_check label="Pokaż Załączniki HUD" name="Show HUD Attachments"/>
+ <menu_item_separator label="-----------" name="separator5"/>
+ <menu_item_call label="Zbliżenie" name="Zoom In"/>
+ <menu_item_call label="Domyślny Tryb Widoku" name="Zoom Default"/>
+ <menu_item_call label="Oddalenie" name="Zoom Out"/>
+ <menu_item_separator label="-----------" name="separator6"/>
+ <menu_item_call label="Tryb Widoku Pełnoekranowego" name="Toggle Fullscreen"/>
+ <menu_item_call label="Ustaw Domyślny Rozmiar Interfejsu Użytkownika" name="Set UI Size to Default"/>
+ </menu>
+ <menu label="Świat" name="World">
+ <menu_item_call label="Rozmowa/Czat" name="Chat"/>
+ <menu_item_check label="Biegnij" name="Always Run"/>
+ <menu_item_check label="Leć" name="Fly"/>
+ <menu_item_separator label="-----------" name="separator"/>
+ <menu_item_call label="Zapamiętaj Miejsce (LM)" name="Create Landmark Here"/>
+ <menu_item_call label="Ustaw Miejsce Startu" name="Set Home to Here"/>
+ <menu_item_separator label="-----------" name="separator2"/>
+ <menu_item_call label="Teleportuj do Miejsca Startu" name="Teleport Home"/>
+ <menu_item_separator label="-----------" name="separator3"/>
+ <menu_item_call label="Śpij" name="Set Away"/>
+ <menu_item_call label="Pracuj" name="Set Busy"/>
+ <menu_item_call label="Zatrzymaj Wszystkie Animacje" name="Stop Animating My Avatar"/>
+ <menu_item_call label="Zwolnij Klawisze" name="Release Keys"/>
+ <menu_item_separator label="-----------" name="separator4"/>
+ <menu_item_call label="Historia Konta..." name="Account History..."/>
+ <menu_item_call label="Zarządzaj Kontem..." name="Manage My Account..."/>
+ <menu_item_call label="Kup L$..." name="Buy and Sell L$..."/>
+ <menu_item_separator label="-----------" name="separator5"/>
+ <menu_item_call label="Moje Posiadłości..." name="My Land..."/>
+ <menu_item_call label="O Posiadłości..." name="About Land..."/>
+ <menu_item_call label="Kup Posiadłość..." name="Buy Land..."/>
+ <menu_item_call label="Region/Majątek..." name="Region/Estate..."/>
+ <menu_item_separator label="-----------" name="separator6"/>
+ <menu label="Ustawienia Środowiska" name="Environment Settings">
+ <menu_item_call label="Wschód Słońca" name="Sunrise"/>
+ <menu_item_call label="Południe" name="Noon"/>
+ <menu_item_call label="Zachód Słońca" name="Sunset"/>
+ <menu_item_call label="Północ" name="Midnight"/>
+ <menu_item_call label="Przywróć Domyślne Ustawienia Regionu" name="Revert to Region Default"/>
+ <menu_item_separator label="-----------" name="separator"/>
+ <menu_item_call label="Edytor Środowiska" name="Environment Editor"/>
+ </menu>
+ </menu>
+ <menu label="Narzędzia" name="Tools">
+ <menu label="Wybierz Narzędzie " name="Select Tool">
+ <menu_item_call label="Przybliżenie" name="Focus"/>
+ <menu_item_call label="Przesuń" name="Move"/>
+ <menu_item_call label="Edytuj" name="Edit"/>
+ <menu_item_call label="Stwórz" name="Create"/>
+ <menu_item_call label="Posiadłość" name="Land"/>
+ </menu>
+ <menu_item_separator label="-----------" name="separator"/>
+ <menu_item_check label="Wybierz Tylko Moje Obiekty" name="Select Only My Objects"/>
+ <menu_item_check label="Wybierz Tylko Obiekty Przesuwalne" name="Select Only Movable Objects"/>
+ <menu_item_check label="Wybierz Przez Zaznaczenie" name="Select By Surrounding"/>
+ <menu_item_check label="Pokaż Ukrytą Selekcję" name="Show Hidden Selection"/>
+ <menu_item_check label="Pokaż Zasięg Światła dla Selekcji" name="Show Light Radius for Selection"/>
+ <menu_item_check label="Pokaż Źródło Selekcji" name="Show Selection Beam"/>
+ <menu_item_separator label="-----------" name="separator2"/>
+ <menu_item_check label="Przeciągnij Obiekt" name="Snap to Grid"/>
+ <menu_item_call label="Przeciągnij Obiekt Do Siatki" name="Snap Object XY to Grid"/>
+ <menu_item_call label="Zastosuj Zaznaczenie Dla Siatki" name="Use Selection for Grid"/>
+ <menu_item_call label="Opcje Siatki..." name="Grid Options..."/>
+ <menu_item_separator label="-----------" name="separator3"/>
+ <menu_item_check label="Edytuj Zgrupowane Obiekty" name="Edit Linked Parts"/>
+ <menu_item_call label="Grupuj" name="Link"/>
+ <menu_item_call label="Rozgrupuj" name="Unlink"/>
+ <menu_item_separator label="-----------" name="separator4"/>
+ <menu_item_call label="Oglądaj Selekcję" name="Focus on Selection"/>
+ <menu_item_call label="Przybliż do Selekcji" name="Zoom to Selection"/>
+ <menu_item_call label="Kup Obiekt" name="Menu Object Take"/>
+ <menu_item_call label="Weź Kopię" name="Take Copy"/>
+ <menu_item_call label="Zapisz Obiekt z Poprawkami" name="Save Object Back to Object Contents"/>
+ <menu_item_separator label="-----------" name="separator6"/>
+ <menu_item_call label="Pokaż Okno Ostrzeżenia/Błędu Skryptu" name="Show Script Warning/Error Window"/>
+ <menu label="Zrekompiluj Skrypt w Selekcji" name="Recompile Scripts in Selection">
+ <menu_item_call label="Mono" name="Mono"/>
+ <menu_item_call label="LSL" name="LSL"/>
+ </menu>
+ <menu_item_call label="Zresetuj Skrypt w Selekcji" name="Reset Scripts in Selection"/>
+ <menu_item_call label="Uruchom Działanie Skryptów w Selekcji" name="Set Scripts to Running in Selection"/>
+ <menu_item_call label="Wstrzymaj Działanie Skryptów w Selekcji" name="Set Scripts to Not Running in Selection"/>
+ </menu>
+ <menu label="Pomoc" name="Help">
+ <menu_item_call label="Second Life: Pomoc" name="Second Life Help"/>
+ <menu_item_call label="Samouczek" name="Tutorial"/>
+ <menu_item_separator label="-----------" name="separator"/>
+ <menu_item_call label="Oficjalny Blog Second Life..." name="Official Linden Blog..."/>
+ <menu_item_separator label="-----------" name="separator2"/>
+ <menu_item_call label="Portal dla Skrypterów..." name="Scripting Portal..."/>
+ <menu_item_separator label="-----------" name="separator3"/>
+ <menu_item_call label="Złóż Raport o Nadużyciu..." name="Report Abuse..."/>
+ <menu_item_call label="Zderzenia, Popchnięcia, Uderzenia..." name="Bumps, Pushes &amp;amp; Hits..."/>
+ <menu_item_call label="Pomiar Lagów" name="Lag Meter"/>
+ <menu_item_separator label="-----------" name="separator7"/>
+ <menu label="Zgłoś Błędy Klienta" name="Bug Reporting">
+ <menu_item_call label="Publiczna Baza Błędów (JIRA)..." name="Public Issue Tracker..."/>
+ <menu_item_call label="Co to jest JIRA?..." name="Publc Issue Tracker Help..."/>
+ <menu_item_separator label="-----------" name="separator7"/>
+ <menu_item_call label="Instrukcje: Jak Zgłosić Błąd?..." name="Bug Reporing 101..."/>
+ <menu_item_call label="Zabezpieczenia..." name="Security Issues..."/>
+ <menu_item_call label="Pytania i Odpowiedzi: Wikipedia..." name="QA Wiki..."/>
+ <menu_item_separator label="-----------" name="separator9"/>
+ <menu_item_call label="Wyślij Raport Błędu..." name="Report Bug..."/>
+ </menu>
+ <menu_item_call label="O Second Life..." name="About Second Life..."/>
+ </menu>
</menu_bar>
diff --git a/indra/newview/skins/default/xui/pl/notifications.xml b/indra/newview/skins/default/xui/pl/notifications.xml
index d80662eeba..e2b26bf0d1 100644
--- a/indra/newview/skins/default/xui/pl/notifications.xml
+++ b/indra/newview/skins/default/xui/pl/notifications.xml
@@ -1,5718 +1,3037 @@
-<?xml version="1.0" ?><notifications>
-
- <global name="skipnexttime">
-
- Nie pokazuj tej opcji następnym razem
- </global>
-
- <global name="alwayschoose">
-
- Pozwalaj na wybór tej opcji
- </global>
-
- <template name="okbutton">
- <form>
- <button
- name="OK"
- text="$yestext"/>
- </form>
- </template>
-
- <template name="okignore">
- <form>
- <button
- name="OK"
- text="$yestext"/>
- <ignore text="$ignoretext"/>
- </form>
- </template>
-
- <template name="okcancelbuttons">
- <form>
- <button
- name="OK"
- text="$yestext"/>
- <button
- name="Cancel"
- text="$notext"/>
- </form>
- </template>
-
- <template name="okcancelignore">
- <form>
- <button
- name="OK"
- text="$yestext"/>
- <button
- name="Cancel"
- text="$notext"/>
- <ignore text="$ignoretext"/>
- </form>
- </template>
-
- <template name="okhelpbuttons">
- <form>
- <button
- name="OK"
- text="$yestext"/>
- <button
- name="Help"
- text="$helptext"/>
- </form>
- </template>
-
- <template name="yesnocancelbuttons">
- <form>
- <button
- name="Yes"
- text="$yestext"/>
- <button
- name="No"
- text="$notext"/>
- <button
- name="Cancel"
- text="$canceltext"/>
- </form>
- </template>
-
- <notification
- functor="GenericAcknowledge"
-
- name="MissingAlert"
- >
-&apos;[_NAME]&apos; brakuje w pliku notifications.xml.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="FloaterNotFound"
- >
-Błąd: nie można znaleźć następujących elementów:
-
-[CONTROLS]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="TutorialNotFound"
- >
-Brak samouczka na ten temat
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GenericAlert"
- >
-[MESSAGE]
- </notification>
-
- <notification
-
- name="GenericAlertYesCancel"
- >
-[MESSAGE]
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="Tak"/>
- </notification>
-
- <notification
-
- name="WearableSave"
- >
-Zapisać zmiany dotyczące ubrania/części ciała?
- <usetemplate
- canceltext="Anuluj"
- name="yesnocancelbuttons"
- notext="Nie Zapisuj"
- yestext="Zapisz"/>
- </notification>
-
- <notification
-
- name="CompileQueueSaveText"
- >
-W trakcie ładwania tekstu dla skryptu pojawił się problem z następującego powodu: [REASON]. Spróbuj ponownie za kilka minut.
- </notification>
-
- <notification
-
- name="CompileQueueSaveBytecode"
- >
-W trakcie ładwania skompilowanego skryptu pojawił się problem z następującego powodu: [REASON]. Spróbuj ponownie za kilka minut.
- </notification>
-
- <notification
-
- name="WriteAnimationFail"
- >
-Problem w zapisywaniu danych animacji. Spróbuj ponownie za kilka minut.
- </notification>
-
- <notification
-
- name="UploadAuctionSnapshotFail"
- >
-W trakcie ładwania obrazu aukcji pojawił się problem z następującego powodu: [REASON].
- </notification>
-
- <notification
-
- name="UnableToViewContentsMoreThanOne"
- >
-Nie można przeglądać zawartości więcej niż jednego obiektu naraz.
-Wybierz pojedynczy obiekt i spróbuj jeszcze raz.
- </notification>
-
- <notification
-
- name="SaveClothingBodyChanges"
- >
-Zapisać wszystkie zmiany dotyczące ubrania/cześci ciała?
- <usetemplate
- canceltext="Anuluj"
- name="yesnocancelbuttons"
- notext="Nie Zapisuj"
- yestext="Zapisz"/>
- </notification>
-
- <notification
-
- name="GrantModifyRights"
- >
-Udzielenie praw modyfikacji innemu Rezydentowi umożliwia modyfikację, usuwanie lub wzięcie JAKIEGOKOLWIEK z Twoich obiektów.
-Używaj tej opcji z rozwagą!
-Czy chcesz dać prawa modyfikacji osobie [FIRST_NAME] [LAST_NAME]?
- <usetemplate
- name="okcancelbuttons"
- notext="Nie"
- yestext="Tak"/>
- </notification>
-
- <notification
-
- name="GrantModifyRightsMultiple"
- >
-Udzielenie praw modyfikacji innym Rezydentom umożliwia im modyfikację, usuwanie lub wzięcie JAKIEGOKOLWIEK z Twoich obiektów.
-Używaj tej opcji z rozwagą!
-Czy chcesz dać prawa modyfikacji wybranym osobom?
- <usetemplate
- name="okcancelbuttons"
- notext="Nie"
- yestext="Tak"/>
- </notification>
-
- <notification
-
- name="RevokeModifyRights"
- >
-Czy chcesz odebrać prawa modyfikacji Rezydentowi [FIRST_NAME] [LAST_NAME]?
- <usetemplate
- name="okcancelbuttons"
- notext="Nie"
- yestext="Tak"/>
- </notification>
-
- <notification
-
- name="RevokeModifyRightsMultiple"
- >
-Czy chcesz odebrać prawa modyfikacji wybranym Rezydentom?
- <usetemplate
- name="okcancelbuttons"
- notext="Nie"
- yestext="Tak"/>
- </notification>
-
- <notification
-
- name="UnableToCreateGroup"
- >
-Założenie grupy niemożliwe.
-[MESSAGE]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="PanelGroupApply"
- >
-[NEEDS_APPLY_MESSAGE]
-[WANT_APPLY_MESSAGE]
- <usetemplate
- canceltext="Anuluj"
- name="yesnocancelbuttons"
- notext="Ignoruj Zmiany"
- yestext="Zastosuj Zmiany"/>
- </notification>
-
- <notification
-
- name="MustSpecifyGroupNoticeSubject"
- >
-Aby wysłać ogłoszenie do grupy musisz nadać mu tytuł.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="AddGroupOwnerWarning"
- >
-Dodajesz członków do funkcji [ROLE_NAME].
-Ta funkcja nie może być odebrana.
-Członkowie muszą sami zrezygnować z pełnienia tej funkcji.
-Chcesz kontynuować?
- <usetemplate
- ignoretext="Podczas dodawania członków grupy do funkcji właściciela"
- name="okcancelignore"
- notext="Nie"
- yestext="Tak"/>
- </notification>
-
- <notification
-
- name="AssignDangerousActionWarning"
- >
-Dodajesz przywilej [ACTION_NAME] do fukcji [ROLE_NAME].
-
-*UWAGA*
-Członek w funkcji z tym przywilejem może przypisać siebie i innych członków nie będących właścicielami do funkcji dających więcej przywilejów niż posiadane obecnie potencjalnie dające możliwości zbliżone do możliwości właściciela.
-Udzielaj tego przywileju z rozwagą.&quot;
-
-Dodać ten przywilej do funkcji [ROLE_NAME]?
- <usetemplate
- name="okcancelbuttons"
- notext="Nie"
- yestext="Tak"/>
- </notification>
-
- <notification
-
- name="AssignDangerousAbilityWarning"
- >
-Dodajesz przywilej [ACTION_NAME] do fukcji [ROLE_NAME]
-
-*UWAGA*
-Członek w funkcji z tym przywilejem może przypisać sobie i innychm członkom nie będącym właścicielami wszystkie przywileje potencjalnie dające możliwości zbliżone do możliwości właściciela.
-Udzielaj tego przywileju z rozwagą.
-
-Dodać ten przywilej do funkcji [ROLE_NAME]?
- <usetemplate
- name="okcancelbuttons"
- notext="Nie"
- yestext="Tak"/>
- </notification>
-
- <notification
-
- name="ClickPublishHelpLand"
- >
-Wybranie opcji Publikuj w Wyszukiwarce Wybranie tej opcji umożliwi pokazywanie:
-- tej posiadłości w wynikach wyszukiwarki
-- publicznych obiektów na tej posiadłości
-- tej posiadłości w przeglądarce internetowej
- </notification>
-
- <notification
-
- name="ClickPublishHelpLandDisabled"
- >
-Ta posiadłość nie może być pokazywana w wynikach wyszukiwania ponieważ region w którym się znajduje zabrania tego.
- </notification>
-
- <notification
-
- name="ClickPublishHelpAvatar"
- >
-Wybranie opcji Publikuj w Wyszukiwarce umożliwi pokazywanie:
-- Twojego profilu w wynikach wyszukiwarki
-- linku do Twojego profilu na publicznych stronach
- </notification>
-
- <notification
-
- name="ClickPartnerHelpAvatar"
- >
-Możesz zaproponować związek innemu Rezydentowi lub rozwiązać istniejący związek na stronie internetowej [SECOND_LIFE].
-
-Chcesz dowiedzieć się więcej na temat związków w Second Life?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="Idź na stronę"/>
- </notification>
-
- <notification
-
- name="ClickWebProfileHelpAvatar"
- >
-Jeżeli ten Rezydent posiada link URL w profilu możesz:
- * Kliknąć &apos;Załaduj&apos; żeby zobaczyć stronę w tej zakładce WWW.
- * Kliknąć &apos;Załaduj&apos; &gt; &apos;Użyj zewnętrznej przeglądarki&apos; żeby zobaczyć stronę używając domyślnej zewnętrznej przeglądarki.
- * Kliknąć &apos;Załaduj&apos; &gt; &apos;Otwórz URL strony profilu&apos; żeby wrócić do strony tego Rezydenta po jej opuszczeniu.
-
-Oglądając swój profil możesz wpisać dowolny link URL i kliknąć OK żeby go zapisać.
-Rezydenci mogą odwiedzać podany adres, kiedy przeglądają Twój profil.
- </notification>
-
- <notification
-
- name="JoinGroupCanAfford"
- >
-Dołączenie do tej grupy kosztuje [COST]L$.
-Chcesz kontynuować?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="Dołącz"/>
- </notification>
-
- <notification
-
- name="JoinGroupCannotAfford"
- >
-Członkostwo w tej grupie kosztuje [COST]L$
-Masz za mało L$ żeby zostać członkiem.
- </notification>
-
- <notification
-
- name="LandBuyPass"
- >
-Za [COST]L$ możesz odwiedzić tą posiadłość (&apos;[PARCEL_NAME]&apos;) na [TIME] godzin. Chcesz kupić przepustkę?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SalePriceRestriction"
- >
-Cena sprzedaży musi być wyższa niż 0L$ jeżeli sprzedajesz komukolwiek.
-Musisz wybrać kupca jeżeli chcesz sprzedać za 0L$.
- </notification>
-
- <notification
-
- name="ConfirmLandSaleChange"
-
- >
-Posiadłość o powierzchni [LAND_SIZE] m zostaje wystawiona na sprzedaż.
-Cena wynosi [SALE_PRICE]L$ i sprzedaż będzie autoryzowana dla [NAME].
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmLandSaleToAnyoneChange"
- >
-UWAGA: Wybierając Sprzedaż dla Kogokolwiek umożliwiasz zakup posiadłości wszystkim Rezydentom Second Life.
-
-Posiadłość o powierzchni [LAND_SIZE] m zostaje wystawiona na sprzedaż.
-Cena wynosi [SALE_PRICE]L$ i sprzedaż będzie autoryzowana dla [NAME].
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsDeededToGroup"
- >
-Czy na pewno chcesz zwrócić wszystkie obiekty udostępnione grupie [NAME] na tej posiadłości do szafy ich poprzednich właścicieli?
-
-*UWAGA* Wybrana opcja spowoduje usunięcie wszystkich obiektów
-udostępnionych grupie, które nie mają praw transferu!
-
-Obiekty: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsOwnedByUser"
- >
-Czy na pewno chcesz zwrócić wszystkie obiekty należące do Rezydenta [NAME] znajdujące się na tej posiadłości do szafy właściciela?
-
-Obiekty: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsOwnedBySelf"
- >
-Czy na pewno chcesz zwrócić wszystkie Twoje obiekty znajdujące się na tej posiadłości do swojej szafy?
-
-Obiekty: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsNotOwnedBySelf"
- >
-Czy na pewno chcesz zwrócić wszystkie obiekty, których nie jesteś właścicielem znajdujące się na tej posiadłości do szaf właścicieli? Wszystkie obiekty udostępnione grupie z prawem transferu, zostaną zwrócone poprzednim właścicielom.
-
-*UWAGA* Wybrana opcja spowoduje usunięcie wszystkich obiektów udostępnionych grupie, które nie mają praw transferu!
-
-Obiekty: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsNotOwnedByUser"
- >
-Czy na pewno chcesz zwrócić wszystkie obiekty, które nie należą do [NAME] znajdujące się na tej posiadłości do szaf właścicieli? Wszystkie obiekty udostępnione grupie z prawem transferu, zostaną zwrócone poprzednim właścicielom.
-
-*UWAGA* Wybrana opcja spowoduje usunięcie wszystkich obiektów udostępnionych grupie, które nie mają praw transferu!
-
-Obiekty: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnAllTopObjects"
- >
-Czy na pewno chcesz zwrócić wszystkie wymienione obiekty znajdujące się na tej posiadłości do szaf ich właścicieli?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="DisableAllTopObjects"
- >
-Czy na pewno chcesz deaktywować wszystkie obiekty w tym regionie?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsNotOwnedByGroup"
- >
-Zwrócić obiekty z tej posiadłości, które nie są udosępnione grupie [NAME] do ich właścicieli?
-
-Obiekty: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="UnableToDisableOutsideScripts"
- >
-Nie można deaktywować skryptów.
-Ten region pozwala na uszkodzenia.
-Skrypty muszą pozostać aktywne dla prawidłowego działania broni.
- </notification>
-
- <notification
-
- name="MustBeInParcel"
- >
-Musisz znajdować się wewnątrz posiadłości żeby wybrać punkt lądowania.
- </notification>
-
- <notification
-
- name="PromptRecipientEmail"
- >
-Proszę wpisać adres emailowy odbiorcy.
- </notification>
-
- <notification
-
- name="PromptSelfEmail"
- >
-Proszę wpisać swój adres emailowy.
- </notification>
-
- <notification
-
- name="PromptMissingSubjMsg"
- >
-Wysłać widokówkę z domyślnym tematem i wiadomością?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ErrorProcessingSnapshot"
- >
-Błąd w trakcie przetwarzania danych zdjęcia.
- </notification>
-
- <notification
-
- name="ErrorEncodingSnapshot"
- >
-Błąd w kodowaniu zdjęcia.
- </notification>
-
- <notification
-
- name="ErrorUploadingPostcard"
- >
-W trakcie ładowania zdjęcia pojawił się problem z następującego powodu: [REASON]
- </notification>
-
- <notification
-
- name="ErrorUploadingReportScreenshot"
- >
-W trakcie ładowania zdjęcia ekranu do raportu pojawił się problem z następującego powodu: [REASON]
- </notification>
-
- <notification
-
- name="MustAgreeToLogIn"
- >
-Musisz zaakceptować Warunki Umowy (Terms of Service) by kontynuować logowanie się do [SECOND_LIFE].
- </notification>
-
- <notification
-
- name="CouldNotPutOnOutfit"
- >
-Założenie stroju nie powiodło się.
-Folder stroju nie zawiera żadnego ubrania, części ciała ani załączników.
- </notification>
-
- <notification
-
- name="CannotWearTrash"
- >
-Nie możesz założyć ubrania, które znajduje się w koszu.
- </notification>
-
- <notification
-
- name="CannotWearInfoNotComplete"
- >
-Nie możesz założyć tego artkułu ponieważ nie załadował się poprawnie. Spróbuj ponownie za kilka minut.
- </notification>
-
- <notification
-
- name="MustHaveAccountToLogIn"
- >
-Musisz mieć konto by móc zalogować się do [SECOND_LIFE].
-Czy chcesz przejść na stronę www.secondlife.com by założyć konto?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="AddClassified"
- >
-Ogłoszenia reklamowe ukazują się w zakładce Reklama w wyszukiwarce (Szukaj) oraz na stronie internetowej www.secondlife.com przez tydzień.
-Napisz treść swojej reklamy, kliknij Zamieść by dodać katalogu ogłoszeń.
-Po zamieszczeniu reklamy zostaniesz poproszony o sprecyzowanie opłaty za reklamę.
-Im wyższa opłata tym wyżej Twoja reklama wyświetla się w katalogu i wyszukiwarce po wpisaniu słów kluczowych.
- <usetemplate
- ignoretext="W momencie dodawania nowej reklamy"
- name="okcancelignore"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="DeleteClassified"
- >
-Usunąć reklamę &apos;[NAME]&apos;?
-Pamiętaj! Nie ma rekompensaty za poniesione koszta.
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ClassifiedSave"
- >
-Zapisać zmiany w reklamie [NAME]?
- <usetemplate
- canceltext="Anuluj"
- name="yesnocancelbuttons"
- notext="Nie Zapisuj"
- yestext="Zapisz"/>
- </notification>
-
- <notification
-
- name="DeleteAvatarPick"
- >
-Usunąć wybór [PICK] z kategorii Lubię?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="PromptGoToEventsPage"
- >
-Odwiedzić internetową stronę imprez [SECOND_LIFE]?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SelectProposalToView"
- >
-Wybierz propozycję, którą chcesz zobaczyć.
- </notification>
-
- <notification
-
- name="SelectHistoryItemToView"
- >
-Wybierz obiekt z historii, który chcesz zobaczyć.
- </notification>
-
- <notification
-
- name="ResetShowNextTimeDialogs"
- >
-Zresetować &apos;Pokaż następnym razem&apos; opcję we wszystkich dialogach?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SkipShowNextTimeDialogs"
- >
-Wyłączyć &apos;Pokaż następnym razem&apos; opcję we wszystkich dialogach?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CacheWillClear"
- >
-Bufor danych na dysku zostanie zresetowany po relogu do [SECOND_LIFE].
- </notification>
-
- <notification
-
- name="CacheWillBeMoved"
- >
-Bufor danych na dysku zostanie przemieszczony po relogu do [SECOND_LIFE].
-Bufor będzie również wyczyszczony.
- </notification>
-
- <notification
-
- name="ChangeConnectionPort"
- >
-Ustawienia portu zostaną wprowadzone po relogu do [SECOND_LIFE].
- </notification>
-
- <notification
-
- name="ChangeSkin"
- >
-Nowa skórka zostanie wprowadzona po relogu do [SECOND_LIFE].
- </notification>
-
- <notification
-
- name="GoToAuctionPage"
- >
-Odwiedzić stronę internetową [SECOND_LIFE] żeby zobaczyć szczgóły aukcji lub zrobić ofertę?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SaveChanges"
- >
-Zapisać Zmiany?
- <usetemplate
- canceltext="Anuluj"
- name="yesnocancelbuttons"
- notext="Nie Zapisuj"
- yestext="Zapisz"/>
- </notification>
-
- <notification
-
- name="GestureSaveFailedTooManySteps"
- >
-Nie można zapisać gestu.
-Ten gest ma zbyt wiele etapów.
-Usuń kilka etapów i zapisz jeszcze raz.
- </notification>
-
- <notification
-
- name="GestureSaveFailedTryAgain"
- >
-Zapis gestu nie powiódł się. Spróbuj jeszcze raz za kilka minut.
- </notification>
-
- <notification
-
- name="GestureSaveFailedObjectNotFound"
- >
-Nie można zapisać gestu ponieważ obiekt lub szafa powiązanego obiektu nie został znaleziony.
-Obiekt może znajdować się zbyt daleko albo został usuniety.
- </notification>
-
- <notification
-
- name="GestureSaveFailedReason"
- >
-Nie można zapisać gestu z następującego powodu: [REASON]. Spróbuj zapisać jeszcze raz póżniej.
- </notification>
-
- <notification
-
- name="SaveNotecardFailObjectNotFound"
- >
-Nie można zapisać notki ponieważ obiekt lub szafa powiązanego obiektu nie został znaleziony.
-Obiekt może znajdować się zbyt daleko albo został usuniety.
- </notification>
-
- <notification
-
- name="SaveNotecardFailReason"
- >
-Nie można zapisać notki z następującego powodu: [REASON]. Spróbuj zapisać jeszcze raz póżniej.
- </notification>
-
- <notification
-
- name="ScriptCannotUndo"
- >
-Nie można cofnąć wszystkich zmian w Twojej wersji skryptu.
-Czy chcesz załadować ostatnią wersję zapisaną na serwerze?
-(*UWAGA* Ta operacja jest nieodwracalna.)
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SaveScriptFailReason"
- >
-Nie można zapisać skryptu z następującego powodu: [REASON]. Spróbuj zapisać jeszcze raz póżniej.
- </notification>
-
- <notification
-
- name="SaveScriptFailObjectNotFound"
- >
-Nie można zapisać skryptu ponieważ obiekt w którym się zawiera nie został znaleziony.
-Obiekt może znajdować się zbyt daleko albo został usuniety.
- </notification>
-
- <notification
-
- name="SaveBytecodeFailReason"
- >
-Nie można zapisać skompilowanego skryptu z następującego powodu: [REASON]. Spróbuj zapisać jeszcze raz póżniej.
- </notification>
-
- <notification
-
- name="CouldNotStartStopScript"
- >
-Nie można uruchomić lub zatrzymać skryptu ponieważ obiekt w którym się zawiera nie został znaleziony.
-Obiekt może znajdować się zbyt daleko albo został usuniety.
- </notification>
-
- <notification
-
- name="CannotDownloadFile"
- >
-Nie można załadować pliku
- </notification>
-
- <notification
-
- name="CannotWriteFile"
- >
-Nie można zapisać pliku [[FILE]]
- </notification>
-
- <notification
-
- name="UnsupportedHardware"
- >
-Uwaga: Twój system nie spełnia minimalnych wymagań sprzętowych Second Life. Jakość i prędkość Second Life mogą być pogorszone. Niestety, nie będziemy w stanie udzielić Ci technicznej pomocy, ponieważ konfiguracja Twojego systemu nie spełnia wymagań sprzętowych.
-
-MINSPECS
-Czy chcesz odwiedzić stronę [_URL] po dodatkowe informacje?
- <url option="0" name="url">
-
- http://www.secondlife.com/corporate/sysreqs.php
- </url>
- <usetemplate
- ignoretext="Zignoruj ostrzeżenie"
- name="okcancelignore"
- notext="Nie"
- yestext="Tak"/>
- </notification>
-
- <notification
-
- name="UnknownGPU"
- >
-Twój system jest wyposażony w kartę graficzną której jeszcze nie znamy.
-To się często zdarza z nowym sprzętem, którego jeszcze nie testowaliśmy.
-Second Life najprawdopodobniej będzie działało poprawnie. Możliwe, że będziesz musiał wyregulować ustawienia grafiki.
-(Edycja &gt; Ustawienia &gt; Grafika).
- <form name="form">
- <ignore name="ignore" text="Zignoruj ostrzeżenie"/>
- </form>
- </notification>
-
- <notification
-
- name="DisplaySettingsNoShaders"
- >
-[SECOND_LIFE] zawiesił się podczas inicjalizacji sterowników graficznych. Jakość grafiki została zmniejszona - może pomoże. Pewne funkcje graficzne zostały wyłączone. Zalecamy aktualizcje strerowników grapicznych.
-Możesz podnieść jakość grafiki pod Ustawienia &gt; Grafika.
- </notification>
-
- <notification
-
- name="RegionNoTerraforming"
- >
-Region [REGION] nie pozwala na formowanie powierzchni ziemi.
- </notification>
-
- <notification
-
- name="CannotCopyWarning"
- >
-Nie masz praw do kopiowania tego obiektu. Ten obiek zniknie z Twojej szafy jeżeli go dasz innej osobie.
-Na pewno chcesz podarować ten obiekt?
- <usetemplate
- name="okcancelbuttons"
- notext="Nie"
- yestext="Tak"/>
- </notification>
-
- <notification
-
- name="CannotGiveItem"
- >
-Podarowanie obiektu nie powiodło się.
- </notification>
-
- <notification
-
- name="TransactionCancelled"
- >
-Tranzakcja anulowana.
- </notification>
-
- <notification
-
- name="TooManyItems"
- >
-Jednorazowo możesz podarować maksymalnie 42 obiekty z szafy.
- </notification>
-
- <notification
-
- name="NoItems"
- >
-Nie masz praw do transferu wybranych obiektów.
- </notification>
-
- <notification
-
- name="CannotCopyCountItems"
- >
-Nie masz praw do skopiowania [COUNT] wybranych obiektów. Obiekty znikną z Twojej szafy.
-Na pewno chcesz oddać te obiekty?
- <usetemplate
- name="okcancelbuttons"
- notext="Nie"
- yestext="Tak"/>
- </notification>
-
- <notification
-
- name="CannotGiveCategory"
- >
-Nie masz praw do transferu wybranego foldera.
- </notification>
-
- <notification
-
- name="FreezeAvatar"
- >
-Unieruchomić tego awatara?
-Awatar tymczasowo nie będzie mógł się poruszać, nie będzie mógł używać czatu (IM) i nie będzie w stanie odziaływać na świat.
- <usetemplate
- canceltext="Anuluj"
- name="yesnocancelbuttons"
- notext="Odblokuj"
- yestext="Unieruchom"/>
- </notification>
-
- <notification
-
- name="FreezeAvatarFullname"
- >
-Unieruchowmić [AVATAR_NAME]?
-Ta osoba tymczasowo nie będzie mógła się poruszać, nie będzie mógł używać czatu (IM) i nie będzie w stanie odziaływać na świat.
- <usetemplate
- canceltext="Anuluj"
- name="yesnocancelbuttons"
- notext="Odblokuj"
- yestext="Unieruchom"/>
- </notification>
-
- <notification
-
- name="EjectAvatarFullname"
- >
-Wyrzucić [AVATAR_NAME] z Twojej posiadłości?
- <usetemplate
- canceltext="Anuluj"
- name="yesnocancelbuttons"
- notext="Wyrzuć i zabroń wstępu (ban)"
- yestext="Wyrzuć"/>
- </notification>
-
- <notification
-
- name="AcquireErrorTooManyObjects"
- >
-BŁĄD OTRZYMYWANIA: Zbyt wiele wybranych obiektów.
- </notification>
-
- <notification
-
- name="AcquireErrorObjectSpan"
- >
-BŁĄD OTRZYMYWANIA: Obiekty przekraczają granicę regionów. Przemieść wszystkie otrzymywane obiekty do jednego regionu.
- </notification>
-
- <notification
-
- name="PromptGoToCurrencyPage"
- >
-[EXTRA]
-
-Iść na stronę [URL] po informacje dotyczące zakupu gotówki?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="UnableToLinkObjects"
- >
-Nie można połączyć [COUNT] obiektów.
-Maksimalnie można połączyć [MAX] obiektów.
- </notification>
-
- <notification
-
- name="CannotLinkIncompleteSet"
- >
-Możesz łączyć tylko kompletne zbiory obiektów i musisz wybrać więcej niż jeden obiekt.
- </notification>
-
- <notification
-
- name="CannotLinkModify"
- >
-Nie możesz połączyć obiektów ponieważ nie masz praw modyfikacji dla wszystkich obiektów.
-
-Upewnij się, że żaden z obiktów nie jest zablokowany i że wszystkie obiekty należą do Ciebie.
- </notification>
-
- <notification
-
- name="CannotLinkDifferentOwners"
- >
-Nie możesz połączyć obiektów ponieważ należą one do różnych osób.
-
-Upewnij sie, że wszystkie wybrane obiekty należą do Ciebie.
- </notification>
-
- <notification
-
- name="NoFileExtension"
- >
-Niepoprawna końcówka nazwy pliku: &apos;[FILE]&apos;
-
-Upewnij się, że nazwa pliku ma poprawaną końcówkę.
- </notification>
-
- <notification
-
- name="InvalidFileExtension"
- >
-Niepoprawna końcówka nazwy pliku - [EXTENSION]
-Oczekiwana - [VALIDS]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CannotUploadSoundFile"
- >
-Nie można otworzyć załadowanego pliku dźwiękowego:
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileNotRIFF"
- >
-Plik nie jest w formacie RIFF WAVE:
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileNotPCM"
- >
-Plik nie jest w formacie PCM WAVE:
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidChannelCount"
- >
-Plik zawiera niewłaściwą liczbę kanałów (musi być mono albo stereo):
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidSampleRate"
- >
-Plik zawiera niewłaścią częstotliwość (musi być 44.1k):
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidWordSize"
- >
-Plik zawiera niewłaściwą szerokość danych (musi być 8 albo 16 bitów):
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidHeader"
- >
-Brak bloku &apos;data&apos; w nagłówku pliku WAV:
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidTooLong"
- >
-Plik audio jest zbyt długi (10 sekund maksimum):
-[FILE]
- </notification>
-
-
-
- <notification
-
- name="CannotOpenTemporarySoundFile"
- >
-Nie można otworzyć tymczasowego skompresowango pliku dźwiękowego w celu zapisu: [FILE]
- </notification>
-
- <notification
-
- name="UnknownVorbisEncodeFailure"
- >
-Nieznany błąd kodowania Vorbis w: [FILE]
- </notification>
-
- <notification
-
- name="CorruptResourceFile"
- >
-Skorumpowany plik zasobów: [FILE]
- </notification>
-
- <notification
-
- name="UnknownResourceFileVersion"
- >
-Nieznana wersja pliku zasobów Linden w pliku: [FILE]
- </notification>
-
- <notification
-
- name="UnableToCreateOutputFile"
- >
-Nie można utworzyć pliku wyjściowego: [FILE]
- </notification>
-
- <notification
-
- name="DoNotSupportBulkAnimationUpload"
- >
-Ładowanie zbiorów plików animacji nie jest jeszcze dostępne.
- </notification>
-
- <notification
-
- name="CannotUploadReason"
- >
-Ładowanie pliku [FILE] nie powiodło się z powodu: [REASON]
-Spróbuj jeszcze raz póżniej.
- </notification>
-
- <notification
-
- name="CannotCreateLandmarkNotOwner"
- >
-Nie możesz zapamiętać tego miejsca (LM) ponieważ właściciel posiadłości nie pozwala na to.
- </notification>
-
- <notification
-
- name="CannotRecompileSelectObjectsNoScripts"
- >
-&apos;Rekompilacja&apos; nie powiodła się.
-
-Wybierz obiekty zawierające skrypty.
- </notification>
-
- <notification
-
- name="CannotRecompileSelectObjectsNoPermission"
- >
-&apos;Rekompilacja&apos; nie powiodła się.
-
-Wybierz skryptowane obiekty do których masz prawa modyfikacji.
- </notification>
-
- <notification
-
- name="CannotResetSelectObjectsNoScripts"
- >
-&apos;Resetowanie&apos; nie powiodło się.
-
-Wybierz obiekty zawierające skrypty.
- </notification>
-
- <notification
-
- name="CannotResetSelectObjectsNoPermission"
- >
-&apos;Resetowanie&apos; nie powiodło się.
-
-Wybierz skryptowane obiekty do których masz prawa modyfikacji.
- </notification>
-
- <notification
-
- name="CannotSetRunningSelectObjectsNoScripts"
- >
-&apos;Uruchomienie&apos; skryptów nie powiodło się.
-
-Wybierz obiekty zawierające skrypty.
- </notification>
-
- <notification
-
- name="CannotSetRunningNotSelectObjectsNoScripts"
- >
-&apos;Zatrzymanie&apos; skryptów nie powiodło się.
-
-Wybierz obiekty zawierające skrypty.
- </notification>
-
- <notification
-
- name="NoFrontmostFloater"
- >
-Brak górnego okna do zapisu.
- </notification>
-
- <notification
-
- name="SeachFilteredOnShortWords"
- >
-Twoje zapytanie wyszukiwania zostło zmienione - zbyt krótkie słowa zostały usunięte.
-
-Nowe zapytanie: [FINALQUERY]
- </notification>
-
- <notification
-
- name="SeachFilteredOnShortWordsEmpty"
- >
-Użyte terminy wyszukiwania były zbyt krótkie - wyszukiwanie zostało anulowane.
- </notification>
-
- <notification
-
- name="CouldNotTeleportReason"
- >
-Teleportacja nie powiodła się.
-[REASON]
- </notification>
-
- <notification
-
- name="CannotSetLandOwnerNothingSelected"
- >
-Nie można wybrać właściciela posiadłości.
-Posiadłość nie została wybrana.
- </notification>
-
- <notification
-
- name="CannotSetLandOwnerMultipleRegions"
- >
-Nie można wybrać właściciela posiadłości ponieważ wybrany obszar przekracza granicę regionów. Wybierz mniejszy obszar i spróbuj jeszcze raz.
- </notification>
-
- <notification
-
- name="ForceOwnerAuctionWarning"
- >
-Ta posiadłość jest wystawiona na aukcję. Wymuszenie własności anulue aukcję i potencjalnie może zdenerwować zainteresowanych Rezydentów, jeżeli licytacja już się rozpoczęła. Wymusić własność?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CannotContentifyNothingSelected"
- >
-Nie można sfinalizować:
-Posiadłość nie została wybrana.
- </notification>
-
- <notification
-
- name="CannotContentifyNoRegion"
- >
-Nie można sfinalizować:
-Region nie znaleziony.
- </notification>
-
- <notification
-
- name="CannotReleaseLandNothingSelected"
- >
-Nie można porzucić posiadłości:
-Posiadłość nie została wybrana.
- </notification>
-
- <notification
-
- name="CannotReleaseLandNoRegion"
- >
-Nie można porzucić posiadłości:
-Region nie znaleziony.
- </notification>
-
- <notification
-
- name="CannotBuyLandNothingSelected"
- >
-Nie można kupić posiadłości:
-Posiadłość nie została wybrana.
- </notification>
-
- <notification
-
- name="CannotBuyLandNoRegion"
- >
-Nie można kupić posiadłości:
-Region nie znaleziony.
- </notification>
-
- <notification
-
- name="CannotCloseFloaterBuyLand"
- >
-Dialog Kup Posiadłość nie może zostać zamknięty dopóki Second Life nie oszacuje ceny tej tranzakcji.
- </notification>
-
- <notification
-
- name="CannotDeedLandNothingSelected"
- >
-Nie można przekazać posiadłości:
-Posiadłość nie została wybrana.
- </notification>
-
- <notification
-
- name="CannotDeedLandNoGroup"
- >
-Nie można przekazać posiadłości:
-Grupa nie została wybrana.
- </notification>
-
- <notification
-
- name="CannotDeedLandNoRegion"
- >
-Nie można przekazać posiadłości:
-Region nie znaleziony.
-
-Zgłoś ten problem pod Pomoc &gt; Zgłoś Błędy Klienta
- </notification>
-
- <notification
-
- name="CannotDeedLandMultipleSelected"
- >
-Nie można przekazać posiadłości:
-Wiele posiadłości jest wybranych.
-
-Spróbuj wybrać pojedynczą posiadłość.
- </notification>
-
- <notification
-
- name="ParcelCanPlayMedia"
- >
-To miejsce może odtwarzać strumienie mediów.
-Odtwarzanie strumieni wymaga szybkiego połączenia do Internetu.
-
-Odtwarzać dostępne strumienie mediów?
-(Selekcja może zostać zmieniona póżniej pod Ustawienia &gt; Audio i Video.)
- <usetemplate
- name="okcancelbuttons"
- notext="Wyłącz"
- yestext="Odtwarzaj"/>
- </notification>
-
- <notification
-
- name="CannotDeedLandWaitingForServer"
- >
-Nie można przekazać posiadłości:
-Serwer aktualizuje dane własności.
-
-Spróbuj jeszcze raz póżniej.
- </notification>
-
- <notification
-
- name="CannotDeedLandNoTransfer"
- >
-Nie możesz przekazać posiadłości:
-Region [REGION] nie pozwala na transfer posiadłości.
- </notification>
-
- <notification
-
- name="CannotReleaseLandWatingForServer"
- >
-Nie można porzucić posiadłości:
-Serwer aktualizuje dane posiadłości.
-
-Spróbuj jeszcze raz póżniej.
- </notification>
-
- <notification
-
- name="CannotReleaseLandSelected"
- >
-Nie możesz porzucić posiadłości:
-Nie jesteś właścicielem wszystkich wybranych posiadłości.
-
-Wybierz pojedynczą posiadłość.
- </notification>
-
- <notification
-
- name="CannotReleaseLandDontOwn"
- >
-Nie możesz porzucić posiadłości:
-Nie masz praw do porzucenia tej posiadłości.
-
-Twoje posiadłości są podkreślone na zielono.
- </notification>
-
- <notification
-
- name="CannotReleaseLandRegionNotFound"
- >
-Nie można porzucić posiadłości:
-Region nie znaleziony.
-
-Zgłoś ten problem pod Pomoc &gt; Zgłoś Błędy Klienta
- </notification>
-
- <notification
-
- name="CannotReleaseLandNoTransfer"
- >
-Nie możesz porzucić posiadłości:
-Region [REGION] nie pozwala na transfer posiadłości.
- </notification>
-
- <notification
-
- name="CannotReleaseLandPartialSelection"
- >
-Nie można porzucić posiadłości:
-Musisz wybrać całą posiadłość by ją porzucić.
-Wybierz całą posiadłość albo najpierw ją podziel.
- </notification>
-
- <notification
-
- name="ReleaseLandWarning"
- >
-Porzucasz posiadłość o powierzchni [AREA] m².
-Porzucenie tej posiadłości usunie ją z Twoich własności.
-Nie otrzymasz za to żadnej opłaty.
-
-Porzucić posiadłość?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CannotDivideLandNothingSelected"
- >
-Nie można podzielić posiadłości:
-
-Posiadłość nie została wybrana.
- </notification>
-
- <notification
-
- name="CannotDivideLandPartialSelection"
- >
-Nie można podzielić posiadłości:
-
-Posiadłość została wybrana w całości.
-Spróbuj wybrać część posiadłości.
- </notification>
-
- <notification
-
- name="LandDivideWarning"
- >
-Podział tej posiadłości stworzy dwie posiadłości z których każda będzie mogła mieć indywidualne ustawienia.
-Niektóre ustawienia zostaną zmienione na domyślne po tej operacji.
-
-Podzielić posiadłość?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CannotDivideLandNoRegion"
- >
-Nie można podzielić posiadłości:
-Region nie znaleziony.
-
-Zgłoś ten problem pod Pomoc &gt; Zgłoś Błędy Klienta
- </notification>
-
- <notification
-
- name="CannotJoinLandNoRegion"
- >
-Nie można połączyć posiadłości:
-Region nie znaleziony.
-
-Zgłoś ten problem pod Pomoc &gt; Zgłoś Błędy Klienta
- </notification>
-
- <notification
-
- name="CannotJoinLandNothingSelected"
- >
-Nie można połączyć posiadłości:
-Posiadłości nie zostały wybrane.
- </notification>
-
- <notification
-
- name="CannotJoinLandEntireParcelSelected"
- >
-Nie można połączyć posiadłości:
-Tylko jedna posiadłość została wybrana.
-
-Wybierz obaszar usytuowany na obu posiadłościach.
- </notification>
-
- <notification
-
- name="CannotJoinLandSelection"
- >
-Nie można połączyć posiadłości:
-Musisz wybrać więcej niż jedną posiadłość.
-
-Wybierz obaszar usytuowany na obu posiadłościach.
- </notification>
-
- <notification
-
- name="JoinLandWarning"
- >
-Połączenie tego obszaru utworzy jedną większą posiadłość ze wszystkich posiadłości przecinających wybrany prostokąt. Nazwa i opcje posiadłości bedą musiały zostać skonfigurowane.
-
-Połączyć posiadłości?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmNotecardSave"
- >
-Ta notka musi być zapisana żeby mogła być skopiowana lub zobaczona. Zapisać notkę?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmItemCopy"
- >
-Skopiować ten obiekt do Twojej szafy?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="Skopiuj"/>
- </notification>
-
- <notification
-
- name="ResolutionSwitchFail"
- >
-Zmiana rozdzielczości do [RESX] x [RESY] nie powidła się
- </notification>
-
- <notification
-
- name="ErrorUndefinedGrasses"
- >
-Błąd: Niezdefiniowane trawy: [SPECIES]
- </notification>
-
- <notification
-
- name="ErrorUndefinedTrees"
- >
-Bład: Niezdefiniowane drzewa: [SPECIES]
- </notification>
-
- <notification
-
- name="CannotSaveWearableOutOfSpace"
- >
-Nie można zapisać &apos;[NAME]&apos; do pliku stroju. Musisz zwolnić trochę miejsca na Twoim komputerze i zapisać strój jeszcze raz.
- </notification>
-
- <notification
-
- name="CannotSaveToAssetStore"
- >
-Nie można zapisać [NAME] w centralnym zbiorze danych. Zazwyczaj jest to tymczasowy problem. Możesz kontynuować modyfikacje i zapisać strój ponownie za kilka minut.
-
-Jeżeli wciąż masz ten problem, wybierz Pomoc &gt; Zgłoś Błędy Klienta i podaj szczegóły dotyczące konfiguracji sieci.
- </notification>
-
- <notification
-
- name="YouHaveBeenLoggedOut"
- >
-Twoja sesja [SECOND_LIFE] została zakończona:
-[MESSAGE]
-
-Kliknij Kontynuuj żeby zobaczyć IMy i czat.
-Żadne inne operacje nie będą dozwolone. Kliknij Wyłącz w celu natychmiastowego opuszczenia [SECOND_LIFE].
- <usetemplate
- name="okcancelbuttons"
- notext="Wyłącz"
- yestext="Kontynuuj"/>
- </notification>
-
- <notification
-
- name="OnlyOfficerCanBuyLand"
- >
-Nie możesz kupić posiadłości dla grupy.
-Nie masz praw kupowania posiadłości dla Twojej aktywnej grupy.
- </notification>
-
- <notification
-
- label="Dodaj Znajomość"
- name="AddFriend"
- >
-Znajomi mogą pozwalać na odnajdywanie się wzajemnie na mapie i na otrzymywanie notyfikacji o logowaniu do [SECOND_LIFE].
-
-Zaproponować znajomość [NAME]?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Add Friend"
- name="AddFriendWithMessage"
- >
-Znajomi mogą pozwalać na odnajdywanie się wzajemnie na mapie i na otrzymywanie notyfikacji o logowaniu do [SECOND_LIFE].
-
-Zaproponować znajomość [NAME]?
- <form name="form">
- <input name="message" type="text">
-Chcesz zawrzeć znajomość?
- </input>
- <button
-
-
- name="Offer"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Anuluj"/>
- </form>
- </notification>
-
- <notification
-
- name="RemoveFromFriends"
- >
-Chcesz usunąć [FIRST_NAME] [LAST_NAME] z listy Twoich znajomych?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="RemoveMultipleFromFriends"
- >
-Chcesz usunąć grupę osób z listy Twoich znajomych?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GodDeleteAllScriptedPublicObjectsByUser"
- >
-Na pewno chcesz usunąć wszystkie skryptowane obiekty należące do
-** [AVATAR_NAME] **
-z posiadłości innych w tym symulatorze?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GodDeleteAllScriptedObjectsByUser"
- >
-Na pewno chcesz usunąć wszystkie skryptowane obiekty należące do
-** [AVATAR_NAME] **
-ze wszystkich posiadłości w tym symulatorze?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GodDeleteAllObjectsByUser"
- >
-Na pewno chcesz usunąć wszystkie obiekty (skryptowane i nie) należące do
-** [AVATAR_NAME] **
-ze wszystkich posiadłości w tym symulatorze?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BlankClassifiedName"
- >
-Musisz nadać tytuł Twojej reklamie.
- </notification>
-
- <notification
-
- name="MinClassifiedPrice"
- >
-Minimalna cena za publikację wynosi [MIN_PRICE]L$.
-
-Wybierz wyższą cenę.
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLock"
- >
-Przynajmnie jeden z wybranych obiektów jest zablokowany.
-
-Na pewno chcesz usunąć te obiekty?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteNoCopy"
- >
-Przynajmniej jeden z wybranych obiektów jest niekopiwalny.
-
-Na pewno chcesz usunąć te obiekty?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteNoOwn"
- >
-Przynajmniej jeden z wybranych obiektów nie należy do Ciebie.
-
-Na pewno chcesz usunąć te obiekty?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLockNoCopy"
- >
-Przynajmnie jeden z wybranych obiektów jest zablokowany.
-Przynajmniej jeden z wybranych obiektów jest niekopiwalny.
-
-Na pewno chcesz usunąć te obiekty?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLockNoOwn"
- >
-Przynajmnie jeden z wybranych obiektów jest zablokowany.
-Przynajmniej jeden z wybranych obiektów nie należy do Ciebie.
-
-Na pewno chcesz usunąć te obiekty?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteNoCopyNoOwn"
- >
-Przynajmniej jeden z wybranych obiektów jest niekopiwalny.
-Przynajmniej jeden z wybranych obiektów nie należy do Ciebie.
-
-Na pewno chcesz usunąć te obiekty?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLockNoCopyNoOwn"
- >
-Przynajmnie jeden z wybranych obiektów jest zablokowany.
-Przynajmniej jeden z wybranych obiektów jest niekopiwalny.
-Przynajmniej jeden z wybranych obiektów nie należy do Ciebie.
-
-Na pewno chcesz usunąć te obiekty?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectTakeLock"
- >
-Przynajmnie jeden obiekt jest zablokowany.
-
-Na pewno chcesz usunąć te obiekty?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectTakeNoOwn"
- >
-Przynajmniej jeden obiekt nie należy do Ciebie.
-Jeżeli będziesz kontynuować prawa następnego właściciela zostaną przypisane co, potencjalnie, może ograniczyć Twoje prawa do modyfikacji lub kopiowania obiektów.
-
-Na pewno chcesz wziąść te obiekty?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectTakeLockNoOwn"
- >
-Przynajmnie jeden obiekt jest zablokowany.
-Przynajmniej jeden obiekt nie należy do Ciebie.
-Jeżeli będziesz kontynuować prawa następnego właściciela zostaną przypisane co, potencjalnie, może ograniczyć Twoje prawa do modyfikacji lub kopiowania obiektów.
-
-Na pewno chcesz wziąść te obiekty?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CantBuyLandAcrossMultipleRegions"
- >
-Nie możesz kupić posiadłości ponieważ wybrany obszar przekracza granicę regionów.
-
-Wybierz mniejszy obszar i spróbuj jeszcze raz.
- </notification>
-
- <notification
-
- name="DeedLandToGroup"
- >
-Po przekazaniu tej posiadłości grupa będzia musiała mieć i utrzymywać wystarczający kredyt na używanie posiadłości. Cena zakupu posiadłości nie jest zwracana właścicielowi. Jeżeli przekazana posiadłość zostanie sprzedana, cana sprzedaży zostanie podzielona pomiędzy członków grupy.
-
-Przekazać tą posiadłość o powierzchni [AREA] m² grupie &apos;[GROUP_NAME]&apos;?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="DeedLandToGroupWithContribution"
- >
-Po przekazaniu tej posiadłości grupa będzia musiała mieć i utrzymywać wystarczający kredyt na używanie posiadłości. Przekazanie będzie zawierać równoczesne przypisanie posiadłości do grupy od &apos;[FIRST_NAME] [LAST_NAME]&apos;.
-Cena zakupu posiadłości nie jest zwracana właścicielowi. Jeżeli przekazana posiadłość zostanie sprzedana, cana sprzedaży zostanie podzielona pomiędzy członków grupy.
-
-Przekazać tą posiadłość o powierzchni [AREA] m² grupie &apos;[GROUP_NAME]&apos;?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="DisplaySetToSafe"
- >
-Ustawienia grafiki zostały zmienione do bezpiecznego poziomu ponieważ opcja -safe została wybrana.
- </notification>
-
- <notification
-
- name="DisplaySetToRecommended"
- >
-Ustawienia grafiki zostały zmienione do zalecanego poziomu na podstawie konfiguracji Twojego systemu.
- </notification>
-
- <notification
-
- name="ErrorMessage"
- >
-[ERROR_MESSAGE]
- </notification>
-
- <notification
-
- name="AvatarMoved"
- >
-Twoje miejsce [TYPE] jest obecnie niedostępne. [HELP]
-Przeniesiono Cię do pobliskiego regionu.
- </notification>
-
- <notification
-
- name="ClothingLoading"
- >
-Twoje ubranie wciąż się ładuje.
-Możesz normalnie używać [SECOND_LIFE], inni użytkownicy będą Cię widzieli poprawnie.
- <form name="form">
- <ignore name="ignore"
- text="Ładowanie ubrania zajmuje dużo czasu"/>
- </form>
- </notification>
-
- <notification
-
- name="FirstRun"
- >
-Instalacja [SECOND_LIFE] zakończona.
-
-Jeżeli używasz [SECOND_LIFE] po raz pierwszy to musisz stworzyć konto żeby móc się zalogować.
-Przejść na stronę www.secondlife.com żeby stworzyć nowe konto?
- <usetemplate
- name="okcancelbuttons"
- notext="Kontynuuj"
- yestext="Nowe Konto..."/>
- </notification>
-
- <notification
-
- name="LoginPacketNeverReceived"
- >
-Problemy z połączeniem. Problem może być spowodowany Twoim połączeniem z Internetem albo może istnieć po stronie serwerów Second Life.
-
-Możesz sprawdzić swoje połączenie z Internetem i spróbować ponownie za kilka minut albo kliknij Pomoc żeby połączyć się ze stroną pomocy technicznej albo wybierz Teleportuj żeby spróbować teleportacji do Twojego miejsca startu.
- <form name="form">
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Help"
- text="Pomoc"/>
- <button
-
- name="Teleport"
- text="Teleportuj"/>
- </form>
- </notification>
-
- <notification
-
- name="WelcomeChooseSex"
- >
-Twoja postać pojawi się za moment.
-
-Używaj strzałek żeby sie poruszać.
-Naciśnij F1 w dowolnej chwili po pomoc albo żeby dowiedzieć się więcej o [SECOND_LIFE].
-Wybierz awatara właściwej płci.
-Ten wybór będzie można później zmienić.
- <usetemplate
- name="okcancelbuttons"
- notext="Kobieta"
- yestext="Mężczyzna"/>
- </notification>
-
- <notification
-
- name="NotEnoughCurrency"
- >
-[NAME] [PRICE]L$ Masz za mało L$.
- </notification>
-
- <notification
-
- name="GrantedModifyRights"
- >
-Masz teraz prawa modyfikacji obiektów należących do [FIRST_NAME] [LAST_NAME].
- </notification>
-
- <notification
-
- name="RevokedModifyRights"
- >
-Prawa modyfikacji obiektów należących do [FIRST_NAME] [LAST_NAME] zostały Ci odebrane.
- </notification>
-
- <notification
-
- name="FlushMapVisibilityCaches"
- >
-To spowoduje wyczyszczenie buforów map regionu.
-Jest to użyteczne wyłącznie podczas szukania błędów.
-(Podczas produkcji poczekaj 5 minut i mapy wszystkich zostaną uaktualnione po relogu.)
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="OnlyCopyContentsOfSingleItem"
- >
-Nie można kopiować zawartości więcej niż jednego obiektu naraz.
-Wybierz pojedynczy obiekt i spróbuj jeszcze raz.
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="KickUsersFromRegion"
- >
-Teleportować wszystkich Rezydentów z tego regionu to ich miejsca startu?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="EstateObjectReturn"
- >
-Na pewno chcesz odesłać wszystkie obiekty należące do
-[USER_NAME] ?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="InvalidTerrainBitDepth"
- >
-Nie można ustawić tekstur regionu:
-Tekstura terenu [TEXTURE_NUM] ma niewłaściwą głębię koloru - [TEXTURE_BIT_DEPTH].
-Zamień teksturę [TEXTURE_NUM] na 24-o bitową teksturę o wymiarze 512x512 lub mniejszą i ponownie kliknij Zastosuj.
- </notification>
-
- <notification
-
- name="InvalidTerrainSize"
- >
-Nie można ustawić tekstur regionu:
-Tekstura terenu [TEXTURE_NUM] jest za duża - [TEXTURE_SIZE_X]x[TEXTURE_SIZE_Y].
-Zamień teksturę [TEXTURE_NUM] na 24-o bitową teksturę o wymiarze 512x512 lub mniejszą i ponownie kliknij Zastosuj.
- </notification>
-
- <notification
-
- name="RawUploadStarted"
- >
-Ładowanie rozpoczęte. Może potrwać do dwóch minut zależnie od prędkości Twojego połączenia.
- </notification>
-
- <notification
-
- name="ConfirmBakeTerrain"
- >
-Na pewno chcesz zapisać obecne ukształtowanie terenu jako punkt odniesienia dla górnego i dolnego limitu terenu i jako domyślą wartość dla opcji Odtwórz?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="MaxAllowedAgentOnRegion"
- >
-Maksimalna liczba gości wynosi [MAX_AGENTS].
- </notification>
-
- <notification
-
- name="MaxBannedAgentsOnRegion"
- >
-Maksimalna liczba nieporządanych Rezydentów (banów) wynosi [MAX_BANNED].
- </notification>
-
- <notification
-
- name="MaxAgentOnRegionBatch"
- >
-Próba dodania [NUM_ADDED] osób nie powidła się:
-[MAX_AGENTS] [LIST_TYPE] limit przekroczony o [NUM_EXCESS].
- </notification>
-
- <notification
-
- name="MaxAllowedGroupsOnRegion"
- >
-Możesz mieć maksymalnie [MAX_GROUPS] Dozwolonych Grup.
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="Ustal"/>
- </notification>
-
- <notification
-
- name="MaxManagersOnRegion"
- >
-Możesz mieć maksymalnie [MAX_MANAGER] Zarządców Majątku.
- </notification>
-
- <notification
-
- name="OwnerCanNotBeDenied"
- >
-Nie możesz dodać właściciela majątku do listy &apos;Nieporządanych Rezydentów (banów)&apos; majątku.
- </notification>
-
- <notification
-
- name="CanNotChangeAppearanceUntilLoaded"
- >
-Nie możesz zmienić wyglądu podczas ładowania ubrań i kształtów.
- </notification>
-
- <notification
-
- name="ClassifiedMustBeAlphanumeric"
- >
-Tytuł Twojej reklamy musi zaczynać się od litery (A-Z) albo cyfry. Znaki przestankowe są niedozwolone.
- </notification>
-
- <notification
-
- name="CantSetBuyObject"
- >
-Nie możesz wybrać Kup Obiekt ponieważ obiekt nie jest na sprzedaż.
-Wybierz obiekt na sprzedaż i spróbuj jeszcze raz.
- </notification>
-
- <notification
-
- name="FinishedRawDownload"
- >
-Plik surowego terenu załadowany pod:
-[DOWNLOAD_PATH].
- </notification>
-
- <notification
-
- name="DownloadWindowsMandatory"
- >
-Nowa wersja [SECOND_LIFE] została opublikowana.
-[MESSAGE]
-Musisz zainstalować nową wersję żeby używać [SECOND_LIFE].
- <usetemplate
- name="okcancelbuttons"
- notext="Wyłącz program"
- yestext="Załaduj"/>
- </notification>
-
- <notification
-
- name="DownloadWindows"
- >
-Uaktualniona wersja [SECOND_LIFE] została opublikowana.
-[MESSAGE]
-Aktualizacja nie jest wymagana ale jest zalecana w celu poprawy prędkości i stabilności.
- <usetemplate
- name="okcancelbuttons"
- notext="Kontynuuj"
- yestext="Załaduj"/>
- </notification>
-
- <notification
-
- name="DownloadWindowsReleaseForDownload"
- >
-Uaktualniona wersja [SECOND_LIFE] została opublikowana.
-[MESSAGE]
-Aktualizacja nie jest wymagana ale jest zalecana w celu poprawy prędkości i stabilności.
- <usetemplate
- name="okcancelbuttons"
- notext="Kontynuuj"
- yestext="Załaduj"/>
- </notification>
-
- <notification
-
- name="DownloadMacMandatory"
- >
-Nowa wersja [SECOND_LIFE] została opublikowana.
-[MESSAGE]
-Musisz zainstalować nową wersję żeby używać [SECOND_LIFE].
-
-Załadować do foldera Aplikacji?
- <usetemplate
- name="okcancelbuttons"
- notext="Wyłącz program"
- yestext="Załaduj"/>
- </notification>
-
- <notification
-
- name="DownloadMac"
- >
-Uaktualniona wersja [SECOND_LIFE] została opublikowana.
-[MESSAGE]
-Aktualizacja nie jest wymagana ale jest zalecana w celu poprawy prędkości i stabilności.
-
-Załadować do foldera Aplikacji?
- <usetemplate
- name="okcancelbuttons"
- notext="Kontynuuj"
- yestext="Załaduj"/>
- </notification>
-
- <notification
-
- name="DownloadMacReleaseForDownload"
- >
-Uaktualniona wersja [SECOND_LIFE] została opublikowana.
-[MESSAGE]
-Aktualizacja nie jest wymagana ale jest zalecana w celu poprawy prędkości i stabilności.
-
-Załadować do foldera Aplikacji?
- <usetemplate
- name="okcancelbuttons"
- notext="Kontynuuj"
- yestext="Załaduj"/>
- </notification>
-
- <notification
-
- name="DeedObjectToGroup"
- >
-Przekazanie tego obiektu spowoduje, że grupa:
-* Otrzyma L$ zapłacone temu obiektowi
- <usetemplate
- ignoretext="Przekazując obiekty grupom"
- name="okcancelignore"
- notext="Anuluj"
- yestext="Przekaż"/>
- </notification>
-
- <notification
-
- name="WebLaunchExternalTarget"
- >
-Otworzyć systemową przegłądarke żeby zobaczyć tą zawartość?
- <usetemplate
- ignoretext="Otwierając systemową przeglądarkę żeby zobaczyć stronę"
- name="okcancelignore"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchJoinNow"
- >
-Otworzyć stronę www.secondlife.com żeby zarządzać Twoim kontem?
- <usetemplate
- ignoretext="Otwierając systemową przeglądarkę żeby zarządzać Twoim kontem"
- name="okcancelignore"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchBugReport101"
- >
-Odwiedź [SECOND_LIFE] Wiki i zobacz jak zgłaszać błędy.
- <usetemplate
- ignoretext="Otwierając przeglądarkę żeby zobaczyć Wiki zgłaszania błędów"
- name="okcancelignore"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchSecurityIssues"
- >
-Odwiedź [SECOND_LIFE] Wiki i zobacz jak zgłaszać problemy z bezpieczeństwem danych.
- <usetemplate
- ignoretext="Otwierając przeglądarkę żeby zobaczyć Wiki kwestii bezpieczeństwa danych"
- name="okcancelignore"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchQAWiki"
- >
-Odwiedź [SECOND_LIFE] Wiki pytań i odpowiedzi.
- <usetemplate
- ignoretext="Otwierając przeglądarkę żeby zobaczyć Wiki pytań i odpowiedzi"
- name="okcancelignore"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchPublicIssue"
- >
-Odwiedź [SECOND_LIFE] katalog publicznych problemów, gdzie możesz zgłaszać błędy i inne problemy.
- <usetemplate
- ignoretext="Otwierając przeglądarkę żeby zobaczyć katalog publicznych problemów"
- name="okcancelignore"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchPublicIssueHelp"
- >
-Odwiedź [SECOND_LIFE] Wiki i sprawdź jak używać katalogu publicznych problemów.
- <usetemplate
- ignoretext="Otwierając przeglądarkę żeby zobaczyć Wiki katalogu publicznych problemów"
- name="okcancelignore"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchSupportWiki"
- >
-Otwórz oficjalny blog Lindenów żeby zobaczyć nowe widaomości i informacje.
- <usetemplate
- ignoretext="Otwierając przeglądarkę żeby zobaczyć blog"
- name="okcancelignore"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchLSLGuide"
- >
-Otworzyć przewodnik skryptowania po pomoc ze skryptami?
- <usetemplate
- ignoretext="Otwierając przeglądarkę żeby zobaczyć przewodnik skryptowania"
- name="okcancelignore"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchLSLWiki"
- >
-Otworzyć portal LSL po pomoc ze skryptami?
- <usetemplate
- ignoretext="Otwierając przeglądarkę żeby zobaczyć portal LSL"
- name="okcancelignore"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnToOwner"
- >
-Czy na pewno chcesz zwrócić wybrane obiekty do ich właścicieli? Wszystkie udostępnione obiekty z prawem transferu zostaną zwrócone poprzednim właścicielom.
-
-*UWAGA* Wszystkie udostępnione obiekty bez prawa transferu zostaną usunięte!
- <usetemplate
- ignoretext="Zwracając obiekty ich właścicielom"
- name="okcancelignore"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GroupLeaveConfirmMember"
- >
-Jesteś członkiem grupy [GROUP].
-Chcesz opuścić grupę?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmKick"
- >
-NA PEWNO chcesz wyrzucić wszystkich użytkowników z sieci?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="Wyrzuć Wszystkich Użytkowników"/>
- </notification>
-
- <notification
-
- name="MuteLinden"
- >
-Przepraszamy, ale nie możesz wyciszyć Lindena.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Błąd Wyciszenia Obiektu Przez Nazwę"
- name="MuteByNameFailed"
- >
-Ta osoba została już wyciszona przez Ciebie.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="RemoveItemWarn"
- >
-Pomimo, że jest to dozwolone, usunięcie zawartości może zniszczyć obiekt. Chcesz usunąć?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CantOfferCallingCard"
- >
-Nie możesz dać wizytówki w tym momencie. Spróbuj jeszcze raz za chwilę.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CantOfferFriendship"
- >
-Nie możesz zaoferować znajomości w tym momencie. Spróbuj jeszcze raz za chwilę.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BusyModeSet"
- >
-Tryb Pracy jest włączony.
-Czat i IMy bedą ukryte. Wysłane IMy będą otrzymywały Twoją odpowiedź Trybu Pracy. Propozycje teleportacji będą odrzucone.
-Podarowane obiekty trafią do Twojego śmietnika.
- <usetemplate
- ignoretext="Włączając Tryb Pracy"
- name="okignore"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="JoinedTooManyGroupsMember"
- >
-Należysz już do maksymalnej ilości grup.
-Musisz opuścić przynajmniej jedną grupę żeby przyjąć członkostwo w tej grupie, albo musisz odmówić. W celu opuszczenia grupy wybierz opcję &apos;Grupy...&apos; z menu &apos;Edycja&apos;.
-[NAME] oferuje Ci członkostwo w grupie.
-[INVITE]
- <usetemplate
- name="okcancelbuttons"
- notext="Odmów"
- yestext="Przyjmij"/>
- </notification>
-
- <notification
-
- name="KickUser"
- >
-Z jakim komunikatem wyrzucić tego użytkownia?
- <form name="form">
- <input name="message" type="text">
-Administrator wylogował Cię.
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Anuluj"/>
- </form>
- </notification>
-
- <notification
-
- name="KickAllUsers"
- >
-Z jakim komunikatem wyrzucić wszystkich użytkowników z sieci?
- <form name="form">
- <input name="message" type="text">
-Administrator wylogował Cię.
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Anuluj"/>
- </form>
- </notification>
-
- <notification
-
- name="FreezeUser"
- >
-Z jakim komunikatem unieruchomić tego użytkownia?
- <form name="form">
- <input name="message" type="text">
-Unieruchomiono Cię. Nie możesz się ruszać ani rozmawiać. Administrator skontaktuje się z Tobą poprzez IM.
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Anuluj"/>
- </form>
- </notification>
-
- <notification
-
- name="UnFreezeUser"
- >
-Z jakim komunikatem odblokować tego użytkownia?
- <form name="form">
- <input name="message" type="text">
-Odblokowano Cię.
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Anuluj"/>
- </form>
- </notification>
-
- <notification
-
- name="OfferTeleport"
- >
-Zaproponować teleportację do miejsca Twojego pobytu z tą wiadomością?
- <form name="form">
- <input name="message" type="text">
-Zapraszam do siebie. Region: [REGION]
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Anuluj"/>
- </form>
- </notification>
-
- <notification
-
- name="OfferTeleportFromGod"
- >
-Wymusić przeniesienie użytkownika do miejsca Twojego pobytu?
- <form name="form">
- <input name="message" type="text">
-Zapraszam do siebie. Region: [REGION]
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Anuluj"/>
- </form>
- </notification>
-
- <notification
-
- name="TeleportFromLandmark"
- >
-Na pewno chcesz się teleportować?
- <usetemplate
- ignoretext="Teleportując z miejsca (LM) z Twojej szafy"
- name="okcancelignore"
- notext="Anuluj"
- yestext="Teleportuj"/>
- </notification>
-
- <notification
-
- label="Wiadomość do Wszystkich w Twoim Majątku"
- name="MessageEstate"
- >
-Wpisz krótką wiadomość która zostanie wysłana do wszystkich osób w Twoim majątku.
- <form name="form">
- <input name="message" type="text"/>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Anuluj"/>
- </form>
- </notification>
-
- <notification
-
- label="Zmiana Majątku Lindenów"
- name="ChangeLindenEstate"
- >
-Zmieniasz majątek należący do Lindenów (główny obszar, sieć nastolatków, przedszkole, itd).
-
-Jest to BARDZO NIEBEZPIECZNE ponieważ może drastycznie zmienić percepcję użytkowników. W głównym obszarze tysiące regionów zostanie zmienione i spowoduje chwilowe problemy serwera przestrzeni.
-
-Kontynuować?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Zmiana Dostępu do Majątku Lindenów"
- name="ChangeLindenAccess"
- >
-Zmieniasz listę dostępu do majątku należącego do Lindenów (główny obszar, sieć nastolatków, przedszkole, itd).
-
-Jest to NIEBEZPIECZNE i powinno być używane wyłącznie w celu uruchomienia opcji pozwalającej na przeniesienie obiektów/L$ do/z sieci.
-Tysiące regionów zostanie zmienione i spowoduje chwilowe problemy serwera przestrzeni.
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Wybierz Majątek"
- name="EstateAllowedAgentAdd"
- >
-Dodać do listy dostępu do tego majątku czy do [ALL_ESTATES]?
- <usetemplate
- canceltext="Anuluj"
- name="yesnocancelbuttons"
- notext="Wszystkie majątki"
- yestext="Ten majątek"/>
- </notification>
-
- <notification
-
- label="Wybierz Majątek"
- name="EstateAllowedAgentRemove"
- >
-Usunąć z listy dostępu do tego majątku czy do [ALL_ESTATES]?
- <usetemplate
- canceltext="Anuluj"
- name="yesnocancelbuttons"
- notext="Wszystkie majątki"
- yestext="Ten majątek"/>
- </notification>
-
- <notification
-
- label="Wybierz Majątek"
- name="EstateAllowedGroupAdd"
- >
-Dodać do listy dostępu grup do tego majątku czy do [ALL_ESTATES]?
- <usetemplate
- canceltext="Anuluj"
- name="yesnocancelbuttons"
- notext="Wszystkie majątki"
- yestext="Ten majątek"/>
- </notification>
-
- <notification
-
- label="Wybierz Majątek"
- name="EstateAllowedGroupRemove"
- >
-Usunąć z listy dostępu grup do tego majątku czy do [ALL_ESTATES]?
- <usetemplate
- canceltext="Anuluj"
- name="yesnocancelbuttons"
- notext="Wszystkie majątki"
- yestext="Ten majątek"/>
- </notification>
-
- <notification
-
- label="Wybierz Majątek"
- name="EstateBannedAgentAdd"
- >
-Zablokować dostęp do tego majątku czy do [ALL_ESTATES]?
- <usetemplate
- canceltext="Anuluj"
- name="yesnocancelbuttons"
- notext="Wszystkie majątki"
- yestext="Ten majątek"/>
- </notification>
-
- <notification
-
- label="Wybierz Majątek"
- name="EstateBannedAgentRemove"
- >
-Zdjąć tego Rezydenta z listy niepożądanych (bany) dla tego majątku czy dla [ALL_ESTATES]?
- <usetemplate
- canceltext="Anuluj"
- name="yesnocancelbuttons"
- notext="Wszystkie majątki"
- yestext="Ten majątek"/>
- </notification>
-
- <notification
-
- label="Wybierz Majątek"
- name="EstateManagerAdd"
- >
-Dodać zarządce majątku do tego majątku czy do [ALL_ESTATES]?
- <usetemplate
- canceltext="Anuluj"
- name="yesnocancelbuttons"
- notext="Wszystkie majątki"
- yestext="Ten majątek"/>
- </notification>
-
- <notification
-
- label="Wybierz Majątek"
- name="EstateManagerRemove"
- >
-Usunąć zarządce majątku z tego majątku czy z [ALL_ESTATES]?
- <usetemplate
- canceltext="Anuluj"
- name="yesnocancelbuttons"
- notext="Wszystkie majątki"
- yestext="Ten majątek"/>
- </notification>
-
- <notification
-
- label="Potwierdź Wyrzucenie"
- name="EstateKickUser"
- >
-Wyrzucić [EVIL_USER] z tego majątku?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="EstateChangeCovenant"
- >
-Na pewno chcesz zminić treść umowy dla tego majątku?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ProblemImportingEstateCovenant"
- >
-Problem z importem umowy majątku.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ProblemAddingEstateManager"
- >
-Problemy z dodawaniem nowego zarządcy majątku. Jeden lub więcaj majątk może mieć wypełnioną listę zarządców.
- </notification>
-
- <notification
-
- name="ProblemAddingEstateGeneric"
- >
-Problemy z dodawaniem do listy majątku. Jeden lub więcaj majątk może mieć wypełnioną listę.
- </notification>
-
- <notification
-
- name="UnableToLoadNotecard"
- >
-Nie można załadować danych notki w tym momencie.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="NotAllowedToViewNotecard"
- >
-Niewystarczające prawa do zobaczenia notki przypisanej do wybranego ID.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="MissingNotecardAssetID"
- >
-ID notki nie znalezione w bazie danych.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="PublishClassified"
- >
-Pamiętaj: Opłaty za reklamę są bezzwrotne.
-
-Zamieścić tą reklamę za [AMOUNT]L$?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
-
-
-
-
- <notification
-
- label="Potwierdź Restart"
- name="ConfirmRestart"
- >
-Na pewno chcesz zrobić restart tego regionu za 2 minuty?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Wiadomość do Wszystkich w tym Regionie"
- name="MessageRegion"
- >
-Wpisz krótką wiadomość która zostanie wysłana do wszystkich osób w tym regionie.
- <form name="form">
- <input name="message" type="text"/>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Anuluj"/>
- </form>
- </notification>
-
- <notification
-
- label="Blokowanie Kształtowania Terenu"
- name="HelpRegionBlockTerraform"
- >
-Jeżeli ta opcja jest wybrana właściciele posiadłości nie będą mogli kształtować terenu niezależnie od ustawienia opcji &apos;Edycja Terenu&apos; dla posiadłości.
-
-Domyślnie: nie wybrana
- </notification>
-
- <notification
-
- label="Blokowanie Latania"
- name="HelpRegionBlockFly"
- >
-Jeżeli ta opcja jest wybrana ludzie nie będą mogli latać w tym regionie niezależnie od ustawienia opcji &apos;Latanie&apos; dla posiadłości.
-
-Domyślnie: nie wybrana
- </notification>
-
- <notification
-
- label="Zezwalanie na Uszkodzenia"
- name="HelpRegionAllowDamage"
- >
-Jeżeli ta opcja jest wybrana system zdrowia będzie aktywny we wszystkich posiadłościach niezależnie od ustawień dla indywidualnych posiadłości. Jeżeli ta opcja nie jest wybrana właściciele indywidualych posiadłości będą mogli kontrolować system zdrowia w swoich posiadłościach.
-
-Domyślnie: nie wybrana
- </notification>
-
- <notification
-
- label="Limit Liczby Awatarów"
- name="HelpRegionAgentLimit"
- >
-Wybierz maksymalną liczbę awatarów dozwoloną w tym regionie.
-Wydajność systemu może się zmieniać w zależności od liczby obecnych awatarów.
-
-Domyślnie: 40
- </notification>
-
- <notification
-
- label="Ekstra Obiekty"
- name="HelpRegionObjectBonus"
- >
-Ekstra Obiekty jest to mnożnik dla dozwolonych elementów (obiektów prostych). Dozwolony zakres to 1 do 10. Ustawienie &apos;1&apos; pozwala na 117 elementów na każdej posiadłości o powierzchni 512m. Ustawienie &apos;2&apos; pozwala na 234 elementy, czyli dwa razy tyle, itd.
-Maksymalna liczba elementów w regionie to 15000 niezależnie od ustawienia Ekstra Obiektów. Pamiętaj - zmniejszenie Ekstra Obiektów po fakcie może spowodować odsyłanie lub usuwanie istniejących obiektów.
-
-Domyślnie: 1,0
- </notification>
-
-
-
- <notification
-
- label="Blokowanie Popychania"
- name="HelpRegionRestrictPushObject"
- >
-Ta opcja powoduje, że popychanie będzie ograniczone w całym regionie. Jeżeli ta opcja jest wybrana Rezydenci mogą być popchnięci tylko przez samych siebie lub przez właściciela posiadłości.
-(Popychanie odnosi sie do funkcji llPushObject() w LSL.)
-
-Domyślnie: nie wybrana
- </notification>
-
- <notification
-
- label="Dzielenie / Łączenie Posiadłości"
- name="HelpParcelChanges"
- >
-Ta opcja kontroluje czy posiadłości nie należące do właściciela tego majątku mogą być łączone / dzielone.
-Jeżeli opcja nie jest wybrana:
-* Tylko właściciele majątku i zarządcy mogą łączyć / dzielić posiadłości.
-* Tylko posiadłości należące do właściciela albo do grupy mogą być
- łączone / dzielone przez członków z wystarczającymi prawami.
-Jeżeli ta opcja jest wybrana:
-* Wszyscy właściciele mogą łączyć / dzielić swoje posiadłości.
-* Posiadłości należące do grupy mogą być łączone / dzielone
- przez członków z wystarczającymi prawami.
-
-Domyślnie: wybrana
- </notification>
-
- <notification
-
- label="Nie Pokazuj w Wyszukiwaniu"
- name="HelpRegionSearch"
- >
-Wybranie tej opcji uniemożliwi właścicielom posiadłość wyświetlanie ich posiadłości w wyszukiwaniu
-Domyślinie: nie wybrana
- </notification>
-
- <notification
-
- label="Zmienione Restrykcje Wieku dla Regionu"
- name="RegionMaturityChange"
- >
-Ustawienie restrykcji wieku dla regionu zostało zmienione.
-Zazwyczaj musi upłynąć nieco czasu zanim ta zmiana zostanie odzwierciedlona na mapie.
- </notification>
-
- <notification
-
- label="Odsprzedaż Posiadłości"
- name="HelpRegionLandResell"
- >
-Właściciele majątku i zarządcy mogą sprzedawać posiadłości należące do właściciela majątku.
-Jeżeli ta opcja nie jest wybrana kupujący nie będą mogli odsprzedać posiadłości w tym regionie.
-Jeżeli ta opcja jest wybrana kupujący będą mogli odsprzedać posiadłości w tym regionie.
-
-Domyślinie: nie pozwalaj
- </notification>
-
- <notification
-
- label="Wyłącz Skrypty"
- name="HelpRegionDisableScripts"
- >
-Słaba wydajność / prędkość symulatora może być spowodowana przez skrypt. Otwórz panel Statystyki (Ctrl-Shift-1). Sprawdź ilość klatek na sekundę (FPS) w Fizyce Symulatora. Jeżeli jest mniej niż 45 wybierz panel Czas znajdujący się na dole panelu Statystyki. Jeżeli Czas Skryptów wynosi 25 ms lub więcej kliknij na Główne Skrypty. Zobaczysz listę nazw i lokacji skryptów które mogą być odpowiedzialne za pogorszenie wydajności.
-
-Wybranie opcji Wyłącz Skrypty i naciśnięcie Zastosuj tymczasowo wyłączy wszystkie skrypty w tym regionie. Wybranie tej opcji może być niezbędne w celu umożliwienia podróży do lokacji wymienionego Głównego Skryptu.
-Po przebyciu na miejsce zobacz skrypt i sprawdź czy jest on źródłem problemu. W razie potrzeby skontaktuj się z właścicielem skryptu albo usuń lub zwróć obiekt.
-Wyłączenie opcji Wyłącz Skrypty i naciśnięcie Zastosuj ponownie włączy skrypty w tym regionie.
-
-Domyślnie: nie wybrana
- </notification>
-
- <notification
-
- label="Wyłącz Kolizje"
- name="HelpRegionDisableCollisions"
- >
-Słaba wydajność / prędkość symulatora może być spowodowana przez fizyczne obiekty. Otwórz panel Statystyki (Ctrl-Shift-1). Sprawdź ilość klatek na sekundę (FPS) w Fizyce Symulatora. Jeżeli jest mniej niż 45 wybierz panel Czas znajdujący się na dole panelu Statystyki. Jeżeli Czas Symulatora (Fizyka) wynosi 20 ms lub więcej kliknij na Główne Kolizje. Zobaczysz listę nazw i lokacji fizycznych obiektów które mogą być odpowiedzialne za pogorszenie wydajności.
-
-Wybranie opcji Wyłącz Kolizje i naciśnięcie Zastosuj tymczasowo wyłączy kolizje obiektów. Wybranie tej opcji może być niezbędne w celu umożliwienia podróży do lokacji wymienionych Główneych Kolizji.
-Po przebyciu na miejsce zobacz obiekt i sprawdź czy jest on źródłem kolizji z innymi obiektami. W razie potrzeby skontaktuj się z właścicielem obiektu albo usuń lub zwróć obiekt.
-Wyłączenie opcji Wyłącz Kolizje i naciśnięcie Zastosuj ponownie włączy kolizje w tym regionie.
-
-Domyślnie: nie wybrana
- </notification>
-
- <notification
-
- label="Wyłącz Fizykę"
- name="HelpRegionDisablePhysics"
- >
-Opcja Wyłącz Fizykę jest podobna do opcji Wyłącz Kolizje i spowoduje wyłączenie symulacji fizyki. Oznacza to, że nie tylko obiekty przestaną się zderzać, ale również awatary nie będą się mogły poruszać.
-
-Ta opcja powinna być używana wyłącznie w przypadku kiedy użycie opcji Wyłącz Kolizje nie zwiększa wystarczająco wydajności symulatora w celu sprawdzenia problemów związanych z fizyką i z kolizjami.
-
-Po zakończeniu badań musisz ponownie włączyć fizykę żeby awatary mogły się poruszać.
-
-Domyślnie: nie wybrana
- </notification>
-
- <notification
-
- label="Główne Kolizje"
- name="HelpRegionTopColliders"
- >
-Pokaż listę obiektów potencjalnie doświadczających największej ilości kolizji między obiektami. Te obiekty mogą być odpowiedzialne za zmniejszenie wydajności. Wybierz Widok &gt; Statystyki i zobacz Symulator &gt; Czas &gt; Czas Symulatora (Fizyka) i sprawdź czy więcej niż 20 ms jest spędzane w fizyce.
- </notification>
-
- <notification
-
- label="Główne Skrypty"
- name="HelpRegionTopScripts"
- >
-Pokaż listę obiektów spędzających najwęcej czasu wykonując skrypty LSL. Te obiekty mogą być odpowiedzialne za zmniejszenie wydajności. Wybierz Widok &gt; Statystyki i zobacz Symulator &gt; Czas &gt; Czas Skryptów i sprawdź czy więcej niż 25 ms jest spędzane w skryptach.
- </notification>
-
- <notification
-
- label="Restart Regionu"
- name="HelpRegionRestart"
- >
-Restart procesu na serwerze obsługującym ten region za dwie minuty. Wszyscy Rezydenci w tym regionie zostaną wylogowani. Region zapisze swoje dane i powinien wystartować w przeciągu 90 sekund.
-
-Restart regionu nie naprawi większości problemów związanych z wydajnością / prędkością i generalnie powinnien być używany na polecenie.
- </notification>
-
- <notification
-
- label="Poziom Wody"
- name="HelpRegionWaterHeight"
- >
-Jest to poziom w metrach gdzie pojawia się woda. Jeżeli jest wybrana inna wartość niż 20 i Twoja woda sąsiaduje z krawędzią świata lub pustym miejscem to będzie widoczny uskok.
-
-Domyślnie: 20
- </notification>
-
- <notification
-
- label="Wznoszenie Terenu"
- name="HelpRegionTerrainRaise"
- >
-Jest to dystans w metrach o który właściciele posiadłości mogą podnieść teren powyżej ustalonego poziomu odniesienia.
-
-Domyślnie: 4
- </notification>
-
- <notification
-
- label="Obniżanie Terenu"
- name="HelpRegionTerrainLower"
- >
-Jest to dystans w metrach o który właściciele posiadłości mogą obniżyć teren poniżej ustalonego poziomu odniesienia.
-
-Domyślnie: -4
- </notification>
-
- <notification
-
- label="Ładowanie RAW Terenu"
- name="HelpRegionUploadRaw"
- >
-Ten przycisk ładuje plik .RAW dla tego regionu.
-Plik musi mieć poprawne wymiary (RGB, 256x256) i 13 kanałów.
-Najprostszy sposób na stworzenie pliku terenu to zapisanie istniejącego pliku RAW. Zalecany pierwszy krok to modyfikacje kanału czerwieni (wysokość terenu) i ładowanie nowego pliku.
-
-Ładowanie pliku może zająć 45 sekund. Załadowanie terenu nie przemieści obiektów znajdujących się na tym terenie, tylko teren i prawa przypisane do posiadłości ulegną zmianie. Może to spowodować, że niektóre obiekty znikną pod ziemią.
-
-Aby uzyskać więcej informacji o edycji map wysokości sprawdź F1 Pomoc.
- </notification>
-
- <notification
-
- label="Zapisywanie RAW Terenu"
- name="HelpRegionDownloadRaw"
- >
-Ten przycisk zapisuje plik zawierający mapę wysokości, wymiary posiadłości, dane o posiadłościach na sprzedaż i niektóre prawa przypisane do posiadłości w tym regionie. Jeżeli otwierasz ten plik w programie takim jak Photoshop musisz zdefniować wymiary dokumentu jako: RGB, 256x256, 13 kanałów. Ten plik terenu nie może zostać otwarty w żaden inny sposób.
-
-Aby uzyskać więcej informacji o edycji map wysokości sprawdź F1 Pomoc.
- </notification>
-
- <notification
-
- label="Używaj Słońca Majątku"
- name="HelpRegionUseEstateSun"
- >
-Ta opcja ustala pozycję słońca w tym regionie żeby była taka sama jak pozycja słońca w reszcie majątku.
-
-Domyślnie: włączona
- </notification>
-
- <notification
-
- label="Stałe Słońce"
- name="HelpRegionFixedSun"
- >
-Ta opcja ustala pozycję słońca do pozycji w suwaku faz i unieruchamia słońce w wybranej pozycji.
-
-Domyślnie: nie włączona
- </notification>
-
- <notification
-
- label="Ustalanie Terenu"
- name="HelpRegionBakeTerrain"
- >
-Ten przycisk zapisuje obecne ukształtowanie terenu jako nowy punkt odniesienia dla regionu. Po ustaleniu punktu odniesienia teren może zostać odtworzony do zapisanego kształtu wybierając opcję Odtwórz w Edycji Terenu. Zapisany, ustalony teren jest również punktem odniesienia dla górnego i dolnego limitu zmian wysokości.
- </notification>
-
- <notification
-
- label="Zarządcy Majątku"
- name="HelpEstateEstateManager"
- >
-Zarządca majątku jest Rezydentem oddelegowanym przez Ciebie do kontroli ustawień regionu i majątku. Zarządca majątku może zmieniać wszystkie ustawienia dostępne na tym panelu, za wyjątkiem ładowania, zapisywania i ustalania terenu. W szczgólności może kontrolować dostęp innych Rezydentów (bany) do Twojego majątku.
-
-Zarządcy majątku mogą być dodawani i usuwani wyłącznie przez właściciela majątku. Wybieraj na zarządców tylko tych Rezydentów którym ufasz ponieważ ponosisz odpowiedzialność za ich działania.
- </notification>
-
- <notification
-
- label="Używaj Globalnego Czasu"
- name="HelpEstateUseGlobalTime"
- >
-Ta opcja ustala pozycję słońca w Twoim majątku żeby była taka sama jak pozycja słońca w regionach głównych należących do Lindenów.
- </notification>
-
- <notification
-
- label="Stałe Słońce"
- name="HelpEstateFixedSun"
- >
-Ta opcja ustala pozycję słońca do pozycji w suwaku faz i unieruchamia słońce w wybranej pozycji.
- </notification>
-
- <notification
-
- label="Dostęp Publiczny"
- name="HelpEstateExternallyVisible"
- >
-Ta opcja kontroluje czy Rezydenci znajdujący się w innych majątkach mogą przenosić się do tego majątku jeżeli nie są umieszczeni na liście dostępu.
-
-Domyślnie: włączona
- </notification>
-
- <notification
-
- label="Pozwalaj na Bezpośrednią Teleportację"
- name="HelpEstateAllowDirectTeleport"
- >
-Włączenie tej opcji pozwala Rezydentom na bezpośrednią teleportację do dowolnego miejsca a Twoim majątku. Jeżeli ta opcja nie jest wyłączona Rezydenci mogą się teleportować do najbliższego teleportera.
-
-Domyślnie: nie włączona
- </notification>
-
- <notification
-
- label="Dostęp do Majątku"
- name="HelpEstateAllowResident"
- >
-Dostęp do tego majątku będzie ograniczony do wymienionych Rezydentów i poniższych grup. Ta opcja jest dostępna tylko wtedy kiedy opcja Dostępu Publicznego jest wyłączona.
- </notification>
-
- <notification
-
- label="Dostęp Grup do Majątku"
- name="HelpEstateAllowGroup"
- >
-Dostęp do tego majątku będzie ograniczony do wymienionych grup i powyższych Rezydentów. Ta opcja jest dostępna tylko wtedy kiedy opcja Dostępu Publicznego jest wyłączona.
- </notification>
-
- <notification
-
- label="Email o Nadużyciach"
- name="HelpEstateAbuseEmailAddress"
- >
-Wpisanie ważnego email adresu spowoduje, że raporty o nadużyciach w obrębie tego majątku będą wysyłane na ten adres. Zostawienie pustego miejsca spowoduje, że raporty o nadużyciach będą wysyłane wyłącznie do Linden Lab.
- </notification>
-
- <notification
-
- label="Wstęp Wzbroniony (bany)"
- name="HelpEstateBanResident"
- >
-Rezydenci umieszczeni na tej liście nie mają dostępu do Twojego majątku, niezależnie od jakichkolwiek innych ustawień.
- </notification>
-
- <notification
-
- label="Pozwalaj na Rozmowy"
- name="HelpEstateVoiceChat"
- >
-Posiadłości w tym majątku mogą mieć własne kanały głosu pozwalające Rezydentom na rozmowy z osobami w pobliżu.
-
-Domyślnie: nie włączone
- </notification>
-
- <notification
-
- label="Wersja Niezgodna z Systemem Rozmów"
- name="VoiceVersionMismatch"
- >
-Ta wersja Second Life nie jest kompatybilna z systemem Rozmów w tym regionie. Musisz zainstalować aktualną wersję Second Life żeby Rozmowy działały porawnie.
- </notification>
-
- <notification
-
- label="Umowa Majątku"
- name="HelpEstateCovenant"
- >
-Włączenie opcji umowy majątku jest wymagane w celu umożliwienia sprzedaży posiadłości w obrębie majątku.
-Jeżeli opcja umowy nie jest wybrana sprzedaż posiadłości nie jest dozwolona. Notka określająca Twoją umowę może być pusta jeżeli nie chcesz ustalić zasad specyficznych dla Twojego majątku i jeżeli nie chcesz uprzedzać nabywców o faktach odnoszących się do posiadłości przed zakupem.
-
-Umowa może być używana w celu określenia zasad, zaleceń, przekazywania informacji o kulturze lub, po prostu, Twoich własnych oczekiwań w odniesieniu do potencjalnego nabywacy.
-Możesz zdefiniować zasady podziału posidłości, prawa budowlane, zasady opłat i wszystkie dodatkowe informacje z którymi nowy właściciel powinien zapoznać się i zaakceptować przed zakupem.
-
-Nabywca musi wybrać opcję akceptacji umowy żeby trasakcja mogła zostać sfinalizowana. Umowa majątku jest zawsze dostępna w dialogu O Posiadłości dla każedej posiadłości ze zdefinowaną umową.
- </notification>
-
- <notification
-
- label="Nie Można Kupić Obiektów"
- name="BuyObjectOneOwner"
- >
-Jednorazowo możesz kupować tylko od jednego właściciela.
-Wybierz pojedynczy obiekt i spróbuj jeszcze raz.
- </notification>
-
- <notification
-
- label="Nie Można Kupić Zawartości"
- name="BuyContentsOneOnly"
- >
-Jednorazowo możesz kupić zawartość tylko jednego obiektu.
-Wybierz pojedynczy obiekt i spróbuj jeszcze raz.
- </notification>
-
- <notification
-
- label="Nie Można Kupić Zawartości"
- name="BuyContentsOneOwner"
- >
-Jednorazowo możesz kupować tylko od jednego właściciela.
-Wybierz pojedynczy obiekt i spróbuj jeszcze raz.
- </notification>
-
- <notification
-
- name="BuyOriginal"
- >
-Kupić oryginalny obiekt od [OWNER] za [PRICE]L$?
-Zostaniesz właścicielem tego obiektu z następującymi prawami:
- Modyfikacje: [MODIFYPERM]
- Kopiowanie: [COPYPERM]
- Odsprzedawanie i Oddawanie: [RESELLPERM]
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyOriginalNoOwner"
- >
-Kupić oryginalny obiekt za [PRICE]L$?
-Zostaniesz właścicielem tego obiektu z następującymi prawami:
- Modyfikacje: [MODIFYPERM]
- Kopiowanie: [COPYPERM]
- Odsprzedawanie i Oddawanie: [RESELLPERM]
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyCopy"
- >
-Kupić kopię obiektu od [OWNER] za [PRICE]L$?
-Obiekt zostanie skopiowany do Twojej szafy z następującymi prawami:
- Modyfikacje: [MODIFYPERM]
- Kopiowanie: [COPYPERM]
- Odsprzedawanie i Oddawanie: [RESELLPERM]
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyCopyNoOwner"
- >
-Kupić kopię obiektu za [PRICE]L$?
-Obiekt zostanie skopiowany do Twojej szafy z następującymi prawami:
- Modyfikacje: [MODIFYPERM]
- Kopiowanie: [COPYPERM]
- Odsprzedawanie i Oddawanie: [RESELLPERM]
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyContents"
- >
-Kupić zawartość od [OWNER] za [PRICE]L$?
-Zawartość zostanie skopiowana do Twojej szafy.
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BuyContentsNoOwner"
- >
-Kupić zawartość za [PRICE]L$?
-Zawartość zostanie skopiowana do Twojej szafy.
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmPurchase"
- >
-Ta transakcja spowoduje:
-[ACTION]
-
-Na pewno chcesz dokonać tego zakupu?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmPurchasePassword"
- type="password">
-Ta transakcja spowoduje:
-[ACTION]
-
-Na pewno chcesz dokonać tego zakupu?
-Wpisz hasło ponownie i kliknij OK.
- <form name="form">
- <input
- name="message"
- type="password"/>
- <button
-
-
- name="ConfirmPurchase"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Anuluj"/>
- </form>
- </notification>
-
- <notification
-
- name="SetPickLocation"
- >
-Uwaga:
-Lokacja tego wyboru została zaktualizowana ale pozostałe szczegóły zachowają oryginalne wartości.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="MoveInventoryFromObject"
- >
-Wybrane obiekty szafy nie mają praw kopiowania.
-Obiekty zostaną przeniesione do Twojej szafy, nie zostaną skopiowane.
-
-Przenieść obiekty szafy?
- <usetemplate
- ignoretext="Przenosząc szafę bez praw kopiowania z obiektów"
- name="okcancelignore"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="MoveInventoryFromScriptedObject"
- >
-Wybrane obiekty szafy nie mają praw kopiowania.
-Obiekty zostaną przeniesione do Twojej Szafy, nie zostaną skopiowane.
-Ponieważ obiekty zawierają skrypty, przeniesienie obiektów do Twojej szafy może spowodować niepoprawne działanie skryptów.
-
-Przenieść obiekty szafy?
- <usetemplate
- ignoretext="Przenosząc szafę bez praw kopiowania ze skryptowanych obiektów"
- name="okcancelignore"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ClickActionNotPayable"
- >
-Uwaga: Opcja Zapłać Obiektowi została wybrana, ale żeby ta opcja działała musi być dodany skrypt z funkcją money().
- <form name="form">
- <ignore name="ignore"
- text="Wybierając opcję Zapłać Obiektowi dla obiektów bez funkcji money()"/>
- </form>
- </notification>
-
- <notification
-
- name="OpenObjectCannotCopy"
- >
-W tym obiekcie nie ma elementów które możesz skopiować.
- </notification>
-
- <notification
-
- name="WebLaunchAccountHistory"
- >
-Przejść na stronę Second Life żeby zobaczyć historię konta?
- <usetemplate
- ignoretext="Ładując stronę historii konta."
- name="okcancelignore"
- notext="Anuluj"
- yestext="Idź na stronę"/>
- </notification>
-
- <notification
-
- name="ClickOpenF1Help"
- >
-Przejść na stronę Second Life?
- <usetemplate
- ignoretext="Odwiedzając stronę Second Life."
- name="okcancelignore"
- notext="Anuluj"
- yestext="Idź"/>
- </notification>
-
- <notification
-
- name="ConfirmQuit"
- >
-Na pewno chcesz skończyć?
- <usetemplate
- ignoretext="Wyłączając Second Life."
- name="okcancelignore"
- notext="Kontynuuj"
- yestext="Wyłącz"/>
- </notification>
-
- <notification
-
- name="HelpReportAbuseEmailLL"
- >
-Używaj tej opcji do zgłaszania nadużyć Warunków Umowy (Terms of Service) i Standardów Społeczeństwa (Community Standards). Zobacz:
-
-http://secondlife.com/corporate/tos.php
-http://secondlife.com/corporate/cs.php
-
-Wszystkie zgłoszone nadużycia Warunków Umowy (Terms of Service) i Standardów Społeczeństwa (Community Standards) są badane i rozwiązywane. Możesz zobaczyć konkluzję zgłoszenia w Raporcie Zgłoszeń pod:
-
-http://secondlife.com/support/incidentreport.php
- </notification>
-
- <notification
-
- name="HelpReportAbuseEmailEO"
- >
-UWAGA: Ten raport zostanie wysłany do właściciela regionu w którym się znajdujesz i nie będzie wysłany do Linden Lab.
-
-W ramach serwisu dla Rezydentów i gości właściciel tego regionu postanowił odbierać i rozwiązywać wszystkie reporty wysłane z tego regionu. Linden Lab nie będzie analizował żadnych reportów zgłoszonych z tego miejsca.
-
-Właściciel regionu będzie rozpatrywał raporty w oparciu o lokalne prawa tego regionu zdefiniowane w umowie majątku. (Możesz zobaczyć umowę wybierając opcję O Posiadłości z menu Świat.)
-
-Rozwiązanie tego raportu odnosi się wyłącznie do tego regionu; konkluzja tego raportu nie będzie miała wpływu na dostęp Rezydentów do innych regionów w Second Life. Wyłącznie Linden Lab może całkowicie odebrać dostęp do Second Life.
- </notification>
-
- <notification
-
- name="HelpReportBug"
- >
-Używaj tej opcji *wyłącznie* w celu zgłaszania technicznych problemów, dołączając szczegółowy opis problemu. Możesz odpowiedzieć na automatyczną email z odpowiedzią żeby dodać więcej szczegółów do Twojego raportu.
-
-Wszystkie raporty błędów są analizowane i oceniane. Kontakt przez email nie będzie nawiązany.
-
-Jeżeli masz techniczne problemy, skontaktuj się z pomocą techniczną pod:
-
-http://secondlife.com/community/support.php
-
-Uwaga: Niekompletne raporty nie będą analizowane.
- </notification>
-
- <notification
-
- name="HelpReportAbuseSelectCategory"
- >
-Wybierz kategorię dla tego raportu o nadużyciu.
-Określenie kategorii pomoże nam w klasyfikacji i prztwarzaniu raportu.
- </notification>
-
- <notification
-
- name="HelpReportBugSelectCategory"
- >
-Wybierz kategorię dla tego błędu.
-Określenie kategorii pomoże nam w klasyfikacji i prztwarzaniu raportu.
- </notification>
-
- <notification
-
- name="HelpReportAbuseAbuserNameEmpty"
- >
-Wprowadź imię i nazwisko osoby popełniającej nadużycie.
-Dokładne dane pomogą nam w klasyfikacji i prztwarzaniu raportu.
- </notification>
-
- <notification
-
- name="HelpReportAbuseAbuserLocationEmpty"
- >
-Wprowadź nazwę miejsca gdzie popełniono nadużycie.
-Dokładne dane pomogą nam w klasyfikacji i prztwarzaniu raportu.
- </notification>
-
- <notification
-
- name="HelpReportAbuseSummaryEmpty"
- >
-Wprowadź opis popełnionego nadużycia.
-Dokładne dane pomogą nam w klasyfikacji i prztwarzaniu raportu.
- </notification>
-
- <notification
-
- name="HelpReportBugSummaryEmpty"
- >
-Wprowadź opis błędu.
-Dokładne dane pomogą nam w klasyfikacji i prztwarzaniu raportu.
- </notification>
-
- <notification
-
- name="HelpReportAbuseDetailsEmpty"
- >
-Wprowadź szczgółowy opis popełnionego nadużycia.
-Podaj maksymalną ilość szczgółów oraz imiona i nazwiska osób związanych z nadużyciem które zgłaszasz.
-Dokładne dane pomogą nam w klasyfikacji i prztwarzaniu raportu.
- </notification>
-
- <notification
-
- name="HelpReportBugDetailsEmpty"
- >
-Wprowadź szczgółowy opis błędu. Podaj maksymalną ilość szczgółów oraz, jeżeli to możliwe, kroki niezbędne do odtworzenia problemu.
-Dokładne dane pomogą nam w klasyfikacji i prztwarzaniu raportu.
- </notification>
-
- <notification
-
- name="HelpReportAbuseContainsCopyright"
- >
-Szanowny Rezydencie,
-
-Jeżeli składasz raport dotyczący naruszenia praw autorskich proszę się upewnić, że robisz to poprawnie:
-
-(1) Przypadek Nadużycia. Możesz złożyć raport jeżeli sądzisz, że Rezydent narusza system przywilejów Second Life, na przykład używając CopyBot lub podobnych narzędzi robiących kopie, naruszając prawa autorskie. Komisja Nadużyć bada wykrocznia i stosuje akcje dyscyplinarne za zachowania sprzeczne z zasadami Warunków Umowy (Terms of Service) i Standardów Społeczeństwa (Community Standards) Second Life. Komisja Nadużyć nie zajmuje się i nie odpowiada na żądania usunięcia treści ze środowiska Second Life.
-
-(2) Przypadek DMCA lub Usuwanie Treści. Aby wystąpić z żądaniem o usunięcie treści ze środowiska Second Life MUSISZ przedłożyć ważne zawiadomienie o nadużyciu zgodne z naszą polisą DMCA pod http://secondlife.com/corporate/dmca.php.
-
-Jeżeli chcesz kontynuować dalej zamknij to okno i dokończ wysyłanie raportu. Może być potrzebny wybór kategorii &apos;CopyBot albo Nadużycie Przywilejów&apos;.
-
-Dziękujemy,
-
-Linden Lab
- </notification>
-
- <notification
-
- name="FailedRequirementsCheck"
- >
-Brak następujących wymaganych komponentów w [FLOATER]:
-[COMPONENTS]
- </notification>
-
- <notification
-
- label="Zamień Istniejący Dodatek"
- name="ReplaceAttachment"
- >
-Obecnie masz już dołączony obiekt do tej części Twojego ciała.
-Chcesz go zamienić na wybrany obiekt?
- <form name="form">
- <ignore name="ignore"
- save_option="true"
- text="Zamieniając istniejące dodatki"/>
- <button
-
- ignore="Zamień Automatycznie"
-
- name="Yes"
- text="OK"/>
- <button
- ignore="Nie Zamieniaj"
-
- name="No"
- text="Anuluj"/>
- </form>
- </notification>
-
- <notification
-
- label="Ostrzeżenie Trybu Pracy"
- name="BusyModePay"
- >
-Jesteś w Trybie Pracy co oznacza, że nie dostaniesz żadnych obiektów w zamian za tą opłatę.
-
-Chcesz wyłączyć Tryb Pracy przed zakończeniem tej tranzakcji?
- <form name="form">
- <ignore name="ignore"
- save_option="true"
- text="Płacąc osobie lub obiektowi będąc w Trybie Pracy"/>
- <button
-
- ignore="Zawsz wyłączaj Tryb Pracy"
-
- name="Yes"
- text="OK"/>
- <button
- ignore="Nie wyłączaj Trybu Pracy"
-
- name="No"
- text="Anuluj"/>
- </form>
- </notification>
-
- <notification
-
- name="ConfirmEmptyTrash"
- >
-Na pewno chcesz permanentnie usunąć zawartość Śmietnika?
- <usetemplate
- ignoretext="Usuwając zawartość Śmietnika"
- name="okcancelignore"
- notext="Anuluj"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ConfirmClearBrowserCache"
- >
-Na pewno chcesz wyczyścić bufor przeglądarki?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="Tak"/>
- </notification>
-
- <notification
-
- name="ConfirmClearCookies"
- >
-Na pewno chcesz wyczyścić ciasteczka?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="Tak"/>
- </notification>
-
- <notification
-
- name="ConfirmClearMediaUrlList"
- >
-Na pewno chcesz wyczyścić listę zapisanych linków?
- <usetemplate
- name="okcancelbuttons"
- notext="Anuluj"
- yestext="Tak"/>
- </notification>
-
- <notification
-
- name="ConfirmEmptyLostAndFound"
- >
-Na pewno chcesz permanentnie usunąć zawartość Twojego foldera Zgubione i Znalezione?
- <usetemplate
- ignoretext="Usuwając szafę z Twojego foldera Zgubione i Znalezione"
- name="okcancelignore"
- notext="Nie"
- yestext="Tak"/>
- </notification>
-
- <notification
-
- name="CopySLURL"
- >
-Następujący link SLURL został skopiowany do pamięci podręcznej:
- [SLURL]
-
-Zamieść go na stronie Internetowej żeby umożliwić innym łatwy dostęp do tego miejsca, albo wklej go do panela adresu Twojej przeglądarki żeby go wypróbować.
- <form name="form">
- <ignore name="ignore"
- text="Kopiując SLURL do pamięci podręcznej"/>
- </form>
- </notification>
-
- <notification
-
- name="GraphicsPreferencesHelp"
- >
-Ten panel kontroluje wymiary i rozdzielczość okna oraz jakość grafiki klienta. Panel Ustawienia &gt; Grafika pozwala na wybór jednego z czterech poziomów jakości grafiki: Niska, Średnia, Wysoka i Super. Możesz również dostosować grafikę do własnych potrzeb wybierając opcję Zaawansowane i zmieniając następujące ustawienia:
-
-Shadery: Włącza i wyłącza różne rodzaje shaderów piksli.
-
-Ustawienia Odbić: Określa rodzaje obiektów które mogą odbijać się w wodzie.
-
-Prezentacja Awatarów: Określa opcje mające wpływ na rysowanie awatarów przez klienta.
-
-Głębia Rysowania: Określa od jakiej odległości od pozycji kamery obiekty będą rysowane w tle.
-
-Liczba Cząsteczek: Określa maksymalną liczbę cząsteczek widocznych jednocześnie na ekranie.
-
-Jakość Post-Procesu: Określa rozdzielczość z jaką jest wyświetlana poświata.
-
-Szczegóły Meszu: Określa ilość szczegółów albo liczbę trójkątów używaną przy rysowaniu pewnych obiektów. Większa wartość zwalnia prędkość rysowania ale powoduje, że obiekty wyglądają bardziej szczgółowo.
-
-Ustawienia Światła: Określa jaki rodzaj światła jest używany do rysowania.
-
-Szczegóły Terenu: Określa ilość szczgółów widoczną w teksturach terenu.
- </notification>
-
- <notification
-
- name="WLSavePresetAlert"
- >
-Chcesz zmienić zapisane ustawienia?
- <usetemplate
- name="okcancelbuttons"
- notext="Nie"
- yestext="Tak"/>
- </notification>
-
- <notification
-
- name="WLDeletePresetAlert"
- >
-Chcesz usunąć [SKY]?
- <usetemplate
- name="okcancelbuttons"
- notext="Nie"
- yestext="Tak"/>
- </notification>
-
- <notification
-
- name="WLNoEditDefault"
- >
-Nie możesz edytować lub usunąć domyślnych ustawień.
- </notification>
-
- <notification
-
- name="WLMissingSky"
- >
-Ten plik cyklu dziennego używa brakującego pliku nieba: [SKY].
- </notification>
-
- <notification
-
- name="PPSaveEffectAlert"
- >
-Efekt Post-Procesu już istnieje. Chcesz zapisać nowy na jego miejsce?
- <usetemplate
- name="okcancelbuttons"
- notext="Nie"
- yestext="Tak"/>
- </notification>
-
- <notification
-
- name="HelpEditSky"
- >
-Ustaw suwaki żeby stworzyć i zapisać zbiór nieb.
- </notification>
-
- <notification
-
- name="HelpEditDayCycle"
- >
-Wybierz których nieb używać w przeciągu dnia.
- </notification>
-
- <notification
-
- name="EnvSettingsHelpButton"
- >
-Te ustawienia zmieniają wygląd środowiska na Twoim komputerze. Twoja karta graficzna musi posiadać opcję shaderów atmosfery aby umożliwić dostęp do wszystkich ustawień.
-
-Ustaw suwak &quot;Pora Dnia&quot; żeby zmienić lokalną porę dnia w kliencie.
-
-Ustaw suwak &quot;Chmury&quot; żeby zmienić ilość chmur widoczną na niebie.
-
-Wybierz kolor w selekcji &quot;Kolor Wody&quot; żeby zmienić kolor wody.
-
-Ustaw suwak &quot;Zamglenie&quot; żeby zmienić gęstość zamglenia pod wodą.
-
-Kliknij &quot;Używaj Czasu Regionu&quot; żeby dostosowywać porę dnia do pory dnia w regionie.
-
-Kliknij &quot;Zaawansowane Niebo&quot; żeby wybrać bardziej szczegółowy edytor ustawień nieba.
-
-Kliknij &quot;Zaawansowana Woda&quot; żeby wybrać bardziej szczegółowy edytor ustawień wody.
- </notification>
-
- <notification
-
- name="HelpDayCycle"
- >
-Edytor Cyklu Dnia pozwala na kontrolę nieba podczas cyklu dnia/nocy w Second Life. Ten cykl jest używany przez suwak Pora Dnia w podstawowym Edytorze Środowiska.
-
-Edytor Cyklu Dnia ustala klatki odniesienia. Są to punkty (widoczne jako szare plamki na wykresie czasu) które mają przypisane Ustawienia Nieba. W miarę upływu czasu niebo jest animowane używając średnich pomiędzy klatkami odniesienia.
-
-Żółta strzałka powyżej linii czasu odpowiada biżącemu widokowi opartemu na Porze Dnia. Kliknij i przeciągnij strzałkę żeby zobaczyć animację w przeciągu dnia. Możesz dodawać i usuwać klatki odniesienia używająć przycisków Dodaj i Usuń po prawej stronie linii czasu.
-
-Długość Cyklu dyktuje całkowitą długość &quot;dnia&quot;. Wybranie małej wartości (na przykład 2 min) oznacza, że Twoja 24-o godzinna linia czasu będzie animowana w całości w przeciągu dwóch minut czasu rzeczywistego! Po wybraniu odpowiednich ustawień linii czasu i klatek odniesienia użyj przycisków Start i Stop żeby zobaczyć rezultaty. Pamiętaj - zawsze możesz używać żółtej strzałki wskażnika czasu powyżej linii czasu żeby zmieniać animację dynamicznie. Użycie przycisku Używaj Czasu Regionu zsynchronizuje Twoją długość dnia i czas z cyklem Regionu.
-
-Po zdefiniowaniu Cyklu Dnia możesz zapisać i załadować ustawienia używając przycisków Zapisz Test Dnia i Załaduj Test Dnia. Uwaga, obecnie tylko jeden Cykl Dnia jest dozwolony.
- </notification>
-
- <notification
-
- name="HelpBlueHorizon"
- >
-Ustaw suwaki Czerwony/Zielony/Niebieski (RGB) żeby zmienić kolor nieba. Możesz używać suwaka Intensywność (I) żeby zmieniać ustawienia suwaków wszystkich kolorów (RGB) jednocześnie.
- </notification>
-
- <notification
-
- name="HelpHazeHorizon"
- >
-Horyzont Zamglenia jest jednym z ważniejszych parametrów kontrolujących oświetlenie sceny. Jest efektywnym do symulacji wielu ustawień oświetlenia takich jak rozbyski słońca i ciemniejsze ustawienia zamkniętej przesłony.
- </notification>
-
- <notification
-
- name="HelpBlueDensity"
- >
-Gęstość Błękitu ma wpływ na nasycenie koloru nieba i mgły. Jeżeli przesuniesz suwak Intensywności (I) w prawo kolory będą jaśniejsze i żywsze. Jeżeli przesuniesz całkowicie w lewo kolory będą rozmywać się aż do przejścia w biel i czerń. Jeżeli chcesz precyzyjnie kontrolować balans koloru nieba możesz używać suwaków kolorów Czerwony/Zielony/Niebieski (RGB) w celu zmiany nasycenia indywidualnych składników.
- </notification>
-
- <notification
-
- name="HelpHazeDensity"
- >
-Gęstość Zamglenia kontroluje zawartość mętnego, szarego zamglenia w atmosferze. Jest to przydatne do symulacji scen z dużą ilością dymu i zanieczyszczeń.
-Oraz do symulacji mgły i zamgleń.
- </notification>
-
- <notification
-
- name="HelpDensityMult"
- >
-Mnożnik Gęstości wpływa na gęstość atmosfery w całości. Niskie ustawienie sprawia wrażenie lekkiego powietrza, wyższe ustawienia tworzą bardzo ciężki, zamglony efekt.
- </notification>
-
- <notification
-
- name="HelpDistanceMult"
- >
-Mnożnik Dystansu wpływa na postrzeganie dystansu. Wartość zero niweluje wpływ dystansu na wygląd terenu i obiektów.
-Wartości większe od 1 symulują większy dystans tworząc silniejszy efekt atmosferyczny.
- </notification>
-
- <notification
-
- name="HelpMaxAltitude"
- >
-Max Wysokość wpływa na obliczanie światła atmosferycznego.
-O póżniejszych porach dnia ta wartość jest przydatna do regulacji percepcji dystansu zachodącego słońca.
- </notification>
-
- <notification
-
- name="HelpSunlightColor"
- >
-Reguluje kolor i intensywność bezpośredniego światła w scenie.
- </notification>
-
- <notification
-
- name="HelpSunAmbient"
- >
-Reguluje kolor i intensywność rozproszonego światła atmosferycznego w scenie.
- </notification>
-
- <notification
-
- name="HelpSunGlow"
- >
-Suwak Rozmiar kontroluje wielkość słońca.
-Suwak Ostrość kontroluje ostrość słońca na niebie.
- </notification>
-
- <notification
-
- name="HelpSceneGamma"
- >
-Reguluje dystrybucję światła i cienia na ekranie.
- </notification>
-
- <notification
-
- name="HelpStarBrightness"
- >
-Reguluje blask gwiazd na niebie.
- </notification>
-
- <notification
-
- name="HelpTimeOfDay"
- >
-Kontroluje pozycję słońca na niebie.
-Zbliżone do wysokości.
- </notification>
-
- <notification
-
- name="HelpEastAngle"
- >
-Kontroluje pozycję słońca na niebie.
-Zbliżone do azymutu.
- </notification>
-
- <notification
-
- name="HelpCloudColor"
- >
-Kontroluje kolor chmur. Generalnie powinny być białawe, ale hej, pobaw się jeżeli masz ochotę.
- </notification>
-
- <notification
-
- name="HelpCloudDetail"
- >
-Kontroluje szczegółowy obraz nałożony na górę głównego obrazu chmur. X i Y kontrolują jego pozycję. G (Gęstość) kontroluje jak puchate lub postrzępione są chmury.
- </notification>
-
- <notification
-
- name="HelpCloudDensity"
- >
-Suwaki X i Y kontrolują pozycję chmur.
-Suwak G (Gęstość) kontroluje gęstość chmur.
- </notification>
-
- <notification
-
- name="HelpCloudCoverage"
- >
-Kontroluje ilość chmur pokrywających niebo.
- </notification>
-
- <notification
-
- name="HelpCloudScale"
- >
-Kontroluje skalę obrazu chmur na kopule nieba.
- </notification>
-
- <notification
-
- name="HelpCloudScrollX"
- >
-Kontroluje prędkość przemieszczania chmur wzdłuż osi X.
- </notification>
-
- <notification
-
- name="HelpCloudScrollY"
- >
-Kontroluje prędkość przemieszczania chmur wzdłuż osi Y.
- </notification>
-
- <notification
-
- name="HelpClassicClouds"
- >
-Wybierz tą opcję w celu używania dodatkowo starszej, klasycznej wersji chmur Second Life.
- </notification>
-
- <notification
-
- name="HelpWaterFogColor"
- >
-Kontroluje kolor podwodnej mgły.
- </notification>
-
- <notification
-
- name="HelpWaterFogDensity"
- >
-Kontroluje gęstość mgły i głębie wizji pod wodą.
- </notification>
-
- <notification
-
- name="HelpUnderWaterFogMod"
- >
-Modyfikuje wpływ wykładnika gęstości mgły na głębie wizji awatara pod wodą.
- </notification>
-
- <notification
-
- name="HelpWaterGlow"
- >
-Kontroluje emisję światła z powierzchni wody.
- </notification>
-
- <notification
-
- name="HelpWaterNormalScale"
- >
-Kontroluje skalę trzech zmarszczeń które tworzą wodę.
- </notification>
-
- <notification
-
- name="HelpWaterFresnelScale"
- >
-Kontroluje jak dużo światła jest odbijane pod różnymi kątami.
- </notification>
-
- <notification
-
- name="HelpWaterFresnelOffset"
- >
-Kontroluje jak dużo intensywności światła jest odbijane.
- </notification>
-
- <notification
-
- name="HelpWaterScaleAbove"
- >
-Kontroluje jak dużo światła odbija się od górnej powierzchni wody.
- </notification>
-
- <notification
-
- name="HelpWaterScaleBelow"
- >
-Kontroluje jak dużo światła odbija się od dolnej powierzchni wody.
- </notification>
-
- <notification
-
- name="HelpWaterBlurMultiplier"
- >
-Kontroluje jak fale i odbicia są mieszane.
- </notification>
-
- <notification
-
- name="HelpWaterNormalMap"
- >
-Kontroluje która mapa normalnych jest używana w wodzie do określania odbić/załamań.
- </notification>
-
- <notification
-
- name="HelpWaterWave1"
- >
-Kontroluje gdzie i jak szybko duża wersja mapy normalnych przemieszcza się wzdłuż osi X i Y.
- </notification>
-
- <notification
-
- name="HelpWaterWave2"
- >
-Kontroluje gdzie i jak szybko mała wersja mapy normalnych przemieszcza się wzdłuż osi X i Y.
- </notification>
-
- <notification
-
- name="NewSkyPreset"
- >
-Nazwij nowe niebo.
- <form name="form">
- <input name="message" type="text">
-Nowe Ustawienie
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Anuluj"/>
- </form>
- </notification>
-
- <notification
-
- name="ExistsSkyPresetAlert"
- >
-Ustawienie już istnieje!
- </notification>
-
- <notification
-
- name="NewWaterPreset"
- >
-Nazwij nowe ustawienie wody.
- <form name="form">
- <input name="message" type="text">
-Nowe Ustawienie
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Anuluj"/>
- </form>
- </notification>
-
- <notification
-
- name="ExistsWaterPresetAlert"
- >
-Ustawienie już istnieje!
- </notification>
-
- <notification
-
- name="WaterNoEditDefault"
- >
-Domyśle ustawienie nie może być zmienione ani usunięte.
- </notification>
-
- <notification
-
- name="ChatterBoxSessionStartError"
- >
-Błąd podczas rozpoczynania czatu/IM z [RECIPIENT].
-[REASON]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ChatterBoxSessionEventError"
- >
-[EVENT]
-[REASON]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ForceCloseChatterBoxSession"
- >
-Twój czat/IM z [NAME] zostanie zamknięty.
-[REASON]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="Cannot_Purchase_an_Attachment"
- >
-Rzeczy nie mogą być kupione jeżeli
- są częścią załącznika.
- </notification>
-
- <notification
-
- label="Prośba o Zgodę na Pobieranie L$"
- name="DebitPermissionDetails"
- >
-Akceptując tą prośbę wyrażasz zgodę na ciągłe pobieranie Lindenów (L$) z Twojego konta. Żeby cofnąć to pozwolenie właściciel obiektu będzie musiał usunąć ten obiekt albo zresetowć skrypty obieku.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="AutoWearNewClothing"
- >
-Czy chcesz automatycznie nosić ubranie które tworzysz?
- <usetemplate
- ignoretext="Automatycznie noś nowe ubranie"
- name="okcancelignore"
- notext="Nie"
- yestext="Tak"/>
- </notification>
-
- <notification
-
- name="NotAgeVerified"
- >
-Nie masz dostępu do tej posiadłości ze względu na brak weryfikacji Twojego wieku.
-Czy chcesz odwiedzić stronę Second Life żeby to zmienić?
-
-[_URL]
- <url option="0" name="url">
-
- https://secondlife.com/account/verification.php
- </url>
- <usetemplate
- ignoretext="Ostrzegaj o braku weryfikacji wieku"
- name="okcancelignore"
- notext="Nie"
- yestext="Tak"/>
- </notification>
-
- <notification
-
- name="Cannot enter parcel: no payment info on file"
- >
-Nie masz dostępu do tej posiadłości ze względu na brak danych o Twoim koncie.
-Czy chcesz odwiedzić stronę Second Life żeby to zmienić?
-
-[_URL]
- <url option="0" name="url">
-
- https://secondlife.com/account/
- </url>
- <usetemplate
- ignoretext="Ostrzegaj o braku danych konta"
- name="okcancelignore"
- notext="Nie"
- yestext="Tak"/>
- </notification>
-
- <notification
-
- name="MissingString"
- >
-Zdanie [STRING_NAME] nie znalezione w strings.xml
- </notification>
-
- <notification
-
- name="SystemMessageTip"
- >
-[MESSAGE]
- </notification>
-
- <notification
-
- name="Cancelled"
- >
-Anulowane
- </notification>
-
- <notification
-
- name="CancelledSit"
- >
-Siadanie Anulowane
- </notification>
-
- <notification
-
- name="CancelledAttach"
- >
-Dołączenie Anulowane
- </notification>
-
- <notification
-
- name="ReplacedMissingWearable"
- >
-Barkujące ubranie/części ciała zastąpiono domyślnymi obiektami.
- </notification>
-
- <notification
-
- name="GroupNotice"
- >
-Temat: [SUBJECT], Treść: [MESSAGE]
- </notification>
-
- <notification
-
- name="FriendOnline"
- >
-[FIRST] [LAST] jest w Second Life
- </notification>
-
- <notification
-
- name="FriendOffline"
- >
-[FIRST] [LAST] opuszcza Second Life
- </notification>
-
- <notification
-
- name="AddSelfFriend"
- >
-Nie możesz dodać siebie do listy znajomych.
- </notification>
-
- <notification
-
- name="UploadingAuctionSnapshot"
- >
-Ładowanie obrazu z Internetu...
-(Zajmuje około 5 minut.)
- </notification>
-
- <notification
-
- name="UploadPayment"
- >
-Ładowanie kosztowało [AMOUNT]L$.
- </notification>
-
- <notification
-
- name="UploadWebSnapshotDone"
- >
-Ładowanie obrazu z Internetu zakończne pomyślnie.
- </notification>
-
- <notification
-
- name="UploadSnapshotDone"
- >
-Ładowanie zdjęcia zakończone pomyślnie.
- </notification>
-
- <notification
-
- name="TerrainDownloaded"
- >
-Plik terrain.raw ściągniety.
- </notification>
-
- <notification
-
- name="GestureMissing"
- >
-Gest [NAME] nie znaleziony w bazie danych.
- </notification>
-
- <notification
-
- name="UnableToLoadGesture"
- >
-Ładowanie gestu [NAME] nie powiodło się.
-Spróbuj jeszcze raz.
- </notification>
-
- <notification
-
- name="LandmarkMissing"
- >
-Miejsce (LM) nie znalezione w bazie danych.
- </notification>
-
- <notification
-
- name="UnableToLoadLandmark"
- >
-Ładowanie miejsca (LM) nie powiodło się.
-Spróbuj jeszcze raz.
- </notification>
-
- <notification
-
- name="CapsKeyOn"
- >
-Twój Caps Lock jest włączony.
-Ponieważ to ma wpływ na wpisywane hasło, możesz chcieć go wyłączyć.
- </notification>
-
- <notification
-
- name="NotecardMissing"
- >
-Notka nie znaleziona w bazie danych.
- </notification>
-
- <notification
-
- name="NotecardNoPermissions"
- >
-Nie masz pozwolenia na zobaczenie notki.
- </notification>
-
- <notification
-
- name="RezItemNoPermissions"
- >
-Nie masz pozwolenia na stworzenie obiektu.
- </notification>
-
- <notification
-
- name="UnableToLoadNotecard"
- >
-Ładowanie notki nie powiodło się.
-Spróbuj jeszcze raz.
- </notification>
-
- <notification
-
- name="ScriptMissing"
- >
-Skrypt nie znaleziony w bazie danych.
- </notification>
-
- <notification
-
- name="ScriptNoPermissions"
- >
-Nie masz pozwolenia na zobaczenie skryptu.
- </notification>
-
- <notification
-
- name="UnableToLoadScript"
- >
-Ładowanie skryptu nie powiodło się.
-Spróbuj jeszcze raz.
- </notification>
-
- <notification
-
- name="IncompleteInventory"
- >
-Zawartość obiektów którą chcesz podarować nie jest dostępna lokalnie. Spróbuj podarować te obiekty jeszcze raz za jakiś czas.
- </notification>
-
- <notification
-
- name="CannotModifyProtectedCategories"
- >
-Nie możesz zmienić chronionych kategorii.
- </notification>
-
- <notification
-
- name="CannotRemoveProtectedCategories"
- >
-Nie możesz usunąć chronionych kategorii.
- </notification>
-
- <notification
-
- name="OfferedCard"
- >
-[FIRST] [LAST] daje Ci swoją wizytówkę
- </notification>
-
- <notification
-
- name="UnableToBuyWhileDownloading"
- >
-Nie można kupować w trakcie ładowania danych obiektu.
-Spróbuj jeszcze raz.
- </notification>
-
- <notification
-
- name="UnableToLinkWhileDownloading"
- >
-Nie można łączyć w trakcie ładowania danych obiektu.
-Spróbuj jeszcze raz.
- </notification>
-
- <notification
-
- name="CannotBuyObjectsFromDifferentOwners"
- >
-Nie możesz jednocześnie kupować obiektów od różnych osób.
-Wybierz jeden obiekt.
- </notification>
-
- <notification
-
- name="ObjectNotForSale"
- >
-Obiekt nie jest na sprzedaż.
- </notification>
-
- <notification
-
- name="EnteringGodMode"
- >
-Włącznie trybu boskiego, poziom [LEVEL]
- </notification>
-
- <notification
-
- name="LeavingGodMode"
- >
-Wyłączanie trybu boskiego, poziom [LEVEL]
- </notification>
-
- <notification
-
- name="CopyFailed"
- >
-Kopiowanie się nie powiodło - nie masz pozwolenia
- </notification>
-
- <notification
-
- name="InventoryAccepted"
- >
-Podarunek od Ciebie został przyjęty przez [NAME].
- </notification>
-
- <notification
-
- name="InventoryDeclined"
- >
-Podarunek od Ciebie został odrzucony przez [NAME].
- </notification>
-
- <notification
-
- name="ObjectMessage"
- >
-[NAME]: [MESSAGE]
- </notification>
-
- <notification
-
- name="CallingCardAccepted"
- >
-Twoja wizytówka została przyjęta.
- </notification>
-
- <notification
-
- name="CallingCardDeclined"
- >
-Twoja wizytówka została odrzucona.
- </notification>
-
- <notification
-
- name="TeleportToLandmark"
- >
-Jesteś w Głównym Regionie i możesz się stąd teleportować do innych miejsc jak &apos;[NAME]&apos; wybierając Moja Szafa w prawym dolnym rogu ekranu i wybierając folder Miejsca (LM).
-Kliknij dwa razy na miejsce (LM) i wybierz Teleportuj żeby tam się przenieść.
- </notification>
-
- <notification
-
- name="TeleportToPerson"
- >
-Jesteś w Głównym Regionie i możesz komunikować się z innymi Rezydentami jak &apos;[NAME]&apos; wybierając Moja Szafa w prawym dolnym rogu ekranu i wybierając folder Wizytówki.
-Kliknij dwa razy na wizytówce, wybierz Wyślij IM i napisz wiadomość.
- </notification>
-
- <notification
-
- name="CantSelectLandFromMultipleRegions"
- >
-Nie możesz przekraczać granic serwera wybierając obszar.
-Spróbuj wybrać mniejszy obszar.
- </notification>
-
- <notification
-
- name="GroupVote"
- >
-[NAME] zaprasza do głosowania nad propozycją:
-[MESSAGE]
- <form name="form">
- <button
-
- name="VoteNow"
- text="Głosuj Teraz"/>
- <button
-
- name="Later"
- text="Później"/>
- </form>
- </notification>
-
- <notification
-
- name="SystemMessage"
- >
-[MESSAGE]
- </notification>
-
- <notification
-
- name="EventNotification"
- >
-Zawiadomienie o Imprezie:
-
-[NAME]
-[DATE]
- <form name="form">
- <button
-
- name="Teleport"
- text="Teleportuj"/>
- <button
-
- name="Description"
- text="Opis"/>
- <button
-
- name="Cancel"
- text="Anuluj"/>
- </form>
- </notification>
-
- <notification
-
- name="TransferObjectsHighlighted"
- >
-Obiekty na tej posiadłości które zostaną przekazane kupcowi tej posiadłości są teraz rozjaśnione.
-
-* Drzewa i trawy które zostaną przekazne nie są rozjaśnione.
- <form name="form">
- <button
-
- name="Done"
- text="Zastosuj"/>
- </form>
- </notification>
-
- <notification
-
- name="DeactivatedGesturesTrigger"
- >
-Zablokowane gesty z jednakowym aktywowaniem:
-[NAMES]
- </notification>
-
- <notification
-
- name="NoQuickTime"
- >
-Wygląda na to, że QuickTime z Apple nie jest zainstalowany na Twoim komputerze.
-Jeżeli chcesz odtwarzać media na tej posiadłości które używają QuickTime idź do http://www.apple.com/quicktime i zainstaluj odtwarzacz.
- </notification>
-
- <notification
-
- name="OwnedObjectsReturned"
- >
-Twoje obiekty z wybranej posiadłości zostały zwrócone do Twojej Szafy.
- </notification>
-
- <notification
-
- name="OtherObjectsReturned"
- >
-Obiekty należące do [FIRST] [LAST] na wybranej posiadłości zostały zwrócone do szafy tej osoby.
- </notification>
-
- <notification
-
- name="OtherObjectsReturned2"
- >
-Obiekty z wybranej posiadłości należącej do Rezydenta &apos;[NAME]&apos; zostały zwrócone do ich właściciela.
- </notification>
-
- <notification
-
- name="GroupObjectsReturned"
- >
-Obiekty z wybranej posiadłości przypisane do grupy [GROUPNAME] zostały zwrócone do szafy ich właścicieli.
-Przekazywalne obiekty przekazne grupie zostały zwrócone do ich poprzednich właścicieli.
-Nieprzekazywalne obiekty przekazane grupie zostały usunięte.
- </notification>
-
- <notification
-
- name="UnOwnedObjectsReturned"
- >
-Obiekty z wybranej posiadłości które nie należą do Ciebie zostały zwrócone do ich właścicieli.
- </notification>
-
- <notification
-
- name="NotSafe"
- >
-Ta posiadłość pozwala na uszkodzenia.
-Możesz doznać tutaj urazu. Jeżeli zginiesz nastąpi teleportacja do Twojego miejsca startu.
- </notification>
-
- <notification
-
- name="NoFly"
- >
-Ta posiadłość nie pozwala na latanie.
-Nie możesz tutaj latać.
- </notification>
-
- <notification
-
- name="PushRestricted"
- >
-Popychanie niedozwolone.
-Nie możesz tutaj popychać innych, chyba, że jesteś właścicielem tej posiadłości.
- </notification>
-
- <notification
-
- name="NoVoice"
- >
-Ta posiadłość nie pozwala na rozmowy.
- </notification>
-
- <notification
-
- name="NoBuild"
- >
-Ta posiadłość nie pozwala na budowanie.
-Nie możesz tworzyć tutaj obiektów.
- </notification>
-
- <notification
-
- name="ScriptsStopped"
- >
-Administrator czasowo zatrzymał skrypty w tym regionie.
- </notification>
-
- <notification
-
- name="ScriptsNotRunning"
- >
-Żadne skrypty nie działają w tym regionie.
- </notification>
-
- <notification
-
- name="NoOutsideScripts"
- >
-Ta posiadłość nie pozwala na zewnętrzne skrypty.
-Żadne skrypty nie będą tutaj działać za wyjątkiem skryptów zleżących do właściciela posiadłości.
- </notification>
-
- <notification
-
- name="ClaimPublicLand"
- >
-Tylko publiczne posiadłości w tym regionie mogą być przejęte.
- </notification>
-
- <notification
-
- name="ObjectGiveItem"
- >
-Obiekt [OBJECTFROMNAME] należący do [FIRST] [LAST] dał Ci [OBJECTTYPE] [OBJECTNAME].
- <form name="form">
- <button
-
- name="Keep"
- text="Zachowaj"/>
- <button
-
- name="Discard"
- text="Wyrzuć"/>
- <button
-
- name="Mute"
- text="Wycisz"/>
- </form>
- </notification>
-
- <notification
-
- name="ObjectGiveItemUnknownUser"
- >
-Obiekt [OBJECTFROMNAME] należący do (właściciel nieznany) dał Ci [OBJECTTYPE] [OBJECTNAME].
- <form name="form">
- <button
-
- name="Keep"
- text="Zachowaj"/>
- <button
-
- name="Discard"
- text="Wyrzuć"/>
- <button
-
- name="Mute"
- text="Wycisz"/>
- </form>
- </notification>
-
- <notification
-
- name="UserGiveItem"
- >
-[NAME] dał Ci [OBJECTTYPE] &apos;[OBJECTNAME]&apos;.
- <form name="form">
- <button
-
- name="Keep"
- text="Zachowaj"/>
- <button
-
- name="Discard"
- text="Wyrzuć"/>
- <button
-
- name="Mute"
- text="Wycisz"/>
- </form>
- </notification>
-
- <notification
-
- name="GodMessage"
- >
-[NAME]
-[MESSAGE]
- </notification>
-
- <notification
-
- name="JoinGroup"
- >
-[MESSAGE]
- <form name="form">
- <button
-
- name="Join"
- text="Zaakceptuj"/>
- <button
-
- name="Decline"
- text="Odmów"/>
- <button
-
- name="Info"
- text="Info"/>
- </form>
- </notification>
-
- <notification
-
- name="TeleportOffered"
- >
-[NAME] proponuje Ci teleportcję do siebie:
-
-[MESSAGE]
- <form name="form">
- <button
-
- name="Teleport"
- text="Teleportuj"/>
- <button
-
- name="Cancel"
- text="Anuluj"/>
- </form>
- </notification>
-
- <notification
-
- name="GotoURL"
- >
-[MESSAGE]
-[URL]
- <form name="form">
- <button
-
- name="Later"
- text="Póżniej"/>
- <button
-
- name="GoNow..."
- text="Teraz..."/>
- </form>
- </notification>
-
- <notification
-
- name="OfferFriendship"
- >
-[NAME] proponuje Ci znajomość.
-
-[MESSAGE]
-
-(Z zalożenia będzie widzić swój status online.)
- <form name="form">
- <button
-
- name="Accept"
- text="Zaakceptuj"/>
- <button
-
- name="Decline"
- text="Odmów"/>
- </form>
- </notification>
-
- <notification
-
- name="OfferFriendshipNoMessage"
- >
-[NAME] proponuje Ci znajomość.
-
-(Z zalożenia będzie widzić swój status online.)
- <form name="form">
- <button
-
- name="Accept"
- text="Zaakceptuj"/>
- <button
-
- name="Decline"
- text="Odmów"/>
- </form>
- </notification>
-
- <notification
-
- name="FriendshipAccepted"
- >
-Twoja propozycja znajomości została przyjęta przez [NAME].
- </notification>
-
- <notification
-
- name="FriendshipDeclined"
- >
-Twoja propozycja znajomości została odrzucona przez [NAME].
- </notification>
-
- <notification
-
- name="OfferCallingCard"
- >
-[FIRST] [LAST] daje Ci swoją wizytówkę.
-Wizytówka w Twojej Szafie może być używana do komunikowania się (IM) z tym Rezydentem.
- <form name="form">
- <button
-
- name="Accept"
- text="Zaakceptuj"/>
- <button
-
- name="Decline"
- text="Odmów"/>
- </form>
- </notification>
-
- <notification
-
- name="RegionRestartMinutes"
-
-
- >
-Restart regionu za [MINUTES] min.
-Nastąpi wylogowanie jeżeli zostaniesz w tym regionie.
- </notification>
-
- <notification
-
- name="RegionRestartSeconds"
-
-
- >
-Restart regionu za [MINUTES] sek.
-Nastąpi wylogowanie jeżeli zostaniesz w tym regionie.
- </notification>
-
- <notification
-
- name="LoadWebPage"
- >
-Załadować stronę [URL]?
-
-[MESSAGE]
-
-Obiekt: [OBJECTNAME], właściciel: [NAME]?
- <form name="form">
- <button
-
- name="Gotopage"
- text="Idź na stronę"/>
- <button
-
- name="Cancel"
- text="Anuluj"/>
- </form>
- </notification>
-
- <notification
-
- name="FailedToFindWearableUnnamed"
- >
-[TYPE] - nie znaleziono w bazie danych.
- </notification>
-
- <notification
-
- name="FailedToFindWearable"
- >
-[TYPE] [DESC] - nie znaleziono w bazie danych.
- </notification>
-
- <notification
-
- name="ScriptQuestion"
- >
-&apos;[OBJECTNAME]&apos;, właściciel: &apos;[NAME]&apos;, chciał by:
-
-[QUESTIONS]
-Zgadzasz się?
- <form name="form">
- <button
-
- name="Yes"
- text="Tak"/>
- <button
-
- name="No"
- text="Nie"/>
- <button
-
- name="Mute"
- text="Wycisz"/>
- </form>
- </notification>
-
- <notification
-
- name="ScriptQuestionCaution"
- >
-&apos;[OBJECTNAME]&apos;, właściciel: &apos;[NAME]&apos;, chciał by:
-
-[QUESTIONS]
-Jeżeli nie ufasz temu obiektowi lub jego twórcy - odmów. Wybierz Szczegóły żeby otrzymać więcej informacji.
-
-Zgadzasz się?
- <form name="form">
- <button
-
- name="Grant"
- text="Zaakceptuj"/>
- <button
-
- name="Deny"
- text="Odmów"/>
- <button
-
- name="Details"
- text="Szczegóły..."/>
- </form>
- </notification>
-
- <notification
-
- name="ScriptDialog"
- >
-[FIRST] [LAST]&apos;s &apos;[TITLE]&apos;
-[MESSAGE]
- <form name="form">
- <button
-
- name="Ignore"
- text="Zignoruj"/>
- </form>
- </notification>
-
- <notification
-
- name="ScriptDialogGroup"
- >
-[GROUPNAME]&apos;s &apos;[TITLE]&apos;
-[MESSAGE]
- <form name="form">
- <button
-
- name="Ignore"
- text="Zignoruj"/>
- </form>
- </notification>
-
- <notification
-
- name="FirstBalanceIncrease"
- >
-Przekazano Ci [AMOUNT]L$.
-Obiekty i inni użytkownicy mogą Ci dawać L$.
-Twój balans jest wyświetlony w prawym górnym rogu ekranu.
- </notification>
-
- <notification
-
- name="FirstBalanceDecrease"
- >
-Pobrano od Ciebie [AMOUNT]L$.
-Twój balans jest wyświetlony w prawym górnym rogu ekranu.
- </notification>
-
- <notification
-
- name="FirstSit"
- >
-Siedzisz.
-Używaj strzałek (albo AWSD) żeby zmieniać widok.
-Naciśnij przycisk Wstań żeby sie podnieść.
- </notification>
-
- <notification
-
- name="FirstMap"
- >
-Kliknij i przeciągnij by przsuwać mapę.
-Kliknij dwa razy żeby się teleportować.
-Używaj narzędzi po prawej stronie żeby znajdować i wyświetlać różne obiekty.
- </notification>
-
- <notification
-
- name="FirstBuild"
- >
-Możesz budować nowe obiekty w niektórych miejscach.
-Używaj narzędzi w lewym górnym rogu żeby budować, przyciskaj Ctrl lub Alt żeby szybko zmieniać narzędzia.
-Naciśnij Esc żeby skończyć budować.
- </notification>
-
- <notification
-
- name="FirstLeftClickNoHit"
- >
-Lewy klik żeby używać specjalnych obiektów.
-Jeżeli strzałka zmieni się na rączkę możesz używać tego obiektu.
-Prawy klik zawsze pokazuje menu dostępnych operacji.
- </notification>
-
- <notification
-
- name="FirstTeleport"
- >
-Nastąpiła teleportacja.
-Jesteś przy Infohub najbliższej Twojego celu.
-Twój cel jest zaznaczony wysokim czerwonym wskaźnikiem.
- </notification>
-
- <notification
-
- name="FirstOverrideKeys"
- >
-Twoje sterujące klawisze zostały przejęte przez obiekt.
-Użyj strzałek lub AWSD żeby sprawdzić ich działanie.
-Niektóre obiekty (np broń) wymagają trybu panoramicznego.
-Nacisnij &apos;M&apos; żeby go wybrać.
- </notification>
-
- <notification
-
- name="FirstAppearance"
- >
-Edytujesz swój wygląd.
-Używaj strzałek do obracania i zbliżenia.
-Po skończeniu wybierz &apos;Zapisz Zmiany&apos;
-żeby zapisać Twój wygląd i wyjść.
-Możesz edytować wygląd jak często chcesz.
- </notification>
-
- <notification
-
- name="FirstInventory"
- >
-To jest Twoja Szafa, który zawiera obikty, notki, ubrania i inne Twoje rzeczy.
-* Żeby założyć obiekt lub strój (folder) przeciągnij go na siebie.
-* Żeby przenieść obiekt do świata przeciągnij go na grunt.
-* Żeby przeczytać notkę kliknij na niej dwa razy.
- </notification>
-
- <notification
-
- name="FirstSandbox"
- >
-Ten region to piaskownica.
-Obiekty które tu zbudujesz mogą zostać usunięte jak opuścisz ten obszar - piaskownice są regularnie czyszczone, sprawdź informacje na górze ekranu obok nazwy regionu.
-
-Piaskownice spotyka się rzadko i są zawsze oznakowane.
- </notification>
-
- <notification
-
- name="FirstFlexible"
- >
-To jest elastyczny obiekt.
-Obiekty elastyczne nie mogą być fizyczne i muszą być typu fantom.
- </notification>
-
- <notification
-
- name="FirstDebugMenus"
- >
-Zaawansowane menu zostało włączone.
-To menu zawiera funkcje użyteczne dla programistów analizujących Secon Life.
-To menu jest włączne przez Ctrl-Alt-D pod Windows. Mac używa Cmd-Opt-Shift-D.
- </notification>
-
- <notification
-
- name="FirstSculptedPrim"
- >
-Edytujesz sculpt.
-Skulpty wymagają specjalnych tekstur które definiują ich kształt.
-Przykłady tekstur znajdują się w bibliotece szafy.
- </notification>
-
- <notification
-
- name="FirstMedia"
- >
-Odtwarzasz media. Możesz wybrać automatyczne odtwarzanie w Ustawieniach pod Audio i Video. Odtwarzanie mediów w miejscach którym nie ufasz może być niebezpieczne.
- </notification>
-
- <notification
-
- name="MaxListSelectMessage"
- >
-Maksymalnie możesz wybrać [MAX_SELECT] rzeczy
-z tej listy.
- </notification>
-
- <notification
-
- name="VoiceInviteP2P"
- >
-[NAME] zaprasza Cię do rozmowy głosem.
-Wybierz Zaakceptuj żeby rozmawiać albo Odmów żeby nie przyjąć zaproszenia.
-Wybierz Wycisz żeby wyciszyć dzwoniącą osobę.
- <form name="form">
- <button
-
- name="Accept"
- text="Zaakceptuj"/>
- <button
-
- name="Decline"
- text="Odmów"/>
- <button
-
- name="Mute"
- text="Wycisz"/>
- </form>
- </notification>
-
- <notification
-
- name="AutoUnmuteByIM"
- >
-Wiadomość (IM) została wysłana do [FIRST] [LAST] i wyciszenie zostało automatycznie usunięte.
- </notification>
-
- <notification
-
- name="AutoUnmuteByMoney"
- >
-Pieniądze zostały przekazane do [FIRST] [LAST] i wyciszenie zostało automatycznie usunięte.
- </notification>
-
- <notification
-
- name="AutoUnmuteByInventory"
- >
-Oferta z szafy dla [FIRST] [LAST] automatycznie usunęła wyciszenie.
- </notification>
-
- <notification
-
- name="VoiceInviteGroup"
- >
-[NAME] zaczyna rozmowę z grupą [GROUP].
-Wybierz Zaakceptuj żeby rozmawiać albo Odmów żeby nie przyjąć zaproszenia.
-Wybierz Wycisz żeby wyciszyć dzwoniącą osobę.
- <form name="form">
- <button
-
- name="Accept"
- text="Zaakceptuj"/>
- <button
-
- name="Decline"
- text="Odmów"/>
- <button
-
- name="Mute"
- text="Wycisz"/>
- </form>
- </notification>
-
- <notification
-
- name="VoiceInviteAdHoc"
- >
-[NAME] zaczyna konferencję głosem.
-Wybierz Zaakceptuj żeby rozmawiać albo Odmów żeby nie przyjąć zaproszenia.
-Wybierz Wycisz żeby wyciszyć dzwoniącą osobę.
- <form name="form">
- <button
-
- name="Accept"
- text="Zaakceptuj"/>
- <button
-
- name="Decline"
- text="Odmów"/>
- <button
-
- name="Mute"
- text="Wycisz"/>
- </form>
- </notification>
-
- <notification
-
- name="InviteAdHoc"
- >
-[NAME] zaprasza Cię do konferencji poprzez Czat/IM.
-Wybierz Zaakceptuj żeby zacząć czat albo Odmów żeby nie przyjąć zaproszenia.
-Wybierz Wycisz żeby wyciszyć tą osobę.
- <form name="form">
- <button
-
- name="Accept"
- text="Zaakceptuj"/>
- <button
-
- name="Decline"
- text="Odmów"/>
- <button
-
- name="Mute"
- text="Wycisz"/>
- </form>
- </notification>
-
- <notification
-
- name="VoiceChannelFull"
- >
-Rozmowa w której chcesz uczestniczyć, [VOICE_CHANNEL_NAME], nie akceptuje więcej rozmówców. Spróbuj póżniej.
- </notification>
-
- <notification
-
- name="ProximalVoiceChannelFull"
- >
-Przepraszamy. Limit rozmów został przekroczony w tym obszarze. Spróbuj w innym miejscu.
- </notification>
-
- <notification
-
- name="VoiceChannelDisconnected"
- >
-[VOICE_CHANNEL_NAME] odłączył się. Przełączanie do rozmowy przestrzennej.
- </notification>
-
- <notification
-
- name="VoiceChannelDisconnectedP2P"
- >
-[VOICE_CHANNEL_NAME] skończył rozmowę. Przełączanie do rozmowy przestrzennej.
- </notification>
-
- <notification
-
- name="P2PCallDeclined"
- >
-[VOICE_CHANNEL_NAME] odmówił połączenia. Przełączanie do rozmowy przestrzennej.
- </notification>
-
- <notification
-
- name="P2PCallNoAnswer"
- >
-[VOICE_CHANNEL_NAME] nie odpowiada. Przełączanie do rozmowy przestrzennej.
- </notification>
-
- <notification
-
- name="VoiceChannelJoinFailed"
- >
-Brak połączenia z [VOICE_CHANNEL_NAME], spróbuj póżniej. Przełączanie do rozmowy przestrzennej.
- </notification>
-
- <notification
-
- name="VoiceLoginRetry"
- >
-Tworzymy kanał głosu dla Ciebie. Moze potrwać minutę.
- </notification>
-
- <notification
-
- name="Cannot enter parcel: not a group member"
- >
-Nie masz dostępu do posiadłości, nie należysz do właściwej grupy.
- </notification>
-
- <notification
-
- name="Cannot enter parcel: banned"
- >
-Masz wzbroniny dostęp to tej posiadłości (ban).
- </notification>
-
- <notification
-
- name="Cannot enter parcel: not on access list"
- >
-Nie masz dostępu do posiadłości, nie jesteś na liście dostępu.
- </notification>
-
- <notification
-
- name="VoiceNotAllowed"
- >
-Nie masz pozwolenia na połączenie z rozmową [VOICE_CHANNEL_NAME].
- </notification>
-
- <notification
-
- name="VoiceCallGenericError"
- >
-Błąd podczas łączenia z rozmową [VOICE_CHANNEL_NAME]. Spróbuj póżniej.
- </notification>
-
- <notification
-
- name="ServerVersionChanged"
- >
-Ten region używa innej wersji symulatora. Kliknij na tą wiadomość żeby uzyskać więcej informacji.
- </notification>
-
- <notification
-
- name="UnableToOpenCommandURL"
- >
-Wybrany link nie daje się otworzyć z tej przeglądarki.
- </notification>
-
- <global name="UnsupportedCPU">
-- Prędkość Twojego CPU nie spełnia minimalnych wymagań.
- </global>
-
- <global name="UnsupportedGLRequirements">
-Wygląda na to, że Twój system nie spełnia wymagań sprzętowych Second Life. Second Life wymaga karty graficznej kompatybilnej z OpenGL z multiteksturami. Jeżeli masz taką kartę zainstaluj najnowsze sterowniki do niej i uaktualnienia systemu operacyjnego.
-
-Jeżeli wciąż masz problemy sprawdź: http://www.secondlife.com/support
- </global>
-
- <global name="UnsupportedCPUAmount">
-796
- </global>
-
- <global name="UnsupportedRAMAmount">
-510
- </global>
-
- <global name="UnsupportedGPU">
-- Twoja karta graficzna nie spełnia minimalnych wymagań.
- </global>
-
- <global name="UnsupportedRAM">
-- Pamięć Twojego systemu nie spełnia minimalnych wymagań.
- </global>
-
- <global name="PermYes">
-Tak
- </global>
-
- <global name="PermNo">
-Nie
- </global>
-</notifications>
-
+<?xml version="1.0" encoding="utf-8"?>
+<notifications>
+ <global name="skipnexttime">
+ Nie pokazuj tej opcji następnym razem
+ </global>
+ <global name="alwayschoose">
+ Pozwalaj na wybór tej opcji
+ </global>
+ <template name="okbutton">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ </form>
+ </template>
+
+ <template name="okignore">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <ignore text="$ignoretext"/>
+ </form>
+ </template>
+
+ <template name="okcancelbuttons">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <button
+ name="Cancel"
+ text="$notext"/>
+ </form>
+ </template>
+
+ <template name="okcancelignore">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <button
+ name="Cancel"
+ text="$notext"/>
+ <ignore text="$ignoretext"/>
+ </form>
+ </template>
+
+ <template name="okhelpbuttons">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <button
+ name="Help"
+ text="$helptext"/>
+ </form>
+ </template>
+
+ <template name="yesnocancelbuttons">
+ <form>
+ <button
+ name="Yes"
+ text="$yestext"/>
+ <button
+ name="No"
+ text="$notext"/>
+ <button
+ name="Cancel"
+ text="$canceltext"/>
+ </form>
+ </template>
+ <notification functor="GenericAcknowledge" label="Nieznany rodzaj komunikatu" name="MissingAlert">
+ Twoja wersja klienta Second Life nie może wyświetlić odebranej wiadomości.
+
+Szczegóły błędu: Błąd o nazwie &apos;[_NAME]&apos; nie został odnaleziony w pliku notifications.xml.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="FloaterNotFound">
+ Błąd: nie można znaleźć następujących elementów:
+
+[CONTROLS]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="TutorialNotFound">
+ Brak samouczka na ten temat
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="GenericAlert">
+ [MESSAGE]
+ </notification>
+ <notification name="GenericAlertYesCancel">
+ [MESSAGE]
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Tak"/>
+ </notification>
+ <notification name="BadInstallation">
+ Podczas aktualizacji klienta Second Life wystąpił błąd. Proszę odwiedzić stronę secondlife.com by ściągnąć najnowszą wersje klienta.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="LoginFailedNoNetwork">
+ Błąd sieci: Brak połączenia.
+&apos;[DIAGNOSTIC]&apos;
+Sprawdź stan swojego połączenia sieciowego.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="MessageTemplateNotFound">
+ Wzór komunikatu dla [PATH] nie odnaleziony.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="WearableSave">
+ Zapisać zmiany dotyczące ubrania/części ciała?
+ <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Nie Zapisuj" yestext="Zapisz"/>
+ </notification>
+ <notification name="CompileQueueSaveText">
+ W trakcie ładwania tekstu dla skryptu pojawił się problem z następującego powodu: [REASON]. Spróbuj ponownie za kilka minut.
+ </notification>
+ <notification name="CompileQueueSaveBytecode">
+ W trakcie ładwania skompilowanego skryptu pojawił się problem z następującego powodu: [REASON]. Spróbuj ponownie za kilka minut.
+ </notification>
+ <notification name="WriteAnimationFail">
+ Problem w zapisywaniu danych animacji. Spróbuj ponownie za kilka minut.
+ </notification>
+ <notification name="UploadAuctionSnapshotFail">
+ W trakcie ładwania obrazu aukcji pojawił się problem z następującego powodu: [REASON].
+ </notification>
+ <notification name="UnableToViewContentsMoreThanOne">
+ Nie można przeglądać zawartości więcej niż jednego obiektu naraz.
+Wybierz pojedynczy obiekt i spróbuj jeszcze raz.
+ </notification>
+ <notification name="SaveClothingBodyChanges">
+ Zapisać wszystkie zmiany dotyczące ubrania/cześci ciała?
+ <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Nie Zapisuj" yestext="Zapisz"/>
+ </notification>
+ <notification name="GrantModifyRights">
+ Udzielenie praw modyfikacji innemu Rezydentowi umożliwia modyfikację, usuwanie lub wzięcie JAKIEGOKOLWIEK z Twoich obiektów.
+Używaj tej opcji z rozwagą!
+Czy chcesz dać prawa modyfikacji osobie [FIRST_NAME] [LAST_NAME]?
+ <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak"/>
+ </notification>
+ <notification name="GrantModifyRightsMultiple">
+ Udzielenie praw modyfikacji innym Rezydentom umożliwia im modyfikację, usuwanie lub wzięcie JAKIEGOKOLWIEK z Twoich obiektów.
+Używaj tej opcji z rozwagą!
+Czy chcesz dać prawa modyfikacji wybranym osobom?
+ <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak"/>
+ </notification>
+ <notification name="RevokeModifyRights">
+ Czy chcesz odebrać prawa modyfikacji Rezydentowi [FIRST_NAME] [LAST_NAME]?
+ <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak"/>
+ </notification>
+ <notification name="RevokeModifyRightsMultiple">
+ Czy chcesz odebrać prawa modyfikacji wybranym Rezydentom?
+ <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak"/>
+ </notification>
+ <notification name="UnableToCreateGroup">
+ Założenie grupy niemożliwe.
+[MESSAGE]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="PanelGroupApply">
+ [NEEDS_APPLY_MESSAGE]
+[WANT_APPLY_MESSAGE]
+ <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Ignoruj Zmiany" yestext="Zastosuj Zmiany"/>
+ </notification>
+ <notification name="MustSpecifyGroupNoticeSubject">
+ Aby wysłać ogłoszenie do grupy musisz nadać mu tytuł.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="AddGroupOwnerWarning">
+ Dodajesz członków do funkcji [ROLE_NAME].
+Ta funkcja nie może być odebrana.
+Członkowie muszą sami zrezygnować z pełnienia tej funkcji.
+Chcesz kontynuować?
+ <usetemplate ignoretext="Podczas dodawania członków grupy do funkcji właściciela" name="okcancelignore" notext="Nie" yestext="Tak"/>
+ </notification>
+ <notification name="AssignDangerousActionWarning">
+ Dodajesz przywilej [ACTION_NAME] do fukcji [ROLE_NAME].
+
+*UWAGA*
+Członek w funkcji z tym przywilejem może przypisać siebie i innych członków nie będących właścicielami do funkcji dających więcej przywilejów niż posiadane obecnie potencjalnie dające możliwości zbliżone do możliwości właściciela.
+Udzielaj tego przywileju z rozwagą.&quot;
+
+Dodać ten przywilej do funkcji [ROLE_NAME]?
+ <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak"/>
+ </notification>
+ <notification name="AssignDangerousAbilityWarning">
+ Dodajesz przywilej [ACTION_NAME] do fukcji [ROLE_NAME]
+
+*UWAGA*
+Członek w funkcji z tym przywilejem może przypisać sobie i innychm członkom nie będącym właścicielami wszystkie przywileje potencjalnie dające możliwości zbliżone do możliwości właściciela.
+Udzielaj tego przywileju z rozwagą.
+
+Dodać ten przywilej do funkcji [ROLE_NAME]?
+ <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak"/>
+ </notification>
+ <notification name="ClickPublishHelpLand">
+ Wybranie opcji Publikuj w Wyszukiwarce Wybranie tej opcji umożliwi pokazywanie:
+- tej posiadłości w wynikach wyszukiwarki
+- publicznych obiektów na tej posiadłości
+- tej posiadłości w przeglądarce internetowej
+ </notification>
+ <notification name="ClickSoundHelpLand">
+ Media oraz muzyka są aktywne według ustawień posiadłości dla mediów. Dźwięk oraz komunikacja głosowa mogą być ograniczone w danej posiadłości, w zależności od ustawień rodzaju treści jaką zawiera. Skorzystaj z Second Life:Pomoc by uzyskać więcej informacji na temat dostępu do regionów z podanym rodzajem treści jaką zawiera.
+ <url name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=5046
+ </url>
+ <usetemplate
+ name="okcancelbuttons"
+ yestext="Second Life:Pomoc"
+ notext="Zamknij" />
+ </notification>
+ <notification name="ClickSearchHelpAll">
+ Wyniki wyszukiwania wyświetlają się na podstawie rodzaju zakładki wyszukiwarki, z której korzystasz, rodzaju statusu Twojego wieku, wybranej kategorii, oraz innych czynników. By uzyskać wiecej szczegółów skorzystaj z Second Life: Pomoc.
+ <url name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=4722
+ </url>
+ <usetemplate
+ name="okcancelbuttons"
+ yestext="Second Life:Pomoc"
+ notext="Zamknij" />
+ </notification>
+ <notification name="ClickPublishHelpLandDisabled">
+ Ta posiadłość nie może być pokazywana w wynikach wyszukiwania ponieważ region w którym się znajduje zabrania tego.
+ </notification>
+ <notification name="ClickPublishHelpAvatar">
+ Wybranie opcji Publikuj w Wyszukiwarce umożliwi pokazywanie:
+- Twojego profilu w wynikach wyszukiwarki
+- linku do Twojego profilu na publicznych stronach
+ </notification>
+ <notification name="ClickPartnerHelpAvatar">
+ Możesz zaproponować związek innemu Rezydentowi lub rozwiązać istniejący związek na stronie internetowej [SECOND_LIFE].
+
+Chcesz dowiedzieć się więcej na temat związków w Second Life?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Idź na stronę"/>
+ </notification>
+ <notification name="ClickUploadHelpPermissions">
+ Twoje domyślne ustawienia praw dla Twoich obiektów mogą nie działać poprawnie w starszych regionach.
+ </notification>
+ <notification name="ClickWebProfileHelpAvatar">
+ Jeżeli ten Rezydent posiada link URL w profilu możesz:
+ * Kliknąć &apos;Załaduj&apos; żeby zobaczyć stronę w tej zakładce WWW.
+ * Kliknąć &apos;Załaduj&apos; &gt; &apos;Użyj zewnętrznej przeglądarki&apos; żeby zobaczyć stronę używając domyślnej zewnętrznej przeglądarki.
+ * Kliknąć &apos;Załaduj&apos; &gt; &apos;Otwórz URL strony profilu&apos; żeby wrócić do strony tego Rezydenta po jej opuszczeniu.
+
+Oglądając swój profil możesz wpisać dowolny link URL i kliknąć OK żeby go zapisać.
+Rezydenci mogą odwiedzać podany adres, kiedy przeglądają Twój profil.
+ </notification>
+ <notification name="JoinGroupCanAfford">
+ Dołączenie do tej grupy kosztuje [COST]L$.
+Chcesz kontynuować?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Dołącz"/>
+ </notification>
+ <notification name="JoinGroupCannotAfford">
+ Członkostwo w tej grupie kosztuje [COST]L$
+Masz za mało L$ żeby zostać członkiem.
+ </notification>
+ <notification name="LandBuyPass">
+ Za [COST]L$ możesz odwiedzić tą posiadłość (&apos;[PARCEL_NAME]&apos;) na [TIME] godzin. Chcesz kupić przepustkę?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="SalePriceRestriction">
+ Cena sprzedaży musi być wyższa niż 0L$ jeżeli sprzedajesz komukolwiek.
+Musisz wybrać kupca jeżeli chcesz sprzedać za 0L$.
+ </notification>
+ <notification name="ConfirmLandSaleChange">
+ Posiadłość o powierzchni [LAND_SIZE] m zostaje wystawiona na sprzedaż.
+Cena wynosi [SALE_PRICE]L$ i sprzedaż będzie autoryzowana dla [NAME].
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmLandSaleToAnyoneChange">
+ UWAGA: Wybierając Sprzedaż dla Kogokolwiek umożliwiasz zakup posiadłości wszystkim Rezydentom Second Life.
+
+Posiadłość o powierzchni [LAND_SIZE] m zostaje wystawiona na sprzedaż.
+Cena wynosi [SALE_PRICE]L$ i sprzedaż będzie autoryzowana dla [NAME].
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsDeededToGroup">
+ Czy na pewno chcesz zwrócić wszystkie obiekty udostępnione grupie [NAME] na tej posiadłości do szafy ich poprzednich właścicieli?
+
+*UWAGA* Wybrana opcja spowoduje usunięcie wszystkich obiektów
+udostępnionych grupie, które nie mają praw transferu!
+
+Obiekty: [N]
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsOwnedByUser">
+ Czy na pewno chcesz zwrócić wszystkie obiekty należące do Rezydenta [NAME] znajdujące się na tej posiadłości do szafy właściciela?
+
+Obiekty: [N]
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsOwnedBySelf">
+ Czy na pewno chcesz zwrócić wszystkie Twoje obiekty znajdujące się na tej posiadłości do swojej szafy?
+
+Obiekty: [N]
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsNotOwnedBySelf">
+ Czy na pewno chcesz zwrócić wszystkie obiekty, których nie jesteś właścicielem znajdujące się na tej posiadłości do szaf właścicieli? Wszystkie obiekty udostępnione grupie z prawem transferu, zostaną zwrócone poprzednim właścicielom.
+
+*UWAGA* Wybrana opcja spowoduje usunięcie wszystkich obiektów udostępnionych grupie, które nie mają praw transferu!
+
+Obiekty: [N]
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsNotOwnedByUser">
+ Czy na pewno chcesz zwrócić wszystkie obiekty, które nie należą do [NAME] znajdujące się na tej posiadłości do szaf właścicieli? Wszystkie obiekty udostępnione grupie z prawem transferu, zostaną zwrócone poprzednim właścicielom.
+
+*UWAGA* Wybrana opcja spowoduje usunięcie wszystkich obiektów udostępnionych grupie, które nie mają praw transferu!
+
+Obiekty: [N]
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="ReturnAllTopObjects">
+ Czy na pewno chcesz zwrócić wszystkie wymienione obiekty znajdujące się na tej posiadłości do szaf ich właścicieli?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="DisableAllTopObjects">
+ Czy na pewno chcesz deaktywować wszystkie obiekty w tym regionie?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsNotOwnedByGroup">
+ Zwrócić obiekty z tej posiadłości, które nie są udosępnione grupie [NAME] do ich właścicieli?
+
+Obiekty: [N]
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="UnableToDisableOutsideScripts">
+ Nie można deaktywować skryptów.
+Ten region pozwala na uszkodzenia.
+Skrypty muszą pozostać aktywne dla prawidłowego działania broni.
+ </notification>
+ <notification name="MustBeInParcel">
+ Musisz znajdować się wewnątrz posiadłości żeby wybrać punkt lądowania.
+ </notification>
+ <notification name="PromptRecipientEmail">
+ Proszę wpisać adres emailowy odbiorcy.
+ </notification>
+ <notification name="PromptSelfEmail">
+ Proszę wpisać swój adres emailowy.
+ </notification>
+ <notification name="PromptMissingSubjMsg">
+ Wysłać widokówkę z domyślnym tematem i wiadomością?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="ErrorProcessingSnapshot">
+ Błąd w trakcie przetwarzania danych zdjęcia.
+ </notification>
+ <notification name="ErrorEncodingSnapshot">
+ Błąd w kodowaniu zdjęcia.
+ </notification>
+ <notification name="ErrorUploadingPostcard">
+ W trakcie ładowania zdjęcia pojawił się problem z następującego powodu: [REASON]
+ </notification>
+ <notification name="ErrorUploadingReportScreenshot">
+ W trakcie ładowania zdjęcia ekranu do raportu pojawił się problem z następującego powodu: [REASON]
+ </notification>
+ <notification name="MustAgreeToLogIn">
+ Musisz zaakceptować Warunki Umowy (Terms of Service) by kontynuować logowanie się do [SECOND_LIFE].
+ </notification>
+ <notification name="CouldNotPutOnOutfit">
+ Założenie stroju nie powiodło się.
+Folder stroju nie zawiera żadnego ubrania, części ciała ani załączników.
+ </notification>
+ <notification name="CannotWearTrash">
+ Nie możesz założyć ubrania, które znajduje się w koszu.
+ </notification>
+ <notification name="CannotWearInfoNotComplete">
+ Nie możesz założyć tego artkułu ponieważ nie załadował się poprawnie. Spróbuj ponownie za kilka minut.
+ </notification>
+ <notification name="MustHaveAccountToLogIn">
+ Musisz mieć konto by móc zalogować się do [SECOND_LIFE].
+Czy chcesz przejść na stronę www.secondlife.com by założyć konto?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="AddClassified">
+ Ogłoszenia reklamowe ukazują się w zakładce Reklama w wyszukiwarce (Szukaj) oraz na stronie internetowej www.secondlife.com przez tydzień.
+Napisz treść swojej reklamy, kliknij Zamieść by dodać katalogu ogłoszeń.
+Po zamieszczeniu reklamy zostaniesz poproszony o sprecyzowanie opłaty za reklamę.
+Im wyższa opłata tym wyżej Twoja reklama wyświetla się w katalogu i wyszukiwarce po wpisaniu słów kluczowych.
+ <usetemplate ignoretext="W momencie dodawania nowej reklamy" name="okcancelignore" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="DeleteClassified">
+ Usunąć reklamę &apos;[NAME]&apos;?
+Pamiętaj! Nie ma rekompensaty za poniesione koszta.
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="ClassifiedSave">
+ Zapisać zmiany w reklamie [NAME]?
+ <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Nie Zapisuj" yestext="Zapisz"/>
+ </notification>
+ <notification name="DeleteAvatarPick">
+ Usunąć wybór [PICK] z kategorii Lubię?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="PromptGoToEventsPage">
+ Odwiedzić internetową stronę imprez [SECOND_LIFE]?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="SelectProposalToView">
+ Wybierz propozycję, którą chcesz zobaczyć.
+ </notification>
+ <notification name="SelectHistoryItemToView">
+ Wybierz obiekt z historii, który chcesz zobaczyć.
+ </notification>
+ <notification name="ResetShowNextTimeDialogs">
+ Zresetować &apos;Pokaż następnym razem&apos; opcję we wszystkich dialogach?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="SkipShowNextTimeDialogs">
+ Wyłączyć &apos;Pokaż następnym razem&apos; opcję we wszystkich dialogach?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="CacheWillClear">
+ Bufor danych na dysku zostanie zresetowany po relogu do [SECOND_LIFE].
+ </notification>
+ <notification name="CacheWillBeMoved">
+ Bufor danych na dysku zostanie przemieszczony po relogu do [SECOND_LIFE].
+Bufor będzie również wyczyszczony.
+ </notification>
+ <notification name="ChangeConnectionPort">
+ Ustawienia portu zostaną wprowadzone po relogu do [SECOND_LIFE].
+ </notification>
+ <notification name="ChangeSkin">
+ Nowa skórka zostanie wprowadzona po relogu do [SECOND_LIFE].
+ </notification>
+ <notification name="GoToAuctionPage">
+ Odwiedzić stronę internetową [SECOND_LIFE] żeby zobaczyć szczgóły aukcji lub zrobić ofertę?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="SaveChanges">
+ Zapisać Zmiany?
+ <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Nie Zapisuj" yestext="Zapisz"/>
+ </notification>
+ <notification name="GestureSaveFailedTooManySteps">
+ Nie można zapisać gestu.
+Ten gest ma zbyt wiele etapów.
+Usuń kilka etapów i zapisz jeszcze raz.
+ </notification>
+ <notification name="GestureSaveFailedTryAgain">
+ Zapis gestu nie powiódł się. Spróbuj jeszcze raz za kilka minut.
+ </notification>
+ <notification name="GestureSaveFailedObjectNotFound">
+ Nie można zapisać gestu ponieważ obiekt lub szafa powiązanego obiektu nie został znaleziony.
+Obiekt może znajdować się zbyt daleko albo został usuniety.
+ </notification>
+ <notification name="GestureSaveFailedReason">
+ Nie można zapisać gestu z następującego powodu: [REASON]. Spróbuj zapisać jeszcze raz póżniej.
+ </notification>
+ <notification name="SaveNotecardFailObjectNotFound">
+ Nie można zapisać notki ponieważ obiekt lub szafa powiązanego obiektu nie został znaleziony.
+Obiekt może znajdować się zbyt daleko albo został usuniety.
+ </notification>
+ <notification name="SaveNotecardFailReason">
+ Nie można zapisać notki z następującego powodu: [REASON]. Spróbuj zapisać jeszcze raz póżniej.
+ </notification>
+ <notification name="ScriptCannotUndo">
+ Nie można cofnąć wszystkich zmian w Twojej wersji skryptu.
+Czy chcesz załadować ostatnią wersję zapisaną na serwerze?
+(*UWAGA* Ta operacja jest nieodwracalna.)
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="SaveScriptFailReason">
+ Nie można zapisać skryptu z następującego powodu: [REASON]. Spróbuj zapisać jeszcze raz póżniej.
+ </notification>
+ <notification name="SaveScriptFailObjectNotFound">
+ Nie można zapisać skryptu ponieważ obiekt w którym się zawiera nie został znaleziony.
+Obiekt może znajdować się zbyt daleko albo został usuniety.
+ </notification>
+ <notification name="SaveBytecodeFailReason">
+ Nie można zapisać skompilowanego skryptu z następującego powodu: [REASON]. Spróbuj zapisać jeszcze raz póżniej.
+ </notification>
+ <notification name="CouldNotStartStopScript">
+ Nie można uruchomić lub zatrzymać skryptu ponieważ obiekt w którym się zawiera nie został znaleziony.
+Obiekt może znajdować się zbyt daleko albo został usuniety.
+ </notification>
+ <notification name="CannotDownloadFile">
+ Nie można załadować pliku
+ </notification>
+ <notification name="CannotWriteFile">
+ Nie można zapisać pliku [[FILE]]
+ </notification>
+ <notification name="UnsupportedHardware">
+ Uwaga: Twój system nie spełnia minimalnych wymagań sprzętowych Second Life. Jakość i prędkość Second Life mogą być pogorszone. Niestety, nie będziemy w stanie udzielić Ci technicznej pomocy, ponieważ konfiguracja Twojego systemu nie spełnia wymagań sprzętowych.
+
+MINSPECS
+Czy chcesz odwiedzić stronę [_URL] po dodatkowe informacje?
+ <url name="url" option="0">
+ http://www.secondlife.com/corporate/sysreqs.php
+ </url>
+ <usetemplate ignoretext="Zignoruj ostrzeżenie" name="okcancelignore" notext="Nie" yestext="Tak"/>
+ </notification>
+ <notification name="UnknownGPU">
+ Twój system jest wyposażony w kartę graficzną której jeszcze nie znamy.
+To się często zdarza z nowym sprzętem, którego jeszcze nie testowaliśmy.
+Second Life najprawdopodobniej będzie działało poprawnie. Możliwe, że będziesz musiał wyregulować ustawienia grafiki.
+(Edycja &gt; Ustawienia &gt; Grafika).
+ <form name="form">
+ <ignore name="ignore" text="Zignoruj ostrzeżenie"/>
+ </form>
+ </notification>
+ <notification name="DisplaySettingsNoShaders">
+ [SECOND_LIFE] zawiesił się podczas inicjalizacji sterowników graficznych. Jakość grafiki została zmniejszona - może pomoże. Pewne funkcje graficzne zostały wyłączone. Zalecamy aktualizcje strerowników grapicznych.
+Możesz podnieść jakość grafiki pod Ustawienia &gt; Grafika.
+ </notification>
+ <notification name="RegionNoTerraforming">
+ Region [REGION] nie pozwala na formowanie powierzchni ziemi.
+ </notification>
+ <notification name="CannotCopyWarning">
+ Nie masz praw do kopiowania tego obiektu. Ten obiek zniknie z Twojej szafy jeżeli go dasz innej osobie.
+Na pewno chcesz podarować ten obiekt?
+ <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak"/>
+ </notification>
+ <notification name="CannotGiveItem">
+ Podarowanie obiektu nie powiodło się.
+ </notification>
+ <notification name="TransactionCancelled">
+ Transakcja anulowana
+ </notification>
+ <notification name="TooManyItems">
+ Jednorazowo możesz podarować maksymalnie 42 obiekty z szafy.
+ </notification>
+ <notification name="NoItems">
+ Nie masz praw do transferu wybranych obiektów.
+ </notification>
+ <notification name="CannotCopyCountItems">
+ Nie masz praw do skopiowania [COUNT] wybranych obiektów. Obiekty znikną z Twojej szafy.
+Na pewno chcesz oddać te obiekty?
+ <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak"/>
+ </notification>
+ <notification name="CannotGiveCategory">
+ Nie masz praw do transferu wybranego foldera.
+ </notification>
+ <notification name="FreezeAvatar">
+ Unieruchomić tego awatara?
+Awatar tymczasowo nie będzie mógł się poruszać, nie będzie mógł używać czatu (IM) i nie będzie w stanie odziaływać na świat.
+ <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Odblokuj" yestext="Unieruchom"/>
+ </notification>
+ <notification name="FreezeAvatarFullname">
+ Unieruchowmić [AVATAR_NAME]?
+Ta osoba tymczasowo nie będzie mógła się poruszać, nie będzie mógł używać czatu (IM) i nie będzie w stanie odziaływać na świat.
+ <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Odblokuj" yestext="Unieruchom"/>
+ </notification>
+ <notification name="EjectAvatarFullname">
+ Wyrzucić [AVATAR_NAME] z Twojej posiadłości?
+ <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wyrzuć i zabroń wstępu (ban)" yestext="Wyrzuć"/>
+ </notification>
+ <notification name="AcquireErrorTooManyObjects">
+ BŁĄD OTRZYMYWANIA: Zbyt wiele wybranych obiektów.
+ </notification>
+ <notification name="AcquireErrorObjectSpan">
+ BŁĄD OTRZYMYWANIA: Obiekty przekraczają granicę regionów. Przemieść wszystkie otrzymywane obiekty do jednego regionu.
+ </notification>
+ <notification name="PromptGoToCurrencyPage">
+ [EXTRA]
+
+Iść na stronę [URL] po informacje dotyczące zakupu gotówki?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="UnableToLinkObjects">
+ Nie można połączyć [COUNT] obiektów.
+Maksimalnie można połączyć [MAX] obiektów.
+ </notification>
+ <notification name="CannotLinkIncompleteSet">
+ Możesz łączyć tylko kompletne zbiory obiektów i musisz wybrać więcej niż jeden obiekt.
+ </notification>
+ <notification name="CannotLinkModify">
+ Nie możesz połączyć obiektów ponieważ nie masz praw modyfikacji dla wszystkich obiektów.
+
+Upewnij się, że żaden z obiktów nie jest zablokowany i że wszystkie obiekty należą do Ciebie.
+ </notification>
+ <notification name="CannotLinkDifferentOwners">
+ Nie możesz połączyć obiektów ponieważ należą one do różnych osób.
+
+Upewnij sie, że wszystkie wybrane obiekty należą do Ciebie.
+ </notification>
+ <notification name="NoFileExtension">
+ Niepoprawna końcówka nazwy pliku: &apos;[FILE]&apos;
+
+Upewnij się, że nazwa pliku ma poprawaną końcówkę.
+ </notification>
+ <notification name="InvalidFileExtension">
+ Niepoprawna końcówka nazwy pliku - [EXTENSION]
+Oczekiwana - [VALIDS]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="CannotUploadSoundFile">
+ Nie można otworzyć załadowanego pliku dźwiękowego:
+[FILE]
+ </notification>
+ <notification name="SoundFileNotRIFF">
+ Plik nie jest w formacie RIFF WAVE:
+[FILE]
+ </notification>
+ <notification name="SoundFileNotPCM">
+ Plik nie jest w formacie PCM WAVE:
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidChannelCount">
+ Plik zawiera niewłaściwą liczbę kanałów (musi być mono albo stereo):
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidSampleRate">
+ Plik zawiera niewłaścią częstotliwość (musi być 44.1k):
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidWordSize">
+ Plik zawiera niewłaściwą szerokość danych (musi być 8 albo 16 bitów):
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidHeader">
+ Brak bloku &apos;data&apos; w nagłówku pliku WAV:
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidTooLong">
+ Plik audio jest zbyt długi (10 sekund maksimum):
+[FILE]
+ </notification>
+ <notification name="CannotOpenTemporarySoundFile">
+ Nie można otworzyć tymczasowego skompresowango pliku dźwiękowego w celu zapisu: [FILE]
+ </notification>
+ <notification name="UnknownVorbisEncodeFailure">
+ Nieznany błąd kodowania Vorbis w: [FILE]
+ </notification>
+ <notification name="CannotEncodeFile">
+ Kodowanie pliku: [FILE] nie powidło się.
+ </notification>
+ <notification name="CorruptResourceFile">
+ Skorumpowany plik zasobów: [FILE]
+ </notification>
+ <notification name="UnknownResourceFileVersion">
+ Nieznana wersja pliku zasobów Linden w pliku: [FILE]
+ </notification>
+ <notification name="UnableToCreateOutputFile">
+ Nie można utworzyć pliku wyjściowego: [FILE]
+ </notification>
+ <notification name="DoNotSupportBulkAnimationUpload">
+ Ładowanie zbiorów plików animacji nie jest jeszcze dostępne.
+ </notification>
+ <notification name="CannotUploadReason">
+ Ładowanie pliku [FILE] nie powiodło się z powodu: [REASON]
+Spróbuj jeszcze raz póżniej.
+ </notification>
+ <notification name="CannotCreateLandmarkNotOwner">
+ Nie możesz zapamiętać tego miejsca (LM) ponieważ właściciel posiadłości nie pozwala na to.
+ </notification>
+ <notification name="CannotRecompileSelectObjectsNoScripts">
+ &apos;Rekompilacja&apos; nie powiodła się.
+
+Wybierz obiekty zawierające skrypty.
+ </notification>
+ <notification name="CannotRecompileSelectObjectsNoPermission">
+ &apos;Rekompilacja&apos; nie powiodła się.
+
+Wybierz skryptowane obiekty do których masz prawa modyfikacji.
+ </notification>
+ <notification name="CannotResetSelectObjectsNoScripts">
+ &apos;Resetowanie&apos; nie powiodło się.
+
+Wybierz obiekty zawierające skrypty.
+ </notification>
+ <notification name="CannotResetSelectObjectsNoPermission">
+ &apos;Resetowanie&apos; nie powiodło się.
+
+Wybierz skryptowane obiekty do których masz prawa modyfikacji.
+ </notification>
+ <notification name="CannotSetRunningSelectObjectsNoScripts">
+ &apos;Uruchomienie&apos; skryptów nie powiodło się.
+
+Wybierz obiekty zawierające skrypty.
+ </notification>
+ <notification name="CannotSetRunningNotSelectObjectsNoScripts">
+ &apos;Zatrzymanie&apos; skryptów nie powiodło się.
+
+Wybierz obiekty zawierające skrypty.
+ </notification>
+ <notification name="NoFrontmostFloater">
+ Brak górnego okna do zapisu.
+ </notification>
+ <notification name="SeachFilteredOnShortWords">
+ Twoje zapytanie wyszukiwania zostło zmienione - zbyt krótkie słowa zostały usunięte.
+
+Nowe zapytanie: [FINALQUERY]
+ </notification>
+ <notification name="SeachFilteredOnShortWordsEmpty">
+ Użyte terminy wyszukiwania były zbyt krótkie - wyszukiwanie zostało anulowane.
+ </notification>
+ <notification name="CouldNotTeleportReason">
+ Teleportacja nie powiodła się.
+[REASON]
+ </notification>
+
+ <notification name="invalid_tport">
+Wystąpił problem z teleportacją. Wyloguj się i zaloguj ponownie.
+Jeśli nadal otrzymujesz ten komunikat sprawdź Pomoc Techniczną na stronie:
+www.secondlife.com/support.
+ </notification>
+ <notification name="invalid_region_handoff">
+Wystąpił problem ze zmianą regionu. Wyloguj się i zaloguj ponownie.
+Jeśli nadal otrzymujesz ten komunikat sprawdź Pomoc Techniczną na stronie:
+www.secondlife.com/support.
+ </notification>
+ <notification name="blocked_tport">
+Przepraszamy, teleportacja jest chwilowo niedostępna. Spróbuj jeszcze raz.
+Jeśli nadal nie możesz się teleportować wyloguj się i ponownie zaloguj.
+ </notification>
+ <notification name="nolandmark_tport">
+Przepraszamy, ale nie możemy znaleźć miejsca docelowego.
+ </notification>
+ <notification name="timeout_tport">
+Przepraszamy, ale nie udało się przeprowadzić teleportacji. Spróbuj jeszcze raz.
+ </notification>
+ <notification name="noaccess_tport">
+Przepraszamy, ale nie masz dostępu do miejsca docelowego.
+ </notification>
+ <notification name="missing_attach_tport">
+Czekamy na Twoje akcesoria. Możesz poczekać kilka minut lub zrobić relog przed następną próbą teleportacji.
+ </notification>
+ <notification name="too_many_uploads_tport">
+Obecnie ten region ma problemy z ładowaniem obiektów w związku z czym teleportacja bardzo sie opóznia.
+Spróbuj jeszcze raz za kilka minut albo teleportuj się do mniej zatłoczonego miejsca.
+ </notification>
+ <notification name="expired_tport">
+Przepraszamy, ale nie udało się przeprowadzić teleportacji wystarczająco szybko. Spróbuj jeszcze raz za kilka minut.
+ </notification>
+ <notification name="expired_region_handoff">
+Przepraszamy, ale nie udało się przeprowadzić zmiany regionu wystarczająco szybko. Spróbuj jeszcze raz za kilka minut.
+ </notification>
+ <notification name="no_host">
+Nie możemy znaleść miejsca docelowego. To miejsce może być chwilowo nieosiągalne albo przestało istnieć.
+Spróbuj jeszcze raz za kilka minut.
+ </notification>
+ <notification name="no_inventory_host">
+Szafa chwilowo nie działa.
+ </notification>
+
+
+ <notification name="CannotSetLandOwnerNothingSelected">
+ Nie można wybrać właściciela posiadłości.
+Posiadłość nie została wybrana.
+ </notification>
+ <notification name="CannotSetLandOwnerMultipleRegions">
+ Nie można wybrać właściciela posiadłości ponieważ wybrany obszar przekracza granicę regionów. Wybierz mniejszy obszar i spróbuj jeszcze raz.
+ </notification>
+ <notification name="ForceOwnerAuctionWarning">
+ Ta posiadłość jest wystawiona na aukcję. Wymuszenie własności anulue aukcję i potencjalnie może zdenerwować zainteresowanych Rezydentów, jeżeli licytacja już się rozpoczęła. Wymusić własność?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="CannotContentifyNothingSelected">
+ Nie można sfinalizować:
+Posiadłość nie została wybrana.
+ </notification>
+ <notification name="CannotContentifyNoRegion">
+ Nie można sfinalizować:
+Region nie znaleziony.
+ </notification>
+ <notification name="CannotReleaseLandNothingSelected">
+ Nie można porzucić posiadłości:
+Posiadłość nie została wybrana.
+ </notification>
+ <notification name="CannotReleaseLandNoRegion">
+ Nie można porzucić posiadłości:
+Region nie znaleziony.
+ </notification>
+ <notification name="CannotBuyLandNothingSelected">
+ Nie można kupić posiadłości:
+Posiadłość nie została wybrana.
+ </notification>
+ <notification name="CannotBuyLandNoRegion">
+ Nie można kupić posiadłości:
+Region nie znaleziony.
+ </notification>
+ <notification name="CannotCloseFloaterBuyLand">
+ Dialog Kup Posiadłość nie może zostać zamknięty dopóki Second Life nie oszacuje ceny tej tranzakcji.
+ </notification>
+ <notification name="CannotDeedLandNothingSelected">
+ Nie można przekazać posiadłości:
+Posiadłość nie została wybrana.
+ </notification>
+ <notification name="CannotDeedLandNoGroup">
+ Nie można przekazać posiadłości:
+Grupa nie została wybrana.
+ </notification>
+ <notification name="CannotDeedLandNoRegion">
+ Nie można przekazać posiadłości:
+Region nie znaleziony.
+
+Zgłoś ten problem pod Pomoc &gt; Zgłoś Błędy Klienta
+ </notification>
+ <notification name="CannotDeedLandMultipleSelected">
+ Nie można przekazać posiadłości:
+Wiele posiadłości jest wybranych.
+
+Spróbuj wybrać pojedynczą posiadłość.
+ </notification>
+ <notification name="ParcelCanPlayMedia">
+ To miejsce może odtwarzać strumienie mediów.
+Odtwarzanie strumieni wymaga szybkiego połączenia do Internetu.
+
+Odtwarzać dostępne strumienie mediów?
+(Selekcja może zostać zmieniona póżniej pod Ustawienia &gt; Audio i Video.)
+ <usetemplate name="okcancelbuttons" notext="Wyłącz" yestext="Odtwarzaj"/>
+ </notification>
+ <notification name="CannotDeedLandWaitingForServer">
+ Nie można przekazać posiadłości:
+Serwer aktualizuje dane własności.
+
+Spróbuj jeszcze raz póżniej.
+ </notification>
+ <notification name="CannotDeedLandNoTransfer">
+ Nie możesz przekazać posiadłości:
+Region [REGION] nie pozwala na transfer posiadłości.
+ </notification>
+ <notification name="CannotReleaseLandWatingForServer">
+ Nie można porzucić posiadłości:
+Serwer aktualizuje dane posiadłości.
+
+Spróbuj jeszcze raz póżniej.
+ </notification>
+ <notification name="CannotReleaseLandSelected">
+ Nie możesz porzucić posiadłości:
+Nie jesteś właścicielem wszystkich wybranych posiadłości.
+
+Wybierz pojedynczą posiadłość.
+ </notification>
+ <notification name="CannotReleaseLandDontOwn">
+ Nie możesz porzucić posiadłości:
+Nie masz praw do porzucenia tej posiadłości.
+
+Twoje posiadłości są podkreślone na zielono.
+ </notification>
+ <notification name="CannotReleaseLandRegionNotFound">
+ Nie można porzucić posiadłości:
+Region nie znaleziony.
+
+Zgłoś ten problem pod Pomoc &gt; Zgłoś Błędy Klienta
+ </notification>
+ <notification name="CannotReleaseLandNoTransfer">
+ Nie możesz porzucić posiadłości:
+Region [REGION] nie pozwala na transfer posiadłości.
+ </notification>
+ <notification name="CannotReleaseLandPartialSelection">
+ Nie można porzucić posiadłości:
+Musisz wybrać całą posiadłość by ją porzucić.
+Wybierz całą posiadłość albo najpierw ją podziel.
+ </notification>
+ <notification name="ReleaseLandWarning">
+ Porzucasz posiadłość o powierzchni [AREA] m².
+Porzucenie tej posiadłości usunie ją z Twoich własności.
+Nie otrzymasz za to żadnej opłaty.
+
+Porzucić posiadłość?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="CannotDivideLandNothingSelected">
+ Nie można podzielić posiadłości:
+
+Posiadłość nie została wybrana.
+ </notification>
+ <notification name="CannotDivideLandPartialSelection">
+ Nie można podzielić posiadłości:
+
+Posiadłość została wybrana w całości.
+Spróbuj wybrać część posiadłości.
+ </notification>
+ <notification name="LandDivideWarning">
+ Podział tej posiadłości stworzy dwie posiadłości z których każda będzie mogła mieć indywidualne ustawienia.
+Niektóre ustawienia zostaną zmienione na domyślne po tej operacji.
+
+Podzielić posiadłość?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="CannotDivideLandNoRegion">
+ Nie można podzielić posiadłości:
+Region nie znaleziony.
+
+Zgłoś ten problem pod Pomoc &gt; Zgłoś Błędy Klienta
+ </notification>
+ <notification name="CannotJoinLandNoRegion">
+ Nie można połączyć posiadłości:
+Region nie znaleziony.
+
+Zgłoś ten problem pod Pomoc &gt; Zgłoś Błędy Klienta
+ </notification>
+ <notification name="CannotJoinLandNothingSelected">
+ Nie można połączyć posiadłości:
+Posiadłości nie zostały wybrane.
+ </notification>
+ <notification name="CannotJoinLandEntireParcelSelected">
+ Nie można połączyć posiadłości:
+Tylko jedna posiadłość została wybrana.
+
+Wybierz obaszar usytuowany na obu posiadłościach.
+ </notification>
+ <notification name="CannotJoinLandSelection">
+ Nie można połączyć posiadłości:
+Musisz wybrać więcej niż jedną posiadłość.
+
+Wybierz obaszar usytuowany na obu posiadłościach.
+ </notification>
+ <notification name="JoinLandWarning">
+ Połączenie tego obszaru utworzy jedną większą posiadłość ze wszystkich posiadłości przecinających wybrany prostokąt. Nazwa i opcje posiadłości bedą musiały zostać skonfigurowane.
+
+Połączyć posiadłości?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="ShowOwnersHelp">
+ Pokaż właścicieli:
+Pokoloruj posiadłości zgodnie z przynależnością do właściciela
+
+Zielony = Twoja Posiadłość
+Morski = Posiadłość Twojej Grupy
+Czerwony = Posiadłości Innych
+Żółty = Na Sprzedaż
+Fioletowy = Na Aukcję
+Szary = Publiczna
+ </notification>
+ <notification name="ConfirmNotecardSave">
+ Ta notka musi być zapisana żeby mogła być skopiowana lub zobaczona. Zapisać notkę?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmItemCopy">
+ Skopiować ten obiekt do Twojej szafy?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Skopiuj"/>
+ </notification>
+ <notification name="ResolutionSwitchFail">
+ Zmiana rozdzielczości do [RESX] x [RESY] nie powidła się
+ </notification>
+ <notification name="ErrorUndefinedGrasses">
+ Błąd: Niezdefiniowane trawy: [SPECIES]
+ </notification>
+ <notification name="ErrorUndefinedTrees">
+ Bład: Niezdefiniowane drzewa: [SPECIES]
+ </notification>
+ <notification name="CannotSaveWearableOutOfSpace">
+ Nie można zapisać &apos;[NAME]&apos; do pliku stroju. Musisz zwolnić trochę miejsca na Twoim komputerze i zapisać strój jeszcze raz.
+ </notification>
+ <notification name="CannotSaveToAssetStore">
+ Nie można zapisać [NAME] w centralnym zbiorze danych. Zazwyczaj jest to tymczasowy problem. Możesz kontynuować modyfikacje i zapisać strój ponownie za kilka minut.
+
+Jeżeli wciąż masz ten problem, wybierz Pomoc &gt; Zgłoś Błędy Klienta i podaj szczegóły dotyczące konfiguracji sieci.
+ </notification>
+ <notification name="YouHaveBeenLoggedOut">
+ Twoja sesja [SECOND_LIFE] została zakończona:
+[MESSAGE]
+
+Kliknij Kontynuuj żeby zobaczyć IMy i czat.
+Żadne inne operacje nie będą dozwolone. Kliknij Wyłącz w celu natychmiastowego opuszczenia [SECOND_LIFE].
+ <usetemplate name="okcancelbuttons" notext="Wyłącz" yestext="Kontynuuj"/>
+ </notification>
+ <notification name="OnlyOfficerCanBuyLand">
+ Nie możesz kupić posiadłości dla grupy.
+Nie masz praw kupowania posiadłości dla Twojej aktywnej grupy.
+ </notification>
+ <notification label="Dodaj Znajomość" name="AddFriend">
+ Znajomi mogą pozwalać na odnajdywanie się wzajemnie na mapie i na otrzymywanie notyfikacji o logowaniu do [SECOND_LIFE].
+
+Zaproponować znajomość [NAME]?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification label="Add Friend" name="AddFriendWithMessage">
+ Znajomi mogą pozwalać na odnajdywanie się wzajemnie na mapie i na otrzymywanie notyfikacji o logowaniu do [SECOND_LIFE].
+
+Zaproponować znajomość [NAME]?
+ <form name="form">
+ <input name="message" type="text">
+ Chcesz zawrzeć znajomość?
+ </input>
+ <button name="Offer" text="OK"/>
+ <button name="Cancel" text="Anuluj"/>
+ </form>
+ </notification>
+ <notification name="RemoveFromFriends">
+ Chcesz usunąć [FIRST_NAME] [LAST_NAME] z listy Twoich znajomych?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="RemoveMultipleFromFriends">
+ Chcesz usunąć grupę osób z listy Twoich znajomych?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="GodDeleteAllScriptedPublicObjectsByUser">
+ Na pewno chcesz usunąć wszystkie skryptowane obiekty należące do
+** [AVATAR_NAME] **
+z posiadłości innych w tym symulatorze?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="GodDeleteAllScriptedObjectsByUser">
+ Na pewno chcesz usunąć wszystkie skryptowane obiekty należące do
+** [AVATAR_NAME] **
+ze wszystkich posiadłości w tym symulatorze?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="GodDeleteAllObjectsByUser">
+ Na pewno chcesz usunąć wszystkie obiekty (skryptowane i nie) należące do
+** [AVATAR_NAME] **
+ze wszystkich posiadłości w tym symulatorze?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="BlankClassifiedName">
+ Musisz nadać tytuł Twojej reklamie.
+ </notification>
+ <notification name="MinClassifiedPrice">
+ Minimalna cena za publikację wynosi [MIN_PRICE]L$.
+
+Wybierz wyższą cenę.
+ </notification>
+ <notification name="ConfirmObjectDeleteLock">
+ Przynajmnie jeden z wybranych obiektów jest zablokowany.
+
+Na pewno chcesz usunąć te obiekty?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteNoCopy">
+ Przynajmniej jeden z wybranych obiektów jest niekopiowalny.
+
+Na pewno chcesz usunąć te obiekty?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteNoOwn">
+ Przynajmniej jeden z wybranych obiektów nie należy do Ciebie.
+
+Na pewno chcesz usunąć te obiekty?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteLockNoCopy">
+ Przynajmnie jeden z wybranych obiektów jest zablokowany.
+Przynajmniej jeden z wybranych obiektów jest niekopiwalny.
+
+Na pewno chcesz usunąć te obiekty?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteLockNoOwn">
+ Przynajmnie jeden z wybranych obiektów jest zablokowany.
+Przynajmniej jeden z wybranych obiektów nie należy do Ciebie.
+
+Na pewno chcesz usunąć te obiekty?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteNoCopyNoOwn">
+ Przynajmniej jeden z wybranych obiektów jest niekopiowalny.
+Przynajmniej jeden z wybranych obiektów nie należy do Ciebie.
+
+Na pewno chcesz usunąć te obiekty?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteLockNoCopyNoOwn">
+ Przynajmnie jeden z wybranych obiektów jest zablokowany.
+Przynajmniej jeden z wybranych obiektów jest niekopiwalny.
+Przynajmniej jeden z wybranych obiektów nie należy do Ciebie.
+
+Na pewno chcesz usunąć te obiekty?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectTakeLock">
+ Przynajmnie jeden obiekt jest zablokowany.
+
+Na pewno chcesz usunąć te obiekty?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectTakeNoOwn">
+ Przynajmniej jeden obiekt nie należy do Ciebie.
+Jeżeli będziesz kontynuować prawa następnego właściciela zostaną przypisane co, potencjalnie, może ograniczyć Twoje prawa do modyfikacji lub kopiowania obiektów.
+
+Na pewno chcesz wziąść te obiekty?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmObjectTakeLockNoOwn">
+ Przynajmnie jeden obiekt jest zablokowany.
+Przynajmniej jeden obiekt nie należy do Ciebie.
+Jeżeli będziesz kontynuować prawa następnego właściciela zostaną przypisane co, potencjalnie, może ograniczyć Twoje prawa do modyfikacji lub kopiowania obiektów.
+
+Na pewno chcesz wziąść te obiekty?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="CantBuyLandAcrossMultipleRegions">
+ Nie możesz kupić posiadłości ponieważ wybrany obszar przekracza granicę regionów.
+
+Wybierz mniejszy obszar i spróbuj jeszcze raz.
+ </notification>
+ <notification name="DeedLandToGroup">
+ Po przekazaniu tej posiadłości grupa będzia musiała mieć i utrzymywać wystarczający kredyt na używanie posiadłości. Cena zakupu posiadłości nie jest zwracana właścicielowi. Jeżeli przekazana posiadłość zostanie sprzedana, cana sprzedaży zostanie podzielona pomiędzy członków grupy.
+
+Przekazać tą posiadłość o powierzchni [AREA] m² grupie &apos;[GROUP_NAME]&apos;?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="DeedLandToGroupWithContribution">
+ Po przekazaniu tej posiadłości grupa będzia musiała mieć i utrzymywać wystarczający kredyt na używanie posiadłości. Przekazanie będzie zawierać równoczesne przypisanie posiadłości do grupy od &apos;[FIRST_NAME] [LAST_NAME]&apos;.
+Cena zakupu posiadłości nie jest zwracana właścicielowi. Jeżeli przekazana posiadłość zostanie sprzedana, cana sprzedaży zostanie podzielona pomiędzy członków grupy.
+
+Przekazać tą posiadłość o powierzchni [AREA] m² grupie &apos;[GROUP_NAME]&apos;?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="DisplaySetToSafe">
+ Ustawienia grafiki zostały zmienione do bezpiecznego poziomu ponieważ opcja -safe została wybrana.
+ </notification>
+ <notification name="DisplaySetToRecommended">
+ Ustawienia grafiki zostały zmienione do zalecanego poziomu na podstawie konfiguracji Twojego systemu.
+ </notification>
+ <notification name="ErrorMessage">
+ [ERROR_MESSAGE]
+ </notification>
+ <notification name="AvatarMoved">
+ Twoje miejsce [TYPE] jest obecnie niedostępne. [HELP]
+Przeniesiono Cię do pobliskiego regionu.
+ </notification>
+ <notification name="ClothingLoading">
+ Twoje ubranie wciąż się ładuje.
+Możesz normalnie używać [SECOND_LIFE], inni użytkownicy będą Cię widzieli poprawnie.
+ <form name="form">
+ <ignore name="ignore" text="Ładowanie ubrania zajmuje dużo czasu"/>
+ </form>
+ </notification>
+ <notification name="FirstRun">
+ Instalacja [SECOND_LIFE] zakończona.
+
+Jeżeli używasz [SECOND_LIFE] po raz pierwszy to musisz stworzyć konto żeby móc się zalogować.
+Przejść na stronę www.secondlife.com żeby stworzyć nowe konto?
+ <usetemplate name="okcancelbuttons" notext="Kontynuuj" yestext="Nowe Konto..."/>
+ </notification>
+ <notification name="LoginPacketNeverReceived">
+ Problemy z połączeniem. Problem może być spowodowany Twoim połączeniem z Internetem albo może istnieć po stronie serwerów Second Life.
+
+Możesz sprawdzić swoje połączenie z Internetem i spróbować ponownie za kilka minut albo kliknij Pomoc żeby połączyć się ze stroną pomocy technicznej albo wybierz Teleportuj żeby spróbować teleportacji do Twojego miejsca startu.
+ <form name="form">
+ <button name="OK" text="OK"/>
+ <button name="Help" text="Pomoc"/>
+ <button name="Teleport" text="Teleportuj"/>
+ </form>
+ </notification>
+ <notification name="WelcomeChooseSex">
+ Twoja postać pojawi się za moment.
+
+Używaj strzałek żeby sie poruszać.
+Naciśnij F1 w dowolnej chwili po pomoc albo żeby dowiedzieć się więcej o [SECOND_LIFE].
+Wybierz awatara właściwej płci.
+Ten wybór będzie można później zmienić.
+ <usetemplate name="okcancelbuttons" notext="Kobieta" yestext="Mężczyzna"/>
+ </notification>
+ <notification name="NotEnoughCurrency">
+ [NAME] [PRICE]L$ Masz za mało L$.
+ </notification>
+ <notification name="GrantedModifyRights">
+ Masz teraz prawa modyfikacji obiektów należących do [FIRST_NAME] [LAST_NAME].
+ </notification>
+ <notification name="RevokedModifyRights">
+ Prawa modyfikacji obiektów należących do [FIRST_NAME] [LAST_NAME] zostały Ci odebrane.
+ </notification>
+ <notification name="FlushMapVisibilityCaches">
+ To spowoduje wyczyszczenie buforów map regionu.
+Jest to użyteczne wyłącznie podczas szukania błędów.
+(Podczas produkcji poczekaj 5 minut i mapy wszystkich zostaną uaktualnione po relogu.)
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="BuyOneObjectOnly">
+ Nie możesz zakupić więcej niż jednego obiektu w tym samym czasie. Proszę wybrać tylko jeden obiekt i spróbować ponowanie.
+ </notification>
+ <notification name="OnlyCopyContentsOfSingleItem">
+ Nie można kopiować zawartości więcej niż jednego obiektu naraz.
+Wybierz pojedynczy obiekt i spróbuj jeszcze raz.
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="KickUsersFromRegion">
+ Teleportować wszystkich Rezydentów z tego regionu to ich miejsca startu?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="EstateObjectReturn">
+ Na pewno chcesz odesłać wszystkie obiekty należące do
+[USER_NAME] ?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="InvalidTerrainBitDepth">
+ Nie można ustawić tekstur regionu:
+Tekstura terenu [TEXTURE_NUM] ma niewłaściwą głębię koloru - [TEXTURE_BIT_DEPTH].
+Zamień teksturę [TEXTURE_NUM] na 24-o bitową teksturę o wymiarze 512x512 lub mniejszą i ponownie kliknij Zastosuj.
+ </notification>
+ <notification name="InvalidTerrainSize">
+ Nie można ustawić tekstur regionu:
+Tekstura terenu [TEXTURE_NUM] jest za duża - [TEXTURE_SIZE_X]x[TEXTURE_SIZE_Y].
+Zamień teksturę [TEXTURE_NUM] na 24-o bitową teksturę o wymiarze 512x512 lub mniejszą i ponownie kliknij Zastosuj.
+ </notification>
+ <notification name="RawUploadStarted">
+ Ładowanie rozpoczęte. Może potrwać do dwóch minut zależnie od prędkości Twojego połączenia.
+ </notification>
+ <notification name="ConfirmBakeTerrain">
+ Na pewno chcesz zapisać obecne ukształtowanie terenu jako punkt odniesienia dla górnego i dolnego limitu terenu i jako domyślą wartość dla opcji Odtwórz?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="MaxAllowedAgentOnRegion">
+ Maksymalna liczba gości wynosi [MAX_AGENTS].
+ </notification>
+ <notification name="MaxBannedAgentsOnRegion">
+ Maksymalna liczba nieporządanych Rezydentów (banów) wynosi [MAX_BANNED].
+ </notification>
+ <notification name="MaxAgentOnRegionBatch">
+ Próba dodania [NUM_ADDED] osób nie powidła się:
+[MAX_AGENTS] [LIST_TYPE] limit przekroczony o [NUM_EXCESS].
+ </notification>
+ <notification name="MaxAllowedGroupsOnRegion">
+ Możesz mieć maksymalnie [MAX_GROUPS] Dozwolonych Grup.
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Ustal"/>
+ </notification>
+ <notification name="MaxManagersOnRegion">
+ Możesz mieć maksymalnie [MAX_MANAGER] Zarządców Majątku.
+ </notification>
+ <notification name="OwnerCanNotBeDenied">
+ Nie możesz dodać właściciela majątku do listy &apos;Nieporządanych Rezydentów (banów)&apos; majątku.
+ </notification>
+ <notification name="CanNotChangeAppearanceUntilLoaded">
+ Nie możesz zmienić wyglądu podczas ładowania ubrań i kształtów.
+ </notification>
+ <notification name="ClassifiedMustBeAlphanumeric">
+ Tytuł Twojej reklamy musi zaczynać się od litery (A-Z) albo cyfry. Znaki przestankowe są niedozwolone.
+ </notification>
+ <notification name="CantSetBuyObject">
+ Nie możesz wybrać Kup Obiekt ponieważ obiekt nie jest na sprzedaż.
+Wybierz obiekt na sprzedaż i spróbuj jeszcze raz.
+ </notification>
+ <notification name="FinishedRawDownload">
+ Plik surowego terenu załadowany pod:
+[DOWNLOAD_PATH].
+ </notification>
+ <notification name="DownloadWindowsMandatory">
+ Nowa wersja [SECOND_LIFE] została opublikowana.
+[MESSAGE]
+Musisz zainstalować nową wersję żeby używać [SECOND_LIFE].
+ <usetemplate name="okcancelbuttons" notext="Wyłącz program" yestext="Załaduj"/>
+ </notification>
+ <notification name="DownloadWindows">
+ Uaktualniona wersja [SECOND_LIFE] została opublikowana.
+[MESSAGE]
+Aktualizacja nie jest wymagana ale jest zalecana w celu poprawy prędkości i stabilności.
+ <usetemplate name="okcancelbuttons" notext="Kontynuuj" yestext="Załaduj"/>
+ </notification>
+ <notification name="DownloadWindowsReleaseForDownload">
+ Uaktualniona wersja [SECOND_LIFE] została opublikowana.
+[MESSAGE]
+Aktualizacja nie jest wymagana ale jest zalecana w celu poprawy prędkości i stabilności.
+ <usetemplate name="okcancelbuttons" notext="Kontynuuj" yestext="Załaduj"/>
+ </notification>
+ <notification name="DownloadMacMandatory">
+ Nowa wersja [SECOND_LIFE] została opublikowana.
+[MESSAGE]
+Musisz zainstalować nową wersję żeby używać [SECOND_LIFE].
+
+Załadować do foldera Aplikacji?
+ <usetemplate name="okcancelbuttons" notext="Wyłącz program" yestext="Załaduj"/>
+ </notification>
+ <notification name="DownloadMac">
+ Uaktualniona wersja [SECOND_LIFE] została opublikowana.
+[MESSAGE]
+Aktualizacja nie jest wymagana ale jest zalecana w celu poprawy prędkości i stabilności.
+
+Załadować do foldera Aplikacji?
+ <usetemplate name="okcancelbuttons" notext="Kontynuuj" yestext="Załaduj"/>
+ </notification>
+ <notification name="DownloadMacReleaseForDownload">
+ Uaktualniona wersja [SECOND_LIFE] została opublikowana.
+[MESSAGE]
+Aktualizacja nie jest wymagana ale jest zalecana w celu poprawy prędkości i stabilności.
+
+Załadować do foldera Aplikacji?
+ <usetemplate name="okcancelbuttons" notext="Kontynuuj" yestext="Załaduj"/>
+ </notification>
+ <notification name="DeedObjectToGroup">
+ Przekazanie tego obiektu spowoduje, że grupa:
+* Otrzyma L$ zapłacone temu obiektowi
+ <usetemplate ignoretext="Przekazując obiekty grupom" name="okcancelignore" notext="Anuluj" yestext="Przekaż"/>
+ </notification>
+ <notification name="WebLaunchExternalTarget">
+ Otworzyć systemową przegłądarke żeby zobaczyć tą zawartość?
+ <usetemplate ignoretext="Otwierając systemową przeglądarkę żeby zobaczyć stronę" name="okcancelignore" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchJoinNow">
+ Otworzyć stronę www.secondlife.com żeby zarządzać Twoim kontem?
+ <usetemplate ignoretext="Otwierając systemową przeglądarkę żeby zarządzać Twoim kontem" name="okcancelignore" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchBugReport101">
+ Odwiedź [SECOND_LIFE] Wiki i zobacz jak zgłaszać błędy.
+ <usetemplate ignoretext="Otwierając przeglądarkę żeby zobaczyć Wiki zgłaszania błędów" name="okcancelignore" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchSecurityIssues">
+ Odwiedź [SECOND_LIFE] Wiki i zobacz jak zgłaszać problemy z bezpieczeństwem danych.
+ <usetemplate ignoretext="Otwierając przeglądarkę żeby zobaczyć Wiki kwestii bezpieczeństwa danych" name="okcancelignore" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchQAWiki">
+ Odwiedź [SECOND_LIFE] Wiki pytań i odpowiedzi.
+ <usetemplate ignoretext="Otwierając przeglądarkę żeby zobaczyć Wiki pytań i odpowiedzi" name="okcancelignore" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchPublicIssue">
+ Odwiedź [SECOND_LIFE] katalog publicznych problemów, gdzie możesz zgłaszać błędy i inne problemy.
+ <usetemplate ignoretext="Otwierając przeglądarkę żeby zobaczyć katalog publicznych problemów" name="okcancelignore" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchPublicIssueHelp">
+ Odwiedź [SECOND_LIFE] Wiki i sprawdź jak używać katalogu publicznych problemów.
+ <usetemplate ignoretext="Otwierając przeglądarkę żeby zobaczyć Wiki katalogu publicznych problemów" name="okcancelignore" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchSupportWiki">
+ Otwórz oficjalny blog Lindenów żeby zobaczyć nowe wiadomości i informacje.
+ <usetemplate ignoretext="Otwierając przeglądarkę żeby zobaczyć blog" name="okcancelignore" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchLSLGuide">
+ Otworzyć przewodnik skryptowania po pomoc ze skryptami?
+ <usetemplate ignoretext="Otwierając przeglądarkę żeby zobaczyć przewodnik skryptowania" name="okcancelignore" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchLSLWiki">
+ Otworzyć portal LSL po pomoc ze skryptami?
+ <usetemplate ignoretext="Otwierając przeglądarkę żeby zobaczyć portal LSL" name="okcancelignore" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="ReturnToOwner">
+ Czy na pewno chcesz zwrócić wybrane obiekty do ich właścicieli? Wszystkie udostępnione obiekty z prawem transferu zostaną zwrócone poprzednim właścicielom.
+
+*UWAGA* Wszystkie udostępnione obiekty bez prawa transferu zostaną usunięte!
+ <usetemplate ignoretext="Zwracając obiekty ich właścicielom" name="okcancelignore" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="GroupLeaveConfirmMember">
+ Jesteś członkiem grupy [GROUP].
+Chcesz opuścić grupę?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmKick">
+ NA PEWNO chcesz wyrzucić wszystkich użytkowników z sieci?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Wyrzuć Wszystkich Użytkowników"/>
+ </notification>
+ <notification name="MuteLinden">
+ Przepraszamy, ale nie możesz wyciszyć Lindena.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="CannotStartAuctionAlreadyForSale">
+ Aukcja nie może zostać rozpoczęta w posiadłości, która została już wcześniej wystawiona na aukcję. Deaktywuj opcję sprzedaży posiadłości jeżeli chcesz rozpocząć aukcję.
+ </notification>
+ <notification label="Błąd Wyciszenia Obiektu Przez Nazwę" name="MuteByNameFailed">
+ Ta osoba została już wyciszona przez Ciebie.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="RemoveItemWarn">
+ Pomimo, że jest to dozwolone, usunięcie zawartości może zniszczyć obiekt. Chcesz usunąć?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="CantOfferCallingCard">
+ Nie możesz dać wizytówki w tym momencie. Spróbuj jeszcze raz za chwilę.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="CantOfferFriendship">
+ Nie możesz zaoferować znajomości w tym momencie. Spróbuj jeszcze raz za chwilę.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="BusyModeSet">
+ Tryb Pracy jest włączony.
+Czat i IMy bedą ukryte. Wysłane IMy będą otrzymywały Twoją odpowiedź Trybu Pracy. Propozycje teleportacji będą odrzucone.
+Dodatkowo, wszystkie podarowane dla Ciebie obiekty będą automatycznie zapisywane w folderze "Kosz" w Twojej szafie.
+ <usetemplate ignoretext="Włączając Tryb Pracy" name="okignore" yestext="OK"/>
+ </notification>
+ <notification name="JoinedTooManyGroupsMember">
+ Należysz już do maksymalnej ilości grup.
+Musisz opuścić przynajmniej jedną grupę żeby przyjąć członkostwo w tej grupie, albo musisz odmówić. W celu opuszczenia grupy wybierz opcję &apos;Grupy...&apos; z menu &apos;Edycja&apos;.
+[NAME] oferuje Ci członkostwo w grupie.
+[INVITE]
+ <usetemplate name="okcancelbuttons" notext="Odmów" yestext="Przyjmij"/>
+ </notification>
+ <notification name="KickUser">
+ Z jakim komunikatem wyrzucić tego użytkownia?
+ <form name="form">
+ <input name="message" type="text">
+ Administrator wylogował Cię.
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Anuluj"/>
+ </form>
+ </notification>
+ <notification name="KickAllUsers">
+ Z jakim komunikatem wyrzucić wszystkich użytkowników z regionu?
+ <form name="form">
+ <input name="message" type="text">
+ Administrator wylogował Cię.
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Anuluj"/>
+ </form>
+ </notification>
+ <notification name="FreezeUser">
+ Z jakim komunikatem unieruchomić tego użytkownia?
+ <form name="form">
+ <input name="message" type="text">
+ Unieruchomiono Cię. Nie możesz się ruszać ani rozmawiać. Administrator skontaktuje się z Tobą poprzez IM.
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Anuluj"/>
+ </form>
+ </notification>
+ <notification name="UnFreezeUser">
+ Z jakim komunikatem odblokować tego użytkownia?
+ <form name="form">
+ <input name="message" type="text">
+ Odblokowano Cię.
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Anuluj"/>
+ </form>
+ </notification>
+ <notification name="OfferTeleport">
+ Zaproponować teleportację do miejsca Twojego pobytu z tą wiadomością?
+ <form name="form">
+ <input name="message" type="text">
+ Zapraszam do siebie. Region: [REGION]
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Anuluj"/>
+ </form>
+ </notification>
+ <notification name="OfferTeleportFromGod">
+ Wymusić przeniesienie użytkownika do miejsca Twojego pobytu?
+ <form name="form">
+ <input name="message" type="text">
+ Zapraszam do siebie. Region: [REGION]
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Anuluj"/>
+ </form>
+ </notification>
+ <notification name="TeleportFromLandmark">
+ Na pewno chcesz się teleportować?
+ <usetemplate ignoretext="Teleportując z miejsca (LM) z Twojej szafy" name="okcancelignore" notext="Anuluj" yestext="Teleportuj"/>
+ </notification>
+ <notification label="Wiadomość do Wszystkich w Twoim Majątku" name="MessageEstate">
+ Wpisz krótką wiadomość która zostanie wysłana do wszystkich osób w Twoim majątku.
+ <form name="form">
+ <input name="message" type="text"/>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Anuluj"/>
+ </form>
+ </notification>
+ <notification label="Zmiana Majątku Lindenów" name="ChangeLindenEstate">
+ Dokonujesz zmiany w Regionie Głównym należącym do Lindenów (Regiony Główne, Teen Grid, Orientacja).
+
+Żądana operacja jest wyjątkowo niebezpieczna dla wszystkich Rezydentów przebywających w regionie. Dodatkowo, zmiany dokonane w Regionie Głównym mogą spowodować problemy przestrzeni serwerowej innych regionów.
+
+Kontynuować?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification label="Zmiana Dostępu do Majątku Lindenów" name="ChangeLindenAccess">
+ Dokonujesz zmiany w liście dostępu Regionu Głównego należącego do Lindenów (Regiony Główne, Teen Grid, Orientacja).
+
+Żądana operacja jest wyjątkowo niebezpieczna dla wszystkich Rezydentów przebywających w regionie i powinna być używana wyłącznie w celu zablokowania opcji pozwalającej na przeniesienie obiektów/L$ do/z sieci.
+Dodatkowo, zmiany dokonane w Regionie Głównym mogą spowodować problemy przestrzeni serwerowej innych regionów.
+
+Kontynuować?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification label="Wybierz Majątek" name="EstateAllowedAgentAdd">
+ Dodać do listy dostępu do tego majątku czy do [ALL_ESTATES]?
+ <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek"/>
+ </notification>
+ <notification label="Wybierz Majątek" name="EstateAllowedAgentRemove">
+ Usunąć z listy dostępu do tego majątku czy do [ALL_ESTATES]?
+ <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek"/>
+ </notification>
+ <notification label="Wybierz Majątek" name="EstateAllowedGroupAdd">
+ Dodać do listy dostępu grup do tego majątku czy do [ALL_ESTATES]?
+ <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek"/>
+ </notification>
+ <notification label="Wybierz Majątek" name="EstateAllowedGroupRemove">
+ Usunąć z listy dostępu grup do tego majątku czy do [ALL_ESTATES]?
+ <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek"/>
+ </notification>
+ <notification label="Wybierz Majątek" name="EstateBannedAgentAdd">
+ Zablokować dostęp do tego majątku czy do [ALL_ESTATES]?
+ <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek"/>
+ </notification>
+ <notification label="Wybierz Majątek" name="EstateBannedAgentRemove">
+ Zdjąć tego Rezydenta z listy niepożądanych (bany) dla tego majątku czy dla [ALL_ESTATES]?
+ <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek"/>
+ </notification>
+ <notification label="Wybierz Majątek" name="EstateManagerAdd">
+ Dodać zarządce majątku do tego majątku czy do [ALL_ESTATES]?
+ <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek"/>
+ </notification>
+ <notification label="Wybierz Majątek" name="EstateManagerRemove">
+ Usunąć zarządce majątku z tego majątku czy z [ALL_ESTATES]?
+ <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Wszystkie majątki" yestext="Ten majątek"/>
+ </notification>
+ <notification label="Potwierdź Wyrzucenie" name="EstateKickUser">
+ Wyrzucić [EVIL_USER] z tego majątku?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="EstateChangeCovenant">
+ Na pewno chcesz zminić treść umowy dla tego majątku?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="RegionEntryAccessBlocked">
+ Ze względu na Twój wiek, nie jesteś uprawniony do przebywania w tym regionie. Może być to wynikiem braku informacji na temat weryfikacji Twojego wieku.
+
+Upewnij się, że masz zainstalowaną najnowszą wersję klienta i skorzystaj z Second Life:Pomoc by uzyskać więcej informacji na temat dostępu do regionów z podanym rodzajem treści jaką zawiera.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="RegionEntryAccessBlocked_KB">
+ Ze względu na Twój wiek, nie jesteś uprawniony do przebywania w tym regionie.
+
+Skorzystaj z Second Life:Pomoc by uzyskać więcej informacji na temat dostępu do regionów z podanym rodzajem treści jaką zawiera.
+ <url name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=6010
+ </url>
+ <usetemplate
+ name="okcancelignore"
+ yestext="Second Life:Pomoc"
+ notext="Zamknij"
+ ignoretext="Dostęp do posiadłości jest zablokowany ze względu na rodzaj treści jaką zawiera"/>
+ </notification>
+ <notification name="RegionEntryAccessBlocked_Notify">
+ Ze względu na Twój wiek, nie jesteś uprawniony do przebywania w tym regionie.
+ </notification>
+ <notification name="RegionEntryAccessBlocked_Change">
+ W związku ze statusem ustawień Twojego wieku, nie jesteś uprawniony do przebywania w tym regionie.
+
+Możeszy wybrać &apos;Zmień Ustawienia&apos; by dokonać zmian w ustawieniach Twojego wieku by uzyskać dostęp do regionu. Wówczas będziesz w stanie znaleźć oraz mieć dostęp do [REGIONMATURITY] treści. Jeżeli zdecydujesz się na powrót do poprzednich ustawień, wybierz Edycja &gt; Ustawienia... &gt; Główne.
+ <form name="form">
+ <button
+ name="OK"
+ text="Zmień Ustawienia"/>
+ <button
+ default="true"
+ name="Cancel"
+ text="Zamknij"/>
+ <ignore name="ignore" text="Dostęp do posiadłości jest zablokowany ze względu na ustawienia rodzaju treści jaką zawiera"/>
+ </form>
+ </notification>
+ <notification name="LandClaimAccessBlocked">
+ W związku ze statusem ustawień Twojego wieku, nie możesz odzyskać tej posiadłości. Możesz potrzebować weryfikacji wieku bądź instalacji najnowszej wersji klienta.
+
+Upewnij się, że masz zainstalowaną najnowszą wersję klienta i skorzystaj z Second Life:Pomoc by uzyskać więcej informacji na temat dostępu do regionów z podanym rodzajem treści jaką zawiera.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="LandClaimAccessBlocked_KB">
+ Ze względu na Twój wiek, nie możesz odzyskać tej posiadłości.
+
+Skorzystaj z Second Life:Pomoc by uzyskać więcej informacji na temat dostępu do regionów z podanym rodzajem treści jaką zawiera.
+ <url name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=6010
+ </url>
+ <usetemplate
+ name="okcancelignore"
+ yestext="Second Life:Pomoc"
+ notext="Zamknij"
+ ignoretext="Odzyskanie posiadłości jest zablokowane ze względu na rodzaj treści jaką zwiera"/>
+ </notification>
+ <notification name="LandClaimAccessBlocked_Notify">
+ Ze względu na Twój wiek, nie możesz odzyskać tej posiadłości.
+ </notification>
+ <notification name="LandClaimAccessBlocked_Change">
+ W związku ze statusem ustawień Twojego wieku, nie możesz odzyskać tej posiadłości.
+
+Możeszy wybrać &apos;Zmień Ustawienia&apos; by dokonać zmian w ustawieniach Twojego wieku by uzyskać dostęp do posiadłości. Wówczas będziesz w stanie znaleźć, oraz mieć dostęp do [REGIONMATURITY] treści. Jeżeli zdecydujesz się na powrót do poprzednich ustawień, wybierz Edycja &gt; Ustawienia... &gt; Główne.
+ <usetemplate
+ name="okcancelignore"
+ yestext="Zmień Ustawienia"
+ notext="Zamknij"
+ ignoretext="Odzyskanie posiadłości jest zablokowane ze względu na ustawienia rodzaju treści jaką zawiera"/>
+ </notification>
+ <notification name="LandBuyAccessBlocked">
+ Ze względu na Twój wiek, nie możesz kupić tej posiadłości. Może być to wynikiem braku informacji na temat weryfikacji Twojego wieku.
+
+Upewnij się, że masz zainstalowaną najnowszą wersję klienta i skorzystaj z Second Life:Pomoc by uzyskać więcej informacji na temat dostępu do regionów z podanym rodzajem treści jaką zawiera.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="LandBuyAccessBlocked_KB">
+ Ze względu na Twój wiek, nie możesz kupić tej posiadłości.
+
+Skorzystaj z Second Life:Pomoc by uzyskać więcej informacji na temat dostępu do regionów z podanym rodzajem treści jaką zawiera.
+ <url name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=6010
+ </url>
+ <usetemplate
+ name="okcancelignore"
+ yestext="Second Life:Pomoc"
+ notext="Zamknij"
+ ignoretext="Zakup posiadłości jest zablokowany ze względu na rodzaj treści jaką zawiera"/>
+ </notification>
+ <notification name="LandBuyAccessBlocked_Notify">
+ Ze względu na Twój wiek, nie możesz kupić tej posiadłości.
+ </notification>
+ <notification name="LandBuyAccessBlocked_Change">
+ W związku ze statusem ustawień Twojego wieku, nie możesz kupić tej posiadłości.
+
+Możesz wybrać &apos;Zmień Ustawienia&apos; by dokonać zmian w ustawieniach Twojego wieku by uzyskać dostęp do posiadłości. Wówczas będziesz w stanie znaleźć oraz mieć dostęp do [REGIONMATURITY] treści. Jeżeli zdecydujesz się na powrót do poprzednich ustawień, wybierz Edycja &gt; Ustawienia... &gt; Główne.
+ <usetemplate
+ name="okcancelignore"
+ yestext="Zmień Ustawienia"
+ notext="Zamknij"
+ ignoretext="Zakup posiadłości jest zablokowany ze względu na ustawienia rodzaju treści jaką zawiera"/>
+ </notification>
+ <notification name="ProblemImportingEstateCovenant">
+ Problem z importem umowy majątku.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="ProblemAddingEstateManager">
+ Problemy z dodawaniem nowego zarządcy majątku. Jeden lub więcaj majątk może mieć wypełnioną listę zarządców.
+ </notification>
+ <notification name="ProblemAddingEstateGeneric">
+ Problemy z dodawaniem do listy majątku. Jeden lub więcaj majątk może mieć wypełnioną listę.
+ </notification>
+ <notification name="UnableToLoadNotecardAsset">
+ Brak możliwości załadowania noty w tej chwili.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="NotAllowedToViewNotecard">
+ Niewystarczające prawa do zobaczenia notki przypisanej do wybranego ID.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="MissingNotecardAssetID">
+ ID notki nie znalezione w bazie danych.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="PublishClassified">
+ Pamiętaj: Opłaty za reklamę są bezzwrotne.
+
+Zamieścić tą reklamę za [AMOUNT]L$?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="SetClassifiedMature">
+ Czy ta reklama zawiera treść &apos;Mature&apos;?
+ <usetemplate
+ canceltext="Anuluj"
+ name="yesnocancelbuttons"
+ notext="Nie"
+ yestext="Tak"/>
+ </notification>
+ <notification name="SetGroupMature">
+ Czy ta grupa zawiera treść &apos;Mature&apos;?
+ <usetemplate
+ canceltext="Anuluj"
+ name="yesnocancelbuttons"
+ notext="Nie"
+ yestext="Tak"/>
+ </notification>
+ <notification label="Potwierdź Restart" name="ConfirmRestart">
+ Na pewno chcesz zrobić restart tego regionu za 2 minuty?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification label="Wiadomość do Wszystkich w tym Regionie" name="MessageRegion">
+ Wpisz krótką wiadomość która zostanie wysłana do wszystkich osób w tym regionie.
+ <form name="form">
+ <input name="message" type="text"/>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Anuluj"/>
+ </form>
+ </notification>
+ <notification label="Blokowanie Kształtowania Terenu" name="HelpRegionBlockTerraform">
+ Jeżeli ta opcja jest wybrana właściciele posiadłości nie będą mogli kształtować terenu niezależnie od ustawienia opcji &apos;Edycja Terenu&apos; dla posiadłości.
+
+Domyślnie: nie wybrana
+ </notification>
+ <notification label="Blokowanie Latania" name="HelpRegionBlockFly">
+ Jeżeli ta opcja jest wybrana ludzie nie będą mogli latać w tym regionie niezależnie od ustawienia opcji &apos;Latanie&apos; dla posiadłości.
+
+Domyślnie: nie wybrana
+ </notification>
+ <notification label="Zezwalanie na Uszkodzenia" name="HelpRegionAllowDamage">
+ Jeżeli ta opcja jest wybrana system zdrowia będzie aktywny we wszystkich posiadłościach niezależnie od ustawień dla indywidualnych posiadłości. Jeżeli ta opcja nie jest wybrana właściciele indywidualych posiadłości będą mogli kontrolować system zdrowia w swoich posiadłościach.
+
+Domyślnie: nie wybrana
+ </notification>
+ <notification label="Limit Liczby Awatarów" name="HelpRegionAgentLimit">
+ Wybierz maksymalną liczbę awatarów dozwoloną w tym regionie.
+Wydajność systemu może się zmieniać w zależności od liczby obecnych awatarów.
+
+Domyślnie: 40
+ </notification>
+ <notification label="Ekstra Obiekty" name="HelpRegionObjectBonus">
+ Ekstra Obiekty jest to mnożnik dla dozwolonych elementów (obiektów prostych). Dozwolony zakres to 1 do 10. Ustawienie &apos;1&apos; pozwala na 117 elementów na każdej posiadłości o powierzchni 512m. Ustawienie &apos;2&apos; pozwala na 234 elementy, czyli dwa razy tyle, itd.
+Maksymalna liczba elementów w regionie to 15000 niezależnie od ustawienia Ekstra Obiektów. Pamiętaj - zmniejszenie Ekstra Obiektów po fakcie może spowodować odsyłanie lub usuwanie istniejących obiektów.
+
+Domyślnie: 1,0
+ </notification>
+ <notification label="Treść" name="HelpRegionMaturity">
+ Aktywuj opcję klasyfikacji regionu ze względu na treść jaką zawiera, która zostaje wyświetlana w górnym pasku widoku w nazwie regionu oraz w podpowiedziach Mapy Świata. Dodatkowo, opcja ta wpływa na dostęp do wyników w czasie wyszukiwania danego regionu. By móc odwiedzić dany region lub mieć dostęp do jego wyników w czasie wyszukiwania, Rezydent musi mieć takie same ustawienia dla treści jak dany region.
+
+By dokonana zmiana została zsynchronizowana z Mapą Świata, poczekaj kilka minut.
+ </notification>
+ <notification label="Blokowanie Popychania" name="HelpRegionRestrictPushObject">
+ Ta opcja powoduje, że popychanie będzie ograniczone w całym regionie. Jeżeli ta opcja jest wybrana Rezydenci mogą być popchnięci tylko przez samych siebie lub przez właściciela posiadłości.
+(Popychanie odnosi sie do funkcji llPushObject() w LSL.)
+
+Domyślnie: nie wybrana
+ </notification>
+ <notification label="Dzielenie / Łączenie Posiadłości" name="HelpParcelChanges">
+ Ta opcja kontroluje czy posiadłości nie należące do właściciela tego majątku mogą być łączone / dzielone.
+Jeżeli opcja nie jest wybrana:
+* Tylko właściciele majątku i zarządcy mogą łączyć / dzielić posiadłości.
+* Tylko posiadłości należące do właściciela albo do grupy mogą być
+ łączone / dzielone przez członków z wystarczającymi prawami.
+Jeżeli ta opcja jest wybrana:
+* Wszyscy właściciele mogą łączyć / dzielić swoje posiadłości.
+* Posiadłości należące do grupy mogą być łączone / dzielone
+ przez członków z wystarczającymi prawami.
+
+Domyślnie: wybrana
+ </notification>
+ <notification label="Nie Pokazuj w Wyszukiwaniu" name="HelpRegionSearch">
+ Wybranie tej opcji uniemożliwi właścicielom posiadłość wyświetlanie ich posiadłości w wyszukiwaniu
+Domyślinie: nie wybrana
+ </notification>
+ <notification label="Zmienione Restrykcje Wieku dla Regionu" name="RegionMaturityChange">
+ Ustawienie restrykcji wieku dla regionu zostało zmienione.
+Zazwyczaj musi upłynąć nieco czasu zanim ta zmiana zostanie odzwierciedlona na mapie.
+ </notification>
+ <notification label="Odsprzedaż Posiadłości" name="HelpRegionLandResell">
+ Właściciele majątku i zarządcy mogą sprzedawać posiadłości należące do właściciela majątku.
+Jeżeli ta opcja nie jest wybrana kupujący nie będą mogli odsprzedać posiadłości w tym regionie.
+Jeżeli ta opcja jest wybrana kupujący będą mogli odsprzedać posiadłości w tym regionie.
+
+Domyślinie: nie pozwalaj
+ </notification>
+ <notification label="Wyłącz Skrypty" name="HelpRegionDisableScripts">
+ Słaba wydajność / prędkość symulatora może być spowodowana przez skrypt. Otwórz panel Statystyki (Ctrl-Shift-1). Sprawdź ilość klatek na sekundę (FPS) w Fizyce Symulatora. Jeżeli jest mniej niż 45 wybierz panel Czas znajdujący się na dole panelu Statystyki. Jeżeli Czas Skryptów wynosi 25 ms lub więcej kliknij na Główne Skrypty. Zobaczysz listę nazw i lokacji skryptów które mogą być odpowiedzialne za pogorszenie wydajności.
+
+Wybranie opcji Wyłącz Skrypty i naciśnięcie Zastosuj tymczasowo wyłączy wszystkie skrypty w tym regionie. Wybranie tej opcji może być niezbędne w celu umożliwienia podróży do lokacji wymienionego Głównego Skryptu.
+Po przebyciu na miejsce zobacz skrypt i sprawdź czy jest on źródłem problemu. W razie potrzeby skontaktuj się z właścicielem skryptu albo usuń lub zwróć obiekt.
+Wyłączenie opcji Wyłącz Skrypty i naciśnięcie Zastosuj ponownie włączy skrypty w tym regionie.
+
+Domyślnie: nie wybrana
+ </notification>
+ <notification label="Wyłącz Kolizje" name="HelpRegionDisableCollisions">
+ Słaba wydajność / prędkość symulatora może być spowodowana przez fizyczne obiekty. Otwórz panel Statystyki (Ctrl-Shift-1). Sprawdź ilość klatek na sekundę (FPS) w Fizyce Symulatora. Jeżeli jest mniej niż 45 wybierz panel Czas znajdujący się na dole panelu Statystyki. Jeżeli Czas Symulatora (Fizyka) wynosi 20 ms lub więcej kliknij na Główne Kolizje. Zobaczysz listę nazw i lokacji fizycznych obiektów które mogą być odpowiedzialne za pogorszenie wydajności.
+
+Wybranie opcji Wyłącz Kolizje i naciśnięcie Zastosuj tymczasowo wyłączy kolizje obiektów. Wybranie tej opcji może być niezbędne w celu umożliwienia podróży do lokacji wymienionych Główneych Kolizji.
+Po przebyciu na miejsce zobacz obiekt i sprawdź czy jest on źródłem kolizji z innymi obiektami. W razie potrzeby skontaktuj się z właścicielem obiektu albo usuń lub zwróć obiekt.
+Wyłączenie opcji Wyłącz Kolizje i naciśnięcie Zastosuj ponownie włączy kolizje w tym regionie.
+
+Domyślnie: nie wybrana
+ </notification>
+ <notification label="Wyłącz Fizykę" name="HelpRegionDisablePhysics">
+ Opcja Wyłącz Fizykę jest podobna do opcji Wyłącz Kolizje i spowoduje wyłączenie symulacji fizyki. Oznacza to, że nie tylko obiekty przestaną się zderzać, ale również awatary nie będą się mogły poruszać.
+
+Ta opcja powinna być używana wyłącznie w przypadku kiedy użycie opcji Wyłącz Kolizje nie zwiększa wystarczająco wydajności symulatora w celu sprawdzenia problemów związanych z fizyką i z kolizjami.
+
+Po zakończeniu badań musisz ponownie włączyć fizykę żeby awatary mogły się poruszać.
+
+Domyślnie: nie wybrana
+ </notification>
+ <notification label="Główne Kolizje" name="HelpRegionTopColliders">
+ Pokaż listę obiektów potencjalnie doświadczających największej ilości kolizji między obiektami. Te obiekty mogą być odpowiedzialne za zmniejszenie wydajności. Wybierz Widok &gt; Statystyki i zobacz Symulator &gt; Czas &gt; Czas Symulatora (Fizyka) i sprawdź czy więcej niż 20 ms jest spędzane w fizyce.
+ </notification>
+ <notification label="Główne Skrypty" name="HelpRegionTopScripts">
+ Pokaż listę obiektów spędzających najwęcej czasu wykonując skrypty LSL. Te obiekty mogą być odpowiedzialne za zmniejszenie wydajności. Wybierz Widok &gt; Statystyki i zobacz Symulator &gt; Czas &gt; Czas Skryptów i sprawdź czy więcej niż 25 ms jest spędzane w skryptach.
+ </notification>
+ <notification label="Restart Regionu" name="HelpRegionRestart">
+ Restart procesu na serwerze obsługującym ten region za dwie minuty. Wszyscy Rezydenci w tym regionie zostaną wylogowani. Region zapisze swoje dane i powinien wystartować w przeciągu 90 sekund.
+
+Restart regionu nie naprawi większości problemów związanych z wydajnością / prędkością i generalnie powinnien być używany na polecenie.
+ </notification>
+ <notification label="Poziom Wody" name="HelpRegionWaterHeight">
+ Jest to poziom w metrach gdzie pojawia się woda. Jeżeli jest wybrana inna wartość niż 20 i Twoja woda sąsiaduje z krawędzią świata lub pustym miejscem to będzie widoczny uskok.
+
+Domyślnie: 20
+ </notification>
+ <notification label="Wznoszenie Terenu" name="HelpRegionTerrainRaise">
+ Jest to dystans w metrach o który właściciele posiadłości mogą podnieść teren powyżej ustalonego poziomu odniesienia.
+
+Domyślnie: 4
+ </notification>
+ <notification label="Obniżanie Terenu" name="HelpRegionTerrainLower">
+ Jest to dystans w metrach o który właściciele posiadłości mogą obniżyć teren poniżej ustalonego poziomu odniesienia.
+
+Domyślnie: -4
+ </notification>
+ <notification label="Ładowanie RAW Terenu" name="HelpRegionUploadRaw">
+ Ten przycisk ładuje plik .RAW dla tego regionu.
+Plik musi mieć poprawne wymiary (RGB, 256x256) i 13 kanałów.
+Najprostszy sposób na stworzenie pliku terenu to zapisanie istniejącego pliku RAW. Zalecany pierwszy krok to modyfikacje kanału czerwieni (wysokość terenu) i ładowanie nowego pliku.
+
+Ładowanie pliku może zająć 45 sekund. Załadowanie terenu nie przemieści obiektów znajdujących się na tym terenie, tylko teren i prawa przypisane do posiadłości ulegną zmianie. Może to spowodować, że niektóre obiekty znikną pod ziemią.
+
+Aby uzyskać więcej informacji o edycji map wysokości sprawdź F1 Pomoc.
+ </notification>
+ <notification label="Zapisywanie RAW Terenu" name="HelpRegionDownloadRaw">
+ Ten przycisk zapisuje plik zawierający mapę wysokości, wymiary posiadłości, dane o posiadłościach na sprzedaż i niektóre prawa przypisane do posiadłości w tym regionie. Jeżeli otwierasz ten plik w programie takim jak Photoshop musisz zdefniować wymiary dokumentu jako: RGB, 256x256, 13 kanałów. Ten plik terenu nie może zostać otwarty w żaden inny sposób.
+
+Aby uzyskać więcej informacji o edycji map wysokości sprawdź F1 Pomoc.
+ </notification>
+ <notification label="Używaj Słońca Majątku" name="HelpRegionUseEstateSun">
+ Ta opcja ustala pozycję słońca w tym regionie żeby była taka sama jak pozycja słońca w reszcie majątku.
+
+Domyślnie: włączona
+ </notification>
+ <notification label="Stałe Słońce" name="HelpRegionFixedSun">
+ Ta opcja ustala pozycję słońca do pozycji w suwaku faz i unieruchamia słońce w wybranej pozycji.
+
+Domyślnie: nie włączona
+ </notification>
+ <notification label="Ustalanie Terenu" name="HelpRegionBakeTerrain">
+ Ten przycisk zapisuje obecne ukształtowanie terenu jako nowy punkt odniesienia dla regionu. Po ustaleniu punktu odniesienia teren może zostać odtworzony do zapisanego kształtu wybierając opcję Odtwórz w Edycji Terenu. Zapisany, ustalony teren jest również punktem odniesienia dla górnego i dolnego limitu zmian wysokości.
+ </notification>
+ <notification label="Zarządcy Majątku" name="HelpEstateEstateManager">
+ Zarządca majątku jest Rezydentem oddelegowanym przez Ciebie do kontroli ustawień regionu i majątku. Zarządca majątku może zmieniać wszystkie ustawienia dostępne na tym panelu, za wyjątkiem ładowania, zapisywania i ustalania terenu. W szczgólności może kontrolować dostęp innych Rezydentów (bany) do Twojego majątku.
+
+Zarządcy majątku mogą być dodawani i usuwani wyłącznie przez właściciela majątku. Wybieraj na zarządców tylko tych Rezydentów którym ufasz ponieważ ponosisz odpowiedzialność za ich działania.
+ </notification>
+ <notification label="Używaj Globalnego Czasu" name="HelpEstateUseGlobalTime">
+ Ta opcja ustala pozycję słońca w Twoim majątku żeby była taka sama jak pozycja słońca w regionach głównych należących do Lindenów.
+ </notification>
+ <notification label="Stałe Słońce" name="HelpEstateFixedSun">
+ Ta opcja ustala pozycję słońca do pozycji w suwaku faz i unieruchamia słońce w wybranej pozycji.
+ </notification>
+ <notification label="Dostęp Publiczny" name="HelpEstateExternallyVisible">
+ Ta opcja kontroluje czy Rezydenci znajdujący się w innych majątkach mogą przenosić się do tego majątku jeżeli nie są umieszczeni na liście dostępu.
+
+Domyślnie: włączona
+ </notification>
+ <notification label="Pozwalaj na Bezpośrednią Teleportację" name="HelpEstateAllowDirectTeleport">
+ Włączenie tej opcji pozwala Rezydentom na bezpośrednią teleportację do dowolnego miejsca a Twoim majątku. Jeżeli ta opcja nie jest wyłączona Rezydenci mogą się teleportować do najbliższego teleportera.
+
+Domyślnie: nie włączona
+ </notification>
+ <notification label="Dostęp do Majątku" name="HelpEstateAllowResident">
+ Dostęp do tego majątku będzie ograniczony do wymienionych Rezydentów i poniższych grup. Ta opcja jest dostępna tylko wtedy kiedy opcja Dostępu Publicznego jest wyłączona.
+ </notification>
+ <notification label="Dostęp Grup do Majątku" name="HelpEstateAllowGroup">
+ Dostęp do tego majątku będzie ograniczony do wymienionych grup i powyższych Rezydentów. Ta opcja jest dostępna tylko wtedy kiedy opcja Dostępu Publicznego jest wyłączona.
+ </notification>
+ <notification label="Email o Nadużyciach" name="HelpEstateAbuseEmailAddress">
+ Wpisanie ważnego email adresu spowoduje, że raporty o nadużyciach w obrębie tego majątku będą wysyłane na ten adres. Zostawienie pustego miejsca spowoduje, że raporty o nadużyciach będą wysyłane wyłącznie do Linden Lab.
+ </notification>
+ <notification label="Wstęp Wzbroniony (bany)" name="HelpEstateBanResident">
+ Rezydenci umieszczeni na tej liście nie mają dostępu do Twojego majątku, niezależnie od jakichkolwiek innych ustawień.
+ </notification>
+ <notification label="Pozwalaj na Rozmowy" name="HelpEstateVoiceChat">
+ Posiadłości w tym majątku mogą mieć własne kanały głosu pozwalające Rezydentom na rozmowy z osobami w pobliżu.
+
+Domyślnie: nie włączone
+ </notification>
+ <notification label="Wersja Niezgodna z Systemem Rozmów" name="VoiceVersionMismatch">
+ Ta wersja Second Life nie jest kompatybilna z systemem Rozmów w tym regionie. Musisz zainstalować aktualną wersję Second Life żeby Rozmowy działały porawnie.
+ </notification>
+ <notification label="Umowa Majątku" name="HelpEstateCovenant">
+ Włączenie opcji umowy majątku jest wymagane w celu umożliwienia sprzedaży posiadłości w obrębie majątku.
+Jeżeli opcja umowy nie jest wybrana sprzedaż posiadłości nie jest dozwolona. Notka określająca Twoją umowę może być pusta jeżeli nie chcesz ustalić zasad specyficznych dla Twojego majątku i jeżeli nie chcesz uprzedzać nabywców o faktach odnoszących się do posiadłości przed zakupem.
+
+Umowa może być używana w celu określenia zasad, zaleceń, przekazywania informacji o kulturze lub, po prostu, Twoich własnych oczekiwań w odniesieniu do potencjalnego nabywacy.
+Możesz zdefiniować zasady podziału posidłości, prawa budowlane, zasady opłat i wszystkie dodatkowe informacje z którymi nowy właściciel powinien zapoznać się i zaakceptować przed zakupem.
+
+Nabywca musi wybrać opcję akceptacji umowy żeby trasakcja mogła zostać sfinalizowana. Umowa majątku jest zawsze dostępna w dialogu O Posiadłości dla każedej posiadłości ze zdefinowaną umową.
+ </notification>
+ <notification label="Nie Można Kupić Obiektów" name="BuyObjectOneOwner">
+ Jednorazowo możesz kupować tylko od jednego właściciela.
+Wybierz pojedynczy obiekt i spróbuj jeszcze raz.
+ </notification>
+ <notification label="Nie Można Kupić Zawartości" name="BuyContentsOneOnly">
+ Jednorazowo możesz kupić zawartość tylko jednego obiektu.
+Wybierz pojedynczy obiekt i spróbuj jeszcze raz.
+ </notification>
+ <notification label="Nie Można Kupić Zawartości" name="BuyContentsOneOwner">
+ Jednorazowo możesz kupować tylko od jednego właściciela.
+Wybierz pojedynczy obiekt i spróbuj jeszcze raz.
+ </notification>
+ <notification name="BuyOriginal">
+ Kupić oryginalny obiekt od [OWNER] za [PRICE]L$?
+Zostaniesz właścicielem tego obiektu z następującymi prawami:
+ Modyfikacje: [MODIFYPERM]
+ Kopiowanie: [COPYPERM]
+ Odsprzedawanie i Oddawanie: [RESELLPERM]
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="BuyOriginalNoOwner">
+ Kupić oryginalny obiekt za [PRICE]L$?
+Zostaniesz właścicielem tego obiektu z następującymi prawami:
+ Modyfikacje: [MODIFYPERM]
+ Kopiowanie: [COPYPERM]
+ Odsprzedawanie i Oddawanie: [RESELLPERM]
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="BuyCopy">
+ Kupić kopię obiektu od [OWNER] za [PRICE]L$?
+Obiekt zostanie skopiowany do Twojej szafy z następującymi prawami:
+ Modyfikacje: [MODIFYPERM]
+ Kopiowanie: [COPYPERM]
+ Odsprzedawanie i Oddawanie: [RESELLPERM]
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="BuyCopyNoOwner">
+ Kupić kopię obiektu za [PRICE]L$?
+Obiekt zostanie skopiowany do Twojej szafy z następującymi prawami:
+ Modyfikacje: [MODIFYPERM]
+ Kopiowanie: [COPYPERM]
+ Odsprzedawanie i Oddawanie: [RESELLPERM]
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="BuyContents">
+ Kupić zawartość od [OWNER] za [PRICE]L$?
+Zawartość zostanie skopiowana do Twojej szafy.
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="BuyContentsNoOwner">
+ Kupić zawartość za [PRICE]L$?
+Zawartość zostanie skopiowana do Twojej szafy.
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmPurchase">
+ Ta transakcja spowoduje:
+[ACTION]
+
+Na pewno chcesz dokonać tego zakupu?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmPurchasePassword" type="password">
+ Ta transakcja spowoduje:
+[ACTION]
+
+Na pewno chcesz dokonać tego zakupu?
+Wpisz hasło ponownie i kliknij OK.
+ <form name="form">
+ <input name="message" type="password"/>
+ <button name="ConfirmPurchase" text="OK"/>
+ <button name="Cancel" text="Anuluj"/>
+ </form>
+ </notification>
+ <notification name="SetPickLocation">
+ Uwaga:
+Lokacja tego wyboru została zaktualizowana ale pozostałe szczegóły zachowają oryginalne wartości.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="MoveInventoryFromObject">
+ Wybrane obiekty szafy nie mają praw kopiowania.
+Obiekty zostaną przeniesione do Twojej szafy, nie zostaną skopiowane.
+
+Przenieść obiekty szafy?
+ <usetemplate ignoretext="Przenosząc szafę bez praw kopiowania z obiektów" name="okcancelignore" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="MoveInventoryFromScriptedObject">
+ Wybrane obiekty szafy nie mają praw kopiowania.
+Obiekty zostaną przeniesione do Twojej Szafy, nie zostaną skopiowane.
+Ponieważ obiekty zawierają skrypty, przeniesienie obiektów do Twojej szafy może spowodować niepoprawne działanie skryptów.
+
+Przenieść obiekty szafy?
+ <usetemplate ignoretext="Przenosząc szafę bez praw kopiowania ze skryptowanych obiektów" name="okcancelignore" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="ClickActionNotPayable">
+ Uwaga: Opcja Zapłać Obiektowi została wybrana, ale żeby ta opcja działała musi być dodany skrypt z funkcją money().
+ <form name="form">
+ <ignore name="ignore" text="Wybierając opcję Zapłać Obiektowi dla obiektów bez funkcji money()"/>
+ </form>
+ </notification>
+ <notification name="OpenObjectCannotCopy">
+ W tym obiekcie nie ma elementów które możesz skopiować.
+ </notification>
+ <notification name="WebLaunchAccountHistory">
+ Przejść na stronę Second Life żeby zobaczyć historię konta?
+ <usetemplate ignoretext="Ładując stronę historii konta." name="okcancelignore" notext="Anuluj" yestext="Idź na stronę"/>
+ </notification>
+ <notification name="ClickOpenF1Help">
+ Przejść na stronę Second Life?
+ <usetemplate ignoretext="Odwiedzając stronę Second Life." name="okcancelignore" notext="Anuluj" yestext="Idź"/>
+ </notification>
+ <notification name="ConfirmQuit">
+ Na pewno chcesz skończyć?
+ <usetemplate ignoretext="Wyłączając Second Life." name="okcancelignore" notext="Kontynuuj" yestext="Wyłącz"/>
+ </notification>
+ <notification name="HelpReportAbuseEmailLL">
+ Używaj tej opcji do zgłaszania nadużyć Warunków Umowy (Terms of Service) i Standardów Społeczeństwa (Community Standards). Zobacz:
+
+http://secondlife.com/corporate/tos.php
+http://secondlife.com/corporate/cs.php
+
+Wszystkie zgłoszone nadużycia Warunków Umowy (Terms of Service) i Standardów Społeczeństwa (Community Standards) są badane i rozwiązywane. Możesz zobaczyć konkluzję zgłoszenia w Raporcie Zgłoszeń pod:
+
+http://secondlife.com/support/incidentreport.php
+ </notification>
+ <notification name="HelpReportAbuseEmailEO">
+ UWAGA: Ten raport zostanie wysłany do właściciela regionu w którym się znajdujesz i nie będzie wysłany do Linden Lab.
+
+W ramach serwisu dla Rezydentów i gości właściciel tego regionu postanowił odbierać i rozwiązywać wszystkie reporty wysłane z tego regionu. Linden Lab nie będzie analizował żadnych reportów zgłoszonych z tego miejsca.
+
+Właściciel regionu będzie rozpatrywał raporty w oparciu o lokalne prawa tego regionu zdefiniowane w umowie majątku. (Możesz zobaczyć umowę wybierając opcję O Posiadłości z menu Świat.)
+
+Rozwiązanie tego raportu odnosi się wyłącznie do tego regionu; konkluzja tego raportu nie będzie miała wpływu na dostęp Rezydentów do innych regionów w Second Life. Wyłącznie Linden Lab może całkowicie odebrać dostęp do Second Life.
+ </notification>
+ <notification name="HelpReportBug">
+ Używaj tej opcji *wyłącznie* w celu zgłaszania technicznych problemów, dołączając szczegółowy opis problemu. Możesz odpowiedzieć na automatyczną email z odpowiedzią żeby dodać więcej szczegółów do Twojego raportu.
+
+Wszystkie raporty błędów są analizowane i oceniane. Kontakt przez email nie będzie nawiązany.
+
+Jeżeli masz techniczne problemy, skontaktuj się z pomocą techniczną pod:
+
+http://secondlife.com/community/support.php
+
+Uwaga: Niekompletne raporty nie będą analizowane.
+ </notification>
+ <notification name="HelpReportAbuseSelectCategory">
+ Wybierz kategorię dla tego raportu o nadużyciu.
+Określenie kategorii pomoże nam w klasyfikacji i prztwarzaniu raportu.
+ </notification>
+ <notification name="HelpReportBugSelectCategory">
+ Wybierz kategorię dla tego błędu.
+Określenie kategorii pomoże nam w klasyfikacji i prztwarzaniu raportu.
+ </notification>
+ <notification name="HelpReportAbuseAbuserNameEmpty">
+ Wprowadź imię i nazwisko osoby popełniającej nadużycie.
+Dokładne dane pomogą nam w klasyfikacji i prztwarzaniu raportu.
+ </notification>
+ <notification name="HelpReportAbuseAbuserLocationEmpty">
+ Wprowadź nazwę miejsca gdzie popełniono nadużycie.
+Dokładne dane pomogą nam w klasyfikacji i prztwarzaniu raportu.
+ </notification>
+ <notification name="HelpReportAbuseSummaryEmpty">
+ Wprowadź opis popełnionego nadużycia.
+Dokładne dane pomogą nam w klasyfikacji i prztwarzaniu raportu.
+ </notification>
+ <notification name="HelpReportBugSummaryEmpty">
+ Wprowadź opis błędu.
+Dokładne dane pomogą nam w klasyfikacji i prztwarzaniu raportu.
+ </notification>
+ <notification name="HelpReportAbuseDetailsEmpty">
+ Wprowadź szczgółowy opis popełnionego nadużycia.
+Podaj maksymalną ilość szczgółów oraz imiona i nazwiska osób związanych z nadużyciem które zgłaszasz.
+Dokładne dane pomogą nam w klasyfikacji i prztwarzaniu raportu.
+ </notification>
+ <notification name="HelpReportBugDetailsEmpty">
+ Wprowadź szczgółowy opis błędu. Podaj maksymalną ilość szczgółów oraz, jeżeli to możliwe, kroki niezbędne do odtworzenia problemu.
+Dokładne dane pomogą nam w klasyfikacji i prztwarzaniu raportu.
+ </notification>
+ <notification name="HelpReportAbuseContainsCopyright">
+ Szanowny Rezydencie,
+
+Jeżeli składasz raport dotyczący naruszenia praw autorskich proszę się upewnić, że robisz to poprawnie:
+
+(1) Przypadek Nadużycia. Możesz złożyć raport jeżeli sądzisz, że Rezydent narusza system przywilejów Second Life, na przykład używając CopyBot lub podobnych narzędzi robiących kopie, naruszając prawa autorskie. Komisja Nadużyć bada wykrocznia i stosuje akcje dyscyplinarne za zachowania sprzeczne z zasadami Warunków Umowy (Terms of Service) i Standardów Społeczeństwa (Community Standards) Second Life. Komisja Nadużyć nie zajmuje się i nie odpowiada na żądania usunięcia treści ze środowiska Second Life.
+
+(2) Przypadek DMCA lub Usuwanie Treści. Aby wystąpić z żądaniem o usunięcie treści ze środowiska Second Life MUSISZ przedłożyć ważne zawiadomienie o nadużyciu zgodne z naszą polisą DMCA pod http://secondlife.com/corporate/dmca.php.
+
+Jeżeli chcesz kontynuować dalej zamknij to okno i dokończ wysyłanie raportu. Może być potrzebny wybór kategorii &apos;CopyBot albo Nadużycie Przywilejów&apos;.
+
+Dziękujemy,
+
+Linden Lab
+ </notification>
+ <notification name="FailedRequirementsCheck">
+ Brak następujących wymaganych komponentów w [FLOATER]:
+[COMPONENTS]
+ </notification>
+ <notification label="Zamień Istniejący Dodatek" name="ReplaceAttachment">
+ Obecnie masz już dołączony obiekt do tej części Twojego ciała.
+Chcesz go zamienić na wybrany obiekt?
+ <form name="form">
+ <ignore name="ignore" save_option="true" text="Zamieniając istniejące dodatki"/>
+ <button ignore="Zamień Automatycznie" name="Yes" text="OK"/>
+ <button ignore="Nie Zamieniaj" name="No" text="Anuluj"/>
+ </form>
+ </notification>
+ <notification label="Ostrzeżenie Trybu Pracy" name="BusyModePay">
+ Jesteś w Trybie Pracy co oznacza, że nie dostaniesz żadnych obiektów w zamian za tą opłatę.
+
+Chcesz wyłączyć Tryb Pracy przed zakończeniem tej tranzakcji?
+ <form name="form">
+ <ignore name="ignore" save_option="true" text="Płacąc osobie lub obiektowi będąc w Trybie Pracy"/>
+ <button ignore="Zawsz wyłączaj Tryb Pracy" name="Yes" text="OK"/>
+ <button ignore="Nie wyłączaj Trybu Pracy" name="No" text="Anuluj"/>
+ </form>
+ </notification>
+ <notification name="ConfirmEmptyTrash">
+ Na pewno chcesz permanentnie usunąć zawartość Śmietnika?
+ <usetemplate ignoretext="Usuwając zawartość Śmietnika" name="okcancelignore" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="ConfirmClearBrowserCache">
+ Na pewno chcesz wyczyścić bufor przeglądarki?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Tak"/>
+ </notification>
+ <notification name="ConfirmClearCookies">
+ Na pewno chcesz wyczyścić ciasteczka?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Tak"/>
+ </notification>
+ <notification name="ConfirmClearMediaUrlList">
+ Na pewno chcesz wyczyścić listę zapisanych linków?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Tak"/>
+ </notification>
+ <notification name="ConfirmEmptyLostAndFound">
+ Na pewno chcesz permanentnie usunąć zawartość Twojego foldera Zgubione i Znalezione?
+ <usetemplate ignoretext="Usuwając szafę z Twojego foldera Zgubione i Znalezione" name="okcancelignore" notext="Nie" yestext="Tak"/>
+ </notification>
+ <notification name="CopySLURL">
+ Następujący link SLURL został skopiowany do pamięci podręcznej:
+ [SLURL]
+
+Zamieść go na stronie Internetowej żeby umożliwić innym łatwy dostęp do tego miejsca, albo wklej go do panela adresu Twojej przeglądarki żeby go wypróbować.
+ <form name="form">
+ <ignore name="ignore" text="Kopiując SLURL do pamięci podręcznej"/>
+ </form>
+ </notification>
+ <notification name="GraphicsPreferencesHelp">
+ Ten panel kontroluje wymiary i rozdzielczość okna oraz jakość grafiki klienta. Panel Ustawienia &gt; Grafika pozwala na wybór jednego z czterech poziomów jakości grafiki: Niska, Średnia, Wysoka i Super. Możesz również dostosować grafikę do własnych potrzeb wybierając opcję Zaawansowane i zmieniając następujące ustawienia:
+
+Shadery: Opcja ta pozwala włączyć i wyłączyć różne rodzaje shaderów pikseli.
+
+Ustawienia Odbić: Określa rodzaje obiektów które mogą odbijać się w wodzie.
+
+Prezentacja Awatarów: Określa opcje mające wpływ na rysowanie awatarów przez klienta.
+
+Głębia Rysowania: Określa od jakiej odległości od pozycji kamery obiekty będą rysowane w tle.
+
+Liczba Cząsteczek: Określa maksymalną liczbę cząsteczek widocznych jednocześnie na ekranie.
+
+Jakość Post-Procesu: Określa rozdzielczość z jaką jest wyświetlana poświata.
+
+Szczegóły Meszu: Określa ilość szczegółów albo liczbę trójkątów używaną przy rysowaniu pewnych obiektów. Większa wartość zwalnia prędkość rysowania ale powoduje, że obiekty wyglądają bardziej szczgółowo.
+
+Ustawienia Światła: Określa jaki rodzaj światła jest używany do rysowania.
+
+Szczegóły Terenu: Określa ilość szczgółów widoczną w teksturach terenu.
+ </notification>
+ <notification name="WLSavePresetAlert">
+ Chcesz zmienić zapisane ustawienia?
+ <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak"/>
+ </notification>
+ <notification name="WLDeletePresetAlert">
+ Chcesz usunąć [SKY]?
+ <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak"/>
+ </notification>
+ <notification name="WLNoEditDefault">
+ Nie możesz edytować lub usunąć domyślnych ustawień.
+ </notification>
+ <notification name="WLMissingSky">
+ Ten plik cyklu dziennego używa brakującego pliku nieba: [SKY].
+ </notification>
+ <notification name="PPSaveEffectAlert">
+ Efekt Post-Procesu już istnieje. Chcesz zapisać nowy na jego miejsce?
+ <usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak"/>
+ </notification>
+ <notification name="HelpEditSky">
+ Ustaw suwaki żeby stworzyć i zapisać zbiór nieb.
+ </notification>
+ <notification name="HelpEditDayCycle">
+ Wybierz których nieb używać w przeciągu dnia.
+ </notification>
+ <notification name="EnvSettingsHelpButton">
+ Te ustawienia zmieniają wygląd środowiska na Twoim komputerze. Twoja karta graficzna musi posiadać opcję shaderów atmosfery aby umożliwić dostęp do wszystkich ustawień.
+
+Ustaw suwak &quot;Pora Dnia&quot; żeby zmienić lokalną porę dnia w kliencie.
+
+Ustaw suwak &quot;Chmury&quot; żeby zmienić ilość chmur widoczną na niebie.
+
+Wybierz kolor w selekcji &quot;Kolor Wody&quot; żeby zmienić kolor wody.
+
+Ustaw suwak &quot;Zamglenie&quot; żeby zmienić gęstość zamglenia pod wodą.
+
+Kliknij &quot;Używaj Czasu Regionu&quot; żeby dostosowywać porę dnia do pory dnia w regionie.
+
+Kliknij &quot;Zaawansowane Niebo&quot; żeby wybrać bardziej szczegółowy edytor ustawień nieba.
+
+Kliknij &quot;Zaawansowana Woda&quot; żeby wybrać bardziej szczegółowy edytor ustawień wody.
+ </notification>
+ <notification name="HelpDayCycle">
+ Edytor Cyklu Dnia pozwala na kontrolę nieba podczas cyklu dnia/nocy w Second Life. Ten cykl jest używany przez suwak Pora Dnia w podstawowym Edytorze Środowiska.
+
+Edytor Cyklu Dnia ustala klatki odniesienia. Są to punkty (widoczne jako szare plamki na wykresie czasu) które mają przypisane Ustawienia Nieba. W miarę upływu czasu niebo jest animowane używając średnich pomiędzy klatkami odniesienia.
+
+Żółta strzałka powyżej linii czasu odpowiada biżącemu widokowi opartemu na Porze Dnia. Kliknij i przeciągnij strzałkę żeby zobaczyć animację w przeciągu dnia. Możesz dodawać i usuwać klatki odniesienia używająć przycisków Dodaj i Usuń po prawej stronie linii czasu.
+
+Długość Cyklu dyktuje całkowitą długość &quot;dnia&quot;. Wybranie małej wartości (na przykład 2 min) oznacza, że Twoja 24-o godzinna linia czasu będzie animowana w całości w przeciągu dwóch minut czasu rzeczywistego! Po wybraniu odpowiednich ustawień linii czasu i klatek odniesienia użyj przycisków Start i Stop żeby zobaczyć rezultaty. Pamiętaj - zawsze możesz używać żółtej strzałki wskażnika czasu powyżej linii czasu żeby zmieniać animację dynamicznie. Użycie przycisku Używaj Czasu Regionu zsynchronizuje Twoją długość dnia i czas z cyklem Regionu.
+
+Po zdefiniowaniu Cyklu Dnia możesz zapisać i załadować ustawienia używając przycisków Zapisz Test Dnia i Załaduj Test Dnia. Uwaga, obecnie tylko jeden Cykl Dnia jest dozwolony.
+ </notification>
+ <notification name="HelpBlueHorizon">
+ Ustaw suwaki Czerwony/Zielony/Niebieski (RGB) żeby zmienić kolor nieba. Możesz używać suwaka Intensywność (I) żeby zmieniać ustawienia suwaków wszystkich kolorów (RGB) jednocześnie.
+ </notification>
+ <notification name="HelpHazeHorizon">
+ Horyzont Zamglenia jest jednym z ważniejszych parametrów kontrolujących oświetlenie sceny. Jest efektywnym do symulacji wielu ustawień oświetlenia takich jak rozbyski słońca i ciemniejsze ustawienia zamkniętej przesłony.
+ </notification>
+ <notification name="HelpBlueDensity">
+ Gęstość Błękitu ma wpływ na nasycenie koloru nieba i mgły. Jeżeli przesuniesz suwak Intensywności (I) w prawo kolory będą jaśniejsze i żywsze. Jeżeli przesuniesz całkowicie w lewo kolory będą rozmywać się aż do przejścia w biel i czerń. Jeżeli chcesz precyzyjnie kontrolować balans koloru nieba możesz używać suwaków kolorów Czerwony/Zielony/Niebieski (RGB) w celu zmiany nasycenia indywidualnych składników.
+ </notification>
+ <notification name="HelpHazeDensity">
+ Gęstość Zamglenia kontroluje zawartość mętnego, szarego zamglenia w atmosferze. Jest to przydatne do symulacji scen z dużą ilością dymu i zanieczyszczeń.
+Oraz do symulacji mgły i zamgleń.
+ </notification>
+ <notification name="HelpDensityMult">
+ Mnożnik Gęstości wpływa na gęstość atmosfery w całości. Niskie ustawienie sprawia wrażenie lekkiego powietrza, wyższe ustawienia tworzą bardzo ciężki, zamglony efekt.
+ </notification>
+ <notification name="HelpDistanceMult">
+ Mnożnik Dystansu wpływa na postrzeganie dystansu. Wartość zero niweluje wpływ dystansu na wygląd terenu i obiektów.
+Wartości większe od 1 symulują większy dystans tworząc silniejszy efekt atmosferyczny.
+ </notification>
+ <notification name="HelpMaxAltitude">
+ Max Wysokość wpływa na obliczanie światła atmosferycznego.
+O póżniejszych porach dnia ta wartość jest przydatna do regulacji percepcji dystansu zachodącego słońca.
+ </notification>
+ <notification name="HelpSunlightColor">
+ Reguluje kolor i intensywność bezpośredniego światła w scenie.
+ </notification>
+ <notification name="HelpSunAmbient">
+ Reguluje kolor i intensywność rozproszonego światła atmosferycznego w scenie.
+ </notification>
+ <notification name="HelpSunGlow">
+ Suwak Rozmiar kontroluje wielkość słońca.
+Suwak Ostrość kontroluje ostrość słońca na niebie.
+ </notification>
+ <notification name="HelpSceneGamma">
+ Reguluje dystrybucję światła i cienia na ekranie.
+ </notification>
+ <notification name="HelpStarBrightness">
+ Reguluje blask gwiazd na niebie.
+ </notification>
+ <notification name="HelpTimeOfDay">
+ Kontroluje pozycję słońca na niebie.
+Zbliżone do wysokości.
+ </notification>
+ <notification name="HelpEastAngle">
+ Kontroluje pozycję słońca na niebie.
+Zbliżone do azymutu.
+ </notification>
+ <notification name="HelpCloudColor">
+ Kontroluje kolor chmur. Generalnie powinny być białawe, ale hej, pobaw się jeżeli masz ochotę.
+ </notification>
+ <notification name="HelpCloudDetail">
+ Kontroluje szczegółowy obraz nałożony na górę głównego obrazu chmur. X i Y kontrolują jego pozycję. G (Gęstość) kontroluje jak puchate lub postrzępione są chmury.
+ </notification>
+ <notification name="HelpCloudDensity">
+ Suwaki X i Y kontrolują pozycję chmur.
+Suwak G (Gęstość) kontroluje gęstość chmur.
+ </notification>
+ <notification name="HelpCloudCoverage">
+ Kontroluje ilość chmur pokrywających niebo.
+ </notification>
+ <notification name="HelpCloudScale">
+ Kontroluje skalę obrazu chmur na kopule nieba.
+ </notification>
+ <notification name="HelpCloudScrollX">
+ Kontroluje prędkość przemieszczania chmur wzdłuż osi X.
+ </notification>
+ <notification name="HelpCloudScrollY">
+ Kontroluje prędkość przemieszczania chmur wzdłuż osi Y.
+ </notification>
+ <notification name="HelpClassicClouds">
+ Wybierz tą opcję w celu używania dodatkowo starszej, klasycznej wersji chmur Second Life.
+ </notification>
+ <notification name="HelpWaterFogColor">
+ Kontroluje kolor podwodnej mgły.
+ </notification>
+ <notification name="HelpWaterFogDensity">
+ Kontroluje gęstość mgły i głębie wizji pod wodą.
+ </notification>
+ <notification name="HelpUnderWaterFogMod">
+ Modyfikuje wpływ wykładnika gęstości mgły na głębie wizji awatara pod wodą.
+ </notification>
+ <notification name="HelpWaterGlow">
+ Kontroluje emisję światła z powierzchni wody.
+ </notification>
+ <notification name="HelpWaterNormalScale">
+ Kontroluje skalę trzech zmarszczeń które tworzą wodę.
+ </notification>
+ <notification name="HelpWaterFresnelScale">
+ Kontroluje jak dużo światła jest odbijane pod różnymi kątami.
+ </notification>
+ <notification name="HelpWaterFresnelOffset">
+ Kontroluje jak dużo intensywności światła jest odbijane.
+ </notification>
+ <notification name="HelpWaterScaleAbove">
+ Kontroluje jak dużo światła odbija się od górnej powierzchni wody.
+ </notification>
+ <notification name="HelpWaterScaleBelow">
+ Kontroluje jak dużo światła odbija się od dolnej powierzchni wody.
+ </notification>
+ <notification name="HelpWaterBlurMultiplier">
+ Kontroluje jak fale i odbicia są mieszane.
+ </notification>
+ <notification name="HelpWaterNormalMap">
+ Kontroluje która mapa normalnych jest używana w wodzie do określania odbić/załamań.
+ </notification>
+ <notification name="HelpWaterWave1">
+ Kontroluje gdzie i jak szybko duża wersja mapy normalnych przemieszcza się wzdłuż osi X i Y.
+ </notification>
+ <notification name="HelpWaterWave2">
+ Kontroluje gdzie i jak szybko mała wersja mapy normalnych przemieszcza się wzdłuż osi X i Y.
+ </notification>
+ <notification name="NewSkyPreset">
+ Nazwij nowe niebo.
+ <form name="form">
+ <input name="message" type="text">
+ Nowe Ustawienie
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Anuluj"/>
+ </form>
+ </notification>
+ <notification name="ExistsSkyPresetAlert">
+ Ustawienie już istnieje!
+ </notification>
+ <notification name="NewWaterPreset">
+ Nazwij nowe ustawienie wody.
+ <form name="form">
+ <input name="message" type="text">
+ Nowe Ustawienie
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Anuluj"/>
+ </form>
+ </notification>
+ <notification name="ExistsWaterPresetAlert">
+ Ustawienie już istnieje!
+ </notification>
+ <notification name="WaterNoEditDefault">
+ Domyśle ustawienie nie może być zmienione ani usunięte.
+ </notification>
+ <notification name="ChatterBoxSessionStartError">
+ Błąd podczas rozpoczynania czatu/IM z [RECIPIENT].
+[REASON]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="ChatterBoxSessionEventError">
+ [EVENT]
+[REASON]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="ForceCloseChatterBoxSession">
+ Twój czat/IM z [NAME] zostanie zamknięty.
+[REASON]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="Cannot_Purchase_an_Attachment">
+ Rzeczy nie mogą być kupione jeżeli
+ są częścią załącznika.
+ </notification>
+ <notification label="Prośba o Zgodę na Pobieranie L$" name="DebitPermissionDetails">
+ Akceptując tą prośbę wyrażasz zgodę na ciągłe pobieranie Lindenów (L$) z Twojego konta. Żeby cofnąć to pozwolenie właściciel obiektu będzie musiał usunąć ten obiekt albo zresetowć skrypty obieku.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="AutoWearNewClothing">
+ Czy chcesz automatycznie nosić ubranie które tworzysz?
+ <usetemplate ignoretext="Automatycznie noś nowe ubranie" name="okcancelignore" notext="Nie" yestext="Tak"/>
+ </notification>
+ <notification name="NotAgeVerified">
+ Nie masz dostępu do tej posiadłości ze względu na brak weryfikacji Twojego wieku.
+Czy chcesz odwiedzić stronę Second Life żeby to zmienić?
+
+[_URL]
+ <url name="url" option="0">
+ https://secondlife.com/account/verification.php
+ </url>
+ <usetemplate ignoretext="Ostrzegaj o braku weryfikacji wieku" name="okcancelignore" notext="Nie" yestext="Tak"/>
+ </notification>
+ <notification name="Cannot enter parcel: no payment info on file">
+ Nie masz dostępu do tej posiadłości ze względu na brak danych o Twoim koncie.
+Czy chcesz odwiedzić stronę Second Life żeby to zmienić?
+
+[_URL]
+ <url name="url" option="0">
+ https://secondlife.com/account/
+ </url>
+ <usetemplate ignoretext="Ostrzegaj o braku danych konta" name="okcancelignore" notext="Nie" yestext="Tak"/>
+ </notification>
+ <notification name="MissingString">
+ Zdanie [STRING_NAME] nie znalezione w strings.xml
+ </notification>
+ <notification name="SystemMessageTip">
+ [MESSAGE]
+ </notification>
+ <notification name="Cancelled">
+ Anulowane
+ </notification>
+ <notification name="CancelledSit">
+ Siadanie Anulowane
+ </notification>
+ <notification name="CancelledAttach">
+ Dołączenie Anulowane
+ </notification>
+ <notification name="ReplacedMissingWearable">
+ Barkujące ubranie/części ciała zastąpiono domyślnymi obiektami.
+ </notification>
+ <notification name="GroupNotice">
+ Temat: [SUBJECT], Treść: [MESSAGE]
+ </notification>
+ <notification name="FriendOnline">
+ [FIRST] [LAST] jest w Second Life
+ </notification>
+ <notification name="FriendOffline">
+ [FIRST] [LAST] opuszcza Second Life
+ </notification>
+ <notification name="AddSelfFriend">
+ Nie możesz dodać siebie do listy znajomych.
+ </notification>
+ <notification name="UploadingAuctionSnapshot">
+ Ładowanie obrazu z Internetu...
+(Zajmuje około 5 minut.)
+ </notification>
+ <notification name="UploadPayment">
+ Ładowanie kosztowało [AMOUNT]L$.
+ </notification>
+ <notification name="UploadWebSnapshotDone">
+ Ładowanie obrazu z Internetu zakończne pomyślnie.
+ </notification>
+ <notification name="UploadSnapshotDone">
+ Ładowanie zdjęcia zakończone pomyślnie.
+ </notification>
+ <notification name="TerrainDownloaded">
+ Plik terrain.raw ściągniety.
+ </notification>
+ <notification name="GestureMissing">
+ Gest [NAME] nie znaleziony w bazie danych.
+ </notification>
+ <notification name="UnableToLoadGesture">
+ Ładowanie gestu [NAME] nie powiodło się.
+Spróbuj jeszcze raz.
+ </notification>
+ <notification name="LandmarkMissing">
+ Miejsce (LM) nie znalezione w bazie danych.
+ </notification>
+ <notification name="UnableToLoadLandmark">
+ Ładowanie miejsca (LM) nie powiodło się.
+Spróbuj jeszcze raz.
+ </notification>
+ <notification name="CapsKeyOn">
+ Twój Caps Lock jest włączony.
+Ponieważ to ma wpływ na wpisywane hasło, możesz chcieć go wyłączyć.
+ </notification>
+ <notification name="NotecardMissing">
+ Notka nie znaleziona w bazie danych.
+ </notification>
+ <notification name="NotecardNoPermissions">
+ Nie masz pozwolenia na zobaczenie notki.
+ </notification>
+ <notification name="RezItemNoPermissions">
+ Nie masz pozwolenia na stworzenie obiektu.
+ </notification>
+ <notification name="UnableToLoadNotecard">
+ Nie można załadować danych notki w tym momencie.
+ </notification>
+ <notification name="ScriptMissing">
+ Skrypt nie znaleziony w bazie danych.
+ </notification>
+ <notification name="ScriptNoPermissions">
+ Nie masz pozwolenia na zobaczenie skryptu.
+ </notification>
+ <notification name="UnableToLoadScript">
+ Ładowanie skryptu nie powiodło się.
+Spróbuj jeszcze raz.
+ </notification>
+ <notification name="IncompleteInventory">
+ Zawartość obiektów którą chcesz podarować nie jest dostępna lokalnie. Spróbuj podarować te obiekty jeszcze raz za jakiś czas.
+ </notification>
+ <notification name="CannotModifyProtectedCategories">
+ Nie możesz zmienić chronionych kategorii.
+ </notification>
+ <notification name="CannotRemoveProtectedCategories">
+ Nie możesz usunąć chronionych kategorii.
+ </notification>
+ <notification name="OfferedCard">
+ [FIRST] [LAST] daje Ci swoją wizytówkę
+ </notification>
+ <notification name="UnableToBuyWhileDownloading">
+ Nie można kupować w trakcie ładowania danych obiektu.
+Spróbuj jeszcze raz.
+ </notification>
+ <notification name="UnableToLinkWhileDownloading">
+ Nie można łączyć w trakcie ładowania danych obiektu.
+Spróbuj jeszcze raz.
+ </notification>
+ <notification name="CannotBuyObjectsFromDifferentOwners">
+ Nie możesz jednocześnie kupować obiektów od różnych osób.
+Wybierz jeden obiekt.
+ </notification>
+ <notification name="ObjectNotForSale">
+ Obiekt nie jest na sprzedaż.
+ </notification>
+ <notification name="EnteringGodMode">
+ Włącznie trybu boskiego, poziom [LEVEL]
+ </notification>
+ <notification name="LeavingGodMode">
+ Wyłączanie trybu boskiego, poziom [LEVEL]
+ </notification>
+ <notification name="CopyFailed">
+ Kopiowanie się nie powiodło - nie masz pozwolenia
+ </notification>
+ <notification name="InventoryAccepted">
+ Podarunek od Ciebie został przyjęty przez [NAME].
+ </notification>
+ <notification name="InventoryDeclined">
+ Podarunek od Ciebie został odrzucony przez [NAME].
+ </notification>
+ <notification name="ObjectMessage">
+ [NAME]: [MESSAGE]
+ </notification>
+ <notification name="CallingCardAccepted">
+ Twoja wizytówka została przyjęta.
+ </notification>
+ <notification name="CallingCardDeclined">
+ Twoja wizytówka została odrzucona.
+ </notification>
+ <notification name="TeleportToLandmark">
+ Jesteś w Głównym Regionie i możesz się stąd teleportować do innych miejsc jak &apos;[NAME]&apos; wybierając Moja Szafa w prawym dolnym rogu ekranu i wybierając folder Miejsca (LM).
+Kliknij dwa razy na miejsce (LM) i wybierz Teleportuj żeby tam się przenieść.
+ </notification>
+ <notification name="TeleportToPerson">
+ Jesteś w Głównym Regionie i możesz komunikować się z innymi Rezydentami jak &apos;[NAME]&apos; wybierając Moja Szafa w prawym dolnym rogu ekranu i wybierając folder Wizytówki.
+Kliknij dwa razy na wizytówce, wybierz Wyślij IM i napisz wiadomość.
+ </notification>
+ <notification name="CantSelectLandFromMultipleRegions">
+ Nie możesz przekraczać granic serwera wybierając obszar.
+Spróbuj wybrać mniejszy obszar.
+ </notification>
+ <notification name="SearchWordBanned">
+ Pewne frazy podczas wyszukiwania zostały usunięte w związku z restrykcjami zawartymi w Standardach Społecznościowych (Community Standards).
+ </notification>
+ <notification name="NoContentToSearch">
+ Proszę wybrać przynajmiej jeden z podanych rodzajów treści jaką zawiera region podczas wyszukiwania (&apos;PG&apos;, &apos;Mature&apos;, lub &apos;Adult&apos;).
+ </notification>
+ <notification name="GroupVote">
+ [NAME] zaprasza do głosowania nad propozycją:
+[MESSAGE]
+ <form name="form">
+ <button name="VoteNow" text="Głosuj Teraz"/>
+ <button name="Later" text="Później"/>
+ </form>
+ </notification>
+ <notification name="SystemMessage">
+ [MESSAGE]
+ </notification>
+ <notification name="EventNotification">
+ Zawiadomienie o Imprezie:
+
+[NAME]
+[DATE]
+ <form name="form">
+ <button name="Teleport" text="Teleportuj"/>
+ <button name="Description" text="Opis"/>
+ <button name="Cancel" text="Anuluj"/>
+ </form>
+ </notification>
+ <notification name="TransferObjectsHighlighted">
+ Obiekty na tej posiadłości które zostaną przekazane kupcowi tej posiadłości są teraz rozjaśnione.
+
+* Drzewa i trawy które zostaną przekazne nie są rozjaśnione.
+ <form name="form">
+ <button name="Done" text="Zastosuj"/>
+ </form>
+ </notification>
+ <notification name="DeactivatedGesturesTrigger">
+ Zablokowane gesty z jednakowym aktywowaniem:
+[NAMES]
+ </notification>
+ <notification name="NoQuickTime">
+ Wygląda na to, że QuickTime z Apple nie jest zainstalowany na Twoim komputerze.
+Jeżeli chcesz odtwarzać media na tej posiadłości które używają QuickTime idź do http://www.apple.com/quicktime i zainstaluj odtwarzacz.
+ </notification>
+ <notification name="OwnedObjectsReturned">
+ Twoje obiekty z wybranej posiadłości zostały zwrócone do Twojej Szafy.
+ </notification>
+ <notification name="OtherObjectsReturned">
+ Obiekty należące do [FIRST] [LAST] na wybranej posiadłości zostały zwrócone do szafy tej osoby.
+ </notification>
+ <notification name="OtherObjectsReturned2">
+ Obiekty z wybranej posiadłości należącej do Rezydenta &apos;[NAME]&apos; zostały zwrócone do ich właściciela.
+ </notification>
+ <notification name="GroupObjectsReturned">
+ Obiekty z wybranej posiadłości przypisane do grupy [GROUPNAME] zostały zwrócone do szafy ich właścicieli.
+Przekazywalne obiekty przekazne grupie zostały zwrócone do ich poprzednich właścicieli.
+Nieprzekazywalne obiekty przekazane grupie zostały usunięte.
+ </notification>
+ <notification name="UnOwnedObjectsReturned">
+ Obiekty z wybranej posiadłości które nie należą do Ciebie zostały zwrócone do ich właścicieli.
+ </notification>
+ <notification name="NotSafe">
+ Ta posiadłość pozwala na uszkodzenia.
+Możesz doznać tutaj urazu. Jeżeli zginiesz nastąpi teleportacja do Twojego miejsca startu.
+ </notification>
+ <notification name="NoFly">
+ Ta posiadłość nie pozwala na latanie.
+Nie możesz tutaj latać.
+ </notification>
+ <notification name="PushRestricted">
+ Popychanie niedozwolone.
+Nie możesz tutaj popychać innych, chyba, że jesteś właścicielem tej posiadłości.
+ </notification>
+ <notification name="NoVoice">
+ Ta posiadłość nie pozwala na rozmowy.
+ </notification>
+ <notification name="NoBuild">
+ Ta posiadłość nie pozwala na budowanie.
+Nie możesz tworzyć tutaj obiektów.
+ </notification>
+ <notification name="ScriptsStopped">
+ Administrator czasowo zatrzymał skrypty w tym regionie.
+ </notification>
+ <notification name="ScriptsNotRunning">
+ Żadne skrypty nie działają w tym regionie.
+ </notification>
+ <notification name="NoOutsideScripts">
+ Ta posiadłość nie pozwala na zewnętrzne skrypty.
+Żadne skrypty nie będą tutaj działać za wyjątkiem skryptów zleżących do właściciela posiadłości.
+ </notification>
+ <notification name="ClaimPublicLand">
+ Tylko publiczne posiadłości w tym regionie mogą być przejęte.
+ </notification>
+ <notification name="RegionTPAccessBlocked">
+ Ze względu na Twój wiek, nie jesteś uprawniony do przebywania w tym regionie. Możesz potrzebować weryfikacji wieku bądź instalacji najnowszej wersji klienta.
+
+Skorzystaj z Second Life:Pomoc by uzyskać więcej informacji na temat dostępu do regionów z podanym rodzajem treści jaką zawiera.
+ </notification>
+ <notification name="URBannedFromRegion">
+ Zostałeś zbanowany w regionie.
+ </notification>
+ <notification name="NoTeenGridAccess">
+ Twoje konto nie może zostać połączone z podanym regionem Teen Grid.
+ </notification>
+ <notification name="NoHelpIslandTP">
+ Brak możliwości ponownej teleportacji do Help Island.
+Odwiedź &apos;Help Island Public&apos; by powtórzyć szkolenie.
+ </notification>
+ <notification name="ImproperPaymentStatus">
+ Nie posiadasz odpowiedniego statusu płatniczego by uzyskać dostęp do regionu.
+ </notification>
+ <notification name="MustGetAgeRgion">
+ By odwiedzić ten region, Twoje konto musi zostać poddane weryfikacji wieku.
+ </notification>
+ <notification name="MustGetAgeParcel">
+ By móc przebywać na tej posiadłości wymagana jest weryfikacja Twojego wieku.
+ </notification>
+ <notification name="NoDestRegion">
+ Żądana lokalizacja regionu nie została odnaleziona.
+ </notification>
+ <notification name="NotAllowedInDest">
+ Brak dostępu do podanej lokalizacji.
+ </notification>
+ <notification name="RegionParcelBan">
+ Nie możesz przejść przez zamkniętą posiadłość. Spróbuj skorzystać z innej drogi.
+ </notification>
+ <notification name="TelehubRedirect">
+ Zostałeś przeniesiony do teleportera.
+ </notification>
+ <notification name="CouldntTPCloser">
+ Brak możliwości teleportacji do bliższej lokacji.
+ </notification>
+ <notification name="TPCancelled">
+ Teleportacja anulowana.
+ </notification>
+ <notification name="FullRegionTryAgain">
+ Region, który chcesz odwiedzić jest w tej chwili pełny.
+Spróbuj ponowanie za kilka minut.
+ </notification>
+ <notification name="GeneralFailure">
+ Nieudana próba.
+ </notification>
+ <notification name="RoutedWrongRegion">
+ Wysłano niewłaściwe połączenie do regionu. Proszę spróbować ponownie.
+ </notification>
+ <notification name="NoValidAgentID">
+ Nieważny identyfikator agenta.
+ </notification>
+ <notification name="NoValidSession">
+ Nieważny identyfikator sesji.
+ </notification>
+ <notification name="NoValidCircuit">
+ Nieważny obwód kodowania.
+ </notification>
+ <notification name="NoValidTimestamp">
+ Niewłaściwy czas zapisu.
+ </notification>
+ <notification name="NoPendingConnection">
+ Brak możliwości wykonania połączenia.
+ </notification>
+ <notification name="InternalUsherError">
+ Podczas teleportacji nastąpił błąd wewnętrzny, który może być wynikiem problemów serwera.
+ </notification>
+ <notification name="NoGoodTPDestination">
+ Brak lokalizacji punktu do teleportacji w podanym regionie.
+ </notification>
+ <notification name="InternalErrorRegionResolver">
+ Podczas próby odnalezienia globalnych współrzędych dla żądanej teleportacji pojawił się wewnętrzny błąd. Może być to wynikiem problemów serwera.
+ </notification>
+ <notification name="NoValidLanding">
+ Nieważny punkt lądowania.
+ </notification>
+ <notification name="NoValidParcel">
+ Nieważana posiadłość.
+ </notification>
+ <notification name="ObjectGiveItem">
+ Obiekt [OBJECTFROMNAME] należący do [FIRST] [LAST] dał Ci [OBJECTTYPE] [OBJECTNAME].
+ <form name="form">
+ <button name="Keep" text="Zachowaj"/>
+ <button name="Discard" text="Wyrzuć"/>
+ <button name="Mute" text="Wycisz"/>
+ </form>
+ </notification>
+ <notification name="ObjectGiveItemUnknownUser">
+ Obiekt [OBJECTFROMNAME] należący do (właściciel nieznany) dał Ci [OBJECTTYPE] [OBJECTNAME].
+ <form name="form">
+ <button name="Keep" text="Zachowaj"/>
+ <button name="Discard" text="Wyrzuć"/>
+ <button name="Mute" text="Wycisz"/>
+ </form>
+ </notification>
+ <notification name="UserGiveItem">
+ [NAME] dał Ci [OBJECTTYPE] &apos;[OBJECTNAME]&apos;.
+ <form name="form">
+ <button name="Keep" text="Zachowaj"/>
+ <button name="Discard" text="Wyrzuć"/>
+ <button name="Mute" text="Wycisz"/>
+ </form>
+ </notification>
+ <notification name="GodMessage">
+ [NAME]
+[MESSAGE]
+ </notification>
+ <notification name="JoinGroup">
+ [MESSAGE]
+ <form name="form">
+ <button name="Join" text="Zaakceptuj"/>
+ <button name="Decline" text="Odmów"/>
+ <button name="Info" text="Info"/>
+ </form>
+ </notification>
+ <notification name="TeleportOffered">
+ [NAME] proponuje Ci teleportcję do siebie:
+
+[MESSAGE]
+ <form name="form">
+ <button name="Teleport" text="Teleportuj"/>
+ <button name="Cancel" text="Anuluj"/>
+ </form>
+ </notification>
+ <notification name="GotoURL">
+ [MESSAGE]
+[URL]
+ <form name="form">
+ <button name="Later" text="Póżniej"/>
+ <button name="GoNow..." text="Teraz..."/>
+ </form>
+ </notification>
+ <notification name="OfferFriendship">
+ [NAME] proponuje Ci znajomość.
+
+[MESSAGE]
+
+(Z zalożenia będzie widzić swój status online.)
+ <form name="form">
+ <button name="Accept" text="Zaakceptuj"/>
+ <button name="Decline" text="Odmów"/>
+ </form>
+ </notification>
+ <notification name="OfferFriendshipNoMessage">
+ [NAME] proponuje Ci znajomość.
+
+(Z zalożenia będzie widzić swój status online.)
+ <form name="form">
+ <button name="Accept" text="Zaakceptuj"/>
+ <button name="Decline" text="Odmów"/>
+ </form>
+ </notification>
+ <notification name="FriendshipAccepted">
+ Twoja propozycja znajomości została przyjęta przez [NAME].
+ </notification>
+ <notification name="FriendshipDeclined">
+ Twoja propozycja znajomości została odrzucona przez [NAME].
+ </notification>
+ <notification name="OfferCallingCard">
+ [FIRST] [LAST] daje Ci swoją wizytówkę.
+Wizytówka w Twojej Szafie może być używana do komunikowania się (IM) z tym Rezydentem.
+ <form name="form">
+ <button name="Accept" text="Zaakceptuj"/>
+ <button name="Decline" text="Odmów"/>
+ </form>
+ </notification>
+ <notification name="RegionRestartMinutes">
+ Restart regionu za [MINUTES] min.
+Nastąpi wylogowanie jeżeli zostaniesz w tym regionie.
+ </notification>
+ <notification name="RegionRestartSeconds">
+ Restart regionu za [MINUTES] sek.
+Nastąpi wylogowanie jeżeli zostaniesz w tym regionie.
+ </notification>
+ <notification name="LoadWebPage">
+ Załadować stronę [URL]?
+
+[MESSAGE]
+
+Obiekt: [OBJECTNAME], właściciel: [NAME]?
+ <form name="form">
+ <button name="Gotopage" text="Załaduj"/>
+ <button name="Cancel" text="Anuluj"/>
+ </form>
+ </notification>
+ <notification name="FailedToFindWearableUnnamed">
+ [TYPE] - nie znaleziono w bazie danych.
+ </notification>
+ <notification name="FailedToFindWearable">
+ [TYPE] [DESC] - nie znaleziono w bazie danych.
+ </notification>
+ <notification name="InvalidWearable">
+ Obiekt, który chcesz założyć używa narzędzia nieobecnego w wersji klienta, którą używasz. By go założyć ściągnij najnowszą wersję klienta Second Life.
+ </notification>
+ <notification name="ScriptQuestion">
+ &apos;[OBJECTNAME]&apos;, właściciel: &apos;[NAME]&apos;, chciał by:
+
+[QUESTIONS]
+Zgadzasz się?
+ <form name="form">
+ <button name="Yes" text="Tak"/>
+ <button name="No" text="Nie"/>
+ <button name="Mute" text="Wycisz"/>
+ </form>
+ </notification>
+ <notification name="ScriptQuestionCaution">
+ &apos;[OBJECTNAME]&apos;, właściciel: &apos;[NAME]&apos;, chciał by:
+
+[QUESTIONS]
+Jeżeli nie ufasz temu obiektowi lub jego twórcy - odmów. Wybierz Szczegóły żeby otrzymać więcej informacji.
+
+Zgadzasz się?
+ <form name="form">
+ <button name="Grant" text="Zaakceptuj"/>
+ <button name="Deny" text="Odmów"/>
+ <button name="Details" text="Szczegóły..."/>
+ </form>
+ </notification>
+ <notification name="ScriptDialog">
+ [FIRST] [LAST]&apos;s &apos;[TITLE]&apos;
+[MESSAGE]
+ <form name="form">
+ <button name="Ignore" text="Zignoruj"/>
+ </form>
+ </notification>
+ <notification name="ScriptDialogGroup">
+ [GROUPNAME]&apos;s &apos;[TITLE]&apos;
+[MESSAGE]
+ <form name="form">
+ <button name="Ignore" text="Zignoruj"/>
+ </form>
+ </notification>
+ <notification name="FirstBalanceIncrease">
+ Przekazano Ci [AMOUNT]L$.
+Obiekty i inni użytkownicy mogą Ci dawać L$.
+Twój balans jest wyświetlony w prawym górnym rogu ekranu.
+ </notification>
+ <notification name="FirstBalanceDecrease">
+ Pobrano od Ciebie [AMOUNT]L$.
+Twój balans jest wyświetlony w prawym górnym rogu ekranu.
+ </notification>
+ <notification name="FirstSit">
+ Siedzisz.
+Używaj strzałek (albo AWSD) żeby zmieniać widok.
+Naciśnij przycisk Wstań żeby sie podnieść.
+ </notification>
+ <notification name="FirstMap">
+ Kliknij i przeciągnij by przsuwać mapę.
+Kliknij dwa razy żeby się teleportować.
+Używaj narzędzi po prawej stronie żeby znajdować i wyświetlać różne obiekty.
+ </notification>
+ <notification name="FirstBuild">
+ Możesz budować nowe obiekty w niektórych miejscach.
+Używaj narzędzi w lewym górnym rogu żeby budować, przyciskaj Ctrl lub Alt żeby szybko zmieniać narzędzia.
+Naciśnij Esc żeby skończyć budować.
+ </notification>
+ <notification name="FirstLeftClickNoHit">
+ Lewy klik żeby używać specjalnych obiektów.
+Jeżeli strzałka zmieni się na rączkę możesz używać tego obiektu.
+Prawy klik zawsze pokazuje menu dostępnych operacji.
+ </notification>
+ <notification name="FirstTeleport">
+ Nastąpiła teleportacja.
+Jesteś przy Infohub najbliższej Twojego celu.
+Twój cel jest zaznaczony wysokim czerwonym wskaźnikiem.
+ </notification>
+ <notification name="FirstOverrideKeys">
+ Twoje sterujące klawisze zostały przejęte przez obiekt.
+Użyj strzałek lub AWSD żeby sprawdzić ich działanie.
+Niektóre obiekty (np broń) wymagają trybu panoramicznego.
+Nacisnij &apos;M&apos; żeby go wybrać.
+ </notification>
+ <notification name="FirstAppearance">
+ Edytujesz swój wygląd.
+Używaj strzałek do obracania i zbliżenia.
+Po skończeniu wybierz &apos;Zapisz Zmiany&apos;
+żeby zapisać Twój wygląd i wyjść.
+Możesz edytować wygląd jak często chcesz.
+ </notification>
+ <notification name="FirstInventory">
+ To jest Twoja Szafa, który zawiera obikty, notki, ubrania i inne Twoje rzeczy.
+* Żeby założyć obiekt lub strój (folder) przeciągnij go na siebie.
+* Żeby przenieść obiekt do świata przeciągnij go na grunt.
+* Żeby przeczytać notkę kliknij na niej dwa razy.
+ </notification>
+ <notification name="FirstSandbox">
+ Ten region to piaskownica.
+Obiekty które tu zbudujesz mogą zostać usunięte jak opuścisz ten obszar - piaskownice są regularnie czyszczone, sprawdź informacje na górze ekranu obok nazwy regionu.
+
+Piaskownice spotyka się rzadko i są zawsze oznakowane.
+ </notification>
+ <notification name="FirstFlexible">
+ To jest elastyczny obiekt.
+Obiekty elastyczne nie mogą być fizyczne i muszą być typu fantom.
+ </notification>
+ <notification name="FirstDebugMenus">
+ Zaawansowane menu zostało włączone.
+To menu zawiera funkcje użyteczne dla programistów analizujących Secon Life.
+To menu jest włączne przez Ctrl-Alt-D pod Windows. Mac używa Cmd-Opt-Shift-D.
+ </notification>
+ <notification name="FirstSculptedPrim">
+ Edytujesz sculpt.
+Skulpty wymagają specjalnych tekstur które definiują ich kształt.
+Przykłady tekstur znajdują się w bibliotece szafy.
+ </notification>
+ <notification name="FirstMedia">
+ Odtwarzasz media. Możesz wybrać automatyczne odtwarzanie w Ustawieniach pod Audio i Video. Odtwarzanie mediów w miejscach którym nie ufasz może być niebezpieczne.
+ </notification>
+ <notification name="MaxListSelectMessage">
+ Maksymalnie możesz wybrać [MAX_SELECT] rzeczy
+z tej listy.
+ </notification>
+ <notification name="VoiceInviteP2P">
+ [NAME] zaprasza Cię do rozmowy głosem.
+Wybierz Zaakceptuj żeby rozmawiać albo Odmów żeby nie przyjąć zaproszenia.
+Wybierz Wycisz żeby wyciszyć dzwoniącą osobę.
+ <form name="form">
+ <button name="Accept" text="Zaakceptuj"/>
+ <button name="Decline" text="Odmów"/>
+ <button name="Mute" text="Wycisz"/>
+ </form>
+ </notification>
+ <notification name="AutoUnmuteByIM">
+ Wiadomość (IM) została wysłana do [FIRST] [LAST] i wyciszenie zostało automatycznie usunięte.
+ </notification>
+ <notification name="AutoUnmuteByMoney">
+ Pieniądze zostały przekazane do [FIRST] [LAST] i wyciszenie zostało automatycznie usunięte.
+ </notification>
+ <notification name="AutoUnmuteByInventory">
+ Oferta z szafy dla [FIRST] [LAST] automatycznie usunęła wyciszenie.
+ </notification>
+ <notification name="VoiceInviteGroup">
+ [NAME] zaczyna rozmowę z grupą [GROUP].
+Wybierz Zaakceptuj żeby rozmawiać albo Odmów żeby nie przyjąć zaproszenia.
+Wybierz Wycisz żeby wyciszyć dzwoniącą osobę.
+ <form name="form">
+ <button name="Accept" text="Zaakceptuj"/>
+ <button name="Decline" text="Odmów"/>
+ <button name="Mute" text="Wycisz"/>
+ </form>
+ </notification>
+ <notification name="VoiceInviteAdHoc">
+ [NAME] zaczyna konferencję głosem.
+Wybierz Zaakceptuj żeby rozmawiać albo Odmów żeby nie przyjąć zaproszenia.
+Wybierz Wycisz żeby wyciszyć dzwoniącą osobę.
+ <form name="form">
+ <button name="Accept" text="Zaakceptuj"/>
+ <button name="Decline" text="Odmów"/>
+ <button name="Mute" text="Wycisz"/>
+ </form>
+ </notification>
+ <notification name="InviteAdHoc">
+ [NAME] zaprasza Cię do konferencji poprzez Czat/IM.
+Wybierz Zaakceptuj żeby zacząć czat albo Odmów żeby nie przyjąć zaproszenia.
+Wybierz Wycisz żeby wyciszyć tą osobę.
+ <form name="form">
+ <button name="Accept" text="Zaakceptuj"/>
+ <button name="Decline" text="Odmów"/>
+ <button name="Mute" text="Wycisz"/>
+ </form>
+ </notification>
+ <notification name="VoiceChannelFull">
+ Rozmowa w której chcesz uczestniczyć, [VOICE_CHANNEL_NAME], nie akceptuje więcej rozmówców. Spróbuj póżniej.
+ </notification>
+ <notification name="ProximalVoiceChannelFull">
+ Przepraszamy. Limit rozmów został przekroczony w tym obszarze. Spróbuj w innym miejscu.
+ </notification>
+ <notification name="VoiceChannelDisconnected">
+ [VOICE_CHANNEL_NAME] odłączył się. Przełączanie do rozmowy przestrzennej.
+ </notification>
+ <notification name="VoiceChannelDisconnectedP2P">
+ [VOICE_CHANNEL_NAME] skończył rozmowę. Przełączanie do rozmowy przestrzennej.
+ </notification>
+ <notification name="P2PCallDeclined">
+ [VOICE_CHANNEL_NAME] odmówił połączenia. Przełączanie do rozmowy przestrzennej.
+ </notification>
+ <notification name="P2PCallNoAnswer">
+ [VOICE_CHANNEL_NAME] nie odpowiada. Przełączanie do rozmowy przestrzennej.
+ </notification>
+ <notification name="VoiceChannelJoinFailed">
+ Brak połączenia z [VOICE_CHANNEL_NAME], spróbuj póżniej. Przełączanie do rozmowy przestrzennej.
+ </notification>
+ <notification name="VoiceLoginRetry">
+ Tworzymy kanał głosu dla Ciebie. Moze potrwać minutę.
+ </notification>
+ <notification name="Cannot enter parcel: not a group member">
+ Nie masz dostępu do posiadłości, nie należysz do właściwej grupy.
+ </notification>
+ <notification name="Cannot enter parcel: banned">
+ Masz wzbroniny dostęp to tej posiadłości (ban).
+ </notification>
+ <notification name="Cannot enter parcel: not on access list">
+ Nie masz dostępu do posiadłości, nie jesteś na liście dostępu.
+ </notification>
+ <notification name="VoiceNotAllowed">
+ Nie masz pozwolenia na połączenie z rozmową [VOICE_CHANNEL_NAME].
+ </notification>
+ <notification name="VoiceCallGenericError">
+ Błąd podczas łączenia z rozmową [VOICE_CHANNEL_NAME]. Spróbuj póżniej.
+ </notification>
+ <notification name="ServerVersionChanged">
+ Ten region używa innej wersji symulatora. Kliknij na tą wiadomość żeby uzyskać więcej informacji.
+ </notification>
+ <notification name="UnableToOpenCommandURL">
+ Wybrany link nie daje się otworzyć z tej przeglądarki.
+ </notification>
+ <global name="UnsupportedCPU">
+ - Prędkość Twojego CPU nie spełnia minimalnych wymagań.
+ </global>
+ <global name="UnsupportedGLRequirements">
+ Wygląda na to, że Twój system nie spełnia wymagań sprzętowych Second Life. Second Life wymaga karty graficznej kompatybilnej z OpenGL z multiteksturami. Jeżeli masz taką kartę zainstaluj najnowsze sterowniki do niej i uaktualnienia systemu operacyjnego.
+
+Jeżeli wciąż masz problemy sprawdź: http://www.secondlife.com/support
+ </global>
+ <global name="UnsupportedCPUAmount">
+ 796
+ </global>
+ <global name="UnsupportedRAMAmount">
+ 510
+ </global>
+ <global name="UnsupportedGPU">
+ - Twoja karta graficzna nie spełnia minimalnych wymagań.
+ </global>
+ <global name="UnsupportedRAM">
+ - Pamięć Twojego systemu nie spełnia minimalnych wymagań.
+ </global>
+ <global name="PermYes">
+ Tak
+ </global>
+ <global name="PermNo">
+ Nie
+ </global>
+</notifications>
diff --git a/indra/newview/skins/default/xui/pl/panel_audio_device.xml b/indra/newview/skins/default/xui/pl/panel_audio_device.xml
index a2383404fc..ad30dfbacb 100755
--- a/indra/newview/skins/default/xui/pl/panel_audio_device.xml
+++ b/indra/newview/skins/default/xui/pl/panel_audio_device.xml
@@ -13,7 +13,7 @@
Poziom Wejścia
</text>
<text_editor type="string" length="1" name="voice_intro_text1">
- Użyj suwaka by dostosować jak głosno Cię słychać dla innych Rezydentów. By przetestować poziom wejścia, zacznij mówić do mikrofonu.
+ Użyj suwaka by dostosować jak głośno Cię słychać dla innych Rezydentów. By przetestować poziom wejścia, zacznij mówić do mikrofonu.
</text_editor>
<volume_slider name="mic_volume_slider"
tool_tip="By zmienić poziom głośności użyj suwaka" />
diff --git a/indra/newview/skins/default/xui/pl/panel_friends.xml b/indra/newview/skins/default/xui/pl/panel_friends.xml
index d58aa897db..b6df36f199 100755
--- a/indra/newview/skins/default/xui/pl/panel_friends.xml
+++ b/indra/newview/skins/default/xui/pl/panel_friends.xml
@@ -12,7 +12,7 @@
<column name="icon_visible_map"
tool_tip="Ta osoba może zlokalizować Cię na mapie" />
<column name="icon_edit_mine"
- tool_tip="Ta osoba może edytować, usunąć lub wziąść Twoje obiekty" />
+ tool_tip="Ta osoba może edytować, usunąć lub wziąć Twoje obiekty" />
<column name="icon_edit_theirs" tool_tip="Możesz edytować obiekty tej osoby" />
</scroll_list>
<button label="Czat/IM" name="im_btn" tool_tip="Rozpocznij sesję czatu/IM" />
diff --git a/indra/newview/skins/default/xui/pl/panel_group_general.xml b/indra/newview/skins/default/xui/pl/panel_group_general.xml
index 34c02e0714..6f6d524cd9 100755
--- a/indra/newview/skins/default/xui/pl/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/pl/panel_group_general.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="Ogólne" name="general_tab">
<string name="help_text">
Zakładka Ogólne zawiera informacje na temat tej grupy,
@@ -8,8 +8,8 @@ ustawienia grupy oraz opcje członkostwa.
<string name="group_info_unchanged">
Ogólne informacje na temat grupy uległy zmianie.
</string>
- <button label="?" label_selected="?" name="help_button" />
- <line_editor label="Wpisz nazwę grupy tutaj" name="group_name_editor" />
+ <button label="?" label_selected="?" name="help_button"/>
+ <line_editor label="Wpisz nazwę grupy tutaj" name="group_name_editor"/>
<text name="group_name">
Wpisz nazwę grupy tutaj
</text>
@@ -22,12 +22,12 @@ ustawienia grupy oraz opcje członkostwa.
<text name="group_charter_label">
Status Grupy
</text>
- <texture_picker label="Insygnia Grupy" name="insignia" tool_tip="Kliknij by wybrać zdjęcie" />
+ <texture_picker label="Insygnia Grupy" name="insignia" tool_tip="Kliknij by wybrać zdjęcie"/>
<text_editor name="charter">
Status Grupy
</text_editor>
- <button label="Dośącz (L$0)" label_selected="Dołącz (L$0)" name="join_button" />
- <button label="Szczegóły" label_selected="Szczegóły" name="info_button" />
+ <button label="Dołącz (L$0)" label_selected="Dołącz (L$0)" name="join_button"/>
+ <button label="Szczegóły" label_selected="Szczegóły" name="info_button"/>
<text name="text_owners_and_visible_members">
Właściciele i widoczni członkowie
</text>
@@ -35,34 +35,37 @@ ustawienia grupy oraz opcje członkostwa.
(Właściciele wyświetlają się pogrubioną czcionką)
</text>
<name_list name="visible_members">
- <column label="Imię" name="name" />
- <column label="Tytuł" name="title" />
- <column label="Ostatnio w SL" name="online" />
+ <column label="Imię" name="name"/>
+ <column label="Tytuł" name="title"/>
+ <column label="Ostatnio w SL" name="online"/>
</name_list>
<text name="text_group_preferences">
Ustawienia Grupy
</text>
<panel name="preferences_container">
- <check_box label="Wyświetlaj w wyszukiwarce" name="show_in_group_list"
- tool_tip="Udostępnij info o grupie w wyszukiwarce" />
- <check_box label="Wolny Wstęp" name="open_enrollement"
- tool_tip="Sprawdź czy grupa oferuje wolny wstęp i nie wymaga zaproszenia." />
- <check_box label="Opłata Wstępu: L$" name="check_enrollment_fee"
- tool_tip="Ustaw opłatę za przyłączenie się do grupy." />
- <spinner name="spin_enrollment_fee"
- tool_tip="Nowi członkowie grupy muszą zapłacić wymaganą opłatę by dołączyć do grupy." />
-
+ <check_box label="Wyświetlaj w wyszukiwarce" name="show_in_group_list" tool_tip="Udostępnij info o grupie w wyszukiwarce"/>
+ <check_box label="Wolny Wstęp" name="open_enrollement" tool_tip="Sprawdź czy grupa oferuje wolny wstęp i nie wymaga zaproszenia."/>
+ <check_box label="Opłata Wstępu: L$" name="check_enrollment_fee" tool_tip="Ustaw opłatę za przyłączenie się do grupy."/>
+ <spinner name="spin_enrollment_fee" tool_tip="Nowi członkowie grupy muszą zapłacić wymaganą opłatę by dołączyć do grupy."/>
+ <combo_box name="group_mature_check" tool_tip="Wybierz jeżeli uważasz, iż Twoja grupa klasyfikowana jest jako &apos;Mature&apos;.">
+ <combo_item name="select_mature">
+ - Wybierz Treść -
+ </combo_item>
+ <combo_item name="mature">
+ Treść &apos;Mature&apos;
+ </combo_item>
+ <combo_item name="pg">
+ Treść &apos;PG&apos;
+ </combo_item>
+ </combo_box>
<panel name="title_container">
<text name="active_title_label">
Mój Aktywny Tytuł
</text>
- <combo_box length="150" name="active_title"
- tool_tip="Ustaw tytuł który wyświetla się kiedy grupa jest aktywna." />
+ <combo_box length="150" name="active_title" tool_tip="Ustaw tytuł który wyświetla się kiedy grupa jest aktywna."/>
</panel>
- <check_box label="Otrzymuj grupowe ogłoszenia" name="receive_notices"
- tool_tip="Zaznacz jeżeli chcesz otrzymywać ogłoszenia z tej grupy. Anuluj z zaznaczenia, jeżeli nie chcesz otrzymywać żadnych ogłoszeń z tej grupy." />
- <check_box label="Wyświetl grupę w profilu" name="list_groups_in_profile"
- tool_tip="Zaznacz jeżeli chcesz by grupa wyświetlała się w Twoim profilu" />
+ <check_box label="Otrzymuj grupowe ogłoszenia" name="receive_notices" tool_tip="Zaznacz jeżeli chcesz otrzymywać ogłoszenia z tej grupy. Anuluj z zaznaczenia, jeżeli nie chcesz otrzymywać żadnych ogłoszeń z tej grupy."/>
+ <check_box label="Wyświetl grupę w profilu" name="list_groups_in_profile" tool_tip="Zaznacz jeżeli chcesz by grupa wyświetlała się w Twoim profilu"/>
</panel>
<string name="incomplete_member_data_str">
Wyszukiwanie informacji o członku
@@ -70,6 +73,6 @@ ustawienia grupy oraz opcje członkostwa.
<string name="confirm_group_create_str">
Koszt utworzenia tej grupy wynosi L$100.
Czy napewno jesteś PEWNY,że chcesz zapłacić L$100 by utworzyć grupę?
-Pamiętaj, jeżeli w ciągu 48h od utworzenia grupy nikt do niej nie dołączy, informacje o grupie zostaną usunięte z bazy, a nazwa grupy zablokowana do użycia w przyszśości.
+Pamiętaj, jeżeli w ciągu 48h od utworzenia grupy nikt do niej nie dołączy, informacje o grupie zostaną usunięte z bazy, a nazwa grupy zablokowana do użycia w przyszłości.
</string>
</panel>
diff --git a/indra/newview/skins/default/xui/pl/panel_group_invite.xml b/indra/newview/skins/default/xui/pl/panel_group_invite.xml
index ef5628d8d3..12d48279ad 100755
--- a/indra/newview/skins/default/xui/pl/panel_group_invite.xml
+++ b/indra/newview/skins/default/xui/pl/panel_group_invite.xml
@@ -1,9 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel label="Zaproszenie do Grupy" name="invite_panel">
<text name="help_text">
- Zaproś Rezydentów do Grupy
+ Możesz zaprosić kilku Rezydentów
+do swojej grupy. Wybierz &apos;Otwórz
+Katalog Osobisty&apos; by rozpocząć.
</text>
- <button label="Otwórz Osobisty Katalog" name="add_button" tool_tip="" />
+ <button label="Otwórz Katalog Osobisty" name="add_button" tool_tip=""/>
<name_list name="invitee_list" tool_tip="" />
<button label="Usuń z Listy" name="remove_button" tool_tip="" />
<text name="role_text">
@@ -13,7 +15,7 @@
<button label="Wyślij Zaproszenia" name="ok_button" />
<button label="Anuluj" name="cancel_button" />
<string name="confirm_invite_owner_str">
- Jesteś pewny, że chcesz wybrać nowych właśccieli grupy? Ta decyzja jest ostateczna!
+ Jesteś pewny, że chcesz wybrać nowych właścieli grupy? Ta decyzja jest ostateczna!
</string>
<string name="loading">
(loading...)
diff --git a/indra/newview/skins/default/xui/pl/panel_group_land_money.xml b/indra/newview/skins/default/xui/pl/panel_group_land_money.xml
index 98660b3f6e..5080b0963a 100755
--- a/indra/newview/skins/default/xui/pl/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/pl/panel_group_land_money.xml
@@ -1,13 +1,9 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Posiadłości i L$" name="land_money_tab">
<string name="help_text">
- Posiadłości należące go Grupy są wymienione z danymi
-o kontrybucjach. Ostrzeżenie pojawia się w momencie
-kiedy używa się mniej Posiadłości od Kontrybucji.
-Zakładki Szczegóły i Sprzedaż zawierają
-informacje o finansach Grupy.
+ Posiadłości, które są własnością grupy zawierają dane poszczególnych kontrybucji ich członków. W przypadku kiedy całkowita ilość metrów przypisanej danej posiadłości przez grupę jest mniejsza lub równa całkowitej liczbie kontrybucji dla przypisanej ilości metrów pojawia się ostrzeżenie. Zakładki: Planowanie, Szczegóły oraz Sprzedaże udostępniają informacje na temat statusu finansowego grupy.
</string>
- <button label="?" name="help_button" />
+ <button label="?" name="help_button"/>
<string name="cant_view_group_land_text">
Nie masz pozwolenia na oglądanie Posiadłości Grupy.
</string>
@@ -21,12 +17,13 @@ informacje o finansach Grupy.
Posiadłości Grupy
</text>
<scroll_list name="group_parcel_list">
- <column label="Nazwa Posiadłości" name="name" />
- <column label="Region" name="location" />
- <column label="Obszar" name="area" />
- <column label="" name="hidden" />
+ <column label="Posiadłości" name="name"/>
+ <column label="Region" name="location"/>
+ <column label="Typ" name="type"/>
+ <column label="Obszar" name="area"/>
+ <column label="" name="hidden"/>
</scroll_list>
- <button label="Pokaż na Mapie" label_selected="Pokaż na Mapie" name="map_button" />
+ <button label="Pokaż na Mapie" label_selected="Pokaż na Mapie" name="map_button"/>
<text name="total_contributed_land_label">
Kontrybucje:
</text>
@@ -70,19 +67,15 @@ informacje o finansach Grupy.
<text_editor name="group_money_details_text">
Obliczanie...
</text_editor>
- <button label="&lt; Wcześniej" label_selected="&lt; Wcześniej"
- name="earlier_details_button" tool_tip="Do tyłu w czasie" />
- <button label="Później &gt;" label_selected="Później &gt;"
- name="later_details_button" tool_tip="Do przodu w czasie" />
+ <button label="&lt; Wcześniej" label_selected="&lt; Wcześniej" name="earlier_details_button" tool_tip="Do tyłu w czasie"/>
+ <button label="Później &gt;" label_selected="Później &gt;" name="later_details_button" tool_tip="Do przodu w czasie"/>
</panel>
<panel label="Sprzedaż" name="group_money_sales_tab">
<text_editor name="group_money_sales_text">
Obliczanie...
</text_editor>
- <button label="&lt; Wcześniej" label_selected="&lt; Wcześniej"
- name="earlier_sales_button" tool_tip="Do tyłu w czasie" />
- <button label="Później &gt;" label_selected="Później &gt;"
- name="later_sales_button" tool_tip="Do przodu w czasie" />
+ <button label="&lt; Wcześniej" label_selected="&lt; Wcześniej" name="earlier_sales_button" tool_tip="Do tyłu w czasie"/>
+ <button label="Później &gt;" label_selected="Później &gt;" name="later_sales_button" tool_tip="Do przodu w czasie"/>
</panel>
</tab_container>
</panel>
diff --git a/indra/newview/skins/default/xui/pl/panel_group_roles.xml b/indra/newview/skins/default/xui/pl/panel_group_roles.xml
index 9c2a23b8ea..ccef8870d2 100755
--- a/indra/newview/skins/default/xui/pl/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/pl/panel_group_roles.xml
@@ -51,7 +51,7 @@ Przywilejem.
<column label="Kontrybucje" name="donated" />
<column label="Ostatnio w SL" name="online" />
</name_list>
- <button label="Zaproś Nową Osobę..." name="member_invite" />
+ <button label="Zaproś Nową Osobę..." name="member_invite"/>
<button label="Usuń z Grupy" name="member_eject" />
<string name="help_text">
Możesz dodawać i usuwać Funkcje przypisane do Członków.
@@ -79,7 +79,7 @@ Możesz wybrać wielu Członków naciskając Ctrl i klikając na ich imionach.
<panel label="Przywileje" name="actions_sub_tab">
<button label="Szukaj" name="search_button" />
<button label="Wszystko" name="show_all_button" />
- <scroll_list name="action_list" tool_tip="Select an Ability to view more details.">
+ <scroll_list name="action_list" tool_tip="Zaznacz aby zobaczyć więcej informacji.">
<column label="" name="icon" />
<column label="" name="action" />
</scroll_list>
diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_chat.xml b/indra/newview/skins/default/xui/pl/panel_preferences_chat.xml
index 7bad6dd281..67252f6fd2 100755
--- a/indra/newview/skins/default/xui/pl/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/pl/panel_preferences_chat.xml
@@ -4,15 +4,9 @@
Rozmiar Czcionki Czatu:
</text>
<radio_group name="chat_font_size">
- <radio_item type="string" length="1" name="radio">
- Mała
- </radio_item>
- <radio_item type="string" length="1" name="radio2">
- Średnia
- </radio_item>
- <radio_item type="string" length="1" name="radio3">
- Duża
- </radio_item>
+ <radio_item type="string" length="1" name="radio" label="Mała" />
+ <radio_item type="string" length="1" name="radio2" label="Średnia" />
+ <radio_item type="string" length="1" name="radio3" label="Duża" />
</radio_group>
<text type="string" length="1" name="text_box2">
Kolor Czatu:
@@ -23,7 +17,7 @@
<color_swatch label="System" name="system" />
<color_swatch label="Błędy" name="script_error" />
<color_swatch label="Obiekty" name="objects" />
- <color_swatch label="Szef" name="owner" />
+ <color_swatch label="Właściciel" name="owner" />
<color_swatch label="Chmurka" name="background" />
<color_swatch label="Linki" name="links" />
<text type="string" length="1" name="text_box8">
@@ -40,7 +34,7 @@
<text type="string" length="1" name="text_box5">
(linii)
</text>
- <slider label="Przezroczystość" name="console_opacity" />
+ <slider label="Przeźroczystość" name="console_opacity" />
<check_box label="Używaj pełnej szerokość ekranu (restart wymagany)" name="chat_full_width_check" />
<text type="string" length="1" name="text_box6">
Ustawienia Czatu:
@@ -53,5 +47,5 @@
Czat z Chmurkami:
</text>
<check_box label="Pokazuj chmurki w czacie" name="bubble_text_chat" />
- <slider label="Przezroczystość" name="bubble_chat_opacity" />
+ <slider label="Przeźroczystość" name="bubble_chat_opacity" />
</panel>
diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_general.xml b/indra/newview/skins/default/xui/pl/panel_preferences_general.xml
index f120af9aaf..1199f0622f 100755
--- a/indra/newview/skins/default/xui/pl/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/pl/panel_preferences_general.xml
@@ -8,11 +8,17 @@
Ostatnie Miejsce
</radio_item>
</radio_group>
- <check_box label="Pokaż Miejsce Startu na Ekranie Logowania" name="show_location_checkbox"/>
+ <check_box label="Pokaż Miejsce Startu podczas Logowania" name="show_location_checkbox"/>
<combo_box name="fade_out_combobox">
- <combo_box.item name="Never" label="Nigdy" />
- <combo_box.item name="Show Temporarily" label="Tymczasowo" />
- <combo_box.item name="Always" label="Zawsze" />
+ <combo_item name="Never">
+ Nigdy
+ </combo_item>
+ <combo_item name="Show Temporarily">
+ Tymczasowo
+ </combo_item>
+ <combo_item name="Always">
+ Zawsze
+ </combo_item>
</combo_box>
<check_box label="Używaj Małych Imion Awatarów" name="small_avatar_names_checkbox"/>
<check_box label="Nie Wyświetlaj Mojego Imienia" name="show_my_name_checkbox"/>
@@ -28,10 +34,28 @@
<slider name="ui_scale_slider"/>
<check_box label="Używaj Skali Nizależnej od Rozdzielczości" name="ui_auto_scale"/>
<spinner label="Zasypiaj w:" name="afk_timeout_spinner"/>
- <check_box label="Obracaj Mini-Mapę" name="rotate_mini_map_checkbox"/>
<check_box label="Powiadamiaj o Wydatkach i Zarobkach (L$)" name="notify_money_change_checkbox"/>
- <check_box label="Używaj Domyślnej Selekcji Koloru" name="use_system_color_picker_checkbox" tool_tip="Używaj domyślnej / systemowej selekcji koloru"/>
- <check_box label="Pokaż Wyszukiwarkę" name="show_search_panel" tool_tip="Pokaż wbudowaną wyszukiwarkę"/>
+ <text name="maturity_desired_label" bottom="-312">
+ Treść:
+ </text>
+ <text name="maturity_desired_prompt" bottom="-312">
+ Chcę uzyskać dostęp do
+miejsc zakwalifikowanych jako:
+ </text>
+ <combo_box name="maturity_desired_combobox" bottom="-330" left="322" width="162" >
+ <combo_item name="Desired_Adult">
+ &apos;PG&apos;, &apos;Mature&apos; oraz &apos;Adult&apos;
+ </combo_item>
+ <combo_item name="Desired_Mature">
+ &apos;PG&apos; i &apos;Mature&apos;
+ </combo_item>
+ <combo_item name="Desired_PG">
+ tylko &apos;PG&apos;
+ </combo_item>
+ </combo_box>
+ <text name="maturity_desired_textbox" bottom="-324" left="322">
+ tylko &apos;PG&apos;
+ </text>
<text length="1" name="start_location_textbox" type="string">
Miejsce Startu:
</text>
@@ -57,21 +81,68 @@
&lt;Wpisz Region&gt;
</string>
<combo_box name="crash_behavior_combobox">
- <combo_box.item length="1" name="Askbeforesending" type="string" label="Pytaj przed wysłaniem" />
- <combo_box.item length="1" name="Alwayssend" type="string" label="Zawsze wysyłaj" />
- <combo_box.item length="1" name="Neversend" type="string" label="Nigdy nie wysyłaj" />
+ <combo_item length="1" name="Askbeforesending" type="string">
+ Pytaj przed wysłaniem
+ </combo_item>
+ <combo_item length="1" name="Alwayssend" type="string">
+ Zawsze wysyłaj
+ </combo_item>
+ <combo_item length="1" name="Neversend" type="string">
+ Nigdy nie wysyłaj
+ </combo_item>
</combo_box>
<combo_box name="language_combobox">
- <combo_box.item length="1" name="System Default Language" type="string" label="Domyślny" />
- <combo_box.item length="1" name="English" type="string" label="English (Angielski)" />
- <combo_box.item length="1" name="Chinese" type="string" label="中文 (简体) (Chiński) - Beta" />
- <combo_box.item length="1" name="Deutsch(German)" type="string" label="Deutsch (Niemiecki) - Beta" />
- <combo_box.item length="1" name="French" type="string" label="Français (Francuski) - Beta" />
- <combo_box.item length="1" name="(Japanese)" type="string" label="日本語 (Japoński) - Beta" />
- <combo_box.item length="1" name="(Korean)" type="string" label="한국어 (Koreański) - Beta" />
- <combo_box.item length="1" name="Polish" type="string" label="Polski - Beta" />
- <combo_box.item length="1" name="Portugese" type="string" label="Portugués (Portugalski) - Beta" />
- <combo_box.item length="1" name="Spanish" type="string" label="Español (Hiszpański) - Beta" />
+ <combo_item length="1" name="System Default Language" type="string">
+ Domyślny
+ </combo_item>
+ <combo_item length="1" name="English" type="string">
+ English (Angielski)
+ </combo_item>
+ <combo_item name="Danish">
+ Dansk (Duński) - Beta
+ </combo_item>
+ <combo_item length="1" name="Deutsch(German)" type="string">
+ Deutsch (Niemiecki) - Beta
+ </combo_item>
+ <combo_item length="1" name="Spanish" type="string">
+ Español (Hiszpański) - Beta
+ </combo_item>
+ <combo_item length="1" name="French" type="string">
+ Français (Francuski) - Beta
+ </combo_item>
+ <combo_item name="Italian">
+ Italiano (Włoski) - Beta
+ </combo_item>
+ <combo_item name="Hungarian">
+ Magyar (Węgierski) - Beta
+ </combo_item>
+ <combo_item name="Dutch">
+ Nederlands (Niderlandzki) - Beta
+ </combo_item>
+ <combo_item length="1" name="Polish" type="string">
+ Polski - Beta
+ </combo_item>
+ <combo_item length="1" name="Portugese" type="string">
+ Portugués (Portugalski) - Beta
+ </combo_item>
+ <combo_item name="Russian">
+ Русский (Rosyjski) - Beta
+ </combo_item>
+ <combo_item name="Turkish">
+ Türkçe (Turecki) - Beta
+ </combo_item>
+ <combo_item name="Ukrainian">
+ Українська (Ukraiński) - Beta
+ </combo_item>
+ <combo_item length="1" name="Chinese" type="string">
+ 中文 (简体) (Chiński) - Beta
+ </combo_item>
+ <combo_item length="1" name="(Japanese)" type="string">
+ 日本語 (Japoński) - Beta
+ </combo_item>
+ <combo_item length="1" name="(Korean)" type="string">
+ 한국어 (Koreański) - Beta
+ </combo_item>
</combo_box>
<check_box label="Język znany publicznie" name="language_is_public" tool_tip="Pozwala obiektom w świecie poznać Twój wybór język."/>
</panel>
diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/pl/panel_preferences_graphics1.xml
index c14d14f2ab..d59e6dbaf0 100755
--- a/indra/newview/skins/default/xui/pl/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/pl/panel_preferences_graphics1.xml
@@ -69,23 +69,15 @@
Ustawienia Odbić:
</text>
<radio_group name="ReflectionDetailRadio">
- <radio_item type="string" length="1" name="0">
- Teren i Drzewa
- </radio_item>
- <radio_item type="string" length="1" name="1">
- Obiekty Statyczne
- </radio_item>
- <radio_item type="string" length="1" name="2">
- Awatary i Obiekty
- </radio_item>
- <radio_item type="string" length="1" name="3">
- Wszystko
- </radio_item>
+ <radio_item type="string" length="1" name="0" label="Teren i Drzewa" />
+ <radio_item type="string" length="1" name="1" label="Obiekty Statyczne" />
+ <radio_item type="string" length="1" name="2" label="Awatary i Obiekty" />
+ <radio_item type="string" length="1" name="3" label="Wszystko" />
</radio_group>
<text type="string" length="1" name="AvatarRenderingText">
Prezentacja Awatarów:
</text>
- <check_box label="Fałszywe Awatary" name="AvatarImpostors" />
+ <check_box label="Impostoryzacja Awatarowa" name="AvatarImpostors" />
<check_box label="Skinning" name="AvatarVertexProgram" />
<check_box label="Ubranie Awatarów" name="AvatarCloth" />
<text type="string" length="1" name="DrawDistanceMeterText1">
@@ -131,23 +123,15 @@
Ustawienia Światła:
</text>
<radio_group name="LightingDetailRadio">
- <radio_item type="string" length="1" name="SunMoon">
- Tylko Słońce i Księżyc
- </radio_item>
- <radio_item type="string" length="1" name="LocalLights">
- Tylko Bliskie Światła
- </radio_item>
+ <radio_item type="string" length="1" name="SunMoon" label="Tylko Słońce i Księżyc" />
+ <radio_item type="string" length="1" name="LocalLights" label="Tylko Bliskie Światła" />
</radio_group>
<text type="string" length="1" name="TerrainDetailText">
Szczgóły Terenu:
</text>
<radio_group name="TerrainDetailRadio">
- <radio_item type="string" length="1" name="0">
- Mało
- </radio_item>
- <radio_item type="string" length="1" name="2">
- Dużo
- </radio_item>
+ <radio_item type="string" length="1" name="0" label="Mało" />
+ <radio_item type="string" length="1" name="2" label="Dużo" />
</radio_group>
<button label="Ustawienia Domyślne" name="Defaults" />
<button label="Ustawnia Sprzętowe" label_selected="Ustawienia Sprzętowe"
diff --git a/indra/newview/skins/default/xui/pl/panel_region_covenant.xml b/indra/newview/skins/default/xui/pl/panel_region_covenant.xml
index 21611ed6c0..f20387dd25 100755
--- a/indra/newview/skins/default/xui/pl/panel_region_covenant.xml
+++ b/indra/newview/skins/default/xui/pl/panel_region_covenant.xml
@@ -1,39 +1,72 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Umowa" name="Covenant">
- <text name="covenant_help_text">
- Zmiany w Umowie odnoszą się do wszystkich Posiadłości w Majątku.
- </text>
- <text name="region_name_lbl">
- Region:
- </text>
- <text name="region_name_text">
- (bark danych)
+ <text name="estate_section_lbl">
+ Majątek:
</text>
<text name="estate_name_lbl">
- Majątek:
+ Nazwa:
</text>
<text name="estate_name_text">
- (brak danych)
+ mainland
</text>
<text name="estate_owner_lbl">
- Właściciel Majątku:
+ Właściciel:
</text>
<text name="estate_owner_text">
- (brak danych)
+ (żaden)
</text>
- <text name="resellable_clause">
- Posiadłości kupione w tym Regionie mogą lub nie być odsprzedawane.
+ <text name="estate_cov_lbl">
+ Umowa:
</text>
- <text name="changeable_clause">
- Posiadłości kupione w tym Regionie mogą lub nie być łączone lub dzielone.
- </text>
- <text name="covenent_instructions">
- Przeciągnij i upuść notkę żeby zmienić Umowę dla tego Majątku.
+ <text name="covenant_timestamp_text">
+ Ostatnia Modyfikacja Wed Dec 31 16:00:00 1969
</text>
+ <button label="?" name="covenant_help"/>
<text_editor name="covenant_editor">
- Ładowanie...
+ Brak umowy dla tego majątku.
</text_editor>
- <button label="Wyresetuj" name="reset_covenant" />
+ <button label="Wyresetuj" name="reset_covenant"/>
+ <text name="covenant_help_text" bottom_delta="-6">
+ Zmiany w umowie zostaną wyświetlone we
+wszystkich posiadłościach majątku.
+ </text>
+ <text name="covenant_instructions" bottom_delta="-36">
+ Przeciągnij oraz wrzuć notę by zmienić umowę dla tego majątku.
+ </text>
+ <text name="region_section_lbl">
+ Region:
+ </text>
+ <text name="region_name_lbl">
+ Nazwa:
+ </text>
+ <text name="region_name_text" left="115">
+ leyla
+ </text>
+ <text name="region_landtype_lbl">
+ Typ:
+ </text>
+ <text name="region_landtype_text" left="115">
+ Region Główny / Ziemia
+ </text>
+ <text name="region_maturity_lbl">
+ Rodzaj:
+ </text>
+ <text name="region_maturity_text" left="115">
+ &apos;Adult&apos;
+ </text>
+ <text name="resellable_lbl">
+ Odsprzedaj:
+ </text>
+ <text name="resellable_clause" left="115" width="350">
+ Posiadłość zakupiona w tym regionie nie może być odsprzedana.
+ </text>
+ <text name="changeable_lbl">
+ Podziel:
+ </text>
+ <text name="changeable_clause" left="115" width="350">
+ Posiadłość zakupiona w tym regionie nie może być
+łączona/dzielona.
+ </text>
<string name="can_resell">
Posiadłości kupione w tym Regionie mogą być odsprzedane.
</string>
@@ -44,7 +77,7 @@
Posiadłości kupione w tym Regionie mogą być łączone i dzielone.
</string>
<string name="can_not_change">
- Posiadłości kupione w tym Regionie nie mogą być łączone i dzielone.
+ Posiadłości kupione w tym Regionie nie mogą być łączone i
+dzielone.
</string>
- <button label="?" name="covenant_help" />
</panel>
diff --git a/indra/newview/skins/default/xui/pl/panel_region_general.xml b/indra/newview/skins/default/xui/pl/panel_region_general.xml
index 009d1aa645..36cff9c2d0 100755
--- a/indra/newview/skins/default/xui/pl/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/pl/panel_region_general.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="Region" name="General">
<text name="region_text_lbl">
Region:
@@ -12,35 +12,48 @@
<text name="version_channel_text">
brak danych
</text>
- <check_box label="Zablokuj Zmiany Terenu" name="block_terraform_check" />
- <button label="?" name="terraform_help" />
- <check_box label="Zablokuj Latanie" name="block_fly_check" />
- <button label="?" name="fly_help" />
- <check_box label="Uszkodzenia Dozwolone" name="allow_damage_check" />
- <button label="?" name="damage_help" />
- <check_box label="Zablokuj Popychanie" name="restrict_pushobject" />
- <button label="?" name="restrict_pushobject_help" />
- <check_box label="Odsprzedaż Dozwolona" name="allow_land_resell_check" />
- <button label="?" name="land_resell_help" />
- <check_box label="Łączenie/Dzielenie Dozwolone" name="allow_parcel_changes_check" />
- <button label="?" name="parcel_changes_help" />
- <check_box label="Zablokuj Wyszukiwanie" name="block_parcel_search_check"
- tool_tip="Pozwól na wyświetlanie nazwy regionu i posiadłości w wynikach wyszukiwania" />
- <button label="?" name="parcel_search_help" />
- <spinner label="Limit Gości" name="agent_limit_spin" />
- <button label="?" name="agent_limit_help" />
- <spinner label="Ekstra Obiekty" name="object_bonus_spin" />
- <button label="?" name="object_bonus_help" />
+ <text name="region_type_lbl">
+ Typ:
+ </text>
+ <text name="region_type">
+ nieznany
+ </text>
+ <check_box label="Zablokuj Zmiany Terenu" name="block_terraform_check"/>
+ <button label="?" name="terraform_help"/>
+ <check_box label="Zablokuj Latanie" name="block_fly_check"/>
+ <button label="?" name="fly_help"/>
+ <check_box label="Uszkodzenia Dozwolone" name="allow_damage_check"/>
+ <button label="?" name="damage_help"/>
+ <check_box label="Zablokuj Popychanie" name="restrict_pushobject"/>
+ <button label="?" name="restrict_pushobject_help"/>
+ <check_box label="Odsprzedaż Dozwolona" name="allow_land_resell_check"/>
+ <button label="?" name="land_resell_help"/>
+ <check_box label="Łączenie/Dzielenie Dozwolone" name="allow_parcel_changes_check"/>
+ <button label="?" name="parcel_changes_help"/>
+ <check_box label="Zablokuj Wyszukiwanie" name="block_parcel_search_check" tool_tip="Pozwól na wyświetlanie nazwy regionu i posiadłości w wynikach wyszukiwania"/>
+ <button label="?" name="parcel_search_help"/>
+ <spinner label="Limit Gości" name="agent_limit_spin"/>
+ <button label="?" name="agent_limit_help"/>
+ <spinner label="Ekstra Obiekty" name="object_bonus_spin"/>
+ <button label="?" name="object_bonus_help"/>
<text label="Ograniczenia Wieku" name="access_text">
- Dozwolony:
+ Rodzaj:
</text>
-
-
-
- <button label="?" name="access_help" />
- <button label="Zastosuj" name="apply_btn" />
- <button label="Wyrzuć Awatara..." name="kick_btn" />
- <button label="Wyrzuć Wszystkich..." name="kick_all_btn" />
- <button label="Wyślij Wiadomość do Regionu..." name="im_btn" />
- <button label="Obsługa Teleportera..." name="manage_telehub_btn" />
+ <combo_box label="&apos;Mature&apos;" name="access_combo">
+ <combo_item name="Adult">
+ &apos;Adult&apos;
+ </combo_item>
+ <combo_item name="Mature">
+ &apos;Mature&apos;
+ </combo_item>
+ <combo_item name="PG">
+ &apos;PG&apos;
+ </combo_item>
+ </combo_box>
+ <button label="?" name="access_help"/>
+ <button label="Zastosuj" name="apply_btn"/>
+ <button label="Wyrzuć Awatara..." name="kick_btn"/>
+ <button label="Wyrzuć Wszystkich..." name="kick_all_btn"/>
+ <button label="Wyślij Wiadomość do Regionu..." name="im_btn"/>
+ <button label="Obsługa Teleportera..." name="manage_telehub_btn"/>
</panel>
diff --git a/indra/newview/skins/default/xui/pl/panel_status_bar.xml b/indra/newview/skins/default/xui/pl/panel_status_bar.xml
index 7c6c7ab90f..bdf22fa66d 100755
--- a/indra/newview/skins/default/xui/pl/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/pl/panel_status_bar.xml
@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel name="status">
- <text type="string" length="1" name="ParcelNameText"
- tool_tip="Nazwa posiadłości w której się znajdujesz. Po więcej informacji kliknij O Posiadłości.">
- nazwa posiadłości
+ <text type="string" length="1" name="ParcelNameText" tool_tip="Nazwa posiadłości w której się znajdujesz. Po więcej informacji kliknij O Posiadłości.">
+ Nazwa Posiadłości
</text>
<text type="string" length="1" name="BalanceText" tool_tip="Stan Konta">
Ładowanie...
@@ -15,25 +14,22 @@
Niedziela:Poniedziałek:Wtorek:Środa:Czwartek:Piątek:Sobota
</string>
<string name="StatBarMonthsOfYear">
- Styczeń:Luty:Marzec:Kwiecień:Maj:Czerwiec:Lipiec:Serpień:Wrzesień:Październik:Listopad:Grudzień
+ Styczeń:Luty:Marzec:Kwiecień:Maj:Czerwiec:Lipiec:Styczeń:Wrzesień:Październik:Listopad:Grudzień
</string>
- <button label="" label_selected="" name="scriptout"
- tool_tip="Ostrzeżenia i Błędy Skryptów" />
- <button label="" label_selected="" name="health" tool_tip="Zdrowie" />
- <text type="string" length="1" name="HealthText" tool_tip="Health">
+ <button label="" label_selected="" name="scriptout" tool_tip="Błędy i Ostrzeżenia Skryptów" />
+ <button label="" label_selected="" name="health" tool_tip="Stan" />
+ <text type="string" length="1" name="HealthText" tool_tip="Stan">
100%
</text>
- <button label="" label_selected="" name="no_fly" tool_tip="Latanie niedozwolone" />
- <button label="" label_selected="" name="no_build" tool_tip="Budowanie niedozwolone" />
- <button label="" label_selected="" name="no_scripts" tool_tip="Scripts not allowed" />
- <button label="" label_selected="" name="restrictpush"
- tool_tip="Popychanie niedozwolone" />
- <button label="" label_selected="" name="status_no_voice"
- tool_tip="Rozmowy niedowolone" />
+ <button label="" label_selected="" name="no_fly" tool_tip="Latanie jest niedozwolone" />
+ <button label="" label_selected="" name="no_build" tool_tip="Budowanie/rezzowanie jest niedozwolone" />
+ <button label="" label_selected="" name="no_scripts" tool_tip="Używanie skryptów jest niedozwolone" />
+ <button label="" label_selected="" name="restrictpush" tool_tip="Pochnięcia są niedozwolone" />
+ <button label="" label_selected="" name="status_no_voice" tool_tip="Używanie komunikacji głosowej jest niedozwolone" />
<button label="" label_selected="" name="buyland" tool_tip="Kup tą posiadłość" />
<button label="" name="menubar_search_bevel_bg" />
- <line_editor label="Szukaj" name="search_editor" tool_tip="Przeszukaj Second Life" />
- <button label="" label_selected="" name="search_btn" tool_tip="Przeszukaj Second Life" />
+ <line_editor label="Szukaj" name="search_editor" tool_tip="Szukaj w Second Life" />
+ <button label="" label_selected="" name="search_btn" tool_tip="Szukaj w Second Life" />
<string name="packet_loss_tooltip">
Utracone Pakiety
</string>
diff --git a/indra/newview/skins/default/xui/pl/role_actions.xml b/indra/newview/skins/default/xui/pl/role_actions.xml
index 37df2d4c38..5711eacf2f 100755
--- a/indra/newview/skins/default/xui/pl/role_actions.xml
+++ b/indra/newview/skins/default/xui/pl/role_actions.xml
@@ -53,11 +53,11 @@
<action description="Przypisywanie i kupowanie Posiadłości dla Grupy"
longdescription="Przypisywanie i kupowanie Posiadłości dla Grupy. Dostęp poprzez O Posiadlości &gt; ustawienia Ogólne."
name="land deed" />
- <action description="Oddawanie Posiadłości do Linden Labs"
- longdescription="Oddawanie Posiadłości do Linden Labs. *UWAGA* Członek w Funcji z tym Przywilejem może porzucać Posiadlości Grupy poprzez O Posiadlości &gt; ustawienia Ogólne oddając Posiadłości za darmo do Linden Labs! Udzielaj tego Przywileju z rozwagą."
+ <action description="Oddawanie Posiadłości do Linden Lab"
+ longdescription="Oddawanie Posiadłości do Linden Lab. *UWAGA* Członek w Funkcji z tym Przywilejem może porzucać Posiadlości Grupy poprzez O Posiadlości &gt; ustawienia Ogólne oddając Posiadłości za darmo do Linden Labs! Udzielaj tego Przywileju z rozwagą."
name="land release" />
<action description="Sprzedaż Posiadłości"
- longdescription="Sprzedaż Posiadłości. *UWAGA* Członek w Funcji z tym Przywilejem może sprzedawać Posiadlości Grupy poprzez O Posiadlości &gt; ustawienia Ogólne! Udzielaj tego Przywileju z rozwagą."
+ longdescription="Sprzedaż Posiadłości. *UWAGA* Członek w Funkcji z tym Przywilejem może sprzedawać Posiadlości Grupy poprzez O Posiadlości &gt; ustawienia Ogólne! Udzielaj tego Przywileju z rozwagą."
name="land set sale info" />
<action description="Podział i Łączenie Posiadłości"
longdescription="Podział i Łączenie Posiadłości. Dostęp poprzez wybranie gruntu prawym klawiszem myszki, &apos;Edycja Terenu&apos;, i przesuwanie myszką po gruncie wybierając obszar. Aby podzielić wybierz obszar i naciśnij &apos;Podziel...&apos;. Aby połączyć wybierz dwie albo więcej sąsiadujące Posiadłości i naciśnij &apos;Połącz...&apos;."
@@ -75,7 +75,7 @@
longdescription="Zmiany nazwy Posiadłości, opisu i selekcja &apos;Widoczność w Wyszukiwarce&apos;. Dostęp poprzez O Posiadłości &gt; Opcje."
name="land change identity" />
<action description="Wybór miejsca lądowania i ustawienia teleportacji (TP)"
- longdescription="Na Posiadłości Grupy Członek w Funcji z tym Przywilejem może wybrać miejsce gdzie teleportujące się osoby będą ladować oraz może ustalić dodatkowe parametry teleportacji (TP). Dostęp poprzez O Posiadłości &gt; Opcje."
+ longdescription="Na Posiadłości Grupy Członek w Funkcji z tym Przywilejem może wybrać miejsce gdzie teleportujące się osoby będą ladować oraz może ustalić dodatkowe parametry teleportacji (TP). Dostęp poprzez O Posiadłości &gt; Opcje."
name="land set landing point" />
</action_set>
<action_set
@@ -95,19 +95,19 @@
description="Przywileje pozwalające Członkom na omijanie ograniczeń na Posiadłościach Grupy."
name="Parcel Powers">
<action description="Pozwól na Edycję Terenu"
- longdescription="Członkowie w Funcji z tym Przywilejem mogą zawsze edytować teren na Posiadłościach Grupy."
+ longdescription="Członkowie w Funkcji z tym Przywilejem mogą zawsze edytować teren na Posiadłościach Grupy."
name="land allow edit land" />
<action description="Pozwól na Latanie"
- longdescription="Członkowie w Funcji z tym Przywilejem mogą zawsze latać na Posiadłościach Grupy."
+ longdescription="Członkowie w Funkcji z tym Przywilejem mogą zawsze latać na Posiadłościach Grupy."
name="land allow fly" />
<action description="Pozwól na Tworzenie Obiektów"
- longdescription="Członkowie w Funcji z tym Przywilejem mogą zawsze tworzyć obiekty na Posiadłościach Grupy."
+ longdescription="Członkowie w Funkcji z tym Przywilejem mogą zawsze tworzyć obiekty na Posiadłościach Grupy."
name="land allow create" />
<action description="Pozwól na Zapamiętywanie Miejsc (LM)"
- longdescription="Członkowie w Funcji z tym Przywilejem mogą zawsze zapamiętywać miejsca (LM) na Posiadłościach Grupy."
+ longdescription="Członkowie w Funkcji z tym Przywilejem mogą zawsze zapamiętywać miejsca (LM) na Posiadłościach Grupy."
name="land allow landmark" />
- <action description="Pozwól na wybór Mijsca Startu na Posiadłościach Grupy"
- longdescription="Członkowie w Funcji z tym Przywilejem mogą zawsze wybrać Miejsce Startu na Posiadłościach Grupy.."
+ <action description="Pozwól na wybór Miejsca Startu na Posiadłościach Grupy"
+ longdescription="Członkowie w Funkcji z tym Przywilejem mogą zawsze wybrać Miejsce Startu na Posiadłościach Grupy."
name="land allow set home" />
</action_set>
<action_set
@@ -123,11 +123,11 @@
longdescription="Selekcja opcji &apos;Wstęp Płatny...&apos; pod O Posiadłości &gt; Dostęp."
name="land manage passes" />
<action description="Wyrzucanie i unieruchamianie Rezydentów na Posiadłościach"
- longdescription="Członkowie w Funcji z tym Przywilejem mogą wpływać na niepożadanych na Posiadłościach Grupy Rezydentów wybierając ich prawym klawiszem myszki i wybierając Więcej &gt; &apos;Wyrzuć...&apos; albo &apos;Unieruchom...&apos;."
+ longdescription="Członkowie w Funkcji z tym Przywilejem mogą wpływać na niepożądanych na Posiadłościach Grupy Rezydentów wybierając ich prawym klawiszem myszki i wybierając Więcej &gt; &apos;Wyrzuć...&apos; albo &apos;Unieruchom...&apos;."
name="land admin" />
</action_set>
<action_set
- description="Przywileje pozwalające na odsyłanie obiektów i przemiszczanie roślin z Linden Labs. Użyteczne przy porządkowaniu i przemieszczaniu roślinności. *UWAGA* Odsyłanie obiektów jest nieodwracalne."
+ description="Przywileje pozwalające na odsyłanie obiektów i przemieszczanie roślin z Linden Lab. Użyteczne przy porządkowaniu i przemieszczaniu roślinności. *UWAGA* Odsyłanie obiektów jest nieodwracalne."
name="Parcel Content">
<action description="Odsyłanie obiektów należących do Grupy"
longdescription="Odsyłanie obiektów należących do Grupy pod O Posiadłości &gt; Obiekty."
@@ -138,8 +138,8 @@
<action description="Odsyłanie obiektów nie przypisanych do Grupy"
longdescription="Odsyłanie obiektów nie przypisanych do Grupy pod O Posiadłości &gt; Obiekty."
name="land return non group" />
- <action description="Ogrodnictwo używając roślin z Linden Labs"
- longdescription="Ogrodnictwo pozwala na umiszczanie i przemiszczanie drzew, roślin i trawy z Linden Labs. Te obiekty znajdują się w Twojej Szafie pod Zbiór &gt; Obiekty, mogą też być stworzone używając przycisku Buduj."
+ <action description="Ogrodnictwo używając roślin z Linden Lab"
+ longdescription="Ogrodnictwo pozwala na umieszczanie i przemieszczanie drzew, roślin i trawy z Linden Lab. Te obiekty znajdują się w Twojej Szafie pod Zbiór &gt; Obiekty, mogą też być stworzone używając przycisku Buduj."
name="land gardening" />
</action_set>
<action_set
@@ -160,38 +160,38 @@
description="Przywileje pozwalające na wybór opłat grupowych, otrzymywanie dochodu i ograniczanie dostępu do historii konta grupy."
name="Accounting">
<action description="Opłaty grupowe i dochód grupowy"
- longdescription="Członkowie w Funcji z tym Przywilejem będą automatycznie wnosić opłaty grupowe i będą otrzymywać dochód grupowy. Tzn. będą codziennie otrzymywać część dochodu ze sprzedaży Posiadłości Grupy oraz będą partycypować w kosztach ogłoszeń itp."
+ longdescription="Członkowie w Funkcji z tym Przywilejem będą automatycznie wnosić opłaty grupowe i będą otrzymywać dochód grupowy. Tzn. będą codziennie otrzymywać część dochodu ze sprzedaży Posiadłości Grupy oraz będą partycypować w kosztach ogłoszeń itp."
name="accounting accountable" />
</action_set>
<action_set
description="Przywileje pozwalające na wysyłanie, odbieranie i czytanie Notek Grupy."
name="Notices">
<action description="Wysyłanie Notek"
- longdescription="Członkowie w Funcji z tym Przywilejem mogą wysyłać Notki pod O Grupie &gt; Notki."
+ longdescription="Członkowie w Funkcji z tym Przywilejem mogą wysyłać Notki wybierając O Grupie &gt; Notek."
name="notices send" />
<action description="Odbieranie Notek i dostęp do dawniejszych Notek"
- longdescription="Członkowie w Funcji z tym Przywilejem mogą odbierać nowe i czytać dawniejsze Notki pod O Grupie &gt; Notki."
+ longdescription="Członkowie w Funkcji z tym Przywilejem mogą odbierać nowe i czytać dawniejsze Notki wybierając O Grupie &gt; Notki."
name="notices receive" />
</action_set>
<action_set
description="Przywileje pozwalające na zgłaszanie Propozycji, głosowanie nad Propozycjami i śledzenie historii głosowania."
name="Proposals">
<action description="Zgłaszanie Propozycji"
- longdescription="Członkowie w Funcji z tym Przywilejem mogą zgłaszać Propozycje pod głosowanie pod O Grupie &gt; Propozycje."
+ longdescription="Członkowie w Funkcji z tym Przywilejem mogą zgłaszać Propozycje do głosowania wybierając O Grupie &gt; Propozycje."
name="proposal start" />
<action description="Głosowanie nad Propozycjami"
- longdescription="Członkowie w Funcji z tym Przywilejem mogą głosować nad Propozycjami pod O Grupie &gt; Propozycje."
+ longdescription="Członkowie w Funkcji z tym Przywilejem mogą głosować nad Propozycjami zgłoszonymi do głosowania wybierając O Grupie &gt; Propozycje."
name="proposal vote" />
</action_set>
<action_set description="Przywileje kontrolujące czat i rozmowy grupowe." name="Chat">
<action description="Dostęp do Czatu Grupowego"
- longdescription="Członkowie w Funcji z tym Przywilejem mogą uczestniczyć w czcie i rozmowach grupowych."
+ longdescription="Członkowie w Funkcji z tym Przywilejem mogą uczestniczyć w czacie i rozmowach grupowych."
name="join group chat" />
<action description="Dostęp do Rozmów Grupowych"
- longdescription="Członkowie w Funcji z tym Przywilejem mogą uczestniczyć w rozmowach grupowych. UWAGA: Dostęp do Czatu Grupowego jest wymagany dla rozmów grupowych."
+ longdescription="Członkowie w Funkcji z tym Przywilejem mogą uczestniczyć w rozmowach grupowych. UWAGA: Dostęp do Czatu Grupowego jest wymagany dla rozmów grupowych."
name="join voice chat" />
<action description="Moderator Czatu Grupowego"
- longdescription="Członkowie w Funcji z tym Przywilejem mogą kontrolować dostęp do czatu i rozmów grupowych."
+ longdescription="Członkowie w Funkcji z tym Przywilejem mogą kontrolować dostęp do czatu i rozmów grupowych."
name="moderate group chat" />
</action_set>
</role_actions>
diff --git a/indra/newview/skins/default/xui/pl/strings.xml b/indra/newview/skins/default/xui/pl/strings.xml
index df76f19462..5067f044e0 100755
--- a/indra/newview/skins/default/xui/pl/strings.xml
+++ b/indra/newview/skins/default/xui/pl/strings.xml
@@ -1,6 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- This file contains strings that used to be hardcoded in the source.
+ It is only for those strings which do not belong in a floater.
+ For example, the strings used in avatar chat bubbles, and strings
+ that are returned from one component and may appear in many places-->
<strings>
- <!-- Login -->
<string name="LoginInProgress">
Trwa logowanie. [APP_NAME] Proszę czekać.
</string>
@@ -38,7 +41,7 @@
Inicjalizacja QuickTime...
</string>
<string name="LoginQuicktimeNotFound">
- QuickTime nie znaleźony - inicjalizacja przerwana.
+ QuickTime nie został znaleziony - inicjalizacja przerwana.
</string>
<string name="LoginQuicktimeOK">
QuickTime zainicjalizowany.
@@ -52,34 +55,24 @@
<string name="LoginDownloadingClothing">
Ładowanie ubrania...
</string>
- <string name="LoginFailedNoNetwork">
- Błąd sieci: Problemy z połączeniem, sprawdź podłączenie do sieci.
- </string>
- <!-- Disconnection -->
<string name="AgentLostConnection">
Ten region może mieć problemy. Sprawdź podłączenie do Internetu.
</string>
- <!-- Tooltip, llhoverview.cpp -->
<string name="TooltipPerson">
Osoba
</string>
- <!-- Object under mouse pointer is an avatar -->
<string name="TooltipNoName">
(brak nazwy)
</string>
- <!-- No name on an object -->
<string name="TooltipOwner">
Właściciel:
</string>
- <!-- Owner name follows -->
<string name="TooltipPublic">
Publiczny
</string>
- <!-- Public permissions on an object -->
<string name="TooltipIsGroup">
(Grupa)
</string>
- <!-- The name before this text is that of a group -->
<string name="TooltipFlagScript">
Skrypt
</string>
@@ -110,11 +103,9 @@
<string name="TooltipForSaleL$">
Na Sprzedaż: L$[AMOUNT]
</string>
- <!-- L$ version -->
<string name="TooltipForSaleMsg">
Na Sprzedaż: [MESSAGE]
</string>
- <!-- Message (RetrievingData) -->
<string name="TooltipFlagGroupBuild">
Budowanie Grupowe
</string>
@@ -127,7 +118,6 @@
<string name="TooltipFlagNotSafe">
Niebezpieczny Obszar
</string>
- <!-- damage area -->
<string name="TooltipFlagNoFly">
Latanie Zabronione
</string>
@@ -143,35 +133,27 @@
<string name="TooltipMustSingleDrop">
Tylko pojedynczy obiekt może być tutaj przeciągnięty
</string>
- <!-- Indicates that an avatar&apos;s name or other similar datum is being retrieved. General usage. -->
<string name="RetrievingData">
Odzyskiwanie danych...
</string>
<string name="ReleaseNotes">
O Tej Wersji
</string>
- <!-- Indicates something is being loaded. Maybe should be merged with RetrievingData -->
<string name="LoadingData">
Ładowanie danych...
</string>
- <!-- namecache -->
- <!-- Avatar name: text shown for LLUUID::null -->
<string name="AvatarNameNobody">
(brak danych)
</string>
- <!-- Avatar name: text shown while fetching name -->
<string name="AvatarNameWaiting">
(ładowanie)
</string>
- <!-- Avatar name: text shown as an alternative to AvatarNameFetching, easter egg. -->
<string name="AvatarNameHippos">
- (Twój avatar ulegnie samozniszczeniu za 5 sec. Pożegnaj się z SL!)
+ (hippos)
</string>
- <!-- Group name: text shown for LLUUID::null -->
<string name="GroupNameNone">
(brak danych)
</string>
- <!-- Asset errors. Used in llassetstorage.cpp, translation from error code to error message. -->
<string name="AssetErrorNone">
OK
</string>
@@ -199,10 +181,12 @@
<string name="AssetErrorCircuitGone">
Połączenie przerwane
</string>
+ <string name="AssetErrorPriceMismatch">
+ Brak zgodności pomiędzy serwerem i klientem na realizację podanej ceny.
+ </string>
<string name="AssetErrorUnknownStatus">
Status nieznany
</string>
- <!-- llvoavatar. Displayed in the avatar&apos;s chat bubble -->
<string name="AvatarEditingApparance">
(Edycja Wyglądu)
</string>
@@ -215,7 +199,6 @@
<string name="AvatarMuted">
Wyciszony
</string>
- <!-- animations -->
<string name="anim_express_afraid">
Strach
</string>
@@ -429,11 +412,75 @@
<string name="worldmap_offline">
Niedostępna
</string>
- <!-- Chat -->
<string name="whisper">
szepcze:
</string>
<string name="shout">
krzyczy:
</string>
+ <string name="SIM_ACCESS_PG">
+ &apos;PG&apos;
+ </string>
+ <string name="SIM_ACCESS_MATURE">
+ &apos;Mature&apos;
+ </string>
+ <string name="SIM_ACCESS_ADULT">
+ &apos;Adult&apos;
+ </string>
+ <string name="SIM_ACCESS_DOWN">
+ Niedostępny
+ </string>
+ <string name="SIM_ACCESS_MIN">
+ Nieznany
+ </string>
+ <string name="land_type_unknown">
+ (nieznane)
+ </string>
+ <string name="covenant_never_modified">Ostatnia Modyfikacja: (nigdy)</string>
+ <string name="covenant_modified">Ostatnia Modyfikacja: </string>
+ <string name="all_files">
+ Wszystkie Pliki
+ </string>
+ <string name="sound_files">
+ Dźwięki
+ </string>
+ <string name="animation_files">
+ Animacje
+ </string>
+ <string name="image_files">
+ Obrazy
+ </string>
+ <string name="save_file_verb">
+ Zapisz
+ </string>
+ <string name="load_file_verb">
+ Załaduj
+ </string>
+ <string name="targa_image_files">
+ Obrazy Targa
+ </string>
+ <string name="bitmap_image_files">
+ Obrazy Bitmap
+ </string>
+ <string name="avi_movie_file">
+ Pliki filmowe AVI
+ </string>
+ <string name="xaf_animation_file">
+ Plik Animacji XAF
+ </string>
+ <string name="xml_file">
+ Plik XML
+ </string>
+ <string name="dot_raw_file">
+ Plik RAW
+ </string>
+ <string name="compressed_image_files">
+ Obrazy Skomprensowane
+ </string>
+ <string name="load_files">
+ Załaduj pliki
+ </string>
+ <string name="choose_the_directory">
+ Wybierz Katalog
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/pl/teleport_strings.xml b/indra/newview/skins/default/xui/pl/teleport_strings.xml
index 0b24f2221e..3384ae30b7 100755
--- a/indra/newview/skins/default/xui/pl/teleport_strings.xml
+++ b/indra/newview/skins/default/xui/pl/teleport_strings.xml
@@ -2,18 +2,18 @@
<teleport_messages>
<message_set name="errors">
<message name="invalid_tport">
- Huston / LL - Mamy problem z teleportacją. Może relog by pomógl?
-Jeżeli cały czas nie możesz się telportować sprawdź Pomoc Techniczną na:
-www.secondlife.com/support
+ Wystąpił problem z teleportacją. Wyloguj się i zaloguj ponownie.
+Jeśli nadal otrzymujesz ten komunikat sprawdź Pomoc Techniczną na stronie:
+www.secondlife.com/support.
</message>
<message name="invalid_region_handoff">
- Huston / LL - Mamy problem ze zmianą regionu. Może relog by pomógl?
-Jeżeli cały czas nie możesz zmienić regionu sprawdź Pomoc Techniczną na:
-www.secondlife.com/support
+ Wystąpił problem ze zmianą regionu. Wyloguj się i zaloguj ponownie.
+Jeśli nadal otrzymujesz ten komunikat sprawdź Pomoc Techniczną na stronie:
+www.secondlife.com/support.
</message>
<message name="blocked_tport">
- Przepraszamy, ale teleportacja jest chwilowo niedostępna - problemy z nową technologią.
-Spróbuj jeszcze raz. Hmm - cały czas nie działa - może relog by pomógl?
+ Przepraszamy, teleportacja jest chwilowo niedostępna. Spróbuj jeszcze raz.
+Jeśli nadal nie możesz się teleportować wyloguj się i ponownie zaloguj.
</message>
<message name="nolandmark_tport">
Przepraszamy, ale nie możemy znaleźć miejsca docelowego.
diff --git a/indra/newview/skins/default/xui/pt/floater_about.xml b/indra/newview/skins/default/xui/pt/floater_about.xml
index fe0e03a9ad..4186e5e207 100644
--- a/indra/newview/skins/default/xui/pt/floater_about.xml
+++ b/indra/newview/skins/default/xui/pt/floater_about.xml
@@ -28,7 +28,7 @@
Voice chat Audio coding: Polycom(R) Siren14(TM) (ITU-T Rec. G.722.1 Annex C)
- Eu tive uma pequena ajuda de meus amigos. --Richard Starkey
+ Para ter sucesso nos negócios, seja ousado, seja o primeiro, seja diferente. --Henry Marchant
</text_editor>
<string name="you_are_at">
Você está em [POSITION]
diff --git a/indra/newview/skins/default/xui/pt/floater_about_land.xml b/indra/newview/skins/default/xui/pt/floater_about_land.xml
index 2cc75432ee..fee7ed60f5 100644
--- a/indra/newview/skins/default/xui/pt/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/pt/floater_about_land.xml
@@ -8,6 +8,18 @@
<text length="1" name="Description:" type="string">
Descrição:
</text>
+ <text name="LandType">
+ Tipo:
+ </text>
+ <text name="LandTypeText">
+ Continente / Terra
+ </text>
+ <text name="ContentRating">
+ Classificação:
+ </text>
+ <text name="ContentRatingText">
+ Adult
+ </text>
<text length="1" name="Owner:" type="string">
Proprietário:
</text>
@@ -29,7 +41,7 @@
Não está à Venda.
</text>
<text length="1" name="For Sale: Price L$[PRICE]." type="string">
- Preço: L$[PRICE].
+ Preço: L$[PRICE] (L$[PRICE_PER_SQM]/m²).
</text>
<button label="Vender Terra..." label_selected="Vender Terra..." name="Sell Land..."/>
<text length="1" name="For sale to" type="string">
@@ -39,7 +51,7 @@
À venda (Objetos incluídos).
</text>
<text length="1" name="Selling with no objects in parcel." type="string">
- À venda (Objetos não Incluídos).
+ À venda (Objetos não incluídos).
</text>
<button label="Cancelar venda do terreno" label_selected="Cancelar venda do terreno" left="275" name="Cancel Land Sale" width="165"/>
<text length="1" name="Claimed:" type="string">
@@ -52,7 +64,7 @@
Área:
</text>
<text length="1" name="PriceText" type="string">
- 4048 m².
+ 4048 m²
</text>
<text length="1" name="Traffic:" type="string">
Tráfego:
@@ -76,7 +88,7 @@
Área
</string>
<string name="area_size_text">
- [AREA] m².
+ [AREA] m²
</string>
<string name="auction_id_text">
ID do Leilão: [ID]
@@ -108,36 +120,60 @@ Vá para o menu Mundo &gt; Sobre a Terra ou selecione outro lote para mostrar se
</string>
</panel>
<panel label="Corretor" name="land_covenant_panel">
+ <text name="estate_section_lbl">
+ Propriedade:
+ </text>
+ <text length="1" name="estate_name_lbl" type="string">
+ Nome:
+ </text>
+ <text length="1" name="estate_name_text" type="string">
+ mainland
+ </text>
+ <text length="1" name="estate_owner_lbl" type="string">
+ Dono:
+ </text>
+ <text length="1" name="estate_owner_text" type="string">
+ (nenhum)
+ </text>
+ <text_editor length="1" name="covenant_editor" type="string">
+ Não há corretor para esta Propriedade.
+ </text_editor>
<text length="1" name="covenant_timestamp_text" type="string">
Última Alteração: Qua, Dez 31 16:00:00 1969
</text>
- <text length="1" name="region_name_lbl" type="string">
+ <text name="region_section_lbl">
Região:
</text>
+ <text length="1" name="region_name_lbl" type="string">
+ Nome:
+ </text>
<text length="1" name="region_name_text" type="string">
leyla
</text>
- <text length="1" name="estate_name_lbl" type="string">
- Propriedade:
+ <text name="region_landtype_lbl">
+ Tipo:
</text>
- <text length="1" name="estate_name_text" type="string">
- mainland
+ <text name="region_landtype_text">
+ Continente / Terra
</text>
- <text length="1" name="estate_owner_lbl" type="string">
- Dono da Propriedade:
+ <text name="region_maturity_lbl">
+ Classificação:
</text>
- <text length="1" name="estate_owner_text" type="string">
- (nenhum)
+ <text name="region_maturity_text">
+ Adult
+ </text>
+ <text name="resellable_lbl">
+ Revender:
</text>
<text length="1" name="resellable_clause" type="string">
- Terra comprada nesta região não pode ser revendida.
+ Terra nesta região não pode ser revendida.
+ </text>
+ <text name="changeable_lbl">
+ Subdividir:
</text>
<text length="1" name="changeable_clause" type="string">
- Terra comrpada nesta região não poderá ser compartilhada ou sub-dividida.
+ Terra nesta região não pode ser unida/sub-dividida.
</text>
- <text_editor length="1" name="covenant_editor" type="string">
- Não há corretor para esta Propriedade.
- </text_editor>
<string name="can_resell">
Terra comprada nesta região pode ser revendida.
</string>
@@ -145,10 +181,12 @@ Vá para o menu Mundo &gt; Sobre a Terra ou selecione outro lote para mostrar se
Terra comprada nesta região não pode ser revendida.
</string>
<string name="can_change">
- Terra comprada nesta região pode ser compartilhada ou sub-dividida.
+ Terra comprada nesta região pode ser compartilhada
+ou sub-dividida.
</string>
<string name="can_not_change">
- Terra comprada nesta região não pode ser compartilhada ou sub-dividida.
+ Terra comprada nesta região não pode ser compartilhada
+ou sub-dividida.
</string>
</panel>
<panel label="Objetos" name="land_objects_panel">
@@ -210,14 +248,14 @@ Vá para o menu Mundo &gt; Sobre a Terra ou selecione outro lote para mostrar se
[COUNT]
</text>
<text left="4" length="1" name="Autoreturn" type="string" width="412">
- Auto-retornar objetos dos outros residentes (minutos,0 para desligado):
+ Auto-retornar objetos dos outros residentes (minutos, 0 para desligado):
</text>
- <line_editor name="clean other time" right="-6" width="36"/>
+ <line_editor name="clean other time" right="-10"/>
<text length="1" name="Object Owners:" type="string">
Donos dos Objetos:
</text>
- <button label="Atualizar Lista" label_selected="Atualizar Lista" name="Refresh List"/>
- <button label="Retornar objetos..." label_selected="Retornar objetos..." name="Return objects..."/>
+ <button label="Atualizar Lista" label_selected="Atualizar Lista" name="Refresh List" left="118"/>
+ <button label="Retornar objetos..." label_selected="Retornar objetos..." name="Return objects..." left="230"/>
<name_list name="owner list">
<column label="Tipo" name="type"/>
<column label="Nome" name="name"/>
@@ -232,17 +270,17 @@ Vá para o menu Mundo &gt; Sobre a Terra ou selecione outro lote para mostrar se
<check_box label="Editar Terreno" name="edit land check" tool_tip="Se ativado, qualquer um pode modificar a forma da sua terra. É melhor deixar esta opção desativada, uma vez que você sempre pode editar seu próprio terreno."/>
<check_box label="Criar Landmarks" name="check landmark"/>
<check_box label="Voar" name="check fly" tool_tip="Se ativado, os Residentes podem voar na sua terra. Se desativado, eles podem voar apenas para dentro e por cima de sua terra."/>
- <text length="1" name="allow_label2" type="string">
+ <text length="1" name="allow_label2" type="string" left="172">
Criar Objetos:
</text>
<check_box label="Residentes" name="edit objects check"/>
<check_box label="Grupo" name="edit group objects check"/>
- <text length="1" name="allow_label3" type="string">
+ <text length="1" name="allow_label3" type="string" left="172">
Entrada do Objeto:
</text>
<check_box label="Residentes" name="all object entry check"/>
<check_box label="Grupo" name="group object entry check"/>
- <text length="1" name="allow_label4" type="string">
+ <text length="1" name="allow_label4" type="string" left="172">
Executar Scripts:
</text>
<check_box label="Residentes" name="check other scripts"/>
@@ -253,10 +291,60 @@ Vá para o menu Mundo &gt; Sobre a Terra ou selecione outro lote para mostrar se
<check_box label="Salvo (sem dano)" name="check safe" tool_tip="Se ativado, ajusta o terreno para Seguro, desabilitando combate com danos. Se não ativado, o combate com danos é habilitado."/>
<check_box label="Sem Empurrar" name="PushRestrictCheck" tool_tip="Evita scripts que empurram. A ativação dessa opção pode ser útil para prevenir comportamentos desordeiros na sua terra."/>
<check_box label="Mostra o Lugar na Busca (L$30/semana) sob" name="ShowDirectoryCheck" tool_tip="Permitir que as pessoas vejam este terreno nos resultados de busca"/>
+ <string name="search_enabled_tooltip">
+ Permitir que as pessoas vejam este lote nos resultados de busca
+ </string>
+ <string name="search_disabled_small_tooltip">
+ Esta opção está desabilitada porque a área deste lote tem 128 m² ou menos.
+Apenas lotes maiores podem ser listados na busca.
+ </string>
+ <string name="search_disabled_permissions_tooltip">
+ Esta opção está desabilitada porque você não pode modificar as opções deste lote.
+ </string>
+ <combo_box name="land category with adult">
+ <combo_item name="AnyCategory">
+ Qualquer Categoria
+ </combo_item>
+ <combo_item name="LindenLocation">
+ Local da Linden
+ </combo_item>
+ <combo_item name="Adult">
+ Adult
+ </combo_item>
+ <combo_item name="Arts&amp;Culture">
+ Artes &amp; Cultura
+ </combo_item>
+ <combo_item name="Business">
+ Negócios
+ </combo_item>
+ <combo_item name="Educational">
+ Educacional
+ </combo_item>
+ <combo_item name="Gaming">
+ Jogos
+ </combo_item>
+ <combo_item name="Hangout">
+ Moradia
+ </combo_item>
+ <combo_item name="NewcomerFriendly">
+ Amigável a Novos Usuários
+ </combo_item>
+ <combo_item name="Parks&amp;Nature">
+ Parques &amp; Natureza
+ </combo_item>
+ <combo_item name="Residential">
+ Residencial
+ </combo_item>
+ <combo_item name="Shopping">
+ Shopping
+ </combo_item>
+ <combo_item name="Other">
+ Outros
+ </combo_item>
+ </combo_box>
<combo_box left="276" name="land category" width="146">
<combo_box.item name="AnyCategory" label="Qualquer Categoria"/>
<combo_box.item name="LindenLocation" label="Locação Linden"/>
-
<combo_box.item name="Arts&amp;Culture" label="Artes e Cultura"/>
<combo_box.item name="Business" label="Negócios"/>
<combo_box.item name="Educational" label="Educacional"/>
@@ -269,7 +357,19 @@ Vá para o menu Mundo &gt; Sobre a Terra ou selecione outro lote para mostrar se
<combo_box.item name="Other" label="Outros"/>
</combo_box>
<button label="?" label_selected="?" left="426" name="?"/>
- <check_box name="MatureCheck" />
+ <check_box label="Conteúdo Mature" name="MatureCheck" tool_tip=""/>
+ <string name="mature_check_mature">
+ Conteúdo Mature
+ </string>
+ <string name="mature_check_adult">
+ Conteúdo Adult
+ </string>
+ <string name="mature_check_mature_tooltip">
+ A informação do seu lote ou seu conteúdo são considerados mature.
+ </string>
+ <string name="mature_check_adult_tooltip">
+ A informação do seu lote ou seu conteúdo são considerados adult.
+ </string>
<text length="1" name="Snapshot:" type="string">
Foto:
</text>
@@ -344,21 +444,14 @@ Mídia:
<text name="Sound:">
Som:
</text>
- <check_box label="Restringir som espacial a este lote" left="97" name="check sound local"/>
+ <check_box label="Restringir gestos e sons de objetos a este lote" left="97" name="check sound local"/>
+ <button label="?" label_selected="?" name="?"/>
<text name="Voice settings:">
Voz:
</text>
- <radio_group left="97" name="parcel_voice_channel" width="310">
- <radio_item name="Estate">
- Usar o canal espacial da Propriedade
- </radio_item>
- <radio_item name="Private">
- Usar um canal especial privado
- </radio_item>
- <radio_item name="Disabled">
- Desabilitar áudio espacial neste lote
- </radio_item>
- </radio_group>
+ <check_box left="97" label="Habilitar Voz" name="parcel_enable_voice_channel"/>
+ <check_box left="97" label="Habilitar Voz (definida pela Propriedade)" name="parcel_enable_voice_channel_is_estate_disabled"/>
+ <check_box left="117" label="Restringir Voz a este lote" name="parcel_enable_voice_channel_parcel"/>
</panel>
<panel label="Acesso" name="land_access_panel">
<text length="1" name="Limit access to this parcel to:" type="string">
diff --git a/indra/newview/skins/default/xui/pt/floater_animation_preview.xml b/indra/newview/skins/default/xui/pt/floater_animation_preview.xml
index f6bc034665..f3297ea5ee 100644
--- a/indra/newview/skins/default/xui/pt/floater_animation_preview.xml
+++ b/indra/newview/skins/default/xui/pt/floater_animation_preview.xml
@@ -6,14 +6,14 @@
<text name="description_label">
Descrição:
</text>
- <spinner label="Prioridade" name="priority" tool_tip="Controla quais animações podem se sobrepor a esta animação."/>
+ <spinner label_width="72" width="110" label="Prioridade" name="priority" tool_tip="Controla quais animações podem se sobrepor a esta animação."/>
<check_box label="Loop" name="loop_check" tool_tip="Executa a animação repetidamente."/>
- <spinner label="Dentro(%)" name="loop_in_point" tool_tip="Ajusta o ponto da animação onde a repetição começa."/>
- <spinner label="Fora(%)" name="loop_out_point" tool_tip="Ajusta o ponto da animação onde a repetição termina."/>
+ <spinner label_width="56" left="65" width="116" label="Dentro(%)" name="loop_in_point" tool_tip="Ajusta o ponto da animação onde a repetição começa."/>
+ <spinner label_width="40" left="185" label="Fora(%)" name="loop_out_point" tool_tip="Ajusta o ponto da animação onde a repetição termina."/>
<text name="hand_label">
Pose de Mão
</text>
- <combo_box label="" name="hand_pose_combo" tool_tip="Controla o que as mãos fazem durante a animação">
+ <combo_box left_delta="100" width="184" name="hand_pose_combo" tool_tip="Controla o que as mãos fazem durante a animação">
<combo_box.item name="Spread" label="Espreguiçar" />
<combo_box.item name="Relaxed" label="Relaxado" />
<combo_box.item name="PointBoth" label="Apontar Ambos" />
@@ -31,7 +31,7 @@
<text name="emote_label">
Expressão
</text>
- <combo_box label="" name="emote_combo" tool_tip="Controla o que a face faz durante a animação.">
+ <combo_box left_delta="100" width="184" name="emote_combo" tool_tip="Controla o que a face faz durante a animação.">
<combo_box.item name="[None]" label="None]" />
<combo_box.item name="Aaaaah" label="Aaaaah" />
<combo_box.item name="Afraid" label="Temeroso" />
@@ -53,21 +53,24 @@
<combo_box.item name="Wink" label="Piscar" />
<combo_box.item name="Worry" label="Preocupado" />
</combo_box>
- <text name="preview_label">
+ <text name="preview_label" width="250">
Prever enquanto
</text>
- <combo_box label="" name="preview_base_anim" tool_tip="Use isto para testar o comportamento de sua animação enquanto seu avatar executa ações comuns.">
+ <combo_box left_delta="100" width="130" name="preview_base_anim" tool_tip="Use isto para testar o comportamento de sua animação enquanto seu avatar executa ações comuns.">
<combo_box.item name="Standing" label="Parado" />
<combo_box.item name="Walking" label="Andando" />
<combo_box.item name="Sitting" label="Sentando" />
<combo_box.item name="Flying" label="Voando" />
</combo_box>
- <spinner label="Facilitar a entrada (sec)" name="ease_in_time" tool_tip="Quantidade de tempo (em segundos) para que as animações se mesclem."/>
- <spinner label="Facilitar a saída (sec)" name="ease_out_time" tool_tip="Quantidade de tempo (em segundos) para que a animações se mesclem."/>
- <button label="" name="play_btn" tool_tip="Executa/pausa sua animação."/>
+ <spinner label_width="125" width="192" label="Facilitar a entrada (sec)" name="ease_in_time" tool_tip="Quantidade de tempo (em segundos) para que as animações se mesclem."/>
+ <spinner bottom_delta="-20" label_width="125" left="10" width="192" label="Facilitar a saída (sec)" name="ease_out_time" tool_tip="Quantidade de tempo (em segundos) para que a animações se mesclem."/>
+ <button bottom_delta="-32" name="play_btn" tool_tip="Executa/pausa sua animação."/>
<button label="" name="stop_btn" tool_tip="Interrompe a execução da animação."/>
<text name="bad_animation_text">
- Incapaz de ler o arquivo de animação. Nós recomendamos exportar arquivos BVH do Poser 4.
+ Incapaz de ler o arquivo de animação.
+
+Nós recomendamos exportar arquivos BVH do
+Poser 4.
</text>
<button label="Cancelar" name="cancel_btn"/>
<button label="Carregar (L$[AMOUNT])" name="ok_btn"/>
diff --git a/indra/newview/skins/default/xui/pt/floater_avatar_picker.xml b/indra/newview/skins/default/xui/pt/floater_avatar_picker.xml
index 23b0b86675..8f433a635d 100644
--- a/indra/newview/skins/default/xui/pt/floater_avatar_picker.xml
+++ b/indra/newview/skins/default/xui/pt/floater_avatar_picker.xml
@@ -1,15 +1,40 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="avatarpicker" title="Escolha o Residente">
- <text name="instruct_search_resident_name">
- Digite parte do nome do residente:
- </text>
- <button label="Encontrar" label_selected="Encontrar" name="Find"/>
- <text name="Or select their calling card:">
- Ou selecione um cartão de visita:
- </text>
- <button label="Fechar" label_selected="Fechar" name="Close"/>
+ <tab_container name="ResidentChooserTabs">
+ <panel label="Buscar" name="SearchPanel">
+ <text name="InstructSearchResidentName">
+ Digite parte do nome do Residente:
+ </text>
+ <button label="Encontrar" label_selected="Encontrar" name="Find"/>
+ </panel>
+ <panel label="Cartões de Visita" name="CallingCardsPanel">
+ <text name="InstructSelectCallingCard">
+ Selecione um cartão de visita:
+ </text>
+ </panel>
+ <panel label="Próximo a Mim" name="NearMePanel">
+ <text name="InstructSelectResident">
+ Selecione residente próximo:
+ </text>
+ <button label="Atualizar Lista" label_selected="Atualizar Lista" name="Refresh"/>
+ <slider label="Faixa" name="near_me_range"/>
+ <text name="meters">
+ Metros
+ </text>
+ </panel>
+ </tab_container>
<button label="Selecionar" label_selected="Selecionar" name="Select"/>
- <string name="NotFound">
+ <button label="Cancelar" label_selected="Cancelar" name="Cancel"/>
+ <string name="not_found">
&apos;[TEXT]&apos; não encontrado
</string>
+ <string name="no_one_near">
+ Ninguém proximo
+ </string>
+ <string name="no_results">
+ Nenhum resultado
+ </string>
+ <string name="searching">
+ Buscando...
+ </string>
</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_bulk_perms.xml b/indra/newview/skins/default/xui/pt/floater_bulk_perms.xml
new file mode 100644
index 0000000000..c064d24f96
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_bulk_perms.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floaterbulkperms" title="Mudança conjunta das permissões de conteúdo">
+ <text name="applyto">
+ Tipos de Conteúdo
+ </text>
+ <check_box label="Animação" name="check_animation"/>
+ <check_box label="Partes do Corpo" name="check_bodypart"/>
+ <check_box label="Roupas" name="check_clothing"/>
+ <check_box label="Gestos" name="check_gesture"/>
+ <check_box label="Landmarks" name="check_landmark"/>
+ <check_box label="Notecards" name="check_notecard"/>
+ <check_box label="Objetos" name="check_object"/>
+ <check_box label="Scripts" name="check_script"/>
+ <check_box label="Sons" name="check_sound"/>
+ <check_box label="Texturas" name="check_texture"/>
+ <button label="Marcar Todas" label_selected="Todas" name="check_all"/>
+ <button label="Desmarcar Todas" label_selected="Nenhuma" name="check_none"/>
+ <text name="newperms">
+ Novas Permissões
+ </text>
+ <check_box label="Compartilhar com o grupo" name="share_with_group"/>
+ <check_box label="Permitir que qualquer um copie" name="everyone_copy"/>
+ <text name="NextOwnerLabel">
+ O próximo dono pode:
+ </text>
+ <check_box label="Modificar" name="next_owner_modify"/>
+ <check_box label="Copiar" name="next_owner_copy"/>
+ <check_box label="Revender/Dar" name="next_owner_transfer"/>
+ <button label="Ajuda" name="help"/>
+ <button label="Aplicar" name="apply"/>
+ <button label="Fechar" name="close"/>
+ <string name="nothing_to_modify_text">
+ A seleção não contém nenhum conteúdo editável.
+ </string>
+ <string name="status_text">
+ Definindo permissões em [NAME]
+ </string>
+ <string name="start_text">
+ Iniciando solicitação de mudança de permissão...
+ </string>
+ <string name="done_text">
+ Solicitação de mudança de permissão concluída.
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_buy_currency.xml b/indra/newview/skins/default/xui/pt/floater_buy_currency.xml
index ce2fe93705..42ba205475 100644
--- a/indra/newview/skins/default/xui/pt/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/pt/floater_buy_currency.xml
@@ -22,13 +22,13 @@
<text name="buy_action">
[NAME] L$ [PRICE]
</text>
- <text name="currency_action">
+ <text name="currency_action" width="60">
Comprar L$
</text>
- <line_editor name="currency_amt">
+ <line_editor name="currency_amt" left_delta="65" width="70">
1234
</line_editor>
- <text name="currency_est">
+ <text name="currency_est" left_delta="72">
por aproxim. US$ [USD]
</text>
<text name="getting_data">
diff --git a/indra/newview/skins/default/xui/pt/floater_buy_land.xml b/indra/newview/skins/default/xui/pt/floater_buy_land.xml
index 396996edb0..2caf057283 100644
--- a/indra/newview/skins/default/xui/pt/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/pt/floater_buy_land.xml
@@ -3,37 +3,44 @@
<text name="region_name_label">
Região:
</text>
- <text name="region_name_text">
+ <text name="region_name_text" left="560">
+ (desconhecido)
+ </text>
+ <text name="region_type_label">
+ Tipo:
+ </text>
+ <text name="region_type_text" left="560">
(desconhecido)
</text>
<text name="estate_name_label">
Propriedade:
</text>
- <text name="estate_name_text">
+ <text name="estate_name_text" left="560">
(desconhecido)
</text>
- <text name="estate_owner_label">
+ <text name="estate_owner_label" width="105" right="565">
Dono da propriedade:
</text>
- <text name="estate_owner_text">
+ <text name="estate_owner_text" left="560" >
(desconhecido)
</text>
<text name="resellable_changeable_label">
Adquiriu um terreno nesta região:
</text>
<text name="resellable_clause">
- Terra adquirida nesta região pode, ou não, ser revendida.
+ Pode ou não ser revendida.
</text>
<text name="changeable_clause">
- pode, ou não, ser unido ou subdividido.
+ Pode ou não ser unida ou sub-dividida.
</text>
<text name="covenant_text">
Você deve concordar com o Corretor da Propriedade:
</text>
+ <text left="470" name="covenant_timestamp_text"/>
<text_editor name="covenant_editor">
Carregando...
</text_editor>
- <check_box label="Eu concordo com as definições do Corretor feitas acima." name="agree_covenant"/>
+ <check_box label="Eu concordo com as definições do &#10;Corretor feitas acima." name="agree_covenant"/>
<text name="info_parcel_label">
Lote:
</text>
@@ -50,7 +57,9 @@
Preço:
</text>
<text name="info_price">
- L$ 1500, objetos inclusos
+ L$ 1500
+(L$ 1.1/m²)
+vendido com os objetos
</text>
<text name="info_action">
Comprar este lote irá:
@@ -58,7 +67,7 @@
<text name="error_message">
Algo ainda não está correto.
</text>
- <button label="Ir para a página da web" name="error_web"/>
+ <button label="Ir para a página da web" name="error_web" width="150" />
<text name="account_action">
Evoluir sua conta para membro Premium
</text>
@@ -74,8 +83,8 @@
Aumente sua taxa de locação de terra para US$ 40/mês.
</text>
<text name="land_use_reason">
- Você possui 1.309 metros quadrados de terra.
-Este lote tem 512 metros quadrados de terra.
+ Você possui 1309 m² de terra.
+Este lote tem 512 m² de terra.
</text>
<text name="purchase_action">
Pagar ao Residente Joe L$4000 pela terra
@@ -83,10 +92,10 @@ Este lote tem 512 metros quadrados de terra.
<text name="currency_reason">
Você tem L$2,100.
</text>
- <text name="currency_action">
+ <text name="currency_action" width="116">
Compre L$ adicionais
</text>
- <line_editor name="currency_amt">
+ <line_editor name="currency_amt" left="190" width="65">
1000
</line_editor>
<text name="currency_est">
@@ -152,7 +161,7 @@ Este lote tem 512 metros quadrados de terra.
Comprar esta terra irá:
</string>
<string name="buying_for_group">
- Comprar terra para o grupo:
+ Ao comprar terra para o grupo:
</string>
<string name="cannot_buy_now">
Não foi possível comprar agora:
@@ -176,24 +185,32 @@ Este lote tem 512 metros quadrados de terra.
Pagar L$ [AMOUNT] para [SELLER] por esta terra
</string>
<string name="buy_for_US">
- Comprar L$ [AMOUNT] por aproximadamente US$ [AMOUNT2] ,
+ Comprar L$ [AMOUNT] por aprox. US$ [AMOUNT2],
</string>
<string name="parcel_meters">
Este lote tem [AMOUNT] m².
</string>
<string name="premium_land">
- Esta terra é Premium, e irá cobrar como [AMOUNT] m².
+ Esta terra é premium e será taxada como [AMOUNT] m².
</string>
<string name="discounted_land">
- Este lote é promocional, e irá cobrar como [AMOUNT] m².
+ Esta terra tem desconto e será taxada como [AMOUNT] m².
</string>
<string name="meters_supports_object">
[AMOUNT] m²
-suporta [AMOUNT2] objetos
+aceita [AMOUNT2] objetos
</string>
<string name="sold_with_objects">
vendido com objetos
</string>
+ <string name="sold_without_objects">
+ objetos não incluídos
+ </string>
+ <string name="info_price_string">
+ L$ [PRICE]
+(L$ [PRICE_PER_SQM]/m²)
+[SOLD_WITH_OBJECTS]
+ </string>
<string name="insufficient_land_credits">
O grupo [GROUP] precisará de fundos suficientes de terras
contribuídas para cobrir este lote antes da aquisição se completar.
diff --git a/indra/newview/skins/default/xui/pt/floater_customize.xml b/indra/newview/skins/default/xui/pt/floater_customize.xml
index 267612bb9d..7c4fa20f1b 100644
--- a/indra/newview/skins/default/xui/pt/floater_customize.xml
+++ b/indra/newview/skins/default/xui/pt/floater_customize.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater customize" title="Aparência" width="513">
- <tab_container name="customize tab container" tab_min_width="115" width="511">
+<floater name="floater customize" title="Aparência" width="546">
+ <tab_container name="customize tab container" tab_min_width="115" width="544">
<panel label="Partes de corpo" name="body_parts_placeholder"/>
<panel label="Forma" name="Shape">
<button label="Reverter" label_selected="Reverter" name="Revert"/>
@@ -14,14 +14,9 @@
<button label="Tórax" label_selected="Tórax" name="Torso"/>
<button label="Pernas" label_selected="Pernas" name="Legs"/>
<radio_group name="sex radio">
- <radio_item length="1" name="radio" type="string">
- Feminino
- </radio_item>
- <radio_item length="1" name="radio2" type="string">
- Masculino
- </radio_item>
+ <radio_item length="1" name="radio" type="string" label="Feminino" />
+ <radio_item length="1" name="radio2" type="string" label="Masculino" />
</radio_group>
- <button label="Aleatório" label_selected="Aleatório" name="Randomize"/>
<text length="1" name="title" type="string">
[DESC]
</text>
@@ -38,22 +33,24 @@
Localizado em [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Coloque uma nova forma arrastando uma do seu inventário
-para seu avatar. Alternativamente, você pode criar uma nova de um esboço e usá-la.
+ Coloque uma nova forma arrastando uma do seu inventário para seu avatar.
+Alternativamente, você pode criar uma nova de um esboço e usá-la.
</text>
<text length="1" name="no modify instructions" type="string">
Você não tem permissão para modificar esta vestimenta.
</text>
+ <text name="Item Action Label">
+ Forma:
+ </text>
<button label="Criar Nova Forma" label_selected="Criar Nova Forma" name="Create New"/>
- <button label="Remover" label_selected="Remover" name="Take Off"/>
<button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
+ <button label="Salvar como..." label_selected="Salvar como..." name="Save As"/>
</panel>
<panel label="Pele" name="Skin">
- <button label="Cor de Pele" label_selected="Cor de Pele" name="Skin Color"/>
- <button label="Detalhes Faciais" label_selected="Detalhes Faciais" name="Face Detail"/>
- <button label="Maquiagem" label_selected="Maquiagem" name="Makeup"/>
- <button label="Detalhes do Corpo" label_selected="Detalhes do Corpo" name="Body Detail"/>
+ <button width="115" label="Cor de Pele" label_selected="Cor de Pele" name="Skin Color"/>
+ <button width="115" label="Detalhes Faciais" label_selected="Detalhes Faciais" name="Face Detail"/>
+ <button width="115" label="Maquiagem" label_selected="Maquiagem" name="Makeup"/>
+ <button width="115" label="Detalhes do Corpo" label_selected="Detalhes do Corpo" name="Body Detail"/>
<text length="1" name="title" type="string">
[DESC]
</text>
@@ -71,26 +68,28 @@ para seu avatar. Alternativamente, você pode criar uma nova de um esboço e us
</text>
<text length="1" name="not worn instructions" type="string">
Coloque uma nova pele arrastando uma de seu inventário para seu avatar.
-Alternativamente, você pode criar uma nova forma a partir de um esboço e usá-la.
+Alternativamente, você pode criar uma nova forma a partir de um esboço
+e usá-la.
</text>
<text length="1" name="no modify instructions" type="string">
Você não tem permissão para modificar esta vestimenta.
</text>
- <texture_picker label="Tatuagens para a cabeça" name="Head Tattoos" tool_tip="Clique para escolher um desenho"/>
- <texture_picker label="Tattoos Superiores" name="Upper Tattoos" tool_tip="Clique para escolher um desenho"/>
- <texture_picker label="Tattoos Inferiores" name="Lower Tattoos" tool_tip="Clique para escolher um desenho"/>
- <button label="Aleatório" label_selected="Aleatório" name="Randomize"/>
+ <text name="Item Action Label">
+ Pele:
+ </text>
+ <texture_picker width="86" label="Tattoo: cabeça" name="Head Tattoos" tool_tip="Clique para escolher um desenho"/>
+ <texture_picker width="86" label="Tattoo: superior" name="Upper Tattoos" tool_tip="Clique para escolher um desenho"/>
+ <texture_picker width="86" label="Tattoo: inferior" name="Lower Tattoos" tool_tip="Clique para escolher um desenho"/>
<button label="Criar Nova Pele" label_selected="Criar Nova Pele" name="Create New"/>
- <button label="Remover" label_selected="Remover" name="Take Off"/>
<button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
+ <button label="Salvar como..." label_selected="Salvar como..." name="Save As"/>
<button label="Reverter" label_selected="Reverter" name="Revert"/>
</panel>
<panel label="Cabelo" name="Hair">
- <button label="Cor" label_selected="Cor" name="Color"/>
- <button label="Estilo" label_selected="Estilo" name="Style"/>
- <button label="Sombrancelhas" label_selected="Sombrancelhas" name="Eyebrows"/>
- <button label="Rosto" label_selected="Rosto" name="Facial"/>
+ <button width="115" label="Cor" label_selected="Cor" name="Color"/>
+ <button width="115" label="Estilo" label_selected="Estilo" name="Style"/>
+ <button width="115" label="Sombrancelhas" label_selected="Sombrancelhas" name="Eyebrows"/>
+ <button width="115" label="Rosto" label_selected="Rosto" name="Facial"/>
<text length="1" name="title" type="string">
[DESC]
</text>
@@ -108,18 +107,19 @@ Alternativamente, você pode criar uma nova forma a partir de um esboço e usá-
</text>
<text length="1" name="not worn instructions" type="string">
Ponha um novo cabelo em seu avatar arrastando um do seu inventário.
-Alternativamente, você pode criar um novo modelo a partir de um esboço e
-usá-lo.
+Alternativamente, você pode criar um novo modelo a partir de um esboço
+e usá-lo.
</text>
<text length="1" name="no modify instructions" type="string">
Você não ter permissão para modificar essa vestimenta.
</text>
+ <text name="Item Action Label">
+ Cabelo:
+ </text>
<texture_picker label="Texture" name="Texture" tool_tip="Clique para escolher uma imagem"/>
- <button label="Aleatório" label_selected="Aleatório" name="Randomize"/>
<button label="Criar Novo Cabelo" label_selected="Criar Novo Cabelo" name="Create New"/>
- <button label="Remover" label_selected="Remover" name="Take Off"/>
<button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
+ <button label="Salvar como..." label_selected="Salvar como..." name="Save As"/>
<button label="Reverter" label_selected="Reverter" name="Revert"/>
</panel>
<panel label="Olhos" name="Eyes">
@@ -140,18 +140,18 @@ usá-lo.
</text>
<text length="1" name="not worn instructions" type="string">
Para colocar novos olhos, arraste um do seu inventário para seu avatar.
-Alternativamente, você pode criar um novo modelo de um esboço e
-usá-lo.
+Alternativamente, você pode criar um novo modelo de um esboço e usá-lo.
</text>
<text length="1" name="no modify instructions" type="string">
Você não tem permissão para alterar esta vestimenta.
</text>
+ <text name="Item Action Label">
+ Olhos:
+ </text>
<texture_picker label="Íris" name="Iris" tool_tip="Clique para escolher uma imagem"/>
- <button label="Aleatório" label_selected="Aleatório" name="Randomize"/>
<button label="Criar Novos Olhos" label_selected="Criar Novos Olhos" name="Create New"/>
- <button label="Remover" label_selected="Remover" name="Take Off"/>
<button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
+ <button label="Salvar como..." label_selected="Salvar como..." name="Save As"/>
<button label="Reverter" label_selected="Reverter" name="Revert"/>
</panel>
<panel label="Roupas" name="clothes_placeholder"/>
@@ -161,7 +161,7 @@ usá-lo.
<button label="Criar Nova Camisa" label_selected="Criar Nova Camisa" name="Create New"/>
<button label="Remover" label_selected="Remover" name="Take Off"/>
<button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
+ <button label="Salvar como..." label_selected="Salvar como..." name="Save As"/>
<button label="Reverter" label_selected="Reverter" name="Revert"/>
<text length="1" name="title" type="string">
[DESC]
@@ -179,13 +179,16 @@ usá-lo.
Localizado em [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Para por uma nova camisa em seu avatar, arraste uma do seu
-inventário para seu avatar. Alternativamente, você pode criar um
-novo modelo a partir de um esboço e usá-lo.
+ Para por uma nova camisa em seu avatar, arraste uma do seu inventário para
+seu avatar. Alternativamente, você pode criar um novo modelo a partir de
+um esboço e usá-lo.
</text>
<text length="1" name="no modify instructions" type="string">
Você não ter permissão para modificar esta vestimenta.
</text>
+ <text name="Item Action Label">
+ Camisa:
+ </text>
</panel>
<panel label="Calças" name="Pants">
<texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem"/>
@@ -193,7 +196,7 @@ novo modelo a partir de um esboço e usá-lo.
<button label="Criar Novas Calças" label_selected="Criar Novas Calças" name="Create New"/>
<button label="Remover" label_selected="Remover" name="Take Off"/>
<button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
+ <button label="Salvar como..." label_selected="Salvar como..." name="Save As"/>
<button label="Reverter" label_selected="Reverter" name="Revert"/>
<text length="1" name="title" type="string">
[DESC]
@@ -218,6 +221,9 @@ de um esboço e usá-lo.
<text length="1" name="no modify instructions" type="string">
Você não tem permissão para modificar esta vestimenta.
</text>
+ <text name="Item Action Label">
+ Calças:
+ </text>
</panel>
<panel label="Sapatos" name="Shoes">
<text length="1" name="title" type="string">
@@ -243,12 +249,15 @@ de um esboço e usá-lo.
<text length="1" name="no modify instructions" type="string">
Você não tem permissão para modificar esta vestimenta.
</text>
+ <text name="Item Action Label">
+ Sapatos:
+ </text>
<texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem"/>
<color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Clique para pegar o conta-gotas"/>
<button label="Criar Novos Sapatos" label_selected="Criar Novos Sapatos" name="Create New" width="166"/>
<button label="Remover" label_selected="Remover" name="Take Off"/>
<button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
+ <button label="Salvar como..." label_selected="Salvar como..." name="Save As"/>
<button label="Reverter" label_selected="Reverter" name="Revert"/>
</panel>
<panel label="Meias" name="Socks">
@@ -269,17 +278,21 @@ de um esboço e usá-lo.
</text>
<text length="1" name="not worn instructions" type="string">
Para por novas meias em seu avatar, basta arrastar uma nova do seu
-inventário. Alternativamente, você pode criar novas meias a partir de um esboço e usá-las.
+inventário. Alternativamente, você pode criar novas meias a partir de
+um esboço e usá-las.
</text>
<text length="1" name="no modify instructions" type="string">
Você não tem permissão para modificar essa vestimenta.
</text>
+ <text name="Item Action Label">
+ Meias:
+ </text>
<texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem"/>
<color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Clique para pegar o conta-gotas"/>
<button label="Criar Novas Meias" label_selected="Criar Novas Meias" name="Create New"/>
<button label="Remover" label_selected="Remover" name="Take Off"/>
<button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
+ <button label="Salvar como..." label_selected="Salvar como..." name="Save As"/>
<button label="Reverter" label_selected="Reverter" name="Revert"/>
</panel>
<panel label="Jaqueta" name="Jacket">
@@ -306,13 +319,16 @@ partir de um esboço e usá-lo.
<text length="1" name="no modify instructions" type="string">
Você não tem permissão para modificar esta vestimenta.
</text>
+ <text name="Item Action Label">
+ Jaqueta:
+ </text>
<texture_picker label="Tecido Superior" name="Upper Fabric" tool_tip="Clique para escolher uma imagem." width="84"/>
<texture_picker label="Tecido Inferior" name="Lower Fabric" tool_tip="Clique para escolher uma imagem." width="84"/>
<color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Clique para pegar o conta-gotas"/>
<button label="Criar Nova Jaqueta" label_selected="Criar Nova Jaqueta" name="Create New"/>
<button label="Remover" label_selected="Remover" name="Take Off"/>
<button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
+ <button label="Salvar como..." label_selected="Salvar como..." name="Save As"/>
<button label="Reverter" label_selected="Reverter" name="Revert"/>
</panel>
<panel label="Luvas" name="Gloves">
@@ -339,12 +355,15 @@ partir de um esboço e usá-lo.
<text length="1" name="no modify instructions" type="string">
Você não tem permissão para modificar essa vestimenta.
</text>
+ <text name="Item Action Label">
+ Luvas:
+ </text>
<texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem"/>
<color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Clique para abrir o conta-gotas"/>
<button label="Criar Novas Luvas" label_selected="Criar Novas Luvas" name="Create New"/>
<button label="Remover" label_selected="Remover" name="Take Off"/>
<button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
+ <button label="Salvar como..." label_selected="Salvar como..." name="Save As"/>
<button label="Reverter" label_selected="Reverter" name="Revert"/>
</panel>
<panel label="Camiseta" name="Undershirt">
@@ -364,19 +383,22 @@ partir de um esboço e usá-lo.
Localizado em [PATH]
</text>
<text length="1" name="not worn instructions" type="string">
- Para por uma nova Camiseta em seu avatar, basta arrastar um novo
-modelo de seu inventário. Alternativamente, você pode criar um
-novo modelo a partir de um esboço e usá-lo.
+ Para por uma nova Camiseta em seu avatar, basta arrastar um novo modelo
+de seu inventário. Alternativamente, você pode criar um novo modelo a
+partir de um esboço e usá-lo.
</text>
<text length="1" name="no modify instructions" type="string">
Você não ter permissão para modificar essa vestimenta.
</text>
+ <text name="Item Action Label">
+ Camiseta:
+ </text>
<texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem"/>
<color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Clique para abrir o conta-gotas"/>
- <button label="Criar Nova Camiseta" label_selected="Criar Nova Roupa de Baixo" name="Create New"/>
+ <button label="Criar Nova Camiseta" label_selected="Criar Nova Camiseta" name="Create New"/>
<button label="Remover" label_selected="Remover" name="Take Off"/>
<button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
+ <button label="Salvar como..." label_selected="Salvar como..." name="Save As"/>
<button label="Reverter" label_selected="Reverter" name="Revert"/>
</panel>
<panel label="Roupas de Baixo" name="Underpants">
@@ -403,12 +425,15 @@ modelo a partir de um esboço e usá-lo.
<text length="1" name="no modify instructions" type="string">
Você não tem permissão para modificar essa vestimenta.
</text>
+ <text name="Item Action Label">
+ Roupas de Baixo:
+ </text>
<texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem"/>
<color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Clique para pegar o conta-gotas"/>
- <button label="Criar Novas Roupas de Baixo" label_selected="Criar Novas Roupas de Baixo" name="Create New" width="176"/>
+ <button label="Criar Novas Roupas de Baixo" label_selected="Criar Novas Roupas de Baixo" name="Create New" width="180"/>
<button label="Remover" label_selected="Remover" name="Take Off"/>
<button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
+ <button label="Salvar como..." label_selected="Salvar como..." name="Save As"/>
<button label="Reverter" label_selected="Reverter" name="Revert"/>
</panel>
<panel label="Saia" name="Skirt">
@@ -435,17 +460,20 @@ partir de um esboço e usá-lo.
<text length="1" name="no modify instructions" type="string">
Você não tem permissão para modificar esta vestimenta.
</text>
+ <text name="Item Action Label">
+ Saia:
+ </text>
<texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem"/>
<color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Click to open Color Picker"/>
<button label="Criar Nova Saia" label_selected="Criar Nova Saia" name="Create New"/>
<button label="Remover" label_selected="Remover" name="Take Off"/>
<button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Salvar Como" label_selected="Salvar Como" name="Save As"/>
+ <button label="Salvar como..." label_selected="Salvar como..." name="Save As"/>
<button label="Reverter" label_selected="Reverter" name="Revert"/>
</panel>
</tab_container>
- <scroll_container left="216" name="panel_container"/>
- <button label="Fechar" label_selected="Fechar" name="Close"/>
- <button label="Salvar Tudo" label_selected="Salvar Tudo" name="Save All"/>
- <button label="Criar Visual" label_selected="Criar Visual" name="Make Outfit"/>
+ <scroll_container left="249" name="panel_container"/>
+ <button label="Cancelar" label_selected="Cancelar" name="Cancel"/>
+ <button label="OK" label_selected="OK" name="Ok"/>
+ <button label="Criar Vestimenta..." label_selected="Criar Vestimenta..." name="Make Outfit" left="117" width="125" />
</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_device_settings.xml b/indra/newview/skins/default/xui/pt/floater_device_settings.xml
index b6206fe2b8..9ce773116c 100644
--- a/indra/newview/skins/default/xui/pt/floater_device_settings.xml
+++ b/indra/newview/skins/default/xui/pt/floater_device_settings.xml
@@ -1,2 +1,2 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_device_settings" title="Ajustes do Dispositivo de Conversa por Voz"/>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_device_settings" title="Ajustes do Dispositivo de Conversa por Voz"/>
diff --git a/indra/newview/skins/default/xui/pt/floater_font_test.xml b/indra/newview/skins/default/xui/pt/floater_font_test.xml
new file mode 100644
index 0000000000..eb52d3341d
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_font_test.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="contents" title="Teste de Fonte">
+ <text name="linea">
+ OverrideTest, deveria aparecer aqui como Times. (De default/xui/en-us)
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_image_preview.xml b/indra/newview/skins/default/xui/pt/floater_image_preview.xml
index b32f153147..a0d8c02ef0 100644
--- a/indra/newview/skins/default/xui/pt/floater_image_preview.xml
+++ b/indra/newview/skins/default/xui/pt/floater_image_preview.xml
@@ -7,9 +7,10 @@
Descrição:
</text>
<text name="preview_label">
- Prévia da Imagem como:
+ Prévia da
+imagem como:
</text>
- <combo_box label="Tipo de Roupas" name="clothing_type_combo">
+ <combo_box label="Tipo de Roupas" name="clothing_type_combo" left="100" width="186">
<combo_box.item name="Image" label="Imagem" />
<combo_box.item name="Hair" label="Cabelo" />
<combo_box.item name="FemaleHead" label="Cabeça Feminina" />
diff --git a/indra/newview/skins/default/xui/pt/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/pt/floater_inventory_item_properties.xml
index 3711a4c871..69752253b6 100644
--- a/indra/newview/skins/default/xui/pt/floater_inventory_item_properties.xml
+++ b/indra/newview/skins/default/xui/pt/floater_inventory_item_properties.xml
@@ -49,7 +49,7 @@
</text>
<check_box label="Compartilhar com o grupo" name="CheckShareWithGroup"/>
<check_box label="Permitir qualquer um copiar" name="CheckEveryoneCopy"/>
- <text name="NextOwnerLabel">
+ <text name="NextOwnerLabel" width="230">
Próximo dono pode:
</text>
<check_box label="Modificar" name="CheckNextOwnerModify"/>
@@ -60,12 +60,8 @@
</text>
<check_box label="À venda" name="CheckPurchase"/>
<radio_group name="RadioSaleType">
- <radio_item name="radio">
- Original
- </radio_item>
- <radio_item name="radio2">
- Cópia
- </radio_item>
+ <radio_item name="radio" label="Original" />
+ <radio_item name="radio2" label="Cópia" />
</radio_group>
<text name="TextPrice">
Price: L$
diff --git a/indra/newview/skins/default/xui/pt/floater_joystick.xml b/indra/newview/skins/default/xui/pt/floater_joystick.xml
index 90faa6bd05..6c2e4a5144 100644
--- a/indra/newview/skins/default/xui/pt/floater_joystick.xml
+++ b/indra/newview/skins/default/xui/pt/floater_joystick.xml
@@ -71,6 +71,8 @@
Zona Morta de Zoom
</text>
<button label="Padrões do Navegador Espacial" name="SpaceNavigatorDefaults"/>
+ <button label="OK" label_selected="OK" name="ok_btn"/>
+ <button label="Cancelar" label_selected="Cancelar" name="cancel_btn"/>
<string name="JoystickMonitor">
Monitor do Joystick
</string>
diff --git a/indra/newview/skins/default/xui/pt/floater_land_holdings.xml b/indra/newview/skins/default/xui/pt/floater_land_holdings.xml
index 848ab2ed2a..1a640c9793 100644
--- a/indra/newview/skins/default/xui/pt/floater_land_holdings.xml
+++ b/indra/newview/skins/default/xui/pt/floater_land_holdings.xml
@@ -1,8 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="land holdings floater" title="Meu terreno">
<scroll_list name="parcel list">
- <column label="Nome" name="name"/>
- <column label="Localização" name="location"/>
+ <column label="Nome do Lote" name="name"/>
+ <column label="Região" name="location"/>
+ <column label="Tipo" name="type"/>
<column label="Área" name="area"/>
</scroll_list>
<button label="Teletransporte" label_selected="Teletransporte" name="Teleport" tool_tip="Teletransportar para o centro do terreno."/>
diff --git a/indra/newview/skins/default/xui/pt/floater_mute_object.xml b/indra/newview/skins/default/xui/pt/floater_mute_object.xml
index 32dd62c96b..d967f527ae 100644
--- a/indra/newview/skins/default/xui/pt/floater_mute_object.xml
+++ b/indra/newview/skins/default/xui/pt/floater_mute_object.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="mute by name" title="Emudecer objeto pelo nome">
+<floater name="mute by name" title="Silenciar objeto pelo nome">
<text name="message">
- Emudecer pelo nome afeta apenas conversa de objeto e MI, não sons. Você deve digitar o nome exato do objeto.
+ Silenciar pelo nome afeta apenas conversa de objeto e MI, não sons. Você deve digitar o nome exato do objeto.
</text>
<line_editor name="object_name">
Nome do objeto
diff --git a/indra/newview/skins/default/xui/pt/floater_my_friends.xml b/indra/newview/skins/default/xui/pt/floater_my_friends.xml
index 55df674550..a78b255f8a 100644
--- a/indra/newview/skins/default/xui/pt/floater_my_friends.xml
+++ b/indra/newview/skins/default/xui/pt/floater_my_friends.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_my_friends" title="Contatos">
- <tab_container name="friends_and_groups">
- <panel label="Amigos" name="friends_panel"/>
- <panel label="Grupos" name="groups_panel"/>
- </tab_container>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_my_friends" title="Contatos">
+ <tab_container name="friends_and_groups">
+ <panel label="Amigos" name="friends_panel"/>
+ <panel label="Grupos" name="groups_panel"/>
+ </tab_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_perm_prefs.xml b/indra/newview/skins/default/xui/pt/floater_perm_prefs.xml
new file mode 100644
index 0000000000..9bb7f04256
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_perm_prefs.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="perm prefs" title="Permissões Padrão de Upload">
+ <panel label="Permissões" name="permissions">
+ <button label="?" label_selected="?" name="help"/>
+ <check_box label="Compartilhar com o grupo" name="share_with_group"/>
+ <check_box label="Permitir que qualquer um copie" name="everyone_copy"/>
+ <text name="NextOwnerLabel">
+ O próximo dono pode:
+ </text>
+ <check_box label="Modificar" name="next_owner_modify"/>
+ <check_box label="Copiar" name="next_owner_copy"/>
+ <check_box label="Revender/Dar" name="next_owner_transfer"/>
+ </panel>
+ <button label="OK" label_selected="OK" name="ok"/>
+ <button label="Cancelar" label_selected="Cancelar" name="cancel"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_post_process.xml b/indra/newview/skins/default/xui/pt/floater_post_process.xml
index e2fcbe434c..8f5f5db743 100644
--- a/indra/newview/skins/default/xui/pt/floater_post_process.xml
+++ b/indra/newview/skins/default/xui/pt/floater_post_process.xml
@@ -1,53 +1,53 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Post-Process Floater" title="Ajustes de Pós-processamento">
- <tab_container name="Post-Process Tabs">
- <panel label="Filtro de Cor" name="wmiColorFilterPanel">
- <check_box label="Habilitar" name="wmiColorFilterToggle"/>
- <text name="wmiColorFilterBrightnessText">
- Brilho
- </text>
- <text name="wmiColorFilterSaturationText">
- Saturação
- </text>
- <text name="wmiColorFilterContrastText">
- Contraste
- </text>
- <text name="wmiColorFilterBaseText">
- Cor Base do Contraste
- </text>
- <slider label="R" name="wmiColorFilterBaseR"/>
- <slider label="G" name="wmiColorFilterBaseG"/>
- <slider label="B" name="wmiColorFilterBaseB"/>
- <slider label="I" name="wmiColorFilterBaseI"/>
- </panel>
- <panel label="visão Noturna" name="wmiNightVisionPanel">
- <check_box label="Habilitar" name="wmiNightVisionToggle"/>
- <text name="wmiNightVisionBrightMultText">
- Múltiplo de Amplificação de Luz
- </text>
- <text name="wmiNightVisionNoiseSizeText">
- Tamanho de Ruído
- </text>
- <text name="wmiNightVisionNoiseStrengthText">
- Intensidade de Ruído
- </text>
- </panel>
- <panel label="Florescência" name="wmiBloomPanel">
- <check_box label="Habilitar" name="wmiBloomToggle"/>
- <text name="wmiBloomExtractText">
- Extração de Luminosidade
- </text>
- <text name="wmiBloomSizeText">
- Tamanho da florescência
- </text>
- <text name="wmiBloomStrengthText">
- Inensidade da florescência
- </text>
- </panel>
- <panel label="Extras" name="Extras">
- <button label="CarregaEfeito" label_selected="CarregaEfeito" name="PPLoadEffect"/>
- <button label="SalvaEfeito" label_selected="SalvaEfeito" name="PPSaveEffect"/>
- <line_editor label="Nome do Efeito" name="PPEffectNameEditor"/>
- </panel>
- </tab_container>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Post-Process Floater" title="Ajustes de Pós-processamento">
+ <tab_container name="Post-Process Tabs">
+ <panel label="Filtro de Cor" name="wmiColorFilterPanel">
+ <check_box label="Habilitar" name="wmiColorFilterToggle"/>
+ <text name="wmiColorFilterBrightnessText">
+ Brilho
+ </text>
+ <text name="wmiColorFilterSaturationText">
+ Saturação
+ </text>
+ <text name="wmiColorFilterContrastText">
+ Contraste
+ </text>
+ <text name="wmiColorFilterBaseText">
+ Cor Base do Contraste
+ </text>
+ <slider label="R" name="wmiColorFilterBaseR"/>
+ <slider label="G" name="wmiColorFilterBaseG"/>
+ <slider label="B" name="wmiColorFilterBaseB"/>
+ <slider label="I" name="wmiColorFilterBaseI"/>
+ </panel>
+ <panel label="visão Noturna" name="wmiNightVisionPanel">
+ <check_box label="Habilitar" name="wmiNightVisionToggle"/>
+ <text name="wmiNightVisionBrightMultText">
+ Múltiplo de Amplificação de Luz
+ </text>
+ <text name="wmiNightVisionNoiseSizeText">
+ Tamanho de Ruído
+ </text>
+ <text name="wmiNightVisionNoiseStrengthText">
+ Intensidade de Ruído
+ </text>
+ </panel>
+ <panel label="Florescência" name="wmiBloomPanel">
+ <check_box label="Habilitar" name="wmiBloomToggle"/>
+ <text name="wmiBloomExtractText">
+ Extração de Luminosidade
+ </text>
+ <text name="wmiBloomSizeText">
+ Tamanho da florescência
+ </text>
+ <text name="wmiBloomStrengthText">
+ Inensidade da florescência
+ </text>
+ </panel>
+ <panel label="Extras" name="Extras">
+ <button label="CarregaEfeito" label_selected="CarregaEfeito" name="PPLoadEffect"/>
+ <button label="SalvaEfeito" label_selected="SalvaEfeito" name="PPSaveEffect"/>
+ <line_editor label="Nome do Efeito" name="PPEffectNameEditor"/>
+ </panel>
+ </tab_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_preview_gesture.xml b/indra/newview/skins/default/xui/pt/floater_preview_gesture.xml
index 416d65fde4..87bf86c282 100644
--- a/indra/newview/skins/default/xui/pt/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/pt/floater_preview_gesture.xml
@@ -22,37 +22,37 @@
<text name="key_label">
Tecla de Atalho:
</text>
- <combo_box label="Nenhum" name="modifier_combo"/>
- <combo_box label="Nenhum" name="key_combo"/>
+ <combo_box label="Nenhum" name="modifier_combo" left="116" width="76"/>
+ <combo_box label="Nenhum" name="key_combo" width="76" left_delta="80"/>
<text name="library_label">
Biblioteca:
</text>
<text name="steps_label">
Passos:
</text>
- <scroll_list name="library_list">
+ <scroll_list name="library_list" width="84">
Animação
Som
Bate Papo
Esperar
</scroll_list>
- <button label="Incluir" name="add_btn"/>
- <button label="Mover Para Cima" name="up_btn"/>
- <button label="Mover Para Baixo" name="down_btn"/>
- <button label="Remover" name="delete_btn"/>
+ <button label="Incluir" name="add_btn" left="118" width="87"/>
+ <button label="Mover Para Cima" name="up_btn" width="114" left_delta="-13"/>
+ <button label="Mover Para Baixo" name="down_btn" width="114"/>
+ <button label="Remover" name="delete_btn" width="84" left_delta="13"/>
+ <scroll_list left="226" name="step_list" width="205" />
<text name="help_label">
- Todos os passos acontecem simultaneamente, a menos que você inclua passos de espera.
+ Todos os passos acontecem
+simultaneamente, a menos que
+você inclua passos de espera.
</text>
<radio_group name="animation_trigger_type">
- <radio_item name="start">
- Iniciar
- </radio_item>
- <radio_item name="stop">
- Parar
- </radio_item>
+ <radio_item name="start" label="Iniciar" />
+ <radio_item name="stop" label="Parar" />
</radio_group>
- <check_box label="até que as animações estejam concluídas" name="wait_anim_check"/>
- <check_box label="tempo em segundos" name="wait_time_check"/>
+ <check_box bottom_delta="34" label="até que as animações estejam &#10;concluídas" name="wait_anim_check"/>
+ <check_box bottom_delta="-30" label="tempo em segundos" name="wait_time_check"/>
+ <line_editor left_delta="130" name="wait_time_editor" />
<check_box label="Ativar" name="active_check" tool_tip="Gestos ativos podem ser gatilhados escrevendo suas frases de gatilho no chat ou através de suas teclas de atalho. Gestos normalmente ficam inativos quando existe um conflito nas teclas de atalho."/>
<button label="Prévia" name="preview_btn"/>
<button label="Salvar" name="save_btn"/>
diff --git a/indra/newview/skins/default/xui/pt/floater_report_abuse.xml b/indra/newview/skins/default/xui/pt/floater_report_abuse.xml
index f7a9c19d92..79dcf76494 100644
--- a/indra/newview/skins/default/xui/pt/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/pt/floater_report_abuse.xml
@@ -39,9 +39,9 @@
<combo_box.item name="Select_category" label="Selecionar categoria"/>
<combo_box.item name="Age__Age_play" label="Idade &gt; Idade no jogo"/>
<combo_box.item name="Age__Adult_resident_on_Teen_Second_Life" label="Idade &gt; Residente adulto no Second Life Jovem"/>
-
-
-
+ <combo_item name="Age__Underage_resident_outside_of_Teen_Second_Life">
+ Idade &gt; Residente menor de idade fora do Second Life Teen
+ </combo_item>
<combo_box.item name="Assault__Combat_sandbox___unsafe_area" label="Assalto &gt; Sandbox de combate / área não segura"/>
<combo_box.item name="Assault__Safe_area" label="Assalto &gt; Área segura"/>
<combo_box.item name="Assault__Weapons_testing_sandbox" label="Assalto &gt; Testando armas em sandbox"/>
@@ -65,13 +65,13 @@
<combo_box.item name="Harassment__Solicting_inciting_others_to_violate_ToS" label="Perturbação &gt; Solicitando/incitando outros a violarem o ToS"/>
<combo_box.item name="Harassment__Verbal_abuse" label="Perturbação &gt; Abuso verbal"/>
<combo_box.item name="Indecency__Broadly_offensive_content_or_conduct" label="Indecência &gt; Conteúdo ou conduta amplamente ofensivos"/>
-
-
-
<combo_box.item name="Indecency__Inappropriate_avatar_name" label="Indecência &gt; Nome de avatar inapropriado"/>
-
-
-
+ <combo_item name="Indecency__Mature_content_in_PG_region">
+ Indecência &gt; Conduta ou conteúdo inapropriados numa região PG
+ </combo_item>
+ <combo_item name="Indecency__Inappropriate_content_in_Mature_region">
+ Indecência &gt; Conduta ou conteúdo inapropriados numa região Mature
+ </combo_item>
<combo_box.item name="Intellectual_property_infringement_Content_Removal" label="Violação de propriedade intelectual &gt; Remoção de Conteúdo"/>
<combo_box.item name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit" label="Violação de Propriedade intelectual &gt; Cópia Ilegal ou Aproveitar-se de Permissões"/>
<combo_box.item name="Intolerance" label="Intolerância"/>
@@ -98,8 +98,8 @@
</text>
<text name="bug_aviso">
Por favor, seja específico(a) sobre data, localidade,
-natureza do abuso, texto relevante de conversa/MI e selecione o objeto,
-se possível.
+natureza do abuso, texto relevante de conversa/MI e
+selecione o objeto, se possível.
</text>
<text name="incomplete_title">
Nota: Relatos incompletos não serão investigados.
diff --git a/indra/newview/skins/default/xui/pt/floater_select_key.xml b/indra/newview/skins/default/xui/pt/floater_select_key.xml
index 049852e809..e41a565d11 100644
--- a/indra/newview/skins/default/xui/pt/floater_select_key.xml
+++ b/indra/newview/skins/default/xui/pt/floater_select_key.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="modal container" title="">
- <button label="Cancelar" label_selected="Cancelar" name="Cancel"/>
- <text name="Save item as:">
- Aperte uma tecla para selecionar
- </text>
-</floater>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="modal container" title="">
+ <button label="Cancelar" label_selected="Cancelar" name="Cancel"/>
+ <text name="Save item as:">
+ Aperte uma tecla para selecionar
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_sell_land.xml b/indra/newview/skins/default/xui/pt/floater_sell_land.xml
index 221145079b..20f9972c73 100644
--- a/indra/newview/skins/default/xui/pt/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/pt/floater_sell_land.xml
@@ -10,11 +10,12 @@
Tamanho:
</text>
<text name="info_size">
- [AREA] m².
+ [AREA] m²
</text>
- <text name="info_action">
+ <text name="info_action" bottom_delta="-67">
Para vender este lote:
</text>
+ <icon bottom_delta="-66" name="step_price" />
<text name="price_label">
Defina um preço:
</text>
@@ -31,9 +32,10 @@
Vender esta terra para:
</text>
<text name="sell_to_text">
- Escolha se venderá para qualquer um ou para um comprador em particular.
+ Escolha se venderá para qualquer um ou para um comprador em
+particular.
</text>
- <combo_box name="sell_to">
+ <combo_box name="sell_to" bottom_delta="-32">
<combo_box.item name="--selectone--" label="Selecione um --" />
<combo_box.item name="Anyone" label="Qualquer um" />
<combo_box.item name="Specificuser:" label="Usuário Específico:" />
@@ -43,15 +45,12 @@
Vender os objetos com a terra?
</text>
<text name="sell_objects_text">
- Os objetos tranferíveis do proprietário do terreno que estão neste lote irão mudar de propriedade.
- </text>
- <radio_group name="sell_objects">
- <radio_item name="no">
- Não, manter a propriedade sobre os objetos
- </radio_item>
- <radio_item name="yes">
- Sim, vender objetos com a terra
- </radio_item>
+ Os objetos tranferíveis do proprietário do terreno que estão neste
+lote irão mudar de propriedade.
+ </text>
+ <radio_group name="sell_objects" bottom_delta="-58">
+ <radio_item name="no" label="Não, manter a propriedade sobre os objetos" />
+ <radio_item name="yes" label="Sim, vender objetos com a terra" />
</radio_group>
<button label="Mostrar Objetos" name="show_objects"/>
<text name="nag_message_label">
diff --git a/indra/newview/skins/default/xui/pt/floater_snapshot.xml b/indra/newview/skins/default/xui/pt/floater_snapshot.xml
index 641ee332fc..2f6efd4998 100644
--- a/indra/newview/skins/default/xui/pt/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/pt/floater_snapshot.xml
@@ -4,15 +4,9 @@
Destino da foto
</text>
<radio_group label="Tipo de Foto" name="snapshot_type_radio">
- <radio_item name="postcard">
- Enviar por email
- </radio_item>
- <radio_item name="texture">
- Salvar no seu inventário (L$[AMOUNT])
- </radio_item>
- <radio_item name="local">
- Salvar no seu disco rígido
- </radio_item>
+ <radio_item name="postcard" label="Enviar por email" />
+ <radio_item name="texture" label="Salvar no seu inventário (L$[AMOUNT])" />
+ <radio_item name="local" label="Salvar no seu disco rígido" />
</radio_group>
<text name="file_size_label">
Tamanho do arquivo: [SIZE] KB
@@ -66,8 +60,8 @@
<combo_box.item name="JPEG" label="JPEG" />
<combo_box.item name="BMP" label="BMP" />
</combo_box>
- <spinner label="Largura" name="snapshot_width"/>
- <spinner label="Altura" name="snapshot_height"/>
+ <spinner label="Largura" name="snapshot_width" label_width="41" width="101"/>
+ <spinner label="Altura" name="snapshot_height" label_width="31" width="91" left="119"/>
<check_box label="Restringir proporções" name="keep_aspect_check"/>
<slider label="Qualidade da Imagem" name="image_quality_slider"/>
<text name="layer_type_label">
@@ -79,10 +73,10 @@
<combo_box.item name="ObjectMattes" label="Decoração do Objeto" />
</combo_box>
<check_box label="Mostrar interface na Foto" name="ui_check"/>
- <check_box label="Mostrar Objetos HUD na Foto" name="hud_check"/>
- <check_box label="Manter aberto após salvar" name="keep_open_check"/>
- <check_box label="Quadro Congelado (prévia da tela inteira)" name="freeze_frame_check"/>
- <check_box label="Auto-atualizar" name="auto_snapshot_check"/>
+ <check_box bottom_delta="-17" label="Mostrar Objetos HUD na Foto" name="hud_check"/>
+ <check_box bottom_delta="-17" label="Manter aberto após salvar" name="keep_open_check"/>
+ <check_box bottom_delta="-17" label="Quadro Congelado&#10; (prévia da tela inteira)" name="freeze_frame_check"/>
+ <check_box bottom_delta="-29" label="Auto-atualizar" name="auto_snapshot_check"/>
<string name="unknown">
desconhecido
</string>
diff --git a/indra/newview/skins/default/xui/pt/floater_sound_preview.xml b/indra/newview/skins/default/xui/pt/floater_sound_preview.xml
index 34a8b6e9ef..df76499f42 100644
--- a/indra/newview/skins/default/xui/pt/floater_sound_preview.xml
+++ b/indra/newview/skins/default/xui/pt/floater_sound_preview.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Name/Description" title="sound.wav">
+<floater name="Sound Preview" title="sound.wav">
<text name="name_label">
Nome:
</text>
diff --git a/indra/newview/skins/default/xui/pt/floater_statistics.xml b/indra/newview/skins/default/xui/pt/floater_statistics.xml
new file mode 100644
index 0000000000..d26c7081cc
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/floater_statistics.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="stats floater" title="Statística"/>
diff --git a/indra/newview/skins/default/xui/pt/floater_tools.xml b/indra/newview/skins/default/xui/pt/floater_tools.xml
index d9b1e342d9..9a3d14c0ea 100644
--- a/indra/newview/skins/default/xui/pt/floater_tools.xml
+++ b/indra/newview/skins/default/xui/pt/floater_tools.xml
@@ -17,12 +17,18 @@
<check_box label="Selecionar Textura" name="radio select face"/>
<check_box label="Editar partes unidas" name="checkbox edit linked parts"/>
<text name="text ruler mode">
- Modo da régua:
+ Régua:
</text>
<combo_box name="combobox grid mode">
- <combo_box.item name="World" label="Mundo"/>
- <combo_box.item name="Local" label="Local"/>
- <combo_box.item name="Reference" label="Referência"/>
+ <combo_item name="World">
+ Mundo
+ </combo_item>
+ <combo_item name="Local">
+ Local
+ </combo_item>
+ <combo_item name="Reference">
+ Referência
+ </combo_item>
</combo_box>
<check_box label="Esticar ambos os lados" name="checkbox uniform"/>
<check_box label="Esticar Texturas" name="checkbox stretch textures"/>
@@ -46,29 +52,33 @@
<button label="" label_selected="" name="ToolRing" tool_tip="Anel"/>
<button label="" label_selected="" name="ToolTree" tool_tip="Árvore"/>
<button label="" label_selected="" name="ToolGrass" tool_tip="Grama"/>
- <check_box label="Manter ferramenta selecionada" name="checkbox sticky"/>
- <check_box label="Copiar Seleção" name="checkbox copy selection"/>
- <check_box label="Copiar Centro" name="checkbox copy centers"/>
- <check_box label="Rotacionar Cópia" name="checkbox copy rotates"/>
+ <check_box label="Manter selecionado" name="checkbox sticky"/>
+ <check_box label="Copiar selecionado" name="checkbox copy selection"/>
+ <check_box label="Centro" name="checkbox copy centers"/>
+ <check_box label="Rotacionar" name="checkbox copy rotates"/>
<check_box label="Selecionar Terra" name="radio select land"/>
- <check_box label="Aplainar Terra" name="radio flatten"/>
- <check_box label="Elevar Terra" name="radio raise"/>
- <check_box label="Baixar Terra" name="radio lower"/>
- <check_box label="Suavizar Terra" name="radio smooth"/>
- <check_box label="Terreno Rígido" name="radio noise"/>
- <check_box label="Reverter Terra" name="radio revert"/>
- <combo_box name="combobox brush size">
- <combo_box.item name="Small" label="Pequeno"/>
- <combo_box.item name="Medium" label="Médio"/>
- <combo_box.item name="Large" label="Grande"/>
- </combo_box>
+ <check_box label="Aplainar" name="radio flatten"/>
+ <check_box label="Subir" name="radio raise"/>
+ <check_box label="Abaixar" name="radio lower"/>
+ <check_box label="Suavizar" name="radio smooth"/>
+ <check_box label="Endurecer" name="radio noise"/>
+ <check_box label="Reverter" name="radio revert"/>
+ <button label="Aplicar" label_selected="Aplicar" name="button apply to selection" tool_tip="Modificar Terra Selecionada"/>
+ <text name="Bulldozer:">
+ Escavadeira:
+ </text>
+ <text name="Dozer Size:">
+ Tamanho
+ </text>
<text name="Strength:">
- Força:
+ Força
+ </text>
+ <text name="obj_count">
+ Objetos selecionados: [COUNT]
+ </text>
+ <text name="prim_count">
+ primitivas: [COUNT]
</text>
- <button label="Aplicar no selecionado" label_selected="Aplicar no selecionado" name="button apply to selection" tool_tip="Modificar Terra Selecionada"/>
- <check_box label="Mostrar Proprietários" name="checkbox show owners"/>
- <button label="Mais &gt;&gt;" name="button more" tool_tip="Opções Avançadas"/>
- <button label="&lt;&lt; Menos" name="button less" tool_tip="Opções Avançadas"/>
<tab_container name="Object Info Tabs">
<panel label="Comum" name="General">
<text name="Name:">
@@ -98,16 +108,13 @@
Os Lindens
</text>
<button label="Definir..." label_selected="Definir..." name="button set group"/>
- <text name="prim info">
- 1 Objeto, 1 Primitiva
- </text>
<text name="Permissions:">
Permissões:
</text>
<text name="perm_modify">
Você pode modificar este objeto.
</text>
- <check_box label="Compartilhar com o Grupo" name="checkbox share with group" tool_tip="Permitir que o membros do grupo movam, modifiquem, copiem e apaguem"/>
+ <check_box label="Compartilhar com o Grupo" name="checkbox share with group" tool_tip="Permite que todos os membros do grupo definido compartilhem e usem suas permissões para este objeto. Você precisa Doar ao Grupo para habilitar as restrições de função."/>
<string name="text deed continued">
Doar...
</string>
@@ -143,13 +150,27 @@
Quando clicado com o botão esquerdo:
</text>
<combo_box name="clickaction">
- <combo_box.item name="Touch/grab(default)" label="Tocar/Pegar (padrão)"/>
- <combo_box.item name="Sitonobject" label="Sentar no objeto"/>
- <combo_box.item name="Buyobject" label="Comprar objeto"/>
- <combo_box.item name="Payobject" label="Pagar Objeto"/>
- <combo_box.item name="Open" label="Abrir"/>
- <combo_box.item name="Play" label="Executar a mídia do lote"/>
- <combo_box.item name="Opemmedia" label="Abrir a mídia do lote"/>
+ <combo_item name="Touch/grab(default)">
+ Tocar/Pegar (padrão)
+ </combo_item>
+ <combo_item name="Sitonobject">
+ Sentar no objeto
+ </combo_item>
+ <combo_item name="Buyobject">
+ Comprar objeto
+ </combo_item>
+ <combo_item name="Payobject">
+ Pagar Objeto
+ </combo_item>
+ <combo_item name="Open">
+ Abrir
+ </combo_item>
+ <combo_item name="Play">
+ Executar a mídia do lote
+ </combo_item>
+ <combo_item name="Opemmedia">
+ Abrir a mídia do lote
+ </combo_item>
</combo_box>
<text name="B:">
B:
@@ -233,26 +254,56 @@
Material
</text>
<combo_box name="material">
- <combo_box.item name="Stone" label="Pedra"/>
- <combo_box.item name="Metal" label="Metal"/>
- <combo_box.item name="Glass" label="Vidro"/>
- <combo_box.item name="Wood" label="Madeira"/>
- <combo_box.item name="Flesh" label="Carne"/>
- <combo_box.item name="Plastic" label="Plástico"/>
- <combo_box.item name="Rubber" label="Couro"/>
+ <combo_item name="Stone">
+ Pedra
+ </combo_item>
+ <combo_item name="Metal">
+ Metal
+ </combo_item>
+ <combo_item name="Glass">
+ Vidro
+ </combo_item>
+ <combo_item name="Wood">
+ Madeira
+ </combo_item>
+ <combo_item name="Flesh">
+ Carne
+ </combo_item>
+ <combo_item name="Plastic">
+ Plástico
+ </combo_item>
+ <combo_item name="Rubber">
+ Couro
+ </combo_item>
</combo_box>
<text name="label basetype">
Forma básica
</text>
<combo_box name="comboBaseType">
- <combo_box.item name="Box" label="Caixa"/>
- <combo_box.item name="Cylinder" label="Cilindro"/>
- <combo_box.item name="Prism" label="Prisma"/>
- <combo_box.item name="Sphere" label="Esfera"/>
- <combo_box.item name="Torus" label="Toróide"/>
- <combo_box.item name="Tube" label="Tubo"/>
- <combo_box.item name="Ring" label="Anel"/>
- <combo_box.item name="Sculpted" label="Esculpida"/>
+ <combo_item name="Box">
+ Caixa
+ </combo_item>
+ <combo_item name="Cylinder">
+ Cilindro
+ </combo_item>
+ <combo_item name="Prism">
+ Prisma
+ </combo_item>
+ <combo_item name="Sphere">
+ Esfera
+ </combo_item>
+ <combo_item name="Torus">
+ Toróide
+ </combo_item>
+ <combo_item name="Tube">
+ Tubo
+ </combo_item>
+ <combo_item name="Ring">
+ Anel
+ </combo_item>
+ <combo_item name="Sculpted">
+ Esculpida
+ </combo_item>
</combo_box>
<text name="text cut">
Recorte inicial e final
@@ -269,10 +320,18 @@
Forma Vazia
</text>
<combo_box name="hole">
- <combo_box.item name="Default" label="Padrão"/>
- <combo_box.item name="Circle" label="Circulo"/>
- <combo_box.item name="Square" label="Quadrado"/>
- <combo_box.item name="Triangle" label="Triâgulo"/>
+ <combo_item name="Default">
+ Padrão
+ </combo_item>
+ <combo_item name="Circle">
+ Circulo
+ </combo_item>
+ <combo_item name="Square">
+ Quadrado
+ </combo_item>
+ <combo_item name="Triangle">
+ Triâgulo
+ </combo_item>
</combo_box>
<text name="text twist">
Torcer no Início e final
@@ -298,6 +357,9 @@
<text name="advanced_dimple">
Cova Início e Final
</text>
+ <text name="advanced_slice">
+ Pedaço Início (B) e Fim (E)
+ </text>
<spinner label="B" name="Path Limit Begin"/>
<spinner label="E" name="Path Limit End"/>
<text name="text taper2">
@@ -318,11 +380,21 @@
Tipo costura
</text>
<combo_box name="sculpt type control">
- <combo_box.item name="None" label="nenhum)"/>
- <combo_box.item name="Sphere" label="Esfera"/>
- <combo_box.item name="Torus" label="Toróide"/>
- <combo_box.item name="Plane" label="Plano"/>
- <combo_box.item name="Cylinder" label="Cilindro"/>
+ <combo_item name="None">
+ (nenhum)
+ </combo_item>
+ <combo_item name="Sphere">
+ Esfera
+ </combo_item>
+ <combo_item name="Torus">
+ Toróide
+ </combo_item>
+ <combo_item name="Plane">
+ Plano
+ </combo_item>
+ <combo_item name="Cylinder">
+ Cilindro
+ </combo_item>
</combo_box>
</panel>
<panel label="Recursos" name="Features">
@@ -364,40 +436,88 @@
Mapeamento
</text>
<combo_box name="combobox texgen">
- <combo_box.item name="Default" label="Padrão"/>
- <combo_box.item name="Planar" label="Planar"/>
+ <combo_item name="Default">
+ Padrão
+ </combo_item>
+ <combo_item name="Planar">
+ Planar
+ </combo_item>
</combo_box>
<text name="label shininess">
Brilho
</text>
<combo_box name="combobox shininess">
- <combo_box.item name="None" label="Nenhum"/>
- <combo_box.item name="Low" label="Baixo"/>
- <combo_box.item name="Medium" label="Médio"/>
- <combo_box.item name="High" label="Alto"/>
+ <combo_item name="None">
+ Nenhum
+ </combo_item>
+ <combo_item name="Low">
+ Baixo
+ </combo_item>
+ <combo_item name="Medium">
+ Médio
+ </combo_item>
+ <combo_item name="High">
+ Alto
+ </combo_item>
</combo_box>
<text name="label bumpiness">
Ondulação
</text>
<combo_box name="combobox bumpiness">
- <combo_box.item name="None" label="Nenhum"/>
- <combo_box.item name="Brightness" label="Claridade"/>
- <combo_box.item name="Darkness" label="Escuridão"/>
- <combo_box.item name="woodgrain" label="Granulação"/>
- <combo_box.item name="bark" label="casca"/>
- <combo_box.item name="bricks" label="Tijolos"/>
- <combo_box.item name="checker" label="Caixa"/>
- <combo_box.item name="concrete" label="Concreto"/>
- <combo_box.item name="crustytile" label="Encaroçado"/>
- <combo_box.item name="cutstone" label="Pedra Cortante"/>
- <combo_box.item name="discs" label="Discos"/>
- <combo_box.item name="gravel" label="Cascalho"/>
- <combo_box.item name="petridish" label="Pedrisco"/>
- <combo_box.item name="siding" label="Revestimento"/>
- <combo_box.item name="stonetile" label="empedrado"/>
- <combo_box.item name="stucco" label="Grafiato"/>
- <combo_box.item name="suction" label="Sulcos"/>
- <combo_box.item name="weave" label="weave"/>
+ <combo_item name="None">
+ Nenhum
+ </combo_item>
+ <combo_item name="Brightness">
+ Claridade
+ </combo_item>
+ <combo_item name="Darkness">
+ Escuridão
+ </combo_item>
+ <combo_item name="woodgrain">
+ Granulação
+ </combo_item>
+ <combo_item name="bark">
+ casca
+ </combo_item>
+ <combo_item name="bricks">
+ Tijolos
+ </combo_item>
+ <combo_item name="checker">
+ Caixa
+ </combo_item>
+ <combo_item name="concrete">
+ Concreto
+ </combo_item>
+ <combo_item name="crustytile">
+ Encaroçado
+ </combo_item>
+ <combo_item name="cutstone">
+ Pedra Cortante
+ </combo_item>
+ <combo_item name="discs">
+ Discos
+ </combo_item>
+ <combo_item name="gravel">
+ Cascalho
+ </combo_item>
+ <combo_item name="petridish">
+ Pedrisco
+ </combo_item>
+ <combo_item name="siding">
+ Revestimento
+ </combo_item>
+ <combo_item name="stonetile">
+ empedrado
+ </combo_item>
+ <combo_item name="stucco">
+ Grafiato
+ </combo_item>
+ <combo_item name="suction">
+ Sulcos
+ </combo_item>
+ <combo_item name="weave">
+ weave
+ </combo_item>
</combo_box>
<text name="tex scale">
Repetir por Face
@@ -430,21 +550,33 @@
<button label="Alinhar" label_selected="Alinhar" name="button align"/>
</panel>
<panel label="Conteúdo" name="Contents">
- <button label="Novo Script..." label_selected="Novo Script..." name="button new script"/>
+ <button label="Novo Script" label_selected="Novo Script..." name="button new script"/>
+ <button label="Permissões..." name="button permissions"/>
</panel>
</tab_container>
<panel name="land info panel">
+ <text name="label_parcel_info">
+ Informações do Lote
+ </text>
<text name="label_area_price">
Preço: L$[PRICE] por [AREA] m².
</text>
<text name="label_area">
Área: [AREA] m².
</text>
- <button label="Comprar Terra..." label_selected="Comprar Terra.." name="button buy land"/>
- <button label="Abandonar Terra..." label_selected="Abandonar Terra..." name="button abandon land"/>
+ <button label="Sobre a Terra..." label_selected="Sobre a Terra..." name="button about land"/>
+ <check_box label="Mostrar donos" name="checkbox show owners" tool_tip="Colorir lotes de acordo com seus donos"/>
+ <button label="?" label_selected="?" name="button show owners help"/>
+ <text name="label_parcel_modify">
+ Modificar Lote
+ </text>
<button label="Sub-Dividir..." label_selected="Sub-Dividir..." name="button subdivide land"/>
<button label="Unir..." label_selected="Unir..." name="button join land"/>
- <button label="Sobre a Terra..." label_selected="Sobre a Terra..." name="button about land"/>
+ <text name="label_parcel_trans">
+ Transações com a Terra
+ </text>
+ <button label="Comprar Terra..." label_selected="Comprar Terra.." name="button buy land"/>
+ <button label="Abandonar Terra..." label_selected="Abandonar Terra..." name="button abandon land"/>
</panel>
<string name="status_rotate">
Arrastar as bandas coloridas para girar o objeto
@@ -462,10 +594,10 @@
Clicar e arrastar para mudar a vista
</string>
<string name="status_grab">
- Arrastar para mover objetos, Ctrl para levantar, Ctrl-Shift para girar
+ Arrastar para mover, Ctrl para levantar, Ctrl-Shift para rotacionar
</string>
<string name="status_place">
- Clicar no mundo para criar, shift-clicar para selecionar
+ Clique no mundo para construir
</string>
<string name="status_selectland">
Clicar e arrastar para selecionar a terra
diff --git a/indra/newview/skins/default/xui/pt/floater_world_map.xml b/indra/newview/skins/default/xui/pt/floater_world_map.xml
index 54ebdf2bb2..0fb8684077 100644
--- a/indra/newview/skins/default/xui/pt/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/pt/floater_world_map.xml
@@ -4,35 +4,29 @@
<panel label="Objetos" name="objects_mapview"/>
<panel label="Terreno" name="terrain_mapview"/>
</tab_container>
- <text name="land_for_sale_label">
- Terra à venda
- </text>
- <text name="auction_label">
- Leilão
- </text>
<text name="you_label">
Você
</text>
<text name="home_label">
Casa
</text>
- <button label="Ir para Casa" label_selected="Ir para casa" name="Go Home" tool_tip="Teletransportar para sua Casa"/>
- <text name="person_label">
- Pessoa
- </text>
- <text name="infohub_label">
- Infohub
- </text>
- <text name="telehub_label">
- Telehub
+ <text name="auction_label">
+ Leilão
</text>
- <text name="land_for_sale_label2">
- Terra à Venda
+ <text name="land_for_sale_label">
+ Terra à venda
</text>
+ <button label="Ir para Casa" label_selected="Ir para casa" name="Go Home" tool_tip="Teletransportar para sua Casa"/>
+ <check_box label="Residente" name="people_chk"/>
+ <check_box label="Infohub" name="infohub_chk"/>
+ <check_box label="Telehub" name="telehubchk"/>
+ <check_box label="Terra à Venda" name="land_for_sale_chk"/>
<text name="events_label">
- Eventos
+ Eventos:
</text>
-
+ <check_box label="PG" name="event_chk"/>
+ <check_box label="Mature" name="event_mature_chk"/>
+ <check_box label="Adult" name="event_adult_chk"/>
<combo_box label="Amigos Conectados" name="friend combo" tool_tip="Amigos para mostrar no Mapa">
<combo_box.item name="none_selected" label="Amigos Conectados" />
</combo_box>
@@ -50,10 +44,10 @@
<spinner name="spin x" tool_tip="Coordenada X da posição mostrada no mapa"/>
<spinner name="spin y" tool_tip="Coordenada Y da posição mostrada no mapa"/>
<spinner name="spin z" tool_tip="Coordenada Z da posição mostrada no Mapa"/>
- <button label="Teletransporte" label_selected="Teletransporte" name="Teleport" tool_tip="Teletransportar para a posição selecionada"/>
- <button label="Mostrar Destino" label_selected="Mostrar Destino" name="Show Destination" tool_tip="Centralizar mapa na posição selecionada"/>
- <button label="Limpar" label_selected="Limpar" name="Clear" tool_tip="Parar de percorrer"/>
- <button label="Mostra minha localização" label_selected="Mostra minha localização" name="Show My Location" tool_tip="Centraliza o mapa na posição do seu Avatar"/>
- <button label="Copiar SLURL para área de transferência" name="copy_slurl" tool_tip="Copia a posição atual como SLURL para ser usada na Web"/>
+ <button font="SansSerifSmall" label="Teletransporte" label_selected="Teletransporte" name="Teleport" tool_tip="Teletransportar para a posição selecionada"/>
+ <button font="SansSerifSmall" left_delta="91" width="135" label="Mostrar destino" label_selected="Mostrar Destino" name="Show Destination" tool_tip="Centralizar mapa na posição selecionada"/>
+ <button font="SansSerifSmall" label="Limpar" label_selected="Limpar" name="Clear" tool_tip="Parar de percorrer"/>
+ <button font="SansSerifSmall" left_delta="91" width="135" label="Mostra minha localização" label_selected="Mostra minha localização" name="Show My Location" tool_tip="Centraliza o mapa na posição do seu Avatar"/>
+ <button font="SansSerifSmall" label="Copiar SLURL para área de transferência" name="copy_slurl" tool_tip="Copia a posição atual como SLURL para ser usada na Web"/>
<slider label="Zoom" name="zoom slider"/>
</floater>
diff --git a/indra/newview/skins/default/xui/pt/menu_inventory.xml b/indra/newview/skins/default/xui/pt/menu_inventory.xml
index 4fdafac015..486588158e 100644
--- a/indra/newview/skins/default/xui/pt/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/pt/menu_inventory.xml
@@ -41,9 +41,9 @@
<menu_item_call label="Copiar" name="Copy"/>
<menu_item_call label="Colar" name="Paste"/>
<menu_item_call label="Apagar" name="Delete"/>
+ <menu_item_call label="Remover os itens" name="Take Off Items"/>
<menu_item_call label="Adicionar ao equipamento" name="Add To Outfit"/>
<menu_item_call label="Substituir equipamento" name="Replace Outfit"/>
- <menu_item_call label="Remover os itens" name="Take Off Items"/>
<menu_item_call label="Iniciar conversa em conferência" name="Conference Chat Folder"/>
<menu_item_call label="Executar" name="Sound Play"/>
<menu_item_call label="Sobre as Landmarks" name="Teleport To Landmark"/>
@@ -55,11 +55,12 @@
<menu_item_call label="Ativar" name="Activate"/>
<menu_item_call label="Desativar" name="Deactivate"/>
<menu_item_call label="Retirar de você" name="Detach From Yourself"/>
+ <menu_item_call label="Recuperar Última Posição" name="Restore to Last Position"/>
<menu_item_call label="Vestir" name="Object Wear"/>
<menu label="Anexar a" name="Attach To"/>
<menu label="Anexar ao HUD" name="Attach To HUD"/>
- <menu_item_call label="Vestir" name="Wearable Wear"/>
<menu_item_call label="Editar" name="Wearable Edit"/>
+ <menu_item_call label="Vestir" name="Wearable Wear"/>
<menu_item_call label="Retirar" name="Take Off"/>
<menu_item_call label="--Sem opções--" name="--no options--"/>
</menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_mini_map.xml b/indra/newview/skins/default/xui/pt/menu_mini_map.xml
new file mode 100644
index 0000000000..1293f4e17f
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/menu_mini_map.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="popup">
+ <menu_item_call label="Zoom Perto" name="Zoom Close"/>
+ <menu_item_call label="Zoom Médio" name="Zoom Medium"/>
+ <menu_item_call label="Zoom Longe" name="Zoom Far"/>
+ <menu_item_call label="Parar Acompanhamento" name="Stop Tracking"/>
+ <menu_item_call label="Perfil..." name="Profile"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_viewer.xml b/indra/newview/skins/default/xui/pt/menu_viewer.xml
index bc4508ecc6..08ccdc043f 100644
--- a/indra/newview/skins/default/xui/pt/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/pt/menu_viewer.xml
@@ -3,10 +3,12 @@
<menu label="Arquivo" name="File">
<tearoff_menu label="~~~~~~~~~~~" name="~~~~~~~~~~~"/>
<menu label="Upload" name="upload">
- <menu_item_call label="Upload de imagem (L$[COST])..." name="Upload Image"/>
- <menu_item_call label="Upload de som(L$[COST])..." name="Upload Sound"/>
- <menu_item_call label="Upload de animação (L$[COST])..." name="Upload Animation"/>
- <menu_item_call label="Upload de Arquivo (L$[COST] por arquivo)..." name="Bulk Upload"/>
+ <menu_item_call label="Imagem (L$[COST])..." name="Upload Image"/>
+ <menu_item_call label="Som (L$[COST])..." name="Upload Sound"/>
+ <menu_item_call label="Animação (L$[COST])..." name="Upload Animation"/>
+ <menu_item_call label="Bulk (L$[COST] por arquivo)..." name="Bulk Upload"/>
+ <menu_item_separator label="-----------" name="separator"/>
+ <menu_item_call label="Definir Permissões Padrão..." name="perm prefs"/>
</menu>
<menu_item_separator label="-----------" name="separator"/>
<menu_item_call label="Fechar janela" name="Close Window"/>
@@ -72,7 +74,7 @@
<menu_item_check label="Comunicar" name="Instant Message"/>
<menu_item_check label="Inventário" name="Inventory"/>
<menu_item_check label="Falantes Ativos" name="Active Speakers"/>
- <menu_item_check label="Lista de pessoas que não podem falar com você" name="Mute List"/>
+ <menu_item_check label="Lista de residentes e objetos silenciados" name="Mute List"/>
<menu_item_separator label="-----------" name="separator2"/>
<menu_item_check label="Controles de câmera" name="Camera Controls"/>
<menu_item_check label="Controles de movimento" name="Movement Controls"/>
@@ -81,6 +83,7 @@
<menu_item_separator label="-----------" name="separator3"/>
<menu_item_check label="Barra de estatísticas" name="Statistics Bar"/>
<menu_item_check label="Linhas de propriedades" name="Property Lines"/>
+ <menu_item_check label="Linhas de banimento" name="Banlines"/>
<menu_item_check label="Donos de terrenos" name="Land Owners"/>
<menu_item_separator label="-----------" name="separator4"/>
<menu label="Dicas" name="Hover Tips">
@@ -113,7 +116,7 @@
<menu_item_separator label="-----------" name="separator3"/>
<menu_item_call label="Deixar ausente" name="Set Away"/>
<menu_item_call label="Deixar Ocupado" name="Set Busy"/>
- <menu_item_call label="Parar todas as animações" name="Stop All Animations"/>
+ <menu_item_call label="Parar Animação do Meu Avatar" name="Stop Animating My Avatar"/>
<menu_item_call label="Liberar teclas" name="Release Keys"/>
<menu_item_separator label="-----------" name="separator4"/>
<menu_item_call label="Histórico de conta..." name="Account History..."/>
@@ -164,7 +167,6 @@
<menu_item_call label="Zoom na Seleção" name="Zoom to Selection"/>
<menu_item_call label="Comprar objetos" name="Menu Object Take"/>
<menu_item_call label="Pegar cópia" name="Take Copy"/>
- <menu_item_call label="Salvar objeto de volta ao meu inventário" name="Save Object Back to My Inventory"/>
<menu_item_call label="Salvar objeto de volta aos conteúdos do objeto" name="Save Object Back to Object Contents"/>
<menu_item_separator label="-----------" name="separator6"/>
<menu_item_call label="Mostrar scripts defeituosos/Erros de janela" name="Show Script Warning/Error Window"/>
diff --git a/indra/newview/skins/default/xui/pt/notifications.xml b/indra/newview/skins/default/xui/pt/notifications.xml
index 04f3863efc..a88ab65c7a 100644
--- a/indra/newview/skins/default/xui/pt/notifications.xml
+++ b/indra/newview/skins/default/xui/pt/notifications.xml
@@ -1,5748 +1,3042 @@
-<?xml version="1.0" ?><notifications>
-
- <global name="skipnexttime">
-
- Não exibir isto novamente
- </global>
-
- <global name="alwayschoose">
-
- Sempre escolher esta opção
- </global>
-
- <template name="okbutton">
- <form>
- <button
-
-
- name="OK"
- text="$yestext"/>
- </form>
- </template>
-
- <template name="okignore">
- <form>
- <button
-
-
- name="OK"
- text="$yestext"/>
- <ignore text="$ignoretext"/>
- </form>
- </template>
-
- <template name="okcancelbuttons">
- <form>
- <button
-
-
- name="OK"
- text="$yestext"/>
- <button
-
- name="Cancel"
- text="$notext"/>
- </form>
- </template>
-
- <template name="okcancelignore">
- <form>
- <button
-
-
- name="OK"
- text="$yestext"/>
- <button
-
- name="Cancel"
- text="$notext"/>
- <ignore text="$ignoretext"/>
- </form>
- </template>
-
- <template name="okhelpbuttons">
- <form>
- <button
-
-
- name="OK"
- text="$yestext"/>
- <button
-
- name="Help"
- text="$helptext"/>
- </form>
- </template>
-
- <template name="yesnocancelbuttons">
- <form>
- <button
-
-
- name="Yes"
- text="$yestext"/>
- <button
-
- name="No"
- text="$notext"/>
- <button
-
- name="Cancel"
- text="$canceltext"/>
- </form>
- </template>
-
- <notification
- functor="GenericAcknowledge"
-
- name="MissingAlert"
- >
-&apos;[_NAME]&apos; não encontrado no notifications.xml.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="FloaterNotFound"
- >
-Floater error: Não foram encontrados os seguintes controles:
- [CONTROLS]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="TutorialNotFound"
- >
-Nenhum tutorial está disponível no momento.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="GenericAlert"
- >
-[MESSAGE]
- </notification>
-
- <notification
-
- name="GenericAlertYesCancel"
- >
-[MESSAGE]
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="WearableSave"
- >
-Salvar modificações?
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="Não salvar"
- yestext="Salvar"/>
- </notification>
-
- <notification
-
- name="CompileQueueSaveText"
- >
-Houve um problema com o carregamento do texto para um script devido à seguinte razão: [REASON]. Por favor, tente novamente mais tarde.
- </notification>
-
- <notification
-
- name="CompileQueueSaveBytecode"
- >
-Houve um problema durante o carregamento do script compilado devido à seguinte razão: [REASON]. Por favor, tente novamente mais tarde.
- </notification>
-
- <notification
-
- name="WriteAnimationFail"
- >
-Falha nos dados de inscrição de animação. Por favor, tente mais tarde.
- </notification>
-
- <notification
-
- name="UploadAuctionSnapshotFail"
- >
-Houve um problema com o carregamento da foto do leilão devido à seguinte razão: [REASON]
- </notification>
-
- <notification
-
- name="UnableToViewContentsMoreThanOne"
- >
-Não é possível visualizar os conteúdos de mais de um item ao mesmo tempo.
-Por favor, selecione apenas um objeto e tente novamente.
- </notification>
-
- <notification
-
- name="SaveClothingBodyChanges"
- >
-Salvar todas as mudanças de roupas/ partes do corpo?
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="Não Salvar"
- yestext="Salvar tudo"/>
- </notification>
-
- <notification
-
- name="GrantModifyRights"
- >
-Conceder direitos de modificar a outros residentes lhes permite trocar, deletar ou pegar QUAISQUER objetos que você possa ter no mundo.
-Seja MUITO cuidadoso(a) quando passar esta permissão.
-Você deseja conceder direitos de modificar para [FIRST_NAME] [LAST_NAME]?
- <usetemplate
- name="okcancelbuttons"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="GrantModifyRightsMultiple"
- >
-Conceder direitos para modificar seus objetos a outro residente permite ele mudar QUAISQUER objetos que você possa ter no mundo. Tenha muito cuidado quando conceder essa permissão.
-Você deseja permitir que os residentes selecionados tenham direito de edição?
- <usetemplate
- name="okcancelbuttons"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="RevokeModifyRights"
- >
-Você deseja cancelar os direitos de edição de [FIRST_NAME] [LAST_NAME]?
- <usetemplate
- name="okcancelbuttons"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="RevokeModifyRightsMultiple"
- >
-Você quer revogar os direitos de edição para os residentes selecionados?
- <usetemplate
- name="okcancelbuttons"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="UnableToCreateGroup"
- >
-Não foi possível criar um grupo.
-[MESSAGE]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="PanelGroupApply"
- >
-[NEEDS_APPLY_MESSAGE]
-[WANT_APPLY_MESSAGE]
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="Ignorar Alterações"
- yestext="Aplicar Alterações"/>
- </notification>
-
- <notification
-
- name="MustSpecifyGroupNoticeSubject"
- >
-Você deve especificar um assunto para enviar uma notícia para o grupo.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="AddGroupOwnerWarning"
- >
-Você está para adicionar membros do grupo na função de [ROLE_NAME].
-Membros não podem ser removidos dessa função.
-Os membros podem, eles próprios, recusar a função.
-Deseja continuar?
- <usetemplate
- ignoretext="Quando adcionar membro ao grupo como dono"
- name="okcancelignore"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="AssignDangerousActionWarning"
- >
-Você está prestes a adicionar a habilidade &apos;[ACTION_NAME]&apos; para a função &apos;[ROLE_NAME]&apos;
-
-*AVISO*
-Qualquer membro com esta Habilidade pode atribuir a si mesmo -- e a outro membro -- funções que têm mais poderes que os que possuem atualmente, potencialmente elevando-os aos níveis próximos ao Proprietário. Certifique-se sobre esta decisão antes de atribuir esta habilidade.
-
-Adicionar esta habilidade ao &apos;[ROLE_NAME]&apos;?
- <usetemplate
- name="okcancelbuttons"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="AssignDangerousAbilityWarning"
- >
-Você está prestes a adicionar a habilidade &apos;[ACTION_NAME]&apos; à função &apos;[ROLE_NAME]&apos;.
-
-*AVISO*
-Qualquer membro numa função com esta habilidade, pode atribuir a sí mesmo -- e a qualquer outro -- todas as habilidades, elevando seus níveis próximos ao poder do Proprietário.
-
-Adicionar esta habilidade a &apos;[ROLE_NAME]&apos;?
- <usetemplate
- name="okcancelbuttons"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="ClickPublishHelpLand"
- >
-Selecionando &quot;Publicar na Busca&quot;
-Clicando neste Box, será mostrado:
-- este lote nos resultados de busca
-- os objetos públicos deste lote
-- este lote na busca da web
- </notification>
-
- <notification
-
- name="ClickPublishHelpLandDisabled"
- >
-Você não pode fazer este lote visível na busca porque ele está localizado numa região que proíbe isso.
- </notification>
-
- <notification
-
- name="ClickPublishHelpAvatar"
- >
-Selecionando &quot;Mostrar na Busca&quot; será mostrado:
-- meu perfil nos resultados de busca
-- um link para meu perfil nas páginas de grupos públicos
- </notification>
-
- <notification
-
- name="ClickPartnerHelpAvatar"
- >
-Você pode propor a outro Residente ou dissolver uma parceria existente através do website [SECOND_LIFE].
-
-Ir para o site do Second Life para mais informações sobre parceria?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Ir para a Página"/>
- </notification>
-
- <notification
-
- name="ClickWebProfileHelpAvatar"
- >
-Se este Residente definiu uma URL de perfil na web, então você pode:
- * Clicar em &apos;Carregar&apos; para ver a página na aba Web.
- * Clicar Carregar &gt; &apos;Em navegador externo&apos; para ver a página no seu navegador de web padrão.
- * Clicar Carregar &gt; &apos;URL de Casa&apos; para voltar ao perfil do Residente na web se você navegou adiante.
-
-Quando você está vendo seu próprio perfil, você pode entrar com qualquer URL como sendo seu perfil na web e clicar OK para definí-la.
-Outros residentes podem visitar a URL que você definiu, quando eles olharem seu perfil.
- </notification>
-
- <notification
-
- name="JoinGroupCanAfford"
- >
-Unir-se a esse grupo custa L$[COST].
-Deseja prosseguir?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Unir-se"/>
- </notification>
-
- <notification
-
- name="JoinGroupCannotAfford"
- >
-Associar-se a este grupo custa L$[COST].
-Você não tem L$ suficientes para associar-se a este grupo.
- </notification>
-
- <notification
-
- name="LandBuyPass"
- >
-Por L$[COST] você pode ingressar no terreno (&apos;[PARCEL_NAME]&apos;) por [TIME] horas. Comprar um passe de acesso?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SalePriceRestriction"
- >
-O preço de venda deve ser ajustado para mais que 0 L$, se desejar vender para qualquer um.
-Por favor, selecione um indivíduo para realizar a venda se o valor for 0 L$.
- </notification>
-
- <notification
-
- name="ConfirmLandSaleChange"
-
- >
-[LAND_SIZE] m² selecionados de terra estão sendo configurados para venda.
-Seu preço de venda será L$[SALE_PRICE] e está autorizado para venda para [NAME]. Gostaria de continuar a fazer essa alteração?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Continuar"/>
- </notification>
-
- <notification
-
- name="ConfirmLandSaleToAnyoneChange"
- >
-ATENÇÃO: Ao clicar em &apos;vender para qualquer um&apos; torna a sua terra disponível para toda a comunidade Second Life, mesmo aqueles que não estão nesta região.
-
-A área de [LAND_SIZE] m² de terra selecionada está posta para venda.
-Seu preço de venda será L$ [SALE_PRICE] e está autorizado para [NAME].
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsDeededToGroup"
- >
-Você tem certeza de que quer retornar todos os objetos compartilhados com o grupo &apos;[NAME]&apos; neste lote de terra, para o inventário do seu antigo Proprietário?
-
-*AVISO* Isso irá deletar os objetos não transferíveis doados ao grupo!
-
-Objetos: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Retornar"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsOwnedByUser"
- >
-Você tem certeza de que deseja retornar todos os objetos do residente &apos;[NAME]&apos; neste lote para o inventário dele?
-
-Objetos: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Retornar"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsOwnedBySelf"
- >
-Você tem certeza de que deseja retornar todos os objetos de sua propriedade neste lote para seu inventário?
-
-Objetos: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Retornar"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsNotOwnedBySelf"
- >
-Você tem certeza de que deseja retornar todos os objetos que NÃO são seus para o inventário de seus proprietários?
-Objetos transferíveis doados ao grupo retornarão para seu proprietários.
-
-*AVISO* Isso fará com que os objetos não-transferíveis sejam deletados!
-
-Objetos: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Retornar"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsNotOwnedByUser"
- >
-Você tem certeza de que deseja retornar todos os objetos deste lote NÃO pertencentes a [NAME] para o inventário do proprietário?
-
-*AVISO* Esta ação irá apagar os objetos não transferíveis doados ao grupo!
-
-Objetos: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Retornar"/>
- </notification>
-
- <notification
-
- name="ReturnAllTopObjects"
- >
-Você tem certeza de que deseja enviar todos os objetos listados de volta aos inventários de seus proprietários?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Retornar"/>
- </notification>
-
- <notification
-
- name="DisableAllTopObjects"
- >
-Você tem certeza que deseja desativar todos os objetos desta região?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Desativar"/>
- </notification>
-
- <notification
-
- name="ReturnObjectsNotOwnedByGroup"
- >
-Retornar os objetos deste lote que NÃO são compartilhados com o grupo [NAME] de volta para seus proprietários?
-
-Objetos: [N]
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Retornar"/>
- </notification>
-
- <notification
-
- name="UnableToDisableOutsideScripts"
- >
-Não é possível desabilitar scripts externos.
-Toda esta região possui dano habilitado.
-Scripts devem ser permitidos para fazer as armas funcionarem.
- </notification>
-
- <notification
-
- name="MustBeInParcel"
- >
-Você deve permanecer dentro do lote para definir o ponto de aterrissagem.
- </notification>
-
- <notification
-
- name="PromptRecipientEmail"
- >
-Por favor, digite um endereço de email válido para o(s) destinatário(s).
- </notification>
-
- <notification
-
- name="PromptSelfEmail"
- >
-Por favor, insira seu endereço de e-mail.
- </notification>
-
- <notification
-
- name="PromptMissingSubjMsg"
- >
-Enviar por email uma foto com o assunto ou mensagem padrão?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ErrorProcessingSnapshot"
- >
-Erro processando dados da foto.
- </notification>
-
- <notification
-
- name="ErrorEncodingSnapshot"
- >
-Erro ao codificar a foto.
- </notification>
-
- <notification
-
- name="ErrorUploadingPostcard"
- >
-Houve um problema ao enviar a foto devido à seguinte razão: [REASON]
- </notification>
-
- <notification
-
- name="ErrorUploadingReportScreenshot"
- >
-Houve um problema ao carregar a foto da reportagem devido à seguinte razão: [REASON]
- </notification>
-
- <notification
-
- name="MustAgreeToLogIn"
- >
-Você deve concordar com os Termos de Serviço para continuar a entrar no [SECOND_LIFE].
- </notification>
-
- <notification
-
- name="CouldNotPutOnOutfit"
- >
-Não foi possível vestir o conjunto. A pasta do conjunto não contém roupas, partes do corpo ou acessórios.
- </notification>
-
- <notification
-
- name="CannotWearTrash"
- >
-Não é possível usar roupas ou partes do corpo que estão no lixo.
- </notification>
-
- <notification
-
- name="CannotWearInfoNotComplete"
- >
-Você não pode vestir este item porque ele ainda não carregou. Por favor, tente novamente em um minuto.
- </notification>
-
- <notification
-
- name="MustHaveAccountToLogIn"
- >
-Oops! Alguma coisa foi deixada em branco.
-Você precisa entrar com ambos os Nome e Sobrenome do seu avatar.
-
-Você precisa de uma conta para entrar no [SECOND_LIFE]. Você gostaria de criar uma conta agora?
- <usetemplate
- name="okcancelbuttons"
- notext="Tentar novamente"
- yestext="Criar uma nova conta"/>
- </notification>
-
- <notification
-
- name="AddClassified"
- >
-Anúncios classificados aparecem na seção &apos;Classificados&apos; do diretório de Busca e no www.secondlife.com por uma semana.
-Preencha seu anúncio e então clique &apos;Publicar...&apos; para adicioná-lo ao diretório.
-Será solicitado a você um preço a ser pago, quando você clicar Publicar.
-Pagando mais, faz com que seu anúncio apareça em posição mais alta na lista e também em posição mais alta, quando as pessoas buscarem por palavras-chave.
- <usetemplate
- ignoretext="Quando adicionando um Classificado novo"
- name="okcancelignore"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="DeleteClassified"
- >
-Apagar classificado&apos;[NAME]&apos;?
-Não há reembolso por taxas já pagas.
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Apagar"/>
- </notification>
-
- <notification
-
- name="ClassifiedSave"
- >
-Salvar as mudanças no classificado [NAME]?
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="Não Salvar"
- yestext="Salvar"/>
- </notification>
-
- <notification
-
- name="DeleteAvatarPick"
- >
-Apagar pegar [PICK]?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Delete"/>
- </notification>
-
- <notification
-
- name="PromptGoToEventsPage"
- >
-Ir até a página web de enventos [SECOND_LIFE] ?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Ir à página"/>
- </notification>
-
- <notification
-
- name="SelectProposalToView"
- >
-Por favor, selecione uma proposta para visualizar.
- </notification>
-
- <notification
-
- name="SelectHistoryItemToView"
- >
-Por favor, selecione um item do histórico para exibí-lo.
- </notification>
-
- <notification
-
- name="ResetShowNextTimeDialogs"
- >
-Você gostaria de reabilitar todas estas pop ups que você indicou previamente como &apos;Não me mostrar novamente&apos;?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SkipShowNextTimeDialogs"
- >
-Você gostaria de desabilitar todas as popups que podem ser puladas?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CacheWillClear"
- >
-O cache será limpo quando você reiniciar [SECOND_LIFE].
- </notification>
-
- <notification
-
- name="CacheWillBeMoved"
- >
-O Cache será removido após reiniciar [SECOND_LIFE].
-Nota: Isto limpará o cache.
- </notification>
-
- <notification
-
- name="ChangeConnectionPort"
- >
-Configuração de porta terá efeito após reiniciar [SECOND_LIFE].
- </notification>
-
- <notification
-
- name="ChangeSkin"
- >
-A nova pele será exibida após reiniciar [SECOND_LIFE].
- </notification>
-
- <notification
-
- name="GoToAuctionPage"
- >
-Ir para a página do [SECOND_LIFE] para ver os detalhes do leilão ou fazer um lance?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Ir para a página"/>
- </notification>
-
- <notification
-
- name="SaveChanges"
- >
-Salvar alterações?
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="Não Salvar"
- yestext="Salvar"/>
- </notification>
-
- <notification
-
- name="GestureSaveFailedTooManySteps"
- >
-Falha ao salvar Gesto.
-Este gesto possui muitos passos.
-Tente remover alguns passos e salve-o novamente.
- </notification>
-
- <notification
-
- name="GestureSaveFailedTryAgain"
- >
-Falha ao salvar Gesto. Por favor, tente em uma minuto.
- </notification>
-
- <notification
-
- name="GestureSaveFailedObjectNotFound"
- >
-Não foi possível salvar o gesto pois o objeto ou o inventário associado ao objeto não foi encontrado.
-O objeto pode estar fora de alcance ou foi deletado.
- </notification>
-
- <notification
-
- name="GestureSaveFailedReason"
- >
-Houve um problema em salvar um gesto devido à seguinte razão: [REASON]. Por favor, tente salvar o Gesto depois.
- </notification>
-
- <notification
-
- name="SaveNotecardFailObjectNotFound"
- >
-Não foi possível salvar uma nota pois o objeto ou o inventário associado ao objeto não foi encontrado.
-O objeto pode estar fora de alcance ou foi deletado.
- </notification>
-
- <notification
-
- name="SaveNotecardFailReason"
- >
-Houve um problema em salvar uma nota devido a seguinte razão: [REASON]. Por favor, tente salvar a nota novamente mais tarde.
- </notification>
-
- <notification
-
- name="ScriptCannotUndo"
- >
-Não foi possível desfazer todas as mudanças na sua versão de script.
-Gostaria de carregar a última versão salva?
-(**Aviso** Esta operação não pode ser desfeita).
- <usetemplate
- name="okcancelbuttons"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="SaveScriptFailReason"
- >
-Houve um problema em salvar um script devido à seguinte razão: [REASON]. Por favor, tente salvar novamente o script mais tarde.
- </notification>
-
- <notification
-
- name="SaveScriptFailObjectNotFound"
- >
-Não foi possível salvar o script pois o objeto em que ele está não pôde ser encontrado.
-O objeto pode estar fora de alcance ou ter sido deletado.
- </notification>
-
- <notification
-
- name="SaveBytecodeFailReason"
- >
-Houve um problema em salvar uma compilação de script devido a seguinte razão: [REASON]. Por favor, tente salvar novamente o script mais tarde.
- </notification>
-
- <notification
-
- name="CouldNotStartStopScript"
- >
-Não foi possível iniciar ou parar o script pois o objeto em que ele está não pôde ser encontrado.
-O objeto pode estar fora de alcance ou ter sido deletado.
- </notification>
-
- <notification
-
- name="CannotDownloadFile"
- >
-Não foi possível baixar o arquivo.
- </notification>
-
- <notification
-
- name="CannotWriteFile"
- >
-Não foi possível escrever o arquivo [[FILE]]
- </notification>
-
- <notification
-
- name="UnsupportedHardware"
- >
-Aviso: Seu sistema não é compatível com os requisitos mínimos exigidos pelo Second Life. Se você continuar usando o Second Life pode experimentar uma performance ruim. Infelizmente não podemos oferecer suporte técnico para configurações de sistema não suportado.
-
-MINSPECS
-Você deseja visitar [_URL] para maiores informações?
- <url option="0" name="url">
-
- http://www.secondlife.com/corporate/sysreqs.php
- </url>
- <usetemplate
- ignoretext="Ao detectar hardware não suportado"
- name="okcancelignore"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="UnknownGPU"
- >
-Seu sistema possui uma placa gráfica que nos é desconhecido neste momento.
-Este é normalmente o caso de um novo hardware que nós não tivemos a chance de testar. Second Life vai muito provavelmente executar corretamente, mas talvez seja necessário ajustar suas configurações de gráficos para algo mais apropriado.
-(Menu Editar &gt; Preferências &gt; Gráficos).
- <form name="form">
- <ignore name="ignore"
- text="Ao detectar uma placa de vídeo desconhecida"/>
- </form>
- </notification>
-
- <notification
-
- name="DisplaySettingsNoShaders"
- >
-[SECOND_LIFE] travou quando inicializava os drivers gráficos.
-A Qualidade Gráfica será ajustada para baixa, para evitar alguns erros comuns de drivers.
-Isto irá desabilitar alguns atributos gráficos.
-Nós recomendamos a atualização dos drivers de sua placa gráfica.
-A Qualidade Gráfica pode ser aumentada no Preferências &gt; Gráficos.
- </notification>
-
- <notification
-
- name="RegionNoTerraforming"
- >
-A região [REGION] não permite ser aplainada.
- </notification>
-
- <notification
-
- name="CannotCopyWarning"
- >
-Você não tem permissão para copiar este item e irá perdê-lo do seu inventário se entregá-lo a alguém. Quer realmente oferecer este item?
- <usetemplate
- name="okcancelbuttons"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="CannotGiveItem"
- >
-Não foi possível entregar o item de inventário.
- </notification>
-
- <notification
-
- name="TransactionCancelled"
- >
-Transação cancelada.
- </notification>
-
- <notification
-
- name="TooManyItems"
- >
-Não é possível passar mais que 42 itens em uma única transferência de inventário.
- </notification>
-
- <notification
-
- name="NoItems"
- >
-Você não tem permissão para transferir os itens selecionados.
- </notification>
-
- <notification
-
- name="CannotCopyCountItems"
- >
-Você não tem permissão para copiar [COUNT] dos itens selecionados. Você irá perdê-los do seu inventário.
-Deseja realmente entregar estes itens?
- <usetemplate
- name="okcancelbuttons"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="CannotGiveCategory"
- >
-Você não tem permissão para transferir a pasta selecionada.
- </notification>
-
- <notification
-
- name="FreezeAvatar"
- >
-Congelar esse avatar?
-Ele ou ela estará temporáriamente incapacitado de mover-se, conversar ou interagir com mundo.
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="Descongelar"
- yestext="Congelar"/>
- </notification>
-
- <notification
-
- name="FreezeAvatarFullname"
- >
-Congelar [AVATAR_NAME]?
-Ele ou ela vai ficar temporariamente incapaz de se mover, usar o bate-papo ou interagir com o mundo.
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="Descongelar"
- yestext="Congelar"/>
- </notification>
-
- <notification
-
- name="EjectAvatarFullname"
- >
-Ejetar [AVATAR_NAME] da sua terra?
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="Ejetar e Banir"
- yestext="Ejetar"/>
- </notification>
-
- <notification
-
- name="EjectAvatarNoBan"
- >
-Ejetar este avatar da sua terra?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Ejetar"/>
- </notification>
-
- <notification
-
- name="EjectAvatarFullnameNoBan"
- >
-Ejetar [AVATAR_NAME] da sua terra?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Ejetar"/>
- </notification>
-
- <notification
-
- name="AcquireErrorTooManyObjects"
- >
-Erro de aquisição: Muitos objetos selecionados.
- </notification>
-
- <notification
-
- name="AcquireErrorObjectSpan"
- >
-Erro de aquisição: Objetos criados em mais de uma região.
-Por favor, mova todos os objetos a serem adquiridos para uma mesma região.
- </notification>
-
- <notification
-
- name="PromptGoToCurrencyPage"
- >
-[EXTRA]
-
-Vá para [URL] para informação sobre compra de dinheiro.
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Ir até a página"/>
- </notification>
-
- <notification
-
- name="UnableToLinkObjects"
- >
-Não é possível unir estes [COUNT] objetos.
-Você pode unir um máximo de [MAX] objetos.
- </notification>
-
- <notification
-
- name="CannotLinkIncompleteSet"
- >
-Você pode unir apenas conjuntos completos de objetos e deve selecionar mais que um objeto.
- </notification>
-
- <notification
-
- name="CannotLinkModify"
- >
-Impossibilitado de unir, porque você não tem permissão para modificar todos os objetos.
-
-Por favor, certifique-se de que nenhum deles está travado e que você é dono de todos eles.
- </notification>
-
- <notification
-
- name="CannotLinkDifferentOwners"
- >
-Impossibilitado de unir porque nem todos os objetos são do mesmo dono.
-
-Por favor, certifique-se de que você é o dono de todos os objetos selecionados.
- </notification>
-
- <notification
-
- name="NoFileExtension"
- >
-Nenhuma extensão para o arquivo: &apos;[FILE]&apos;
-
-Por favor, certifique-se de que o arquivo tem uma extensão de arquivo correta.
- </notification>
-
- <notification
-
- name="InvalidFileExtension"
- >
-Extensão de arquivo inválida: [EXTENSION].
-Esperada [VALIDS]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CannotUploadSoundFile"
- >
-Não é possível abrir para leitura o arquivo de som carregado:
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileNotRIFF"
- >
-O arquivo não aparenta ser um arquivo do tipo RIFF WAVE:
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileNotPCM"
- >
-O arquivo não aparenta ser um arquivo de áudio PCM WAVE:
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidChannelCount"
- >
-O arquivo possui um número de canais inválido (deve ser mono ou estéreo):
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidSampleRate"
- >
-O arquivo não aparenta ter uma taxa de amostragem suportada (deve ser 44.1k):
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidWordSize"
- >
-O arquivo não aparenta ter um tamanho de palavra suportada (deve ser 8 ou 16 bit):
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidHeader"
- >
-Não pode ser encontrado bloco de dados no cabeçalho WAV:
-[FILE]
- </notification>
-
- <notification
-
- name="SoundFileInvalidTooLong"
- >
-Arquivo de áudio é muito longo (no máximo 10 segundos):
-[FILE]
- </notification>
-
- <notification
-
- name="ProblemWithFile"
- >
-Problemas com o arquivo [FILE]:
-
-[ERROR]
- </notification>
-
- <notification
-
- name="CannotOpenTemporarySoundFile"
- >
-Não pode abrir o arquivo temporário de som comprimido, para leitura: [FILE]
- </notification>
-
- <notification
-
- name="UnknownVorbisEncodeFailure"
- >
-Falha desconhecida de codificação vorbis em: [FILE]
- </notification>
-
- <notification
-
- name="CorruptResourceFile"
- >
-Fonte do arquivo corrompida: [FILE]
- </notification>
-
- <notification
-
- name="UnknownResourceFileVersion"
- >
-Versão desconhecida de arquivo de recursos da Linden no arquivo: [FILE]
- </notification>
-
- <notification
-
- name="UnableToCreateOutputFile"
- >
-Incapaz de criar arquivo de saída: [FILE]
- </notification>
-
- <notification
-
- name="DoNotSupportBulkAnimationUpload"
- >
-Atualmente, não suportamos o envio de arquivos de animação em massa.
- </notification>
-
- <notification
-
- name="CannotUploadReason"
- >
-Incapaz de carregar [FILE] devido ao seguinte motivo: [REASON]
-Por favor tente novamente mais tarde.
- </notification>
-
- <notification
-
- name="CannotCreateLandmarkNotOwner"
- >
-Você não pode criar um ponto de referência porque o proprietário do terreno não permite. Tente novamente a alguns metros de distância.
- </notification>
-
- <notification
-
- name="CannotRecompileSelectObjectsNoScripts"
- >
-Não é possível realizar uma recompilação.
-Selecione um objeto com um script.
- </notification>
-
- <notification
-
- name="CannotRecompileSelectObjectsNoPermission"
- >
-Impossibilitado de executar uma &apos;recompilação&apos;.
-
-Selecione objetos com scripts que você tem permissão para modificar.
- </notification>
-
- <notification
-
- name="CannotResetSelectObjectsNoScripts"
- >
-Impossibilitado de executar &apos;redefinir&apos;.
-
-Selecione objetos com scripts.
- </notification>
-
- <notification
-
- name="CannotResetSelectObjectsNoPermission"
- >
-Impossibilitado de executar &apos;redefinir&apos;.
-
-Selecione objetos com scripts que você tem permissão para modificar.
- </notification>
-
- <notification
-
- name="CannotSetRunningSelectObjectsNoScripts"
- >
-Impossibilitado de definir quaisquer scripts para &apos;rodando&apos;.
-
-Selecione objetos com scripts.
- </notification>
-
- <notification
-
- name="CannotSetRunningNotSelectObjectsNoScripts"
- >
-Impossibilitado de definir quaisquer scripts para &apos;não rodando&apos;.
-
-Selecione objetos com scripts.
- </notification>
-
- <notification
-
- name="NoFrontmostFloater"
- >
-Nenhuma janela flutuante mais à frente para salvar.
- </notification>
-
- <notification
-
- name="SeachFilteredOnShortWords"
- >
-Sua consulta de pesquisa foi alterada e as palavras que eram demasiado curtas foram removidas.
-
-Pesquisava por: [FINALQUERY]
- </notification>
-
- <notification
-
- name="SeachFilteredOnShortWordsEmpty"
- >
-Os termos de sua pesquisa eram muito curtos então nenhuma pesquisa foi feita.
- </notification>
-
- <notification
-
- name="CouldNotTeleportReason"
- >
-Não é possível teletransportar-se.
-[REASON]
- </notification>
-
- <notification
-
- name="CannotSetLandOwnerNothingSelected"
- >
-Incapaz de estabelecer o proprietário do terreno:
-Nenhum lote selecionado.
- </notification>
-
- <notification
-
- name="CannotSetLandOwnerMultipleRegions"
- >
-Não é possível exigir a posse do terreno porque a seleção alcançou múltiplas regiões. Por favor, selecione uma área menor e tente novamente.
- </notification>
-
- <notification
-
- name="ForceOwnerAuctionWarning"
- >
-Este lote está oferecido em leilão. Exigir a posse do terreno irá cancelar o leilão e possivelmente deixará alguns residentes infelizes, se os lances já começaram. Exigir posse?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Retomar"/>
- </notification>
-
- <notification
-
- name="CannotContentifyNothingSelected"
- >
-Conteúdo não encontrado:
-Nenhum lote selecionado.
- </notification>
-
- <notification
-
- name="CannotContentifyNoRegion"
- >
-Conteúdo não encontrado:
-Nenhuma região selecionada.
- </notification>
-
- <notification
-
- name="CannotReleaseLandNothingSelected"
- >
-Não é possível abandonar terreno:
-Nenhum lote selecionado.
- </notification>
-
- <notification
-
- name="CannotReleaseLandNoRegion"
- >
-Não é possível abandonar terreno:
-Não é possível encontrar a região.
- </notification>
-
- <notification
-
- name="CannotBuyLandNothingSelected"
- >
-Não é possível comprar terreno:
-Nenhum lote selecionado.
- </notification>
-
- <notification
-
- name="CannotBuyLandNoRegion"
- >
-Não é possível comprar terreno:
-Não é possível achar a região em que este terreno se encontra.
- </notification>
-
- <notification
-
- name="CannotCloseFloaterBuyLand"
- >
-Você não pode fechar a janela de Compra de Terreno até que o Second Life calcule o preço desta transação.
- </notification>
-
- <notification
-
- name="CannotDeedLandNothingSelected"
- >
-Não é possível transferir posse do terreno:
-Nenhum lote selecionado.
- </notification>
-
- <notification
-
- name="CannotDeedLandNoGroup"
- >
-Não é possível transferir posse do terreno:
-Nenhum grupo selecionado.
- </notification>
-
- <notification
-
- name="CannotDeedLandNoRegion"
- >
-Não é possível transferir posse do terreno:
-Não é possível se achar a região em que este terreno se encontra.
-Por favor, use Ferramentas &gt; Reporte de Bug para reportar isto.
- </notification>
-
- <notification
-
- name="CannotDeedLandMultipleSelected"
- >
-Impossibilitado de passar a propriedade da terra:
-Selecionados vários lotes.
-
-Tente selecionar um único lote.
- </notification>
-
- <notification
-
- name="ParcelCanPlayMedia"
- >
-Esta localidade pode executar fluxo de mídia.
-Fluxo de mídia necessita de uma conexão de Internet rápida.
-
-Executar fluxo de mídia quando disponível?
-(Você pode mudar esta opção mais tarde no Preferências &gt; Áudio &amp; Vídeo.)
- <usetemplate
- name="okcancelbuttons"
- notext="Desabilitar"
- yestext="Exibir Mídia"/>
- </notification>
-
- <notification
-
- name="CannotDeedLandWaitingForServer"
- >
-Impossibilitado de passar a propriedade da terra:
-Esperando pelo servidor informar de quem é a propriedade.
-
-Por favor, tente novamente.
- </notification>
-
- <notification
-
- name="CannotDeedLandNoTransfer"
- >
-Não é possível transferir posse do terreno:
-A região [REGION] não permite transferência do terreno.
- </notification>
-
- <notification
-
- name="CannotReleaseLandWatingForServer"
- >
-Impossibilitado de abandonar a terra:
-Esperando o servidor atualizar as informações do lote.
-
-Tente novamente em alguns segundos.
- </notification>
-
- <notification
-
- name="CannotReleaseLandSelected"
- >
-Impossibilitado de abandonar a terra:
-Você não é dono de todos os lotes selecionados.
-
-Por favor, selecione um único lote.
- </notification>
-
- <notification
-
- name="CannotReleaseLandDontOwn"
- >
-Não é possível abandonar terreno:
-Você não tem permissão de liberar este lote.
-Os lotes que você possui estão em verde.
- </notification>
-
- <notification
-
- name="CannotReleaseLandRegionNotFound"
- >
-Impossibilitado de abandonar a terra:
-Não consegue achar a região em que esta terra se encontra.
-
-Por favor, usar Ferramentas &gt; Reportar Bug, para reportar este erro.
- </notification>
-
- <notification
-
- name="CannotReleaseLandNoTransfer"
- >
-Não é possível abandonar terreno:
-A região [REGION] não permite transferência de terreno.
- </notification>
-
- <notification
-
- name="CannotReleaseLandPartialSelection"
- >
-Impossibilitado de abandonar a terra:
-Você deve selecionar um lote inteiro para liberá-lo.
-
-Selecione um lote inteiro ou primeiro divida seu lote.
- </notification>
-
- <notification
-
- name="ReleaseLandWarning"
- >
-Você está para liberar [AREA] m² de terra.
-Liberando este terreno, o liberará de suas posses, mas não lhe concederá quaisquer L$.
-
-Liberar esta terra?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Renunciar"/>
- </notification>
-
- <notification
-
- name="CannotDivideLandNothingSelected"
- >
-Impossibilitado de dividir a terra:
-
-Nenhum lote selecionado.
- </notification>
-
- <notification
-
- name="CannotDivideLandPartialSelection"
- >
-Impossibilitado de dividir a terra:
-
-Você selecionou um lote inteiro.
-Tente selecionar uma parte do lote.
- </notification>
-
- <notification
-
- name="LandDivideWarning"
- >
-Dividir este terreno irá dividir este lote em dois e cada lote pode ter suas próprias configurações. Algumas configurações serão colocadas no padrão depois dessa operação.
-
-Quer dividir o terreno?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Dividir"/>
- </notification>
-
- <notification
-
- name="CannotDivideLandNoRegion"
- >
-Impossibilitado de dividir a terra:
-Não consegue achar a região em que esta terra se encontra.
-
-Por favor, usar Ferramentas &gt; Reportar Bug, para reportar este erro.
- </notification>
-
- <notification
-
- name="CannotJoinLandNoRegion"
- >
-Impossibilitado de unir a terra:
-Não consegue achar a região em que esta terra se encontra.
-
-Por favor, usar Ferramentas &gt; Reportar Bug, para reportar este erro.
- </notification>
-
- <notification
-
- name="CannotJoinLandNothingSelected"
- >
-Não é possível unir terreno:
-Nenhum lote selecionado.
- </notification>
-
- <notification
-
- name="CannotJoinLandEntireParcelSelected"
- >
-Impossibilitado de unir a terra:
-Você selecionou apenas um lote.
-
-Selecione a terra através de ambos os lotes.
- </notification>
-
- <notification
-
- name="CannotJoinLandSelection"
- >
-Impossibilitado de unir a terra:
-Você deve selecionar mais de um lote.
-
-Selecione a terra através de ambos os lotes.
- </notification>
-
- <notification
-
- name="JoinLandWarning"
- >
-Unir esta terra vai criar um grande lote que envolve todos os lotes que intersectam o retângulo selecionado.
-Você vai ter que redefinir nome e as opções do novo lote.
-
-Unir a terra?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Unir"/>
- </notification>
-
- <notification
-
- name="ConfirmNotecardSave"
- >
-Esta nota precisa ser salva antes do item ser copiado ou visualizado. Salvar nota?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Salvar"/>
- </notification>
-
- <notification
-
- name="ConfirmItemCopy"
- >
-Copiar este item para o seu inventário?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Copiar"/>
- </notification>
-
- <notification
-
- name="ResolutionSwitchFail"
- >
-Falha ao trocar a resolução para [RESX] por [RESY]
- </notification>
-
- <notification
-
- name="ErrorUndefinedGrasses"
- >
-Erro: Gramado indefinido; [SPECIES]
- </notification>
-
- <notification
-
- name="ErrorUndefinedTrees"
- >
-Erro: Árvores indefinidas: [SPECIES]
- </notification>
-
- <notification
-
- name="CannotSaveWearableOutOfSpace"
- >
-Não é possível salvar &apos;[NAME]&apos; para um arquivo de vestimenta. Você precisa liberar algum espaço no seu computador e salvar o arquivo novamente.
- </notification>
-
- <notification
-
- name="CannotSaveToAssetStore"
- >
-Impossibilitado de salvar [NAME] no armazenamento central de ativos.
-Isso é geralmente uma falha temporária. Por favor personalize e salve novamente a vestimenta em poucos minutos.
-
-Se o problema persistir, por favor clicar sobre &apos;Ferramentas &gt; Bug Report&apos; no menu superior e forneça detalhes sobre a configuração de sua rede.
- </notification>
-
- <notification
-
- name="YouHaveBeenLoggedOut"
- >
-Você foi deslogado do [SECOND_LIFE]:
- [MESSAGE]
-Você ainda pode olhar o bate-papo e as mensagens instantâneas existentes, clicando em &apos;Exibir IM &amp; bate-papo&apos;. Caso contrário, clique em &apos;Sair&apos; para sair do [SECOND_LIFE] imediatamente.
- <usetemplate
- name="okcancelbuttons"
- notext="Sair"
- yestext="Ver Mensagem Instantânea &amp; Bate- Papo"/>
- </notification>
-
- <notification
-
- name="OnlyOfficerCanBuyLand"
- >
-Não é possível comprar o terreno para o grupo:
-Você não tem permissão para comprar o terreno para o seu grupo ativado.
- </notification>
-
- <notification
-
- label="Adicionar amigo"
- name="AddFriend"
- >
-Amigos podem dar permissões de rastrear um ao outro pelo mapa e receber atualizações de status online.
-
-Oferecer amizade para [NAME]?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Oferecer"/>
- </notification>
-
- <notification
-
- label="Adicionar amigo"
- name="AddFriendWithMessage"
- >
-Amigos podem dar permissões de rastrear um ao outro pelo mapa e receber atualizações de status online.
-
-Oferecer amizade para [NAME]?
- <form name="form">
- <input name="message" type="text">
-Quer ser meu amigo?
- </input>
- <button
-
-
- name="Offer"
- text="Oferecer"/>
- <button
-
- name="Cancel"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- name="RemoveFromFriends"
- >
-Você quer remover [FIRST_NAME] [LAST_NAME] da sua lista de amigos?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Remover"/>
- </notification>
-
- <notification
-
- name="RemoveMultipleFromFriends"
- >
-Você quer remover vários amigos da sua lista?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Remover"/>
- </notification>
-
- <notification
-
- name="GodDeleteAllScriptedPublicObjectsByUser"
- >
-Você tem certeza que deseja excluir todos os objetos programados de propriedade de
-** [AVATAR_NAME] **
-em todos os outros terrenos deste sim?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="APAGAR!!"/>
- </notification>
-
- <notification
-
- name="GodDeleteAllScriptedObjectsByUser"
- >
-Você tem certeza que deseja excluir todos os objetos programados de propriedade de
-** [AVATAR_NAME] **
-em TODOS OS TERRENOS deste sim?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="!!APAGAR TUDO!!"/>
- </notification>
-
- <notification
-
- name="GodDeleteAllObjectsByUser"
- >
-Você tem certeza que deseja excluir TODOS os objetos (programados ou não) de propriedade de
-** [AVATAR_NAME] **
-em TODOS OS TERRENOS deste sim?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="!!APAGAR TUDO!!"/>
- </notification>
-
- <notification
-
- name="BlankClassifiedName"
- >
-Você deve especificar um nome para seu classificado.
- </notification>
-
- <notification
-
- name="MinClassifiedPrice"
- >
-Preço mínimo a pagar para incluir na listagem é de L$[MIN_PRICE].
-
-Por favor, insira um valor maior.
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLock"
- >
-Pelo menos um dos itens que você selecionou está trancado.
-
-Tem certeza de que deseja apagar estes itens?
- <usetemplate
- name="okcancelbuttons"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteNoCopy"
- >
-Pelo menos um dos itens que você selecionou não é copiável.
-
-Tem certeza de que deseja apagar estes itens?
- <usetemplate
- name="okcancelbuttons"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteNoOwn"
- >
-Você não é proprietário de pelo menos um dos itens selecionados.
-
-Tem certeza de que deseja apagar estes itens?
- <usetemplate
- name="okcancelbuttons"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLockNoCopy"
- >
-Pelo menos um dos objetos está trancado ou não é copiável.
-
-Tem certeza de que deseja apagar estes itens?
- <usetemplate
- name="okcancelbuttons"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLockNoOwn"
- >
-Pelo menos um dos objetos está trancado ou não é de sua posse.
-
-Tem certeza de que deseja apagar estes itens?
- <usetemplate
- name="okcancelbuttons"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteNoCopyNoOwn"
- >
-Pelo menos um dos objetos não é copiável ou não é de sua posse.
-
-Tem certeza de que deseja apagar estes itens?
- <usetemplate
- name="okcancelbuttons"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectDeleteLockNoCopyNoOwn"
- >
-Pelo menos um dos objetos está trancado, não é copiável ou você não o possui.
-
-Tem certeza de que deseja apagar estes itens?
- <usetemplate
- name="okcancelbuttons"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectTakeLock"
- >
-Pelo menos um dos objetos está trancado.
-
-Tem certeza de que deseja pegar estes itens?
- <usetemplate
- name="okcancelbuttons"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectTakeNoOwn"
- >
-Você não possui todos os objetos que está pegando.
-Caso continue, as permissões do próximo proprietário serão aplicadas aos objetos e possivelmente restringirão sua habilidade em modificá-los ou copiá-los.
-
-Você tem certeza de que quer pegar estes itens?
- <usetemplate
- name="okcancelbuttons"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="ConfirmObjectTakeLockNoOwn"
- >
-Pelo menos um objeto está bloqueado.
-Você não possui todos os objetos que você está pegando.
-Se continuar, as permissões para o próximo proprietário serão aplicadas e possivelmente restringirão sua capacidade de modificar ou copiá-los.
-No entanto, você pode pegar a seleção atual.
-
-Tem certeza de que deseja pegar estes itens?
- <usetemplate
- name="okcancelbuttons"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="CantBuyLandAcrossMultipleRegions"
- >
-Não foi possível comprar terreno, pois a seleção abrange várias regiões.
-
-Por favor, selecione uma área menor e tente novamente.
- </notification>
-
- <notification
-
- name="DeedLandToGroup"
- >
-Na transferência de propriedade deste lote, o grupo deverá ter e manter créditos suficientes de uso da terra.
-O preço de aquisição dos terrenos não é restituído ao o proprietário. Se uma parcela transferida é vendida, o preço de venda é dividido igualmente entre os membros do grupo.
-
-Transferir propriedade de [AREA] m² de terra ao grupo &apos;[GROUP_NAME]&apos;?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Acionar"/>
- </notification>
-
- <notification
-
- name="DeedLandToGroupWithContribution"
- >
-Na transferência de propriedade deste lote, o grupo deverá ter e manter créditos suficientes de uso da terra.
-A Transferência incluirá uma contribuição de terra simultanea para o grupo de &apos;[FIRST_NAME] [LAST_NAME]&apos;.
-O preço da compra não será restituído ao proprietário. Se um lote for vendido, o preço da venda será dividido igualmente entre os membros do grupo.
-
-Transferir propriedade destes [AREA] m² de terreno para o grupo &apos;[GROUP_NAME]&apos;?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Acionar"/>
- </notification>
-
- <notification
-
- name="DisplaySetToSafe"
- >
-Configurações de display foram ajustadas para níveis de segurança porque você especificou -- opção de segurança.
- </notification>
-
- <notification
-
- name="DisplaySetToRecommended"
- >
-Configurações de display foram ajustadas para nível recomendado basedo na configuração do seu sistema.
- </notification>
-
- <notification
-
- name="ErrorMessage"
- >
-[ERROR_MESSAGE]
- </notification>
-
- <notification
-
- name="AvatarMoved"
- >
-Sua [TYPE] localização não está disponível no momento.
- [HELP]
-Você foi movido para uma região vizinha.
- </notification>
-
- <notification
-
- name="ClothingLoading"
- >
-Sua vestimenta ainda está baixando.
-Você pode usar o [SECOND_LIFE] normalmente e os outros o visualizarão corretamente.
- <form name="form">
- <ignore name="ignore"
- text="Quando o vestuário está levando muito tempo para fazer download"/>
- </form>
- </notification>
-
- <notification
-
- name="FirstRun"
- >
-A instalação do [SECOND_LIFE] está completa.
-
-Se esta é a primeira vez usando o[SECOND_LIFE], será necessário que você crie uma conta antes de poder se logar.
-Retornar a www.secondlife.com para criar uma nova conta?
- <usetemplate
- name="okcancelbuttons"
- notext="Continuar"
- yestext="Nova conta.."/>
- </notification>
-
- <notification
-
- name="LoginPacketNeverReceived"
- >
-Estamos com problemas de conexão. Pode ser problema com a conexão de sua internet ou com os servidores do Second Life.
-
-Voce tanto pode checar a conexão de sua internet e tentar novamente em alguns minutos, ou clicar em Teletransporte para tentar teletransportar-se para sua casa.
- <form name="form">
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Help"
- text="Ajuda"/>
- <button
-
- name="Teleport"
- text="Teletransportar"/>
- </form>
- </notification>
-
- <notification
-
- name="WelcomeChooseSex"
- >
-Seu personagem irá aparecer num momento.
-
-Use as teclas de seta para andar.
-Pressione a tecla F1 para ajuda ou aprender mais sobre [SECOND_LIFE].
-Por favor, escolha se o seu avatar é feminino ou masculino. Você pode mudar de idéia depois.
- <usetemplate
- name="okcancelbuttons"
- notext="Feminino"
- yestext="Masculino"/>
- </notification>
-
- <notification
-
- name="NotEnoughCurrency"
- >
-[NAME] L$ [PRICE] Você não possui suficientes L$ para fazer isso.
- </notification>
-
- <notification
-
- name="GrantedModifyRights"
- >
-Foi garantido à você o privilégio de alterar o(s) objeto(s) de [FIRST_NAME] [LAST_NAME]&apos;
- </notification>
-
- <notification
-
- name="RevokedModifyRights"
- >
-Seu privilégio para alterar o(s) objeto(s) de [FIRST_NAME] [LAST_NAME]&apos;s foi removido.
- </notification>
-
- <notification
-
- name="FlushMapVisibilityCaches"
- >
-Isto irá descarregar os caches de mapa relativos a esta região.
-Isso é realmente útil apenas para depuração.
-(Na produção, aguarde 5 minutos e, então, o mapa de todos será atualizado depois que relogar.)
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="OnlyCopyContentsOfSingleItem"
- >
-Incapaz de copiar os conteúdos de mais de um item por vez. Por favor, selecione somente um objeto e tente novamente.
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="KickUsersFromRegion"
- >
-Teletransportar para casa todos os residentes nesta região?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="EstateObjectReturn"
- >
-Você tem certeza que deseja retornar os objetos pertencentes a [USER_NAME] ?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="InvalidTerrainBitDepth"
- >
-Não foi possível definir texturas da região:
-Textura do Terreno [TEXTURE_NUM] tem uma profundidade de bits inválidos [TEXTURE_BIT_DEPTH].
-
-Substitua textura [TEXTURE_NUM], com uma imagem de 24-bit 512x512 ou menor e em seguida, clique em &apos;Aplicar&apos; novamente.
- </notification>
-
- <notification
-
- name="InvalidTerrainSize"
- >
-Não foi possível definir texturas da região:
-Textura do Terreno [TEXTURE_NUM] é muito grande em [TEXTURE_SIZE_X] x [TEXTURE_SIZE_Y].
-
-Substituir textura [TEXTURE_NUM], com uma imagem de 24-bit 512x512 ou menor e em seguida, clique em &apos;Aplicar&apos; novamente.
- </notification>
-
- <notification
-
- name="RawUploadStarted"
- >
-Upload iniciado. Pode levar uns 2 minutos, dependendo da sua velocidade de conexão.
- </notification>
-
- <notification
-
- name="ConfirmBakeTerrain"
- >
-Você realmente deseja nivelar o terreno selecionado a partir do centro elevando/reduzindo os limites e o padrão para a ferramenta ´Reverter´?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Executar"/>
- </notification>
-
- <notification
-
- name="MaxAllowedAgentOnRegion"
- >
-Você pode ter somente [MAX_AGENTS] residentes permitidos.
- </notification>
-
- <notification
-
- name="MaxBannedAgentsOnRegion"
- >
-Você pode ter apenas [MAX_BANNED] residentes banidos.
- </notification>
-
- <notification
-
- name="MaxAgentOnRegionBatch"
- >
-Falha ao adicionar [NUM_ADDED] agentes:
-Ultrapassa o limite de [MAX_AGENTS] [LIST_TYPE] de [NUM_EXCESS].
- </notification>
-
- <notification
-
- name="MaxAllowedGroupsOnRegion"
- >
-Você pode ter somente [MAX_GROUPS] grupos permitidos.
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Executar"/>
- </notification>
-
- <notification
-
- name="MaxManagersOnRegion"
- >
-Você pode ter apenas [MAX_MANAGER] gerentes da Propriedade.
- </notification>
-
- <notification
-
- name="OwnerCanNotBeDenied"
- >
-Não é possível adicionar o dono da propriedade na lista de residentes banidos.
- </notification>
-
- <notification
-
- name="CanNotChangeAppearanceUntilLoaded"
- >
-Não é possível alterar a aparência até que as roupas e formas estejam carregadas.
- </notification>
-
- <notification
-
- name="ClassifiedMustBeAlphanumeric"
- >
-O título do seu Anúncio deve começar com uma letra entre A e Z ou número. Nenhuma pontuação é permitida.
- </notification>
-
- <notification
-
- name="CantSetBuyObject"
- >
-Não é possível configurar Comprar Objeto, porque o objeto não está à venda.
-Por favor, ponha o objeto à venda e tente novamente.
- </notification>
-
- <notification
-
- name="FinishedRawDownload"
- >
-Download do arquivo de terreno RAW concluído em:
-[DOWNLOAD_PATH]
- </notification>
-
- <notification
-
- name="DownloadWindowsMandatory"
- >
-Uma nova versão do [SECOND_LIFE] está disponível.
-[MESSAGE]
-Você deve baixar essa atualização para utilizar o [SECOND_LIFE].
- <usetemplate
- name="okcancelbuttons"
- notext="Sair"
- yestext="Atualizar"/>
- </notification>
-
- <notification
-
- name="DownloadWindows"
- >
-Uma versão atualizada do [SECOND_LIFE] está disponível.
-[MESSAGE]
-Essa atualização não é mandatória, mas sugerimos que você a instale para melhorar a performance e a estabilidade.
- <usetemplate
- name="okcancelbuttons"
- notext="Continuar"
- yestext="Atualizar"/>
- </notification>
-
- <notification
-
- name="DownloadWindowsReleaseForDownload"
- >
-Uma versão atualizada do [SECOND_LIFE] está disponível.
-[MESSAGE]
-Essa atualização não é mandatória, mas sugerimos que você a instale para melhorar a performance e a estabilidade.
- <usetemplate
- name="okcancelbuttons"
- notext="Continuar"
- yestext="Atualizar"/>
- </notification>
-
- <notification
-
- name="DownloadMacMandatory"
- >
-Uma nova versão do [SECOND_LIFE] está disponível.
-[MESSAGE]
-Você deve baixar esta atualização para utilizar o [SECOND_LIFE].
-
-Baixar para sua pasta de Aplicativos?
- <usetemplate
- name="okcancelbuttons"
- notext="Sair"
- yestext="Atualizar"/>
- </notification>
-
- <notification
-
- name="DownloadMac"
- >
-Uma nova versão do [SECOND_LIFE] está disponível.
-[MESSAGE]
-Essa atualização não é mandatória, mas sugerimos que você a instale para melhorar a performance e a estabilidade.
-
-Baixar para a sua pasta de Aplicativos?
- <usetemplate
- name="okcancelbuttons"
- notext="Continuar"
- yestext="Atualizar"/>
- </notification>
-
- <notification
-
- name="DownloadMacReleaseForDownload"
- >
-Uma nova versão do [SECOND_LIFE] está disponível.
-
-[MESSAGE]
-Essa atualização não é mandatória, mas sugerimos que você a instale para melhorar a performance e a estabilidade.
-
-Baixar para sua pasta de Aplicativos?
- <usetemplate
- name="okcancelbuttons"
- notext="Continuar"
- yestext="Atualizar"/>
- </notification>
-
- <notification
-
- name="DeedObjectToGroup"
- >
-Delegar este objeto causará ao grupo:
-* Receber os L$ pagos ao objeto
- <usetemplate
- ignoretext="Ao transferir objetos aos grupos"
- name="okcancelignore"
- notext="Cancelar"
- yestext="Acionar"/>
- </notification>
-
- <notification
-
- name="WebLaunchExternalTarget"
- >
-Abrir o navegador do seu sistema para ver este conteúdo?
- <usetemplate
- ignoretext="Ao abrir o navegador web do seu sistema para visualizar uma página Web"
- name="okcancelignore"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchJoinNow"
- >
-Ir ao www.secondlife.com para gerenciar sua conta?
- <usetemplate
- ignoretext="Ao abrir o navegador web para gerenciar sua conta"
- name="okcancelignore"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchBugReport101"
- >
-Visite a Wiki [SECOND_LIFE] para aprender como reportar bugs corretamente.
- <usetemplate
- ignoretext="Ao abrir o web browser para visualizar o report de Bug 101 na Wiki"
- name="okcancelignore"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchSecurityIssues"
- >
-Visite a Wiki do [SECOND_LIFE] para detalhes de como Reportar um Problema de Segurança.
- <usetemplate
- ignoretext="Ao abrir o navegador da web para visualizar a Wiki de Problemas de Segurança"
- name="okcancelignore"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchQAWiki"
- >
-Visite o Wiki de QA do [SECOND_LIFE].
- <usetemplate
- ignoretext="Ao abrir o navegador web para visualizar a Wiki de QA"
- name="okcancelignore"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="WebLaunchPublicIssue"
- >
-Visite o Rastreador Público de Problemas do [SECOND_LIFE], onde você poderá reportar Bugs e outros Problemas.
- <usetemplate
- ignoretext="Ao abrir o navegador web para visualizar o Rastreador Público de Problemas"
- name="okcancelignore"
- notext="Cancelar"
- yestext="Ir para a Página"/>
- </notification>
-
- <notification
-
- name="WebLaunchPublicIssueHelp"
- >
-Visite a Wiki [SECOND_LIFE] para informações sobre como utilizar o Rastrador de Público de Problemas.
- <usetemplate
- ignoretext="Ao abrir o navegador web para visualizar a wiki do Rastreador Público de Problemas"
- name="okcancelignore"
- notext="Cancelar"
- yestext="Ir para a página"/>
- </notification>
-
- <notification
-
- name="WebLaunchSupportWiki"
- >
-Ir até o Blog Oficial da Linden buscar pelas últimas notícias e informações.
- <usetemplate
- ignoretext="Ao abrir o navegador da web para visualizar o blog"
- name="okcancelignore"
- notext="Cancelar"
- yestext="Ir até a página"/>
- </notification>
-
- <notification
-
- name="WebLaunchLSLGuide"
- >
-Ir para a página guia do LSL para ajuda com script?
- <usetemplate
- ignoretext="Ao abrir o navegador web para visualizar o Guia de Scripts."
- name="okcancelignore"
- notext="Cancelar"
- yestext="Ir para a página"/>
- </notification>
-
- <notification
-
- name="WebLaunchLSLWiki"
- >
-Ir para o portal LSL para ajuda com script?
- <usetemplate
- ignoretext="Ao abrir o navegador da web para visualizar o Portal de LSL"
- name="okcancelignore"
- notext="Cancelar"
- yestext="Ir para a página"/>
- </notification>
-
- <notification
-
- name="ReturnToOwner"
- >
-Você tem certeza que deseja retornar os objetos selecionados para seus proprietários? Objetos transferíveis doados irão retornar aos proprietários anteriores.
-
-*AVISO* Objetos doados não – transferíveis serão deletados!
- <usetemplate
- ignoretext="Ao retornar objetos a seus proprietários"
- name="okcancelignore"
- notext="Cancelar"
- yestext="Retornar"/>
- </notification>
-
- <notification
-
- name="GroupLeaveConfirmMember"
- >
-Você é atualmente um membro do grupo [GROUP].
-Deixar este grupo?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Deixar"/>
- </notification>
-
- <notification
-
- name="ConfirmKick"
- >
-Você quer REALMENTE expulsar todos os usuários deste grid?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Expulsar todos os usuários"/>
- </notification>
-
- <notification
-
- name="MuteLinden"
- >
-Desculpe, você não pode silenciar um Linden.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Silenciar objeto pelo nome falhou"
- name="MuteByNameFailed"
- >
-Você já silenciou este nome.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="RemoveItemWarn"
- >
-Embora seja permitido, deletar conteúdo pode danificar o objeto. Você quer excluir este item?
- <usetemplate
- name="okcancelbuttons"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="CantOfferCallingCard"
- >
-Não é possível oferecer um cartão de visitas neste momento. Por favor, tente novamente em breve.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="CantOfferFriendship"
- >
-Não é possível oferecer amizade neste momento. Por favor, tente novamente em breve.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="BusyModeSet"
- >
-Definido o Modo Ocupado.
-Bate-papo e mensagens instantâneas serão escondidas. Mensagens instantâneas irão receber a sua resposta de modo ocupado. Todas as ofertas de teletransporte serão recusadas. Todas as ofertas de inventário irão para a sua Lixeira.
- <usetemplate
- ignoretext="Ao definir o Modo Ocupado"
- name="okignore"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="JoinedTooManyGroupsMember"
- >
-Você já pertence a muitos grupos para entrar em outro. Por favor, deixe pelo menos um grupo antes de entrar neste. Para sair de um grupo, selecione o Menu Editar e a opção Meus &apos;Grupos...&apos;
-[NAME] convidou você para entrar num grupo como membro.
-[INVITE]
- <usetemplate
- name="okcancelbuttons"
- notext="Recusar"
- yestext="Entrar"/>
- </notification>
-
- <notification
-
- name="KickUser"
- >
-Expulsar este usuário com qual mensagem?
- <form name="form">
- <input name="message" type="text">
-Um administrador desligou você.
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- name="KickAllUsers"
- >
-Expulsar todo mundo atualmente do grid com qual mensagem?
- <form name="form">
- <input name="message" type="text">
-Um administrador deslogou você.
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- name="FreezeUser"
- >
-Paralise este usuário com qual mensagem?
- <form name="form">
- <input name="message" type="text">
-Você foi congelado. Você não pode se mover ou conversar. Um administrador irá contatá-lo via mensagem instantânea (MI).
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- name="UnFreezeUser"
- >
-Liberar este usuário com qual mensagem?
- <form name="form">
- <input name="message" type="text">
-Você não está mais congelado.
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- name="OfferTeleport"
- >
-Oferecer um teletransporte para sua localização com qual mensagem?
- <form name="form">
- <input name="message" type="text">
-Junte-se a mim em [REGION]
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- name="OfferTeleportFromGod"
- >
-God user convocou para a sua localização?
- <form name="form">
- <input name="message" type="text">
-Junte-se a mim em [REGION]
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- name="TeleportFromLandmark"
- >
-Você tem certeza que quer se teletransportar?
- <usetemplate
- ignoretext="Ao se teletransportar a partir de uma Landmark no inventário"
- name="okcancelignore"
- notext="Cancelar"
- yestext="Teletransportar"/>
- </notification>
-
- <notification
-
- label="Mensagem para todos na sua Propriedade"
- name="MessageEstate"
- >
-Digite um breve anúncio que será enviado para todos que estejam atualmente na sua propriedade.
- <form name="form">
- <input name="message" type="text"/>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- label="Mudar propriedade Linden"
- name="ChangeLindenEstate"
- >
-Você está prestes a mudar uma propriedade pertencente a Linden (continente, teen grid, orientação, etc.)
-
-Isto é EXTREMAMENTE PERIGOSO porque pode fundamentalmente afetar a experiência do usuário. No continente, vai mudar milhares de regiões e fazer o spaceserver soluçar.
-
-Proceder?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Mudar Propriedade"/>
- </notification>
-
- <notification
-
- label="Mudar o acesso à propriedade Linden"
- name="ChangeLindenAccess"
- >
-Você está prestes a mudar a lista de acessos de uma propriedade pertencente a Linden (continente, teen grid, orientação, etc.).
-
-Isto é PERIGOSO e deveria ser feito apenas para utilizar uma brecha que permita que objetos/L$ sejam transferidos para dentro/fora da grade.
-Isto mudará milhares de regiões e fará o spaceserver soluçar.
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Selecione a propriedade"
- name="EstateAllowedAgentAdd"
- >
-Adicionar à lista de permitidos somente para esta propriedade ou para [ALL_ESTATES]?
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="Todas as Propriedades"
- yestext="Esta Propriedade"/>
- </notification>
-
- <notification
-
- label="Selecione a propriedade"
- name="EstateAllowedAgentRemove"
- >
-Remover da lista de permissão somente para esta propriedade ou para [ALL_ESTATES]?
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="Todas as Propriedades"
- yestext="Esta Propriedade"/>
- </notification>
-
- <notification
-
- label="Seleção de propriedade"
- name="EstateAllowedGroupAdd"
- >
-Adicionar à lista de grupos permitidos somente para esta Região ou para [ALL_ESTATES]?
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="Todas as Propriedades"
- yestext="Esta Propriedade"/>
- </notification>
-
- <notification
-
- label="Selecione a propriedade"
- name="EstateAllowedGroupRemove"
- >
-Remover da lista de grupos permitidos somente para esta propriedade ou de [ALL_ESTATES]?
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="Todas as Propriedades"
- yestext="Esta Propriedade"/>
- </notification>
-
- <notification
-
- label="Selecione a propriedade"
- name="EstateBannedAgentAdd"
- >
-Negar acesso a esta propriedade somente ou para [ALL_ESTATES]?
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="Todas as Propriedades"
- yestext="Esta Propriedade"/>
- </notification>
-
- <notification
-
- label="Selecione a propriedade"
- name="EstateBannedAgentRemove"
- >
-Remover este residente da lista de banidos para acesso a esta propriedade apenas ou para [ALL_ESTATES]?
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="Todas as Propriedades"
- yestext="Esta Propriedade"/>
- </notification>
-
- <notification
-
- label="Selecione a propriedade"
- name="EstateManagerAdd"
- >
-Adicionar gerente da propriedade para esta propriedade somente ou para [ALL_ESTATES]?
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="Todas as Propriedades"
- yestext="Esta Propriedade"/>
- </notification>
-
- <notification
-
- label="Selecione a propriedade"
- name="EstateManagerRemove"
- >
-Remover o gerente da propriedade desta propriedade apenas ou para [ALL_ESTATES]?
- <usetemplate
- canceltext="Cancelar"
- name="yesnocancelbuttons"
- notext="Todas as Propriedades"
- yestext="Esta Propriedade"/>
- </notification>
-
- <notification
-
- label="Confirmar expulsão"
- name="EstateKickUser"
- >
-Expulsar [EVIL_USER] desta propriedade?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Expulsar"/>
- </notification>
-
- <notification
-
- name="EstateChangeCovenant"
- >
-Tem certeza de que deseja mudar o Corretor da Propriedade?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Mudar"/>
- </notification>
-
- <notification
-
- name="ProblemImportingEstateCovenant"
- >
-Problemas encontrados ao importar o Corretor da propriedade.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <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="ProblemAddingEstateGeneric"
- >
-Problemas em adicionar a esta lista de propriedades. Uma ou mais propriedades podem ter uma lista cheia.
- </notification>
-
- <notification
-
- name="UnableToLoadNotecard"
- >
-Não é possível carregar notas neste momento.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="NotAllowedToViewNotecard"
- >
-Permissões insuficientes para visualizar notecard associado com o ID do ativo solicitado.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="MissingNotecardAssetID"
- >
-O ID do ativo do notecard não foi localizado no banco de dados.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="PublishClassified"
- >
-Lembre-se: Taxas de Anúncios de Classificados não são reembolsáveis.
-
-Publicar este classificado agora por L$ [AMOUNT]?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Publicar"/>
- </notification>
-
-
-
-
-
- <notification
-
- label="Confirmar reiniciar"
- name="ConfirmRestart"
- >
-Você quer realmente reiniciar esta região em 2 minutos?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Reiniciar"/>
- </notification>
-
- <notification
-
- label="Mensagem para todos desta Região"
- name="MessageRegion"
- >
-Digite um breve aviso que será enviado para todos nesta região.
- <form name="form">
- <input name="message" type="text"/>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- label="Bloquear Terraforma"
- name="HelpRegionBlockTerraform"
- >
-Se esta opção for assinalada, donos de Terrenos não serão capazes de terraformar independentemente da configuração &apos;Editar Terreno&apos; de suas terras por lote.
-
-Padrão: desligado
- </notification>
-
- <notification
-
- label="Bloquear Vôo"
- name="HelpRegionBlockFly"
- >
-Se esta caixa estiver marcada, as pessoas não poderão voar nesta região independente das configurações por lote de &apos;Voar&apos;.
-
-Padrão: desligado.
- </notification>
-
- <notification
-
- label="Permitir Dano"
- name="HelpRegionAllowDamage"
- >
-Marcar essa caixa habilita o sistema de vitalidade em todos os lotes independente das configurações individuais. Se esta caixa ficar desmarcada, os proprietários de lotes individuais ainda estarão aptos a ativar o sistema de vitalidade de seus lotes.
-
-Padrão: desligado.
- </notification>
-
- <notification
-
- label="Limite de Agentes"
- name="HelpRegionAgentLimit"
- >
-Define o número máximo de residentes permitidos nesta região.
-Quanto mais residentes existirem em sua região, pior pode ser a performance.
-
-Padrão: 40
- </notification>
-
- <notification
-
- label="Bonus de Objetos"
- name="HelpRegionObjectBonus"
- >
-O Bônus de objetos é um multiplicador para primitivas permitidas em qualquer lote. O intervalo permitido é de 1 a 10.
-Se fixado em &apos;1 &apos;, 512m² de cada lote permitem 117 objetos.
-Fixado em &apos;2 &apos;, 512m² cada lote permitem 234, ou o dobro, e assim por diante.
-O número máximo de objetos permitidos por região permanece 15000 não importa qual seja o Bônus de objeto. Uma vez estabelecido, esteja ciente de que a redução do Bônus de objetos pode retornar objetos ou apagá-los.
-
-Padrão: 1.0
- </notification>
-
-
-
- <notification
-
- label="Restringir Empurrar"
- name="HelpRegionRestrictPushObject"
- >
-Esta caixa de verificação Configura toda a região para permissões restritivas de empurrar.
-Quando habilitada, os agentes só podem empurrar a si mesmos ou serem empurrados pelo dono do lote.
-(Empurrar se refere à função LSL llPushObject().)
-
-Padrão: Desligado.
- </notification>
-
- <notification
-
- label="Unir/dividir lote"
- name="HelpParcelChanges"
- >
-Configura se os lotes que não pertencem ao dono da propriedade podem ser unidos ou subdivididos.
-Se esta opção estiver desmarcada:
- * Apenas os donos ou gerentes de propriedades podem unir ou dividir lotes.
- * Eles podem unir ou subdividir lotes pertencentes ao dono ou ao grupo onde eles tem os poderes apropriados.
-Se esta opção estiver marcada:
- * Todos os donos de lotes podem unir ou subdividir os lotes que eles possuem.
- * Para lotes pertencentes a grupos, aqueles com os poderes apropriados podem unir ou subdividir lotes.
-
-Padrão: Marcado.
- </notification>
-
- <notification
-
- label="Não Mostrar na Pesquisa"
- name="HelpRegionSearch"
- >
-Ao marcar esta caixa irá bloquear os donos de lotes de listar seus lotes na busca
-
-Padrão: desligado
- </notification>
-
- <notification
-
- label="Modificar a maturidade da Região"
- name="RegionMaturityChange"
- >
-A classificação de maturidade para esta região foi atualizada.
-Pode levar algum tempo para que a mudança seja refletida no mapa.
- </notification>
-
- <notification
-
- label="Revenda de Terreno"
- name="HelpRegionLandResell"
- >
-Os gerentes e os donos de propriedades podem vender qualquer terreno pertencente ao dono da propriedade.
-Se esta opção estiver desmarcada, os compradores não podem revender seus terrenos nesta região.
-Se esta opção estiver marcada, compradores podem vender seus terrenos nesta região.
-
-Padrão: Desabilitada.
- </notification>
-
- <notification
-
- label="Desabilitar Scripts"
- name="HelpRegionDisableScripts"
- >
-Quando a performance do simulador está ruim, um script pode ser o culpado. Abra a Barra de Estatísticas (Ctrl-Shift-1). Olhe no Simulador de Física FPS. Se estiver abaixo de 45, então abra o painel &apos;Tempo&apos; localizado na parte de baixo da Barra de Estatísticas. Se o Tempo de Script indicar 25 ms ou mais, clique no botão &apos;Get Top CScripts&apos;. Será dado o nome e a localização do script que pode estar causando uma performance ruim. Marque a caixa &apos;Desabilitar Scripts&apos; e aperte o botão &apos;Aplicar&apos;. Isto temporariamente desabilitará todos os scripts nesta região. Uma vez que você chegar ao local, investigue o script para determinar se ele está causando o problema. Você pode querer entrar em contato com o proprietário do script, excluir ou devolver o objeto. Desmarque a caixa &apos;Desabilitar Script&apos; e então clique em &apos;Aplicar&apos; para reativar os scripts na região. Padrão: desligado.
- </notification>
-
- <notification
-
- label="Desabilitar Colisões"
- name="HelpRegionDisableCollisions"
- >
-Quando a performance do simulador é pobre, os objetos físicos podem ser os culpados.Abra a a Barra de Estatísticas (Ctrl-Shift-1).
-Olhe a taxa de quadros por segundos (FPS) dos objetos físicos.
-
-Se ela estiver abaixo de 45, abra o painel de Tempo, localizado na parte inferior da Barra de Estatísticas. Se o Tempo (Físicos) do Simulador mostrar 20 ms ou mais, clique o botão &apos;Pegue os Maiores Colidentes&apos;. Será fornecido a você o nome e a localidade dos objetos físicos que podem estar causando uma performance pobre.
-Ativando a caixa Desabilitar Colisões e então pressionando o botão Aplicar, as colisões objeto-objeto serão temporariamente desabilitadas. Você pode precisar fazer isso para que possa viajar até a localidade onde observou um &apos;colidente-mor&apos;. Uma vez tendo chegado à localidade, investigue o objeto – ele está constantemente colidindo com outros objetos? Você pode desejar contatar o dono do objeto ou deletar ou retornar o objeto.
-Desative a caixa &apos;Desabilitar Colisões&apos; e então use &apos;Aplicar&apos; para reativar as colisões na região.
-
-Padrão: off
- </notification>
-
- <notification
-
- label="Desabilitar Física"
- name="HelpRegionDisablePhysics"
- >
-Desabilitar Física é similar a desabilitar Colisões, com exceção de que todas as simulações físicas serão desabilitadas. Isto significa que não só os objetos pararão de colidir, mas também que os avatares não poderão se mover.
-
-Isto só deve ser usado quando Desabilitar Colisões não trouxer performance suficiente à região para investigar um problema de Física ou do &apos;Colidente-Mor&apos;.
-
-Esteja certo de reabilitar Física quando você terminar, ou os avatares não poderão se mover.
-
-Default: desligado
- </notification>
-
- <notification
-
- label="Principais Colidentes"
- name="HelpRegionTopColliders"
- >
-Mostra uma lista de objetos com o maior número de potenciais colisões objeto-objeto. Estes objetos podem diminuir a performance do simulador.
-Selecione Ver &gt; Barra de Estatísticas e olhe em Simulador &gt; Tempo &gt; Tempo de Simulação (Física) para ver se mais de 20 ms são gastos em física.
- </notification>
-
- <notification
-
- label="Principais Scripts"
- name="HelpRegionTopScripts"
- >
-Mostra uma lista dos objetos gastando mais tempo rodando scripts LSL. Estes objetos podem diminuir a performance do simulador.
-Selecione Ver &gt; Barra de Estatísticas e olhe em Simulador &gt; Tempo &gt; Tempo de Script para ver se mais de 25 ms são gastos em scripts.
- </notification>
-
- <notification
-
- label="Reiniciar Região"
- name="HelpRegionRestart"
- >
-Reinicia o processo do servidor rodando esta região, após um aviso de dois minutos. Todos os residentes nesta região serão desconectados. A região salvará seus dados e deverá retornar em até 90 segundos.
-
-Reiniciar a região não consertará a maioria dos problemas de performance, e deveria ser utilizada somente quando solicitado.
- </notification>
-
- <notification
-
- label="Altura da água"
- name="HelpRegionWaterHeight"
- >
-Esta é a altura em metros onde a água aparece. Caso este ajuste seja diferente de 20 e você tenha águas adjacentes ao limite do seu terreno ou águas continentais, haverá uma abertura visível.
-
-Padrão: 20
- </notification>
-
- <notification
-
- label="Limite do aumento"
- name="HelpRegionTerrainRaise"
- >
-Esta é a distância em metros que os donos de lotes podem elevar o terreno, a partir da altura nivelada do terreno.
-
-Padrão: 4
- </notification>
-
- <notification
-
- label="Limite mais baixo"
- name="HelpRegionTerrainLower"
- >
-Esta é a distância em metros que os donos de lotes podem abaixar o terreno, a partir da altura nivelada do terreno.
-
-Padrão: -4
- </notification>
-
- <notification
-
- label="Carregar terreno RAW"
- name="HelpRegionUploadRaw"
- >
-Este botão faz upload de um arquivo .RAW para a região em que você está.
-O arquivo precisa conter as dimensões/número de canais corretos: RGB, 256x256 e 13 canais. A melhor forma de criar um arquivo da região é baixando o arquivo .RAW existente. Um bom primeiro passo seria modificar o primeiro canal (altura da região) e fazer o upload do arquivo.
-
-O upload pode levar certa de 45 segundos. Note que fazer upload do arquivo da região *não* moverá os objetos que estão na região, apenas o terreno e as permissões associadas a ele. Isso pode fazer com que alguns objetos fiquem debaixo da terra.
-
-Para mais informações sobre edição dos campos de altura da região, consulte a ajuda F1.
- </notification>
-
- <notification
-
- label="Baixar RAW de terreno"
- name="HelpRegionDownloadRaw"
- >
-Este botão faz download de um arquivo contendo dados de altura do campo, dimensões do lote, status de lotes à venda e algumas permissões de lote para este terreno. Ao abrir o arquivo em programas como o Photoshop, você precisa especificar as dimensões do documento, que são: RGB, 256x256 com 13 canais. Este arquivo de terras não pode ser aberto de outra forma.
-
-Para mais informações sobre edição dos campos de altura da região, consulte a Ajuda F1.
- </notification>
-
- <notification
-
- label="Usar Sol da Propriedade"
- name="HelpRegionUseEstateSun"
- >
-Esta caixa de opção faz com que a posição do sol nesta região seja a mesma que no resto da região.
-
-Padrão: ligada
- </notification>
-
- <notification
-
- label="Sol fixo"
- name="HelpRegionFixedSun"
- >
-Esta caixa de opção ajusta a posição do sol no equalizador de fuso e interrompe o movimento do sol.
-
-Padrão: desligada
- </notification>
-
- <notification
-
- label="Nivelar Terreno"
- name="HelpRegionBakeTerrain"
- >
-Este botão salva a forma atual do terreno como o novo padrão para a região. Uma vez nivelado, o terreno pode reverter à forma que foi salva, sempre que você ou outros utilizarem a ferramenta &apos;Revert&apos; na edição de terreno. O terreno nivelado é também o ponto médio entre os limites de elevação e redução de terreno.
- </notification>
-
- <notification
-
- label="Gerentes da Propriedade"
- name="HelpEstateEstateManager"
- >
-Um gerente da propriedade é um residente a quem você delegou o controle das configurações da região. Ele pode alterar qualquer configuração da região, com exceção de elevar, abaixar ou nivelar o terreno. Em particular, eles podem permitir ou banir residentes da sua propriedade. Gerentes da propriedade só podem ser adicionados ou removidos pelo dono da propriedade.
-
-Um gerente não pode adicionar ou remover outro gerente. Por favor, escolha somente residentes em quem você confia para serem gerentes da propriedade, pois você poderá ser responsabilizado pelas ações deles.
- </notification>
-
- <notification
-
- label="Usar hora Global"
- name="HelpEstateUseGlobalTime"
- >
-Esta caixa de opção faz com que o Sol em sua propriedade siga a mesma posição do Sol nas propriedades da &apos;mainland&apos; do Linden Lab.
-
-Padrão: ligado
- </notification>
-
- <notification
-
- label="Sol fixo"
- name="HelpEstateFixedSun"
- >
-Esta caixa de opção ajusta a posição do sol no equalizador de fuso e interrompe o movimento do sol.
- </notification>
-
- <notification
-
- label="Acesso público"
- name="HelpEstateExternallyVisible"
- >
-Esta caixa de verificação define se os Residentes que estão em outras propriedades podem entrar nesta, sem estar em uma lista de acesso.
-
-Padrão: on
- </notification>
-
- <notification
-
- label="Permitir Teletransporte direto"
- name="HelpEstateAllowDirectTeleport"
- >
-Quando marcada, permite que os residentes se teletransportem diretamente para qualquer ponto da sua propriedade. Quando desmarcada, os residentes serão teleportados para o telehub mais próximo.
-
-Padrão: desmarcada
- </notification>
-
- <notification
-
- label="Permitir acesso"
- name="HelpEstateAllowResident"
- >
-Acesso a esta propriedade estará limitado aos Residentes listados aqui e em quaisquer grupos abaixo.
-Esta definição está disponível apenas quando o Acesso Público estiver desmarcado.
- </notification>
-
- <notification
-
- label="Permitir acesso de grupo"
- name="HelpEstateAllowGroup"
- >
-Acesso a esta propriedade estará limitado aos grupos listados aqui e a quaisquer Residentes acima.
-Esta definição está disponível apenas quando o Acesso Público estiver desmarcado.
- </notification>
-
- <notification
-
- label="Endereço de Email do Abuso"
- name="HelpEstateAbuseEmailAddress"
- >
-Configurar isto para um endereço de email válido, fará com que relatos de abuso nesta propriedade sejam enviados para esse endereço.
-Definí-lo em branco fará com que os relatórios de abuso sejam enviados apenas para a Linden Lab.
- </notification>
-
- <notification
-
- label="Negar acesso"
- name="HelpEstateBanResident"
- >
-Residentes desta lista estão proibidos de acessar a sua propriedade, independentemente de outras configurações.
- </notification>
-
- <notification
-
- label="Permitir Conversa por Voz"
- name="HelpEstateVoiceChat"
- >
-Lotes nesta propriedade têm permissão para ter seus canais de voz próprios, nos quais os residentes podem ouvir e falar com os outros residentes próximos.
-
-Padrão: desligado
- </notification>
-
- <notification
-
- label="Discordância de Versão de Voz"
- name="VoiceVersionMismatch"
- >
-Esta versão do Second Life não é compatível com as características do Canal de Voz desta região. Para que a Conversa por Voz funcione corretamente, você precisará atualizar o Second Life.
- </notification>
-
- <notification
-
- label="Corretor da Propriedade"
- name="HelpEstateCovenant"
- >
-Definir um corretor da propriedade lhe permite vender lotes nesta propriedade. Se um corretor não for definido, você não pode vender terras. O cartão do seu corretor pode ficar vazio se você não desejar aplicar quaisquer regras ou avisar os compradores sobre qualquer coisa em relação ao lote antes da compra.
-
-Um corretor pode ser usado para comunicar regras, orientações, informações culturais ou simplesmente suas expectativas quanto ao futuro comprador. Isto pode incluir zoneamento, regulamentos para construções, opções de pagamento ou qualquer outra informação que você julgar importante que o novo proprietário veja e concorde antes da compra.
-
-O comprador precisa concordar com o corretor marcando a caixa de verificação antes de concluir a compra. Corretores são sempre visíveis na caixa de diálogo &apos;Sobre a Terra&apos; para todos os lotes que têm corretores definidos.
- </notification>
-
- <notification
-
- label="Impossível Comprar Objetos"
- name="BuyObjectOneOwner"
- >
-Não é possível comprar objetos de diferentes proprietários ao mesmo tempo.
-Por favor, selecione apenas um objeto e tente novamente.
- </notification>
-
- <notification
-
- label="Impossível Comprar Conteúdos"
- name="BuyContentsOneOnly"
- >
-Não é possível comprar os conteúdos de mais de um objeto ao mesmo tempo.
-Por favor, selecione apenas um objeto e tente novamente.
- </notification>
-
- <notification
-
- label="Impossível Comprar Conteúdos"
- name="BuyContentsOneOwner"
- >
-Não é possível comprar objetos de diferentes proprietários ao mesmo tempo.
-Por favor, selecione apenas um objeto e tente novamente.
- </notification>
-
- <notification
-
- name="BuyOriginal"
- >
-Comprar o objeto original de [OWNER] por L$[PRICE]?
-Você se tornará o proprietário deste objeto.
-Você poderá:
- Modificar: [MODIFYPERM]
- Copiar: [COPYPERM]
- Revender ou Doar: [RESELLPERM]
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Comprar"/>
- </notification>
-
- <notification
-
- name="BuyOriginalNoOwner"
- >
-Comprar o objeto original por L$[PRICE]?
-Você se tornará o proprietário deste objeto.
-Você poderá:
- Modificar: [MODIFYPERM]
- Copiar: [COPYPERM]
- Revender ou Doar: [RESELLPERM]
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Comprar"/>
- </notification>
-
- <notification
-
- name="BuyCopy"
- >
-Comprar uma cópia de [OWNER] por L$[PRICE]?
-O objeto será copiado para o seu inventário.
-Você poderá:
- Modificar: [MODIFYPERM]
- Copiar: [COPYPERM]
- Revender ou Doar: [RESELLPERM]
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Comprar"/>
- </notification>
-
- <notification
-
- name="BuyCopyNoOwner"
- >
-Comprar uma cópia por L$[PRICE]?
-O objeto será copiado para o seu inventário.
-Você poderá:
- Modificar: [MODIFYPERM]
- Copiar: [COPYPERM]
- Revender ou Doar: [RESELLPERM]
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Comprar"/>
- </notification>
-
- <notification
-
- name="BuyContents"
- >
-Comprar conteúdo de [OWNER] por L$[PRICE]?
-Eles serão copiados para o seu inventário.
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Comprar"/>
- </notification>
-
- <notification
-
- name="BuyContentsNoOwner"
- >
-Comprar conteúdo por L$[PRICE]?
-Eles serão copiados para o seu inventário.
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Comprar"/>
- </notification>
-
- <notification
-
- name="ConfirmPurchase"
- >
-Esta transação fará:
-[ACTION]
-
-Você tem certeza de que deseja prosseguir com esta compra?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Confirmar"/>
- </notification>
-
- <notification
-
- name="ConfirmPurchasePassword"
- type="password">
-Esta transação fará:
-[ACTION]
-
-Você tem certeza de que deseja prosseguir com esta compra?
-Por favor, re-insira sua senha e clique &apos;Confirmar Compra&apos;.
- <form name="form">
- <input
- name="message"
- type="password"/>
- <button
-
-
- name="ConfirmPurchase"
- text="Confirmar Compra"/>
- <button
-
- name="Cancel"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- name="SetPickLocation"
- >
-Nota: Você atualizou a localidade desta pick mas os outros detalhes ficarão com seus valores originais.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="MoveInventoryFromObject"
- >
-Você selecionou itens &apos;no copy&apos; do inventário.
-Estes itens serão movidos para o seu inventário, não copiados.
-
-Mover os itens do inventário?
- <usetemplate
- ignoretext="Quando estiver movendo inventário não copiável a partir de objetos."
- name="okcancelignore"
- notext="Não mover"
- yestext="Mover"/>
- </notification>
-
- <notification
-
- name="MoveInventoryFromScriptedObject"
- >
-Você selecionou itens de inventário não copiáveis.
-Estes itens serão movidos para seu inventário, não copiados. Pelo fato de o objeto ter scripts, mover estes itens ao inventário pode provocar um mal funcionamento do script.
-
-Mover para o inventário o(s) item(s)?
- <usetemplate
- ignoretext="Quando movendo objetos com scripts não copiáveis ao inventário"
- name="okcancelignore"
- notext="Não mover"
- yestext="Mover"/>
- </notification>
-
- <notification
-
- name="ClickActionNotPayable"
- >
-Aviso: A ação de Pagar ao Objeto com clique foi definida, mas funcionará apenas se for adicionado um script com o evento money().
- <form name="form">
- <ignore name="ignore"
- text="Quando Definindo &apos;Pagar&apos; em objetos sem eventos money()"/>
- </form>
- </notification>
-
- <notification
-
- name="OpenObjectCannotCopy"
- >
-Não há itens neste objeto que você está autorizado a copiar.
- </notification>
-
- <notification
-
- name="WebLaunchAccountHistory"
- >
-Ir para o site do Second Life para visualizar o histórico de sua conta?
- <usetemplate
- ignoretext="Ao abrir a página web de histórico de conta"
- name="okcancelignore"
- notext="Cancelar"
- yestext="Ir para a página"/>
- </notification>
-
- <notification
-
- name="ClickOpenF1Help"
- >
-Visitar o website de Suporte do Second Life?
- <usetemplate
- ignoretext="Quando visitando o website de Suporte do Second Life"
- name="okcancelignore"
- notext="Cancelar"
- yestext="Ir"/>
- </notification>
-
- <notification
-
- name="ConfirmQuit"
- >
-Tem certeza que deseja sair?
- <usetemplate
- ignoretext="Quando Saindo do Second Life."
- name="okcancelignore"
- notext="Continuar"
- yestext="Sair"/>
- </notification>
-
- <notification
-
- name="HelpReportAbuseEmailLL"
- >
-Use esta ferramenta para reportar violações aos Termos de Serviço e aos Padrões da Comunidade. Veja:
-
-http://secondlife.com/corporate/tos.php
-http://secondlife.com/corporate/cs.php
-
-Todos os abusos aos Termos de Serviço e aos Padrões da Comunidade reportados, são investigados e resolvidos. Você pode ver a resolução do incidente na Reportagem de Incidentes em:
-
-http://secondlife.com/support/incidentreport.php
- </notification>
-
- <notification
-
- name="HelpReportAbuseEmailEO"
- >
-IMPORTANTE: Esta reportagem irá para o dono da região em que você se encontra atualmente e não para a Linden Lab.
-
-Como um serviço aos residentes e visitantes, o dono da região em que você se encontra foi eleito para receber e resolver todas as reportagens originadas nesta região. A Linden Lab não irá investigar reportagens que você envia desta localidade.
-
-O dono da região resolverá as reportagens baseado nas regras locais desta região, como definido na Declaração da propriedade.
-(Veja as declarações indo ao menu Mundo e selecionando Sobre a Terra.)
-
-A resolução desta reportagem se aplica apenas a esta região; o acesso de Residentes às outras áreas do Second Life não será afetado pelas decisões desta reportagem.
-Apenas a Linden Lab pode restringir acesso a todo o Second Life.
- </notification>
-
- <notification
-
- name="HelpReportBug"
- >
-Use esta ferramenta para reportar *apenas* características técnicas que não atuem como descrito ou esperado.
-Por favor, forneça tantos detalhes quanto possível.
-Você pode responder ao e-mail de resposta automática para adicionar mais detalhes à sua reportagem.
-
-Todas as reportagens de bugs são investigadas e avaliadas.
-Nenhum e-mail de resposta será enviado.
-
-Se você estiver tendo uma dificuldade técnica, por favor contate o Suporte em:
-http://secondlife.com/community/support.php
-
-Nota: reportagens incompletas não serão investigadas
- </notification>
-
- <notification
-
- name="HelpReportAbuseSelectCategory"
- >
-Por favor, selecione uma categoria para a reportagem deste abuso.
-A seleção de uma categoria nos ajuda a arquivar e processar as reportagens de abuso.
- </notification>
-
- <notification
-
- name="HelpReportBugSelectCategory"
- >
-Por favor, selecione uma categoria para este bug.
-A seleção de uma categoria nos ajuda a arquivar e processar as reportagens de bugs.
- </notification>
-
- <notification
-
- name="HelpReportAbuseAbuserNameEmpty"
- >
-Por favor, entre com o nome do perturbador.
-Entrando com um valor preciso, nos ajuda a arquivar e processar as reportagens de abuso.
- </notification>
-
- <notification
-
- name="HelpReportAbuseAbuserLocationEmpty"
- >
-Por favor, entre com a localidade aonde o abuso aconteceu.
-Entrando com um valor preciso, nos ajuda a arquivar e processar as reportagens de abuso.
- </notification>
-
- <notification
-
- name="HelpReportAbuseSummaryEmpty"
- >
-Por favor, digite um resumo de como ocorreu o abuso.
-Fazer um resumo detalhado nos ajuda a arquivar e processar as reportagens de abuso.
- </notification>
-
- <notification
-
- name="HelpReportBugSummaryEmpty"
- >
-Por favor, digite um resumo do bug. Realizar um resumo detalhado nos ajuda a arquivar e processar as reportagens de abuso.
- </notification>
-
- <notification
-
- name="HelpReportAbuseDetailsEmpty"
- >
-Por favor, digite uma descrição detalhada do abuso que ocorreu.
-Seja tão específico quanto você puder, incluindo nomes e os detalhes do incidente que está denunciando.
-Fazer uma descrição precisa nos ajuda a arquivar e processar as reportagens de abuso.
- </notification>
-
- <notification
-
- name="HelpReportBugDetailsEmpty"
- >
-Por favor, digite uma descrição detalhada do bug.
-Seja tão específico quanto você puder, incluindo as etapas para reproduzir o bug, se possível.
-Fazer uma descrição precisa nos ajuda a arquivar e processar os relatórios de bugs.
- </notification>
-
- <notification
-
- name="HelpReportAbuseContainsCopyright"
- >
-Caro Residente,
-
-Você parece estar relatando violação de propriedade intelectual. Por favor, certifique-se de que está relatando corretamente:
-
-(1) O Processo de abuso. Você pode apresentar um relatório de abuso se você acredita que um Residente está infringindo o sistema de permissões do Second Life, por exemplo, utilizando ferramentas CopyBot para copiar ou similar, para violar os direitos de propriedade intelectual. A Equipe de Abuso investiga e divulga a ação disciplinar adequada para o comportamento que viola o Estatuto da Comunidade do Second Life ou os Termos de Serviço. No entanto, a mesma não controla e não irá responder aos pedidos para remover o conteúdo do mundo Second Life.
-
-(2) O processo de remoção de conteúdo ou DMCA. Para solicitar a remoção de conteúdo do Second Life, você deve enviar uma notificação válida de infração, conforme previsto em nossa Política de DMCA em http://secondlife.com/corporate/dmca.php.
-
-Se você ainda deseja prosseguir com o processo de abuso, por favor, feche esta janela e termine de enviar seu relatório. Pode ser necessário selecionar a categoria específica &apos;CopyBot Infração de Permissões&apos;.
-
-Obrigado,
-Linden Lab
- </notification>
-
- <notification
-
- name="FailedRequirementsCheck"
- >
-Não foram encontrados os seguintes componentes requeridos de [FLOATER]:
-[COMPONENTS]
- </notification>
-
- <notification
-
- label="Substituir anexo existente"
- name="ReplaceAttachment"
- >
-Já existe um objeto anexado a este ponto do seu corpo.
-Você deseja substituí-lo pelo objeto selecionado?
- <form name="form">
- <ignore name="ignore"
- save_option="true"
- text="Ao substituir os anexos existentes"/>
- <button
-
-
-
- name="Yes"
- text="Sim"/>
- <button
-
-
- name="No"
- text="Não"/>
- </form>
- </notification>
-
- <notification
-
- label="Aviso de Modo Ocupado"
- name="BusyModePay"
- >
-Você está no modo Ocupado, o que significa que você não receberá quaisquer itens oferecidos em troca deste pagamento.
-
-Você gostaria de deixar o modo Ocupado antes de completar esta transação?
- <form name="form">
- <ignore name="ignore"
- save_option="true"
- text="Ao pagar uma pessoa ou objeto no modo ocupado"/>
- <button
-
-
-
- name="Yes"
- text="Sim"/>
- <button
-
-
- name="No"
- text="Não"/>
- </form>
- </notification>
-
- <notification
-
- name="ConfirmEmptyTrash"
- >
-Tem certeza de que deseja remover permanentemente o conteúdo da lixeira de seu inventário?
- <usetemplate
- ignoretext="Ao esvaziar a pasta da lixeira no seu inventário"
- name="okcancelignore"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="ConfirmClearBrowserCache"
- >
-Você tem certeza que deseja limpar o cache do seu navegador?
- <usetemplate
- name="okcancelbuttons"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="ConfirmClearCookies"
- >
-Você tem certeza de que deseja limpar os cookies?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="ConfirmClearMediaUrlList"
- >
-Você tem certeza de que deseja limpar toda sua lista de URLs?
- <usetemplate
- name="okcancelbuttons"
- notext="Cancelar"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="ConfirmEmptyLostAndFound"
- >
-Deseja realmente remover permanentemente o conteúdo da pasta achados e perdidos?
- <usetemplate
- ignoretext="Ao esvaziar pasta Achados e Perdidos do seu inventário"
- name="okcancelignore"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="CopySLURL"
- >
-A seguinte SLURL foi copiada para o seu clipboard:
- [SLURL]
-
-Coloque-a em uma página web para dar aos outros um fácil acesso a este local ou tente você, colando-a na barra de endereços do seu navegador.
- <form name="form">
- <ignore name="ignore"
- text="Ao copiar a SURL para o seu clipboard"/>
- </form>
- </notification>
-
- <notification
-
- name="GraphicsPreferencesHelp"
- >
-Este painel controla o tamanho da janela, resolução e a qualidade dos gráficos do computador cliente. O Preferências &gt; Interface Gráfica permite escolher entre quatro níveis gráficos: Baixo, Médio, Alto e Ultra. Você também pode personalizar suas configurações de gráficos selecionando a opção Custom e manipulando as seguintes definições:
-
-Sombreamento: Ativar ou desativar vários tipos de sobreadores de pixel.
-
-Detalhes de Reflexão: Define os tipos de objetos que a água pode refletir.
-
-Renderização de Avatar: Define opções que afetam a forma como o cliente renderizará os avatares.
-
-Alcance: Afeta a distância do seu ponto de vista que os objetos serão renderizados na cena.
-
-Número máximo de partículas: Define o número máximo de partículas que será capaz de ver na sua tela de uma só vez.
-
-Qualidade de Pós-Processamento: Define a resolução com a qual o brilho será renderizado.
-
-Detalhes de malha: Ajusta a quantidade de detalhes ou número de triângulos utilizados na renderização de certos objetos. Um valor mais alto leva mais tempo para renderizar, mas torna esses objetos mais detalhados.
-
-Detalhe de Iluminação: Seleciona os tipos de luzes que você gostaria de renderizar.
-
-Detalhe de Terreno: Ajusta a quantidade de detalhes que você gostaria de ver para a textura do terreno.
- </notification>
-
- <notification
-
- name="WLSavePresetAlert"
- >
-Você deseja substituir a pré-configuração salva?
- <usetemplate
- name="okcancelbuttons"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="WLDeletePresetAlert"
- >
-Você deseja apagar [SKY]?
- <usetemplate
- name="okcancelbuttons"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="WLNoEditDefault"
- >
-Você não pode editar ou excluir um padrão predefinido.
- </notification>
-
- <notification
-
- name="WLMissingSky"
- >
-Este arquivo de ciclo de dia se refere a um arquivo de céu faltando: [SKY].
- </notification>
-
- <notification
-
- name="PPSaveEffectAlert"
- >
-Existe efeito de Pós-Processamento. Você deseja substituí-lo?
- <usetemplate
- name="okcancelbuttons"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="HelpEditSky"
- >
-Editar os controles graduais do WindLight para configurar e salvar um conjunto de céus.
- </notification>
-
- <notification
-
- name="HelpEditDayCycle"
- >
-Definir quais céus colocar durante todo o dia.
- </notification>
-
- <notification
-
- name="EnvSettingsHelpButton"
- >
-Essas configurações ajustam a forma como o ambiente parece localmente no seu computador. Sua placa de vídeo precisa suportar o sombreador atmosférico, a fim de ter acesso a todas as definições.
-
-Ajuste o controle gradual &quot;Hora do Dia&quot; para alterar a fase do dia localmente no visualizador.
-
-Ajuste o controle gradual de &quot;Cobertura das nuvens&quot; para controlar quantas nuvens cobrem o céu.
-
-Pegue uma cor na paleta de cores de &quot;Cor da Água&quot; para mudar a cor desta.
-
-Ajuste o controle gradual de &quot;Névoa de Água&quot; para controlar o quão densa é a névoa dentro da água.
-
-Clique &quot;Usar Horário da Propriedade&quot; para redefinir a hora do dia para o horário atual do dia da região e permanecer atrelado a ela.
-
-Clique &quot;Céu Avançado &quot; para abrir um editor com configurações mais avançadas para o céu.
-
-Clique &quot;Água Avançada &quot; para abrir um editor com configurações mais avançadas para a água.
- </notification>
-
- <notification
-
- name="HelpDayCycle"
- >
-O editor de Ciclo do Dia dá a você o controle do céu durante um ciclo de dia/noite do Second Life. Este é o ciclo usado pelo controle gradual da hora do dia do editor de ambiente básico.
-
-O editor do ciclo de dia trabalha configurando quadros-chave. Estes são pontos (representados pelos ícones cinza no gráfico de horário) que possuem um pré-ajuste de céu associado a eles. Conforme o dia passa, o céu do Windlight &quot; anima &quot; a interpolação entre esses quadros-chave.
-
-A seta amarela acima da linha de tempo representa a sua vista atual, baseada no horário do dia. Clique e arraste para ver como o seu dia será animado. Você pode adicionar ou deletar os quadros-chave pressionando os botões Adicionar Chave e Deletar chave ao lado direito da linha de tempo.
-
-Você pode configurar a posição do tempo de um quadro-chave arrastando-o pela linha do tempo, ou configurando manualmente no quadro de configurações do seu quadro-chave. Será possível a você associar o seu quadro-chave a este respectivo padrão WindLight.
-
-A duração do ciclo determina a duração geral do &quot;dia&quot;. Configurá-la para um valor baixo (por exmplo, 2 min.) quer dizer que a linha do tempo de 24 horas será animada completamente em apenas dois minutos reais! Assim que estiver satisfeito com a linha do tempo e o ciclo dos quadros-chave, use os botões Play e Stop para uma prévia de como ficará o resultado. Lembre-se, você também pode utilizar a seta amarela indicadora do tempo acima da linha do tempo para ver o ciclo animado interativamente. Usando o botão do tempo da popriedade irá sincronizar a duração do seu dia ao ciclo diário da propriedade.
-
-Assim que estiver satisfeito com o seu ciclo diário, você pode salvá-lo ou carregá-lo através dos botões Salvar Dia Teste e Carregar Dia Teste. Note que, por enquanto, nós permitimos apenas um Ciclo de dia.
- </notification>
-
- <notification
-
- name="HelpBlueHorizon"
- >
-Use os cursores Vermelho/Verde/Azul ( Red/Green/Blue -RGB) para ajustar as cores do céu. Você também pode usar o controle de Intensidade (I) para mover os três controles RGB simultaneamente.
- </notification>
-
- <notification
-
- name="HelpHazeHorizon"
- >
-Haze Horizon é um dos parâmetros mais úteis para ajuste global de exposição de luz na cena. Ele é eficaz para simular diversas configurações de exposição, tais como configurações para super-exposição do sol e escuros halos de Iris.
- </notification>
-
- <notification
-
- name="HelpBlueDensity"
- >
-A densidade global azul afeta a saturação da cor do céu e nevoeiro. Se você mover o controle gradual de intensidade (I) para a direita, as cores vão se tornar mais brilhantes e vibrantes. Se você movê-lo totalmente para a esquerda, as cores perdem intensidade e cor, eventualmente chegando a preto e branco. Se pretende um ajuste fino do equilíbrio de cor do céu, você pode controlar os diversos elementos da saturação, utilizando os controles graduais para vermelho / verde / azul (RGB).
- </notification>
-
- <notification
-
- name="HelpHazeDensity"
- >
-Densidade de Poeira controla o nível de fumaça, poeira cinza na atmosfera. Eficaz para simular cenas com altos níveis de poeira e poluentes. É também efetivo em simular névoa e nevoeiro.
- </notification>
-
- <notification
-
- name="HelpDensityMult"
- >
-O Multiplicador de Densidade pode ser usado para afetar a densidade atmosférica global. Com definições mais baixas, ele cria uma sensação de &quot;ar rarefeito&quot; e em definições mais altas, ele cria um efeito mais denso, mais esfumaçado.
- </notification>
-
- <notification
-
- name="HelpDistanceMult"
- >
-Ajusta como a distância no WindLight é percebida. Um valor zero efetivamente desativa a influência do WindLight sobre terrenos e objetos. Valores superiores a 1 simulam os efeitos atmosféricos mais espessos a maiores distâncias.
- </notification>
-
- <notification
-
- name="HelpMaxAltitude"
- >
-Max Altitude ajusta os cálculos de performance de altitude do WindLight, quando computa sua iluminação atmosférica. Em períodos vespertinos do dia, é útil para ajustar a &quot;profundidade&quot; de como o pôr-do-sol aparece.
- </notification>
-
- <notification
-
- name="HelpSunlightColor"
- >
-Ajustar a cor e intensidade da luz direta na cena.
- </notification>
-
- <notification
-
- name="HelpSunAmbient"
- >
-Ajusta a cor e a intensidade da luz ambiente atmosférica na cena.
- </notification>
-
- <notification
-
- name="HelpSunGlow"
- >
-O controle gradual de Tamanho controla o tamanho do sol.
-O controle gradual de Foco controla o quanto o sol aparecerá desfocado no céu.
- </notification>
-
- <notification
-
- name="HelpSceneGamma"
- >
-Ajusta a distribuição na tela de luz e escuridão.
- </notification>
-
- <notification
-
- name="HelpStarBrightness"
- >
-Ajusta o brilho das estrelas no céu.
- </notification>
-
- <notification
-
- name="HelpTimeOfDay"
- >
-Controla a localização do sol no céu. Semelhante a elevação.
- </notification>
-
- <notification
-
- name="HelpEastAngle"
- >
-Controla a localização do sol no céu.
-Similar ao azimute.
- </notification>
-
- <notification
-
- name="HelpCloudColor"
- >
-Edita as cores das nuvens, É normalmente recomendado manter o tom esbranquiçado, mas hey! Você pode se divertir se desejar.
- </notification>
-
- <notification
-
- name="HelpCloudDetail"
- >
-Controla os detalhes da camada de imagem superior na imagem de nuvem principal. X e Y controla sua posição. D (Densidade) controla o quão cheio ou estratificada as nuvens devem aparecer.
- </notification>
-
- <notification
-
- name="HelpCloudDensity"
- >
-Permite que você controle a posição das nuvens com os cursores X e Y e a densidade deles com o cursor D.
- </notification>
-
- <notification
-
- name="HelpCloudCoverage"
- >
-Controla o quanto as nuvens cobrem o céu.
- </notification>
-
- <notification
-
- name="HelpCloudScale"
- >
-Controla o dimensionamento da imagem de nuvens na cúpula celeste.
- </notification>
-
- <notification
-
- name="HelpCloudScrollX"
- >
-Controla a velocidade das nuvens que se movem na direção X.
- </notification>
-
- <notification
-
- name="HelpCloudScrollY"
- >
-Controla a velocidade que as núvens se movem na direção Y.
- </notification>
-
- <notification
-
- name="HelpClassicClouds"
- >
-Marque esta check box para permitir a reprodução das nuvens clássicas mais velhas do Second Life, além das nuvens WindLight.
- </notification>
-
- <notification
-
- name="HelpWaterFogColor"
- >
-Escolhe a cor da neblina subaquática.
- </notification>
-
- <notification
-
- name="HelpWaterFogDensity"
- >
-Controla a densidade da neblina da água e a distância de visibilidade debaixo d&apos;água.
- </notification>
-
- <notification
-
- name="HelpUnderWaterFogMod"
- >
-Modifica o efeito do expoente de densidade de Neblina para controlar até onde você pode ver quando o seu avatar está imerso.
- </notification>
-
- <notification
-
- name="HelpWaterGlow"
- >
-Controla o quanto a superfície da água deve brilhar.
- </notification>
-
- <notification
-
- name="HelpWaterNormalScale"
- >
-Controla o escalonamento das três marolas que compõem a água.
- </notification>
-
- <notification
-
- name="HelpWaterFresnelScale"
- >
-Controla o quanto de luz será refletido por ângulos diferentes.
- </notification>
-
- <notification
-
- name="HelpWaterFresnelOffset"
- >
-Controla o quanto da intensidade da luz é refletida.
- </notification>
-
- <notification
-
- name="HelpWaterScaleAbove"
- >
-Controla o quanto de luz será refratado olhando acima da superfície da água.
- </notification>
-
- <notification
-
- name="HelpWaterScaleBelow"
- >
-Controla o quanto de luz sera refratado visto debaixo da superfície da água.
- </notification>
-
- <notification
-
- name="HelpWaterBlurMultiplier"
- >
-Controla como ondas e reflexos são misturados.
- </notification>
-
- <notification
-
- name="HelpWaterNormalMap"
- >
-Controla o mapeamento normal em todos os níveis da água para determinar reflexões / refrações.
- </notification>
-
- <notification
-
- name="HelpWaterWave1"
- >
-Controla aonde e com que velocidade a versão em escala maior do mapa normal se move nas direções X e Y .
- </notification>
-
- <notification
-
- name="HelpWaterWave2"
- >
-Controla onde e a velocidade com que o mapa normal em escala menor se move nas direções X e Y.
- </notification>
-
- <notification
-
- name="NewSkyPreset"
- >
-Me dê o nome para o novo céu.
- <form name="form">
- <input name="message" type="text">
-Novo padrão
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- name="ExistsSkyPresetAlert"
- >
-Este padrão já existe!
- </notification>
-
- <notification
-
- name="NewWaterPreset"
- >
-Dê o nome para o novo padrão de água.
- <form name="form">
- <input name="message" type="text">
-Nova Apresentação
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- name="ExistsWaterPresetAlert"
- >
-Este padrão já existe!
- </notification>
-
- <notification
-
- name="WaterNoEditDefault"
- >
-Você não pode editar ou apagar um padrão predefinido.
- </notification>
-
- <notification
-
- name="ChatterBoxSessionStartError"
- >
-Não foi possível iniciar uma nova sessão bate-papo com [RECIPIENT].
-[REASON]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ChatterBoxSessionEventError"
- >
-[EVENT]
-[REASON]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ForceCloseChatterBoxSession"
- >
-Sua sessão de bate-papo com [NAME] tem que fechar.
-[REASON]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="Cannot_Purchase_an_Attachment"
- >
-Os itens não podem ser comprados enquanto forem parte de um anexo.
- </notification>
-
- <notification
-
- label="Sobre o pedido de Permissão de Débito"
- name="DebitPermissionDetails"
- >
-Conceder esse pedido dá permissão ao script para tirar Linden dólares (L$) de sua conta. Para revogar esta permissão, o proprietário do objeto deve excluir o objeto ou resetar os scripts dele.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="AutoWearNewClothing"
- >
-Você gostaria de vestir automaticamente o item de vestuário que você criar?
- <usetemplate
- ignoretext="Automaticamente vestir novo vestuário"
- name="okcancelignore"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="NotAgeVerified"
- >
-Você precisa ter a idade verificada para acessar este lote.
-Gostaria de visitar o site do Second Life para verificação de idade?
-
-[_URL]
- <url option="0" name="url">
-
- https://secondlife.com/account/verification.php
- </url>
- <usetemplate
- ignoretext="Alertar sobre a falta de verificação de idade"
- name="okcancelignore"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="Cannot enter parcel: no payment info on file"
- >
-Este lote exige que você tenha informações de pagamento no arquivo antes de poder acessá-lo.
-Gostaria de visitar o site do Second Life para configurá-lo?
-
-[_URL]
- <url option="0" name="url">
-
- https://secondlife.com/account/
- </url>
- <usetemplate
- ignoretext="Avisar sobre a falta de informação de pagamento."
- name="okcancelignore"
- notext="Não"
- yestext="Sim"/>
- </notification>
-
- <notification
-
- name="MissingString"
- >
-A sequência [STRING_NAME] está faltando do strings.xml
- </notification>
-
- <notification
-
- name="SystemMessageTip"
- >
-[MESSAGE]
- </notification>
-
- <notification
-
- name="Cancelled"
- >
-Cancelado
- </notification>
-
- <notification
-
- name="CancelledSit"
- >
-Cancelada a ação de sentar
- </notification>
-
- <notification
-
- name="CancelledAttach"
- >
-Cancelado Anexar
- </notification>
-
- <notification
-
- name="ReplacedMissingWearable"
- >
-Substituindo partes de roupa/corpo perdidas com o padrão
- </notification>
-
- <notification
-
- name="GroupNotice"
- >
-Assunto: [SUBJECT], Mensagem: [MESSAGE]
- </notification>
-
- <notification
-
- name="FriendOnline"
- >
-[FIRST] [LAST] está Online
- </notification>
-
- <notification
-
- name="FriendOffline"
- >
-[FIRST] [LAST] está Offline
- </notification>
-
- <notification
-
- name="AddSelfFriend"
- >
-Você não pode adicionar a si mesmo como amigo
- </notification>
-
- <notification
-
- name="UploadingAuctionSnapshot"
- >
-Fazendo o upload das fotos do site da web e do mundo...
-(Leva cerca de 5 minutos)
- </notification>
-
- <notification
-
- name="UploadPayment"
- >
-Você paga L$[AMOUNT] para fazer o upload.
- </notification>
-
- <notification
-
- name="UploadWebSnapshotDone"
- >
-Concluído o upload da foto do site da web
- </notification>
-
- <notification
-
- name="UploadSnapshotDone"
- >
-O upload da foto foi realizado
- </notification>
-
- <notification
-
- name="TerrainDownloaded"
- >
-Feito o download de Terrain.raw
- </notification>
-
- <notification
-
- name="GestureMissing"
- >
-O Gesto [NAME] não se encontra na base de dados
- </notification>
-
- <notification
-
- name="UnableToLoadGesture"
- >
-Impossível de carregar o gesto [NAME].
-Por favor, tente novamente.
- </notification>
-
- <notification
-
- name="LandmarkMissing"
- >
-O landmark foi perdido na base de dados
- </notification>
-
- <notification
-
- name="UnableToLoadLandmark"
- >
-Impossível carregar o landmark. Por favor, tente de novo.
- </notification>
-
- <notification
-
- name="CapsKeyOn"
- >
-Seu botão CAPS LOCK está ativado.
-Como isto afeta a senha digitada, você provavelmente desejará desativá-lo.
- </notification>
-
- <notification
-
- name="NotecardMissing"
- >
-Notecard foi perdido no banco de dados.
- </notification>
-
- <notification
-
- name="NotecardNoPermissions"
- >
-Permissões insuficientes para visualizar o notecard
- </notification>
-
- <notification
-
- name="RezItemNoPermissions"
- >
-Sem permissões suficientes para criar objetos.
- </notification>
-
- <notification
-
- name="UnableToLoadNotecard"
- >
-Impossível carregar o notecard.
-Por favor, tente novamente.
- </notification>
-
- <notification
-
- name="ScriptMissing"
- >
-O script foi perdido no banco de dados.
- </notification>
-
- <notification
-
- name="ScriptNoPermissions"
- >
-Permissões insuficientes para visualizar o script.
- </notification>
-
- <notification
-
- name="UnableToLoadScript"
- >
-Impossível carregar o script. Por favor, tente novamente.
- </notification>
-
- <notification
-
- name="IncompleteInventory"
- >
-Os conteúdos completos que vocë está oferecendo, não estão ainda disponíveis localmente. Por favor, tente oferecê-los novamente em um minuto.
- </notification>
-
- <notification
-
- name="CannotModifyProtectedCategories"
- >
-Você não pode modificar categorias protegidas.
- </notification>
-
- <notification
-
- name="CannotRemoveProtectedCategories"
- >
-Você não pode remover categorias protegidas.
- </notification>
-
- <notification
-
- name="OfferedCard"
- >
-Você ofereceu um cartão de visita a [FIRST] [LAST]
- </notification>
-
- <notification
-
- name="UnableToBuyWhileDownloading"
- >
-Impossível comprar o objeto enquanto ele está sendo carregado.
-Por favor, tente novamente.
- </notification>
-
- <notification
-
- name="UnableToLinkWhileDownloading"
- >
-Impossível unir o objeto enquanto ele está sendo carregado.
-Por favor, tente novamente.
- </notification>
-
- <notification
-
- name="CannotBuyObjectsFromDifferentOwners"
- >
-Impossível comprar objetos de diferentes compradores ao mesmo tempo.
-Por favor, compre apenas um objeto.
- </notification>
-
- <notification
-
- name="ObjectNotForSale"
- >
-Este objeto não está a venda.
- </notification>
-
- <notification
-
- name="EnteringGodMode"
- >
-Entrando em god mode, nível [LEVEL]
- </notification>
-
- <notification
-
- name="LeavingGodMode"
- >
-Saindo do god mode, nível [LEVEL]
- </notification>
-
- <notification
-
- name="CopyFailed"
- >
-A cópia falhou porque você não tem permissão para copiar.
- </notification>
-
- <notification
-
- name="InventoryAccepted"
- >
-[NAME] aceitou sua oferta de inventário.
- </notification>
-
- <notification
-
- name="InventoryDeclined"
- >
-[NAME] rejeitou sua oferta de inventário.
- </notification>
-
- <notification
-
- name="ObjectMessage"
- >
-[NAME]: [MESSAGE]
- </notification>
-
- <notification
-
- name="CallingCardAccepted"
- >
-Seu cartão de visita foi aceito
- </notification>
-
- <notification
-
- name="CallingCardDeclined"
- >
-Seu cartão de visita foi negado.
- </notification>
-
- <notification
-
- name="TeleportToLandmark"
- >
-Agora que você chegou à mainland, você pode se teletransportar para locais como &apos;[NAME]&apos; clicando no botão de Inventário, no canto direito inferior de sua tela, e selecionando a pasta Landmarks.
-Dê um duplo-clique na landmark e clique Teletransportar para viajar para o local desejado.
- </notification>
-
- <notification
-
- name="TeleportToPerson"
- >
-Agora que você chegou à mainland, você pode contatar residentes como &apos;[NAME]&apos; clicando no botão de Inventário, canto direito inferior de sua tela, e selecionando a pasta Cartões de Visita.
-Dê um duplo-clique num cartão de visita e em Mensagem Instantânea, digite sua mensagem.
- </notification>
-
- <notification
-
- name="CantSelectLandFromMultipleRegions"
- >
-Impossível selecionar terra nas fronteiras do servidor. Tente selecionar um pedaço menor de terra.
- </notification>
-
- <notification
-
- name="GroupVote"
- >
-[NAME] propõe que você vote:
-[MESSAGE]
- <form name="form">
- <button
-
- name="VoteNow"
- text="Vote agora"/>
- <button
-
- name="Later"
- text="Depois"/>
- </form>
- </notification>
-
- <notification
-
- name="SystemMessage"
- >
-[MESSAGE]
- </notification>
-
- <notification
-
- name="EventNotification"
- >
-Notificação de evento:
-
-[NAME]
-[DATE]
- <form name="form">
- <button
-
- name="Teleport"
- text="Teletransporte"/>
- <button
-
- name="Description"
- text="Descrição"/>
- <button
-
- name="Cancel"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- name="TransferObjectsHighlighted"
- >
-Todos os objetos deste terreno que serão transferidos ao seu comprador, estão realçados agora.
- <form name="form">
- <button
-
- name="Done"
- text="Feito"/>
- </form>
- </notification>
-
- <notification
-
- name="DeactivatedGesturesTrigger"
- >
-Gestos desativados com o mesmo comando:
-[NAMES]
- </notification>
-
- <notification
-
- name="NoQuickTime"
- >
-O software QuickTime da Apple parece não estar instalado em seu sistema.
-Se você deseja ver fluxo de mídia em terrenos que aceitem isso, você deverá ir ao site do QickTime (http://www.apple.com/quicktime) e instalar o player do QuickTime.
- </notification>
-
- <notification
-
- name="OwnedObjectsReturned"
- >
-Os objetos que lhe pertencem no lote selecionado do terreno, voltaram ao seu inventário.
- </notification>
-
- <notification
-
- name="OtherObjectsReturned"
- >
-Os objetos no lote selecionado de terra que pertence a [FIRST] [LAST], voltaram ao seu inventário.
- </notification>
-
- <notification
-
- name="OtherObjectsReturned2"
- >
-Os objetos no lote de terra selecionado que pertence ao residente &apos;[NAME]&apos;, voltaram aos seus donos.
- </notification>
-
- <notification
-
- name="GroupObjectsReturned"
- >
-Os objetos no lote selecionado de terreno compartilhado pelo grupo [GROUPNAME], voltaram para os inventários de seus donos.
-Objetos trasnferíveis dados ao grupo, voltaram aos seus donos anteriores.
-Objetos não transferíveis dados ao grupo foram deletados.
- </notification>
-
- <notification
-
- name="UnOwnedObjectsReturned"
- >
-Os objetos no lote selecionado que NÃO são seus, voltaram aos seus donos.
- </notification>
-
- <notification
-
- name="NotSafe"
- >
-Esta terra permite que você sofra ataques.
-Você pode ser ferido aqui. Se você morrer, você será teletransportado à sua posição inicial.
- </notification>
-
- <notification
-
- name="NoFly"
- >
-Este terreno tem a opção Voar desabilitada.
-Ou seja, você não pode voar aqui.
- </notification>
-
- <notification
-
- name="PushRestricted"
- >
-Esta terra é “Não empurre”.
-Você não pode empurrar os outros, a não ser que seja o proprietário da terra.
- </notification>
-
- <notification
-
- name="NoVoice"
- >
-O uso de voz está desabilitado nesta terra.
- </notification>
-
- <notification
-
- name="NoBuild"
- >
-Este terreno tem a opção de construir desabilitada, ou seja, você não pode criar objetos aqui.
- </notification>
-
- <notification
-
- name="ScriptsStopped"
- >
-Um administrador não permitiu scripts temporariamente nesta região.
- </notification>
-
- <notification
-
- name="ScriptsNotRunning"
- >
-Esta região não roda nenhum script.
- </notification>
-
- <notification
-
- name="NoOutsideScripts"
- >
-Neste terreno, nenhum script funcionará, a não ser os scripts do próprio dono da terra.
- </notification>
-
- <notification
-
- name="ClaimPublicLand"
- >
-Pode apenas reclamar terreno público na região em que você está.
- </notification>
-
- <notification
-
- name="ObjectGiveItem"
- >
-Um objeto nomeado [OBJECTFROMNAME] do dono [FIRST] [LAST] deu a você [OBJECTTYPE] nomeado &apos;[OBJECTNAME]&apos;.
- <form name="form">
- <button
-
- name="Keep"
- text="Segure"/>
- <button
-
- name="Discard"
- text="Descarte"/>
- <button
-
- name="Mute"
- text="Mudo"/>
- </form>
- </notification>
-
- <notification
-
- name="ObjectGiveItemUnknownUser"
- >
-Um objeto nomeado [OBJECTFROMNAME], de dono desconhecido, deu a você um [OBJECTTYPE] nomeado [OBJECTNAME].
- <form name="form">
- <button
-
- name="Keep"
- text="Segure"/>
- <button
-
- name="Discard"
- text="Descarte"/>
- <button
-
- name="Mute"
- text="Mudo"/>
- </form>
- </notification>
-
- <notification
-
- name="UserGiveItem"
- >
-[NAME]deu a voce um [OBJECTTYPE] nomeado &apos;[OBJECTNAME]&apos;.
- <form name="form">
- <button
-
- name="Keep"
- text="Mantenha"/>
- <button
-
- name="Discard"
- text="Descarte"/>
- <button
-
- name="Mute"
- text="Mudo"/>
- </form>
- </notification>
-
- <notification
-
- name="GodMessage"
- >
-[NAME]
-[MESSAGE]
- </notification>
-
- <notification
-
- name="JoinGroup"
- >
-[MESSAGE]
- <form name="form">
- <button
-
- name="Join"
- text="Entre"/>
- <button
-
- name="Decline"
- text="Saia"/>
- <button
-
- name="Info"
- text="Informações"/>
- </form>
- </notification>
-
- <notification
-
- name="TeleportOffered"
- >
-[NAME] ofereceu um teletransporte para seu local:
-
-[MESSAGE]
- <form name="form">
- <button
-
- name="Teleport"
- text="Teletransporte"/>
- <button
-
- name="Cancel"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- name="GotoURL"
- >
-[MESSAGE]
-[URL]
- <form name="form">
- <button
-
- name="Later"
- text="Depois"/>
- <button
-
- name="GoNow..."
- text="Vá agora"/>
- </form>
- </notification>
-
- <notification
-
- name="OfferFriendship"
- >
-[NAME] está lhe oferecendo sua amizade
-
-[MESSAGE]
-
-(Por definição vocês serão capazes de ver um ao outro online)
- <form name="form">
- <button
-
- name="Accept"
- text="Aceitar"/>
- <button
-
- name="Decline"
- text="Recusar"/>
- </form>
- </notification>
-
- <notification
-
- name="OfferFriendshipNoMessage"
- >
-[NAME] está lhe oferecendo sua amizade.
-
-(Por definição vocês serão capazes de ver um ao outro online)
- <form name="form">
- <button
-
- name="Accept"
- text="Aceitar"/>
- <button
-
- name="Decline"
- text="Recusar"/>
- </form>
- </notification>
-
- <notification
-
- name="FriendshipAccepted"
- >
-[NAME] aceitou seu convite de amizade.
- </notification>
-
- <notification
-
- name="FriendshipDeclined"
- >
-[NAME] recusou seu convite de amizade
- </notification>
-
- <notification
-
- name="OfferCallingCard"
- >
-[FIRST] [LAST] está oferecendo seu cartão de visita.
-Isto adicionará uma anotação em seu inventário, de modo que você possa mandar rapidamente uma IM para este residente.
- <form name="form">
- <button
-
- name="Accept"
- text="Aceitar"/>
- <button
-
- name="Decline"
- text="Recusar"/>
- </form>
- </notification>
-
- <notification
-
- name="RegionRestartMinutes"
-
-
- >
-A região será reiniciada em [MINUTES] minutos.
-Se permanecer nesta região, você será desconectado.
- </notification>
-
- <notification
-
- name="RegionRestartSeconds"
-
-
- >
-Região será reiniciada em [SECONDS] segundos.
-Se permanecer nesta região, você será desconectado.
- </notification>
-
- <notification
-
- name="LoadWebPage"
- >
-Carregar página da web [URL]?
-
-[MESSAGE]
-
-Do objeto: [OBJECTNAME], dono: [NAME]?
- <form name="form">
- <button
-
- name="Gotopage"
- text="Vá para a página"/>
- <button
-
- name="Cancel"
- text="Cancelar"/>
- </form>
- </notification>
-
- <notification
-
- name="FailedToFindWearableUnnamed"
- >
-Falhou ao procurar [TYPE] no banco de dados.
- </notification>
-
- <notification
-
- name="FailedToFindWearable"
- >
-Falhou ao procurar [TYPE] nomeado [DESC] no banco de dados.
- </notification>
-
- <notification
-
- name="ScriptQuestion"
- >
-&apos;[OBJECTNAME]&apos;, um objeto pertencente a &apos;[NAME]&apos;, gostaria de:
-
-[QUESTIONS]
-Está OK?
- <form name="form">
- <button
-
- name="Yes"
- text="Sim"/>
- <button
-
- name="No"
- text="Não"/>
- <button
-
- name="Mute"
- text="Mudo"/>
- </form>
- </notification>
-
- <notification
-
- name="ScriptQuestionCaution"
- >
-&apos;[OBJECTNAME]&apos;, um objeto de &apos;[NAME]&apos;, gostaria de:
-
-[QUESTIONS]
-Se você não confia neste objeto ou em seu criador, você deveria negar o pedido. Para informações adicionais clique no botão Detalhes.
-
-Autorizar este pedido?
- <form name="form">
- <button
-
- name="Grant"
- text="Autorizar"/>
- <button
-
- name="Deny"
- text="Negar"/>
- <button
-
- name="Details"
- text="Detalhes..."/>
- </form>
- </notification>
-
- <notification
-
- name="ScriptDialog"
- >
-[FIRST] [LAST]&apos;s &apos;[TITLE]&apos;
-[MESSAGE]
- <form name="form">
- <button
-
- name="Ignore"
- text="Ignorar"/>
- </form>
- </notification>
-
- <notification
-
- name="ScriptDialogGroup"
- >
-[GROUPNAME]&apos;s &apos;[TITLE]&apos;
-[MESSAGE]
- <form name="form">
- <button
-
- name="Ignore"
- text="Ignorar"/>
- </form>
- </notification>
-
- <notification
-
- name="FirstBalanceIncrease"
- >
-Você recebeu uma quantia de L$[AMOUNT].
-Objetos e outros usuários podem dar L$ a você.
-Seu saldo é mostrado no canto superior direito da tela.
- </notification>
-
- <notification
-
- name="FirstBalanceDecrease"
- >
-Você pagou L$[AMOUNT].
-O seu balanço de dinheiro está sendo mostrado no canto superior direito da tela.
- </notification>
-
- <notification
-
- name="FirstSit"
- >
-Você está sentado.
-Use as setas (ou AWSD) para mudar a visão.
-Clique em &apos;Levantar&apos; para levantar.
- </notification>
-
- <notification
-
- name="FirstMap"
- >
-Clique e arraste para movimentar o mapa.
-Dê um duplo clique para teletransportar-se.
-Use os controles à direita para achar coisas e mostrar fundos diferentes.
- </notification>
-
- <notification
-
- name="FirstBuild"
- >
-Você pode construir novos objetos em algumas áreas do [SECOND_LIFE].
-Use as ferramentas acima, à esquerda para construir e tente manter apertadas as teclas Ctrl ou Alt para mudar rapidamente as ferramentas.
-Aperte ESC para parar de construir.
- </notification>
-
- <notification
-
- name="FirstLeftClickNoHit"
- >
-Clicando com esquerdo, você interage com os objetos especiais.
-Se o ponteiro do mouse mudar a uma mão, você pode interagir com o objeto.
-Clique com o direito que será mostrado sempre um menu das ações que você pode fazer.
- </notification>
-
- <notification
-
- name="FirstTeleport"
- >
-Esta região não permite teletransporte ponto-a-ponto. Assim, você foi teletransportado para o telehub mais próximo.
-Seu destino está assinalado com um farol alto.
-Siga a flecha vermelha até o farol, ou clique nela para apagar o farol.
- </notification>
-
- <notification
-
- name="FirstOverrideKeys"
- >
-Suas chaves do movimento estão sendo seguras agora por um objeto.
-Tente as teclas de setas ou AWSD para ver o que elas fazem.
-Alguns objetos (como armas) requerem que você passe para mouselook para usá-los.
-Pressione &apos;M&apos; para fazer isto.
- </notification>
-
- <notification
-
- name="FirstAppearance"
- >
-Você está editando sua aparência.
-Para girar e ver em zoom, use as teclas de setas.
-Quando terminar, aperte &apos;Salvar Tudo&apos; para salvar sua aparência e sair.
-Você pode editar sua aparência quantas vezes quiser.
- </notification>
-
- <notification
-
- name="FirstInventory"
- >
-Este é o seu inventário, que contém objetos, notecards, roupas e outras coisas suas.
-* Para vestir um objeto ou uma pasta completa, arraste-o para si mesmo(a).
-* Para trzer um objeto ao mundo, arraste-o ao chão.
-* Para ler um notecard, dê um duplo-click nele.
- </notification>
-
- <notification
-
- name="FirstSandbox"
- >
-Esta é a região conhecida como sandbox.
-Os objetos que você constrói aqui podem ser deletados depois que você deixa a área.
-As sandboxes são limpas de forma periódica.
-Por favor, veja a informação no alto da tela, próxima ao nome da região.
-As regiões de sandbox não são comuns e são marcadas com símbolos.
- </notification>
-
- <notification
-
- name="FirstFlexible"
- >
-Este objeto tem a propriedade flexível.
-Objetos flexíveis não podem ser físicos e devem ser fantasmas até que a caixa de verificação seja desmarcada.
- </notification>
-
- <notification
-
- name="FirstDebugMenus"
- >
-Você ativou o menu Avançado.
-Este menu contém funcionalidades úteis para desenvolvedores debugarem o Second Life.
-Para mostrar esse menu no Windows pressione Ctrl-Alt-D. No Mac pressione Cmd-Opt-Shift-D.
- </notification>
-
- <notification
-
- name="FirstSculptedPrim"
- >
-Você está editando uma primitiva esculpida.
-Primitivas esculpidas requerem uma textura especial para especificar suas formas.
-Você encontrará exemplos dessas texturas na Biblioteca do Inventário.
- </notification>
-
- <notification
-
- name="FirstMedia"
- >
-Você começou a tocar uma mídia. Mídias podem ser autorizadas a iniciar automaticamente se você assim escolher na janela de Preferências, sob Áudio/Vídeo. Atente para o risco de segurança que pode haver ao acessar websites de mídia que você não confia.
- </notification>
-
- <notification
-
- name="MaxListSelectMessage"
- >
-Você pode selecionar até [MAX_SELECT] itens desta lista.
- </notification>
-
- <notification
-
- name="VoiceInviteP2P"
- >
-[NAME] está lhe convidando para uma conversa com voz.
-Clique Aceitar para atender, ou Recusar para recusar o convite. Clique Mudo para calar quem está chamando.
- <form name="form">
- <button
-
- name="Accept"
- text="Aceitar"/>
- <button
-
- name="Decline"
- text="Recusar"/>
- <button
-
- name="Mute"
- text="Mudo"/>
- </form>
- </notification>
-
- <notification
-
- name="AutoUnmuteByIM"
- >
-[FIRST] [LAST] recebeu uma Mensagem Instantânea sua e automaticamente não está mais no modo mudo.
- </notification>
-
- <notification
-
- name="AutoUnmuteByMoney"
- >
-[FIRST] [LAST] recebeu pagamento seu e automaticamente não está mais no modo mudo.
- </notification>
-
- <notification
-
- name="AutoUnmuteByInventory"
- >
-[FIRST] [LAST] recebeu inventário seu e automaticamente não está mais mudo.
- </notification>
-
- <notification
-
- name="VoiceInviteGroup"
- >
-[NAME] juntou-se a uma conversa com voz do grupo [GROUP].
-Clique Aceitar para atender, ou Recusar para recusar o convite. Clique Mudo para calar quem está chamando.
- <form name="form">
- <button
-
- name="Accept"
- text="Aceitar"/>
- <button
-
- name="Decline"
- text="Recusar"/>
- <button
-
- name="Mute"
- text="Mudo"/>
- </form>
- </notification>
-
- <notification
-
- name="VoiceInviteAdHoc"
- >
-[NAME] juntou-se a uma chamada de Conferência com voz...
-Clique Aceitar para juntar-se à chamada ou Recusar para recusar o convite. Clique Mudo para calar este usuário.
- <form name="form">
- <button
-
- name="Accept"
- text="Aceitar"/>
- <button
-
- name="Decline"
- text="Recusar"/>
- <button
-
- name="Mute"
- text="Mudo"/>
- </form>
- </notification>
-
- <notification
-
- name="InviteAdHoc"
- >
-[NAME] está lhe convidando para uma conversa em conferência...
- Clique Aceitar para se juntar à conversa, ou Recusar para recusar o convite. Clique Mudo para calar este usuário.
- <form name="form">
- <button
-
- name="Accept"
- text="Aceitar"/>
- <button
-
- name="Decline"
- text="Recusar"/>
- <button
-
- name="Mute"
- text="Mudo"/>
- </form>
- </notification>
-
- <notification
-
- name="VoiceChannelFull"
- >
-A chamada de voz a qual você está tentando juntar-se, [VOICE_CHANNEL_NAME], atingiu sua máxima capacidade. Favor tentar novamente mais tarde.
- </notification>
-
- <notification
-
- name="ProximalVoiceChannelFull"
- >
-Desculpe-nos. Esta área atingiu seu limite de capacidade para conversas com voz. Favor tentar usar voz em outra área.
- </notification>
-
- <notification
-
- name="VoiceChannelDisconnected"
- >
-Você foi desconectado de [VOICE_CHANNEL_NAME]. Voce será reconectado agora à Conversa com voz local.
- </notification>
-
- <notification
-
- name="VoiceChannelDisconnectedP2P"
- >
-[VOICE_CHANNEL_NAME] desligou a chamada. Voce será reconectado agora à Conversa com voz local.
- </notification>
-
- <notification
-
- name="P2PCallDeclined"
- >
-[VOICE_CHANNEL_NAME] recusou sua chamada. Voce será reconectado agora à Conversa com voz local.
- </notification>
-
- <notification
-
- name="P2PCallNoAnswer"
- >
-[VOICE_CHANNEL_NAME] não está disponível para aceitar sua chamada. Voce será reconectado agora à Conversa com voz local.
- </notification>
-
- <notification
-
- name="VoiceChannelJoinFailed"
- >
-Falha na conexão com [VOICE_CHANNEL_NAME], tente novamente mais tarde. Voce será reconectado agora à Conversa com voz local.
- </notification>
-
- <notification
-
- name="VoiceLoginRetry"
- >
-Estamos criando uma canal de voz para você. Isto pode levar até um minuto.
- </notification>
-
- <notification
-
- name="Cannot enter parcel: not a group member"
- >
-Você não pode entrar nessa terra, você não é membro do grupo autorizado.
- </notification>
-
- <notification
-
- name="Cannot enter parcel: banned"
- >
-Você não pode entrar nessa terra, você foi banido.
- </notification>
-
- <notification
-
- name="Cannot enter parcel: not on access list"
- >
-Você não pode entrar nessa terra, você não está na lista de acesso.
- </notification>
-
- <notification
-
- name="VoiceNotAllowed"
- >
-Você não tem permissão para se conectar à conversa com voz de [VOICE_CHANNEL_NAME].
- </notification>
-
- <notification
-
- name="VoiceCallGenericError"
- >
-Ocorreu um erro enquanto você tentava se conectar à conversa de voz de [VOICE_CHANNEL_NAME]. Favor tentar novamente mais tarde.
- </notification>
-
- <notification
-
- name="ServerVersionChanged"
- >
-A região em que você entrou está rodando uma versão diferente de simulador. Clique aqui para mais detalhes.
- </notification>
-
- <notification
-
- name="UnableToOpenCommandURL"
- >
-A URL que vocÊ clicou não pode ser aberta no navegador web.
- </notification>
-
- <global name="UnsupportedCPU">
-- A velocidade da sua CPU não suporta os requisitos mínimos exigidos.
- </global>
-
- <global name="UnsupportedGLRequirements">
-Você não parece ter os requisitos de hardware recomendados para rodar o Second Life. O Second Life exige uma placa gráfica OpenGL que tem apoio a multi- texturas. Se este for o caso, você pode se certificar de que tem os drivers mais recentes para sua placa gráfica, e os patches e pacotes de serviços para seu sistema operacional.
-
-Se continuar com problemas, por favor visite: http://www.secondlife.com/support
- </global>
-
- <global name="UnsupportedCPUAmount">
-796
- </global>
-
- <global name="UnsupportedRAMAmount">
-510
- </global>
-
- <global name="UnsupportedGPU">
-- A sua placa de vídeo não atende os requisitos mínimos exigidos.
- </global>
-
- <global name="UnsupportedRAM">
-- A memória do seu sistema não suporta os requisitos mínimos exigidos.
- </global>
-
- <global name="PermYes">
-Sim
- </global>
-
- <global name="PermNo">
-Não
- </global>
-</notifications>
-
+<?xml version="1.0" encoding="utf-8"?>
+<notifications>
+ <global name="skipnexttime">
+ Não exibir isto novamente
+ </global>
+ <global name="alwayschoose">
+ Sempre escolher esta opção
+ </global>
+ <template name="okbutton">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ </form>
+ </template>
+
+ <template name="okignore">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <ignore text="$ignoretext"/>
+ </form>
+ </template>
+
+ <template name="okcancelbuttons">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <button
+ name="Cancel"
+ text="$notext"/>
+ </form>
+ </template>
+
+ <template name="okcancelignore">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <button
+ name="Cancel"
+ text="$notext"/>
+ <ignore text="$ignoretext"/>
+ </form>
+ </template>
+
+ <template name="okhelpbuttons">
+ <form>
+ <button
+ name="OK"
+ text="$yestext"/>
+ <button
+ name="Help"
+ text="$helptext"/>
+ </form>
+ </template>
+
+ <template name="yesnocancelbuttons">
+ <form>
+ <button
+ name="Yes"
+ text="$yestext"/>
+ <button
+ name="No"
+ text="$notext"/>
+ <button
+ name="Cancel"
+ text="$canceltext"/>
+ </form>
+ </template>
+ <notification functor="GenericAcknowledge" label="Mensagem de Alerta Desconhecida" name="MissingAlert">
+ Sua versão do Second Life não sabe como mostrar a mensagem de alerta que acabou de receber.
+
+Detalhes do erro: O alerta chamado &apos;[_NAME]&apos; não foi encontrado em notifications.xml.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="FloaterNotFound">
+ Floater error: Não foram encontrados os seguintes controles:
+ [CONTROLS]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="TutorialNotFound">
+ Nenhum tutorial está disponível no momento.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="GenericAlert">
+ [MESSAGE]
+ </notification>
+ <notification name="GenericAlertYesCancel">
+ [MESSAGE]
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Sim"/>
+ </notification>
+ <notification name="BadInstallation">
+ Ocorreu um erro atualizando o Second Life. Por favor, faça o download da última versão em secondlife.com.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="LoginFailedNoNetwork">
+ Erro de Rede: Não conseguiu estabelecer uma conexão.
+&apos;[DIAGNOSTIC]&apos;
+Por favor, verifique sua conexão de rede.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="MessageTemplateNotFound">
+ Modelo de Mensagem [PATH] não encontrado.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="WearableSave">
+ Salvar modificações?
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="Não salvar" yestext="Salvar"/>
+ </notification>
+ <notification name="CompileQueueSaveText">
+ Houve um problema com o carregamento do texto para um script devido à seguinte razão: [REASON]. Por favor, tente novamente mais tarde.
+ </notification>
+ <notification name="CompileQueueSaveBytecode">
+ Houve um problema durante o carregamento do script compilado devido à seguinte razão: [REASON]. Por favor, tente novamente mais tarde.
+ </notification>
+ <notification name="WriteAnimationFail">
+ Falha nos dados de inscrição de animação. Por favor, tente mais tarde.
+ </notification>
+ <notification name="UploadAuctionSnapshotFail">
+ Houve um problema com o carregamento da foto do leilão devido à seguinte razão: [REASON]
+ </notification>
+ <notification name="UnableToViewContentsMoreThanOne">
+ Não é possível visualizar os conteúdos de mais de um item ao mesmo tempo.
+Por favor, selecione apenas um objeto e tente novamente.
+ </notification>
+ <notification name="SaveClothingBodyChanges">
+ Salvar todas as mudanças de roupas/ partes do corpo?
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="Não Salvar" yestext="Salvar tudo"/>
+ </notification>
+ <notification name="GrantModifyRights">
+ Conceder direitos de modificar a outros residentes lhes permite trocar, deletar ou pegar QUAISQUER objetos que você possa ter no mundo.
+Seja MUITO cuidadoso(a) quando passar esta permissão.
+Você deseja conceder direitos de modificar para [FIRST_NAME] [LAST_NAME]?
+ <usetemplate name="okcancelbuttons" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="GrantModifyRightsMultiple">
+ Conceder direitos para modificar seus objetos a outro residente permite ele mudar QUAISQUER objetos que você possa ter no mundo. Tenha muito cuidado quando conceder essa permissão.
+Você deseja permitir que os residentes selecionados tenham direito de edição?
+ <usetemplate name="okcancelbuttons" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="RevokeModifyRights">
+ Você deseja cancelar os direitos de edição de [FIRST_NAME] [LAST_NAME]?
+ <usetemplate name="okcancelbuttons" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="RevokeModifyRightsMultiple">
+ Você quer revogar os direitos de edição para os residentes selecionados?
+ <usetemplate name="okcancelbuttons" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="UnableToCreateGroup">
+ Não foi possível criar um grupo.
+[MESSAGE]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="PanelGroupApply">
+ [NEEDS_APPLY_MESSAGE]
+[WANT_APPLY_MESSAGE]
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="Ignorar Alterações" yestext="Aplicar Alterações"/>
+ </notification>
+ <notification name="MustSpecifyGroupNoticeSubject">
+ Você deve especificar um assunto para enviar uma notícia para o grupo.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="AddGroupOwnerWarning">
+ Você está para adicionar membros do grupo na função de [ROLE_NAME].
+Membros não podem ser removidos dessa função.
+Os membros podem, eles próprios, recusar a função.
+Deseja continuar?
+ <usetemplate ignoretext="Quando adcionar membro ao grupo como dono" name="okcancelignore" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="AssignDangerousActionWarning">
+ Você está prestes a adicionar a habilidade &apos;[ACTION_NAME]&apos; para a função &apos;[ROLE_NAME]&apos;
+
+*AVISO*
+Qualquer membro com esta Habilidade pode atribuir a si mesmo -- e a outro membro -- funções que têm mais poderes que os que possuem atualmente, potencialmente elevando-os aos níveis próximos ao Proprietário. Certifique-se sobre esta decisão antes de atribuir esta habilidade.
+
+Adicionar esta habilidade ao &apos;[ROLE_NAME]&apos;?
+ <usetemplate name="okcancelbuttons" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="AssignDangerousAbilityWarning">
+ Você está prestes a adicionar a habilidade &apos;[ACTION_NAME]&apos; à função &apos;[ROLE_NAME]&apos;.
+
+*AVISO*
+Qualquer membro numa função com esta habilidade, pode atribuir a sí mesmo -- e a qualquer outro -- todas as habilidades, elevando seus níveis próximos ao poder do Proprietário.
+
+Adicionar esta habilidade a &apos;[ROLE_NAME]&apos;?
+ <usetemplate name="okcancelbuttons" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="ClickPublishHelpLand">
+ Selecionando &quot;Publicar na Busca&quot;
+Clicando neste Box, será mostrado:
+- este lote nos resultados de busca
+- os objetos públicos deste lote
+- este lote na busca da web
+ </notification>
+ <notification name="ClickSoundHelpLand">
+ Mídia e Música podem apenas ser utilizadas dentro deste lote. As opções de Som e Voz podem ser restritas ao lote ou serão ouvidas por residentes fora do lote, dependendo de suas Classificações de maturidade. Ir para o Banco de Conhecimento para saber mais sobre como definir essas opções?
+ <url name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=5046
+ </url>
+ <usetemplate
+ name="okcancelbuttons"
+ yestext="Ir para o Banco de Conhecimento"
+ notext="Fechar" />
+ </notification>
+ <notification name="ClickSearchHelpAll">
+ Os resultados de busca são organizados com base na aba em que você se encontra, sua Classificação de maturidade, a categoria escolhida e outros fatores. Para mais detalhes, por favor veja o Banco de Conhecimento.
+ <url name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=4722
+ </url>
+ <usetemplate
+ name="okcancelbuttons"
+ yestext="Ir para o Banco de Conhecimento"
+ notext="Fechar" />
+ </notification>
+ <notification name="ClickPublishHelpLandDisabled">
+ Você não pode fazer este lote visível na busca porque ele está localizado numa região que proíbe isso.
+ </notification>
+ <notification name="ClickPublishHelpAvatar">
+ Selecionando &quot;Mostrar na Busca&quot; será mostrado:
+- meu perfil nos resultados de busca
+- um link para meu perfil nas páginas de grupos públicos
+ </notification>
+ <notification name="ClickPartnerHelpAvatar">
+ Você pode propor a outro Residente ou dissolver uma parceria existente através do website [SECOND_LIFE].
+
+Ir para o site do Second Life para mais informações sobre parceria?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Ir para a Página"/>
+ </notification>
+ <notification name="ClickUploadHelpPermissions">
+ Suas permissões padrão podem não funcionar em regiões antigas.
+ </notification>
+ <notification name="ClickWebProfileHelpAvatar">
+ Se este Residente definiu uma URL de perfil na web, então você pode:
+ * Clicar em &apos;Carregar&apos; para ver a página na aba Web.
+ * Clicar Carregar &gt; &apos;Em navegador externo&apos; para ver a página no seu navegador de web padrão.
+ * Clicar Carregar &gt; &apos;URL de Casa&apos; para voltar ao perfil do Residente na web se você navegou adiante.
+
+Quando você está vendo seu próprio perfil, você pode entrar com qualquer URL como sendo seu perfil na web e clicar OK para definí-la.
+Outros residentes podem visitar a URL que você definiu, quando eles olharem seu perfil.
+ </notification>
+ <notification name="JoinGroupCanAfford">
+ Unir-se a esse grupo custa L$[COST].
+Deseja prosseguir?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Unir-se"/>
+ </notification>
+ <notification name="JoinGroupCannotAfford">
+ Associar-se a este grupo custa L$[COST].
+Você não tem L$ suficientes para associar-se a este grupo.
+ </notification>
+ <notification name="LandBuyPass">
+ Por L$[COST] você pode ingressar no terreno (&apos;[PARCEL_NAME]&apos;) por [TIME] horas. Comprar um passe de acesso?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="SalePriceRestriction">
+ O preço de venda deve ser ajustado para mais que 0 L$, se desejar vender para qualquer um.
+Por favor, selecione um indivíduo para realizar a venda se o valor for 0 L$.
+ </notification>
+ <notification name="ConfirmLandSaleChange">
+ [LAND_SIZE] m² selecionados de terra estão sendo configurados para venda.
+Seu preço de venda será L$[SALE_PRICE] e está autorizado para venda para [NAME]. Gostaria de continuar a fazer essa alteração?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Continuar"/>
+ </notification>
+ <notification name="ConfirmLandSaleToAnyoneChange">
+ ATENÇÃO: Ao clicar em &apos;vender para qualquer um&apos; torna a sua terra disponível para toda a comunidade Second Life, mesmo aqueles que não estão nesta região.
+
+A área de [LAND_SIZE] m² de terra selecionada está posta para venda.
+Seu preço de venda será L$ [SALE_PRICE] e está autorizado para [NAME].
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="ReturnObjectsDeededToGroup">
+ Você tem certeza de que quer retornar todos os objetos compartilhados com o grupo &apos;[NAME]&apos; neste lote de terra, para o inventário do seu antigo Proprietário?
+
+*AVISO* Isso irá deletar os objetos não transferíveis doados ao grupo!
+
+Objetos: [N]
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Retornar"/>
+ </notification>
+ <notification name="ReturnObjectsOwnedByUser">
+ Você tem certeza de que deseja retornar todos os objetos do residente &apos;[NAME]&apos; neste lote para o inventário dele?
+
+Objetos: [N]
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Retornar"/>
+ </notification>
+ <notification name="ReturnObjectsOwnedBySelf">
+ Você tem certeza de que deseja retornar todos os objetos de sua propriedade neste lote para seu inventário?
+
+Objetos: [N]
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Retornar"/>
+ </notification>
+ <notification name="ReturnObjectsNotOwnedBySelf">
+ Você tem certeza de que deseja retornar todos os objetos que NÃO são seus para o inventário de seus proprietários?
+Objetos transferíveis doados ao grupo retornarão para seu proprietários.
+
+*AVISO* Isso fará com que os objetos não-transferíveis sejam deletados!
+
+Objetos: [N]
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Retornar"/>
+ </notification>
+ <notification name="ReturnObjectsNotOwnedByUser">
+ Você tem certeza de que deseja retornar todos os objetos deste lote NÃO pertencentes a [NAME] para o inventário do proprietário?
+
+*AVISO* Esta ação irá apagar os objetos não transferíveis doados ao grupo!
+
+Objetos: [N]
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Retornar"/>
+ </notification>
+ <notification name="ReturnAllTopObjects">
+ Você tem certeza de que deseja enviar todos os objetos listados de volta aos inventários de seus proprietários?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Retornar"/>
+ </notification>
+ <notification name="DisableAllTopObjects">
+ Você tem certeza que deseja desativar todos os objetos desta região?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Desativar"/>
+ </notification>
+ <notification name="ReturnObjectsNotOwnedByGroup">
+ Retornar os objetos deste lote que NÃO são compartilhados com o grupo [NAME] de volta para seus proprietários?
+
+Objetos: [N]
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Retornar"/>
+ </notification>
+ <notification name="UnableToDisableOutsideScripts">
+ Não é possível desabilitar scripts externos.
+Toda esta região possui dano habilitado.
+Scripts devem ser permitidos para fazer as armas funcionarem.
+ </notification>
+ <notification name="MustBeInParcel">
+ Você deve permanecer dentro do lote para definir o ponto de aterrissagem.
+ </notification>
+ <notification name="PromptRecipientEmail">
+ Por favor, digite um endereço de email válido para o(s) destinatário(s).
+ </notification>
+ <notification name="PromptSelfEmail">
+ Por favor, insira seu endereço de e-mail.
+ </notification>
+ <notification name="PromptMissingSubjMsg">
+ Enviar por email uma foto com o assunto ou mensagem padrão?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="ErrorProcessingSnapshot">
+ Erro processando dados da foto.
+ </notification>
+ <notification name="ErrorEncodingSnapshot">
+ Erro ao codificar a foto.
+ </notification>
+ <notification name="ErrorUploadingPostcard">
+ Houve um problema ao enviar a foto devido à seguinte razão: [REASON]
+ </notification>
+ <notification name="ErrorUploadingReportScreenshot">
+ Houve um problema ao carregar a foto da reportagem devido à seguinte razão: [REASON]
+ </notification>
+ <notification name="MustAgreeToLogIn">
+ Você deve concordar com os Termos de Serviço para continuar a entrar no [SECOND_LIFE].
+ </notification>
+ <notification name="CouldNotPutOnOutfit">
+ Não foi possível vestir o conjunto. A pasta do conjunto não contém roupas, partes do corpo ou acessórios.
+ </notification>
+ <notification name="CannotWearTrash">
+ Não é possível usar roupas ou partes do corpo que estão no lixo.
+ </notification>
+ <notification name="CannotWearInfoNotComplete">
+ Você não pode vestir este item porque ele ainda não carregou. Por favor, tente novamente em um minuto.
+ </notification>
+ <notification name="MustHaveAccountToLogIn">
+ Oops! Alguma coisa foi deixada em branco.
+Você precisa entrar com ambos os Nome e Sobrenome do seu avatar.
+
+Você precisa de uma conta para entrar no [SECOND_LIFE]. Você gostaria de criar uma conta agora?
+ <usetemplate name="okcancelbuttons" notext="Tentar novamente" yestext="Criar uma nova conta"/>
+ </notification>
+ <notification name="AddClassified">
+ Anúncios classificados aparecem na seção &apos;Classificados&apos; do diretório de Busca e no www.secondlife.com por uma semana.
+Preencha seu anúncio e então clique &apos;Publicar...&apos; para adicioná-lo ao diretório.
+Será solicitado a você um preço a ser pago, quando você clicar Publicar.
+Pagando mais, faz com que seu anúncio apareça em posição mais alta na lista e também em posição mais alta, quando as pessoas buscarem por palavras-chave.
+ <usetemplate ignoretext="Quando adicionando um Classificado novo" name="okcancelignore" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="DeleteClassified">
+ Apagar classificado&apos;[NAME]&apos;?
+Não há reembolso por taxas já pagas.
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Apagar"/>
+ </notification>
+ <notification name="ClassifiedSave">
+ Salvar as mudanças no classificado [NAME]?
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="Não Salvar" yestext="Salvar"/>
+ </notification>
+ <notification name="DeleteAvatarPick">
+ Apagar pegar [PICK]?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Delete"/>
+ </notification>
+ <notification name="PromptGoToEventsPage">
+ Ir até a página web de enventos [SECOND_LIFE] ?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Ir à página"/>
+ </notification>
+ <notification name="SelectProposalToView">
+ Por favor, selecione uma proposta para visualizar.
+ </notification>
+ <notification name="SelectHistoryItemToView">
+ Por favor, selecione um item do histórico para exibí-lo.
+ </notification>
+ <notification name="ResetShowNextTimeDialogs">
+ Você gostaria de reabilitar todas estas pop ups que você indicou previamente como &apos;Não me mostrar novamente&apos;?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="SkipShowNextTimeDialogs">
+ Você gostaria de desabilitar todas as popups que podem ser puladas?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="CacheWillClear">
+ O cache será limpo quando você reiniciar [SECOND_LIFE].
+ </notification>
+ <notification name="CacheWillBeMoved">
+ O Cache será removido após reiniciar [SECOND_LIFE].
+Nota: Isto limpará o cache.
+ </notification>
+ <notification name="ChangeConnectionPort">
+ Configuração de porta terá efeito após reiniciar [SECOND_LIFE].
+ </notification>
+ <notification name="ChangeSkin">
+ A nova pele será exibida após reiniciar [SECOND_LIFE].
+ </notification>
+ <notification name="GoToAuctionPage">
+ Ir para a página do [SECOND_LIFE] para ver os detalhes do leilão ou fazer um lance?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Ir para a página"/>
+ </notification>
+ <notification name="SaveChanges">
+ Salvar alterações?
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="Não Salvar" yestext="Salvar"/>
+ </notification>
+ <notification name="GestureSaveFailedTooManySteps">
+ Falha ao salvar Gesto.
+Este gesto possui muitos passos.
+Tente remover alguns passos e salve-o novamente.
+ </notification>
+ <notification name="GestureSaveFailedTryAgain">
+ Falha ao salvar Gesto. Por favor, tente em uma minuto.
+ </notification>
+ <notification name="GestureSaveFailedObjectNotFound">
+ Não foi possível salvar o gesto pois o objeto ou o inventário associado ao objeto não foi encontrado.
+O objeto pode estar fora de alcance ou foi deletado.
+ </notification>
+ <notification name="GestureSaveFailedReason">
+ Houve um problema em salvar um gesto devido à seguinte razão: [REASON]. Por favor, tente salvar o Gesto depois.
+ </notification>
+ <notification name="SaveNotecardFailObjectNotFound">
+ Não foi possível salvar uma nota pois o objeto ou o inventário associado ao objeto não foi encontrado.
+O objeto pode estar fora de alcance ou foi deletado.
+ </notification>
+ <notification name="SaveNotecardFailReason">
+ Houve um problema em salvar uma nota devido a seguinte razão: [REASON]. Por favor, tente salvar a nota novamente mais tarde.
+ </notification>
+ <notification name="ScriptCannotUndo">
+ Não foi possível desfazer todas as mudanças na sua versão de script.
+Gostaria de carregar a última versão salva?
+(**Aviso** Esta operação não pode ser desfeita).
+ <usetemplate name="okcancelbuttons" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="SaveScriptFailReason">
+ Houve um problema em salvar um script devido à seguinte razão: [REASON]. Por favor, tente salvar novamente o script mais tarde.
+ </notification>
+ <notification name="SaveScriptFailObjectNotFound">
+ Não foi possível salvar o script pois o objeto em que ele está não pôde ser encontrado.
+O objeto pode estar fora de alcance ou ter sido deletado.
+ </notification>
+ <notification name="SaveBytecodeFailReason">
+ Houve um problema em salvar uma compilação de script devido a seguinte razão: [REASON]. Por favor, tente salvar novamente o script mais tarde.
+ </notification>
+ <notification name="CouldNotStartStopScript">
+ Não foi possível iniciar ou parar o script pois o objeto em que ele está não pôde ser encontrado.
+O objeto pode estar fora de alcance ou ter sido deletado.
+ </notification>
+ <notification name="CannotDownloadFile">
+ Não foi possível baixar o arquivo.
+ </notification>
+ <notification name="CannotWriteFile">
+ Não foi possível escrever o arquivo [[FILE]]
+ </notification>
+ <notification name="UnsupportedHardware">
+ Aviso: Seu sistema não é compatível com os requisitos mínimos exigidos pelo Second Life. Se você continuar usando o Second Life pode experimentar uma performance ruim. Infelizmente não podemos oferecer suporte técnico para configurações de sistema não suportado.
+
+MINSPECS
+Você deseja visitar [_URL] para maiores informações?
+ <url name="url" option="0">
+ http://www.secondlife.com/corporate/sysreqs.php
+ </url>
+ <usetemplate ignoretext="Ao detectar hardware não suportado" name="okcancelignore" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="UnknownGPU">
+ Seu sistema possui uma placa gráfica que nos é desconhecido neste momento.
+Este é normalmente o caso de um novo hardware que nós não tivemos a chance de testar. Second Life vai muito provavelmente executar corretamente, mas talvez seja necessário ajustar suas configurações de gráficos para algo mais apropriado.
+(Menu Editar &gt; Preferências &gt; Gráficos).
+ <form name="form">
+ <ignore name="ignore" text="Ao detectar uma placa de vídeo desconhecida"/>
+ </form>
+ </notification>
+ <notification name="DisplaySettingsNoShaders">
+ [SECOND_LIFE] travou quando inicializava os drivers gráficos.
+A Qualidade Gráfica será ajustada para baixa, para evitar alguns erros comuns de drivers.
+Isto irá desabilitar alguns atributos gráficos.
+Nós recomendamos a atualização dos drivers de sua placa gráfica.
+A Qualidade Gráfica pode ser aumentada no Preferências &gt; Gráficos.
+ </notification>
+ <notification name="RegionNoTerraforming">
+ A região [REGION] não permite ser aplainada.
+ </notification>
+ <notification name="CannotCopyWarning">
+ Você não tem permissão para copiar este item e irá perdê-lo do seu inventário se entregá-lo a alguém. Quer realmente oferecer este item?
+ <usetemplate name="okcancelbuttons" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="CannotGiveItem">
+ Não foi possível entregar o item de inventário.
+ </notification>
+ <notification name="TransactionCancelled">
+ Transação cancelada.
+ </notification>
+ <notification name="TooManyItems">
+ Não é possível passar mais que 42 itens em uma única transferência de inventário.
+ </notification>
+ <notification name="NoItems">
+ Você não tem permissão para transferir os itens selecionados.
+ </notification>
+ <notification name="CannotCopyCountItems">
+ Você não tem permissão para copiar [COUNT] dos itens selecionados. Você irá perdê-los do seu inventário.
+Deseja realmente entregar estes itens?
+ <usetemplate name="okcancelbuttons" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="CannotGiveCategory">
+ Você não tem permissão para transferir a pasta selecionada.
+ </notification>
+ <notification name="FreezeAvatar">
+ Congelar esse avatar?
+Ele ou ela estará temporáriamente incapacitado de mover-se, conversar ou interagir com mundo.
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="Descongelar" yestext="Congelar"/>
+ </notification>
+ <notification name="FreezeAvatarFullname">
+ Congelar [AVATAR_NAME]?
+Ele ou ela vai ficar temporariamente incapaz de se mover, usar o bate-papo ou interagir com o mundo.
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="Descongelar" yestext="Congelar"/>
+ </notification>
+ <notification name="EjectAvatarFullname">
+ Ejetar [AVATAR_NAME] da sua terra?
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="Ejetar e Banir" yestext="Ejetar"/>
+ </notification>
+ <notification name="EjectAvatarNoBan">
+ Ejetar este avatar da sua terra?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Ejetar"/>
+ </notification>
+ <notification name="EjectAvatarFullnameNoBan">
+ Ejetar [AVATAR_NAME] da sua terra?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Ejetar"/>
+ </notification>
+ <notification name="AcquireErrorTooManyObjects">
+ Erro de aquisição: Muitos objetos selecionados.
+ </notification>
+ <notification name="AcquireErrorObjectSpan">
+ Erro de aquisição: Objetos criados em mais de uma região.
+Por favor, mova todos os objetos a serem adquiridos para uma mesma região.
+ </notification>
+ <notification name="PromptGoToCurrencyPage">
+ [EXTRA]
+
+Vá para [URL] para informação sobre compra de dinheiro.
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Ir até a página"/>
+ </notification>
+ <notification name="UnableToLinkObjects">
+ Não é possível unir estes [COUNT] objetos.
+Você pode unir um máximo de [MAX] objetos.
+ </notification>
+ <notification name="CannotLinkIncompleteSet">
+ Você pode unir apenas conjuntos completos de objetos e deve selecionar mais que um objeto.
+ </notification>
+ <notification name="CannotLinkModify">
+ Impossibilitado de unir, porque você não tem permissão para modificar todos os objetos.
+
+Por favor, certifique-se de que nenhum deles está travado e que você é dono de todos eles.
+ </notification>
+ <notification name="CannotLinkDifferentOwners">
+ Impossibilitado de unir porque nem todos os objetos são do mesmo dono.
+
+Por favor, certifique-se de que você é o dono de todos os objetos selecionados.
+ </notification>
+ <notification name="NoFileExtension">
+ Nenhuma extensão para o arquivo: &apos;[FILE]&apos;
+
+Por favor, certifique-se de que o arquivo tem uma extensão de arquivo correta.
+ </notification>
+ <notification name="InvalidFileExtension">
+ Extensão de arquivo inválida: [EXTENSION].
+Esperada [VALIDS]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="CannotUploadSoundFile">
+ Não é possível abrir para leitura o arquivo de som carregado:
+[FILE]
+ </notification>
+ <notification name="SoundFileNotRIFF">
+ O arquivo não aparenta ser um arquivo do tipo RIFF WAVE:
+[FILE]
+ </notification>
+ <notification name="SoundFileNotPCM">
+ O arquivo não aparenta ser um arquivo de áudio PCM WAVE:
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidChannelCount">
+ O arquivo possui um número de canais inválido (deve ser mono ou estéreo):
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidSampleRate">
+ O arquivo não aparenta ter uma taxa de amostragem suportada (deve ser 44.1k):
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidWordSize">
+ O arquivo não aparenta ter um tamanho de palavra suportada (deve ser 8 ou 16 bit):
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidHeader">
+ Não pode ser encontrado bloco de dados no cabeçalho WAV:
+[FILE]
+ </notification>
+ <notification name="SoundFileInvalidTooLong">
+ Arquivo de áudio é muito longo (no máximo 10 segundos):
+[FILE]
+ </notification>
+ <notification name="ProblemWithFile">
+ Problemas com o arquivo [FILE]:
+
+[ERROR]
+ </notification>
+ <notification name="CannotOpenTemporarySoundFile">
+ Não pode abrir o arquivo temporário de som comprimido, para leitura: [FILE]
+ </notification>
+ <notification name="UnknownVorbisEncodeFailure">
+ Falha desconhecida de codificação vorbis em: [FILE]
+ </notification>
+ <notification name="CannotEncodeFile">
+ Impossível codificar o arquivo: [FILE]
+ </notification>
+ <notification name="CorruptResourceFile">
+ Fonte do arquivo corrompida: [FILE]
+ </notification>
+ <notification name="UnknownResourceFileVersion">
+ Versão desconhecida de arquivo de recursos da Linden no arquivo: [FILE]
+ </notification>
+ <notification name="UnableToCreateOutputFile">
+ Incapaz de criar arquivo de saída: [FILE]
+ </notification>
+ <notification name="DoNotSupportBulkAnimationUpload">
+ Atualmente, não suportamos o envio de arquivos de animação em massa.
+ </notification>
+ <notification name="CannotUploadReason">
+ Incapaz de carregar [FILE] devido ao seguinte motivo: [REASON]
+Por favor tente novamente mais tarde.
+ </notification>
+ <notification name="CannotCreateLandmarkNotOwner">
+ Você não pode criar um ponto de referência porque o proprietário do terreno não permite. Tente novamente a alguns metros de distância.
+ </notification>
+ <notification name="CannotRecompileSelectObjectsNoScripts">
+ Não é possível realizar uma recompilação.
+Selecione um objeto com um script.
+ </notification>
+ <notification name="CannotRecompileSelectObjectsNoPermission">
+ Impossibilitado de executar uma &apos;recompilação&apos;.
+
+Selecione objetos com scripts que você tem permissão para modificar.
+ </notification>
+ <notification name="CannotResetSelectObjectsNoScripts">
+ Impossibilitado de executar &apos;redefinir&apos;.
+
+Selecione objetos com scripts.
+ </notification>
+ <notification name="CannotResetSelectObjectsNoPermission">
+ Impossibilitado de executar &apos;redefinir&apos;.
+
+Selecione objetos com scripts que você tem permissão para modificar.
+ </notification>
+ <notification name="CannotSetRunningSelectObjectsNoScripts">
+ Impossibilitado de definir quaisquer scripts para &apos;rodando&apos;.
+
+Selecione objetos com scripts.
+ </notification>
+ <notification name="CannotSetRunningNotSelectObjectsNoScripts">
+ Impossibilitado de definir quaisquer scripts para &apos;não rodando&apos;.
+
+Selecione objetos com scripts.
+ </notification>
+ <notification name="NoFrontmostFloater">
+ Nenhuma janela flutuante mais à frente para salvar.
+ </notification>
+ <notification name="SeachFilteredOnShortWords">
+ Sua consulta de pesquisa foi alterada e as palavras que eram demasiado curtas foram removidas.
+
+Pesquisava por: [FINALQUERY]
+ </notification>
+ <notification name="SeachFilteredOnShortWordsEmpty">
+ Os termos de sua pesquisa eram muito curtos então nenhuma pesquisa foi feita.
+ </notification>
+ <notification name="CouldNotTeleportReason">
+ Não é possível teletransportar-se.
+[REASON]
+ </notification>
+
+ <notification name="invalid_tport">
+Problema encontrado ao processar seu pedido de Teletransporte. Você pode tentar reiniciar antes de tentar teletransportar-se. Se você continuar a receber esta mensagem, por favor verifique a FAQ do Suporte Técnico em:
+www.secondlife.com/support
+ </notification>
+ <notification name="invalid_region_handoff">
+Problema encontrado ao processar a passagem de regiões. Você pode tentar reiniciar antes de tentar atravessar regiões novamente. Se você continuar a receber esta mensagem, por favor verifique a FAQ do Suporte Técnico em:
+www.secondlife.com/support
+ </notification>
+ <notification name="blocked_tport">
+Desculpe, teletransportes estão atualmente bloqueados. Tente novamente dentro de alguns instantes. Se você continuar com problemas de teletransporte, por favor tente deslogar e relogar para resolver o problema.
+ </notification>
+ <notification name="nolandmark_tport">
+Desculpe, mas o sistema não conseguiu localizar a landmark de destino.
+ </notification>
+ <notification name="timeout_tport">
+Desculpe, não foi possível para o sistema executar o teletransporte. Tente novamente dentro de alguns instantes.
+ </notification>
+ <notification name="noaccess_tport">
+Desculpe, você não tem acesso ao destino deste teletransporte.
+ </notification>
+ <notification name="missing_attach_tport">
+Seu anexos ainda não chegaram. Tente esperar por alguns momentos ou deslogar e logar antes de tentar teleransportar-se novamente.
+ </notification>
+ <notification name="too_many_uploads_tport">
+Afluxo nesta região é atualmente tão alto que seu pedido de teletransporte não será possível em tempo oportuno. Por favor, tente novamente em alguns minutos ou vá a uma área menos ocupada.
+ </notification>
+ <notification name="expired_tport">
+Desculpe, mas o sistema não conseguiu concluir o seu pedido de teletransporte em tempo hábil. Por favor, tente novamente em alguns minutos.
+ </notification>
+ <notification name="expired_region_handoff">
+Desculpe, mas o sistema não pôde concluir a sua travessia de região em tempo hábil. Por favor, tente novamente em alguns minutos.
+ </notification>
+ <notification name="no_host">
+Não foi possível encontrar o destino do teletransporte. O destino pode estar temporariamente indisponível ou não existir mais. Por favor, tente novamente em poucos minutos.
+ </notification>
+ <notification name="no_inventory_host">
+O sistema de inventário está indisponível no momento.
+ </notification>
+
+ <notification name="CannotSetLandOwnerNothingSelected">
+ Incapaz de estabelecer o proprietário do terreno:
+Nenhum lote selecionado.
+ </notification>
+ <notification name="CannotSetLandOwnerMultipleRegions">
+ Não é possível exigir a posse do terreno porque a seleção alcançou múltiplas regiões. Por favor, selecione uma área menor e tente novamente.
+ </notification>
+ <notification name="ForceOwnerAuctionWarning">
+ Este lote está oferecido em leilão. Exigir a posse do terreno irá cancelar o leilão e possivelmente deixará alguns residentes infelizes, se os lances já começaram. Exigir posse?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Retomar"/>
+ </notification>
+ <notification name="CannotContentifyNothingSelected">
+ Conteúdo não encontrado:
+Nenhum lote selecionado.
+ </notification>
+ <notification name="CannotContentifyNoRegion">
+ Conteúdo não encontrado:
+Nenhuma região selecionada.
+ </notification>
+ <notification name="CannotReleaseLandNothingSelected">
+ Não é possível abandonar terreno:
+Nenhum lote selecionado.
+ </notification>
+ <notification name="CannotReleaseLandNoRegion">
+ Não é possível abandonar terreno:
+Não é possível encontrar a região.
+ </notification>
+ <notification name="CannotBuyLandNothingSelected">
+ Não é possível comprar terreno:
+Nenhum lote selecionado.
+ </notification>
+ <notification name="CannotBuyLandNoRegion">
+ Não é possível comprar terreno:
+Não é possível achar a região em que este terreno se encontra.
+ </notification>
+ <notification name="CannotCloseFloaterBuyLand">
+ Você não pode fechar a janela de Compra de Terreno até que o Second Life calcule o preço desta transação.
+ </notification>
+ <notification name="CannotDeedLandNothingSelected">
+ Não é possível transferir posse do terreno:
+Nenhum lote selecionado.
+ </notification>
+ <notification name="CannotDeedLandNoGroup">
+ Não é possível transferir posse do terreno:
+Nenhum grupo selecionado.
+ </notification>
+ <notification name="CannotDeedLandNoRegion">
+ Não é possível transferir posse do terreno:
+Não é possível se achar a região em que este terreno se encontra.
+Por favor, use Ferramentas &gt; Reporte de Bug para reportar isto.
+ </notification>
+ <notification name="CannotDeedLandMultipleSelected">
+ Impossibilitado de passar a propriedade da terra:
+Selecionados vários lotes.
+
+Tente selecionar um único lote.
+ </notification>
+ <notification name="ParcelCanPlayMedia">
+ Esta localidade pode executar fluxo de mídia.
+Fluxo de mídia necessita de uma conexão de Internet rápida.
+
+Executar fluxo de mídia quando disponível?
+(Você pode mudar esta opção mais tarde no Preferências &gt; Áudio &amp; Vídeo.)
+ <usetemplate name="okcancelbuttons" notext="Desabilitar" yestext="Exibir Mídia"/>
+ </notification>
+ <notification name="CannotDeedLandWaitingForServer">
+ Impossibilitado de passar a propriedade da terra:
+Esperando pelo servidor informar de quem é a propriedade.
+
+Por favor, tente novamente.
+ </notification>
+ <notification name="CannotDeedLandNoTransfer">
+ Não é possível transferir posse do terreno:
+A região [REGION] não permite transferência do terreno.
+ </notification>
+ <notification name="CannotReleaseLandWatingForServer">
+ Impossibilitado de abandonar a terra:
+Esperando o servidor atualizar as informações do lote.
+
+Tente novamente em alguns segundos.
+ </notification>
+ <notification name="CannotReleaseLandSelected">
+ Impossibilitado de abandonar a terra:
+Você não é dono de todos os lotes selecionados.
+
+Por favor, selecione um único lote.
+ </notification>
+ <notification name="CannotReleaseLandDontOwn">
+ Não é possível abandonar terreno:
+Você não tem permissão de liberar este lote.
+Os lotes que você possui estão em verde.
+ </notification>
+ <notification name="CannotReleaseLandRegionNotFound">
+ Impossibilitado de abandonar a terra:
+Não consegue achar a região em que esta terra se encontra.
+
+Por favor, usar Ferramentas &gt; Reportar Bug, para reportar este erro.
+ </notification>
+ <notification name="CannotReleaseLandNoTransfer">
+ Não é possível abandonar terreno:
+A região [REGION] não permite transferência de terreno.
+ </notification>
+ <notification name="CannotReleaseLandPartialSelection">
+ Impossibilitado de abandonar a terra:
+Você deve selecionar um lote inteiro para liberá-lo.
+
+Selecione um lote inteiro ou primeiro divida seu lote.
+ </notification>
+ <notification name="ReleaseLandWarning">
+ Você está para liberar [AREA] m² de terra.
+Liberando este terreno, o liberará de suas posses, mas não lhe concederá quaisquer L$.
+
+Liberar esta terra?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Renunciar"/>
+ </notification>
+ <notification name="CannotDivideLandNothingSelected">
+ Impossibilitado de dividir a terra:
+
+Nenhum lote selecionado.
+ </notification>
+ <notification name="CannotDivideLandPartialSelection">
+ Impossibilitado de dividir a terra:
+
+Você selecionou um lote inteiro.
+Tente selecionar uma parte do lote.
+ </notification>
+ <notification name="LandDivideWarning">
+ Dividir este terreno irá dividir este lote em dois e cada lote pode ter suas próprias configurações. Algumas configurações serão colocadas no padrão depois dessa operação.
+
+Quer dividir o terreno?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Dividir"/>
+ </notification>
+ <notification name="CannotDivideLandNoRegion">
+ Impossibilitado de dividir a terra:
+Não consegue achar a região em que esta terra se encontra.
+
+Por favor, usar Ferramentas &gt; Reportar Bug, para reportar este erro.
+ </notification>
+ <notification name="CannotJoinLandNoRegion">
+ Impossibilitado de unir a terra:
+Não consegue achar a região em que esta terra se encontra.
+
+Por favor, usar Ferramentas &gt; Reportar Bug, para reportar este erro.
+ </notification>
+ <notification name="CannotJoinLandNothingSelected">
+ Não é possível unir terreno:
+Nenhum lote selecionado.
+ </notification>
+ <notification name="CannotJoinLandEntireParcelSelected">
+ Impossibilitado de unir a terra:
+Você selecionou apenas um lote.
+
+Selecione a terra através de ambos os lotes.
+ </notification>
+ <notification name="CannotJoinLandSelection">
+ Impossibilitado de unir a terra:
+Você deve selecionar mais de um lote.
+
+Selecione a terra através de ambos os lotes.
+ </notification>
+ <notification name="JoinLandWarning">
+ Unir esta terra vai criar um grande lote que envolve todos os lotes que intersectam o retângulo selecionado.
+Você vai ter que redefinir nome e as opções do novo lote.
+
+Unir a terra?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Unir"/>
+ </notification>
+ <notification name="ShowOwnersHelp">
+ Mostrar donos:
+Colorir os lotes para mostrar o tipo de dono.
+
+Green = Sua terra
+Aqua = Terra do seu Grupo
+Red = Possuída por outros
+Yellow = À venda
+Purple = A leilão
+Grey = Pública
+ </notification>
+ <notification name="ConfirmNotecardSave">
+ Esta nota precisa ser salva antes do item ser copiado ou visualizado. Salvar nota?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Salvar"/>
+ </notification>
+ <notification name="ConfirmItemCopy">
+ Copiar este item para o seu inventário?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Copiar"/>
+ </notification>
+ <notification name="ResolutionSwitchFail">
+ Falha ao trocar a resolução para [RESX] por [RESY]
+ </notification>
+ <notification name="ErrorUndefinedGrasses">
+ Erro: Gramado indefinido; [SPECIES]
+ </notification>
+ <notification name="ErrorUndefinedTrees">
+ Erro: Árvores indefinidas: [SPECIES]
+ </notification>
+ <notification name="CannotSaveWearableOutOfSpace">
+ Não é possível salvar &apos;[NAME]&apos; para um arquivo de vestimenta. Você precisa liberar algum espaço no seu computador e salvar o arquivo novamente.
+ </notification>
+ <notification name="CannotSaveToAssetStore">
+ Impossibilitado de salvar [NAME] no armazenamento central de ativos.
+Isso é geralmente uma falha temporária. Por favor personalize e salve novamente a vestimenta em poucos minutos.
+
+Se o problema persistir, por favor clicar sobre &apos;Ferramentas &gt; Bug Report&apos; no menu superior e forneça detalhes sobre a configuração de sua rede.
+ </notification>
+ <notification name="YouHaveBeenLoggedOut">
+ Você foi deslogado do [SECOND_LIFE]:
+ [MESSAGE]
+Você ainda pode olhar o bate-papo e as mensagens instantâneas existentes, clicando em &apos;Exibir IM &amp; bate-papo&apos;. Caso contrário, clique em &apos;Sair&apos; para sair do [SECOND_LIFE] imediatamente.
+ <usetemplate name="okcancelbuttons" notext="Sair" yestext="Ver Mensagem Instantânea &amp; Bate- Papo"/>
+ </notification>
+ <notification name="OnlyOfficerCanBuyLand">
+ Não é possível comprar o terreno para o grupo:
+Você não tem permissão para comprar o terreno para o seu grupo ativado.
+ </notification>
+ <notification label="Adicionar amigo" name="AddFriend">
+ Amigos podem dar permissões de rastrear um ao outro pelo mapa e receber atualizações de status online.
+
+Oferecer amizade para [NAME]?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Oferecer"/>
+ </notification>
+ <notification label="Adicionar amigo" name="AddFriendWithMessage">
+ Amigos podem dar permissões de rastrear um ao outro pelo mapa e receber atualizações de status online.
+
+Oferecer amizade para [NAME]?
+ <form name="form">
+ <input name="message" type="text">
+ Quer ser meu amigo?
+ </input>
+ <button name="Offer" text="Oferecer"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification name="RemoveFromFriends">
+ Você quer remover [FIRST_NAME] [LAST_NAME] da sua lista de amigos?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Remover"/>
+ </notification>
+ <notification name="RemoveMultipleFromFriends">
+ Você quer remover vários amigos da sua lista?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Remover"/>
+ </notification>
+ <notification name="GodDeleteAllScriptedPublicObjectsByUser">
+ Você tem certeza que deseja excluir todos os objetos programados de propriedade de
+** [AVATAR_NAME] **
+em todos os outros terrenos deste sim?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="APAGAR!!"/>
+ </notification>
+ <notification name="GodDeleteAllScriptedObjectsByUser">
+ Você tem certeza que deseja excluir todos os objetos programados de propriedade de
+** [AVATAR_NAME] **
+em TODOS OS TERRENOS deste sim?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="!!APAGAR TUDO!!"/>
+ </notification>
+ <notification name="GodDeleteAllObjectsByUser">
+ Você tem certeza que deseja excluir TODOS os objetos (programados ou não) de propriedade de
+** [AVATAR_NAME] **
+em TODOS OS TERRENOS deste sim?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="!!APAGAR TUDO!!"/>
+ </notification>
+ <notification name="BlankClassifiedName">
+ Você deve especificar um nome para seu classificado.
+ </notification>
+ <notification name="MinClassifiedPrice">
+ Preço mínimo a pagar para incluir na listagem é de L$[MIN_PRICE].
+
+Por favor, insira um valor maior.
+ </notification>
+ <notification name="ConfirmObjectDeleteLock">
+ Pelo menos um dos itens que você selecionou está trancado.
+
+Tem certeza de que deseja apagar estes itens?
+ <usetemplate name="okcancelbuttons" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteNoCopy">
+ Pelo menos um dos itens que você selecionou não é copiável.
+
+Tem certeza de que deseja apagar estes itens?
+ <usetemplate name="okcancelbuttons" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteNoOwn">
+ Você não é proprietário de pelo menos um dos itens selecionados.
+
+Tem certeza de que deseja apagar estes itens?
+ <usetemplate name="okcancelbuttons" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteLockNoCopy">
+ Pelo menos um dos objetos está trancado ou não é copiável.
+
+Tem certeza de que deseja apagar estes itens?
+ <usetemplate name="okcancelbuttons" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteLockNoOwn">
+ Pelo menos um dos objetos está trancado ou não é de sua posse.
+
+Tem certeza de que deseja apagar estes itens?
+ <usetemplate name="okcancelbuttons" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteNoCopyNoOwn">
+ Pelo menos um dos objetos não é copiável ou não é de sua posse.
+
+Tem certeza de que deseja apagar estes itens?
+ <usetemplate name="okcancelbuttons" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="ConfirmObjectDeleteLockNoCopyNoOwn">
+ Pelo menos um dos objetos está trancado, não é copiável ou você não o possui.
+
+Tem certeza de que deseja apagar estes itens?
+ <usetemplate name="okcancelbuttons" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="ConfirmObjectTakeLock">
+ Pelo menos um dos objetos está trancado.
+
+Tem certeza de que deseja pegar estes itens?
+ <usetemplate name="okcancelbuttons" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="ConfirmObjectTakeNoOwn">
+ Você não possui todos os objetos que está pegando.
+Caso continue, as permissões do próximo proprietário serão aplicadas aos objetos e possivelmente restringirão sua habilidade em modificá-los ou copiá-los.
+
+Você tem certeza de que quer pegar estes itens?
+ <usetemplate name="okcancelbuttons" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="ConfirmObjectTakeLockNoOwn">
+ Pelo menos um objeto está bloqueado.
+Você não possui todos os objetos que você está pegando.
+Se continuar, as permissões para o próximo proprietário serão aplicadas e possivelmente restringirão sua capacidade de modificar ou copiá-los.
+No entanto, você pode pegar a seleção atual.
+
+Tem certeza de que deseja pegar estes itens?
+ <usetemplate name="okcancelbuttons" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="CantBuyLandAcrossMultipleRegions">
+ Não foi possível comprar terreno, pois a seleção abrange várias regiões.
+
+Por favor, selecione uma área menor e tente novamente.
+ </notification>
+ <notification name="DeedLandToGroup">
+ Na transferência de propriedade deste lote, o grupo deverá ter e manter créditos suficientes de uso da terra.
+O preço de aquisição dos terrenos não é restituído ao o proprietário. Se uma parcela transferida é vendida, o preço de venda é dividido igualmente entre os membros do grupo.
+
+Transferir propriedade de [AREA] m² de terra ao grupo &apos;[GROUP_NAME]&apos;?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Acionar"/>
+ </notification>
+ <notification name="DeedLandToGroupWithContribution">
+ Na transferência de propriedade deste lote, o grupo deverá ter e manter créditos suficientes de uso da terra.
+A Transferência incluirá uma contribuição de terra simultanea para o grupo de &apos;[FIRST_NAME] [LAST_NAME]&apos;.
+O preço da compra não será restituído ao proprietário. Se um lote for vendido, o preço da venda será dividido igualmente entre os membros do grupo.
+
+Transferir propriedade destes [AREA] m² de terreno para o grupo &apos;[GROUP_NAME]&apos;?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Acionar"/>
+ </notification>
+ <notification name="DisplaySetToSafe">
+ Configurações de display foram ajustadas para níveis de segurança porque você especificou -- opção de segurança.
+ </notification>
+ <notification name="DisplaySetToRecommended">
+ Configurações de display foram ajustadas para nível recomendado basedo na configuração do seu sistema.
+ </notification>
+ <notification name="ErrorMessage">
+ [ERROR_MESSAGE]
+ </notification>
+ <notification name="AvatarMoved">
+ Sua [TYPE] localização não está disponível no momento.
+ [HELP]
+Você foi movido para uma região vizinha.
+ </notification>
+ <notification name="ClothingLoading">
+ Sua vestimenta ainda está baixando.
+Você pode usar o [SECOND_LIFE] normalmente e os outros o visualizarão corretamente.
+ <form name="form">
+ <ignore name="ignore" text="Quando o vestuário está levando muito tempo para fazer download"/>
+ </form>
+ </notification>
+ <notification name="FirstRun">
+ A instalação do [SECOND_LIFE] está completa.
+
+Se esta é a primeira vez usando o[SECOND_LIFE], será necessário que você crie uma conta antes de poder se logar.
+Retornar a www.secondlife.com para criar uma nova conta?
+ <usetemplate name="okcancelbuttons" notext="Continuar" yestext="Nova conta.."/>
+ </notification>
+ <notification name="LoginPacketNeverReceived">
+ Estamos com problemas de conexão. Pode ser problema com a conexão de sua internet ou com os servidores do Second Life.
+
+Voce tanto pode checar a conexão de sua internet e tentar novamente em alguns minutos, ou clicar em Teletransporte para tentar teletransportar-se para sua casa.
+ <form name="form">
+ <button name="OK" text="OK"/>
+ <button name="Help" text="Ajuda"/>
+ <button name="Teleport" text="Teletransportar"/>
+ </form>
+ </notification>
+ <notification name="WelcomeChooseSex">
+ Seu personagem irá aparecer num momento.
+
+Use as teclas de seta para andar.
+Pressione a tecla F1 para ajuda ou aprender mais sobre [SECOND_LIFE].
+Por favor, escolha se o seu avatar é feminino ou masculino. Você pode mudar de idéia depois.
+ <usetemplate name="okcancelbuttons" notext="Feminino" yestext="Masculino"/>
+ </notification>
+ <notification name="NotEnoughCurrency">
+ [NAME] L$ [PRICE] Você não possui suficientes L$ para fazer isso.
+ </notification>
+ <notification name="GrantedModifyRights">
+ Foi garantido à você o privilégio de alterar o(s) objeto(s) de [FIRST_NAME] [LAST_NAME]&apos;
+ </notification>
+ <notification name="RevokedModifyRights">
+ Seu privilégio para alterar o(s) objeto(s) de [FIRST_NAME] [LAST_NAME]&apos;s foi removido.
+ </notification>
+ <notification name="FlushMapVisibilityCaches">
+ Isto irá descarregar os caches de mapa relativos a esta região.
+Isso é realmente útil apenas para depuração.
+(Na produção, aguarde 5 minutos e, então, o mapa de todos será atualizado depois que relogar.)
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="BuyOneObjectOnly">
+ Impossível comprar mais de um objeto ao mesmo tempo. Por favor, selecione apenas um objeto e tente novamente.
+ </notification>
+ <notification name="OnlyCopyContentsOfSingleItem">
+ Incapaz de copiar os conteúdos de mais de um item por vez. Por favor, selecione somente um objeto e tente novamente.
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="KickUsersFromRegion">
+ Teletransportar para casa todos os residentes nesta região?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="EstateObjectReturn">
+ Você tem certeza que deseja retornar os objetos pertencentes a [USER_NAME] ?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="InvalidTerrainBitDepth">
+ Não foi possível definir texturas da região:
+Textura do Terreno [TEXTURE_NUM] tem uma profundidade de bits inválidos [TEXTURE_BIT_DEPTH].
+
+Substitua textura [TEXTURE_NUM], com uma imagem de 24-bit 512x512 ou menor e em seguida, clique em &apos;Aplicar&apos; novamente.
+ </notification>
+ <notification name="InvalidTerrainSize">
+ Não foi possível definir texturas da região:
+Textura do Terreno [TEXTURE_NUM] é muito grande em [TEXTURE_SIZE_X] x [TEXTURE_SIZE_Y].
+
+Substituir textura [TEXTURE_NUM], com uma imagem de 24-bit 512x512 ou menor e em seguida, clique em &apos;Aplicar&apos; novamente.
+ </notification>
+ <notification name="RawUploadStarted">
+ Upload iniciado. Pode levar uns 2 minutos, dependendo da sua velocidade de conexão.
+ </notification>
+ <notification name="ConfirmBakeTerrain">
+ Você realmente deseja nivelar o terreno selecionado a partir do centro elevando/reduzindo os limites e o padrão para a ferramenta ´Reverter´?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Executar"/>
+ </notification>
+ <notification name="MaxAllowedAgentOnRegion">
+ Você pode ter somente [MAX_AGENTS] residentes permitidos.
+ </notification>
+ <notification name="MaxBannedAgentsOnRegion">
+ Você pode ter apenas [MAX_BANNED] residentes banidos.
+ </notification>
+ <notification name="MaxAgentOnRegionBatch">
+ Falha ao adicionar [NUM_ADDED] agentes:
+Ultrapassa o limite de [MAX_AGENTS] [LIST_TYPE] de [NUM_EXCESS].
+ </notification>
+ <notification name="MaxAllowedGroupsOnRegion">
+ Você pode ter somente [MAX_GROUPS] grupos permitidos.
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Executar"/>
+ </notification>
+ <notification name="MaxManagersOnRegion">
+ Você pode ter apenas [MAX_MANAGER] gerentes da Propriedade.
+ </notification>
+ <notification name="OwnerCanNotBeDenied">
+ Não é possível adicionar o dono da propriedade na lista de residentes banidos.
+ </notification>
+ <notification name="CanNotChangeAppearanceUntilLoaded">
+ Não é possível alterar a aparência até que as roupas e formas estejam carregadas.
+ </notification>
+ <notification name="ClassifiedMustBeAlphanumeric">
+ O título do seu Anúncio deve começar com uma letra entre A e Z ou número. Nenhuma pontuação é permitida.
+ </notification>
+ <notification name="CantSetBuyObject">
+ Não é possível configurar Comprar Objeto, porque o objeto não está à venda.
+Por favor, ponha o objeto à venda e tente novamente.
+ </notification>
+ <notification name="FinishedRawDownload">
+ Download do arquivo de terreno RAW concluído em:
+[DOWNLOAD_PATH]
+ </notification>
+ <notification name="DownloadWindowsMandatory">
+ Uma nova versão do [SECOND_LIFE] está disponível.
+[MESSAGE]
+Você deve baixar essa atualização para utilizar o [SECOND_LIFE].
+ <usetemplate name="okcancelbuttons" notext="Sair" yestext="Atualizar"/>
+ </notification>
+ <notification name="DownloadWindows">
+ Uma versão atualizada do [SECOND_LIFE] está disponível.
+[MESSAGE]
+Essa atualização não é mandatória, mas sugerimos que você a instale para melhorar a performance e a estabilidade.
+ <usetemplate name="okcancelbuttons" notext="Continuar" yestext="Atualizar"/>
+ </notification>
+ <notification name="DownloadWindowsReleaseForDownload">
+ Uma versão atualizada do [SECOND_LIFE] está disponível.
+[MESSAGE]
+Essa atualização não é mandatória, mas sugerimos que você a instale para melhorar a performance e a estabilidade.
+ <usetemplate name="okcancelbuttons" notext="Continuar" yestext="Atualizar"/>
+ </notification>
+ <notification name="DownloadMacMandatory">
+ Uma nova versão do [SECOND_LIFE] está disponível.
+[MESSAGE]
+Você deve baixar esta atualização para utilizar o [SECOND_LIFE].
+
+Baixar para sua pasta de Aplicativos?
+ <usetemplate name="okcancelbuttons" notext="Sair" yestext="Atualizar"/>
+ </notification>
+ <notification name="DownloadMac">
+ Uma nova versão do [SECOND_LIFE] está disponível.
+[MESSAGE]
+Essa atualização não é mandatória, mas sugerimos que você a instale para melhorar a performance e a estabilidade.
+
+Baixar para a sua pasta de Aplicativos?
+ <usetemplate name="okcancelbuttons" notext="Continuar" yestext="Atualizar"/>
+ </notification>
+ <notification name="DownloadMacReleaseForDownload">
+ Uma nova versão do [SECOND_LIFE] está disponível.
+
+[MESSAGE]
+Essa atualização não é mandatória, mas sugerimos que você a instale para melhorar a performance e a estabilidade.
+
+Baixar para sua pasta de Aplicativos?
+ <usetemplate name="okcancelbuttons" notext="Continuar" yestext="Atualizar"/>
+ </notification>
+ <notification name="DeedObjectToGroup">
+ Delegar este objeto causará ao grupo:
+* Receber os L$ pagos ao objeto
+ <usetemplate ignoretext="Ao transferir objetos aos grupos" name="okcancelignore" notext="Cancelar" yestext="Acionar"/>
+ </notification>
+ <notification name="WebLaunchExternalTarget">
+ Abrir o navegador do seu sistema para ver este conteúdo?
+ <usetemplate ignoretext="Ao abrir o navegador web do seu sistema para visualizar uma página Web" name="okcancelignore" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchJoinNow">
+ Ir ao www.secondlife.com para gerenciar sua conta?
+ <usetemplate ignoretext="Ao abrir o navegador web para gerenciar sua conta" name="okcancelignore" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchBugReport101">
+ Visite a Wiki [SECOND_LIFE] para aprender como reportar bugs corretamente.
+ <usetemplate ignoretext="Ao abrir o web browser para visualizar o report de Bug 101 na Wiki" name="okcancelignore" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchSecurityIssues">
+ Visite a Wiki do [SECOND_LIFE] para detalhes de como Reportar um Problema de Segurança.
+ <usetemplate ignoretext="Ao abrir o navegador da web para visualizar a Wiki de Problemas de Segurança" name="okcancelignore" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchQAWiki">
+ Visite o Wiki de QA do [SECOND_LIFE].
+ <usetemplate ignoretext="Ao abrir o navegador web para visualizar a Wiki de QA" name="okcancelignore" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification name="WebLaunchPublicIssue">
+ Visite o Rastreador Público de Problemas do [SECOND_LIFE], onde você poderá reportar Bugs e outros Problemas.
+ <usetemplate ignoretext="Ao abrir o navegador web para visualizar o Rastreador Público de Problemas" name="okcancelignore" notext="Cancelar" yestext="Ir para a Página"/>
+ </notification>
+ <notification name="WebLaunchPublicIssueHelp">
+ Visite a Wiki [SECOND_LIFE] para informações sobre como utilizar o Rastrador de Público de Problemas.
+ <usetemplate ignoretext="Ao abrir o navegador web para visualizar a wiki do Rastreador Público de Problemas" name="okcancelignore" notext="Cancelar" yestext="Ir para a página"/>
+ </notification>
+ <notification name="WebLaunchSupportWiki">
+ Ir até o Blog Oficial da Linden buscar pelas últimas notícias e informações.
+ <usetemplate ignoretext="Ao abrir o navegador da web para visualizar o blog" name="okcancelignore" notext="Cancelar" yestext="Ir até a página"/>
+ </notification>
+ <notification name="WebLaunchLSLGuide">
+ Ir para a página guia do LSL para ajuda com script?
+ <usetemplate ignoretext="Ao abrir o navegador web para visualizar o Guia de Scripts." name="okcancelignore" notext="Cancelar" yestext="Ir para a página"/>
+ </notification>
+ <notification name="WebLaunchLSLWiki">
+ Ir para o portal LSL para ajuda com script?
+ <usetemplate ignoretext="Ao abrir o navegador da web para visualizar o Portal de LSL" name="okcancelignore" notext="Cancelar" yestext="Ir para a página"/>
+ </notification>
+ <notification name="ReturnToOwner">
+ Você tem certeza que deseja retornar os objetos selecionados para seus proprietários? Objetos transferíveis doados irão retornar aos proprietários anteriores.
+
+*AVISO* Objetos doados não – transferíveis serão deletados!
+ <usetemplate ignoretext="Ao retornar objetos a seus proprietários" name="okcancelignore" notext="Cancelar" yestext="Retornar"/>
+ </notification>
+ <notification name="GroupLeaveConfirmMember">
+ Você é atualmente um membro do grupo [GROUP].
+Deixar este grupo?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Deixar"/>
+ </notification>
+ <notification name="ConfirmKick">
+ Você quer REALMENTE expulsar todos os usuários deste grid?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Expulsar todos os usuários"/>
+ </notification>
+ <notification name="MuteLinden">
+ Desculpe, você não pode silenciar um Linden.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="CannotStartAuctionAlreadyForSale">
+ Você não pode começar um leilão com um lote que já foi colocado à venda. Desabilite a venda da terra se você tem certeza que deseja iniciar um leilão.
+ </notification>
+ <notification label="Silenciar objeto pelo nome falhou" name="MuteByNameFailed">
+ Você já silenciou este nome.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="RemoveItemWarn">
+ Embora seja permitido, deletar conteúdo pode danificar o objeto. Você quer excluir este item?
+ <usetemplate name="okcancelbuttons" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="CantOfferCallingCard">
+ Não é possível oferecer um cartão de visitas neste momento. Por favor, tente novamente em breve.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="CantOfferFriendship">
+ Não é possível oferecer amizade neste momento. Por favor, tente novamente em breve.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="BusyModeSet">
+ Definido o Modo Ocupado.
+Bate-papo e mensagens instantâneas serão escondidas. Mensagens instantâneas irão receber a sua resposta de modo ocupado. Todas as ofertas de teletransporte serão recusadas. Todas as ofertas de inventário irão para a sua Lixeira.
+ <usetemplate ignoretext="Ao definir o Modo Ocupado" name="okignore" yestext="OK"/>
+ </notification>
+ <notification name="JoinedTooManyGroupsMember">
+ Você já pertence a muitos grupos para entrar em outro. Por favor, deixe pelo menos um grupo antes de entrar neste. Para sair de um grupo, selecione o Menu Editar e a opção Meus &apos;Grupos...&apos;
+[NAME] convidou você para entrar num grupo como membro.
+[INVITE]
+ <usetemplate name="okcancelbuttons" notext="Recusar" yestext="Entrar"/>
+ </notification>
+ <notification name="KickUser">
+ Expulsar este usuário com qual mensagem?
+ <form name="form">
+ <input name="message" type="text">
+ Um administrador desligou você.
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification name="KickAllUsers">
+ Expulsar todo mundo atualmente do grid com qual mensagem?
+ <form name="form">
+ <input name="message" type="text">
+ Um administrador deslogou você.
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification name="FreezeUser">
+ Paralise este usuário com qual mensagem?
+ <form name="form">
+ <input name="message" type="text">
+ Você foi congelado. Você não pode se mover ou conversar. Um administrador irá contatá-lo via mensagem instantânea (MI).
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification name="UnFreezeUser">
+ Liberar este usuário com qual mensagem?
+ <form name="form">
+ <input name="message" type="text">
+ Você não está mais congelado.
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification name="OfferTeleport">
+ Oferecer um teletransporte para sua localização com qual mensagem?
+ <form name="form">
+ <input name="message" type="text">
+ Junte-se a mim em [REGION]
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification name="OfferTeleportFromGod">
+ God user convocou para a sua localização?
+ <form name="form">
+ <input name="message" type="text">
+ Junte-se a mim em [REGION]
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification name="TeleportFromLandmark">
+ Você tem certeza que quer se teletransportar?
+ <usetemplate ignoretext="Ao se teletransportar a partir de uma Landmark no inventário" name="okcancelignore" notext="Cancelar" yestext="Teletransportar"/>
+ </notification>
+ <notification label="Mensagem para todos na sua Propriedade" name="MessageEstate">
+ Digite um breve anúncio que será enviado para todos que estejam atualmente na sua propriedade.
+ <form name="form">
+ <input name="message" type="text"/>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification label="Mudar propriedade Linden" name="ChangeLindenEstate">
+ Você está prestes a mudar uma propriedade pertencente a Linden (continente, teen grid, orientação, etc.)
+
+Isto é EXTREMAMENTE PERIGOSO porque pode fundamentalmente afetar a experiência do usuário. No continente, vai mudar milhares de regiões e fazer o spaceserver soluçar.
+
+Proceder?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Mudar Propriedade"/>
+ </notification>
+ <notification label="Mudar o acesso à propriedade Linden" name="ChangeLindenAccess">
+ Você está prestes a mudar a lista de acessos de uma propriedade pertencente a Linden (continente, teen grid, orientação, etc.).
+
+Isto é PERIGOSO e deveria ser feito apenas para utilizar uma brecha que permita que objetos/L$ sejam transferidos para dentro/fora da grade.
+Isto mudará milhares de regiões e fará o spaceserver soluçar.
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
+ <notification label="Selecione a propriedade" name="EstateAllowedAgentAdd">
+ Adicionar à lista de permitidos somente para esta propriedade ou para [ALL_ESTATES]?
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="Todas as Propriedades" yestext="Esta Propriedade"/>
+ </notification>
+ <notification label="Selecione a propriedade" name="EstateAllowedAgentRemove">
+ Remover da lista de permissão somente para esta propriedade ou para [ALL_ESTATES]?
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="Todas as Propriedades" yestext="Esta Propriedade"/>
+ </notification>
+ <notification label="Seleção de propriedade" name="EstateAllowedGroupAdd">
+ Adicionar à lista de grupos permitidos somente para esta Região ou para [ALL_ESTATES]?
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="Todas as Propriedades" yestext="Esta Propriedade"/>
+ </notification>
+ <notification label="Selecione a propriedade" name="EstateAllowedGroupRemove">
+ Remover da lista de grupos permitidos somente para esta propriedade ou de [ALL_ESTATES]?
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="Todas as Propriedades" yestext="Esta Propriedade"/>
+ </notification>
+ <notification label="Selecione a propriedade" name="EstateBannedAgentAdd">
+ Negar acesso a esta propriedade somente ou para [ALL_ESTATES]?
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="Todas as Propriedades" yestext="Esta Propriedade"/>
+ </notification>
+ <notification label="Selecione a propriedade" name="EstateBannedAgentRemove">
+ Remover este residente da lista de banidos para acesso a esta propriedade apenas ou para [ALL_ESTATES]?
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="Todas as Propriedades" yestext="Esta Propriedade"/>
+ </notification>
+ <notification label="Selecione a propriedade" name="EstateManagerAdd">
+ Adicionar gerente da propriedade para esta propriedade somente ou para [ALL_ESTATES]?
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="Todas as Propriedades" yestext="Esta Propriedade"/>
+ </notification>
+ <notification label="Selecione a propriedade" name="EstateManagerRemove">
+ Remover o gerente da propriedade desta propriedade apenas ou para [ALL_ESTATES]?
+ <usetemplate canceltext="Cancelar" name="yesnocancelbuttons" notext="Todas as Propriedades" yestext="Esta Propriedade"/>
+ </notification>
+ <notification label="Confirmar expulsão" name="EstateKickUser">
+ Expulsar [EVIL_USER] desta propriedade?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Expulsar"/>
+ </notification>
+ <notification name="EstateChangeCovenant">
+ Tem certeza de que deseja mudar o Corretor da Propriedade?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Mudar"/>
+ </notification>
+ <notification name="RegionEntryAccessBlocked">
+ Você não é permitido na Região devido à sua Classificação de maturidade. Isto pode ser o resultado da falta de informação de validação de sua idade.
+
+Por favor, verifique se você está com o último Visualizador instalado e vá ao Banco de Conhecimento para detalhes em como acessar áreas com esta classificação de maturidade.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="RegionEntryAccessBlocked_KB">
+ Você não é permitido nesta região devido à sua Classificação de maturidade.
+
+Ir para o Banco de Conhecimento para maiores informações sobre Classificações de maturidade?
+ <url name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=6010
+ </url>
+ <usetemplate
+ name="okcancelignore"
+ yestext="Ir para o Banco de Conhecimento"
+ notext="Fechar"
+ ignoretext="Quando a entrada na região está bloqueada devido à Classificação de maturidade"/>
+ </notification>
+ <notification name="RegionEntryAccessBlocked_Notify">
+ Você não é permitido nesta região devido à sua Classificação de maturidade.
+ </notification>
+ <notification name="RegionEntryAccessBlocked_Change">
+ Você não é permitido nessa região devido à sua preferência de Classificação de maturidade.
+
+Você pode clicar em &apos;Mudar Preferência&apos; para aumentar sua preferência de Classificação de maturidade agora e permitir sua entrada. Você estará habilitado a buscar e acessar conteúdo [REGIONMATURITY] a partir de agora. Se você desejar mais tarde voltar à configuração anterior, vá para Editar &gt; Preferencias... &gt; Geral.
+ <form>
+ <button
+ name="OK"
+ text="Mudar Preferência"/>
+ <button
+ default="true"
+ name="Cancel"
+ text="Fechar"/>
+ <ignore text="Quando a entrada na Região está bloqueada devido à preferência de Classificação de maturidade"/>
+ </form>
+ </notification>
+ <notification name="LandClaimAccessBlocked">
+ Você não pode reclamar esta terra devido à sua Classificação de maturidade. Isto pode ser o resultado de falta de informação na validação de sua idade.
+
+Por favor, verifique se você tem o último Visualizador instalado e vá para o Banco de Conhecimento para detalhes sobre o acesso de áreas com esta Classificação de maturidade.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="LandClaimAccessBlocked_KB">
+ Você não pode reclamar esta terra devido à sua Classificação de maturidade.
+
+Ir para a o Banco de Conhecimento para maiores informações sobre Classificações de maturidade?
+ <url name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=6010
+ </url>
+ <usetemplate
+ name="okcancelignore"
+ yestext="Ir para o Banco de Conhecimento"
+ notext="Fechar"
+ ignoretext="Quando reclamar a Terra está bloqueado devido à Classificação de maturidade"/>
+ </notification>
+ <notification name="LandClaimAccessBlocked_Notify">
+ Você não pode reclamar esta terra devido à sua Classificação de maturidade.
+ </notification>
+ <notification name="LandClaimAccessBlocked_Change">
+ Você não pode reclamar esta terra devido à sua preferência de Classsificação de maturidade.
+
+Você pode clicar em &apos;Mudar Preferência&apos; para aumentar sua preferência de Classificação de maturidade agora e permitir sua entrada. Você estará habilitado a buscar e acessar conteúdo [REGIONMATURITY] a partir de agora. Se você desejar mais tarde voltar à configuração anterior, vá para Editar &gt; Preferencias... &gt; Geral.
+ <usetemplate
+ name="okcancelignore"
+ yestext="Mudar Preferência"
+ notext="Fechar"
+ ignoretext="Quando reclamar a Terra está bloqueado devido à preferência de Classificação de maturidade"/>
+ </notification>
+ <notification name="LandBuyAccessBlocked">
+ Você não pode comprar esta terra devido à sua Classificação de maturidade. Isto pode ser o resultado de falta de informação na validação de sua idade.
+
+Por favor, verifique se você tem o último Visualizador instalado e vá para o Banco de Conhecimento para detalhes sobre o acesso de áreas com esta Classificação de maturidade.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="LandBuyAccessBlocked_KB">
+ Você não pode comprar esta terra devido à sua Classificação de maturidade.
+
+Ir para o Banco de Conhecimento para maiores informações sobre Classificações de Maturidade?
+ <url name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=6010
+ </url>
+ <usetemplate
+ name="okcancelignore"
+ yestext="Ir para o Banco de Conhecimento"
+ notext="Fechar"
+ ignoretext="Quando a compra de Terra está bloqueada devido à Classificação de maturidade"/>
+ </notification>
+ <notification name="LandBuyAccessBlocked_Notify">
+ Você não pode comprar esta terra devido à sua Classificação de maturidade.
+ </notification>
+ <notification name="LandBuyAccessBlocked_Change">
+ Você não pode comprar esta terra devido à sua preferência de Classificação de maturidade.
+
+Você pode clicar em &apos;Mudar Preferência&apos; para aumentar sua preferência de Classificação de maturidade agora e permitir sua entrada. Você estará habilitado a buscar e acessar conteúdo [REGIONMATURITY] a partir de agora. Se você desejar mais tarde voltar à configuração anterior, vá para Editar &gt; Preferencias... &gt; Geral.
+ <usetemplate
+ name="okcancelignore"
+ yestext="Mudar Preferência"
+ notext="Fechar"
+ ignoretext="Quando a compra de Terra está bloqueada devido à preferência de Classificação de maturidade"/>
+ </notification>
+ <notification name="TooManyPrimsSelected">
+ &quot;Muitos prims foram selecionados. Por favor, selecione [MAX_PRIM_COUNT] ou menos e tente novamente.&quot;
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="ProblemImportingEstateCovenant">
+ Problemas encontrados ao importar o Corretor da propriedade.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <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="ProblemAddingEstateGeneric">
+ Problemas em adicionar a esta lista de propriedades. Uma ou mais propriedades podem ter uma lista cheia.
+ </notification>
+ <notification name="UnableToLoadNotecardAsset">
+ Impossível carregar o notecard da propriedade no momento.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="NotAllowedToViewNotecard">
+ Permissões insuficientes para visualizar notecard associado com o ID do ativo solicitado.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="MissingNotecardAssetID">
+ O ID do ativo do notecard não foi localizado no banco de dados.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="PublishClassified">
+ Lembre-se: Taxas de Anúncios de Classificados não são reembolsáveis.
+
+Publicar este classificado agora por L$ [AMOUNT]?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Publicar"/>
+ </notification>
+ <notification name="SetClassifiedMature">
+ Este classificado contém conteúdo Mature?
+ <usetemplate
+ canceltext="Cancelar"
+ name="yesnocancelbuttons"
+ notext="Não"
+ yestext="Sim"/>
+ </notification>
+ <notification name="SetGroupMature">
+ Este grupo contém conteúdo Mature?
+ <usetemplate
+ canceltext="Cancelar"
+ name="yesnocancelbuttons"
+ notext="Não"
+ yestext="Sim"/>
+ </notification>
+ <notification label="Confirmar reiniciar" name="ConfirmRestart">
+ Você quer realmente reiniciar esta região em 2 minutos?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Reiniciar"/>
+ </notification>
+ <notification label="Mensagem para todos desta Região" name="MessageRegion">
+ Digite um breve aviso que será enviado para todos nesta região.
+ <form name="form">
+ <input name="message" type="text"/>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification label="Bloquear Terraforma" name="HelpRegionBlockTerraform">
+ Se esta opção for assinalada, donos de Terrenos não serão capazes de terraformar independentemente da configuração &apos;Editar Terreno&apos; de suas terras por lote.
+
+Padrão: desligado
+ </notification>
+ <notification label="Bloquear Vôo" name="HelpRegionBlockFly">
+ Se esta caixa estiver marcada, as pessoas não poderão voar nesta região independente das configurações por lote de &apos;Voar&apos;.
+
+Padrão: desligado.
+ </notification>
+ <notification label="Mudança Conjunta das Permissões de Conteúdo" name="HelpBulkPermission">
+ A ferramenta de Mudança Conjunta das Permissões lhe ajuda a mudar, rapidamente, as permissões de múltiplos itens que estão no conteúdo do(s) objeto(s) selecionado(s). Por favor observe que, no entanto, você está apenas definindo permissões para on itens que estão no conteúdo dos objetos selecionados -- não as permissões para o container dos próprios objetos.
+
+Também observe que as permissões não se aplicam aos conteúdos aninhados, contidos em quaisquer dos objetos. Sua solicitação opera apenas nos itens em exatamente um nível de profundidade.
+
+Você pode escolher seletivamente quais tipos de itens modificar, usando a lista de conferência aqui, abaixo de &apos;Tipos de Conteúdo&apos;. Quando você seleciona Texturas, as fotos são incluídas.
+
+* Esta ferramenta apenas mudará as permissões em itens que você pode mudar.
+* Você não pode dar ao Próximo dono, as permissões que você já não tem.
+* As permissões ao Próximo dono são meramente solicitações. Se um dos itens não puder assumir todas as novas permissões, nenhuma delas mudará.
+
+Quando você estiver pronto para mudar as permissões globais, clique &apos;Aplicar&apos; e aguarde os resultados na tela.
+
+Se você fechar a janela de Permissões Conjuntas enquanto elas estiverem sendo alteradas, a operação será suspensa.
+ </notification>
+ <notification label="Permitir Dano" name="HelpRegionAllowDamage">
+ Marcar essa caixa habilita o sistema de vitalidade em todos os lotes independente das configurações individuais. Se esta caixa ficar desmarcada, os proprietários de lotes individuais ainda estarão aptos a ativar o sistema de vitalidade de seus lotes.
+
+Padrão: desligado.
+ </notification>
+ <notification label="Limite de Agentes" name="HelpRegionAgentLimit">
+ Define o número máximo de residentes permitidos nesta região.
+Quanto mais residentes existirem em sua região, pior pode ser a performance.
+
+Padrão: 40
+ </notification>
+ <notification label="Bonus de Objetos" name="HelpRegionObjectBonus">
+ O Bônus de objetos é um multiplicador para primitivas permitidas em qualquer lote. O intervalo permitido é de 1 a 10.
+Se fixado em &apos;1 &apos;, 512m² de cada lote permitem 117 objetos.
+Fixado em &apos;2 &apos;, 512m² cada lote permitem 234, ou o dobro, e assim por diante.
+O número máximo de objetos permitidos por região permanece 15000 não importa qual seja o Bônus de objeto. Uma vez estabelecido, esteja ciente de que a redução do Bônus de objetos pode retornar objetos ou apagá-los.
+
+Padrão: 1.0
+ </notification>
+ <notification label="Maturidade" name="HelpRegionMaturity">
+ Define a Classificação de Maturidade da região, como mostrado na barra de menu, no topo de qualquer visualizador do Residente e nas dicas no Mapa-Mundi, quando o cursor passa sobre esta Região. Esta definição também afeta o acesso a esta Região e aos resultados de busca. Outros Residentes podem apenas entrar em Regiões ou ver resultados de busca com a mesma Classificação de maturidade que eles escolheram em suas preferências.
+
+Pode levar algum tempo até que esta mudança se reflita no mapa.
+ </notification>
+ <notification label="Restringir Empurrar" name="HelpRegionRestrictPushObject">
+ Esta caixa de verificação Configura toda a região para permissões restritivas de empurrar.
+Quando habilitada, os agentes só podem empurrar a si mesmos ou serem empurrados pelo dono do lote.
+(Empurrar se refere à função LSL llPushObject().)
+
+Padrão: Desligado.
+ </notification>
+ <notification label="Unir/dividir lote" name="HelpParcelChanges">
+ Configura se os lotes que não pertencem ao dono da propriedade podem ser unidos ou subdivididos.
+Se esta opção estiver desmarcada:
+ * Apenas os donos ou gerentes de propriedades podem unir ou dividir lotes.
+ * Eles podem unir ou subdividir lotes pertencentes ao dono ou ao grupo onde eles tem os poderes apropriados.
+Se esta opção estiver marcada:
+ * Todos os donos de lotes podem unir ou subdividir os lotes que eles possuem.
+ * Para lotes pertencentes a grupos, aqueles com os poderes apropriados podem unir ou subdividir lotes.
+
+Padrão: Marcado.
+ </notification>
+ <notification label="Não Mostrar na Pesquisa" name="HelpRegionSearch">
+ Ao marcar esta caixa irá bloquear os donos de lotes de listar seus lotes na busca
+
+Padrão: desligado
+ </notification>
+ <notification label="Modificar a maturidade da Região" name="RegionMaturityChange">
+ A classificação de maturidade para esta região foi atualizada.
+Pode levar algum tempo para que a mudança seja refletida no mapa.
+ </notification>
+ <notification label="Revenda de Terreno" name="HelpRegionLandResell">
+ Os gerentes e os donos de propriedades podem vender qualquer terreno pertencente ao dono da propriedade.
+Se esta opção estiver desmarcada, os compradores não podem revender seus terrenos nesta região.
+Se esta opção estiver marcada, compradores podem vender seus terrenos nesta região.
+
+Padrão: Desabilitada.
+ </notification>
+ <notification label="Desabilitar Scripts" name="HelpRegionDisableScripts">
+ Quando a performance do simulador está ruim, um script pode ser o culpado. Abra a Barra de Estatísticas (Ctrl-Shift-1). Olhe no Simulador de Física FPS. Se estiver abaixo de 45, então abra o painel &apos;Tempo&apos; localizado na parte de baixo da Barra de Estatísticas. Se o Tempo de Script indicar 25 ms ou mais, clique no botão &apos;Get Top CScripts&apos;. Será dado o nome e a localização do script que pode estar causando uma performance ruim. Marque a caixa &apos;Desabilitar Scripts&apos; e aperte o botão &apos;Aplicar&apos;. Isto temporariamente desabilitará todos os scripts nesta região. Uma vez que você chegar ao local, investigue o script para determinar se ele está causando o problema. Você pode querer entrar em contato com o proprietário do script, excluir ou devolver o objeto. Desmarque a caixa &apos;Desabilitar Script&apos; e então clique em &apos;Aplicar&apos; para reativar os scripts na região. Padrão: desligado.
+ </notification>
+ <notification label="Desabilitar Colisões" name="HelpRegionDisableCollisions">
+ Quando a performance do simulador é pobre, os objetos físicos podem ser os culpados.Abra a a Barra de Estatísticas (Ctrl-Shift-1).
+Olhe a taxa de quadros por segundos (FPS) dos objetos físicos.
+
+Se ela estiver abaixo de 45, abra o painel de Tempo, localizado na parte inferior da Barra de Estatísticas. Se o Tempo (Físicos) do Simulador mostrar 20 ms ou mais, clique o botão &apos;Pegue os Maiores Colidentes&apos;. Será fornecido a você o nome e a localidade dos objetos físicos que podem estar causando uma performance pobre.
+Ativando a caixa Desabilitar Colisões e então pressionando o botão Aplicar, as colisões objeto-objeto serão temporariamente desabilitadas. Você pode precisar fazer isso para que possa viajar até a localidade onde observou um &apos;colidente-mor&apos;. Uma vez tendo chegado à localidade, investigue o objeto – ele está constantemente colidindo com outros objetos? Você pode desejar contatar o dono do objeto ou deletar ou retornar o objeto.
+Desative a caixa &apos;Desabilitar Colisões&apos; e então use &apos;Aplicar&apos; para reativar as colisões na região.
+
+Padrão: off
+ </notification>
+ <notification label="Desabilitar Física" name="HelpRegionDisablePhysics">
+ Desabilitar Física é similar a desabilitar Colisões, com exceção de que todas as simulações físicas serão desabilitadas. Isto significa que não só os objetos pararão de colidir, mas também que os avatares não poderão se mover.
+
+Isto só deve ser usado quando Desabilitar Colisões não trouxer performance suficiente à região para investigar um problema de Física ou do &apos;Colidente-Mor&apos;.
+
+Esteja certo de reabilitar Física quando você terminar, ou os avatares não poderão se mover.
+
+Default: desligado
+ </notification>
+ <notification label="Principais Colidentes" name="HelpRegionTopColliders">
+ Mostra uma lista de objetos com o maior número de potenciais colisões objeto-objeto. Estes objetos podem diminuir a performance do simulador.
+Selecione Ver &gt; Barra de Estatísticas e olhe em Simulador &gt; Tempo &gt; Tempo de Simulação (Física) para ver se mais de 20 ms são gastos em física.
+ </notification>
+ <notification label="Principais Scripts" name="HelpRegionTopScripts">
+ Mostra uma lista dos objetos gastando mais tempo rodando scripts LSL. Estes objetos podem diminuir a performance do simulador.
+Selecione Ver &gt; Barra de Estatísticas e olhe em Simulador &gt; Tempo &gt; Tempo de Script para ver se mais de 25 ms são gastos em scripts.
+ </notification>
+ <notification label="Reiniciar Região" name="HelpRegionRestart">
+ Reinicia o processo do servidor rodando esta região, após um aviso de dois minutos. Todos os residentes nesta região serão desconectados. A região salvará seus dados e deverá retornar em até 90 segundos.
+
+Reiniciar a região não consertará a maioria dos problemas de performance, e deveria ser utilizada somente quando solicitado.
+ </notification>
+ <notification label="Altura da água" name="HelpRegionWaterHeight">
+ Esta é a altura em metros onde a água aparece. Caso este ajuste seja diferente de 20 e você tenha águas adjacentes ao limite do seu terreno ou águas continentais, haverá uma abertura visível.
+
+Padrão: 20
+ </notification>
+ <notification label="Limite do aumento" name="HelpRegionTerrainRaise">
+ Esta é a distância em metros que os donos de lotes podem elevar o terreno, a partir da altura nivelada do terreno.
+
+Padrão: 4
+ </notification>
+ <notification label="Limite mais baixo" name="HelpRegionTerrainLower">
+ Esta é a distância em metros que os donos de lotes podem abaixar o terreno, a partir da altura nivelada do terreno.
+
+Padrão: -4
+ </notification>
+ <notification label="Carregar terreno RAW" name="HelpRegionUploadRaw">
+ Este botão faz upload de um arquivo .RAW para a região em que você está.
+O arquivo precisa conter as dimensões/número de canais corretos: RGB, 256x256 e 13 canais. A melhor forma de criar um arquivo da região é baixando o arquivo .RAW existente. Um bom primeiro passo seria modificar o primeiro canal (altura da região) e fazer o upload do arquivo.
+
+O upload pode levar certa de 45 segundos. Note que fazer upload do arquivo da região *não* moverá os objetos que estão na região, apenas o terreno e as permissões associadas a ele. Isso pode fazer com que alguns objetos fiquem debaixo da terra.
+
+Para mais informações sobre edição dos campos de altura da região, consulte a ajuda F1.
+ </notification>
+ <notification label="Baixar RAW de terreno" name="HelpRegionDownloadRaw">
+ Este botão faz download de um arquivo contendo dados de altura do campo, dimensões do lote, status de lotes à venda e algumas permissões de lote para este terreno. Ao abrir o arquivo em programas como o Photoshop, você precisa especificar as dimensões do documento, que são: RGB, 256x256 com 13 canais. Este arquivo de terras não pode ser aberto de outra forma.
+
+Para mais informações sobre edição dos campos de altura da região, consulte a Ajuda F1.
+ </notification>
+ <notification label="Usar Sol da Propriedade" name="HelpRegionUseEstateSun">
+ Esta caixa de opção faz com que a posição do sol nesta região seja a mesma que no resto da região.
+
+Padrão: ligada
+ </notification>
+ <notification label="Sol fixo" name="HelpRegionFixedSun">
+ Esta caixa de opção ajusta a posição do sol no equalizador de fuso e interrompe o movimento do sol.
+
+Padrão: desligada
+ </notification>
+ <notification label="Nivelar Terreno" name="HelpRegionBakeTerrain">
+ Este botão salva a forma atual do terreno como o novo padrão para a região. Uma vez nivelado, o terreno pode reverter à forma que foi salva, sempre que você ou outros utilizarem a ferramenta &apos;Revert&apos; na edição de terreno. O terreno nivelado é também o ponto médio entre os limites de elevação e redução de terreno.
+ </notification>
+ <notification label="Gerentes da Propriedade" name="HelpEstateEstateManager">
+ Um gerente da propriedade é um residente a quem você delegou o controle das configurações da região. Ele pode alterar qualquer configuração da região, com exceção de elevar, abaixar ou nivelar o terreno. Em particular, eles podem permitir ou banir residentes da sua propriedade. Gerentes da propriedade só podem ser adicionados ou removidos pelo dono da propriedade.
+
+Um gerente não pode adicionar ou remover outro gerente. Por favor, escolha somente residentes em quem você confia para serem gerentes da propriedade, pois você poderá ser responsabilizado pelas ações deles.
+ </notification>
+ <notification label="Usar hora Global" name="HelpEstateUseGlobalTime">
+ Esta caixa de opção faz com que o Sol em sua propriedade siga a mesma posição do Sol nas propriedades da &apos;mainland&apos; do Linden Lab.
+
+Padrão: ligado
+ </notification>
+ <notification label="Sol fixo" name="HelpEstateFixedSun">
+ Esta caixa de opção ajusta a posição do sol no equalizador de fuso e interrompe o movimento do sol.
+ </notification>
+ <notification label="Acesso público" name="HelpEstateExternallyVisible">
+ Esta caixa de verificação define se os Residentes que estão em outras propriedades podem entrar nesta, sem estar em uma lista de acesso.
+
+Padrão: on
+ </notification>
+ <notification label="Permitir Teletransporte direto" name="HelpEstateAllowDirectTeleport">
+ Quando marcada, permite que os residentes se teletransportem diretamente para qualquer ponto da sua propriedade. Quando desmarcada, os residentes serão teleportados para o telehub mais próximo.
+
+Padrão: desmarcada
+ </notification>
+ <notification label="Permitir acesso" name="HelpEstateAllowResident">
+ Acesso a esta propriedade estará limitado aos Residentes listados aqui e em quaisquer grupos abaixo.
+Esta definição está disponível apenas quando o Acesso Público estiver desmarcado.
+ </notification>
+ <notification label="Permitir acesso de grupo" name="HelpEstateAllowGroup">
+ Acesso a esta propriedade estará limitado aos grupos listados aqui e a quaisquer Residentes acima.
+Esta definição está disponível apenas quando o Acesso Público estiver desmarcado.
+ </notification>
+ <notification label="Endereço de Email do Abuso" name="HelpEstateAbuseEmailAddress">
+ Configurar isto para um endereço de email válido, fará com que relatos de abuso nesta propriedade sejam enviados para esse endereço.
+Definí-lo em branco fará com que os relatórios de abuso sejam enviados apenas para a Linden Lab.
+ </notification>
+ <notification label="Negar acesso" name="HelpEstateBanResident">
+ Residentes desta lista estão proibidos de acessar a sua propriedade, independentemente de outras configurações.
+ </notification>
+ <notification label="Permitir Conversa por Voz" name="HelpEstateVoiceChat">
+ Lotes nesta propriedade têm permissão para ter seus canais de voz próprios, nos quais os residentes podem ouvir e falar com os outros residentes próximos.
+
+Padrão: desligado
+ </notification>
+ <notification label="Discordância de Versão de Voz" name="VoiceVersionMismatch">
+ Esta versão do Second Life não é compatível com as características do Canal de Voz desta região. Para que a Conversa por Voz funcione corretamente, você precisará atualizar o Second Life.
+ </notification>
+ <notification label="Corretor da Propriedade" name="HelpEstateCovenant">
+ Definir um corretor da propriedade lhe permite vender lotes nesta propriedade. Se um corretor não for definido, você não pode vender terras. O cartão do seu corretor pode ficar vazio se você não desejar aplicar quaisquer regras ou avisar os compradores sobre qualquer coisa em relação ao lote antes da compra.
+
+Um corretor pode ser usado para comunicar regras, orientações, informações culturais ou simplesmente suas expectativas quanto ao futuro comprador. Isto pode incluir zoneamento, regulamentos para construções, opções de pagamento ou qualquer outra informação que você julgar importante que o novo proprietário veja e concorde antes da compra.
+
+O comprador precisa concordar com o corretor marcando a caixa de verificação antes de concluir a compra. Corretores são sempre visíveis na caixa de diálogo &apos;Sobre a Terra&apos; para todos os lotes que têm corretores definidos.
+ </notification>
+ <notification label="Impossível Comprar Objetos" name="BuyObjectOneOwner">
+ Não é possível comprar objetos de diferentes proprietários ao mesmo tempo.
+Por favor, selecione apenas um objeto e tente novamente.
+ </notification>
+ <notification label="Impossível Comprar Conteúdos" name="BuyContentsOneOnly">
+ Não é possível comprar os conteúdos de mais de um objeto ao mesmo tempo.
+Por favor, selecione apenas um objeto e tente novamente.
+ </notification>
+ <notification label="Impossível Comprar Conteúdos" name="BuyContentsOneOwner">
+ Não é possível comprar objetos de diferentes proprietários ao mesmo tempo.
+Por favor, selecione apenas um objeto e tente novamente.
+ </notification>
+ <notification name="BuyOriginal">
+ Comprar o objeto original de [OWNER] por L$[PRICE]?
+Você se tornará o proprietário deste objeto.
+Você poderá:
+ Modificar: [MODIFYPERM]
+ Copiar: [COPYPERM]
+ Revender ou Doar: [RESELLPERM]
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Comprar"/>
+ </notification>
+ <notification name="BuyOriginalNoOwner">
+ Comprar o objeto original por L$[PRICE]?
+Você se tornará o proprietário deste objeto.
+Você poderá:
+ Modificar: [MODIFYPERM]
+ Copiar: [COPYPERM]
+ Revender ou Doar: [RESELLPERM]
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Comprar"/>
+ </notification>
+ <notification name="BuyCopy">
+ Comprar uma cópia de [OWNER] por L$[PRICE]?
+O objeto será copiado para o seu inventário.
+Você poderá:
+ Modificar: [MODIFYPERM]
+ Copiar: [COPYPERM]
+ Revender ou Doar: [RESELLPERM]
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Comprar"/>
+ </notification>
+ <notification name="BuyCopyNoOwner">
+ Comprar uma cópia por L$[PRICE]?
+O objeto será copiado para o seu inventário.
+Você poderá:
+ Modificar: [MODIFYPERM]
+ Copiar: [COPYPERM]
+ Revender ou Doar: [RESELLPERM]
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Comprar"/>
+ </notification>
+ <notification name="BuyContents">
+ Comprar conteúdo de [OWNER] por L$[PRICE]?
+Eles serão copiados para o seu inventário.
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Comprar"/>
+ </notification>
+ <notification name="BuyContentsNoOwner">
+ Comprar conteúdo por L$[PRICE]?
+Eles serão copiados para o seu inventário.
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Comprar"/>
+ </notification>
+ <notification name="ConfirmPurchase">
+ Esta transação fará:
+[ACTION]
+
+Você tem certeza de que deseja prosseguir com esta compra?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Confirmar"/>
+ </notification>
+ <notification name="ConfirmPurchasePassword" type="password">
+ Esta transação fará:
+[ACTION]
+
+Você tem certeza de que deseja prosseguir com esta compra?
+Por favor, re-insira sua senha e clique &apos;Confirmar Compra&apos;.
+ <form name="form">
+ <input name="message" type="password"/>
+ <button name="ConfirmPurchase" text="Confirmar Compra"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification name="SetPickLocation">
+ Nota: Você atualizou a localidade desta pick mas os outros detalhes ficarão com seus valores originais.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="MoveInventoryFromObject">
+ Você selecionou itens &apos;no copy&apos; do inventário.
+Estes itens serão movidos para o seu inventário, não copiados.
+
+Mover os itens do inventário?
+ <usetemplate ignoretext="Quando estiver movendo inventário não copiável a partir de objetos." name="okcancelignore" notext="Não mover" yestext="Mover"/>
+ </notification>
+ <notification name="MoveInventoryFromScriptedObject">
+ Você selecionou itens de inventário não copiáveis.
+Estes itens serão movidos para seu inventário, não copiados. Pelo fato de o objeto ter scripts, mover estes itens ao inventário pode provocar um mal funcionamento do script.
+
+Mover para o inventário o(s) item(s)?
+ <usetemplate ignoretext="Quando movendo objetos com scripts não copiáveis ao inventário" name="okcancelignore" notext="Não mover" yestext="Mover"/>
+ </notification>
+ <notification name="ClickActionNotPayable">
+ Aviso: A ação de Pagar ao Objeto com clique foi definida, mas funcionará apenas se for adicionado um script com o evento money().
+ <form name="form">
+ <ignore name="ignore" text="Quando Definindo &apos;Pagar&apos; em objetos sem eventos money()"/>
+ </form>
+ </notification>
+ <notification name="OpenObjectCannotCopy">
+ Não há itens neste objeto que você está autorizado a copiar.
+ </notification>
+ <notification name="WebLaunchAccountHistory">
+ Ir para o site do Second Life para visualizar o histórico de sua conta?
+ <usetemplate ignoretext="Ao abrir a página web de histórico de conta" name="okcancelignore" notext="Cancelar" yestext="Ir para a página"/>
+ </notification>
+ <notification name="ClickOpenF1Help">
+ Visitar o website de Suporte do Second Life?
+ <usetemplate ignoretext="Quando visitando o website de Suporte do Second Life" name="okcancelignore" notext="Cancelar" yestext="Ir"/>
+ </notification>
+ <notification name="ConfirmQuit">
+ Tem certeza que deseja sair?
+ <usetemplate ignoretext="Quando Saindo do Second Life." name="okcancelignore" notext="Continuar" yestext="Sair"/>
+ </notification>
+ <notification name="HelpReportAbuseEmailLL">
+ Use esta ferramenta para reportar violações aos Termos de Serviço e aos Padrões da Comunidade. Veja:
+
+http://secondlife.com/corporate/tos.php
+http://secondlife.com/corporate/cs.php
+
+Todos os abusos aos Termos de Serviço e aos Padrões da Comunidade reportados, são investigados e resolvidos. Você pode ver a resolução do incidente na Reportagem de Incidentes em:
+
+http://secondlife.com/support/incidentreport.php
+ </notification>
+ <notification name="HelpReportAbuseEmailEO">
+ IMPORTANTE: Esta reportagem irá para o dono da região em que você se encontra atualmente e não para a Linden Lab.
+
+Como um serviço aos residentes e visitantes, o dono da região em que você se encontra foi eleito para receber e resolver todas as reportagens originadas nesta região. A Linden Lab não irá investigar reportagens que você envia desta localidade.
+
+O dono da região resolverá as reportagens baseado nas regras locais desta região, como definido na Declaração da propriedade.
+(Veja as declarações indo ao menu Mundo e selecionando Sobre a Terra.)
+
+A resolução desta reportagem se aplica apenas a esta região; o acesso de Residentes às outras áreas do Second Life não será afetado pelas decisões desta reportagem.
+Apenas a Linden Lab pode restringir acesso a todo o Second Life.
+ </notification>
+ <notification name="HelpReportBug">
+ Use esta ferramenta para reportar *apenas* características técnicas que não atuem como descrito ou esperado.
+Por favor, forneça tantos detalhes quanto possível.
+Você pode responder ao e-mail de resposta automática para adicionar mais detalhes à sua reportagem.
+
+Todas as reportagens de bugs são investigadas e avaliadas.
+Nenhum e-mail de resposta será enviado.
+
+Se você estiver tendo uma dificuldade técnica, por favor contate o Suporte em:
+http://secondlife.com/community/support.php
+
+Nota: reportagens incompletas não serão investigadas
+ </notification>
+ <notification name="HelpReportAbuseSelectCategory">
+ Por favor, selecione uma categoria para a reportagem deste abuso.
+A seleção de uma categoria nos ajuda a arquivar e processar as reportagens de abuso.
+ </notification>
+ <notification name="HelpReportBugSelectCategory">
+ Por favor, selecione uma categoria para este bug.
+A seleção de uma categoria nos ajuda a arquivar e processar as reportagens de bugs.
+ </notification>
+ <notification name="HelpReportAbuseAbuserNameEmpty">
+ Por favor, entre com o nome do perturbador.
+Entrando com um valor preciso, nos ajuda a arquivar e processar as reportagens de abuso.
+ </notification>
+ <notification name="HelpReportAbuseAbuserLocationEmpty">
+ Por favor, entre com a localidade aonde o abuso aconteceu.
+Entrando com um valor preciso, nos ajuda a arquivar e processar as reportagens de abuso.
+ </notification>
+ <notification name="HelpReportAbuseSummaryEmpty">
+ Por favor, digite um resumo de como ocorreu o abuso.
+Fazer um resumo detalhado nos ajuda a arquivar e processar as reportagens de abuso.
+ </notification>
+ <notification name="HelpReportBugSummaryEmpty">
+ Por favor, digite um resumo do bug. Realizar um resumo detalhado nos ajuda a arquivar e processar as reportagens de abuso.
+ </notification>
+ <notification name="HelpReportAbuseDetailsEmpty">
+ Por favor, digite uma descrição detalhada do abuso que ocorreu.
+Seja tão específico quanto você puder, incluindo nomes e os detalhes do incidente que está denunciando.
+Fazer uma descrição precisa nos ajuda a arquivar e processar as reportagens de abuso.
+ </notification>
+ <notification name="HelpReportBugDetailsEmpty">
+ Por favor, digite uma descrição detalhada do bug.
+Seja tão específico quanto você puder, incluindo as etapas para reproduzir o bug, se possível.
+Fazer uma descrição precisa nos ajuda a arquivar e processar os relatórios de bugs.
+ </notification>
+ <notification name="HelpReportAbuseContainsCopyright">
+ Caro Residente,
+
+Você parece estar relatando violação de propriedade intelectual. Por favor, certifique-se de que está relatando corretamente:
+
+(1) O Processo de abuso. Você pode apresentar um relatório de abuso se você acredita que um Residente está infringindo o sistema de permissões do Second Life, por exemplo, utilizando ferramentas CopyBot para copiar ou similar, para violar os direitos de propriedade intelectual. A Equipe de Abuso investiga e divulga a ação disciplinar adequada para o comportamento que viola o Estatuto da Comunidade do Second Life ou os Termos de Serviço. No entanto, a mesma não controla e não irá responder aos pedidos para remover o conteúdo do mundo Second Life.
+
+(2) O processo de remoção de conteúdo ou DMCA. Para solicitar a remoção de conteúdo do Second Life, você deve enviar uma notificação válida de infração, conforme previsto em nossa Política de DMCA em http://secondlife.com/corporate/dmca.php.
+
+Se você ainda deseja prosseguir com o processo de abuso, por favor, feche esta janela e termine de enviar seu relatório. Pode ser necessário selecionar a categoria específica &apos;CopyBot Infração de Permissões&apos;.
+
+Obrigado,
+Linden Lab
+ </notification>
+ <notification name="FailedRequirementsCheck">
+ Não foram encontrados os seguintes componentes requeridos de [FLOATER]:
+[COMPONENTS]
+ </notification>
+ <notification label="Substituir anexo existente" name="ReplaceAttachment">
+ Já existe um objeto anexado a este ponto do seu corpo.
+Você deseja substituí-lo pelo objeto selecionado?
+ <form name="form">
+ <ignore name="ignore" save_option="true" text="Ao substituir os anexos existentes"/>
+ <button name="Yes" text="Sim"/>
+ <button name="No" text="Não"/>
+ </form>
+ </notification>
+ <notification label="Aviso de Modo Ocupado" name="BusyModePay">
+ Você está no modo Ocupado, o que significa que você não receberá quaisquer itens oferecidos em troca deste pagamento.
+
+Você gostaria de deixar o modo Ocupado antes de completar esta transação?
+ <form name="form">
+ <ignore name="ignore" save_option="true" text="Ao pagar uma pessoa ou objeto no modo ocupado"/>
+ <button name="Yes" text="Sim"/>
+ <button name="No" text="Não"/>
+ </form>
+ </notification>
+ <notification name="ConfirmEmptyTrash">
+ Tem certeza de que deseja remover permanentemente o conteúdo da lixeira de seu inventário?
+ <usetemplate ignoretext="Ao esvaziar a pasta da lixeira no seu inventário" name="okcancelignore" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="ConfirmClearBrowserCache">
+ Você tem certeza que deseja limpar o cache do seu navegador?
+ <usetemplate name="okcancelbuttons" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="ConfirmClearCookies">
+ Você tem certeza de que deseja limpar os cookies?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Sim"/>
+ </notification>
+ <notification name="ConfirmClearMediaUrlList">
+ Você tem certeza de que deseja limpar toda sua lista de URLs?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Sim"/>
+ </notification>
+ <notification name="ConfirmEmptyLostAndFound">
+ Deseja realmente remover permanentemente o conteúdo da pasta achados e perdidos?
+ <usetemplate ignoretext="Ao esvaziar pasta Achados e Perdidos do seu inventário" name="okcancelignore" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="CopySLURL">
+ A seguinte SLURL foi copiada para o seu clipboard:
+ [SLURL]
+
+Coloque-a em uma página web para dar aos outros um fácil acesso a este local ou tente você, colando-a na barra de endereços do seu navegador.
+ <form name="form">
+ <ignore name="ignore" text="Ao copiar a SURL para o seu clipboard"/>
+ </form>
+ </notification>
+ <notification name="GraphicsPreferencesHelp">
+ Este painel controla o tamanho da janela, resolução e a qualidade dos gráficos do computador cliente. O Preferências &gt; Interface Gráfica permite escolher entre quatro níveis gráficos: Baixo, Médio, Alto e Ultra. Você também pode personalizar suas configurações de gráficos selecionando a opção Custom e manipulando as seguintes definições:
+
+Sombreamento: Ativar ou desativar vários tipos de sobreadores de pixel.
+
+Detalhes de Reflexão: Define os tipos de objetos que a água pode refletir.
+
+Renderização de Avatar: Define opções que afetam a forma como o cliente renderizará os avatares.
+
+Alcance: Afeta a distância do seu ponto de vista que os objetos serão renderizados na cena.
+
+Número máximo de partículas: Define o número máximo de partículas que será capaz de ver na sua tela de uma só vez.
+
+Qualidade de Pós-Processamento: Define a resolução com a qual o brilho será renderizado.
+
+Detalhes de malha: Ajusta a quantidade de detalhes ou número de triângulos utilizados na renderização de certos objetos. Um valor mais alto leva mais tempo para renderizar, mas torna esses objetos mais detalhados.
+
+Detalhe de Iluminação: Seleciona os tipos de luzes que você gostaria de renderizar.
+
+Detalhe de Terreno: Ajusta a quantidade de detalhes que você gostaria de ver para a textura do terreno.
+ </notification>
+ <notification name="WLSavePresetAlert">
+ Você deseja substituir a pré-configuração salva?
+ <usetemplate name="okcancelbuttons" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="WLDeletePresetAlert">
+ Você deseja apagar [SKY]?
+ <usetemplate name="okcancelbuttons" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="WLNoEditDefault">
+ Você não pode editar ou excluir um padrão predefinido.
+ </notification>
+ <notification name="WLMissingSky">
+ Este arquivo de ciclo de dia se refere a um arquivo de céu faltando: [SKY].
+ </notification>
+ <notification name="PPSaveEffectAlert">
+ Existe efeito de Pós-Processamento. Você deseja substituí-lo?
+ <usetemplate name="okcancelbuttons" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="HelpEditSky">
+ Editar os controles graduais do WindLight para configurar e salvar um conjunto de céus.
+ </notification>
+ <notification name="HelpEditDayCycle">
+ Definir quais céus colocar durante todo o dia.
+ </notification>
+ <notification name="EnvSettingsHelpButton">
+ Essas configurações ajustam a forma como o ambiente parece localmente no seu computador. Sua placa de vídeo precisa suportar o sombreador atmosférico, a fim de ter acesso a todas as definições.
+
+Ajuste o controle gradual &quot;Hora do Dia&quot; para alterar a fase do dia localmente no visualizador.
+
+Ajuste o controle gradual de &quot;Cobertura das nuvens&quot; para controlar quantas nuvens cobrem o céu.
+
+Pegue uma cor na paleta de cores de &quot;Cor da Água&quot; para mudar a cor desta.
+
+Ajuste o controle gradual de &quot;Névoa de Água&quot; para controlar o quão densa é a névoa dentro da água.
+
+Clique &quot;Usar Horário da Propriedade&quot; para redefinir a hora do dia para o horário atual do dia da região e permanecer atrelado a ela.
+
+Clique &quot;Céu Avançado &quot; para abrir um editor com configurações mais avançadas para o céu.
+
+Clique &quot;Água Avançada &quot; para abrir um editor com configurações mais avançadas para a água.
+ </notification>
+ <notification name="HelpDayCycle">
+ O editor de Ciclo do Dia dá a você o controle do céu durante um ciclo de dia/noite do Second Life. Este é o ciclo usado pelo controle gradual da hora do dia do editor de ambiente básico.
+
+O editor do ciclo de dia trabalha configurando quadros-chave. Estes são pontos (representados pelos ícones cinza no gráfico de horário) que possuem um pré-ajuste de céu associado a eles. Conforme o dia passa, o céu do Windlight &quot; anima &quot; a interpolação entre esses quadros-chave.
+
+A seta amarela acima da linha de tempo representa a sua vista atual, baseada no horário do dia. Clique e arraste para ver como o seu dia será animado. Você pode adicionar ou deletar os quadros-chave pressionando os botões Adicionar Chave e Deletar chave ao lado direito da linha de tempo.
+
+Você pode configurar a posição do tempo de um quadro-chave arrastando-o pela linha do tempo, ou configurando manualmente no quadro de configurações do seu quadro-chave. Será possível a você associar o seu quadro-chave a este respectivo padrão WindLight.
+
+A duração do ciclo determina a duração geral do &quot;dia&quot;. Configurá-la para um valor baixo (por exmplo, 2 min.) quer dizer que a linha do tempo de 24 horas será animada completamente em apenas dois minutos reais! Assim que estiver satisfeito com a linha do tempo e o ciclo dos quadros-chave, use os botões Play e Stop para uma prévia de como ficará o resultado. Lembre-se, você também pode utilizar a seta amarela indicadora do tempo acima da linha do tempo para ver o ciclo animado interativamente. Usando o botão do tempo da popriedade irá sincronizar a duração do seu dia ao ciclo diário da propriedade.
+
+Assim que estiver satisfeito com o seu ciclo diário, você pode salvá-lo ou carregá-lo através dos botões Salvar Dia Teste e Carregar Dia Teste. Note que, por enquanto, nós permitimos apenas um Ciclo de dia.
+ </notification>
+ <notification name="HelpBlueHorizon">
+ Use os cursores Vermelho/Verde/Azul ( Red/Green/Blue -RGB) para ajustar as cores do céu. Você também pode usar o controle de Intensidade (I) para mover os três controles RGB simultaneamente.
+ </notification>
+ <notification name="HelpHazeHorizon">
+ Haze Horizon é um dos parâmetros mais úteis para ajuste global de exposição de luz na cena. Ele é eficaz para simular diversas configurações de exposição, tais como configurações para super-exposição do sol e escuros halos de Iris.
+ </notification>
+ <notification name="HelpBlueDensity">
+ A densidade global azul afeta a saturação da cor do céu e nevoeiro. Se você mover o controle gradual de intensidade (I) para a direita, as cores vão se tornar mais brilhantes e vibrantes. Se você movê-lo totalmente para a esquerda, as cores perdem intensidade e cor, eventualmente chegando a preto e branco. Se pretende um ajuste fino do equilíbrio de cor do céu, você pode controlar os diversos elementos da saturação, utilizando os controles graduais para vermelho / verde / azul (RGB).
+ </notification>
+ <notification name="HelpHazeDensity">
+ Densidade de Poeira controla o nível de fumaça, poeira cinza na atmosfera. Eficaz para simular cenas com altos níveis de poeira e poluentes. É também efetivo em simular névoa e nevoeiro.
+ </notification>
+ <notification name="HelpDensityMult">
+ O Multiplicador de Densidade pode ser usado para afetar a densidade atmosférica global. Com definições mais baixas, ele cria uma sensação de &quot;ar rarefeito&quot; e em definições mais altas, ele cria um efeito mais denso, mais esfumaçado.
+ </notification>
+ <notification name="HelpDistanceMult">
+ Ajusta como a distância no WindLight é percebida. Um valor zero efetivamente desativa a influência do WindLight sobre terrenos e objetos. Valores superiores a 1 simulam os efeitos atmosféricos mais espessos a maiores distâncias.
+ </notification>
+ <notification name="HelpMaxAltitude">
+ Max Altitude ajusta os cálculos de performance de altitude do WindLight, quando computa sua iluminação atmosférica. Em períodos vespertinos do dia, é útil para ajustar a &quot;profundidade&quot; de como o pôr-do-sol aparece.
+ </notification>
+ <notification name="HelpSunlightColor">
+ Ajustar a cor e intensidade da luz direta na cena.
+ </notification>
+ <notification name="HelpSunAmbient">
+ Ajusta a cor e a intensidade da luz ambiente atmosférica na cena.
+ </notification>
+ <notification name="HelpSunGlow">
+ O controle gradual de Tamanho controla o tamanho do sol.
+O controle gradual de Foco controla o quanto o sol aparecerá desfocado no céu.
+ </notification>
+ <notification name="HelpSceneGamma">
+ Ajusta a distribuição na tela de luz e escuridão.
+ </notification>
+ <notification name="HelpStarBrightness">
+ Ajusta o brilho das estrelas no céu.
+ </notification>
+ <notification name="HelpTimeOfDay">
+ Controla a localização do sol no céu. Semelhante a elevação.
+ </notification>
+ <notification name="HelpEastAngle">
+ Controla a localização do sol no céu.
+Similar ao azimute.
+ </notification>
+ <notification name="HelpCloudColor">
+ Edita as cores das nuvens, É normalmente recomendado manter o tom esbranquiçado, mas hey! Você pode se divertir se desejar.
+ </notification>
+ <notification name="HelpCloudDetail">
+ Controla os detalhes da camada de imagem superior na imagem de nuvem principal. X e Y controla sua posição. D (Densidade) controla o quão cheio ou estratificada as nuvens devem aparecer.
+ </notification>
+ <notification name="HelpCloudDensity">
+ Permite que você controle a posição das nuvens com os cursores X e Y e a densidade deles com o cursor D.
+ </notification>
+ <notification name="HelpCloudCoverage">
+ Controla o quanto as nuvens cobrem o céu.
+ </notification>
+ <notification name="HelpCloudScale">
+ Controla o dimensionamento da imagem de nuvens na cúpula celeste.
+ </notification>
+ <notification name="HelpCloudScrollX">
+ Controla a velocidade das nuvens que se movem na direção X.
+ </notification>
+ <notification name="HelpCloudScrollY">
+ Controla a velocidade que as núvens se movem na direção Y.
+ </notification>
+ <notification name="HelpClassicClouds">
+ Marque esta check box para permitir a reprodução das nuvens clássicas mais velhas do Second Life, além das nuvens WindLight.
+ </notification>
+ <notification name="HelpWaterFogColor">
+ Escolhe a cor da neblina subaquática.
+ </notification>
+ <notification name="HelpWaterFogDensity">
+ Controla a densidade da neblina da água e a distância de visibilidade debaixo d&apos;água.
+ </notification>
+ <notification name="HelpUnderWaterFogMod">
+ Modifica o efeito do expoente de densidade de Neblina para controlar até onde você pode ver quando o seu avatar está imerso.
+ </notification>
+ <notification name="HelpWaterGlow">
+ Controla o quanto a superfície da água deve brilhar.
+ </notification>
+ <notification name="HelpWaterNormalScale">
+ Controla o escalonamento das três marolas que compõem a água.
+ </notification>
+ <notification name="HelpWaterFresnelScale">
+ Controla o quanto de luz será refletido por ângulos diferentes.
+ </notification>
+ <notification name="HelpWaterFresnelOffset">
+ Controla o quanto da intensidade da luz é refletida.
+ </notification>
+ <notification name="HelpWaterScaleAbove">
+ Controla o quanto de luz será refratado olhando acima da superfície da água.
+ </notification>
+ <notification name="HelpWaterScaleBelow">
+ Controla o quanto de luz sera refratado visto debaixo da superfície da água.
+ </notification>
+ <notification name="HelpWaterBlurMultiplier">
+ Controla como ondas e reflexos são misturados.
+ </notification>
+ <notification name="HelpWaterNormalMap">
+ Controla o mapeamento normal em todos os níveis da água para determinar reflexões / refrações.
+ </notification>
+ <notification name="HelpWaterWave1">
+ Controla aonde e com que velocidade a versão em escala maior do mapa normal se move nas direções X e Y .
+ </notification>
+ <notification name="HelpWaterWave2">
+ Controla onde e a velocidade com que o mapa normal em escala menor se move nas direções X e Y.
+ </notification>
+ <notification name="NewSkyPreset">
+ Me dê o nome para o novo céu.
+ <form name="form">
+ <input name="message" type="text">
+ Novo padrão
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification name="ExistsSkyPresetAlert">
+ Este padrão já existe!
+ </notification>
+ <notification name="NewWaterPreset">
+ Dê o nome para o novo padrão de água.
+ <form name="form">
+ <input name="message" type="text">
+ Nova Apresentação
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification name="ExistsWaterPresetAlert">
+ Este padrão já existe!
+ </notification>
+ <notification name="WaterNoEditDefault">
+ Você não pode editar ou apagar um padrão predefinido.
+ </notification>
+ <notification name="ChatterBoxSessionStartError">
+ Não foi possível iniciar uma nova sessão bate-papo com [RECIPIENT].
+[REASON]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="ChatterBoxSessionEventError">
+ [EVENT]
+[REASON]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="ForceCloseChatterBoxSession">
+ Sua sessão de bate-papo com [NAME] tem que fechar.
+[REASON]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="Cannot_Purchase_an_Attachment">
+ Os itens não podem ser comprados enquanto forem parte de um anexo.
+ </notification>
+ <notification label="Sobre o pedido de Permissão de Débito" name="DebitPermissionDetails">
+ Conceder esse pedido dá permissão ao script para tirar Linden dólares (L$) de sua conta. Para revogar esta permissão, o proprietário do objeto deve excluir o objeto ou resetar os scripts dele.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="AutoWearNewClothing">
+ Você gostaria de vestir automaticamente o item de vestuário que você criar?
+ <usetemplate ignoretext="Automaticamente vestir novo vestuário" name="okcancelignore" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="NotAgeVerified">
+ Você precisa ter a idade verificada para acessar este lote.
+Gostaria de visitar o site do Second Life para verificação de idade?
+
+[_URL]
+ <url name="url" option="0">
+ https://secondlife.com/account/verification.php
+ </url>
+ <usetemplate ignoretext="Alertar sobre a falta de verificação de idade" name="okcancelignore" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="Cannot enter parcel: no payment info on file">
+ Este lote exige que você tenha informações de pagamento no arquivo antes de poder acessá-lo.
+Gostaria de visitar o site do Second Life para configurá-lo?
+
+[_URL]
+ <url name="url" option="0">
+ https://secondlife.com/account/
+ </url>
+ <usetemplate ignoretext="Avisar sobre a falta de informação de pagamento." name="okcancelignore" notext="Não" yestext="Sim"/>
+ </notification>
+ <notification name="MissingString">
+ A sequência [STRING_NAME] está faltando do strings.xml
+ </notification>
+ <notification name="SystemMessageTip">
+ [MESSAGE]
+ </notification>
+ <notification name="Cancelled">
+ Cancelado
+ </notification>
+ <notification name="CancelledSit">
+ Cancelada a ação de sentar
+ </notification>
+ <notification name="CancelledAttach">
+ Cancelado Anexar
+ </notification>
+ <notification name="ReplacedMissingWearable">
+ Substituindo partes de roupa/corpo perdidas com o padrão
+ </notification>
+ <notification name="GroupNotice">
+ Assunto: [SUBJECT], Mensagem: [MESSAGE]
+ </notification>
+ <notification name="FriendOnline">
+ [FIRST] [LAST] está Online
+ </notification>
+ <notification name="FriendOffline">
+ [FIRST] [LAST] está Offline
+ </notification>
+ <notification name="AddSelfFriend">
+ Você não pode adicionar a si mesmo como amigo
+ </notification>
+ <notification name="UploadingAuctionSnapshot">
+ Fazendo o upload das fotos do site da web e do mundo...
+(Leva cerca de 5 minutos)
+ </notification>
+ <notification name="UploadPayment">
+ Você paga L$[AMOUNT] para fazer o upload.
+ </notification>
+ <notification name="UploadWebSnapshotDone">
+ Concluído o upload da foto do site da web
+ </notification>
+ <notification name="UploadSnapshotDone">
+ O upload da foto foi realizado
+ </notification>
+ <notification name="TerrainDownloaded">
+ Feito o download de Terrain.raw
+ </notification>
+ <notification name="GestureMissing">
+ O Gesto [NAME] não se encontra na base de dados
+ </notification>
+ <notification name="UnableToLoadGesture">
+ Impossível de carregar o gesto [NAME].
+Por favor, tente novamente.
+ </notification>
+ <notification name="LandmarkMissing">
+ O landmark foi perdido na base de dados
+ </notification>
+ <notification name="UnableToLoadLandmark">
+ Impossível carregar o landmark. Por favor, tente de novo.
+ </notification>
+ <notification name="CapsKeyOn">
+ Seu botão CAPS LOCK está ativado.
+Como isto afeta a senha digitada, você provavelmente desejará desativá-lo.
+ </notification>
+ <notification name="NotecardMissing">
+ Notecard foi perdido no banco de dados.
+ </notification>
+ <notification name="NotecardNoPermissions">
+ Permissões insuficientes para visualizar o notecard
+ </notification>
+ <notification name="RezItemNoPermissions">
+ Sem permissões suficientes para criar objetos.
+ </notification>
+ <notification name="UnableToLoadNotecard">
+ Não é possível carregar notas neste momento.
+ </notification>
+ <notification name="ScriptMissing">
+ O script foi perdido no banco de dados.
+ </notification>
+ <notification name="ScriptNoPermissions">
+ Permissões insuficientes para visualizar o script.
+ </notification>
+ <notification name="UnableToLoadScript">
+ Impossível carregar o script. Por favor, tente novamente.
+ </notification>
+ <notification name="IncompleteInventory">
+ Os conteúdos completos que vocë está oferecendo, não estão ainda disponíveis localmente. Por favor, tente oferecê-los novamente em um minuto.
+ </notification>
+ <notification name="CannotModifyProtectedCategories">
+ Você não pode modificar categorias protegidas.
+ </notification>
+ <notification name="CannotRemoveProtectedCategories">
+ Você não pode remover categorias protegidas.
+ </notification>
+ <notification name="OfferedCard">
+ Você ofereceu um cartão de visita a [FIRST] [LAST]
+ </notification>
+ <notification name="UnableToBuyWhileDownloading">
+ Impossível comprar o objeto enquanto ele está sendo carregado.
+Por favor, tente novamente.
+ </notification>
+ <notification name="UnableToLinkWhileDownloading">
+ Impossível unir o objeto enquanto ele está sendo carregado.
+Por favor, tente novamente.
+ </notification>
+ <notification name="CannotBuyObjectsFromDifferentOwners">
+ Impossível comprar objetos de diferentes compradores ao mesmo tempo.
+Por favor, compre apenas um objeto.
+ </notification>
+ <notification name="ObjectNotForSale">
+ Este objeto não está a venda.
+ </notification>
+ <notification name="EnteringGodMode">
+ Entrando em god mode, nível [LEVEL]
+ </notification>
+ <notification name="LeavingGodMode">
+ Saindo do god mode, nível [LEVEL]
+ </notification>
+ <notification name="CopyFailed">
+ A cópia falhou porque você não tem permissão para copiar.
+ </notification>
+ <notification name="InventoryAccepted">
+ [NAME] aceitou sua oferta de inventário.
+ </notification>
+ <notification name="InventoryDeclined">
+ [NAME] rejeitou sua oferta de inventário.
+ </notification>
+ <notification name="ObjectMessage">
+ [NAME]: [MESSAGE]
+ </notification>
+ <notification name="CallingCardAccepted">
+ Seu cartão de visita foi aceito
+ </notification>
+ <notification name="CallingCardDeclined">
+ Seu cartão de visita foi negado.
+ </notification>
+ <notification name="TeleportToLandmark">
+ Agora que você chegou à mainland, você pode se teletransportar para locais como &apos;[NAME]&apos; clicando no botão de Inventário, no canto direito inferior de sua tela, e selecionando a pasta Landmarks.
+Dê um duplo-clique na landmark e clique Teletransportar para viajar para o local desejado.
+ </notification>
+ <notification name="TeleportToPerson">
+ Agora que você chegou à mainland, você pode contatar residentes como &apos;[NAME]&apos; clicando no botão de Inventário, canto direito inferior de sua tela, e selecionando a pasta Cartões de Visita.
+Dê um duplo-clique num cartão de visita e em Mensagem Instantânea, digite sua mensagem.
+ </notification>
+ <notification name="CantSelectLandFromMultipleRegions">
+ Impossível selecionar terra nas fronteiras do servidor. Tente selecionar um pedaço menor de terra.
+ </notification>
+ <notification name="SearchWordBanned">
+ Alguns termos da sua busca foram excluídos, devido às restrições de conteúdo, como explicado nos Padrões da Comunidade.
+ </notification>
+ <notification name="NoContentToSearch">
+ Por favor, selecione ao menos um tipo de conteúdo para a busca (PG, Mature ou Adult).
+ </notification>
+ <notification name="GroupVote">
+ [NAME] propõe que você vote:
+[MESSAGE]
+ <form name="form">
+ <button name="VoteNow" text="Vote agora"/>
+ <button name="Later" text="Depois"/>
+ </form>
+ </notification>
+ <notification name="SystemMessage">
+ [MESSAGE]
+ </notification>
+ <notification name="EventNotification">
+ Notificação de evento:
+
+[NAME]
+[DATE]
+ <form name="form">
+ <button name="Teleport" text="Teletransporte"/>
+ <button name="Description" text="Descrição"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification name="TransferObjectsHighlighted">
+ Todos os objetos deste terreno que serão transferidos ao seu comprador, estão realçados agora.
+ <form name="form">
+ <button name="Done" text="Feito"/>
+ </form>
+ </notification>
+ <notification name="DeactivatedGesturesTrigger">
+ Gestos desativados com o mesmo comando:
+[NAMES]
+ </notification>
+ <notification name="NoQuickTime">
+ O software QuickTime da Apple parece não estar instalado em seu sistema.
+Se você deseja ver fluxo de mídia em terrenos que aceitem isso, você deverá ir ao site do QickTime (http://www.apple.com/quicktime) e instalar o player do QuickTime.
+ </notification>
+ <notification name="OwnedObjectsReturned">
+ Os objetos que lhe pertencem no lote selecionado do terreno, voltaram ao seu inventário.
+ </notification>
+ <notification name="OtherObjectsReturned">
+ Os objetos no lote selecionado de terra que pertence a [FIRST] [LAST], voltaram ao seu inventário.
+ </notification>
+ <notification name="OtherObjectsReturned2">
+ Os objetos no lote de terra selecionado que pertence ao residente &apos;[NAME]&apos;, voltaram aos seus donos.
+ </notification>
+ <notification name="GroupObjectsReturned">
+ Os objetos no lote selecionado de terreno compartilhado pelo grupo [GROUPNAME], voltaram para os inventários de seus donos.
+Objetos trasnferíveis dados ao grupo, voltaram aos seus donos anteriores.
+Objetos não transferíveis dados ao grupo foram deletados.
+ </notification>
+ <notification name="UnOwnedObjectsReturned">
+ Os objetos no lote selecionado que NÃO são seus, voltaram aos seus donos.
+ </notification>
+ <notification name="NotSafe">
+ Esta terra permite que você sofra ataques.
+Você pode ser ferido aqui. Se você morrer, você será teletransportado à sua posição inicial.
+ </notification>
+ <notification name="NoFly">
+ Este terreno tem a opção Voar desabilitada.
+Ou seja, você não pode voar aqui.
+ </notification>
+ <notification name="PushRestricted">
+ Esta terra é “Não empurre”.
+Você não pode empurrar os outros, a não ser que seja o proprietário da terra.
+ </notification>
+ <notification name="NoVoice">
+ O uso de voz está desabilitado nesta terra.
+ </notification>
+ <notification name="NoBuild">
+ Este terreno tem a opção de construir desabilitada, ou seja, você não pode criar objetos aqui.
+ </notification>
+ <notification name="ScriptsStopped">
+ Um administrador não permitiu scripts temporariamente nesta região.
+ </notification>
+ <notification name="ScriptsNotRunning">
+ Esta região não roda nenhum script.
+ </notification>
+ <notification name="NoOutsideScripts">
+ Neste terreno, nenhum script funcionará, a não ser os scripts do próprio dono da terra.
+ </notification>
+ <notification name="ClaimPublicLand">
+ Pode apenas reclamar terreno público na região em que você está.
+ </notification>
+ <notification name="RegionTPAccessBlocked">
+ Você não é permitido na Região devido à sua Classificação de maturidade. Você precisa validar sua idade e/ou instalar o último Visualizador.
+
+Por favor, vá ao Banco de Conhecimento para detalhes sobre o acesso de áreas com esta Classificação de maturidade.
+ </notification>
+ <notification name="URBannedFromRegion">
+ Você está banido da região.
+ </notification>
+ <notification name="NoTeenGridAccess">
+ Sua conta não pode conectar a esta região da grade teen.
+ </notification>
+ <notification name="NoHelpIslandTP">
+ Você não pode se tele-transportar de volta à Ilha de Ajuda.
+Vá para a Ilha de Ajuda Pública para repetir este tutorial.
+ </notification>
+ <notification name="ImproperPaymentStatus">
+ Você não tem o status de pagamento adequado para entrar nesta região.
+ </notification>
+ <notification name="MustGetAgeRgion">
+ Você precisa ter sua idade verificada para entrar nesta região.
+ </notification>
+ <notification name="MustGetAgeParcel">
+ Você precisa ter a idade verificada para entrar neste lote.
+ </notification>
+ <notification name="NoDestRegion">
+ Nenhuma região de destino encontrada.
+ </notification>
+ <notification name="NotAllowedInDest">
+ Você não é permitido nesse destino.
+ </notification>
+ <notification name="RegionParcelBan">
+ Não consegue atravessar região com lote banido. Tente outra forma.
+ </notification>
+ <notification name="TelehubRedirect">
+ Você foi redirecionado para um telehub.
+ </notification>
+ <notification name="CouldntTPCloser">
+ Não conseguiu tele-transportar próximo ao destino.
+ </notification>
+ <notification name="TPCancelled">
+ Tele-transporte cancelado.
+ </notification>
+ <notification name="FullRegionTryAgain">
+ A região que você está tentando entrar está no momento cheia.
+Por favor, tente novamente em alguns instantes.
+ </notification>
+ <notification name="GeneralFailure">
+ Falha geral.
+ </notification>
+ <notification name="RoutedWrongRegion">
+ Direcionado para a região errada. Por favor, tente novamente.
+ </notification>
+ <notification name="NoValidAgentID">
+ ID do agente inválido.
+ </notification>
+ <notification name="NoValidSession">
+ ID de sessão inválido.
+ </notification>
+ <notification name="NoValidCircuit">
+ Código de circuito inválido.
+ </notification>
+ <notification name="NoValidTimestamp">
+ Hora inválida.
+ </notification>
+ <notification name="NoPendingConnection">
+ Impossível criar a conexão pendente.
+ </notification>
+ <notification name="InternalUsherError">
+ Um erro interno ocorreu enquanto se tentava direcioná-lo para seu destino de Tele-transporte. O Second Life pode estar passando por problemas no serviço, neste momento.
+ </notification>
+ <notification name="NoGoodTPDestination">
+ Impossível encontrar um bom destino para tele-transporte nesta região.
+ </notification>
+ <notification name="InternalErrorRegionResolver">
+ Um erro interno ocorreu enquanto tentava-se definir as coordenadas globais da sua solicitação de tele-transporte. O Second Life pode estar passando por problemas no serviço, no momento.
+ </notification>
+ <notification name="NoValidLanding">
+ Não se achou um ponto de aterrissagem válido.
+ </notification>
+ <notification name="NoValidParcel">
+ Nenhum lote válido foi encontrado.
+ </notification>
+ <notification name="ObjectGiveItem">
+ Um objeto nomeado [OBJECTFROMNAME] do dono [FIRST] [LAST] deu a você [OBJECTTYPE] nomeado &apos;[OBJECTNAME]&apos;.
+ <form name="form">
+ <button name="Keep" text="Segure"/>
+ <button name="Discard" text="Descarte"/>
+ <button name="Mute" text="Mudo"/>
+ </form>
+ </notification>
+ <notification name="ObjectGiveItemUnknownUser">
+ Um objeto nomeado [OBJECTFROMNAME], de dono desconhecido, deu a você um [OBJECTTYPE] nomeado [OBJECTNAME].
+ <form name="form">
+ <button name="Keep" text="Segure"/>
+ <button name="Discard" text="Descarte"/>
+ <button name="Mute" text="Mudo"/>
+ </form>
+ </notification>
+ <notification name="UserGiveItem">
+ [NAME]deu a voce um [OBJECTTYPE] nomeado &apos;[OBJECTNAME]&apos;.
+ <form name="form">
+ <button name="Keep" text="Mantenha"/>
+ <button name="Discard" text="Descarte"/>
+ <button name="Mute" text="Mudo"/>
+ </form>
+ </notification>
+ <notification name="GodMessage">
+ [NAME]
+[MESSAGE]
+ </notification>
+ <notification name="JoinGroup">
+ [MESSAGE]
+ <form name="form">
+ <button name="Join" text="Entre"/>
+ <button name="Decline" text="Saia"/>
+ <button name="Info" text="Informações"/>
+ </form>
+ </notification>
+ <notification name="TeleportOffered">
+ [NAME] ofereceu um teletransporte para seu local:
+
+[MESSAGE]
+ <form name="form">
+ <button name="Teleport" text="Teletransporte"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification name="GotoURL">
+ [MESSAGE]
+[URL]
+ <form name="form">
+ <button name="Later" text="Depois"/>
+ <button name="GoNow..." text="Vá agora"/>
+ </form>
+ </notification>
+ <notification name="OfferFriendship">
+ [NAME] está lhe oferecendo sua amizade
+
+[MESSAGE]
+
+(Por definição vocês serão capazes de ver um ao outro online)
+ <form name="form">
+ <button name="Accept" text="Aceitar"/>
+ <button name="Decline" text="Recusar"/>
+ </form>
+ </notification>
+ <notification name="OfferFriendshipNoMessage">
+ [NAME] está lhe oferecendo sua amizade.
+
+(Por definição vocês serão capazes de ver um ao outro online)
+ <form name="form">
+ <button name="Accept" text="Aceitar"/>
+ <button name="Decline" text="Recusar"/>
+ </form>
+ </notification>
+ <notification name="FriendshipAccepted">
+ [NAME] aceitou seu convite de amizade.
+ </notification>
+ <notification name="FriendshipDeclined">
+ [NAME] recusou seu convite de amizade
+ </notification>
+ <notification name="OfferCallingCard">
+ [FIRST] [LAST] está oferecendo seu cartão de visita.
+Isto adicionará uma anotação em seu inventário, de modo que você possa mandar rapidamente uma IM para este residente.
+ <form name="form">
+ <button name="Accept" text="Aceitar"/>
+ <button name="Decline" text="Recusar"/>
+ </form>
+ </notification>
+ <notification name="RegionRestartMinutes">
+ A região será reiniciada em [MINUTES] minutos.
+Se permanecer nesta região, você será desconectado.
+ </notification>
+ <notification name="RegionRestartSeconds">
+ Região será reiniciada em [SECONDS] segundos.
+Se permanecer nesta região, você será desconectado.
+ </notification>
+ <notification name="LoadWebPage">
+ Carregar página da web [URL]?
+
+[MESSAGE]
+
+Do objeto: [OBJECTNAME], dono: [NAME]?
+ <form name="form">
+ <button name="Gotopage" text="Carregar"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
+ <notification name="FailedToFindWearableUnnamed">
+ Falhou ao procurar [TYPE] no banco de dados.
+ </notification>
+ <notification name="FailedToFindWearable">
+ Falhou ao procurar [TYPE] nomeado [DESC] no banco de dados.
+ </notification>
+ <notification name="InvalidWearable">
+ O item que você está tentando vestir usa uma característica que seu Visualizador não lê. Por favor, atualize sua versão do Second Life para vestir este item.
+ </notification>
+ <notification name="ScriptQuestion">
+ &apos;[OBJECTNAME]&apos;, um objeto pertencente a &apos;[NAME]&apos;, gostaria de:
+
+[QUESTIONS]
+Está OK?
+ <form name="form">
+ <button name="Yes" text="Sim"/>
+ <button name="No" text="Não"/>
+ <button name="Mute" text="Mudo"/>
+ </form>
+ </notification>
+ <notification name="ScriptQuestionCaution">
+ &apos;[OBJECTNAME]&apos;, um objeto de &apos;[NAME]&apos;, gostaria de:
+
+[QUESTIONS]
+Se você não confia neste objeto ou em seu criador, você deveria negar o pedido. Para informações adicionais clique no botão Detalhes.
+
+Autorizar este pedido?
+ <form name="form">
+ <button name="Grant" text="Autorizar"/>
+ <button name="Deny" text="Negar"/>
+ <button name="Details" text="Detalhes..."/>
+ </form>
+ </notification>
+ <notification name="ScriptDialog">
+ [FIRST] [LAST]&apos;s &apos;[TITLE]&apos;
+[MESSAGE]
+ <form name="form">
+ <button name="Ignore" text="Ignorar"/>
+ </form>
+ </notification>
+ <notification name="ScriptDialogGroup">
+ [GROUPNAME]&apos;s &apos;[TITLE]&apos;
+[MESSAGE]
+ <form name="form">
+ <button name="Ignore" text="Ignorar"/>
+ </form>
+ </notification>
+ <notification name="FirstBalanceIncrease">
+ Você recebeu uma quantia de L$[AMOUNT].
+Objetos e outros usuários podem dar L$ a você.
+Seu saldo é mostrado no canto superior direito da tela.
+ </notification>
+ <notification name="FirstBalanceDecrease">
+ Você pagou L$[AMOUNT].
+O seu balanço de dinheiro está sendo mostrado no canto superior direito da tela.
+ </notification>
+ <notification name="FirstSit">
+ Você está sentado.
+Use as setas (ou AWSD) para mudar a visão.
+Clique em &apos;Levantar&apos; para levantar.
+ </notification>
+ <notification name="FirstMap">
+ Clique e arraste para movimentar o mapa.
+Dê um duplo clique para teletransportar-se.
+Use os controles à direita para achar coisas e mostrar fundos diferentes.
+ </notification>
+ <notification name="FirstBuild">
+ Você pode construir novos objetos em algumas áreas do [SECOND_LIFE].
+Use as ferramentas acima, à esquerda para construir e tente manter apertadas as teclas Ctrl ou Alt para mudar rapidamente as ferramentas.
+Aperte ESC para parar de construir.
+ </notification>
+ <notification name="FirstLeftClickNoHit">
+ Clicando com esquerdo, você interage com os objetos especiais.
+Se o ponteiro do mouse mudar a uma mão, você pode interagir com o objeto.
+Clique com o direito que será mostrado sempre um menu das ações que você pode fazer.
+ </notification>
+ <notification name="FirstTeleport">
+ Esta região não permite teletransporte ponto-a-ponto. Assim, você foi teletransportado para o telehub mais próximo.
+Seu destino está assinalado com um farol alto.
+Siga a flecha vermelha até o farol, ou clique nela para apagar o farol.
+ </notification>
+ <notification name="FirstOverrideKeys">
+ Suas chaves do movimento estão sendo seguras agora por um objeto.
+Tente as teclas de setas ou AWSD para ver o que elas fazem.
+Alguns objetos (como armas) requerem que você passe para mouselook para usá-los.
+Pressione &apos;M&apos; para fazer isto.
+ </notification>
+ <notification name="FirstAppearance">
+ Você está editando sua aparência.
+Para girar e ver em zoom, use as teclas de setas.
+Quando terminar, aperte &apos;Salvar Tudo&apos; para salvar sua aparência e sair.
+Você pode editar sua aparência quantas vezes quiser.
+ </notification>
+ <notification name="FirstInventory">
+ Este é o seu inventário, que contém objetos, notecards, roupas e outras coisas suas.
+* Para vestir um objeto ou uma pasta completa, arraste-o para si mesmo(a).
+* Para trzer um objeto ao mundo, arraste-o ao chão.
+* Para ler um notecard, dê um duplo-click nele.
+ </notification>
+ <notification name="FirstSandbox">
+ Esta é a região conhecida como sandbox.
+Os objetos que você constrói aqui podem ser deletados depois que você deixa a área.
+As sandboxes são limpas de forma periódica.
+Por favor, veja a informação no alto da tela, próxima ao nome da região.
+As regiões de sandbox não são comuns e são marcadas com símbolos.
+ </notification>
+ <notification name="FirstFlexible">
+ Este objeto tem a propriedade flexível.
+Objetos flexíveis não podem ser físicos e devem ser fantasmas até que a caixa de verificação seja desmarcada.
+ </notification>
+ <notification name="FirstDebugMenus">
+ Você ativou o menu Avançado.
+Este menu contém funcionalidades úteis para desenvolvedores debugarem o Second Life.
+Para mostrar esse menu no Windows pressione Ctrl-Alt-D. No Mac pressione Cmd-Opt-Shift-D.
+ </notification>
+ <notification name="FirstSculptedPrim">
+ Você está editando uma primitiva esculpida.
+Primitivas esculpidas requerem uma textura especial para especificar suas formas.
+Você encontrará exemplos dessas texturas na Biblioteca do Inventário.
+ </notification>
+ <notification name="FirstMedia">
+ Você começou a tocar uma mídia. Mídias podem ser autorizadas a iniciar automaticamente se você assim escolher na janela de Preferências, sob Áudio/Vídeo. Atente para o risco de segurança que pode haver ao acessar websites de mídia que você não confia.
+ </notification>
+ <notification name="MaxListSelectMessage">
+ Você pode selecionar até [MAX_SELECT] itens desta lista.
+ </notification>
+ <notification name="VoiceInviteP2P">
+ [NAME] está lhe convidando para uma conversa com voz.
+Clique Aceitar para atender, ou Recusar para recusar o convite. Clique Mudo para calar quem está chamando.
+ <form name="form">
+ <button name="Accept" text="Aceitar"/>
+ <button name="Decline" text="Recusar"/>
+ <button name="Mute" text="Mudo"/>
+ </form>
+ </notification>
+ <notification name="AutoUnmuteByIM">
+ [FIRST] [LAST] recebeu uma Mensagem Instantânea sua e automaticamente não está mais no modo mudo.
+ </notification>
+ <notification name="AutoUnmuteByMoney">
+ [FIRST] [LAST] recebeu pagamento seu e automaticamente não está mais no modo mudo.
+ </notification>
+ <notification name="AutoUnmuteByInventory">
+ [FIRST] [LAST] recebeu inventário seu e automaticamente não está mais mudo.
+ </notification>
+ <notification name="VoiceInviteGroup">
+ [NAME] juntou-se a uma conversa com voz do grupo [GROUP].
+Clique Aceitar para atender, ou Recusar para recusar o convite. Clique Mudo para calar quem está chamando.
+ <form name="form">
+ <button name="Accept" text="Aceitar"/>
+ <button name="Decline" text="Recusar"/>
+ <button name="Mute" text="Mudo"/>
+ </form>
+ </notification>
+ <notification name="VoiceInviteAdHoc">
+ [NAME] juntou-se a uma chamada de Conferência com voz...
+Clique Aceitar para juntar-se à chamada ou Recusar para recusar o convite. Clique Mudo para calar este usuário.
+ <form name="form">
+ <button name="Accept" text="Aceitar"/>
+ <button name="Decline" text="Recusar"/>
+ <button name="Mute" text="Mudo"/>
+ </form>
+ </notification>
+ <notification name="InviteAdHoc">
+ [NAME] está lhe convidando para uma conversa em conferência...
+ Clique Aceitar para se juntar à conversa, ou Recusar para recusar o convite. Clique Mudo para calar este usuário.
+ <form name="form">
+ <button name="Accept" text="Aceitar"/>
+ <button name="Decline" text="Recusar"/>
+ <button name="Mute" text="Mudo"/>
+ </form>
+ </notification>
+ <notification name="VoiceChannelFull">
+ A chamada de voz a qual você está tentando juntar-se, [VOICE_CHANNEL_NAME], atingiu sua máxima capacidade. Favor tentar novamente mais tarde.
+ </notification>
+ <notification name="ProximalVoiceChannelFull">
+ Desculpe-nos. Esta área atingiu seu limite de capacidade para conversas com voz. Favor tentar usar voz em outra área.
+ </notification>
+ <notification name="VoiceChannelDisconnected">
+ Você foi desconectado de [VOICE_CHANNEL_NAME]. Voce será reconectado agora à Conversa com voz local.
+ </notification>
+ <notification name="VoiceChannelDisconnectedP2P">
+ [VOICE_CHANNEL_NAME] desligou a chamada. Voce será reconectado agora à Conversa com voz local.
+ </notification>
+ <notification name="P2PCallDeclined">
+ [VOICE_CHANNEL_NAME] recusou sua chamada. Voce será reconectado agora à Conversa com voz local.
+ </notification>
+ <notification name="P2PCallNoAnswer">
+ [VOICE_CHANNEL_NAME] não está disponível para aceitar sua chamada. Voce será reconectado agora à Conversa com voz local.
+ </notification>
+ <notification name="VoiceChannelJoinFailed">
+ Falha na conexão com [VOICE_CHANNEL_NAME], tente novamente mais tarde. Voce será reconectado agora à Conversa com voz local.
+ </notification>
+ <notification name="VoiceLoginRetry">
+ Estamos criando uma canal de voz para você. Isto pode levar até um minuto.
+ </notification>
+ <notification name="Cannot enter parcel: not a group member">
+ Você não pode entrar nessa terra, você não é membro do grupo autorizado.
+ </notification>
+ <notification name="Cannot enter parcel: banned">
+ Você não pode entrar nessa terra, você foi banido.
+ </notification>
+ <notification name="Cannot enter parcel: not on access list">
+ Você não pode entrar nessa terra, você não está na lista de acesso.
+ </notification>
+ <notification name="VoiceNotAllowed">
+ Você não tem permissão para se conectar à conversa com voz de [VOICE_CHANNEL_NAME].
+ </notification>
+ <notification name="VoiceCallGenericError">
+ Ocorreu um erro enquanto você tentava se conectar à conversa de voz de [VOICE_CHANNEL_NAME]. Favor tentar novamente mais tarde.
+ </notification>
+ <notification name="ServerVersionChanged">
+ A região em que você entrou está rodando uma versão diferente de simulador. Clique aqui para mais detalhes.
+ </notification>
+ <notification name="UnableToOpenCommandURL">
+ A URL que vocÊ clicou não pode ser aberta no navegador web.
+ </notification>
+ <global name="UnsupportedCPU">
+ - A velocidade da sua CPU não suporta os requisitos mínimos exigidos.
+ </global>
+ <global name="UnsupportedGLRequirements">
+ Você não parece ter os requisitos de hardware recomendados para rodar o Second Life. O Second Life exige uma placa gráfica OpenGL que tem apoio a multi- texturas. Se este for o caso, você pode se certificar de que tem os drivers mais recentes para sua placa gráfica, e os patches e pacotes de serviços para seu sistema operacional.
+
+Se continuar com problemas, por favor visite: http://www.secondlife.com/support
+ </global>
+ <global name="UnsupportedCPUAmount">
+ 796
+ </global>
+ <global name="UnsupportedRAMAmount">
+ 510
+ </global>
+ <global name="UnsupportedGPU">
+ - A sua placa de vídeo não atende os requisitos mínimos exigidos.
+ </global>
+ <global name="UnsupportedRAM">
+ - A memória do seu sistema não suporta os requisitos mínimos exigidos.
+ </global>
+ <global name="PermYes">
+ Sim
+ </global>
+ <global name="PermNo">
+ Não
+ </global>
+</notifications>
diff --git a/indra/newview/skins/default/xui/pt/panel_group_general.xml b/indra/newview/skins/default/xui/pt/panel_group_general.xml
index 9eba44ba61..f4941eabd9 100644
--- a/indra/newview/skins/default/xui/pt/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/pt/panel_group_general.xml
@@ -45,7 +45,17 @@
<check_box label="Adesão aberta" name="open_enrollement" tool_tip="Definir se este grupo permite que novos membros entrem sem serem convidados"/>
<check_box label="Taxa de adesão: L$" name="check_enrollment_fee" tool_tip="Define se é necessária uma taxa de adesão para se unir ao grupo."/>
<spinner name="spin_enrollment_fee" tool_tip="Os novos membros devem pagar esta taxa para se unir ao grupo quando a Taxa de Adesão está marcada."/>
-
+ <combo_box name="group_mature_check" tool_tip="Define se a informação do seu grupo é considerada mature.">
+ <combo_item name="select_mature">
+ - Selecionar Maturidade -
+ </combo_item>
+ <combo_item name="mature">
+ Conteúdo Mature
+ </combo_item>
+ <combo_item name="pg">
+ Conteúdo PG
+ </combo_item>
+ </combo_box>
<panel name="title_container">
<text name="active_title_label">
Meu título ativo
diff --git a/indra/newview/skins/default/xui/pt/panel_group_invite.xml b/indra/newview/skins/default/xui/pt/panel_group_invite.xml
index f34fa1c60e..e9c7bab3db 100644
--- a/indra/newview/skins/default/xui/pt/panel_group_invite.xml
+++ b/indra/newview/skins/default/xui/pt/panel_group_invite.xml
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Convidar um membro" name="invite_panel">
<text name="help_text">
- Você pode selecionar múltiplos residentes
-para convidar ao seu grupo. Clique
-&apos;Abra o Selecionador de Pessoas&apos; para iniciar.
+ Voce pode selecionar vários residentes
+para convidar ao seu grupo. Clique &apos;Abrir
+Seletor de Residente&apos; para iniciar.
</text>
- <button label="Abrir selecionador de pessoas" name="add_button" tool_tip=""/>
+ <button label="Abrir Seletor de Residente" name="add_button" tool_tip=""/>
<name_list name="invitee_list" tool_tip="Mantenha apertada a tecla Control e clique nos nomes dos residentes para uma seleção múltipla."/>
<button label="Remove Selected from List" name="remove_button" tool_tip="Remove os residentes selecionados acima da lista de convite."/>
<text name="role_text">
diff --git a/indra/newview/skins/default/xui/pt/panel_group_land_money.xml b/indra/newview/skins/default/xui/pt/panel_group_land_money.xml
index 59a8f8f46d..f5e96869d7 100644
--- a/indra/newview/skins/default/xui/pt/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/pt/panel_group_land_money.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Terra &amp; L$" name="land_money_tab">
<string name="help_text">
- Lotes pertencentes ao grupo são listados com detalhes de contribuição. Um aviso aparece até que o total de Terras em Uso seja menor ou igual ao Total de Contribuições. As abas de Planejamento, Detalhes e Vendas fornecem informações sobre as finanças do grupo.
+ Lotes pertencentes ao grupo são listados adiante, com os detalhes de contribuição. Um aviso aparece até que o Total de Terra em Uso seja menor ou igual à Contribuição Total. As abas de Planejamento, Detalhes e Vendas fornecem informações sobre as finanças do grupo.
</string>
<button label="?" name="help_button"/>
<string name="cant_view_group_land_text">
@@ -19,6 +19,7 @@
<scroll_list name="group_parcel_list">
<column label="Nome do Lote" name="name"/>
<column label="Região" name="location"/>
+ <column label="Tipo" name="type"/>
<column label="Área" name="area"/>
</scroll_list>
<button label="Mostrar no Mapa" label_selected="Mostrar no Mapa" name="map_button"/>
@@ -56,6 +57,11 @@
Grupo L$
</text>
<tab_container name="group_money_tab_container">
+ <panel label="Planejamento" name="group_money_planning_tab">
+ <text_editor name="group_money_planning_text">
+ Computando..
+ </text_editor>
+ </panel>
<panel label="Detalhes" name="group_money_details_tab">
<text_editor name="group_money_details_text">
Computando...
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 5371355e9b..32ed839bd8 100644
--- a/indra/newview/skins/default/xui/pt/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/pt/panel_group_roles.xml
@@ -50,7 +50,7 @@ Estes ajustes podem ser facilmente customizados para uma flexibilidade e organiz
<column label="Tarifa doada" name="donated"/>
<column label="Último login" name="online"/>
</name_list>
- <button label="Convidar nova pessoa..." name="member_invite"/>
+ <button label="Convidar Novo Membro ..." name="member_invite"/>
<button label="Ejetar do Grupo" name="member_eject"/>
<string name="help_text">
Você pode adicionar ou remover as funções designadas aos membros. Selecione vários membros, segurando a tecla Ctrl e clicando em seus nomes.
diff --git a/indra/newview/skins/default/xui/pt/panel_groups.xml b/indra/newview/skins/default/xui/pt/panel_groups.xml
index 50d1dd3745..8a886ef8b1 100644
--- a/indra/newview/skins/default/xui/pt/panel_groups.xml
+++ b/indra/newview/skins/default/xui/pt/panel_groups.xml
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="groups">
- <text name="groupdesc">
- Seu grupo ativo atual es&apos;ta mostrado em negrito.
- </text>
- <text name="groupcount">
- Você pertence a [COUNT] grupos (de no máximo [MAX]).
-aximo
- </text>
- <button label="MI/Chamada" name="IM" tool_tip="Abrir sessão de Mensagem Instantânea"/>
- <button label="Informações" name="Info"/>
- <button label="Ativar" name="Activate"/>
- <button label="Deixar" name="Leave"/>
- <button label="Criar..." name="Create"/>
- <button label="Buscar..." name="Search..."/>
-</panel>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="groups">
+ <text name="groupdesc">
+ Seu grupo ativo atual es&apos;ta mostrado em negrito.
+ </text>
+ <text name="groupcount">
+ Você pertence a [COUNT] grupos (de no máximo [MAX]).
+aximo
+ </text>
+ <button label="MI/Chamada" name="IM" tool_tip="Abrir sessão de Mensagem Instantânea"/>
+ <button label="Informações" name="Info"/>
+ <button label="Ativar" name="Activate"/>
+ <button label="Deixar" name="Leave"/>
+ <button label="Criar..." name="Create"/>
+ <button label="Buscar..." name="Search..."/>
+</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_login.xml b/indra/newview/skins/default/xui/pt/panel_login.xml
index 1612974716..9f9b80912d 100644
--- a/indra/newview/skins/default/xui/pt/panel_login.xml
+++ b/indra/newview/skins/default/xui/pt/panel_login.xml
@@ -10,7 +10,7 @@
Senha:
</text>
<text name="start_location_text">
- Localização inicial:
+ Posição inicial:
</text>
<combo_box name="start_location_combo">
<combo_box.item name="MyHome" label="Minha casa" />
@@ -22,7 +22,7 @@
<text name="create_new_account_text">
Registrar-se para uma conta
</text>
- <text name="forgot_password_text">
+ <text name="forgot_password_text" left="-240" width="230">
Esqueceu seu nome de usuário ou senha?
</text>
<text name="channel_text">
diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml b/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml
index 8ae635bbae..b32e1fb3e1 100644
--- a/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml
@@ -5,15 +5,9 @@
do Chat:
</text>
<radio_group name="chat_font_size">
- <radio_item name="radio">
- Pequeno
- </radio_item>
- <radio_item name="radio2">
- Médio
- </radio_item>
- <radio_item name="radio3">
- Grande
- </radio_item>
+ <radio_item name="radio" label="Pequeno" />
+ <radio_item name="radio2" label="Médio" />
+ <radio_item name="radio3" label="Grande" />
</radio_group>
<text length="1" name="text_box2" type="string">
Cor do Chat:
@@ -34,7 +28,7 @@ do Chat:
<text length="1" name="text_box3" type="string">
Console do Chat:
</text>
- <spinner label="Ocultar Chat depois" label_width="112" name="fade_chat_time" width="162"/>
+ <spinner label="Ocultar Chat depois" label_width="108" name="fade_chat_time" width="160"/>
<text left="310" length="1" name="text_box4" type="string">
(segundos)
</text>
diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_general.xml b/indra/newview/skins/default/xui/pt/panel_preferences_general.xml
index 4ad795ffc8..d82330cc78 100644
--- a/indra/newview/skins/default/xui/pt/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/pt/panel_preferences_general.xml
@@ -27,10 +27,28 @@
</text>
<check_box label="Usar escala independente da resolução" name="ui_auto_scale"/>
<spinner label="Tempo para ficar Ausente:" name="afk_timeout_spinner"/>
- <check_box label="Rotacionar Mini-Mapa" name="rotate_mini_map_checkbox"/>
<check_box label="Avisar quando receber ou gastar Linden dollars (L$)" name="notify_money_change_checkbox"/>
- <check_box label="Usar a paleta de cores padrão do sistema" name="use_system_color_picker_checkbox" tool_tip="Usar a paleta de cores padrão do sistema ao invés de uma feita dentro de Second Life."/>
- <check_box label="Mostrar o painel de busca na barra sobreposta" name="show_search_panel" tool_tip="Mostrar o painel de busca embutido."/>
+ <text name="maturity_desired_label" bottom="-312">
+ Classificação:
+ </text>
+ <text name="maturity_desired_prompt" bottom="-312">
+ Eu quero acessar
+conteúdo classificado:
+ </text>
+ <combo_box name="maturity_desired_combobox" bottom="-330" left="278">
+ <combo_item name="Desired_Adult">
+ PG, Mature e Adult
+ </combo_item>
+ <combo_item name="Desired_Mature">
+ PG e Mature
+ </combo_item>
+ <combo_item name="Desired_PG">
+ apenas PG
+ </combo_item>
+ </combo_box>
+ <text name="maturity_desired_textbox" bottom="-324" left="278">
+ apenas PG
+ </text>
<text length="1" name="start_location_textbox" type="string">
Posição Inicial:
</text>
@@ -73,6 +91,21 @@
<combo_box.item name="Chinese" label="中文 (简体) (Chinês) - Beta"/>
<combo_box.item name="(Japanese)" label="日本語 (Japonês) - Beta"/>
<combo_box.item name="(Korean)" label="한국어 (Coreano) - Beta"/>
+ <combo_item name="Italian">
+ Italiano - Beta
+ </combo_item>
+ <combo_item name="Dutch">
+ Nederlands (Holandês) - Beta
+ </combo_item>
+ </combo_item>
+ <combo_item name="Russian">
+ Русский (Russo) - Beta
+ </combo_item>
+ <combo_item name="Turkish">
+ Türkçe (Turco) - Beta
+ </combo_item>
+ <combo_item name="Ukrainian">
+ Українська (Ucraniano) - Beta
</combo_box>
<check_box label="Compartilhar a linguagem com objetos" name="language_is_public" tool_tip="Isto permite que os objetos no mundo conheçam sua linguagem preferida."/>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml
index a14ad6d4de..ec46c8b99c 100644
--- a/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml
@@ -68,18 +68,10 @@ rápido
Detalhes de Reflexão:
</text>
<radio_group name="ReflectionDetailRadio">
- <radio_item name="0">
- Terreno e Árvores
- </radio_item>
- <radio_item name="1">
- Todos os objetos estáticos
- </radio_item>
- <radio_item name="2">
- Todos os avatares e Objetos
- </radio_item>
- <radio_item name="3">
- Tudo
- </radio_item>
+ <radio_item name="0" label="Terreno e Árvores" />
+ <radio_item name="1" label="Todos os objetos estáticos" />
+ <radio_item name="2" label="Todos os avatares e Objetos" />
+ <radio_item name="3" label="Tudo" />
</radio_group>
<text name="AvatarRenderingText">
Renderização de Avatar:
@@ -93,18 +85,18 @@ rápido
<text name="DrawDistanceMeterText2">
m
</text>
- <slider label="Distancia de desenho:" label_width="146" name="DrawDistance" width="255"/>
- <slider label="Contador máx. de partículas:" label_width="146" name="MaxParticleCount" width="262"/>
- <slider label="Qualidade de Pós-processamento:" label_width="146" name="RenderPostProcess" width="223"/>
+ <slider label="Distancia de desenho:" label_width="150" name="DrawDistance" width="255"/>
+ <slider label="Contador máx. de partículas:" label_width="150" name="MaxParticleCount" width="262"/>
+ <slider label="Qualidade de Pós-processamento:" label_width="178" name="RenderPostProcess" width="223"/>
<text name="MeshDetailText">
Detalhes de Malha:
</text>
- <slider label="Objetos:" name="ObjectMeshDetail"/>
- <slider label="Primitivas Flexiveis:" name="FlexibleMeshDetail"/>
- <slider label="Árvores:" name="TreeMeshDetail"/>
- <slider label="Avatares:" name="AvatarMeshDetail"/>
- <slider label="Terreno:" name="TerrainMeshDetail"/>
- <slider label="Céu:" name="SkyMeshDetail"/>
+ <slider label=" Objetos:" name="ObjectMeshDetail"/>
+ <slider label=" Primitivas Flexiveis:" name="FlexibleMeshDetail"/>
+ <slider label=" Árvores:" name="TreeMeshDetail"/>
+ <slider label=" Avatares:" name="AvatarMeshDetail"/>
+ <slider label=" Terreno:" name="TerrainMeshDetail"/>
+ <slider label=" Céu:" name="SkyMeshDetail"/>
<text name="PostProcessText">
Baixo
</text>
@@ -130,25 +122,17 @@ rápido
Detalhes de Iluminação:
</text>
<radio_group name="LightingDetailRadio">
- <radio_item name="SunMoon">
- Sol e Lua apenas
- </radio_item>
- <radio_item name="LocalLights">
- Luzes locais nas proximidades
- </radio_item>
+ <radio_item name="SunMoon" label="Sol e Lua apenas" />
+ <radio_item name="LocalLights" label="Luzes locais nas proximidades" />
</radio_group>
<text name="TerrainDetailText">
Detalhe do Terreno:
</text>
<radio_group left_delta="45" name="TerrainDetailRadio" width="276">
- <radio_item name="0">
- Baixo
- </radio_item>
- <radio_item name="2">
- Alto
- </radio_item>
+ <radio_item name="0" label="Baixo" />
+ <radio_item name="2" label="Alto" />
</radio_group>
- <button label="Configurações Recomendadas" name="Defaults"/>
+ <button label="Configurações Recomendadas" name="Defaults" width="190" left="110"/>
<button label="Opções de Hardware" label_selected="Opções de Hardware" name="GraphicsHardwareButton"/>
<string name="resolution_format">
[RES_X] x [RES_Y]
diff --git a/indra/newview/skins/default/xui/pt/panel_region_covenant.xml b/indra/newview/skins/default/xui/pt/panel_region_covenant.xml
index f70e975bd4..6218e4eafb 100644
--- a/indra/newview/skins/default/xui/pt/panel_region_covenant.xml
+++ b/indra/newview/skins/default/xui/pt/panel_region_covenant.xml
@@ -1,50 +1,80 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Corretagem" name="Covenant">
+ <text name="estate_section_lbl">
+ Propriedade:
+ </text>
+ <text bottom_delta="-19" name="estate_name_lbl">
+ Nome:
+ </text>
+ <text name="estate_name_text">
+ mainland
+ </text>
+ <text bottom_delta="-19" name="estate_owner_lbl">
+ Dono:
+ </text>
+ <text name="estate_owner_text">
+ (nenhum)
+ </text>
+ <text name="estate_cov_lbl">
+ Corretagem:
+ </text>
+ <text name="covenant_timestamp_text">
+ Última modificação: Quarta, 31 de dezembro de 1969 às 16:00:00 horas
+ </text>
+ <button label="?" name="covenant_help"/>
+ <text_editor name="covenant_editor">
+ Não há nenhuma regra fornecida para esta Propriedade.
+ </text_editor>
+ <button label="Resetar" name="reset_covenant"/>
<text bottom="-25" name="covenant_help_text">
- As mudanças nas informações de corretagem serão mostradas em todos os lotes da propriedade.
+ As mudanças das regras serão mostradas em todos os lotes da propriedade.
</text>
- <text bottom_delta="-31" name="region_name_lbl">
+ <text name="covenant_instructions">
+ Arraste e solte um notecard, para mudar as Regras desta Propriedade.
+ </text>
+ <text name="region_section_lbl">
Região:
</text>
+ <text bottom_delta="-31" name="region_name_lbl">
+ Nome:
+ </text>
<text name="region_name_text">
- (desconhecido)
+ leyla
</text>
- <text bottom_delta="-19" name="estate_name_lbl">
- Propriedade:
+ <text name="region_landtype_lbl">
+ Tipo:
</text>
- <text name="estate_name_text">
- (desconhecido)
+ <text name="region_landtype_text">
+ Continente / Terra
</text>
- <text name="covenent_instructions">
- Arraste e solte um notecard para alterar a corretagem desta propriedade.
+ <text name="region_maturity_lbl">
+ Classificação:
</text>
- <button label="?" name="covenant_help"/>
- <button label="Resetar" name="reset_covenant"/>
- <text bottom_delta="-19" name="estate_owner_lbl">
- Dono da propriedade:
+ <text name="region_maturity_text">
+ Adult
</text>
- <text name="estate_owner_text">
- (desconhecido)
+ <text name="resellable_lbl">
+ Revender:
</text>
<text name="resellable_clause">
- Terras compradas nesta região podem ou não, ser revendidas.
+ Terra nesta região não pode ser revendida.
+ </text>
+ <text name="changeable_lbl">
+ Subdividir:
</text>
<text name="changeable_clause">
- Terras compradas nesta região podem ou não, ser unidas ou subdivididas.
+ Terra nesta região não pode ser unida/sub-dividida.
</text>
- <text_editor name="covenant_editor">
- Carregando...
- </text_editor>
- <text name="can_resell">
+ <string name="can_resell">
Terras compradas na região poderão ser revendidas.
- </text>
- <text name="can_not_resell">
+ </string>
+ <string name="can_not_resell">
Terras compradas na região não poderão ser revendidas.
- </text>
- <text name="can_change">
+ </string>
+ <string name="can_change">
O terreno comprado nesta região pode ser compartilhado ou subdividido.
- </text>
- <text name="can_not_change">
+ </string>
+ <string name="can_not_change">
O terreno comprado nesta região não pode ser compartilhado ou subdividido.
- </text>
+ </string>
</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 c04a5f001e..6873d4ac98 100644
--- a/indra/newview/skins/default/xui/pt/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/pt/panel_region_general.xml
@@ -12,6 +12,12 @@
<text name="version_channel_text">
desconhecido
</text>
+ <text name="region_type_lbl">
+ Tipo:
+ </text>
+ <text name="region_type">
+ desconhecido
+ </text>
<check_box label="Bloquear Terraform" name="block_terraform_check"/>
<button label="?" name="terraform_help"/>
<check_box label="Bloquear Vôo" name="block_fly_check"/>
@@ -31,10 +37,19 @@
<spinner label="Objeto Bonus" name="object_bonus_spin"/>
<button label="?" name="object_bonus_help"/>
<text label="Maturidade" name="access_text">
- Maturidade:
+ Classificação:
</text>
-
-
+ <combo_box label="Mature" name="access_combo">
+ <combo_item name="Adult">
+ Adult
+ </combo_item>
+ <combo_item name="Mature">
+ Mature
+ </combo_item>
+ <combo_item name="PG">
+ PG
+ </combo_item>
+ </combo_box>
<button label="?" name="access_help"/>
<button label="Aplicar" name="apply_btn"/>
<button label="Teletransportar um usuário para Casa..." name="kick_btn"/>
diff --git a/indra/newview/skins/default/xui/pt/strings.xml b/indra/newview/skins/default/xui/pt/strings.xml
index d54b562e59..8542fc6c0e 100644
--- a/indra/newview/skins/default/xui/pt/strings.xml
+++ b/indra/newview/skins/default/xui/pt/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- This file contains strings that used to be hardcoded in the source.
- It is only for those strings which don&apos;t belong in a floater.
+ It is only for those strings which do not belong in a floater.
For example, the strings used in avatar chat bubbles, and strings
that are returned from one component and may appear in many places-->
<strings>
@@ -55,9 +55,6 @@
<string name="LoginDownloadingClothing">
Baixando roupas...
</string>
- <string name="LoginFailedNoNetwork">
- Erro de Rede: Não foi possível estabelecer uma conexão. Por favor, verifique sua conexão de rede.
- </string>
<string name="AgentLostConnection">
Esta região pode estar passando por problemas. Por favor, verifique sua conexão com a internet.
</string>
@@ -184,6 +181,9 @@
<string name="AssetErrorCircuitGone">
Circuito caiu
</string>
+ <string name="AssetErrorPriceMismatch">
+ Visualizador e servidor não concordam no preço
+ </string>
<string name="AssetErrorUnknownStatus">
Status desconhecido
</string>
@@ -418,4 +418,69 @@
<string name="shout">
grita:
</string>
+ <string name="SIM_ACCESS_PG">
+ PG
+ </string>
+ <string name="SIM_ACCESS_MATURE">
+ Mature
+ </string>
+ <string name="SIM_ACCESS_ADULT">
+ Adult
+ </string>
+ <string name="SIM_ACCESS_DOWN">
+ Desconectado
+ </string>
+ <string name="SIM_ACCESS_MIN">
+ Desconhecido
+ </string>
+ <string name="land_type_unknown">
+ (desconhecido)
+ </string>
+ <string name="covenant_never_modified">Última modificação: (nunca)</string>
+ <string name="covenant_modified">Última modificação: </string>
+ <string name="all_files">
+ Todos os Arquivos
+ </string>
+ <string name="sound_files">
+ Sons
+ </string>
+ <string name="animation_files">
+ Animações
+ </string>
+ <string name="image_files">
+ Imagens
+ </string>
+ <string name="save_file_verb">
+ Salvar
+ </string>
+ <string name="load_file_verb">
+ Carregar
+ </string>
+ <string name="targa_image_files">
+ Imagens Targa
+ </string>
+ <string name="bitmap_image_files">
+ Imagens Bitmap
+ </string>
+ <string name="avi_movie_file">
+ Arquivo de filme AVI
+ </string>
+ <string name="xaf_animation_file">
+ Arquivo de Animação XAF
+ </string>
+ <string name="xml_file">
+ Arquivo XML
+ </string>
+ <string name="dot_raw_file">
+ Arquivo RAW
+ </string>
+ <string name="compressed_image_files">
+ Imagens Compactadas
+ </string>
+ <string name="load_files">
+ Carregar Arquivos
+ </string>
+ <string name="choose_the_directory">
+ Escolher Diretório
+ </string>
</strings>
diff --git a/indra/newview/skins/paths.xml b/indra/newview/skins/paths.xml
index 949cc145d9..3b91a904b0 100644
--- a/indra/newview/skins/paths.xml
+++ b/indra/newview/skins/paths.xml
@@ -1,4 +1,4 @@
<paths>
- <directory>xui/en-us</directory>
+ <directory>xui/en</directory>
<directory>xui/[LANGUAGE]</directory>
</paths> \ No newline at end of file
diff --git a/indra/newview/tests/llcapabilitylistener_test.cpp b/indra/newview/tests/llcapabilitylistener_test.cpp
index 90cc867852..b965379c9c 100644
--- a/indra/newview/tests/llcapabilitylistener_test.cpp
+++ b/indra/newview/tests/llcapabilitylistener_test.cpp
@@ -4,7 +4,7 @@
* @date 2008-12-31
* @brief Test for llcapabilitylistener.cpp.
*
- * $LicenseInfo:firstyear=2008&license=internal$
+ * $LicenseInfo:firstyear=2008&license=viewergpl$
* Copyright (c) 2008, Linden Research, Inc.
* $/LicenseInfo$
*/
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index 583dba4fd9..2838ff6335 100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -256,9 +256,9 @@ class WindowsManifest(ViewerManifest):
dst="updater.exe")
# For google-perftools tcmalloc allocator.
- #if self.prefix(src="../../libraries/i686-win32/lib/release", dst=""):
- # self.path("libtcmalloc_minimal.dll")
- # self.end_prefix()
+ if self.prefix(src="../../libraries/i686-win32/lib/release", dst=""):
+ self.path("libtcmalloc_minimal.dll")
+ self.end_prefix()
def nsi_file_commands(self, install=True):
@@ -439,6 +439,18 @@ class DarwinManifest(ViewerManifest):
self.path("German.lproj")
self.path("Japanese.lproj")
self.path("Korean.lproj")
+ self.path("da.lproj")
+ self.path("es.lproj")
+ self.path("fr.lproj")
+ self.path("hu.lproj")
+ self.path("it.lproj")
+ self.path("nl.lproj")
+ self.path("pl.lproj")
+ self.path("pt.lproj")
+ self.path("ru.lproj")
+ self.path("tr.lproj")
+ self.path("uk.lproj")
+ self.path("zh-Hans.lproj")
# SLVoice and vivox lols
self.path("vivox-runtime/universal-darwin/libalut.dylib", "libalut.dylib")
@@ -656,7 +668,7 @@ class Linux_i686Manifest(LinuxManifest):
self.path("app_settings/mozilla-runtime-linux-i686")
if self.prefix("../../libraries/i686-linux/lib_release_client", dst="lib"):
- self.path("libkdu_v42R.so", "libkdu.so")
+ #self.path("libkdu_v42R.so", "libkdu.so")
self.path("libfmod-3.75.so")
self.path("libapr-1.so.0")
self.path("libaprutil-1.so.0")