summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rw-r--r--indra/llcommon/CMakeLists.txt4
-rw-r--r--indra/llcommon/llallocator_heap_profile.cpp31
-rw-r--r--indra/llcommon/llchat.h4
-rw-r--r--indra/llcommon/lldate.cpp3
-rw-r--r--indra/llcommon/llerrorlegacy.h4
-rw-r--r--indra/llcommon/llfasttimer.h302
-rw-r--r--indra/llcommon/llfasttimer_class.cpp751
-rw-r--r--indra/llcommon/llfasttimer_class.h272
-rw-r--r--indra/llcommon/llpreprocessor.h15
-rw-r--r--indra/llcommon/llprocessor.cpp3
-rw-r--r--indra/llcommon/llstring.h1
-rw-r--r--indra/llcommon/lluri.cpp15
-rw-r--r--indra/llmath/llinterp.h3
-rw-r--r--indra/llmath/lloctree.h1
-rw-r--r--indra/llmessage/llcachename.cpp2
-rw-r--r--indra/llmessage/llmessagetemplateparser.cpp4
-rw-r--r--indra/llmessage/llnamevalue.cpp1
-rw-r--r--indra/llmessage/lltemplatemessagebuilder.cpp8
-rw-r--r--indra/llmessage/lltransfermanager.cpp1
-rw-r--r--indra/llplugin/llpluginprocesschild.cpp1
-rw-r--r--indra/llplugin/slplugin/slplugin.cpp2
-rw-r--r--indra/llprimitive/llprimitive.cpp1
-rw-r--r--indra/llrender/llfontbitmapcache.cpp4
-rw-r--r--indra/llrender/llimagegl.cpp48
-rw-r--r--indra/llrender/llimagegl.h2
-rw-r--r--indra/llrender/llvertexbuffer.cpp6
-rw-r--r--indra/llui/llaccordionctrl.cpp75
-rw-r--r--indra/llui/llaccordionctrl.h9
-rw-r--r--indra/llui/llaccordionctrltab.cpp34
-rw-r--r--indra/llui/llaccordionctrltab.h1
-rw-r--r--indra/llui/llbutton.cpp22
-rw-r--r--indra/llui/llbutton.h20
-rw-r--r--indra/llui/llcombobox.cpp9
-rw-r--r--indra/llui/lldraghandle.cpp1
-rw-r--r--indra/llui/llfloater.cpp5
-rw-r--r--indra/llui/llfloater.h3
-rw-r--r--indra/llui/lllineeditor.cpp6
-rw-r--r--indra/llui/llmenugl.cpp25
-rw-r--r--indra/llui/llmenugl.h2
-rw-r--r--indra/llui/llnotifications.cpp1
-rw-r--r--indra/llui/llscrolllistctrl.cpp12
-rw-r--r--indra/llui/llscrolllistctrl.h1
-rw-r--r--indra/llui/llscrolllistitem.h2
-rw-r--r--indra/llui/llstyle.cpp5
-rw-r--r--indra/llui/lltabcontainer.cpp80
-rw-r--r--indra/llui/lltabcontainer.h1
-rw-r--r--indra/llui/lltextbase.cpp49
-rw-r--r--indra/llui/lltextbase.h8
-rw-r--r--indra/llui/lltexteditor.cpp14
-rw-r--r--indra/llui/lltooltip.cpp3
-rw-r--r--indra/llui/lluistring.h2
-rw-r--r--indra/newview/CMakeLists.txt23
-rw-r--r--indra/newview/app_settings/settings.xml66
-rw-r--r--indra/newview/gpu_table.txt10
-rw-r--r--indra/newview/llagentwearables.cpp4
-rw-r--r--indra/newview/llappearancemgr.cpp26
-rw-r--r--indra/newview/llappearancemgr.h2
-rw-r--r--indra/newview/llappviewer.cpp16
-rw-r--r--indra/newview/llappviewer.h4
-rw-r--r--indra/newview/llappviewermacosx.cpp54
-rw-r--r--indra/newview/llappviewermacosx.h3
-rw-r--r--indra/newview/llavataractions.cpp7
-rw-r--r--indra/newview/llavataractions.h5
-rw-r--r--indra/newview/llcallfloater.cpp62
-rw-r--r--indra/newview/llcallfloater.h4
-rw-r--r--indra/newview/llchathistory.cpp74
-rw-r--r--indra/newview/llchathistory.h9
-rw-r--r--indra/newview/llchatitemscontainerctrl.h16
-rw-r--r--indra/newview/llchiclet.cpp26
-rw-r--r--indra/newview/llchiclet.h17
-rw-r--r--indra/newview/llcompilequeue.cpp19
-rw-r--r--indra/newview/llcompilequeue.h4
-rw-r--r--indra/newview/lldirpicker.cpp14
-rw-r--r--indra/newview/lldirpicker.h2
-rw-r--r--indra/newview/lleventinfo.h10
-rw-r--r--indra/newview/lleventnotifier.cpp1
-rw-r--r--indra/newview/llface.cpp1
-rw-r--r--indra/newview/llfavoritesbar.cpp4
-rw-r--r--indra/newview/llfilepicker.cpp13
-rw-r--r--indra/newview/llfilepicker.h3
-rw-r--r--indra/newview/llflexibleobject.cpp1
-rw-r--r--indra/newview/llfloaterabout.cpp6
-rw-r--r--indra/newview/llfloateranimpreview.h1
-rw-r--r--indra/newview/llfloaterbulkpermission.cpp1
-rw-r--r--indra/newview/llfloaterbulkpermission.h2
-rw-r--r--indra/newview/llfloaterchatterbox.cpp4
-rw-r--r--indra/newview/llfloatergesture.cpp12
-rw-r--r--indra/newview/llfloaterhardwaresettings.cpp12
-rw-r--r--indra/newview/llfloaterjoystick.cpp11
-rw-r--r--indra/newview/llfloaterjoystick.h2
-rw-r--r--indra/newview/llfloaterland.cpp25
-rw-r--r--indra/newview/llfloatermap.cpp1
-rw-r--r--indra/newview/llfloaterpay.cpp3
-rw-r--r--indra/newview/llfloaterpreference.cpp29
-rw-r--r--indra/newview/llfloaterpreference.h1
-rw-r--r--indra/newview/llfloaterregioninfo.cpp14
-rw-r--r--indra/newview/llfloaterscriptlimits.cpp11
-rw-r--r--indra/newview/llfloaterscriptlimits.h26
-rw-r--r--indra/newview/llfloatersnapshot.cpp11
-rw-r--r--indra/newview/llfolderview.cpp100
-rw-r--r--indra/newview/llfolderview.h5
-rw-r--r--indra/newview/llfolderviewitem.cpp1
-rw-r--r--indra/newview/llgroupactions.cpp3
-rw-r--r--indra/newview/llgroupmgr.cpp38
-rw-r--r--indra/newview/llgroupmgr.h15
-rw-r--r--indra/newview/llimfloater.cpp1
-rw-r--r--indra/newview/llimfloatercontainer.cpp46
-rw-r--r--indra/newview/llimfloatercontainer.h7
-rw-r--r--indra/newview/llimview.cpp349
-rw-r--r--indra/newview/llimview.h58
-rw-r--r--indra/newview/llinspectavatar.cpp1
-rw-r--r--indra/newview/llinspectremoteobject.cpp25
-rw-r--r--indra/newview/llinventorybridge.cpp2
-rw-r--r--indra/newview/llinventorybridge.h8
-rw-r--r--indra/newview/llinventoryfilter.cpp1
-rw-r--r--indra/newview/llinventoryfunctions.cpp1
-rw-r--r--indra/newview/llinventorymodel.cpp134
-rw-r--r--indra/newview/llinventorypanel.cpp4
-rw-r--r--indra/newview/lllocaltextureobject.cpp4
-rw-r--r--indra/newview/lllocationhistory.cpp13
-rw-r--r--indra/newview/lllocationinputctrl.cpp6
-rw-r--r--indra/newview/llmanipscale.cpp1
-rw-r--r--indra/newview/llmaniptranslate.cpp4
-rw-r--r--indra/newview/llmoveview.cpp18
-rw-r--r--indra/newview/llmutelist.cpp7
-rw-r--r--indra/newview/llnamelistctrl.cpp21
-rw-r--r--indra/newview/llnamelistctrl.h21
-rw-r--r--indra/newview/llnearbychat.cpp6
-rw-r--r--indra/newview/llnearbychat.h2
-rw-r--r--indra/newview/llnearbychathandler.cpp9
-rw-r--r--indra/newview/llnearbychathandler.h2
-rw-r--r--indra/newview/llnotificationhandler.h2
-rw-r--r--indra/newview/llnotificationhandlerutil.cpp9
-rw-r--r--indra/newview/llnotificationmanager.cpp7
-rw-r--r--indra/newview/llnotificationmanager.h2
-rw-r--r--indra/newview/llpanelavatar.cpp3
-rw-r--r--indra/newview/llpanelcontents.cpp2
-rw-r--r--indra/newview/llpanelgroup.cpp23
-rw-r--r--indra/newview/llpanelgroup.h7
-rw-r--r--indra/newview/llpanelgroupnotices.cpp2
-rw-r--r--indra/newview/llpanelgrouproles.cpp10
-rw-r--r--indra/newview/llpanellandmarkinfo.cpp11
-rw-r--r--indra/newview/llpanellandmarkinfo.h2
-rw-r--r--indra/newview/llpanelobject.cpp5
-rw-r--r--indra/newview/llpanelobjectinventory.cpp4
-rw-r--r--indra/newview/llpanelpeoplemenus.cpp17
-rw-r--r--indra/newview/llpanelpeoplemenus.h3
-rw-r--r--indra/newview/llpanelplaceinfo.cpp21
-rw-r--r--indra/newview/llpanelplaceinfo.h8
-rw-r--r--indra/newview/llpanelplaceprofile.cpp82
-rw-r--r--indra/newview/llpanelplaceprofile.h2
-rw-r--r--indra/newview/llpanelplaces.cpp42
-rw-r--r--indra/newview/llpanelplaces.h8
-rw-r--r--indra/newview/llpanelteleporthistory.cpp3
-rw-r--r--indra/newview/llparticipantlist.cpp4
-rw-r--r--indra/newview/llplacesinventorypanel.cpp17
-rw-r--r--indra/newview/llplacesinventorypanel.h2
-rw-r--r--indra/newview/llpreviewgesture.cpp10
-rw-r--r--indra/newview/llpreviewgesture.h1
-rw-r--r--indra/newview/llselectmgr.cpp4
-rw-r--r--indra/newview/llsidepanelinventorysubpanel.cpp1
-rw-r--r--indra/newview/llspatialpartition.cpp3
-rw-r--r--indra/newview/llstatusbar.cpp6
-rw-r--r--indra/newview/llsurfacepatch.cpp4
-rw-r--r--indra/newview/lltexlayer.cpp3
-rw-r--r--indra/newview/lltexturecache.cpp24
-rw-r--r--indra/newview/lltexturecache.h7
-rw-r--r--indra/newview/lltexturefetch.cpp2
-rw-r--r--indra/newview/lltoastalertpanel.cpp1
-rw-r--r--indra/newview/lltoastgroupnotifypanel.cpp12
-rw-r--r--indra/newview/lltoastimpanel.cpp51
-rw-r--r--indra/newview/lltoastimpanel.h7
-rw-r--r--indra/newview/lltoolbar.cpp25
-rw-r--r--indra/newview/lltooldraganddrop.cpp14
-rw-r--r--indra/newview/lltoolgrab.cpp6
-rw-r--r--indra/newview/lltoolpie.cpp2
-rw-r--r--indra/newview/llviewercontrol.cpp31
-rw-r--r--indra/newview/llviewerfloaterreg.cpp10
-rw-r--r--indra/newview/llviewerhelp.cpp40
-rw-r--r--indra/newview/llviewerinventory.cpp218
-rw-r--r--indra/newview/llviewerinventory.h5
-rw-r--r--indra/newview/llviewerjoint.cpp20
-rw-r--r--indra/newview/llviewerjoint.h2
-rw-r--r--indra/newview/llviewerjointmesh.cpp1
-rw-r--r--indra/newview/llviewermedia.cpp7
-rw-r--r--indra/newview/llviewermenu.cpp17
-rw-r--r--indra/newview/llviewermessage.cpp69
-rw-r--r--indra/newview/llviewermessage.h4
-rw-r--r--indra/newview/llviewerobject.cpp4
-rw-r--r--indra/newview/llviewerparcelmedia.cpp2
-rw-r--r--indra/newview/llviewerparcelmgr.cpp5
-rw-r--r--indra/newview/llviewerpartsim.cpp1
-rw-r--r--indra/newview/llviewershadermgr.cpp3
-rw-r--r--indra/newview/llviewertexture.cpp4
-rw-r--r--indra/newview/llviewervisualparam.cpp1
-rw-r--r--indra/newview/llviewerwindow.cpp35
-rw-r--r--indra/newview/llviewerwindow.h3
-rw-r--r--indra/newview/llviewerwindowlistener.cpp1
-rw-r--r--indra/newview/llvoicechannel.cpp16
-rw-r--r--indra/newview/llvoicevivox.cpp7
-rw-r--r--indra/newview/llvosky.cpp11
-rw-r--r--indra/newview/llvosky.h6
-rw-r--r--indra/newview/llvovolume.cpp2
-rw-r--r--indra/newview/llwearable.cpp7
-rw-r--r--indra/newview/llwearable.h2
-rw-r--r--indra/newview/llwearablelist.cpp1
-rw-r--r--indra/newview/skins/default/xui/de/floater_about_land.xml144
-rw-r--r--indra/newview/skins/default/xui/de/floater_animation_preview.xml5
-rw-r--r--indra/newview/skins/default/xui/de/floater_avatar_picker.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_avatar_textures.xml62
-rw-r--r--indra/newview/skins/default/xui/de/floater_buy_currency.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_color_picker.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_customize.xml71
-rw-r--r--indra/newview/skins/default/xui/de/floater_god_tools.xml9
-rw-r--r--indra/newview/skins/default/xui/de/floater_im_container.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_incoming_call.xml6
-rw-r--r--indra/newview/skins/default/xui/de/floater_lsl_guide.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_media_browser.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_notification.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_outfit_save_as.xml11
-rw-r--r--indra/newview/skins/default/xui/de/floater_outgoing_call.xml9
-rw-r--r--indra/newview/skins/default/xui/de/floater_preview_gesture.xml3
-rw-r--r--indra/newview/skins/default/xui/de/floater_preview_notecard.xml4
-rw-r--r--indra/newview/skins/default/xui/de/floater_preview_texture.xml5
-rw-r--r--indra/newview/skins/default/xui/de/floater_report_abuse.xml4
-rw-r--r--indra/newview/skins/default/xui/de/floater_script_limits.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_search.xml7
-rw-r--r--indra/newview/skins/default/xui/de/floater_select_key.xml7
-rw-r--r--indra/newview/skins/default/xui/de/floater_sell_land.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_snapshot.xml18
-rw-r--r--indra/newview/skins/default/xui/de/floater_sys_well.xml9
-rw-r--r--indra/newview/skins/default/xui/de/floater_telehub.xml11
-rw-r--r--indra/newview/skins/default/xui/de/floater_tools.xml13
-rw-r--r--indra/newview/skins/default/xui/de/floater_top_objects.xml67
-rw-r--r--indra/newview/skins/default/xui/de/floater_voice_controls.xml30
-rw-r--r--indra/newview/skins/default/xui/de/floater_whitelist_entry.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_window_size.xml17
-rw-r--r--indra/newview/skins/default/xui/de/floater_world_map.xml128
-rw-r--r--indra/newview/skins/default/xui/de/inspect_avatar.xml10
-rw-r--r--indra/newview/skins/default/xui/de/inspect_group.xml1
-rw-r--r--indra/newview/skins/default/xui/de/menu_attachment_other.xml17
-rw-r--r--indra/newview/skins/default/xui/de/menu_attachment_self.xml12
-rw-r--r--indra/newview/skins/default/xui/de/menu_avatar_icon.xml2
-rw-r--r--indra/newview/skins/default/xui/de/menu_avatar_other.xml16
-rw-r--r--indra/newview/skins/default/xui/de/menu_avatar_self.xml27
-rw-r--r--indra/newview/skins/default/xui/de/menu_bottomtray.xml5
-rw-r--r--indra/newview/skins/default/xui/de/menu_im_well_button.xml4
-rw-r--r--indra/newview/skins/default/xui/de/menu_imchiclet_adhoc.xml4
-rw-r--r--indra/newview/skins/default/xui/de/menu_inspect_avatar_gear.xml1
-rw-r--r--indra/newview/skins/default/xui/de/menu_inventory.xml10
-rw-r--r--indra/newview/skins/default/xui/de/menu_inventory_add.xml2
-rw-r--r--indra/newview/skins/default/xui/de/menu_inventory_gear_default.xml4
-rw-r--r--indra/newview/skins/default/xui/de/menu_land.xml9
-rw-r--r--indra/newview/skins/default/xui/de/menu_login.xml6
-rw-r--r--indra/newview/skins/default/xui/de/menu_notification_well_button.xml4
-rw-r--r--indra/newview/skins/default/xui/de/menu_object.xml25
-rw-r--r--indra/newview/skins/default/xui/de/menu_participant_list.xml19
-rw-r--r--indra/newview/skins/default/xui/de/menu_people_groups.xml8
-rw-r--r--indra/newview/skins/default/xui/de/menu_people_nearby.xml1
-rw-r--r--indra/newview/skins/default/xui/de/menu_profile_overflow.xml4
-rw-r--r--indra/newview/skins/default/xui/de/menu_teleport_history_gear.xml2
-rw-r--r--indra/newview/skins/default/xui/de/menu_viewer.xml52
-rw-r--r--indra/newview/skins/default/xui/de/mime_types_linux.xml217
-rw-r--r--indra/newview/skins/default/xui/de/mime_types_mac.xml217
-rw-r--r--indra/newview/skins/default/xui/de/notifications.xml163
-rw-r--r--indra/newview/skins/default/xui/de/panel_active_object_row.xml9
-rw-r--r--indra/newview/skins/default/xui/de/panel_adhoc_control_panel.xml16
-rw-r--r--indra/newview/skins/default/xui/de/panel_avatar_list_item.xml1
-rw-r--r--indra/newview/skins/default/xui/de/panel_block_list_sidetray.xml4
-rw-r--r--indra/newview/skins/default/xui/de/panel_bottomtray.xml12
-rw-r--r--indra/newview/skins/default/xui/de/panel_edit_classified.xml4
-rw-r--r--indra/newview/skins/default/xui/de/panel_edit_profile.xml5
-rw-r--r--indra/newview/skins/default/xui/de/panel_friends.xml46
-rw-r--r--indra/newview/skins/default/xui/de/panel_group_control_panel.xml20
-rw-r--r--indra/newview/skins/default/xui/de/panel_group_general.xml8
-rw-r--r--indra/newview/skins/default/xui/de/panel_group_info_sidetray.xml2
-rw-r--r--indra/newview/skins/default/xui/de/panel_group_invite.xml8
-rw-r--r--indra/newview/skins/default/xui/de/panel_group_list_item.xml1
-rw-r--r--indra/newview/skins/default/xui/de/panel_group_notices.xml14
-rw-r--r--indra/newview/skins/default/xui/de/panel_im_control_panel.xml32
-rw-r--r--indra/newview/skins/default/xui/de/panel_landmark_info.xml1
-rw-r--r--indra/newview/skins/default/xui/de/panel_login.xml68
-rw-r--r--indra/newview/skins/default/xui/de/panel_main_inventory.xml10
-rw-r--r--indra/newview/skins/default/xui/de/panel_media_settings_general.xml10
-rw-r--r--indra/newview/skins/default/xui/de/panel_media_settings_permissions.xml25
-rw-r--r--indra/newview/skins/default/xui/de/panel_media_settings_security.xml6
-rw-r--r--indra/newview/skins/default/xui/de/panel_my_profile.xml80
-rw-r--r--indra/newview/skins/default/xui/de/panel_navigation_bar.xml2
-rw-r--r--indra/newview/skins/default/xui/de/panel_notes.xml18
-rw-r--r--indra/newview/skins/default/xui/de/panel_outfits_inventory.xml15
-rw-r--r--indra/newview/skins/default/xui/de/panel_outfits_inventory_gear_default.xml6
-rw-r--r--indra/newview/skins/default/xui/de/panel_people.xml1
-rw-r--r--indra/newview/skins/default/xui/de/panel_picks.xml12
-rw-r--r--indra/newview/skins/default/xui/de/panel_place_profile.xml3
-rw-r--r--indra/newview/skins/default/xui/de/panel_places.xml9
-rw-r--r--indra/newview/skins/default/xui/de/panel_preferences_alerts.xml2
-rw-r--r--indra/newview/skins/default/xui/de/panel_preferences_chat.xml10
-rw-r--r--indra/newview/skins/default/xui/de/panel_preferences_general.xml24
-rw-r--r--indra/newview/skins/default/xui/de/panel_preferences_privacy.xml6
-rw-r--r--indra/newview/skins/default/xui/de/panel_preferences_setup.xml8
-rw-r--r--indra/newview/skins/default/xui/de/panel_preferences_sound.xml4
-rw-r--r--indra/newview/skins/default/xui/de/panel_prim_media_controls.xml52
-rw-r--r--indra/newview/skins/default/xui/de/panel_profile.xml77
-rw-r--r--indra/newview/skins/default/xui/de/panel_region_estate.xml9
-rw-r--r--indra/newview/skins/default/xui/de/panel_region_general.xml6
-rw-r--r--indra/newview/skins/default/xui/de/panel_region_general_layout.xml43
-rw-r--r--indra/newview/skins/default/xui/de/panel_region_texture.xml3
-rw-r--r--indra/newview/skins/default/xui/de/panel_script_limits_my_avatar.xml13
-rw-r--r--indra/newview/skins/default/xui/de/panel_script_limits_region_memory.xml24
-rw-r--r--indra/newview/skins/default/xui/de/panel_side_tray.xml11
-rw-r--r--indra/newview/skins/default/xui/de/panel_status_bar.xml3
-rw-r--r--indra/newview/skins/default/xui/de/panel_teleport_history.xml4
-rw-r--r--indra/newview/skins/default/xui/de/panel_teleport_history_item.xml1
-rw-r--r--indra/newview/skins/default/xui/de/role_actions.xml244
-rw-r--r--indra/newview/skins/default/xui/de/sidepanel_appearance.xml8
-rw-r--r--indra/newview/skins/default/xui/de/sidepanel_inventory.xml2
-rw-r--r--indra/newview/skins/default/xui/de/sidepanel_item_info.xml57
-rw-r--r--indra/newview/skins/default/xui/de/sidepanel_task_info.xml76
-rw-r--r--indra/newview/skins/default/xui/de/strings.xml310
-rw-r--r--indra/newview/skins/default/xui/en/floater_aaa.xml3
-rw-r--r--indra/newview/skins/default/xui/en/floater_buy_currency.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_color_picker.xml2
-rw-r--r--indra/newview/skins/default/xui/en/floater_map.xml5
-rw-r--r--indra/newview/skins/default/xui/en/floater_search.xml8
-rw-r--r--indra/newview/skins/default/xui/en/menu_attachment_other.xml2
-rw-r--r--indra/newview/skins/default/xui/en/menu_avatar_other.xml2
-rw-r--r--indra/newview/skins/default/xui/en/menu_gesture_gear.xml10
-rw-r--r--indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml2
-rw-r--r--indra/newview/skins/default/xui/en/menu_login.xml2
-rw-r--r--indra/newview/skins/default/xui/en/notifications.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_block_list_sidetray.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml1
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_list_item.xml1
-rw-r--r--indra/newview/skins/default/xui/en/panel_landmark_info.xml1
-rw-r--r--indra/newview/skins/default/xui/en/panel_pick_info.xml1
-rw-r--r--indra/newview/skins/default/xui/en/panel_place_profile.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_privacy.xml20
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_setup.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_teleport_history_item.xml1
-rw-r--r--indra/newview/skins/default/xui/en/widgets/button.xml4
-rw-r--r--indra/newview/skins/default/xui/en/widgets/location_input.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_about_land.xml130
-rw-r--r--indra/newview/skins/default/xui/ja/floater_animation_preview.xml5
-rw-r--r--indra/newview/skins/default/xui/ja/floater_avatar_textures.xml62
-rw-r--r--indra/newview/skins/default/xui/ja/floater_bulk_perms.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_buy_currency.xml388
-rw-r--r--indra/newview/skins/default/xui/ja/floater_color_picker.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_customize.xml58
-rw-r--r--indra/newview/skins/default/xui/ja/floater_god_tools.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_im_container.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_incoming_call.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/floater_lsl_guide.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_media_browser.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_outfit_save_as.xml11
-rw-r--r--indra/newview/skins/default/xui/ja/floater_outgoing_call.xml9
-rw-r--r--indra/newview/skins/default/xui/ja/floater_preferences.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_preview_gesture.xml3
-rw-r--r--indra/newview/skins/default/xui/ja/floater_preview_notecard.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/floater_preview_texture.xml5
-rw-r--r--indra/newview/skins/default/xui/ja/floater_report_abuse.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/floater_script_limits.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_search.xml7
-rw-r--r--indra/newview/skins/default/xui/ja/floater_select_key.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/floater_sell_land.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_snapshot.xml18
-rw-r--r--indra/newview/skins/default/xui/ja/floater_sys_well.xml9
-rw-r--r--indra/newview/skins/default/xui/ja/floater_telehub.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/floater_texture_ctrl.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_tools.xml13
-rw-r--r--indra/newview/skins/default/xui/ja/floater_top_objects.xml69
-rw-r--r--indra/newview/skins/default/xui/ja/floater_voice_controls.xml30
-rw-r--r--indra/newview/skins/default/xui/ja/floater_whitelist_entry.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_window_size.xml17
-rw-r--r--indra/newview/skins/default/xui/ja/floater_world_map.xml129
-rw-r--r--indra/newview/skins/default/xui/ja/inspect_avatar.xml10
-rw-r--r--indra/newview/skins/default/xui/ja/inspect_group.xml1
-rw-r--r--indra/newview/skins/default/xui/ja/menu_attachment_other.xml17
-rw-r--r--indra/newview/skins/default/xui/ja/menu_attachment_self.xml12
-rw-r--r--indra/newview/skins/default/xui/ja/menu_avatar_icon.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/menu_avatar_other.xml16
-rw-r--r--indra/newview/skins/default/xui/ja/menu_avatar_self.xml27
-rw-r--r--indra/newview/skins/default/xui/ja/menu_bottomtray.xml5
-rw-r--r--indra/newview/skins/default/xui/ja/menu_im_well_button.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/menu_imchiclet_adhoc.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/menu_imchiclet_p2p.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/menu_inspect_avatar_gear.xml1
-rw-r--r--indra/newview/skins/default/xui/ja/menu_inventory.xml10
-rw-r--r--indra/newview/skins/default/xui/ja/menu_inventory_add.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/menu_inventory_gear_default.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/menu_land.xml9
-rw-r--r--indra/newview/skins/default/xui/ja/menu_login.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/menu_notification_well_button.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/menu_object.xml25
-rw-r--r--indra/newview/skins/default/xui/ja/menu_participant_list.xml19
-rw-r--r--indra/newview/skins/default/xui/ja/menu_people_groups.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/menu_people_nearby.xml1
-rw-r--r--indra/newview/skins/default/xui/ja/menu_profile_overflow.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/menu_viewer.xml44
-rw-r--r--indra/newview/skins/default/xui/ja/mime_types_linux.xml217
-rw-r--r--indra/newview/skins/default/xui/ja/mime_types_mac.xml217
-rw-r--r--indra/newview/skins/default/xui/ja/notifications.xml187
-rw-r--r--indra/newview/skins/default/xui/ja/panel_active_object_row.xml9
-rw-r--r--indra/newview/skins/default/xui/ja/panel_adhoc_control_panel.xml16
-rw-r--r--indra/newview/skins/default/xui/ja/panel_avatar_list_item.xml1
-rw-r--r--indra/newview/skins/default/xui/ja/panel_block_list_sidetray.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_bottomtray.xml12
-rw-r--r--indra/newview/skins/default/xui/ja/panel_classified_info.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/panel_edit_classified.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/panel_edit_profile.xml5
-rw-r--r--indra/newview/skins/default/xui/ja/panel_friends.xml59
-rw-r--r--indra/newview/skins/default/xui/ja/panel_group_control_panel.xml20
-rw-r--r--indra/newview/skins/default/xui/ja/panel_group_general.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/panel_group_info_sidetray.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_group_invite.xml7
-rw-r--r--indra/newview/skins/default/xui/ja/panel_group_list_item.xml1
-rw-r--r--indra/newview/skins/default/xui/ja/panel_group_notices.xml14
-rw-r--r--indra/newview/skins/default/xui/ja/panel_group_notify.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_im_control_panel.xml32
-rw-r--r--indra/newview/skins/default/xui/ja/panel_landmark_info.xml1
-rw-r--r--indra/newview/skins/default/xui/ja/panel_login.xml68
-rw-r--r--indra/newview/skins/default/xui/ja/panel_main_inventory.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/panel_media_settings_general.xml22
-rw-r--r--indra/newview/skins/default/xui/ja/panel_media_settings_permissions.xml25
-rw-r--r--indra/newview/skins/default/xui/ja/panel_media_settings_security.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/panel_my_profile.xml80
-rw-r--r--indra/newview/skins/default/xui/ja/panel_navigation_bar.xml3
-rw-r--r--indra/newview/skins/default/xui/ja/panel_notes.xml18
-rw-r--r--indra/newview/skins/default/xui/ja/panel_outfits_inventory.xml15
-rw-r--r--indra/newview/skins/default/xui/ja/panel_outfits_inventory_gear_default.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/panel_people.xml1
-rw-r--r--indra/newview/skins/default/xui/ja/panel_picks.xml12
-rw-r--r--indra/newview/skins/default/xui/ja/panel_place_profile.xml3
-rw-r--r--indra/newview/skins/default/xui/ja/panel_places.xml7
-rw-r--r--indra/newview/skins/default/xui/ja/panel_preferences_alerts.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/panel_preferences_chat.xml10
-rw-r--r--indra/newview/skins/default/xui/ja/panel_preferences_general.xml26
-rw-r--r--indra/newview/skins/default/xui/ja/panel_preferences_privacy.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/panel_preferences_setup.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/panel_preferences_sound.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_prim_media_controls.xml52
-rw-r--r--indra/newview/skins/default/xui/ja/panel_profile.xml77
-rw-r--r--indra/newview/skins/default/xui/ja/panel_region_estate.xml9
-rw-r--r--indra/newview/skins/default/xui/ja/panel_region_general.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/panel_region_general_layout.xml43
-rw-r--r--indra/newview/skins/default/xui/ja/panel_region_texture.xml5
-rw-r--r--indra/newview/skins/default/xui/ja/panel_script_limits_my_avatar.xml13
-rw-r--r--indra/newview/skins/default/xui/ja/panel_script_limits_region_memory.xml24
-rw-r--r--indra/newview/skins/default/xui/ja/panel_side_tray.xml11
-rw-r--r--indra/newview/skins/default/xui/ja/panel_status_bar.xml3
-rw-r--r--indra/newview/skins/default/xui/ja/panel_teleport_history.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/panel_teleport_history_item.xml1
-rw-r--r--indra/newview/skins/default/xui/ja/role_actions.xml249
-rw-r--r--indra/newview/skins/default/xui/ja/sidepanel_appearance.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/sidepanel_inventory.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/sidepanel_item_info.xml57
-rw-r--r--indra/newview/skins/default/xui/ja/sidepanel_task_info.xml78
-rw-r--r--indra/newview/skins/default/xui/ja/strings.xml286
457 files changed, 7345 insertions, 3488 deletions
diff --git a/indra/llcommon/CMakeLists.txt b/indra/llcommon/CMakeLists.txt
index ac7cc2cdac..9ead183a9e 100644
--- a/indra/llcommon/CMakeLists.txt
+++ b/indra/llcommon/CMakeLists.txt
@@ -50,7 +50,7 @@ set(llcommon_SOURCE_FILES
lleventdispatcher.cpp
lleventfilter.cpp
llevents.cpp
- llfasttimer.cpp
+ llfasttimer_class.cpp
llfile.cpp
llfindlocale.cpp
llfixedbuffer.cpp
@@ -250,7 +250,7 @@ list(APPEND llcommon_SOURCE_FILES ${llcommon_HEADER_FILES})
if(LLCOMMON_LINK_SHARED)
add_library (llcommon SHARED ${llcommon_SOURCE_FILES})
- ll_stage_sharedlib(llcommon)
+ ll_stage_sharedlib(llcommon)
else(LLCOMMON_LINK_SHARED)
add_library (llcommon ${llcommon_SOURCE_FILES})
endif(LLCOMMON_LINK_SHARED)
diff --git a/indra/llcommon/llallocator_heap_profile.cpp b/indra/llcommon/llallocator_heap_profile.cpp
index 0a807702d0..e50d59fd4b 100644
--- a/indra/llcommon/llallocator_heap_profile.cpp
+++ b/indra/llcommon/llallocator_heap_profile.cpp
@@ -113,21 +113,24 @@ void LLAllocatorHeapProfile::parse(std::string const & prof_text)
++j;
while(j != line_elems.end() && j->empty()) { ++j; } // skip any separator tokens
- llassert_always(j != line_elems.end());
- ++j; // skip the '@'
-
- mLines.push_back(line(live_count, live_size, tot_count, tot_size));
- line & current_line = mLines.back();
-
- for(; j != line_elems.end(); ++j)
- {
- if(!j->empty()) {
- U32 marker = boost::lexical_cast<U32>(*j);
- current_line.mTrace.push_back(marker);
- }
- }
+ llassert(j != line_elems.end());
+ if (j != line_elems.end())
+ {
+ ++j; // skip the '@'
+
+ mLines.push_back(line(live_count, live_size, tot_count, tot_size));
+ line & current_line = mLines.back();
+
+ for(; j != line_elems.end(); ++j)
+ {
+ if(!j->empty())
+ {
+ U32 marker = boost::lexical_cast<U32>(*j);
+ current_line.mTrace.push_back(marker);
+ }
+ }
+ }
}
-
// *TODO - parse MAPPED_LIBRARIES section here if we're ever interested in it
}
diff --git a/indra/llcommon/llchat.h b/indra/llcommon/llchat.h
index 5af7991006..46456882ba 100644
--- a/indra/llcommon/llchat.h
+++ b/indra/llcommon/llchat.h
@@ -87,7 +87,8 @@ public:
mTimeStr(),
mPosAgent(),
mURL(),
- mChatStyle(CHAT_STYLE_NORMAL)
+ mChatStyle(CHAT_STYLE_NORMAL),
+ mSessionID()
{ }
std::string mText; // UTF-8 line of text
@@ -102,6 +103,7 @@ public:
LLVector3 mPosAgent;
std::string mURL;
EChatStyle mChatStyle;
+ LLUUID mSessionID;
};
#endif
diff --git a/indra/llcommon/lldate.cpp b/indra/llcommon/lldate.cpp
index ca7e471bf2..de7f2ead74 100644
--- a/indra/llcommon/lldate.cpp
+++ b/indra/llcommon/lldate.cpp
@@ -152,7 +152,8 @@ void LLDate::toStream(std::ostream& s) const
s << '.' << std::setw(2)
<< (int)(exp_time.tm_usec / (LL_APR_USEC_PER_SEC / 100));
}
- s << 'Z';
+ s << 'Z'
+ << std::setfill(' ');
}
bool LLDate::split(S32 *year, S32 *month, S32 *day, S32 *hour, S32 *min, S32 *sec) const
diff --git a/indra/llcommon/llerrorlegacy.h b/indra/llcommon/llerrorlegacy.h
index 9920921a58..476d75380f 100644
--- a/indra/llcommon/llerrorlegacy.h
+++ b/indra/llcommon/llerrorlegacy.h
@@ -34,7 +34,7 @@
#ifndef LL_LLERRORLEGACY_H
#define LL_LLERRORLEGACY_H
-
+#include "llpreprocessor.h"
/*
LEGACY -- DO NOT USE THIS STUFF ANYMORE
@@ -107,7 +107,7 @@ const int LL_ERR_PRICE_MISMATCH = -23018;
#define llwarning(msg, num) llwarns << "Warning # " << num << ": " << msg << llendl;
-#define llassert_always(func) if (!(func)) llerrs << "ASSERT (" << #func << ")" << llendl;
+#define llassert_always(func) if (LL_UNLIKELY(!(func))) llerrs << "ASSERT (" << #func << ")" << llendl;
#ifdef SHOW_ASSERT
#define llassert(func) llassert_always(func)
diff --git a/indra/llcommon/llfasttimer.h b/indra/llcommon/llfasttimer.h
index 8af79c90fd..48461df6ae 100644
--- a/indra/llcommon/llfasttimer.h
+++ b/indra/llcommon/llfasttimer.h
@@ -1,6 +1,6 @@
/**
* @file llfasttimer.h
- * @brief Declaration of a fast timer.
+ * @brief Inline implementations of fast timers.
*
* $LicenseInfo:firstyear=2004&license=viewergpl$
*
@@ -33,13 +33,13 @@
#ifndef LL_FASTTIMER_H
#define LL_FASTTIMER_H
-#include "llinstancetracker.h"
-
-#define FAST_TIMER_ON 1
-#define TIME_FAST_TIMERS 0
+// pull in the actual class definition
+#include "llfasttimer_class.h"
#if LL_WINDOWS
-#define LL_INLINE __forceinline
+//
+// Windows implementation of CPU clock
+//
//
// NOTE: put back in when we aren't using platform sdk anymore
@@ -52,21 +52,21 @@
//#undef _interlockedbittestandset
//#undef _interlockedbittestandreset
-//inline U32 get_cpu_clock_count_32()
+//inline U32 LLFastTimer::getCPUClockCount32()
//{
// U64 time_stamp = __rdtsc();
// return (U32)(time_stamp >> 8);
//}
//
//// return full timer value, *not* shifted by 8 bits
-//inline U64 get_cpu_clock_count_64()
+//inline U64 LLFastTimer::getCPUClockCount64()
//{
// return __rdtsc();
//}
// shift off lower 8 bits for lower resolution but longer term timing
// on 1Ghz machine, a 32-bit word will hold ~1000 seconds of timing
-inline U32 get_cpu_clock_count_32()
+inline U32 LLFastTimer::getCPUClockCount32()
{
U32 ret_val;
__asm
@@ -82,7 +82,7 @@ inline U32 get_cpu_clock_count_32()
}
// return full timer value, *not* shifted by 8 bits
-inline U64 get_cpu_clock_count_64()
+inline U64 LLFastTimer::getCPUClockCount64()
{
U64 ret_val;
__asm
@@ -96,269 +96,71 @@ inline U64 get_cpu_clock_count_64()
}
return ret_val;
}
-#else
-#define LL_INLINE
#endif
-#if (LL_LINUX || LL_SOLARIS || LL_DARWIN) && (defined(__i386__) || defined(__amd64__))
-inline U32 get_cpu_clock_count_32()
+
+#if LL_LINUX || LL_SOLARIS
+//
+// Linux and Solaris implementation of CPU clock - all architectures.
+//
+// Try to use the MONOTONIC clock if available, this is a constant time counter
+// with nanosecond resolution (but not necessarily accuracy) and attempts are made
+// to synchronize this value between cores at kernel start. It should not be affected
+// by CPU frequency. If not available use the REALTIME clock, but this may be affected by
+// NTP adjustments or other user activity affecting the system time.
+inline U64 LLFastTimer::getCPUClockCount64()
+{
+ struct timespec tp;
+
+#ifdef CLOCK_MONOTONIC // MONOTONIC supported at build-time?
+ if (-1 == clock_gettime(CLOCK_MONOTONIC,&tp)) // if MONOTONIC isn't supported at runtime then ouch, try REALTIME
+#endif
+ clock_gettime(CLOCK_REALTIME,&tp);
+
+ return (tp.tv_sec*LLFastTimer::sClockResolution)+tp.tv_nsec;
+}
+
+inline U32 LLFastTimer::getCPUClockCount32()
+{
+ return (U32)(LLFastTimer::getCPUClockCount64() >> 8);
+}
+#endif // (LL_LINUX || LL_SOLARIS))
+
+
+#if (LL_DARWIN) && (defined(__i386__) || defined(__amd64__))
+//
+// Mac x86 implementation of CPU clock
+inline U32 LLFastTimer::getCPUClockCount32()
{
U64 x;
__asm__ volatile (".byte 0x0f, 0x31": "=A"(x));
- return (U32)x >> 8;
+ return (U32)(x >> 8);
}
-inline U32 get_cpu_clock_count_64()
+inline U64 LLFastTimer::getCPUClockCount64()
{
U64 x;
__asm__ volatile (".byte 0x0f, 0x31": "=A"(x));
- return x >> 8;
+ return x;
}
#endif
-#if ( LL_DARWIN && !(defined(__i386__) || defined(__amd64__))) || (LL_SOLARIS && defined(__sparc__))
+
+#if ( LL_DARWIN && !(defined(__i386__) || defined(__amd64__)))
//
-// Mac PPC (deprecated) & Solaris SPARC implementation of CPU clock
+// Mac PPC (deprecated) implementation of CPU clock
//
// Just use gettimeofday implementation for now
-inline U32 get_cpu_clock_count_32()
+inline U32 LLFastTimer::getCPUClockCount32()
{
- return (U32)get_clock_count();
+ return (U32)(get_clock_count()>>8);
}
-inline U32 get_cpu_clock_count_64()
+inline U64 LLFastTimer::getCPUClockCount64()
{
return get_clock_count();
}
#endif
-class LLMutex;
-
-#include <queue>
-#include "llsd.h"
-
-class LL_COMMON_API LLFastTimer
-{
-public:
-
- class NamedTimer;
-
- struct LL_COMMON_API FrameState
- {
- FrameState(NamedTimer* timerp);
-
- U32 mSelfTimeCounter;
- U32 mCalls;
- FrameState* mParent; // info for caller timer
- FrameState* mLastCaller; // used to bootstrap tree construction
- NamedTimer* mTimer;
- U16 mActiveCount; // number of timers with this ID active on stack
- bool mMoveUpTree; // needs to be moved up the tree of timers at the end of frame
- };
-
- // stores a "named" timer instance to be reused via multiple LLFastTimer stack instances
- class LL_COMMON_API NamedTimer
- : public LLInstanceTracker<NamedTimer>
- {
- friend class DeclareTimer;
- public:
- ~NamedTimer();
-
- enum { HISTORY_NUM = 60 };
-
- const std::string& getName() const { return mName; }
- NamedTimer* getParent() const { return mParent; }
- void setParent(NamedTimer* parent);
- S32 getDepth();
- std::string getToolTip(S32 history_index = -1);
-
- typedef std::vector<NamedTimer*>::const_iterator child_const_iter;
- child_const_iter beginChildren();
- child_const_iter endChildren();
- std::vector<NamedTimer*>& getChildren();
-
- void setCollapsed(bool collapsed) { mCollapsed = collapsed; }
- bool getCollapsed() const { return mCollapsed; }
-
- U32 getCountAverage() const { return mCountAverage; }
- U32 getCallAverage() const { return mCallAverage; }
-
- U32 getHistoricalCount(S32 history_index = 0) const;
- U32 getHistoricalCalls(S32 history_index = 0) const;
-
- static NamedTimer& getRootNamedTimer();
-
- S32 getFrameStateIndex() const { return mFrameStateIndex; }
-
- FrameState& getFrameState() const;
-
- private:
- friend class LLFastTimer;
- friend class NamedTimerFactory;
-
- //
- // methods
- //
- NamedTimer(const std::string& name);
- // recursive call to gather total time from children
- static void accumulateTimings();
-
- // updates cumulative times and hierarchy,
- // can be called multiple times in a frame, at any point
- static void processTimes();
-
- static void buildHierarchy();
- static void resetFrame();
- static void reset();
-
- //
- // members
- //
- S32 mFrameStateIndex;
-
- std::string mName;
-
- U32 mTotalTimeCounter;
-
- U32 mCountAverage;
- U32 mCallAverage;
-
- U32* mCountHistory;
- U32* mCallHistory;
-
- // tree structure
- NamedTimer* mParent; // NamedTimer of caller(parent)
- std::vector<NamedTimer*> mChildren;
- bool mCollapsed; // don't show children
- bool mNeedsSorting; // sort children whenever child added
- };
-
- // used to statically declare a new named timer
- class LL_COMMON_API DeclareTimer
- : public LLInstanceTracker<DeclareTimer>
- {
- friend class LLFastTimer;
- public:
- DeclareTimer(const std::string& name, bool open);
- DeclareTimer(const std::string& name);
-
- static void updateCachedPointers();
-
- private:
- NamedTimer& mTimer;
- FrameState* mFrameState;
- };
-
-public:
- LLFastTimer(LLFastTimer::FrameState* state);
-
- LL_INLINE LLFastTimer(LLFastTimer::DeclareTimer& timer)
- : mFrameState(timer.mFrameState)
- {
-#if TIME_FAST_TIMERS
- U64 timer_start = get_cpu_clock_count_64();
-#endif
-#if FAST_TIMER_ON
- LLFastTimer::FrameState* frame_state = mFrameState;
- mStartTime = get_cpu_clock_count_32();
-
- frame_state->mActiveCount++;
- frame_state->mCalls++;
- // keep current parent as long as it is active when we are
- frame_state->mMoveUpTree |= (frame_state->mParent->mActiveCount == 0);
-
- LLFastTimer::CurTimerData* cur_timer_data = &LLFastTimer::sCurTimerData;
- mLastTimerData = *cur_timer_data;
- cur_timer_data->mCurTimer = this;
- cur_timer_data->mFrameState = frame_state;
- cur_timer_data->mChildTime = 0;
-#endif
-#if TIME_FAST_TIMERS
- U64 timer_end = get_cpu_clock_count_64();
- sTimerCycles += timer_end - timer_start;
-#endif
- }
-
- LL_INLINE ~LLFastTimer()
- {
-#if TIME_FAST_TIMERS
- U64 timer_start = get_cpu_clock_count_64();
-#endif
-#if FAST_TIMER_ON
- LLFastTimer::FrameState* frame_state = mFrameState;
- U32 total_time = get_cpu_clock_count_32() - mStartTime;
-
- frame_state->mSelfTimeCounter += total_time - LLFastTimer::sCurTimerData.mChildTime;
- frame_state->mActiveCount--;
-
- // store last caller to bootstrap tree creation
- // do this in the destructor in case of recursion to get topmost caller
- frame_state->mLastCaller = mLastTimerData.mFrameState;
-
- // we are only tracking self time, so subtract our total time delta from parents
- mLastTimerData.mChildTime += total_time;
-
- LLFastTimer::sCurTimerData = mLastTimerData;
-#endif
-#if TIME_FAST_TIMERS
- U64 timer_end = get_cpu_clock_count_64();
- sTimerCycles += timer_end - timer_start;
- sTimerCalls++;
-#endif
- }
-
-public:
- static LLMutex* sLogLock;
- static std::queue<LLSD> sLogQueue;
- static BOOL sLog;
- static BOOL sMetricLog;
- static bool sPauseHistory;
- static bool sResetHistory;
- static U64 sTimerCycles;
- static U32 sTimerCalls;
-
- typedef std::vector<FrameState> info_list_t;
- static info_list_t& getFrameStateList();
-
-
- // call this once a frame to reset timers
- static void nextFrame();
-
- // dumps current cumulative frame stats to log
- // call nextFrame() to reset timers
- static void dumpCurTimes();
-
- // call this to reset timer hierarchy, averages, etc.
- static void reset();
-
- static U64 countsPerSecond();
- static S32 getLastFrameIndex() { return sLastFrameIndex; }
- static S32 getCurFrameIndex() { return sCurFrameIndex; }
-
- static void writeLog(std::ostream& os);
- static const NamedTimer* getTimerByName(const std::string& name);
-
- struct CurTimerData
- {
- LLFastTimer* mCurTimer;
- FrameState* mFrameState;
- U32 mChildTime;
- };
- static CurTimerData sCurTimerData;
-
-private:
- static S32 sCurFrameIndex;
- static S32 sLastFrameIndex;
- static U64 sLastFrameTime;
- static info_list_t* sTimerInfos;
-
- U32 mStartTime;
- LLFastTimer::FrameState* mFrameState;
- LLFastTimer::CurTimerData mLastTimerData;
-
-};
-
-typedef class LLFastTimer LLFastTimer;
-
#endif // LL_LLFASTTIMER_H
diff --git a/indra/llcommon/llfasttimer_class.cpp b/indra/llcommon/llfasttimer_class.cpp
new file mode 100644
index 0000000000..fae0a66873
--- /dev/null
+++ b/indra/llcommon/llfasttimer_class.cpp
@@ -0,0 +1,751 @@
+/**
+ * @file llfasttimer_class.cpp
+ * @brief Implementation of the fast timer.
+ *
+ * $LicenseInfo:firstyear=2004&license=viewergpl$
+ *
+ * Copyright (c) 2004-2007, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlife.com/developers/opensource/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at http://secondlife.com/developers/opensource/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS."LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+#include "linden_common.h"
+
+#include "llfasttimer.h"
+
+#include "llmemory.h"
+#include "llprocessor.h"
+#include "llsingleton.h"
+#include "lltreeiterators.h"
+#include "llsdserialize.h"
+
+#include <boost/bind.hpp>
+
+#if LL_WINDOWS
+#elif LL_LINUX || LL_SOLARIS
+#include <sys/time.h>
+#include <sched.h>
+#elif LL_DARWIN
+#include <sys/time.h>
+#include "lltimer.h" // get_clock_count()
+#else
+#error "architecture not supported"
+#endif
+
+//////////////////////////////////////////////////////////////////////////////
+// statics
+
+S32 LLFastTimer::sCurFrameIndex = -1;
+S32 LLFastTimer::sLastFrameIndex = -1;
+U64 LLFastTimer::sLastFrameTime = LLFastTimer::getCPUClockCount64();
+bool LLFastTimer::sPauseHistory = 0;
+bool LLFastTimer::sResetHistory = 0;
+LLFastTimer::CurTimerData LLFastTimer::sCurTimerData;
+BOOL LLFastTimer::sLog = FALSE;
+BOOL LLFastTimer::sMetricLog = FALSE;
+LLMutex* LLFastTimer::sLogLock = NULL;
+std::queue<LLSD> LLFastTimer::sLogQueue;
+
+#if LL_LINUX || LL_SOLARIS
+U64 LLFastTimer::sClockResolution = 1000000000; // Nanosecond resolution
+#else
+U64 LLFastTimer::sClockResolution = 1000000; // Microsecond resolution
+#endif
+
+std::vector<LLFastTimer::FrameState>* LLFastTimer::sTimerInfos = NULL;
+U64 LLFastTimer::sTimerCycles = 0;
+U32 LLFastTimer::sTimerCalls = 0;
+
+
+// FIXME: move these declarations to the relevant modules
+
+// helper functions
+typedef LLTreeDFSPostIter<LLFastTimer::NamedTimer, LLFastTimer::NamedTimer::child_const_iter> timer_tree_bottom_up_iterator_t;
+
+static timer_tree_bottom_up_iterator_t begin_timer_tree_bottom_up(LLFastTimer::NamedTimer& id)
+{
+ return timer_tree_bottom_up_iterator_t(&id,
+ boost::bind(boost::mem_fn(&LLFastTimer::NamedTimer::beginChildren), _1),
+ boost::bind(boost::mem_fn(&LLFastTimer::NamedTimer::endChildren), _1));
+}
+
+static timer_tree_bottom_up_iterator_t end_timer_tree_bottom_up()
+{
+ return timer_tree_bottom_up_iterator_t();
+}
+
+typedef LLTreeDFSIter<LLFastTimer::NamedTimer, LLFastTimer::NamedTimer::child_const_iter> timer_tree_dfs_iterator_t;
+
+
+static timer_tree_dfs_iterator_t begin_timer_tree(LLFastTimer::NamedTimer& id)
+{
+ return timer_tree_dfs_iterator_t(&id,
+ boost::bind(boost::mem_fn(&LLFastTimer::NamedTimer::beginChildren), _1),
+ boost::bind(boost::mem_fn(&LLFastTimer::NamedTimer::endChildren), _1));
+}
+
+static timer_tree_dfs_iterator_t end_timer_tree()
+{
+ return timer_tree_dfs_iterator_t();
+}
+
+
+
+// factory class that creates NamedTimers via static DeclareTimer objects
+class NamedTimerFactory : public LLSingleton<NamedTimerFactory>
+{
+public:
+ NamedTimerFactory()
+ {}
+
+ /*virtual */ void initSingleton()
+ {
+ mTimerRoot = new LLFastTimer::NamedTimer("root");
+
+ mActiveTimerRoot = new LLFastTimer::NamedTimer("Frame");
+ mActiveTimerRoot->setCollapsed(false);
+
+ mRootFrameState = new LLFastTimer::FrameState(mActiveTimerRoot);
+ mRootFrameState->mParent = &mTimerRoot->getFrameState();
+ mActiveTimerRoot->setParent(mTimerRoot);
+
+ mAppTimer = new LLFastTimer(mRootFrameState);
+ }
+
+ ~NamedTimerFactory()
+ {
+ std::for_each(mTimers.begin(), mTimers.end(), DeletePairedPointer());
+
+ delete mAppTimer;
+ delete mActiveTimerRoot;
+ delete mTimerRoot;
+ delete mRootFrameState;
+ }
+
+ LLFastTimer::NamedTimer& createNamedTimer(const std::string& name)
+ {
+ timer_map_t::iterator found_it = mTimers.find(name);
+ if (found_it != mTimers.end())
+ {
+ return *found_it->second;
+ }
+
+ LLFastTimer::NamedTimer* timer = new LLFastTimer::NamedTimer(name);
+ timer->setParent(mTimerRoot);
+ mTimers.insert(std::make_pair(name, timer));
+
+ return *timer;
+ }
+
+ LLFastTimer::NamedTimer* getTimerByName(const std::string& name)
+ {
+ timer_map_t::iterator found_it = mTimers.find(name);
+ if (found_it != mTimers.end())
+ {
+ return found_it->second;
+ }
+ return NULL;
+ }
+
+ LLFastTimer::NamedTimer* getActiveRootTimer() { return mActiveTimerRoot; }
+ LLFastTimer::NamedTimer* getRootTimer() { return mTimerRoot; }
+ const LLFastTimer* getAppTimer() { return mAppTimer; }
+ LLFastTimer::FrameState& getRootFrameState() { return *mRootFrameState; }
+
+ typedef std::map<std::string, LLFastTimer::NamedTimer*> timer_map_t;
+ timer_map_t::iterator beginTimers() { return mTimers.begin(); }
+ timer_map_t::iterator endTimers() { return mTimers.end(); }
+ S32 timerCount() { return mTimers.size(); }
+
+private:
+ timer_map_t mTimers;
+
+ LLFastTimer::NamedTimer* mActiveTimerRoot;
+ LLFastTimer::NamedTimer* mTimerRoot;
+ LLFastTimer* mAppTimer;
+ LLFastTimer::FrameState* mRootFrameState;
+};
+
+void update_cached_pointers_if_changed()
+{
+ // detect when elements have moved and update cached pointers
+ static LLFastTimer::FrameState* sFirstTimerAddress = NULL;
+ if (&*(LLFastTimer::getFrameStateList().begin()) != sFirstTimerAddress)
+ {
+ LLFastTimer::DeclareTimer::updateCachedPointers();
+ }
+ sFirstTimerAddress = &*(LLFastTimer::getFrameStateList().begin());
+}
+
+LLFastTimer::DeclareTimer::DeclareTimer(const std::string& name, bool open )
+: mTimer(NamedTimerFactory::instance().createNamedTimer(name))
+{
+ mTimer.setCollapsed(!open);
+ mFrameState = &mTimer.getFrameState();
+ update_cached_pointers_if_changed();
+}
+
+LLFastTimer::DeclareTimer::DeclareTimer(const std::string& name)
+: mTimer(NamedTimerFactory::instance().createNamedTimer(name))
+{
+ mFrameState = &mTimer.getFrameState();
+ update_cached_pointers_if_changed();
+}
+
+// static
+void LLFastTimer::DeclareTimer::updateCachedPointers()
+{
+ // propagate frame state pointers to timer declarations
+ for (DeclareTimer::instance_iter it = DeclareTimer::beginInstances();
+ it != DeclareTimer::endInstances();
+ ++it)
+ {
+ // update cached pointer
+ it->mFrameState = &it->mTimer.getFrameState();
+ }
+}
+
+//static
+#if LL_LINUX || LL_SOLARIS || ( LL_DARWIN && !(defined(__i386__) || defined(__amd64__)) )
+U64 LLFastTimer::countsPerSecond() // counts per second for the *32-bit* timer
+{
+ return sClockResolution >> 8;
+}
+#else // windows or x86-mac
+U64 LLFastTimer::countsPerSecond() // counts per second for the *32-bit* timer
+{
+ static U64 sCPUClockFrequency = U64(CProcessor().GetCPUFrequency(50));
+
+ // we drop the low-order byte in out timers, so report a lower frequency
+ return sCPUClockFrequency >> 8;
+}
+#endif
+
+LLFastTimer::FrameState::FrameState(LLFastTimer::NamedTimer* timerp)
+: mActiveCount(0),
+ mCalls(0),
+ mSelfTimeCounter(0),
+ mParent(NULL),
+ mLastCaller(NULL),
+ mMoveUpTree(false),
+ mTimer(timerp)
+{}
+
+
+LLFastTimer::NamedTimer::NamedTimer(const std::string& name)
+: mName(name),
+ mCollapsed(true),
+ mParent(NULL),
+ mTotalTimeCounter(0),
+ mCountAverage(0),
+ mCallAverage(0),
+ mNeedsSorting(false)
+{
+ info_list_t& frame_state_list = getFrameStateList();
+ mFrameStateIndex = frame_state_list.size();
+ getFrameStateList().push_back(FrameState(this));
+
+ mCountHistory = new U32[HISTORY_NUM];
+ memset(mCountHistory, 0, sizeof(U32) * HISTORY_NUM);
+ mCallHistory = new U32[HISTORY_NUM];
+ memset(mCallHistory, 0, sizeof(U32) * HISTORY_NUM);
+}
+
+LLFastTimer::NamedTimer::~NamedTimer()
+{
+ delete[] mCountHistory;
+ delete[] mCallHistory;
+}
+
+std::string LLFastTimer::NamedTimer::getToolTip(S32 history_idx)
+{
+ if (history_idx < 0)
+ {
+ // by default, show average number of calls
+ return llformat("%s (%d calls)", getName().c_str(), (S32)getCallAverage());
+ }
+ else
+ {
+ return llformat("%s (%d calls)", getName().c_str(), (S32)getHistoricalCalls(history_idx));
+ }
+}
+
+void LLFastTimer::NamedTimer::setParent(NamedTimer* parent)
+{
+ llassert_always(parent != this);
+ llassert_always(parent != NULL);
+
+ if (mParent)
+ {
+ // subtract our accumulated from previous parent
+ for (S32 i = 0; i < HISTORY_NUM; i++)
+ {
+ mParent->mCountHistory[i] -= mCountHistory[i];
+ }
+
+ // subtract average timing from previous parent
+ mParent->mCountAverage -= mCountAverage;
+
+ std::vector<NamedTimer*>& children = mParent->getChildren();
+ std::vector<NamedTimer*>::iterator found_it = std::find(children.begin(), children.end(), this);
+ if (found_it != children.end())
+ {
+ children.erase(found_it);
+ }
+ }
+
+ mParent = parent;
+ if (parent)
+ {
+ getFrameState().mParent = &parent->getFrameState();
+ parent->getChildren().push_back(this);
+ parent->mNeedsSorting = true;
+ }
+}
+
+S32 LLFastTimer::NamedTimer::getDepth()
+{
+ S32 depth = 0;
+ NamedTimer* timerp = mParent;
+ while(timerp)
+ {
+ depth++;
+ timerp = timerp->mParent;
+ }
+ return depth;
+}
+
+// static
+void LLFastTimer::NamedTimer::processTimes()
+{
+ if (sCurFrameIndex < 0) return;
+
+ buildHierarchy();
+ accumulateTimings();
+}
+
+// sort timer info structs by depth first traversal order
+struct SortTimersDFS
+{
+ bool operator()(const LLFastTimer::FrameState& i1, const LLFastTimer::FrameState& i2)
+ {
+ return i1.mTimer->getFrameStateIndex() < i2.mTimer->getFrameStateIndex();
+ }
+};
+
+// sort child timers by name
+struct SortTimerByName
+{
+ bool operator()(const LLFastTimer::NamedTimer* i1, const LLFastTimer::NamedTimer* i2)
+ {
+ return i1->getName() < i2->getName();
+ }
+};
+
+//static
+void LLFastTimer::NamedTimer::buildHierarchy()
+{
+ if (sCurFrameIndex < 0 ) return;
+
+ // set up initial tree
+ for (instance_iter it = NamedTimer::beginInstances();
+ it != endInstances();
+ ++it)
+ {
+ NamedTimer& timer = *it;
+ if (&timer == NamedTimerFactory::instance().getRootTimer()) continue;
+
+ // bootstrap tree construction by attaching to last timer to be on stack
+ // when this timer was called
+ if (timer.getFrameState().mLastCaller && timer.mParent == NamedTimerFactory::instance().getRootTimer())
+ {
+ timer.setParent(timer.getFrameState().mLastCaller->mTimer);
+ // no need to push up tree on first use, flag can be set spuriously
+ timer.getFrameState().mMoveUpTree = false;
+ }
+ }
+
+ // bump timers up tree if they've been flagged as being in the wrong place
+ // do this in a bottom up order to promote descendants first before promoting ancestors
+ // this preserves partial order derived from current frame's observations
+ for(timer_tree_bottom_up_iterator_t it = begin_timer_tree_bottom_up(*NamedTimerFactory::instance().getRootTimer());
+ it != end_timer_tree_bottom_up();
+ ++it)
+ {
+ NamedTimer* timerp = *it;
+ // skip root timer
+ if (timerp == NamedTimerFactory::instance().getRootTimer()) continue;
+
+ if (timerp->getFrameState().mMoveUpTree)
+ {
+ // since ancestors have already been visited, reparenting won't affect tree traversal
+ //step up tree, bringing our descendants with us
+ //llinfos << "Moving " << timerp->getName() << " from child of " << timerp->getParent()->getName() <<
+ // " to child of " << timerp->getParent()->getParent()->getName() << llendl;
+ timerp->setParent(timerp->getParent()->getParent());
+ timerp->getFrameState().mMoveUpTree = false;
+
+ // don't bubble up any ancestors until descendants are done bubbling up
+ it.skipAncestors();
+ }
+ }
+
+ // sort timers by time last called, so call graph makes sense
+ for(timer_tree_dfs_iterator_t it = begin_timer_tree(*NamedTimerFactory::instance().getRootTimer());
+ it != end_timer_tree();
+ ++it)
+ {
+ NamedTimer* timerp = (*it);
+ if (timerp->mNeedsSorting)
+ {
+ std::sort(timerp->getChildren().begin(), timerp->getChildren().end(), SortTimerByName());
+ }
+ timerp->mNeedsSorting = false;
+ }
+}
+
+//static
+void LLFastTimer::NamedTimer::accumulateTimings()
+{
+ U32 cur_time = getCPUClockCount32();
+
+ // walk up stack of active timers and accumulate current time while leaving timing structures active
+ LLFastTimer* cur_timer = sCurTimerData.mCurTimer;
+ // root defined by parent pointing to self
+ CurTimerData* cur_data = &sCurTimerData;
+ while(cur_timer->mLastTimerData.mCurTimer != cur_timer)
+ {
+ U32 cumulative_time_delta = cur_time - cur_timer->mStartTime;
+ U32 self_time_delta = cumulative_time_delta - cur_data->mChildTime;
+ cur_data->mChildTime = 0;
+ cur_timer->mFrameState->mSelfTimeCounter += self_time_delta;
+ cur_timer->mStartTime = cur_time;
+
+ cur_data = &cur_timer->mLastTimerData;
+ cur_data->mChildTime += cumulative_time_delta;
+
+ cur_timer = cur_timer->mLastTimerData.mCurTimer;
+ }
+
+ // traverse tree in DFS post order, or bottom up
+ for(timer_tree_bottom_up_iterator_t it = begin_timer_tree_bottom_up(*NamedTimerFactory::instance().getActiveRootTimer());
+ it != end_timer_tree_bottom_up();
+ ++it)
+ {
+ NamedTimer* timerp = (*it);
+ timerp->mTotalTimeCounter = timerp->getFrameState().mSelfTimeCounter;
+ for (child_const_iter child_it = timerp->beginChildren(); child_it != timerp->endChildren(); ++child_it)
+ {
+ timerp->mTotalTimeCounter += (*child_it)->mTotalTimeCounter;
+ }
+
+ S32 cur_frame = sCurFrameIndex;
+ if (cur_frame >= 0)
+ {
+ // update timer history
+ int hidx = cur_frame % HISTORY_NUM;
+
+ timerp->mCountHistory[hidx] = timerp->mTotalTimeCounter;
+ timerp->mCountAverage = (timerp->mCountAverage * cur_frame + timerp->mTotalTimeCounter) / (cur_frame+1);
+ timerp->mCallHistory[hidx] = timerp->getFrameState().mCalls;
+ timerp->mCallAverage = (timerp->mCallAverage * cur_frame + timerp->getFrameState().mCalls) / (cur_frame+1);
+ }
+ }
+}
+
+// static
+void LLFastTimer::NamedTimer::resetFrame()
+{
+ if (sLog)
+ { //output current frame counts to performance log
+ F64 iclock_freq = 1000.0 / countsPerSecond(); // good place to calculate clock frequency
+
+ F64 total_time = 0;
+ LLSD sd;
+
+ for (NamedTimer::instance_iter it = NamedTimer::beginInstances();
+ it != NamedTimer::endInstances();
+ ++it)
+ {
+ NamedTimer& timer = *it;
+ FrameState& info = timer.getFrameState();
+ sd[timer.getName()]["Time"] = (LLSD::Real) (info.mSelfTimeCounter*iclock_freq);
+ sd[timer.getName()]["Calls"] = (LLSD::Integer) info.mCalls;
+
+ // computing total time here because getting the root timer's getCountHistory
+ // doesn't work correctly on the first frame
+ total_time = total_time + info.mSelfTimeCounter * iclock_freq;
+ }
+
+ sd["Total"]["Time"] = (LLSD::Real) total_time;
+ sd["Total"]["Calls"] = (LLSD::Integer) 1;
+
+ {
+ LLMutexLock lock(sLogLock);
+ sLogQueue.push(sd);
+ }
+ }
+
+
+ // tag timers by position in depth first traversal of tree
+ S32 index = 0;
+ for(timer_tree_dfs_iterator_t it = begin_timer_tree(*NamedTimerFactory::instance().getRootTimer());
+ it != end_timer_tree();
+ ++it)
+ {
+ NamedTimer* timerp = (*it);
+
+ timerp->mFrameStateIndex = index;
+ index++;
+
+ llassert_always(timerp->mFrameStateIndex < (S32)getFrameStateList().size());
+ }
+
+ // sort timers by dfs traversal order to improve cache coherency
+ std::sort(getFrameStateList().begin(), getFrameStateList().end(), SortTimersDFS());
+
+ // update pointers into framestatelist now that we've sorted it
+ DeclareTimer::updateCachedPointers();
+
+ // reset for next frame
+ for (NamedTimer::instance_iter it = NamedTimer::beginInstances();
+ it != NamedTimer::endInstances();
+ ++it)
+ {
+ NamedTimer& timer = *it;
+
+ FrameState& info = timer.getFrameState();
+ info.mSelfTimeCounter = 0;
+ info.mCalls = 0;
+ info.mLastCaller = NULL;
+ info.mMoveUpTree = false;
+ // update parent pointer in timer state struct
+ if (timer.mParent)
+ {
+ info.mParent = &timer.mParent->getFrameState();
+ }
+ }
+
+ //sTimerCycles = 0;
+ //sTimerCalls = 0;
+}
+
+//static
+void LLFastTimer::NamedTimer::reset()
+{
+ resetFrame(); // reset frame data
+
+ // walk up stack of active timers and reset start times to current time
+ // effectively zeroing out any accumulated time
+ U32 cur_time = getCPUClockCount32();
+
+ // root defined by parent pointing to self
+ CurTimerData* cur_data = &sCurTimerData;
+ LLFastTimer* cur_timer = cur_data->mCurTimer;
+ while(cur_timer->mLastTimerData.mCurTimer != cur_timer)
+ {
+ cur_timer->mStartTime = cur_time;
+ cur_data->mChildTime = 0;
+
+ cur_data = &cur_timer->mLastTimerData;
+ cur_timer = cur_data->mCurTimer;
+ }
+
+ // reset all history
+ for (NamedTimer::instance_iter it = NamedTimer::beginInstances();
+ it != NamedTimer::endInstances();
+ ++it)
+ {
+ NamedTimer& timer = *it;
+ if (&timer != NamedTimerFactory::instance().getRootTimer())
+ {
+ timer.setParent(NamedTimerFactory::instance().getRootTimer());
+ }
+
+ timer.mCountAverage = 0;
+ timer.mCallAverage = 0;
+ memset(timer.mCountHistory, 0, sizeof(U32) * HISTORY_NUM);
+ memset(timer.mCallHistory, 0, sizeof(U32) * HISTORY_NUM);
+ }
+
+ sLastFrameIndex = 0;
+ sCurFrameIndex = 0;
+}
+
+//static
+LLFastTimer::info_list_t& LLFastTimer::getFrameStateList()
+{
+ if (!sTimerInfos)
+ {
+ sTimerInfos = new info_list_t();
+ }
+ return *sTimerInfos;
+}
+
+
+U32 LLFastTimer::NamedTimer::getHistoricalCount(S32 history_index) const
+{
+ S32 history_idx = (getLastFrameIndex() + history_index) % LLFastTimer::NamedTimer::HISTORY_NUM;
+ return mCountHistory[history_idx];
+}
+
+U32 LLFastTimer::NamedTimer::getHistoricalCalls(S32 history_index ) const
+{
+ S32 history_idx = (getLastFrameIndex() + history_index) % LLFastTimer::NamedTimer::HISTORY_NUM;
+ return mCallHistory[history_idx];
+}
+
+LLFastTimer::FrameState& LLFastTimer::NamedTimer::getFrameState() const
+{
+ llassert_always(mFrameStateIndex >= 0);
+ if (this == NamedTimerFactory::instance().getActiveRootTimer())
+ {
+ return NamedTimerFactory::instance().getRootFrameState();
+ }
+ return getFrameStateList()[mFrameStateIndex];
+}
+
+// static
+LLFastTimer::NamedTimer& LLFastTimer::NamedTimer::getRootNamedTimer()
+{
+ return *NamedTimerFactory::instance().getActiveRootTimer();
+}
+
+std::vector<LLFastTimer::NamedTimer*>::const_iterator LLFastTimer::NamedTimer::beginChildren()
+{
+ return mChildren.begin();
+}
+
+std::vector<LLFastTimer::NamedTimer*>::const_iterator LLFastTimer::NamedTimer::endChildren()
+{
+ return mChildren.end();
+}
+
+std::vector<LLFastTimer::NamedTimer*>& LLFastTimer::NamedTimer::getChildren()
+{
+ return mChildren;
+}
+
+//static
+void LLFastTimer::nextFrame()
+{
+ countsPerSecond(); // good place to calculate clock frequency
+ U64 frame_time = getCPUClockCount64();
+ if ((frame_time - sLastFrameTime) >> 8 > 0xffffffff)
+ {
+ llinfos << "Slow frame, fast timers inaccurate" << llendl;
+ }
+
+ if (sPauseHistory)
+ {
+ sResetHistory = true;
+ }
+ else if (sResetHistory)
+ {
+ sLastFrameIndex = 0;
+ sCurFrameIndex = 0;
+ sResetHistory = false;
+ }
+ else // not paused
+ {
+ NamedTimer::processTimes();
+ sLastFrameIndex = sCurFrameIndex++;
+ }
+
+ // get ready for next frame
+ NamedTimer::resetFrame();
+ sLastFrameTime = frame_time;
+}
+
+//static
+void LLFastTimer::dumpCurTimes()
+{
+ // accumulate timings, etc.
+ NamedTimer::processTimes();
+
+ F64 clock_freq = (F64)countsPerSecond();
+ F64 iclock_freq = 1000.0 / clock_freq; // clock_ticks -> milliseconds
+
+ // walk over timers in depth order and output timings
+ for(timer_tree_dfs_iterator_t it = begin_timer_tree(*NamedTimerFactory::instance().getRootTimer());
+ it != end_timer_tree();
+ ++it)
+ {
+ NamedTimer* timerp = (*it);
+ F64 total_time_ms = ((F64)timerp->getHistoricalCount(0) * iclock_freq);
+ // Don't bother with really brief times, keep output concise
+ if (total_time_ms < 0.1) continue;
+
+ std::ostringstream out_str;
+ for (S32 i = 0; i < timerp->getDepth(); i++)
+ {
+ out_str << "\t";
+ }
+
+
+ out_str << timerp->getName() << " "
+ << std::setprecision(3) << total_time_ms << " ms, "
+ << timerp->getHistoricalCalls(0) << " calls";
+
+ llinfos << out_str.str() << llendl;
+ }
+}
+
+//static
+void LLFastTimer::reset()
+{
+ NamedTimer::reset();
+}
+
+
+//static
+void LLFastTimer::writeLog(std::ostream& os)
+{
+ while (!sLogQueue.empty())
+ {
+ LLSD& sd = sLogQueue.front();
+ LLSDSerialize::toXML(sd, os);
+ LLMutexLock lock(sLogLock);
+ sLogQueue.pop();
+ }
+}
+
+//static
+const LLFastTimer::NamedTimer* LLFastTimer::getTimerByName(const std::string& name)
+{
+ return NamedTimerFactory::instance().getTimerByName(name);
+}
+
+LLFastTimer::LLFastTimer(LLFastTimer::FrameState* state)
+: mFrameState(state)
+{
+ U32 start_time = getCPUClockCount32();
+ mStartTime = start_time;
+ mFrameState->mActiveCount++;
+ LLFastTimer::sCurTimerData.mCurTimer = this;
+ LLFastTimer::sCurTimerData.mFrameState = mFrameState;
+ LLFastTimer::sCurTimerData.mChildTime = 0;
+ mLastTimerData = LLFastTimer::sCurTimerData;
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
diff --git a/indra/llcommon/llfasttimer_class.h b/indra/llcommon/llfasttimer_class.h
new file mode 100644
index 0000000000..ddb1a74793
--- /dev/null
+++ b/indra/llcommon/llfasttimer_class.h
@@ -0,0 +1,272 @@
+/**
+ * @file llfasttimer_class.h
+ * @brief Declaration of a fast timer.
+ *
+ * $LicenseInfo:firstyear=2004&license=viewergpl$
+ *
+ * Copyright (c) 2004-2009, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#ifndef LL_FASTTIMER_CLASS_H
+#define LL_FASTTIMER_CLASS_H
+
+#include "llinstancetracker.h"
+
+#define FAST_TIMER_ON 1
+#define TIME_FAST_TIMERS 0
+
+class LLMutex;
+
+#include <queue>
+#include "llsd.h"
+
+class LL_COMMON_API LLFastTimer
+{
+public:
+ class NamedTimer;
+
+ struct LL_COMMON_API FrameState
+ {
+ FrameState(NamedTimer* timerp);
+
+ U32 mSelfTimeCounter;
+ U32 mCalls;
+ FrameState* mParent; // info for caller timer
+ FrameState* mLastCaller; // used to bootstrap tree construction
+ NamedTimer* mTimer;
+ U16 mActiveCount; // number of timers with this ID active on stack
+ bool mMoveUpTree; // needs to be moved up the tree of timers at the end of frame
+ };
+
+ // stores a "named" timer instance to be reused via multiple LLFastTimer stack instances
+ class LL_COMMON_API NamedTimer
+ : public LLInstanceTracker<NamedTimer>
+ {
+ friend class DeclareTimer;
+ public:
+ ~NamedTimer();
+
+ enum { HISTORY_NUM = 60 };
+
+ const std::string& getName() const { return mName; }
+ NamedTimer* getParent() const { return mParent; }
+ void setParent(NamedTimer* parent);
+ S32 getDepth();
+ std::string getToolTip(S32 history_index = -1);
+
+ typedef std::vector<NamedTimer*>::const_iterator child_const_iter;
+ child_const_iter beginChildren();
+ child_const_iter endChildren();
+ std::vector<NamedTimer*>& getChildren();
+
+ void setCollapsed(bool collapsed) { mCollapsed = collapsed; }
+ bool getCollapsed() const { return mCollapsed; }
+
+ U32 getCountAverage() const { return mCountAverage; }
+ U32 getCallAverage() const { return mCallAverage; }
+
+ U32 getHistoricalCount(S32 history_index = 0) const;
+ U32 getHistoricalCalls(S32 history_index = 0) const;
+
+ static NamedTimer& getRootNamedTimer();
+
+ S32 getFrameStateIndex() const { return mFrameStateIndex; }
+
+ FrameState& getFrameState() const;
+
+ private:
+ friend class LLFastTimer;
+ friend class NamedTimerFactory;
+
+ //
+ // methods
+ //
+ NamedTimer(const std::string& name);
+ // recursive call to gather total time from children
+ static void accumulateTimings();
+
+ // updates cumulative times and hierarchy,
+ // can be called multiple times in a frame, at any point
+ static void processTimes();
+
+ static void buildHierarchy();
+ static void resetFrame();
+ static void reset();
+
+ //
+ // members
+ //
+ S32 mFrameStateIndex;
+
+ std::string mName;
+
+ U32 mTotalTimeCounter;
+
+ U32 mCountAverage;
+ U32 mCallAverage;
+
+ U32* mCountHistory;
+ U32* mCallHistory;
+
+ // tree structure
+ NamedTimer* mParent; // NamedTimer of caller(parent)
+ std::vector<NamedTimer*> mChildren;
+ bool mCollapsed; // don't show children
+ bool mNeedsSorting; // sort children whenever child added
+ };
+
+ // used to statically declare a new named timer
+ class LL_COMMON_API DeclareTimer
+ : public LLInstanceTracker<DeclareTimer>
+ {
+ friend class LLFastTimer;
+ public:
+ DeclareTimer(const std::string& name, bool open);
+ DeclareTimer(const std::string& name);
+
+ static void updateCachedPointers();
+
+ private:
+ NamedTimer& mTimer;
+ FrameState* mFrameState;
+ };
+
+public:
+ LLFastTimer(LLFastTimer::FrameState* state);
+
+ LL_FORCE_INLINE LLFastTimer(LLFastTimer::DeclareTimer& timer)
+ : mFrameState(timer.mFrameState)
+ {
+#if TIME_FAST_TIMERS
+ U64 timer_start = getCPUClockCount64();
+#endif
+#if FAST_TIMER_ON
+ LLFastTimer::FrameState* frame_state = mFrameState;
+ mStartTime = getCPUClockCount32();
+
+ frame_state->mActiveCount++;
+ frame_state->mCalls++;
+ // keep current parent as long as it is active when we are
+ frame_state->mMoveUpTree |= (frame_state->mParent->mActiveCount == 0);
+
+ LLFastTimer::CurTimerData* cur_timer_data = &LLFastTimer::sCurTimerData;
+ mLastTimerData = *cur_timer_data;
+ cur_timer_data->mCurTimer = this;
+ cur_timer_data->mFrameState = frame_state;
+ cur_timer_data->mChildTime = 0;
+#endif
+#if TIME_FAST_TIMERS
+ U64 timer_end = getCPUClockCount64();
+ sTimerCycles += timer_end - timer_start;
+#endif
+ }
+
+ LL_FORCE_INLINE ~LLFastTimer()
+ {
+#if TIME_FAST_TIMERS
+ U64 timer_start = getCPUClockCount64();
+#endif
+#if FAST_TIMER_ON
+ LLFastTimer::FrameState* frame_state = mFrameState;
+ U32 total_time = getCPUClockCount32() - mStartTime;
+
+ frame_state->mSelfTimeCounter += total_time - LLFastTimer::sCurTimerData.mChildTime;
+ frame_state->mActiveCount--;
+
+ // store last caller to bootstrap tree creation
+ // do this in the destructor in case of recursion to get topmost caller
+ frame_state->mLastCaller = mLastTimerData.mFrameState;
+
+ // we are only tracking self time, so subtract our total time delta from parents
+ mLastTimerData.mChildTime += total_time;
+
+ LLFastTimer::sCurTimerData = mLastTimerData;
+#endif
+#if TIME_FAST_TIMERS
+ U64 timer_end = getCPUClockCount64();
+ sTimerCycles += timer_end - timer_start;
+ sTimerCalls++;
+#endif
+ }
+
+public:
+ static LLMutex* sLogLock;
+ static std::queue<LLSD> sLogQueue;
+ static BOOL sLog;
+ static BOOL sMetricLog;
+ static bool sPauseHistory;
+ static bool sResetHistory;
+ static U64 sTimerCycles;
+ static U32 sTimerCalls;
+
+ typedef std::vector<FrameState> info_list_t;
+ static info_list_t& getFrameStateList();
+
+
+ // call this once a frame to reset timers
+ static void nextFrame();
+
+ // dumps current cumulative frame stats to log
+ // call nextFrame() to reset timers
+ static void dumpCurTimes();
+
+ // call this to reset timer hierarchy, averages, etc.
+ static void reset();
+
+ static U64 countsPerSecond();
+ static S32 getLastFrameIndex() { return sLastFrameIndex; }
+ static S32 getCurFrameIndex() { return sCurFrameIndex; }
+
+ static void writeLog(std::ostream& os);
+ static const NamedTimer* getTimerByName(const std::string& name);
+
+ struct CurTimerData
+ {
+ LLFastTimer* mCurTimer;
+ FrameState* mFrameState;
+ U32 mChildTime;
+ };
+ static CurTimerData sCurTimerData;
+
+private:
+ static U32 getCPUClockCount32();
+ static U64 getCPUClockCount64();
+ static U64 sClockResolution;
+
+ static S32 sCurFrameIndex;
+ static S32 sLastFrameIndex;
+ static U64 sLastFrameTime;
+ static info_list_t* sTimerInfos;
+
+ U32 mStartTime;
+ LLFastTimer::FrameState* mFrameState;
+ LLFastTimer::CurTimerData mLastTimerData;
+
+};
+
+typedef class LLFastTimer LLFastTimer;
+
+#endif // LL_LLFASTTIMER_CLASS_H
diff --git a/indra/llcommon/llpreprocessor.h b/indra/llcommon/llpreprocessor.h
index 5eefa6a16b..1c1503ca7b 100644
--- a/indra/llcommon/llpreprocessor.h
+++ b/indra/llcommon/llpreprocessor.h
@@ -55,13 +55,28 @@
#define LL_BIG_ENDIAN 1
#endif
+
// Per-compiler switches
+
#ifdef __GNUC__
#define LL_FORCE_INLINE inline __attribute__((always_inline))
#else
#define LL_FORCE_INLINE __forceinline
#endif
+// Mark-up expressions with branch prediction hints. Do NOT use
+// this with reckless abandon - it's an obfuscating micro-optimization
+// outside of inner loops or other places where you are OVERWHELMINGLY
+// sure which way an expression almost-always evaluates.
+#if __GNUC__ >= 3
+# define LL_LIKELY(EXPR) __builtin_expect (!!(EXPR), true)
+# define LL_UNLIKELY(EXPR) __builtin_expect (!!(EXPR), false)
+#else
+# define LL_LIKELY(EXPR) (EXPR)
+# define LL_UNLIKELY(EXPR) (EXPR)
+#endif
+
+
// Figure out differences between compilers
#if defined(__GNUC__)
#define GCC_VERSION (__GNUC__ * 10000 \
diff --git a/indra/llcommon/llprocessor.cpp b/indra/llcommon/llprocessor.cpp
index 469e544b16..8a4a4a8f9a 100644
--- a/indra/llcommon/llprocessor.cpp
+++ b/indra/llcommon/llprocessor.cpp
@@ -281,7 +281,8 @@ bool CProcessor::AnalyzeIntelProcessor()
// already have a string here from GetCPUInfo(). JC
if ( CPUInfo.uiBrandID < LL_ARRAY_SIZE(INTEL_BRAND) )
{
- strcpy(CPUInfo.strBrandID, INTEL_BRAND[CPUInfo.uiBrandID]);
+ strncpy(CPUInfo.strBrandID, INTEL_BRAND[CPUInfo.uiBrandID], sizeof(CPUInfo.strBrandID)-1);
+ CPUInfo.strBrandID[sizeof(CPUInfo.strBrandID)-1]='\0';
if (CPUInfo.uiBrandID == 3 && CPUInfo.uiModel == 6)
{
diff --git a/indra/llcommon/llstring.h b/indra/llcommon/llstring.h
index 31e70e0fe4..62cedcde4e 100644
--- a/indra/llcommon/llstring.h
+++ b/indra/llcommon/llstring.h
@@ -882,6 +882,7 @@ void LLStringUtilBase<T>::addCRLF(std::basic_string<T>& string)
}
string.assign(t, size);
+ delete[] t;
}
}
diff --git a/indra/llcommon/lluri.cpp b/indra/llcommon/lluri.cpp
index b28657e2f4..0e8f3f0f73 100644
--- a/indra/llcommon/lluri.cpp
+++ b/indra/llcommon/lluri.cpp
@@ -46,10 +46,21 @@
void encode_character(std::ostream& ostr, std::string::value_type val)
{
- ostr << "%" << std::uppercase << std::hex << std::setw(2) << std::setfill('0')
+ ostr << "%"
+
+ << std::uppercase
+ << std::hex
+ << std::setw(2)
+ << std::setfill('0')
+
// VWR-4010 Cannot cast to U32 because sign-extension on
// chars > 128 will result in FFFFFFC3 instead of F3.
- << static_cast<S32>(static_cast<U8>(val));
+ << static_cast<S32>(static_cast<U8>(val))
+
+ // reset stream state
+ << std::nouppercase
+ << std::dec
+ << std::setfill(' ');
}
// static
diff --git a/indra/llmath/llinterp.h b/indra/llmath/llinterp.h
index 36ca2e9865..88af004170 100644
--- a/indra/llmath/llinterp.h
+++ b/indra/llmath/llinterp.h
@@ -54,7 +54,7 @@ template <typename Type>
class LLInterp
{
public:
- LLInterp();
+ LLInterp();
virtual ~LLInterp() {}
virtual void start();
@@ -151,6 +151,7 @@ protected:
template <typename Type>
LLInterp<Type>::LLInterp()
+: mStartVal(Type()), mEndVal(Type()), mCurVal(Type())
{
mStartTime = 0.f;
mEndTime = 1.f;
diff --git a/indra/llmath/lloctree.h b/indra/llmath/lloctree.h
index ba8776690a..2f34fb1bb0 100644
--- a/indra/llmath/lloctree.h
+++ b/indra/llmath/lloctree.h
@@ -183,7 +183,6 @@ public:
{
mMax.mdV[i] = mCenter.mdV[i] + mSize.mdV[i];
mMin.mdV[i] = mCenter.mdV[i] - mSize.mdV[i];
- mCenter.mdV[i] = mCenter.mdV[i];
}
}
diff --git a/indra/llmessage/llcachename.cpp b/indra/llmessage/llcachename.cpp
index 3078d80552..dbec2816c8 100644
--- a/indra/llmessage/llcachename.cpp
+++ b/indra/llmessage/llcachename.cpp
@@ -125,7 +125,7 @@ private:
};
ReplySender::ReplySender(LLMessageSystem* msg)
- : mMsg(msg), mPending(false)
+ : mMsg(msg), mPending(false), mCurrIsGroup(false)
{ }
ReplySender::~ReplySender()
diff --git a/indra/llmessage/llmessagetemplateparser.cpp b/indra/llmessage/llmessagetemplateparser.cpp
index 283547ea00..2ddbf3e0df 100644
--- a/indra/llmessage/llmessagetemplateparser.cpp
+++ b/indra/llmessage/llmessagetemplateparser.cpp
@@ -403,6 +403,10 @@ LLTemplateParser::LLTemplateParser(LLTemplateTokenizer & tokens):
{
mMessages.push_back(templatep);
}
+ else
+ {
+ delete templatep;
+ }
}
if(!tokens.wantEOF())
diff --git a/indra/llmessage/llnamevalue.cpp b/indra/llmessage/llnamevalue.cpp
index 01e922eba2..43429b0ab3 100644
--- a/indra/llmessage/llnamevalue.cpp
+++ b/indra/llmessage/llnamevalue.cpp
@@ -963,6 +963,7 @@ std::ostream& operator<<(std::ostream& s, const LLNameValue &a)
U64_to_str(*a.mNameValueReference.u64, u64_string, sizeof(u64_string));
s << u64_string;
}
+ break;
case NVT_VEC3:
s << *(a.mNameValueReference.vec3);
break;
diff --git a/indra/llmessage/lltemplatemessagebuilder.cpp b/indra/llmessage/lltemplatemessagebuilder.cpp
index 6400310c46..55379fc6fd 100644
--- a/indra/llmessage/lltemplatemessagebuilder.cpp
+++ b/indra/llmessage/lltemplatemessagebuilder.cpp
@@ -737,10 +737,14 @@ static S32 buildBlock(U8* buffer, S32 buffer_size, const LLMessageBlock* templat
}
--block_count;
- ++block_iter;
+
if (block_iter != message_data->mMemberBlocks.end())
{
- mbci = block_iter->second;
+ ++block_iter;
+ if (block_iter != message_data->mMemberBlocks.end())
+ {
+ mbci = block_iter->second;
+ }
}
}
diff --git a/indra/llmessage/lltransfermanager.cpp b/indra/llmessage/lltransfermanager.cpp
index d67911e8e2..0a71ad95f2 100644
--- a/indra/llmessage/lltransfermanager.cpp
+++ b/indra/llmessage/lltransfermanager.cpp
@@ -855,6 +855,7 @@ void LLTransferSourceChannel::updateTransfers()
break;
case LLTS_ERROR:
llwarns << "Error in transfer dataCallback!" << llendl;
+ // fall through
case LLTS_DONE:
// We need to clean up this transfer source.
//llinfos << "LLTransferSourceChannel::updateTransfers() " << tsp->getID() << " done" << llendl;
diff --git a/indra/llplugin/llpluginprocesschild.cpp b/indra/llplugin/llpluginprocesschild.cpp
index 07fc82c770..11c924cadf 100644
--- a/indra/llplugin/llpluginprocesschild.cpp
+++ b/indra/llplugin/llpluginprocesschild.cpp
@@ -359,6 +359,7 @@ void LLPluginProcessChild::receiveMessageRaw(const std::string &message)
else
{
LL_WARNS("Plugin") << "Couldn't create a shared memory segment!" << LL_ENDL;
+ delete region;
}
}
diff --git a/indra/llplugin/slplugin/slplugin.cpp b/indra/llplugin/slplugin/slplugin.cpp
index 23dc532ba5..77240ce546 100644
--- a/indra/llplugin/slplugin/slplugin.cpp
+++ b/indra/llplugin/slplugin/slplugin.cpp
@@ -156,7 +156,7 @@ bool checkExceptionHandler()
if (prev_filter == NULL)
{
ok = FALSE;
- if (myWin32ExceptionHandler == NULL)
+ if (NULL == myWin32ExceptionHandler)
{
LL_WARNS("AppInit") << "Exception handler uninitialized." << LL_ENDL;
}
diff --git a/indra/llprimitive/llprimitive.cpp b/indra/llprimitive/llprimitive.cpp
index 5ad758072c..b75d1b0f67 100644
--- a/indra/llprimitive/llprimitive.cpp
+++ b/indra/llprimitive/llprimitive.cpp
@@ -154,6 +154,7 @@ bool LLPrimitive::cleanupVolumeManager()
//===============================================================
LLPrimitive::LLPrimitive()
: mTextureList(),
+ mNumTEs(0),
mMiscFlags(0)
{
mPrimitiveCode = 0;
diff --git a/indra/llrender/llfontbitmapcache.cpp b/indra/llrender/llfontbitmapcache.cpp
index f01878642a..fa231c9e6a 100644
--- a/indra/llrender/llfontbitmapcache.cpp
+++ b/indra/llrender/llfontbitmapcache.cpp
@@ -64,7 +64,7 @@ void LLFontBitmapCache::init(S32 num_components,
LLImageRaw *LLFontBitmapCache::getImageRaw(U32 bitmap_num) const
{
- if ((bitmap_num < 0) || (bitmap_num >= mImageRawVec.size()))
+ if (bitmap_num >= mImageRawVec.size())
return NULL;
return mImageRawVec[bitmap_num];
@@ -72,7 +72,7 @@ LLImageRaw *LLFontBitmapCache::getImageRaw(U32 bitmap_num) const
LLImageGL *LLFontBitmapCache::getImageGL(U32 bitmap_num) const
{
- if ((bitmap_num < 0) || (bitmap_num >= mImageGLVec.size()))
+ if (bitmap_num >= mImageGLVec.size())
return NULL;
return mImageGLVec[bitmap_num];
diff --git a/indra/llrender/llimagegl.cpp b/indra/llrender/llimagegl.cpp
index cd493481d5..8bcc4723ae 100644
--- a/indra/llrender/llimagegl.cpp
+++ b/indra/llrender/llimagegl.cpp
@@ -436,6 +436,8 @@ void LLImageGL::init(BOOL usemipmaps)
mLastBindTime = 0.f;
mPickMask = NULL;
+ mPickMaskWidth = 0;
+ mPickMaskHeight = 0;
mUseMipMaps = usemipmaps;
mHasExplicitFormat = FALSE;
mAutoGenMips = FALSE;
@@ -527,7 +529,12 @@ void LLImageGL::setSize(S32 width, S32 height, S32 ncomponents)
// llwarns << "Setting Size of LLImageGL with existing mTexName = " << mTexName << llendl;
destroyGLTexture();
}
-
+
+ // pickmask validity depends on old image size, delete it
+ delete [] mPickMask;
+ mPickMask = NULL;
+ mPickMaskWidth = mPickMaskHeight = 0;
+
mWidth = width;
mHeight = height;
mComponents = ncomponents;
@@ -1675,12 +1682,14 @@ void LLImageGL::updatePickMask(S32 width, S32 height, const U8* data_in)
return ;
}
+ delete [] mPickMask;
+ mPickMask = NULL;
+ mPickMaskWidth = mPickMaskHeight = 0;
+
if (mFormatType != GL_UNSIGNED_BYTE ||
mFormatPrimary != GL_RGBA)
{
//cannot generate a pick mask for this texture
- delete [] mPickMask;
- mPickMask = NULL;
return;
}
@@ -1688,11 +1697,10 @@ void LLImageGL::updatePickMask(S32 width, S32 height, const U8* data_in)
U32 pick_height = height/2;
U32 size = llmax(pick_width, (U32) 1) * llmax(pick_height, (U32) 1);
-
size = size/8 + 1;
-
- delete[] mPickMask;
mPickMask = new U8[size];
+ mPickMaskWidth = pick_width;
+ mPickMaskHeight = pick_height;
memset(mPickMask, 0, sizeof(U8) * size);
@@ -1708,10 +1716,7 @@ void LLImageGL::updatePickMask(S32 width, S32 height, const U8* data_in)
{
U32 pick_idx = pick_bit/8;
U32 pick_offset = pick_bit%8;
- if (pick_idx >= size)
- {
- llerrs << "WTF?" << llendl;
- }
+ llassert(pick_idx < size);
mPickMask[pick_idx] |= 1 << pick_offset;
}
@@ -1727,35 +1732,34 @@ BOOL LLImageGL::getMask(const LLVector2 &tc)
if (mPickMask)
{
- S32 width = getWidth()/2;
- S32 height = getHeight()/2;
-
F32 u = tc.mV[0] - floorf(tc.mV[0]);
F32 v = tc.mV[1] - floorf(tc.mV[1]);
- if (u < 0.f || u > 1.f ||
- v < 0.f || v > 1.f)
+ if (LL_UNLIKELY(u < 0.f || u > 1.f ||
+ v < 0.f || v > 1.f))
{
LL_WARNS_ONCE("render") << "Ugh, u/v out of range in image mask pick" << LL_ENDL;
u = v = 0.f;
llassert(false);
}
+
+ llassert(mPickMaskWidth > 0 && mPickMaskHeight > 0);
- S32 x = (S32)(u * width);
- S32 y = (S32)(v * height);
+ S32 x = (S32)(u * mPickMaskWidth);
+ S32 y = (S32)(v * mPickMaskHeight);
- if (x >= width)
+ if (LL_UNLIKELY(x >= mPickMaskWidth))
{
LL_WARNS_ONCE("render") << "Ooh, width overrun on pick mask read, that coulda been bad." << LL_ENDL;
- x = llmax(0, width-1);
+ x = llmax(0, mPickMaskWidth-1);
}
- if (y >= height)
+ if (LL_UNLIKELY(y >= mPickMaskHeight))
{
LL_WARNS_ONCE("render") << "Ooh, height overrun on pick mask read, that woulda been bad." << LL_ENDL;
- y = llmax(0, height-1);
+ y = llmax(0, mPickMaskHeight-1);
}
- S32 idx = y*width+x;
+ S32 idx = y*mPickMaskWidth+x;
S32 offset = idx%8;
res = mPickMask[idx/8] & (1 << offset) ? TRUE : FALSE;
diff --git a/indra/llrender/llimagegl.h b/indra/llrender/llimagegl.h
index facfb7bd62..f0870c3fc4 100644
--- a/indra/llrender/llimagegl.h
+++ b/indra/llrender/llimagegl.h
@@ -193,6 +193,8 @@ public:
private:
LLPointer<LLImageRaw> mSaveData; // used for destroyGL/restoreGL
U8* mPickMask; //downsampled bitmap approximation of alpha channel. NULL if no alpha channel
+ U16 mPickMaskWidth;
+ U16 mPickMaskHeight;
S8 mUseMipMaps;
S8 mHasExplicitFormat; // If false (default), GL format is f(mComponents)
S8 mAutoGenMips;
diff --git a/indra/llrender/llvertexbuffer.cpp b/indra/llrender/llvertexbuffer.cpp
index 572ae13909..ecfe845b34 100644
--- a/indra/llrender/llvertexbuffer.cpp
+++ b/indra/llrender/llvertexbuffer.cpp
@@ -237,7 +237,7 @@ void LLVertexBuffer::drawRange(U32 mode, U32 start, U32 end, U32 count, U32 indi
llerrs << "Wrong vertex buffer bound." << llendl;
}
- if (mode > LLRender::NUM_MODES)
+ if (mode >= LLRender::NUM_MODES)
{
llerrs << "Invalid draw mode: " << mode << llendl;
return;
@@ -267,7 +267,7 @@ void LLVertexBuffer::draw(U32 mode, U32 count, U32 indices_offset) const
llerrs << "Wrong vertex buffer bound." << llendl;
}
- if (mode > LLRender::NUM_MODES)
+ if (mode >= LLRender::NUM_MODES)
{
llerrs << "Invalid draw mode: " << mode << llendl;
return;
@@ -292,7 +292,7 @@ void LLVertexBuffer::drawArrays(U32 mode, U32 first, U32 count) const
llerrs << "Wrong vertex buffer bound." << llendl;
}
- if (mode > LLRender::NUM_MODES)
+ if (mode >= LLRender::NUM_MODES)
{
llerrs << "Invalid draw mode: " << mode << llendl;
return;
diff --git a/indra/llui/llaccordionctrl.cpp b/indra/llui/llaccordionctrl.cpp
index b5e870228a..d0c73fbfbc 100644
--- a/indra/llui/llaccordionctrl.cpp
+++ b/indra/llui/llaccordionctrl.cpp
@@ -63,6 +63,8 @@ static LLDefaultChildRegistry::Register<LLAccordionCtrl> t2("accordion");
LLAccordionCtrl::LLAccordionCtrl(const Params& params):LLPanel(params)
, mFitParent(params.fit_parent)
+ , mAutoScrolling( false )
+ , mAutoScrollRate( 0.f )
{
mSingleExpansion = params.single_expansion;
if(mFitParent && !mSingleExpansion)
@@ -72,6 +74,8 @@ LLAccordionCtrl::LLAccordionCtrl(const Params& params):LLPanel(params)
}
LLAccordionCtrl::LLAccordionCtrl() : LLPanel()
+ , mAutoScrolling( false )
+ , mAutoScrollRate( 0.f )
{
mSingleExpansion = false;
mFitParent = false;
@@ -81,6 +85,19 @@ LLAccordionCtrl::LLAccordionCtrl() : LLPanel()
//---------------------------------------------------------------------------------
void LLAccordionCtrl::draw()
{
+ if (mAutoScrolling)
+ {
+ // add acceleration to autoscroll
+ mAutoScrollRate = llmin(mAutoScrollRate + (LLFrameTimer::getFrameDeltaTimeF32() * AUTO_SCROLL_RATE_ACCEL), MAX_AUTO_SCROLL_RATE);
+ }
+ else
+ {
+ // reset to minimum for next time
+ mAutoScrollRate = MIN_AUTO_SCROLL_RATE;
+ }
+ // clear this flag to be set on next call to autoScroll
+ mAutoScrolling = false;
+
LLRect local_rect(0, getRect().getHeight(), getRect().getWidth(), 0);
LLLocalClipRect clip(local_rect);
@@ -420,6 +437,64 @@ BOOL LLAccordionCtrl::handleKeyHere (KEY key, MASK mask)
return LLPanel::handleKeyHere(key,mask);
}
+BOOL LLAccordionCtrl::handleDragAndDrop (S32 x, S32 y, MASK mask,
+ BOOL drop,
+ EDragAndDropType cargo_type,
+ void* cargo_data,
+ EAcceptance* accept,
+ std::string& tooltip_msg)
+{
+ // Scroll folder view if needed. Never accepts a drag or drop.
+ *accept = ACCEPT_NO;
+ BOOL handled = autoScroll(x, y);
+
+ if( !handled )
+ {
+ handled = childrenHandleDragAndDrop(x, y, mask, drop, cargo_type,
+ cargo_data, accept, tooltip_msg) != NULL;
+ }
+ return TRUE;
+}
+
+BOOL LLAccordionCtrl::autoScroll (S32 x, S32 y)
+{
+ static LLUICachedControl<S32> scrollbar_size ("UIScrollbarSize", 0);
+
+ bool scrolling = false;
+ if( mScrollbar->getVisible() )
+ {
+ LLRect rect_local( 0, getRect().getHeight(), getRect().getWidth() - scrollbar_size, 0 );
+ LLRect screen_local_extents;
+
+ // clip rect against root view
+ screenRectToLocal(getRootView()->getLocalRect(), &screen_local_extents);
+ rect_local.intersectWith(screen_local_extents);
+
+ // autoscroll region should take up no more than one third of visible scroller area
+ S32 auto_scroll_region_height = llmin(rect_local.getHeight() / 3, 10);
+ S32 auto_scroll_speed = llround(mAutoScrollRate * LLFrameTimer::getFrameDeltaTimeF32());
+
+ LLRect bottom_scroll_rect = screen_local_extents;
+ bottom_scroll_rect.mTop = rect_local.mBottom + auto_scroll_region_height;
+ if( bottom_scroll_rect.pointInRect( x, y ) && (mScrollbar->getDocPos() < mScrollbar->getDocPosMax()) )
+ {
+ mScrollbar->setDocPos( mScrollbar->getDocPos() + auto_scroll_speed );
+ mAutoScrolling = true;
+ scrolling = true;
+ }
+
+ LLRect top_scroll_rect = screen_local_extents;
+ top_scroll_rect.mBottom = rect_local.mTop - auto_scroll_region_height;
+ if( top_scroll_rect.pointInRect( x, y ) && (mScrollbar->getDocPos() > 0) )
+ {
+ mScrollbar->setDocPos( mScrollbar->getDocPos() - auto_scroll_speed );
+ mAutoScrolling = true;
+ scrolling = true;
+ }
+ }
+ return scrolling;
+}
+
void LLAccordionCtrl::updateLayout (S32 width, S32 height)
{
S32 panel_top = height - BORDER_MARGIN ;
diff --git a/indra/llui/llaccordionctrl.h b/indra/llui/llaccordionctrl.h
index 4cb0f38281..d57a42df32 100644
--- a/indra/llui/llaccordionctrl.h
+++ b/indra/llui/llaccordionctrl.h
@@ -81,6 +81,11 @@ public:
virtual BOOL handleRightMouseDown ( S32 x, S32 y, MASK mask);
virtual BOOL handleScrollWheel ( S32 x, S32 y, S32 clicks );
virtual BOOL handleKeyHere (KEY key, MASK mask);
+ virtual BOOL handleDragAndDrop (S32 x, S32 y, MASK mask, BOOL drop,
+ EDragAndDropType cargo_type,
+ void* cargo_data,
+ EAcceptance* accept,
+ std::string& tooltip_msg);
//
// Call reshape after changing splitter's size
@@ -112,11 +117,15 @@ private:
void showScrollbar (S32 width, S32 height);
void hideScrollbar (S32 width, S32 height);
+ BOOL autoScroll (S32 x, S32 y);
+
private:
LLRect mInnerRect;
LLScrollbar* mScrollbar;
bool mSingleExpansion;
bool mFitParent;
+ bool mAutoScrolling;
+ F32 mAutoScrollRate;
};
diff --git a/indra/llui/llaccordionctrltab.cpp b/indra/llui/llaccordionctrltab.cpp
index 4bfe44135a..daa9e08f14 100644
--- a/indra/llui/llaccordionctrltab.cpp
+++ b/indra/llui/llaccordionctrltab.cpp
@@ -45,6 +45,7 @@ static const std::string DD_HEADER_NAME = "dd_header";
static const S32 HEADER_HEIGHT = 20;
static const S32 HEADER_IMAGE_LEFT_OFFSET = 5;
static const S32 HEADER_TEXT_LEFT_OFFSET = 30;
+static const F32 AUTO_OPEN_TIME = 1.f;
static LLDefaultChildRegistry::Register<LLAccordionCtrlTab> t1("accordion_tab");
@@ -73,6 +74,11 @@ public:
virtual void onMouseEnter(S32 x, S32 y, MASK mask);
virtual void onMouseLeave(S32 x, S32 y, MASK mask);
virtual BOOL handleKey(KEY key, MASK mask, BOOL called_from_parent);
+ virtual BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
+ EDragAndDropType cargo_type,
+ void* cargo_data,
+ EAcceptance* accept,
+ std::string& tooltip_msg);
private:
LLTextBox* mHeaderTextbox;
@@ -92,6 +98,8 @@ private:
LLUIColor mHeaderBGColor;
bool mNeedsHighlight;
+
+ LLFrameTimer mAutoOpenTimer;
};
LLAccordionCtrlTab::LLAccordionCtrlTabHeader::Params::Params()
@@ -209,6 +217,7 @@ void LLAccordionCtrlTab::LLAccordionCtrlTabHeader::onMouseLeave(S32 x, S32 y, MA
{
LLUICtrl::onMouseLeave(x, y, mask);
mNeedsHighlight = false;
+ mAutoOpenTimer.stop();
}
BOOL LLAccordionCtrlTab::LLAccordionCtrlTabHeader::handleKey(KEY key, MASK mask, BOOL called_from_parent)
{
@@ -218,8 +227,33 @@ BOOL LLAccordionCtrlTab::LLAccordionCtrlTabHeader::handleKey(KEY key, MASK mask,
}
return LLUICtrl::handleKey(key, mask, called_from_parent);
}
+BOOL LLAccordionCtrlTab::LLAccordionCtrlTabHeader::handleDragAndDrop(S32 x, S32 y, MASK mask,
+ BOOL drop,
+ EDragAndDropType cargo_type,
+ void* cargo_data,
+ EAcceptance* accept,
+ std::string& tooltip_msg)
+{
+ LLAccordionCtrlTab* parent = dynamic_cast<LLAccordionCtrlTab*>(getParent());
+ if ( parent && !parent->getDisplayChildren() && parent->getCollapsible() && parent->canOpenClose() )
+ {
+ if (mAutoOpenTimer.getStarted())
+ {
+ if (mAutoOpenTimer.getElapsedTimeF32() > AUTO_OPEN_TIME)
+ {
+ parent->changeOpenClose(false);
+ mAutoOpenTimer.stop();
+ return TRUE;
+ }
+ }
+ else
+ mAutoOpenTimer.start();
+ }
+ return LLUICtrl::handleDragAndDrop(x, y, mask, drop, cargo_type,
+ cargo_data, accept, tooltip_msg);
+}
LLAccordionCtrlTab::Params::Params()
: title("title")
,display_children("expanded", true)
diff --git a/indra/llui/llaccordionctrltab.h b/indra/llui/llaccordionctrltab.h
index b200d43438..2e0260ab16 100644
--- a/indra/llui/llaccordionctrltab.h
+++ b/indra/llui/llaccordionctrltab.h
@@ -115,6 +115,7 @@ public:
void changeOpenClose(bool is_open);
void canOpenClose(bool can_open_close) { mCanOpenClose = can_open_close;};
+ bool canOpenClose() const { return mCanOpenClose; };
virtual BOOL postBuild();
diff --git a/indra/llui/llbutton.cpp b/indra/llui/llbutton.cpp
index 9ce8ce8d55..4944ed4fe7 100644
--- a/indra/llui/llbutton.cpp
+++ b/indra/llui/llbutton.cpp
@@ -81,6 +81,10 @@ LLButton::Params::Params()
image_pressed_selected("image_pressed_selected"),
image_overlay("image_overlay"),
image_overlay_alignment("image_overlay_alignment", std::string("center")),
+ image_left_pad("image_left_pad"),
+ image_right_pad("image_right_pad"),
+ image_top_pad("image_top_pad"),
+ image_bottom_pad("image_bottom_pad"),
label_color("label_color"),
label_color_selected("label_color_selected"), // requires is_toggle true
label_color_disabled("label_color_disabled"),
@@ -140,6 +144,10 @@ LLButton::LLButton(const LLButton::Params& p)
mImageOverlay(p.image_overlay()),
mImageOverlayColor(p.image_overlay_color()),
mImageOverlayAlignment(LLFontGL::hAlignFromName(p.image_overlay_alignment)),
+ mImageOverlayLeftPad(p.image_left_pad),
+ mImageOverlayRightPad(p.image_right_pad),
+ mImageOverlayTopPad(p.image_top_pad),
+ mImageOverlayBottomPad(p.image_bottom_pad),
mIsToggle(p.is_toggle),
mScaleImage(p.scale_image),
mDropShadowedText(p.label_shadow),
@@ -763,6 +771,12 @@ void LLButton::draw()
center_x++;
}
+ S32 text_width_delta = overlay_width + 1;
+ // if image paddings set, they should participate in scaling process
+ S32 image_size_delta = mImageOverlayTopPad + mImageOverlayBottomPad;
+ overlay_width = overlay_width - image_size_delta;
+ overlay_height = overlay_height - image_size_delta;
+
// fade out overlay images on disabled buttons
LLColor4 overlay_color = mImageOverlayColor.get();
if (!enabled)
@@ -774,8 +788,8 @@ void LLButton::draw()
switch(mImageOverlayAlignment)
{
case LLFontGL::LEFT:
- text_left += overlay_width + 1;
- text_width -= overlay_width + 1;
+ text_left += overlay_width + mImageOverlayRightPad + 1;
+ text_width -= text_width_delta;
mImageOverlay->draw(
mLeftHPad,
center_y - (overlay_height / 2),
@@ -792,8 +806,8 @@ void LLButton::draw()
overlay_color);
break;
case LLFontGL::RIGHT:
- text_right -= overlay_width + 1;
- text_width -= overlay_width + 1;
+ text_right -= overlay_width + mImageOverlayLeftPad+ 1;
+ text_width -= text_width_delta;
mImageOverlay->draw(
getRect().getWidth() - mRightHPad - overlay_width,
center_y - (overlay_height / 2),
diff --git a/indra/llui/llbutton.h b/indra/llui/llbutton.h
index cd149e3113..8e5f19602f 100644
--- a/indra/llui/llbutton.h
+++ b/indra/llui/llbutton.h
@@ -106,6 +106,12 @@ public:
Optional<S32> pad_left;
Optional<S32> pad_bottom; // under text label
+ //image overlay paddings
+ Optional<S32> image_left_pad;
+ Optional<S32> image_right_pad;
+ Optional<S32> image_top_pad;
+ Optional<S32> image_bottom_pad;
+
// callbacks
Optional<CommitCallbackParam> click_callback, // alias -> commit_callback
mouse_down_callback,
@@ -186,6 +192,15 @@ public:
void setLeftHPad( S32 pad ) { mLeftHPad = pad; }
void setRightHPad( S32 pad ) { mRightHPad = pad; }
+ void setImageOverlayLeftPad( S32 pad ) { mImageOverlayLeftPad = pad; }
+ S32 getImageOverlayLeftPad() const { return mImageOverlayLeftPad; }
+ void setImageOverlayRightPad( S32 pad ) { mImageOverlayRightPad = pad; }
+ S32 getImageOverlayRightPad() const { return mImageOverlayRightPad; }
+ void setImageOverlayTopPad( S32 pad ) { mImageOverlayTopPad = pad; }
+ S32 getImageOverlayTopPad() const { return mImageOverlayTopPad; }
+ void setImageOverlayBottomPad( S32 pad ) { mImageOverlayBottomPad = pad; }
+ S32 getImageOverlayBottomPad() const { return mImageOverlayBottomPad; }
+
const std::string getLabelUnselected() const { return wstring_to_utf8str(mUnselectedLabel); }
const std::string getLabelSelected() const { return wstring_to_utf8str(mSelectedLabel); }
@@ -313,6 +328,11 @@ private:
S32 mRightHPad;
S32 mBottomVPad; // under text label
+ S32 mImageOverlayLeftPad;
+ S32 mImageOverlayRightPad;
+ S32 mImageOverlayTopPad;
+ S32 mImageOverlayBottomPad;
+
F32 mHoverGlowStrength;
F32 mCurGlowStrength;
diff --git a/indra/llui/llcombobox.cpp b/indra/llui/llcombobox.cpp
index f29e8785eb..9d23daf56d 100644
--- a/indra/llui/llcombobox.cpp
+++ b/indra/llui/llcombobox.cpp
@@ -103,7 +103,8 @@ LLComboBox::LLComboBox(const LLComboBox::Params& p)
mPrearrangeCallback(p.prearrange_callback()),
mTextEntryCallback(p.text_entry_callback()),
mListPosition(p.list_position),
- mLastSelectedIndex(-1)
+ mLastSelectedIndex(-1),
+ mLabel(p.label)
{
// Text label button
@@ -490,6 +491,7 @@ void LLComboBox::createLineEditor(const LLComboBox::Params& p)
params.handle_edit_keys_directly(true);
params.commit_on_focus_lost(false);
params.follows.flags(FOLLOWS_ALL);
+ params.label(mLabel);
mTextEntry = LLUICtrlFactory::create<LLLineEditor> (params);
mTextEntry->setText(cur_label);
mTextEntry->setIgnoreTab(TRUE);
@@ -505,7 +507,8 @@ void LLComboBox::createLineEditor(const LLComboBox::Params& p)
mButton->setRect(rect);
mButton->setTabStop(TRUE);
mButton->setHAlign(LLFontGL::LEFT);
-
+ mButton->setLabel(mLabel.getString());
+
if (mTextEntry)
{
mTextEntry->setVisible(FALSE);
@@ -633,7 +636,7 @@ void LLComboBox::hideList()
if(mLastSelectedIndex >= 0)
mList->selectNthItem(mLastSelectedIndex);
}
- else
+ else if(mLastSelectedIndex >= 0)
mList->selectNthItem(mLastSelectedIndex);
mButton->setToggleState(FALSE);
diff --git a/indra/llui/lldraghandle.cpp b/indra/llui/lldraghandle.cpp
index a93c666648..832f148902 100644
--- a/indra/llui/lldraghandle.cpp
+++ b/indra/llui/lldraghandle.cpp
@@ -113,6 +113,7 @@ void LLDragHandleTop::setTitle(const std::string& title)
params.follows.flags(FOLLOWS_TOP | FOLLOWS_LEFT | FOLLOWS_RIGHT);
params.font_shadow(LLFontGL::DROP_SHADOW_SOFT);
params.use_ellipses = true;
+ params.allow_html = false; //cancel URL replacement in floater title
mTitleBox = LLUICtrlFactory::create<LLTextBox> (params);
addChild( mTitleBox );
}
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index 79d8f90fec..de46d89d6f 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -1916,9 +1916,10 @@ static LLDefaultChildRegistry::Register<LLFloaterView> r("floater_view");
LLFloaterView::LLFloaterView (const Params& p)
: LLUICtrl (p),
+
mFocusCycleMode(FALSE),
- mSnapOffsetBottom(0)
- ,mSnapOffsetRight(0)
+ mSnapOffsetBottom(0),
+ mSnapOffsetRight(0)
{
}
diff --git a/indra/llui/llfloater.h b/indra/llui/llfloater.h
index f70495c0f0..8c9dacbd20 100644
--- a/indra/llui/llfloater.h
+++ b/indra/llui/llfloater.h
@@ -468,9 +468,6 @@ public:
void setSnapOffsetRight(S32 offset) { mSnapOffsetRight = offset; }
private:
- S32 mColumn;
- S32 mNextLeft;
- S32 mNextTop;
BOOL mFocusCycleMode;
S32 mSnapOffsetBottom;
S32 mSnapOffsetRight;
diff --git a/indra/llui/lllineeditor.cpp b/indra/llui/lllineeditor.cpp
index 73e4d126f3..cb5aea272d 100644
--- a/indra/llui/lllineeditor.cpp
+++ b/indra/llui/lllineeditor.cpp
@@ -70,6 +70,8 @@ const S32 SCROLL_INCREMENT_DEL = 4; // make space for baskspacing
const F32 AUTO_SCROLL_TIME = 0.05f;
const F32 TRIPLE_CLICK_INTERVAL = 0.3f; // delay between double and triple click. *TODO: make this equal to the double click interval?
+const std::string PASSWORD_ASTERISK( "\xE2\x97\x8F" ); // U+25CF BLACK CIRCLE
+
static LLDefaultChildRegistry::Register<LLLineEditor> r1("line_editor");
// Compiler optimization, generate extern template
@@ -401,7 +403,7 @@ void LLLineEditor::setCursorAtLocalPos( S32 local_mouse_x )
{
for (S32 i = 0; i < mText.length(); i++)
{
- asterix_text += '*';
+ asterix_text += utf8str_to_wstring(PASSWORD_ASTERISK);
}
wtext = asterix_text.c_str();
}
@@ -1599,7 +1601,7 @@ void LLLineEditor::draw()
std::string text;
for (S32 i = 0; i < mText.length(); i++)
{
- text += '*';
+ text += PASSWORD_ASTERISK;
}
mText = text;
}
diff --git a/indra/llui/llmenugl.cpp b/indra/llui/llmenugl.cpp
index c172a2b714..7fa9a88059 100644
--- a/indra/llui/llmenugl.cpp
+++ b/indra/llui/llmenugl.cpp
@@ -1651,6 +1651,7 @@ LLMenuGL::LLMenuGL(const LLMenuGL::Params& p)
mBackgroundColor( p.bg_color() ),
mBgVisible( p.bg_visible ),
mDropShadowed( p.drop_shadow ),
+ mHasSelection(false),
mHorizontalLayout( p.horizontal_layout ),
mScrollable(mHorizontalLayout ? FALSE : p.scrollable), // Scrolling is supported only for vertical layout
mMaxScrollableItems(p.max_scrollable_items),
@@ -1875,17 +1876,21 @@ void LLMenuGL::scrollItemsDown()
item_list_t::iterator next_item_iter;
- for (next_item_iter = ++cur_item_iter; next_item_iter != mItems.end(); next_item_iter++)
+ if (cur_item_iter != mItems.end())
{
- if( (*next_item_iter)->getVisible())
+ for (next_item_iter = ++cur_item_iter; next_item_iter != mItems.end(); next_item_iter++)
{
- break;
+ if( (*next_item_iter)->getVisible())
+ {
+ break;
+ }
+ }
+
+ if (next_item_iter != mItems.end() &&
+ (*next_item_iter)->getVisible())
+ {
+ mFirstVisibleItem = *next_item_iter;
}
- }
-
- if ((*next_item_iter)->getVisible())
- {
- mFirstVisibleItem = *next_item_iter;
}
mNeedsArrange = TRUE;
@@ -2809,7 +2814,7 @@ BOOL LLMenuGL::handleHover( S32 x, S32 y, MASK mask )
((LLMenuItemGL*)viewp)->setHighlight(TRUE);
LLMenuGL::setKeyboardMode(FALSE);
}
- mHasSelection = TRUE;
+ mHasSelection = true;
}
}
}
@@ -2888,7 +2893,7 @@ void LLMenuGL::setVisible(BOOL visible)
}
else
{
- mHasSelection = FALSE;
+ mHasSelection = true;
mFadeTimer.stop();
}
diff --git a/indra/llui/llmenugl.h b/indra/llui/llmenugl.h
index 61e06f9e5f..8441aaadd4 100644
--- a/indra/llui/llmenugl.h
+++ b/indra/llui/llmenugl.h
@@ -546,7 +546,7 @@ private:
LLHandle<LLView> mParentMenuItem;
LLUIString mLabel;
BOOL mDropShadowed; // Whether to drop shadow
- BOOL mHasSelection;
+ bool mHasSelection;
LLFrameTimer mFadeTimer;
LLTimer mScrollItemsTimer;
BOOL mTornOff;
diff --git a/indra/llui/llnotifications.cpp b/indra/llui/llnotifications.cpp
index 86989012ee..a67094b8ce 100644
--- a/indra/llui/llnotifications.cpp
+++ b/indra/llui/llnotifications.cpp
@@ -1058,6 +1058,7 @@ LLNotificationChannelPtr LLNotifications::getChannel(const std::string& channelN
if(p == mChannels.end())
{
llerrs << "Did not find channel named " << channelName << llendl;
+ return LLNotificationChannelPtr();
}
return p->second;
}
diff --git a/indra/llui/llscrolllistctrl.cpp b/indra/llui/llscrolllistctrl.cpp
index 4e84013db0..478e270c98 100644
--- a/indra/llui/llscrolllistctrl.cpp
+++ b/indra/llui/llscrolllistctrl.cpp
@@ -498,7 +498,7 @@ void LLScrollListCtrl::fitContents(S32 max_width, S32 max_height)
{
S32 height = llmin( getRequiredRect().getHeight(), max_height );
if(mPageLines)
- height = llmin( mPageLines * mLineHeight + (mDisplayColumnHeaders ? mHeadingHeight : 0), height );
+ height = llmin( mPageLines * mLineHeight + 2*mBorderThickness + (mDisplayColumnHeaders ? mHeadingHeight : 0), height );
S32 width = getRect().getWidth();
@@ -1534,7 +1534,7 @@ LLRect LLScrollListCtrl::getCellRect(S32 row_index, S32 column_index)
S32 rect_bottom = getRowOffsetFromIndex(row_index);
LLScrollListColumn* columnp = getColumn(column_index);
cell_rect.setOriginAndSize(rect_left, rect_bottom,
- rect_left + columnp->getWidth(), mLineHeight);
+ /*rect_left + */columnp->getWidth(), mLineHeight);
return cell_rect;
}
@@ -2760,9 +2760,13 @@ LLScrollListItem* LLScrollListCtrl::addElement(const LLSD& element, EAddPosition
LLScrollListItem* LLScrollListCtrl::addRow(const LLScrollListItem::Params& item_p, EAddPosition pos)
{
- if (!item_p.validateBlock()) return NULL;
-
LLScrollListItem *new_item = new LLScrollListItem(item_p);
+ return addRow(new_item, item_p, pos);
+}
+
+LLScrollListItem* LLScrollListCtrl::addRow(LLScrollListItem *new_item, const LLScrollListItem::Params& item_p, EAddPosition pos)
+{
+ if (!item_p.validateBlock() || !new_item) return NULL;
new_item->setNumColumns(mColumns.size());
// Add any columns we don't already have
diff --git a/indra/llui/llscrolllistctrl.h b/indra/llui/llscrolllistctrl.h
index 907dc90bea..d2d2379328 100644
--- a/indra/llui/llscrolllistctrl.h
+++ b/indra/llui/llscrolllistctrl.h
@@ -148,6 +148,7 @@ public:
// "columns" => [ "column" => column name, "value" => value, "type" => type, "font" => font, "font-style" => style ], "id" => uuid
// Creates missing columns automatically.
virtual LLScrollListItem* addElement(const LLSD& element, EAddPosition pos = ADD_BOTTOM, void* userdata = NULL);
+ virtual LLScrollListItem* addRow(LLScrollListItem *new_item, const LLScrollListItem::Params& value, EAddPosition pos = ADD_BOTTOM);
virtual LLScrollListItem* addRow(const LLScrollListItem::Params& value, EAddPosition pos = ADD_BOTTOM);
// Simple add element. Takes a single array of:
// [ "value" => value, "font" => font, "font-style" => style ]
diff --git a/indra/llui/llscrolllistitem.h b/indra/llui/llscrolllistitem.h
index 15b86cc945..25ce846d90 100644
--- a/indra/llui/llscrolllistitem.h
+++ b/indra/llui/llscrolllistitem.h
@@ -95,7 +95,7 @@ public:
void setUserdata( void* userdata ) { mUserdata = userdata; }
void* getUserdata() const { return mUserdata; }
- LLUUID getUUID() const { return mItemValue.asUUID(); }
+ virtual LLUUID getUUID() const { return mItemValue.asUUID(); }
LLSD getValue() const { return mItemValue; }
void setRect(LLRect rect) { mRectangle = rect; }
diff --git a/indra/llui/llstyle.cpp b/indra/llui/llstyle.cpp
index 71511f69a4..b8f93b6a0e 100644
--- a/indra/llui/llstyle.cpp
+++ b/indra/llui/llstyle.cpp
@@ -49,7 +49,10 @@ LLStyle::Params::Params()
LLStyle::LLStyle(const LLStyle::Params& p)
-: mVisible(p.visible),
+: mItalic(FALSE),
+ mBold(FALSE),
+ mUnderline(FALSE),
+ mVisible(p.visible),
mColor(p.color()),
mReadOnlyColor(p.readonly_color()),
mFont(p.font()),
diff --git a/indra/llui/lltabcontainer.cpp b/indra/llui/lltabcontainer.cpp
index 43c44f2253..6be76605fd 100644
--- a/indra/llui/lltabcontainer.cpp
+++ b/indra/llui/lltabcontainer.cpp
@@ -1373,6 +1373,8 @@ BOOL LLTabContainer::setTab(S32 which)
{
LLTabTuple* tuple = *iter;
BOOL is_selected = ( tuple == selected_tuple );
+ tuple->mButton->setUseEllipses(TRUE);
+ tuple->mButton->setHAlign(LLFontGL::LEFT);
tuple->mTabPanel->setVisible( is_selected );
// tuple->mTabPanel->setFocus(is_selected); // not clear that we want to do this here.
tuple->mButton->setToggleState( is_selected );
@@ -1478,63 +1480,54 @@ void LLTabContainer::setTabPanelFlashing(LLPanel* child, BOOL state )
void LLTabContainer::setTabImage(LLPanel* child, std::string image_name, const LLColor4& color)
{
- static LLUICachedControl<S32> tab_padding ("UITabPadding", 0);
LLTabTuple* tuple = getTabByPanel(child);
if( tuple )
{
- tuple->mButton->setImageOverlay(image_name, LLFontGL::RIGHT, color);
-
- if (!mIsVertical)
- {
- // remove current width from total tab strip width
- mTotalTabWidth -= tuple->mButton->getRect().getWidth();
-
- S32 image_overlay_width = tuple->mButton->getImageOverlay().notNull() ?
- tuple->mButton->getImageOverlay()->getImage()->getWidth(0) :
- 0;
-
- tuple->mPadding = image_overlay_width;
-
- tuple->mButton->setRightHPad(6);
- tuple->mButton->reshape(llclamp(mFont->getWidth(tuple->mButton->getLabelSelected()) + tab_padding + tuple->mPadding, mMinTabWidth, mMaxTabWidth),
- tuple->mButton->getRect().getHeight());
- // add back in button width to total tab strip width
- mTotalTabWidth += tuple->mButton->getRect().getWidth();
-
- // tabs have changed size, might need to scroll to see current tab
- updateMaxScrollPos();
- }
+ tuple->mButton->setImageOverlay(image_name, LLFontGL::LEFT, color);
+ reshape_tuple(tuple);
}
}
void LLTabContainer::setTabImage(LLPanel* child, const LLUUID& image_id, const LLColor4& color)
{
- static LLUICachedControl<S32> tab_padding ("UITabPadding", 0);
LLTabTuple* tuple = getTabByPanel(child);
if( tuple )
{
- tuple->mButton->setImageOverlay(image_id, LLFontGL::RIGHT, color);
+ tuple->mButton->setImageOverlay(image_id, LLFontGL::LEFT, color);
+ reshape_tuple(tuple);
+ }
+}
- if (!mIsVertical)
- {
- // remove current width from total tab strip width
- mTotalTabWidth -= tuple->mButton->getRect().getWidth();
+void LLTabContainer::reshape_tuple(LLTabTuple* tuple)
+{
+ static LLUICachedControl<S32> tab_padding ("UITabPadding", 0);
+ static LLUICachedControl<S32> image_left_padding ("UIButtonImageLeftPadding", 4);
+ static LLUICachedControl<S32> image_right_padding ("UIButtonImageRightPadding", 4);
+ static LLUICachedControl<S32> image_top_padding ("UIButtonImageTopPadding", 2);
+ static LLUICachedControl<S32> image_bottom_padding ("UIButtonImageBottomPadding", 2);
- S32 image_overlay_width = tuple->mButton->getImageOverlay().notNull() ?
- tuple->mButton->getImageOverlay()->getImage()->getWidth(0) :
- 0;
+ if (!mIsVertical)
+ {
+ tuple->mButton->setImageOverlayLeftPad(image_left_padding);
+ tuple->mButton->setImageOverlayRightPad(image_right_padding);
+ tuple->mButton->setImageOverlayTopPad(image_top_padding);
+ tuple->mButton->setImageOverlayBottomPad(image_bottom_padding);
- tuple->mPadding = image_overlay_width;
+ // remove current width from total tab strip width
+ mTotalTabWidth -= tuple->mButton->getRect().getWidth();
- tuple->mButton->setRightHPad(6);
- tuple->mButton->reshape(llclamp(mFont->getWidth(tuple->mButton->getLabelSelected()) + tab_padding + tuple->mPadding, mMinTabWidth, mMaxTabWidth),
- tuple->mButton->getRect().getHeight());
- // add back in button width to total tab strip width
- mTotalTabWidth += tuple->mButton->getRect().getWidth();
+ S32 image_overlay_width = tuple->mButton->getImageOverlay().notNull() ?
+ tuple->mButton->getImageOverlay()->getImage()->getWidth(0) : 0;
- // tabs have changed size, might need to scroll to see current tab
- updateMaxScrollPos();
- }
+ tuple->mPadding = image_overlay_width;
+
+ tuple->mButton->reshape(llclamp(mFont->getWidth(tuple->mButton->getLabelSelected()) + tab_padding + tuple->mPadding, mMinTabWidth, mMaxTabWidth),
+ tuple->mButton->getRect().getHeight());
+ // add back in button width to total tab strip width
+ mTotalTabWidth += tuple->mButton->getRect().getWidth();
+
+ // tabs have changed size, might need to scroll to see current tab
+ updateMaxScrollPos();
}
}
@@ -1597,7 +1590,10 @@ void LLTabContainer::onTabBtn( const LLSD& data, LLPanel* panel )
LLTabTuple* tuple = getTabByPanel(panel);
selectTabPanel( panel );
- tuple->mTabPanel->setFocus(TRUE);
+ if (tuple)
+ {
+ tuple->mTabPanel->setFocus(TRUE);
+ }
}
void LLTabContainer::onNextBtn( const LLSD& data )
diff --git a/indra/llui/lltabcontainer.h b/indra/llui/lltabcontainer.h
index 33c49e0d6f..2a55877d3c 100644
--- a/indra/llui/lltabcontainer.h
+++ b/indra/llui/lltabcontainer.h
@@ -228,6 +228,7 @@ private:
// updates tab button images given the tuple, tab position and the corresponding params
void update_images(LLTabTuple* tuple, TabParams params, LLTabContainer::TabPosition pos);
+ void reshape_tuple(LLTabTuple* tuple);
// Variables
diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp
index 47db990a37..8abbc833e5 100644
--- a/indra/llui/lltextbase.cpp
+++ b/indra/llui/lltextbase.cpp
@@ -244,7 +244,8 @@ LLTextBase::LLTextBase(const LLTextBase::Params &p)
LLTextBase::~LLTextBase()
{
- delete mPopupMenu;
+ // Menu, like any other LLUICtrl, is deleted by its parent - gMenuHolder
+
clearSegments();
}
@@ -1511,6 +1512,25 @@ void LLTextBase::setText(const LLStringExplicit &utf8str, const LLStyle::Params&
onValueChange(0, getLength());
}
+void LLTextBase::addBlackListUrl(const std::string &url)
+{
+ mBlackListUrls.push_back(url);
+}
+
+bool LLTextBase::isBlackListUrl(const std::string &url) const
+{
+ std::vector<std::string>::const_iterator it;
+ for (it = mBlackListUrls.begin(); it != mBlackListUrls.end(); ++it)
+ {
+ const std::string &blacklist_url = *it;
+ if (url.find(blacklist_url) != std::string::npos)
+ {
+ return true;
+ }
+ }
+ return false;
+}
+
//virtual
std::string LLTextBase::getText() const
{
@@ -1585,20 +1605,29 @@ void LLTextBase::appendText(const std::string &new_text, bool prepend_newline, c
prepend_newline = false;
}
}
- // output the styled Url
- appendAndHighlightText(match.getLabel(), prepend_newline, part, link_params);
- prepend_newline = false;
- // set the tooltip for the Url label
- if (! match.getTooltip().empty())
+ // output the styled Url (unless we've been asked to suppress it)
+ if (isBlackListUrl(match.getUrl()))
{
- segment_set_t::iterator it = getSegIterContaining(getLength()-1);
- if (it != mSegments.end())
+ std::string orig_url = text.substr(start, end-start);
+ appendAndHighlightText(orig_url, prepend_newline, part, style_params);
+ }
+ else
+ {
+ appendAndHighlightText(match.getLabel(), prepend_newline, part, link_params);
+
+ // set the tooltip for the Url label
+ if (! match.getTooltip().empty())
{
- LLTextSegmentPtr segment = *it;
- segment->setToolTip(match.getTooltip());
+ segment_set_t::iterator it = getSegIterContaining(getLength()-1);
+ if (it != mSegments.end())
+ {
+ LLTextSegmentPtr segment = *it;
+ segment->setToolTip(match.getTooltip());
+ }
}
}
+ prepend_newline = false;
// move on to the rest of the text after the Url
if (end < (S32)text.length())
diff --git a/indra/llui/lltextbase.h b/indra/llui/lltextbase.h
index 038b9eaa62..e1c6cc36ab 100644
--- a/indra/llui/lltextbase.h
+++ b/indra/llui/lltextbase.h
@@ -41,6 +41,7 @@
#include "llpanel.h"
#include <string>
+#include <vector>
#include <set>
#include <boost/signals2.hpp>
@@ -186,6 +187,9 @@ public:
const LLFontGL* getDefaultFont() const { return mDefaultFont; }
LLStyle::Params getDefaultStyle();
+ // tell the text object to suppress auto highlighting of a specific URL
+ void addBlackListUrl(const std::string &url);
+
public:
// Fired when a URL link is clicked
commit_signal_t mURLClickSignal;
@@ -308,6 +312,7 @@ protected:
void updateRects();
void needsScroll() { mScrollNeeded = TRUE; }
void replaceUrlLabel(const std::string &url, const std::string &label);
+ bool isBlackListUrl(const std::string &url) const;
protected:
// text segmentation and flow
@@ -359,6 +364,9 @@ protected:
LLView* mDocumentView;
class LLScrollContainer* mScroller;
+ // list of URLs to suppress from automatic hyperlinking
+ std::vector<std::string> mBlackListUrls;
+
// transient state
bool mReflowNeeded; // need to reflow text because of change to text contents or display region
bool mScrollNeeded; // need to change scroll region because of change to cursor position
diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp
index f2c3879a6c..06ba0d80e9 100644
--- a/indra/llui/lltexteditor.cpp
+++ b/indra/llui/lltexteditor.cpp
@@ -2040,6 +2040,20 @@ void LLTextEditor::showContextMenu(S32 x, S32 y)
LLMenuHolderGL::child_registry_t::instance());
}
+ // Route menu to this class
+ // previously this was done in ::handleRightMoseDown:
+ //if(hasTabStop())
+ // setFocus(TRUE) - why? weird...
+ // and then inside setFocus
+ // ....
+ // gEditMenuHandler = this;
+ // ....
+ // but this didn't work in all cases and just weird...
+ //why not here?
+ // (all this was done for EXT-4443)
+
+ gEditMenuHandler = this;
+
S32 screen_x, screen_y;
localPointToScreen(x, y, &screen_x, &screen_y);
mContextMenu->show(screen_x, screen_y);
diff --git a/indra/llui/lltooltip.cpp b/indra/llui/lltooltip.cpp
index 01c7a81309..173fde8e76 100644
--- a/indra/llui/lltooltip.cpp
+++ b/indra/llui/lltooltip.cpp
@@ -400,7 +400,8 @@ bool LLToolTip::hasClickCallback()
//
LLToolTipMgr::LLToolTipMgr()
-: mToolTip(NULL),
+: mToolTipsBlocked(false),
+ mToolTip(NULL),
mNeedsToolTip(false)
{}
diff --git a/indra/llui/lluistring.h b/indra/llui/lluistring.h
index 7ec0fd603a..32cfc0d9cd 100644
--- a/indra/llui/lluistring.h
+++ b/indra/llui/lluistring.h
@@ -64,7 +64,7 @@ class LLUIString
public:
// These methods all perform appropriate argument substitution
// and modify mOrig where appropriate
- LLUIString() {}
+ LLUIString() : mNeedsResult(false), mNeedsWResult(false) {}
LLUIString(const std::string& instring, const LLStringUtil::format_map_t& args);
LLUIString(const std::string& instring) { assign(instring); }
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index d86e158e50..d9155377c1 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -157,13 +157,11 @@ set(viewer_SOURCE_FILES
llfloaterbuycurrency.cpp
llfloaterbuyland.cpp
llfloatercamera.cpp
- llfloaterchatterbox.cpp
llfloatercolorpicker.cpp
llfloatercustomize.cpp
llfloaterdaycycle.cpp
llfloaterenvsettings.cpp
llfloaterfonttest.cpp
- llfloaterfriends.cpp
llfloatergesture.cpp
llfloatergodtools.cpp
llfloatergroupinvite.cpp
@@ -242,7 +240,6 @@ set(viewer_SOURCE_FILES
llimfloater.cpp
llimfloatercontainer.cpp
llimhandler.cpp
- llimpanel.cpp
llimview.cpp
llinspect.cpp
llinspectavatar.cpp
@@ -274,7 +271,6 @@ set(viewer_SOURCE_FILES
llmaniptranslate.cpp
llmediactrl.cpp
llmediadataclient.cpp
- llmediaremotectrl.cpp
llmemoryview.cpp
llmenucommands.cpp
llmetricperformancetester.cpp
@@ -298,7 +294,6 @@ set(viewer_SOURCE_FILES
llnotificationscripthandler.cpp
llnotificationtiphandler.cpp
lloutputmonitorctrl.cpp
- lloverlaybar.cpp
llpanelavatar.cpp
llpanelavatartag.cpp
llpanelblockedlist.cpp
@@ -344,7 +339,6 @@ set(viewer_SOURCE_FILES
llpanelprimmediacontrols.cpp
llpanelprofile.cpp
llpanelprofileview.cpp
- llpanelshower.cpp
llpanelteleporthistory.cpp
llpanelvolume.cpp
llpanelvolumepulldown.cpp
@@ -422,7 +416,6 @@ set(viewer_SOURCE_FILES
lltoastnotifypanel.cpp
lltoastpanel.cpp
lltool.cpp
- lltoolbar.cpp
lltoolbrush.cpp
lltoolcomp.cpp
lltooldraganddrop.cpp
@@ -517,7 +510,6 @@ set(viewer_SOURCE_FILES
llvoicechannel.cpp
llvoiceclient.cpp
llvoicedw.cpp
- llvoiceremotectrl.cpp
llvoicevisualizer.cpp
llvoicevivox.cpp
llvoinventorylistener.cpp
@@ -668,13 +660,11 @@ set(viewer_HEADER_FILES
llfloaterbuycurrency.h
llfloaterbuyland.h
llfloatercamera.h
- llfloaterchatterbox.h
llfloatercolorpicker.h
llfloatercustomize.h
llfloaterdaycycle.h
llfloaterenvsettings.h
llfloaterfonttest.h
- llfloaterfriends.h
llfloatergesture.h
llfloatergodtools.h
llfloatergroupinvite.h
@@ -752,7 +742,6 @@ set(viewer_HEADER_FILES
llhudview.h
llimfloater.h
llimfloatercontainer.h
- llimpanel.h
llimview.h
llinspect.h
llinspectavatar.h
@@ -785,7 +774,6 @@ set(viewer_HEADER_FILES
llmaniptranslate.h
llmediactrl.h
llmediadataclient.h
- llmediaremotectrl.h
llmemoryview.h
llmenucommands.h
llmetricperformancetester.h
@@ -804,7 +792,6 @@ set(viewer_HEADER_FILES
llnotificationhandler.h
llnotificationmanager.h
lloutputmonitorctrl.h
- lloverlaybar.h
llpanelavatar.h
llpanelavatartag.h
llpanelblockedlist.h
@@ -850,7 +837,6 @@ set(viewer_HEADER_FILES
llpanelprimmediacontrols.h
llpanelprofile.h
llpanelprofileview.h
- llpanelshower.h
llpanelteleporthistory.h
llpanelvolume.h
llpanelvolumepulldown.h
@@ -931,7 +917,6 @@ set(viewer_HEADER_FILES
lltoastnotifypanel.h
lltoastpanel.h
lltool.h
- lltoolbar.h
lltoolbrush.h
lltoolcomp.h
lltooldraganddrop.h
@@ -1024,7 +1009,6 @@ set(viewer_HEADER_FILES
llvoicechannel.h
llvoiceclient.h
llvoicedw.h
- llvoiceremotectrl.h
llvoicevisualizer.h
llvoicevivox.h
llvoinventorylistener.h
@@ -1073,11 +1057,13 @@ if (DARWIN)
find_library(APPKIT_LIBRARY AppKit)
find_library(COCOA_LIBRARY Cocoa)
find_library(IOKIT_LIBRARY IOKit)
+ find_library(COREAUDIO_LIBRARY CoreAudio)
set(viewer_LIBRARIES
${COCOA_LIBRARY}
${AGL_LIBRARY}
${IOKIT_LIBRARY}
+ ${COREAUDIO_LIBRARY}
)
# Add resource files to the project.
@@ -1587,7 +1573,10 @@ if (WINDOWS)
DEPENDS ${VIEWER_BINARY_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
)
- add_custom_target(package ALL DEPENDS ${CMAKE_CFG_INTDIR}/touched.bat)
+ add_custom_target(package ALL DEPENDS
+ ${CMAKE_CFG_INTDIR}/touched.bat
+ windows-setup-build-all
+ )
# temporarily disable packaging of event_host until hg subrepos get
# sorted out on the parabuild cluster...
#${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/event_host.tar.bz2)
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index f4a0bdb077..d0eb00b4aa 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -298,17 +298,6 @@
<key>Value</key>
<integer>1</integer>
</map>
- <key>AudioStreamingVideo</key>
- <map>
- <key>Comment</key>
- <string>Enable streaming video</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>Boolean</string>
- <key>Value</key>
- <integer>1</integer>
- </map>
<key>AuditTexture</key>
<map>
<key>Comment</key>
@@ -2410,6 +2399,17 @@
<key>Value</key>
<integer>0</integer>
</map>
+ <key>DisableMouseWarp</key>
+ <map>
+ <key>Comment</key>
+ <string>Disable warping of the mouse to the center of the screen during alt-zoom and mouse look. Useful with certain input devices, mouse sharing programs like Synergy, or running under Parallels.</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>0</integer>
+ </map>
<key>DisableRendering</key>
<map>
<key>Comment</key>
@@ -9960,6 +9960,50 @@
<key>Value</key>
<integer>15</integer>
</map>
+ <key>UIButtonImageLeftPadding</key>
+ <map>
+ <key>Comment</key>
+ <string>Button Overlay Image Left Padding</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>S32</string>
+ <key>Value</key>
+ <integer>4</integer>
+ </map>
+ <key>UIButtonImageRightPadding</key>
+ <map>
+ <key>Comment</key>
+ <string>Button Overlay Image Right Padding</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>S32</string>
+ <key>Value</key>
+ <integer>4</integer>
+ </map>
+ <key>UIButtonImageTopPadding</key>
+ <map>
+ <key>Comment</key>
+ <string>Button Overlay Image Top Padding</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>S32</string>
+ <key>Value</key>
+ <integer>2</integer>
+ </map>
+ <key>UIButtonImageBottomPadding</key>
+ <map>
+ <key>Comment</key>
+ <string>Button Overlay Image Bottom Padding</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>S32</string>
+ <key>Value</key>
+ <integer>2</integer>
+ </map>
<key>UploadBakedTexOld</key>
<map>
<key>Comment</key>
diff --git a/indra/newview/gpu_table.txt b/indra/newview/gpu_table.txt
index cc8f6780e3..887dab66d1 100644
--- a/indra/newview/gpu_table.txt
+++ b/indra/newview/gpu_table.txt
@@ -192,9 +192,9 @@ NVIDIA GeForce 7100 .*NVIDIA.*GeForce 71.* 0 1
NVIDIA GeForce 7200 .*NVIDIA.*GeForce 72.* 1 1
NVIDIA GeForce 7300 .*NVIDIA.*GeForce 73.* 1 1
NVIDIA GeForce 7500 .*NVIDIA.*GeForce 75.* 1 1
-NVIDIA GeForce 7600 .*NVIDIA.*GeForce 76.* 2 1
-NVIDIA GeForce 7800 .*NVIDIA.*GeForce.*78.* 2 1
-NVIDIA GeForce 7900 .*NVIDIA.*GeForce.*79.* 2 1
+NVIDIA GeForce 7600 .*NVIDIA.*GeForce 76.* 3 1
+NVIDIA GeForce 7800 .*NVIDIA.*GeForce.*78.* 3 1
+NVIDIA GeForce 7900 .*NVIDIA.*GeForce.*79.* 3 1
NVIDIA GeForce 8100 .*NVIDIA.*GeForce 81.* 1 1
NVIDIA GeForce 8200 .*NVIDIA.*GeForce 82.* 1 1
NVIDIA GeForce 8300 .*NVIDIA.*GeForce 83.* 1 1
@@ -207,8 +207,8 @@ NVIDIA GeForce 8800 .*NVIDIA.*GeForce 88.* 3 1
NVIDIA GeForce 9300M .*NVIDIA.*GeForce 9300M.* 1 1
NVIDIA GeForce 9400M .*NVIDIA.*GeForce 9400M.* 1 1
NVIDIA GeForce 9500M .*NVIDIA.*GeForce 9500M.* 2 1
-NVIDIA GeForce 9600M .*NVIDIA.*GeForce 9600M.* 2 1
-NVIDIA GeForce 9700M .*NVIDIA.*GeForce 9700M.* 2 1
+NVIDIA GeForce 9600M .*NVIDIA.*GeForce 9600M.* 3 1
+NVIDIA GeForce 9700M .*NVIDIA.*GeForce 9700M.* 3 1
NVIDIA GeForce 9300 .*NVIDIA.*GeForce 93.* 1 1
NVIDIA GeForce 9400 .*GeForce 94.* 1 1
NVIDIA GeForce 9500 .*NVIDIA.*GeForce 95.* 2 1
diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp
index c21cdf9508..b0ff3a5626 100644
--- a/indra/newview/llagentwearables.cpp
+++ b/indra/newview/llagentwearables.cpp
@@ -1130,8 +1130,9 @@ void LLAgentWearables::addLocalTextureObject(const EWearableType wearable_type,
if (!wearable)
{
llerrs << "Tried to add local texture object to invalid wearable with type " << wearable_type << " and index " << wearable_index << llendl;
+ return;
}
- LLLocalTextureObject* lto = new LLLocalTextureObject();
+ LLLocalTextureObject lto;
wearable->setLocalTextureObject(texture_type, lto);
}
@@ -2527,6 +2528,7 @@ void LLInitialWearablesFetch::processWearablesMessage()
{
llinfos << "Invalid wearable, type " << wearable_data->mType << " itemID "
<< wearable_data->mItemID << " assetID " << wearable_data->mAssetID << llendl;
+ delete wearable_data;
}
}
diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp
index 03180b6a9d..8f4ce4498e 100644
--- a/indra/newview/llappearancemgr.cpp
+++ b/indra/newview/llappearancemgr.cpp
@@ -35,6 +35,7 @@
#include "llagent.h"
#include "llagentwearables.h"
#include "llappearancemgr.h"
+#include "llcommandhandler.h"
#include "llfloatercustomize.h"
#include "llgesturemgr.h"
#include "llinventorybridge.h"
@@ -47,6 +48,23 @@
#include "llviewerregion.h"
#include "llwearablelist.h"
+// support for secondlife:///app/appearance SLapps
+class LLAppearanceHandler : public LLCommandHandler
+{
+public:
+ // requests will be throttled from a non-trusted browser
+ LLAppearanceHandler() : LLCommandHandler("appearance", UNTRUSTED_THROTTLE) {}
+
+ bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web)
+ {
+ // support secondlife:///app/appearance/show, but for now we just
+ // make all secondlife:///app/appearance SLapps behave this way
+ LLSideTray::getInstance()->showPanel("sidepanel_appearance", LLSD());
+ return true;
+ }
+};
+LLAppearanceHandler gAppearanceHandler;
+
class LLWearInventoryCategoryCallback : public LLInventoryCallback
{
public:
@@ -274,11 +292,11 @@ private:
struct LLFoundData
{
- LLFoundData() {}
+ LLFoundData() : mAssetType(LLAssetType::AT_NONE), mWearable(NULL) {}
LLFoundData(const LLUUID& item_id,
- const LLUUID& asset_id,
- const std::string& name,
- LLAssetType::EType asset_type) :
+ const LLUUID& asset_id,
+ const std::string& name,
+ LLAssetType::EType asset_type) :
mItemID(item_id),
mAssetID(asset_id),
mName(name),
diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h
index dd50b482cf..38d1e01d08 100644
--- a/indra/newview/llappearancemgr.h
+++ b/indra/newview/llappearancemgr.h
@@ -35,11 +35,11 @@
#include "llsingleton.h"
#include "llinventorymodel.h"
-#include "llviewerinventory.h"
#include "llcallbacklist.h"
class LLWearable;
class LLWearableHoldingPattern;
+class LLInventoryCallback;
class LLAppearanceManager: public LLSingleton<LLAppearanceManager>
{
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index d38278864b..4da49862c8 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -163,7 +163,6 @@
#include "llvotree.h"
#include "llvoavatar.h"
#include "llfolderview.h"
-#include "lltoolbar.h"
#include "llagentpilot.h"
#include "llvovolume.h"
#include "llflexibleobject.h"
@@ -417,7 +416,6 @@ static void settings_to_globals()
LLVOAvatar::sVisibleInFirstPerson = gSavedSettings.getBOOL("FirstPersonAvatarVisible");
// clamp auto-open time to some minimum usable value
LLFolderView::sAutoOpenTime = llmax(0.25f, gSavedSettings.getF32("FolderAutoOpenDelay"));
- LLToolBar::sInventoryAutoOpenTime = gSavedSettings.getF32("InventoryAutoOpenDelay");
LLSelectMgr::sRectSelectInclusive = gSavedSettings.getBOOL("RectangleSelectInclusive");
LLSelectMgr::sRenderHiddenSelections = gSavedSettings.getBOOL("RenderHiddenSelections");
LLSelectMgr::sRenderLightRadius = gSavedSettings.getBOOL("RenderLightRadius");
@@ -2639,7 +2637,7 @@ void LLAppViewer::handleViewerCrash()
gMessageSystem->stopLogging();
}
- //LLWorld::getInstance()->getInfo(gDebugInfo);
+ if (LLWorld::instanceExists()) LLWorld::getInstance()->getInfo(gDebugInfo);
// Close the debug file
//pApp->writeDebugInfo();
@@ -4359,3 +4357,15 @@ void LLAppViewer::launchUpdater()
// LLAppViewer::instance()->forceQuit();
}
+
+//virtual
+void LLAppViewer::setMasterSystemAudioMute(bool mute)
+{
+ gSavedSettings.setBOOL("MuteAudio", mute);
+}
+
+//virtual
+bool LLAppViewer::getMasterSystemAudioMute()
+{
+ return gSavedSettings.getBOOL("MuteAudio");
+}
diff --git a/indra/newview/llappviewer.h b/indra/newview/llappviewer.h
index 870d47aa79..899004a533 100644
--- a/indra/newview/llappviewer.h
+++ b/indra/newview/llappviewer.h
@@ -168,6 +168,10 @@ public:
void purgeCache(); // Clear the local cache.
+ // mute/unmute the system's master audio
+ virtual void setMasterSystemAudioMute(bool mute);
+ virtual bool getMasterSystemAudioMute();
+
protected:
virtual bool initWindow(); // Initialize the viewer's window.
virtual bool initLogging(); // Initialize log files, logging system, return false on failure.
diff --git a/indra/newview/llappviewermacosx.cpp b/indra/newview/llappviewermacosx.cpp
index d8c4a7d9d9..e195f6c856 100644
--- a/indra/newview/llappviewermacosx.cpp
+++ b/indra/newview/llappviewermacosx.cpp
@@ -49,6 +49,7 @@
#include <Carbon/Carbon.h>
#include "lldir.h"
#include <signal.h>
+#include <CoreAudio/CoreAudio.h> // for systemwide mute
class LLMediaCtrl; // for LLURLDispatcher
namespace
@@ -443,6 +444,59 @@ std::string LLAppViewerMacOSX::generateSerialNumber()
return serial_md5;
}
+static AudioDeviceID get_default_audio_output_device(void)
+{
+ AudioDeviceID device = 0;
+ UInt32 size;
+ OSStatus err;
+
+ size = sizeof(device);
+ err = AudioHardwareGetProperty(kAudioHardwarePropertyDefaultOutputDevice, &size, &device);
+ if(err != noErr)
+ {
+ LL_DEBUGS("SystemMute") << "Couldn't get default audio output device (0x" << std::hex << err << ")" << LL_ENDL;
+ }
+
+ return device;
+}
+
+//virtual
+void LLAppViewerMacOSX::setMasterSystemAudioMute(bool new_mute)
+{
+ AudioDeviceID device = get_default_audio_output_device();
+
+ if(device != 0)
+ {
+ UInt32 mute = new_mute;
+ OSStatus err = AudioDeviceSetProperty(device, NULL, 0, false, kAudioDevicePropertyMute, sizeof(mute), &mute);
+ if(err != noErr)
+ {
+ LL_INFOS("SystemMute") << "Couldn't set audio mute property (0x" << std::hex << err << ")" << LL_ENDL;
+ }
+ }
+}
+
+//virtual
+bool LLAppViewerMacOSX::getMasterSystemAudioMute()
+{
+ // Assume the system isn't muted
+ UInt32 mute = 0;
+
+ AudioDeviceID device = get_default_audio_output_device();
+
+ if(device != 0)
+ {
+ UInt32 size = sizeof(mute);
+ OSStatus err = AudioDeviceGetProperty(device, 0, false, kAudioDevicePropertyMute, &size, &mute);
+ if(err != noErr)
+ {
+ LL_DEBUGS("SystemMute") << "Couldn't get audio mute property (0x" << std::hex << err << ")" << LL_ENDL;
+ }
+ }
+
+ return (mute != 0);
+}
+
OSErr AEGURLHandler(const AppleEvent *messagein, AppleEvent *reply, long refIn)
{
OSErr result = noErr;
diff --git a/indra/newview/llappviewermacosx.h b/indra/newview/llappviewermacosx.h
index bc841fc3a7..cbf7e6c209 100644
--- a/indra/newview/llappviewermacosx.h
+++ b/indra/newview/llappviewermacosx.h
@@ -48,6 +48,9 @@ public:
//
virtual bool init(); // Override to do application initialization
+ // mute/unmute the system's master audio
+ virtual void setMasterSystemAudioMute(bool mute);
+ virtual bool getMasterSystemAudioMute();
protected:
virtual bool restoreErrorTrap();
diff --git a/indra/newview/llavataractions.cpp b/indra/newview/llavataractions.cpp
index ae081882f8..39d1efa49a 100644
--- a/indra/newview/llavataractions.cpp
+++ b/indra/newview/llavataractions.cpp
@@ -250,17 +250,20 @@ void LLAvatarActions::startAdhocCall(const std::vector<LLUUID>& ids)
make_ui_sound("UISndStartIM");
}
+/* AD *TODO: Is this function needed any more?
+ I fixed it a bit(added check for canCall), but it appears that it is not used
+ anywhere. Maybe it should be removed?
// static
bool LLAvatarActions::isCalling(const LLUUID &id)
{
- if (id.isNull())
+ if (id.isNull() || !canCall())
{
return false;
}
LLUUID session_id = gIMMgr->computeSessionID(IM_NOTHING_SPECIAL, id);
return (LLIMModel::getInstance()->findIMSession(session_id) != NULL);
-}
+}*/
//static
bool LLAvatarActions::canCall()
diff --git a/indra/newview/llavataractions.h b/indra/newview/llavataractions.h
index ebfd40b796..c751661acf 100644
--- a/indra/newview/llavataractions.h
+++ b/indra/newview/llavataractions.h
@@ -126,7 +126,10 @@ public:
/**
* Return true if the avatar is in a P2P voice call with a given user
*/
- static bool isCalling(const LLUUID &id);
+ /* AD *TODO: Is this function needed any more?
+ I fixed it a bit(added check for canCall), but it appears that it is not used
+ anywhere. Maybe it should be removed?
+ static bool isCalling(const LLUUID &id);*/
/**
* @return true if call to the resident can be made
diff --git a/indra/newview/llcallfloater.cpp b/indra/newview/llcallfloater.cpp
index 1640081ee6..7ac9153b21 100644
--- a/indra/newview/llcallfloater.cpp
+++ b/indra/newview/llcallfloater.cpp
@@ -163,6 +163,8 @@ BOOL LLCallFloater::postBuild()
//chrome="true" hides floater caption
if (mDragHandle)
mDragHandle->setTitleVisible(TRUE);
+
+ updateSession();
return TRUE;
}
@@ -245,8 +247,7 @@ void LLCallFloater::updateSession()
}
}
- const LLUUID& session_id = voice_channel->getSessionID();
- LL_DEBUGS("Voice") << "Set speaker manager for session: " << session_id << LL_ENDL;
+ const LLUUID& session_id = voice_channel ? voice_channel->getSessionID() : LLUUID::null;
LLIMModel::LLIMSession* im_session = LLIMModel::getInstance()->findIMSession(session_id);
if (im_session)
@@ -566,33 +567,46 @@ void LLCallFloater::updateParticipantsVoiceState()
if (!found)
{
- // If an avatarID is not found in a speakers list from VoiceClient and
- // a panel with this ID has a JOINED status this means that this person
- // HAS LEFT the call.
- if ((getState(participant_id) == STATE_JOINED))
- {
- setState(item, STATE_LEFT);
+ updateNotInVoiceParticipantState(item);
+ }
+ }
+}
- LLPointer<LLSpeaker> speaker = mSpeakerManager->findSpeaker(item->getAvatarId());
- if (speaker.isNull())
- {
- continue;
- }
+void LLCallFloater::updateNotInVoiceParticipantState(LLAvatarListItem* item)
+{
+ LLUUID participant_id = item->getAvatarId();
+ ESpeakerState current_state = getState(participant_id);
- speaker->mHasLeftCurrentCall = TRUE;
- }
- // If an avatarID is not found in a speakers list from VoiceClient and
- // a panel with this ID has a LEFT status this means that this person
- // HAS ENTERED session but it is not in voice chat yet. So, set INVITED status
- else if ((getState(participant_id) != STATE_LEFT))
- {
- setState(item, STATE_INVITED);
- }
- else
+ switch (current_state)
+ {
+ case STATE_JOINED:
+ // If an avatarID is not found in a speakers list from VoiceClient and
+ // a panel with this ID has a JOINED status this means that this person
+ // HAS LEFT the call.
+ setState(item, STATE_LEFT);
+
+ {
+ LLPointer<LLSpeaker> speaker = mSpeakerManager->findSpeaker(participant_id);
+ if (speaker.notNull())
{
- llwarns << "Unsupported (" << getState(participant_id) << ") state: " << item->getAvatarName() << LL_ENDL;
+ speaker->mHasLeftCurrentCall = TRUE;
}
}
+ break;
+ case STATE_INVITED:
+ case STATE_LEFT:
+ // nothing to do. These states should not be changed.
+ break;
+ case STATE_UNKNOWN:
+ // If an avatarID is not found in a speakers list from VoiceClient and
+ // a panel with this ID has an UNKNOWN status this means that this person
+ // HAS ENTERED session but it is not in voice chat yet. So, set INVITED status
+ setState(item, STATE_INVITED);
+ break;
+ default:
+ // for possible new future states.
+ llwarns << "Unsupported (" << getState(participant_id) << ") state for: " << item->getAvatarName() << llendl;
+ break;
}
}
diff --git a/indra/newview/llcallfloater.h b/indra/newview/llcallfloater.h
index eded3a426b..766191379b 100644
--- a/indra/newview/llcallfloater.h
+++ b/indra/newview/llcallfloater.h
@@ -145,6 +145,10 @@ private:
*/
void updateParticipantsVoiceState();
+ /**
+ * Updates voice state of participant not in current voice channel depend on its current state.
+ */
+ void updateNotInVoiceParticipantState(LLAvatarListItem* item);
void setState(LLAvatarListItem* item, ESpeakerState state);
void setState(const LLUUID& speaker_id, ESpeakerState state)
{
diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp
index a46cd84b60..5ec18dab29 100644
--- a/indra/newview/llchathistory.cpp
+++ b/indra/newview/llchathistory.cpp
@@ -34,7 +34,9 @@
#include "llinstantmessage.h"
+#include "llimview.h"
#include "llchathistory.h"
+#include "llcommandhandler.h"
#include "llpanel.h"
#include "lluictrlfactory.h"
#include "llscrollcontainer.h"
@@ -46,8 +48,11 @@
#include "llfloaterreg.h"
#include "llmutelist.h"
#include "llstylemap.h"
+#include "llslurl.h"
#include "lllayoutstack.h"
#include "llagent.h"
+#include "llviewerregion.h"
+#include "llworld.h"
#include "llsidetray.h"//for blocked objects panel
@@ -55,6 +60,38 @@ static LLDefaultChildRegistry::Register<LLChatHistory> r("chat_history");
const static std::string NEW_LINE(rawstr_to_utf8("\n"));
+// support for secondlife:///app/objectim/{UUID}/ SLapps
+class LLObjectIMHandler : public LLCommandHandler
+{
+public:
+ // requests will be throttled from a non-trusted browser
+ LLObjectIMHandler() : LLCommandHandler("objectim", UNTRUSTED_THROTTLE) {}
+
+ bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web)
+ {
+ if (params.size() < 1)
+ {
+ return false;
+ }
+
+ LLUUID object_id;
+ if (!object_id.set(params[0], FALSE))
+ {
+ return false;
+ }
+
+ LLSD payload;
+ payload["object_id"] = object_id;
+ payload["owner_id"] = query_map["owner"];
+ payload["name"] = query_map["name"];
+ payload["slurl"] = query_map["slurl"];
+ payload["group_owned"] = query_map["groupowned"];
+ LLFloaterReg::showInstance("inspect_remote_object", payload);
+ return true;
+ }
+};
+LLObjectIMHandler gObjectIMHandler;
+
class LLChatHistoryHeader: public LLPanel
{
public:
@@ -183,6 +220,7 @@ public:
void setup(const LLChat& chat,const LLStyle::Params& style_params)
{
mAvatarID = chat.mFromID;
+ mSessionID = chat.mSessionID;
mSourceType = chat.mSourceType;
gCacheName->get(mAvatarID, FALSE, boost::bind(&LLChatHistoryHeader::nameUpdatedCallback, this, _1, _2, _3, _4));
if(chat.mFromID.isNull())
@@ -305,6 +343,11 @@ protected:
menu->setItemEnabled("Remove Friend", false);
}
+ if (mSessionID == LLIMMgr::computeSessionID(IM_NOTHING_SPECIAL, mAvatarID))
+ {
+ menu->setItemVisible("Send IM", false);
+ }
+
menu->buildDrawLabels();
menu->updateParent(LLMenuGL::sMenuContainer);
LLMenuGL::showPopup(this, menu, x, y);
@@ -344,6 +387,7 @@ protected:
std::string mFirstName;
std::string mLastName;
std::string mFrom;
+ LLUUID mSessionID;
S32 mMinUserNameWidth;
};
@@ -457,8 +501,9 @@ void LLChatHistory::clear()
mLastFromID = LLUUID::null;
}
-void LLChatHistory::appendMessage(const LLChat& chat, const bool use_plain_text_chat_history, const LLStyle::Params& input_append_params)
+void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LLStyle::Params& input_append_params)
{
+ bool use_plain_text_chat_history = args["use_plain_text_chat_history"].asBoolean();
if (!mEditor->scrolledToEnd() && chat.mFromID != gAgent.getID() && !chat.mFromName.empty())
{
mUnreadChatSources.insert(chat.mFromName);
@@ -524,7 +569,27 @@ void LLChatHistory::appendMessage(const LLChat& chat, const bool use_plain_text_
if (utf8str_trim(chat.mFromName).size() != 0)
{
// Don't hotlink any messages from the system (e.g. "Second Life:"), so just add those in plain text.
- if ( chat.mFromName != SYSTEM_FROM && chat.mFromID.notNull() )
+ if ( chat.mSourceType == CHAT_SOURCE_OBJECT )
+ {
+ // for object IMs, create a secondlife:///app/objectim SLapp
+ std::string url = LLSLURL("objectim", chat.mFromID, "").getSLURLString();
+ url += "?name=" + chat.mFromName;
+ url += "&owner=" + args["owner_id"].asString();
+
+ LLViewerRegion *region = LLWorld::getInstance()->getRegionFromPosAgent(chat.mPosAgent);
+ if (region)
+ {
+ LLSLURL region_slurl(region->getName(), chat.mPosAgent);
+ url += "&slurl=" + region_slurl.getLocationString();
+ }
+
+ // set the link for the object name to be the objectim SLapp
+ LLStyle::Params link_params(style_params);
+ link_params.color.control = "HTMLLinkColor";
+ link_params.link_href = url;
+ mEditor->appendText(chat.mFromName + delimiter, false, link_params);
+ }
+ else if ( chat.mFromName != SYSTEM_FROM && chat.mFromID.notNull() )
{
LLStyle::Params link_params(style_params);
link_params.fillFrom(LLStyleMap::instance().lookupAgent(chat.mFromID));
@@ -550,8 +615,8 @@ void LLChatHistory::appendMessage(const LLChat& chat, const bool use_plain_text_
if (mLastFromName == chat.mFromName
&& mLastFromID == chat.mFromID
&& mLastMessageTime.notNull()
- && (new_message_time.secondsSinceEpoch() - mLastMessageTime.secondsSinceEpoch()) < 60.0
- )
+ && (new_message_time.secondsSinceEpoch() - mLastMessageTime.secondsSinceEpoch()) < 60.0
+ && mLastMessageTimeStr.size() == chat.mTimeStr.size()) //*HACK to distinguish between current and previous chat session's histories
{
view = getSeparator();
p.top_pad = mTopSeparatorPad;
@@ -585,6 +650,7 @@ void LLChatHistory::appendMessage(const LLChat& chat, const bool use_plain_text_
mLastFromName = chat.mFromName;
mLastFromID = chat.mFromID;
mLastMessageTime = new_message_time;
+ mLastMessageTimeStr = chat.mTimeStr;
}
std::string message = irc_me ? chat.mText.substr(3) : chat.mText;
diff --git a/indra/newview/llchathistory.h b/indra/newview/llchathistory.h
index f2d403f639..32600bb71d 100644
--- a/indra/newview/llchathistory.h
+++ b/indra/newview/llchathistory.h
@@ -113,11 +113,14 @@ class LLChatHistory : public LLUICtrl
* Appends a widget message.
* If last user appended message, concurs with current user,
* separator is added before the message, otherwise header is added.
+ * The args LLSD contains:
+ * - use_plain_text_chat_history (bool) - whether to add message as plain text.
+ * - owner_id (LLUUID) - the owner ID for object chat
* @param chat - base chat message.
- * @param use_plain_text_chat_history - whether to add message as plain text.
+ * @param args - additional arguments
* @param input_append_params - font style.
*/
- void appendMessage(const LLChat& chat, const bool use_plain_text_chat_history = false, const LLStyle::Params& input_append_params = LLStyle::Params());
+ void appendMessage(const LLChat& chat, const LLSD &args = LLSD(), const LLStyle::Params& input_append_params = LLStyle::Params());
/*virtual*/ void clear();
/*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);
@@ -125,6 +128,8 @@ class LLChatHistory : public LLUICtrl
std::string mLastFromName;
LLUUID mLastFromID;
LLDate mLastMessageTime;
+ std::string mLastMessageTimeStr;
+
std::string mMessageHeaderFilename;
std::string mMessageSeparatorFilename;
diff --git a/indra/newview/llchatitemscontainerctrl.h b/indra/newview/llchatitemscontainerctrl.h
index f4b8655054..4d730573d9 100644
--- a/indra/newview/llchatitemscontainerctrl.h
+++ b/indra/newview/llchatitemscontainerctrl.h
@@ -1,5 +1,5 @@
/**
- * @file llchatitemscontainer.h
+ * @file llchatitemscontainerctrl.h
* @brief chat history scrolling panel implementation
*
* $LicenseInfo:firstyear=2004&license=viewergpl$
@@ -30,12 +30,12 @@
* $/LicenseInfo$
*/
-#ifndef LL_LLCHATITEMSCONTAINER_H_
-#define LL_LLCHATITEMSCONTAINER_H_
+#ifndef LL_LLCHATITEMSCONTAINERCTRL_H_
+#define LL_LLCHATITEMSCONTAINERCTRL_H_
+#include "llchat.h"
#include "llpanel.h"
#include "llscrollbar.h"
-#include "string"
#include "llviewerchat.h"
#include "lltoastpanel.h"
@@ -49,10 +49,12 @@ typedef enum e_show_item_header
class LLNearbyChatToastPanel: public LLToastPanelBase
{
protected:
- LLNearbyChatToastPanel():mIsDirty(false){};
+ LLNearbyChatToastPanel()
+ :
+ mIsDirty(false),
+ mSourceType(CHAT_SOURCE_OBJECT)
+ {};
public:
-
-
~LLNearbyChatToastPanel(){}
static LLNearbyChatToastPanel* createInstance();
diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp
index f1de4e2982..f646bcccb5 100644
--- a/indra/newview/llchiclet.cpp
+++ b/indra/newview/llchiclet.cpp
@@ -459,6 +459,14 @@ LLIMChiclet::LLIMChiclet(const LLIMChiclet::Params& p)
enableCounterControl(p.enable_counter);
}
+/* virtual*/
+BOOL LLIMChiclet::postBuild()
+{
+ mChicletButton = getChild<LLButton>("chiclet_button");
+ mChicletButton->setCommitCallback(boost::bind(&LLIMChiclet::onMouseDown, this));
+ mChicletButton->setDoubleClickCallback(boost::bind(&LLIMChiclet::onMouseDown, this));
+ return TRUE;
+}
void LLIMChiclet::setShowSpeaker(bool show)
{
bool needs_resize = getShowSpeaker() != show;
@@ -583,12 +591,6 @@ void LLIMChiclet::setToggleState(bool toggle)
mChicletButton->setToggleState(toggle);
}
-BOOL LLIMChiclet::handleMouseDown(S32 x, S32 y, MASK mask)
-{
- onMouseDown();
- return LLChiclet::handleMouseDown(x, y, mask);
-}
-
void LLIMChiclet::draw()
{
LLUICtrl::draw();
@@ -1905,12 +1907,6 @@ void LLScriptChiclet::onMouseDown()
LLScriptFloaterManager::getInstance()->toggleScriptFloater(getSessionId());
}
-BOOL LLScriptChiclet::handleMouseDown(S32 x, S32 y, MASK mask)
-{
- onMouseDown();
- return LLChiclet::handleMouseDown(x, y, mask);
-}
-
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
@@ -1975,10 +1971,4 @@ void LLInvOfferChiclet::onMouseDown()
LLScriptFloaterManager::instance().toggleScriptFloater(getSessionId());
}
-BOOL LLInvOfferChiclet::handleMouseDown(S32 x, S32 y, MASK mask)
-{
- onMouseDown();
- return LLChiclet::handleMouseDown(x, y, mask);
-}
-
// EOF
diff --git a/indra/newview/llchiclet.h b/indra/newview/llchiclet.h
index bb4846aa57..b006ae3420 100644
--- a/indra/newview/llchiclet.h
+++ b/indra/newview/llchiclet.h
@@ -328,6 +328,10 @@ public:
virtual ~LLIMChiclet() {};
/**
+ * It is used for default setting up of chicklet:click handler, etc.
+ */
+ BOOL postBuild();
+ /**
* Sets IM session name. This name will be displayed in chiclet tooltip.
*/
virtual void setIMSessionName(const std::string& name) { setToolTip(name); }
@@ -428,8 +432,6 @@ protected:
LLIMChiclet(const LLIMChiclet::Params& p);
- /*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask);
-
protected:
bool mShowSpeaker;
@@ -640,11 +642,6 @@ public:
*/
/*virtual*/ void onMouseDown();
- /**
- * Override default handler
- */
- /*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask);
-
protected:
LLScriptChiclet(const Params&);
@@ -684,12 +681,6 @@ public:
*/
/*virtual*/ void onMouseDown();
- /**
- * Override default handler
- */
- /*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask);
-
-
protected:
LLInvOfferChiclet(const Params&);
friend class LLUICtrlFactory;
diff --git a/indra/newview/llcompilequeue.cpp b/indra/newview/llcompilequeue.cpp
index 47f1b7c9f5..a96981a108 100644
--- a/indra/newview/llcompilequeue.cpp
+++ b/indra/newview/llcompilequeue.cpp
@@ -92,7 +92,8 @@ struct LLScriptQueueData
// Default constructor
LLFloaterScriptQueue::LLFloaterScriptQueue(const LLSD& key) :
LLFloater(key),
- mDone(FALSE)
+ mDone(false),
+ mMono(false)
{
//Called from floater reg: LLUICtrlFactory::getInstance()->buildFloater(this,"floater_script_queue.xml", FALSE);
}
@@ -216,7 +217,7 @@ BOOL LLFloaterScriptQueue::nextObject()
} while((mObjectIDs.count() > 0) && !successful_start);
if(isDone() && !mDone)
{
- mDone = TRUE;
+ mDone = true;
getChild<LLScrollListCtrl>("queue output")->setCommentText(getString("Done"));
childSetEnabled("close",TRUE);
}
@@ -446,19 +447,17 @@ void LLFloaterCompileQueue::scriptArrived(LLVFS *vfs, const LLUUID& asset_id,
if( LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE == status )
{
- //TODO* CHAT: how to show this?
- //LLSD args;
- //args["MESSAGE"] = LLTrans::getString("CompileQueueScriptNotFound);
- //LLNotificationsUtil::add("SystemMessage", args);
+ LLSD args;
+ args["MESSAGE"] = LLTrans::getString("CompileQueueScriptNotFound");
+ LLNotificationsUtil::add("SystemMessage", args);
buffer = LLTrans::getString("CompileQueueProblemDownloading") + (": ") + data->mScriptName;
}
else if (LL_ERR_INSUFFICIENT_PERMISSIONS == status)
{
- //TODO* CHAT: how to show this?
- //LLSD args;
- //args["MESSAGE"] = LLTrans::getString("CompileQueueScriptNotFound);
- //LLNotificationsUtil::add("SystemMessage", args);
+ LLSD args;
+ args["MESSAGE"] = LLTrans::getString("CompileQueueInsufficientPermDownload");
+ LLNotificationsUtil::add("SystemMessage", args);
buffer = LLTrans::getString("CompileQueueInsufficientPermFor") + (": ") + data->mScriptName;
}
diff --git a/indra/newview/llcompilequeue.h b/indra/newview/llcompilequeue.h
index 063d573239..2d061f5d8a 100644
--- a/indra/newview/llcompilequeue.h
+++ b/indra/newview/llcompilequeue.h
@@ -104,10 +104,10 @@ protected:
// Object Queue
LLDynamicArray<LLUUID> mObjectIDs;
LLUUID mCurrentObjectID;
- BOOL mDone;
+ bool mDone;
std::string mStartString;
- BOOL mMono;
+ bool mMono;
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/indra/newview/lldirpicker.cpp b/indra/newview/lldirpicker.cpp
index a720dc46b5..d1abbb0f51 100644
--- a/indra/newview/lldirpicker.cpp
+++ b/indra/newview/lldirpicker.cpp
@@ -61,7 +61,9 @@ LLDirPicker LLDirPicker::sInstance;
//
#if LL_WINDOWS
-LLDirPicker::LLDirPicker()
+LLDirPicker::LLDirPicker() :
+ mFileName(NULL),
+ mLocked(false)
{
}
@@ -125,7 +127,9 @@ std::string LLDirPicker::getDirName()
/////////////////////////////////////////////DARWIN
#elif LL_DARWIN
-LLDirPicker::LLDirPicker()
+LLDirPicker::LLDirPicker() :
+ mFileName(NULL),
+ mLocked(false)
{
reset();
@@ -262,13 +266,15 @@ std::string LLDirPicker::getDirName()
void LLDirPicker::reset()
{
- mLocked = FALSE;
+ mLocked = false;
mDir.clear();
}
#elif LL_LINUX || LL_SOLARIS
-LLDirPicker::LLDirPicker()
+LLDirPicker::LLDirPicker() :
+ mFileName(NULL),
+ mLocked(false)
{
mFilePicker = new LLFilePicker();
reset();
diff --git a/indra/newview/lldirpicker.h b/indra/newview/lldirpicker.h
index 26f76915ae..b48d2c66c4 100644
--- a/indra/newview/lldirpicker.h
+++ b/indra/newview/lldirpicker.h
@@ -97,7 +97,7 @@ private:
std::string* mFileName;
std::string mDir;
- BOOL mLocked;
+ bool mLocked;
static LLDirPicker sInstance;
diff --git a/indra/newview/lleventinfo.h b/indra/newview/lleventinfo.h
index 493c659983..4f33a7925a 100644
--- a/indra/newview/lleventinfo.h
+++ b/indra/newview/lleventinfo.h
@@ -43,7 +43,15 @@ class LLMessageSystem;
class LLEventInfo
{
public:
- LLEventInfo() {}
+ LLEventInfo() :
+ mID(0),
+ mDuration(0),
+ mUnixTime(0),
+ mHasCover(FALSE),
+ mCover(0),
+ mEventFlags(0),
+ mSelected(FALSE)
+ {}
void unpack(LLMessageSystem *msg);
diff --git a/indra/newview/lleventnotifier.cpp b/indra/newview/lleventnotifier.cpp
index edfb9dc864..f096ba604f 100644
--- a/indra/newview/lleventnotifier.cpp
+++ b/indra/newview/lleventnotifier.cpp
@@ -174,6 +174,7 @@ void LLEventNotifier::remove(const U32 event_id)
LLEventNotification::LLEventNotification() :
mEventID(0),
+ mEventDate(0),
mEventName("")
{
}
diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp
index eef774426a..965ac1cad0 100644
--- a/indra/newview/llface.cpp
+++ b/indra/newview/llface.cpp
@@ -157,6 +157,7 @@ void LLFace::init(LLDrawable* drawablep, LLViewerObject* objp)
mGeomIndex = 0;
mIndicesCount = 0;
mIndicesIndex = 0;
+ mIndexInTex = 0;
mTexture = NULL;
mTEOffset = -1;
diff --git a/indra/newview/llfavoritesbar.cpp b/indra/newview/llfavoritesbar.cpp
index 0e42ff09d8..57e6619470 100644
--- a/indra/newview/llfavoritesbar.cpp
+++ b/indra/newview/llfavoritesbar.cpp
@@ -685,7 +685,7 @@ void LLFavoritesBarCtrl::updateButtons()
{
// an child's order and mItems should be same
if (button->getLandmarkId() != item->getUUID() // sort order has been changed
- || button->getLabelSelected() != item->getDisplayName() // favorite's name has been changed
+ || button->getLabelSelected() != item->getName() // favorite's name has been changed
|| button->getRect().mRight < rightest_point) // favbar's width has been changed
{
break;
@@ -780,7 +780,7 @@ LLButton* LLFavoritesBarCtrl::createButton(const LLPointer<LLViewerInventoryItem
* Empty space (or ...) is displaying instead of last symbols, even though the width of the button is enough.
* Problem will gone, if we stretch out the button. For that reason I have to put additional 20 pixels.
*/
- int requred_width = mFont->getWidth(item->getDisplayName()) + 20;
+ int requred_width = mFont->getWidth(item->getName()) + 20;
int width = requred_width > def_button_width? def_button_width : requred_width;
LLFavoriteLandmarkButton* fav_btn = NULL;
diff --git a/indra/newview/llfilepicker.cpp b/indra/newview/llfilepicker.cpp
index 028e1cc098..2873057c19 100644
--- a/indra/newview/llfilepicker.cpp
+++ b/indra/newview/llfilepicker.cpp
@@ -68,7 +68,7 @@ LLFilePicker LLFilePicker::sInstance;
//
LLFilePicker::LLFilePicker()
: mCurrentFile(0),
- mLocked(FALSE)
+ mLocked(false)
{
reset();
@@ -92,6 +92,7 @@ LLFilePicker::LLFilePicker()
mOFN.lCustData = 0L;
mOFN.lpfnHook = NULL;
mOFN.lpTemplateName = NULL;
+ mFilesW[0] = '\0';
#endif
#if LL_DARWIN
@@ -120,7 +121,7 @@ const std::string LLFilePicker::getNextFile()
{
if (mCurrentFile >= getFileCount())
{
- mLocked = FALSE;
+ mLocked = false;
return std::string();
}
else
@@ -133,7 +134,7 @@ const std::string LLFilePicker::getCurFile()
{
if (mCurrentFile >= getFileCount())
{
- mLocked = FALSE;
+ mLocked = false;
return std::string();
}
else
@@ -144,7 +145,7 @@ const std::string LLFilePicker::getCurFile()
void LLFilePicker::reset()
{
- mLocked = FALSE;
+ mLocked = false;
mFiles.clear();
mCurrentFile = 0;
}
@@ -276,7 +277,7 @@ BOOL LLFilePicker::getMultipleOpenFiles(ELoadFilter filter)
}
else
{
- mLocked = TRUE;
+ mLocked = true;
WCHAR* tptrw = mFilesW;
std::string dirname;
while(1)
@@ -866,7 +867,7 @@ BOOL LLFilePicker::getMultipleOpenFiles(ELoadFilter filter)
if (getFileCount())
success = true;
if (getFileCount() > 1)
- mLocked = TRUE;
+ mLocked = true;
}
// Account for the fact that the app has been stalled.
diff --git a/indra/newview/llfilepicker.h b/indra/newview/llfilepicker.h
index 7ecbc3db60..4f254ff67e 100644
--- a/indra/newview/llfilepicker.h
+++ b/indra/newview/llfilepicker.h
@@ -176,8 +176,7 @@ private:
std::vector<std::string> mFiles;
S32 mCurrentFile;
- BOOL mLocked;
- BOOL mMultiFile;
+ bool mLocked;
static LLFilePicker sInstance;
diff --git a/indra/newview/llflexibleobject.cpp b/indra/newview/llflexibleobject.cpp
index fc8790c172..aea2de8e92 100644
--- a/indra/newview/llflexibleobject.cpp
+++ b/indra/newview/llflexibleobject.cpp
@@ -66,6 +66,7 @@ LLVolumeImplFlexible::LLVolumeImplFlexible(LLViewerObject* vo, LLFlexibleObjectD
mInitializedRes = -1;
mSimulateRes = 0;
mFrameNum = 0;
+ mCollisionSphereRadius = 0.f;
mRenderRes = 1;
if(mVO->mDrawable.notNull())
diff --git a/indra/newview/llfloaterabout.cpp b/indra/newview/llfloaterabout.cpp
index 56bc4a7933..4b6e17d548 100644
--- a/indra/newview/llfloaterabout.cpp
+++ b/indra/newview/llfloaterabout.cpp
@@ -187,6 +187,12 @@ BOOL LLFloaterAbout::postBuild()
support << '\n' << getString("AboutTraffic", args);
}
+ // don't make the sim hostname be a hyperlink
+ if (info.has("HOSTNAME"))
+ {
+ support_widget->addBlackListUrl(info["HOSTNAME"].asString());
+ }
+
support_widget->appendText(support.str(),
FALSE,
LLStyle::Params()
diff --git a/indra/newview/llfloateranimpreview.h b/indra/newview/llfloateranimpreview.h
index dd2c0b809a..3ee1f419ab 100644
--- a/indra/newview/llfloateranimpreview.h
+++ b/indra/newview/llfloateranimpreview.h
@@ -127,7 +127,6 @@ protected:
LLRectf mPreviewImageRect;
LLAssetID mMotionID;
LLTransactionID mTransactionID;
- BOOL mEnabled;
LLAnimPauseRequest mPauseRequest;
std::map<std::string, LLUUID> mIDList;
diff --git a/indra/newview/llfloaterbulkpermission.cpp b/indra/newview/llfloaterbulkpermission.cpp
index 5c3a54e34b..b2f700069f 100644
--- a/indra/newview/llfloaterbulkpermission.cpp
+++ b/indra/newview/llfloaterbulkpermission.cpp
@@ -43,6 +43,7 @@
#include "llviewerregion.h"
#include "lscript_rt_interface.h"
#include "llviewercontrol.h"
+#include "llviewerinventory.h"
#include "llviewerobject.h"
#include "llviewerregion.h"
#include "llresmgr.h"
diff --git a/indra/newview/llfloaterbulkpermission.h b/indra/newview/llfloaterbulkpermission.h
index 31f4f5c3e1..bffcff7059 100644
--- a/indra/newview/llfloaterbulkpermission.h
+++ b/indra/newview/llfloaterbulkpermission.h
@@ -44,8 +44,6 @@
#include "llfloater.h"
#include "llscrolllistctrl.h"
-#include "llviewerinventory.h"
-
class LLFloaterBulkPermission : public LLFloater, public LLVOInventoryListener
{
friend class LLFloaterReg;
diff --git a/indra/newview/llfloaterchatterbox.cpp b/indra/newview/llfloaterchatterbox.cpp
index da6d436e2e..a15cef7ea4 100644
--- a/indra/newview/llfloaterchatterbox.cpp
+++ b/indra/newview/llfloaterchatterbox.cpp
@@ -216,11 +216,11 @@ void LLFloaterChatterBox::onOpen(const LLSD& key)
}
else if (key.isDefined())
{
- LLFloaterIMPanel* impanel = gIMMgr->findFloaterBySession(key.asUUID());
+ /*LLFloaterIMPanel* impanel = gIMMgr->findFloaterBySession(key.asUUID());
if (impanel)
{
impanel->openFloater();
- }
+ }*/
}
}
diff --git a/indra/newview/llfloatergesture.cpp b/indra/newview/llfloatergesture.cpp
index de65c6f876..b684e1f985 100644
--- a/indra/newview/llfloatergesture.cpp
+++ b/indra/newview/llfloatergesture.cpp
@@ -367,7 +367,14 @@ void LLFloaterGesture::addGesture(const LLUUID& item_id , LLMultiGesture* gestur
element["columns"][3]["font"]["name"] = "SANSSERIF";
element["columns"][3]["font"]["style"] = font_style;
}
- list->addElement(element, ADD_BOTTOM);
+
+ LLScrollListItem* sl_item = list->addElement(element, ADD_BOTTOM);
+ if(sl_item)
+ {
+ LLFontGL::StyleFlags style = LLGestureManager::getInstance()->isGestureActive(item_id) ? LLFontGL::BOLD : LLFontGL::NORMAL;
+ // *TODO find out why ["font"]["style"] does not affect font style
+ ((LLScrollListText*)sl_item->getColumn(0))->setFontStyle(style);
+ }
}
void LLFloaterGesture::getSelectedIds(std::vector<LLUUID>& ids)
@@ -401,8 +408,7 @@ bool LLFloaterGesture::isActionEnabled(const LLSD& command)
}
return false;
}
- else if("copy_uuid" == command_name || "edit_gesture" == command_name
- || "inspect" == command_name)
+ else if("copy_uuid" == command_name || "edit_gesture" == command_name)
{
return mGestureList->getAllSelected().size() == 1;
}
diff --git a/indra/newview/llfloaterhardwaresettings.cpp b/indra/newview/llfloaterhardwaresettings.cpp
index 31b494b590..b2564eb2b6 100644
--- a/indra/newview/llfloaterhardwaresettings.cpp
+++ b/indra/newview/llfloaterhardwaresettings.cpp
@@ -50,7 +50,17 @@
#include "llsliderctrl.h"
LLFloaterHardwareSettings::LLFloaterHardwareSettings(const LLSD& key)
- : LLFloater(key)
+ : LLFloater(key),
+
+ // these should be set on imminent refresh() call,
+ // but init them anyway
+ mUseVBO(0),
+ mUseAniso(0),
+ mFSAASamples(0),
+ mGamma(0.0),
+ mVideoCardMem(0),
+ mFogRatio(0.0),
+ mProbeHardwareOnStartup(FALSE)
{
//LLUICtrlFactory::getInstance()->buildFloater(this, "floater_hardware_settings.xml");
}
diff --git a/indra/newview/llfloaterjoystick.cpp b/indra/newview/llfloaterjoystick.cpp
index 06fe2a84c8..78bc63ac8c 100644
--- a/indra/newview/llfloaterjoystick.cpp
+++ b/indra/newview/llfloaterjoystick.cpp
@@ -52,6 +52,7 @@ LLFloaterJoystick::LLFloaterJoystick(const LLSD& data)
{
//Called from floater reg: LLUICtrlFactory::getInstance()->buildFloater(this, "floater_joystick.xml");
+ initFromSettings();
}
void LLFloaterJoystick::draw()
@@ -123,10 +124,8 @@ void LLFloaterJoystick::apply()
{
}
-void LLFloaterJoystick::refresh()
+void LLFloaterJoystick::initFromSettings()
{
- LLFloater::refresh();
-
mJoystickEnabled = gSavedSettings.getBOOL("JoystickEnabled");
mJoystickAxis[0] = gSavedSettings.getS32("JoystickAxis0");
@@ -194,6 +193,12 @@ void LLFloaterJoystick::refresh()
mFlycamFeathering = gSavedSettings.getF32("FlycamFeathering");
}
+void LLFloaterJoystick::refresh()
+{
+ LLFloater::refresh();
+ initFromSettings();
+}
+
void LLFloaterJoystick::cancel()
{
gSavedSettings.setBOOL("JoystickEnabled", mJoystickEnabled);
diff --git a/indra/newview/llfloaterjoystick.h b/indra/newview/llfloaterjoystick.h
index f3559c28e9..7a2f497c69 100644
--- a/indra/newview/llfloaterjoystick.h
+++ b/indra/newview/llfloaterjoystick.h
@@ -55,6 +55,8 @@ private:
LLFloaterJoystick(const LLSD& data);
virtual ~LLFloaterJoystick();
+
+ void initFromSettings();
static void onCommitJoystickEnabled(LLUICtrl*, void*);
static void onClickRestoreSNDefaults(void*);
diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp
index e61cca046b..1d177d8dba 100644
--- a/indra/newview/llfloaterland.cpp
+++ b/indra/newview/llfloaterland.cpp
@@ -1028,7 +1028,30 @@ void LLPanelLandGeneral::onClickStopSellLand(void* data)
//---------------------------------------------------------------------------
LLPanelLandObjects::LLPanelLandObjects(LLParcelSelectionHandle& parcel)
: LLPanel(),
- mParcel(parcel)
+
+ mParcel(parcel),
+ mParcelObjectBonus(NULL),
+ mSWTotalObjects(NULL),
+ mObjectContribution(NULL),
+ mTotalObjects(NULL),
+ mOwnerObjects(NULL),
+ mBtnShowOwnerObjects(NULL),
+ mBtnReturnOwnerObjects(NULL),
+ mGroupObjects(NULL),
+ mBtnShowGroupObjects(NULL),
+ mBtnReturnGroupObjects(NULL),
+ mOtherObjects(NULL),
+ mBtnShowOtherObjects(NULL),
+ mBtnReturnOtherObjects(NULL),
+ mSelectedObjects(NULL),
+ mCleanOtherObjectsTime(NULL),
+ mOtherTime(0),
+ mBtnRefresh(NULL),
+ mBtnReturnOwnerList(NULL),
+ mOwnerList(NULL),
+ mFirstReply(TRUE),
+ mSelectedCount(0),
+ mSelectedIsGroup(FALSE)
{
}
diff --git a/indra/newview/llfloatermap.cpp b/indra/newview/llfloatermap.cpp
index d18f127f85..568f4b254e 100644
--- a/indra/newview/llfloatermap.cpp
+++ b/indra/newview/llfloatermap.cpp
@@ -112,6 +112,7 @@ BOOL LLFloaterMap::postBuild()
sendChildToBack(getDragHandle());
setIsChrome(TRUE);
+ getDragHandle()->setTitleVisible(TRUE);
// keep onscreen
gFloaterView->adjustToFitScreen(this, FALSE);
diff --git a/indra/newview/llfloaterpay.cpp b/indra/newview/llfloaterpay.cpp
index c2389e73a0..00959322e5 100644
--- a/indra/newview/llfloaterpay.cpp
+++ b/indra/newview/llfloaterpay.cpp
@@ -135,7 +135,8 @@ LLFloaterPay::LLFloaterPay(const LLSD& key)
mCallback(NULL),
mObjectNameText(NULL),
mTargetUUID(key.asUUID()),
- mTargetIsGroup(FALSE)
+ mTargetIsGroup(FALSE),
+ mHaveName(FALSE)
{
}
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index df57085ae1..da1cad305c 100644
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -327,6 +327,7 @@ LLFloaterPreference::LLFloaterPreference(const LLSD& key)
mCommitCallbackRegistrar.add("Pref.AutoDetectAspect", boost::bind(&LLFloaterPreference::onCommitAutoDetectAspect, this));
mCommitCallbackRegistrar.add("Pref.ParcelMediaAutoPlayEnable", boost::bind(&LLFloaterPreference::onCommitParcelMediaAutoPlayEnable, this));
mCommitCallbackRegistrar.add("Pref.MediaEnabled", boost::bind(&LLFloaterPreference::onCommitMediaEnabled, this));
+ mCommitCallbackRegistrar.add("Pref.MusicEnabled", boost::bind(&LLFloaterPreference::onCommitMusicEnabled, this));
mCommitCallbackRegistrar.add("Pref.onSelectAspectRatio", boost::bind(&LLFloaterPreference::onKeystrokeAspectRatio, this));
mCommitCallbackRegistrar.add("Pref.QualityPerformance", boost::bind(&LLFloaterPreference::onChangeQuality, this, _2));
mCommitCallbackRegistrar.add("Pref.applyUIColor", boost::bind(&LLFloaterPreference::applyUIColor, this ,_1, _2));
@@ -1001,12 +1002,14 @@ void LLFloaterPreference::onCommitMediaEnabled()
{
LLCheckBoxCtrl *media_enabled_ctrl = getChild<LLCheckBoxCtrl>("media_enabled");
bool enabled = media_enabled_ctrl->get();
- gSavedSettings.setBOOL("AudioStreamingVideo", enabled);
- gSavedSettings.setBOOL("AudioStreamingMusic", enabled);
gSavedSettings.setBOOL("AudioStreamingMedia", enabled);
- media_enabled_ctrl->setTentative(false);
- // Update enabled state of the "autoplay" checkbox
- getChild<LLCheckBoxCtrl>("autoplay_enabled")->setEnabled(enabled);
+}
+
+void LLFloaterPreference::onCommitMusicEnabled()
+{
+ LLCheckBoxCtrl *music_enabled_ctrl = getChild<LLCheckBoxCtrl>("music_enabled");
+ bool enabled = music_enabled_ctrl->get();
+ gSavedSettings.setBOOL("AudioStreamingMusic", enabled);
}
void LLFloaterPreference::refresh()
@@ -1424,18 +1427,16 @@ BOOL LLPanelPreference::postBuild()
}
//////////////////////PanelPrivacy ///////////////////
- if(hasChild("media_enabled"))
+ if (hasChild("media_enabled"))
{
- bool video_enabled = gSavedSettings.getBOOL("AudioStreamingVideo");
- bool music_enabled = gSavedSettings.getBOOL("AudioStreamingMusic");
bool media_enabled = gSavedSettings.getBOOL("AudioStreamingMedia");
- bool enabled = video_enabled || music_enabled || media_enabled;
-
- LLCheckBoxCtrl *media_enabled_ctrl = getChild<LLCheckBoxCtrl>("media_enabled");
- media_enabled_ctrl->set(enabled);
- media_enabled_ctrl->setTentative(!(video_enabled == music_enabled == media_enabled));
- getChild<LLCheckBoxCtrl>("autoplay_enabled")->setEnabled(enabled);
getChild<LLCheckBoxCtrl>("voice_call_friends_only_check")->setCommitCallback(boost::bind(&showFriendsOnlyWarning, _1, _2));
+ getChild<LLCheckBoxCtrl>("media_enabled")->set(media_enabled);
+ getChild<LLCheckBoxCtrl>("autoplay_enabled")->setEnabled(media_enabled);
+ }
+ if (hasChild("music_enabled"))
+ {
+ getChild<LLCheckBoxCtrl>("music_enabled")->set(gSavedSettings.getBOOL("AudioStreamingMusic"));
}
apply();
diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h
index 8b02a4049d..8778d76a5a 100644
--- a/indra/newview/llfloaterpreference.h
+++ b/indra/newview/llfloaterpreference.h
@@ -134,6 +134,7 @@ public:
void onCommitAutoDetectAspect();
void onCommitParcelMediaAutoPlayEnable();
void onCommitMediaEnabled();
+ void onCommitMusicEnabled();
void applyResolution();
void applyUIColor(LLUICtrl* ctrl, const LLSD& param);
void getUIColor(LLUICtrl* ctrl, const LLSD& param);
diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp
index 120b9cf65d..39916eba1d 100644
--- a/indra/newview/llfloaterregioninfo.cpp
+++ b/indra/newview/llfloaterregioninfo.cpp
@@ -1521,11 +1521,6 @@ void LLPanelEstateInfo::onClickRemoveEstateManager(void* user_data)
//---------------------------------------------------------------------------
// Kick from estate methods
//---------------------------------------------------------------------------
-struct LLKickFromEstateInfo
-{
- LLPanelEstateInfo *mEstatePanelp;
- LLUUID mAgentID;
-};
void LLPanelEstateInfo::onClickKickUser()
{
@@ -1547,11 +1542,6 @@ void LLPanelEstateInfo::onKickUserCommit(const std::vector<std::string>& names,
return;
}
- //keep track of what user they want to kick and other misc info
- LLKickFromEstateInfo *kick_info = new LLKickFromEstateInfo();
- kick_info->mEstatePanelp = this;
- kick_info->mAgentID = ids[0];
-
//Bring up a confirmation dialog
LLSD args;
args["EVIL_USER"] = names[0];
@@ -2544,7 +2534,9 @@ bool LLPanelEstateInfo::onMessageCommit(const LLSD& notification, const LLSD& re
}
LLPanelEstateCovenant::LLPanelEstateCovenant()
-: mCovenantID(LLUUID::null)
+ :
+ mCovenantID(LLUUID::null),
+ mAssetStatus(ASSET_ERROR)
{
}
diff --git a/indra/newview/llfloaterscriptlimits.cpp b/indra/newview/llfloaterscriptlimits.cpp
index 0964ad7f91..8875e35821 100644
--- a/indra/newview/llfloaterscriptlimits.cpp
+++ b/indra/newview/llfloaterscriptlimits.cpp
@@ -528,7 +528,16 @@ BOOL LLPanelScriptLimitsRegionMemory::postBuild()
std::string msg_waiting = LLTrans::getString("ScriptLimitsRequestWaiting");
childSetValue("loading_text", LLSD(msg_waiting));
-
+
+ LLScrollListCtrl *list = getChild<LLScrollListCtrl>("scripts_list");
+
+ //set all columns to resizable mode even if some columns will be empty
+ for(S32 column = 0; column < list->getNumColumns(); column++)
+ {
+ LLScrollListColumn* columnp = list->getColumn(column);
+ columnp->mHeader->setHasResizableElement(TRUE);
+ }
+
return StartRequestChain();
}
diff --git a/indra/newview/llfloaterscriptlimits.h b/indra/newview/llfloaterscriptlimits.h
index 7e2b536eb6..e675d14515 100644
--- a/indra/newview/llfloaterscriptlimits.h
+++ b/indra/newview/llfloaterscriptlimits.h
@@ -145,7 +145,14 @@ class LLPanelScriptLimitsRegionMemory : public LLPanelScriptLimitsInfo, LLRemote
public:
LLPanelScriptLimitsRegionMemory()
- : LLPanelScriptLimitsInfo(), LLRemoteParcelInfoObserver(), mParcelId(LLUUID()), mGotParcelMemoryUsed(FALSE), mGotParcelMemoryMax(FALSE) {};
+ : LLPanelScriptLimitsInfo(), LLRemoteParcelInfoObserver(),
+
+ mParcelId(LLUUID()),
+ mGotParcelMemoryUsed(FALSE),
+ mGotParcelMemoryMax(FALSE),
+ mParcelMemoryMax(0),
+ mParcelMemoryUsed(0) {};
+
~LLPanelScriptLimitsRegionMemory()
{
LLRemoteParcelInfoProcessor::getInstance()->removeObserver(mParcelId, this);
@@ -167,9 +174,9 @@ public:
private:
- void onNameCache( const LLUUID& id,
- const std::string& first_name,
- const std::string& last_name);
+ void onNameCache(const LLUUID& id,
+ const std::string& first_name,
+ const std::string& last_name);
LLUUID mParcelId;
BOOL mGotParcelMemoryUsed;
@@ -200,7 +207,16 @@ class LLPanelScriptLimitsRegionURLs : public LLPanelScriptLimitsInfo
public:
LLPanelScriptLimitsRegionURLs()
- : LLPanelScriptLimitsInfo(), mParcelId(LLUUID()), mGotParcelURLsUsed(FALSE), mGotParcelURLsMax(FALSE) {};
+ : LLPanelScriptLimitsInfo(),
+
+ mParcelId(LLUUID()),
+ mGotParcelURLsUsed(FALSE),
+ mGotParcelURLsMax(FALSE),
+ mParcelURLsMax(0),
+ mParcelURLsUsed(0)
+ {
+ };
+
~LLPanelScriptLimitsRegionURLs()
{
};
diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp
index afb58c9407..94c7ff6f94 100644
--- a/indra/newview/llfloatersnapshot.cpp
+++ b/indra/newview/llfloatersnapshot.cpp
@@ -1028,7 +1028,8 @@ class LLFloaterSnapshot::Impl
public:
Impl()
: mAvatarPauseHandles(),
- mLastToolset(NULL)
+ mLastToolset(NULL),
+ mAspectRatioCheckOff(false)
{
}
~Impl()
@@ -1079,7 +1080,7 @@ public:
LLToolset* mLastToolset;
LLHandle<LLView> mPreviewHandle;
- BOOL mAspectRatioCheckOff ;
+ bool mAspectRatioCheckOff ;
};
// static
@@ -1606,7 +1607,7 @@ void LLFloaterSnapshot::Impl::checkAspectRatio(LLFloaterSnapshot *view, S32 inde
if(0 == index) //current window size
{
- view->impl.mAspectRatioCheckOff = TRUE ;
+ view->impl.mAspectRatioCheckOff = true ;
view->childSetEnabled("keep_aspect_check", FALSE) ;
if(previewp)
@@ -1616,7 +1617,7 @@ void LLFloaterSnapshot::Impl::checkAspectRatio(LLFloaterSnapshot *view, S32 inde
}
else if(-1 == index) //custom
{
- view->impl.mAspectRatioCheckOff = FALSE ;
+ view->impl.mAspectRatioCheckOff = false ;
//if(LLSnapshotLivePreview::SNAPSHOT_TEXTURE != gSavedSettings.getS32("LastSnapshotType"))
{
view->childSetEnabled("keep_aspect_check", TRUE) ;
@@ -1629,7 +1630,7 @@ void LLFloaterSnapshot::Impl::checkAspectRatio(LLFloaterSnapshot *view, S32 inde
}
else
{
- view->impl.mAspectRatioCheckOff = TRUE ;
+ view->impl.mAspectRatioCheckOff = true ;
view->childSetEnabled("keep_aspect_check", FALSE) ;
if(previewp)
diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp
index b833c611bf..c6135d3bc3 100644
--- a/indra/newview/llfolderview.cpp
+++ b/indra/newview/llfolderview.cpp
@@ -1508,10 +1508,26 @@ BOOL LLFolderView::handleKeyHere( KEY key, MASK mask )
{
if (next == last_selected)
{
+ //special case for LLAccordionCtrl
+ if(notifyParent(LLSD().with("action","select_next")) > 0 )//message was processed
+ {
+ clearSelection();
+ return TRUE;
+ }
return FALSE;
}
setSelection( next, FALSE, TRUE );
}
+ else
+ {
+ //special case for LLAccordionCtrl
+ if(notifyParent(LLSD().with("action","select_next")) > 0 )//message was processed
+ {
+ clearSelection();
+ return TRUE;
+ }
+ return FALSE;
+ }
}
scrollToShowSelection();
mSearchString.clear();
@@ -1556,6 +1572,13 @@ BOOL LLFolderView::handleKeyHere( KEY key, MASK mask )
{
if (prev == this)
{
+ // If case we are in accordion tab notify parent to go to the previous accordion
+ if(notifyParent(LLSD().with("action","select_prev")) > 0 )//message was processed
+ {
+ clearSelection();
+ return TRUE;
+ }
+
return FALSE;
}
setSelection( prev, FALSE, TRUE );
@@ -2241,6 +2264,83 @@ void LLFolderView::updateRenamerPosition()
}
}
+bool LLFolderView::selectFirstItem()
+{
+ for (folders_t::iterator iter = mFolders.begin();
+ iter != mFolders.end();)
+ {
+ LLFolderViewFolder* folder = (*iter );
+ if (folder->getVisible())
+ {
+ LLFolderViewItem* itemp = folder->getNextFromChild(0,true);
+ if(itemp)
+ setSelection(itemp,FALSE,TRUE);
+ return true;
+ }
+
+ }
+ for(items_t::iterator iit = mItems.begin();
+ iit != mItems.end(); ++iit)
+ {
+ LLFolderViewItem* itemp = (*iit);
+ if (itemp->getVisible())
+ {
+ setSelection(itemp,FALSE,TRUE);
+ return true;
+ }
+ }
+ return false;
+}
+bool LLFolderView::selectLastItem()
+{
+ for(items_t::reverse_iterator iit = mItems.rbegin();
+ iit != mItems.rend(); ++iit)
+ {
+ LLFolderViewItem* itemp = (*iit);
+ if (itemp->getVisible())
+ {
+ setSelection(itemp,FALSE,TRUE);
+ return true;
+ }
+ }
+ for (folders_t::reverse_iterator iter = mFolders.rbegin();
+ iter != mFolders.rend();)
+ {
+ LLFolderViewFolder* folder = (*iter);
+ if (folder->getVisible())
+ {
+ LLFolderViewItem* itemp = folder->getPreviousFromChild(0,true);
+ if(itemp)
+ setSelection(itemp,FALSE,TRUE);
+ return true;
+ }
+ }
+ return false;
+}
+
+
+S32 LLFolderView::notify(const LLSD& info)
+{
+ if(info.has("action"))
+ {
+ std::string str_action = info["action"];
+ if(str_action == "select_first")
+ {
+ setFocus(true);
+ selectFirstItem();
+ return 1;
+
+ }
+ else if(str_action == "select_last")
+ {
+ setFocus(true);
+ selectLastItem();
+ return 1;
+ }
+ }
+ return 0;
+}
+
///----------------------------------------------------------------------------
/// Local function definitions
diff --git a/indra/newview/llfolderview.h b/indra/newview/llfolderview.h
index 89e1865e35..56ebdfcf79 100644
--- a/indra/newview/llfolderview.h
+++ b/indra/newview/llfolderview.h
@@ -266,6 +266,8 @@ public:
LLPanel* getParentPanel() { return mParentPanel; }
// DEBUG only
void dumpSelectionInformation();
+
+ virtual S32 notify(const LLSD& info) ;
private:
void updateRenamerPosition();
@@ -278,6 +280,9 @@ protected:
void finishRenamingItem( void );
void closeRenamer( void );
+
+ bool selectFirstItem();
+ bool selectLastItem();
protected:
LLHandle<LLView> mPopupMenuHandle;
diff --git a/indra/newview/llfolderviewitem.cpp b/indra/newview/llfolderviewitem.cpp
index 4b48626b22..b05eb84e52 100644
--- a/indra/newview/llfolderviewitem.cpp
+++ b/indra/newview/llfolderviewitem.cpp
@@ -40,7 +40,6 @@
#include "llinventoryfilter.h"
#include "llpanel.h"
#include "llviewercontrol.h" // gSavedSettings
-#include "llviewerinventory.h"
#include "llviewerwindow.h" // Argh, only for setCursor()
// linden library includes
diff --git a/indra/newview/llgroupactions.cpp b/indra/newview/llgroupactions.cpp
index d6e2bb0445..3653371d76 100644
--- a/indra/newview/llgroupactions.cpp
+++ b/indra/newview/llgroupactions.cpp
@@ -75,11 +75,12 @@ public:
return false;
}
+ //*TODO by what to replace showing groups floater?
if (tokens[0].asString() == "list")
{
if (tokens[1].asString() == "show")
{
- LLFloaterReg::showInstance("contacts", "groups");
+ //LLFloaterReg::showInstance("contacts", "groups");
return true;
}
return false;
diff --git a/indra/newview/llgroupmgr.cpp b/indra/newview/llgroupmgr.cpp
index af58e81ca4..8bd0e520c3 100644
--- a/indra/newview/llgroupmgr.cpp
+++ b/indra/newview/llgroupmgr.cpp
@@ -762,6 +762,14 @@ void LLGroupMgr::addObserver(LLGroupMgrObserver* observer)
mObservers.insert(std::pair<LLUUID, LLGroupMgrObserver*>(observer->getID(), observer));
}
+void LLGroupMgr::addObserver(const LLUUID& group_id, LLParticularGroupMgrObserver* observer)
+{
+ if(group_id.notNull() && observer)
+ {
+ mParticularObservers[group_id].insert(observer);
+ }
+}
+
void LLGroupMgr::removeObserver(LLGroupMgrObserver* observer)
{
if (!observer)
@@ -784,6 +792,23 @@ void LLGroupMgr::removeObserver(LLGroupMgrObserver* observer)
}
}
+void LLGroupMgr::removeObserver(const LLUUID& group_id, LLParticularGroupMgrObserver* observer)
+{
+ if(group_id.isNull() || !observer)
+ {
+ return;
+ }
+
+ observer_map_t::iterator obs_it = mParticularObservers.find(group_id);
+ if(obs_it == mParticularObservers.end())
+ return;
+
+ obs_it->second.erase(observer);
+
+ if (obs_it->second.size() == 0)
+ mParticularObservers.erase(obs_it);
+}
+
LLGroupMgrGroupData* LLGroupMgr::getGroupData(const LLUUID& id)
{
group_map_t::iterator gi = mGroups.find(id);
@@ -1325,6 +1350,7 @@ void LLGroupMgr::notifyObservers(LLGroupChange gc)
LLUUID group_id = gi->first;
if (gi->second->mChanged)
{
+ // notify LLGroupMgrObserver
// Copy the map because observers may remove themselves on update
observer_multimap_t observers = mObservers;
@@ -1336,6 +1362,18 @@ void LLGroupMgr::notifyObservers(LLGroupChange gc)
oi->second->changed(gc);
}
gi->second->mChanged = FALSE;
+
+
+ // notify LLParticularGroupMgrObserver
+ observer_map_t::iterator obs_it = mParticularObservers.find(group_id);
+ if(obs_it == mParticularObservers.end())
+ return;
+
+ observer_set_t& obs = obs_it->second;
+ for (observer_set_t::iterator ob_it = obs.begin(); ob_it != obs.end(); ++ob_it)
+ {
+ (*ob_it)->changed(group_id, gc);
+ }
}
}
}
diff --git a/indra/newview/llgroupmgr.h b/indra/newview/llgroupmgr.h
index 487fdd4c5b..588b4a9034 100644
--- a/indra/newview/llgroupmgr.h
+++ b/indra/newview/llgroupmgr.h
@@ -53,6 +53,13 @@ protected:
LLUUID mID;
};
+class LLParticularGroupMgrObserver
+{
+public:
+ virtual ~LLParticularGroupMgrObserver(){}
+ virtual void changed(const LLUUID& group_id, LLGroupChange gc) = 0;
+};
+
class LLGroupRoleData;
class LLGroupMemberData
@@ -306,7 +313,9 @@ public:
~LLGroupMgr();
void addObserver(LLGroupMgrObserver* observer);
+ void addObserver(const LLUUID& group_id, LLParticularGroupMgrObserver* observer);
void removeObserver(LLGroupMgrObserver* observer);
+ void removeObserver(const LLUUID& group_id, LLParticularGroupMgrObserver* observer);
LLGroupMgrGroupData* getGroupData(const LLUUID& id);
void sendGroupPropertiesRequest(const LLUUID& group_id);
@@ -355,13 +364,19 @@ public:
private:
void notifyObservers(LLGroupChange gc);
+ void notifyObserver(const LLUUID& group_id, LLGroupChange gc);
void addGroup(LLGroupMgrGroupData* group_datap);
LLGroupMgrGroupData* createGroupData(const LLUUID &id);
typedef std::multimap<LLUUID,LLGroupMgrObserver*> observer_multimap_t;
observer_multimap_t mObservers;
+
typedef std::map<LLUUID, LLGroupMgrGroupData*> group_map_t;
group_map_t mGroups;
+
+ typedef std::set<LLParticularGroupMgrObserver*> observer_set_t;
+ typedef std::map<LLUUID,observer_set_t> observer_map_t;
+ observer_map_t mParticularObservers;
};
diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp
index a39753aa55..d4425a70f7 100644
--- a/indra/newview/llimfloater.cpp
+++ b/indra/newview/llimfloater.cpp
@@ -598,6 +598,7 @@ void LLIMFloater::updateMessages()
LLChat chat;
chat.mFromID = from_id;
+ chat.mSessionID = mSessionID;
chat.mFromName = from;
chat.mText = message;
chat.mTimeStr = time;
diff --git a/indra/newview/llimfloatercontainer.cpp b/indra/newview/llimfloatercontainer.cpp
index 06a7b4a29c..784c2eaaf9 100644
--- a/indra/newview/llimfloatercontainer.cpp
+++ b/indra/newview/llimfloatercontainer.cpp
@@ -48,10 +48,7 @@ LLIMFloaterContainer::LLIMFloaterContainer(const LLSD& seed)
mAutoResize = FALSE;
}
-LLIMFloaterContainer::~LLIMFloaterContainer()
-{
- LLGroupMgr::getInstance()->removeObserver(this);
-}
+LLIMFloaterContainer::~LLIMFloaterContainer(){}
BOOL LLIMFloaterContainer::postBuild()
{
@@ -95,11 +92,10 @@ void LLIMFloaterContainer::addFloater(LLFloater* floaterp,
if(gAgent.isInGroup(session_id))
{
mSessions[session_id] = floaterp;
- mID = session_id;
- mGroupID.push_back(session_id);
LLGroupMgrGroupData* group_data = LLGroupMgr::getInstance()->getGroupData(session_id);
LLGroupMgr* gm = LLGroupMgr::getInstance();
- gm->addObserver(this);
+ gm->addObserver(session_id, this);
+ floaterp->mCloseSignal.connect(boost::bind(&LLIMFloaterContainer::onCloseFloater, this, session_id));
if (group_data && group_data->mInsigniaID.notNull())
{
@@ -107,6 +103,7 @@ void LLIMFloaterContainer::addFloater(LLFloater* floaterp,
}
else
{
+ mTabContainer->setTabImage(floaterp, "Generic_Group");
gm->sendGroupPropertiesRequest(session_id);
}
}
@@ -119,13 +116,14 @@ void LLIMFloaterContainer::addFloater(LLFloater* floaterp,
mSessions[avatar_id] = floaterp;
LLUUID* icon_id_ptr = LLAvatarIconIDCache::getInstance()->get(avatar_id);
- if(!icon_id_ptr)
+ if(icon_id_ptr && icon_id_ptr->notNull())
{
- app.sendAvatarPropertiesRequest(avatar_id);
+ mTabContainer->setTabImage(floaterp, *icon_id_ptr);
}
else
{
- mTabContainer->setTabImage(floaterp, *icon_id_ptr);
+ mTabContainer->setTabImage(floaterp, "Generic_Person");
+ app.sendAvatarPropertiesRequest(avatar_id);
}
}
}
@@ -134,31 +132,28 @@ void LLIMFloaterContainer::processProperties(void* data, enum EAvatarProcessorTy
{
if (APT_PROPERTIES == type)
{
- LLAvatarData* avatar_data = static_cast<LLAvatarData*>(data);
- if (avatar_data)
+ LLAvatarData* avatar_data = static_cast<LLAvatarData*>(data);
+ if (avatar_data)
+ {
+ LLUUID avatar_id = avatar_data->avatar_id;
+ LLUUID* cached_avatarId = LLAvatarIconIDCache::getInstance()->get(avatar_id);
+ if(cached_avatarId && cached_avatarId->notNull() && avatar_data->image_id != *cached_avatarId)
{
- LLUUID avatar_id = avatar_data->avatar_id;
- if(avatar_data->image_id != *LLAvatarIconIDCache::getInstance()->get(avatar_id))
- {
- LLAvatarIconIDCache::getInstance()->add(avatar_id,avatar_data->image_id);
- }
+ LLAvatarIconIDCache::getInstance()->add(avatar_id,avatar_data->image_id);
mTabContainer->setTabImage(get_ptr_in_map(mSessions, avatar_id), avatar_data->image_id);
}
+ }
}
}
-void LLIMFloaterContainer::changed(LLGroupChange gc)
+void LLIMFloaterContainer::changed(const LLUUID& group_id, LLGroupChange gc)
{
if (GC_PROPERTIES == gc)
{
- for(groupIDs_t::iterator it = mGroupID.begin(); it!=mGroupID.end(); it++)
+ LLGroupMgrGroupData* group_data = LLGroupMgr::getInstance()->getGroupData(group_id);
+ if (group_data && group_data->mInsigniaID.notNull())
{
- LLUUID group_id = *it;
- LLGroupMgrGroupData* group_data = LLGroupMgr::getInstance()->getGroupData(group_id);
- if (group_data && group_data->mInsigniaID.notNull())
- {
- mTabContainer->setTabImage(get_ptr_in_map(mSessions, group_id), group_data->mInsigniaID);
- }
+ mTabContainer->setTabImage(get_ptr_in_map(mSessions, group_id), group_data->mInsigniaID);
}
}
}
@@ -166,6 +161,7 @@ void LLIMFloaterContainer::changed(LLGroupChange gc)
void LLIMFloaterContainer::onCloseFloater(LLUUID id)
{
LLAvatarPropertiesProcessor::instance().removeObserver(id, this);
+ LLGroupMgr::instance().removeObserver(id, this);
}
LLIMFloaterContainer* LLIMFloaterContainer::findInstance()
diff --git a/indra/newview/llimfloatercontainer.h b/indra/newview/llimfloatercontainer.h
index 1333b098bc..e4a32dbe1d 100644
--- a/indra/newview/llimfloatercontainer.h
+++ b/indra/newview/llimfloatercontainer.h
@@ -43,7 +43,7 @@
class LLTabContainer;
-class LLIMFloaterContainer : public LLMultiFloater, public LLAvatarPropertiesObserver, public LLGroupMgrObserver
+class LLIMFloaterContainer : public LLMultiFloater, public LLAvatarPropertiesObserver, public LLParticularGroupMgrObserver
{
public:
LLIMFloaterContainer(const LLSD& seed);
@@ -57,7 +57,7 @@ public:
LLTabContainer::eInsertionPoint insertion_point = LLTabContainer::END);
void processProperties(void* data, EAvatarProcessorType type);
- void changed(LLGroupChange gc);
+ void changed(const LLUUID& group_id, LLGroupChange gc);
static LLFloater* getCurrentVoiceFloater();
@@ -69,9 +69,6 @@ private:
typedef std::map<LLUUID,LLPanel*> avatarID_panel_map_t;
avatarID_panel_map_t mSessions;
- typedef std::vector<LLUUID> groupIDs_t;
- groupIDs_t mGroupID;
-
void onCloseFloater(LLUUID avatar_id);
};
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index 265c10aebd..49a193e719 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -52,7 +52,6 @@
#include "llbottomtray.h"
#include "llcallingcard.h"
#include "llchat.h"
-#include "llfloaterchatterbox.h"
#include "llimfloater.h"
#include "llgroupiconctrl.h"
#include "llmd5.h"
@@ -64,8 +63,10 @@
#include "llnotificationsutil.h"
#include "llnearbychat.h"
#include "llspeakers.h" //for LLIMSpeakerMgr
+#include "lltextbox.h"
#include "lltextutil.h"
#include "llviewercontrol.h"
+#include "llviewerparcelmgr.h"
const static std::string IM_TIME("time");
@@ -95,7 +96,8 @@ void toast_callback(const LLSD& msg){
}
// check whether incoming IM belongs to an active session or not
- if (LLIMModel::getInstance()->getActiveSessionID() == msg["session_id"])
+ if (LLIMModel::getInstance()->getActiveSessionID().notNull()
+ && LLIMModel::getInstance()->getActiveSessionID() == msg["session_id"])
{
return;
}
@@ -536,13 +538,6 @@ void LLIMModel::processSessionInitializedReply(const LLUUID& old_session_id, con
gIMMgr->startCall(new_session_id);
}
}
-
- //*TODO remove this "floater" stuff when Communicate Floater is gone
- LLFloaterIMPanel* floater = gIMMgr->findFloaterBySession(old_session_id);
- if (floater)
- {
- floater->sessionInitReplyReceived(new_session_id);
- }
}
void LLIMModel::testMessages()
@@ -677,15 +672,6 @@ bool LLIMModel::proccessOnlineOfflineNotification(
const LLUUID& session_id,
const std::string& utf8_text)
{
- // Add message to old one floater
- LLFloaterIMPanel *floater = gIMMgr->findFloaterBySession(session_id);
- if ( floater )
- {
- if ( !utf8_text.empty() )
- {
- floater->addHistoryLine(utf8_text, LLUIColorTable::instance().getColor("SystemChatColor"));
- }
- }
// Add system message to history
return addMessage(session_id, SYSTEM_FROM, LLUUID::null, utf8_text);
}
@@ -953,9 +939,6 @@ void LLIMModel::sendMessage(const std::string& utf8_text,
history_echo += ": " + utf8_text;
- LLFloaterIMPanel* floater = gIMMgr->findFloaterBySession(im_session_id);
- if (floater) floater->addHistoryLine(history_echo, LLUIColorTable::instance().getColor("IMChatColor"), true, gAgent.getID());
-
LLIMSpeakerMgr* speaker_mgr = LLIMModel::getInstance()->getSpeakerManager(im_session_id);
if (speaker_mgr)
{
@@ -1273,33 +1256,16 @@ LLUUID LLIMMgr::computeSessionID(
return session_id;
}
-inline LLFloater* getFloaterBySessionID(const LLUUID session_id)
-{
- LLFloater* floater = NULL;
- if ( gIMMgr )
- {
- floater = dynamic_cast < LLFloater* >
- ( gIMMgr->findFloaterBySession(session_id) );
- }
- if ( !floater )
- {
- floater = dynamic_cast < LLFloater* >
- ( LLIMFloater::findInstance(session_id) );
- }
- return floater;
-}
-
void
LLIMMgr::showSessionStartError(
const std::string& error_string,
const LLUUID session_id)
{
- const LLFloater* floater = getFloaterBySessionID (session_id);
- if (!floater) return;
+ if (!hasSession(session_id)) return;
LLSD args;
args["REASON"] = LLTrans::getString(error_string);
- args["RECIPIENT"] = floater->getTitle();
+ args["RECIPIENT"] = LLIMModel::getInstance()->getName(session_id);
LLSD payload;
payload["session_id"] = session_id;
@@ -1337,12 +1303,11 @@ LLIMMgr::showSessionForceClose(
const std::string& reason_string,
const LLUUID session_id)
{
- const LLFloater* floater = getFloaterBySessionID (session_id);
- if (!floater) return;
+ if (!hasSession(session_id)) return;
LLSD args;
- args["NAME"] = floater->getTitle();
+ args["NAME"] = LLIMModel::getInstance()->getName(session_id);
args["REASON"] = LLTrans::getString(reason_string);
LLSD payload;
@@ -1364,7 +1329,7 @@ LLIMMgr::onConfirmForceCloseError(
//only 1 option really
LLUUID session_id = notification["payload"]["session_id"];
- LLFloater* floater = getFloaterBySessionID (session_id);
+ LLFloater* floater = LLIMFloater::findInstance(session_id);
if ( floater )
{
floater->closeFloater(FALSE);
@@ -1496,9 +1461,11 @@ void LLCallDialogManager::onVoiceChannelStateChanged(const LLVoiceChannel::EStat
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Class LLCallDialog
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-LLCallDialog::LLCallDialog(const LLSD& payload) :
-LLDockableFloater(NULL, false, payload),
-mPayload(payload)
+LLCallDialog::LLCallDialog(const LLSD& payload)
+ : LLDockableFloater(NULL, false, payload),
+
+ mPayload(payload),
+ mLifetime(DEFAULT_LIFETIME)
{
}
@@ -1577,7 +1544,7 @@ void LLCallDialog::setIcon(const LLSD& session_id, const LLSD& participant_id)
}
}
-bool LLOutgoingCallDialog::lifetimeHasExpired()
+bool LLCallDialog::lifetimeHasExpired()
{
if (mLifetimeTimer.getStarted())
{
@@ -1590,7 +1557,7 @@ bool LLOutgoingCallDialog::lifetimeHasExpired()
return false;
}
-void LLOutgoingCallDialog::onLifetimeExpired()
+void LLCallDialog::onLifetimeExpired()
{
mLifetimeTimer.stop();
closeFloater();
@@ -1600,6 +1567,9 @@ void LLOutgoingCallDialog::show(const LLSD& key)
{
mPayload = key;
+ //will be false only if voice in parcel is disabled and channel we leave is nearby(checked further)
+ bool show_oldchannel = LLViewerParcelMgr::getInstance()->allowAgentVoice();
+
// hide all text at first
hideAllText();
@@ -1623,10 +1593,11 @@ void LLOutgoingCallDialog::show(const LLSD& key)
}
childSetTextArg("leaving", "[CURRENT_CHAT]", old_caller_name);
+ show_oldchannel = true;
}
else
{
- childSetTextArg("leaving", "[CURRENT_CHAT]", getString("localchat"));
+ childSetTextArg("leaving", "[CURRENT_CHAT]", getString("localchat"));
}
if (!mPayload["disconnected_channel_name"].asString().empty())
@@ -1671,15 +1642,22 @@ void LLOutgoingCallDialog::show(const LLSD& key)
{
case LLVoiceChannel::STATE_CALL_STARTED :
getChild<LLTextBox>("calling")->setVisible(true);
- getChild<LLTextBox>("leaving")->setVisible(true);
+ if(show_oldchannel)
+ {
+ getChild<LLTextBox>("leaving")->setVisible(true);
+ }
break;
case LLVoiceChannel::STATE_RINGING :
- getChild<LLTextBox>("leaving")->setVisible(true);
+ if(show_oldchannel)
+ {
+ getChild<LLTextBox>("leaving")->setVisible(true);
+ }
getChild<LLTextBox>("connecting")->setVisible(true);
break;
case LLVoiceChannel::STATE_ERROR :
getChild<LLTextBox>("noanswer")->setVisible(true);
getChild<LLButton>("Cancel")->setVisible(false);
+ setCanClose(true);
mLifetimeTimer.start();
break;
case LLVoiceChannel::STATE_HUNG_UP :
@@ -1692,6 +1670,7 @@ void LLOutgoingCallDialog::show(const LLSD& key)
getChild<LLTextBox>("nearby")->setVisible(true);
}
getChild<LLButton>("Cancel")->setVisible(false);
+ setCanClose(true);
mLifetimeTimer.start();
}
@@ -1742,19 +1721,6 @@ LLCallDialog(payload)
{
}
-bool LLIncomingCallDialog::lifetimeHasExpired()
-{
- if (mLifetimeTimer.getStarted())
- {
- F32 elapsed_time = mLifetimeTimer.getElapsedTimeF32();
- if (elapsed_time > mLifetime)
- {
- return true;
- }
- }
- return false;
-}
-
void LLIncomingCallDialog::onLifetimeExpired()
{
// check whether a call is valid or not
@@ -2112,8 +2078,7 @@ bool inviteUserResponse(const LLSD& notification, const LLSD& response)
// Member Functions
//
-LLIMMgr::LLIMMgr() :
- mIMReceived(FALSE)
+LLIMMgr::LLIMMgr()
{
mPendingInvitations = LLSD::emptyMap();
mPendingAgentListUpdates = LLSD::emptyMap();
@@ -2144,7 +2109,6 @@ void LLIMMgr::addMessage(
return;
}
- LLFloaterIMPanel* floater;
LLUUID new_session_id = session_id;
if (new_session_id.isNull())
{
@@ -2163,32 +2127,7 @@ void LLIMMgr::addMessage(
if (new_session)
{
LLIMModel::getInstance()->newSession(new_session_id, fixed_session_name, dialog, other_participant_id);
- }
-
- floater = findFloaterBySession(new_session_id);
- if (!floater)
- {
- floater = findFloaterBySession(other_participant_id);
- if (floater)
- {
- llinfos << "found the IM session " << session_id
- << " by participant " << other_participant_id << llendl;
- }
- }
-
- // create IM window as necessary
- if(!floater)
- {
- floater = createFloater(
- new_session_id,
- other_participant_id,
- fixed_session_name,
- dialog,
- FALSE);
- }
- if (new_session)
- {
// When we get a new IM, and if you are a god, display a bit
// of information about the source. This is to help liaisons
// when answering questions.
@@ -2207,50 +2146,13 @@ void LLIMMgr::addMessage(
//<< "*** region_id: " << region_id << std::endl
//<< "*** position: " << position << std::endl;
- floater->addHistoryLine(bonus_info.str(), LLUIColorTable::instance().getColor("SystemChatColor"));
LLIMModel::instance().addMessage(new_session_id, from, other_participant_id, bonus_info.str());
}
make_ui_sound("UISndNewIncomingIMSession");
}
- // now add message to floater
- bool is_from_system = target_id.isNull() || (from == SYSTEM_FROM);
- const LLColor4& color = ( is_from_system ?
- LLUIColorTable::instance().getColor("SystemChatColor") :
- LLUIColorTable::instance().getColor("IMChatColor"));
- if ( !link_name )
- {
- floater->addHistoryLine(msg,color); // No name to prepend, so just add the message normally
- }
- else
- {
- floater->addHistoryLine(msg, color, true, other_participant_id, from); // Insert linked name to front of message
- }
-
LLIMModel::instance().addMessage(new_session_id, from, other_participant_id, msg);
-
- if( !LLFloaterReg::instanceVisible("communicate") && !floater->getVisible())
- {
- LLFloaterChatterBox* chat_floater = LLFloaterChatterBox::getInstance();
-
- //if the IM window is not open and the floater is not visible (i.e. not torn off)
- LLFloater* previouslyActiveFloater = chat_floater->getActiveFloater();
-
- // select the newly added floater (or the floater with the new line added to it).
- // it should be there.
- chat_floater->selectFloater(floater);
-
- //there was a previously unseen IM, make that old tab flashing
- //it is assumed that the most recently unseen IM tab is the one current selected/active
- if ( previouslyActiveFloater && getIMReceived() )
- {
- chat_floater->setFloaterFlashing(previouslyActiveFloater, TRUE);
- }
-
- //notify of a new IM
- notifyNewIM();
- }
}
void LLIMMgr::addSystemMessage(const LLUUID& session_id, const std::string& message_name, const LLSD& args)
@@ -2283,14 +2185,6 @@ void LLIMMgr::addSystemMessage(const LLUUID& session_id, const std::string& mess
}
}
-void LLIMMgr::notifyNewIM()
-{
- if(!LLFloaterReg::instanceVisible("communicate"))
- {
- mIMReceived = TRUE;
- }
-}
-
S32 LLIMMgr::getNumberOfUnreadIM()
{
std::map<LLUUID, LLIMModel::LLIMSession*>::iterator it;
@@ -2317,16 +2211,6 @@ S32 LLIMMgr::getNumberOfUnreadParticipantMessages()
return num;
}
-void LLIMMgr::clearNewIMNotification()
-{
- mIMReceived = FALSE;
-}
-
-BOOL LLIMMgr::getIMReceived() const
-{
- return mIMReceived;
-}
-
void LLIMMgr::autoStartCallOnStartup(const LLUUID& session_id)
{
LLIMModel::LLIMSession *session = LLIMModel::getInstance()->findIMSession(session_id);
@@ -2414,21 +2298,6 @@ LLUUID LLIMMgr::addSession(
LLIMModel::getInstance()->newSession(session_id, name, dialog, other_participant_id, ids, voice);
}
- //*TODO remove this "floater" thing when Communicate Floater's gone
- LLFloaterIMPanel* floater = findFloaterBySession(session_id);
- if(!floater)
- {
- // On creation, use the first element of ids as the
- // "other_participant_id"
- floater = createFloater(
- session_id,
- other_participant_id,
- name,
- dialog,
- TRUE,
- ids);
- }
-
//we don't need to show notes about online/offline, mute/unmute users' statuses for existing sessions
if (!new_session) return session_id;
@@ -2439,7 +2308,7 @@ LLUUID LLIMMgr::addSession(
// Only warn for regular IMs - not group IMs
if( dialog == IM_NOTHING_SPECIAL )
{
- noteMutedUsers(session_id, floater, ids);
+ noteMutedUsers(session_id, ids);
}
return session_id;
@@ -2460,14 +2329,6 @@ void LLIMMgr::removeSession(const LLUUID& session_id)
{
llassert_always(hasSession(session_id));
- //*TODO remove this floater thing when Communicate Floater is being deleted (IB)
- LLFloaterIMPanel* floater = findFloaterBySession(session_id);
- if(floater)
- {
- mFloaters.erase(floater->getHandle());
- LLFloaterChatterBox::getInstance()->removeFloater(floater);
- }
-
clearPendingInvitation(session_id);
clearPendingAgentListUpdates(session_id);
@@ -2577,50 +2438,12 @@ void LLIMMgr::onInviteNameLookup(LLSD payload, const LLUUID& id, const std::stri
LLFloaterReg::showInstance("incoming_call", payload, TRUE);
}
+//*TODO disconnects all sessions
void LLIMMgr::disconnectAllSessions()
{
- LLFloaterIMPanel* floater = NULL;
- std::set<LLHandle<LLFloater> >::iterator handle_it;
- for(handle_it = mFloaters.begin();
- handle_it != mFloaters.end();
- )
- {
- floater = (LLFloaterIMPanel*)handle_it->get();
-
- // MUST do this BEFORE calling floater->onClose() because that may remove the item from the set, causing the subsequent increment to crash.
- ++handle_it;
-
- if (floater)
- {
- floater->setEnabled(FALSE);
- floater->closeFloater(TRUE);
- }
- }
+ //*TODO disconnects all IM sessions
}
-
-// This method returns the im panel corresponding to the uuid
-// provided. The uuid can either be a session id or an agent
-// id. Returns NULL if there is no matching panel.
-LLFloaterIMPanel* LLIMMgr::findFloaterBySession(const LLUUID& session_id)
-{
- LLFloaterIMPanel* rv = NULL;
- std::set<LLHandle<LLFloater> >::iterator handle_it;
- for(handle_it = mFloaters.begin();
- handle_it != mFloaters.end();
- ++handle_it)
- {
- rv = (LLFloaterIMPanel*)handle_it->get();
- if(rv && session_id == rv->getSessionID())
- {
- break;
- }
- rv = NULL;
- }
- return rv;
-}
-
-
BOOL LLIMMgr::hasSession(const LLUUID& session_id)
{
return LLIMModel::getInstance()->findIMSession(session_id) != NULL;
@@ -2804,49 +2627,14 @@ bool LLIMMgr::isVoiceCall(const LLUUID& session_id)
return im_session->mStartedAsIMCall;
}
-// create a floater and update internal representation for
-// consistency. Returns the pointer, caller (the class instance since
-// it is a private method) is not responsible for deleting the
-// pointer. Add the floater to this but do not select it.
-LLFloaterIMPanel* LLIMMgr::createFloater(
- const LLUUID& session_id,
- const LLUUID& other_participant_id,
- const std::string& session_label,
- EInstantMessage dialog,
- BOOL user_initiated,
- const LLDynamicArray<LLUUID>& ids)
-{
- if (session_id.isNull())
- {
- llwarns << "Creating LLFloaterIMPanel with null session ID" << llendl;
- }
-
- llinfos << "LLIMMgr::createFloater: from " << other_participant_id
- << " in session " << session_id << llendl;
- LLFloaterIMPanel* floater = new LLFloaterIMPanel(session_label,
- session_id,
- other_participant_id,
- ids,
- dialog);
- LLTabContainer::eInsertionPoint i_pt = user_initiated ? LLTabContainer::RIGHT_OF_CURRENT : LLTabContainer::END;
- LLFloaterChatterBox::getInstance()->addFloater(floater, FALSE, i_pt);
- mFloaters.insert(floater->getHandle());
- return floater;
-}
-
void LLIMMgr::noteOfflineUsers(
const LLUUID& session_id,
- LLFloaterIMPanel* floater,
const LLDynamicArray<LLUUID>& ids)
{
S32 count = ids.count();
if(count == 0)
{
const std::string& only_user = LLTrans::getString("only_user_message");
- if (floater)
- {
- floater->addHistoryLine(only_user, LLUIColorTable::instance().getColor("SystemChatColor"));
- }
LLIMModel::getInstance()->addMessage(session_id, SYSTEM_FROM, LLUUID::null, only_user);
}
else
@@ -2870,7 +2658,7 @@ void LLIMMgr::noteOfflineUsers(
}
}
-void LLIMMgr::noteMutedUsers(const LLUUID& session_id, LLFloaterIMPanel* floater,
+void LLIMMgr::noteMutedUsers(const LLUUID& session_id,
const LLDynamicArray<LLUUID>& ids)
{
// Don't do this if we don't have a mute list.
@@ -2891,9 +2679,6 @@ void LLIMMgr::noteMutedUsers(const LLUUID& session_id, LLFloaterIMPanel* floater
{
LLUIString muted = LLTrans::getString("muted_message");
- //*TODO remove this "floater" thing when Communicate Floater's gone
- floater->addHistoryLine(muted);
-
im_model->addMessage(session_id, SYSTEM_FROM, LLUUID::null, muted);
break;
}
@@ -2914,12 +2699,6 @@ void LLIMMgr::processIMTypingStop(const LLIMInfo* im_info)
void LLIMMgr::processIMTypingCore(const LLIMInfo* im_info, BOOL typing)
{
LLUUID session_id = computeSessionID(im_info->mIMType, im_info->mFromID);
- LLFloaterIMPanel* floater = findFloaterBySession(session_id);
- if (floater)
- {
- floater->processIMTyping(im_info, typing);
- }
-
LLIMFloater* im_floater = LLIMFloater::findInstance(session_id);
if ( im_floater )
{
@@ -2965,15 +2744,6 @@ public:
speaker_mgr->updateSpeakers(gIMMgr->getPendingAgentListUpdates(session_id));
}
- LLFloaterIMPanel* floaterp = gIMMgr->findFloaterBySession(session_id);
- if (floaterp)
- {
- if ( body.has("session_info") )
- {
- floaterp->processSessionUpdate(body["session_info"]);
- }
- }
-
LLIMFloater* im_floater = LLIMFloater::findInstance(session_id);
if ( im_floater )
{
@@ -3068,11 +2838,6 @@ public:
const LLSD& input) const
{
LLUUID session_id = input["body"]["session_id"].asUUID();
- LLFloaterIMPanel* floaterp = gIMMgr->findFloaterBySession(session_id);
- if (floaterp)
- {
- floaterp->processSessionUpdate(input["body"]["info"]);
- }
LLIMFloater* im_floater = LLIMFloater::findInstance(session_id);
if ( im_floater )
{
@@ -3217,6 +2982,48 @@ public:
}
};
+LLCallInfoDialog::LLCallInfoDialog(const LLSD& payload) : LLCallDialog(payload)
+{
+}
+
+BOOL LLCallInfoDialog::postBuild()
+{
+ // init notification's lifetime
+ std::istringstream ss( getString("lifetime") );
+ if (!(ss >> mLifetime))
+ {
+ mLifetime = DEFAULT_LIFETIME;
+ }
+ return LLCallDialog::postBuild();
+}
+
+void LLCallInfoDialog::onOpen(const LLSD& key)
+{
+ if(key.has("msg"))
+ {
+ std::string msg = key["msg"];
+ getChild<LLTextBox>("msg")->setValue(msg);
+ }
+
+ mLifetimeTimer.start();
+}
+
+void LLCallInfoDialog::show(const std::string& status_name, const LLSD& args)
+{
+ LLUIString message = LLTrans::getString(status_name);
+ message.setArgs(args);
+
+ LLSD payload;
+ payload["msg"] = message;
+ LLFloater* inst = LLFloaterReg::findInstance("call_info");
+
+ // avoid recreate instance with the same message
+ if (inst == NULL || message.getString() != inst->getChild<LLTextBox>("msg")->getValue())
+ {
+ LLFloaterReg::showInstance("call_info", payload);
+ }
+}
+
LLHTTPRegistration<LLViewerChatterBoxSessionStartReply>
gHTTPRegistrationMessageChatterboxsessionstartreply(
"/message/ChatterBoxSessionStartReply");
diff --git a/indra/newview/llimview.h b/indra/newview/llimview.h
index a3b4f78af0..b573490fa3 100644
--- a/indra/newview/llimview.h
+++ b/indra/newview/llimview.h
@@ -39,9 +39,8 @@
#include "lllogchat.h"
#include "llvoicechannel.h"
-class LLFloaterChatterBox;
-class LLUUID;
-class LLFloaterIMPanel;
+
+
class LLFriendObserver;
class LLCallDialogManager;
class LLIMSpeakerMgr;
@@ -361,15 +360,9 @@ public:
void processIMTypingStart(const LLIMInfo* im_info);
void processIMTypingStop(const LLIMInfo* im_info);
- void notifyNewIM();
- void clearNewIMNotification();
-
// automatically start a call once the session has initialized
void autoStartCallOnStartup(const LLUUID& session_id);
- // IM received that you haven't seen yet
- BOOL getIMReceived() const;
-
// Calc number of all unread IMs
S32 getNumberOfUnreadIM();
@@ -386,11 +379,6 @@ public:
BOOL hasSession(const LLUUID& session_id);
- // This method returns the im panel corresponding to the uuid
- // provided. The uuid must be a session id. Returns NULL if there
- // is no matching panel.
- LLFloaterIMPanel* findFloaterBySession(const LLUUID& session_id);
-
static LLUUID computeSessionID(EInstantMessage dialog, const LLUUID& other_participant_id);
void clearPendingInvitation(const LLUUID& session_id);
@@ -402,10 +390,6 @@ public:
const LLSD& updates);
void clearPendingAgentListUpdates(const LLUUID& session_id);
- //HACK: need a better way of enumerating existing session, or listening to session create/destroy events
- //@deprecated, is used only by LLToolBox, which is not used anywhere, right? (IB)
- const std::set<LLHandle<LLFloater> >& getIMFloaterHandles() { return mFloaters; }
-
void addSessionObserver(LLIMSessionObserver *);
void removeSessionObserver(LLIMSessionObserver *);
@@ -436,23 +420,12 @@ private:
*/
void removeSession(const LLUUID& session_id);
- // create a panel and update internal representation for
- // consistency. Returns the pointer, caller (the class instance
- // since it is a private method) is not responsible for deleting
- // the pointer.
- LLFloaterIMPanel* createFloater(const LLUUID& session_id,
- const LLUUID& target_id,
- const std::string& name,
- EInstantMessage dialog,
- BOOL user_initiated = FALSE,
- const LLDynamicArray<LLUUID>& ids = LLDynamicArray<LLUUID>());
-
// This simple method just iterates through all of the ids, and
// prints a simple message if they are not online. Used to help
// reduce 'hello' messages to the linden employees unlucky enough
// to have their calling card in the default inventory.
- void noteOfflineUsers(const LLUUID& session_id, LLFloaterIMPanel* panel, const LLDynamicArray<LLUUID>& ids);
- void noteMutedUsers(const LLUUID& session_id, LLFloaterIMPanel* panel, const LLDynamicArray<LLUUID>& ids);
+ void noteOfflineUsers(const LLUUID& session_id, const LLDynamicArray<LLUUID>& ids);
+ void noteMutedUsers(const LLUUID& session_id, const LLDynamicArray<LLUUID>& ids);
void processIMTypingCore(const LLIMInfo* im_info, BOOL typing);
@@ -464,15 +437,9 @@ private:
private:
- //*TODO should be deleted when Communicate Floater is being deleted
- std::set<LLHandle<LLFloater> > mFloaters;
-
typedef std::list <LLIMSessionObserver *> session_observers_list_t;
session_observers_list_t mSessionObservers;
- // An IM has been received that you haven't seen yet.
- BOOL mIMReceived;
-
LLSD mPendingInvitations;
LLSD mPendingAgentListUpdates;
};
@@ -512,8 +479,8 @@ protected:
// notification's lifetime in seconds
S32 mLifetime;
static const S32 DEFAULT_LIFETIME = 5;
- virtual bool lifetimeHasExpired() {return false;};
- virtual void onLifetimeExpired() {};
+ virtual bool lifetimeHasExpired();
+ virtual void onLifetimeExpired();
virtual void getAllowedRect(LLRect& rect);
@@ -543,7 +510,6 @@ public:
static void onStartIM(void* user_data);
private:
- /*virtual*/ bool lifetimeHasExpired();
/*virtual*/ void onLifetimeExpired();
void processCallResponse(S32 response);
};
@@ -562,8 +528,16 @@ public:
private:
// hide all text boxes
void hideAllText();
- /*virtual*/ bool lifetimeHasExpired();
- /*virtual*/ void onLifetimeExpired();
+};
+
+class LLCallInfoDialog : public LLCallDialog
+{
+public:
+ LLCallInfoDialog(const LLSD& payload);
+ /*virtual*/ BOOL postBuild();
+ /*virtual*/ void onOpen(const LLSD& key);
+
+ static void show(const std::string& status_name, const LLSD& args);
};
// Globals
diff --git a/indra/newview/llinspectavatar.cpp b/indra/newview/llinspectavatar.cpp
index 8aaa95364c..857abed811 100644
--- a/indra/newview/llinspectavatar.cpp
+++ b/indra/newview/llinspectavatar.cpp
@@ -229,6 +229,7 @@ LLInspectAvatar::LLInspectAvatar(const LLSD& sd)
mEnableCallbackRegistrar.add("InspectAvatar.VisibleZoomIn",
boost::bind(&LLInspectAvatar::onVisibleZoomIn, this));
mEnableCallbackRegistrar.add("InspectAvatar.Gear.Enable", boost::bind(&LLInspectAvatar::isNotFriend, this));
+ mEnableCallbackRegistrar.add("InspectAvatar.Gear.EnableCall", boost::bind(&LLAvatarActions::canCall));
mEnableCallbackRegistrar.add("InspectAvatar.EnableMute", boost::bind(&LLInspectAvatar::enableMute, this));
mEnableCallbackRegistrar.add("InspectAvatar.EnableUnmute", boost::bind(&LLInspectAvatar::enableUnmute, this));
diff --git a/indra/newview/llinspectremoteobject.cpp b/indra/newview/llinspectremoteobject.cpp
index 7319bd0331..892dce588f 100644
--- a/indra/newview/llinspectremoteobject.cpp
+++ b/indra/newview/llinspectremoteobject.cpp
@@ -31,17 +31,16 @@
#include "llviewerprecompiledheaders.h"
+#include "llfloaterreg.h"
#include "llinspectremoteobject.h"
#include "llinspect.h"
-#include "llslurl.h"
#include "llmutelist.h"
-#include "llurlaction.h"
#include "llpanelblockedlist.h"
-#include "llfloaterreg.h"
+#include "llslurl.h"
+#include "lltrans.h"
#include "llui.h"
#include "lluictrl.h"
-
-class LLViewerObject;
+#include "llurlaction.h"
//////////////////////////////////////////////////////////////////////////////
// LLInspectRemoteObject
@@ -183,11 +182,25 @@ void LLInspectRemoteObject::update()
owner = LLSLURL("agent", mOwnerID, "about").getSLURLString();
}
}
+ else
+ {
+ owner = LLTrans::getString("Unknown");
+ }
getChild<LLUICtrl>("object_owner")->setValue(owner);
// display the object's SLurl - click it to teleport
- std::string url = "secondlife:///app/teleport/" + mSLurl;
+ std::string url;
+ if (! mSLurl.empty())
+ {
+ std::string url = "secondlife:///app/teleport/" + mSLurl;
+ }
getChild<LLUICtrl>("object_slurl")->setValue(url);
+
+ // disable the Map button if we don't have a SLurl
+ getChild<LLUICtrl>("map_btn")->setEnabled(! mSLurl.empty());
+
+ // disable the Block button if we don't have the owner ID
+ getChild<LLUICtrl>("block_btn")->setEnabled(! mOwnerID.isNull());
}
//////////////////////////////////////////////////////////////////////////////
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index 6c9c7d15be..e04d3ec5a0 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -5079,7 +5079,7 @@ void LLLandmarkBridgeAction::doIt()
payload["asset_id"] = item->getAssetUUID();
LLSD args;
- args["LOCATION"] = item->getDisplayName();
+ args["LOCATION"] = item->getName();
LLNotificationsUtil::add("TeleportFromLandmark", args, payload);
}
diff --git a/indra/newview/llinventorybridge.h b/indra/newview/llinventorybridge.h
index 759d0cba18..eeb8246b11 100644
--- a/indra/newview/llinventorybridge.h
+++ b/indra/newview/llinventorybridge.h
@@ -320,8 +320,12 @@ public:
LLViewerInventoryCategory* getCategory() const;
protected:
- LLFolderBridge(LLInventoryPanel* inventory, const LLUUID& uuid) :
- LLInvFVBridge(inventory, uuid), mCallingCards(FALSE), mWearables(FALSE) {}
+ LLFolderBridge(LLInventoryPanel* inventory, const LLUUID& uuid)
+ : LLInvFVBridge(inventory, uuid),
+
+ mCallingCards(FALSE),
+ mWearables(FALSE),
+ mMenu(NULL) {}
// menu callbacks
static void pasteClipboard(void* user_data);
diff --git a/indra/newview/llinventoryfilter.cpp b/indra/newview/llinventoryfilter.cpp
index b4dcb566e4..cd20d64ca8 100644
--- a/indra/newview/llinventoryfilter.cpp
+++ b/indra/newview/llinventoryfilter.cpp
@@ -39,7 +39,6 @@
#include "llfolderviewitem.h"
#include "llinventorymodel.h" // gInventory.backgroundFetchActive()
#include "llviewercontrol.h"
-#include "llviewerinventory.h"
#include "llfolderview.h"
// linden library includes
diff --git a/indra/newview/llinventoryfunctions.cpp b/indra/newview/llinventoryfunctions.cpp
index 2885ba13fa..33623539e9 100644
--- a/indra/newview/llinventoryfunctions.cpp
+++ b/indra/newview/llinventoryfunctions.cpp
@@ -76,7 +76,6 @@
#include "lltabcontainer.h"
#include "lltooldraganddrop.h"
#include "lluictrlfactory.h"
-#include "llviewerinventory.h"
#include "llviewermessage.h"
#include "llviewerobjectlist.h"
#include "llviewerregion.h"
diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp
index bd766e8519..0af584e7dc 100644
--- a/indra/newview/llinventorymodel.cpp
+++ b/indra/newview/llinventorymodel.cpp
@@ -142,6 +142,105 @@ bool LLCanCache::operator()(LLInventoryCategory* cat, LLInventoryItem* item)
return rv;
}
+/*
+This namespace contains a functionality to remove LM prefixes were used to store sort order of
+Favorite Landmarks in landmarks' names.
+Once being in Favorites folder LM inventory Item has such prefix.
+Due to another solution is implemented in EXT-3985 these prefixes should be removed.
+
+*NOTE: It will be unnecessary after the first successful session in viewer 2.0.
+Can be removed before public release.
+
+Implementation details:
+At the first run with this patch it patches all cached landmarks: removes LM sort prefixes and
+updates them on the viewer and server sides.
+Also it calls fetching agent's inventory to process not yet loaded landmarks too.
+If fetching is successfully done it will store special per-agent empty file-marker
+in the user temporary folder (where cached inventory is loaded) while caching agent's inventory.
+After that in will not affect the viewer until cached marker is removed.
+*/
+namespace LMSortPrefix
+{
+ bool cleanup_done = false;
+ const std::string getMarkerPath()
+ {
+ std::string path(gDirUtilp->getExpandedFilename(LL_PATH_CACHE, gAgentID.asString()));
+ std::string marker_filename = llformat("%s-lm_prefix_marker", path.c_str());
+
+ return marker_filename;
+ }
+ bool wasClean()
+ {
+ static bool was_clean = false;
+ static bool already_init = false;
+ if (already_init) return was_clean;
+
+ already_init = true;
+ std::string path_to_marker = getMarkerPath();
+ was_clean = LLFile::isfile(path_to_marker);
+
+ return was_clean;
+ }
+
+ void setLandmarksWereCleaned()
+ {
+ if (cleanup_done)
+ {
+ std::string path_to_marker = getMarkerPath();
+ LLFILE* file = LLFile::fopen(path_to_marker, "w");
+ if(!file)
+ {
+ llwarns << "unable to save marker that LM prefixes were removed: " << path_to_marker << llendl;
+ return;
+ }
+
+ fclose(file);
+ }
+ }
+
+ void removePrefix(LLPointer<LLViewerInventoryItem> inv_item)
+ {
+ if (wasClean())
+ {
+ LL_INFOS_ONCE("") << "Inventory was cleaned for this avatar. Patch can be removed." << LL_ENDL;
+ return;
+ }
+
+ if (LLInventoryType::IT_LANDMARK != inv_item->getInventoryType()) return;
+
+ std::string old_name = inv_item->getName();
+
+ S32 sort_field = -1;
+ std::string display_name;
+ BOOL exists = LLViewerInventoryItem::extractSortFieldAndDisplayName(old_name, &sort_field, &display_name);
+ if (exists && sort_field != -1)
+ {
+ llinfos << "Removing Landmark sort field and separator for: " << old_name << " | " << inv_item->getUUID() << llendl;
+ LLUUID parent_uuid = inv_item->getParentUUID();
+ if (gInventory.getCategory(parent_uuid))
+ {
+ llinfos << "parent folder is: " << gInventory.getCategory(parent_uuid)->getName() << llendl;
+ }
+
+
+ // mark item completed to avoid error while copying and updating server
+ inv_item->setComplete(TRUE);
+ LLPointer<LLViewerInventoryItem> new_item = new LLViewerInventoryItem(inv_item.get());
+ new_item->rename(display_name);
+ gInventory.updateItem(new_item);
+ new_item->updateServer(FALSE);
+
+ gInventory.notifyObservers();
+ }
+ }
+
+ void completeCleanup()
+ {
+ // background fetch is completed. can save marker
+ cleanup_done = true;
+ }
+}
+
///----------------------------------------------------------------------------
/// Class LLInventoryModel
///----------------------------------------------------------------------------
@@ -1741,6 +1840,8 @@ void LLInventoryModel::stopBackgroundFetch()
gIdleCallbacks.deleteFunction(&LLInventoryModel::backgroundFetch, NULL);
sBulkFetchCount=0;
sMinTimeBetweenFetches=0.0f;
+
+ LMSortPrefix::completeCleanup();
}
}
@@ -1887,6 +1988,13 @@ void LLInventoryModel::cache(
const LLUUID& parent_folder_id,
const LLUUID& agent_id)
{
+ if (getRootFolderID() == parent_folder_id)
+ {
+ // *TODO: mantipov: can be removed before public release, EXT-3985
+ //save marker to avoid fetching inventory on future sessions
+ LMSortPrefix::setLandmarksWereCleaned();
+ }
+
lldebugs << "Caching " << parent_folder_id << " for " << agent_id
<< llendl;
LLViewerInventoryCategory* root_cat = getCategory(parent_folder_id);
@@ -2697,6 +2805,28 @@ void LLInventoryModel::buildParentChildMap()
// The inv tree is built.
mIsAgentInvUsable = true;
+ {// *TODO: mantipov: can be removed before public release, EXT-3985
+ /*
+ *HACK: mantipov: to cleanup landmarks were marked with sort index prefix in name.
+ Is necessary to be called once per account after EXT-3985 is implemented.
+ So, let fetch agent's inventory, processing will be done in processInventoryDescendents()
+ Should be removed before public release.
+ */
+ if (!LMSortPrefix::wasClean())
+ {
+ cat_array_t cats;
+ item_array_t items;
+ collectDescendents(agent_inv_root_id, cats, items, INCLUDE_TRASH);
+
+ for (item_array_t::const_iterator it= items.begin(); it != items.end(); ++it)
+ {
+ LMSortPrefix::removePrefix(*it);
+ }
+
+ gInventory.startBackgroundFetch(agent_inv_root_id);
+ }
+ }
+
llinfos << "Inventory initialized, notifying observers" << llendl;
addChangedMask(LLInventoryObserver::ALL, LLUUID::null);
notifyObservers();
@@ -3462,6 +3592,10 @@ void LLInventoryModel::processInventoryDescendents(LLMessageSystem* msg,void**)
continue;
}
gInventory.updateItem(titem);
+
+ {// *TODO: mantipov: can be removed before public release, EXT-3985
+ LMSortPrefix::removePrefix(titem);
+ }
}
// set version and descendentcount according to message.
diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp
index 7e71ac90b4..12a2c370d2 100644
--- a/indra/newview/llinventorypanel.cpp
+++ b/indra/newview/llinventorypanel.cpp
@@ -759,7 +759,9 @@ bool LLInventoryPanel::beginIMSession()
S32 count = item_array.count();
if(count > 0)
{
- LLFloaterReg::showInstance("communicate");
+ //*TODO by what to replace that?
+ //LLFloaterReg::showInstance("communicate");
+
// create the session
LLAvatarTracker& at = LLAvatarTracker::instance();
LLUUID id;
diff --git a/indra/newview/lllocaltextureobject.cpp b/indra/newview/lllocaltextureobject.cpp
index 6bcbe6f58c..69eb5fce2f 100644
--- a/indra/newview/lllocaltextureobject.cpp
+++ b/indra/newview/lllocaltextureobject.cpp
@@ -47,7 +47,9 @@ LLLocalTextureObject::LLLocalTextureObject() :
mImage = NULL;
}
-LLLocalTextureObject::LLLocalTextureObject(LLViewerFetchedTexture* image, const LLUUID& id)
+LLLocalTextureObject::LLLocalTextureObject(LLViewerFetchedTexture* image, const LLUUID& id) :
+ mIsBakedReady(FALSE),
+ mDiscard(MAX_DISCARD_LEVEL+1)
{
mImage = image;
gGL.getTexUnit(0)->bind(mImage);
diff --git a/indra/newview/lllocationhistory.cpp b/indra/newview/lllocationhistory.cpp
index ae1b8f8540..df93930d33 100644
--- a/indra/newview/lllocationhistory.cpp
+++ b/indra/newview/lllocationhistory.cpp
@@ -50,18 +50,19 @@ void LLLocationHistory::addItem(const LLLocationHistoryItem& item) {
// check if this item doesn't duplicate any existing one
location_list_t::iterator item_iter = std::find(mItems.begin(), mItems.end(),item);
- if(item_iter != mItems.end()){
+ if(item_iter != mItems.end()) // if it already exists, erase the old one
+ {
mItems.erase(item_iter);
}
mItems.push_back(item);
- // If the vector size exceeds the maximum, purge the oldest items.
- if ((S32)mItems.size() > max_items) {
- for(location_list_t::iterator i = mItems.begin(); i != mItems.end()-max_items; ++i) {
- mItems.erase(i);
- }
+ // If the vector size exceeds the maximum, purge the oldest items (at the start of the mItems vector).
+ if ((S32)mItems.size() > max_items)
+ {
+ mItems.erase(mItems.begin(), mItems.end()-max_items);
}
+ llassert((S32)mItems.size() <= max_items);
}
/*
diff --git a/indra/newview/lllocationinputctrl.cpp b/indra/newview/lllocationinputctrl.cpp
index 8956a5e1bb..73fb124e9e 100644
--- a/indra/newview/lllocationinputctrl.cpp
+++ b/indra/newview/lllocationinputctrl.cpp
@@ -39,6 +39,7 @@
#include "llbutton.h"
#include "llfocusmgr.h"
#include "llmenugl.h"
+#include "llparcel.h"
#include "llstring.h"
#include "lltrans.h"
#include "lluictrlfactory.h"
@@ -671,11 +672,12 @@ void LLLocationInputCtrl::refreshParcelIcons()
if (show_properties)
{
LLViewerParcelMgr* vpm = LLViewerParcelMgr::getInstance();
- bool allow_buy = vpm->canAgentBuyParcel( vpm->getAgentParcel(), false);
+ LLParcel* agent_parcel = vpm->getAgentParcel();
+ bool allow_buy = vpm->canAgentBuyParcel( agent_parcel, false);
bool allow_voice = vpm->allowAgentVoice();
bool allow_fly = vpm->allowAgentFly();
bool allow_push = vpm->allowAgentPush();
- bool allow_build = vpm->allowAgentBuild();
+ bool allow_build = agent_parcel && agent_parcel->getAllowModify(); // true when anyone is allowed to build. See EXT-4610.
bool allow_scripts = vpm->allowAgentScripts();
bool allow_damage = vpm->allowAgentDamage();
diff --git a/indra/newview/llmanipscale.cpp b/indra/newview/llmanipscale.cpp
index 84a5eb7352..ee3ffa2450 100644
--- a/indra/newview/llmanipscale.cpp
+++ b/indra/newview/llmanipscale.cpp
@@ -180,6 +180,7 @@ LLManipScale::LLManipScale( LLToolComposite* composite )
mScaleSnapUnit2(1.f),
mSnapRegimeOffset(0.f),
mSnapGuideLength(0.f),
+ mInSnapRegime(FALSE),
mScaleSnapValue(0.f)
{
mManipulatorScales = new F32[NUM_MANIPULATORS];
diff --git a/indra/newview/llmaniptranslate.cpp b/indra/newview/llmaniptranslate.cpp
index 5f30ab4e01..52fe31fbba 100644
--- a/indra/newview/llmaniptranslate.cpp
+++ b/indra/newview/llmaniptranslate.cpp
@@ -123,9 +123,13 @@ LLManipTranslate::LLManipTranslate( LLToolComposite* composite )
mAxisArrowLength(50),
mConeSize(0),
mArrowLengthMeters(0.f),
+ mGridSizeMeters(1.f),
mPlaneManipOffsetMeters(0.f),
mUpdateTimer(),
mSnapOffsetMeters(0.f),
+ mSubdivisions(10.f),
+ mInSnapRegime(FALSE),
+ mSnapped(FALSE),
mArrowScales(1.f, 1.f, 1.f),
mPlaneScales(1.f, 1.f, 1.f),
mPlaneManipPositions(1.f, 1.f, 1.f, 1.f)
diff --git a/indra/newview/llmoveview.cpp b/indra/newview/llmoveview.cpp
index 0ab3b07aea..4bf2bac649 100644
--- a/indra/newview/llmoveview.cpp
+++ b/indra/newview/llmoveview.cpp
@@ -589,8 +589,16 @@ void LLPanelStandStopFlying::setVisible(BOOL visible)
updatePosition();
}
- //change visibility of parent layout_panel to animate in/out
- if (getParent()) getParent()->setVisible(visible);
+ // do not change parent visibility in case panel is attached into Move Floater: EXT-3632, EXT-4646
+ if (!mAttached)
+ {
+ //change visibility of parent layout_panel to animate in/out. EXT-2504
+ if (getParent()) getParent()->setVisible(visible);
+ }
+
+ // also change own visibility to avoid displaying the panel in mouselook (broken when EXT-2504 was implemented).
+ // See EXT-4718.
+ LLPanel::setVisible(visible);
}
BOOL LLPanelStandStopFlying::handleToolTip(S32 x, S32 y, MASK mask)
@@ -614,7 +622,7 @@ void LLPanelStandStopFlying::reparent(LLFloaterMove* move_view)
LLPanel* parent = dynamic_cast<LLPanel*>(getParent());
if (!parent)
{
- llwarns << "Stand/stop flying panel parent is unset" << llendl;
+ llwarns << "Stand/stop flying panel parent is unset, already attached?: " << mAttached << ", new parent: " << (move_view == NULL ? "NULL" : "Move Floater") << llendl;
return;
}
@@ -643,6 +651,9 @@ void LLPanelStandStopFlying::reparent(LLFloaterMove* move_view)
// Detach from movement controls.
parent->removeChild(this);
mOriginalParent.get()->addChild(this);
+ // update parent with self visibility (it is changed in setVisible()). EXT-4743
+ mOriginalParent.get()->setVisible(getVisible());
+
mAttached = false;
updatePosition(); // don't defer until next draw() to avoid flicker
}
@@ -684,6 +695,7 @@ void LLPanelStandStopFlying::onStopFlyingButtonClick()
gAgent.setFlying(FALSE);
setFocus(FALSE); // EXT-482
+ setVisible(FALSE);
}
/**
diff --git a/indra/newview/llmutelist.cpp b/indra/newview/llmutelist.cpp
index c1666f5666..2d3c4b187e 100644
--- a/indra/newview/llmutelist.cpp
+++ b/indra/newview/llmutelist.cpp
@@ -58,7 +58,6 @@
#include "llagent.h"
#include "llviewergenericmessage.h" // for gGenericDispatcher
#include "llworld.h" //for particle system banning
-#include "llimpanel.h"
#include "llimview.h"
#include "llnotifications.h"
#include "llviewerobjectlist.h"
@@ -472,12 +471,6 @@ void notify_automute_callback(const LLUUID& agent_id, const std::string& first_n
if (reason == LLMuteList::AR_IM)
{
- LLFloaterIMPanel *timp = gIMMgr->findFloaterBySession(agent_id);
- if (timp)
- {
- timp->addHistoryLine(message);
- }
-
LLIMModel::getInstance()->addMessage(agent_id, SYSTEM_FROM, LLUUID::null, message);
}
}
diff --git a/indra/newview/llnamelistctrl.cpp b/indra/newview/llnamelistctrl.cpp
index 6375362ae2..9f04558d50 100644
--- a/indra/newview/llnamelistctrl.cpp
+++ b/indra/newview/llnamelistctrl.cpp
@@ -148,7 +148,7 @@ BOOL LLNameListCtrl::handleToolTip(S32 x, S32 y, MASK mask)
&& column_index == mNameColumnIndex)
{
// ...this is the column with the avatar name
- LLUUID avatar_id = getItemId(hit_item);
+ LLUUID avatar_id = hit_item->getUUID();
if (avatar_id.notNull())
{
// ...valid avatar id
@@ -230,14 +230,15 @@ LLScrollListItem* LLNameListCtrl::addNameItemRow(
std::string& suffix)
{
LLUUID id = name_item.value().asUUID();
- LLScrollListItem* item = NULL;
+ LLNameListItem* item = NULL;
// Store item type so that we can invoke the proper inspector.
// *TODO Vadim: Is there a more proper way of storing additional item data?
{
- LLNameListCtrl::NameItem name_item_(name_item);
- name_item_.value = LLSD().with("uuid", id).with("is_group", name_item.target() == GROUP);
- item = LLScrollListCtrl::addRow(name_item_, pos);
+ LLNameListCtrl::NameItem item_p(name_item);
+ item_p.value = LLSD().with("uuid", id).with("is_group", name_item.target() == GROUP);
+ item = new LLNameListItem(item_p);
+ LLScrollListCtrl::addRow(item, item_p, pos);
}
if (!item) return NULL;
@@ -298,7 +299,7 @@ void LLNameListCtrl::removeNameItem(const LLUUID& agent_id)
for (item_list::iterator it = getItemList().begin(); it != getItemList().end(); it++)
{
LLScrollListItem* item = *it;
- if (getItemId(item) == agent_id)
+ if (item->getUUID() == agent_id)
{
idx = getItemIndex(item);
break;
@@ -335,7 +336,7 @@ void LLNameListCtrl::refresh(const LLUUID& id, const std::string& first,
for (iter = getItemList().begin(); iter != getItemList().end(); iter++)
{
LLScrollListItem* item = *iter;
- if (getItemId(item) == id)
+ if (item->getUUID() == id)
{
LLScrollListCell* cell = (LLScrollListCell*)item->getColumn(0);
cell = item->getColumn(mNameColumnIndex);
@@ -375,9 +376,3 @@ void LLNameListCtrl::updateColumns()
}
}
}
-
-// static
-LLUUID LLNameListCtrl::getItemId(LLScrollListItem* item)
-{
- return item->getValue()["uuid"].asUUID();
-}
diff --git a/indra/newview/llnamelistctrl.h b/indra/newview/llnamelistctrl.h
index 192a3a5afa..23b1cb6897 100644
--- a/indra/newview/llnamelistctrl.h
+++ b/indra/newview/llnamelistctrl.h
@@ -122,7 +122,6 @@ public:
/*virtual*/ void updateColumns();
private:
void showInspector(const LLUUID& avatar_id, bool is_group);
- static LLUUID getItemId(LLScrollListItem* item);
private:
S32 mNameColumnIndex;
@@ -130,4 +129,24 @@ private:
BOOL mAllowCallingCardDrop;
};
+/**
+ * LLNameListCtrl item
+ *
+ * We don't use LLScrollListItem to be able to override getUUID(), which is needed
+ * because the name list item value is not simply an UUID but a map (uuid, is_group).
+ */
+class LLNameListItem : public LLScrollListItem
+{
+public:
+ LLUUID getUUID() const { return getValue()["uuid"].asUUID(); }
+
+protected:
+ friend class LLNameListCtrl;
+
+ LLNameListItem( const LLScrollListItem::Params& p )
+ : LLScrollListItem(p)
+ {
+ }
+};
+
#endif
diff --git a/indra/newview/llnearbychat.cpp b/indra/newview/llnearbychat.cpp
index 0a8d020b4f..90482eb74d 100644
--- a/indra/newview/llnearbychat.cpp
+++ b/indra/newview/llnearbychat.cpp
@@ -153,7 +153,7 @@ std::string appendTime()
}
-void LLNearbyChat::addMessage(const LLChat& chat,bool archive)
+void LLNearbyChat::addMessage(const LLChat& chat,bool archive,const LLSD &args)
{
if (chat.mChatType == CHAT_TYPE_DEBUG_MSG)
{
@@ -184,7 +184,9 @@ void LLNearbyChat::addMessage(const LLChat& chat,bool archive)
if (!chat.mMuted)
{
tmp_chat.mFromName = chat.mFromName;
- mChatHistory->appendMessage(chat, use_plain_text_chat_history);
+ LLSD chat_args = args;
+ chat_args["use_plain_text_chat_history"] = use_plain_text_chat_history;
+ mChatHistory->appendMessage(chat, chat_args);
}
if(archive)
diff --git a/indra/newview/llnearbychat.h b/indra/newview/llnearbychat.h
index 938b77df7a..5fb8ade19e 100644
--- a/indra/newview/llnearbychat.h
+++ b/indra/newview/llnearbychat.h
@@ -47,7 +47,7 @@ public:
~LLNearbyChat();
BOOL postBuild ();
- void addMessage (const LLChat& message,bool archive = true);
+ void addMessage (const LLChat& message,bool archive = true, const LLSD &args = LLSD());
void onNearbyChatContextMenuItemClicked(const LLSD& userdata);
bool onNearbyChatCheckContextMenuItem(const LLSD& userdata);
diff --git a/indra/newview/llnearbychathandler.cpp b/indra/newview/llnearbychathandler.cpp
index c50e049d4c..c08ca30bab 100644
--- a/indra/newview/llnearbychathandler.cpp
+++ b/indra/newview/llnearbychathandler.cpp
@@ -319,7 +319,7 @@ void LLNearbyChatHandler::initChannel()
-void LLNearbyChatHandler::processChat(const LLChat& chat_msg)
+void LLNearbyChatHandler::processChat(const LLChat& chat_msg, const LLSD &args)
{
if(chat_msg.mMuted == TRUE)
return;
@@ -337,7 +337,7 @@ void LLNearbyChatHandler::processChat(const LLChat& chat_msg)
//if(tmp_chat.mFromName.empty() && tmp_chat.mFromID!= LLUUID::null)
// tmp_chat.mFromName = tmp_chat.mFromID.asString();
}
- nearby_chat->addMessage(chat_msg);
+ nearby_chat->addMessage(chat_msg, true, args);
if(nearby_chat->getVisible())
return;//no need in toast if chat is visible
@@ -356,12 +356,17 @@ void LLNearbyChatHandler::processChat(const LLChat& chat_msg)
initChannel();
}
+ /*
+ //comment all this due to EXT-4432
+ ..may clean up after some time...
+
//only messages from AGENTS
if(CHAT_SOURCE_OBJECT == chat_msg.mSourceType)
{
if(chat_msg.mChatType == CHAT_TYPE_DEBUG_MSG)
return;//ok for now we don't skip messeges from object, so skip only debug messages
}
+ */
LLUUID id;
id.generate();
diff --git a/indra/newview/llnearbychathandler.h b/indra/newview/llnearbychathandler.h
index fb2abac6a4..01a6de5610 100644
--- a/indra/newview/llnearbychathandler.h
+++ b/indra/newview/llnearbychathandler.h
@@ -45,7 +45,7 @@ public:
virtual ~LLNearbyChatHandler();
- virtual void processChat(const LLChat& chat_msg);
+ virtual void processChat(const LLChat& chat_msg, const LLSD &args);
protected:
virtual void onDeleteToast(LLToast* toast);
diff --git a/indra/newview/llnotificationhandler.h b/indra/newview/llnotificationhandler.h
index 0fb438bfe9..e57674d31c 100644
--- a/indra/newview/llnotificationhandler.h
+++ b/indra/newview/llnotificationhandler.h
@@ -135,7 +135,7 @@ class LLChatHandler : public LLEventHandler
public:
virtual ~LLChatHandler() {};
- virtual void processChat(const LLChat& chat_msg)=0;
+ virtual void processChat(const LLChat& chat_msg, const LLSD &args)=0;
};
/**
diff --git a/indra/newview/llnotificationhandlerutil.cpp b/indra/newview/llnotificationhandlerutil.cpp
index fba5773602..02f948eca9 100644
--- a/indra/newview/llnotificationhandlerutil.cpp
+++ b/indra/newview/llnotificationhandlerutil.cpp
@@ -123,7 +123,14 @@ void LLHandlerUtil::logToIM(const EInstantMessage& session_type,
message);
// restore active session id
- LLIMModel::instance().setActiveSessionID(active_session_id);
+ if (active_session_id.isNull())
+ {
+ LLIMModel::instance().resetActiveSessionID();
+ }
+ else
+ {
+ LLIMModel::instance().setActiveSessionID(active_session_id);
+ }
}
}
diff --git a/indra/newview/llnotificationmanager.cpp b/indra/newview/llnotificationmanager.cpp
index 66bc217d15..4401bb953f 100644
--- a/indra/newview/llnotificationmanager.cpp
+++ b/indra/newview/llnotificationmanager.cpp
@@ -107,16 +107,17 @@ bool LLNotificationManager::onNotification(const LLSD& notify)
}
//--------------------------------------------------------------------------
-void LLNotificationManager::onChat(const LLChat& msg,ENotificationType type)
+void LLNotificationManager::onChat(const LLChat& msg, const LLSD &args)
{
- switch(type)
+ // check ENotificationType argument
+ switch(args["type"].asInteger())
{
case NT_NEARBYCHAT:
{
LLNearbyChatHandler* handle = dynamic_cast<LLNearbyChatHandler*>(mNotifyHandlers["nearbychat"].get());
if(handle)
- handle->processChat(msg);
+ handle->processChat(msg, args);
}
break;
default: //no need to handle all enum types
diff --git a/indra/newview/llnotificationmanager.h b/indra/newview/llnotificationmanager.h
index 072fc6f24c..575aa69c4d 100644
--- a/indra/newview/llnotificationmanager.h
+++ b/indra/newview/llnotificationmanager.h
@@ -66,7 +66,7 @@ public:
bool onNotification(const LLSD& notification);
// this method reacts on chat notifications and calls an appropriate handler
- void onChat(const LLChat& msg,ENotificationType type);
+ void onChat(const LLChat& msg, const LLSD &args);
// get a handler for a certain type of notification
LLEventHandler* getHandlerForNotification(std::string notification_type);
diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp
index dc40ed9c6a..03d3c11b76 100644
--- a/indra/newview/llpanelavatar.cpp
+++ b/indra/newview/llpanelavatar.cpp
@@ -635,6 +635,9 @@ void LLPanelAvatarProfile::fillCommonData(const LLAvatarData* avatar_data)
childSetValue("2nd_life_pic", avatar_data->image_id);
childSetValue("real_world_pic", avatar_data->fl_image_id);
childSetValue("homepage_edit", avatar_data->profile_url);
+
+ // Hide home page textbox if no page was set to fix "homepage URL appears clickable without URL - EXT-4734"
+ childSetVisible("homepage_edit", !avatar_data->profile_url.empty());
}
void LLPanelAvatarProfile::fillPartnerData(const LLAvatarData* avatar_data)
diff --git a/indra/newview/llpanelcontents.cpp b/indra/newview/llpanelcontents.cpp
index 9d591ef43d..2a7d097f94 100644
--- a/indra/newview/llpanelcontents.cpp
+++ b/indra/newview/llpanelcontents.cpp
@@ -50,7 +50,6 @@
// project includes
#include "llagent.h"
-#include "llfloaterbulkpermission.h"
#include "llpanelobjectinventory.h"
#include "llpreviewscript.h"
#include "llresmgr.h"
@@ -60,6 +59,7 @@
#include "lltoolmgr.h"
#include "lltrans.h"
#include "llviewerassettype.h"
+#include "llviewerinventory.h"
#include "llviewerobject.h"
#include "llviewerregion.h"
#include "llviewerwindow.h"
diff --git a/indra/newview/llpanelgroup.cpp b/indra/newview/llpanelgroup.cpp
index c37fc59745..28abcab99e 100644
--- a/indra/newview/llpanelgroup.cpp
+++ b/indra/newview/llpanelgroup.cpp
@@ -89,8 +89,8 @@ BOOL LLPanelGroupTab::postBuild()
LLPanelGroup::LLPanelGroup()
: LLPanel(),
LLGroupMgrObserver( LLUUID() ),
- mAllowEdit( TRUE )
- ,mShowingNotifyDialog(false)
+ mSkipRefresh(FALSE),
+ mShowingNotifyDialog(false)
{
// Set up the factory callbacks.
// Roles sub tabs
@@ -168,7 +168,6 @@ BOOL LLPanelGroup::postBuild()
button = getChild<LLButton>("btn_refresh");
button->setClickedCallback(onBtnRefresh, this);
- button->setVisible(mAllowEdit);
getChild<LLButton>("btn_create")->setVisible(false);
@@ -492,7 +491,12 @@ bool LLPanelGroup::apply(LLPanelGroupTab* tab)
std::string apply_mesg;
if(tab->apply( apply_mesg ) )
+ {
+ //we skip refreshing group after ew manually apply changes since its very annoying
+ //for those who are editing group
+ mSkipRefresh = TRUE;
return true;
+ }
if ( !apply_mesg.empty() )
{
@@ -539,6 +543,11 @@ void LLPanelGroup::draw()
void LLPanelGroup::refreshData()
{
+ if(mSkipRefresh)
+ {
+ mSkipRefresh = FALSE;
+ return;
+ }
LLGroupMgr::getInstance()->clearGroupData(getID());
setGroupID(getID());
@@ -560,10 +569,10 @@ void LLPanelGroup::chatGroup()
}
void LLPanelGroup::showNotice(const std::string& subject,
- const std::string& message,
- const bool& has_inventory,
- const std::string& inventory_name,
- LLOfferInfo* inventory_offer)
+ const std::string& message,
+ const bool& has_inventory,
+ const std::string& inventory_name,
+ LLOfferInfo* inventory_offer)
{
LLPanelGroupNotices* panel_notices = findChild<LLPanelGroupNotices>("group_notices_tab_panel");
if(!panel_notices)
diff --git a/indra/newview/llpanelgroup.h b/indra/newview/llpanelgroup.h
index 8c84695677..6e23eedffb 100644
--- a/indra/newview/llpanelgroup.h
+++ b/indra/newview/llpanelgroup.h
@@ -85,9 +85,6 @@ public:
virtual void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);
- void setAllowEdit(BOOL v) { mAllowEdit = v; }
-
-
static void refreshCreatedGroup(const LLUUID& group_id);
static void showNotice(const std::string& subject,
@@ -126,7 +123,7 @@ protected:
LLTimer mRefreshTimer;
- BOOL mAllowEdit;
+ BOOL mSkipRefresh;
std::string mDefaultNeedsApplyMesg;
std::string mWantApplyMesg;
@@ -169,8 +166,6 @@ public:
virtual BOOL isVisibleByAgent(LLAgent* agentp);
- void setAllowEdit(BOOL v) { mAllowEdit = v; }
-
virtual void setGroupID(const LLUUID& id) {mGroupID = id;};
void notifyObservers() {};
diff --git a/indra/newview/llpanelgroupnotices.cpp b/indra/newview/llpanelgroupnotices.cpp
index 45fc3d4688..6210973dae 100644
--- a/indra/newview/llpanelgroupnotices.cpp
+++ b/indra/newview/llpanelgroupnotices.cpp
@@ -614,7 +614,7 @@ void LLPanelGroupNotices::showNotice(const std::string& subject,
mViewInventoryIcon->setVisible(TRUE);
std::stringstream ss;
- ss << " " << LLViewerInventoryItem::getDisplayName(inventory_name);
+ ss << " " << inventory_name;
mViewInventoryName->setText(ss.str());
mBtnOpenAttachment->setEnabled(TRUE);
diff --git a/indra/newview/llpanelgrouproles.cpp b/indra/newview/llpanelgrouproles.cpp
index 45f0381d6f..c6287472fe 100644
--- a/indra/newview/llpanelgrouproles.cpp
+++ b/indra/newview/llpanelgrouproles.cpp
@@ -867,7 +867,7 @@ void LLPanelGroupMembersSubTab::handleMemberSelect()
for (itor = selection.begin();
itor != selection.end(); ++itor)
{
- LLUUID member_id = (*itor)->getValue()["uuid"];
+ LLUUID member_id = (*itor)->getUUID();
selected_members.push_back( member_id );
// Get this member's power mask including any unsaved changes
@@ -1093,7 +1093,7 @@ void LLPanelGroupMembersSubTab::handleEjectMembers()
for (itor = selection.begin() ;
itor != selection.end(); ++itor)
{
- LLUUID member_id = (*itor)->getValue()["uuid"];
+ LLUUID member_id = (*itor)->getUUID();
selected_members.push_back( member_id );
}
@@ -1151,7 +1151,7 @@ void LLPanelGroupMembersSubTab::handleRoleCheck(const LLUUID& role_id,
itor != selection.end(); ++itor)
{
- member_id = (*itor)->getValue()["uuid"];
+ member_id = (*itor)->getUUID();
//see if we requested a change for this member before
if ( mMemberRoleChangeData.find(member_id) == mMemberRoleChangeData.end() )
@@ -1242,7 +1242,7 @@ void LLPanelGroupMembersSubTab::handleMemberDoubleClick()
LLScrollListItem* selected = mMembersList->getFirstSelected();
if (selected)
{
- LLUUID member_id = selected->getValue()["uuid"];
+ LLUUID member_id = selected->getUUID();
LLAvatarActions::showProfile( member_id );
}
}
@@ -1632,7 +1632,7 @@ void LLPanelGroupMembersSubTab::updateMembers()
LLScrollListItem* member = mMembersList->addElement(row);//, ADD_SORTED);
- LLUUID id = member->getValue()["uuid"];
+ LLUUID id = member->getUUID();
mHasMatch = TRUE;
}
}
diff --git a/indra/newview/llpanellandmarkinfo.cpp b/indra/newview/llpanellandmarkinfo.cpp
index 9654e17659..36a542cfa0 100644
--- a/indra/newview/llpanellandmarkinfo.cpp
+++ b/indra/newview/llpanellandmarkinfo.cpp
@@ -98,17 +98,17 @@ void LLPanelLandmarkInfo::resetLocation()
{
LLPanelPlaceInfo::resetLocation();
- std::string not_available = getString("not_available");
- mCreator->setText(not_available);
- mOwner->setText(not_available);
- mCreated->setText(not_available);
+ std::string loading = LLTrans::getString("LoadingData");
+ mCreator->setText(loading);
+ mOwner->setText(loading);
+ mCreated->setText(loading);
mLandmarkTitle->setText(LLStringUtil::null);
mLandmarkTitleEditor->setText(LLStringUtil::null);
mNotesEditor->setText(LLStringUtil::null);
}
// virtual
-void LLPanelLandmarkInfo::setInfoType(INFO_TYPE type)
+void LLPanelLandmarkInfo::setInfoType(EInfoType type)
{
LLPanel* landmark_info_panel = getChild<LLPanel>("landmark_info_panel");
@@ -367,7 +367,6 @@ void LLPanelLandmarkInfo::createLandmark(const LLUUID& folder_id)
}
LLStringUtil::replaceChar(desc, '\n', ' ');
- LLViewerInventoryItem::insertDefaultSortField(name);
// If no folder chosen use the "Landmarks" folder.
LLLandmarkActions::createLandmarkHere(name, desc,
diff --git a/indra/newview/llpanellandmarkinfo.h b/indra/newview/llpanellandmarkinfo.h
index 2a9949ae41..b3dc3f5ad9 100644
--- a/indra/newview/llpanellandmarkinfo.h
+++ b/indra/newview/llpanellandmarkinfo.h
@@ -49,7 +49,7 @@ public:
/*virtual*/ void resetLocation();
- /*virtual*/ void setInfoType(INFO_TYPE type);
+ /*virtual*/ void setInfoType(EInfoType type);
/*virtual*/ void processParcelInfo(const LLParcelData& parcel_data);
diff --git a/indra/newview/llpanelobject.cpp b/indra/newview/llpanelobject.cpp
index d17c287cc7..30221da12a 100644
--- a/indra/newview/llpanelobject.cpp
+++ b/indra/newview/llpanelobject.cpp
@@ -316,11 +316,14 @@ BOOL LLPanelObject::postBuild()
LLPanelObject::LLPanelObject()
: LLPanel(),
+ mComboMaterialItemCount(0),
mIsPhysical(FALSE),
mIsTemporary(FALSE),
mIsPhantom(FALSE),
mCastShadows(TRUE),
- mSelectedType(MI_BOX)
+ mSelectedType(MI_BOX),
+ mSculptTextureRevert(LLUUID::null),
+ mSculptTypeRevert(0)
{
}
diff --git a/indra/newview/llpanelobjectinventory.cpp b/indra/newview/llpanelobjectinventory.cpp
index d4376550d6..5c5c35141e 100644
--- a/indra/newview/llpanelobjectinventory.cpp
+++ b/indra/newview/llpanelobjectinventory.cpp
@@ -463,10 +463,6 @@ BOOL LLTaskInvFVBridge::removeItem()
}
else
{
- remove_data_t* data = new remove_data_t;
- data->first = mPanel;
- data->second.first = mPanel->getTaskUUID();
- data->second.second.push_back(mUUID);
LLSD payload;
payload["task_id"] = mPanel->getTaskUUID();
payload["inventory_ids"].append(mUUID);
diff --git a/indra/newview/llpanelpeoplemenus.cpp b/indra/newview/llpanelpeoplemenus.cpp
index d9651a6045..470cfca8fe 100644
--- a/indra/newview/llpanelpeoplemenus.cpp
+++ b/indra/newview/llpanelpeoplemenus.cpp
@@ -55,6 +55,22 @@ ContextMenu::ContextMenu()
{
}
+ContextMenu::~ContextMenu()
+{
+ // do not forget delete LLContextMenu* mMenu.
+ // It can have registered Enable callbacks which are called from the LLMenuHolderGL::draw()
+ // via selected item (menu_item_call) by calling LLMenuItemCallGL::buildDrawLabel.
+ // we can have a crash via using callbacks of deleted instance of ContextMenu. EXT-4725
+
+ // menu holder deletes its menus on viewer exit, so we have no way to determine if instance
+ // of mMenu has already been deleted except of using LLHandle. EXT-4762.
+ if (!mMenuHandle.isDead())
+ {
+ mMenu->die();
+ mMenu = NULL;
+ }
+}
+
void ContextMenu::show(LLView* spawning_view, const std::vector<LLUUID>& uuids, S32 x, S32 y)
{
if (mMenu)
@@ -77,6 +93,7 @@ void ContextMenu::show(LLView* spawning_view, const std::vector<LLUUID>& uuids,
std::copy(uuids.begin(), uuids.end(), mUUIDs.begin());
mMenu = createMenu();
+ mMenuHandle = mMenu->getHandle();
mMenu->show(x, y);
LLMenuGL::showPopup(spawning_view, mMenu, x, y);
}
diff --git a/indra/newview/llpanelpeoplemenus.h b/indra/newview/llpanelpeoplemenus.h
index 14ae2985f0..913638d8c8 100644
--- a/indra/newview/llpanelpeoplemenus.h
+++ b/indra/newview/llpanelpeoplemenus.h
@@ -45,7 +45,7 @@ class ContextMenu : public LLAvatarListItem::ContextMenu
{
public:
ContextMenu();
- virtual ~ContextMenu() {}
+ virtual ~ContextMenu();
/**
* Show the menu at specified coordinates.
@@ -62,6 +62,7 @@ protected:
std::vector<LLUUID> mUUIDs;
LLContextMenu* mMenu;
+ LLHandle<LLView> mMenuHandle;
};
/**
diff --git a/indra/newview/llpanelplaceinfo.cpp b/indra/newview/llpanelplaceinfo.cpp
index 0c10f11bfc..9ebc8ca2b9 100644
--- a/indra/newview/llpanelplaceinfo.cpp
+++ b/indra/newview/llpanelplaceinfo.cpp
@@ -43,6 +43,8 @@
#include "lliconctrl.h"
#include "lltextbox.h"
+#include "lltrans.h"
+
#include "llagent.h"
#include "llexpandabletextbox.h"
#include "llpanelpick.h"
@@ -56,6 +58,7 @@ LLPanelPlaceInfo::LLPanelPlaceInfo()
mPosRegion(),
mScrollingPanelMinHeight(0),
mScrollingPanelWidth(0),
+ mInfoType(UNKNOWN),
mScrollingPanel(NULL),
mScrollContainer(NULL)
{}
@@ -99,12 +102,12 @@ void LLPanelPlaceInfo::resetLocation()
mRequestedID.setNull();
mPosRegion.clearVec();
- std::string not_available = getString("not_available");
- mMaturityRatingIcon->setValue(not_available);
- mMaturityRatingText->setValue(not_available);
- mRegionName->setText(not_available);
- mParcelName->setText(not_available);
- mDescEditor->setText(not_available);
+ std::string loading = LLTrans::getString("LoadingData");
+ mMaturityRatingIcon->setValue(loading);
+ mMaturityRatingText->setValue(loading);
+ mRegionName->setText(loading);
+ mParcelName->setText(loading);
+ mDescEditor->setText(loading);
mSnapshotCtrl->setImageAssetID(LLUUID::null);
mSnapshotCtrl->setFallbackImageName("default_land_picture.j2c");
@@ -118,7 +121,7 @@ void LLPanelPlaceInfo::setParcelID(const LLUUID& parcel_id)
}
//virtual
-void LLPanelPlaceInfo::setInfoType(INFO_TYPE type)
+void LLPanelPlaceInfo::setInfoType(EInfoType type)
{
mTitle->setText(mCurrentTitle);
@@ -206,6 +209,10 @@ void LLPanelPlaceInfo::processParcelInfo(const LLParcelData& parcel_data)
{
mDescEditor->setText(parcel_data.desc);
}
+ else
+ {
+ mDescEditor->setText(getString("not_available"));
+ }
S32 region_x;
S32 region_y;
diff --git a/indra/newview/llpanelplaceinfo.h b/indra/newview/llpanelplaceinfo.h
index 3091f7ed24..deedbd2b0f 100644
--- a/indra/newview/llpanelplaceinfo.h
+++ b/indra/newview/llpanelplaceinfo.h
@@ -54,8 +54,10 @@ class LLViewerInventoryCategory;
class LLPanelPlaceInfo : public LLPanel, LLRemoteParcelInfoObserver
{
public:
- enum INFO_TYPE
+ enum EInfoType
{
+ UNKNOWN,
+
AGENT,
CREATE_LANDMARK,
LANDMARK,
@@ -79,7 +81,7 @@ public:
// Depending on how the panel was triggered
// (from landmark or current location, or other)
// sets a corresponding title and contents.
- virtual void setInfoType(INFO_TYPE type);
+ virtual void setInfoType(EInfoType type);
// Requests remote parcel info by parcel ID.
void sendParcelInfoRequest();
@@ -114,7 +116,7 @@ protected:
std::string mCurrentTitle;
S32 mScrollingPanelMinHeight;
S32 mScrollingPanelWidth;
- INFO_TYPE mInfoType;
+ EInfoType mInfoType;
LLScrollContainer* mScrollContainer;
LLPanel* mScrollingPanel;
diff --git a/indra/newview/llpanelplaceprofile.cpp b/indra/newview/llpanelplaceprofile.cpp
index d892e2885b..8d689b2c5e 100644
--- a/indra/newview/llpanelplaceprofile.cpp
+++ b/indra/newview/llpanelplaceprofile.cpp
@@ -42,6 +42,8 @@
#include "lltextbox.h"
#include "lltexteditor.h"
+#include "lltrans.h"
+
#include "llaccordionctrl.h"
#include "llaccordionctrltab.h"
#include "llagent.h"
@@ -163,49 +165,49 @@ void LLPanelPlaceProfile::resetLocation()
mForSalePanel->setVisible(FALSE);
mYouAreHerePanel->setVisible(FALSE);
- std::string not_available = getString("not_available");
- mParcelOwner->setValue(not_available);
-
- mParcelRatingIcon->setValue(not_available);
- mParcelRatingText->setText(not_available);
- mVoiceIcon->setValue(not_available);
- mVoiceText->setText(not_available);
- mFlyIcon->setValue(not_available);
- mFlyText->setText(not_available);
- mPushIcon->setValue(not_available);
- mPushText->setText(not_available);
- mBuildIcon->setValue(not_available);
- mBuildText->setText(not_available);
- mScriptsIcon->setValue(not_available);
- mScriptsText->setText(not_available);
- mDamageIcon->setValue(not_available);
- mDamageText->setText(not_available);
-
- mRegionNameText->setValue(not_available);
- mRegionTypeText->setValue(not_available);
- mRegionRatingIcon->setValue(not_available);
- mRegionRatingText->setValue(not_available);
- mRegionOwnerText->setValue(not_available);
- mRegionGroupText->setValue(not_available);
-
- mEstateNameText->setValue(not_available);
- mEstateRatingText->setValue(not_available);
- mEstateOwnerText->setValue(not_available);
- mCovenantText->setValue(not_available);
-
- mSalesPriceText->setValue(not_available);
- mAreaText->setValue(not_available);
- mTrafficText->setValue(not_available);
- mPrimitivesText->setValue(not_available);
- mParcelScriptsText->setValue(not_available);
- mTerraformLimitsText->setValue(not_available);
- mSubdivideText->setValue(not_available);
- mResaleText->setValue(not_available);
- mSaleToText->setValue(not_available);
+ std::string loading = LLTrans::getString("LoadingData");
+ mParcelOwner->setValue(loading);
+
+ mParcelRatingIcon->setValue(loading);
+ mParcelRatingText->setText(loading);
+ mVoiceIcon->setValue(loading);
+ mVoiceText->setText(loading);
+ mFlyIcon->setValue(loading);
+ mFlyText->setText(loading);
+ mPushIcon->setValue(loading);
+ mPushText->setText(loading);
+ mBuildIcon->setValue(loading);
+ mBuildText->setText(loading);
+ mScriptsIcon->setValue(loading);
+ mScriptsText->setText(loading);
+ mDamageIcon->setValue(loading);
+ mDamageText->setText(loading);
+
+ mRegionNameText->setValue(loading);
+ mRegionTypeText->setValue(loading);
+ mRegionRatingIcon->setValue(loading);
+ mRegionRatingText->setValue(loading);
+ mRegionOwnerText->setValue(loading);
+ mRegionGroupText->setValue(loading);
+
+ mEstateNameText->setValue(loading);
+ mEstateRatingText->setValue(loading);
+ mEstateOwnerText->setValue(loading);
+ mCovenantText->setValue(loading);
+
+ mSalesPriceText->setValue(loading);
+ mAreaText->setValue(loading);
+ mTrafficText->setValue(loading);
+ mPrimitivesText->setValue(loading);
+ mParcelScriptsText->setValue(loading);
+ mTerraformLimitsText->setValue(loading);
+ mSubdivideText->setValue(loading);
+ mResaleText->setValue(loading);
+ mSaleToText->setValue(loading);
}
// virtual
-void LLPanelPlaceProfile::setInfoType(INFO_TYPE type)
+void LLPanelPlaceProfile::setInfoType(EInfoType type)
{
bool is_info_type_agent = type == AGENT;
diff --git a/indra/newview/llpanelplaceprofile.h b/indra/newview/llpanelplaceprofile.h
index 8ca9526875..e77b441567 100644
--- a/indra/newview/llpanelplaceprofile.h
+++ b/indra/newview/llpanelplaceprofile.h
@@ -48,7 +48,7 @@ public:
/*virtual*/ void resetLocation();
- /*virtual*/ void setInfoType(INFO_TYPE type);
+ /*virtual*/ void setInfoType(EInfoType type);
/*virtual*/ void processParcelInfo(const LLParcelData& parcel_data);
diff --git a/indra/newview/llpanelplaces.cpp b/indra/newview/llpanelplaces.cpp
index a8a9717750..29cfbbe606 100644
--- a/indra/newview/llpanelplaces.cpp
+++ b/indra/newview/llpanelplaces.cpp
@@ -34,7 +34,7 @@
#include "llpanelplaces.h"
#include "llassettype.h"
-#include "llwindow.h"
+#include "lltimer.h"
#include "llinventory.h"
#include "lllandmark.h"
@@ -49,6 +49,8 @@
#include "lltrans.h"
#include "lluictrlfactory.h"
+#include "llwindow.h"
+
#include "llagent.h"
#include "llagentpicksinfo.h"
#include "llavatarpropertiesprocessor.h"
@@ -73,6 +75,7 @@
#include "llviewerwindow.h"
static const S32 LANDMARK_FOLDERS_MENU_WIDTH = 250;
+static const F32 PLACE_INFO_UPDATE_INTERVAL = 3.0;
static const std::string AGENT_INFO_TYPE = "agent";
static const std::string CREATE_LANDMARK_INFO_TYPE = "create_landmark";
static const std::string LANDMARK_INFO_TYPE = "landmark";
@@ -269,11 +272,11 @@ BOOL LLPanelPlaces::postBuild()
if (!mPlaceProfile || !mLandmarkInfo)
return FALSE;
- LLButton* back_btn = mPlaceProfile->getChild<LLButton>("back_btn");
- back_btn->setClickedCallback(boost::bind(&LLPanelPlaces::onBackButtonClicked, this));
+ mPlaceProfileBackBtn = mPlaceProfile->getChild<LLButton>("back_btn");
+ mPlaceProfileBackBtn->setClickedCallback(boost::bind(&LLPanelPlaces::onBackButtonClicked, this));
- back_btn = mLandmarkInfo->getChild<LLButton>("back_btn");
- back_btn->setClickedCallback(boost::bind(&LLPanelPlaces::onBackButtonClicked, this));
+ mLandmarkInfoBackBtn = mLandmarkInfo->getChild<LLButton>("back_btn");
+ mLandmarkInfoBackBtn->setClickedCallback(boost::bind(&LLPanelPlaces::onBackButtonClicked, this));
LLLineEditor* title_editor = mLandmarkInfo->getChild<LLLineEditor>("title_editor");
title_editor->setKeystrokeCallback(boost::bind(&LLPanelPlaces::onEditButtonClicked, this), NULL);
@@ -324,9 +327,12 @@ void LLPanelPlaces::onOpen(const LLSD& key)
mLandmarkInfo->displayParcelInfo(LLUUID(), mPosGlobal);
- // Disable Save button because there is no item to save yet.
- // The button will be enabled in onLandmarkLoaded callback.
+ // Disabling "Save", "Close" and "Back" buttons to prevent closing "Create Landmark"
+ // panel before created landmark is loaded.
+ // These buttons will be enabled when created landmark is added to inventory.
mSaveBtn->setEnabled(FALSE);
+ mCloseBtn->setEnabled(FALSE);
+ mLandmarkInfoBackBtn->setEnabled(FALSE);
}
else if (mPlaceInfoType == LANDMARK_INFO_TYPE)
{
@@ -434,6 +440,8 @@ void LLPanelPlaces::setItem(LLInventoryItem* item)
mEditBtn->setEnabled(is_landmark_editable);
mSaveBtn->setEnabled(is_landmark_editable);
+ mCloseBtn->setEnabled(TRUE);
+ mLandmarkInfoBackBtn->setEnabled(TRUE);
if (is_landmark_editable)
{
@@ -485,8 +493,6 @@ void LLPanelPlaces::onLandmarkLoaded(LLLandmark* landmark)
landmark->getGlobalPos(mPosGlobal);
mLandmarkInfo->displayParcelInfo(region_id, mPosGlobal);
- mSaveBtn->setEnabled(TRUE);
-
updateVerbs();
}
@@ -830,6 +836,10 @@ void LLPanelPlaces::togglePlaceInfoPanel(BOOL visible)
{
mPlaceProfile->resetLocation();
+ // Do not reset location info until mResetInfoTimer has expired
+ // to avoid text blinking.
+ mResetInfoTimer.setTimerExpirySec(PLACE_INFO_UPDATE_INTERVAL);
+
LLRect rect = getRect();
LLRect new_rect = LLRect(rect.mLeft, rect.mTop, rect.mRight, mTabContainer->getRect().mBottom);
mPlaceProfile->reshape(new_rect.getWidth(), new_rect.getHeight());
@@ -920,11 +930,12 @@ void LLPanelPlaces::changedParcelSelection()
}
}
- // Reset location info only if global position is changed
- // to reduce unnecessary text and icons updates.
- if (prev_pos_global != mPosGlobal)
+ // Reset location info only if global position has changed
+ // and update timer has expired to reduce unnecessary text and icons updates.
+ if (prev_pos_global != mPosGlobal && mResetInfoTimer.hasExpired())
{
mPlaceProfile->resetLocation();
+ mResetInfoTimer.setTimerExpirySec(PLACE_INFO_UPDATE_INTERVAL);
}
mPlaceProfile->displaySelectedParcelInfo(parcel, region, mPosGlobal, is_current_parcel);
@@ -1022,6 +1033,13 @@ void LLPanelPlaces::updateVerbs()
{
mTeleportBtn->setEnabled(have_3d_pos);
}
+
+ // Do not enable landmark info Back button when we are waiting
+ // for newly created landmark to load.
+ if (!is_create_landmark_visible)
+ {
+ mLandmarkInfoBackBtn->setEnabled(TRUE);
+ }
}
else
{
diff --git a/indra/newview/llpanelplaces.h b/indra/newview/llpanelplaces.h
index 0eba7f3afc..110d7a1054 100644
--- a/indra/newview/llpanelplaces.h
+++ b/indra/newview/llpanelplaces.h
@@ -32,6 +32,8 @@
#ifndef LL_LLPANELPLACES_H
#define LL_LLPANELPLACES_H
+#include "lltimer.h"
+
#include "llpanel.h"
class LLInventoryItem;
@@ -113,6 +115,8 @@ private:
LLToggleableMenu* mPlaceMenu;
LLToggleableMenu* mLandmarkMenu;
+ LLButton* mPlaceProfileBackBtn;
+ LLButton* mLandmarkInfoBackBtn;
LLButton* mTeleportBtn;
LLButton* mShowOnMapBtn;
LLButton* mEditBtn;
@@ -132,6 +136,10 @@ private:
// be available (hence zero)
LLVector3d mPosGlobal;
+ // Sets a period of time during which the requested place information
+ // is expected to be updated and doesn't need to be reset.
+ LLTimer mResetInfoTimer;
+
// Information type currently shown in Place Information panel
std::string mPlaceInfoType;
diff --git a/indra/newview/llpanelteleporthistory.cpp b/indra/newview/llpanelteleporthistory.cpp
index 1b8fb49641..43e0f9a88c 100644
--- a/indra/newview/llpanelteleporthistory.cpp
+++ b/indra/newview/llpanelteleporthistory.cpp
@@ -46,7 +46,6 @@
#include "llnotificationsutil.h"
#include "lltextbox.h"
#include "llviewermenu.h"
-#include "llviewerinventory.h"
#include "lllandmarkactions.h"
#include "llclipboard.h"
@@ -308,7 +307,7 @@ void LLTeleportHistoryFlatItemStorage::purge()
////////////////////////////////////////////////////////////////////////////////
LLTeleportHistoryPanel::ContextMenu::ContextMenu() :
- mMenu(NULL)
+ mMenu(NULL), mIndex(0)
{
}
diff --git a/indra/newview/llparticipantlist.cpp b/indra/newview/llparticipantlist.cpp
index e64d297326..dc0839c774 100644
--- a/indra/newview/llparticipantlist.cpp
+++ b/indra/newview/llparticipantlist.cpp
@@ -627,7 +627,9 @@ bool LLParticipantList::LLParticipantListMenu::enableContextMenuItem(const LLSD&
}
else if (item == "can_call")
{
- return LLVoiceClient::getInstance()->voiceEnabled()&&LLVoiceClient::getInstance()->isVoiceWorking();
+ bool not_agent = mUUIDs.front() != gAgentID;
+ bool can_call = not_agent && LLVoiceClient::getInstance()->voiceEnabled() && LLVoiceClient::getInstance()->isVoiceWorking();
+ return can_call;
}
return true;
diff --git a/indra/newview/llplacesinventorypanel.cpp b/indra/newview/llplacesinventorypanel.cpp
index 4de953a59d..8edeebaeeb 100644
--- a/indra/newview/llplacesinventorypanel.cpp
+++ b/indra/newview/llplacesinventorypanel.cpp
@@ -143,6 +143,23 @@ void LLPlacesInventoryPanel::restoreFolderState()
getRootFolder()->scrollToShowSelection();
}
+S32 LLPlacesInventoryPanel::notify(const LLSD& info)
+{
+ if(info.has("action"))
+ {
+ std::string str_action = info["action"];
+ if(str_action == "select_first")
+ {
+ return getRootFolder()->notify(info);
+ }
+ else if(str_action == "select_last")
+ {
+ return getRootFolder()->notify(info);
+ }
+ }
+ return 0;
+}
+
/************************************************************************/
/* PROTECTED METHODS */
/************************************************************************/
diff --git a/indra/newview/llplacesinventorypanel.h b/indra/newview/llplacesinventorypanel.h
index 7b34045d32..86937e7c7f 100644
--- a/indra/newview/llplacesinventorypanel.h
+++ b/indra/newview/llplacesinventorypanel.h
@@ -57,6 +57,8 @@ public:
void saveFolderState();
void restoreFolderState();
+ virtual S32 notify(const LLSD& info) ;
+
private:
LLSaveFolderState* mSavedFolderState;
};
diff --git a/indra/newview/llpreviewgesture.cpp b/indra/newview/llpreviewgesture.cpp
index 84bdaafacf..53e351e66e 100644
--- a/indra/newview/llpreviewgesture.cpp
+++ b/indra/newview/llpreviewgesture.cpp
@@ -155,6 +155,12 @@ LLPreviewGesture* LLPreviewGesture::show(const LLUUID& item_id, const LLUUID& ob
return preview;
}
+void LLPreviewGesture::draw()
+{
+ // Skip LLPreview::draw() to avoid description update
+ LLFloater::draw();
+}
+
// virtual
BOOL LLPreviewGesture::handleKeyHere(KEY key, MASK mask)
{
@@ -497,11 +503,9 @@ BOOL LLPreviewGesture::postBuild()
if (item)
{
- childSetCommitCallback("desc", LLPreview::onText, this);
childSetText("desc", item->getDescription());
childSetPrevalidate("desc", &LLLineEditor::prevalidateASCIIPrintableNoPipe);
- childSetCommitCallback("name", LLPreview::onText, this);
childSetText("name", item->getName());
childSetPrevalidate("name", &LLLineEditor::prevalidateASCIIPrintableNoPipe);
}
@@ -1077,6 +1081,8 @@ void LLPreviewGesture::saveIfNeeded()
}
else
{
+ LLPreview::onCommit();
+
// Every save gets a new UUID. Yup.
LLTransactionID tid;
LLAssetID asset_id;
diff --git a/indra/newview/llpreviewgesture.h b/indra/newview/llpreviewgesture.h
index 19fa1dcc37..5968e936ef 100644
--- a/indra/newview/llpreviewgesture.h
+++ b/indra/newview/llpreviewgesture.h
@@ -60,6 +60,7 @@ public:
virtual ~LLPreviewGesture();
// LLView
+ /*virtual*/ void draw();
/*virtual*/ BOOL handleKeyHere(KEY key, MASK mask);
/*virtual*/ BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
EDragAndDropType cargo_type,
diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp
index 36ed1c466b..9835bfc082 100644
--- a/indra/newview/llselectmgr.cpp
+++ b/indra/newview/llselectmgr.cpp
@@ -218,7 +218,8 @@ LLSelectMgr::LLSelectMgr()
mHoverObjects = new LLObjectSelection();
mHighlightedObjects = new LLObjectSelection();
-
+ mForceSelection = FALSE;
+ mShowSelection = FALSE;
}
@@ -5093,6 +5094,7 @@ LLSelectNode::LLSelectNode(const LLSelectNode& nodep)
mName = nodep.mName;
mDescription = nodep.mDescription;
mCategory = nodep.mCategory;
+ mInventorySerial = 0;
mSavedPositionLocal = nodep.mSavedPositionLocal;
mSavedPositionGlobal = nodep.mSavedPositionGlobal;
mSavedScale = nodep.mSavedScale;
diff --git a/indra/newview/llsidepanelinventorysubpanel.cpp b/indra/newview/llsidepanelinventorysubpanel.cpp
index 56e342c3ce..f51462dcce 100644
--- a/indra/newview/llsidepanelinventorysubpanel.cpp
+++ b/indra/newview/llsidepanelinventorysubpanel.cpp
@@ -44,7 +44,6 @@
#include "lllineeditor.h"
#include "llradiogroup.h"
#include "llviewercontrol.h"
-#include "llviewerinventory.h"
#include "llviewerobjectlist.h"
diff --git a/indra/newview/llspatialpartition.cpp b/indra/newview/llspatialpartition.cpp
index 514d8facb4..2a57d48f16 100644
--- a/indra/newview/llspatialpartition.cpp
+++ b/indra/newview/llspatialpartition.cpp
@@ -294,7 +294,7 @@ LLSpatialGroup::~LLSpatialGroup()
sNodeCount--;
- if (gGLManager.mHasOcclusionQuery && mOcclusionQuery)
+ if (gGLManager.mHasOcclusionQuery && mOcclusionQuery[LLViewerCamera::sCurCameraID])
{
sQueryPool.release(mOcclusionQuery[LLViewerCamera::sCurCameraID]);
}
@@ -2607,6 +2607,7 @@ void renderBoundingBox(LLDrawable* drawable, BOOL set_color = TRUE)
break;
case LL_PCODE_LEGACY_TREE:
gGL.color4f(0,0.5f,0,1);
+ break;
default:
gGL.color4f(1,0,1,1);
break;
diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp
index 8a36475510..bff32af228 100644
--- a/indra/newview/llstatusbar.cpp
+++ b/indra/newview/llstatusbar.cpp
@@ -354,7 +354,7 @@ void LLStatusBar::refresh()
childSetEnabled("stat_btn", net_stats_visible);
// update the master volume button state
- BOOL mute_audio = gSavedSettings.getBOOL("MuteAudio");
+ bool mute_audio = LLAppViewer::instance()->getMasterSystemAudioMute();
mBtnVolume->setToggleState(mute_audio);
}
@@ -523,8 +523,8 @@ void LLStatusBar::onMouseEnterVolume(LLUICtrl* ctrl)
static void onClickVolume(void* data)
{
// toggle the master mute setting
- BOOL mute_audio = gSavedSettings.getBOOL("MuteAudio");
- gSavedSettings.setBOOL("MuteAudio", !mute_audio);
+ bool mute_audio = LLAppViewer::instance()->getMasterSystemAudioMute();
+ LLAppViewer::instance()->setMasterSystemAudioMute(!mute_audio);
}
// sets the static variables necessary for the date
diff --git a/indra/newview/llsurfacepatch.cpp b/indra/newview/llsurfacepatch.cpp
index 0ce794addb..48e4a6ccc7 100644
--- a/indra/newview/llsurfacepatch.cpp
+++ b/indra/newview/llsurfacepatch.cpp
@@ -60,6 +60,7 @@ LLSurfacePatch::LLSurfacePatch() :
mHeightsGenerated(FALSE),
mDataOffset(0),
mDataZ(NULL),
+ mDataNorm(NULL),
mVObjp(NULL),
mOriginRegion(0.f, 0.f, 0.f),
mCenterRegion(0.f, 0.f, 0.f),
@@ -355,12 +356,14 @@ void LLSurfacePatch::calcNormal(const U32 x, const U32 y, const U32 stride)
normal %= c2;
normal.normVec();
+ llassert(mDataNorm);
*(mDataNorm + surface_stride * y + x) = normal;
}
const LLVector3 &LLSurfacePatch::getNormal(const U32 x, const U32 y) const
{
U32 surface_stride = mSurfacep->getGridsPerEdge();
+ llassert(mDataNorm);
return *(mDataNorm + surface_stride * y + x);
}
@@ -402,6 +405,7 @@ void LLSurfacePatch::updateVerticalStats()
U32 i, j, k;
F32 z, total;
+ llassert(mDataZ);
z = *(mDataZ);
mMinZ = z;
diff --git a/indra/newview/lltexlayer.cpp b/indra/newview/lltexlayer.cpp
index 84c8b9d5f0..ddb6405c41 100644
--- a/indra/newview/lltexlayer.cpp
+++ b/indra/newview/lltexlayer.cpp
@@ -567,6 +567,7 @@ LLTexLayerSet::LLTexLayerSet(LLVOAvatarSelf* const avatar) :
mAvatar( avatar ),
mUpdatesEnabled( FALSE ),
mIsVisible( TRUE ),
+ mBakedTexIndex(LLVOAvatarDefines::BAKED_HEAD),
mInfo( NULL )
{
}
@@ -1860,7 +1861,7 @@ U32 LLTexLayerTemplate::updateWearableCache()
}
LLTexLayer* LLTexLayerTemplate::getLayer(U32 i)
{
- if (mWearableCache.size() <= i || i < 0)
+ if (mWearableCache.size() <= i)
{
return NULL;
}
diff --git a/indra/newview/lltexturecache.cpp b/indra/newview/lltexturecache.cpp
index 051c189013..a7f26f1df1 100644
--- a/indra/newview/lltexturecache.cpp
+++ b/indra/newview/lltexturecache.cpp
@@ -1617,20 +1617,20 @@ bool LLTextureCache::writeComplete(handle_t handle, bool abort)
{
lockWorkers();
handle_map_t::iterator iter = mWriters.find(handle);
- llassert_always(iter != mWriters.end());
- LLTextureCacheWorker* worker = iter->second;
- if (worker->complete() || abort)
- {
- mWriters.erase(handle);
- unlockWorkers();
- worker->scheduleDelete();
- return true;
- }
- else
+ llassert(iter != mWriters.end());
+ if (iter != mWriters.end())
{
- unlockWorkers();
- return false;
+ LLTextureCacheWorker* worker = iter->second;
+ if (worker->complete() || abort)
+ {
+ mWriters.erase(handle);
+ unlockWorkers();
+ worker->scheduleDelete();
+ return true;
+ }
}
+ unlockWorkers();
+ return false;
}
void LLTextureCache::prioritizeWrite(handle_t handle)
diff --git a/indra/newview/lltexturecache.h b/indra/newview/lltexturecache.h
index 4203cbbc43..64ec881fc3 100644
--- a/indra/newview/lltexturecache.h
+++ b/indra/newview/lltexturecache.h
@@ -59,7 +59,12 @@ private:
};
struct Entry
{
- Entry() {}
+ Entry() :
+ mBodySize(0),
+ mImageSize(0),
+ mTime(0)
+ {
+ }
Entry(const LLUUID& id, S32 imagesize, S32 bodysize, U32 time) :
mID(id), mImageSize(imagesize), mBodySize(bodysize), mTime(time) {}
void init(const LLUUID& id, U32 time) { mID = id, mImageSize = 0; mBodySize = 0; mTime = time; }
diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp
index 5ce6884239..404b79bfaf 100644
--- a/indra/newview/lltexturefetch.cpp
+++ b/indra/newview/lltexturefetch.cpp
@@ -661,6 +661,8 @@ bool LLTextureFetchWorker::doWork(S32 param)
}
setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);
mState = SEND_HTTP_REQ;
+ delete responder;
+ responder = NULL;
}
}
diff --git a/indra/newview/lltoastalertpanel.cpp b/indra/newview/lltoastalertpanel.cpp
index c3ccb9380b..da31bb3e73 100644
--- a/indra/newview/lltoastalertpanel.cpp
+++ b/indra/newview/lltoastalertpanel.cpp
@@ -170,6 +170,7 @@ LLToastAlertPanel::LLToastAlertPanel( LLNotificationPtr notification, bool modal
params.tab_stop(false);
params.wrap(true);
params.follows.flags(FOLLOWS_LEFT | FOLLOWS_TOP);
+ params.allow_html(false);
LLTextBox * msg_box = LLUICtrlFactory::create<LLTextBox> (params);
// Compute max allowable height for the dialog text, so we can allocate
diff --git a/indra/newview/lltoastgroupnotifypanel.cpp b/indra/newview/lltoastgroupnotifypanel.cpp
index e49044cdca..add61c00cf 100644
--- a/indra/newview/lltoastgroupnotifypanel.cpp
+++ b/indra/newview/lltoastgroupnotifypanel.cpp
@@ -127,17 +127,7 @@ LLToastGroupNotifyPanel::LLToastGroupNotifyPanel(LLNotificationPtr& notification
pAttachLink->setVisible(hasInventory);
pAttachIcon->setVisible(hasInventory);
if (hasInventory) {
- std::string dis_name;
- std::string inv_name = payload["inventory_name"];
-
- if (LLViewerInventoryItem::extractSortFieldAndDisplayName(inv_name, NULL, &dis_name))
- {
- pAttachLink->setValue(dis_name);
- }
- else
- {
- pAttachLink->setValue(inv_name);
- }
+ pAttachLink->setValue(payload["inventory_name"]);
mInventoryOffer = new LLOfferInfo(payload["inventory_offer"]);
childSetActionTextbox("attachment", boost::bind(
diff --git a/indra/newview/lltoastimpanel.cpp b/indra/newview/lltoastimpanel.cpp
index d62017cc2f..89a58cd736 100644
--- a/indra/newview/lltoastimpanel.cpp
+++ b/indra/newview/lltoastimpanel.cpp
@@ -33,22 +33,25 @@
#include "llviewerprecompiledheaders.h"
#include "lltoastimpanel.h"
+#include "llfloaterreg.h"
#include "llnotifications.h"
#include "llinstantmessage.h"
+#include "lltooltip.h"
+
#include "llviewerchat.h"
const S32 LLToastIMPanel::DEFAULT_MESSAGE_MAX_LINE_COUNT = 6;
//--------------------------------------------------------------------------
LLToastIMPanel::LLToastIMPanel(LLToastIMPanel::Params &p) : LLToastPanel(p.notification),
- mAvatar(NULL), mUserName(NULL),
+ mAvatarIcon(NULL), mAvatarName(NULL),
mTime(NULL), mMessage(NULL)
{
LLUICtrlFactory::getInstance()->buildPanel(this, "panel_instant_message.xml");
LLIconCtrl* sys_msg_icon = getChild<LLIconCtrl>("sys_msg_icon");
- mAvatar = getChild<LLAvatarIconCtrl>("avatar_icon");
- mUserName = getChild<LLTextBox>("user_name");
+ mAvatarIcon = getChild<LLAvatarIconCtrl>("avatar_icon");
+ mAvatarName = getChild<LLTextBox>("user_name");
mTime = getChild<LLTextBox>("time_box");
mMessage = getChild<LLTextBox>("message");
@@ -77,22 +80,23 @@ LLToastIMPanel::LLToastIMPanel(LLToastIMPanel::Params &p) : LLToastPanel(p.notif
mMessage->setValue(p.message);
}
- mUserName->setValue(p.from);
+ mAvatarName->setValue(p.from);
mTime->setValue(p.time);
mSessionID = p.session_id;
+ mAvatarID = p.avatar_id;
mNotification = p.notification;
if(p.from == SYSTEM_FROM)
{
- mAvatar->setVisible(FALSE);
+ mAvatarIcon->setVisible(FALSE);
sys_msg_icon->setVisible(TRUE);
}
else
{
- mAvatar->setVisible(TRUE);
+ mAvatarIcon->setVisible(TRUE);
sys_msg_icon->setVisible(FALSE);
- mAvatar->setValue(p.avatar_id);
+ mAvatarIcon->setValue(p.avatar_id);
}
S32 maxLinesCount;
@@ -119,3 +123,36 @@ BOOL LLToastIMPanel::handleMouseDown(S32 x, S32 y, MASK mask)
return TRUE;
}
+
+//virtual
+BOOL LLToastIMPanel::handleToolTip(S32 x, S32 y, MASK mask)
+{
+ // It's not our direct child, so parentPointInView() doesn't work.
+ LLRect name_rect;
+ mAvatarName->localRectToOtherView(mAvatarName->getLocalRect(), &name_rect, this);
+ if (!name_rect.pointInRect(x, y))
+ return LLToastPanel::handleToolTip(x, y, mask);
+
+ // Spawn at right side of the name textbox.
+ LLRect sticky_rect = mAvatarName->calcScreenRect();
+ S32 icon_x = llmin(sticky_rect.mLeft + mAvatarName->getTextPixelWidth() + 3, sticky_rect.mRight - 16);
+ LLCoordGL pos(icon_x, sticky_rect.mTop);
+
+ LLToolTip::Params params;
+ params.background_visible(false);
+ params.click_callback(boost::bind(&LLToastIMPanel::showInspector, this));
+ params.delay_time(0.0f); // spawn instantly on hover
+ params.image(LLUI::getUIImage("Info_Small"));
+ params.message("");
+ params.padding(0);
+ params.pos(pos);
+ params.sticky_rect(sticky_rect);
+
+ LLToolTipMgr::getInstance()->show(params);
+ return TRUE;
+}
+
+void LLToastIMPanel::showInspector()
+{
+ LLFloaterReg::showInstance("inspect_avatar", LLSD().with("avatar_id", mAvatarID));
+}
diff --git a/indra/newview/lltoastimpanel.h b/indra/newview/lltoastimpanel.h
index 53661f2cf6..154e6dae16 100644
--- a/indra/newview/lltoastimpanel.h
+++ b/indra/newview/lltoastimpanel.h
@@ -58,13 +58,16 @@ public:
LLToastIMPanel(LLToastIMPanel::Params &p);
virtual ~LLToastIMPanel();
/*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask);
+ /*virtual*/ BOOL handleToolTip(S32 x, S32 y, MASK mask);
private:
+ void showInspector();
static const S32 DEFAULT_MESSAGE_MAX_LINE_COUNT;
LLNotificationPtr mNotification;
LLUUID mSessionID;
- LLAvatarIconCtrl* mAvatar;
- LLTextBox* mUserName;
+ LLUUID mAvatarID;
+ LLAvatarIconCtrl* mAvatarIcon;
+ LLTextBox* mAvatarName;
LLTextBox* mTime;
LLTextBox* mMessage;
};
diff --git a/indra/newview/lltoolbar.cpp b/indra/newview/lltoolbar.cpp
index edbaa0d45a..404eab9249 100644
--- a/indra/newview/lltoolbar.cpp
+++ b/indra/newview/lltoolbar.cpp
@@ -54,7 +54,6 @@
#include "lltooldraganddrop.h"
#include "llfloaterinventory.h"
#include "llfloaterchatterbox.h"
-#include "llfloaterfriends.h"
#include "llfloatersnapshot.h"
#include "llinventorypanel.h"
#include "lltoolmgr.h"
@@ -70,7 +69,6 @@
#include "llviewerwindow.h"
#include "lltoolgrab.h"
#include "llcombobox.h"
-#include "llimpanel.h"
#include "lllayoutstack.h"
#if LL_DARWIN
@@ -95,7 +93,10 @@ F32 LLToolBar::sInventoryAutoOpenTime = 1.f;
//
LLToolBar::LLToolBar()
-: LLPanel()
+ : LLPanel(),
+
+ mInventoryAutoOpen(FALSE),
+ mNumUnreadIMs(0)
#if LL_DARWIN
, mResizeHandle(NULL)
#endif // LL_DARWIN
@@ -262,12 +263,12 @@ void LLToolBar::updateCommunicateList()
communicate_button->removeall();
- LLFloater* frontmost_floater = LLFloaterChatterBox::getInstance()->getActiveFloater();
+ //LLFloater* frontmost_floater = LLFloaterChatterBox::getInstance()->getActiveFloater();
LLScrollListItem* itemp = NULL;
LLSD contact_sd;
contact_sd["value"] = "contacts";
- contact_sd["columns"][0]["value"] = LLFloaterMyFriends::getInstance()->getShortTitle();
+ /*contact_sd["columns"][0]["value"] = LLFloaterMyFriends::getInstance()->getShortTitle();
if (LLFloaterMyFriends::getInstance() == frontmost_floater)
{
contact_sd["columns"][0]["font"]["name"] = "SANSSERIF_SMALL";
@@ -277,7 +278,7 @@ void LLToolBar::updateCommunicateList()
{
selected = "contacts";
}
- }
+ }*/
itemp = communicate_button->addElement(contact_sd, ADD_TOP);
communicate_button->addSeparator(ADD_TOP);
@@ -287,7 +288,7 @@ void LLToolBar::updateCommunicateList()
std::set<LLHandle<LLFloater> >::const_iterator floater_handle_it;
- if (gIMMgr->getIMFloaterHandles().size() > 0)
+ /*if (gIMMgr->getIMFloaterHandles().size() > 0)
{
communicate_button->addSeparator(ADD_TOP);
}
@@ -313,7 +314,7 @@ void LLToolBar::updateCommunicateList()
}
itemp = communicate_button->addElement(im_sd, ADD_TOP);
}
- }
+ }*/
communicate_button->setValue(selected);
}
@@ -337,7 +338,7 @@ void LLToolBar::onClickCommunicate(LLUICtrl* ctrl, const LLSD& user_data)
}
else if (selected_option.asString() == "redock")
{
- LLFloaterChatterBox* chatterbox_instance = LLFloaterChatterBox::getInstance();
+ /*LLFloaterChatterBox* chatterbox_instance = LLFloaterChatterBox::getInstance();
if(chatterbox_instance)
{
chatterbox_instance->addFloater(LLFloaterMyFriends::getInstance(), FALSE);
@@ -358,7 +359,7 @@ void LLToolBar::onClickCommunicate(LLUICtrl* ctrl, const LLSD& user_data)
}
}
LLFloaterReg::showInstance("communicate", session_to_show);
- }
+ }*/
}
else if (selected_option.asString() == "mute list")
{
@@ -366,11 +367,11 @@ void LLToolBar::onClickCommunicate(LLUICtrl* ctrl, const LLSD& user_data)
}
else if (selected_option.isUndefined()) // user just clicked the communicate button, treat as toggle
{
- LLFloaterReg::toggleInstance("communicate");
+ /*LLFloaterReg::toggleInstance("communicate");*/
}
else // otherwise selection_option is undifined or a specific IM session id
{
- LLFloaterReg::showInstance("communicate", selected_option);
+ /*LLFloaterReg::showInstance("communicate", selected_option);*/
}
}
diff --git a/indra/newview/lltooldraganddrop.cpp b/indra/newview/lltooldraganddrop.cpp
index 4420b046d8..125c62474e 100644
--- a/indra/newview/lltooldraganddrop.cpp
+++ b/indra/newview/lltooldraganddrop.cpp
@@ -1404,18 +1404,6 @@ void LLToolDragAndDrop::dropInventory(LLViewerObject* hit_obj,
gFloaterTools->dirty();
}
-struct LLGiveInventoryInfo
-{
- LLUUID mToAgentID;
- LLUUID mInventoryObjectID;
- LLUUID mIMSessionID;
- LLGiveInventoryInfo(const LLUUID& to_agent, const LLUUID& obj_id, const LLUUID &im_session_id = LLUUID::null) :
- mToAgentID(to_agent),
- mInventoryObjectID(obj_id),
- mIMSessionID(im_session_id)
- {}
-};
-
void LLToolDragAndDrop::giveInventory(const LLUUID& to_agent,
LLInventoryItem* item,
const LLUUID& im_session_id)
@@ -1584,8 +1572,6 @@ void LLToolDragAndDrop::giveInventoryCategory(const LLUUID& to_agent,
}
else
{
- LLGiveInventoryInfo* info = NULL;
- info = new LLGiveInventoryInfo(to_agent, cat->getUUID(), im_session_id);
LLSD args;
args["COUNT"] = llformat("%d",giveable.countNoCopy());
LLSD payload;
diff --git a/indra/newview/lltoolgrab.cpp b/indra/newview/lltoolgrab.cpp
index 26dbe6a489..d837a334f1 100644
--- a/indra/newview/lltoolgrab.cpp
+++ b/indra/newview/lltoolgrab.cpp
@@ -78,9 +78,15 @@ LLToolGrab::LLToolGrab( LLToolComposite* composite )
: LLTool( std::string("Grab"), composite ),
mMode( GRAB_INACTIVE ),
mVerticalDragging( FALSE ),
+ mHitLand(FALSE),
+ mLastMouseX(0),
+ mLastMouseY(0),
+ mAccumDeltaX(0),
+ mAccumDeltaY(0),
mHasMoved( FALSE ),
mOutsideSlop(FALSE),
mDeselectedThisClick(FALSE),
+ mLastFace(0),
mSpinGrabbing( FALSE ),
mSpinRotation(),
mHideBuildHighlight(FALSE)
diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp
index c79a66892d..39e71974fd 100644
--- a/indra/newview/lltoolpie.cpp
+++ b/indra/newview/lltoolpie.cpp
@@ -922,7 +922,7 @@ BOOL LLToolPie::handleTooltipObject( LLViewerObject* hover_object, std::string l
const LLMediaEntry* mep = tep->hasMedia() ? tep->getMediaData() : NULL;
if (mep)
{
- viewer_media_t media_impl = mep ? LLViewerMedia::getMediaImplFromTextureID(mep->getMediaID()) : NULL;
+ viewer_media_t media_impl = LLViewerMedia::getMediaImplFromTextureID(mep->getMediaID());
LLPluginClassMedia* media_plugin = NULL;
if (media_impl.notNull() && (media_impl->hasMedia()))
diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp
index 7be45c649c..d2baf2d02b 100644
--- a/indra/newview/llviewercontrol.cpp
+++ b/indra/newview/llviewercontrol.cpp
@@ -63,7 +63,6 @@
#include "llviewerjoystick.h"
#include "llviewerparcelmgr.h"
#include "llparcel.h"
-#include "lloverlaybar.h"
#include "llkeyboard.h"
#include "llerrorcontrol.h"
#include "llappviewer.h"
@@ -257,35 +256,6 @@ static bool handleJoystickChanged(const LLSD& newvalue)
return true;
}
-static bool handleAudioStreamMusicChanged(const LLSD& newvalue)
-{
- if (gAudiop)
- {
- if ( newvalue.asBoolean() )
- {
- if (LLViewerParcelMgr::getInstance()->getAgentParcel()
- && !LLViewerParcelMgr::getInstance()->getAgentParcel()->getMusicURL().empty())
- {
- // if music isn't playing, start it
- if (gOverlayBar && !gOverlayBar->musicPlaying())
- {
- LLOverlayBar::toggleMusicPlay(NULL);
- }
- }
- }
- else
- {
- // if music is playing, stop it.
- if (gOverlayBar && gOverlayBar->musicPlaying())
- {
- LLOverlayBar::toggleMusicPlay(NULL);
- }
-
- }
- }
- return true;
-}
-
static bool handleUseOcclusionChanged(const LLSD& newvalue)
{
LLPipeline::sUseOcclusion = (newvalue.asBoolean() && gGLManager.mHasOcclusionQuery
@@ -592,7 +562,6 @@ void settings_setup_listeners()
gSavedSettings.getControl("AudioLevelVoice")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _2));
gSavedSettings.getControl("AudioLevelDoppler")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _2));
gSavedSettings.getControl("AudioLevelRolloff")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _2));
- gSavedSettings.getControl("AudioStreamingMusic")->getSignal()->connect(boost::bind(&handleAudioStreamMusicChanged, _2));
gSavedSettings.getControl("MuteAudio")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _2));
gSavedSettings.getControl("MuteMusic")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _2));
gSavedSettings.getControl("MuteMedia")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _2));
diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp
index 3a834e7532..658d1c9ddd 100644
--- a/indra/newview/llviewerfloaterreg.cpp
+++ b/indra/newview/llviewerfloaterreg.cpp
@@ -54,7 +54,6 @@
#include "llfloaterbulkpermission.h"
#include "llfloaterbump.h"
#include "llfloatercamera.h"
-#include "llfloaterchatterbox.h"
#include "llfloaterdaycycle.h"
#include "llfloatersearch.h"
#include "llfloaterenvsettings.h"
@@ -69,7 +68,6 @@
#include "llfloaterhud.h"
#include "llfloaterimagepreview.h"
#include "llimfloater.h"
-#include "llimpanel.h"
#include "llfloaterinspect.h"
#include "llfloaterinventory.h"
#include "llfloaterjoystick.h"
@@ -116,7 +114,6 @@
#include "llinspectobject.h"
#include "llinspectremoteobject.h"
#include "llinspecttoast.h"
-#include "llmediaremotectrl.h"
#include "llmoveview.h"
#include "llnearbychat.h"
#include "llpanelblockedlist.h"
@@ -155,9 +152,8 @@ void LLViewerFloaterReg::registerFloaters()
LLFloaterReg::add("camera", "floater_camera.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterCamera>);
//LLFloaterReg::add("chat", "floater_chat_history.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterChat>);
LLFloaterReg::add("nearby_chat", "floater_nearby_chat.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLNearbyChat>);
- LLFloaterReg::add("communicate", "floater_chatterbox.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterChatterBox>);
+
LLFloaterReg::add("compile_queue", "floater_script_queue.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterCompileQueue>);
- LLFloaterReg::add("contacts", "floater_my_friends.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterMyFriends>);
LLFloaterReg::add("env_day_cycle", "floater_day_cycle_options.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterDayCycle>);
LLFloaterReg::add("env_post_process", "floater_post_process.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPostProcess>);
@@ -204,6 +200,7 @@ void LLViewerFloaterReg::registerFloaters()
LLFloaterReg::add("openobject", "floater_openobject.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterOpenObject>);
LLFloaterReg::add("outgoing_call", "floater_outgoing_call.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLOutgoingCallDialog>);
+ LLFloaterReg::add("call_info", "floater_call_info.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLCallInfoDialog>);
LLFloaterReg::add("parcel_info", "floater_preview_url.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterParcelInfo>);
LLFloaterPayUtil::registerFloater();
@@ -264,8 +261,5 @@ void LLViewerFloaterReg::registerFloaters()
// *NOTE: Please keep these alphabetized for easier merges
- // debug use only
- LLFloaterReg::add("media_remote_ctrl", "floater_media_remote.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterMediaRemoteCtrl>);
-
LLFloaterReg::registerControlVariables(); // Make sure visibility and rect controls get preserved when saving
}
diff --git a/indra/newview/llviewerhelp.cpp b/indra/newview/llviewerhelp.cpp
index 5af79b4fd3..b82538dacb 100644
--- a/indra/newview/llviewerhelp.cpp
+++ b/indra/newview/llviewerhelp.cpp
@@ -33,6 +33,7 @@
#include "llviewerprecompiledheaders.h"
+#include "llcommandhandler.h"
#include "llfloaterhelpbrowser.h"
#include "llfloaterreg.h"
#include "llfocusmgr.h"
@@ -43,6 +44,33 @@
#include "llviewerhelputil.h"
#include "llviewerhelp.h"
+// support for secondlife:///app/help/{TOPIC} SLapps
+class LLHelpHandler : public LLCommandHandler
+{
+public:
+ // requests will be throttled from a non-trusted browser
+ LLHelpHandler() : LLCommandHandler("help", UNTRUSTED_THROTTLE) {}
+
+ bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web)
+ {
+ LLViewerHelp* vhelp = LLViewerHelp::getInstance();
+ if (! vhelp)
+ {
+ return false;
+ }
+
+ // get the requested help topic name, or use the fallback if none
+ std::string help_topic = vhelp->defaultTopic();
+ if (params.size() >= 1)
+ {
+ help_topic = params[0].asString();
+ }
+
+ vhelp->showTopic(help_topic);
+ return true;
+ }
+};
+LLHelpHandler gHelpHandler;
//////////////////////////////
// implement LLHelp interface
@@ -65,18 +93,16 @@ void LLViewerHelp::showTopic(const std::string &topic)
help_topic = defaultTopic();
}
- // f1 help topic means: if user not logged in yet, show the
- // pre-login topic, otherwise show help for the focused item
+ // f1 help topic means: if the user is not logged in yet, show
+ // the pre-login topic instead of the default fallback topic,
+ // otherwise show help for the focused item
if (help_topic == f1HelpTopic())
{
- if (! LLLoginInstance::getInstance()->authSuccess())
+ help_topic = getTopicFromFocus();
+ if (help_topic == defaultTopic() && ! LLLoginInstance::getInstance()->authSuccess())
{
help_topic = preLoginTopic();
}
- else
- {
- help_topic = getTopicFromFocus();
- }
}
// work out the URL for this topic and display it
diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp
index 6387133a86..bfac7e4b8b 100644
--- a/indra/newview/llviewerinventory.cpp
+++ b/indra/newview/llviewerinventory.cpp
@@ -34,6 +34,7 @@
#include "llviewerinventory.h"
#include "llnotificationsutil.h"
+#include "llsdserialize.h"
#include "message.h"
#include "llagent.h"
@@ -1174,81 +1175,196 @@ const std::string& LLViewerInventoryItem::getName() const
return linked_category->getName();
}
- return getDisplayName();
+ return LLInventoryItem::getName();
}
-const std::string& LLViewerInventoryItem::getDisplayName() const
+/**
+ * Class to store sorting order of favorites landmarks in a local file. EXT-3985.
+ * It replaced previously implemented solution to store sort index in landmark's name as a "<N>@" prefix.
+ * Data are stored in user home directory.
+ */
+class LLFavoritesOrderStorage : public LLSingleton<LLFavoritesOrderStorage>
+ , public LLDestroyClass<LLFavoritesOrderStorage>
{
- std::string result;
- BOOL hasSortField = extractSortFieldAndDisplayName(0, &result);
+public:
+ /**
+ * Sets sort index for specified with LLUUID favorite landmark
+ */
+ void setSortIndex(const LLUUID& inv_item_id, S32 sort_index);
+
+ /**
+ * Gets sort index for specified with LLUUID favorite landmark
+ */
+ S32 getSortIndex(const LLUUID& inv_item_id);
+ void removeSortIndex(const LLUUID& inv_item_id);
+
+ /**
+ * Implementation of LLDestroyClass. Calls cleanup() instance method.
+ *
+ * It is important this callback is called before gInventory is cleaned.
+ * For now it is called from LLAppViewer::cleanup() -> LLAppViewer::disconnectViewer(),
+ * Inventory is cleaned later from LLAppViewer::cleanup() after LLAppViewer::disconnectViewer() is called.
+ * @see cleanup()
+ */
+ static void destroyClass();
+
+ const static S32 NO_INDEX;
+private:
+ friend class LLSingleton<LLFavoritesOrderStorage>;
+ LLFavoritesOrderStorage() : mIsDirty(false) { load(); }
+ ~LLFavoritesOrderStorage() { save(); }
+
+ /**
+ * Removes sort indexes for items which are not in Favorites bar for now.
+ */
+ void cleanup();
+
+ const static std::string SORTING_DATA_FILE_NAME;
+
+ void load();
+ void save();
+
+ typedef std::map<LLUUID, S32> sort_index_map_t;
+ sort_index_map_t mSortIndexes;
+
+ bool mIsDirty;
+
+ struct IsNotInFavorites
+ {
+ IsNotInFavorites(const LLInventoryModel::item_array_t& items)
+ : mFavoriteItems(items)
+ {
- return mDisplayName = hasSortField ? result : LLInventoryItem::getName();
-}
+ }
-// static
-std::string LLViewerInventoryItem::getDisplayName(const std::string& name)
-{
- std::string result;
- BOOL hasSortField = extractSortFieldAndDisplayName(name, 0, &result);
+ /**
+ * Returns true if specified item is not found among inventory items
+ */
+ bool operator()(const sort_index_map_t::value_type& id_index_pair) const
+ {
+ LLPointer<LLViewerInventoryItem> item = gInventory.getItem(id_index_pair.first);
+ if (item.isNull()) return true;
- return hasSortField ? result : name;
-}
+ LLInventoryModel::item_array_t::const_iterator found_it =
+ std::find(mFavoriteItems.begin(), mFavoriteItems.end(), item);
-S32 LLViewerInventoryItem::getSortField() const
-{
- S32 result;
- BOOL hasSortField = extractSortFieldAndDisplayName(&result, 0);
+ return found_it == mFavoriteItems.end();
+ }
+ private:
+ LLInventoryModel::item_array_t mFavoriteItems;
+ };
+
+};
+
+const std::string LLFavoritesOrderStorage::SORTING_DATA_FILE_NAME = "landmarks_sorting.xml";
+const S32 LLFavoritesOrderStorage::NO_INDEX = -1;
- return hasSortField ? result : -1;
+void LLFavoritesOrderStorage::setSortIndex(const LLUUID& inv_item_id, S32 sort_index)
+{
+ mSortIndexes[inv_item_id] = sort_index;
+ mIsDirty = true;
}
-void LLViewerInventoryItem::setSortField(S32 sortField)
+S32 LLFavoritesOrderStorage::getSortIndex(const LLUUID& inv_item_id)
{
- using std::string;
+ sort_index_map_t::const_iterator it = mSortIndexes.find(inv_item_id);
+ if (it != mSortIndexes.end())
+ {
+ return it->second;
+ }
+ return NO_INDEX;
+}
- std::stringstream ss;
- ss << sortField;
+void LLFavoritesOrderStorage::removeSortIndex(const LLUUID& inv_item_id)
+{
+ mSortIndexes.erase(inv_item_id);
+ mIsDirty = true;
+}
- string newSortField = ss.str();
+// static
+void LLFavoritesOrderStorage::destroyClass()
+{
+ LLFavoritesOrderStorage::instance().cleanup();
+}
- const char separator = getSeparator();
- const string::size_type separatorPos = mName.find(separator, 0);
+void LLFavoritesOrderStorage::load()
+{
+ // load per-resident sorting information
+ std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, SORTING_DATA_FILE_NAME);
- if (separatorPos < string::npos)
+ LLSD settings_llsd;
+ llifstream file;
+ file.open(filename);
+ if (file.is_open())
{
- // the name of the LLViewerInventoryItem already consists of sort field and display name.
- mName = newSortField + separator + mName.substr(separatorPos + 1, string::npos);
+ LLSDSerialize::fromXML(settings_llsd, file);
}
- else
+
+ for (LLSD::map_const_iterator iter = settings_llsd.beginMap();
+ iter != settings_llsd.endMap(); ++iter)
{
- // there is no sort field in the name of LLViewerInventoryItem, we should add it
- mName = newSortField + separator + mName;
+ mSortIndexes.insert(std::make_pair(LLUUID(iter->first), (S32)iter->second.asInteger()));
}
}
-void LLViewerInventoryItem::rename(const std::string& n)
+void LLFavoritesOrderStorage::save()
{
- using std::string;
+ // nothing to save if clean
+ if (!mIsDirty) return;
- string new_name(n);
- LLStringUtil::replaceNonstandardASCII(new_name, ' ');
- LLStringUtil::replaceChar(new_name, '|', ' ');
- LLStringUtil::trim(new_name);
- LLStringUtil::truncate(new_name, DB_INV_ITEM_NAME_STR_LEN);
+ // If we quit from the login screen we will not have an SL account
+ // name. Don't try to save, otherwise we'll dump a file in
+ // C:\Program Files\SecondLife\ or similar. JC
+ std::string user_dir = gDirUtilp->getLindenUserDir();
+ if (!user_dir.empty())
+ {
+ std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, SORTING_DATA_FILE_NAME);
+ LLSD settings_llsd;
- const char separator = getSeparator();
- const string::size_type separatorPos = mName.find(separator, 0);
+ for(sort_index_map_t::const_iterator iter = mSortIndexes.begin(); iter != mSortIndexes.end(); ++iter)
+ {
+ settings_llsd[iter->first.asString()] = iter->second;
+ }
- if (separatorPos < string::npos)
- {
- mName.replace(separatorPos + 1, string::npos, new_name);
- }
- else
- {
- mName = new_name;
+ llofstream file;
+ file.open(filename);
+ LLSDSerialize::toPrettyXML(settings_llsd, file);
}
}
+void LLFavoritesOrderStorage::cleanup()
+{
+ // nothing to clean
+ if (!mIsDirty) return;
+
+ const LLUUID fav_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_FAVORITE);
+ LLInventoryModel::cat_array_t cats;
+ LLInventoryModel::item_array_t items;
+ gInventory.collectDescendents(fav_id, cats, items, LLInventoryModel::EXCLUDE_TRASH);
+
+ IsNotInFavorites is_not_in_fav(items);
+
+ sort_index_map_t aTempMap;
+ //copy unremoved values from mSortIndexes to aTempMap
+ std::remove_copy_if(mSortIndexes.begin(), mSortIndexes.end(),
+ inserter(aTempMap, aTempMap.begin()),
+ is_not_in_fav);
+
+ //Swap the contents of mSortIndexes and aTempMap
+ mSortIndexes.swap(aTempMap);
+}
+
+
+S32 LLViewerInventoryItem::getSortField() const
+{
+ return LLFavoritesOrderStorage::instance().getSortIndex(mUUID);
+}
+
+void LLViewerInventoryItem::setSortField(S32 sortField)
+{
+ LLFavoritesOrderStorage::instance().setSortIndex(mUUID, sortField);
+}
+
const LLPermissions& LLViewerInventoryItem::getPermissions() const
{
// Use the actual permissions of the symlink, not its parent.
@@ -1337,6 +1453,8 @@ U32 LLViewerInventoryItem::getCRC32() const
return LLInventoryItem::getCRC32();
}
+// *TODO: mantipov: should be removed with LMSortPrefix patch in llinventorymodel.cpp, EXT-3985
+static char getSeparator() { return '@'; }
BOOL LLViewerInventoryItem::extractSortFieldAndDisplayName(const std::string& name, S32* sortField, std::string* displayName)
{
using std::string;
@@ -1372,12 +1490,6 @@ BOOL LLViewerInventoryItem::extractSortFieldAndDisplayName(const std::string& na
return result;
}
-void LLViewerInventoryItem::insertDefaultSortField(std::string& name)
-{
- name.insert(0, std::string("1") + getSeparator());
-}
-
-
// This returns true if the item that this item points to
// doesn't exist in memory (i.e. LLInventoryModel). The baseitem
// might still be in the database but just not loaded yet.
diff --git a/indra/newview/llviewerinventory.h b/indra/newview/llviewerinventory.h
index 917b8747ea..c24f76c87a 100644
--- a/indra/newview/llviewerinventory.h
+++ b/indra/newview/llviewerinventory.h
@@ -58,18 +58,14 @@ public:
protected:
~LLViewerInventoryItem( void ); // ref counted
BOOL extractSortFieldAndDisplayName(S32* sortField, std::string* displayName) const { return extractSortFieldAndDisplayName(mName, sortField, displayName); }
- static char getSeparator() { return '@'; }
mutable std::string mDisplayName;
public:
virtual LLAssetType::EType getType() const;
virtual const LLUUID& getAssetUUID() const;
virtual const std::string& getName() const;
- virtual const std::string& getDisplayName() const;
- static std::string getDisplayName(const std::string& name);
virtual S32 getSortField() const;
virtual void setSortField(S32 sortField);
- virtual void rename(const std::string& new_name);
virtual const LLPermissions& getPermissions() const;
virtual const LLUUID& getCreatorUUID() const;
virtual const std::string& getDescription() const;
@@ -82,7 +78,6 @@ public:
virtual U32 getCRC32() const; // really more of a checksum.
static BOOL extractSortFieldAndDisplayName(const std::string& name, S32* sortField, std::string* displayName);
- static void insertDefaultSortField(std::string& name);
// construct a complete viewer inventory item
LLViewerInventoryItem(const LLUUID& uuid, const LLUUID& parent_uuid,
diff --git a/indra/newview/llviewerjoint.cpp b/indra/newview/llviewerjoint.cpp
index c2591ac8d7..95f05b5f5f 100644
--- a/indra/newview/llviewerjoint.cpp
+++ b/indra/newview/llviewerjoint.cpp
@@ -59,13 +59,9 @@ BOOL LLViewerJoint::sDisableLOD = FALSE;
// Class Constructor
//-----------------------------------------------------------------------------
LLViewerJoint::LLViewerJoint()
+ : LLJoint()
{
- mUpdateXform = TRUE;
- mValid = FALSE;
- mComponents = SC_JOINT | SC_BONE | SC_AXES;
- mMinPixelArea = DEFAULT_LOD;
- mPickName = PN_DEFAULT;
- mVisible = TRUE;
+ init();
}
@@ -73,13 +69,21 @@ LLViewerJoint::LLViewerJoint()
// LLViewerJoint()
// Class Constructor
//-----------------------------------------------------------------------------
-LLViewerJoint::LLViewerJoint(const std::string &name, LLJoint *parent) :
- LLJoint(name, parent)
+LLViewerJoint::LLViewerJoint(const std::string &name, LLJoint *parent)
+ : LLJoint(name, parent)
+{
+ init();
+}
+
+
+void LLViewerJoint::init()
{
mValid = FALSE;
mComponents = SC_JOINT | SC_BONE | SC_AXES;
mMinPixelArea = DEFAULT_LOD;
mPickName = PN_DEFAULT;
+ mVisible = TRUE;
+ mMeshID = 0;
}
diff --git a/indra/newview/llviewerjoint.h b/indra/newview/llviewerjoint.h
index 08c4ec36fd..0d3092a044 100644
--- a/indra/newview/llviewerjoint.h
+++ b/indra/newview/llviewerjoint.h
@@ -142,6 +142,8 @@ public:
void setMeshID( S32 id ) {mMeshID = id;}
protected:
+ void init();
+
BOOL mValid;
U32 mComponents;
F32 mMinPixelArea;
diff --git a/indra/newview/llviewerjointmesh.cpp b/indra/newview/llviewerjointmesh.cpp
index 5b8902dec4..1a67fc0966 100644
--- a/indra/newview/llviewerjointmesh.cpp
+++ b/indra/newview/llviewerjointmesh.cpp
@@ -147,6 +147,7 @@ LLViewerJointMesh::LLViewerJointMesh()
mTexture( NULL ),
mLayerSet( NULL ),
mTestImageName( 0 ),
+ mFaceIndexCount(0),
mIsTransparent(FALSE)
{
diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp
index d712446d83..9ced0194a2 100644
--- a/indra/newview/llviewermedia.cpp
+++ b/indra/newview/llviewermedia.cpp
@@ -940,7 +940,6 @@ bool LLViewerMedia::firstRunCallback(const LLSD& notification, const LLSD& respo
{
// user has elected to automatically play media.
gSavedSettings.setBOOL(LLViewerMedia::AUTO_PLAY_MEDIA_SETTING, TRUE);
- gSavedSettings.setBOOL("AudioStreamingVideo", TRUE);
gSavedSettings.setBOOL("AudioStreamingMusic", TRUE);
gSavedSettings.setBOOL("AudioStreamingMedia", TRUE);
@@ -961,7 +960,6 @@ bool LLViewerMedia::firstRunCallback(const LLSD& notification, const LLSD& respo
{
gSavedSettings.setBOOL(LLViewerMedia::AUTO_PLAY_MEDIA_SETTING, FALSE);
gSavedSettings.setBOOL("AudioStreamingMedia", FALSE);
- gSavedSettings.setBOOL("AudioStreamingVideo", FALSE);
gSavedSettings.setBOOL("AudioStreamingMusic", FALSE);
}
return false;
@@ -1813,11 +1811,6 @@ void LLViewerMediaImpl::navigateStop()
bool LLViewerMediaImpl::handleKeyHere(KEY key, MASK mask)
{
bool result = false;
- // *NOTE:Mani - if this doesn't exist llmozlib goes crashy in the debug build.
- // LLMozlib::init wants to write some files to <exe_dir>/components
- std::string debug_init_component_dir( gDirUtilp->getExecutableDir() );
- debug_init_component_dir += "/components";
- LLAPRFile::makeDir(debug_init_component_dir.c_str());
if (mMediaSource)
{
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 455b572537..51dbe4b64b 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -53,7 +53,6 @@
#include "llfloaterbuycontents.h"
#include "llfloaterbuycurrency.h"
#include "llfloatercustomize.h"
-#include "llfloaterchatterbox.h"
#include "llfloatergodtools.h"
#include "llfloaterinventory.h"
#include "llfloaterland.h"
@@ -82,7 +81,6 @@
#include "llsidetray.h"
#include "llstatusbar.h"
#include "lltextureview.h"
-#include "lltoolbar.h"
#include "lltoolcomp.h"
#include "lltoolmgr.h"
#include "lltoolpie.h"
@@ -6389,10 +6387,9 @@ void handle_selected_texture_info(void*)
msg.assign("Texture info for: ");
msg.append(node->mName);
- //TODO* CHAT: how to show this?
- //LLSD args;
- //args["MESSAGE"] = msg;
- //LLNotificationsUtil::add("SystemMessage", args);
+ LLSD args;
+ args["MESSAGE"] = msg;
+ LLNotificationsUtil::add("SystemMessage", args);
U8 te_count = node->getObject()->getNumTEs();
// map from texture ID to list of faces using it
@@ -6425,10 +6422,9 @@ void handle_selected_texture_info(void*)
msg.append( llformat("%d ", (S32)(it->second[i])));
}
- //TODO* CHAT: how to show this?
- //LLSD args;
- //args["MESSAGE"] = msg;
- //LLNotificationsUtil::add("SystemMessage", args);
+ LLSD args;
+ args["MESSAGE"] = msg;
+ LLNotificationsUtil::add("SystemMessage", args);
}
}
}
@@ -7959,6 +7955,7 @@ void initialize_menus()
commit.add("Avatar.Eject", boost::bind(&handle_avatar_eject, LLSD()));
view_listener_t::addMenu(new LLAvatarSendIM(), "Avatar.SendIM");
view_listener_t::addMenu(new LLAvatarCall(), "Avatar.Call");
+ enable.add("Avatar.EnableCall", boost::bind(&LLAvatarActions::canCall));
view_listener_t::addMenu(new LLAvatarReportAbuse(), "Avatar.ReportAbuse");
view_listener_t::addMenu(new LLAvatarEnableAddFriend(), "Avatar.EnableAddFriend");
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index fccd2b2e54..317eecb7a3 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -906,7 +906,7 @@ void open_inventory_offer(const std::vector<LLUUID>& items, const std::string& f
if ("inventory_handler" == from_name)
{
//we have to filter inventory_handler messages to avoid notification displaying
- LLSideTray::getInstance()->showPanel("panel_places",
+ LLSideTray::getInstance()->showPanel("panel_places",
LLSD().with("type", "landmark").with("id", item->getUUID()));
}
else if("group_offer" == from_name)
@@ -925,8 +925,9 @@ void open_inventory_offer(const std::vector<LLUUID>& items, const std::string& f
args["FOLDER_NAME"] = std::string(parent_folder ? parent_folder->getName() : "unknown");
LLNotificationsUtil::add("LandmarkCreated", args);
// Created landmark is passed to Places panel to allow its editing. In fact panel should be already displayed.
+ // If the panel is closed we don't reopen it until created landmark is loaded.
//TODO*:: dserduk(7/12/09) remove LLPanelPlaces dependency from here
- LLPanelPlaces *places_panel = dynamic_cast<LLPanelPlaces*>(LLSideTray::getInstance()->showPanel("panel_places", LLSD()));
+ LLPanelPlaces *places_panel = dynamic_cast<LLPanelPlaces*>(LLSideTray::getInstance()->getPanel("panel_places"));
if (places_panel)
{
// we are creating a landmark
@@ -1365,10 +1366,9 @@ bool LLOfferInfo::inventory_task_offer_callback(const LLSD& notification, const
if (check_offer_throttle(mFromName, true))
{
log_message = chatHistory_string + " " + LLTrans::getString("InvOfferGaveYou") + " " + mDesc + LLTrans::getString(".");
- //TODO* CHAT: how to show this?
- //LLSD args;
- //args["MESSAGE"] = log_message;
- //LLNotificationsUtil::add("SystemMessage", args);
+ LLSD args;
+ args["MESSAGE"] = log_message;
+ LLNotificationsUtil::add("SystemMessage", args);
}
// we will want to open this item when it comes back.
@@ -1410,11 +1410,10 @@ bool LLOfferInfo::inventory_task_offer_callback(const LLSD& notification, const
// send the message
msg->sendReliable(mHost);
- //TODO* CHAT: how to show this?
- //log_message = LLTrans::getString("InvOfferYouDecline") + " " + mDesc + " " + LLTrans::getString("InvOfferFrom") + " " + mFromName +".";
- //LLSD args;
- //args["MESSAGE"] = log_message;
- //LLNotificationsUtil::add("SystemMessage", args);
+ log_message = LLTrans::getString("InvOfferYouDecline") + " " + mDesc + " " + LLTrans::getString("InvOfferFrom") + " " + mFromName +".";
+ LLSD args;
+ args["MESSAGE"] = log_message;
+ LLNotificationsUtil::add("SystemMessage", args);
if (busy && (!mFromGroup && !mFromObject))
{
@@ -1473,11 +1472,6 @@ void inventory_offer_handler(LLOfferInfo* info)
LLStringUtil::truncate(msg, indx);
}
- if(LLAssetType::AT_LANDMARK == info->mType)
- {
- msg = LLViewerInventoryItem::getDisplayName(msg);
- }
-
LLSD args;
args["[OBJECTNAME]"] = msg;
@@ -1843,11 +1837,9 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
// history. Pretend the chat is from a local agent,
// so it will go into the history but not be shown on screen.
- //TODO* CHAT: how to show this?
- //and this is not system message...
- //LLSD args;
- //args["MESSAGE"] = buffer;
- //LLNotificationsUtil::add("SystemMessage", args);
+ LLSD args;
+ args["MESSAGE"] = buffer;
+ LLNotificationsUtil::add("SystemMessageTip", args);
}
}
break;
@@ -1911,7 +1903,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
if (has_inventory)
{
- info = new LLOfferInfo;
+ info = new LLOfferInfo();
info->mIM = IM_GROUP_NOTICE;
info->mFromID = from_id;
@@ -1965,6 +1957,10 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
LLPanelGroup::showNotice(subj,mes,group_id,has_inventory,item_name,info);
}
+ else
+ {
+ delete info;
+ }
}
break;
case IM_GROUP_INVITATION:
@@ -2025,6 +2021,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
if (sizeof(offer_agent_bucket_t) != binary_bucket_size)
{
LL_WARNS("Messaging") << "Malformed inventory offer from agent" << LL_ENDL;
+ delete info;
break;
}
bucketp = (struct offer_agent_bucket_t*) &binary_bucket[0];
@@ -2036,6 +2033,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
if (sizeof(S8) != binary_bucket_size)
{
LL_WARNS("Messaging") << "Malformed inventory offer from object" << LL_ENDL;
+ delete info;
break;
}
info->mType = (LLAssetType::EType) binary_bucket[0];
@@ -2181,10 +2179,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
query_string["groupowned"] = "true";
}
- std::ostringstream link;
- link << "secondlife:///app/objectim/" << session_id << LLURI::mapToQueryString(query_string);
-
- chat.mURL = link.str();
+ chat.mURL = LLSLURL("objectim", session_id, "").getSLURLString();
chat.mText = message;
chat.mSourceType = CHAT_SOURCE_OBJECT;
@@ -2215,7 +2210,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
payload["SESSION_NAME"] = session_name;
if (from_group)
{
- payload["groupowned"] = "true";
+ payload["group_owned"] = "true";
}
LLNotificationsUtil::add("ServerObjectMessage", substitutions, payload);
}
@@ -2517,7 +2512,7 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
// Object owner for objects
msg->getUUID("ChatData", "OwnerID", owner_id);
-
+
msg->getU8Fast(_PREHASH_ChatData, _PREHASH_SourceType, source_temp);
chat.mSourceType = (EChatSourceType)source_temp;
@@ -2546,7 +2541,7 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
if (chatter)
{
chat.mPosAgent = chatter->getPositionAgent();
-
+
// Make swirly things only for talking objects. (not script debug messages, though)
if (chat.mSourceType == CHAT_SOURCE_OBJECT
&& chat.mChatType != CHAT_TYPE_DEBUG_MSG)
@@ -2691,8 +2686,13 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
chat.mMuted = is_muted && !is_linden;
- LLNotificationsUI::LLNotificationManager::instance().onChat(
- chat, LLNotificationsUI::NT_NEARBYCHAT);
+ // pass owner_id to chat so that we can display the remote
+ // object inspect for an object that is chatting with you
+ LLSD args;
+ args["type"] = LLNotificationsUI::NT_NEARBYCHAT;
+ args["owner_id"] = owner_id;
+
+ LLNotificationsUI::LLNotificationManager::instance().onChat(chat, args);
}
}
@@ -3078,10 +3078,9 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**)
{
// Chat the "back" SLURL. (DEV-4907)
- //TODO* CHAT: how to show this?
- //LLSD args;
- //args["MESSAGE"] = message;
- //LLNotificationsUtil::add("SystemMessage", args);
+ LLSD args;
+ args["MESSAGE"] = "Teleport completed from " + gAgent.getTeleportSourceSLURL().getSLURLString();
+ LLNotificationsUtil::add("SystemMessageTip", args);
// Set the new position
avatarp->setPositionAgent(agent_pos);
diff --git a/indra/newview/llviewermessage.h b/indra/newview/llviewermessage.h
index 8404d6fde0..1415c16090 100644
--- a/indra/newview/llviewermessage.h
+++ b/indra/newview/llviewermessage.h
@@ -205,7 +205,9 @@ void open_inventory_offer(const std::vector<LLUUID>& items, const std::string& f
struct LLOfferInfo
{
- LLOfferInfo() {};
+ LLOfferInfo()
+ : mFromGroup(FALSE), mFromObject(FALSE),
+ mIM(IM_NOTHING_SPECIAL), mType(LLAssetType::AT_NONE) {};
LLOfferInfo(const LLSD& sd);
void forceResponse(InventoryOfferResponse response);
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp
index ce7b45bc11..202ad30287 100644
--- a/indra/newview/llviewerobject.cpp
+++ b/indra/newview/llviewerobject.cpp
@@ -861,6 +861,7 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,
htonmemcpy(collision_plane.mV, &data[count], MVT_LLVector4, sizeof(LLVector4));
((LLVOAvatar*)this)->setFootPlane(collision_plane);
count += sizeof(LLVector4);
+ // fall through
case 60:
this_update_precision = 32;
// this is a terse update
@@ -900,6 +901,7 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,
htonmemcpy(collision_plane.mV, &data[count], MVT_LLVector4, sizeof(LLVector4));
((LLVOAvatar*)this)->setFootPlane(collision_plane);
count += sizeof(LLVector4);
+ // fall through
case 32:
this_update_precision = 16;
test_pos_parent.quantize16(-0.5f*size, 1.5f*size, MIN_HEIGHT, MAX_HEIGHT);
@@ -1172,6 +1174,7 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,
htonmemcpy(collision_plane.mV, &data[count], MVT_LLVector4, sizeof(LLVector4));
((LLVOAvatar*)this)->setFootPlane(collision_plane);
count += sizeof(LLVector4);
+ // fall through
case 60:
// this is a terse 32 update
// pos
@@ -1211,6 +1214,7 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,
htonmemcpy(collision_plane.mV, &data[count], MVT_LLVector4, sizeof(LLVector4));
((LLVOAvatar*)this)->setFootPlane(collision_plane);
count += sizeof(LLVector4);
+ // fall through
case 32:
// this is a terse 16 update
this_update_precision = 16;
diff --git a/indra/newview/llviewerparcelmedia.cpp b/indra/newview/llviewerparcelmedia.cpp
index e87dbe5c07..c4fc2e5cab 100644
--- a/indra/newview/llviewerparcelmedia.cpp
+++ b/indra/newview/llviewerparcelmedia.cpp
@@ -179,7 +179,7 @@ void LLViewerParcelMedia::play(LLParcel* parcel)
if (!parcel) return;
- if (!gSavedSettings.getBOOL("AudioStreamingMedia") || !gSavedSettings.getBOOL("AudioStreamingVideo"))
+ if (!gSavedSettings.getBOOL("AudioStreamingMedia"))
return;
std::string media_url = parcel->getMediaURL();
diff --git a/indra/newview/llviewerparcelmgr.cpp b/indra/newview/llviewerparcelmgr.cpp
index 10a95443f1..c537865937 100644
--- a/indra/newview/llviewerparcelmgr.cpp
+++ b/indra/newview/llviewerparcelmgr.cpp
@@ -69,7 +69,6 @@
#include "llviewerparceloverlay.h"
#include "llviewerregion.h"
#include "llworld.h"
-#include "lloverlaybar.h"
#include "roles_constants.h"
#include "llweb.h"
@@ -706,8 +705,8 @@ bool LLViewerParcelMgr::allowAgentScripts() const
bool LLViewerParcelMgr::allowAgentDamage() const
{
LLViewerRegion* region = gAgent.getRegion();
- return region && region->getAllowDamage()
- && mAgentParcel && mAgentParcel->getAllowDamage();
+ return (region && region->getAllowDamage())
+ || (mAgentParcel && mAgentParcel->getAllowDamage());
}
BOOL LLViewerParcelMgr::isOwnedAt(const LLVector3d& pos_global) const
diff --git a/indra/newview/llviewerpartsim.cpp b/indra/newview/llviewerpartsim.cpp
index 841a7ccc5e..6b480ccf8e 100644
--- a/indra/newview/llviewerpartsim.cpp
+++ b/indra/newview/llviewerpartsim.cpp
@@ -81,6 +81,7 @@ F32 calc_desired_size(LLViewerCamera* camera, LLVector3 pos, LLVector2 scale)
LLViewerPart::LLViewerPart() :
mPartID(0),
mLastUpdateTime(0.f),
+ mSkipOffset(0.f),
mVPCallback(NULL),
mImagep(NULL)
{
diff --git a/indra/newview/llviewershadermgr.cpp b/indra/newview/llviewershadermgr.cpp
index 6dc9f5c465..86b1a8c910 100644
--- a/indra/newview/llviewershadermgr.cpp
+++ b/indra/newview/llviewershadermgr.cpp
@@ -135,7 +135,8 @@ LLGLSLShader gLuminanceGatherProgram;
GLint gAvatarMatrixParam;
LLViewerShaderMgr::LLViewerShaderMgr() :
- mVertexShaderLevel(SHADER_COUNT, 0)
+ mVertexShaderLevel(SHADER_COUNT, 0),
+ mMaxAvatarShaderLevel(0)
{
/// Make sure WL Sky is the first program
mShaderList.push_back(&gWLSkyProgram);
diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp
index 3f42cba561..0ad269392d 100644
--- a/indra/newview/llviewertexture.cpp
+++ b/indra/newview/llviewertexture.cpp
@@ -1029,6 +1029,8 @@ void LLViewerFetchedTexture::init(bool firstinit)
// does not contain this image.
mIsMissingAsset = FALSE;
+ mLoadedCallbackDesiredDiscardLevel = 0;
+
mNeedsCreateTexture = FALSE;
mIsRawImageValid = FALSE;
@@ -1041,6 +1043,7 @@ void LLViewerFetchedTexture::init(bool firstinit)
mFetchPriority = 0;
mDownloadProgress = 0.f;
mFetchDeltaTime = 999999.f;
+ mRequestDeltaTime = 0.f;
mForSculpt = FALSE ;
mIsFetched = FALSE ;
@@ -2777,7 +2780,6 @@ void LLViewerMediaTexture::updateClass()
#if 0
//force to play media.
gSavedSettings.setBOOL("AudioStreamingMedia", true) ;
- gSavedSettings.setBOOL("AudioStreamingVideo", true) ;
#endif
for(media_map_t::iterator iter = sMediaMap.begin() ; iter != sMediaMap.end(); )
diff --git a/indra/newview/llviewervisualparam.cpp b/indra/newview/llviewervisualparam.cpp
index b088ef0730..fad398e00b 100644
--- a/indra/newview/llviewervisualparam.cpp
+++ b/indra/newview/llviewervisualparam.cpp
@@ -46,6 +46,7 @@
LLViewerVisualParamInfo::LLViewerVisualParamInfo()
:
mWearableType( WT_INVALID ),
+ mCrossWearable(FALSE),
mCamDist( 0.5f ),
mCamAngle( 0.f ),
mCamElevation( 0.f ),
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index b2ee7f4469..0c756d122c 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -101,7 +101,6 @@
#include "llfloaterbuildoptions.h"
#include "llfloaterbuyland.h"
#include "llfloatercamera.h"
-#include "llfloaterchatterbox.h"
#include "llfloatercustomize.h"
#include "llfloaterland.h"
#include "llfloaterinspect.h"
@@ -128,7 +127,6 @@
#include "llmorphview.h"
#include "llmoveview.h"
#include "llnavigationbar.h"
-#include "lloverlaybar.h"
#include "llpreviewtexture.h"
#include "llprogressview.h"
#include "llresmgr.h"
@@ -147,7 +145,6 @@
#include "lltexturefetch.h"
#include "lltextureview.h"
#include "lltool.h"
-#include "lltoolbar.h"
#include "lltoolcomp.h"
#include "lltooldraganddrop.h"
#include "lltoolface.h"
@@ -1463,10 +1460,6 @@ void LLViewerWindow::initWorldUI()
bottom_tray_container->addChild(bottom_tray);
bottom_tray_container->setVisible(TRUE);
- // Pre initialize instance communicate instance;
- // currently needs to happen before initializing chat or IM
- LLFloaterReg::getInstance("communicate");
-
LLRect morph_view_rect = full_window;
morph_view_rect.stretch( -STATUS_BAR_HEIGHT );
morph_view_rect.mTop = full_window.mTop - 32;
@@ -1659,6 +1652,9 @@ LLViewerWindow::~LLViewerWindow()
{
llinfos << "Destroying Window" << llendl;
destroyWindow();
+
+ delete mDebugText;
+ mDebugText = NULL;
}
@@ -2266,15 +2262,18 @@ void LLViewerWindow::handleScrollWheel(S32 clicks)
void LLViewerWindow::moveCursorToCenter()
{
- S32 x = getWorldViewWidthScaled() / 2;
- S32 y = getWorldViewHeightScaled() / 2;
+ if (! gSavedSettings.getBOOL("DisableMouseWarp"))
+ {
+ S32 x = getWorldViewWidthScaled() / 2;
+ S32 y = getWorldViewHeightScaled() / 2;
- //on a forced move, all deltas get zeroed out to prevent jumping
- mCurrentMousePoint.set(x,y);
- mLastMousePoint.set(x,y);
- mCurrentMouseDelta.set(0,0);
+ //on a forced move, all deltas get zeroed out to prevent jumping
+ mCurrentMousePoint.set(x,y);
+ mLastMousePoint.set(x,y);
+ mCurrentMouseDelta.set(0,0);
- LLUI::setMousePositionScreen(x, y);
+ LLUI::setMousePositionScreen(x, y);
+ }
}
@@ -4846,10 +4845,10 @@ LLPickInfo::LLPickInfo()
}
LLPickInfo::LLPickInfo(const LLCoordGL& mouse_pos,
- MASK keyboard_mask,
- BOOL pick_transparent,
- BOOL pick_uv_coords,
- void (*pick_callback)(const LLPickInfo& pick_info))
+ MASK keyboard_mask,
+ BOOL pick_transparent,
+ BOOL pick_uv_coords,
+ void (*pick_callback)(const LLPickInfo& pick_info))
: mMousePt(mouse_pos),
mKeyMask(keyboard_mask),
mPickCallback(pick_callback),
diff --git a/indra/newview/llviewerwindow.h b/indra/newview/llviewerwindow.h
index b488276a18..c0a9180b53 100644
--- a/indra/newview/llviewerwindow.h
+++ b/indra/newview/llviewerwindow.h
@@ -126,9 +126,6 @@ private:
void updateXYCoords();
BOOL mWantSurfaceInfo; // do we populate mUVCoord, mNormal, mBinormal?
- U8 mPickBuffer[PICK_DIAMETER * PICK_DIAMETER * 4];
- F32 mPickDepthBuffer[PICK_DIAMETER * PICK_DIAMETER];
- BOOL mPickParcelWall;
};
diff --git a/indra/newview/llviewerwindowlistener.cpp b/indra/newview/llviewerwindowlistener.cpp
index de57788271..fae98cf49a 100644
--- a/indra/newview/llviewerwindowlistener.cpp
+++ b/indra/newview/llviewerwindowlistener.cpp
@@ -77,6 +77,7 @@ void LLViewerWindowListener::saveSnapshot(const LLSD& event) const
{
LL_ERRS("LLViewerWindowListener") << "LLViewerWindowListener::saveSnapshot(): "
<< "unrecognized type " << event["type"] << LL_ENDL;
+ return;
}
type = found->second;
}
diff --git a/indra/newview/llvoicechannel.cpp b/indra/newview/llvoicechannel.cpp
index 4388f473b4..202abe2833 100644
--- a/indra/newview/llvoicechannel.cpp
+++ b/indra/newview/llvoicechannel.cpp
@@ -395,13 +395,13 @@ void LLVoiceChannel::setState(EState state)
switch(state)
{
case STATE_RINGING:
- gIMMgr->addSystemMessage(mSessionID, "ringing", mNotifyArgs);
+ LLCallInfoDialog::show("ringing", mNotifyArgs);
break;
case STATE_CONNECTED:
- gIMMgr->addSystemMessage(mSessionID, "connected", mNotifyArgs);
+ LLCallInfoDialog::show("connected", mNotifyArgs);
break;
case STATE_HUNG_UP:
- gIMMgr->addSystemMessage(mSessionID, "hang_up", mNotifyArgs);
+ LLCallInfoDialog::show("hang_up", mNotifyArgs);
break;
default:
break;
@@ -640,7 +640,7 @@ void LLVoiceChannelGroup::setState(EState state)
case STATE_RINGING:
if ( !mIsRetrying )
{
- gIMMgr->addSystemMessage(mSessionID, "ringing", mNotifyArgs);
+ LLCallInfoDialog::show("ringing", mNotifyArgs);
}
doSetState(state);
@@ -702,7 +702,11 @@ void LLVoiceChannelProximal::handleStatusChange(EStatusType status)
// do not notify user when leaving proximal channel
return;
case STATUS_VOICE_DISABLED:
- gIMMgr->addSystemMessage(LLUUID::null, "unavailable", mNotifyArgs);
+ //skip showing "Voice not available at your current location" when agent voice is disabled (EXT-4749)
+ if(LLVoiceClient::getInstance()->voiceEnabled() && LLVoiceClient::getInstance()->isVoiceWorking())
+ {
+ LLCallInfoDialog::show("unavailable", mNotifyArgs);
+ }
return;
default:
break;
@@ -901,7 +905,7 @@ void LLVoiceChannelP2P::setState(EState state)
// so provide a special purpose message here
if (mReceivedCall && state == STATE_RINGING)
{
- gIMMgr->addSystemMessage(mSessionID, "answering", mNotifyArgs);
+ LLCallInfoDialog::show("answering", mNotifyArgs);
doSetState(state);
return;
}
diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp
index 232171cab6..a1bfda1e2a 100644
--- a/indra/newview/llvoicevivox.cpp
+++ b/indra/newview/llvoicevivox.cpp
@@ -5493,6 +5493,7 @@ void LLVivoxVoiceClient::filePlaybackSetMode(bool vox, float speed)
}
LLVivoxVoiceClient::sessionState::sessionState() :
+ mErrorStatusCode(0),
mMediaStreamState(streamStateUnknown),
mTextStreamState(streamStateUnknown),
mCreateInProgress(false),
@@ -6230,8 +6231,14 @@ void LLVivoxProtocolParser::reset()
ignoringTags = false;
accumulateText = false;
energy = 0.f;
+ hasText = false;
+ hasAudio = false;
+ hasVideo = false;
+ terminated = false;
ignoreDepth = 0;
isChannel = false;
+ incoming = false;
+ enabled = false;
isEvent = false;
isLocallyMuted = false;
isModeratorMuted = false;
diff --git a/indra/newview/llvosky.cpp b/indra/newview/llvosky.cpp
index 5ff8f0d267..0550ed770b 100644
--- a/indra/newview/llvosky.cpp
+++ b/indra/newview/llvosky.cpp
@@ -343,7 +343,6 @@ LLVOSky::LLVOSky(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp)
cloud_pos_density1 = LLColor3();
cloud_pos_density2 = LLColor3();
-
mInitialized = FALSE;
mbCanSelect = FALSE;
mUpdateTimer.reset();
@@ -385,6 +384,10 @@ LLVOSky::LLVOSky(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp)
mBloomTexturep->setAddressMode(LLTexUnit::TAM_CLAMP);
mHeavenlyBodyUpdated = FALSE ;
+
+ mDrawRefl = 0;
+ mHazeConcentration = 0.f;
+ mInterpVal = 0.f;
}
@@ -1072,10 +1075,10 @@ BOOL LLVOSky::updateSky()
++next_frame;
next_frame = next_frame % cycle_frame_no;
- sInterpVal = (!mInitialized) ? 1 : (F32)next_frame / cycle_frame_no;
+ mInterpVal = (!mInitialized) ? 1 : (F32)next_frame / cycle_frame_no;
// sInterpVal = (F32)next_frame / cycle_frame_no;
- LLSkyTex::setInterpVal( sInterpVal );
- LLHeavenBody::setInterpVal( sInterpVal );
+ LLSkyTex::setInterpVal( mInterpVal );
+ LLHeavenBody::setInterpVal( mInterpVal );
calcAtmospherics();
if (mForceUpdate || total_no_tiles == frame)
diff --git a/indra/newview/llvosky.h b/indra/newview/llvosky.h
index ef74324e58..8366909755 100644
--- a/indra/newview/llvosky.h
+++ b/indra/newview/llvosky.h
@@ -613,7 +613,7 @@ protected:
LLColor3 mLastTotalAmbient;
F32 mAmbientScale;
LLColor3 mNightColorShift;
- F32 sInterpVal;
+ F32 mInterpVal;
LLColor4 mFogColor;
LLColor4 mGLFogCol;
@@ -636,8 +636,8 @@ protected:
public:
//by bao
//fake vertex buffer updating
- //to guaranttee at least updating one VBO buffer every frame
- //to walk around the bug caused by ATI card --> DEV-3855
+ //to guarantee at least updating one VBO buffer every frame
+ //to work around the bug caused by ATI card --> DEV-3855
//
void createDummyVertexBuffer() ;
void updateDummyVertexBuffer() ;
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index 295c0c8010..bfe38c14ba 100644
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -180,8 +180,10 @@ LLVOVolume::LLVOVolume(const LLUUID &id, const LLPCode pcode, LLViewerRegion *re
mRelativeXform.setIdentity();
mRelativeXformInvTrans.setIdentity();
+ mFaceMappingChanged = FALSE;
mLOD = MIN_LOD;
mTextureAnimp = NULL;
+ mVolumeChanged = FALSE;
mVObjRadius = LLVector3(1,1,0.5f).length();
mNumFaces = 0;
mLODChanged = FALSE;
diff --git a/indra/newview/llwearable.cpp b/indra/newview/llwearable.cpp
index b789bd3650..d093031bea 100644
--- a/indra/newview/llwearable.cpp
+++ b/indra/newview/llwearable.cpp
@@ -818,16 +818,13 @@ const LLLocalTextureObject* LLWearable::getConstLocalTextureObject(S32 index) co
return NULL;
}
-void LLWearable::setLocalTextureObject(S32 index, LLLocalTextureObject *lto)
+void LLWearable::setLocalTextureObject(S32 index, LLLocalTextureObject &lto)
{
if( mTEMap.find(index) != mTEMap.end() )
{
mTEMap.erase(index);
}
- if( lto )
- {
- mTEMap[index] = new LLLocalTextureObject(*lto);
- }
+ mTEMap[index] = new LLLocalTextureObject(lto);
}
diff --git a/indra/newview/llwearable.h b/indra/newview/llwearable.h
index 7a579b248e..dae983bcf3 100644
--- a/indra/newview/llwearable.h
+++ b/indra/newview/llwearable.h
@@ -114,7 +114,7 @@ public:
LLLocalTextureObject* getLocalTextureObject(S32 index);
const LLLocalTextureObject* getConstLocalTextureObject(S32 index) const;
- void setLocalTextureObject(S32 index, LLLocalTextureObject *lto);
+ void setLocalTextureObject(S32 index, LLLocalTextureObject &lto);
void addVisualParam(LLVisualParam *param);
void setVisualParams();
void setVisualParamWeight(S32 index, F32 value, BOOL upload_bake);
diff --git a/indra/newview/llwearablelist.cpp b/indra/newview/llwearablelist.cpp
index 5636256856..d6a9837b86 100644
--- a/indra/newview/llwearablelist.cpp
+++ b/indra/newview/llwearablelist.cpp
@@ -38,7 +38,6 @@
#include "llassetstorage.h"
#include "llagent.h"
#include "llvoavatar.h"
-#include "llviewerinventory.h"
#include "llviewerstats.h"
#include "llnotificationsutil.h"
#include "llinventorymodel.h"
diff --git a/indra/newview/skins/default/xui/de/floater_about_land.xml b/indra/newview/skins/default/xui/de/floater_about_land.xml
index af489d39d2..cd5abf86e0 100644
--- a/indra/newview/skins/default/xui/de/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/de/floater_about_land.xml
@@ -13,7 +13,7 @@
Restzeit
</floater.string>
<tab_container name="landtab">
- <panel label="Allgemein" name="land_general_panel">
+ <panel label="ALLGEMEIN" name="land_general_panel">
<panel.string name="new users only">
Nur neue Benutzer
</panel.string>
@@ -36,10 +36,10 @@
(In Gruppenbesitz)
</panel.string>
<panel.string name="profile_text">
- Profil...
+ Profil
</panel.string>
<panel.string name="info_text">
- Info...
+ Info
</panel.string>
<panel.string name="public_text">
(öffentlich)
@@ -52,7 +52,6 @@
</panel.string>
<panel.string name="no_selection_text">
Keine Parzelle ausgewÀhlt.
-Öffnen Sie „Welt“ &gt; „Land-Info“ oder wÀhlen Sie eine andere Parzelle aus, um Informationen darÃŒber anzuzeigen.
</panel.string>
<text name="Name:">
Name:
@@ -78,33 +77,35 @@
<text name="OwnerText">
Leyla Linden
</text>
- <button label="Profil..." label_selected="Profil..." name="Profile..."/>
<text name="Group:">
Gruppe:
</text>
- <button label="Einstellen..." label_selected="Einstellen..." name="Set..."/>
+ <text name="GroupText">
+ Leyla Linden
+ </text>
+ <button label="Festlegen" label_selected="Einstellen..." name="Set..."/>
<check_box label="Übertragung an Gruppe zulassen" name="check deed" tool_tip="Ein Gruppen-Officer kann dieses Land der Gruppe ÃŒbertragen. Das Land wird dann ÃŒber die Landzuteilung der Gruppe verwaltet."/>
- <button label="Übertragen..." label_selected="Übertragen..." name="Deed..." tool_tip="Sie können Land nur ÃŒbertragen, wenn Sie in der ausgewÀhlten Gruppe Officer sind."/>
+ <button label="Übertragung" label_selected="Übertragen..." name="Deed..." tool_tip="Sie können Land nur ÃŒbertragen, wenn Sie in der ausgewÀhlten Gruppe Officer sind."/>
<check_box label="EigentÃŒmer leistet Beitrag durch Übertragung" name="check contrib" tool_tip="Wenn das Land an die Gruppe ÃŒbertragen wird, trÀgt der frÃŒhere EigentÃŒmer ausreichend Landnutzungsrechte bei, um es zu halten."/>
<text name="For Sale:">
Zum Verkauf:
</text>
<text name="Not for sale.">
- Nicht zu verkaufen.
+ Nicht zu verkaufen
</text>
<text name="For Sale: Price L$[PRICE].">
- Preis: [PRICE] L$ ([PRICE_PER_SQM]L$/m²).
+ Preis: [PRICE] L$ ([PRICE_PER_SQM]L$/m²)
</text>
<text name="SalePending"/>
- <button bottom="-222" label="Land verkaufen..." label_selected="Land verkaufen..." name="Sell Land..."/>
+ <button bottom="-222" label="Land verkaufen" label_selected="Land verkaufen..." name="Sell Land..."/>
<text name="For sale to">
Zum Verkauf an: [BUYER]
</text>
<text name="Sell with landowners objects in parcel." width="210">
- Objekte sind im Verkauf eingeschlossen.
+ Objekte sind im Verkauf eingeschlossen
</text>
<text name="Selling with no objects in parcel." width="237">
- Objekte sind im Verkauf nicht eingeschlossen.
+ Objekte sind im Verkauf nicht eingeschlossen
</text>
<button bottom="-222" label="Landverkauf abbrechen" label_selected="Landverkauf abbrechen" name="Cancel Land Sale"/>
<text name="Claimed:">
@@ -125,14 +126,15 @@
<text name="DwellText">
0
</text>
- <button label="Land kaufen..." label_selected="Land kaufen..." name="Buy Land..."/>
- <button label="FÃŒr Gruppe kaufen..." label_selected="FÃŒr Gruppe kaufen..." name="Buy For Group..."/>
- <button label="Pass kaufen..." label_selected="Pass kaufen..." name="Buy Pass..." tool_tip="Ein Pass gibt Ihnen zeitbegrenzten Zugang zu diesem Land."/>
- <button label="Land aufgeben..." label_selected="Land aufgeben..." name="Abandon Land..."/>
- <button label="Land in Besitz nehmen..." label_selected="Land in Besitz nehmen..." name="Reclaim Land..."/>
- <button label="Linden-Verkauf..." label_selected="Linden-Verkauf..." name="Linden Sale..." tool_tip="Land muss Eigentum und auf Inhalt gesetzt sein und nicht zur Auktion stehen."/>
+ <button label="Land kaufen" label_selected="Land kaufen..." name="Buy Land..."/>
+ <button label="Skriptinfo" name="Scripts..."/>
+ <button label="FÃŒr Gruppe kaufen" label_selected="FÃŒr Gruppe kaufen..." name="Buy For Group..."/>
+ <button label="Pass kaufen" label_selected="Pass kaufen..." name="Buy Pass..." tool_tip="Ein Pass gibt Ihnen zeitbegrenzten Zugang zu diesem Land."/>
+ <button label="Land aufgeben" label_selected="Land aufgeben..." name="Abandon Land..."/>
+ <button label="Land in Besitz nehmen" label_selected="Land in Besitz nehmen..." name="Reclaim Land..."/>
+ <button label="Linden-Verkauf" label_selected="Linden-Verkauf..." name="Linden Sale..." tool_tip="Land muss Eigentum und auf Inhalt gesetzt sein und nicht zur Auktion stehen."/>
</panel>
- <panel label="Vertrag" name="land_covenant_panel">
+ <panel label="VERTRAG" name="land_covenant_panel">
<panel.string name="can_resell">
Gekauftes Land in dieser Region kann wiederverkauft werden.
</panel.string>
@@ -150,9 +152,6 @@ und geteilt werden.
<text name="estate_section_lbl">
GrundstÃŒck:
</text>
- <text name="estate_name_lbl">
- Name:
- </text>
<text name="estate_name_text">
Mainland
</text>
@@ -171,11 +170,8 @@ und geteilt werden.
<text name="region_section_lbl">
Region:
</text>
- <text name="region_name_lbl">
- Name:
- </text>
<text name="region_name_text">
- leyla
+ EricaVille
</text>
<text name="region_landtype_lbl">
Typ:
@@ -203,7 +199,7 @@ und geteilt werden.
werden.
</text>
</panel>
- <panel label="Objekte" name="land_objects_panel">
+ <panel label="OBJEKTE" name="land_objects_panel">
<panel.string name="objects_available_text">
[COUNT] von [MAX] ([AVAILABLE] verfÃŒgbar)
</panel.string>
@@ -214,19 +210,19 @@ werden.
Objektbonusfaktor in Region: [BONUS]
</text>
<text name="Simulator primitive usage:">
- Primitive in Simulator:
+ Prim-Verwendung:
</text>
<text name="objects_available">
[COUNT] von [MAX] ([AVAILABLE] verfÃŒgbar)
</text>
<text name="Primitives parcel supports:" width="200">
- Von Parzelle unterstÃŒtzte Primitiva:
+ Von Parzelle unterstÃŒtzte Prims:
</text>
<text left="204" name="object_contrib_text" width="152">
[COUNT]
</text>
<text name="Primitives on parcel:">
- Primitiva auf Parzelle:
+ Prims auf Parzelle:
</text>
<text left="204" name="total_objects_text" width="48">
[COUNT]
@@ -238,7 +234,7 @@ werden.
[COUNT]
</text>
<button label="Anzeigen" label_selected="Anzeigen" name="ShowOwner" right="-135" width="60"/>
- <button label="ZurÃŒckgeben..." label_selected="ZurÃŒckgeben..." name="ReturnOwner..." right="-10" tool_tip="Objekte an ihre EigentÃŒmer zurÃŒckgeben." width="119"/>
+ <button label="ZurÃŒckgeben" label_selected="ZurÃŒckgeben..." name="ReturnOwner..." right="-10" tool_tip="Objekte an ihre EigentÃŒmer zurÃŒckgeben." width="119"/>
<text left="14" name="Set to group:">
Der Gruppe zugeordnet:
</text>
@@ -246,7 +242,7 @@ werden.
[COUNT]
</text>
<button label="Anzeigen" label_selected="Anzeigen" name="ShowGroup" right="-135" width="60"/>
- <button label="ZurÃŒckgeben..." label_selected="ZurÃŒckgeben..." name="ReturnGroup..." right="-10" tool_tip="Objekte an ihre EigentÃŒmer zurÃŒckgeben." width="119"/>
+ <button label="ZurÃŒckgeben" label_selected="ZurÃŒckgeben..." name="ReturnGroup..." right="-10" tool_tip="Objekte an ihre EigentÃŒmer zurÃŒckgeben." width="119"/>
<text left="14" name="Owned by others:" width="128">
Im Eigentum anderer:
</text>
@@ -254,7 +250,7 @@ werden.
[COUNT]
</text>
<button label="Anzeigen" label_selected="Anzeigen" name="ShowOther" right="-135" width="60"/>
- <button label="ZurÃŒckgeben..." label_selected="ZurÃŒckgeben..." name="ReturnOther..." right="-10" tool_tip="Objekte an ihre EigentÃŒmer zurÃŒckgeben." width="119"/>
+ <button label="ZurÃŒckgeben" label_selected="ZurÃŒckgeben..." name="ReturnOther..." right="-10" tool_tip="Objekte an ihre EigentÃŒmer zurÃŒckgeben." width="119"/>
<text left="14" name="Selected / sat upon:" width="140">
AusgewÀhlt/gesessen auf:
</text>
@@ -268,8 +264,8 @@ werden.
<text name="Object Owners:">
ObjekteigentÃŒmer:
</text>
- <button label="Liste aktualisieren" label_selected="Liste aktualisieren" name="Refresh List"/>
- <button label="Objekte zurÃŒckgeben..." label_selected="Objekte zurÃŒckgeben..." name="Return objects..."/>
+ <button label="Liste aktualisieren" label_selected="Liste aktualisieren" name="Refresh List" tool_tip="Objektliste aktualisieren"/>
+ <button label="Objekte zurÃŒckgeben" label_selected="Objekte zurÃŒckgeben..." name="Return objects..."/>
<name_list name="owner list">
<name_list.columns label="Typ" name="type"/>
<name_list.columns label="Name" name="name"/>
@@ -277,7 +273,7 @@ werden.
<name_list.columns label="Aktuellster" name="mostrecent"/>
</name_list>
</panel>
- <panel label="Optionen" name="land_options_panel">
+ <panel label="OPTIONEN" name="land_options_panel">
<panel.string name="search_enabled_tooltip">
Diese Parzelle in Suchergebnissen anzeigen.
</panel.string>
@@ -289,13 +285,13 @@ Nur große Parzellen können in der Suche aufgefÃŒhrt werden.
Diese Option ist nicht aktiviert, da Sie die Parzellenoptionen nicht verÀndern können.
</panel.string>
<panel.string name="mature_check_mature">
- Mature-Inhalt
+ Moderater Inhalt
</panel.string>
<panel.string name="mature_check_adult">
Adult-Inhalt
</panel.string>
<panel.string name="mature_check_mature_tooltip">
- Die Informationen oder Inhalte Ihrer Parzelle sind „Mature“.
+ Die Informationen oder Inhalte Ihrer Parzelle sind „Moderat“.
</panel.string>
<panel.string name="mature_check_adult_tooltip">
Die Informationen oder Inhalte Ihrer Parzelle sind „Adult“.
@@ -315,26 +311,26 @@ Nur große Parzellen können in der Suche aufgefÃŒhrt werden.
<check_box label="Terrain bearbeiten" name="edit land check" tool_tip="Falls aktiviert, kann jeder Ihr Land terraformen. Am besten ist es, wenn Sie diese Option deaktiviert lassen. Sie können Ihr eigenes Land jederzeit bearbeiten."/>
<check_box label="Fliegen" name="check fly" tool_tip="Falls aktiviert, können Einwohner auf Ihrem Land fliegen. Falls nicht aktiviert, können Einwohner lediglich auf Ihr Land fliegen und dort landen (dann jedoch nicht wieder weiterfliegen) oder Ìber Ihr Land hinweg fliegen."/>
<text name="allow_label2">
- Objekte erstellen:
+ Bauen:
</text>
- <check_box label="Alle Einwohner" name="edit objects check"/>
+ <check_box label="Jeder" name="edit objects check"/>
<check_box label="Gruppe" name="edit group objects check"/>
<text name="allow_label3">
Objekteintritt:
</text>
- <check_box label="Alle Einwohner" name="all object entry check"/>
+ <check_box label="Jeder" name="all object entry check"/>
<check_box label="Gruppe" name="group object entry check"/>
<text name="allow_label4">
Skripts ausfÃŒhren:
</text>
- <check_box label="Alle Einwohner" name="check other scripts"/>
+ <check_box label="Jeder" name="check other scripts"/>
<check_box label="Gruppe" name="check group scripts"/>
<text name="land_options_label">
Landoptionen:
</text>
<check_box label="Sicher (kein Schaden)" name="check safe" tool_tip="Falls aktiviert, wird Land auf Option „Sicher“ eingestellt, KampfschÀden sind deaktiviert. Falls nicht aktiviert, sind KampfschÀden aktiviert."/>
<check_box label="Kein Stoßen" name="PushRestrictCheck" tool_tip="Verhindert Skripte am Stoßen. Durch Aktivieren dieser Option verhindern Sie störendes Verhalten auf Ihrem Land."/>
- <check_box label="Ort in Suche anzeigen (30 L$/Woche) unter" name="ShowDirectoryCheck" tool_tip="Diese Parzelle in Suchergebnissen anzeigen."/>
+ <check_box label="Ort in Suche anzeigen (30 L$/Woche)" name="ShowDirectoryCheck" tool_tip="Diese Parzelle in Suchergebnissen anzeigen."/>
<combo_box name="land category with adult">
<combo_box.item label="Alle Kategorien" name="item0"/>
<combo_box.item label="Lindenort" name="item1"/>
@@ -364,7 +360,7 @@ Nur große Parzellen können in der Suche aufgefÃŒhrt werden.
<combo_box.item label="Shopping" name="item11"/>
<combo_box.item label="Sonstige" name="item12"/>
</combo_box>
- <check_box label="Mature-Inhalt" name="MatureCheck" tool_tip=""/>
+ <check_box label="Moderater Inhalt" name="MatureCheck" tool_tip=""/>
<text name="Snapshot:">
Foto:
</text>
@@ -383,33 +379,30 @@ Nur große Parzellen können in der Suche aufgefÃŒhrt werden.
<combo_box.item label="Überall" name="Anywhere"/>
</combo_box>
</panel>
- <panel label="Medien" name="land_media_panel">
+ <panel label="MEDIEN" name="land_media_panel">
<text name="with media:">
Typ:
</text>
<combo_box name="media type" tool_tip="Geben Sie einen URL fÃŒr den Film, die Webseite oder ein anderes Medium ein"/>
<text name="at URL:">
- Start URL:
+ Homepage:
</text>
- <button label="Einstellen..." label_selected="Einstellen..." name="set_media_url"/>
+ <button label="Festlegen" label_selected="Einstellen..." name="set_media_url"/>
<text name="CurrentURL:">
- Aktuelle URL:
+ Aktuelle Seite:
</text>
- <button label="ZurÃŒcksetzen..." label_selected="ZurÃŒcksetzen..." name="reset_media_url"/>
+ <button label="ZurÃŒcksetzen..." label_selected="ZurÃŒcksetzen..." name="reset_media_url" tool_tip="URL aktualisieren"/>
<check_box label="URL ausblenden" name="hide_media_url" tool_tip="Aktivieren Sie diese Option, wenn Sie nicht möchten, dass unautorisierte Personen die Medien-URL sehen können. Diese Option ist fÌr HTML-Medien nicht verfÌgbar."/>
<text name="Description:">
Inhalt:
</text>
<line_editor name="url_description" tool_tip="Text, der neben der Abspielen/Laden-SchaltflÀche angezeigt wird"/>
<text name="Media texture:">
- Textur
-ersetzen:
+ Textur ersetzen:
</text>
<texture_picker label="" name="media texture" tool_tip="Klicken Sie hier, um ein Bild auszuwÀhlen"/>
<text name="replace_texture_help">
- Objekte, die diese Textur verwenden, werden den Film oder die Webseite anzeigen, nachdem Sie auf den Pfeil (Wiedergabe) klicken.
-
-WÀhlen Sie das kleine Bild aus, um eine andere Textur auszuwÀhlen.
+ Objekte, die diese Textur verwenden, werden den Film oder die Webseite anzeigen, nachdem Sie auf den Pfeil (Wiedergabe) klicken. WÀhlen Sie das kleine Bild aus, um eine andere Textur auszuwÀhlen.
</text>
<check_box label="Automatisch skalieren" name="media_auto_scale" tool_tip="Aktivieren Sie diese Option, um den Inhalt fÌr diese Parzelle automatisch zu skalieren. Dies ist eventuell langsamer und die QualitÀt ist schlechter, aber Sie mÌssen keine weitere Texturskalierung oder -anpassung vornehmen."/>
<text name="media_size" tool_tip="Darstellungsgröße von Webmedien, fÃŒr Standard bei 0 belassen.">
@@ -425,7 +418,7 @@ WÀhlen Sie das kleine Bild aus, um eine andere Textur auszuwÀhlen.
</text>
<check_box label="Schleife" name="media_loop" tool_tip="Spielt das Medium in einer Schleife ab. Der Abspielvorgang wird immer wieder von vorne fortgesetzt."/>
</panel>
- <panel label="Audio" name="land_audio_panel">
+ <panel label="SOUND" name="land_audio_panel">
<text name="MusicURL:">
Musik-URL:
</text>
@@ -440,19 +433,22 @@ WÀhlen Sie das kleine Bild aus, um eine andere Textur auszuwÀhlen.
<check_box label="Voice aktivieren (vom GrundstÃŒck eingerichtet)" name="parcel_enable_voice_channel_is_estate_disabled"/>
<check_box label="Voice auf diese Parzelle beschrÀnken" name="parcel_enable_voice_channel_parcel"/>
</panel>
- <panel label="Zugang" name="land_access_panel">
+ <panel label="ZUGANG" name="land_access_panel">
+ <panel.string name="access_estate_defined">
+ (Durch GrundstÃŒck festgelegt)
+ </panel.string>
<panel.string name="estate_override">
Eine oder mehrere dieser Optionen gelten auf GrundstÃŒcksebene
</panel.string>
<text name="Limit access to this parcel to:">
Zugang zu dieser Parzelle
</text>
- <check_box label="Freien Zugang erlauben" name="public_access"/>
+ <check_box label="Öffentlichen Zugang erlauben [MATURITY]" name="public_access"/>
<text name="Only Allow">
- Zugang verweigern fÃŒr:
+ Zugang auf Einwohner beschrÀnken, die ÌberprÌft wurden von:
</text>
- <check_box label="Einwohner, die keine Zahlungsinformationen bei Linden Lab hinterlegt haben" name="limit_payment" tool_tip="Nicht identifizierte Einwohner verbannen."/>
- <check_box label="Einwohner, die keine altersgeprÃŒften Erwachsenen sind" name="limit_age_verified" tool_tip="Einwohner ohne AltersÃŒberprÃŒfung verbannen. Weitere Informationen finden Sie auf [SUPPORT_SITE]."/>
+ <check_box label="Zahlungsinformation gespeichert [ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="Nicht identifizierte Einwohner verbannen."/>
+ <check_box label="AltersÃŒberprÃŒfung [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="Einwohner ohne AltersÃŒberprÃŒfung verbannen. Weitere Informationen finden Sie auf [SUPPORT_SITE]."/>
<check_box label="Gruppenzugang erlauben: [GROUP]" name="GroupCheck" tool_tip="Gruppe im Register „Allgemein“ festlegen."/>
<check_box label="PÀsse verkaufen an:" name="PassCheck" tool_tip="Ermöglicht befristeten Zugang zu dieser Parzelle"/>
<combo_box name="pass_combo">
@@ -461,18 +457,22 @@ WÀhlen Sie das kleine Bild aus, um eine andere Textur auszuwÀhlen.
</combo_box>
<spinner label="Preis in L$:" name="PriceSpin"/>
<spinner label="Online-Zeit:" name="HoursSpin"/>
- <text label="Immer erlauben" name="AllowedText">
- ZulÀssige Einwohner
- </text>
- <name_list name="AccessList" tool_tip="([LISTED] angezeigt, max. [MAX])"/>
- <button label="HinzufÃŒgen..." label_selected="HinzufÃŒgen..." name="add_allowed"/>
- <button label="Entfernen" label_selected="Entfernen" name="remove_allowed"/>
- <text label="Verbannen" name="BanCheck">
- Verbannte Einwohner
- </text>
- <name_list name="BannedList" tool_tip="([LISTED] angezeigt, max. [MAX])"/>
- <button label="HinzufÃŒgen..." label_selected="HinzufÃŒgen..." name="add_banned"/>
- <button label="Entfernen" label_selected="Entfernen" name="remove_banned"/>
+ <panel name="Allowed_layout_panel">
+ <text label="Immer erlauben" name="AllowedText">
+ ZulÀssige Einwohner
+ </text>
+ <name_list name="AccessList" tool_tip="([LISTED] aufgefÃŒhrt, [MAX] max)"/>
+ <button label="HinzufÃŒgen" name="add_allowed"/>
+ <button label="Entfernen" label_selected="Entfernen" name="remove_allowed"/>
+ </panel>
+ <panel name="Banned_layout_panel">
+ <text label="Verbannen" name="BanCheck">
+ Verbannte Einwohner
+ </text>
+ <name_list name="BannedList" tool_tip="([LISTED] aufgefÃŒhrt, [MAX] max)"/>
+ <button label="HinzufÃŒgen" name="add_banned"/>
+ <button label="Entfernen" label_selected="Entfernen" name="remove_banned"/>
+ </panel>
</panel>
</tab_container>
</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_animation_preview.xml b/indra/newview/skins/default/xui/de/floater_animation_preview.xml
index 4b4067f186..ce971d158d 100644
--- a/indra/newview/skins/default/xui/de/floater_animation_preview.xml
+++ b/indra/newview/skins/default/xui/de/floater_animation_preview.xml
@@ -171,7 +171,8 @@ Maximal erlaubt sind [MAX_LENGTH] Sekunden.
</combo_box>
<spinner label="Eingang glÀtten (s)" label_width="105" name="ease_in_time" tool_tip="Einblendungsgeschwindigkeit von Animationen (in Sekunden)" width="175"/>
<spinner bottom_delta="-20" label="Ausgang glÀtten (s)" label_width="105" left="10" name="ease_out_time" tool_tip="Ausblendegeschwindigkeit von Animationen (in Sekunden)" width="175"/>
- <button bottom_delta="-32" label="" name="play_btn" tool_tip="Animation stoppen/wiedergeben"/>
+ <button bottom_delta="-32" label="" name="play_btn" tool_tip="Ihre Animation abspielen"/>
+ <button name="pause_btn" tool_tip="Ihre Animation pausieren"/>
<button label="" name="stop_btn" tool_tip="Animation anhalten"/>
<slider label="" name="playback_slider"/>
<text name="bad_animation_text">
@@ -179,6 +180,6 @@ Maximal erlaubt sind [MAX_LENGTH] Sekunden.
Wir empfehlen exportierte BVH-Dateien aus Poser 4.
</text>
- <button label="Abbrechen" name="cancel_btn"/>
<button label="Hochladen ([AMOUNT] L$)" name="ok_btn"/>
+ <button label="Abbrechen" name="cancel_btn"/>
</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_avatar_picker.xml b/indra/newview/skins/default/xui/de/floater_avatar_picker.xml
index ed8de62b69..bc78ccd7f8 100644
--- a/indra/newview/skins/default/xui/de/floater_avatar_picker.xml
+++ b/indra/newview/skins/default/xui/de/floater_avatar_picker.xml
@@ -34,7 +34,7 @@
</panel>
<panel label="In meiner NÀhe" name="NearMePanel">
<text name="InstructSelectResident">
- WÀhlen Sie eine Person aus, die sich in der NÀhe befindet:
+ WÀhlen Sie eine Person aus:
</text>
<slider bottom_delta="-36" label="Bereich" name="near_me_range"/>
<text name="meters">
diff --git a/indra/newview/skins/default/xui/de/floater_avatar_textures.xml b/indra/newview/skins/default/xui/de/floater_avatar_textures.xml
index 6f5fe23d4c..3be5194a8f 100644
--- a/indra/newview/skins/default/xui/de/floater_avatar_textures.xml
+++ b/indra/newview/skins/default/xui/de/floater_avatar_textures.xml
@@ -10,33 +10,37 @@
Zusammengesetzte Texturen
</text>
<button label="LÀd IDs in Konsole ab" label_selected="Abladen" name="Dump"/>
- <texture_picker label="Haare" name="hair-baked"/>
- <texture_picker label="Haare" name="hair_grain"/>
- <texture_picker label="Alpha: Haare" name="hair_alpha"/>
- <texture_picker label="Kopf" name="head-baked"/>
- <texture_picker label="Make-Uup" name="head_bodypaint"/>
- <texture_picker label="Kopf: Alpha" name="head_alpha"/>
- <texture_picker label="Kopftattoo" name="head_tattoo"/>
- <texture_picker label="Augen" name="eyes-baked"/>
- <texture_picker label="Auge" name="eyes_iris"/>
- <texture_picker label="Alpha: Augen" name="eyes_alpha"/>
- <texture_picker label="Oberkörper" name="upper-baked"/>
- <texture_picker label="Oberkörper: Körperfarbe" name="upper_bodypaint"/>
- <texture_picker label="Unterhemd" name="upper_undershirt"/>
- <texture_picker label="Handschuhe" name="upper_gloves"/>
- <texture_picker label="Hemd" name="upper_shirt"/>
- <texture_picker label="Oberjacke" name="upper_jacket"/>
- <texture_picker label="Alpha: Oben" name="upper_alpha"/>
- <texture_picker label="Obere Tattoos" name="upper_tattoo"/>
- <texture_picker label="Unterkörper" name="lower-baked"/>
- <texture_picker label="Unterkörper: Körperfarbe" name="lower_bodypaint"/>
- <texture_picker label="Unterhose" name="lower_underpants"/>
- <texture_picker label="Socken" name="lower_socks"/>
- <texture_picker label="Schuhe" name="lower_shoes"/>
- <texture_picker label="Hose" name="lower_pants"/>
- <texture_picker label="Jacke" name="lower_jacket"/>
- <texture_picker label="Alpha: Unten" name="lower_alpha"/>
- <texture_picker label="Untere Tattoos" name="lower_tattoo"/>
- <texture_picker label="Rock" name="skirt-baked"/>
- <texture_picker label="Rock" name="skirt"/>
+ <scroll_container name="profile_scroll">
+ <panel name="scroll_content_panel">
+ <texture_picker label="Haare" name="hair-baked"/>
+ <texture_picker label="Haare" name="hair_grain"/>
+ <texture_picker label="Alpha: Haare" name="hair_alpha"/>
+ <texture_picker label="Kopf" name="head-baked"/>
+ <texture_picker label="Make-Uup" name="head_bodypaint"/>
+ <texture_picker label="Kopf: Alpha" name="head_alpha"/>
+ <texture_picker label="Kopftattoo" name="head_tattoo"/>
+ <texture_picker label="Augen" name="eyes-baked"/>
+ <texture_picker label="Auge" name="eyes_iris"/>
+ <texture_picker label="Alpha: Augen" name="eyes_alpha"/>
+ <texture_picker label="Oberkörper" name="upper-baked"/>
+ <texture_picker label="Oberkörper: Körperfarbe" name="upper_bodypaint"/>
+ <texture_picker label="Unterhemd" name="upper_undershirt"/>
+ <texture_picker label="Handschuhe" name="upper_gloves"/>
+ <texture_picker label="Hemd" name="upper_shirt"/>
+ <texture_picker label="Oberjacke" name="upper_jacket"/>
+ <texture_picker label="Alpha: Oben" name="upper_alpha"/>
+ <texture_picker label="Obere Tattoos" name="upper_tattoo"/>
+ <texture_picker label="Unterkörper" name="lower-baked"/>
+ <texture_picker label="Unterkörper: Körperfarbe" name="lower_bodypaint"/>
+ <texture_picker label="Unterhose" name="lower_underpants"/>
+ <texture_picker label="Socken" name="lower_socks"/>
+ <texture_picker label="Schuhe" name="lower_shoes"/>
+ <texture_picker label="Hose" name="lower_pants"/>
+ <texture_picker label="Jacke" name="lower_jacket"/>
+ <texture_picker label="Alpha: Unten" name="lower_alpha"/>
+ <texture_picker label="Untere Tattoos" name="lower_tattoo"/>
+ <texture_picker label="Rock" name="skirt-baked"/>
+ <texture_picker label="Rock" name="skirt"/>
+ </panel>
+ </scroll_container>
</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_buy_currency.xml b/indra/newview/skins/default/xui/de/floater_buy_currency.xml
index 287b16273a..aa6201ec26 100644
--- a/indra/newview/skins/default/xui/de/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/de/floater_buy_currency.xml
@@ -46,7 +46,7 @@
[AMT] L$
</text>
<text name="currency_links">
- [http://www.secondlife.com/my/account/payment_method_management.php?lang=de-DE payment method] | [http://www.secondlife.com/my/account/currency.php?lang=de-DE currency] | [http://www.secondlife.com/my/account/exchange_rates.php?lang=de-DE exchange rate]
+ [http://www.secondlife.com/my/account/payment_method_management.php?lang=de-DE Zahlungsart] | [http://www.secondlife.com/my/account/currency.php?lang=de-DE WÀhrung] | [http://www.secondlife.com/my/account/exchange_rates.php?lang=de-DE Umtauschrate]
</text>
<text name="exchange_rate_note">
Geben Sie den Betrag erneut ein, um die aktuellste Umtauschrate anzuzeigen.
diff --git a/indra/newview/skins/default/xui/de/floater_color_picker.xml b/indra/newview/skins/default/xui/de/floater_color_picker.xml
index 552bd2e2bf..aed4bacb30 100644
--- a/indra/newview/skins/default/xui/de/floater_color_picker.xml
+++ b/indra/newview/skins/default/xui/de/floater_color_picker.xml
@@ -26,6 +26,6 @@
Aktuelle Farbe:
</text>
<text name="(Drag below to save.)">
- (Zum Speichern nach unten ziehen.)
+ (Nach unten ziehen)
</text>
</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_customize.xml b/indra/newview/skins/default/xui/de/floater_customize.xml
index 34aa17bbe0..a2bf45852a 100644
--- a/indra/newview/skins/default/xui/de/floater_customize.xml
+++ b/indra/newview/skins/default/xui/de/floater_customize.xml
@@ -1,7 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="floater customize" title="AUSSEHEN">
<tab_container name="customize tab container">
- <placeholder label="Körperteile" name="body_parts_placeholder"/>
+ <text label="Körperteile" name="body_parts_placeholder">
+ Körperteile
+ </text>
<panel label="Form" name="Shape">
<button font="SansSerifSmall" label="ZurÃŒcksetzen" label_selected="ZurÃŒcksetzen" name="Revert"/>
<button label="Körper" label_selected="Körper" name="Body"/>
@@ -14,8 +16,8 @@
<button label="Oberkörper" label_selected="Oberkörper" name="Torso"/>
<button label="Beine" label_selected="Beine" name="Legs"/>
<radio_group name="sex radio">
- <radio_item label="Weiblich" name="radio"/>
- <radio_item label="MÀnnlich" name="radio2"/>
+ <radio_item label="Weiblich" name="radio" value="0"/>
+ <radio_item label="MÀnnlich" name="radio2" value="1"/>
</radio_group>
<text name="title">
[DESC]
@@ -33,9 +35,7 @@
In [PATH]
</text>
<text name="not worn instructions">
- Ziehen Sie eine Körperform aus dem Inventar auf Ihren Avatar,
-um sie zu tragen. Sie können auch eine neue Körperform erstellen
-und diese anziehen.
+ Ziehen Sie eine neue Form aus dem Inventar auf Ihren Avatar, um diese anzulegen. Sie können aber auch eine neue erstellen und diese anlegen.
</text>
<text name="no modify instructions">
Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
@@ -68,9 +68,7 @@ und diese anziehen.
In [PATH]
</text>
<text name="not worn instructions">
- Ziehen Sie eine Haut aus dem Inventar auf Ihren Avatar,
-um sie zu tragen. Sie können auch eine neue Haut erstellen
-und diese anziehen.
+ Ziehen Sie eine neue Skin (Haut) aus dem Inventar auf Ihren Avatar, um diese anzulegen. Sie können aber auch eine neue erstellen und diese anlegen.
</text>
<text name="no modify instructions">
Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
@@ -107,9 +105,7 @@ und diese anziehen.
In [PATH]
</text>
<text name="not worn instructions">
- Ziehen Sie Haare aus dem Inventar auf Ihren Avatar,
-um sie zu tragen. Sie können auch neue Haare erstellen
-und diese anziehen.
+ Ziehen Sie Haar aus dem Inventar auf Ihren Avatar, um dieses anzulegen. Sie können aber auch eine neue erstellen und diese anlegen.
</text>
<text name="no modify instructions">
Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
@@ -140,9 +136,7 @@ und diese anziehen.
In [PATH]
</text>
<text name="not worn instructions">
- Ziehen Sie Augen aus dem Inventar auf Ihren Avatar,
-um sie zu tragen. Sie können auch neue Augen erstellen
-und diese anziehen.
+ Ziehen Sie neue Augen aus dem Inventar auf Ihren Avatar, um diese anzulegen. Sie können aber auch eine neue erstellen und diese anlegen.
</text>
<text name="no modify instructions">
Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
@@ -156,7 +150,9 @@ und diese anziehen.
<button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." left="194" name="Save As" width="105"/>
<button font="SansSerifSmall" label="ZurÃŒcksetzen" label_selected="ZurÃŒcksetzen" name="Revert"/>
</panel>
- <placeholder label="Kleidung" name="clothes_placeholder"/>
+ <text label="Kleidung" name="clothes_placeholder">
+ Kleidung
+ </text>
<panel label="Hemd" name="Shirt">
<texture_picker label="Stoff" name="Fabric" tool_tip="Klicken Sie hier, um ein Bild auszuwÀhlen"/>
<color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
@@ -181,9 +177,7 @@ und diese anziehen.
In [PATH]
</text>
<text name="not worn instructions">
- Ziehen Sie ein Hemd aus dem Inventar auf Ihren Avatar,
-um es zu tragen. Sie können auch ein neues Hemd erstellen
-und dieses anziehen.
+ Ziehen Sie ein neues Hemd aus dem Inventar auf Ihren Avatar, um dieses anzuziehen. Sie können aber auch eine neue erstellen und diese anlegen.
</text>
<text name="no modify instructions">
Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
@@ -216,9 +210,7 @@ und dieses anziehen.
In [PATH]
</text>
<text name="not worn instructions">
- Ziehen Sie eine Hose aus dem Inventar auf Ihren Avatar,
-um sie zu tragen. Sie können auch eine neue Hose erstellen
-und diese anziehen.
+ Ziehen Sie eine neue Hose aus dem Inventar auf Ihren Avatar, um diese anzuziehen. Sie können aber auch eine neue erstellen und diese anlegen.
</text>
<text name="no modify instructions">
Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
@@ -244,9 +236,7 @@ und diese anziehen.
In [PATH]
</text>
<text name="not worn instructions">
- Ziehen Sie Schuhe aus dem Inventar auf Ihren Avatar,
-um sie zu tragen. Sie können auch neue Schuhe erstellen
-und diese anziehen.
+ Ziehen Sie neue Schuhe aus dem Inventar auf Ihren Avatar, um diese anzuziehen. Sie können aber auch eine neue erstellen und diese anlegen.
</text>
<text name="no modify instructions">
Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
@@ -279,9 +269,7 @@ und diese anziehen.
In [PATH]
</text>
<text name="not worn instructions">
- Ziehen Sie Socken aus dem Inventar auf Ihren Avatar,
-um sie zu tragen. Sie können auch neue Socken erstellen
-und diese anziehen.
+ Ziehen Sie neue StrÌmpfe aus dem Inventar auf Ihren Avatar, um diese anzuziehen. Sie können aber auch eine neue erstellen und diese anlegen.
</text>
<text name="no modify instructions">
Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
@@ -314,9 +302,7 @@ und diese anziehen.
In [PATH]
</text>
<text name="not worn instructions">
- Ziehen Sie eine Jacke aus dem Inventar auf Ihren Avatar,
-um sie zu tragen. Sie können auch eine neue Jacke erstellen
-und diese anziehen.
+ Ziehen Sie eine neue Jacke aus dem Inventar auf Ihren Avatar, um diese anzuziehen. Sie können aber auch eine neue erstellen und diese anlegen.
</text>
<text name="no modify instructions">
Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
@@ -350,9 +336,7 @@ und diese anziehen.
In [PATH]
</text>
<text name="not worn instructions">
- Ziehen Sie Handschuhe aus dem Inventar auf Ihren Avatar,
-um sie zu tragen. Sie können auch neue Handschuhe erstellen
-und diese anziehen.
+ Ziehen Sie neue Handschuhe aus dem Inventar auf Ihren Avatar, um diese anzuziehen. Sie können aber auch eine neue erstellen und diese anlegen.
</text>
<text name="no modify instructions">
Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
@@ -385,9 +369,7 @@ und diese anziehen.
In [PATH]
</text>
<text name="not worn instructions">
- Ziehen Sie ein Unterhemd aus dem Inventar auf Ihren Avatar,
-um es zu tragen. Sie können auch ein neues Unterhemd erstellen
-und dieses anziehen.
+ Ziehen Sie ein neues Unterhemd aus dem Inventar auf Ihren Avatar, um dieses anzuziehen. Sie können aber auch eine neue erstellen und diese anlegen.
</text>
<text name="no modify instructions">
Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
@@ -420,9 +402,7 @@ und dieses anziehen.
In [PATH]
</text>
<text name="not worn instructions">
- Ziehen Sie eine Unterhose aus dem Inventar auf Ihren Avatar,
-um sie zu tragen. Sie können auch eine neue Unterhose erstellen
-und diese anziehen.
+ Ziehen Sie eine neue Unterhose aus dem Inventar auf Ihren Avatar, um diese anzuziehen. Sie können aber auch eine neue erstellen und diese anlegen.
</text>
<text name="no modify instructions">
Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
@@ -455,9 +435,7 @@ und diese anziehen.
In [PATH]
</text>
<text name="not worn instructions">
- Ziehen Sie einen Rock aus dem Inventar auf Ihren Avatar,
-um ihn zu tragen. Sie können auch einen neuen Rock erstellen
-und diesen anziehen.
+ Ziehen Sie einen neuen Rock aus dem Inventar auf Ihren Avatar, um diesen anzuziehen. Sie können aber auch eine neue erstellen und diese anlegen.
</text>
<text name="no modify instructions">
Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
@@ -490,8 +468,7 @@ und diesen anziehen.
Befindet sich in [PATH]
</text>
<text name="not worn instructions">
- Sie können eine neue Alpha-Maske anlegen, indem Sie eine von Ihrem Inventar auf Ihren Avatar ziehen.
-Sie können aber auch eine neue erstellen und diese anlegen.
+ Sie können eine neue Alpha-Maske anlegen, indem Sie eine von Ihrem Inventar auf Ihren Avatar ziehen. Sie können aber auch eine neue erstellen und diese anlegen.
</text>
<text name="no modify instructions">
Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
@@ -527,8 +504,7 @@ Sie können aber auch eine neue erstellen und diese anlegen.
Befindet sich in [PATH]
</text>
<text name="not worn instructions">
- Ziehen Sie eine neue TÀtowierung aus dem Inventar auf Ihren Avatar, um diese anzulegen.
-Sie können aber auch eine neue erstellen und diese anlegen.
+ Ziehen Sie eine neue TÀtowierung aus dem Inventar auf Ihren Avatar, um diese anzulegen. Sie können aber auch eine neue erstellen und diese anlegen.
</text>
<text name="no modify instructions">
Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
@@ -546,6 +522,7 @@ Sie können aber auch eine neue erstellen und diese anlegen.
<button label="ZurÃŒcksetzen" label_selected="ZurÃŒcksetzen" name="Revert"/>
</panel>
</tab_container>
+ <button label="Skriptinfo" label_selected="Skriptinfo" name="script_info"/>
<button label="Outfit erstellen" label_selected="Outfit erstellen" name="make_outfit_btn"/>
<button label="Abbrechen" label_selected="Abbrechen" name="Cancel"/>
<button label="OK" label_selected="OK" name="Ok"/>
diff --git a/indra/newview/skins/default/xui/de/floater_god_tools.xml b/indra/newview/skins/default/xui/de/floater_god_tools.xml
index e790420efb..716165bb6b 100644
--- a/indra/newview/skins/default/xui/de/floater_god_tools.xml
+++ b/indra/newview/skins/default/xui/de/floater_god_tools.xml
@@ -11,8 +11,7 @@
</text>
<check_box label="Startbereich Einleitung" name="check prelude" tool_tip="Diese Region zu einem Startbereich machen."/>
<check_box label="Sonne fest" name="check fixed sun" tool_tip="Fixiert den Sonnenstand (wie in „Region/GrundstÃŒck“ &gt; „Terrain“."/>
- <check_box height="32" label="Zuhause auf Teleport
-zurÃŒcksetzen" name="check reset home" tool_tip="Wenn Einwohner wegteleportieren, ihr Zuhause auf Zielposition setzen."/>
+ <check_box height="32" label="Zuhause auf Teleport zurÃŒcksetzen" name="check reset home" tool_tip="Wenn Einwohner weg teleportieren, ihr Zuhause auf Zielposition setzen."/>
<check_box bottom_delta="-32" label="Sichtbar" name="check visible" tool_tip="Diese Region fÌr Nicht-Götter sichtbar machen."/>
<check_box label="Schaden" name="check damage" tool_tip="Schaden in dieser Region aktivieren."/>
<check_box label="TrafficÃŒberwachung blockieren" name="block dwell" tool_tip="In dieser Region die Traffic-Berechnung abschalten."/>
@@ -59,10 +58,8 @@ zurÃŒcksetzen" name="check reset home" tool_tip="Wenn Einwohner wegteleportieren
<text name="region name">
Welsh
</text>
- <check_box label="Skripts
-deaktivieren" name="disable scripts" tool_tip="Skripts in dieser Region komplett abschalten"/>
- <check_box label="Kollisionen
-deaktivieren" name="disable collisions" tool_tip="Nicht-Avatar-Kollisionen in dieser Region komplett abschalten"/>
+ <check_box label="Skripts deaktivieren" name="disable scripts" tool_tip="Skripts in dieser Region komplett abschalten"/>
+ <check_box label="Kollisionen deaktivieren" name="disable collisions" tool_tip="Nicht-Avatar-Kollisionen in dieser Region komplett abschalten"/>
<check_box label="Physik deaktivieren" name="disable physics" tool_tip="Die Physik in dieser Region komplett abschalten"/>
<button label="Übernehmen" label_selected="Übernehmen" name="Apply" tool_tip="Klicken Sie hier, um die obigen Änderungen zu ÃŒbernehmen."/>
<button label="Ziel festlegen" label_selected="Ziel festlegen" name="Set Target" tool_tip="Den Ziel-Avatar fÌr das Löschen von Objekten auswÀhlen."/>
diff --git a/indra/newview/skins/default/xui/de/floater_im_container.xml b/indra/newview/skins/default/xui/de/floater_im_container.xml
index 62578c00d5..95eda97938 100644
--- a/indra/newview/skins/default/xui/de/floater_im_container.xml
+++ b/indra/newview/skins/default/xui/de/floater_im_container.xml
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<multi_floater name="floater_im_box" title="Sofortnachrichten"/>
+<multi_floater name="floater_im_box" title="GESPRÄCHE"/>
diff --git a/indra/newview/skins/default/xui/de/floater_incoming_call.xml b/indra/newview/skins/default/xui/de/floater_incoming_call.xml
index e40d57976f..740085599f 100644
--- a/indra/newview/skins/default/xui/de/floater_incoming_call.xml
+++ b/indra/newview/skins/default/xui/de/floater_incoming_call.xml
@@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="incoming call" title="ANRUF VON UNBEKANNT">
+ <floater.string name="lifetime">
+ 5
+ </floater.string>
<floater.string name="localchat">
Voice-Chat in der NÀhe
</floater.string>
@@ -12,6 +15,9 @@
<floater.string name="VoiceInviteAdHoc">
ist einem Voice-Konferenz-Chat beigetreten.
</floater.string>
+ <floater.string name="VoiceInviteGroup">
+ ist einem Voice-Chat mit der Gruppe [GROUP] beigetreten.
+ </floater.string>
<text name="question">
Möchten Sie [CURRENT_CHAT] verlassen und diesem Voice-Chat beitreten?
</text>
diff --git a/indra/newview/skins/default/xui/de/floater_lsl_guide.xml b/indra/newview/skins/default/xui/de/floater_lsl_guide.xml
index 5e90076487..1d6f690d3c 100644
--- a/indra/newview/skins/default/xui/de/floater_lsl_guide.xml
+++ b/indra/newview/skins/default/xui/de/floater_lsl_guide.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="script ed float" title="LSL-WIKI">
+<floater name="script ed float" title="LSL-REFERENZ">
<check_box label="Cursor folgen" name="lock_check"/>
<combo_box label="Sperren" name="history_combo"/>
<button label="ZurÃŒck" name="back_btn"/>
diff --git a/indra/newview/skins/default/xui/de/floater_media_browser.xml b/indra/newview/skins/default/xui/de/floater_media_browser.xml
index 62a047b8fe..18adb5ee7f 100644
--- a/indra/newview/skins/default/xui/de/floater_media_browser.xml
+++ b/indra/newview/skins/default/xui/de/floater_media_browser.xml
@@ -19,7 +19,7 @@
<button label="vorwÀrts" name="seek"/>
</layout_panel>
<layout_panel name="parcel_owner_controls">
- <button label="Aktuelle URL an Parzelle senden" name="assign"/>
+ <button label="Aktuelle Seite an Parzelle senden" name="assign"/>
</layout_panel>
<layout_panel name="external_controls">
<button label="In meinem Browser öffnen" name="open_browser"/>
diff --git a/indra/newview/skins/default/xui/de/floater_notification.xml b/indra/newview/skins/default/xui/de/floater_notification.xml
index c0806ef50c..7752d22b52 100644
--- a/indra/newview/skins/default/xui/de/floater_notification.xml
+++ b/indra/newview/skins/default/xui/de/floater_notification.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="notification" title="BENACHRICHTIGUNGEN">
+<floater name="notification" title="MELDUNGEN">
<text_editor name="payload">
Wird geladen...
</text_editor>
diff --git a/indra/newview/skins/default/xui/de/floater_outfit_save_as.xml b/indra/newview/skins/default/xui/de/floater_outfit_save_as.xml
new file mode 100644
index 0000000000..42cb91ccbb
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_outfit_save_as.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="modal container">
+ <button label="Speichern" label_selected="Speichern" name="Save"/>
+ <button label="Abbrechen" label_selected="Abbrechen" name="Cancel"/>
+ <text name="Save item as:">
+ Outfit speichern als:
+ </text>
+ <line_editor name="name ed">
+ [BESCHR]
+ </line_editor>
+</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_outgoing_call.xml b/indra/newview/skins/default/xui/de/floater_outgoing_call.xml
index 65f2fe10e2..99ef0e900e 100644
--- a/indra/newview/skins/default/xui/de/floater_outgoing_call.xml
+++ b/indra/newview/skins/default/xui/de/floater_outgoing_call.xml
@@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="outgoing call" title="ANRUF">
+ <floater.string name="lifetime">
+ 5
+ </floater.string>
<floater.string name="localchat">
Voice-Chat in der NÀhe
</floater.string>
@@ -21,6 +24,12 @@
<text name="noanswer">
Der Anruf wurde nicht entgegengenommen. Bitte versuchen Sie es spÀter erneut.
</text>
+ <text name="nearby">
+ Die Verbindung zu [VOICE_CHANNEL_NAME] wurde abgebrochen. Sie werden nun wieder mit dem Chat in Ihrer NÀhe verbunden.
+ </text>
+ <text name="nearby_P2P">
+ [VOICE_CHANNEL_NAME] hat den Anruf beendet. Sie werden nun wieder mit dem Chat in Ihrer NÀhe verbunden.
+ </text>
<text name="leaving">
[CURRENT_CHAT] wird verlassen.
</text>
diff --git a/indra/newview/skins/default/xui/de/floater_preview_gesture.xml b/indra/newview/skins/default/xui/de/floater_preview_gesture.xml
index 16e2fc18cb..51c41a3209 100644
--- a/indra/newview/skins/default/xui/de/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/de/floater_preview_gesture.xml
@@ -24,6 +24,9 @@
<floater.string name="Title">
Gesten: [NAME]
</floater.string>
+ <text name="name_text">
+ Name:
+ </text>
<text name="desc_label">
Beschreibung:
</text>
diff --git a/indra/newview/skins/default/xui/de/floater_preview_notecard.xml b/indra/newview/skins/default/xui/de/floater_preview_notecard.xml
index a02a58ee0e..62f9e1e9e5 100644
--- a/indra/newview/skins/default/xui/de/floater_preview_notecard.xml
+++ b/indra/newview/skins/default/xui/de/floater_preview_notecard.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="preview notecard" title="HINWEIS:">
+<floater name="preview notecard" title="NOTIZKARTE:">
<floater.string name="no_object">
- Es wurde kein Objekt gefunden, das diese Notiz enthÀlt.
+ Es wurde kein Objekt gefunden, das diese Notizkarte enthÀlt.
</floater.string>
<floater.string name="not_allowed">
Ihnen fehlt die Berechtigung zur Anzeige dieser Notizkarte.
diff --git a/indra/newview/skins/default/xui/de/floater_preview_texture.xml b/indra/newview/skins/default/xui/de/floater_preview_texture.xml
index 95d1db1877..ac6a61cde6 100644
--- a/indra/newview/skins/default/xui/de/floater_preview_texture.xml
+++ b/indra/newview/skins/default/xui/de/floater_preview_texture.xml
@@ -9,8 +9,6 @@
<text name="desc txt">
Beschreibung:
</text>
- <button label="OK" name="Keep"/>
- <button label="Abbrechen" name="Discard"/>
<text name="dimensions">
[WIDTH]px x [HEIGHT]px
</text>
@@ -43,4 +41,7 @@
2:1
</combo_item>
</combo_box>
+ <button label="OK" name="Keep"/>
+ <button label="Abbrechen" name="Discard"/>
+ <button label="Speichern unter" name="save_tex_btn"/>
</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_report_abuse.xml b/indra/newview/skins/default/xui/de/floater_report_abuse.xml
index 3e4cf86a75..3edf5959a2 100644
--- a/indra/newview/skins/default/xui/de/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/de/floater_report_abuse.xml
@@ -41,7 +41,7 @@
<combo_box name="category_combo" tool_tip="Kategorie -- wÀhlen Sie die Kategorie aus, die am besten auf diesen Bericht zutrifft">
<combo_box.item label="Kategorie auswÀhlen" name="Select_category"/>
<combo_box.item label="Alter&gt; Age-Play" name="Age__Age_play"/>
- <combo_box.item label="Alter&gt; Erwachsener Einwohner in Teen Second Life" name="Age__Adult_resident_on_Teen_Second_Life"/>
+ <combo_box.item label="Alter &gt; Erwachsener Einwohner in Teen Second Life" name="Age__Adult_resident_on_Teen_Second_Life"/>
<combo_box.item label="Alter &gt; MinderjÀhriger Einwohner außerhalb Teen Second Life" name="Age__Underage_resident_outside_of_Teen_Second_Life"/>
<combo_box.item label="Angriff&gt; Kampf-Sandbox / unsichere Region" name="Assault__Combat_sandbox___unsafe_area"/>
<combo_box.item label="Angriff&gt; Sichere Region" name="Assault__Safe_area"/>
@@ -68,7 +68,7 @@
<combo_box.item label="UnanstÀndigkeit &gt; Anstößige Inhalte oder Handlungen in der Öffentlichkeit" name="Indecency__Broadly_offensive_content_or_conduct"/>
<combo_box.item label="UnanstÀndigkeit &gt; Anstößiger Avatarname" name="Indecency__Inappropriate_avatar_name"/>
<combo_box.item label="UnanstÀndigkeit &gt; Unangemessener Inhalt oder unangemessenes Verhalten in PG-Region" name="Indecency__Mature_content_in_PG_region"/>
- <combo_box.item label="UnanstÀndigkeit &gt; Unangemessener Inhalt oder unangemessenes Verhalten in Mature-Region" name="Indecency__Inappropriate_content_in_Mature_region"/>
+ <combo_box.item label="UnanstÀndigkeit &gt; Unangemessener Inhalt oder unangemessenes Verhalten in moderater Region" name="Indecency__Inappropriate_content_in_Mature_region"/>
<combo_box.item label="Urheberrechtsverletzung &gt; Entfernen von Inhalten" name="Intellectual_property_infringement_Content_Removal"/>
<combo_box.item label="Urheberrechtsverletzung &gt; CopyBot oder Berechtigungs-Exploit" name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit"/>
<combo_box.item label="Intoleranz" name="Intolerance"/>
diff --git a/indra/newview/skins/default/xui/de/floater_script_limits.xml b/indra/newview/skins/default/xui/de/floater_script_limits.xml
new file mode 100644
index 0000000000..94a24a97ae
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_script_limits.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="scriptlimits" title="SKRIPT-INFORMATION"/>
diff --git a/indra/newview/skins/default/xui/de/floater_search.xml b/indra/newview/skins/default/xui/de/floater_search.xml
index 3401db1a39..d44ad44aea 100644
--- a/indra/newview/skins/default/xui/de/floater_search.xml
+++ b/indra/newview/skins/default/xui/de/floater_search.xml
@@ -6,4 +6,11 @@
<floater.string name="done_text">
Fertig
</floater.string>
+ <layout_stack name="stack1">
+ <layout_panel name="browser_layout">
+ <text name="refresh_search">
+ Suche wiederholen, um aktuellen Gott-Level zu berÃŒcksichtigen
+ </text>
+ </layout_panel>
+ </layout_stack>
</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_select_key.xml b/indra/newview/skins/default/xui/de/floater_select_key.xml
index 6094d11359..8ab9db520a 100644
--- a/indra/newview/skins/default/xui/de/floater_select_key.xml
+++ b/indra/newview/skins/default/xui/de/floater_select_key.xml
@@ -1,8 +1,7 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="modal container">
- <button label="Abbrechen" label_selected="Abbrechen" name="Cancel" />
+ <button label="Abbrechen" label_selected="Abbrechen" name="Cancel"/>
<text name="Save item as:">
- Zur Auswahl gewÃŒnschte
-Taste drÃŒcken.
+ Eine Taste drÌcken, um die Auslösetaste zum Sprechen festzulegen.
</text>
</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_sell_land.xml b/indra/newview/skins/default/xui/de/floater_sell_land.xml
index c9e21a6c4f..2bc7356e65 100644
--- a/indra/newview/skins/default/xui/de/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/de/floater_sell_land.xml
@@ -39,7 +39,7 @@
WÀhlen Sie, ob der Verkauf offen oder auf eine bestimmte Person beschrÀnkt ist.
</text>
<combo_box bottom_delta="-32" height="16" left="72" name="sell_to" width="140">
- <combo_box.item label="-- WÀhlen --" name="--selectone--"/>
+ <combo_box.item label="-- AuswÀhlen --" name="--selectone--"/>
<combo_box.item label="Jeder" name="Anyone"/>
<combo_box.item label="Bestimmte Person:" name="Specificuser:"/>
</combo_box>
diff --git a/indra/newview/skins/default/xui/de/floater_snapshot.xml b/indra/newview/skins/default/xui/de/floater_snapshot.xml
index 8aa1ef5497..80573d69ad 100644
--- a/indra/newview/skins/default/xui/de/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/de/floater_snapshot.xml
@@ -4,12 +4,12 @@
Zweck des Fotos
</text>
<radio_group label="Fototyp" name="snapshot_type_radio">
- <radio_item label="Per E-Mail senden" name="postcard"/>
- <radio_item label="Im Inventar speichern ([AMOUNT] L$)" name="texture"/>
- <radio_item label="Auf Festplatte speichern" name="local"/>
+ <radio_item label="Email-Adresse" name="postcard"/>
+ <radio_item label="Mein Inventar ([AMOUNT] L$)" name="texture"/>
+ <radio_item label="Auf meinem Computer speichern" name="local"/>
</radio_group>
<text name="file_size_label">
- Dateigröße: [SIZE] KB
+ [SIZE] KB
</text>
<button label="Foto aktualisieren" name="new_snapshot_btn"/>
<button label="Senden" name="send_btn"/>
@@ -19,8 +19,8 @@
<flyout_button_item label="Speichern unter..." name="saveas_item"/>
</flyout_button>
<button label="Abbrechen" name="discard_btn"/>
- <button label="Mehr &gt;&gt;" name="more_btn" tool_tip="Erweiterte Optionen"/>
- <button label="&lt;&lt; Weniger" name="less_btn" tool_tip="Erweiterte Optionen"/>
+ <button label="Mehr" name="more_btn" tool_tip="Erweiterte Optionen"/>
+ <button label="Weniger" name="less_btn" tool_tip="Erweiterte Optionen"/>
<text name="type_label2">
Größe
</text>
@@ -68,10 +68,10 @@
<combo_box.item label="Tiefe" name="Depth"/>
<combo_box.item label="Objektmasken" name="ObjectMattes"/>
</combo_box>
- <check_box label="Interface auf Foto anzeigen" name="ui_check"/>
- <check_box label="HUD-Objekte auf Foto anzeigen" name="hud_check"/>
+ <check_box label="Schnittstelle" name="ui_check"/>
+ <check_box label="HUDs" name="hud_check"/>
<check_box label="Nach dem Speichern offen lassen" name="keep_open_check"/>
- <check_box label="Frame einfrieren (Vollbildvorschau)" name="freeze_frame_check"/>
+ <check_box label="Frame einfrieren (Vollbild)" name="freeze_frame_check"/>
<check_box label="Automatisch aktualisieren" name="auto_snapshot_check"/>
<string name="unknown">
unbekannt
diff --git a/indra/newview/skins/default/xui/de/floater_sys_well.xml b/indra/newview/skins/default/xui/de/floater_sys_well.xml
index bcf0cbd419..982786b66e 100644
--- a/indra/newview/skins/default/xui/de/floater_sys_well.xml
+++ b/indra/newview/skins/default/xui/de/floater_sys_well.xml
@@ -1,2 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="notification_chiclet" title="BENACHRICHTIGUNGEN"/>
+<floater name="notification_chiclet" title="MELDUNGEN">
+ <string name="title_im_well_window">
+ IM-SITZUNGEN
+ </string>
+ <string name="title_notification_well_window">
+ BENACHRICHTIGUNGEN
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_telehub.xml b/indra/newview/skins/default/xui/de/floater_telehub.xml
index f348371e4d..923b4c0079 100644
--- a/indra/newview/skins/default/xui/de/floater_telehub.xml
+++ b/indra/newview/skins/default/xui/de/floater_telehub.xml
@@ -21,12 +21,9 @@
<button label="Spawn hinzufÃŒgen" name="add_spawn_point_btn"/>
<button label="Spawn entfernen" name="remove_spawn_point_btn"/>
<text name="spawn_point_help">
- WÀhlen Sie ein Objekt und klicken zur
-Positionsangabe auf „HinzufÃŒgen“. Anschließend
-können sie das Objekt verschieben oder löschen.
-Positionsangaben sind relativ zum
-Telehub-Mittelpunkt.
-WÀhlen Sie ein Objekt aus, um seine Position in
-der Welt anzuzeigen.
+ WÀhlen Sie ein Objekt und klicken zur Positionsangabe auf Spawn hinzufÌgen.
+Anschließend können Sie das Objekt verschieben oder löschen.
+Positionsangaben sind relativ zum Telehub-Mittelpunkt.
+WÀhlen Sie ein Objekt aus der Liste aus, um dieses inworld zu markieren.
</text>
</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_tools.xml b/indra/newview/skins/default/xui/de/floater_tools.xml
index 48887191e0..b2f8cbed45 100644
--- a/indra/newview/skins/default/xui/de/floater_tools.xml
+++ b/indra/newview/skins/default/xui/de/floater_tools.xml
@@ -454,12 +454,12 @@
<spinner label="Vertikal (V)" name="TexOffsetV"/>
<panel name="Add_Media">
<text name="media_tex">
- Medien-URL
+ Medien
</text>
<button name="add_media" tool_tip="Medien hinzufÃŒgen"/>
<button name="delete_media" tool_tip="Diese Medien-Textur löschen"/>
<button name="edit_media" tool_tip="Diese Medien bearbeiten"/>
- <button label="Ausrichten" label_selected="Medien angleichen" name="button align"/>
+ <button label="Ausrichten" label_selected="Medien angleichen" name="button align" tool_tip="Medientexturen angleichen (mÌssen zunÀchst geladen werden)"/>
</panel>
</panel>
<panel label="Inhalt" name="Contents">
@@ -478,14 +478,7 @@
Gebiet: [AREA] m².
</text>
<button label="Über Land" label_selected="Über Land" name="button about land"/>
- <check_box label="EigentÃŒmer anzeigen" name="checkbox show owners" tool_tip="Die Parzellen farblich nach EigentÃŒmtertyp anzeigen
-
-GrÃŒn = Ihr Land
-Blau = Das Land Ihrer Gruppe
-Rot = Im Eigentum anderer
-Geld = Zum Verkauf
-Lila = Zur Auktion
-Grau = Öffentlich"/>
+ <check_box label="EigentÃŒmer anzeigen" name="checkbox show owners" tool_tip="Die Parzellen farblich nach EigentÃŒmtertyp anzeigen GrÃŒn = Ihr Land Blau = Das Land Ihrer Gruppe Rot = Im Eigentum anderer Geld = Zum Verkauf Lila = Zur Auktion Grau = Öffentlich"/>
<text name="label_parcel_modify">
Parzelle Àndern
</text>
diff --git a/indra/newview/skins/default/xui/de/floater_top_objects.xml b/indra/newview/skins/default/xui/de/floater_top_objects.xml
index 579e5cbe7e..dad550227e 100644
--- a/indra/newview/skins/default/xui/de/floater_top_objects.xml
+++ b/indra/newview/skins/default/xui/de/floater_top_objects.xml
@@ -1,15 +1,40 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="top_objects" title="WIRD GELDADEN...">
+<floater name="top_objects" title="Top-Objekte">
+ <floater.string name="top_scripts_title">
+ Top-Skripts
+ </floater.string>
+ <floater.string name="top_scripts_text">
+ [COUNT] Skripts benötigen insgesamt [TIME] ms
+ </floater.string>
+ <floater.string name="scripts_score_label">
+ Zeit
+ </floater.string>
+ <floater.string name="scripts_mono_time_label">
+ Mono-Uhrzeit:
+ </floater.string>
+ <floater.string name="top_colliders_title">
+ Top-Kollisionsobjekte
+ </floater.string>
+ <floater.string name="top_colliders_text">
+ Top [COUNT] Objekte mit vielen potenziellen Kollisionen
+ </floater.string>
+ <floater.string name="colliders_score_label">
+ Wertung
+ </floater.string>
+ <floater.string name="none_descriptor">
+ Nicht gefunden.
+ </floater.string>
<text name="title_text">
Wird geladen...
</text>
<scroll_list name="objects_list">
- <column label="Wertung" name="score" width="65"/>
- <column label="Name" name="name" width="135"/>
- <column label="EigentÃŒmer" name="owner"/>
- <column label="Position" name="location" width="125"/>
- <column label="Uhrzeit" name="time"/>
- <column label="Mono-Uhrzeit:" name="mono_time"/>
+ <scroll_list.columns label="Wertung" name="score" width="65"/>
+ <scroll_list.columns label="Name" name="name" width="135"/>
+ <scroll_list.columns label="EigentÃŒmer" name="owner"/>
+ <scroll_list.columns label="Position" name="location" width="125"/>
+ <scroll_list.columns label="Uhrzeit" name="time"/>
+ <scroll_list.columns label="Mono-Uhrzeit:" name="mono_time"/>
+ <scroll_list.columns label="URLs" name="URLs"/>
</scroll_list>
<text name="id_text">
Objekt-ID:
@@ -22,37 +47,13 @@
<line_editor bg_readonly_color="clear" bottom_delta="3" enabled="false" follows="left|bottom|right" font="SansSerifSmall" height="20" left="80" name="object_name_editor" text_readonly_color="white" width="244"/>
<button bottom_delta="0" follows="bottom|right" height="20" label="Filter" name="filter_object_btn" right="-10" width="110"/>
<text name="owner_name_text">
- EigentÃŒmername:
+ EigentÃŒmer:
</text>
<line_editor bg_readonly_color="clear" bottom_delta="3" enabled="true" follows="left|bottom|right" font="SansSerifSmall" height="20" left="106" name="owner_name_editor" text_readonly_color="white" width="218"/>
<button bottom_delta="0" follows="bottom|right" height="20" label="Filter" name="filter_owner_btn" right="-10" width="110"/>
+ <button bottom_delta="0" follows="bottom|right" height="20" label="Aktualisieren" name="refresh_btn" right="-10" width="110"/>
<button bottom="35" follows="bottom|left" height="20" label="Auswahl zurÃŒckgeben" left="10" name="return_selected_btn" width="134"/>
<button bottom="35" follows="bottom|left" height="20" label="Alle zurÃŒckgeben" left="150" name="return_all_btn" width="134"/>
<button bottom="10" follows="bottom|left" height="20" label="Auswahl deaktivieren" left="10" name="disable_selected_btn" width="134"/>
<button bottom="10" follows="bottom|left" height="20" label="Alle deaktivieren" left="150" name="disable_all_btn" width="134"/>
- <button bottom_delta="0" follows="bottom|right" height="20" label="Aktualisieren" name="refresh_btn" right="-10" width="110"/>
- <string name="top_scripts_title">
- Top-Skripts
- </string>
- <string name="top_scripts_text">
- [COUNT] Skripts benötigen insgesamt [TIME] ms
- </string>
- <string name="scripts_score_label">
- Zeit
- </string>
- <string name="scripts_mono_time_label">
- Mono-Uhrzeit:
- </string>
- <string name="top_colliders_title">
- Top-Kollisionsobjekte
- </string>
- <string name="top_colliders_text">
- Top [COUNT] Objekte mit vielen potenziellen Kollisionen
- </string>
- <string name="colliders_score_label">
- Wertung
- </string>
- <string name="none_descriptor">
- Nicht gefunden.
- </string>
</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_voice_controls.xml b/indra/newview/skins/default/xui/de/floater_voice_controls.xml
index 39675beb45..f978042cc2 100644
--- a/indra/newview/skins/default/xui/de/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/de/floater_voice_controls.xml
@@ -1,13 +1,23 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="floater_voice_controls" title="Voice-Steuerung">
- <panel name="control_panel">
- <panel name="my_panel">
- <text name="user_text" value="Mein Avatar:"/>
- </panel>
- <layout_stack>
- <layout_panel>
- <slider_bar name="volume_slider_bar" tool_tip="Master-LautstÀrke"/>
- </layout_panel>
- </layout_stack>
- </panel>
+ <string name="title_nearby">
+ VOICE IN DER NÄHE
+ </string>
+ <string name="title_group">
+ GruppengesprÀch mit [GROUP]
+ </string>
+ <string name="title_adhoc">
+ KonferenzgesprÀch
+ </string>
+ <string name="title_peer_2_peer">
+ GesprÀch mit [NAME]
+ </string>
+ <string name="no_one_near">
+ Es ist niemand in der NÀhe, der Voice aktiviert hat.
+ </string>
+ <layout_stack name="my_call_stack">
+ <layout_panel name="leave_call_btn_panel">
+ <button label="Anruf beenden" name="leave_call_btn"/>
+ </layout_panel>
+ </layout_stack>
</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_whitelist_entry.xml b/indra/newview/skins/default/xui/de/floater_whitelist_entry.xml
index a0bfc57e42..35a5ec35f7 100644
--- a/indra/newview/skins/default/xui/de/floater_whitelist_entry.xml
+++ b/indra/newview/skins/default/xui/de/floater_whitelist_entry.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="whitelist_entry">
+<floater name="whitelist_entry" title="WHITELISTEN-EINTRAG">
<text name="media_label">
Eine URL oder URL
</text>
diff --git a/indra/newview/skins/default/xui/de/floater_window_size.xml b/indra/newview/skins/default/xui/de/floater_window_size.xml
new file mode 100644
index 0000000000..a2a53e0567
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_window_size.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="window_size" title="FENSTERGRÖSSE">
+ <string name="resolution_format">
+ [RES_X] x [RES_Y]
+ </string>
+ <text name="windowsize_text">
+ Fenstergröße einstellen:
+ </text>
+ <combo_box name="window_size_combo" tool_tip="Breite x Höhe">
+ <combo_box.item label="1000 x 700 (Standard)" name="item0"/>
+ <combo_box.item label="1024 x 768" name="item1"/>
+ <combo_box.item label="1280 x 720 (720p)" name="item2"/>
+ <combo_box.item label="1920 x 1080 (1080p)" name="item3"/>
+ </combo_box>
+ <button label="Festlegen" name="set_btn"/>
+ <button label="Abbrechen" name="cancel_btn"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_world_map.xml b/indra/newview/skins/default/xui/de/floater_world_map.xml
index dd13623f91..accc023b8f 100644
--- a/indra/newview/skins/default/xui/de/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/de/floater_world_map.xml
@@ -1,53 +1,81 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="worldmap" title="KARTE">
- <text name="you_label">
- Sie
- </text>
- <text name="home_label">
- Zuhause
- </text>
- <text name="auction_label">
- Auktion
- </text>
- <text font="SansSerifSmall" name="land_for_sale_label">
- Land zum Verkauf
- </text>
- <button label="Nach Hause" label_selected="Nach Hause" name="Go Home" tool_tip="Nach Hause teleportieren"/>
- <check_box label="Einwohner" name="people_chk"/>
- <check_box label="Infohub" name="infohub_chk"/>
- <check_box label="Telehub" name="telehub_chk"/>
- <check_box label="Land zu verkaufen" name="land_for_sale_chk"/>
- <text name="events_label">
- Events:
- </text>
- <check_box label="PG" name="event_chk"/>
- <check_box initial_value="true" label="Mature" name="event_mature_chk"/>
- <check_box label="Adult" name="event_adult_chk"/>
- <combo_box label="Online-Freunde" name="friend combo" tool_tip="Freund, der auf Karte angezeigt werden soll">
- <combo_box.item label="Online-Freunde" name="item1"/>
- </combo_box>
- <combo_box label="Landmarken" name="landmark combo" tool_tip="Landmarke, die auf Karte angezeigt werden soll">
- <combo_box.item label="Landmarken" name="item1"/>
- </combo_box>
- <line_editor label="Nach Regionsname suchen" name="location" tool_tip="Geben Sie den Namen einer Region ein"/>
- <button label="Suchen" name="DoSearch" tool_tip="Nach einer Region suchen"/>
- <text name="search_label">
- Suchergebnisse:
- </text>
- <scroll_list name="search_results">
- <scroll_list.columns label="" name="icon"/>
- <scroll_list.columns label="" name="sim_name"/>
- </scroll_list>
- <text name="location_label">
- Standort:
- </text>
- <spinner name="spin x" tool_tip="X-Koordinate der Position auf der Karte"/>
- <spinner name="spin y" tool_tip="Y-Koordinate der Position auf der Karte"/>
- <spinner name="spin z" tool_tip="Z-Koordinate der Position auf der Karte"/>
- <button label="Teleportieren" label_selected="Teleportieren" name="Teleport" tool_tip="Zu ausgewÀhlter Position teleportieren"/>
- <button label="Gesuchte Position" label_selected="Ziel anzeigen" name="Show Destination" tool_tip="Karte auf ausgewÀhlte Position zentrieren"/>
- <button label="Löschen" label_selected="Löschen" name="Clear" tool_tip="Verfolgung abschalten"/>
- <button label="Meine Position" label_selected="Wo bin ich?" name="Show My Location" tool_tip="Karte auf Position Ihres Avatars zentrieren"/>
- <button font="SansSerifSmall" label="SLurl in die Zwischenablage kopieren" name="copy_slurl" tool_tip="Kopiert die aktuelle Position als SLurl zur Verwendung im Web."/>
- <slider label="Zoom" name="zoom slider"/>
+ <panel name="layout_panel_1">
+ <text name="events_label">
+ Legende
+ </text>
+ </panel>
+ <panel>
+ <button label="Meine Position" label_selected="Wo bin ich?" name="Show My Location" tool_tip="Karte auf Position meines Avatars zentrieren"/>
+ <text name="me_label">
+ Ich
+ </text>
+ <check_box label="Einwohner" name="people_chk"/>
+ <text name="person_label">
+ Person
+ </text>
+ <check_box label="Infohub" name="infohub_chk"/>
+ <text name="infohub_label">
+ Infohub
+ </text>
+ <check_box label="Land zu verkaufen" name="land_for_sale_chk"/>
+ <text name="land_sale_label">
+ Land-Verkauf
+ </text>
+ <text name="by_owner_label">
+ durch Besitzer
+ </text>
+ <text name="auction_label">
+ Land-Auktion
+ </text>
+ <button label="Nach Hause" label_selected="Nach Hause" name="Go Home" tool_tip="Nach Hause teleportieren"/>
+ <text name="Home_label">
+ Startseite
+ </text>
+ <text name="events_label">
+ Events:
+ </text>
+ <check_box label="PG" name="event_chk"/>
+ <text name="pg_label">
+ Allgemein
+ </text>
+ <check_box initial_value="true" label="Mature" name="event_mature_chk"/>
+ <text name="mature_label">
+ Moderat
+ </text>
+ <check_box label="Adult" name="event_adult_chk"/>
+ <text name="adult_label">
+ Adult
+ </text>
+ </panel>
+ <panel>
+ <text name="find_on_map_label">
+ Auf Karte anzeigen
+ </text>
+ </panel>
+ <panel>
+ <combo_box label="Online-Freunde" name="friend combo" tool_tip="Freunde auf Karte anzeigen">
+ <combo_box.item label="Meine Freunde: Online" name="item1"/>
+ </combo_box>
+ <combo_box label="Meine Landmarken" name="landmark combo" tool_tip="Landmarke, die auf Karte angezeigt werden soll">
+ <combo_box.item label="Meine Landmarken" name="item1"/>
+ </combo_box>
+ <search_editor label="Regionen nach Name" name="location" tool_tip="Geben Sie den Namen einer Region ein"/>
+ <button label="Suchen" name="DoSearch" tool_tip="Nach einer Region suchen"/>
+ <scroll_list name="search_results">
+ <scroll_list.columns label="" name="icon"/>
+ <scroll_list.columns label="" name="sim_name"/>
+ </scroll_list>
+ <button label="Teleportieren" label_selected="Teleportieren" name="Teleport" tool_tip="Zu ausgewÀhlter Position teleportieren"/>
+ <button font="SansSerifSmall" label="SLurl kopieren" name="copy_slurl" tool_tip="Kopiert die aktuelle Position als SLurl zur Verwendung im Web."/>
+ <button label="Auswahl anzeigen" label_selected="Ziel anzeigen" name="Show Destination" tool_tip="Karte auf ausgewÀhlte Position zentrieren"/>
+ </panel>
+ <panel>
+ <text name="zoom_label">
+ Zoom
+ </text>
+ </panel>
+ <panel>
+ <slider label="Zoom" name="zoom slider"/>
+ </panel>
</floater>
diff --git a/indra/newview/skins/default/xui/de/inspect_avatar.xml b/indra/newview/skins/default/xui/de/inspect_avatar.xml
index 91b7650376..489e257867 100644
--- a/indra/newview/skins/default/xui/de/inspect_avatar.xml
+++ b/indra/newview/skins/default/xui/de/inspect_avatar.xml
@@ -10,19 +10,17 @@
<string name="Details">
[SL_PROFILE]
</string>
- <string name="Partner">
- Partner: [PARTNER]
- </string>
<text name="user_name" value="Grumpity ProductEngine"/>
<text name="user_subtitle" value="11 Monate und 3 Tage alt"/>
<text name="user_details">
Dies ist meine Beschreibung und ich finde sie wirklich gut!
</text>
- <text name="user_partner">
- Erica Linden
- </text>
<slider name="volume_slider" tool_tip="LautstÀrke" value="0.5"/>
<button label="Freund hinzufÃŒgen" name="add_friend_btn"/>
<button label="IM" name="im_btn"/>
<button label="Mehr" name="view_profile_btn"/>
+ <panel name="moderator_panel">
+ <button label="Voice deaktivieren" name="disable_voice"/>
+ <button label="Voice aktivieren" name="enable_voice"/>
+ </panel>
</floater>
diff --git a/indra/newview/skins/default/xui/de/inspect_group.xml b/indra/newview/skins/default/xui/de/inspect_group.xml
index fa9764e420..81d946be9d 100644
--- a/indra/newview/skins/default/xui/de/inspect_group.xml
+++ b/indra/newview/skins/default/xui/de/inspect_group.xml
@@ -31,4 +31,5 @@ Hoch solln sie leben! Elche forever! Und auch Mungos!
</text>
<button label="Zusammen" name="join_btn"/>
<button label="Verlassen" name="leave_btn"/>
+ <button label="Profil anzeigen" name="view_profile_btn"/>
</floater>
diff --git a/indra/newview/skins/default/xui/de/menu_attachment_other.xml b/indra/newview/skins/default/xui/de/menu_attachment_other.xml
new file mode 100644
index 0000000000..33cff066a2
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_attachment_other.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- *NOTE: See also menu_avatar_other.xml -->
+<context_menu name="Avatar Pie">
+ <menu_item_call label="Profil anzeigen" name="Profile..."/>
+ <menu_item_call label="Freund hinzufÃŒgen" name="Add Friend"/>
+ <menu_item_call label="IM" name="Send IM..."/>
+ <menu_item_call label="Anrufen" name="Call"/>
+ <menu_item_call label="In Gruppe einladen" name="Invite..."/>
+ <menu_item_call label="Ignorieren" name="Avatar Mute"/>
+ <menu_item_call label="Melden" name="abuse"/>
+ <menu_item_call label="Einfrieren" name="Freeze..."/>
+ <menu_item_call label="Hinauswerfen" name="Eject..."/>
+ <menu_item_call label="Debug" name="Debug..."/>
+ <menu_item_call label="Hineinzoomen" name="Zoom In"/>
+ <menu_item_call label="Zahlen" name="Pay..."/>
+ <menu_item_call label="Objektprofil" name="Object Inspect"/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_attachment_self.xml b/indra/newview/skins/default/xui/de/menu_attachment_self.xml
new file mode 100644
index 0000000000..bc33b9b93d
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_attachment_self.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="Attachment Pie">
+ <menu_item_call label="BerÃŒhren" name="Attachment Object Touch"/>
+ <menu_item_call label="Bearbeiten" name="Edit..."/>
+ <menu_item_call label="Abnehmen" name="Detach"/>
+ <menu_item_call label="Fallen lassen" name="Drop"/>
+ <menu_item_call label="Aufstehen" name="Stand Up"/>
+ <menu_item_call label="Mein Aussehen" name="Appearance..."/>
+ <menu_item_call label="Meine Freunde" name="Friends..."/>
+ <menu_item_call label="Meine Gruppen" name="Groups..."/>
+ <menu_item_call label="Mein Profil" name="Profile..."/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_avatar_icon.xml b/indra/newview/skins/default/xui/de/menu_avatar_icon.xml
index b1e119c66a..c036cf5515 100644
--- a/indra/newview/skins/default/xui/de/menu_avatar_icon.xml
+++ b/indra/newview/skins/default/xui/de/menu_avatar_icon.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="Avatar Icon Menu">
- <menu_item_call label="Profil anzeigen..." name="Show Profile"/>
+ <menu_item_call label="Profil anzeigen" name="Show Profile"/>
<menu_item_call label="IM senden..." name="Send IM"/>
<menu_item_call label="Freund hinzufÃŒgen..." name="Add Friend"/>
<menu_item_call label="Freund entfernen..." name="Remove Friend"/>
diff --git a/indra/newview/skins/default/xui/de/menu_avatar_other.xml b/indra/newview/skins/default/xui/de/menu_avatar_other.xml
new file mode 100644
index 0000000000..85db648119
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_avatar_other.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- *NOTE: See also menu_attachment_other.xml -->
+<context_menu name="Avatar Pie">
+ <menu_item_call label="Profil anzeigen" name="Profile..."/>
+ <menu_item_call label="Freund hinzufÃŒgen" name="Add Friend"/>
+ <menu_item_call label="IM" name="Send IM..."/>
+ <menu_item_call label="Anrufen" name="Call"/>
+ <menu_item_call label="In Gruppe einladen" name="Invite..."/>
+ <menu_item_call label="Ignorieren" name="Avatar Mute"/>
+ <menu_item_call label="Melden" name="abuse"/>
+ <menu_item_call label="Einfrieren" name="Freeze..."/>
+ <menu_item_call label="Hinauswerfen" name="Eject..."/>
+ <menu_item_call label="Debug" name="Debug..."/>
+ <menu_item_call label="Hineinzoomen" name="Zoom In"/>
+ <menu_item_call label="Zahlen" name="Pay..."/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_avatar_self.xml b/indra/newview/skins/default/xui/de/menu_avatar_self.xml
new file mode 100644
index 0000000000..5f9856a9cb
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_avatar_self.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="Self Pie">
+ <menu_item_call label="Aufstehen" name="Stand Up"/>
+ <context_menu label="Ausziehen &gt;" name="Take Off &gt;">
+ <context_menu label="Kleidung &gt;" name="Clothes &gt;">
+ <menu_item_call label="Hemd" name="Shirt"/>
+ <menu_item_call label="Hose" name="Pants"/>
+ <menu_item_call label="Rock" name="Skirt"/>
+ <menu_item_call label="Schuhe" name="Shoes"/>
+ <menu_item_call label="StrÃŒmpfe" name="Socks"/>
+ <menu_item_call label="Jacke" name="Jacket"/>
+ <menu_item_call label="Handschuhe" name="Gloves"/>
+ <menu_item_call label="Unterhemd" name="Self Undershirt"/>
+ <menu_item_call label="Unterhose" name="Self Underpants"/>
+ <menu_item_call label="TÀtowierung" name="Self Tattoo"/>
+ <menu_item_call label="Alpha" name="Self Alpha"/>
+ <menu_item_call label="Alle Kleider" name="All Clothes"/>
+ </context_menu>
+ <context_menu label="HUD &gt;" name="Object Detach HUD"/>
+ <context_menu label="Abnehmen &gt;" name="Object Detach"/>
+ <menu_item_call label="Alles abnehmen" name="Detach All"/>
+ </context_menu>
+ <menu_item_call label="Mein Aussehen" name="Appearance..."/>
+ <menu_item_call label="Meine Freunde" name="Friends..."/>
+ <menu_item_call label="Meine Gruppen" name="Groups..."/>
+ <menu_item_call label="Mein Profil" name="Profile..."/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_bottomtray.xml b/indra/newview/skins/default/xui/de/menu_bottomtray.xml
index 246275bee1..3f12906adc 100644
--- a/indra/newview/skins/default/xui/de/menu_bottomtray.xml
+++ b/indra/newview/skins/default/xui/de/menu_bottomtray.xml
@@ -4,4 +4,9 @@
<menu_item_check label="SchaltflÀche Bewegungssteuerung" name="ShowMoveButton"/>
<menu_item_check label="SchaltflÀche Ansicht" name="ShowCameraButton"/>
<menu_item_check label="SchaltflÀche Foto" name="ShowSnapshotButton"/>
+ <menu_item_call label="Ausschneiden" name="NearbyChatBar_Cut"/>
+ <menu_item_call label="Kopieren" name="NearbyChatBar_Copy"/>
+ <menu_item_call label="EinfÃŒgen" name="NearbyChatBar_Paste"/>
+ <menu_item_call label="Löschen" name="NearbyChatBar_Delete"/>
+ <menu_item_call label="Alle auswÀhlen" name="NearbyChatBar_Select_All"/>
</menu>
diff --git a/indra/newview/skins/default/xui/de/menu_im_well_button.xml b/indra/newview/skins/default/xui/de/menu_im_well_button.xml
new file mode 100644
index 0000000000..f464b71f4a
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_im_well_button.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="IM Well Button Context Menu">
+ <menu_item_call label="Alle schließen" name="Close All"/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_imchiclet_adhoc.xml b/indra/newview/skins/default/xui/de/menu_imchiclet_adhoc.xml
new file mode 100644
index 0000000000..11f93f47b4
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_imchiclet_adhoc.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="IMChiclet AdHoc Menu">
+ <menu_item_call label="Sitzung beenden" name="End Session"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/de/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/de/menu_inspect_avatar_gear.xml
index 128bcdb86a..9b6a6b2c4a 100644
--- a/indra/newview/skins/default/xui/de/menu_inspect_avatar_gear.xml
+++ b/indra/newview/skins/default/xui/de/menu_inspect_avatar_gear.xml
@@ -7,6 +7,7 @@
<menu_item_call label="Teleportieren" name="teleport"/>
<menu_item_call label="In Gruppe einladen" name="invite_to_group"/>
<menu_item_call label="Ignorieren" name="block"/>
+ <menu_item_call label="Freischalten" name="unblock"/>
<menu_item_call label="Melden" name="report"/>
<menu_item_call label="Einfrieren" name="freeze"/>
<menu_item_call label="Hinauswerfen" name="eject"/>
diff --git a/indra/newview/skins/default/xui/de/menu_inventory.xml b/indra/newview/skins/default/xui/de/menu_inventory.xml
index fcdfc8b9e0..77c012d045 100644
--- a/indra/newview/skins/default/xui/de/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/de/menu_inventory.xml
@@ -10,7 +10,7 @@
<menu_item_call label="FundstÃŒcke ausleeren" name="Empty Lost And Found"/>
<menu_item_call label="Neuer Ordner" name="New Folder"/>
<menu_item_call label="Neues Skript" name="New Script"/>
- <menu_item_call label="Neue Notiz" name="New Note"/>
+ <menu_item_call label="Neue Notizkarte" name="New Note"/>
<menu_item_call label="Neue Geste" name="New Gesture"/>
<menu label="Neue Kleider" name="New Clothes">
<menu_item_call label="Neues Hemd" name="New Shirt"/>
@@ -46,6 +46,9 @@
<menu_item_call label="Teleportieren" name="Landmark Open"/>
<menu_item_call label="Öffnen" name="Animation Open"/>
<menu_item_call label="Öffnen" name="Sound Open"/>
+ <menu_item_call label="Aktuelles Outfit ersetzen" name="Replace Outfit"/>
+ <menu_item_call label="Zum aktuellen Outfit hinzufÃŒgen" name="Add To Outfit"/>
+ <menu_item_call label="Vom aktuellen Outfit entfernen" name="Remove From Outfit"/>
<menu_item_call label="Objekt löschen" name="Purge Item"/>
<menu_item_call label="Objekt wiederherstellen" name="Restore Item"/>
<menu_item_call label="Original suchen" name="Find Original"/>
@@ -56,10 +59,9 @@
<menu_item_call label="Kopieren" name="Copy"/>
<menu_item_call label="EinfÃŒgen" name="Paste"/>
<menu_item_call label="Als Link einfÃŒgen" name="Paste As Link"/>
+ <menu_item_call label="Link entfernen" name="Remove Link"/>
<menu_item_call label="Löschen" name="Delete"/>
- <menu_item_call label="Von Outfit entfernen" name="Remove From Outfit"/>
- <menu_item_call label="Zum Outfit hinzufÃŒgen" name="Add To Outfit"/>
- <menu_item_call label="Outfit ersetzen" name="Replace Outfit"/>
+ <menu_item_call label="Systemordner löschen" name="Delete System Folder"/>
<menu_item_call label="Konferenz-Chat starten" name="Conference Chat Folder"/>
<menu_item_call label="Wiedergeben/Abspielen" name="Sound Play"/>
<menu_item_call label="Landmarken-Info" name="About Landmark"/>
diff --git a/indra/newview/skins/default/xui/de/menu_inventory_add.xml b/indra/newview/skins/default/xui/de/menu_inventory_add.xml
index f6b7e51325..448b1d80bf 100644
--- a/indra/newview/skins/default/xui/de/menu_inventory_add.xml
+++ b/indra/newview/skins/default/xui/de/menu_inventory_add.xml
@@ -8,7 +8,7 @@
</menu>
<menu_item_call label="Neuer Ordner" name="New Folder"/>
<menu_item_call label="Neues Skript" name="New Script"/>
- <menu_item_call label="Neue Notiz" name="New Note"/>
+ <menu_item_call label="Neue Notizkarte" name="New Note"/>
<menu_item_call label="Neue Geste" name="New Gesture"/>
<menu label="Neue Kleider" name="New Clothes">
<menu_item_call label="Neues Hemd" name="New Shirt"/>
diff --git a/indra/newview/skins/default/xui/de/menu_inventory_gear_default.xml b/indra/newview/skins/default/xui/de/menu_inventory_gear_default.xml
index 69f9b86d75..e2b980c7b6 100644
--- a/indra/newview/skins/default/xui/de/menu_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/de/menu_inventory_gear_default.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="menu_gear_default">
- <menu_item_call label="Fenster: Neues Inventar" name="new_window"/>
+ <menu_item_call label="Neues Inventar-Fenster" name="new_window"/>
<menu_item_call label="Nach Name sortieren" name="sort_by_name"/>
<menu_item_call label="Nach aktuellesten Objekten sortieren" name="sort_by_recent"/>
<menu_item_call label="Filter anzeigen" name="show_filters"/>
@@ -9,4 +9,6 @@
<menu_item_call label="Papierkorb ausleeren" name="empty_trash"/>
<menu_item_call label="FundbÃŒro ausleeren" name="empty_lostnfound"/>
<menu_item_call label="Textur speichern als" name="Save Texture As"/>
+ <menu_item_call label="Original suchen" name="Find Original"/>
+ <menu_item_call label="Alle Links suchen" name="Find All Links"/>
</menu>
diff --git a/indra/newview/skins/default/xui/de/menu_land.xml b/indra/newview/skins/default/xui/de/menu_land.xml
new file mode 100644
index 0000000000..9b1e6727b7
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_land.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="Land Pie">
+ <menu_item_call label="Land-Info" name="Place Information..."/>
+ <menu_item_call label="Hier sitzen" name="Sit Here"/>
+ <menu_item_call label="Dieses Land kaufen" name="Land Buy"/>
+ <menu_item_call label="Pass kaufen" name="Land Buy Pass"/>
+ <menu_item_call label="Bauen" name="Create"/>
+ <menu_item_call label="Terrain bearbeiten" name="Edit Terrain"/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_login.xml b/indra/newview/skins/default/xui/de/menu_login.xml
index 26c2a4c2f4..fffa056cac 100644
--- a/indra/newview/skins/default/xui/de/menu_login.xml
+++ b/indra/newview/skins/default/xui/de/menu_login.xml
@@ -23,10 +23,8 @@
<menu_item_call label="Debug-Einstellungen anzeigen" name="Debug Settings"/>
<menu_item_call label="UI/Farb-Einstellungen" name="UI/Color Settings"/>
<menu_item_call label="XUI-Editor" name="UI Preview Tool"/>
- <menu_item_call label="Seitenleiste anzeigen" name="Show Side Tray"/>
- <menu_item_call label="Widget testen" name="Widget Test"/>
- <menu_item_call label="Inspektor-Test" name="Inspectors Test"/>
- <menu_item_check label="Reg In Client Test (Neustart)" name="Reg In Client Test (restart)"/>
+ <menu label="UI-Tests" name="UI Tests"/>
+ <menu_item_call label="Fenstergröße einstellen..." name="Set Window Size..."/>
<menu_item_call label="Servicebedingungen anzeigen" name="TOS"/>
<menu_item_call label="Wichtige Meldung anzeigen" name="Critical"/>
<menu_item_call label="Web-Browser-Test" name="Web Browser Test"/>
diff --git a/indra/newview/skins/default/xui/de/menu_notification_well_button.xml b/indra/newview/skins/default/xui/de/menu_notification_well_button.xml
new file mode 100644
index 0000000000..0f2784f160
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_notification_well_button.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="Notification Well Button Context Menu">
+ <menu_item_call label="Alle schließen" name="Close All"/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_object.xml b/indra/newview/skins/default/xui/de/menu_object.xml
new file mode 100644
index 0000000000..6f8d85ecb8
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_object.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="Object Pie">
+ <menu_item_call label="BerÃŒhren" name="Object Touch"/>
+ <menu_item_call label="Bearbeiten" name="Edit..."/>
+ <menu_item_call label="Bauen" name="Build"/>
+ <menu_item_call label="Öffnen" name="Open"/>
+ <menu_item_call label="Hier sitzen" name="Object Sit"/>
+ <menu_item_call label="Objektprofil" name="Object Inspect"/>
+ <menu_item_call label="Hineinzoomen" name="Zoom In"/>
+ <context_menu label="Anziehen &gt;" name="Put On">
+ <menu_item_call label="Anziehen" name="Wear"/>
+ <context_menu label="AnhÀngen &gt;" name="Object Attach"/>
+ <context_menu label="HUD anhÀngen &gt;" name="Object Attach HUD"/>
+ </context_menu>
+ <context_menu label="Entfernen &gt;" name="Remove">
+ <menu_item_call label="Nehmen" name="Pie Object Take"/>
+ <menu_item_call label="Missbrauch melden" name="Report Abuse..."/>
+ <menu_item_call label="Ignorieren" name="Object Mute"/>
+ <menu_item_call label="ZurÃŒckgeben" name="Return..."/>
+ <menu_item_call label="Löschen" name="Delete"/>
+ </context_menu>
+ <menu_item_call label="Kopie nehmen" name="Take Copy"/>
+ <menu_item_call label="Zahlen" name="Pay..."/>
+ <menu_item_call label="Kaufen" name="Buy..."/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_participant_list.xml b/indra/newview/skins/default/xui/de/menu_participant_list.xml
index 042123cde4..15c957cee3 100644
--- a/indra/newview/skins/default/xui/de/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/de/menu_participant_list.xml
@@ -1,5 +1,20 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Participant List Context Menu">
- <menu_item_check label="Text stummschalten" name="MuteText"/>
- <menu_item_check label="Text-Chat zulassen" name="AllowTextChat"/>
+ <menu_item_check label="Nach Name sortieren" name="SortByName"/>
+ <menu_item_check label="Nach letzten Sprechern sortieren" name="SortByRecentSpeakers"/>
+ <menu_item_call label="Profil anzeigen" name="View Profile"/>
+ <menu_item_call label="Freund hinzufÃŒgen" name="Add Friend"/>
+ <menu_item_call label="IM" name="IM"/>
+ <menu_item_call label="Anrufen" name="Call"/>
+ <menu_item_call label="Teilen" name="Share"/>
+ <menu_item_call label="Zahlen" name="Pay"/>
+ <menu_item_check label="Voice ignorieren" name="Block/Unblock"/>
+ <menu_item_check label="Text ignorieren" name="MuteText"/>
+ <context_menu label="Moderator-Optionen &gt;" name="Moderator Options">
+ <menu_item_check label="Text-Chat zulassen" name="AllowTextChat"/>
+ <menu_item_call label="Diesen Teilnehmer stummschalten" name="ModerateVoiceMuteSelected"/>
+ <menu_item_call label="Alle anderen stummschalten" name="ModerateVoiceMuteOthers"/>
+ <menu_item_call label="Stummschaltung fÃŒr diesen Teilnehmer aufheben" name="ModerateVoiceUnMuteSelected"/>
+ <menu_item_call label="Stummschaltung fÃŒr alle anderen aufheben" name="ModerateVoiceUnMuteOthers"/>
+ </context_menu>
</context_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_people_groups.xml b/indra/newview/skins/default/xui/de/menu_people_groups.xml
new file mode 100644
index 0000000000..87f43d27e6
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_people_groups.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="menu_group_plus">
+ <menu_item_call label="Ansichts-Info" name="View Info"/>
+ <menu_item_call label="Chat" name="Chat"/>
+ <menu_item_call label="Anrufen" name="Call"/>
+ <menu_item_call label="Aktivieren" name="Activate"/>
+ <menu_item_call label="Verlassen" name="Leave"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/de/menu_people_nearby.xml b/indra/newview/skins/default/xui/de/menu_people_nearby.xml
index ef58b4136e..9fa5db5fa3 100644
--- a/indra/newview/skins/default/xui/de/menu_people_nearby.xml
+++ b/indra/newview/skins/default/xui/de/menu_people_nearby.xml
@@ -7,4 +7,5 @@
<menu_item_call label="Teilen" name="Share"/>
<menu_item_call label="Zahlen" name="Pay"/>
<menu_item_check label="Ignorieren/Freischalten" name="Block/Unblock"/>
+ <menu_item_call label="Teleport anbieten" name="teleport"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_profile_overflow.xml b/indra/newview/skins/default/xui/de/menu_profile_overflow.xml
index 89b56d1571..f5cedf5464 100644
--- a/indra/newview/skins/default/xui/de/menu_profile_overflow.xml
+++ b/indra/newview/skins/default/xui/de/menu_profile_overflow.xml
@@ -2,4 +2,8 @@
<toggleable_menu name="profile_overflow_menu">
<menu_item_call label="Zahlen" name="pay"/>
<menu_item_call label="Teilen" name="share"/>
+ <menu_item_call label="Hinauswerfen" name="kick"/>
+ <menu_item_call label="Einfrieren" name="freeze"/>
+ <menu_item_call label="Auftauen" name="unfreeze"/>
+ <menu_item_call label="CSR" name="csr"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_teleport_history_gear.xml b/indra/newview/skins/default/xui/de/menu_teleport_history_gear.xml
index 2bfdadf22a..68b8e21802 100644
--- a/indra/newview/skins/default/xui/de/menu_teleport_history_gear.xml
+++ b/indra/newview/skins/default/xui/de/menu_teleport_history_gear.xml
@@ -2,5 +2,5 @@
<menu name="Teleport History Gear Context Menu">
<menu_item_call label="Alle Ordner aufklappen" name="Expand all folders"/>
<menu_item_call label="Alle Ordner schließen" name="Collapse all folders"/>
- <menu_item_call label="Teleport-Verlauf löschen" name="Clear Teleport History"/>
+ <menu_item_call label="Teleport-Liste löschen" name="Clear Teleport History"/>
</menu>
diff --git a/indra/newview/skins/default/xui/de/menu_viewer.xml b/indra/newview/skins/default/xui/de/menu_viewer.xml
index ee2f1ee7c9..c6bbea285f 100644
--- a/indra/newview/skins/default/xui/de/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/de/menu_viewer.xml
@@ -9,7 +9,7 @@
<menu_item_call label="Mein Profil" name="Profile"/>
<menu_item_call label="Mein Aussehen" name="Appearance"/>
<menu_item_check label="Mein Inventar" name="Inventory"/>
- <menu_item_call label="Inventar in Seitenleiste anzeigen" name="ShowSidetrayInventory"/>
+ <menu_item_call label="Inventar auf Seitenleiste anzeigen" name="ShowSidetrayInventory"/>
<menu_item_call label="Meine Gesten" name="Gestures"/>
<menu label="Mein Status" name="Status">
<menu_item_call label="Abwesend" name="Set Away"/>
@@ -23,38 +23,32 @@
<menu_item_call label="Meine Freunde" name="My Friends"/>
<menu_item_call label="Meine Gruppen" name="My Groups"/>
<menu_item_check label="Lokaler Chat" name="Nearby Chat"/>
- <menu_item_call label="Leute in dern NÀhe" name="Active Speakers"/>
+ <menu_item_call label="Leute in der NÀhe" name="Active Speakers"/>
<menu_item_check label="Medien in der NÀhe" name="Nearby Media"/>
- <menu_item_check label="(Legacy) Kommunikation" name="Instant Message"/>
- <menu_item_call label="(Temp) Mediensteuerung" name="Preferences"/>
</menu>
<menu label="Welt" name="World">
- <menu_item_check label="Bewegen" name="Movement Controls"/>
- <menu_item_check label="Ansicht" name="Camera Controls"/>
- <menu_item_call label="Über Land" name="About Land"/>
- <menu_item_call label="Region/GrundstÃŒck" name="Region/Estate"/>
- <menu_item_call label="Land kaufen" name="Buy Land"/>
- <menu_item_call label="Mein Land" name="My Land"/>
- <menu label="Anzeigen" name="Land">
- <menu_item_check label="Bannlinien" name="Ban Lines"/>
- <menu_item_check label="Strahlen" name="beacons"/>
- <menu_item_check label="GrundstÃŒcksgrenzen" name="Property Lines"/>
- <menu_item_check label="LandeigentÃŒmer" name="Land Owners"/>
- </menu>
- <menu label="Landmarken" name="Landmarks">
- <menu_item_call label="Landmarke hier setzen" name="Create Landmark Here"/>
- <menu_item_call label="Hier als Zuhause wÀhlen" name="Set Home to Here"/>
- </menu>
- <menu_item_call label="Startseite" name="Teleport Home"/>
<menu_item_check label="Minikarte" name="Mini-Map"/>
<menu_item_check label="Weltkarte" name="World Map"/>
<menu_item_call label="Foto" name="Take Snapshot"/>
+ <menu_item_call label="Landmarke fÃŒr diesen Ort setzen" name="Create Landmark Here"/>
+ <menu label="Ortsprofil" name="Land">
+ <menu_item_call label="Land-Info" name="About Land"/>
+ <menu_item_call label="Region/GrundstÃŒck" name="Region/Estate"/>
+ </menu>
+ <menu_item_call label="Dieses Land kaufen" name="Buy Land"/>
+ <menu_item_call label="Mein Land" name="My Land"/>
+ <menu label="Anzeigen" name="LandShow">
+ <menu_item_check label="Bewegungssteuerung" name="Movement Controls"/>
+ <menu_item_check label="Ansichtsteuerung" name="Camera Controls"/>
+ </menu>
+ <menu_item_call label="Teleport nach Hause" name="Teleport Home"/>
+ <menu_item_call label="Hier als Zuhause wÀhlen" name="Set Home to Here"/>
<menu label="Sonne" name="Environment Settings">
<menu_item_call label="Sonnenaufgang" name="Sunrise"/>
<menu_item_call label="Mittag" name="Noon"/>
<menu_item_call label="Sonnenuntergang" name="Sunset"/>
<menu_item_call label="Mitternacht" name="Midnight"/>
- <menu_item_call label="GrundstÃŒckszeit verwenden" name="Revert to Region Default"/>
+ <menu_item_call label="GrundstÃŒckszeit" name="Revert to Region Default"/>
<menu_item_call label="Umwelt-Editor" name="Environment Editor"/>
</menu>
</menu>
@@ -125,21 +119,20 @@
</menu>
<menu label="Hilfe" name="Help">
<menu_item_call label="[SECOND_LIFE]-Hilfe" name="Second Life Help"/>
- <menu_item_call label="Tutorial" name="Tutorial"/>
<menu_item_call label="Missbrauch melden" name="Report Abuse"/>
+ <menu_item_call label="Fehler melden" name="Report Bug"/>
<menu_item_call label="INFO ÜBER [APP_NAME]" name="About Second Life"/>
</menu>
<menu label="Erweitert" name="Advanced">
- <menu_item_check label="Nach 30 Min auf Abwesend stellen" name="Go Away/AFK When Idle"/>
<menu_item_call label="Animation meines Avatars stoppen" name="Stop Animating My Avatar"/>
<menu_item_call label="Textur neu laden" name="Rebake Texture"/>
<menu_item_call label="UI-Größe auf Standard setzen" name="Set UI Size to Default"/>
+ <menu_item_call label="Fenstergröße einstellen..." name="Set Window Size..."/>
<menu_item_check label="Auswahldistanz einschrÀnken" name="Limit Select Distance"/>
<menu_item_check label="KamerabeschrÀnkungen deaktivieren" name="Disable Camera Distance"/>
<menu_item_check label="Foto (hohe Auflösung)" name="HighResSnapshot"/>
<menu_item_check label="Fotos auf Festplatte leise speichern" name="QuietSnapshotsToDisk"/>
<menu_item_check label="Fotos auf Festplatte komprimieren" name="CompressSnapshotsToDisk"/>
- <menu_item_call label="Textur speichern als" name="Save Texture As"/>
<menu label="Performance Tools" name="Performance Tools">
<menu_item_call label="Lag-Anzeige" name="Lag Meter"/>
<menu_item_check label="Statistikleiste" name="Statistics Bar"/>
@@ -215,7 +208,7 @@
<menu label="Konsolen" name="Consoles">
<menu_item_check label="Textur" name="Texture Console"/>
<menu_item_check label="Fehler beseitigen" name="Debug Console"/>
- <menu_item_call label="Konsole: Meldungen" name="Notifications"/>
+ <menu_item_call label="Meldungen" name="Notifications"/>
<menu_item_check label="Texturgröße" name="Texture Size"/>
<menu_item_check label="Texture-Kategorie" name="Texture Category"/>
<menu_item_check label="Schnelle Timer" name="Fast Timers"/>
@@ -288,7 +281,7 @@
<menu label="Netzwerk" name="Network">
<menu_item_check label="Agent pausieren" name="AgentPause"/>
<menu_item_call label="Meldungsprotokoll aktivieren" name="Enable Message Log"/>
- <menu_item_call label="Meldungs-Protokoll deaktivieren" name="Disable Message Log"/>
+ <menu_item_call label="Meldungsprotokoll deaktivieren" name="Disable Message Log"/>
<menu_item_check label="Objektposition laut Geschwindigkeit interpolieren" name="Velocity Interpolate Objects"/>
<menu_item_check label="Positionen der interpolierten Objekte anfragen" name="Ping Interpolate Object Positions"/>
<menu_item_call label="Ein Paket fallenlassen" name="Drop a Packet"/>
@@ -333,7 +326,6 @@
<menu_item_call label="Als XML speichern" name="Save to XML"/>
<menu_item_check label="XUI-Namen anzeigen" name="Show XUI Names"/>
<menu_item_call label="Test-IMs senden" name="Send Test IMs"/>
- <menu_item_call label="Inspektoren testen" name="Test Inspectors"/>
</menu>
<menu label="Avatar" name="Character">
<menu label="Geladene Textur nehmen" name="Grab Baked Texture">
@@ -366,6 +358,7 @@
<menu_item_call label="Fehler in Avatar-Texturen beseitigen" name="Debug Avatar Textures"/>
<menu_item_call label="Lokale Texturen ausgeben" name="Dump Local Textures"/>
</menu>
+ <menu_item_check label="HTTP-Texturen" name="HTTP Textures"/>
<menu_item_call label="Bilder komprimieren" name="Compress Images"/>
<menu_item_check label="Ausgabe Fehlerbeseitigung ausgeben" name="Output Debug Minidump"/>
<menu_item_check label="Bei nÀchster AusfÌhrung Fenster öffnen" name="Console Window"/>
@@ -383,7 +376,7 @@
<menu_item_call label="Asset-ID zulassen" name="Get Assets IDs"/>
</menu>
<menu label="Parzelle" name="Parcel">
- <menu_item_call label="Besitzer zu mir" name="Owner To Me"/>
+ <menu_item_call label="Besitzer zu mir zwingen" name="Owner To Me"/>
<menu_item_call label="Auf Linden-Inhalt festlegen" name="Set to Linden Content"/>
<menu_item_call label="Öffentiches Land in Besitz nehmen" name="Claim Public Land"/>
</menu>
@@ -410,7 +403,6 @@
<menu_item_call label="TÀtowierung" name="Tattoo"/>
<menu_item_call label="Alle Kleider" name="All Clothes"/>
</menu>
- <menu_item_check label="Werkzeugleiste anzeigen" name="Show Toolbar"/>
<menu label="Hilfe" name="Help">
<menu_item_call label="Offizielles Linden-Blog" name="Official Linden Blog"/>
<menu_item_call label="Scripting-Portal" name="Scripting Portal"/>
diff --git a/indra/newview/skins/default/xui/de/mime_types_linux.xml b/indra/newview/skins/default/xui/de/mime_types_linux.xml
new file mode 100644
index 0000000000..e4b5c53292
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/mime_types_linux.xml
@@ -0,0 +1,217 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<mimetypes name="default">
+ <widgetset name="web">
+ <label name="web_label">
+ Webinhalt
+ </label>
+ <tooltip name="web_tooltip">
+ Dieser Ort verfÃŒgt ÃŒber Webinhalte
+ </tooltip>
+ <playtip name="web_playtip">
+ Webinhalt anzeigen
+ </playtip>
+ </widgetset>
+ <widgetset name="movie">
+ <label name="movie_label">
+ Video
+ </label>
+ <tooltip name="movie_tooltip">
+ Ein Video wurde gefunden.
+ </tooltip>
+ <playtip name="movie_playtip">
+ Video wiedergeben
+ </playtip>
+ </widgetset>
+ <widgetset name="image">
+ <label name="image_label">
+ Bild
+ </label>
+ <tooltip name="image_tooltip">
+ Dieser Ort verfÃŒgt ÃŒber Bildinhalte
+ </tooltip>
+ <playtip name="image_playtip">
+ Das Bild an diesem Ort anzeigen
+ </playtip>
+ </widgetset>
+ <widgetset name="audio">
+ <label name="audio_label">
+ Audio
+ </label>
+ <tooltip name="audio_tooltip">
+ Dieser Ort verfÃŒgt ÃŒber Audioinhalte
+ </tooltip>
+ <playtip name="audio_playtip">
+ Das Audio dieses Standorts abspielen
+ </playtip>
+ </widgetset>
+ <scheme name="rtsp">
+ <label name="rtsp_label">
+ Echtzeit-Streaming
+ </label>
+ </scheme>
+ <mimetype name="blank">
+ <label name="blank_label">
+ - Keine -
+ </label>
+ </mimetype>
+ <mimetype name="none/none">
+ <label name="none/none_label">
+ - Keine -
+ </label>
+ </mimetype>
+ <mimetype name="audio/*">
+ <label name="audio2_label">
+ Audio
+ </label>
+ </mimetype>
+ <mimetype name="video/*">
+ <label name="video2_label">
+ Video
+ </label>
+ </mimetype>
+ <mimetype name="image/*">
+ <label name="image2_label">
+ Bild
+ </label>
+ </mimetype>
+ <mimetype name="video/vnd.secondlife.qt.legacy">
+ <label name="vnd.secondlife.qt.legacy_label">
+ Video (QuickTime)
+ </label>
+ </mimetype>
+ <mimetype name="application/javascript">
+ <label name="application/javascript_label">
+ Javascript
+ </label>
+ </mimetype>
+ <mimetype name="application/ogg">
+ <label name="application/ogg_label">
+ Ogg Audio/Video
+ </label>
+ </mimetype>
+ <mimetype name="application/pdf">
+ <label name="application/pdf_label">
+ PDF-Dokument
+ </label>
+ </mimetype>
+ <mimetype name="application/postscript">
+ <label name="application/postscript_label">
+ Postscript-Dokument
+ </label>
+ </mimetype>
+ <mimetype name="application/rtf">
+ <label name="application/rtf_label">
+ Rich Text (RTF)
+ </label>
+ </mimetype>
+ <mimetype name="application/smil">
+ <label name="application/smil_label">
+ Synchronized Multimedia Integration Language (SMIL)
+ </label>
+ </mimetype>
+ <mimetype name="application/xhtml+xml">
+ <label name="application/xhtml+xml_label">
+ Webseite (XHTML)
+ </label>
+ </mimetype>
+ <mimetype name="application/x-director">
+ <label name="application/x-director_label">
+ Macromedia Director
+ </label>
+ </mimetype>
+ <mimetype name="audio/mid">
+ <label name="audio/mid_label">
+ Audio (MIDI)
+ </label>
+ </mimetype>
+ <mimetype name="audio/mpeg">
+ <label name="audio/mpeg_label">
+ Audio (MP3)
+ </label>
+ </mimetype>
+ <mimetype name="audio/x-aiff">
+ <label name="audio/x-aiff_label">
+ Audio (AIFF)
+ </label>
+ </mimetype>
+ <mimetype name="audio/x-wav">
+ <label name="audio/x-wav_label">
+ Audio (WAV)
+ </label>
+ </mimetype>
+ <mimetype name="image/bmp">
+ <label name="image/bmp_label">
+ Bild (BMP)
+ </label>
+ </mimetype>
+ <mimetype name="image/gif">
+ <label name="image/gif_label">
+ Bild (GIF)
+ </label>
+ </mimetype>
+ <mimetype name="image/jpeg">
+ <label name="image/jpeg_label">
+ Bild (JPEG)
+ </label>
+ </mimetype>
+ <mimetype name="image/png">
+ <label name="image/png_label">
+ Bild (PNG)
+ </label>
+ </mimetype>
+ <mimetype name="image/svg+xml">
+ <label name="image/svg+xml_label">
+ Bild (SVG)
+ </label>
+ </mimetype>
+ <mimetype name="image/tiff">
+ <label name="image/tiff_label">
+ Bild (TIFF)
+ </label>
+ </mimetype>
+ <mimetype name="text/html">
+ <label name="text/html_label">
+ Webseite
+ </label>
+ </mimetype>
+ <mimetype name="text/plain">
+ <label name="text/plain_label">
+ Text
+ </label>
+ </mimetype>
+ <mimetype name="text/xml">
+ <label name="text/xml_label">
+ XML
+ </label>
+ </mimetype>
+ <mimetype name="video/mpeg">
+ <label name="video/mpeg_label">
+ Video (MPEG)
+ </label>
+ </mimetype>
+ <mimetype name="video/mp4">
+ <label name="video/mp4_label">
+ Video (MP4)
+ </label>
+ </mimetype>
+ <mimetype name="video/quicktime">
+ <label name="video/quicktime_label">
+ Video (QuickTime)
+ </label>
+ </mimetype>
+ <mimetype name="video/x-ms-asf">
+ <label name="video/x-ms-asf_label">
+ Video (Windows Media ASF)
+ </label>
+ </mimetype>
+ <mimetype name="video/x-ms-wmv">
+ <label name="video/x-ms-wmv_label">
+ Video (Windows Media WMV)
+ </label>
+ </mimetype>
+ <mimetype name="video/x-msvideo">
+ <label name="video/x-msvideo_label">
+ Video (AVI)
+ </label>
+ </mimetype>
+</mimetypes>
diff --git a/indra/newview/skins/default/xui/de/mime_types_mac.xml b/indra/newview/skins/default/xui/de/mime_types_mac.xml
new file mode 100644
index 0000000000..e4b5c53292
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/mime_types_mac.xml
@@ -0,0 +1,217 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<mimetypes name="default">
+ <widgetset name="web">
+ <label name="web_label">
+ Webinhalt
+ </label>
+ <tooltip name="web_tooltip">
+ Dieser Ort verfÃŒgt ÃŒber Webinhalte
+ </tooltip>
+ <playtip name="web_playtip">
+ Webinhalt anzeigen
+ </playtip>
+ </widgetset>
+ <widgetset name="movie">
+ <label name="movie_label">
+ Video
+ </label>
+ <tooltip name="movie_tooltip">
+ Ein Video wurde gefunden.
+ </tooltip>
+ <playtip name="movie_playtip">
+ Video wiedergeben
+ </playtip>
+ </widgetset>
+ <widgetset name="image">
+ <label name="image_label">
+ Bild
+ </label>
+ <tooltip name="image_tooltip">
+ Dieser Ort verfÃŒgt ÃŒber Bildinhalte
+ </tooltip>
+ <playtip name="image_playtip">
+ Das Bild an diesem Ort anzeigen
+ </playtip>
+ </widgetset>
+ <widgetset name="audio">
+ <label name="audio_label">
+ Audio
+ </label>
+ <tooltip name="audio_tooltip">
+ Dieser Ort verfÃŒgt ÃŒber Audioinhalte
+ </tooltip>
+ <playtip name="audio_playtip">
+ Das Audio dieses Standorts abspielen
+ </playtip>
+ </widgetset>
+ <scheme name="rtsp">
+ <label name="rtsp_label">
+ Echtzeit-Streaming
+ </label>
+ </scheme>
+ <mimetype name="blank">
+ <label name="blank_label">
+ - Keine -
+ </label>
+ </mimetype>
+ <mimetype name="none/none">
+ <label name="none/none_label">
+ - Keine -
+ </label>
+ </mimetype>
+ <mimetype name="audio/*">
+ <label name="audio2_label">
+ Audio
+ </label>
+ </mimetype>
+ <mimetype name="video/*">
+ <label name="video2_label">
+ Video
+ </label>
+ </mimetype>
+ <mimetype name="image/*">
+ <label name="image2_label">
+ Bild
+ </label>
+ </mimetype>
+ <mimetype name="video/vnd.secondlife.qt.legacy">
+ <label name="vnd.secondlife.qt.legacy_label">
+ Video (QuickTime)
+ </label>
+ </mimetype>
+ <mimetype name="application/javascript">
+ <label name="application/javascript_label">
+ Javascript
+ </label>
+ </mimetype>
+ <mimetype name="application/ogg">
+ <label name="application/ogg_label">
+ Ogg Audio/Video
+ </label>
+ </mimetype>
+ <mimetype name="application/pdf">
+ <label name="application/pdf_label">
+ PDF-Dokument
+ </label>
+ </mimetype>
+ <mimetype name="application/postscript">
+ <label name="application/postscript_label">
+ Postscript-Dokument
+ </label>
+ </mimetype>
+ <mimetype name="application/rtf">
+ <label name="application/rtf_label">
+ Rich Text (RTF)
+ </label>
+ </mimetype>
+ <mimetype name="application/smil">
+ <label name="application/smil_label">
+ Synchronized Multimedia Integration Language (SMIL)
+ </label>
+ </mimetype>
+ <mimetype name="application/xhtml+xml">
+ <label name="application/xhtml+xml_label">
+ Webseite (XHTML)
+ </label>
+ </mimetype>
+ <mimetype name="application/x-director">
+ <label name="application/x-director_label">
+ Macromedia Director
+ </label>
+ </mimetype>
+ <mimetype name="audio/mid">
+ <label name="audio/mid_label">
+ Audio (MIDI)
+ </label>
+ </mimetype>
+ <mimetype name="audio/mpeg">
+ <label name="audio/mpeg_label">
+ Audio (MP3)
+ </label>
+ </mimetype>
+ <mimetype name="audio/x-aiff">
+ <label name="audio/x-aiff_label">
+ Audio (AIFF)
+ </label>
+ </mimetype>
+ <mimetype name="audio/x-wav">
+ <label name="audio/x-wav_label">
+ Audio (WAV)
+ </label>
+ </mimetype>
+ <mimetype name="image/bmp">
+ <label name="image/bmp_label">
+ Bild (BMP)
+ </label>
+ </mimetype>
+ <mimetype name="image/gif">
+ <label name="image/gif_label">
+ Bild (GIF)
+ </label>
+ </mimetype>
+ <mimetype name="image/jpeg">
+ <label name="image/jpeg_label">
+ Bild (JPEG)
+ </label>
+ </mimetype>
+ <mimetype name="image/png">
+ <label name="image/png_label">
+ Bild (PNG)
+ </label>
+ </mimetype>
+ <mimetype name="image/svg+xml">
+ <label name="image/svg+xml_label">
+ Bild (SVG)
+ </label>
+ </mimetype>
+ <mimetype name="image/tiff">
+ <label name="image/tiff_label">
+ Bild (TIFF)
+ </label>
+ </mimetype>
+ <mimetype name="text/html">
+ <label name="text/html_label">
+ Webseite
+ </label>
+ </mimetype>
+ <mimetype name="text/plain">
+ <label name="text/plain_label">
+ Text
+ </label>
+ </mimetype>
+ <mimetype name="text/xml">
+ <label name="text/xml_label">
+ XML
+ </label>
+ </mimetype>
+ <mimetype name="video/mpeg">
+ <label name="video/mpeg_label">
+ Video (MPEG)
+ </label>
+ </mimetype>
+ <mimetype name="video/mp4">
+ <label name="video/mp4_label">
+ Video (MP4)
+ </label>
+ </mimetype>
+ <mimetype name="video/quicktime">
+ <label name="video/quicktime_label">
+ Video (QuickTime)
+ </label>
+ </mimetype>
+ <mimetype name="video/x-ms-asf">
+ <label name="video/x-ms-asf_label">
+ Video (Windows Media ASF)
+ </label>
+ </mimetype>
+ <mimetype name="video/x-ms-wmv">
+ <label name="video/x-ms-wmv_label">
+ Video (Windows Media WMV)
+ </label>
+ </mimetype>
+ <mimetype name="video/x-msvideo">
+ <label name="video/x-msvideo_label">
+ Video (AVI)
+ </label>
+ </mimetype>
+</mimetypes>
diff --git a/indra/newview/skins/default/xui/de/notifications.xml b/indra/newview/skins/default/xui/de/notifications.xml
index 7f5a561f74..d94bbd8564 100644
--- a/indra/newview/skins/default/xui/de/notifications.xml
+++ b/indra/newview/skins/default/xui/de/notifications.xml
@@ -32,10 +32,10 @@
<button name="No" text="$notext"/>
</form>
</template>
- <notification functor="GenericAcknowledge" label="Unbekannter Warnhinweis" name="MissingAlert">
- Ihre Version von [APP_NAME] kann den gerade empfangenen Warnhinweis nicht anzeigen. Bitte vergewissern Sie sich, dass Sie den aktuellsten Viewer installiert haben.
+ <notification functor="GenericAcknowledge" label="Unbekannte Meldung" name="MissingAlert">
+ Ihre Version von [APP_NAME] kann die gerade empfangene Benachrichtigung nicht anzeigen. Bitte vergewissern Sie sich, dass Sie den aktuellsten Viewer installiert haben.
-Fehlerdetails: Der Warnhinweis &apos;[_NAME]&apos; wurde in notifications.xml nicht gefunden.
+Fehlerdetails: The notification called &apos;[_NAME]&apos; was not found in notifications.xml.
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="FloaterNotFound">
@@ -94,12 +94,12 @@ WÀhlen Sie ein einzelnes Objekt aus und versuchen Sie es erneut.
<usetemplate canceltext="Abbrechen" name="yesnocancelbuttons" notext="Nicht speichern" yestext="Alles speichern"/>
</notification>
<notification name="GrantModifyRights">
- Die GewÀhrung von Änderungsrechten an andere Einwohner ermöglicht es diesen, JEDES BELIEBIGE Objekt zu Àndern oder an sich zu nehmen, das Sie in der [SECOND_LIFE]-Welt besitzen. Seien Sie SEHR vorsichtig beim Erteilen dieser Erlaubnis.
-Möchten Sie [FIRST_NAME] [LAST_NAME] Änderungsrechte gewÀhren?
+ Wenn Sie einem anderen Einwohner, das die Erlaubnis zum Bearbeiten erteilen, dann kann dieser JEDES Objekt, das Sie inworld besitzen, verÀndern, löschen oder nehmen. Seien Sie SEHR vorsichtig, wenn Sie diese Erlaubnis gewÀhren!
+Möchten Sie [FIRST_NAME] [LAST_NAME] die Erlaubnis zum Bearbeiten gewÀhren?
<usetemplate name="okcancelbuttons" notext="Nein" yestext="Ja"/>
</notification>
<notification name="GrantModifyRightsMultiple">
- Die GewÀhrung von Änderungsrechten an andere Einwohner ermöglicht es diesen, JEDES BELIEBIGE Objekt zu Àndern, das Sie in der [SECOND_LIFE]-Welt besitzen. Seien Sie SEHR vorsichtig beim Erteilen dieser Erlaubnis.
+ Wenn Sie einem anderen Einwohner, die Erlaubnis zum Bearbeiten erteilen, dann kann dieser JEDES Objekt, das Sie inworld besitzen, verÀndern. Seien Sie SEHR vorsichtig, wenn Sie diese Erlaubnis gewÀhren!
Möchten Sie den ausgewÀhlten Einwohnern Änderungsrechte gewÀhren?
<usetemplate name="okcancelbuttons" notext="Nein" yestext="Ja"/>
</notification>
@@ -156,6 +156,11 @@ Der Rolle „[ROLE_NAME]“ diese FÀhigkeit zuweisen?
Der Rolle „[ROLE_NAME]“ diese FÀhigkeit zuweisen?
<usetemplate name="okcancelbuttons" notext="Nein" yestext="Ja"/>
</notification>
+ <notification name="AttachmentDrop">
+ Sie möchten Ihren Anhang wirklich fallen lassen?
+Möchten Sie fortfahren?
+ <usetemplate ignoretext="BestÀtigen, bevor AnhÀnge fallen gelassen werden" name="okcancelignore" notext="Nein" yestext="Ja"/>
+ </notification>
<notification name="ClickUnimplemented">
Leider ist diese Funktion noch nicht implementiert.
</notification>
@@ -253,15 +258,11 @@ FÃŒr die gesamte Region ist Schaden aktiviert.
Damit Waffen funktionieren, mÃŒssen Skripts erlaubt sein.
</notification>
<notification name="MultipleFacesSelected">
- Momentan sind mehrere Seiten ausgewÀhlt. Wenn Sie fortfahren, werden einzelne Medien auf mehreren Seiten des Objektes dargestellt. Um die Medien auf einer einzigen Seite darzustellen, wÀhlen Sie Textur auswÀhlen und klicken Sie auf die gewÌnschte Seite. Danach klicken Sie HinzufÌgen.
+ Mehrere FlÀchen wurden ausgewÀhlt.
+Wenn Sie fortfahren werden auf mehrere FlÀchen des Objekts unterschiedlichen Medien-Instanzen eingefÌgt.
+Um Medien nur auf einer FlÀche einzufÃŒgen, wÀhlen Sie „OberflÀche auswÀhlen&quot; und klicken Sie auf die gewÃŒnschte FlÀche des Objektes. Klicken Sie dann auf „HinzufÃŒgen&quot;.
<usetemplate ignoretext="Die Medien werden auf mehrere ausgewÀhlte Seiten Ìbertragen" name="okcancelignore" notext="Abbrechen" yestext="OK"/>
</notification>
- <notification name="WhiteListInvalidatesHomeUrl">
- Wenn Sie diesen Eintrag zur Whitelist hinzufÃŒgen, dann wird die URL,
-die Sie fÌr diese Medien-Instanz festgelegt haben, ungÌltig. Dies ist nicht zulÀssig.
-Der Eintrag kann nicht zur Whitelist hinzugefÃŒgt werden.
- <usetemplate name="okbutton" yestext="OK"/>
- </notification>
<notification name="MustBeInParcel">
Sie mÃŒssen auf einer Landparzelle stehen, um ihren Landepunkt festzulegen.
</notification>
@@ -352,14 +353,6 @@ Sind Sie sicher, dass Sie fortfahren wollen?
<notification name="SelectHistoryItemToView">
WÀhlen Sie ein Element zur Ansicht.
</notification>
- <notification name="ResetShowNextTimeDialogs">
- Möchten Sie alle Popups wieder aktivieren, die Sie zuvor auf „Nicht mehr anzeigen“ gesetzt haben?
- <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
- </notification>
- <notification name="SkipShowNextTimeDialogs">
- Möchten Sie alle Popups, die Ìbersprungen werden können, deaktivieren?
- <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
- </notification>
<notification name="CacheWillClear">
Der Cache wird nach einem Neustart von [APP_NAME] geleert.
</notification>
@@ -424,7 +417,7 @@ Das Objekt ist möglicherweise außer Reichweite oder wurde gelöscht.
</notification>
<notification name="StartRegionEmpty">
Sie haben keine Start-Region festgelegt.
-Bitte geben Sie den Namen der Region im Feld „Startposition“ ein oder wÀhlen Sie „Mein letzter Standort“ oder „Mein Heimatort“ als Startposition aus.
+Bitte geben Sie den Namen der Region im Feld „Startposition“ ein oder wÀhlen Sie „Mein letzter Standort“ oder „Mein Zuhause“ als Startposition aus.
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="CouldNotStartStopScript">
@@ -621,6 +614,10 @@ Bitte versuchen Sie es erneut.
<notification name="LandmarkCreated">
„[LANDMARK_NAME]“ wurde zum Ordner „[FOLDER_NAME]“ hinzugefÃŒgt.
</notification>
+ <notification name="LandmarkAlreadyExists">
+ Sie besitzen fÃŒr diesen Standort bereits eine Landmarke.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
<notification name="CannotCreateLandmarkNotOwner">
Sie können hier keine Landmarke erstellen, da der LandeigentÌmer dies verboten hat.
</notification>
@@ -722,7 +719,8 @@ Keine Parzelle ausgewÀhlt.
Eine erzwungene LandÌbertragung ist nicht möglich, da die Auswahl mehrere Regionen umfasst. WÀhlen Sie ein kleineres Gebiet und versuchen Sie es erneut.
</notification>
<notification name="ForceOwnerAuctionWarning">
- Diese Parzelle steht zur Auktion. Eine zwangsweise EigentumsÌbertragung beendet die Auktion und verÀrgert womöglich Einwohner, die bereits ein Gebot abgegeben haben. EigentumsÌbertragung erzwingen?
+ Diese Parzelle steht zur Auktion. Wenn Sie eine EigentumsÃŒbertragung erzwingen, wird die Auktion abgesagt. Wenn die Auktion bereits begonnen hatte, dann werden Sie sich hiermit keine Freunde machen!
+EigentumsÃŒbertragung erzwingen?
<usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
</notification>
<notification name="CannotContentifyNothingSelected">
@@ -775,7 +773,7 @@ WÀhlen Sie eine einzelne Parzelle.
Streaming-Medien erfordern eine schnelle Internet-Verbindung.
Streaming-Medien abspielen, wenn verfÃŒgbar?
-(Sie können diese Option spÀter unter „Einstellungen“ &gt; „Audio &amp; Video“ Àndern.)
+(Sie können diese Option spÀter unter Einstellungen &gt; Datenschutz Àndern.)
<usetemplate name="okcancelbuttons" notext="Deaktivieren" yestext="Medien wiedergeben"/>
</notification>
<notification name="CannotDeedLandWaitingForServer">
@@ -1340,6 +1338,10 @@ Chat und Instant Messages werden ausgeblendet. Instant Messages (Sofortnachricht
[INVITE]
<usetemplate name="okcancelbuttons" notext="Ablehnen" yestext="Beitreten"/>
</notification>
+ <notification name="JoinedTooManyGroups">
+ Sie haben die maximale Anzahl an Gruppen erreicht. Bitte verlassen Sie eine Gruppe bevor Sie einer neuen beitreten oder eine neue Gruppe bilden.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
<notification name="KickUser">
Beim Hinauswerfen dieses Benutzers welche Meldung anzeigen?
<form name="form">
@@ -1584,11 +1586,11 @@ Anzeige fÌr [AMOUNT] L$ veröffentlichen?
<usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
</notification>
<notification name="SetClassifiedMature">
- EnthÀlt diese Anzeige Mature-Inhalte?
+ EnthÀlt diese Anzeige moderate Inhalte?
<usetemplate canceltext="Abbrechen" name="yesnocancelbuttons" notext="Nein" yestext="Ja"/>
</notification>
<notification name="SetGroupMature">
- BeschÀftigt sich diese Gruppe mit Mature-Inhalten?
+ BeschÀftigt sich diese Gruppe mit moderaten Inhalten?
<usetemplate canceltext="Abbrechen" name="yesnocancelbuttons" notext="Nein" yestext="Ja"/>
</notification>
<notification label="Neustart bestÀtigen" name="ConfirmRestart">
@@ -1605,7 +1607,9 @@ Anzeige fÌr [AMOUNT] L$ veröffentlichen?
</notification>
<notification label="Alterseinstufung der Region Àndern" name="RegionMaturityChange">
Die Alterseinstufung dieser Region wurde aktualisiert.
-Es kann eine Weile dauern, bis sich die Änderung auf die Karte auswirkt.
+Es kann eine Weile dauern, bis diese Änderung auf der Karte angezeigt wird.
+
+Um Regionen der Alterseinstufung „Adult&quot; zu betreten, mÃŒssen Einwohner altersÃŒberprÃŒft sein. Dies kann entweder ÃŒber die Alterverifizierung oder Zahlungsverifizierung geschehen.
</notification>
<notification label="Falsche Voice-Version" name="VoiceVersionMismatch">
Diese Version von [APP_NAME] ist mit der Voice-Chat-Funktion in dieser Region nicht kompatibel. Damit Voice-Chat funktioniert, mÃŒssen Sie [APP_NAME] aktualisieren.
@@ -1728,16 +1732,6 @@ Inventarobjekt(e) verschieben?
Alle gemeldeten Verstöße werden bearbeitet. Sie können auf der Seite [http://secondlife.com/support/incidentreport.php Verstoßmeldungen] nachverfolgen, welche Verstoßmeldungen bearbeitet wurden.
</notification>
- <notification name="HelpReportAbuseEmailEO">
- WICHTIG: Diese Meldung wird an den EigentÃŒmer der Region gesendet, in der Sie sich gerade befinden, nicht an Linden Lab.
-
-Als besonderen Service fÃŒr Einwohner und Besucher ÃŒbernimmt der EigentÃŒmer dieser Region die Bearbeitung aller anfallenden Meldungen. Von diesem Standort aus eingereichte Meldungen werden nicht von Linden Lab bearbeitet.
-
-Der EigentÃŒmer der Region bearbeitet Meldungen auf Grundlage der Richtlinien, die im fÃŒr diese Region geltenden GrundstÃŒcksvertrag festgelegt sind.
-(Den Vertrag können Sie unter &apos;Welt &apos; &gt; &apos;Land-Info &apos; einsehen.)
-
-Die KlÀrung des gemeldeten Verstoßes bezieht sich nur auf diese Region. Der Zugang fÃŒr Einwohner zu anderen Bereichen von [SECOND_LIFE] wird durch das Resultat dieser Meldung nicht beeintrÀchtigt. Nur Linden Lab kann den Zugang zu [SECOND_LIFE] beschrÀnken.
- </notification>
<notification name="HelpReportAbuseSelectCategory">
WÀhlen Sie eine Missbrauchskategorie aus.
Die Angabe einer Kategorie hilft uns bei der Bearbeitung des Berichts.
@@ -1971,7 +1965,6 @@ Von einer Webseite zu diesem Formular linken, um anderen leichten Zugang zu dies
</notification>
<notification name="UnableToLoadGesture">
Geste [NAME] konnte nicht geladen werden.
-Bitte versuchen Sie es erneut.
</notification>
<notification name="LandmarkMissing">
Landmarke fehlt in Datenbank.
@@ -2073,7 +2066,7 @@ WÀhlen Sie eine kleinere LandflÀche.
Einige Begriffe in Ihrer Suchanfrage wurden ausgeschlossen, aufgrund von in den Community Standards definierten InhaltsbeschrÀnkungen.
</notification>
<notification name="NoContentToSearch">
- Bitte wÀhlen Sie mindestens eine Inhaltsart fÌr die Suche aus (PG, Mature oder Adult).
+ Bitte wÀhlen Sie mindestens eine Inhaltsart fÌr die Suche aus (Allgemein, Moderat oder Adult).
</notification>
<notification name="GroupVote">
[NAME] hat eine Abstimmung vorgeschlagen ÃŒber:
@@ -2086,6 +2079,9 @@ WÀhlen Sie eine kleinere LandflÀche.
<notification name="SystemMessage">
[MESSAGE]
</notification>
+ <notification name="PaymentRecived">
+ [MESSAGE]
+ </notification>
<notification name="EventNotification">
Event-Benachrichtigung:
@@ -2132,8 +2128,7 @@ Bitte installieren Sie das Plugin erneut. Falls weiterhin Problem auftreten, kon
Die Objekte von [FIRST] [LAST] auf dieser Parzelle wurden in das Inventar dieser Person transferiert.
</notification>
<notification name="OtherObjectsReturned2">
- Die Objekte von [FIRST] [LAST] auf dieser
-Parzelle von „[NAME]“ wurden an ihren EigentÃŒmer zurÃŒckgegeben.
+ Alle Objekte auf der ausgewÀhlten Parzelle, die Einwohner &apos;[NAME]&apos; gehören, wurden an ihren EigentÌmern zurÌckgegeben.
</notification>
<notification name="GroupObjectsReturned">
Die mit der Gruppe [GROUPNAME] gemeinsam genutzten Objekte auf dieser Parzelle wurden in das Inventar ihrer EigentÃŒmer transferiert.
@@ -2146,7 +2141,6 @@ Nicht transferierbare an die Gruppe Ìbertragene Objekte wurden gelöscht.
<notification name="ServerObjectMessage">
Nachricht von [NAME]:
[MSG]
- <usetemplate name="okcancelbuttons" notext="OK" yestext="Untersuchen"/>
</notification>
<notification name="NotSafe">
Auf diesem Land ist Schaden aktiviert.
@@ -2276,12 +2270,12 @@ Versuchen Sie es in einigen Minuten erneut.
</form>
</notification>
<notification name="UserGiveItem">
- [NAME_SLURL] hat Ihnen folgendes [OBJECTTYPE]:
+ [NAME_SLURL] hat Ihnen folgendes [OBJECTTYPE] ÃŒbergeben:
[ITEM_SLURL]
<form name="form">
- <button name="Keep" text="Behalten"/>
<button name="Show" text="Anzeigen"/>
<button name="Discard" text="Verwerfen"/>
+ <button name="Mute" text="Ignorieren"/>
</form>
</notification>
<notification name="GodMessage">
@@ -2306,6 +2300,9 @@ Versuchen Sie es in einigen Minuten erneut.
<button name="Cancel" text="Abbrechen"/>
</form>
</notification>
+ <notification name="TeleportOfferSent">
+ Ein Teleportangebot wurde an [TO_NAME] geschickt
+ </notification>
<notification name="GotoURL">
[MESSAGE]
[URL]
@@ -2323,8 +2320,12 @@ Versuchen Sie es in einigen Minuten erneut.
<form name="form">
<button name="Accept" text="Akzeptieren"/>
<button name="Decline" text="Ablehnen"/>
+ <button name="Send IM" text="IM senden"/>
</form>
</notification>
+ <notification name="FriendshipOffered">
+ Sie haben [TO_NAME] die Freundschaft angeboten.
+ </notification>
<notification name="OfferFriendshipNoMessage">
[NAME] bietet Ihnen die Freundschaft an.
@@ -2341,8 +2342,8 @@ Versuchen Sie es in einigen Minuten erneut.
[NAME] hat Ihr Freundschaftsangebot abgelehnt.
</notification>
<notification name="OfferCallingCard">
- [FIRST] [LAST] bietet Ihnen eine Visitenkarte an.
-Dies erstellt ein Lesezeichen in Ihrem Inventar, damit Sie diesen Einwohner jederzeit ÃŒber IM erreichen.
+ [FIRST] [LAST] bietet Ihnen ihre/seine Visitenkarte an.
+Ihrem Inventar wird ein Lesezeichen erstellt, damit Sie diesem Einwohner einfach eine IM schicken können.
<form name="form">
<button name="Accept" text="Akzeptieren"/>
<button name="Decline" text="Ablehnen"/>
@@ -2422,14 +2423,6 @@ Anfrage gestatten?
<button name="Block" text="Ignorieren"/>
</form>
</notification>
- <notification name="FirstBalanceIncrease">
- Sie haben gerade [AMOUNT] L$ erhalten.
-Ihr Kontostand wird oben rechts angezeigt.
- </notification>
- <notification name="FirstBalanceDecrease">
- Sie haben gerade [AMOUNT] L$ bezahlt.
-Ihr Kontostand wird oben rechts angezeigt.
- </notification>
<notification name="BuyLindenDollarSuccess">
Vielen Dank fÃŒr Ihre Zahlung.
@@ -2437,58 +2430,17 @@ Ihr L$-Kontostand wird aktualisiert, sobald die Bearbeitung abgeschlossen ist. F
Der Zahlungsstatus kann auf Ihrer [http://secondlife.com/account/ Startseite] unter TransaktionsÃŒbersicht ÃŒberprÃŒft werden.
</notification>
- <notification name="FirstSit">
- Sie sitzen.
-Verwenden Sie die Pfeiltasten (oder AWSD-Tasten), um sich umzusehen.
-Um aufzustehen, klicken Sie auf die SchaltflÀche „Aufstehen“.
- </notification>
- <notification name="FirstMap">
- Klicken Sie auf die Karte und bewegen Sie die Maus, um sich auf der Karte umzusehen.
-Zum Teleportieren doppelklicken.
-Nutzen Sie die Optionen rechts, um Objekte, Einwohner oder Events anzuzeigen und einen anderen Hintergrund auszuwÀhlen.
- </notification>
- <notification name="FirstBuild">
- Sie haben die Bauwerkzeuge geöffnet. Jedes Objekt, dass Sie sehen wurde mit diesen Werkzeugen gebaut.
- </notification>
- <notification name="FirstTeleport">
- Sie können nur zu bestimmten Bereichen in dieser Region teleportieren. Der Pfeil deutet zu Ihrem Ziel hin. Klicken Sie auf den Pfeil, um diesen auszublenden.
- </notification>
<notification name="FirstOverrideKeys">
Ihre Bewegungstasten werden jetzt von einem Objekt gesteuert.
Probieren Sie die Pfeil- oder WASD-Tasten aus.
Manche Objekte (wie Waffen) mÃŒssen per Mouselook gesteuert werden.
DrÃŒcken Sie dazu „M“.
</notification>
- <notification name="FirstAppearance">
- Sie bearbeiten gerade Ihr Aussehen.
-Verwenden Sie die Pfeiltasten, um sich umzusehen.
-Klicken Sie auf „Alles speichern“, wenn Sie fertig sind.
- </notification>
- <notification name="FirstInventory">
- Dies ist Ihr Inventar. Es enthÀlt Objekte, die Ihnen gehören.
-
-* Um etwas anzuziehen, ziehen Sie es mit der Maus auf Ihren Avatar.
-* Um etwas inworld zu rezzen, ziehen Sie das Objekt auf den Boden.
-* Zum Lesen einer Notizkarte klicken Sie sie doppelt an.
- </notification>
<notification name="FirstSandbox">
Dies ist ein Sandkasten. Hier können Einwohner lernen, wie Objekte gebaut werden.
Objekte, die Sie hier bauen, werden gelöscht, nachdem Sie den Sandkasten verlassen. Vergessen Sie nicht, Ihr Werk mit einem Rechtsklick und der Auswahl „Nehmen“ in Ihrem Inventar zu speichern.
</notification>
- <notification name="FirstFlexible">
- Dieses Objekt ist flexibel. Flexible Objekte mÃŒssen die Eigenschaft „Phantom“ haben und dÃŒrfen nicht „physisch“ sein.
- </notification>
- <notification name="FirstDebugMenus">
- Sie haben das MenÃŒ „Erweitert“ geöffnet.
-
-Um dieses MenÌ zu aktivieren bzw. deaktivieren:
- Windows Strg+Alt+D
- Mac &#8997;&#8984;D
- </notification>
- <notification name="FirstSculptedPrim">
- Sie bearbeiten ein geformtes Primitiv. Geformte Primitive benötigen eine spezielle Textur, die ihre Form definiert.
- </notification>
<notification name="MaxListSelectMessage">
Sie können maximal [MAX_SELECT] Objekte
von der Liste auswÀhlen.
@@ -2583,12 +2535,23 @@ Klicken Sie auf &apos;Akzeptieren &apos;, um dem Chat beizutreten, oder auf &a
<notification name="UnsupportedCommandSLURL">
Die SLurl, auf die Sie geklickt haben, wird nicht unterstÃŒtzt.
</notification>
+ <notification name="BlockedSLURL">
+ Ein untrusted Browser hat eine SLurl geschickt, diese wurde sicherheitshalber gesperrt.
+ </notification>
+ <notification name="ThrottledSLURL">
+ Innerhalb kurzer Zeit wurden von einem untrusted Browser mehrere SLurls erhalten.
+Diese werden fÃŒr ein paar Sekunden sicherheitshalber gesperrt.
+ </notification>
<notification name="IMToast">
[MESSAGE]
<form name="form">
<button name="respondbutton" text="Antworten"/>
</form>
</notification>
+ <notification name="ConfirmCloseAll">
+ Möchten Sie wirklich alle IMs schließen?
+ <usetemplate name="okcancelignore" notext="Abbrechen" yestext="OK"/>
+ </notification>
<notification name="AttachmentSaved">
Der Anhang wurde gespeichert.
</notification>
@@ -2600,8 +2563,16 @@ Klicken Sie auf &apos;Akzeptieren &apos;, um dem Chat beizutreten, oder auf &a
&apos;[ERROR]&apos;
<usetemplate name="okbutton" yestext="OK"/>
</notification>
+ <notification name="TextChatIsMutedByModerator">
+ Sie wurden vom Moderator stummgeschaltet.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="VoiceIsMutedByModerator">
+ Sie wurden vom Moderator stummgeschaltet.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
<notification name="ConfirmClearTeleportHistory">
- Möchten Sie Ihren Teleport-Verlauf löschen?
+ Möchten Sie Ihre Teleport-Liste löschen?
<usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
</notification>
<notification name="BottomTrayButtonCanNotBeShown">
diff --git a/indra/newview/skins/default/xui/de/panel_active_object_row.xml b/indra/newview/skins/default/xui/de/panel_active_object_row.xml
new file mode 100644
index 0000000000..00de705a30
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/panel_active_object_row.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="panel_activeim_row">
+ <string name="unknown_obj">
+ Unbekanntes Objekt
+ </string>
+ <text name="object_name">
+ Unbenanntes Objekt
+ </text>
+</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_adhoc_control_panel.xml b/indra/newview/skins/default/xui/de/panel_adhoc_control_panel.xml
index 6109d8b0ea..6ad18781f5 100644
--- a/indra/newview/skins/default/xui/de/panel_adhoc_control_panel.xml
+++ b/indra/newview/skins/default/xui/de/panel_adhoc_control_panel.xml
@@ -1,8 +1,14 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_im_control_panel">
- <panel name="panel_call_buttons">
- <button label="Anrufen" name="call_btn"/>
- <button label="Anruf beenden" name="end_call_btn"/>
- <button label="Voice-Steuerung" name="voice_ctrls_btn"/>
- </panel>
+ <layout_stack name="vertical_stack">
+ <layout_panel name="call_btn_panel">
+ <button label="Anrufen" name="call_btn"/>
+ </layout_panel>
+ <layout_panel name="end_call_btn_panel">
+ <button label="Anruf beenden" name="end_call_btn"/>
+ </layout_panel>
+ <layout_panel name="voice_ctrls_btn_panel">
+ <button label="Voice-Steuerung" name="voice_ctrls_btn"/>
+ </layout_panel>
+ </layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_avatar_list_item.xml b/indra/newview/skins/default/xui/de/panel_avatar_list_item.xml
index ae5c1ec424..0715175dd9 100644
--- a/indra/newview/skins/default/xui/de/panel_avatar_list_item.xml
+++ b/indra/newview/skins/default/xui/de/panel_avatar_list_item.xml
@@ -23,4 +23,5 @@
</string>
<text name="avatar_name" value="Unbekannt"/>
<text name="last_interaction" value="0s"/>
+ <button name="profile_btn" tool_tip="Profil anzeigen"/>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_block_list_sidetray.xml b/indra/newview/skins/default/xui/de/panel_block_list_sidetray.xml
index 462009746b..eb4832770e 100644
--- a/indra/newview/skins/default/xui/de/panel_block_list_sidetray.xml
+++ b/indra/newview/skins/default/xui/de/panel_block_list_sidetray.xml
@@ -4,7 +4,7 @@
Liste der ignorierten Einwohner
</text>
<scroll_list name="blocked" tool_tip="Liste der zur Zeit ignorierten Einwohner"/>
- <button label="Einwohner ignorieren..." label_selected="Einwohner ignorieren..." name="Block resident..." tool_tip="WÀhlen Sie einen Einwohner, um ihn zu ignorieren"/>
- <button label="Objekt nach Name ignorieren..." label_selected="Objekt nach Name ignorieren..." name="Block object by name..." tool_tip="Ein Objekt auswÀhlen, um nach Namen zu ignorieren."/>
+ <button label="Einwohner ignorieren" label_selected="Einwohner ignorieren..." name="Block resident..." tool_tip="WÀhlen Sie einen Einwohner, um ihn zu ignorieren"/>
+ <button label="Objekt nach Name ignorieren" label_selected="Objekt nach Name ignorieren..." name="Block object by name..." tool_tip="Ein Objekt auswÀhlen, um nach Namen zu ignorieren."/>
<button label="Freischalten" label_selected="Freischalten" name="Unblock" tool_tip="Einwohner oder Objekt von der Liste der ignorierten Einwohner oder Objekte entfernen"/>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_bottomtray.xml b/indra/newview/skins/default/xui/de/panel_bottomtray.xml
index 11dd99a1d4..7a627e32c8 100644
--- a/indra/newview/skins/default/xui/de/panel_bottomtray.xml
+++ b/indra/newview/skins/default/xui/de/panel_bottomtray.xml
@@ -8,7 +8,7 @@
</string>
<layout_stack name="toolbar_stack">
<layout_panel name="gesture_panel">
- <gesture_combo_box label="Gesten" name="Gesture" tool_tip="Gesten anzeigen/ausblenden"/>
+ <gesture_combo_list label="Gesten" name="Gesture" tool_tip="Gesten anzeigen/ausblenden"/>
</layout_panel>
<layout_panel name="movement_panel">
<button label="Bewegen" name="movement_btn" tool_tip="Bewegungssteuerung anzeigen/ausblenden"/>
@@ -19,5 +19,15 @@
<layout_panel name="snapshot_panel">
<button label="" name="snapshots" tool_tip="Foto machen"/>
</layout_panel>
+ <layout_panel name="im_well_panel">
+ <chiclet_im_well name="im_well">
+ <button name="Unread IM messages" tool_tip="IMs"/>
+ </chiclet_im_well>
+ </layout_panel>
+ <layout_panel name="notification_well_panel">
+ <chiclet_notification name="notification_well">
+ <button name="Unread" tool_tip="Benachrichtigungen"/>
+ </chiclet_notification>
+ </layout_panel>
</layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_edit_classified.xml b/indra/newview/skins/default/xui/de/panel_edit_classified.xml
index ca357abda3..a9b5da163f 100644
--- a/indra/newview/skins/default/xui/de/panel_edit_classified.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_classified.xml
@@ -24,10 +24,10 @@
<button label="Auf aktuelle Position einstellen" name="set_to_curr_location_btn"/>
<combo_box name="content_type">
<combo_item name="mature_ci">
- Mature-Inhalt
+ Moderater Inhalt
</combo_item>
<combo_item name="pg_ci">
- PG-Inhalt
+ Allgemeiner Inhalt
</combo_item>
</combo_box>
<spinner label="L$" name="price_for_listing" tool_tip="Preis fÃŒr Anzeige." value="50"/>
diff --git a/indra/newview/skins/default/xui/de/panel_edit_profile.xml b/indra/newview/skins/default/xui/de/panel_edit_profile.xml
index 811ca118d6..f643115dbe 100644
--- a/indra/newview/skins/default/xui/de/panel_edit_profile.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_profile.xml
@@ -19,6 +19,9 @@
<string name="partner_edit_link_url">
http://www.secondlife.com/account/partners.php?lang=de
</string>
+ <string name="my_account_link_url">
+ http://de.secondlife.com/my
+ </string>
<string name="no_partner_text" value="Keiner"/>
<scroll_container name="profile_scroll">
<panel name="scroll_content_panel">
@@ -44,7 +47,7 @@
<text name="title_partner_text" value="Mein Partner:"/>
<text name="partner_edit_link" value="[[URL] bearbeiten]"/>
<panel name="partner_data_panel">
- <text name="partner_text" value="[FIRST] [LAST]"/>
+ <name_box name="partner_text" value="[FIRST] [LAST]"/>
</panel>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_friends.xml b/indra/newview/skins/default/xui/de/panel_friends.xml
index bb2adb36fe..10c5954775 100644
--- a/indra/newview/skins/default/xui/de/panel_friends.xml
+++ b/indra/newview/skins/default/xui/de/panel_friends.xml
@@ -1,41 +1,31 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="friends">
<string name="Multiple">
- Mehrere Freunde...
+ Mehrere Freunde
</string>
- <scroll_list name="friend_list"
- tool_tip="Halten Sie die Tasten „Umschalt“ oder „Strg“ gedrÃŒckt, um durch Klicken mehrere Freunde auszuwÀhlen.">
- <column name="icon_online_status" tool_tip="Online-Status" />
- <column label="Name" name="friend_name" tool_tip="Name" />
- <column name="icon_visible_online" tool_tip="Freund kann sehen, wenn Sie online sind" />
- <column name="icon_visible_map" tool_tip="Freund kann Sie auf der Karte finden" />
- <column name="icon_edit_mine"
- tool_tip="Freunde können Objekte bearbeiten, löschen und an sich nehmen" />
- <column name="icon_edit_theirs"
- tool_tip="Sie können die Objekte dieses Freunds bearbeiten" />
+ <scroll_list name="friend_list" tool_tip="Halten Sie die Tasten „Umschalt“ oder „Strg“ gedrÃŒckt, um durch Klicken mehrere Freunde auszuwÀhlen.">
+ <column name="icon_online_status" tool_tip="Online-Status"/>
+ <column label="Name" name="friend_name" tool_tip="Name"/>
+ <column name="icon_visible_online" tool_tip="Freund kann sehen, wenn Sie online sind"/>
+ <column name="icon_visible_map" tool_tip="Freund kann Sie auf der Karte finden"/>
+ <column name="icon_edit_mine" tool_tip="Freunde können Objekte bearbeiten, löschen und an sich nehmen"/>
+ <column name="icon_edit_theirs" tool_tip="Sie können die Objekte dieses Freunds bearbeiten"/>
</scroll_list>
<panel name="rights_container">
<text name="friend_name_label">
WÀhlen Sie den/die Freund(e) aus, dessen/deren Rechte Sie Àndern möchten...
</text>
- <check_box label="Kann meinen Online-Status sehen" name="online_status_cb"
- tool_tip="Festlegen, ob dieser Freund meinen Online-Status auf seiner Freundesliste oder Visitenkarte einsehen kann" />
- <check_box label="Kann mich auf der Weltkarte sehen" name="map_status_cb"
- tool_tip="Festlegen, ob dieser Freund auf seiner Karte meinen Standort sehen kann" />
- <check_box label="Kann meine Objekte verÀndern" name="modify_status_cb"
- tool_tip="Festlegen, ob dieser Freund meine Objekte verÀndern kann" />
+ <check_box label="Kann meinen Online-Status sehen" name="online_status_cb" tool_tip="Festlegen, ob dieser Freund meinen Online-Status auf seiner Freundesliste oder Visitenkarte einsehen kann"/>
+ <check_box label="Kann mich auf der Weltkarte sehen" name="map_status_cb" tool_tip="Festlegen, ob dieser Freund auf seiner Karte meinen Standort sehen kann"/>
+ <check_box label="Kann meine Objekte verÀndern" name="modify_status_cb" tool_tip="Festlegen, ob dieser Freund meine Objekte verÀndern kann"/>
<text name="process_rights_label">
Rechte werden geÀndert...
</text>
</panel>
- <button label="IM/Anruf" name="im_btn" tool_tip="Beginnt eine Instant Message-Sitzung" />
- <button label="Profil" name="profile_btn"
- tool_tip="Bilder, Gruppen und andere Informationen anzeigen" />
- <button label="Teleport" name="offer_teleport_btn"
- tool_tip="Bieten Sie diesem Freund einen Teleport an Ihre Position an" />
- <button label="Zahlen" name="pay_btn" tool_tip="Diesem Freund Linden-Dollar (L$) geben" />
- <button label="Entfernen" name="remove_btn"
- tool_tip="Diese Person von Ihrer Freundesliste entfernen" />
- <button label="HinzufÃŒgen" name="add_btn"
- tool_tip="Bieten Sie einem Einwohner die Freundschaft an" />
+ <button label="IM/Anruf" name="im_btn" tool_tip="Beginnt eine Instant Message-Sitzung"/>
+ <button label="Profil" name="profile_btn" tool_tip="Bilder, Gruppen und andere Informationen anzeigen"/>
+ <button label="Teleportieren" name="offer_teleport_btn" tool_tip="Bieten Sie diesem Freund einen Teleport an Ihre Position an"/>
+ <button label="Zahlen" name="pay_btn" tool_tip="Diesem Freund Linden-Dollar (L$) geben"/>
+ <button label="Entfernen" name="remove_btn" tool_tip="Diese Person von Ihrer Freundesliste entfernen"/>
+ <button label="HinzufÃŒgen" name="add_btn" tool_tip="Bieten Sie einem Einwohner die Freundschaft an"/>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_group_control_panel.xml b/indra/newview/skins/default/xui/de/panel_group_control_panel.xml
index 6a7546457f..9cb72fafff 100644
--- a/indra/newview/skins/default/xui/de/panel_group_control_panel.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_control_panel.xml
@@ -1,9 +1,17 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_im_control_panel">
- <button label="Gruppeninfo" name="group_info_btn"/>
- <panel name="panel_call_buttons">
- <button label="Gruppe anrufen" name="call_btn"/>
- <button label="Anruf beenden" name="end_call_btn"/>
- <button label="Voice-Steuerung öffnen" name="voice_ctrls_btn"/>
- </panel>
+ <layout_stack name="vertical_stack">
+ <layout_panel name="group_info_btn_panel">
+ <button label="Gruppenprofil" name="group_info_btn"/>
+ </layout_panel>
+ <layout_panel name="call_btn_panel">
+ <button label="Gruppe anrufen" name="call_btn"/>
+ </layout_panel>
+ <layout_panel name="end_call_btn_panel">
+ <button label="Anruf beenden" name="end_call_btn"/>
+ </layout_panel>
+ <layout_panel name="voice_ctrls_btn_panel">
+ <button label="Voice-Steuerung öffnen" name="voice_ctrls_btn"/>
+ </layout_panel>
+ </layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_group_general.xml b/indra/newview/skins/default/xui/de/panel_group_general.xml
index e6abd4349d..8904193f18 100644
--- a/indra/newview/skins/default/xui/de/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_general.xml
@@ -22,16 +22,16 @@ Bewegen Sie die Maus ÃŒber die Optionen, um weitere Informationen anzuzeigen.
Mein Titel
</text>
<combo_box name="active_title" tool_tip="Legt fest, was im Namensschild Ihres Avatars angezeigt wird, wenn diese Gruppe aktiviert ist."/>
- <check_box label="Notizen erhalten" name="receive_notices" tool_tip="Festlegen, ob Sie von dieser Gruppe Mitteilungen erhalten können. Deaktivieren Sie diese Option, wenn Sie von der Gruppe Spam erhalten."/>
+ <check_box label="Gruppenmitteilungen erhalten" name="receive_notices" tool_tip="Festlegen, ob Sie von dieser Gruppe Mitteilungen erhalten können. Deaktivieren Sie diese Option, wenn Sie von der Gruppe Spam erhalten."/>
<check_box label="In meinem Profil anzeigen" name="list_groups_in_profile" tool_tip="Steuert, ob diese Gruppe in Ihrem Profil angezeigt wird"/>
<panel name="preferences_container">
<check_box label="Registrierung offen" name="open_enrollement" tool_tip="Festlegen, ob der Gruppenbeitritt ohne Einladung zulÀssig ist."/>
<check_box label="BeitrittsgebÃŒhr" name="check_enrollment_fee" tool_tip="Festlegen, ob Neumitglieder eine BeitrittsgebÃŒhr zahlen mÃŒssen"/>
<spinner label="L$" name="spin_enrollment_fee" tool_tip="Wenn BeitrittsgebÃŒhr aktiviert ist, mÃŒssen neue Mitglieder diesen Betrag zahlen."/>
<check_box initial_value="true" label="In Suche anzeigen" name="show_in_group_list" tool_tip="Diese Gruppe in Suchergebnissen anzeigen"/>
- <combo_box name="group_mature_check" tool_tip="Festlegen, ob die Informationen Ihrer Gruppe „Moderat“ sind">
- <combo_box.item label="PG-Inhalt" name="pg"/>
- <combo_box.item label="Mature-Inhalt" name="mature"/>
+ <combo_box name="group_mature_check" tool_tip="Legt fest, ob Ihre Gruppeninformation moderate Inhalte enthÀlt">
+ <combo_box.item label="Allgemeiner Inhalt" name="pg"/>
+ <combo_box.item label="Moderater Inhalt" name="mature"/>
</combo_box>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/de/panel_group_info_sidetray.xml
index 71a0adcdfb..f70291c922 100644
--- a/indra/newview/skins/default/xui/de/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_info_sidetray.xml
@@ -31,6 +31,8 @@
</accordion>
<panel name="button_row">
<button label="Erstellen" label_selected="Neue Gruppe" name="btn_create"/>
+ <button label="Gruppen-Chat" name="btn_chat"/>
+ <button label="Gruppe anrufen" name="btn_call"/>
<button label="Speichern" label_selected="Speichern" name="btn_apply"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_group_invite.xml b/indra/newview/skins/default/xui/de/panel_group_invite.xml
index 0712722cb3..8e1fb5e4b2 100644
--- a/indra/newview/skins/default/xui/de/panel_group_invite.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_invite.xml
@@ -7,15 +7,13 @@
(wird geladen...)
</panel.string>
<panel.string name="already_in_group">
- Einige Avatare sind bereits Mitglied und wurden nicht eingeladen.
+ Einige der ausgewÀhlten Einwohner sind bereits Gruppenmitglieder und haben aus diesem Grund keine Einladung erhalten.
</panel.string>
<text name="help_text">
- Sie können mehrere Einwohner in Ihre
-Gruppe einladen. Klicken Sie hierzu
-auf „Einwohnerliste öffnen“.
+ Sie können mehrere Einwohner auswÀhlen, um diese in Ihre Gruppe einzuladen. Klicken Sie hierzu auf „Einwohnerliste öffnen“.
</text>
<button label="Einwohnerliste öffnen" name="add_button" tool_tip=""/>
- <name_list name="invitee_list" tool_tip="Halten Sie zur Mehrfachauswahl die Strg-Taste gedrÃŒckt und klicken Sie auf die Einwohnernamen."/>
+ <name_list name="invitee_list" tool_tip="Halten Sie zur Mehrfachauswahl die Strg-Taste gedrÃŒckt und klicken Sie auf die Namen."/>
<button label="Auswahl aus Liste löschen" name="remove_button" tool_tip="Die oben ausgewÀhlten Einwohner von der Einladungsliste entfernen."/>
<text name="role_text">
WÀhlen Sie eine Rolle aus:
diff --git a/indra/newview/skins/default/xui/de/panel_group_list_item.xml b/indra/newview/skins/default/xui/de/panel_group_list_item.xml
index 1b37c35ea5..d097a2b18c 100644
--- a/indra/newview/skins/default/xui/de/panel_group_list_item.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_list_item.xml
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="group_list_item">
<text name="group_name" value="Unbekannt"/>
+ <button name="profile_btn" tool_tip="Profil anzeigen"/>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_group_notices.xml b/indra/newview/skins/default/xui/de/panel_group_notices.xml
index 6d0fd9eefb..d2ba40ae2c 100644
--- a/indra/newview/skins/default/xui/de/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_notices.xml
@@ -1,11 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Mitteilungen" name="notices_tab">
<panel.string name="help_text">
- Mit Mitteilungen können Sie eine Nachricht und
-Objekte im Anhang versenden. Mitteilungen werden
-nur an Mitglieder mit einer entsprechenden Rolle
-gesendet. Mitteilungen können unter
- &apos;Allgemein &apos; ausgeschaltet werden.
+ Mit Mitteilungen können Sie eine Nachricht und auch einen Anhang versenden.
+Mitteilungen werden nur an Gruppenmitglieder verschickt, deren Rolle es zulÀsst, dass sie Mitteilungen empfangen.
+Sie können auf der Registerkarte „Allgemein“ wÀhlen, ob Sie Mitteilungen empfangen möchten.
</panel.string>
<panel.string name="no_notices_text">
Keine Àlteren Mitteilungen.
@@ -24,7 +22,7 @@ Maximal 200 pro Gruppe tÀglich
Nicht gefunden.
</text>
<button label="Neue Mitteilung erstellen" label_selected="Neue Mitteilung" name="create_new_notice" tool_tip="Neue Mitteilung erstellen"/>
- <button label="Aktualisieren" label_selected="Liste aktualisieren" name="refresh_notices"/>
+ <button label="Aktualisieren" label_selected="Liste aktualisieren" name="refresh_notices" tool_tip="Mitteilungsliste aktualisieren"/>
<panel label="Neue Mitteilung" name="panel_create_new_notice">
<text name="lbl">
Mitteilung schreiben
@@ -39,11 +37,11 @@ Maximal 200 pro Gruppe tÀglich
AnhÀngen:
</text>
<text name="string">
- Hierhin ziehen, um etwas anzuhÀngen -- &gt;
+ Das Objekt hierin ziehen und ablegen, um es anzuhÀngen:
</text>
<button label="Entfernen" label_selected="Anhang entfernen" name="remove_attachment"/>
<button label="Senden" label_selected="Senden" name="send_notice"/>
- <group_drop_target name="drop_target" tool_tip="Drag an inventory item onto the message box to send it with the notice. You must have permission to copy and transfer the object to send it with the notice."/>
+ <group_drop_target name="drop_target" tool_tip="Ziehen Sie ein Objekt aus Ihrem Inventar auf dieses Feld, um es mit dieser Mitteilung zu versenden. Um das Objekt anhÀngen zu können, mÃŒssen Sie die Erlaubnis zum Kopieren und Übertragen besitzen."/>
</panel>
<panel label="Ältere Notiz anzeigen" name="panel_view_past_notice">
<text name="lbl">
diff --git a/indra/newview/skins/default/xui/de/panel_im_control_panel.xml b/indra/newview/skins/default/xui/de/panel_im_control_panel.xml
index d91c7c0dcf..8132f769cb 100644
--- a/indra/newview/skins/default/xui/de/panel_im_control_panel.xml
+++ b/indra/newview/skins/default/xui/de/panel_im_control_panel.xml
@@ -1,13 +1,27 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_im_control_panel">
<text name="avatar_name" value="Unbekannt"/>
- <button label="Profil" name="view_profile_btn"/>
- <button label="Freund hinzufÃŒgen" name="add_friend_btn"/>
- <button label="Teleportieren" name="teleport_btn"/>
- <button label="Teilen" name="share_btn"/>
- <panel name="panel_call_buttons">
- <button label="Anrufen" name="call_btn"/>
- <button label="Anruf beenden" name="end_call_btn"/>
- <button label="Voice-Steuerung" name="voice_ctrls_btn"/>
- </panel>
+ <layout_stack name="button_stack">
+ <layout_panel name="view_profile_btn_panel">
+ <button label="Profil" name="view_profile_btn"/>
+ </layout_panel>
+ <layout_panel name="add_friend_btn_panel">
+ <button label="Freund hinzufÃŒgen" name="add_friend_btn"/>
+ </layout_panel>
+ <layout_panel name="teleport_btn_panel">
+ <button label="Teleportieren" name="teleport_btn"/>
+ </layout_panel>
+ <layout_panel name="share_btn_panel">
+ <button label="Teilen" name="share_btn"/>
+ </layout_panel>
+ <layout_panel name="call_btn_panel">
+ <button label="Anrufen" name="call_btn"/>
+ </layout_panel>
+ <layout_panel name="end_call_btn_panel">
+ <button label="Anruf beenden" name="end_call_btn"/>
+ </layout_panel>
+ <layout_panel name="voice_ctrls_btn_panel">
+ <button label="Voice-Steuerung" name="voice_ctrls_btn"/>
+ </layout_panel>
+ </layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_landmark_info.xml b/indra/newview/skins/default/xui/de/panel_landmark_info.xml
index 1a68c9b351..9cef7b6d35 100644
--- a/indra/newview/skins/default/xui/de/panel_landmark_info.xml
+++ b/indra/newview/skins/default/xui/de/panel_landmark_info.xml
@@ -21,6 +21,7 @@
<string name="icon_PG" value="parcel_drk_PG"/>
<string name="icon_M" value="parcel_drk_M"/>
<string name="icon_R" value="parcel_drk_R"/>
+ <button name="back_btn" tool_tip="Hinten"/>
<text name="title" value="Ortsprofil"/>
<scroll_container name="place_scroll">
<panel name="scrolling_panel">
diff --git a/indra/newview/skins/default/xui/de/panel_login.xml b/indra/newview/skins/default/xui/de/panel_login.xml
index 62973be4cb..bd82fc6872 100644
--- a/indra/newview/skins/default/xui/de/panel_login.xml
+++ b/indra/newview/skins/default/xui/de/panel_login.xml
@@ -6,36 +6,40 @@
<panel.string name="forgot_password_url">
http://secondlife.com/account/request.php?lang=de
</panel.string>
- <panel name="login_widgets">
- <text name="first_name_text">
- Vorname:
- </text>
- <line_editor name="first_name_edit" tool_tip="[SECOND_LIFE] Vorname"/>
- <text name="last_name_text">
- Nachname:
- </text>
- <line_editor name="last_name_edit" tool_tip="[SECOND_LIFE] Nachname"/>
- <text name="password_text">
- Kennwort:
- </text>
- <button label="Login" label_selected="Login" name="connect_btn"/>
- <text name="start_location_text">
- Startposition:
- </text>
- <combo_box name="start_location_combo">
- <combo_box.item label="Mein letzter Standort" name="MyLastLocation"/>
- <combo_box.item label="Mein Zuhause" name="MyHome"/>
- <combo_box.item label="&lt;Region eingeben&gt;" name="Typeregionname"/>
- </combo_box>
- <check_box label="Kennwort merken" name="remember_check"/>
- <text name="create_new_account_text">
- Neues Konto erstellen
- </text>
- <text name="forgot_password_text">
- Namen oder Kennwort vergessen?
- </text>
- <text name="channel_text">
- [VERSION]
- </text>
- </panel>
+ <layout_stack name="login_widgets">
+ <layout_panel name="login">
+ <text name="first_name_text">
+ Vorname:
+ </text>
+ <line_editor label="Vorname" name="first_name_edit" tool_tip="[SECOND_LIFE] Vorname"/>
+ <text name="last_name_text">
+ Nachname:
+ </text>
+ <line_editor label="Nachname" name="last_name_edit" tool_tip="[SECOND_LIFE] Nachname"/>
+ <text name="password_text">
+ Kennwort:
+ </text>
+ <check_box label="Kennwort merken" name="remember_check"/>
+ <text name="start_location_text">
+ Hier anfangen:
+ </text>
+ <combo_box name="start_location_combo">
+ <combo_box.item label="Mein letzter Standort" name="MyLastLocation"/>
+ <combo_box.item label="Mein Zuhause" name="MyHome"/>
+ <combo_box.item label="&lt;Region eingeben&gt;" name="Typeregionname"/>
+ </combo_box>
+ <button label="Anmelden" name="connect_btn"/>
+ </layout_panel>
+ <layout_panel name="links">
+ <text name="create_new_account_text">
+ Registrieren
+ </text>
+ <text name="forgot_password_text">
+ Namen oder Kennwort vergessen?
+ </text>
+ <text name="login_help">
+ Sie brauchen Hilfe?
+ </text>
+ </layout_panel>
+ </layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_main_inventory.xml b/indra/newview/skins/default/xui/de/panel_main_inventory.xml
index 3d1b89ff40..aa0b43b550 100644
--- a/indra/newview/skins/default/xui/de/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/de/panel_main_inventory.xml
@@ -3,10 +3,10 @@
<panel.string name="Title">
Sonstiges
</panel.string>
- <filter_editor label="Filter" name="inventory search editor"/>
+ <filter_editor label="Inventar filtern" name="inventory search editor"/>
<tab_container name="inventory filter tabs">
- <inventory_panel label="Alle Objekte" name="All Items"/>
- <inventory_panel label="Letzte Objekte" name="Recent Items"/>
+ <inventory_panel label="MEIN INVENTAR" name="All Items"/>
+ <inventory_panel label="AKTUELL" name="Recent Items"/>
</tab_container>
<panel name="bottom_panel">
<button name="options_gear_btn" tool_tip="ZusÀtzliche Optionen anzeigen"/>
@@ -29,10 +29,10 @@
<menu_item_call label="Papierkorb ausleeren" name="Empty Trash"/>
<menu_item_call label="FundstÃŒcke ausleeren" name="Empty Lost And Found"/>
</menu>
- <menu label="Bauen" name="Create">
+ <menu label="Erstellen" name="Create">
<menu_item_call label="Neuer Ordner" name="New Folder"/>
<menu_item_call label="Neues Skript" name="New Script"/>
- <menu_item_call label="Neue Notiz" name="New Note"/>
+ <menu_item_call label="Neue Notizkarte" name="New Note"/>
<menu_item_call label="Neue Geste" name="New Gesture"/>
<menu label="Neue Kleider" name="New Clothes">
<menu_item_call label="Neues Hemd" name="New Shirt"/>
diff --git a/indra/newview/skins/default/xui/de/panel_media_settings_general.xml b/indra/newview/skins/default/xui/de/panel_media_settings_general.xml
index b657333439..75c9057571 100644
--- a/indra/newview/skins/default/xui/de/panel_media_settings_general.xml
+++ b/indra/newview/skins/default/xui/de/panel_media_settings_general.xml
@@ -1,19 +1,19 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Allgemein" name="Media Settings General">
<text name="home_label">
- Home-URL:
+ Homepage:
</text>
<text name="home_fails_whitelist_label">
- (Diese URL befindet sich nicht auf der festgelegten Whitelist)
+ (Diese Seite wird von der angegebenen Whiteliste nicht zugelassen)
</text>
- <line_editor name="home_url" tool_tip="Die Home-URL fÃŒr diese Medienquelle"/>
+ <line_editor name="home_url" tool_tip="Die Start-URL fÃŒr diese Medienquelle"/>
<text name="preview_label">
Vorschau
</text>
<text name="current_url_label">
- Derzeitige URL:
+ Aktuelle Seite:
</text>
- <text name="current_url" tool_tip="Die derzeitige URL fÃŒr diese Medienquelle" value=""/>
+ <text name="current_url" tool_tip="Die aktuelle Seite fÃŒr diese Medienquelle" value=""/>
<button label="ZurÃŒcksetzen" name="current_url_reset_btn"/>
<check_box initial_value="false" label="Automatisch wiederholen" name="auto_loop"/>
<check_box initial_value="false" label="Interaktion beim ersten Anklicken" name="first_click_interact"/>
diff --git a/indra/newview/skins/default/xui/de/panel_media_settings_permissions.xml b/indra/newview/skins/default/xui/de/panel_media_settings_permissions.xml
index 603fb67fd2..7ee0074a3b 100644
--- a/indra/newview/skins/default/xui/de/panel_media_settings_permissions.xml
+++ b/indra/newview/skins/default/xui/de/panel_media_settings_permissions.xml
@@ -1,9 +1,20 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Steuerung" name="Media settings for controls">
- <check_box initial_value="false" label="Navigation &amp; InteraktivitÀt deaktivieren" name="perms_owner_interact"/>
- <check_box initial_value="false" label="Kontrollleiste verstecken" name="perms_owner_control"/>
- <check_box initial_value="false" label="Navigation &amp; InteraktivitÀt deaktivieren" name="perms_group_interact"/>
- <check_box initial_value="false" label="Kontrollleiste verstecken" name="perms_group_control"/>
- <check_box initial_value="false" label="Navigation &amp; InteraktivitÀt deaktivieren" name="perms_anyone_interact"/>
- <check_box initial_value="false" label="Kontrollleiste verstecken" name="perms_anyone_control"/>
+<panel label="Anpassen" name="Media settings for controls">
+ <text name="controls_label">
+ Steuerung:
+ </text>
+ <combo_box name="controls">
+ <combo_item name="Standard">
+ Standard
+ </combo_item>
+ <combo_item name="Mini">
+ Mini
+ </combo_item>
+ </combo_box>
+ <check_box initial_value="false" label="Naviation &amp; Interaktion zulassen" name="perms_owner_interact"/>
+ <check_box initial_value="false" label="Steuerungsleiste anzeigen" name="perms_owner_control"/>
+ <check_box initial_value="false" label="Naviation &amp; Interaktion zulassen" name="perms_group_interact"/>
+ <check_box initial_value="false" label="Steuerungsleiste anzeigen" name="perms_group_control"/>
+ <check_box initial_value="false" label="Naviation &amp; Interaktion zulassen" name="perms_anyone_interact"/>
+ <check_box initial_value="false" label="Steuerungsleiste anzeigen" name="perms_anyone_control"/>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_media_settings_security.xml b/indra/newview/skins/default/xui/de/panel_media_settings_security.xml
index d94d8b9375..8ff013f66b 100644
--- a/indra/newview/skins/default/xui/de/panel_media_settings_security.xml
+++ b/indra/newview/skins/default/xui/de/panel_media_settings_security.xml
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Sicherheit" name="Media Settings Security">
- <check_box initial_value="false" label="Zugang nur fÌr bestimmte URLs ermöglichen (mittels PrÀfix)" name="whitelist_enable"/>
+ <check_box initial_value="false" label="Nur Zugriff auf festgelegte URL-Muster zulassen" name="whitelist_enable"/>
<text name="home_url_fails_some_items_in_whitelist">
- EintrÀge, die auf ungÌltige Home-URLs hinweisen, sind markiert:
+ EintrÀge, die fÌr die Startseite nicht akzeptiert werden, sind markiert:
</text>
<button label="HinzufÃŒgen" name="whitelist_add"/>
<button label="Löschen" name="whitelist_del"/>
<text name="home_url_fails_whitelist">
- Warnung: Die Home-URL, die in der Registerkarte &quot;Allgemein&quot; angegeben wurde, entspricht nicht den EintrÀgen auf der Whitelist. Sie wurde deaktiviert, bis ein gÌltiger Eintrag angegeben wird.
+ Achtung: Die auf der Registerkarte Allgemein festgelegte Startseite wird von der Whitelist nicht akzeptiert. Sie wurde deaktiviert bis ein gÃŒltiger Eintrag hinzugefÃŒgt wurde.
</text>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_my_profile.xml b/indra/newview/skins/default/xui/de/panel_my_profile.xml
index 8357e4318d..618ed88846 100644
--- a/indra/newview/skins/default/xui/de/panel_my_profile.xml
+++ b/indra/newview/skins/default/xui/de/panel_my_profile.xml
@@ -4,52 +4,44 @@
[ACCTTYPE]
[PAYMENTINFO] [AGEVERIFICATION]
</string>
+ <string name="payment_update_link_url">
+ http://www.secondlife.com/account/billing.php?lang=de-DE
+ </string>
+ <string name="partner_edit_link_url">
+ http://www.secondlife.com/account/partners.php?lang=de
+ </string>
+ <string name="my_account_link_url" value="http://secondlife.com/my/account/index.php?lang=de-DE"/>
<string name="no_partner_text" value="Keiner"/>
+ <string name="no_group_text" value="Keiner"/>
<string name="RegisterDateFormat">
[REG_DATE] ([AGE])
</string>
- <scroll_container name="profile_scroll">
- <panel name="scroll_content_panel">
- <panel name="second_life_image_panel">
- <icon label="" name="2nd_life_edit_icon" tool_tip="Klicken Sie unten auf die SchaltflÀche Profil bearbeiten, um das Bild zu Àndern."/>
- <text name="title_sl_descr_text" value="[SECOND_LIFE]:"/>
- <expandable_text name="sl_description_edit">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum.
- </expandable_text>
- </panel>
- <panel name="first_life_image_panel">
- <icon label="" name="real_world_edit_icon" tool_tip="Klicken Sie unten auf die SchaltflÀche Profil bearbeiten, um das Bild zu Àndern."/>
- <text name="title_rw_descr_text" value="Echtes Leben:"/>
- <expandable_text name="fl_description_edit">
- Lorem ipsum dolor sit amet, consectetur adlkjpiscing elit moose moose. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet. adipiscing elit. Aenean rigviverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet sorbet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum.
- </expandable_text>
- </panel>
- <text name="me_homepage_text">
- Webseite:
- </text>
- <text name="title_member_text" value="Mitglied seit:"/>
- <text name="register_date" value="05/31/1976"/>
- <text name="title_acc_status_text" value="Kontostatus:"/>
- <text name="acc_status_text" value="Einwohner. Keine Zahlungsinfo archiviert."/>
- <text name="title_partner_text" value="Partner:"/>
- <panel name="partner_data_panel">
- <text name="partner_text" value="[FIRST] [LAST]"/>
- </panel>
- <text name="title_groups_text" value="Gruppen:"/>
- <expandable_text name="sl_groups">
- Lorem ipsum dolor sit amet, consectetur adlkjpiscing elit moose moose. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet. adipiscing elit. Aenean rigviverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet sorbet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum.
- </expandable_text>
- </panel>
- </scroll_container>
- <panel name="profile_buttons_panel">
- <button label="Freund hinzufÃŒgen" name="add_friend"/>
- <button label="IM" name="im"/>
- <button label="Anrufen" name="call"/>
- <button label="Karte" name="show_on_map_btn"/>
- <button label="Teleportieren" name="teleport"/>
- </panel>
- <panel name="profile_me_buttons_panel">
- <button label="Profil bearbeiten" name="edit_profile_btn"/>
- <button label="Aussehen bearbeiten" name="edit_appearance_btn"/>
- </panel>
+ <layout_stack name="layout">
+ <layout_panel name="profile_stack">
+ <scroll_container name="profile_scroll">
+ <panel name="scroll_content_panel">
+ <panel name="second_life_image_panel">
+ <icon label="" name="2nd_life_edit_icon" tool_tip="Klicken Sie unten auf die SchaltflÀche Profil bearbeiten, um das Bild zu Àndern."/>
+ <text name="title_sl_descr_text" value="[SECOND_LIFE]:"/>
+ </panel>
+ <panel name="first_life_image_panel">
+ <icon label="" name="real_world_edit_icon" tool_tip="Klicken Sie unten auf die SchaltflÀche Profil bearbeiten, um das Bild zu Àndern."/>
+ <text name="title_rw_descr_text" value="Echtes Leben:"/>
+ </panel>
+ <text name="title_member_text" value="Einwohner seit:"/>
+ <text name="title_acc_status_text" value="Kontostatus:"/>
+ <text name="acc_status_text">
+ Einwohner. Keine Zahlungsinfo archiviert.
+ Linden.
+ </text>
+ <text name="title_partner_text" value="Partner:"/>
+ <text name="title_groups_text" value="Gruppen:"/>
+ </panel>
+ </scroll_container>
+ </layout_panel>
+ <layout_panel name="profile_me_buttons_panel">
+ <button label="Profil bearbeiten" name="edit_profile_btn" tool_tip="Ihre persönlichen Informationen bearbeiten"/>
+ <button label="Aussehen bearbeiten" name="edit_appearance_btn" tool_tip="Ihr Aussehen bearbeiten: Körpermaße, Bekleidung, usw."/>
+ </layout_panel>
+ </layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_navigation_bar.xml b/indra/newview/skins/default/xui/de/panel_navigation_bar.xml
index 5bf78be3d3..ab59c207bf 100644
--- a/indra/newview/skins/default/xui/de/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/de/panel_navigation_bar.xml
@@ -10,6 +10,6 @@
</search_combo_box>
</panel>
<favorites_bar name="favorite">
- <chevron_button name="&gt;&gt;" tool_tip="Zeige weitere meiner Favoriten an"/>
+ <chevron_button name="&gt;&gt;" tool_tip="Mehr meiner Favoriten anzeigen"/>
</favorites_bar>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_notes.xml b/indra/newview/skins/default/xui/de/panel_notes.xml
index 994c02935c..e6a63fc0c8 100644
--- a/indra/newview/skins/default/xui/de/panel_notes.xml
+++ b/indra/newview/skins/default/xui/de/panel_notes.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Notizen &amp; PrivatsphÀre" name="panel_notes">
<layout_stack name="layout">
- <panel name="notes_stack">
+ <layout_panel name="notes_stack">
<scroll_container name="profile_scroll">
<panel name="profile_scroll_panel">
<text name="status_message" value="Meine Notizen:"/>
@@ -11,13 +11,13 @@
<check_box label="meine Objekte bearbeiten, löschen oder nehmen." name="objects_check"/>
</panel>
</scroll_container>
- </panel>
- <panel name="notes_buttons_panel">
- <button label="HinzufÃŒgen" name="add_friend"/>
- <button label="IM" name="im"/>
- <button label="Anrufen" name="call"/>
- <button label="Karte" name="show_on_map_btn"/>
- <button label="Teleportieren" name="teleport"/>
- </panel>
+ </layout_panel>
+ <layout_panel name="notes_buttons_panel">
+ <button label="Freund hinzufÃŒgen" name="add_friend" tool_tip="Bieten Sie dem Einwohner die Freundschaft an"/>
+ <button label="IM" name="im" tool_tip="Instant Messenger öffnen"/>
+ <button label="Anrufen" name="call" tool_tip="Diesen Einwohner anrufen"/>
+ <button label="Karte" name="show_on_map_btn" tool_tip="Einwohner auf Karte anzeigen"/>
+ <button label="Teleportieren" name="teleport" tool_tip="Teleport anbieten"/>
+ </layout_panel>
</layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/de/panel_outfits_inventory.xml
index da871cad47..8d2dd84512 100644
--- a/indra/newview/skins/default/xui/de/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/de/panel_outfits_inventory.xml
@@ -1,13 +1,14 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="Outfits">
- <accordion name="outfits_accordion">
- <accordion_tab name="tab_outfits" title="Outfit-Leiste"/>
- <accordion_tab name="tab_cof" title="Aktuelles Outfit"/>
- </accordion>
- <button label="&gt;" name="selector" tool_tip="Outfit-Eigenschaften anzeigen"/>
+<panel label="Sonstiges" name="Outfits">
+ <tab_container name="appearance_tabs">
+ <inventory_panel label="MEINE OUTFITS" name="outfitslist_tab"/>
+ <inventory_panel label="AKTUELLES OUTFIT" name="cof_accordionpanel"/>
+ </tab_container>
<panel name="bottom_panel">
<button name="options_gear_btn" tool_tip="ZusÀtzliche Optionen anzeigen"/>
- <button name="add_btn" tool_tip="Neues Objekt hinzufÃŒgen"/>
<dnd_button name="trash_btn" tool_tip="Auswahl löschen"/>
+ <button label="Outfit speichern" name="make_outfit_btn" tool_tip="Aussehen als Outfit speichern"/>
+ <button label="Anziehen" name="wear_btn" tool_tip="AusgewÀhltes Outfit tragen"/>
+ <button label="M" name="look_edit_btn"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_outfits_inventory_gear_default.xml b/indra/newview/skins/default/xui/de/panel_outfits_inventory_gear_default.xml
index ec4d109acd..ad0e039070 100644
--- a/indra/newview/skins/default/xui/de/panel_outfits_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/de/panel_outfits_inventory_gear_default.xml
@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="menu_gear_default">
- <menu_item_call label="Neues Outfit" name="new"/>
- <menu_item_call label="Outfit anziehen" name="wear"/>
+ <menu_item_call label="Aktuelles Outfit ersetzen" name="wear"/>
+ <menu_item_call label="Vom aktuellen Outfit entfernen" name="remove"/>
+ <menu_item_call label="Umbenennen" name="rename"/>
+ <menu_item_call label="Link entfernen" name="remove_link"/>
<menu_item_call label="Outfit löschen" name="delete"/>
</menu>
diff --git a/indra/newview/skins/default/xui/de/panel_people.xml b/indra/newview/skins/default/xui/de/panel_people.xml
index 3e99272833..91a17e127a 100644
--- a/indra/newview/skins/default/xui/de/panel_people.xml
+++ b/indra/newview/skins/default/xui/de/panel_people.xml
@@ -49,5 +49,6 @@
<button label="Teleportieren" name="teleport_btn" tool_tip="Teleport anbieten"/>
<button label="Gruppenprofil" name="group_info_btn" tool_tip="Gruppeninformationen anzeigen"/>
<button label="Gruppen-Chat" name="chat_btn" tool_tip="Chat öffnen"/>
+ <button label="Gruppe anrufen" name="group_call_btn" tool_tip="Diese Gruppe anrufen"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_picks.xml b/indra/newview/skins/default/xui/de/panel_picks.xml
index a1588e5930..a07bc170f6 100644
--- a/indra/newview/skins/default/xui/de/panel_picks.xml
+++ b/indra/newview/skins/default/xui/de/panel_picks.xml
@@ -2,20 +2,16 @@
<panel label="Auswahl" name="panel_picks">
<string name="no_picks" value="Keine Auswahl"/>
<string name="no_classifieds" value="Keine Anzeigen"/>
- <text name="empty_picks_panel_text">
- Es wurde keine Auswahl getroffen/keine Anzeigen ausgewÀhlt
- </text>
<accordion name="accordion">
<accordion_tab name="tab_picks" title="Auswahl"/>
<accordion_tab name="tab_classifieds" title="Anzeigen"/>
</accordion>
<panel label="bottom_panel" name="edit_panel">
- <button name="new_btn" tool_tip="Aktuellen Standort zur Auswahl hinzufÃŒgen"/>
+ <button name="new_btn" tool_tip="An aktuellem Standort neue Auswahl oder Anzeige erstellen"/>
</panel>
<panel name="buttons_cucks">
- <button label="Info" name="info_btn"/>
- <button label="Teleportieren" name="teleport_btn"/>
- <button label="Karte" name="show_on_map_btn"/>
- <button label="▌" name="overflow_btn"/>
+ <button label="Info" name="info_btn" tool_tip="Auswahl-Information anzeigen"/>
+ <button label="Teleportieren" name="teleport_btn" tool_tip="Zu entsprechendem Standort teleportieren"/>
+ <button label="Karte" name="show_on_map_btn" tool_tip="Den entsprechenden Standort auf der Karte anzeigen"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_place_profile.xml b/indra/newview/skins/default/xui/de/panel_place_profile.xml
index e012acac8d..94a43833bf 100644
--- a/indra/newview/skins/default/xui/de/panel_place_profile.xml
+++ b/indra/newview/skins/default/xui/de/panel_place_profile.xml
@@ -6,7 +6,7 @@
<string name="available" value="verfÃŒgbar"/>
<string name="allocated" value="vergeben"/>
<string name="title_place" value="Ortsprofil"/>
- <string name="title_teleport_history" value="Teleport-Verlauf"/>
+ <string name="title_teleport_history" value="Speicherort der Teleport-Liste"/>
<string name="not_available" value="k.A."/>
<string name="unknown" value="(unbekannt)"/>
<string name="public" value="(öffentlich)"/>
@@ -56,6 +56,7 @@
<string name="icon_ScriptsNo" value="parcel_drk_ScriptsNo"/>
<string name="icon_Damage" value="parcel_drk_Damage"/>
<string name="icon_DamageNo" value="parcel_drk_DamageNo"/>
+ <button name="back_btn" tool_tip="Hinten"/>
<text name="title" value="Ortsprofil"/>
<scroll_container name="place_scroll">
<panel name="scrolling_panel">
diff --git a/indra/newview/skins/default/xui/de/panel_places.xml b/indra/newview/skins/default/xui/de/panel_places.xml
index a2f98bf199..8ee26f4e5f 100644
--- a/indra/newview/skins/default/xui/de/panel_places.xml
+++ b/indra/newview/skins/default/xui/de/panel_places.xml
@@ -1,12 +1,13 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Orte" name="places panel">
<string name="landmarks_tab_title" value="MEINE LANDMARKEN"/>
- <string name="teleport_history_tab_title" value="TELEPORT-VERLAUF"/>
- <filter_editor label="Filter" name="Filter"/>
+ <string name="teleport_history_tab_title" value="TELEPORT-LISTE"/>
+ <filter_editor label="Orte filtern" name="Filter"/>
<panel name="button_panel">
- <button label="Teleportieren" name="teleport_btn"/>
+ <button label="Teleportieren" name="teleport_btn" tool_tip="Zu ausgewÀhltem Standort teleportieren"/>
<button label="Karte" name="map_btn"/>
- <button label="Bearbeiten" name="edit_btn"/>
+ <button label="Bearbeiten" name="edit_btn" tool_tip="Landmarken-Info bearbeiten"/>
+ <button name="overflow_btn" tool_tip="ZusÀtzliche Optionen anzeigen"/>
<button label="Schließen" name="close_btn"/>
<button label="Abbrechen" name="cancel_btn"/>
<button label="Speichern" name="save_btn"/>
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_alerts.xml b/indra/newview/skins/default/xui/de/panel_preferences_alerts.xml
index 3e00c39289..def5fb3b1b 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_alerts.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_alerts.xml
@@ -9,6 +9,6 @@
Diese Warnhinweise immer anzeigen:
</text>
<text name="dont_show_label">
- Diese Warnhinweise immer anzeigen:
+ Diese Benachrichtungen nie anzeigen:
</text>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_chat.xml b/indra/newview/skins/default/xui/de/panel_preferences_chat.xml
index d51675e150..cc0a09c06c 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_chat.xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Text-Chat" name="chat">
<radio_group name="chat_font_size">
- <radio_item label="Klein" name="radio"/>
- <radio_item label="Mittel" name="radio2"/>
- <radio_item label="Groß" name="radio3"/>
+ <radio_item label="Klein" name="radio" value="0"/>
+ <radio_item label="Mittel" name="radio2" value="1"/>
+ <radio_item label="Groß" name="radio3" value="2"/>
</radio_group>
<color_swatch label="Sie" name="user"/>
<text name="text_box1">
@@ -40,4 +40,8 @@
<check_box initial_value="true" label="Beim Chatten Tippanimation abspielen" name="play_typing_animation"/>
<check_box label="IMs per Email zuschicken, wenn ich offline bin" name="send_im_to_email"/>
<check_box label="Text-Chatverlauf aktivieren" name="plain_text_chat_history"/>
+ <radio_group name="chat_window" tool_tip="Zeigen sie Ihre Sofortnachrichten (Instant Messages) in einem anderen Fenster oder in einem einzigen Fenster mit viele Registerkarten an (Neustart erforderlich).">
+ <radio_item label="Mehrere Fenster" name="radio" value="0"/>
+ <radio_item label="Ein Fenster" name="radio2" value="1"/>
+ </radio_group>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_general.xml b/indra/newview/skins/default/xui/de/panel_preferences_general.xml
index 5bbd579ff6..490b0b296b 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_general.xml
@@ -15,7 +15,6 @@
<combo_box.item label="Polski (Polnisch) - Beta" name="Polish"/>
<combo_box.item label="Português (Portugiesisch) - Beta" name="Portugese"/>
<combo_box.item label="日本語 (Japanisch) - Beta" name="(Japanese)"/>
- <combo_box.item label="Testsprache" name="TestLanguage"/>
</combo_box>
<text name="language_textbox2">
(Erfordert Neustart)
@@ -25,8 +24,8 @@
</text>
<text name="maturity_desired_textbox"/>
<combo_box name="maturity_desired_combobox">
- <combo_box.item label="PG, Mature und Adult" name="Desired_Adult"/>
- <combo_box.item label="PG und Mature" name="Desired_Mature"/>
+ <combo_box.item label="Allgemein, Moderat, Adult" name="Desired_Adult"/>
+ <combo_box.item label="Allgemein und Moderat" name="Desired_Mature"/>
<combo_box.item label="Allgemein" name="Desired_PG"/>
</combo_box>
<text name="start_location_textbox">
@@ -41,9 +40,9 @@
Avatarnamen:
</text>
<radio_group name="Name_Tag_Preference">
- <radio_item label="Aus" name="radio"/>
- <radio_item label="An" name="radio2"/>
- <radio_item label="VorÃŒbergehend anzeigen" name="radio3"/>
+ <radio_item label="Aus" name="radio" value="0"/>
+ <radio_item label="An" name="radio2" value="1"/>
+ <radio_item label="VorÃŒbergehend anzeigen" name="radio3" value="2"/>
</radio_group>
<check_box label="Meinen Namen anzeigen" name="show_my_name_checkbox1"/>
<check_box initial_value="true" label="Kleine Avatarnamen" name="small_avatar_names_checkbox"/>
@@ -51,14 +50,17 @@
<text name="effects_color_textbox">
Meine Effekte:
</text>
- <color_swatch label="" name="effect_color_swatch" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
<text name="title_afk_text">
Zeit bis zur Abwesenheit:
</text>
- <spinner label="" name="afk_timeout_spinner"/>
- <text name="seconds_textbox">
- Sekunden
- </text>
+ <color_swatch label="" name="effect_color_swatch" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
+ <combo_box label="Timeout fÃŒr Abwesenheit:" name="afk">
+ <combo_box.item label="2 Minuten" name="item0"/>
+ <combo_box.item label="5 Minuten" name="item1"/>
+ <combo_box.item label="10 Minuten" name="item2"/>
+ <combo_box.item label="30 Minuten" name="item3"/>
+ <combo_box.item label="nie" name="item4"/>
+ </combo_box>
<text name="text_box3">
Antwort, wenn im „BeschÀftigt“-Modus:
</text>
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/de/panel_preferences_privacy.xml
index fe0dca78d1..0c0924026e 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_privacy.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_privacy.xml
@@ -11,8 +11,8 @@
<check_box label="Nur Freunde und Gruppen können mich anrufen oder mir eine IM schicken" name="voice_call_friends_only_check"/>
<check_box label="Mikrofon ausschalten, wenn Anrufe beendet werden" name="auto_disengage_mic_check"/>
<check_box label="Cookies annehmen" name="cookies_enabled"/>
- <check_box label="Automatisches Abspielen von Medien erlauben" name="autoplay_enabled"/>
- <check_box label="Medien auf Parzellen automatisch abspielen" name="parcel_autoplay_enabled"/>
+ <check_box label="Medien aktiviert" name="media_enabled"/>
+ <check_box label="Automatische Wiedergabe zulassen" name="autoplay_enabled"/>
<text name="Logs:">
Protokolle:
</text>
@@ -20,7 +20,7 @@
<check_box label="IM Protokolle auf meinem Computer speichern" name="log_instant_messages"/>
<check_box label="Zeitstempel hinzufÃŒgen" name="show_timestamps_check_im"/>
<text name="log_path_desc">
- Speicherort der Protokolldateien
+ Speicherort fÃŒr Protokolle:
</text>
<button label="Durchsuchen" label_selected="Durchsuchen" name="log_path_button"/>
<button label="Ignorierte Einwohner/Objekte" name="block_list"/>
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_setup.xml b/indra/newview/skins/default/xui/de/panel_preferences_setup.xml
index f1d4a853e8..00be3920ca 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_setup.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Kamera" name="Input panel">
+<panel label="Hardware/Internet" name="Input panel">
<button label="Andere GerÀte" name="joystick_setup_button"/>
<text name="Mouselook:">
Mouselook:
@@ -26,9 +26,9 @@
MB
</text>
<button label="Durchsuchen" label_selected="Durchsuchen" name="set_cache"/>
- <button label="ZurÃŒcksetzen" label_selected="Set" name="reset_cache"/>
+ <button label="ZurÃŒcksetzen" label_selected="ZurÃŒcksetzen" name="reset_cache"/>
<text name="Cache location">
- Speicherort des Caches
+ Cache-Ordner:
</text>
<text name="Web:">
Web:
@@ -41,6 +41,6 @@
<line_editor name="web_proxy_editor" tool_tip="Name oder IP Adresse des Proxyservers, den Sie benutzen möchten"/>
<button label="Durchsuchen" label_selected="Durchsuchen" name="set_proxy"/>
<text name="Proxy location">
- Proxyadresse
+ Proxy-Standort:
</text>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_sound.xml b/indra/newview/skins/default/xui/de/panel_preferences_sound.xml
index 94c215b80b..2398da71d0 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_sound.xml
@@ -7,10 +7,10 @@
<slider label="Medien" name="Media Volume"/>
<slider label="Soundeffekte" name="SFX Volume"/>
<slider label="Musik wird gestreamt" name="Music Volume"/>
- <check_box label="Sprache" name="enable_voice_check"/>
+ <check_box label="Voice aktivieren" name="enable_voice_check"/>
<slider label="Sprache" name="Voice Volume"/>
<text name="Listen from">
- Hören von:
+ Zuhören von:
</text>
<radio_group name="ear_location">
<radio_item label="Kameraposition" name="0"/>
diff --git a/indra/newview/skins/default/xui/de/panel_prim_media_controls.xml b/indra/newview/skins/default/xui/de/panel_prim_media_controls.xml
index ed5daa60ce..0a19483f8b 100644
--- a/indra/newview/skins/default/xui/de/panel_prim_media_controls.xml
+++ b/indra/newview/skins/default/xui/de/panel_prim_media_controls.xml
@@ -6,7 +6,36 @@
<string name="skip_step">
0.2
</string>
+ <layout_stack name="progress_indicator_area">
+ <panel name="media_progress_indicator">
+ <progress_bar name="media_progress_bar" tool_tip="Medien werden geladen"/>
+ </panel>
+ </layout_stack>
<layout_stack name="media_controls">
+ <layout_panel name="back">
+ <button name="back_btn" tool_tip="RÌckwÀrts"/>
+ </layout_panel>
+ <layout_panel name="fwd">
+ <button name="fwd_btn" tool_tip="VorwÀrts"/>
+ </layout_panel>
+ <layout_panel name="home">
+ <button name="home_btn" tool_tip="Startseite"/>
+ </layout_panel>
+ <layout_panel name="media_stop">
+ <button name="media_stop_btn" tool_tip="Medienwiedergabe stoppen"/>
+ </layout_panel>
+ <layout_panel name="reload">
+ <button name="reload_btn" tool_tip="Neu laden"/>
+ </layout_panel>
+ <layout_panel name="stop">
+ <button name="stop_btn" tool_tip="Ladevorgang stoppen"/>
+ </layout_panel>
+ <layout_panel name="play">
+ <button name="play_btn" tool_tip="Medien wiedergeben"/>
+ </layout_panel>
+ <layout_panel name="pause">
+ <button name="pause_btn" tool_tip="Medien pausieren"/>
+ </layout_panel>
<layout_panel name="media_address">
<line_editor name="media_address_url" tool_tip="Medien URL"/>
<layout_stack name="media_address_url_icons">
@@ -21,13 +50,24 @@
<layout_panel name="media_play_position">
<slider_bar initial_value="0.5" name="media_play_slider" tool_tip="Fortschritt der Filmwiedergabe"/>
</layout_panel>
+ <layout_panel name="skip_back">
+ <button name="skip_back_btn" tool_tip="RÌckwÀrts"/>
+ </layout_panel>
+ <layout_panel name="skip_forward">
+ <button name="skip_forward_btn" tool_tip="VorwÀrts"/>
+ </layout_panel>
<layout_panel name="media_volume">
- <button name="media_volume_button" tool_tip="Dieses Medium stummschalten"/>
+ <button name="media_mute_button" tool_tip="Stummschalten"/>
+ <slider name="volume_slider" tool_tip="LautstÀrke"/>
+ </layout_panel>
+ <layout_panel name="zoom_frame">
+ <button name="zoom_frame_btn" tool_tip="Auf Medien zoomen"/>
+ </layout_panel>
+ <layout_panel name="close">
+ <button name="close_btn" tool_tip="Herauszoomen"/>
+ </layout_panel>
+ <layout_panel name="new_window">
+ <button name="new_window_btn" tool_tip="URL in Browser öffnen"/>
</layout_panel>
- </layout_stack>
- <layout_stack>
- <panel name="media_progress_indicator">
- <progress_bar name="media_progress_bar" tool_tip="Medien werden geladen"/>
- </panel>
</layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_profile.xml b/indra/newview/skins/default/xui/de/panel_profile.xml
index c67d7f7fbc..82467eb570 100644
--- a/indra/newview/skins/default/xui/de/panel_profile.xml
+++ b/indra/newview/skins/default/xui/de/panel_profile.xml
@@ -12,50 +12,41 @@
</string>
<string name="my_account_link_url" value="http://secondlife.com/my/account/index.php?lang=de-DE"/>
<string name="no_partner_text" value="Keiner"/>
+ <string name="no_group_text" value="Keiner"/>
<string name="RegisterDateFormat">
[REG_DATE] ([AGE])
</string>
- <scroll_container name="profile_scroll">
- <panel name="scroll_content_panel">
- <panel name="second_life_image_panel">
- <text name="title_sl_descr_text" value="[SECOND_LIFE]:"/>
- <expandable_text name="sl_description_edit">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum.
- </expandable_text>
- </panel>
- <panel name="first_life_image_panel">
- <text name="title_rw_descr_text" value="Echtes Leben:"/>
- <expandable_text name="fl_description_edit">
- Lorem ipsum dolor sit amet, consectetur adlkjpiscing elit moose moose. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet. adipiscing elit. Aenean rigviverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet sorbet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum.
- </expandable_text>
- </panel>
- <text name="me_homepage_text">
- Webseite:
- </text>
- <text name="title_member_text" value="Mitglied seit:"/>
- <text name="register_date" value="05/31/1976"/>
- <text name="title_acc_status_text" value="Kontostatus:"/>
- <text name="acc_status_text" value="Einwohner. Keine Zahlungsinfo archiviert."/>
- <text name="title_partner_text" value="Partner:"/>
- <panel name="partner_data_panel">
- <text name="partner_text" value="[FIRST] [LAST]"/>
- </panel>
- <text name="title_groups_text" value="Gruppen:"/>
- <expandable_text name="sl_groups">
- Lorem ipsum dolor sit amet, consectetur adlkjpiscing elit moose moose. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet. adipiscing elit. Aenean rigviverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet sorbet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum.
- </expandable_text>
- </panel>
- </scroll_container>
- <panel name="profile_buttons_panel">
- <button label="Freund hinzufÃŒgen" name="add_friend"/>
- <button label="IM" name="im"/>
- <button label="Anrufen" name="call"/>
- <button label="Karte" name="show_on_map_btn"/>
- <button label="Teleportieren" name="teleport"/>
- <button label="▌" name="overflow_btn"/>
- </panel>
- <panel name="profile_me_buttons_panel">
- <button label="Profil bearbeiten" name="edit_profile_btn"/>
- <button label="Aussehen bearbeiten" name="edit_appearance_btn"/>
- </panel>
+ <layout_stack name="layout">
+ <layout_panel name="profile_stack">
+ <scroll_container name="profile_scroll">
+ <panel name="profile_scroll_panel">
+ <panel name="second_life_image_panel">
+ <text name="title_sl_descr_text" value="[SECOND_LIFE]:"/>
+ </panel>
+ <panel name="first_life_image_panel">
+ <text name="title_rw_descr_text" value="Echtes Leben:"/>
+ </panel>
+ <text name="title_member_text" value="Einwohner seit:"/>
+ <text name="title_acc_status_text" value="Kontostatus:"/>
+ <text name="acc_status_text">
+ Einwohner. Keine Zahlungsinfo archiviert.
+ Linden.
+ </text>
+ <text name="title_partner_text" value="Partner:"/>
+ <text name="title_groups_text" value="Gruppen:"/>
+ </panel>
+ </scroll_container>
+ </layout_panel>
+ <layout_panel name="profile_buttons_panel">
+ <button label="Freund hinzufÃŒgen" name="add_friend" tool_tip="Bieten Sie dem Einwohner die Freundschaft an"/>
+ <button label="IM" name="im" tool_tip="Instant Messenger öffnen"/>
+ <button label="Anrufen" name="call" tool_tip="Diesen Einwohner anrufen"/>
+ <button label="Karte" name="show_on_map_btn" tool_tip="Einwohner auf Karte anzeigen"/>
+ <button label="Teleportieren" name="teleport" tool_tip="Teleport anbieten"/>
+ </layout_panel>
+ <layout_panel name="profile_me_buttons_panel">
+ <button label="Profil bearbeiten" name="edit_profile_btn" tool_tip="Ihre persönlichen Informationen bearbeiten"/>
+ <button label="Aussehen bearbeiten" name="edit_appearance_btn" tool_tip="Ihr Aussehen bearbeiten: Körpermaße, Bekleidung, usw."/>
+ </layout_panel>
+ </layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_region_estate.xml b/indra/newview/skins/default/xui/de/panel_region_estate.xml
index e0008d2a39..b0c6dce8cf 100644
--- a/indra/newview/skins/default/xui/de/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/de/panel_region_estate.xml
@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="GrundstÃŒck" name="Estate">
<text name="estate_help_text">
- Änderungen auf dieser Registerkarte wirken sich
-auf alle Regionen auf dem GrundstÃŒck aus.
+ Änderungen auf dieser Registerkarte wirken sich auf alle Regionen auf dem GrundstÃŒck aus.
</text>
<text name="estate_text">
GrundstÃŒck:
@@ -17,10 +16,10 @@ auf alle Regionen auf dem GrundstÃŒck aus.
(unbekannt)
</text>
<text name="Only Allow">
- Zugang beschrÀnken auf:
+ Zugang auf Einwohner beschrÀnken, die ÌberprÌft wurden von:
</text>
- <check_box label="Einwohner mit Zahlungsinformationen" name="limit_payment" tool_tip="Nicht identifizierte Einwohner verbannen"/>
- <check_box label="AltersgeprÃŒfte Erwachsene" name="limit_age_verified" tool_tip="Einwohner ohne AltersÃŒberprÃŒfung verbannen. Weitere Informationen finden Sie auf [SUPPORT_SITE]."/>
+ <check_box label="Zahlungsinformation gespeichert" name="limit_payment" tool_tip="Nicht identifizierte Einwohner verbannen"/>
+ <check_box label="AltersÃŒberprÃŒfung" name="limit_age_verified" tool_tip="Einwohner ohne AltersÃŒberprÃŒfung verbannen. Weitere Informationen finden Sie auf [SUPPORT_SITE]."/>
<check_box label="Voice-Chat erlauben" name="voice_chat_check"/>
<button label="?" name="voice_chat_help"/>
<text name="abuse_email_text" width="222">
diff --git a/indra/newview/skins/default/xui/de/panel_region_general.xml b/indra/newview/skins/default/xui/de/panel_region_general.xml
index 13df2bfb3b..978b701054 100644
--- a/indra/newview/skins/default/xui/de/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/de/panel_region_general.xml
@@ -39,10 +39,10 @@
<text label="Alterseinstufung" name="access_text">
Einstufung:
</text>
- <combo_box label="Mature" name="access_combo">
+ <combo_box label="Moderat" name="access_combo">
<combo_box.item label="Adult" name="Adult"/>
- <combo_box.item label="Mature" name="Mature"/>
- <combo_box.item label="PG" name="PG"/>
+ <combo_box.item label="Moderat" name="Mature"/>
+ <combo_box.item label="Allgemein" name="PG"/>
</combo_box>
<button label="?" name="access_help"/>
<button label="Übernehmen" name="apply_btn"/>
diff --git a/indra/newview/skins/default/xui/de/panel_region_general_layout.xml b/indra/newview/skins/default/xui/de/panel_region_general_layout.xml
new file mode 100644
index 0000000000..732249df35
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/panel_region_general_layout.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Region" name="General">
+ <text name="region_text_lbl">
+ Region:
+ </text>
+ <text name="region_text">
+ unbekannt
+ </text>
+ <text name="version_channel_text_lbl">
+ Version:
+ </text>
+ <text name="version_channel_text">
+ unbekannt
+ </text>
+ <text name="region_type_lbl">
+ Typ:
+ </text>
+ <text name="region_type">
+ unbekannt
+ </text>
+ <check_box label="Terraformen blockieren" name="block_terraform_check"/>
+ <check_box label="Fliegen blockieren" name="block_fly_check"/>
+ <check_box label="Schaden zulassen" name="allow_damage_check"/>
+ <check_box label="Stoßen beschrÀnken" name="restrict_pushobject"/>
+ <check_box label="Landwiederverkauf zulassen" name="allow_land_resell_check"/>
+ <check_box label="Zusammenlegen/Teilen von Land zulassen" name="allow_parcel_changes_check"/>
+ <check_box label="Landanzeige in Suche blockieren" name="block_parcel_search_check" tool_tip="Diese Region und ihre Parzellen in Suchergebnissen anzeigen"/>
+ <spinner label="Avatar-Limit" name="agent_limit_spin"/>
+ <spinner label="Objektbonus" name="object_bonus_spin"/>
+ <text label="Alterseinstufung" name="access_text">
+ Einstufung:
+ </text>
+ <combo_box label="Moderat" name="access_combo">
+ <combo_box.item label="Adult" name="Adult"/>
+ <combo_box.item label="Moderat" name="Mature"/>
+ <combo_box.item label="Allgemein" name="PG"/>
+ </combo_box>
+ <button label="Übernehmen" name="apply_btn"/>
+ <button label="Einen Benutzer nach Hause teleportieren..." name="kick_btn"/>
+ <button label="Alle Benutzer nach Hause teleportieren..." name="kick_all_btn"/>
+ <button label="Nachricht an Region senden..." name="im_btn"/>
+ <button label="Telehub verwalten..." name="manage_telehub_btn"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_region_texture.xml b/indra/newview/skins/default/xui/de/panel_region_texture.xml
index 4361b39def..d489b5bac8 100644
--- a/indra/newview/skins/default/xui/de/panel_region_texture.xml
+++ b/indra/newview/skins/default/xui/de/panel_region_texture.xml
@@ -48,8 +48,7 @@
Diese Werte geben den Mischungsgrad fÃŒr die obigen Texturen an.
</text>
<text name="height_text_lbl11">
- Der UNTERE Wert gibt die MAXIMALE Höhe von Textur Nr. 1 an
-und der OBERE WERT die MINIMALE Höhe von Textur 4.
+ In Metern gemessen. Der NIEDRIG-Wert ist die MAXIMALE Höhe der Textur #1, der HÖCHST-Wert ist die MINDEST-Höhe von Textur #4.
</text>
<text name="height_text_lbl12">
und der OBERE WERT die MINIMALE Höhe von Textur 4.
diff --git a/indra/newview/skins/default/xui/de/panel_script_limits_my_avatar.xml b/indra/newview/skins/default/xui/de/panel_script_limits_my_avatar.xml
new file mode 100644
index 0000000000..f6a1d7e9b5
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/panel_script_limits_my_avatar.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="MEIN AVATAR" name="script_limits_my_avatar_panel">
+ <text name="loading_text">
+ Wird geladen...
+ </text>
+ <scroll_list name="scripts_list">
+ <scroll_list.columns label="Größe (KB)" name="size"/>
+ <scroll_list.columns label="URLs" name="urls"/>
+ <scroll_list.columns label="Objektname" name="name"/>
+ <scroll_list.columns label="Ort" name="location"/>
+ </scroll_list>
+ <button label="Liste aktualisieren" name="refresh_list_btn"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_script_limits_region_memory.xml b/indra/newview/skins/default/xui/de/panel_script_limits_region_memory.xml
new file mode 100644
index 0000000000..c466c04e86
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/panel_script_limits_region_memory.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="REGIONSSPEICHER" name="script_limits_region_memory_panel">
+ <text name="script_memory">
+ Parzellenskript-Speicher
+ </text>
+ <text name="parcels_listed">
+ ParzelleneigentÃŒmer:
+ </text>
+ <text name="memory_used">
+ Verwendeter Speicher:
+ </text>
+ <text name="loading_text">
+ Wird geladen...
+ </text>
+ <scroll_list name="scripts_list">
+ <scroll_list.columns label="Größe (KB)" name="size"/>
+ <scroll_list.columns label="Objektname" name="name"/>
+ <scroll_list.columns label="ObjekteigentÃŒmer" name="owner"/>
+ <scroll_list.columns label="Parzelle / Standort" name="location"/>
+ </scroll_list>
+ <button label="Liste aktualisieren" name="refresh_list_btn"/>
+ <button label="Markieren" name="highlight_btn"/>
+ <button label="ZurÃŒckgeben" name="return_btn"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_side_tray.xml b/indra/newview/skins/default/xui/de/panel_side_tray.xml
index d5baacd357..2cd11cdcef 100644
--- a/indra/newview/skins/default/xui/de/panel_side_tray.xml
+++ b/indra/newview/skins/default/xui/de/panel_side_tray.xml
@@ -2,9 +2,13 @@
<!-- Side tray cannot show background because it is always
partially on screen to hold tab buttons. -->
<side_tray name="sidebar">
+ <sidetray_tab description="Seitenleiste auf-/zuklappen." name="sidebar_openclose"/>
<sidetray_tab description="Startseite." name="sidebar_home">
<panel label="Startseite" name="panel_home"/>
</sidetray_tab>
+ <sidetray_tab description="Ihr öffentliches Profil und Auswahl bearbeiten." name="sidebar_me">
+ <panel label="Ich" name="panel_me"/>
+ </sidetray_tab>
<sidetray_tab description="Freunde, Kontakte und Leute in Ihrer NÀhe finden." name="sidebar_people">
<panel_container name="panel_container">
<panel label="Gruppeninfo" name="panel_group_info_sidetray"/>
@@ -14,13 +18,10 @@
<sidetray_tab description="Hier finden Sie neue Orte und Orte, die Sie bereits besucht haben." label="Orte" name="sidebar_places">
<panel label="Orte" name="panel_places"/>
</sidetray_tab>
- <sidetray_tab description="Ihr öffentliches Profil und Auswahl bearbeiten." name="sidebar_me">
- <panel label="Ich" name="panel_me"/>
+ <sidetray_tab description="Inventar durchsuchen." name="sidebar_inventory">
+ <panel label="Inventar bearbeiten" name="sidepanel_inventory"/>
</sidetray_tab>
<sidetray_tab description="Ändern Sie Ihr Aussehen und Ihren aktuellen Look." name="sidebar_appearance">
<panel label="Aussehen bearbeiten" name="sidepanel_appearance"/>
</sidetray_tab>
- <sidetray_tab description="Inventar durchsuchen." name="sidebar_inventory">
- <panel label="Inventar bearbeiten" name="sidepanel_inventory"/>
- </sidetray_tab>
</side_tray>
diff --git a/indra/newview/skins/default/xui/de/panel_status_bar.xml b/indra/newview/skins/default/xui/de/panel_status_bar.xml
index 253207fe73..33fd0f6348 100644
--- a/indra/newview/skins/default/xui/de/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/de/panel_status_bar.xml
@@ -21,7 +21,8 @@
<panel.string name="buycurrencylabel">
[AMT] L$
</panel.string>
- <button label="" label_selected="" name="buycurrency" tool_tip="Mein Kontostand: Hier klicken, um mehr L$ zu kaufen"/>
+ <button label="" label_selected="" name="buycurrency" tool_tip="Mein Kontostand"/>
+ <button label="L$ kaufen" name="buyL" tool_tip="Hier klicken, um mehr L$ zu kaufen"/>
<text name="TimeText" tool_tip="Aktuelle Zeit (Pazifik)">
12:00
</text>
diff --git a/indra/newview/skins/default/xui/de/panel_teleport_history.xml b/indra/newview/skins/default/xui/de/panel_teleport_history.xml
index 3149ddf19e..4efd83dfff 100644
--- a/indra/newview/skins/default/xui/de/panel_teleport_history.xml
+++ b/indra/newview/skins/default/xui/de/panel_teleport_history.xml
@@ -11,5 +11,7 @@
<accordion_tab name="1_month_and_older" title="1 Monat und Àlter"/>
<accordion_tab name="6_months_and_older" title="6 Monate und Àlter"/>
</accordion>
- <panel label="bottom_panel" name="bottom_panel"/>
+ <panel label="bottom_panel" name="bottom_panel">
+ <button name="gear_btn" tool_tip="ZusÀtzliche Optionen anzeigen"/>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_teleport_history_item.xml b/indra/newview/skins/default/xui/de/panel_teleport_history_item.xml
index 9d18c52442..4b57aa69b6 100644
--- a/indra/newview/skins/default/xui/de/panel_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/de/panel_teleport_history_item.xml
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="teleport_history_item">
<text name="region" value="..."/>
+ <button name="profile_btn" tool_tip="Objektinfo anzeigen"/>
</panel>
diff --git a/indra/newview/skins/default/xui/de/role_actions.xml b/indra/newview/skins/default/xui/de/role_actions.xml
index 95eb6c5eb2..554a5c27a4 100644
--- a/indra/newview/skins/default/xui/de/role_actions.xml
+++ b/indra/newview/skins/default/xui/de/role_actions.xml
@@ -1,200 +1,76 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<role_actions>
- <action_set
- description="Diese FÀhigkeiten ermöglichen das HinzufÌgen und Entfernen von Mitgliedern sowie den Beitritt ohne Einladung."
- name="Membership">
- <action description="Personen in diese Gruppe einladen"
- longdescription="Personen zu dieser Gruppe einladen können Sie mit „Neue Person einladen...“ unter „Mitglieder und Rollen“ &gt; „Mitglieder“."
- name="member invite" />
- <action description="Mitglieder aus dieser Gruppe werfen"
- longdescription="Mitglieder von der Gruppe ausschließen können Sie mit „Aus Gruppe werfen“ unter „Mitglieder und Rollen“ &gt; „Mitglieder“. Ein EigentÃŒmer kann jeden, außer einen anderen EigentÃŒmer, ausschließen. Wenn Sie kein EigentÃŒmer sind, können Sie ein Mitglied nur dann von der Gruppe ausschließen, wenn es die Rolle „Jeder“ innehat, aber KEINE ANDERE Rolle. Um Mitgliedern Rollen entziehen zu können, mÃŒssen Sie ÃŒber die FÀhigkeit „Mitgliedern Rollen entziehen“ verfÃŒgen."
- name="member eject" />
- <action
- description="„Registrierung offen“ einstellen und „BeitrittsgebÃŒhr“ Àndern"
- longdescription="„Beitritt möglich“ erlaubt den Beitritt zur Gruppe ohne vorhergehende Einladung. Die „BeitrittsgebÃŒhr“ wird in den Gruppeneinstellungen auf der Registerkarte „Allgemein“ festgelegt."
- name="member options" />
+ <action_set description="Diese FÀhigkeiten ermöglichen das HinzufÌgen und Entfernen von Mitgliedern sowie den Beitritt ohne Einladung." name="Membership">
+ <action description="Personen in diese Gruppe einladen" longdescription="Leute in diese Gruppe mit der SchaltflÀche „Einladen“ im Abschnitt „Rollen“ &gt; Registerkarte „Mitglieder“ in die Gruppe einladen." name="member invite"/>
+ <action description="Mitglieder aus dieser Gruppe werfen" longdescription="Leute aus dieser Gruppe mit der SchaltflÀche „Hinauswerfen“ im Abschnitt „Rollen“ &gt; Registerkarte „Mitglieder“ aus der Gruppe werfen. Ein EigentÃŒmer kann jeden, außer einen anderen EigentÃŒmer, ausschließen. Wenn Sie kein EigentÃŒmer sind, können Sie ein Mitglied nur dann aus der Gruppe werfen, wenn es die Rolle Jeder inne hat, jedoch KEINE andere Rolle. Um Mitgliedern Rollen entziehen zu können, mÃŒssen Sie ÃŒber die FÀhigkeit „Mitgliedern Rollen entziehen“ verfÃŒgen." name="member eject"/>
+ <action description="„Registrierung offen“ aktivieren/deaktivieren und „BeitrittsgebÃŒhr“ Àndern." longdescription="„Registrierung offen“ aktivieren, um damit neue Mitglieder ohne Einladung beitreten können, und die „BeitrittsgebÃŒhr“ im Abschnitt „Allgemein“ Àndern." name="member options"/>
</action_set>
- <action_set
- description="Diese FÀhigkeiten ermöglichen das HinzufÃŒgen, Entfernen und Ändern von Gruppenrollen, das Zuweisen und Entfernen von Rollen und das Zuweisen von FÀhigkeiten zu Rollen."
- name="Roles">
- <action description="Neue Rollen erstellen"
- longdescription="Neue Rollen erstellen Sie unter „Mitglieder und Rollen“ &gt; „Rollen“."
- name="role create" />
- <action description="Rollen löschen"
- longdescription="Rollen löschen können Sie unter „Mitglieder und Rollen“ &gt; „Rollen“."
- name="role delete" />
- <action description="Rollennamen, Titel und Beschreibung Àndern"
- longdescription="Namen, Titel und Beschreibungen von Rollen können Sie nach Auswahl einer Rolle unten auf der Registerkarte „Mitglieder und Rollen“ &gt; „Rollen“ Àndern."
- name="role properties" />
- <action description="Mitgliedern nur eigene Rollen zuweisen"
- longdescription="Mitgliedern nur eigene Rollen zuweisen können Sie im Bereich „Zugewiesene Rollen“ auf der Registerkarte „Mitglieder und Rollen“ &gt; „Mitglieder“. Ein Mitglied mit dieser FÀhigkeit kann anderen Mitgliedern nur die eigenen Rollen zuweisen."
- name="role assign member limited" />
- <action description="Mitgliedern beliebige Rolle zuweisen"
- longdescription="Mitgliedern beliebige Rolle zuweisen können Sie im Bereich „Zugewiesene Rollen“ auf der Registerkarte „Mitglieder und Rollen“ &gt; „Mitglieder“. *WARNUNG* Jedes Mitglied in einer Rolle mit dieser FÀhigkeit kann sich selbst und jedem anderen Mitglied (außer dem EigentÃŒmer) Rollen mit weitreichenden FÀhigkeiten zuweisen und damit fast EigentÃŒmerrechte erreichen. Überlegen Sie sich, wem Sie diese FÀhigkeit verleihen."
- name="role assign member" />
- <action description="Mitgliedern Rollen entziehen"
- longdescription="Mitgliedern Rollen entziehen können Sie im Bereich „Rollen“ auf der Registerkarte „Mitglieder und Rollen“ &gt; „Mitglieder“. EigentÃŒmer können nicht entfernt werden."
- name="role remove member" />
- <action description="RollenfÀhigkeiten zuweisen und entfernen"
- longdescription="RollenfÀhigkeiten zuweisen und entfernen können Sie im Bereich „ZulÀssige FÀhigkeiten“ auf der Registerkarte „Mitglieder und Rollen“ &gt; „Rollen“. *WARNUNG* Jedes Mitglied in einer Rolle mit dieser FÀhigkeit kann sich selbst und jedem anderen Mitglied (außer dem EigentÃŒmer) alle FÀhigkeiten zuweisen und damit fast EigentÃŒmerrechte erreichen. Überlegen Sie sich, wem Sie diese FÀhigkeit verleihen."
- name="role change actions" />
+ <action_set description="Diese FÀhigkeiten ermöglichen das HinzufÃŒgen, Entfernen und Ändern von Gruppenrollen, das Zuweisen und Entfernen von Rollen und das Zuweisen von FÀhigkeiten zu Rollen." name="Roles">
+ <action description="Neue Rollen erstellen" longdescription="Neue Rollen im Abschnitt „Rollen“ &gt; Registerkarte „Rollen“ erstellen." name="role create"/>
+ <action description="Rollen löschen" longdescription="Neue Rollen im Abschnitt „Rollen“ &gt; Registerkarte „Rollen“ löschen." name="role delete"/>
+ <action description="Rollennamen, Titel, Beschreibungen und ob die Rolleninhaber öffentlich bekannt sein sollen, Àndern." longdescription="Rollennamen, Titel, Beschreibungen und ob die Rolleninhaber öffentlich bekannt sein sollen, Àndern. Dies wird im unteren Bereich des Abschnitts „Rollen“ &gt; Registerkarte „Rollen“ eingestellt, nachdem eine Rolle ausgewÀhlt wurde." name="role properties"/>
+ <action description="Mitgliedern nur eigene Rollen zuweisen" longdescription="In der Liste „Rollen“ (Abschnitt „Rollen“ &gt; Registerkarte „Mitglieder“) können Mitgliedern Rollen zugewiesen werden. Ein Mitglied mit dieser FÀhigkeit kann anderen Mitgliedern nur die eigenen Rollen zuweisen." name="role assign member limited"/>
+ <action description="Mitgliedern beliebige Rolle zuweisen" longdescription="Sie können Mitglieder jede beliebige Rolle der Liste „Rollen“ (Abschnitt „Rollen“ &gt; Registerkarte „Mitglieder“) zuweisen. *WARNUNG* Jedes Mitglied in einer Rolle mit dieser FÀhigkeit kann sich selbst und jedem anderen Mitglied (außer dem EigentÃŒmer) Rollen mit weitreichenden FÀhigkeiten zuweisen und damit fast EigentÃŒmerrechte erreichen. Überlegen Sie sich gut, wem Sie diese FÀhigkeit verleihen." name="role assign member"/>
+ <action description="Mitgliedern Rollen entziehen" longdescription="In der Liste „Rollen“ (Abschnitt „Rollen“ &gt; Registerkarte „Mitglieder“) können Mitgliedern Rollen abgenommen werden. EigentÃŒmer können nicht entfernt werden." name="role remove member"/>
+ <action description="RollenfÀhigkeiten zuweisen und entfernen" longdescription="FÀhigkeiten fÃŒr jede Rolle können in der Liste „ZulÀssige FÀhigkeiten&quot; (Abschnitt „Rollen&quot; &gt; Registerkarte „Rollen“) zugewiesen und auch entzogen werden. *WARNUNG* Jedes Mitglied in einer Rolle mit dieser FÀhigkeit kann sich selbst und jedem anderen Mitglied (außer dem EigentÃŒmer) alle FÀhigkeiten zuweisen und damit fast EigentÃŒmerrechte erreichen. Überlegen Sie sich gut, wem Sie diese FÀhigkeit verleihen." name="role change actions"/>
</action_set>
- <action_set
- description="Diese FÀhigkeiten ermöglichen es, die GruppenidentitÀt zu Àndern, z. B. öffentliche Sichtbarkeit, Charta und Insignien."
- name="Group Identity">
- <action
- description="Charta, Insignien und „Im Web veröffentlichen“ Àndern und festlegen, welche Mitglieder in der Gruppeninfo öffentlich sichtbar sind."
- longdescription="Charta, Insignien und „Im Web veröffentlichen“ Àndern und festlegen, welche Mitglieder in der Gruppeninfo öffentlich sichtbar sind. Diese Einstellungen finden Sie auf der Registerkarte „Allgemein“."
- name="group change identity" />
+ <action_set description="Diese FÀhigkeiten ermöglichen es, die GruppenidentitÀt zu Àndern, z. B. öffentliche Sichtbarkeit, Charta und Insignien." name="Group Identity">
+ <action description="Charta, Insignien und „Im Web veröffentlichen“ Àndern und festlegen, welche Mitglieder in der Gruppeninfo öffentlich sichtbar sind." longdescription="Charta, Insignien und „In Suche anzeigen&quot; Àndern. Diese Einstellungen werden im Abschnitt „Allgemein&quot; vorgenommen." name="group change identity"/>
</action_set>
- <action_set
- description="Diese FÀhigkeiten ermöglichen es, gruppeneigenes Land zu ÃŒbertragen, zu bearbeiten und zu verkaufen. Klicken Sie mit rechts auf den Boden und wÀhlen Sie „Land-Info...“ oder klicken Sie in der MenÃŒleiste auf den Parzellennamen."
- name="Parcel Management">
- <action description="Land ÃŒbertragen und fÃŒr Gruppe kaufen"
- longdescription="Land ÃŒbertragen und fÃŒr Gruppe kaufen. Diese Einstellung finden Sie unter „Land-Info“ &gt; „Allgemein“."
- name="land deed" />
- <action description="Land Governor Linden ÃŒberlassen"
- longdescription="Land Governor Linden ÃŒberlassen. *WARNUNG* Jedes Mitglied in einer Rolle mit dieser FÀhigkeit kann gruppeneigenes Land unter „Land-Info“ &gt; „Allgemein“ aufgeben und es ohne Verkauf in das Eigentum von Linden zurÃŒckfÃŒhren! Überlegen Sie sich, wem Sie diese FÀhigkeit verleihen."
- name="land release" />
- <action description="Land.zu.verkaufen-Info einstellen"
- longdescription="Land zu verkaufen-Info einstellen. *WARNUNG* Mitglieder in einer Rolle mit dieser FÀhigkeit können gruppeneigenes Land jederzeit unter „Land-Info“ &gt; „Allgemein“ verkaufen! Überlegen Sie sich, wem Sie diese FÀhigkeit verleihen."
- name="land set sale info" />
- <action description="Parzellen teilen und zusammenlegen"
- longdescription="Parzellen teilen und zusammenlegen. Klicken Sie dazu mit rechts auf den Boden, wÀhlen sie „Terrain bearbeiten“ und ziehen Sie die Maus auf das Land, um eine Auswahl zu treffen. Zum Teilen treffen Sie eine Auswahl und klicken auf „Unterteilen...“. Zum Zusammenlegen von zwei oder mehr angrenzenden Parzellen klicken Sie auf „Zusammenlegen...“."
- name="land divide join" />
+ <action_set description="Diese FÀhigkeiten ermöglichen es, gruppeneigenes Land zu ÃŒbertragen, zu bearbeiten und zu verkaufen. Klicken Sie mit rechts auf den Boden und wÀhlen Sie „Land-Info...“ oder klicken Sie in der Navigationsleiste auf das Symbol „i&quot;." name="Parcel Management">
+ <action description="Land ÃŒbertragen und fÃŒr Gruppe kaufen" longdescription="Land ÃŒbertragen und fÃŒr Gruppe kaufen. Diese Einstellung finden Sie unter „Land-Info“ &gt; „Allgemein“." name="land deed"/>
+ <action description="Land Governor Linden ÃŒberlassen" longdescription="Land Governor Linden ÃŒberlassen. *WARNUNG* Jedes Mitglied in einer Rolle mit dieser FÀhigkeit kann gruppeneigenes Land unter „Land-Info“ &gt; „Allgemein“ aufgeben und es ohne Verkauf in das Eigentum von Linden zurÃŒckfÃŒhren! Überlegen Sie sich, wem Sie diese FÀhigkeit verleihen." name="land release"/>
+ <action description="Land.zu.verkaufen-Info einstellen" longdescription="Land zu verkaufen-Info einstellen. *WARNUNG* Mitglieder in einer Rolle mit dieser FÀhigkeit können gruppeneigenes Land jederzeit unter „Land-Info“ &gt; „Allgemein“ verkaufen! Überlegen Sie sich, wem Sie diese FÀhigkeit verleihen." name="land set sale info"/>
+ <action description="Parzellen teilen und zusammenlegen" longdescription="Parzellen teilen und zusammenlegen. Klicken Sie dazu mit rechts auf den Boden, wÀhlen sie „Terrain bearbeiten“ und ziehen Sie die Maus auf das Land, um eine Auswahl zu treffen. Zum Teilen treffen Sie eine Auswahl und klicken auf „Unterteilen“. Zum Zusammenlegen von zwei oder mehr angrenzenden Parzellen klicken Sie auf „Zusammenlegen“." name="land divide join"/>
</action_set>
- <action_set
- description="Diese FÀhigkeiten ermöglichen es, den Parzellennamen und die Veröffentlichungseinstellungen sowie die Anzeige des Suchverzeichnisses, den Landepunkt und die TP-Routenoptionen festzulegen."
- name="Parcel Identity">
- <action
- description="„In Orte suchen anzeigen“ ein-/ausschalten und Kategorie festlegen"
- longdescription="Auf der Registerkarte „Optionen“ unter „Land-Info“ können Sie „In Orte suchen anzeigen“ ein- und ausschalten und die Parzellenkategorie festlegen."
- name="land find places" />
- <action
- description="Name und Beschreibung der Parzelle und Einstellungen fÃŒr „Im Web veröffentlichen“ Àndern"
- longdescription="Name und Beschreibung der Parzelle und Einstellungen fÃŒr „Im Web veröffentlichen“ Àndern. Diese Einstellungen finden Sie unter „Land-Info“ &gt; „Optionen“."
- name="land change identity" />
- <action description="Landepunkt und Teleport-Route festlegen"
- longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können auf einer gruppeneigenen Parzelle einen Landepunkt fÃŒr ankommende Teleports und Teleport-Routen festlegen. Diese Einstellungen finden Sie unter „Land-Info“ &gt; „Optionen“."
- name="land set landing point" />
+ <action_set description="Diese FÀhigkeiten ermöglichen es, den Parzellennamen und die Veröffentlichungseinstellungen sowie die Anzeige des Suchverzeichnisses, den Landepunkt und die TP-Routenoptionen festzulegen." name="Parcel Identity">
+ <action description="„Ort in Suche anzeigen&quot; ein-/ausschalten und Kategorie festlegen." longdescription="Auf der Registerkarte „Optionen“ unter „Land-Info“ können Sie „Ort in Suche anzeigen“ ein- und ausschalten und die Parzellenkategorie festlegen." name="land find places"/>
+ <action description="Parzellenname, Beschreibung und Einstellung fÃŒr „Ort in Suche anzeigen&quot; Àndern" longdescription="Parzellenname, Beschreibung und Einstellung fÃŒr „Ort in Suche anzeigen&quot; Àndern Diese Einstellungen finden Sie unter „Land-Info“ &gt; Registerkarte „Optionen“." name="land change identity"/>
+ <action description="Landepunkt und Teleport-Route festlegen" longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können auf einer gruppeneigenen Parzelle einen Landepunkt fÃŒr ankommende Teleports und Teleport-Routen festlegen. Diese Einstellungen finden Sie unter „Land-Info“ &gt; „Optionen“." name="land set landing point"/>
</action_set>
- <action_set
- description="Diese FÀhigkeiten ermöglichen es, Parzellenoptionen wie „Objekte erstellen“, „Terrain bearbeiten“ sowie Musik- und Medieneinstellungen zu Àndern."
- name="Parcel Settings">
- <action description="Musik- und Medieneinstellungen Àndern"
- longdescription="Die Einstellungen fÃŒr Streaming-Musik und Filme finden Sie unter „Land-Info“ &gt; „Medien“."
- name="land change media" />
- <action description="„Terrain bearbeiten“ ein/aus"
- longdescription="„Terrain bearbeiten“ ein/aus. *WARNUNG* „Land-Info“ &gt; „Optionen“ &gt; „Terrain bearbeiten“ ermöglicht jedem das Terraformen Ihres GrundstÃŒcks und das Setzen und Verschieben von Linden-Pflanzen. Überlegen Sie sich, wem Sie diese FÀhigkeit verleihen. Diese Einstellung finden Sie unter „Land-Info“ &gt; „Optionen“."
- name="land edit" />
- <action description="„Land-Info“-Optionen einstellen"
- longdescription="Auf der Registerkarte „Optionen“ unter „Land-Info“ können Sie „Sicher (kein Schaden)“ und „Fliegen“ ein- und ausschalten und Einwohnern folgende Aktionen auf gruppeneigenem Land erlauben: „Objekte erstellen“, „Terrain bearbeiten“, „Landmarken erstellen“ und „Skripts ausfÃŒhren“."
- name="land options" />
+ <action_set description="Diese FÀhigkeiten ermöglichen es, Parzellenoptionen wie „Objekte erstellen“, „Terrain bearbeiten“ sowie Musik- und Medieneinstellungen zu Àndern." name="Parcel Settings">
+ <action description="Musik- und Medieneinstellungen Àndern" longdescription="Die Einstellungen fÃŒr Streaming-Musik und Filme finden Sie unter „Land-Info“ &gt; „Medien“." name="land change media"/>
+ <action description="„Terrain bearbeiten“ ein/aus" longdescription="„Terrain bearbeiten“ ein/aus. *WARNUNG* „Land-Info“ &gt; „Optionen“ &gt; „Terrain bearbeiten“ ermöglicht jedem das Terraformen Ihres GrundstÃŒcks und das Setzen und Verschieben von Linden-Pflanzen. Überlegen Sie sich, wem Sie diese FÀhigkeit verleihen. Diese Einstellung finden Sie unter „Land-Info“ &gt; „Optionen“." name="land edit"/>
+ <action description="„Land-Info“-Optionen einstellen" longdescription="„Sicher (kein Schaden)“ und „Fliegen“ ein- und ausschalten und Einwohnern folgende Aktionen erlauben: „Terrain bearbeiten“, „Bauen“, „Landmarken erstellen“ und „Skripts ausfÃŒhren“ auf gruppeneigenem Land in „Land-Info“ &gt; Registerkarte „Optionen“." name="land options"/>
</action_set>
- <action_set
- description="Diese FÀhigkeiten ermöglichen es, Mitgliedern das Umgehen von Restriktionen auf gruppeneigenen Parzellen zu erlauben."
- name="Parcel Powers">
- <action description="„Terrain bearbeiten“ zulassen"
- longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können auf einer gruppeneigenen Parzelle das Terrain bearbeiten, selbst wenn diese Option unter „Land-Info“ &gt; „Optionen“ deaktiviert ist."
- name="land allow edit land" />
- <action description="„Fliegen“ zulassen"
- longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können auf einer gruppeneigenen Parzelle fliegen, selbst wenn diese Option unter „Land-Info“ &gt; „Optionen“ deaktiviert ist."
- name="land allow fly" />
- <action description="„Objekte erstellen“ zulassen"
- longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können auf einer gruppeneigenen Parzelle Objekte erstellen, selbst wenn diese Option unter „Land-Info“ &gt; „Optionen“ deaktiviert ist."
- name="land allow create" />
- <action description="„Landmarke erstellen“ zulassen"
- longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können fÃŒr eine gruppeneigene Parzelle eine Landmarke erstellen, selbst wenn diese Option unter „Land-Info“ &gt; „Optionen“ deaktiviert ist."
- name="land allow landmark" />
- <action description="„Hier als Zuhause wÀhlen“ auf Gruppenland zulassen"
- longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können auf einer an diese Gruppe ÃŒbertragenen Parzelle die Funktion „Welt“ &gt; „Hier als Zuhause wÀhlen“ verwenden."
- name="land allow set home" />
+ <action_set description="Diese FÀhigkeiten ermöglichen es, Mitgliedern das Umgehen von Restriktionen auf gruppeneigenen Parzellen zu erlauben." name="Parcel Powers">
+ <action description="„Terrain bearbeiten“ zulassen" longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können auf einer gruppeneigenen Parzelle das Terrain bearbeiten, selbst wenn diese Option unter „Land-Info“ &gt; „Optionen“ deaktiviert ist." name="land allow edit land"/>
+ <action description="„Fliegen“ zulassen" longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können auf einer gruppeneigenen Parzelle fliegen, selbst wenn diese Option unter „Land-Info“ &gt; „Optionen“ deaktiviert ist." name="land allow fly"/>
+ <action description="„Objekte erstellen“ zulassen" longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können auf einer gruppeneigenen Parzelle Objekte erstellen, selbst wenn diese Option unter „Land-Info“ &gt; „Optionen“ deaktiviert ist." name="land allow create"/>
+ <action description="„Landmarke erstellen“ zulassen" longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können fÃŒr eine gruppeneigene Parzelle eine Landmarke erstellen, selbst wenn diese Option unter „Land-Info“ &gt; „Optionen“ deaktiviert ist." name="land allow landmark"/>
+ <action description="„Hier als Zuhause wÀhlen“ auf Gruppenland zulassen" longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können auf einer an diese Gruppe ÃŒbertragenen Parzelle die Funktion „Welt“ &gt; „Landmarken“ &gt; „Hier als Zuhause wÀhlen“ verwenden." name="land allow set home"/>
</action_set>
- <action_set
- description="Diese FÀhigkeiten ermöglichen es, den Zugang auf gruppeneigenen Parzellen zu steuern. Dazu gehört das Einfrieren und Ausschließen von Einwohnern."
- name="Parcel Access">
- <action description="Parzellen-Zugangslisten verwalten"
- longdescription="Parzellen-Zugangslisten bearbeiten Sie unter „Land-Info“ &gt; „Zugang“."
- name="land manage allowed" />
- <action description="Parzellen-Bannlisten verwalten"
- longdescription="Parzellen-Bannlisten bearbeiten Sie unter „Land-Info“ &gt; „Verbannen“."
- name="land manage banned" />
- <action
- description="Parzelleneinstellungen fÃŒr „PÀsse verkaufen...“ Àndern"
- longdescription="Die Parzellen-Einstellungen fÃŒr „PÀsse verkaufen...“ Àndern Sie unter „Land-Info“ &gt; „Zugang“."
- name="land manage passes" />
- <action description="Einwohner aus Parzellen werfen und einfrieren"
- longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können gegen unerwÃŒnschte Personen auf einer gruppeneigenen Parzelle Maßnahmen ergreifen. Klicken Sie die Person mit rechts an und wÀhlen Sie „Mehr“ &gt;, dann „Ausschließen...“ oder „Einfrieren...“."
- name="land admin" />
+ <action_set description="Diese FÀhigkeiten ermöglichen es, den Zugang auf gruppeneigenen Parzellen zu steuern. Dazu gehört das Einfrieren und Ausschließen von Einwohnern." name="Parcel Access">
+ <action description="Parzellen-Zugangslisten verwalten" longdescription="Parzellen-Zugangslisten bearbeiten Sie unter „Land-Info“ &gt; „Zugang“." name="land manage allowed"/>
+ <action description="Parzellen-Bannlisten verwalten" longdescription="Bannlisten fÃŒr Parzellen bearbeiten Sie unter „Land-Info“ &gt; Registerkarte „Zugang“." name="land manage banned"/>
+ <action description="Parzelleneinstellungen fÃŒr „PÀsse verkaufen“ Àndern" longdescription="Die Parzellen-Einstellungen fÃŒr „PÀsse verkaufen“ Àndern Sie unter „Land-Info“ &gt; Registerkarte „Zugang“." name="land manage passes"/>
+ <action description="Einwohner aus Parzellen werfen und einfrieren" longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können gegen unerwÃŒnschte Einwohner auf einer gruppeneigenen Parzelle Maßnahmen ergreifen. Klicken Sie den Einwohner mit rechts an und wÀhlen Sie „Hinauswerfen“ oder „Einfrieren“." name="land admin"/>
</action_set>
- <action_set
- description="Diese FÀhigkeiten ermöglichen es, Mitgliedern das ZurÌckgeben von Objekten sowie das Platzieren und Verschieben von Linden-Pflanzen zu erlauben. Mitglieder können das GrundstÌck aufrÀumen und an der Landschaftsgestaltung mitwirken. Aber Vorsicht: ZurÌckgegebene Objekte können nicht mehr zurÌckgeholt werden."
- name="Parcel Content">
- <action description="Gruppeneigene Objekte zurÃŒckgeben"
- longdescription="Gruppeneigene Objekte auf gruppeneigenen Parzellen können Sie unter „Land-Info“ &gt; „Objekte“ zurÃŒckgeben."
- name="land return group owned" />
- <action description="Gruppenobjekte zurÃŒckgeben"
- longdescription="Gruppenobjekte auf gruppeneigenen Parzellen können Sie unter „Land-Info“ &gt; „Objekte“ zurÃŒckgeben."
- name="land return group set" />
- <action description="Gruppenfremde Objekte zurÃŒckgeben"
- longdescription="Objekte von gruppenfremden Personen auf gruppeneigenen Parzellen können Sie unter „Land-Info“ &gt; „Objekte“ zurÃŒckgeben."
- name="land return non group" />
- <action description="Landschaftsgestaltung mit Linden-Pflanzen"
- longdescription="Die FÀhigkeit zur Landschaftsgestaltung ermöglicht das Platzieren und Verschieben von Linden-BÀumen, -Pflanzen und -GrÀsern. Diese Objekte finden Sie im Bibliotheksordner des Inventars unter „Objekte“. Sie lassen sich auch mit der SchaltflÀche „Erstellen“ erzeugen."
- name="land gardening" />
+ <action_set description="Diese FÀhigkeiten ermöglichen es, Mitgliedern das ZurÌckgeben von Objekten sowie das Platzieren und Verschieben von Linden-Pflanzen zu erlauben. Mitglieder können das GrundstÌck aufrÀumen und an der Landschaftsgestaltung mitwirken. Aber Vorsicht: ZurÌckgegebene Objekte können nicht mehr zurÌckgeholt werden." name="Parcel Content">
+ <action description="Gruppeneigene Objekte zurÃŒckgeben" longdescription="Gruppeneigene Objekte auf gruppeneigenen Parzellen können Sie unter „Land-Info“ &gt; „Objekte“ zurÃŒckgeben." name="land return group owned"/>
+ <action description="Gruppenobjekte zurÃŒckgeben" longdescription="Gruppenobjekte auf gruppeneigenen Parzellen können Sie unter „Land-Info“ &gt; „Objekte“ zurÃŒckgeben." name="land return group set"/>
+ <action description="Gruppenfremde Objekte zurÃŒckgeben" longdescription="Objekte von gruppenfremden Personen auf gruppeneigenen Parzellen können Sie unter „Land-Info“ &gt; „Objekte“ zurÃŒckgeben." name="land return non group"/>
+ <action description="Landschaftsgestaltung mit Linden-Pflanzen" longdescription="Die FÀhigkeit zur Landschaftsgestaltung ermöglicht das Platzieren und Verschieben von Linden-BÀumen, -Pflanzen und -GrÀsern. Diese Objekte finden Sie im Bibliotheksordner des Inventars unter Objekte. Sie lassen sich auch mit der MenÌ Erstellen erzeugen." name="land gardening"/>
</action_set>
- <action_set
- description="Diese FÀhigkeiten ermöglichen es, gruppeneigene Objekte zu ÃŒbertragen, zu bearbeiten und zu verkaufen. Änderungen werden unter „Auswahl-Tool“ &gt; „Bearbeiten“ auf der Registerkarte „Allgemein“ vorgenommen. Klicken Sie mit rechts auf ein Objekt und wÀhlen Sie „Bearbeiten“, um seine Einstellungen anzuzeigen."
- name="Object Management">
- <action description="Objekte an Gruppe ÃŒbertragen"
- longdescription="Objekte an eine Gruppe ÃŒbertragen können Sie unter „Auswahl-Tool“ &gt; „Bearbeiten“ auf der Registerkarte „Allgemein“."
- name="object deed" />
- <action
- description="Gruppeneigene Objekte manipulieren (verschieben, kopieren, bearbeiten)"
- longdescription="Gruppeneigene Objekte lassen sich unter „Auswahl-Tool“ &gt; „Bearbeiten“ auf der Registerkarte „Allgemein“ manipulieren (verschieben, kopieren, bearbeiten)."
- name="object manipulate" />
- <action description="Gruppeneigene Objekte zum Verkauf freigeben"
- longdescription="Gruppeneigene Objekte zum Verkauf freigeben können Sie unter „Auswahl-Tool“ &gt; „Bearbeiten“ auf der Registerkarte „Allgemein“."
- name="object set sale" />
+ <action_set description="Diese FÀhigkeiten ermöglichen es, gruppeneigene Objekte zu ÃŒbertragen, zu bearbeiten und zu verkaufen. Änderungen werden im Werkzeug Bearbeiten auf der Registerkarte Allgemein vorgenommen. Klicken Sie mit rechts auf ein Objekt und wÀhlen Sie &apos;Bearbeiten &apos;, um seine Einstellungen anzuzeigen." name="Object Management">
+ <action description="Objekte an Gruppe ÃŒbertragen" longdescription="Objekte an eine Gruppe ÃŒbertragen können Sie im Werkzeug „Bearbeiten“ auf der Registerkarte „Allgemein“." name="object deed"/>
+ <action description="Gruppeneigene Objekte manipulieren (verschieben, kopieren, bearbeiten)" longdescription="Gruppeneigene Objekte lassen sich im Werkzeug „Bearbeiten“ auf der Registerkarte „Allgemein“ manipulieren (verschieben, kopieren, bearbeiten)." name="object manipulate"/>
+ <action description="Gruppeneigene Objekte zum Verkauf freigeben" longdescription="Gruppeneigene Objekte zum Verkauf freigeben, können Sie im Werkzeug „Bearbeiten“ auf der Registerkarte „Allgemein“." name="object set sale"/>
</action_set>
- <action_set
- description="Diese FÀhigkeiten ermöglichen es, Gruppenschulden und Gruppendividenden zu aktivieren und den Zugriff auf das Gruppenkonto zu beschrÀnken."
- name="Accounting">
- <action description="Gruppenschulden zahlen und Gruppendividende erhalten"
- longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit zahlen automatisch Gruppenschulden und erhalten Gruppendividenden. D. h. sie erhalten einen Anteil an VerkÀufen von gruppeneigenem Land, der tÀglich verrechnet wird. Außerdem zahlen Sie automatisch fÃŒr anfallende Kosten wie Parzellenlisten-GebÃŒhren."
- name="accounting accountable" />
+ <action_set description="Diese FÀhigkeiten ermöglichen es, Gruppenschulden und Gruppendividenden zu aktivieren und den Zugriff auf das Gruppenkonto zu beschrÀnken." name="Accounting">
+ <action description="Gruppenschulden zahlen und Gruppendividende erhalten" longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit zahlen automatisch Gruppenschulden und erhalten Gruppendividenden. D. h. sie erhalten einen Anteil an VerkÀufen von gruppeneigenem Land, der tÀglich verrechnet wird. Außerdem zahlen Sie automatisch fÃŒr anfallende Kosten wie Parzellenlisten-GebÃŒhren." name="accounting accountable"/>
</action_set>
- <action_set
- description="Diese FÀhigkeiten ermöglichen es, Mitgliedern das Senden, Empfangen und Anzeigen von Gruppennachrichten zu erlauben."
- name="Notices">
- <action description="Mitteilungen senden"
- longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können in der Gruppeninfo unter „Mitteilungen“ Mitteilungen senden."
- name="notices send" />
- <action description="Mitteilungen erhalten und Àltere Mitteilungen anzeigen"
- longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können Mitteilungen erhalten und in der Gruppeninfo unter „Mitteilungen“ Àltere Mitteilungen einsehen."
- name="notices receive" />
+ <action_set description="Diese FÀhigkeiten ermöglichen es, Mitgliedern das Senden, Empfangen und Anzeigen von Gruppennachrichten zu erlauben." name="Notices">
+ <action description="Mitteilungen senden" longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können Mitteilungen im Abschnitt Gruppe &gt; Mitteilungen senden." name="notices send"/>
+ <action description="Mitteilungen erhalten und Àltere Mitteilungen anzeigen" longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können Mitteilungen erhalten und im Abschnitt Gruppe &gt; Mitteilungen Àltere Mitteilungen anzeigen." name="notices receive"/>
</action_set>
- <action_set
- description="Diese FÀhigkeiten ermöglichen es, Mitgliedern das Erstellen von Anfragen, das Abstimmen Ìber Anfragen und das Anzeigen des Abstimmprotokolls zu erlauben."
- name="Proposals">
- <action description="Neue Anfragen"
- longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können Anfragen stellen, ÃŒber die auf der Registerkarte „Anfragen“ in der Gruppeninfo abgestimmt werden kann."
- name="proposal start" />
- <action description="Über Anfragen abstimmen"
- longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können in der Gruppeninfo unter „Anfragen“ ÃŒber Anfragen abstimmen."
- name="proposal vote" />
+ <action_set description="Diese FÀhigkeiten ermöglichen es, Mitgliedern das Erstellen von Anfragen, das Abstimmen Ìber Anfragen und das Anzeigen des Abstimmprotokolls zu erlauben." name="Proposals">
+ <action description="Neue Anfragen" longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können Anfragen stellen, ÃŒber die auf der Registerkarte „Anfragen“ in der Gruppeninfo abgestimmt werden kann." name="proposal start"/>
+ <action description="Über Anfragen abstimmen" longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können in der Gruppeninfo unter „Anfragen“ ÃŒber Anfragen abstimmen." name="proposal vote"/>
</action_set>
- <action_set
- description="Diese FÀhigkeiten ermöglichen es, den Zugang zu Gruppen-Chat und Gruppen-Voice-Chat zu steuern."
- name="Chat">
- <action description="Gruppen-Chat beitreten"
- longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können Gruppen-Chat und Gruppen-Voice-Chat beitreten."
- name="join group chat" />
- <action description="Gruppen-Voice-Chat beitreten"
- longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können Gruppen-Voice-Chat beitreten. HINWEIS: Sie benötigen die FÀhigkeit „Gruppen-Chat beitreten“, um Zugang zu dieser Voice-Chat-Sitzung zu erhalten."
- name="join voice chat" />
- <action description="Gruppen-Chat moderieren"
- longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können den Zugang zu und die Teilnahme an Gruppen-Chat- und Voice-Chat-Sitzungen steuern."
- name="moderate group chat" />
+ <action_set description="Diese FÀhigkeiten ermöglichen es, den Zugang zu Gruppen-Chat und Gruppen-Voice-Chat zu steuern." name="Chat">
+ <action description="Gruppen-Chat beitreten" longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können Gruppen-Chat und Gruppen-Voice-Chat beitreten." name="join group chat"/>
+ <action description="Gruppen-Voice-Chat beitreten" longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können Gruppen-Voice-Chat beitreten. HINWEIS: Sie benötigen die FÀhigkeit „Gruppen-Chat beitreten“, um Zugang zu dieser Voice-Chat-Sitzung zu erhalten." name="join voice chat"/>
+ <action description="Gruppen-Chat moderieren" longdescription="Mitglieder in einer Rolle mit dieser FÀhigkeit können den Zugang zu und die Teilnahme an Gruppen-Chat- und Voice-Chat-Sitzungen steuern." name="moderate group chat"/>
</action_set>
</role_actions>
diff --git a/indra/newview/skins/default/xui/de/sidepanel_appearance.xml b/indra/newview/skins/default/xui/de/sidepanel_appearance.xml
index 07d35f30e4..7a280bd7ff 100644
--- a/indra/newview/skins/default/xui/de/sidepanel_appearance.xml
+++ b/indra/newview/skins/default/xui/de/sidepanel_appearance.xml
@@ -1,16 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Aussehen" name="appearance panel">
+<panel label="Outfits" name="appearance panel">
<string name="No Outfit" value="Kein Outfit"/>
<panel name="panel_currentlook">
<button label="Bearbeiten" name="editappearance_btn"/>
<text name="currentlook_title">
- Aktuelles Outfit:
+ (nicht gespeichert)
</text>
<text name="currentlook_name">
- Mein Outfit
+ MyOutfit With a really Long Name like MOOSE
</text>
</panel>
- <filter_editor label="Filter" name="Filter"/>
+ <filter_editor label="Outfits filtern" name="Filter"/>
<button label="Anziehen" name="wear_btn"/>
<button label="Neues Outfit" name="newlook_btn"/>
</panel>
diff --git a/indra/newview/skins/default/xui/de/sidepanel_inventory.xml b/indra/newview/skins/default/xui/de/sidepanel_inventory.xml
index d40e2f3398..f6cf911bb3 100644
--- a/indra/newview/skins/default/xui/de/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/de/sidepanel_inventory.xml
@@ -2,7 +2,7 @@
<panel label="Sonstiges" name="objects panel">
<panel label="" name="sidepanel__inventory_panel">
<panel name="button_panel">
- <button label="Info" name="info_btn"/>
+ <button label="Profil" name="info_btn"/>
<button label="Anziehen" name="wear_btn"/>
<button label="Wiedergeben" name="play_btn"/>
<button label="Teleportieren" name="teleport_btn"/>
diff --git a/indra/newview/skins/default/xui/de/sidepanel_item_info.xml b/indra/newview/skins/default/xui/de/sidepanel_item_info.xml
index 947ffbf186..09935019ab 100644
--- a/indra/newview/skins/default/xui/de/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/de/sidepanel_item_info.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="item properties" title="Inventarobjekt-Eigenschaften">
+<panel name="item properties" title="Objektprofil">
<panel.string name="unknown">
(unbekannt)
</panel.string>
@@ -15,6 +15,8 @@
<panel.string name="acquiredDate">
[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]
</panel.string>
+ <text name="title" value="Objektprofil"/>
+ <text name="where" value="(Inventar)"/>
<panel label="">
<text name="LabelItemNameTitle">
Name:
@@ -28,53 +30,50 @@
<text name="LabelCreatorName">
Nicole Linden
</text>
- <button label="Profil..." name="BtnCreator"/>
+ <button label="Profil" name="BtnCreator"/>
<text name="LabelOwnerTitle">
EigentÃŒmer:
</text>
<text name="LabelOwnerName">
Thrax Linden
</text>
- <button label="Profil..." name="BtnOwner"/>
+ <button label="Profil" name="BtnOwner"/>
<text name="LabelAcquiredTitle">
Erworben:
</text>
<text name="LabelAcquiredDate">
Mittwoch, 24. Mai 2006, 12:50:46
</text>
- <text name="OwnerLabel">
- Sie:
- </text>
- <check_box label="Bearbeiten" name="CheckOwnerModify"/>
- <check_box label="Kopieren" name="CheckOwnerCopy"/>
- <check_box label="Wiederverkaufen" name="CheckOwnerTransfer"/>
- <text name="AnyoneLabel">
- Jeder:
- </text>
- <check_box label="Kopieren" name="CheckEveryoneCopy"/>
- <text name="GroupLabel">
- Gruppe:
- </text>
- <check_box label="Teilen" name="CheckShareWithGroup"/>
- <text name="NextOwnerLabel">
- NÀchster EigentÌmer:
- </text>
- <check_box label="Bearbeiten" name="CheckNextOwnerModify"/>
- <check_box label="Kopieren" name="CheckNextOwnerCopy"/>
- <check_box label="Wiederverkaufen" name="CheckNextOwnerTransfer"/>
+ <panel name="perms_inv">
+ <text name="perm_modify">
+ Sie können:
+ </text>
+ <check_box label="Bearbeiten" name="CheckOwnerModify"/>
+ <check_box label="Kopieren" name="CheckOwnerCopy"/>
+ <check_box label="Transferieren" name="CheckOwnerTransfer"/>
+ <text name="AnyoneLabel">
+ Jeder:
+ </text>
+ <check_box label="Kopieren" name="CheckEveryoneCopy"/>
+ <text name="GroupLabel">
+ Gruppe:
+ </text>
+ <check_box label="Teilen" name="CheckShareWithGroup" tool_tip="Mit allen Mitgliedern der zugeordneten Gruppe, Ihre Berechtigungen dieses Objekt zu Àndern teilen. Sie mÃŒssen Übereignen, um RollenbeschrÀnkungen zu aktivieren."/>
+ <text name="NextOwnerLabel">
+ NÀchster EigentÌmer:
+ </text>
+ <check_box label="Bearbeiten" name="CheckNextOwnerModify"/>
+ <check_box label="Kopieren" name="CheckNextOwnerCopy"/>
+ <check_box label="Transferieren" name="CheckNextOwnerTransfer" tool_tip="NÀchster EigentÌmer kann dieses Objekt weitergeben oder -verkaufen"/>
+ </panel>
<check_box label="Zum Verkauf" name="CheckPurchase"/>
<combo_box name="combobox sale copy">
<combo_box.item label="Kopieren" name="Copy"/>
<combo_box.item label="Original" name="Original"/>
</combo_box>
- <spinner label="Preis:" name="Edit Cost"/>
- <text name="CurrencySymbol">
- L$
- </text>
+ <spinner label="Preis: L$" name="Edit Cost"/>
</panel>
<panel name="button_panel">
- <button label="Bearbeiten" name="edit_btn"/>
<button label="Abbrechen" name="cancel_btn"/>
- <button label="Speichern" name="save_btn"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/de/sidepanel_task_info.xml b/indra/newview/skins/default/xui/de/sidepanel_task_info.xml
index b0ce47e3ae..9f8fdc085a 100644
--- a/indra/newview/skins/default/xui/de/sidepanel_task_info.xml
+++ b/indra/newview/skins/default/xui/de/sidepanel_task_info.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="object properties" title="Objekteigenschaften">
+<panel name="object properties" title="Objektprofil">
<panel.string name="text deed continued">
Übertragung
</panel.string>
@@ -36,6 +36,8 @@
<panel.string name="Sale Mixed">
Mischverkauf
</panel.string>
+ <text name="title" value="Objektprofil"/>
+ <text name="where" value="(Inworld)"/>
<panel label="">
<text name="Name:">
Name:
@@ -43,11 +45,11 @@
<text name="Description:">
Beschreibung:
</text>
- <text name="Creator:">
+ <text name="CreatorNameLabel">
Ersteller:
</text>
<text name="Creator Name">
- Esbee Linden
+ Erica Linden
</text>
<text name="Owner:">
EigentÃŒmer:
@@ -55,13 +57,12 @@
<text name="Owner Name">
Erica Linden
</text>
- <text name="Group:">
+ <text name="Group_label">
Gruppe:
</text>
<button name="button set group" tool_tip="Eine Gruppe auswÀhlen, um die Berechtigungen des Objekts zu teilen."/>
<name_box initial_value="Wird geladen..." name="Group Name Proxy"/>
<button label="Übertragung" label_selected="Übertragung" name="button deed" tool_tip="Eine Übertragung bedeutet, dass das Objekt mit den Berechtigungen „NÀchster EigentÃŒmer“ weitergegeben wird. Mit der Gruppe geteilte Objekte können von einem Gruppen-Officer ÃŒbertragen werden."/>
- <check_box label="Teilen" name="checkbox share with group" tool_tip="Mit allen Mitgliedern der zugeordneten Gruppe, Ihre Berechtigungen dieses Objekt zu Àndern teilen. Sie mÃŒssen Übereignen, um RollenbeschrÀnkungen zu aktivieren."/>
<text name="label click action">
Bei Linksklick:
</text>
@@ -72,55 +73,56 @@
<combo_box.item label="Objekt bezahlen" name="Payobject"/>
<combo_box.item label="Öffnen" name="Open"/>
</combo_box>
- <check_box label="Zum Verkauf:" name="checkbox for sale"/>
- <combo_box name="sale type">
- <combo_box.item label="Kopieren" name="Copy"/>
- <combo_box.item label="Inhalte" name="Contents"/>
- <combo_box.item label="Original" name="Original"/>
- </combo_box>
- <spinner label="Preis: L$" name="Edit Cost"/>
- <check_box label="In Suche anzeigen" name="search_check" tool_tip="Dieses Objekt in Suchergebnissen anzeigen"/>
- <panel name="perms_build">
+ <panel name="perms_inv">
<text name="perm_modify">
Sie können dieses Objekt bearbeiten.
</text>
<text name="Anyone can:">
Jeder:
</text>
- <check_box label="Bewegen" name="checkbox allow everyone move"/>
<check_box label="Kopieren" name="checkbox allow everyone copy"/>
- <text name="Next owner can:">
+ <check_box label="Bewegen" name="checkbox allow everyone move"/>
+ <text name="GroupLabel">
+ Gruppe:
+ </text>
+ <check_box label="Teilen" name="checkbox share with group" tool_tip="Mit allen Mitgliedern der zugeordneten Gruppe, Ihre Berechtigungen dieses Objekt zu Àndern teilen. Sie mÃŒssen Übereignen, um RollenbeschrÀnkungen zu aktivieren."/>
+ <text name="NextOwnerLabel">
NÀchster EigentÌmer:
</text>
<check_box label="Bearbeiten" name="checkbox next owner can modify"/>
<check_box label="Kopieren" name="checkbox next owner can copy"/>
<check_box label="Transferieren" name="checkbox next owner can transfer" tool_tip="NÀchster EigentÌmer kann dieses Objekt weitergeben oder -verkaufen"/>
- <text name="B:">
- B:
- </text>
- <text name="O:">
- O:
- </text>
- <text name="G:">
- G:
- </text>
- <text name="E:">
- E:
- </text>
- <text name="N:">
- N:
- </text>
- <text name="F:">
- F:
- </text>
</panel>
+ <check_box label="Zum Verkauf" name="checkbox for sale"/>
+ <combo_box name="sale type">
+ <combo_box.item label="Kopieren" name="Copy"/>
+ <combo_box.item label="Inhalte" name="Contents"/>
+ <combo_box.item label="Original" name="Original"/>
+ </combo_box>
+ <spinner label="Preis: L$" name="Edit Cost"/>
+ <check_box label="In Suche anzeigen" name="search_check" tool_tip="Dieses Objekt in Suchergebnissen anzeigen"/>
+ <text name="B:">
+ B:
+ </text>
+ <text name="O:">
+ O:
+ </text>
+ <text name="G:">
+ G:
+ </text>
+ <text name="E:">
+ E:
+ </text>
+ <text name="N:">
+ N:
+ </text>
+ <text name="F:">
+ F:
+ </text>
</panel>
<panel name="button_panel">
- <button label="Bearbeiten" name="edit_btn"/>
<button label="Öffnen" name="open_btn"/>
<button label="Zahlen" name="pay_btn"/>
<button label="Kaufen" name="buy_btn"/>
- <button label="Abbrechen" name="cancel_btn"/>
- <button label="Speichern" name="save_btn"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/de/strings.xml b/indra/newview/skins/default/xui/de/strings.xml
index 1488f615a3..8fd1c59ca0 100644
--- a/indra/newview/skins/default/xui/de/strings.xml
+++ b/indra/newview/skins/default/xui/de/strings.xml
@@ -10,6 +10,9 @@
<string name="APP_NAME">
Second Life
</string>
+ <string name="CAPITALIZED_APP_NAME">
+ SECOND LIFE
+ </string>
<string name="SECOND_LIFE_GRID">
Second Life-Grid:
</string>
@@ -49,6 +52,9 @@
<string name="LoginInitializingMultimedia">
Multimedia wird initialisiert...
</string>
+ <string name="LoginInitializingFonts">
+ Schriftarten werden geladen...
+ </string>
<string name="LoginVerifyingCache">
Cache-Dateien werden ÃŒberprÃŒft (dauert 60-90 Sekunden)...
</string>
@@ -79,6 +85,9 @@
<string name="LoginDownloadingClothing">
Kleidung wird geladen...
</string>
+ <string name="LoginFailedNoNetwork">
+ Netzwerk Fehler: Eine Verbindung konnte nicht hergestellt werden. Bitte ÃŒberprÃŒfen Sie Ihre Netzwerkverbindung.
+ </string>
<string name="Quit">
Beenden
</string>
@@ -174,7 +183,7 @@
Karte anzeigen fÃŒr
</string>
<string name="BUTTON_CLOSE_DARWIN">
- Schließen (&#8984;W)
+ Schließen (⌘W)
</string>
<string name="BUTTON_CLOSE_WIN">
Schließen (Strg+W)
@@ -191,9 +200,6 @@
<string name="BUTTON_DOCK">
Andocken
</string>
- <string name="BUTTON_UNDOCK">
- Abkoppeln
- </string>
<string name="BUTTON_HELP">
Hilfe anzeigen
</string>
@@ -626,11 +632,14 @@
<string name="ControlYourCamera">
Kamerasteuerung
</string>
+ <string name="NotConnected">
+ Nicht verbunden
+ </string>
<string name="SIM_ACCESS_PG">
- PG
+ Allgemein
</string>
<string name="SIM_ACCESS_MATURE">
- Mature
+ Moderat
</string>
<string name="SIM_ACCESS_ADULT">
Adult
@@ -816,7 +825,10 @@
ESC drÃŒcken, um zur Normalansicht zurÃŒckzukehren
</string>
<string name="InventoryNoMatchingItems">
- Im Inventar wurden keine passenden Artikel gefunden.
+ Im Inventar wurden keine passenden Objekte gefunden.
+ </string>
+ <string name="FavoritesNoMatchingItems">
+ Hier eine Landmarke hin ziehen, um diese zu Ihrem Favoriten hinzuzufÃŒgen.
</string>
<string name="InventoryNoTexture">
Sie haben keine Kopie dieser Textur in Ihrem Inventar.
@@ -1288,6 +1300,156 @@
<string name="RegionInfoAllowedGroups">
ZulÀssige Gruppen: ([ALLOWEDGROUPS], max [MAXACCESS])
</string>
+ <string name="ScriptLimitsParcelScriptMemory">
+ Parzellenskript-Speicher
+ </string>
+ <string name="ScriptLimitsParcelsOwned">
+ AufgefÃŒhrte Parzellen: [PARCELS]
+ </string>
+ <string name="ScriptLimitsMemoryUsed">
+ Verwendeter Speicher: [COUNT] KB von [MAX] KB; [AVAILABLE] KB verfÃŒgbar
+ </string>
+ <string name="ScriptLimitsMemoryUsedSimple">
+ Verwendeter Speicher: [COUNT] KB
+ </string>
+ <string name="ScriptLimitsParcelScriptURLs">
+ Parzelleskript-URLs
+ </string>
+ <string name="ScriptLimitsURLsUsed">
+ Verwendete URLs: [COUNT] von [MAX]; [AVAILABLE] verfÃŒgbar
+ </string>
+ <string name="ScriptLimitsURLsUsedSimple">
+ Verwendete URLs: [COUNT]
+ </string>
+ <string name="ScriptLimitsRequestError">
+ Fehler bei Informationsabruf
+ </string>
+ <string name="ScriptLimitsRequestWrongRegion">
+ Fehler: Skriptinformationen sind nur fÃŒr Ihre aktuelle Region verfÃŒgbar
+ </string>
+ <string name="ScriptLimitsRequestWaiting">
+ Informationen werden abgerufen...
+ </string>
+ <string name="ScriptLimitsRequestDontOwnParcel">
+ Sie sind nicht berechtigt, diese Parzelle zu untersuchen.
+ </string>
+ <string name="SITTING_ON">
+ sitzt auf
+ </string>
+ <string name="ATTACH_CHEST">
+ Brust
+ </string>
+ <string name="ATTACH_HEAD">
+ Kopf
+ </string>
+ <string name="ATTACH_LSHOULDER">
+ Linke Schulter
+ </string>
+ <string name="ATTACH_RSHOULDER">
+ Rechte Schulter
+ </string>
+ <string name="ATTACH_LHAND">
+ Linke Hand
+ </string>
+ <string name="ATTACH_RHAND">
+ Rechte Hand
+ </string>
+ <string name="ATTACH_LFOOT">
+ Linker Fuß
+ </string>
+ <string name="ATTACH_RFOOT">
+ Rechter Fuß
+ </string>
+ <string name="ATTACH_BACK">
+ Hinten
+ </string>
+ <string name="ATTACH_PELVIS">
+ Becken
+ </string>
+ <string name="ATTACH_MOUTH">
+ Mund
+ </string>
+ <string name="ATTACH_CHIN">
+ Kinn
+ </string>
+ <string name="ATTACH_LEAR">
+ Linkes Ohr
+ </string>
+ <string name="ATTACH_REAR">
+ Rechtes Ohr
+ </string>
+ <string name="ATTACH_LEYE">
+ Linkes Auge
+ </string>
+ <string name="ATTACH_REYE">
+ Rechtes Auge
+ </string>
+ <string name="ATTACH_NOSE">
+ Nase
+ </string>
+ <string name="ATTACH_RUARM">
+ Rechter Oberarm
+ </string>
+ <string name="ATTACH_RLARM">
+ Rechter Unterarm
+ </string>
+ <string name="ATTACH_LUARM">
+ Linker Oberarm
+ </string>
+ <string name="ATTACH_LLARM">
+ Linker Unterarm
+ </string>
+ <string name="ATTACH_RHIP">
+ Rechte HÃŒfte
+ </string>
+ <string name="ATTACH_RULEG">
+ Rechter Oberschenkel
+ </string>
+ <string name="ATTACH_RLLEG">
+ Rechter Unterschenkel
+ </string>
+ <string name="ATTACH_LHIP">
+ Linke HÃŒfte
+ </string>
+ <string name="ATTACH_LULEG">
+ Linker Oberschenkel
+ </string>
+ <string name="ATTACH_LLLEG">
+ Linker Unterschenkel
+ </string>
+ <string name="ATTACH_BELLY">
+ Bauch
+ </string>
+ <string name="ATTACH_RPEC">
+ Rechts
+ </string>
+ <string name="ATTACH_LPEC">
+ Linke Brust
+ </string>
+ <string name="ATTACH_HUD_CENTER_2">
+ HUD Mitte 2
+ </string>
+ <string name="ATTACH_HUD_TOP_RIGHT">
+ HUD oben rechts
+ </string>
+ <string name="ATTACH_HUD_TOP_CENTER">
+ HUD oben Mitte
+ </string>
+ <string name="ATTACH_HUD_TOP_LEFT">
+ HUD oben links
+ </string>
+ <string name="ATTACH_HUD_CENTER_1">
+ HUD Mitte 1
+ </string>
+ <string name="ATTACH_HUD_BOTTOM_LEFT">
+ HUD unten links
+ </string>
+ <string name="ATTACH_HUD_BOTTOM">
+ HUD unten
+ </string>
+ <string name="ATTACH_HUD_BOTTOM_RIGHT">
+ HUD unten rechts
+ </string>
<string name="CursorPos">
Zeile [LINE], Spalte [COLUMN]
</string>
@@ -1338,6 +1500,12 @@
<string name="ClassifiedUpdateAfterPublish">
(wird nach Veröffentlichung aktualisiert)
</string>
+ <string name="NoPicksClassifiedsText">
+ Es wurde keine Auswahl getroffen/keine Anzeigen ausgewÀhlt
+ </string>
+ <string name="PicksClassifiedsLoadingText">
+ Wird geladen...
+ </string>
<string name="MultiPreviewTitle">
Vorschau
</string>
@@ -1414,23 +1582,35 @@
Unbekanntes Dateiformat .%s
GÃŒltige Formate: .wav, .tga, .bmp, .jpg, .jpeg oder .bvh
</string>
+ <string name="MuteObject2">
+ Ignorieren
+ </string>
+ <string name="MuteAvatar">
+ Ignorieren
+ </string>
+ <string name="UnmuteObject">
+ Freischalten
+ </string>
+ <string name="UnmuteAvatar">
+ Freischalten
+ </string>
<string name="AddLandmarkNavBarMenu">
- Landmarke hinzufÃŒgen...
+ Zu meinen Landmarken hinzufÃŒgen...
</string>
<string name="EditLandmarkNavBarMenu">
- Landmarke bearbeiten...
+ Meine Landmarken bearbeiten...
</string>
<string name="accel-mac-control">
- &#8963;
+ ⌃
</string>
<string name="accel-mac-command">
- &#8984;
+ ⌘
</string>
<string name="accel-mac-option">
- &#8997;
+ ⌥
</string>
<string name="accel-mac-shift">
- &#8679;
+ ⇧
</string>
<string name="accel-win-control">
Strg+
@@ -1616,7 +1796,7 @@ Falls der Fehler dann weiterhin auftritt, mÃŒssen Sie [APP_NAME] von Ihrem Syste
Unbehebbarer Fehler
</string>
<string name="MBRequiresAltiVec">
- [APP_NAME] erfordert einen Prozessor mit AltiVec (G4 oder spÀter).
+ [APP_NAME] erfordert einen Prozessor mit AltiVec (G4 oder spÀter).
</string>
<string name="MBAlreadyRunning">
[APP_NAME] lÀuft bereits.
@@ -1628,7 +1808,7 @@ Falls diese Nachricht erneut angezeigt wird, starten Sie Ihren Computer bitte ne
Möchten Sie einen Absturz-Bericht einschicken?
</string>
<string name="MBAlert">
- Alarm
+ Benachrichtigung
</string>
<string name="MBNoDirectX">
[APP_NAME] kann DirectX 9.0b oder höher nicht feststellen.
@@ -1744,7 +1924,7 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_
Volumen: Oben
</string>
<string name="Big Head">
- Großer Kopf
+ Groß
</string>
<string name="Big Pectorals">
Große Brustmuskeln
@@ -1780,13 +1960,13 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_
Sommersprossen
</string>
<string name="Body Thick">
- Körper - breit
+ breit
</string>
<string name="Body Thickness">
Körperbreite
</string>
<string name="Body Thin">
- Körper - schmal
+ schmal
</string>
<string name="Bow Legged">
o-beinig
@@ -2010,12 +2190,6 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_
<string name="Eyes Bugged">
Glubschaugen
</string>
- <string name="Eyes Shear Left Up">
- Augen Verzerrung links hoch
- </string>
- <string name="Eyes Shear Right Up">
- Augen Verzerrung rechts hoch
- </string>
<string name="Face Shear">
Gesichtsverzerrung
</string>
@@ -2149,7 +2323,7 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_
Absatzform
</string>
<string name="Height">
- Höhe
+ Größe
</string>
<string name="High">
Hoch
@@ -2431,16 +2605,16 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_
Mehr
</string>
<string name="More Sloped">
- Mehr
+ Flach
</string>
<string name="More Square">
- Mehr
+ Eckiger
</string>
<string name="More Upper Lip">
Mehr
</string>
<string name="More Vertical">
- Mehr
+ Steil
</string>
<string name="More Volume">
Mehr
@@ -2755,10 +2929,10 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_
Falten
</string>
<string name="Shoe Height">
- Höhe
+ Schuhart
</string>
<string name="Short">
- Kurz
+ Sandale
</string>
<string name="Short Arms">
Kurze Arme
@@ -2839,7 +3013,7 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_
Kleine HÀnde
</string>
<string name="Small Head">
- Kleiner Kopf
+ Klein
</string>
<string name="Smooth">
GlÀtten
@@ -2887,7 +3061,7 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_
Nach vorne
</string>
<string name="Tall">
- Groß
+ Stiefel
</string>
<string name="Taper Back">
Ansatzbreite hinten
@@ -3018,6 +3192,27 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_
<string name="LocationCtrlComboBtnTooltip">
Mein Reiseverlauf
</string>
+ <string name="LocationCtrlForSaleTooltip">
+ Dieses Land kaufen
+ </string>
+ <string name="LocationCtrlVoiceTooltip">
+ Voice hier nicht möglich
+ </string>
+ <string name="LocationCtrlFlyTooltip">
+ Fliegen ist unzulÀssig
+ </string>
+ <string name="LocationCtrlPushTooltip">
+ Kein Stoßen
+ </string>
+ <string name="LocationCtrlBuildTooltip">
+ Bauen/Fallen lassen von Objekten ist verboten
+ </string>
+ <string name="LocationCtrlScriptsTooltip">
+ Skripte sind unzulÀssig
+ </string>
+ <string name="LocationCtrlDamageTooltip">
+ Gesundheit
+ </string>
<string name="UpdaterWindowTitle">
[APP_NAME] Aktualisierung
</string>
@@ -3075,6 +3270,33 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_
<string name="IM_moderator_label">
(Moderator)
</string>
+ <string name="started_call">
+ haben/hat einen Anruf initiiert
+ </string>
+ <string name="joined_call">
+ ist dem GesprÀch beigetreten
+ </string>
+ <string name="ringing-im">
+ Verbindung wird hergestellt...
+ </string>
+ <string name="connected-im">
+ Verbunden. Klicken Sie auf Anruf beenden, um die Verbindung zu trennen
+ </string>
+ <string name="hang_up-im">
+ Anruf wurde beendet
+ </string>
+ <string name="answering-im">
+ Wird verbunden...
+ </string>
+ <string name="conference-title">
+ Ad-hoc-Konferenz
+ </string>
+ <string name="inventory_item_offered-im">
+ Inventarobjekt angeboten
+ </string>
+ <string name="share_alert">
+ Objekte aus dem Inventar hier her ziehen
+ </string>
<string name="only_user_message">
Sie sind der einzige Benutzer in dieser Sitzung.
</string>
@@ -3084,6 +3306,12 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_
<string name="invite_message">
Klicken Sie auf [BUTTON NAME], um eine Verbindung zu diesem Voice-Chat herzustellen.
</string>
+ <string name="muted_message">
+ Sie haben diesen Einwohner ignoriert. Wenn Sie eine Nachricht senden, wird dieser freigeschaltet.
+ </string>
+ <string name="generic">
+ Fehler bei Anfrage, bitte versuchen Sie es spÀter.
+ </string>
<string name="generic_request_error">
Fehler bei Anfrage, bitte versuchen Sie es spÀter.
</string>
@@ -3102,19 +3330,37 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_
<string name="not_a_mod_error">
Sie sind kein Sitzungsmoderator.
</string>
+ <string name="muted">
+ Ein Gruppenmoderator hat Ihren Text-Chat deaktiviert.
+ </string>
<string name="muted_error">
Ein Gruppenmoderator hat Ihren Text-Chat deaktiviert.
</string>
<string name="add_session_event">
Es konnten keine Benutzer zur Chat-Sitzung mit [RECIPIENT] hinzugefÃŒgt werden.
</string>
+ <string name="message">
+ Ihre Nachricht konnte nicht an die Chat-Sitzung mit [RECIPIENT] gesendet werden.
+ </string>
<string name="message_session_event">
Ihre Nachricht konnte nicht an die Chat-Sitzung mit [RECIPIENT] gesendet werden.
</string>
+ <string name="mute">
+ Fehler wÀhrend Moderation.
+ </string>
+ <string name="removed">
+ Sie wurden von der Gruppe ausgeschlossen.
+ </string>
<string name="removed_from_group">
Sie wurden von der Gruppe ausgeschlossen.
</string>
<string name="close_on_no_ability">
Sie haben nicht mehr die Berechtigung an der Chat-Sitzung teilzunehmen.
</string>
+ <string name="unread_chat_single">
+ [SOURCES] hat etwas Neues gesagt
+ </string>
+ <string name="unread_chat_multiple">
+ [SOURCES] haben etwas Neues gesagt
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/en/floater_aaa.xml b/indra/newview/skins/default/xui/en/floater_aaa.xml
index 0b48ba9321..b4d2dabc5c 100644
--- a/indra/newview/skins/default/xui/en/floater_aaa.xml
+++ b/indra/newview/skins/default/xui/en/floater_aaa.xml
@@ -18,7 +18,8 @@
single_instance="true"
width="320">
<string name="nudge_parabuild">Nudge 1</string>
- <string name="test_the_vlt">This string CHANGE is extracted.</string>
+ <string name="test_the_vlt">This string CHANGE2 is extracted.</string>
+ <string name="testing_eli">Just a test. change here. more change.</string>
<chat_history
allow_html="true"
bg_readonly_color="ChatHistoryBgColor"
diff --git a/indra/newview/skins/default/xui/en/floater_buy_currency.xml b/indra/newview/skins/default/xui/en/floater_buy_currency.xml
index 8f67f564a2..703a02d995 100644
--- a/indra/newview/skins/default/xui/en/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/en/floater_buy_currency.xml
@@ -114,6 +114,7 @@
</text>
<line_editor
type="string"
+ max_length="10"
halign="right"
font="SansSerifMedium"
select_on_focus="true"
diff --git a/indra/newview/skins/default/xui/en/floater_color_picker.xml b/indra/newview/skins/default/xui/en/floater_color_picker.xml
index fbecebc363..0daef29bc5 100644
--- a/indra/newview/skins/default/xui/en/floater_color_picker.xml
+++ b/indra/newview/skins/default/xui/en/floater_color_picker.xml
@@ -181,7 +181,7 @@
image_unselected="eye_button_inactive.tga"
layout="topleft"
left_pad="50"
- name="Pipette"
+ name="color_pipette"
width="28" />
<button
follows="right|bottom"
diff --git a/indra/newview/skins/default/xui/en/floater_map.xml b/indra/newview/skins/default/xui/en/floater_map.xml
index 3a5ceed5fb..3ddb7bc349 100644
--- a/indra/newview/skins/default/xui/en/floater_map.xml
+++ b/indra/newview/skins/default/xui/en/floater_map.xml
@@ -1,14 +1,17 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater
legacy_header_height="18"
- can_minimize="false"
+ can_minimize="true"
can_resize="true"
+ center_horiz="true"
+ center_vert="true"
follows="top|right"
height="225"
layout="topleft"
min_height="60"
min_width="174"
name="Map"
+ title="Mini Map"
help_topic="map"
save_rect="true"
save_visibility="true"
diff --git a/indra/newview/skins/default/xui/en/floater_search.xml b/indra/newview/skins/default/xui/en/floater_search.xml
index b0bb282abd..775e7d66f7 100644
--- a/indra/newview/skins/default/xui/en/floater_search.xml
+++ b/indra/newview/skins/default/xui/en/floater_search.xml
@@ -2,9 +2,9 @@
<floater
legacy_header_height="13"
can_resize="true"
- height="646"
+ height="546"
layout="topleft"
- min_height="646"
+ min_height="546"
min_width="670"
name="floater_search"
help_topic="floater_search"
@@ -21,7 +21,7 @@
Done
</floater.string>
<layout_stack
- bottom="641"
+ bottom="541"
follows="left|right|top|bottom"
layout="topleft"
left="10"
@@ -42,7 +42,7 @@
left="0"
name="browser"
top="0"
- height="600"
+ height="500"
width="650" />
<text
follows="bottom|left"
diff --git a/indra/newview/skins/default/xui/en/menu_attachment_other.xml b/indra/newview/skins/default/xui/en/menu_attachment_other.xml
index 5b94645b60..c5b31c7f63 100644
--- a/indra/newview/skins/default/xui/en/menu_attachment_other.xml
+++ b/indra/newview/skins/default/xui/en/menu_attachment_other.xml
@@ -30,6 +30,8 @@
name="Call">
<menu_item_call.on_click
function="Avatar.Call" />
+ <menu_item_call.on_enable
+ function="Avatar.EnableCall" />
</menu_item_call>
<menu_item_call
label="Invite to Group"
diff --git a/indra/newview/skins/default/xui/en/menu_avatar_other.xml b/indra/newview/skins/default/xui/en/menu_avatar_other.xml
index 0ad41546d2..ac9101cfd9 100644
--- a/indra/newview/skins/default/xui/en/menu_avatar_other.xml
+++ b/indra/newview/skins/default/xui/en/menu_avatar_other.xml
@@ -30,6 +30,8 @@
name="Call">
<menu_item_call.on_click
function="Avatar.Call" />
+ <menu_item_call.on_enable
+ function="Avatar.EnableCall" />
</menu_item_call>
<menu_item_call
label="Invite to Group"
diff --git a/indra/newview/skins/default/xui/en/menu_gesture_gear.xml b/indra/newview/skins/default/xui/en/menu_gesture_gear.xml
index d96f3c5494..649f0edff7 100644
--- a/indra/newview/skins/default/xui/en/menu_gesture_gear.xml
+++ b/indra/newview/skins/default/xui/en/menu_gesture_gear.xml
@@ -62,14 +62,4 @@
function="Gesture.EnableAction"
parameter="edit_gesture" />
</menu_item_call>
- <menu_item_call
- label="Inspect"
- layout="topleft"
- name="inspect">
- <on_click
- function="Gesture.Action.ShowPreview" />
- <on_enable
- function="Gesture.EnableAction"
- parameter="inspect" />
- </menu_item_call>
</menu>
diff --git a/indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml
index dde92f23b6..85ec174829 100644
--- a/indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml
+++ b/indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml
@@ -32,6 +32,8 @@
name="call">
<menu_item_call.on_click
function="InspectAvatar.Call"/>
+ <menu_item_call.on_enable
+ function="InspectAvatar.Gear.EnableCall"/>
</menu_item_call>
<menu_item_call
label="Teleport"
diff --git a/indra/newview/skins/default/xui/en/menu_login.xml b/indra/newview/skins/default/xui/en/menu_login.xml
index a0dec346a4..5f38522758 100644
--- a/indra/newview/skins/default/xui/en/menu_login.xml
+++ b/indra/newview/skins/default/xui/en/menu_login.xml
@@ -10,6 +10,7 @@
<menu
create_jump_keys="true"
label="Me"
+ tear_off="true"
name="File">
<menu_item_call
label="Preferences"
@@ -39,6 +40,7 @@
<menu
create_jump_keys="true"
label="Help"
+ tear_off="true"
name="Help">
<menu_item_call
label="[SECOND_LIFE] Help"
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index 7546d86313..b16660d06e 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -3914,7 +3914,7 @@ Are you sure you want to quit?
type="alertmodal">
Use this tool to report violations of the [http://secondlife.com/corporate/tos.php Terms of Service] and [http://secondlife.com/corporate/cs.php Community Standards].
-All reported abuses are investigated and resolved. You can view the resolution by reading the [http://secondlife.com/support/incidentreport.php Incident Report].
+All reported abuses are investigated and resolved.
<unique/>
</notification>
diff --git a/indra/newview/skins/default/xui/en/panel_block_list_sidetray.xml b/indra/newview/skins/default/xui/en/panel_block_list_sidetray.xml
index 39170b90ca..072ea882e6 100644
--- a/indra/newview/skins/default/xui/en/panel_block_list_sidetray.xml
+++ b/indra/newview/skins/default/xui/en/panel_block_list_sidetray.xml
@@ -29,7 +29,7 @@
text_color="white"
top="5"
width="250">
- Blocked List
+ Block List
</text>
<scroll_list
follows="all"
diff --git a/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml
index 0893c204e7..1968d96205 100644
--- a/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml
@@ -37,6 +37,7 @@ background_visible="true"
top="2"
width="23" />
<text
+ allow_html="false"
follows="top|left|right"
font="SansSerifHugeBold"
height="26"
diff --git a/indra/newview/skins/default/xui/en/panel_group_list_item.xml b/indra/newview/skins/default/xui/en/panel_group_list_item.xml
index c243d08b97..b674b39d9b 100644
--- a/indra/newview/skins/default/xui/en/panel_group_list_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_list_item.xml
@@ -36,6 +36,7 @@
top="2"
width="20" />
<text
+ allow_html="false"
follows="left|right"
font="SansSerifSmall"
height="15"
diff --git a/indra/newview/skins/default/xui/en/panel_landmark_info.xml b/indra/newview/skins/default/xui/en/panel_landmark_info.xml
index 67a4edbf32..396699ad6c 100644
--- a/indra/newview/skins/default/xui/en/panel_landmark_info.xml
+++ b/indra/newview/skins/default/xui/en/panel_landmark_info.xml
@@ -229,6 +229,7 @@
value="Title:"
width="290" />
<text
+ allow_html="false"
follows="left|top"
height="22"
layout="topleft"
diff --git a/indra/newview/skins/default/xui/en/panel_pick_info.xml b/indra/newview/skins/default/xui/en/panel_pick_info.xml
index 65ccd10cf0..7489988722 100644
--- a/indra/newview/skins/default/xui/en/panel_pick_info.xml
+++ b/indra/newview/skins/default/xui/en/panel_pick_info.xml
@@ -88,6 +88,7 @@
follows="all"
height="100"
width="280"
+ allow_html="true"
hide_scrollbar="false"
layout="topleft"
left="10"
diff --git a/indra/newview/skins/default/xui/en/panel_place_profile.xml b/indra/newview/skins/default/xui/en/panel_place_profile.xml
index 8fc2ae39f0..7ac771de27 100644
--- a/indra/newview/skins/default/xui/en/panel_place_profile.xml
+++ b/indra/newview/skins/default/xui/en/panel_place_profile.xml
@@ -246,6 +246,7 @@
</layout_panel>
</layout_stack>
<text
+ allow_html="false"
follows="left|top|right"
font="SansSerifLarge"
height="14"
@@ -258,6 +259,7 @@
value="SampleRegion"
width="290" />
<text
+ allow_html="false"
follows="left|top|right"
height="14"
layout="topleft"
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml
index a8e24366f2..0aaeb6114e 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml
@@ -78,19 +78,19 @@
top_pad="10"
width="350" />
<check_box
- control_name="MediaEnabled"
+ name="media_enabled"
+ control_name="AudioStreamingMedia"
height="16"
label="Media Enabled"
layout="topleft"
left="30"
- name="media_enabled"
top_pad="10"
width="350">
<check_box.commit_callback
function="Pref.MediaEnabled" />
</check_box>
<check_box
- enabled_control="MediaEnabled"
+ enabled_control="AudioStreamingMedia"
control_name="ParcelMediaAutoPlayEnable"
height="16"
label="Allow Media to auto-play"
@@ -102,7 +102,19 @@
<check_box.commit_callback
function="Pref.ParcelMediaAutoPlayEnable" />
</check_box>
- <text
+ <check_box
+ control_name="AudioStreamingMusic"
+ height="16"
+ label="Music Enabled"
+ layout="topleft"
+ left="30"
+ name="music_enabled"
+ top_pad="10"
+ width="350">
+ <check_box.commit_callback
+ function="Pref.MusicEnabled" />
+ </check_box>
+ <text
type="string"
length="1"
follows="left|top"
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml
index 17ababe854..8723e0a832 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml
@@ -279,7 +279,7 @@
width="480" />
<radio_item
height="20"
- label="Use my browser (IE, Firefox)"
+ label="Use my browser (IE, Firefox, Safari)"
layout="topleft"
left_delta="0"
name="external"
diff --git a/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml b/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml
index 4f40e00815..c5f3fcc27d 100644
--- a/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml
@@ -41,6 +41,7 @@
height="20"
layout="topleft"
left_pad="5"
+ allow_html="false"
use_ellipses="true"
name="region"
text_color="white"
diff --git a/indra/newview/skins/default/xui/en/widgets/button.xml b/indra/newview/skins/default/xui/en/widgets/button.xml
index 51f85e65e2..74d8478551 100644
--- a/indra/newview/skins/default/xui/en/widgets/button.xml
+++ b/indra/newview/skins/default/xui/en/widgets/button.xml
@@ -7,6 +7,10 @@
image_selected="PushButton_Selected"
image_disabled_selected="PushButton_Selected_Disabled"
image_disabled="PushButton_Disabled"
+ image_left_pad="0"
+ image_right_pad="0"
+ image_top_pad="0"
+ image_bottom_pad="0"
label_color="ButtonLabelColor"
label_color_selected="ButtonLabelSelectedColor"
label_color_disabled="ButtonLabelDisabledColor"
diff --git a/indra/newview/skins/default/xui/en/widgets/location_input.xml b/indra/newview/skins/default/xui/en/widgets/location_input.xml
index 1c0a8ba7c5..70a58b8e03 100644
--- a/indra/newview/skins/default/xui/en/widgets/location_input.xml
+++ b/indra/newview/skins/default/xui/en/widgets/location_input.xml
@@ -96,7 +96,7 @@
name="damage_icon"
width="14"
height="13"
- top="25"
+ top="21"
left="2"
follows="right|top"
image_name="Parcel_Damage_Dark"
diff --git a/indra/newview/skins/default/xui/ja/floater_about_land.xml b/indra/newview/skins/default/xui/ja/floater_about_land.xml
index 4b134526e0..71a38391cd 100644
--- a/indra/newview/skins/default/xui/ja/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/ja/floater_about_land.xml
@@ -36,10 +36,10 @@
(グルヌプ所有)
</panel.string>
<panel.string name="profile_text">
- プロフィヌル...
+ プロフィヌル
</panel.string>
<panel.string name="info_text">
- 情報...
+ 情報
</panel.string>
<panel.string name="public_text">
(公共)
@@ -51,8 +51,7 @@
(賌入審査䞭)
</panel.string>
<panel.string name="no_selection_text">
- 区画が遞定されおいたせん。
-「䞖界」メニュヌ「土地情報」に進むか、別の区画を遞択しお、詳现を衚瀺したす。
+ 区画が遞択されおいたせん。
</panel.string>
<text name="Name:">
名前
@@ -79,13 +78,15 @@
<text name="OwnerText">
Leyla Linden
</text>
- <button label="プロフィヌル..." label_selected="プロフィヌル..." name="Profile..."/>
<text name="Group:">
グルヌプ
</text>
- <button label="蚭定..." label_selected="蚭定..." name="Set..."/>
+ <text name="GroupText">
+ Leyla Linden
+ </text>
+ <button label="蚭定" label_selected="蚭定..." name="Set..."/>
<check_box label="グルヌプぞの譲枡を蚱可" name="check deed" tool_tip="グルヌプのオフィサヌはこの土地をグルヌプに譲枡できたす。そうするずグルヌプの土地割り圓おによっおサポヌトされたす。"/>
- <button label="譲枡..." label_selected="譲枡..." name="Deed..." tool_tip="遞択されたグルヌプのオフィサヌであるずきのみ、土地を譲枡できたす。"/>
+ <button label="譲枡" label_selected="譲枡..." name="Deed..." tool_tip="遞択されたグルヌプのオフィサヌであるずきのみ、土地を譲枡できたす。"/>
<check_box label="オヌナヌが譲枡ず共に寄付" name="check contrib" tool_tip="土地がグルヌプに譲枡されるずき、前の所有者は譲枡が成立するよう、十分な土地を寄付したす。"/>
<text name="For Sale:">
販売の有無
@@ -96,15 +97,15 @@
<text name="For Sale: Price L$[PRICE].">
䟡栌 L$[PRICE] L$[PRICE_PER_SQM]/平方メヌトル
</text>
- <button label="土地を販売..." label_selected="土地を販売..." name="Sell Land..."/>
+ <button label="土地を売る" label_selected="土地を販売..." name="Sell Land..."/>
<text name="For sale to">
販売先[BUYER]
</text>
<text name="Sell with landowners objects in parcel.">
- オブゞェクトも販売䟡栌に含たれたす
+ オブゞェクトを䞀緒に販売
</text>
<text name="Selling with no objects in parcel.">
- オブゞェクトは販売察象倖です
+ オブゞェクトは販売しない
</text>
<button label="土地販売の取り消し" label_selected="土地販売の取り消し" name="Cancel Land Sale"/>
<text name="Claimed:">
@@ -125,12 +126,13 @@
<text name="DwellText">
誀
</text>
- <button label="土地を賌入..." label_selected="土地を賌入..." left="130" name="Buy Land..." width="125"/>
- <button label="グルヌプ甚に賌入..." label_selected="グルヌプ甚に賌入..." name="Buy For Group..."/>
- <button label="入堎蚱可を賌入..." label_selected="入堎蚱可を賌入..." left="130" name="Buy Pass..." tool_tip="この土地ぞの䞀時的なアクセスを蚱可したす。" width="125"/>
- <button label="土地を攟棄..." label_selected="土地を攟棄..." name="Abandon Land..."/>
- <button label="土地の返還を芁求..." label_selected="土地の返還を芁求..." name="Reclaim Land..."/>
- <button label="Lindenセヌル..." label_selected="Lindenセヌル..." name="Linden Sale..." tool_tip="土地が所有されおおり、コンテンツが蚭定されおいる必芁がありたす。オヌクションの察象になっおいないこずも必芁条件です。"/>
+ <button label="土地の賌入" label_selected="土地を賌入..." left="130" name="Buy Land..." width="125"/>
+ <button label="スクリプト情報" name="Scripts..."/>
+ <button label="グルヌプに賌入" label_selected="グルヌプ甚に賌入..." name="Buy For Group..."/>
+ <button label="入堎蚱可を賌入" label_selected="入堎蚱可を賌入..." left="130" name="Buy Pass..." tool_tip="この土地ぞの䞀時的なアクセスを蚱可したす。" width="125"/>
+ <button label="土地の攟棄" label_selected="土地を攟棄..." name="Abandon Land..."/>
+ <button label="土地を取り戻す" label_selected="土地の返還を芁求..." name="Reclaim Land..."/>
+ <button label="リンデンセヌル" label_selected="Lindenセヌル..." name="Linden Sale..." tool_tip="土地が所有されおおり、コンテンツが蚭定されおいる必芁がありたす。オヌクションの察象になっおいないこずも必芁条件です。"/>
</panel>
<panel label="玄欟" name="land_covenant_panel">
<panel.string name="can_resell">
@@ -149,9 +151,6 @@
<text font="SansSerifLarge" name="estate_section_lbl">
䞍動産
</text>
- <text name="estate_name_lbl">
- 名前
- </text>
<text name="estate_name_text">
メむンランド
</text>
@@ -170,11 +169,8 @@
<text font="SansSerifLarge" name="region_section_lbl">
地域
</text>
- <text name="region_name_lbl">
- 名前
- </text>
<text name="region_name_text">
- Leyla
+ EricaVille
</text>
<text name="region_landtype_lbl">
皮類
@@ -213,7 +209,7 @@
地域オブゞェクトボヌナス芁因: [BONUS]
</text>
<text name="Simulator primitive usage:" width="500">
- 地域党䜓のプリム䜿甚状況
+ プリム䜿甚状況
</text>
<text left="200" name="objects_available">
[MAX]の内[COUNT][AVAILABLE]利甚可胜
@@ -237,7 +233,7 @@
[COUNT]
</text>
<button label="衚瀺" label_selected="衚瀺" name="ShowOwner" right="-145"/>
- <button label="返华..." label_selected="返华..." name="ReturnOwner..." right="-15" tool_tip="オブゞェクトをオヌナヌに返华したす"/>
+ <button label="返华" label_selected="返华..." name="ReturnOwner..." right="-15" tool_tip="オブゞェクトをオヌナヌに返华したす"/>
<text name="Set to group:">
グルヌプに蚭定
</text>
@@ -245,7 +241,7 @@
[COUNT]
</text>
<button label="衚瀺" label_selected="衚瀺" name="ShowGroup" right="-145"/>
- <button label="返华..." label_selected="返华..." name="ReturnGroup..." right="-15" tool_tip="オブゞェクトをオヌナヌに返华したす"/>
+ <button label="返华" label_selected="返华..." name="ReturnGroup..." right="-15" tool_tip="オブゞェクトをオヌナヌに返华したす"/>
<text name="Owned by others:">
他人による所有
</text>
@@ -253,7 +249,7 @@
[COUNT]
</text>
<button label="衚瀺" label_selected="衚瀺" name="ShowOther" right="-145"/>
- <button label="返华..." label_selected="返华..." name="ReturnOther..." right="-15" tool_tip="オブゞェクトをオヌナヌに返华したす"/>
+ <button label="返华" label_selected="返华..." name="ReturnOther..." right="-15" tool_tip="オブゞェクトをオヌナヌに返华したす"/>
<text name="Selected / sat upon:">
遞択枈み決定枈み
</text>
@@ -261,14 +257,14 @@
[COUNT]
</text>
<text name="Autoreturn" width="500">
- 他の䜏人のオブゞェクトの自動返华(分、0で自動返华なし)
+ 他人のオブゞェクトを自動返华分単䜍、0で自動返华なし
</text>
<line_editor left_delta="5" name="clean other time" right="-80"/>
<text name="Object Owners:" width="150">
オブゞェクトのオヌナヌ
</text>
- <button label="リスト曎新" label_selected="リスト曎新" left="146" name="Refresh List"/>
- <button label="オブゞェクトの返华..." label_selected="オブゞェクトの返华..." left="256" name="Return objects..."/>
+ <button label="リスト曎新" label_selected="リスト曎新" left="146" name="Refresh List" tool_tip="オブゞェクトのリストを曎新"/>
+ <button label="オブゞェクトを返华する" label_selected="オブゞェクトの返华..." left="256" name="Return objects..."/>
<name_list label="カりント" name="owner list">
<name_list.columns label="タむプ" name="type"/>
<name_list.columns name="online_status"/>
@@ -289,13 +285,13 @@
あなたはこの区画の蚭定線集ができないため、このオプションは無効です。
</panel.string>
<panel.string name="mature_check_mature">
- Matureコンテンツ
+ 控えめコンテンツ
</panel.string>
<panel.string name="mature_check_adult">
Adultコンテンツ
</panel.string>
<panel.string name="mature_check_mature_tooltip">
- あなたの区画情報及びコンテンツはMatureずされおいたす。
+ あなたの区画情報及びコンテンツは控えめずされおいたす。
</panel.string>
<panel.string name="mature_check_adult_tooltip">
あなたの区画情報及びコンテンツはAdultずされおいたす。
@@ -310,31 +306,31 @@
プッシングを制限 (地域優先)
</panel.string>
<text name="allow_label">
- 他の䜏人に以䞋を蚱可
+ 他の䜏人ぞの蚱可
</text>
<check_box label="地圢を線集" name="edit land check" tool_tip="チェックを入れるず、他人があなたの土地の地圢線集を行うこずが可胜ずなりたす。このオプションのチェックを倖しおおくこずをおすすめしたす。倖した状態であなたの土地の地圢線集が可胜です。"/>
<check_box label="飛行" name="check fly" tool_tip="チェックを入れるずこの土地での飛行が可胜ずなりたす。チェックを倖すず土地に入る際ず通り過ぎるずきのみ飛行可胜ずなりたす。"/>
<text left="138" name="allow_label2" width="144">
- オブゞェクトの䜜成
+ 制䜜
</text>
- <check_box label="すべおの䜏人" left="280" name="edit objects check"/>
+ <check_box label="å…šå“¡" left="280" name="edit objects check"/>
<check_box label="グルヌプ" left="380" name="edit group objects check"/>
<text left="138" name="allow_label3" width="144">
オブゞェクトの進入
</text>
- <check_box label="すべおの䜏人" left="280" name="all object entry check"/>
+ <check_box label="å…šå“¡" left="280" name="all object entry check"/>
<check_box label="グルヌプ" left="380" name="group object entry check"/>
<text left="138" name="allow_label4" width="144">
スクリプトの実行
</text>
- <check_box label="すべおの䜏人" left="280" name="check other scripts"/>
+ <check_box label="å…šå“¡" left="280" name="check other scripts"/>
<check_box label="グルヌプ" left="380" name="check group scripts"/>
<text name="land_options_label">
土地オプション
</text>
<check_box label="安党ダメヌゞなし" name="check safe" tool_tip="チェックを入れるずこの土地でのダメヌゞコンバットが無効になり、「安党」に蚭定されたす。 チェックを倖すずダメヌゞコンバットが有効になりたす。"/>
<check_box label="プッシングを制限" name="PushRestrictCheck" tool_tip="スクリプトによるプッシングを制限したす。 このオプションを遞択するこずにより、あなたの土地での砎壊的行動を劚げるこずができたす。"/>
- <check_box label="怜玢に衚瀺週L$30以䞋の堎所" name="ShowDirectoryCheck" tool_tip="怜玢結果でこの区画を衚瀺させる"/>
+ <check_box label="怜玢に区画を衚瀺週 L$30" name="ShowDirectoryCheck" tool_tip="怜玢結果でこの区画を衚瀺させる"/>
<combo_box name="land category with adult">
<combo_box.item label="党カテゎリ" name="item0"/>
<combo_box.item label="Linden所圚地" name="item1"/>
@@ -364,7 +360,7 @@
<combo_box.item label="ショッピング" name="item11"/>
<combo_box.item label="その他" name="item12"/>
</combo_box>
- <check_box label="Matureコンテンツ" name="MatureCheck" tool_tip=""/>
+ <check_box label="控えめコンテンツ" name="MatureCheck" tool_tip=""/>
<text name="Snapshot:">
スナップショット
</text>
@@ -389,27 +385,24 @@
</text>
<combo_box name="media type" tool_tip="URL が動画、りェブ・ペヌゞ、その他のメディアの堎合に指定したす"/>
<text name="at URL:">
- ホヌム URL
+ ホヌムペヌゞ
</text>
- <button label="蚭定..." label_selected="蚭定..." name="set_media_url"/>
+ <button label="蚭定" label_selected="蚭定..." name="set_media_url"/>
<text name="CurrentURL:">
- 珟圚の URL
+ 珟圚のペヌゞ
</text>
- <button label="リセット..." label_selected="リセット..." name="reset_media_url"/>
+ <button label="リセット..." label_selected="リセット..." name="reset_media_url" tool_tip="URLを曎新"/>
<check_box label="URL を非衚瀺" name="hide_media_url" tool_tip="このオプションをオンにするず、蚱可なしでこの区画情報にアクセスしおいるナヌザヌにはメディア URL が衚瀺されたせん。 これは HTML タむプには䜿甚できたせんのでご泚意ください。"/>
<text name="Description:">
説明
</text>
<line_editor name="url_description" tool_tip="再生/ロヌドボタンの隣に衚瀺されるテキスト"/>
<text name="Media texture:">
- テクスチ
-ャ取替
+ テクスチャの眮き換え
</text>
<texture_picker label="" name="media texture" tool_tip="写真をクリックしお遞択"/>
<text name="replace_texture_help" width="290">
- このテクスチャを䜿甚するオブゞェクトのプレむをクリックするず、ムヌビヌや Web ペヌゞを衚瀺したす。
-
-テクスチャを倉曎するにはサムネむルを遞択しおください。
+ このテクスチャを䜿甚するオブゞェクトのプレむをクリックするず、ムヌビヌや Web ペヌゞを衚瀺したす。 テクスチャを倉曎するにはサムネむルを遞択しおください。
</text>
<check_box label="スケヌルを自動蚭定" name="media_auto_scale" tool_tip="このオプションをチェックするず、この区画のコンテンツのスケヌルが自動的に蚭定されたす。 動䜜速床ず画質が少し䜎䞋するこずがありたすが、他のテクスチャヌのスケヌリングや敎列が必芁になるこずはありたせん。"/>
<text name="media_size" tool_tip="レンダリングするりェブ・メディアのサむズ。デフォルトの 0 のたたにしたす。">
@@ -425,7 +418,7 @@
</text>
<check_box label="ルヌプ" name="media_loop" tool_tip="メディアをルヌプ再生したす。 メディアの再生が終わったら、最初から再生し盎したす。"/>
</panel>
- <panel label="オヌディオ" name="land_audio_panel">
+ <panel label="サりンド" name="land_audio_panel">
<text name="MusicURL:">
音楜 URL
</text>
@@ -441,18 +434,21 @@
<check_box label="この区画でのボむス䜿甚を制限" name="parcel_enable_voice_channel_parcel"/>
</panel>
<panel label="アクセス" name="land_access_panel">
+ <panel.string name="access_estate_defined">
+ ゚ステヌトに限定
+ </panel.string>
<panel.string name="estate_override">
1぀以䞊のオプションが、䞍動産レベルで蚭定されおいたす。
</panel.string>
<text name="Limit access to this parcel to:">
この区画にアクセス
</text>
- <check_box label="パブリック・アクセスを蚱可" name="public_access"/>
+ <check_box label="パブリックアクセスを蚱可 [MATURITY]" name="public_access"/>
<text name="Only Allow">
- 次の䜏人のアクセスをブロック
+ 次の䜏人のアクセス犁止
</text>
- <check_box label="Linden Labに支払い情報を登録しおいない䜏人" name="limit_payment" tool_tip="支払い情報未確認の䜏人を排陀する"/>
- <check_box label="幎霢確認を枈たせおいない成人の䜏人" name="limit_age_verified" tool_tip="幎霢確認を枈たせおいない䜏人を立入犁止にしたす。 詳しい情報は [SUPPORT_SITE] をご芧䞋さい。"/>
+ <check_box label="支払情報登録枈 [ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="未確認の䜏人の立入を犁止したす。"/>
+ <check_box label="幎霢確認 [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="幎霢確認を枈たせおいない䜏人の立入を犁止したす。 詳しい情報は [SUPPORT_SITE] をご芧䞋さい。"/>
<check_box label="グルヌプ・アクセスを蚱可[GROUP]" name="GroupCheck" tool_tip="[䞀般]タブで、グルヌプを遞択しおください。"/>
<check_box label="入堎蚱可を販売" name="PassCheck" tool_tip="この区画ぞの䞀時的なアクセスを蚱可"/>
<combo_box name="pass_combo">
@@ -461,18 +457,22 @@
</combo_box>
<spinner label="䟡栌L$" name="PriceSpin"/>
<spinner label="アクセス時間" name="HoursSpin"/>
- <text label="垞に蚱可" name="AllowedText">
- 蚱可された䜏人
- </text>
- <name_list name="AccessList" tool_tip="([LISTED]リスト入り、[MAX]最倧)"/>
- <button label="远加..." label_selected="远加..." name="add_allowed"/>
- <button label="削陀" label_selected="削陀" name="remove_allowed"/>
- <text label="犁止" name="BanCheck">
- 犁止された䜏人
- </text>
- <name_list name="BannedList" tool_tip="([LISTED]リスト入り、[MAX]最倧)"/>
- <button label="远加..." label_selected="远加..." name="add_banned"/>
- <button label="削陀" label_selected="削陀" name="remove_banned"/>
+ <panel name="Allowed_layout_panel">
+ <text label="垞に蚱可" name="AllowedText">
+ 立入を蚱可された䜏人
+ </text>
+ <name_list name="AccessList" tool_tip="(合蚈[LISTED] 人、最倧 [MAX] 人"/>
+ <button label="远加" name="add_allowed"/>
+ <button label="削陀" label_selected="削陀" name="remove_allowed"/>
+ </panel>
+ <panel name="Banned_layout_panel">
+ <text label="犁止" name="BanCheck">
+ 立入犁止された䜏人
+ </text>
+ <name_list name="BannedList" tool_tip="(合蚈 [LISTED] 人、最倧 [MAX] 人"/>
+ <button label="远加" name="add_banned"/>
+ <button label="削陀" label_selected="削陀" name="remove_banned"/>
+ </panel>
</panel>
</tab_container>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_animation_preview.xml b/indra/newview/skins/default/xui/ja/floater_animation_preview.xml
index 9ec4bfc4e7..c355924f33 100644
--- a/indra/newview/skins/default/xui/ja/floater_animation_preview.xml
+++ b/indra/newview/skins/default/xui/ja/floater_animation_preview.xml
@@ -170,7 +170,8 @@
</combo_box>
<spinner label="(秒)" name="ease_in_time" tool_tip="アニメヌションのブレンドむン時間秒"/>
<spinner label="(秒)" name="ease_out_time" tool_tip="アニメヌションのブレンドアりト時間秒"/>
- <button label="" name="play_btn" tool_tip="アニメヌションの再生・䞀時停止"/>
+ <button label="" name="play_btn" tool_tip="アニメヌションを再生する"/>
+ <button name="pause_btn" tool_tip="アニメヌションを䞀時停止する"/>
<button label="" name="stop_btn" tool_tip="アニメヌションの再生を停止"/>
<slider label="" name="playback_slider"/>
<text name="bad_animation_text">
@@ -178,6 +179,6 @@
Poser 4から゚クスポヌトされたBVHファむルを掚奚したす。
</text>
- <button label="取り消し" name="cancel_btn"/>
<button label="L$[AMOUNT]" name="ok_btn"/>
+ <button label="取り消し" name="cancel_btn"/>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml b/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml
index 4a20c58181..a199a10823 100644
--- a/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml
+++ b/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml
@@ -10,33 +10,37 @@
合成テクスチャヌ
</text>
<button label="テクスチャID䞀芧をコン゜ヌルに曞き蟌む" label_selected="捚おる" name="Dump"/>
- <texture_picker label="髪型" name="hair-baked"/>
- <texture_picker label="髪" name="hair_grain"/>
- <texture_picker label="髪のアルファ" name="hair_alpha"/>
- <texture_picker label="é ­" name="head-baked"/>
- <texture_picker label="メむクアップ" name="head_bodypaint"/>
- <texture_picker label="頭郚のアルファ" name="head_alpha"/>
- <texture_picker label="頭郚のタトゥヌ" name="head_tattoo"/>
- <texture_picker label="目" name="eyes-baked"/>
- <texture_picker label="目" name="eyes_iris"/>
- <texture_picker label="目のアルファ" name="eyes_alpha"/>
- <texture_picker label="䞊半身" name="upper-baked"/>
- <texture_picker label="䞊半身のボディペむント" name="upper_bodypaint"/>
- <texture_picker label="䞋着シャツ" name="upper_undershirt"/>
- <texture_picker label="手袋" name="upper_gloves"/>
- <texture_picker label="シャツ" name="upper_shirt"/>
- <texture_picker label="侊着" name="upper_jacket"/>
- <texture_picker label="アルファ䞊" name="upper_alpha"/>
- <texture_picker label="䞊郚のタトゥヌ" name="upper_tattoo"/>
- <texture_picker label="䞋半身" name="lower-baked"/>
- <texture_picker label="䞋半身のボディペむント" name="lower_bodypaint"/>
- <texture_picker label="䞋着パンツ" name="lower_underpants"/>
- <texture_picker label="靮例" name="lower_socks"/>
- <texture_picker label="靎" name="lower_shoes"/>
- <texture_picker label="パンツ" name="lower_pants"/>
- <texture_picker label="ゞャケット" name="lower_jacket"/>
- <texture_picker label="アルファ䞋" name="lower_alpha"/>
- <texture_picker label="䞋郚のタトゥヌ" name="lower_tattoo"/>
- <texture_picker label="スカヌト" name="skirt-baked"/>
- <texture_picker label="スカヌト" name="skirt"/>
+ <scroll_container name="profile_scroll">
+ <panel name="scroll_content_panel">
+ <texture_picker label="髪" name="hair-baked"/>
+ <texture_picker label="髪" name="hair_grain"/>
+ <texture_picker label="髪のアルファ" name="hair_alpha"/>
+ <texture_picker label="é ­" name="head-baked"/>
+ <texture_picker label="メむクアップ" name="head_bodypaint"/>
+ <texture_picker label="頭郚のアルファ" name="head_alpha"/>
+ <texture_picker label="頭郚のタトゥヌ" name="head_tattoo"/>
+ <texture_picker label="目" name="eyes-baked"/>
+ <texture_picker label="目" name="eyes_iris"/>
+ <texture_picker label="目のアルファ" name="eyes_alpha"/>
+ <texture_picker label="䞊半身" name="upper-baked"/>
+ <texture_picker label="䞊半身のボディペむント" name="upper_bodypaint"/>
+ <texture_picker label="䞋着シャツ" name="upper_undershirt"/>
+ <texture_picker label="手袋" name="upper_gloves"/>
+ <texture_picker label="シャツ" name="upper_shirt"/>
+ <texture_picker label="侊着" name="upper_jacket"/>
+ <texture_picker label="アルファ䞊" name="upper_alpha"/>
+ <texture_picker label="䞊郚のタトゥヌ" name="upper_tattoo"/>
+ <texture_picker label="䞋半身" name="lower-baked"/>
+ <texture_picker label="䞋半身のボディペむント" name="lower_bodypaint"/>
+ <texture_picker label="䞋着パンツ" name="lower_underpants"/>
+ <texture_picker label="靮例" name="lower_socks"/>
+ <texture_picker label="靎" name="lower_shoes"/>
+ <texture_picker label="パンツ" name="lower_pants"/>
+ <texture_picker label="ゞャケット" name="lower_jacket"/>
+ <texture_picker label="アルファ䞋" name="lower_alpha"/>
+ <texture_picker label="䞋郚のタトゥヌ" name="lower_tattoo"/>
+ <texture_picker label="スカヌト" name="skirt-baked"/>
+ <texture_picker label="スカヌト" name="skirt"/>
+ </panel>
+ </scroll_container>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_bulk_perms.xml b/indra/newview/skins/default/xui/ja/floater_bulk_perms.xml
index 7afe70f4d7..fbbbd85890 100644
--- a/indra/newview/skins/default/xui/ja/floater_bulk_perms.xml
+++ b/indra/newview/skins/default/xui/ja/floater_bulk_perms.xml
@@ -49,6 +49,6 @@
<check_box label="修正" name="next_owner_modify"/>
<check_box label="コピヌ" name="next_owner_copy"/>
<check_box initial_value="true" label="再販・プレれント" name="next_owner_transfer" tool_tip="次の所有者はこのオブゞェクトを他人にあげたり再販するこずができたす"/>
- <button label="Ok" name="apply"/>
+ <button label="OK" name="apply"/>
<button label="キャンセル" name="close"/>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_buy_currency.xml b/indra/newview/skins/default/xui/ja/floater_buy_currency.xml
index ffdcf838d3..d202bf1b9f 100644
--- a/indra/newview/skins/default/xui/ja/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/ja/floater_buy_currency.xml
@@ -1,66 +1,324 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="buy currency" title="L$ の賌入">
- <floater.string name="buy_currency">
- 箄 [LOCALAMOUNT] で L$ [LINDENS] を賌入
- </floater.string>
- <text name="info_need_more">
- L$ が足りたせん
- </text>
- <text name="contacting">
- LindeXずコンタクト䞭 
- </text>
- <text name="info_buying">
- L$ の賌入
- </text>
- <text name="balance_label">
- 残高
- </text>
- <text name="balance_amount">
- L$ [AMT]
- </text>
- <text name="currency_action">
- 賌入垌望額
- </text>
- <text name="currency_label">
- L$
- </text>
- <line_editor label="L$" name="currency_amt">
- 1234
- </line_editor>
- <text name="buying_label">
- 䟡栌
- </text>
- <text name="currency_est">
- 箄 [LOCALAMOUNT]
- </text>
- <text left_delta="3" name="getting_data">
- 芋積もり䞭...
- </text>
- <text name="buy_action">
- [NAME] L$ [PRICE]
- </text>
- <text name="total_label">
- 新しい残高
- </text>
- <text name="total_amount">
- L$ [AMT]
- </text>
- <text name="currency_links">
- [http://www.secondlife.com/my/account/payment_method_management.php?lang=ja-JP payment method] | [http://www.secondlife.com/my/account/currency.php?lang=ja-JP currency] | [http://www.secondlife.com/my/account/exchange_rates.php?lang=ja-JP exchange rate]
- </text>
- <text name="exchange_rate_note">
- 金額を再入力しお最新換算レヌトを確認したす。
- </text>
- <text name="purchase_warning_repurchase">
- この取匕を決定するず、L$ を賌入したす。オブゞェクトは賌入したせん。
- </text>
- <text name="purchase_warning_notenough">
- 賌入しようずしおいる L$ が䞍足しおいたす。 金額を䞊げおください。
- </text>
- <button label="賌入する" name="buy_btn"/>
- <button label="取り消し" name="cancel_btn"/>
- <text name="info_cannot_buy">
- 賌入できたせん
- </text>
- <button label="Web サむトに移動" name="error_web" width="140"/>
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<floater
+ legacy_header_height="18"
+ can_minimize="false"
+ height="275"
+ layout="topleft"
+ title="BUY L$"
+ name="buy currency"
+ help_topic="buy_linden_dollars"
+ single_instance="true"
+ width="350">
+ <floater.string
+ name="buy_currency">
+ Buy L$ [LINDENS] for approx. [LOCALAMOUNT]
+ </floater.string>
+ <icon
+ height="215"
+ image_name="Linden_Dollar_Background"
+ layout="topleft"
+ left="0"
+ name="normal_background"
+ top="17"
+ width="350" />
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ font="SansSerifHuge"
+ layout="topleft"
+ left="20"
+ height="30"
+ top="25"
+ width="300"
+ name="info_need_more">
+ You need more L$
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ height="16"
+ layout="topleft"
+ top="246"
+ left="15"
+ width="300"
+ name="contacting">
+ Contacting LindeX...
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ font="SansSerifHuge"
+ layout="topleft"
+ left="20"
+ height="30"
+ top="25"
+ width="200"
+ name="info_buying">
+ Buy L$
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ font="SansSerifMedium"
+ height="16"
+ layout="topleft"
+ left="20"
+ name="balance_label"
+ top="65"
+ width="210">
+ I have
+ </text>
+ <text
+ type="string"
+ length="1"
+ font="SansSerifMedium"
+ follows="top|left"
+ halign="right"
+ height="16"
+ layout="topleft"
+ left="200"
+ name="balance_amount"
+ top_delta="0"
+ width="120">
+ L$ [AMT]
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ font="SansSerifMedium"
+ height="16"
+ top="95"
+ layout="topleft"
+ left="20"
+ name="currency_action"
+ width="210">
+ I want to buy
+ </text>
+ <text
+ font="SansSerifMedium"
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ top_delta="0"
+ left="217"
+ name="currency_label"
+ width="15">
+ L$
+ </text>
+ <line_editor
+ type="string"
+ halign="right"
+ font="SansSerifMedium"
+ select_on_focus="true"
+ follows="top|left"
+ top_delta="-7"
+ height="22"
+ label="L$"
+ left_pad="3"
+ name="currency_amt"
+ width="85">
+ 1234
+ </line_editor>
+ <text
+ type="string"
+ font="SansSerifMedium"
+ length="1"
+ follows="top|left"
+ height="16"
+ layout="topleft"
+ left="20"
+ top="125"
+ name="buying_label"
+ width="210">
+ For the price
+ </text>
+ <text
+ type="string"
+ length="1"
+ font="SansSerifMedium"
+ text_color="EmphasisColor"
+ follows="top|left"
+ halign="right"
+ height="16"
+ top_delta="0"
+ layout="topleft"
+ left="150"
+ name="currency_est"
+ width="170">
+ approx. [LOCALAMOUNT]
+ </text>
+ <text
+ type="string"
+ font="SansSerifSmall"
+ text_color="EmphasisColor"
+ length="1"
+ follows="top|left"
+ height="16"
+ layout="topleft"
+ top="125"
+ left="170"
+ width="150"
+ halign="right"
+ name="getting_data">
+ Estimating...
+ </text>
+ <text
+ type="string"
+ font="SansSerifSmall"
+ top="145"
+ length="1"
+ follows="top|left"
+ height="16"
+ halign="right"
+ left="150"
+ width="170"
+ layout="topleft"
+ name="buy_action">
+ [NAME] L$ [PRICE]
+ </text>
+ <text
+ type="string"
+ font="SansSerifMedium"
+ length="1"
+ follows="top|left"
+ height="16"
+ layout="topleft"
+ left="20"
+ name="total_label"
+ top="165"
+ width="210">
+ My new balance will be
+ </text>
+ <text
+ type="string"
+ length="1"
+ font="SansSerifMedium"
+ follows="top|left"
+ top_delta="0"
+ height="16"
+ layout="topleft"
+ left="200"
+ halign="right"
+ name="total_amount"
+ width="120">
+ L$ [AMT]
+ </text>
+ <text
+ type="string"
+ length="1"
+ text_color="0.7 0.7 0.7 0.5"
+ follows="top|left"
+ layout="topleft"
+ halign="right"
+ top="189"
+ left="20"
+ width="300"
+ height="30"
+ name="currency_links">
+ [http://www.secondlife.com/my/account/payment_method_management.php payment method] | [http://www.secondlife.com/my/account/currency.php currency] | [http://www.secondlife.com/my/account/exchange_rates.php exchange rate]
+ </text>
+ <text
+ type="string"
+ length="1"
+ text_color="0.7 0.7 0.7 0.5"
+ follows="top|left"
+ layout="topleft"
+ halign="right"
+ top="202"
+ left="20"
+ width="300"
+ height="30"
+ name="exchange_rate_note">
+Re-enter amount to see the latest exchange rate.
+ </text>
+ <text
+ type="string"
+ length="1"
+ text_color="0.7 0.7 0.7 0.5"
+ follows="top|left"
+ layout="topleft"
+ halign="right"
+ top="213"
+ left="10"
+ width="310"
+ height="30"
+ name="purchase_warning_repurchase">
+ Confirming this purchase only buys L$, not the object.
+ </text>
+ <text
+ type="string"
+ length="1"
+ text_color="0.7 0.7 0.7 0.5"
+ follows="top|left"
+ layout="topleft"
+ halign="right"
+ top="213"
+ left="20"
+ width="300"
+ height="30"
+ name="purchase_warning_notenough">
+ You aren&apos;t buying enough L$. Please increase the amount.
+ </text>
+
+ <button
+ follows="bottom|left"
+ height="20"
+ label="Buy Now"
+ layout="topleft"
+ left="151"
+ name="buy_btn"
+ top="242"
+ width="90"/>
+ <button
+ follows="bottom|right"
+ height="20"
+ label="Cancel"
+ layout="topleft"
+ left_pad="10"
+ name="cancel_btn"
+ width="90"/>
+ <icon
+ height="215"
+ image_name="Linden_Dollar_Alert"
+ layout="topleft"
+ left="0"
+ name="error_background"
+ top="15"
+ width="350"/>
+ <text
+ type="string"
+ font="SansSerifHuge"
+ left="165"
+ width="170"
+ height="25"
+ top="25"
+ name="info_cannot_buy">
+ Unable to Buy
+ </text>
+ <text
+ type="string"
+ width="175"
+ height="125"
+ top="60"
+ left="165"
+ word_wrap="true"
+ follows="bottom|right"
+ name="cannot_buy_message">
+ </text>
+ <button
+ follows="bottom|left"
+ height="20"
+ label="Continue to the Web"
+ layout="topleft"
+ left="170"
+ name="error_web"
+ top="200"
+ width="160"/>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_color_picker.xml b/indra/newview/skins/default/xui/ja/floater_color_picker.xml
index f6739d59e8..a98da4b8ba 100644
--- a/indra/newview/skins/default/xui/ja/floater_color_picker.xml
+++ b/indra/newview/skins/default/xui/ja/floater_color_picker.xml
@@ -21,7 +21,7 @@
<check_box label="今すぐ適甚" name="apply_immediate"/>
<button label="" label_selected="" name="color_pipette"/>
<button label="取り消し" label_selected="取り消し" name="cancel_btn"/>
- <button label="Ok" label_selected="Ok" name="select_btn"/>
+ <button label="OK" label_selected="OK" name="select_btn"/>
<text name="Current color:">
珟圚の色
</text>
diff --git a/indra/newview/skins/default/xui/ja/floater_customize.xml b/indra/newview/skins/default/xui/ja/floater_customize.xml
index 61423fcf05..7d1809f1ed 100644
--- a/indra/newview/skins/default/xui/ja/floater_customize.xml
+++ b/indra/newview/skins/default/xui/ja/floater_customize.xml
@@ -1,7 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="floater customize" title="容姿">
<tab_container name="customize tab container">
- <placeholder label="身䜓郚䜍" name="body_parts_placeholder"/>
+ <text label="身䜓郚䜍" name="body_parts_placeholder">
+ 身䜓郚䜍
+ </text>
<panel label="シェむプ" name="Shape">
<button label="戻す" label_selected="戻す" name="Revert"/>
<button label="身䜓" label_selected="身䜓" name="Body"/>
@@ -14,8 +16,8 @@
<button label="胎䜓" label_selected="胎䜓" name="Torso"/>
<button label="äž¡è„š" label_selected="äž¡è„š" name="Legs"/>
<radio_group name="sex radio">
- <radio_item label="女性" name="radio"/>
- <radio_item label="男性" name="radio2"/>
+ <radio_item label="女性" name="radio" value="0"/>
+ <radio_item label="男性" name="radio2" value="1"/>
</radio_group>
<text name="title">
[DESC]
@@ -33,8 +35,7 @@
[PATH] に所圚
</text>
<text name="not worn instructions">
- 新しいシェむプ(䜓型)を持ち物からアバタヌにドラッグしお装着した
-しょう。完党に新芏の状態から䜜成しお装着するこずもできたす。
+ 持ち物からあなたのアバタヌに1぀ドラッグしお、新しいシェむプを぀けたす。 代わりに、はじめから新しく䜜成しお着甚するこずもできたす。
</text>
<text name="no modify instructions">
あなたはこの服の修正を蚱されおいたせん。
@@ -67,8 +68,7 @@
[PATH] に所圚
</text>
<text name="not worn instructions">
- 新しいスキンを持ち物からアバタヌにドラッグしお装着したしょう。
- 完党に新芏の状態から䜜成しお装着するこずもできたす。
+ 持ち物からあなたのアバタヌに1぀ドラッグしお、新しいスキンを぀けたす。 代わりに、はじめから新しく䜜成しお着甚するこずもできたす。
</text>
<text name="no modify instructions">
あなたはこの服の修正を蚱されおいたせん。
@@ -105,8 +105,7 @@
[PATH] に所圚
</text>
<text name="not worn instructions">
- 新しい髪型を持ち物からアバタヌにドラッグしお装着したしょう。
- 完党に新芏の状態から䜜成しお装着するこずもできたす。
+ 持ち物からあなたのアバタヌに1぀ドラッグしお、新しい髪を぀けたす。 代わりに、はじめから新しく䜜成しお着甚するこずもできたす。
</text>
<text name="no modify instructions">
あなたはこの服の修正を蚱されおいたせん。
@@ -137,8 +136,7 @@
[PATH] に所圚
</text>
<text name="not worn instructions">
- 新しい県を持ち物からアバタヌにドラッグしお装着したしょう。
- 完党に新芏の状態から䜜成しお装着するこずもできたす。
+ あなたの持ち物からアバタヌにドラッグしお、新しい目を぀けたす。 代わりに、はじめから新しく䜜成しお着甚するこずもできたす。
</text>
<text name="no modify instructions">
あなたはこの服の修正を蚱されおいたせん。
@@ -152,7 +150,9 @@
<button label="別名で保存..." label_selected="別名で保存..." name="Save As"/>
<button label="戻す" label_selected="戻す" name="Revert"/>
</panel>
- <placeholder label="服" name="clothes_placeholder"/>
+ <text label="服" name="clothes_placeholder">
+ 衣類
+ </text>
<panel label="シャツ" name="Shirt">
<texture_picker label="生地" name="Fabric" tool_tip="写真をクリックしお遞択"/>
<color_swatch label="色明暗" name="Color/Tint" tool_tip="クリックしおカラヌピッカヌを開きたす"/>
@@ -177,8 +177,7 @@
[PATH] に所圚
</text>
<text name="not worn instructions">
- 新しいシャツを持ち物からアバタヌにドラッグしお装着したしょう。
- 完党に新芏の状態から䜜成しお装着するこずもできたす。
+ 持ち物からあなたのアバタヌに1぀ドラッグしお、新しいシャツを着たす。 代わりに、はじめから新しく䜜成しお着甚するこずもできたす。
</text>
<text name="no modify instructions">
あなたはこの服の修正を蚱されおいたせん。
@@ -211,8 +210,7 @@
[PATH] に所圚
</text>
<text name="not worn instructions">
- 新しいズボンを持ち物からアバタヌにドラッグしお装着したしょう。
- 完党に新芏の状態から䜜成しお装着するこずもできたす。
+ あなたの持ち物からアバタヌにドラッグしお、新しいパンツを履きたす。 代わりに、はじめから新しく䜜成しお着甚するこずもできたす。
</text>
<text name="no modify instructions">
あなたはこの服の修正を蚱されおいたせん。
@@ -238,8 +236,7 @@
[PATH] に所圚
</text>
<text name="not worn instructions">
- 新しい靎を持ち物からアバタヌにドラッグしお装着したしょう。
- 完党に新芏の状態から䜜成しお装着するこずもできたす。
+ あなたの持ち物からアバタヌにドラッグしお、新しい靎を履きたす。 代わりに、はじめから新しく䜜成しお着甚するこずもできたす。
</text>
<text name="no modify instructions">
あなたはこの服の修正を蚱されおいたせん。
@@ -272,8 +269,7 @@
[PATH] に所圚
</text>
<text name="not worn instructions">
- 新しい靎䞋を持ち物からアバタヌにドラッグしお装着したしょう。
- 完党に新芏の状態から䜜成しお装着するこずもできたす。
+ あなたの持ち物からアバタヌにドラッグしお、新しい靎䞋を履きたす。 代わりに、はじめから新しく䜜成しお着甚するこずもできたす。
</text>
<text name="no modify instructions">
あなたはこの服の修正を蚱されおいたせん。
@@ -306,8 +302,7 @@
[PATH] に所圚
</text>
<text name="not worn instructions">
- 新しい䞊着を持ち物からアバタヌにドラッグしお装着したしょう。
- 完党に新芏の状態から䜜成しお装着するこずもできたす。
+ 持ち物からあなたのアバタヌに1぀ドラッグしお、新しいゞャケットを着たす。 代わりに、はじめから新しく䜜成しお着甚するこずもできたす。
</text>
<text name="no modify instructions">
あなたはこの服の修正を蚱されおいたせん。
@@ -341,8 +336,7 @@
[PATH] に所圚
</text>
<text name="not worn instructions">
- 新しい手袋を持ち物からアバタヌにドラッグしお装着したしょう。
- 完党に新芏の状態から䜜成しお装着するこずもできたす。
+ あなたの持ち物からアバタヌにドラッグしお、新しい手袋を぀けたす。 代わりに、はじめから新しく䜜成しお着甚するこずもできたす。
</text>
<text name="no modify instructions">
あなたはこの服の修正を蚱されおいたせん。
@@ -375,8 +369,7 @@
[PATH] に所圚
</text>
<text name="not worn instructions">
- 新しい䞋着を持ち物からアバタヌにドラッグしお装着したしょう。
- 完党に新芏の状態から䜜成しお装着するこずもできたす。
+ 持ち物からあなたのアバタヌに1぀ドラッグしお、新しい䞋着䞊を着たす。 代わりに、はじめから新しく䜜成しお着甚するこずもできたす。
</text>
<text name="no modify instructions">
あなたはこの服の修正を蚱されおいたせん。
@@ -409,8 +402,7 @@
[PATH] に所圚
</text>
<text name="not worn instructions">
- 新しいパンツを持ち物からアバタヌにドラッグしお装着したしょう。
- 完党に新芏の状態から䜜成しお装着するこずもできたす。
+ あなたの持ち物からアバタヌにドラッグしお、新しい䞋着䞋を履きたす。 代わりに、はじめから新しく䜜成しお着甚するこずもできたす。
</text>
<text name="no modify instructions">
あなたはこの服の修正を蚱されおいたせん。
@@ -443,8 +435,7 @@
[PATH] に所圚
</text>
<text name="not worn instructions">
- 新しいスカヌトを持物からアバタヌにドラッグしお装着したしょう。
- 完党に新芏の状態から䜜成しお装着するこずもできたす。
+ 持ち物からあなたのアバタヌに1぀ドラッグしお、新しいスカヌトを履きたす。 代わりに、はじめから新しく䜜成しお着甚するこずもできたす。
</text>
<text name="no modify instructions">
あなたはこの服の修正を蚱されおいたせん。
@@ -477,8 +468,7 @@
参照 [PATH]
</text>
<text name="not worn instructions">
- あなたの持ち物からアバタヌにドラッグしお、新しいアルファマスクを぀けたす。
-代わりに、はじめから新しく䜜成しお着甚できたす。
+ あなたの持ち物からアバタヌにドラッグしお、新しいアルファマスクを぀けたす。 代わりに、はじめから新しく䜜成しお着甚するこずもできたす。
</text>
<text name="no modify instructions">
この着甚物を修正する暩限がありたせん。
@@ -514,8 +504,7 @@
参照 [PATH]
</text>
<text name="not worn instructions">
- あなたの持ち物からアバタヌにドラッグしお、新しいタトゥを぀けたす。
-代わりに、はじめから新しく䜜成しお着甚できたす。
+ あなたの持ち物からアバタヌにドラッグしお、新しいタトゥを぀けたす。 代わりに、はじめから新しく䜜成しお着甚するこずもできたす。
</text>
<text name="no modify instructions">
この着甚物を修正する暩限がありたせん。
@@ -533,6 +522,7 @@
<button label="元に戻す" label_selected="元に戻す" name="Revert"/>
</panel>
</tab_container>
+ <button label="スクリプト情報" label_selected="スクリプト情報" name="script_info"/>
<button label="アりトフィット䜜成" label_selected="アりトフィット䜜成" name="make_outfit_btn"/>
<button label="キャンセル" label_selected="キャンセル" name="Cancel"/>
<button label="OK" label_selected="OK" name="Ok"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_god_tools.xml b/indra/newview/skins/default/xui/ja/floater_god_tools.xml
index 25de45c094..18380bddc2 100644
--- a/indra/newview/skins/default/xui/ja/floater_god_tools.xml
+++ b/indra/newview/skins/default/xui/ja/floater_god_tools.xml
@@ -11,7 +11,7 @@
</text>
<check_box label="準備" name="check prelude" tool_tip="この蚭定により、この地域の準備をしたす。"/>
<check_box label="倪陜固定" name="check fixed sun" tool_tip="倪陜䜍眮を固定[地域䞍動産][地圢]の堎合ず同様"/>
- <check_box label="テレポヌトのホヌムをリセット" name="check reset home" tool_tip="䜏人がテレポヌトで去ったずき、圌らのホヌムを目的地にリセットする。"/>
+ <check_box label="テレポヌトのホヌムをリセット" name="check reset home" tool_tip="䜏人がテレポヌトで倖に出たら、ホヌムを目的地にリセットしたす。"/>
<check_box label="可芖" name="check visible" tool_tip="この蚭定により、この地域をゎッド・モヌド以倖でも可芖にしたす。"/>
<check_box label="ダメヌゞ" name="check damage" tool_tip="この蚭定により、この地域内でダメヌゞを有効化したす。"/>
<check_box label="トラフィック・トラッキングをブロック" name="block dwell" tool_tip="この蚭定により、この地域内のトラフィック蚈算をオフにしたす。"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_im_container.xml b/indra/newview/skins/default/xui/ja/floater_im_container.xml
index 24cef14ee0..1d028258ec 100644
--- a/indra/newview/skins/default/xui/ja/floater_im_container.xml
+++ b/indra/newview/skins/default/xui/ja/floater_im_container.xml
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<multi_floater name="floater_im_box" title="むンスタントメッセヌゞ"/>
+<multi_floater name="floater_im_box" title="換算"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_incoming_call.xml b/indra/newview/skins/default/xui/ja/floater_incoming_call.xml
index 32793faa6d..04013799ec 100644
--- a/indra/newview/skins/default/xui/ja/floater_incoming_call.xml
+++ b/indra/newview/skins/default/xui/ja/floater_incoming_call.xml
@@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="incoming call" title="䞍明のナヌザヌからのコヌル">
+ <floater.string name="lifetime">
+ 5
+ </floater.string>
<floater.string name="localchat">
近くのボむスチャット
</floater.string>
@@ -12,6 +15,9 @@
<floater.string name="VoiceInviteAdHoc">
がコンファレンスチャットで、ボむスチャットに参加したした。
</floater.string>
+ <floater.string name="VoiceInviteGroup">
+ は [GROUP]. のボむスチャットコヌルに参加したした。
+ </floater.string>
<text name="question">
[CURRENT_CHAT] を退垭しお、このボむスチャットに参加したすか
</text>
diff --git a/indra/newview/skins/default/xui/ja/floater_lsl_guide.xml b/indra/newview/skins/default/xui/ja/floater_lsl_guide.xml
index 2af693be64..5773752788 100644
--- a/indra/newview/skins/default/xui/ja/floater_lsl_guide.xml
+++ b/indra/newview/skins/default/xui/ja/floater_lsl_guide.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="script ed float" title="LSL WIKI">
+<floater name="script ed float" title="LSL レファレンス">
<check_box label="カヌ゜ルを远う" name="lock_check"/>
<combo_box label="ロック" name="history_combo"/>
<button label="戻る" name="back_btn"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_media_browser.xml b/indra/newview/skins/default/xui/ja/floater_media_browser.xml
index 5a6f2121f8..4f67523eec 100644
--- a/indra/newview/skins/default/xui/ja/floater_media_browser.xml
+++ b/indra/newview/skins/default/xui/ja/floater_media_browser.xml
@@ -19,7 +19,7 @@
<button label="早送り" name="seek"/>
</layout_panel>
<layout_panel name="parcel_owner_controls">
- <button label="珟圚の URL を区画に送信" name="assign"/>
+ <button label="珟圚のペヌゞを区画に送る" name="assign"/>
</layout_panel>
<layout_panel name="external_controls">
<button label="倖郚りェブ・ブラりザで開く" name="open_browser"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_outfit_save_as.xml b/indra/newview/skins/default/xui/ja/floater_outfit_save_as.xml
new file mode 100644
index 0000000000..a869b106ce
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/floater_outfit_save_as.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="modal container">
+ <button label="保存" label_selected="保存" name="Save"/>
+ <button label="キャンセル" label_selected="キャンセル" name="Cancel"/>
+ <text name="Save item as:">
+ アりトフィットを別名で保存
+ </text>
+ <line_editor name="name ed">
+ [DESC]
+ </line_editor>
+</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_outgoing_call.xml b/indra/newview/skins/default/xui/ja/floater_outgoing_call.xml
index 416d104586..8d67108b77 100644
--- a/indra/newview/skins/default/xui/ja/floater_outgoing_call.xml
+++ b/indra/newview/skins/default/xui/ja/floater_outgoing_call.xml
@@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="outgoing call" title="コヌル䞭">
+ <floater.string name="lifetime">
+ 5
+ </floater.string>
<floater.string name="localchat">
近くのボむスチャット
</floater.string>
@@ -21,6 +24,12 @@
<text name="noanswer">
繋がりたせんでした。 あずでもう䞀床お詊しください。
</text>
+ <text name="nearby">
+ [VOICE_CHANNEL_NAME] ぞの接続が切れたした。 「近くのボむスチャット」に再接続されたす。
+ </text>
+ <text name="nearby_P2P">
+ [VOICE_CHANNEL_NAME] がコヌルを終了したした。 「近くのボむスチャット」に再接続されたす。
+ </text>
<text name="leaving">
[CURRENT_CHAT] を終了したす。
</text>
diff --git a/indra/newview/skins/default/xui/ja/floater_preferences.xml b/indra/newview/skins/default/xui/ja/floater_preferences.xml
index 7c9a8b61bd..1493219b83 100644
--- a/indra/newview/skins/default/xui/ja/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/ja/floater_preferences.xml
@@ -8,7 +8,7 @@
<panel label="プラむバシヌ" name="im"/>
<panel label="サりンド" name="audio"/>
<panel label="チャット" name="chat"/>
- <panel label="è­Šå‘Š" name="msgs"/>
+ <panel label="通知" name="msgs"/>
<panel label="セットアップ" name="input"/>
<panel label="詳现" name="advanced1"/>
</tab_container>
diff --git a/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml b/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml
index 4b4df98348..a378700d15 100644
--- a/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml
@@ -24,6 +24,9 @@
<floater.string name="Title">
ゞェスチャヌ [NAME]
</floater.string>
+ <text name="name_text">
+ 名前
+ </text>
<text name="desc_label">
説明
</text>
diff --git a/indra/newview/skins/default/xui/ja/floater_preview_notecard.xml b/indra/newview/skins/default/xui/ja/floater_preview_notecard.xml
index 0ab1efd127..6e6e04c7d8 100644
--- a/indra/newview/skins/default/xui/ja/floater_preview_notecard.xml
+++ b/indra/newview/skins/default/xui/ja/floater_preview_notecard.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="preview notecard" title="メモ">
+<floater name="preview notecard" title="ノヌトカヌド">
<floater.string name="no_object">
- このノヌトを含んだオブゞェクトが芋぀かりたせん。
+ このノヌトカヌドが含たれたオブゞェクトが芋぀かりたせん。
</floater.string>
<floater.string name="not_allowed">
このノヌトを芋る暩限がありたせん。
diff --git a/indra/newview/skins/default/xui/ja/floater_preview_texture.xml b/indra/newview/skins/default/xui/ja/floater_preview_texture.xml
index 3313ae84b9..c322538127 100644
--- a/indra/newview/skins/default/xui/ja/floater_preview_texture.xml
+++ b/indra/newview/skins/default/xui/ja/floater_preview_texture.xml
@@ -9,8 +9,6 @@
<text name="desc txt">
説明
</text>
- <button label="OK" name="Keep"/>
- <button label="キャンセル" name="Discard"/>
<text name="dimensions">
[WIDTH]px x [HEIGHT]px
</text>
@@ -43,4 +41,7 @@
2:1
</combo_item>
</combo_box>
+ <button label="OK" name="Keep"/>
+ <button label="キャンセル" name="Discard"/>
+ <button label="別名で保存" name="save_tex_btn"/>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_report_abuse.xml b/indra/newview/skins/default/xui/ja/floater_report_abuse.xml
index 599cd5d98d..ca6faf59c2 100644
--- a/indra/newview/skins/default/xui/ja/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/ja/floater_report_abuse.xml
@@ -41,8 +41,8 @@
<combo_box name="category_combo" tool_tip="カテゎリヌ -- この報告に最も適したカテゎリヌを遞択しおください">
<combo_box.item label="カテゎリヌを遞択" name="Select_category"/>
<combo_box.item label="幎霢幎霢停蚌" name="Age__Age_play"/>
- <combo_box.item label="幎霢成人の䜏人がTeen Second Life䞊にいる" name="Age__Adult_resident_on_Teen_Second_Life"/>
- <combo_box.item label="幎霢未成幎な䜏人がTeen Second Lifeの倖にいる" name="Age__Underage_resident_outside_of_Teen_Second_Life"/>
+ <combo_box.item label="幎霢 &gt; 成人の䜏人が Teen Second Life にいる" name="Age__Adult_resident_on_Teen_Second_Life"/>
+ <combo_box.item label="幎霢 &gt; 未成幎の䜏人がTeen Second Life の倖にいる" name="Age__Underage_resident_outside_of_Teen_Second_Life"/>
<combo_box.item label="攻撃コンバット・サンドボックス/危険な゚リア" name="Assault__Combat_sandbox___unsafe_area"/>
<combo_box.item label="攻撃安党な゚リア" name="Assault__Safe_area"/>
<combo_box.item label="攻撃歊噚テスト甚サンドボックス" name="Assault__Weapons_testing_sandbox"/>
@@ -68,7 +68,7 @@
<combo_box.item label="わいせ぀著しく䞍快であるず芋なされるコンテンツたたは行為" name="Indecency__Broadly_offensive_content_or_conduct"/>
<combo_box.item label="わいせ぀䞍適切なアバタヌ名" name="Indecency__Inappropriate_avatar_name"/>
<combo_box.item label="わいせ぀PG地域での䞍適切なコンテンツたたは行為" name="Indecency__Mature_content_in_PG_region"/>
- <combo_box.item label="わいせ぀Mature地域での䞍適切なコンテンツたたは行為" name="Indecency__Inappropriate_content_in_Mature_region"/>
+ <combo_box.item label="わいせ぀ &gt; 控えめ指定の地域での䞍適切なコンテンツたたは行為" name="Indecency__Inappropriate_content_in_Mature_region"/>
<combo_box.item label="知的財産の䟵害コンテンツの撀去" name="Intellectual_property_infringement_Content_Removal"/>
<combo_box.item label="知的財産の䟵害コピヌBot及び暩限の悪甚" name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit"/>
<combo_box.item label="䞍寛容" name="Intolerance"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_script_limits.xml b/indra/newview/skins/default/xui/ja/floater_script_limits.xml
new file mode 100644
index 0000000000..7ccd858af7
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/floater_script_limits.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="scriptlimits" title="スクリプト情報"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_search.xml b/indra/newview/skins/default/xui/ja/floater_search.xml
index 9d65e84072..289098a343 100644
--- a/indra/newview/skins/default/xui/ja/floater_search.xml
+++ b/indra/newview/skins/default/xui/ja/floater_search.xml
@@ -6,4 +6,11 @@
<floater.string name="done_text">
完了
</floater.string>
+ <layout_stack name="stack1">
+ <layout_panel name="browser_layout">
+ <text name="refresh_search">
+ 珟圚のゎッドレベルに反映させるため怜玢をやり盎しおください
+ </text>
+ </layout_panel>
+ </layout_stack>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_select_key.xml b/indra/newview/skins/default/xui/ja/floater_select_key.xml
index 09c98add47..d41be86873 100644
--- a/indra/newview/skins/default/xui/ja/floater_select_key.xml
+++ b/indra/newview/skins/default/xui/ja/floater_select_key.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="modal container">
- <button label="キャンセル" label_selected="キャンセル" name="Cancel" />
+ <button label="キャンセル" label_selected="キャンセル" name="Cancel"/>
<text name="Save item as:">
- キヌを抌しお遞択
+ キヌを抌しおスピヌカヌボタンのトリガヌを蚭定したす。
</text>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_sell_land.xml b/indra/newview/skins/default/xui/ja/floater_sell_land.xml
index 951499d0e3..b06b16bbb3 100644
--- a/indra/newview/skins/default/xui/ja/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/ja/floater_sell_land.xml
@@ -39,7 +39,7 @@
販売先の指定なしか、特定の人に販売するか遞択しおください。
</text>
<combo_box name="sell_to">
- <combo_box.item label="-- 1぀遞択 --" name="--selectone--"/>
+ <combo_box.item label="- 1぀遞択 -" name="--selectone--"/>
<combo_box.item label="指定なし・誰にでも販売" name="Anyone"/>
<combo_box.item label="特定の人" name="Specificuser:"/>
</combo_box>
diff --git a/indra/newview/skins/default/xui/ja/floater_snapshot.xml b/indra/newview/skins/default/xui/ja/floater_snapshot.xml
index 22f21b0b16..6c84de9b19 100644
--- a/indra/newview/skins/default/xui/ja/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/ja/floater_snapshot.xml
@@ -4,12 +4,12 @@
スナップショットの送り先
</text>
<radio_group label="スナップショット・タむプ" name="snapshot_type_radio">
- <radio_item label="Eメヌルで送信" name="postcard"/>
- <radio_item label="持ち物に保存L$[AMOUNT]" name="texture"/>
- <radio_item label="ハヌドディスクに保存" name="local"/>
+ <radio_item label="メヌル" name="postcard"/>
+ <radio_item label="私の持ち物L$[AMOUNT]" name="texture"/>
+ <radio_item label="コンピュヌタヌに保存" name="local"/>
</radio_group>
<text name="file_size_label">
- ファむル・サむズ [SIZE] KB
+ [SIZE] KB
</text>
<button label="スナップショットを曎新" name="new_snapshot_btn"/>
<button label="送信" name="send_btn"/>
@@ -19,8 +19,8 @@
<flyout_button.item label="名前を付けお保存" name="saveas_item"/>
</flyout_button>
<button label="キャンセル" name="discard_btn"/>
- <button label="党衚瀺 &gt;&gt;" name="more_btn" tool_tip="詳しい蚭定"/>
- <button label="&lt;&lt; 簡易" name="less_btn" tool_tip="詳しい蚭定"/>
+ <button label="党衚瀺" name="more_btn" tool_tip="詳しい蚭定"/>
+ <button label="簡易" name="less_btn" tool_tip="詳しい蚭定"/>
<text name="type_label2">
サむズ
</text>
@@ -68,10 +68,10 @@
<combo_box.item label="深さ" name="Depth"/>
<combo_box.item label="オグゞェクトの぀や消し" name="ObjectMattes"/>
</combo_box>
- <check_box label="むンタフェヌスを衚瀺" name="ui_check"/>
- <check_box label="HUD オブゞェクトを衚瀺" name="hud_check"/>
+ <check_box label="むンタヌフェヌス" name="ui_check"/>
+ <check_box label="HUD" name="hud_check"/>
<check_box label="保存埌も開いた状態を保持" name="keep_open_check"/>
- <check_box label="画面党䜓を静止させる" name="freeze_frame_check"/>
+ <check_box label="画面党䜓を静止" name="freeze_frame_check"/>
<check_box label="自動曎新" name="auto_snapshot_check"/>
<string name="unknown">
未知
diff --git a/indra/newview/skins/default/xui/ja/floater_sys_well.xml b/indra/newview/skins/default/xui/ja/floater_sys_well.xml
index 91e29fd595..a7c0a2b391 100644
--- a/indra/newview/skins/default/xui/ja/floater_sys_well.xml
+++ b/indra/newview/skins/default/xui/ja/floater_sys_well.xml
@@ -1,2 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="notification_chiclet" title="通知"/>
+<floater name="notification_chiclet" title="通知">
+ <string name="title_im_well_window">
+ IMセッション
+ </string>
+ <string name="title_notification_well_window">
+ 通知
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_telehub.xml b/indra/newview/skins/default/xui/ja/floater_telehub.xml
index fea497b622..bdb92c8e30 100644
--- a/indra/newview/skins/default/xui/ja/floater_telehub.xml
+++ b/indra/newview/skins/default/xui/ja/floater_telehub.xml
@@ -20,9 +20,9 @@
<button label="出珟䜍眮を远加" name="add_spawn_point_btn"/>
<button label="出珟地点を削陀" name="remove_spawn_point_btn"/>
<text name="spawn_point_help">
- 物䜓を遞択し「远加」をクリックし䜍眮を指定。
-物䜓を移動たたは削陀できる。
-䜍眮はテレハブ・センタヌが基準の盞察䜍眮。
-リスト内品目を遞択しワヌルド内䜍眮を瀺す。
+ オブゞェクトを遞び、「出珟地点を远加」をクリックしお䜍眮を指定したす。
+そうするずそのオブゞェクトを移動させたり削陀できたす。
+䜍眮はテレハブセンタヌに関連したす。
+リストのアむテムを遞択しおむンワヌルドでハむラむトさせたす。
</text>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/ja/floater_texture_ctrl.xml
index c93f315628..1500808e60 100644
--- a/indra/newview/skins/default/xui/ja/floater_texture_ctrl.xml
+++ b/indra/newview/skins/default/xui/ja/floater_texture_ctrl.xml
@@ -17,7 +17,7 @@
<check_box label="今すぐ適甚" name="apply_immediate_check"/>
<button label="" label_selected="" name="Pipette"/>
<button label="取り消し" label_selected="取り消し" name="Cancel"/>
- <button label="Ok" label_selected="Ok" name="Select"/>
+ <button label="OK" label_selected="OK" name="Select"/>
<text name="pick title">
ピック:
</text>
diff --git a/indra/newview/skins/default/xui/ja/floater_tools.xml b/indra/newview/skins/default/xui/ja/floater_tools.xml
index cbb062dea3..52d3537d9a 100644
--- a/indra/newview/skins/default/xui/ja/floater_tools.xml
+++ b/indra/newview/skins/default/xui/ja/floater_tools.xml
@@ -451,12 +451,12 @@
<spinner label="垂盎V" name="TexOffsetV"/>
<panel name="Add_Media">
<text name="media_tex">
- メディア URL
+ メディア
</text>
<button name="add_media" tool_tip="メディアを远加"/>
<button name="delete_media" tool_tip="このメディアテクスチャを削陀"/>
<button name="edit_media" tool_tip="このメディアを線集"/>
- <button label="揃える" label_selected="メディアを䞀列に揃える" name="button align"/>
+ <button label="揃える" label_selected="メディアを䞀列に揃える" name="button align" tool_tip="メディアテクスチャを䞀列に揃える最初に読み蟌む必芁がありたす"/>
</panel>
</panel>
<panel label="䞭身" name="Contents">
@@ -475,14 +475,7 @@
面積 [AREA] 平方メヌトル
</text>
<button label="土地情報" label_selected="土地情報" name="button about land"/>
- <check_box label="オヌナヌを衚瀺" name="checkbox show owners" tool_tip="所有者の皮類別に区画を色づけ
-
-緑 = あなたの土地
-アクア = あなたのグルヌプ所有地
-èµ€ = 他人が所有する土地
-黄色 = 売り出し䞭
-玫 = オヌクション
-グレヌ = パブリック"/>
+ <check_box label="オヌナヌを衚瀺" name="checkbox show owners" tool_tip="所有者の皮類別に区画を色づけ 緑 = あなたの土地 アクア = あなたのグルヌプ所有地 èµ€ = 他人が所有する土地 黄色 = 売り出し䞭 玫 = オヌクション グレヌ = パブリック"/>
<text name="label_parcel_modify">
区画の線集
</text>
diff --git a/indra/newview/skins/default/xui/ja/floater_top_objects.xml b/indra/newview/skins/default/xui/ja/floater_top_objects.xml
index e5d1fc5f03..bfc93e5624 100644
--- a/indra/newview/skins/default/xui/ja/floater_top_objects.xml
+++ b/indra/newview/skins/default/xui/ja/floater_top_objects.xml
@@ -1,55 +1,56 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="top_objects" title="ロヌディング...">
+<floater name="top_objects" title="トップオブゞェクト">
+ <floater.string name="top_scripts_title">
+ トップ・スクリプト
+ </floater.string>
+ <floater.string name="top_scripts_text">
+ [COUNT]スクリプト党䜓の実行時間は[TIME]ミリ秒。
+ </floater.string>
+ <floater.string name="scripts_score_label">
+ 時間
+ </floater.string>
+ <floater.string name="scripts_mono_time_label">
+ Monoタむム
+ </floater.string>
+ <floater.string name="top_colliders_title">
+ 䞊郚コラむダヌ
+ </floater.string>
+ <floater.string name="top_colliders_text">
+ 䞊䜍[COUNT]個の物䜓は倚くの衝突可胜性がありたす。
+ </floater.string>
+ <floater.string name="colliders_score_label">
+ 数
+ </floater.string>
+ <floater.string name="none_descriptor">
+ 䜕も芋぀かりたせんでした。
+ </floater.string>
<text name="title_text">
ロヌド䞭
</text>
<scroll_list name="objects_list">
- <column label="数" name="score"/>
- <column label="名前" name="name"/>
- <column label="所有者" name="owner"/>
- <column label="ロケヌション" name="location"/>
- <column label="時間" name="time"/>
- <column label="Monoタむム" name="mono_time"/>
+ <scroll_list.columns label="数" name="score"/>
+ <scroll_list.columns label="名前" name="name"/>
+ <scroll_list.columns label="所有者" name="owner"/>
+ <scroll_list.columns label="ロケヌション" name="location"/>
+ <scroll_list.columns label="時間" name="time"/>
+ <scroll_list.columns label="Monoタむム" name="mono_time"/>
+ <scroll_list.columns label="URL" name="URLs"/>
</scroll_list>
<text name="id_text">
物䜓ID
</text>
<button label="暙識を衚瀺" name="show_beacon_btn"/>
<text name="obj_name_text">
- 物䜓名
+ オブゞェクト名
</text>
<button label="フィルタ" name="filter_object_btn"/>
<text name="owner_name_text">
- 所有者名
+ 所有者
</text>
<button label="フィルタ" name="filter_owner_btn"/>
+ <button label="曎新" name="refresh_btn"/>
<button label="遞択内容を返华" name="return_selected_btn"/>
<button label="すべお返华" name="return_all_btn"/>
<button label="遞択内容を無効化" name="disable_selected_btn"/>
<button label="すべお無効化" name="disable_all_btn"/>
- <button label="曎新" name="refresh_btn"/>
- <string name="top_scripts_title">
- トップ・スクリプト
- </string>
- <string name="top_scripts_text">
- [COUNT]スクリプト党䜓の実行時間は[TIME]ミリ秒。
- </string>
- <string name="scripts_score_label">
- 時間
- </string>
- <string name="scripts_mono_time_label">
- Monoタむム
- </string>
- <string name="top_colliders_title">
- 䞊郚コラむダヌ
- </string>
- <string name="top_colliders_text">
- 䞊䜍[COUNT]個の物䜓は倚くの衝突可胜性がありたす。
- </string>
- <string name="colliders_score_label">
- 数
- </string>
- <string name="none_descriptor">
- 䜕も芋぀かりたせんでした。
- </string>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_voice_controls.xml b/indra/newview/skins/default/xui/ja/floater_voice_controls.xml
index 5d52144265..5a0694e5c5 100644
--- a/indra/newview/skins/default/xui/ja/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/ja/floater_voice_controls.xml
@@ -1,13 +1,23 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="floater_voice_controls" title="ボむスコントロヌル">
- <panel name="control_panel">
- <panel name="my_panel">
- <text name="user_text" value="Mya Avatar:"/>
- </panel>
- <layout_stack>
- <layout_panel>
- <slider_bar name="volume_slider_bar" tool_tip="音量"/>
- </layout_panel>
- </layout_stack>
- </panel>
+ <string name="title_nearby">
+ 近くのボむス
+ </string>
+ <string name="title_group">
+ [GROUP] ずグルヌプコヌル
+ </string>
+ <string name="title_adhoc">
+ コンファレンスコヌル
+ </string>
+ <string name="title_peer_2_peer">
+ [NAME] でコヌル
+ </string>
+ <string name="no_one_near">
+ 近くにボむスを有効にしおいる人はいたせん。
+ </string>
+ <layout_stack name="my_call_stack">
+ <layout_panel name="leave_call_btn_panel">
+ <button label="コヌル終了" name="leave_call_btn"/>
+ </layout_panel>
+ </layout_stack>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_whitelist_entry.xml b/indra/newview/skins/default/xui/ja/floater_whitelist_entry.xml
index b518d87477..34aba9d485 100644
--- a/indra/newview/skins/default/xui/ja/floater_whitelist_entry.xml
+++ b/indra/newview/skins/default/xui/ja/floater_whitelist_entry.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="whitelist_entry">
+<floater name="whitelist_entry" title="ホワむトリストの入力">
<text name="media_label">
URL か URL パタヌンを入力しお、蚱可するドメむンをリストに远加したす。
</text>
diff --git a/indra/newview/skins/default/xui/ja/floater_window_size.xml b/indra/newview/skins/default/xui/ja/floater_window_size.xml
new file mode 100644
index 0000000000..a31336c0f8
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/floater_window_size.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="window_size" title="りィンドりサむズ">
+ <string name="resolution_format">
+ [RES_X] x [RES_Y]
+ </string>
+ <text name="windowsize_text">
+ りィンドりのサむズの蚭定
+ </text>
+ <combo_box name="window_size_combo" tool_tip="暪幅 x 高さ">
+ <combo_box.item label="1000 x 700 暙準" name="item0"/>
+ <combo_box.item label="1024 x 768" name="item1"/>
+ <combo_box.item label="1280 x 720 720p" name="item2"/>
+ <combo_box.item label="1920 x 1080 1080p" name="item3"/>
+ </combo_box>
+ <button label="蚭定" name="set_btn"/>
+ <button label="キャンセル" name="cancel_btn"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_world_map.xml b/indra/newview/skins/default/xui/ja/floater_world_map.xml
index 370c95530a..a0f2d98adf 100644
--- a/indra/newview/skins/default/xui/ja/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/ja/floater_world_map.xml
@@ -1,54 +1,81 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="worldmap" title="䞖界地図">
- <text name="you_label">
- あなた
- </text>
- <text name="home_label">
- ホヌム
- </text>
- <text name="auction_label">
- オヌクション
- </text>
- <icon left="1123" name="square"/>
- <text left_delta="20" name="land_for_sale_label">
- 売出し䞭の土地
- </text>
- <button label="ホヌムぞ" label_selected="ホヌムぞ" name="Go Home" tool_tip="自分のホヌムにテレポヌト"/>
- <check_box label="䜏人" name="people_chk"/>
- <check_box label="むンフォハブ" name="infohub_chk"/>
- <check_box label="テレハブ" name="telehub_chk"/>
- <check_box label="売り地" name="land_for_sale_chk"/>
- <text name="events_label">
- むベント
- </text>
- <check_box label="PG" name="event_chk"/>
- <check_box initial_value="true" label="Mature" name="event_mature_chk"/>
- <check_box label="Adult" name="event_adult_chk"/>
- <combo_box label="オンラむンのフレンド" name="friend combo" tool_tip="地図に衚瀺するフレンド">
- <combo_box.item label="オンラむンのフレンド" name="item1"/>
- </combo_box>
- <combo_box label="ランドマヌク" name="landmark combo" tool_tip="地図に衚瀺するランドマヌク">
- <combo_box.item label="ランドマヌク" name="item1"/>
- </combo_box>
- <line_editor label="地域名で怜玢" name="location" tool_tip="地域名を入力しおください。"/>
- <button label="怜玢" name="DoSearch" tool_tip="地域怜玢"/>
- <text name="search_label">
- 怜玢結果
- </text>
- <scroll_list name="search_results">
- <scroll_list.columns label="" name="icon"/>
- <scroll_list.columns label="" name="sim_name"/>
- </scroll_list>
- <text name="location_label">
- 䜍眮
- </text>
- <spinner name="spin x" tool_tip="地図䞊に衚瀺される䜍眮のX座暙"/>
- <spinner name="spin y" tool_tip="地図䞊に衚瀺される䜍眮のY座暙"/>
- <spinner name="spin z" tool_tip="地図䞊に衚瀺される䜍眮のZ座暙"/>
- <button label="テレポヌト" label_selected="テレポヌト" name="Teleport" tool_tip="遞択されたロケヌションにテレポヌト"/>
- <button label="目的地を衚瀺" label_selected="目的地を衚瀺" name="Show Destination" tool_tip="遞択したロケヌションを地図の䞭心にする"/>
- <button label="クリア" label_selected="クリア" name="Clear" tool_tip="トラッキングを停止"/>
- <button label="珟圚地を衚瀺" label_selected="珟圚地を衚瀺" name="Show My Location" tool_tip="あなたのアバタヌのロケヌションを地図の䞭心にする"/>
- <button label="SLurl をクリップボヌドにコピヌ" name="copy_slurl" tool_tip="珟圚地を SLurl ずしおコピヌしお、Webで䜿甚したす。"/>
- <slider label="ズヌム" name="zoom slider"/>
+ <panel name="layout_panel_1">
+ <text name="events_label">
+ レゞェンド
+ </text>
+ </panel>
+ <panel>
+ <button label="珟圚地を衚瀺" label_selected="珟圚地を衚瀺" name="Show My Location" tool_tip="マップを䞭倮に衚瀺する"/>
+ <text name="me_label">
+ ミヌ
+ </text>
+ <check_box label="䜏人" name="people_chk"/>
+ <text name="person_label">
+ 䜏人
+ </text>
+ <check_box label="むンフォハブ" name="infohub_chk"/>
+ <text name="infohub_label">
+ むンフォハブ
+ </text>
+ <check_box label="売り地" name="land_for_sale_chk"/>
+ <text name="land_sale_label">
+ 土地販売
+ </text>
+ <text name="by_owner_label">
+ by owner
+ </text>
+ <text name="auction_label">
+ 土地オヌクション
+ </text>
+ <button label="ホヌムぞ" label_selected="ホヌムぞ" name="Go Home" tool_tip="「ホヌム」にテレポヌト"/>
+ <text name="Home_label">
+ ホヌム
+ </text>
+ <text name="events_label">
+ むベント
+ </text>
+ <check_box label="PG" name="event_chk"/>
+ <text name="pg_label">
+ 䞀般
+ </text>
+ <check_box initial_value="true" label="Mature" name="event_mature_chk"/>
+ <text name="mature_label">
+ 控えめ
+ </text>
+ <check_box label="Adult" name="event_adult_chk"/>
+ <text name="adult_label">
+ アダルト
+ </text>
+ </panel>
+ <panel>
+ <text name="find_on_map_label">
+ 地図で探す
+ </text>
+ </panel>
+ <panel>
+ <combo_box label="オンラむンのフレンド" name="friend combo" tool_tip="フレンドを地図に衚瀺">
+ <combo_box.item label="オンラむンのフレンド" name="item1"/>
+ </combo_box>
+ <combo_box label="マむ ランドマヌク" name="landmark combo" tool_tip="地図に衚瀺するランドマヌク">
+ <combo_box.item label="マむ ランドマヌク" name="item1"/>
+ </combo_box>
+ <search_editor label="リヌゞョン名" name="location" tool_tip="地域名を入力しおください。"/>
+ <button label="怜玢" name="DoSearch" tool_tip="地域怜玢"/>
+ <scroll_list name="search_results">
+ <scroll_list.columns label="" name="icon"/>
+ <scroll_list.columns label="" name="sim_name"/>
+ </scroll_list>
+ <button label="テレポヌト" label_selected="テレポヌト" name="Teleport" tool_tip="遞択されたロケヌションにテレポヌト"/>
+ <button label="SLurl をコピヌ" name="copy_slurl" tool_tip="珟圚地を SLurl ずしおコピヌしお、Webで䜿甚したす。"/>
+ <button label="遞択したリヌゞョンを衚瀺する" label_selected="目的地を衚瀺" name="Show Destination" tool_tip="遞択したロケヌションを地図の䞭心にする"/>
+ </panel>
+ <panel>
+ <text name="zoom_label">
+ ズヌム
+ </text>
+ </panel>
+ <panel>
+ <slider label="ズヌム" name="zoom slider"/>
+ </panel>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/inspect_avatar.xml b/indra/newview/skins/default/xui/ja/inspect_avatar.xml
index df3f6d0cd0..9371b80af5 100644
--- a/indra/newview/skins/default/xui/ja/inspect_avatar.xml
+++ b/indra/newview/skins/default/xui/ja/inspect_avatar.xml
@@ -10,19 +10,17 @@
<string name="Details">
[SL_PROFILE]
</string>
- <string name="Partner">
- パヌトナヌ [PARTNER]
- </string>
<text name="user_name" value="Grumpity ProductEngine"/>
<text name="user_subtitle" value="11 Months, 3 days old"/>
<text name="user_details">
This is my second life description and I really think it is great.
</text>
- <text name="user_partner">
- Erica Linden
- </text>
<slider name="volume_slider" tool_tip="ボむス音量" value="0.5"/>
<button label="フレンド登録" name="add_friend_btn"/>
<button label="IM" name="im_btn"/>
<button label="詳现" name="view_profile_btn"/>
+ <panel name="moderator_panel">
+ <button label="ボむスを無効にする" name="disable_voice"/>
+ <button label="ボむスを有効にする" name="enable_voice"/>
+ </panel>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/inspect_group.xml b/indra/newview/skins/default/xui/ja/inspect_group.xml
index b292d4b525..b461b93f65 100644
--- a/indra/newview/skins/default/xui/ja/inspect_group.xml
+++ b/indra/newview/skins/default/xui/ja/inspect_group.xml
@@ -31,4 +31,5 @@ Fear the moose! Fear it! And the mongoose too!
</text>
<button label="参加" name="join_btn"/>
<button label="脱退" name="leave_btn"/>
+ <button label="プロフィヌルの衚瀺" name="view_profile_btn"/>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/menu_attachment_other.xml b/indra/newview/skins/default/xui/ja/menu_attachment_other.xml
new file mode 100644
index 0000000000..f163c2cf4f
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_attachment_other.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- *NOTE: See also menu_avatar_other.xml -->
+<context_menu name="Avatar Pie">
+ <menu_item_call label="プロフィヌルの衚瀺" name="Profile..."/>
+ <menu_item_call label="フレンド登録" name="Add Friend"/>
+ <menu_item_call label="IM" name="Send IM..."/>
+ <menu_item_call label="コヌル" name="Call"/>
+ <menu_item_call label="グルヌプに招埅" name="Invite..."/>
+ <menu_item_call label="ブロック" name="Avatar Mute"/>
+ <menu_item_call label="報告" name="abuse"/>
+ <menu_item_call label="フリヌズ" name="Freeze..."/>
+ <menu_item_call label="远攟" name="Eject..."/>
+ <menu_item_call label="デバッグ" name="Debug..."/>
+ <menu_item_call label="ズヌムむン" name="Zoom In"/>
+ <menu_item_call label="支払う" name="Pay..."/>
+ <menu_item_call label="オブゞェクトのプロフィヌル" name="Object Inspect"/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_attachment_self.xml b/indra/newview/skins/default/xui/ja/menu_attachment_self.xml
new file mode 100644
index 0000000000..209edd80ba
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_attachment_self.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="Attachment Pie">
+ <menu_item_call label="觊る" name="Attachment Object Touch"/>
+ <menu_item_call label="線集" name="Edit..."/>
+ <menu_item_call label="取り倖す" name="Detach"/>
+ <menu_item_call label="䞋に萜ずす" name="Drop"/>
+ <menu_item_call label="立ち䞊がる" name="Stand Up"/>
+ <menu_item_call label="容姿" name="Appearance..."/>
+ <menu_item_call label="フレンド" name="Friends..."/>
+ <menu_item_call label="グルヌプ" name="Groups..."/>
+ <menu_item_call label="プロフィヌル" name="Profile..."/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_avatar_icon.xml b/indra/newview/skins/default/xui/ja/menu_avatar_icon.xml
index ef63f3f4e0..b04f602134 100644
--- a/indra/newview/skins/default/xui/ja/menu_avatar_icon.xml
+++ b/indra/newview/skins/default/xui/ja/menu_avatar_icon.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="Avatar Icon Menu">
- <menu_item_call label="プロフィヌルを衚瀺..." name="Show Profile"/>
+ <menu_item_call label="プロフィヌルの衚瀺" name="Show Profile"/>
<menu_item_call label="IMを送信..." name="Send IM"/>
<menu_item_call label="フレンドを远加..." name="Add Friend"/>
<menu_item_call label="フレンドを削陀..." name="Remove Friend"/>
diff --git a/indra/newview/skins/default/xui/ja/menu_avatar_other.xml b/indra/newview/skins/default/xui/ja/menu_avatar_other.xml
new file mode 100644
index 0000000000..74d877cdda
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_avatar_other.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- *NOTE: See also menu_attachment_other.xml -->
+<context_menu name="Avatar Pie">
+ <menu_item_call label="プロフィヌルの衚瀺" name="Profile..."/>
+ <menu_item_call label="フレンド登録" name="Add Friend"/>
+ <menu_item_call label="IM" name="Send IM..."/>
+ <menu_item_call label="コヌル" name="Call"/>
+ <menu_item_call label="グルヌプに招埅" name="Invite..."/>
+ <menu_item_call label="ブロック" name="Avatar Mute"/>
+ <menu_item_call label="報告" name="abuse"/>
+ <menu_item_call label="フリヌズ" name="Freeze..."/>
+ <menu_item_call label="远攟" name="Eject..."/>
+ <menu_item_call label="デバッグ" name="Debug..."/>
+ <menu_item_call label="ズヌムむン" name="Zoom In"/>
+ <menu_item_call label="支払う" name="Pay..."/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_avatar_self.xml b/indra/newview/skins/default/xui/ja/menu_avatar_self.xml
new file mode 100644
index 0000000000..1bfadf8d45
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_avatar_self.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="Self Pie">
+ <menu_item_call label="立ち䞊がる" name="Stand Up"/>
+ <context_menu label="脱ぐ" name="Take Off &gt;">
+ <context_menu label="衣類 &gt;" name="Clothes &gt;">
+ <menu_item_call label="シャツ" name="Shirt"/>
+ <menu_item_call label="パンツ" name="Pants"/>
+ <menu_item_call label="スカヌト" name="Skirt"/>
+ <menu_item_call label="靎" name="Shoes"/>
+ <menu_item_call label="靮例" name="Socks"/>
+ <menu_item_call label="ゞャケット" name="Jacket"/>
+ <menu_item_call label="手袋" name="Gloves"/>
+ <menu_item_call label="䞋着シャツ" name="Self Undershirt"/>
+ <menu_item_call label="䞋着パンツ" name="Self Underpants"/>
+ <menu_item_call label="タトゥ" name="Self Tattoo"/>
+ <menu_item_call label="アルファ" name="Self Alpha"/>
+ <menu_item_call label="すべおの衣類" name="All Clothes"/>
+ </context_menu>
+ <context_menu label="HUD &gt;" name="Object Detach HUD"/>
+ <context_menu label="取り倖す &gt;" name="Object Detach"/>
+ <menu_item_call label="すべお取り倖す" name="Detach All"/>
+ </context_menu>
+ <menu_item_call label="容姿" name="Appearance..."/>
+ <menu_item_call label="フレンド" name="Friends..."/>
+ <menu_item_call label="グルヌプ" name="Groups..."/>
+ <menu_item_call label="マむ プロフィヌル" name="Profile..."/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_bottomtray.xml b/indra/newview/skins/default/xui/ja/menu_bottomtray.xml
index 3ca2de247e..ea7ba1b741 100644
--- a/indra/newview/skins/default/xui/ja/menu_bottomtray.xml
+++ b/indra/newview/skins/default/xui/ja/menu_bottomtray.xml
@@ -4,4 +4,9 @@
<menu_item_check label="移動ボタン" name="ShowMoveButton"/>
<menu_item_check label="芖界ボタン" name="ShowCameraButton"/>
<menu_item_check label="スナップショットボタン" name="ShowSnapshotButton"/>
+ <menu_item_call label="切り取り" name="NearbyChatBar_Cut"/>
+ <menu_item_call label="コピヌ" name="NearbyChatBar_Copy"/>
+ <menu_item_call label="貌り付け" name="NearbyChatBar_Paste"/>
+ <menu_item_call label="削陀" name="NearbyChatBar_Delete"/>
+ <menu_item_call label="すべお遞択" name="NearbyChatBar_Select_All"/>
</menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_im_well_button.xml b/indra/newview/skins/default/xui/ja/menu_im_well_button.xml
new file mode 100644
index 0000000000..3397004bd7
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_im_well_button.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="IM Well Button Context Menu">
+ <menu_item_call label="すべお閉じる" name="Close All"/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_imchiclet_adhoc.xml b/indra/newview/skins/default/xui/ja/menu_imchiclet_adhoc.xml
new file mode 100644
index 0000000000..8cd6fa4a27
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_imchiclet_adhoc.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="IMChiclet AdHoc Menu">
+ <menu_item_call label="セッション終了" name="End Session"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_imchiclet_p2p.xml b/indra/newview/skins/default/xui/ja/menu_imchiclet_p2p.xml
index 0887001992..5453f998fa 100644
--- a/indra/newview/skins/default/xui/ja/menu_imchiclet_p2p.xml
+++ b/indra/newview/skins/default/xui/ja/menu_imchiclet_p2p.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="IMChiclet P2P Menu">
- <menu_item_call label="プロフィヌルを衚瀺" name="Show Profile"/>
+ <menu_item_call label="プロフィヌルの衚瀺" name="Show Profile"/>
<menu_item_call label="フレンド登録" name="Add Friend"/>
<menu_item_call label="セッションを衚瀺" name="Send IM"/>
<menu_item_call label="セッション終了" name="End Session"/>
diff --git a/indra/newview/skins/default/xui/ja/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/ja/menu_inspect_avatar_gear.xml
index 64e1505440..3d5086c52a 100644
--- a/indra/newview/skins/default/xui/ja/menu_inspect_avatar_gear.xml
+++ b/indra/newview/skins/default/xui/ja/menu_inspect_avatar_gear.xml
@@ -7,6 +7,7 @@
<menu_item_call label="テレポヌト" name="teleport"/>
<menu_item_call label="グルヌプに招埅" name="invite_to_group"/>
<menu_item_call label="ブロック" name="block"/>
+ <menu_item_call label="ブロック解陀" name="unblock"/>
<menu_item_call label="報告" name="report"/>
<menu_item_call label="フリヌズ" name="freeze"/>
<menu_item_call label="远攟" name="eject"/>
diff --git a/indra/newview/skins/default/xui/ja/menu_inventory.xml b/indra/newview/skins/default/xui/ja/menu_inventory.xml
index 623a0cdb06..78c0dd0a78 100644
--- a/indra/newview/skins/default/xui/ja/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/ja/menu_inventory.xml
@@ -10,7 +10,7 @@
<menu_item_call label="遺倱物フォルダを空にする" name="Empty Lost And Found"/>
<menu_item_call label="新しいフォルダ" name="New Folder"/>
<menu_item_call label="新しいスクリプト" name="New Script"/>
- <menu_item_call label="新しいノヌト" name="New Note"/>
+ <menu_item_call label="新しいノヌトカヌド" name="New Note"/>
<menu_item_call label="新しいゞェスチャヌ" name="New Gesture"/>
<menu label="新しい衣類" name="New Clothes">
<menu_item_call label="新しいシャツ" name="New Shirt"/>
@@ -46,6 +46,9 @@
<menu_item_call label="テレポヌト" name="Landmark Open"/>
<menu_item_call label="開く" name="Animation Open"/>
<menu_item_call label="開く" name="Sound Open"/>
+ <menu_item_call label="着甚䞭のアりトフィットを入れ替える" name="Replace Outfit"/>
+ <menu_item_call label="着甚䞭のアりトフィットに远加する" name="Add To Outfit"/>
+ <menu_item_call label="着甚䞭のアりトフィットから取り陀く" name="Remove From Outfit"/>
<menu_item_call label="アむテムを陀倖" name="Purge Item"/>
<menu_item_call label="アむテムを埩元" name="Restore Item"/>
<menu_item_call label="オリゞナルを探す" name="Find Original"/>
@@ -56,10 +59,9 @@
<menu_item_call label="コピヌ" name="Copy"/>
<menu_item_call label="貌り付け" name="Paste"/>
<menu_item_call label="リンクの貌り付け" name="Paste As Link"/>
+ <menu_item_call label="リンクを倖す" name="Remove Link"/>
<menu_item_call label="削陀" name="Delete"/>
- <menu_item_call label="アりトフィットから取り陀く" name="Remove From Outfit"/>
- <menu_item_call label="服装に远加" name="Add To Outfit"/>
- <menu_item_call label="服装を眮換" name="Replace Outfit"/>
+ <menu_item_call label="システムフォルダを削陀する" name="Delete System Folder"/>
<menu_item_call label="䌚議チャット開始" name="Conference Chat Folder"/>
<menu_item_call label="再生" name="Sound Play"/>
<menu_item_call label="ランドマヌクの情報" name="About Landmark"/>
diff --git a/indra/newview/skins/default/xui/ja/menu_inventory_add.xml b/indra/newview/skins/default/xui/ja/menu_inventory_add.xml
index 8b18f6bfe8..14ad7900e1 100644
--- a/indra/newview/skins/default/xui/ja/menu_inventory_add.xml
+++ b/indra/newview/skins/default/xui/ja/menu_inventory_add.xml
@@ -8,7 +8,7 @@
</menu>
<menu_item_call label="新芏フォルダ" name="New Folder"/>
<menu_item_call label="新芏スクリプト" name="New Script"/>
- <menu_item_call label="新芏ノヌト" name="New Note"/>
+ <menu_item_call label="新しいノヌトカヌド" name="New Note"/>
<menu_item_call label="新芏ゞェスチャヌ" name="New Gesture"/>
<menu label="新しい衣類" name="New Clothes">
<menu_item_call label="新しいシャツ" name="New Shirt"/>
diff --git a/indra/newview/skins/default/xui/ja/menu_inventory_gear_default.xml b/indra/newview/skins/default/xui/ja/menu_inventory_gear_default.xml
index 2bac5ebaa6..e3114327a0 100644
--- a/indra/newview/skins/default/xui/ja/menu_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/ja/menu_inventory_gear_default.xml
@@ -9,4 +9,6 @@
<menu_item_call label="ごみ箱を空にする" name="empty_trash"/>
<menu_item_call label="玛倱物を空にする" name="empty_lostnfound"/>
<menu_item_call label="別名でテクスチャを保存" name="Save Texture As"/>
+ <menu_item_call label="オリゞナルを衚瀺" name="Find Original"/>
+ <menu_item_call label="すべおのリンクを衚瀺" name="Find All Links"/>
</menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_land.xml b/indra/newview/skins/default/xui/ja/menu_land.xml
new file mode 100644
index 0000000000..89c122f14f
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_land.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="Land Pie">
+ <menu_item_call label="土地情報" name="Place Information..."/>
+ <menu_item_call label="ここに座る" name="Sit Here"/>
+ <menu_item_call label="この土地を賌入" name="Land Buy"/>
+ <menu_item_call label="入堎蚱可を賌入" name="Land Buy Pass"/>
+ <menu_item_call label="制䜜" name="Create"/>
+ <menu_item_call label="地圢を線集" name="Edit Terrain"/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_login.xml b/indra/newview/skins/default/xui/ja/menu_login.xml
index 5db56ae76b..42a95ac3d3 100644
--- a/indra/newview/skins/default/xui/ja/menu_login.xml
+++ b/indra/newview/skins/default/xui/ja/menu_login.xml
@@ -23,10 +23,8 @@
<menu_item_call label="デバッグ蚭定を衚瀺" name="Debug Settings"/>
<menu_item_call label="UI/色の蚭定" name="UI/Color Settings"/>
<menu_item_call label="XUI プレビュヌツヌル" name="UI Preview Tool"/>
- <menu_item_call label="サむドトレむを衚瀺" name="Show Side Tray"/>
- <menu_item_call label="りィゞェットテスト" name="Widget Test"/>
- <menu_item_call label="むンスペクタヌテスト" name="Inspectors Test"/>
- <menu_item_check label="Reg In Client Test (restart)" name="Reg In Client Test (restart)"/>
+ <menu label="UI テスト" name="UI Tests"/>
+ <menu_item_call label="りィンドりのサむズの蚭定..." name="Set Window Size..."/>
<menu_item_call label="利甚芏玄を衚瀺" name="TOS"/>
<menu_item_call label="クリティカルメッセヌゞを衚瀺" name="Critical"/>
<menu_item_call label="Web ブラりザのテスト" name="Web Browser Test"/>
diff --git a/indra/newview/skins/default/xui/ja/menu_notification_well_button.xml b/indra/newview/skins/default/xui/ja/menu_notification_well_button.xml
new file mode 100644
index 0000000000..913bae8958
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_notification_well_button.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="Notification Well Button Context Menu">
+ <menu_item_call label="すべお閉じる" name="Close All"/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_object.xml b/indra/newview/skins/default/xui/ja/menu_object.xml
new file mode 100644
index 0000000000..a161c01514
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_object.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="Object Pie">
+ <menu_item_call label="觊る" name="Object Touch"/>
+ <menu_item_call label="線集" name="Edit..."/>
+ <menu_item_call label="制䜜" name="Build"/>
+ <menu_item_call label="開く" name="Open"/>
+ <menu_item_call label="ここに座る" name="Object Sit"/>
+ <menu_item_call label="オブゞェクトのプロフィヌル" name="Object Inspect"/>
+ <menu_item_call label="ズヌムむン" name="Zoom In"/>
+ <context_menu label="装着 &gt;" name="Put On">
+ <menu_item_call label="装着" name="Wear"/>
+ <context_menu label="取り付け &gt;" name="Object Attach"/>
+ <context_menu label="HUD を取り付け &gt;" name="Object Attach HUD"/>
+ </context_menu>
+ <context_menu label="削陀 &gt;" name="Remove">
+ <menu_item_call label="取る" name="Pie Object Take"/>
+ <menu_item_call label="嫌がらせの報告" name="Report Abuse..."/>
+ <menu_item_call label="ブロック" name="Object Mute"/>
+ <menu_item_call label="返华" name="Return..."/>
+ <menu_item_call label="削陀" name="Delete"/>
+ </context_menu>
+ <menu_item_call label="コピヌを取る" name="Take Copy"/>
+ <menu_item_call label="支払う" name="Pay..."/>
+ <menu_item_call label="買う" name="Buy..."/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_participant_list.xml b/indra/newview/skins/default/xui/ja/menu_participant_list.xml
index 0bc51ecde1..398a78bb61 100644
--- a/indra/newview/skins/default/xui/ja/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/ja/menu_participant_list.xml
@@ -1,5 +1,20 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Participant List Context Menu">
- <menu_item_check label="文字をミュヌト" name="MuteText"/>
- <menu_item_check label="文字チャットを蚱可" name="AllowTextChat"/>
+ <menu_item_check label="名前で䞊べ替え" name="SortByName"/>
+ <menu_item_check label="最近の発蚀者で䞊べ替え" name="SortByRecentSpeakers"/>
+ <menu_item_call label="プロフィヌルの衚瀺" name="View Profile"/>
+ <menu_item_call label="フレンド登録" name="Add Friend"/>
+ <menu_item_call label="IM" name="IM"/>
+ <menu_item_call label="コヌル" name="Call"/>
+ <menu_item_call label="共有" name="Share"/>
+ <menu_item_call label="支払う" name="Pay"/>
+ <menu_item_check label="ボむスをブロック" name="Block/Unblock"/>
+ <menu_item_check label="文字をブロックする" name="MuteText"/>
+ <context_menu label="モデレヌタヌのオプション &gt;" name="Moderator Options">
+ <menu_item_check label="文字チャットを蚱可" name="AllowTextChat"/>
+ <menu_item_call label="この参加者をミュヌトする" name="ModerateVoiceMuteSelected"/>
+ <menu_item_call label="他の人党員をミュヌトする" name="ModerateVoiceMuteOthers"/>
+ <menu_item_call label="この参加者のミュヌトを解陀する" name="ModerateVoiceUnMuteSelected"/>
+ <menu_item_call label="他の人党員のミュヌトを解陀する" name="ModerateVoiceUnMuteOthers"/>
+ </context_menu>
</context_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_people_groups.xml b/indra/newview/skins/default/xui/ja/menu_people_groups.xml
new file mode 100644
index 0000000000..4e5dc60a3d
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_people_groups.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="menu_group_plus">
+ <menu_item_call label="情報を衚瀺" name="View Info"/>
+ <menu_item_call label="チャット" name="Chat"/>
+ <menu_item_call label="コヌル" name="Call"/>
+ <menu_item_call label="有効化" name="Activate"/>
+ <menu_item_call label="脱退" name="Leave"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_people_nearby.xml b/indra/newview/skins/default/xui/ja/menu_people_nearby.xml
index a577523754..2c8a346d1a 100644
--- a/indra/newview/skins/default/xui/ja/menu_people_nearby.xml
+++ b/indra/newview/skins/default/xui/ja/menu_people_nearby.xml
@@ -7,4 +7,5 @@
<menu_item_call label="共有" name="Share"/>
<menu_item_call label="支払う" name="Pay"/>
<menu_item_check label="ブロック・ブロック解陀" name="Block/Unblock"/>
+ <menu_item_call label="テレポヌトを送る" name="teleport"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_profile_overflow.xml b/indra/newview/skins/default/xui/ja/menu_profile_overflow.xml
index a34086bdbf..bb93990efe 100644
--- a/indra/newview/skins/default/xui/ja/menu_profile_overflow.xml
+++ b/indra/newview/skins/default/xui/ja/menu_profile_overflow.xml
@@ -2,4 +2,8 @@
<toggleable_menu name="profile_overflow_menu">
<menu_item_call label="支払う" name="pay"/>
<menu_item_call label="共有" name="share"/>
+ <menu_item_call label="远攟" name="kick"/>
+ <menu_item_call label="フリヌズ" name="freeze"/>
+ <menu_item_call label="フリヌズ解陀" name="unfreeze"/>
+ <menu_item_call label="CSR" name="csr"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_viewer.xml b/indra/newview/skins/default/xui/ja/menu_viewer.xml
index fc0a5592dd..db8583ca15 100644
--- a/indra/newview/skins/default/xui/ja/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/ja/menu_viewer.xml
@@ -9,7 +9,7 @@
<menu_item_call label="マむ プロフィヌル" name="Profile"/>
<menu_item_call label="マむ 容姿" name="Appearance"/>
<menu_item_check label="マむ 持ち物" name="Inventory"/>
- <menu_item_call label="サむドトレむで持ち物を衚瀺" name="ShowSidetrayInventory"/>
+ <menu_item_call label="持ち物をサむドトレむに衚瀺" name="ShowSidetrayInventory"/>
<menu_item_call label="マむ ゞェスチャヌ" name="Gestures"/>
<menu label="マむ ログむン状態" name="Status">
<menu_item_call label="䞀時退垭䞭" name="Set Away"/>
@@ -25,36 +25,30 @@
<menu_item_check label="近くのチャット" name="Nearby Chat"/>
<menu_item_call label="近くにいる人" name="Active Speakers"/>
<menu_item_check label="近くのメディア" name="Nearby Media"/>
- <menu_item_check label="レガシヌ コミュニケヌション" name="Instant Message"/>
- <menu_item_call label="䞀時メディアリモコン" name="Preferences"/>
</menu>
<menu label="侖界" name="World">
- <menu_item_check label="移動" name="Movement Controls"/>
- <menu_item_check label="芖界" name="Camera Controls"/>
- <menu_item_call label="土地に぀いお" name="About Land"/>
- <menu_item_call label="地域 / 䞍動産" name="Region/Estate"/>
- <menu_item_call label="土地の賌入" name="Buy Land"/>
- <menu_item_call label="自分の土地" name="My Land"/>
- <menu label="衚瀺" name="Land">
- <menu_item_check label="立入犁止ラむン" name="Ban Lines"/>
- <menu_item_check label="ビヌコン暙識" name="beacons"/>
- <menu_item_check label="敷地境界線" name="Property Lines"/>
- <menu_item_check label="土地所有者" name="Land Owners"/>
- </menu>
- <menu label="ランドマヌク" name="Landmarks">
- <menu_item_call label="ここのランドマヌクを䜜成" name="Create Landmark Here"/>
- <menu_item_call label="珟圚地をホヌムに蚭定" name="Set Home to Here"/>
- </menu>
- <menu_item_call label="ホヌム" name="Teleport Home"/>
<menu_item_check label="ミニマップ" name="Mini-Map"/>
<menu_item_check label="䞖界地図" name="World Map"/>
<menu_item_call label="スナップショット" name="Take Snapshot"/>
+ <menu_item_call label="珟圚地をランドマヌク" name="Create Landmark Here"/>
+ <menu label="堎所のプロフィヌル" name="Land">
+ <menu_item_call label="土地情報" name="About Land"/>
+ <menu_item_call label="地域 / 䞍動産" name="Region/Estate"/>
+ </menu>
+ <menu_item_call label="この土地を賌入" name="Buy Land"/>
+ <menu_item_call label="自分の土地" name="My Land"/>
+ <menu label="衚瀺" name="LandShow">
+ <menu_item_check label="移動コントロヌル" name="Movement Controls"/>
+ <menu_item_check label="コントロヌルを衚瀺" name="Camera Controls"/>
+ </menu>
+ <menu_item_call label="ホヌムにテレポヌト" name="Teleport Home"/>
+ <menu_item_call label="珟圚地をホヌムに蚭定" name="Set Home to Here"/>
<menu label="倪陜" name="Environment Settings">
<menu_item_call label="日の出" name="Sunrise"/>
<menu_item_call label="正午" name="Noon"/>
<menu_item_call label="日没" name="Sunset"/>
<menu_item_call label="深倜" name="Midnight"/>
- <menu_item_call label="゚ステヌトタむムを䜿甚" name="Revert to Region Default"/>
+ <menu_item_call label="゚ステヌトタむム" name="Revert to Region Default"/>
<menu_item_call label="環境線集" name="Environment Editor"/>
</menu>
</menu>
@@ -125,21 +119,20 @@
</menu>
<menu label="ヘルプ" name="Help">
<menu_item_call label="[SECOND_LIFE] ヘルプ" name="Second Life Help"/>
- <menu_item_call label="チュヌトリアル" name="Tutorial"/>
<menu_item_call label="嫌がらせを報告" name="Report Abuse"/>
+ <menu_item_call label="バグ報告" name="Report Bug"/>
<menu_item_call label="[APP_NAME] に぀いお" name="About Second Life"/>
</menu>
<menu label="アドバンス" name="Advanced">
- <menu_item_check label="30分経過で AFK に蚭定" name="Go Away/AFK When Idle"/>
<menu_item_call label="私のアニメヌションを停止する" name="Stop Animating My Avatar"/>
<menu_item_call label="テクスチャのリベヌク" name="Rebake Texture"/>
<menu_item_call label="UI のサむズをデフォルトに蚭定する" name="Set UI Size to Default"/>
+ <menu_item_call label="りィンドりのサむズの蚭定" name="Set Window Size..."/>
<menu_item_check label="遠くのオブゞェクトを遞択しない" name="Limit Select Distance"/>
<menu_item_check label="カメラの距離移動を制限しない" name="Disable Camera Distance"/>
<menu_item_check label="高解像床スナップショット" name="HighResSnapshot"/>
<menu_item_check label="シャッタヌ音ずアニメヌションなしでスナップショットをディスクに保存" name="QuietSnapshotsToDisk"/>
<menu_item_check label="圧瞮しおスナップショットをディスクに保存する" name="CompressSnapshotsToDisk"/>
- <menu_item_call label="別名でテクスチャを保存" name="Save Texture As"/>
<menu label="パフォヌマンスツヌル" name="Performance Tools">
<menu_item_call label="ラグ蚈枬噚" name="Lag Meter"/>
<menu_item_check label="統蚈バヌ" name="Statistics Bar"/>
@@ -333,7 +326,6 @@
<menu_item_call label="XML で保存" name="Save to XML"/>
<menu_item_check label="XUI ネヌムを衚瀺" name="Show XUI Names"/>
<menu_item_call label="テスト甚 IM を送信" name="Send Test IMs"/>
- <menu_item_call label="むンスペクタヌテスト" name="Test Inspectors"/>
</menu>
<menu label="アバタヌ" name="Character">
<menu label="ベヌクドテクスチャを取埗" name="Grab Baked Texture">
@@ -366,6 +358,7 @@
<menu_item_call label="アバタヌテクスチャをデバッグ" name="Debug Avatar Textures"/>
<menu_item_call label="ロヌカルテクスチャをダンプ" name="Dump Local Textures"/>
</menu>
+ <menu_item_check label="HTTP Texture" name="HTTP Textures"/>
<menu_item_call label="圧瞮画像" name="Compress Images"/>
<menu_item_check label="Output Debug Minidump" name="Output Debug Minidump"/>
<menu_item_check label="次回の起動時にコン゜ヌルりィンドりを衚瀺" name="Console Window"/>
@@ -410,7 +403,6 @@
<menu_item_call label="タトゥ" name="Tattoo"/>
<menu_item_call label="すべおの衣類" name="All Clothes"/>
</menu>
- <menu_item_check label="ツヌルバヌを衚瀺" name="Show Toolbar"/>
<menu label="ヘルプ" name="Help">
<menu_item_call label="リンデン公匏ブログ" name="Official Linden Blog"/>
<menu_item_call label="スクリプトポヌタル" name="Scripting Portal"/>
diff --git a/indra/newview/skins/default/xui/ja/mime_types_linux.xml b/indra/newview/skins/default/xui/ja/mime_types_linux.xml
new file mode 100644
index 0000000000..0ec1030113
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/mime_types_linux.xml
@@ -0,0 +1,217 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<mimetypes name="default">
+ <widgetset name="web">
+ <label name="web_label">
+ Web コンテンツ
+ </label>
+ <tooltip name="web_tooltip">
+ このロケヌションには Web コンテンツが含たれおいたす
+ </tooltip>
+ <playtip name="web_playtip">
+ Web コンテンツを衚瀺する
+ </playtip>
+ </widgetset>
+ <widgetset name="movie">
+ <label name="movie_label">
+ ムヌビヌ
+ </label>
+ <tooltip name="movie_tooltip">
+ ここにはムヌビヌがありたす
+ </tooltip>
+ <playtip name="movie_playtip">
+ ムヌビヌを再生する
+ </playtip>
+ </widgetset>
+ <widgetset name="image">
+ <label name="image_label">
+ 画像
+ </label>
+ <tooltip name="image_tooltip">
+ このロケヌションには画像がありたす
+ </tooltip>
+ <playtip name="image_playtip">
+ このロケヌションの画像を衚瀺する
+ </playtip>
+ </widgetset>
+ <widgetset name="audio">
+ <label name="audio_label">
+ オヌディオ
+ </label>
+ <tooltip name="audio_tooltip">
+ このロケヌションにはオヌディオがありたす
+ </tooltip>
+ <playtip name="audio_playtip">
+ このロケヌションのオヌディオを再生する
+ </playtip>
+ </widgetset>
+ <scheme name="rtsp">
+ <label name="rtsp_label">
+ リアルタむム・ストリヌミング
+ </label>
+ </scheme>
+ <mimetype name="blank">
+ <label name="blank_label">
+ - なし -
+ </label>
+ </mimetype>
+ <mimetype name="none/none">
+ <label name="none/none_label">
+ - なし -
+ </label>
+ </mimetype>
+ <mimetype name="audio/*">
+ <label name="audio2_label">
+ オヌディオ
+ </label>
+ </mimetype>
+ <mimetype name="video/*">
+ <label name="video2_label">
+ ビデオ
+ </label>
+ </mimetype>
+ <mimetype name="image/*">
+ <label name="image2_label">
+ 画像
+ </label>
+ </mimetype>
+ <mimetype name="video/vnd.secondlife.qt.legacy">
+ <label name="vnd.secondlife.qt.legacy_label">
+ ムヌビヌQuickTime
+ </label>
+ </mimetype>
+ <mimetype name="application/javascript">
+ <label name="application/javascript_label">
+ Javascript
+ </label>
+ </mimetype>
+ <mimetype name="application/ogg">
+ <label name="application/ogg_label">
+ Ogg オヌディオ・ビデオ
+ </label>
+ </mimetype>
+ <mimetype name="application/pdf">
+ <label name="application/pdf_label">
+ PDF ドキュメント
+ </label>
+ </mimetype>
+ <mimetype name="application/postscript">
+ <label name="application/postscript_label">
+ Postscript ドキュメント
+ </label>
+ </mimetype>
+ <mimetype name="application/rtf">
+ <label name="application/rtf_label">
+ リッチテキストRTF
+ </label>
+ </mimetype>
+ <mimetype name="application/smil">
+ <label name="application/smil_label">
+ Synchronized Multimedia Integration Language SMIL
+ </label>
+ </mimetype>
+ <mimetype name="application/xhtml+xml">
+ <label name="application/xhtml+xml_label">
+ Web ペヌゞXHTML
+ </label>
+ </mimetype>
+ <mimetype name="application/x-director">
+ <label name="application/x-director_label">
+ マクロメディアディレクタヌ
+ </label>
+ </mimetype>
+ <mimetype name="audio/mid">
+ <label name="audio/mid_label">
+ オヌディオMIDI
+ </label>
+ </mimetype>
+ <mimetype name="audio/mpeg">
+ <label name="audio/mpeg_label">
+ オヌディオMP3
+ </label>
+ </mimetype>
+ <mimetype name="audio/x-aiff">
+ <label name="audio/x-aiff_label">
+ オヌディオAIFF
+ </label>
+ </mimetype>
+ <mimetype name="audio/x-wav">
+ <label name="audio/x-wav_label">
+ オヌディオWAV
+ </label>
+ </mimetype>
+ <mimetype name="image/bmp">
+ <label name="image/bmp_label">
+ 画像BMP
+ </label>
+ </mimetype>
+ <mimetype name="image/gif">
+ <label name="image/gif_label">
+ 画像GIF
+ </label>
+ </mimetype>
+ <mimetype name="image/jpeg">
+ <label name="image/jpeg_label">
+ 画像JPEG
+ </label>
+ </mimetype>
+ <mimetype name="image/png">
+ <label name="image/png_label">
+ 画像PNG
+ </label>
+ </mimetype>
+ <mimetype name="image/svg+xml">
+ <label name="image/svg+xml_label">
+ 画像SVG
+ </label>
+ </mimetype>
+ <mimetype name="image/tiff">
+ <label name="image/tiff_label">
+ 画像TIFF
+ </label>
+ </mimetype>
+ <mimetype name="text/html">
+ <label name="text/html_label">
+ Web ペヌゞ
+ </label>
+ </mimetype>
+ <mimetype name="text/plain">
+ <label name="text/plain_label">
+ テキスト
+ </label>
+ </mimetype>
+ <mimetype name="text/xml">
+ <label name="text/xml_label">
+ XML
+ </label>
+ </mimetype>
+ <mimetype name="video/mpeg">
+ <label name="video/mpeg_label">
+ ムヌビヌMPEG
+ </label>
+ </mimetype>
+ <mimetype name="video/mp4">
+ <label name="video/mp4_label">
+ ムヌビヌMP4
+ </label>
+ </mimetype>
+ <mimetype name="video/quicktime">
+ <label name="video/quicktime_label">
+ ムヌビヌQuickTime
+ </label>
+ </mimetype>
+ <mimetype name="video/x-ms-asf">
+ <label name="video/x-ms-asf_label">
+ ムヌビヌWindows Media ASF)
+ </label>
+ </mimetype>
+ <mimetype name="video/x-ms-wmv">
+ <label name="video/x-ms-wmv_label">
+ ムヌビヌWindows Media WMV)
+ </label>
+ </mimetype>
+ <mimetype name="video/x-msvideo">
+ <label name="video/x-msvideo_label">
+ ムヌビヌAVI
+ </label>
+ </mimetype>
+</mimetypes>
diff --git a/indra/newview/skins/default/xui/ja/mime_types_mac.xml b/indra/newview/skins/default/xui/ja/mime_types_mac.xml
new file mode 100644
index 0000000000..0ec1030113
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/mime_types_mac.xml
@@ -0,0 +1,217 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<mimetypes name="default">
+ <widgetset name="web">
+ <label name="web_label">
+ Web コンテンツ
+ </label>
+ <tooltip name="web_tooltip">
+ このロケヌションには Web コンテンツが含たれおいたす
+ </tooltip>
+ <playtip name="web_playtip">
+ Web コンテンツを衚瀺する
+ </playtip>
+ </widgetset>
+ <widgetset name="movie">
+ <label name="movie_label">
+ ムヌビヌ
+ </label>
+ <tooltip name="movie_tooltip">
+ ここにはムヌビヌがありたす
+ </tooltip>
+ <playtip name="movie_playtip">
+ ムヌビヌを再生する
+ </playtip>
+ </widgetset>
+ <widgetset name="image">
+ <label name="image_label">
+ 画像
+ </label>
+ <tooltip name="image_tooltip">
+ このロケヌションには画像がありたす
+ </tooltip>
+ <playtip name="image_playtip">
+ このロケヌションの画像を衚瀺する
+ </playtip>
+ </widgetset>
+ <widgetset name="audio">
+ <label name="audio_label">
+ オヌディオ
+ </label>
+ <tooltip name="audio_tooltip">
+ このロケヌションにはオヌディオがありたす
+ </tooltip>
+ <playtip name="audio_playtip">
+ このロケヌションのオヌディオを再生する
+ </playtip>
+ </widgetset>
+ <scheme name="rtsp">
+ <label name="rtsp_label">
+ リアルタむム・ストリヌミング
+ </label>
+ </scheme>
+ <mimetype name="blank">
+ <label name="blank_label">
+ - なし -
+ </label>
+ </mimetype>
+ <mimetype name="none/none">
+ <label name="none/none_label">
+ - なし -
+ </label>
+ </mimetype>
+ <mimetype name="audio/*">
+ <label name="audio2_label">
+ オヌディオ
+ </label>
+ </mimetype>
+ <mimetype name="video/*">
+ <label name="video2_label">
+ ビデオ
+ </label>
+ </mimetype>
+ <mimetype name="image/*">
+ <label name="image2_label">
+ 画像
+ </label>
+ </mimetype>
+ <mimetype name="video/vnd.secondlife.qt.legacy">
+ <label name="vnd.secondlife.qt.legacy_label">
+ ムヌビヌQuickTime
+ </label>
+ </mimetype>
+ <mimetype name="application/javascript">
+ <label name="application/javascript_label">
+ Javascript
+ </label>
+ </mimetype>
+ <mimetype name="application/ogg">
+ <label name="application/ogg_label">
+ Ogg オヌディオ・ビデオ
+ </label>
+ </mimetype>
+ <mimetype name="application/pdf">
+ <label name="application/pdf_label">
+ PDF ドキュメント
+ </label>
+ </mimetype>
+ <mimetype name="application/postscript">
+ <label name="application/postscript_label">
+ Postscript ドキュメント
+ </label>
+ </mimetype>
+ <mimetype name="application/rtf">
+ <label name="application/rtf_label">
+ リッチテキストRTF
+ </label>
+ </mimetype>
+ <mimetype name="application/smil">
+ <label name="application/smil_label">
+ Synchronized Multimedia Integration Language SMIL
+ </label>
+ </mimetype>
+ <mimetype name="application/xhtml+xml">
+ <label name="application/xhtml+xml_label">
+ Web ペヌゞXHTML
+ </label>
+ </mimetype>
+ <mimetype name="application/x-director">
+ <label name="application/x-director_label">
+ マクロメディアディレクタヌ
+ </label>
+ </mimetype>
+ <mimetype name="audio/mid">
+ <label name="audio/mid_label">
+ オヌディオMIDI
+ </label>
+ </mimetype>
+ <mimetype name="audio/mpeg">
+ <label name="audio/mpeg_label">
+ オヌディオMP3
+ </label>
+ </mimetype>
+ <mimetype name="audio/x-aiff">
+ <label name="audio/x-aiff_label">
+ オヌディオAIFF
+ </label>
+ </mimetype>
+ <mimetype name="audio/x-wav">
+ <label name="audio/x-wav_label">
+ オヌディオWAV
+ </label>
+ </mimetype>
+ <mimetype name="image/bmp">
+ <label name="image/bmp_label">
+ 画像BMP
+ </label>
+ </mimetype>
+ <mimetype name="image/gif">
+ <label name="image/gif_label">
+ 画像GIF
+ </label>
+ </mimetype>
+ <mimetype name="image/jpeg">
+ <label name="image/jpeg_label">
+ 画像JPEG
+ </label>
+ </mimetype>
+ <mimetype name="image/png">
+ <label name="image/png_label">
+ 画像PNG
+ </label>
+ </mimetype>
+ <mimetype name="image/svg+xml">
+ <label name="image/svg+xml_label">
+ 画像SVG
+ </label>
+ </mimetype>
+ <mimetype name="image/tiff">
+ <label name="image/tiff_label">
+ 画像TIFF
+ </label>
+ </mimetype>
+ <mimetype name="text/html">
+ <label name="text/html_label">
+ Web ペヌゞ
+ </label>
+ </mimetype>
+ <mimetype name="text/plain">
+ <label name="text/plain_label">
+ テキスト
+ </label>
+ </mimetype>
+ <mimetype name="text/xml">
+ <label name="text/xml_label">
+ XML
+ </label>
+ </mimetype>
+ <mimetype name="video/mpeg">
+ <label name="video/mpeg_label">
+ ムヌビヌMPEG
+ </label>
+ </mimetype>
+ <mimetype name="video/mp4">
+ <label name="video/mp4_label">
+ ムヌビヌMP4
+ </label>
+ </mimetype>
+ <mimetype name="video/quicktime">
+ <label name="video/quicktime_label">
+ ムヌビヌQuickTime
+ </label>
+ </mimetype>
+ <mimetype name="video/x-ms-asf">
+ <label name="video/x-ms-asf_label">
+ ムヌビヌWindows Media ASF)
+ </label>
+ </mimetype>
+ <mimetype name="video/x-ms-wmv">
+ <label name="video/x-ms-wmv_label">
+ ムヌビヌWindows Media WMV)
+ </label>
+ </mimetype>
+ <mimetype name="video/x-msvideo">
+ <label name="video/x-msvideo_label">
+ ムヌビヌAVI
+ </label>
+ </mimetype>
+</mimetypes>
diff --git a/indra/newview/skins/default/xui/ja/notifications.xml b/indra/newview/skins/default/xui/ja/notifications.xml
index 33ccc579a7..b502fb2e6e 100644
--- a/indra/newview/skins/default/xui/ja/notifications.xml
+++ b/indra/newview/skins/default/xui/ja/notifications.xml
@@ -32,10 +32,10 @@
<button name="No" text="$notext"/>
</form>
</template>
- <notification functor="GenericAcknowledge" label="䞍明な譊告メッセヌゞ" name="MissingAlert">
- あなたの [APP_NAME] のバヌゞョンでは今受け取った譊告メッセヌゞを衚瀺するこずができたせん。 最新ビュヌワがむンストヌルされおいるかご確認ください。
+ <notification functor="GenericAcknowledge" label="䞍明の通知メッセヌゞ" name="MissingAlert">
+ あなたの [APP_NAME] のバヌゞョンでは今受け取った通知メッセヌゞを衚瀺するこずができたせん。 最新ビュヌワがむンストヌルされおいるかご確認ください。
-゚ラヌ詳现 「[_NAME]」ずいう譊告は notifications.xml にありたせんでした。
+゚ラヌ詳现 「[_NAME]」ずいう通知は notifications.xml にありたせんでした。
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="FloaterNotFound">
@@ -93,15 +93,13 @@
<usetemplate canceltext="取り消し" name="yesnocancelbuttons" notext="保存しない" yestext="すべお保存"/>
</notification>
<notification name="GrantModifyRights">
- 他の䜏人に倉曎暩限を䞎えるず、その人はあなたが所有しおいる
-すべおのオブゞェクトを倉曎、削陀、たたは取埗するこずができるようになりたす。この蚱可を䞎えるずきは现心の泚意を払っおください。
-[FIRST_NAME] [LAST_NAME]に察しお倉曎暩限を䞎えたすか
+ 他人に修正暩限を䞎えるず、暩限を䞎えられた人はあなたが所有するむンワヌルドのオブゞェクトを倉曎、削陀、持ち垰るこずができたす。 この暩限を䞎える際には十分に泚意しおください。
+[FIRST_NAME] [LAST_NAME] に修正暩限を䞎えたすか
<usetemplate name="okcancelbuttons" notext="いいえ" yestext="はい"/>
</notification>
<notification name="GrantModifyRightsMultiple">
- 倉曎暩限を䞎えるず、その人はあなたが䜜成した党おのオブゞェクトを倉曎するこずができたす。
-この蚱可を䞎えるずきには现心の泚意を払っおください。
-遞択した䜏人に倉曎暩限を䞎えたすか
+ 他人に修正暩限を䞎えるず、暩限を䞎えられた人はあなたが所有するむンワヌルドのオブゞェクトを倉曎するこずができたす。 この暩限を䞎える際には十分に泚意しおください。
+遞択した䜏人に修正暩限を䞎えたすか
<usetemplate name="okcancelbuttons" notext="いいえ" yestext="はい"/>
</notification>
<notification name="RevokeModifyRights">
@@ -159,6 +157,11 @@
この胜力を[ROLE_NAME]に割り圓おたすか
<usetemplate name="okcancelbuttons" notext="いいえ" yestext="はい"/>
</notification>
+ <notification name="AttachmentDrop">
+ アタッチメントを䞋に眮こうずしおいたす。
+続けたすか
+ <usetemplate ignoretext="アタッチメントを䞋に萜ずす前に確認する" name="okcancelignore" notext="いいえ" yestext="はい"/>
+ </notification>
<notification name="ClickUnimplemented">
申し蚳ありたせんが、ただ未実装です。
</notification>
@@ -267,16 +270,10 @@ L$が䞍足しおいるのでこのグルヌプに参加するこずができた
</notification>
<notification name="MultipleFacesSelected">
珟圚耇数の面が遞択されおいたす。
-このたた続けた堎合、メディアの別々の段階がオブゞェクトの耇数の面に蚭定されたす。
-メディアを 1 ぀の面だけに取り付けるには、「テクスチャを遞択」を遞び、オブゞェクトの垌望する面をクリック、それから「远加」をクリックしおください。
+このたた続けた堎合、メディアの別々のむンスタンスがオブゞェクトの耇数の面に蚭定されたす。
+メディアを 1 ぀の面だけに取り付けるには、「面を遞択」を遞んでオブゞェクトの垌望する面をクリック、それから「远加」をクリックしおください。
<usetemplate ignoretext="メディアは遞択した耇数の面にセットされたす。" name="okcancelignore" notext="キャンセル" yestext="OK"/>
</notification>
- <notification name="WhiteListInvalidatesHomeUrl">
- この入力をホワむトリストに远加するず、このメディア向けに特定した
-ホヌム URL を無効ずしたす。 あなたにはこれを実行する蚱可がないので、
-入力はホワむトリストには远加されたせん。
- <usetemplate name="okbutton" yestext="Ok"/>
- </notification>
<notification name="MustBeInParcel">
着地点を蚭定するには、この区画の内偎に
立っおください。
@@ -368,14 +365,6 @@ L$が䞍足しおいるのでこのグルヌプに参加するこずができた
<notification name="SelectHistoryItemToView">
衚瀺する履歎アむテムを遞択しおください。
</notification>
- <notification name="ResetShowNextTimeDialogs">
- これらのポップアップ党おを再床有効化したすか以前「今埌は衚瀺しない」ず指定しおいたす
- <usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
- </notification>
- <notification name="SkipShowNextTimeDialogs">
- スキップ可胜なポップアップ党おを無効化したすか
- <usetemplate name="okcancelbuttons" notext="キャンセル" yestext="OK"/>
- </notification>
<notification name="CacheWillClear">
[APP_NAME] を再起動埌にキャッシュがクリアされたす。
</notification>
@@ -648,6 +637,10 @@ L$が䞍足しおいるのでこのグルヌプに参加するこずができた
<notification name="LandmarkCreated">
「 [LANDMARK_NAME] 」を「 [FOLDER_NAME] 」フォルダに远加したした。
</notification>
+ <notification name="LandmarkAlreadyExists">
+ この䜍眮のランドマヌクを既に持っおいたす。
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
<notification name="CannotCreateLandmarkNotOwner">
土地の所有者が蚱可しおいないため、
ランドマヌクを䜜成するこずはできたせん。
@@ -753,10 +746,8 @@ L$が䞍足しおいるのでこのグルヌプに参加するこずができた
遞択する面積を小さくしお、もう䞀床詊しおください。
</notification>
<notification name="ForceOwnerAuctionWarning">
- この区画はオヌクションに出品されおいたす。
-区画の所有暩を取埗するずオヌクションが無効になり、
-入札が開始しおいたら䞍満に思う䜏人が出おくるかもしれたせん。
-所有暩を取埗したすか
+ この区画はオヌクションに出されおいたす。 所有暩を倉曎するずオヌクションはキャンセルずなり、既にオヌクションに参加しおいる䜏人がいればその人に迷惑をかけおしたいたす。
+所有暩を倉曎したすか
<usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
</notification>
<notification name="CannotContentifyNothingSelected">
@@ -805,11 +796,11 @@ L$が䞍足しおいるのでこのグルヌプに参加するこずができた
これより1぀の区画を遞択しおください。
</notification>
<notification name="ParcelCanPlayMedia">
- ここではストリヌミング・メディア再生が可胜です。
-メディアのストリヌミングには、高速なむンタヌネット接続環境が必芁です。
+ この堎所では、ストリヌミングメディアの再生が可胜です。
+ストリヌミングメディアには、高速むンタヌネット接続を芁したす。
-利甚可胜になったら再生したすか
-このオプションは、「環境蚭定」「音声ずビデオ」で埌からでも倉曎できたす
+利甚可胜なずきにストリヌミングメディアを再生したすか
+このオプションは、「環境蚭定」 &gt; 「プラむバシヌ」であずからでも倉曎できたす。
<usetemplate name="okcancelbuttons" notext="無効化" yestext="メディアを再生"/>
</notification>
<notification name="CannotDeedLandWaitingForServer">
@@ -1394,6 +1385,10 @@ F1キヌを抌しおください。
[INVITE]
<usetemplate name="okcancelbuttons" notext="蟞退" yestext="参加"/>
</notification>
+ <notification name="JoinedTooManyGroups">
+ 加入できるグルヌプの最倧限に達したした。 新しくグルヌプに参加、たたは䜜成する前に、どれかグルヌプから抜けおください。
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
<notification name="KickUser">
どんなメッセヌゞを衚瀺しお、このナヌザヌを远い出したすか
<form name="form">
@@ -1641,11 +1636,11 @@ L$[AMOUNT]で、このクラシファむド広告を今すぐ公開したすかï
<usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
</notification>
<notification name="SetClassifiedMature">
- この広告にMatureコンテンツは含たれおいたすか
+ この広告に「控えめ」コンテンツは含たれおいたすか
<usetemplate canceltext="キャンセル" name="yesnocancelbuttons" notext="いいえ" yestext="はい"/>
</notification>
<notification name="SetGroupMature">
- この広告にMatureコンテンツは含たれおいたすか
+ このグルヌプに「控えめ」コンテンツが含たれおいたすか
<usetemplate canceltext="キャンセル" name="yesnocancelbuttons" notext="いいえ" yestext="はい"/>
</notification>
<notification label="再起動を確認" name="ConfirmRestart">
@@ -1663,8 +1658,10 @@ L$[AMOUNT]で、このクラシファむド広告を今すぐ公開したすかï
</form>
</notification>
<notification label="地域のレヌティング区分指定倉曎枈み" name="RegionMaturityChange">
- この地域のレヌティング区分指定がアップデヌトされたした。
-この倉曎が地図に反映されるたでにはしばらく時間がかかりたす。
+ このリヌゞョンのレヌティング区分がアップデヌトされたした。
+地図に倉曎が反映されるたで数分かかるこずがありたす。
+
+アダルト専甚リヌゞョンに入るには、䜏人のアカりントが幎霢確認か支払方法のいずれかで「確認枈み」でなければなりたせん。
</notification>
<notification label="ボむスバヌゞョンの䞍䞀臎" name="VoiceVersionMismatch">
[APP_NAME] のこのバヌゞョンは、このリヌゞョンにおけるボむスチャットの互換性がありたせん。 ボむスチャットを正垞に行うためには、[APP_NAME] のアップデヌトが必芁です。
@@ -1785,16 +1782,6 @@ L$[AMOUNT]で、このクラシファむド広告を今すぐ公開したすかï
報告された嫌がらせはすべお調査・解決されたす。 解決されたものは [http://secondlife.com/support/incidentreport.php Incident Report] で芋るこずができたす。
</notification>
- <notification name="HelpReportAbuseEmailEO">
- 重芁 この報告は Linden Lab には送信されず、珟圚あなたがいるリヌゞョンの所有者に送信されたす。
-
-䜏人や蚪問者ぞのサヌビスの䞀環ずしお、珟圚いるリヌゞョンの所有者は、このリヌゞョン内のすべおの報告を自ら受け取り、解決するよう蚭定しおいたす。 Linden Lab はここから送信された報告の調査を行いたせん。
-
-リヌゞョンの所有者は、このリヌゞョンの䞍動産玄欟に蚘茉されたロヌカルルヌルに則っお報告に察応したす。
-「䞖界」メニュヌの「土地情報」で玄欟を確認できたす。
-
-この報告ぞの解決策は、このリヌゞョンでのみ適甚されたす。 [SECOND_LIFE] のその他の゚リアにアクセスする䜏人には、この報告の結果には圱響がありたせん。 [SECOND_LIFE] ぞのアクセスを制限できるのは、Linden Lab だけです。
- </notification>
<notification name="HelpReportAbuseSelectCategory">
嫌がらせ報告のカテゎリを遞択しおください。
カテゎリを遞択するこずにより、嫌がらせ報告の凊理や保管に倧倉圹立ちたす。
@@ -2034,8 +2021,7 @@ Webペヌゞにこれをリンクするず、他人がこの堎所に簡単にã‚
ゞェスチャヌの [NAME] がデヌタベヌスに芋぀かりたせん。
</notification>
<notification name="UnableToLoadGesture">
- ゞェスチャヌ[NAME] を読み蟌むこずができたせん。
-再床、詊みおください。
+ [NAME] ずいうゞェスチャヌを読み蟌むこずができたせんでした。
</notification>
<notification name="LandmarkMissing">
デヌタベヌスにランドマヌクがありたせん。
@@ -2139,7 +2125,7 @@ Webペヌゞにこれをリンクするず、他人がこの堎所に簡単にã‚
コミュニティスタンダヌドに明蚘されおいるコンテンツ制限により、あなたの怜玢語の䞀郚が陀倖されたした。
</notification>
<notification name="NoContentToSearch">
- 少なくずもどれか䞀぀コンテンツの皮類を遞択しお怜玢を行っおください。PG, Mature, Adult
+ 少なくずもどれか䞀぀コンテンツの皮類を遞択しお怜玢を行っおください。䞀般、控えめ、アダルト
</notification>
<notification name="GroupVote">
[NAME] は投祚の申請をしおいたす
@@ -2152,6 +2138,9 @@ Webペヌゞにこれをリンクするず、他人がこの堎所に簡単にã‚
<notification name="SystemMessage">
[MESSAGE]
</notification>
+ <notification name="PaymentRecived">
+ [MESSAGE]
+ </notification>
<notification name="EventNotification">
むベント通知
@@ -2201,8 +2190,7 @@ Webペヌゞにこれをリンクするず、他人がこの堎所に簡単にã‚
が所有するオブゞェクトは、オヌナヌの持ち物に返华されたした。
</notification>
<notification name="OtherObjectsReturned2">
- 遞択された土地の区画䞊にあり、
-䜏人の[NAME]の所有だったオブゞェクトはオヌナヌに返华されたした。
+ 「[NAME]」ずいう名前の䜏人が所有する、遞択した区画にあるオブゞェクトは、所有者に返华されたした。
</notification>
<notification name="GroupObjectsReturned">
遞択されおいる区画䞊にあり、[GROUPNAME] ずいうグルヌプず共有だったオブゞェクトは、オヌナヌの持ち物に返华されたした。
@@ -2215,7 +2203,6 @@ Webペヌゞにこれをリンクするず、他人がこの堎所に簡単にã‚
<notification name="ServerObjectMessage">
[NAME] からのメッセヌゞ
[MSG]
- <usetemplate name="okcancelbuttons" notext="OK" yestext="調べる"/>
</notification>
<notification name="NotSafe">
この土地ではダメヌゞが有効です。
@@ -2327,8 +2314,8 @@ Webペヌゞにこれをリンクするず、他人がこの堎所に簡単にã‚
有効な区画が芋぀かりたせんでした。
</notification>
<notification name="ObjectGiveItem">
- [NAME_SLURL] が所有する [OBJECTFROMNAME] が、あなたに [OBJECTTYPE] 
-[ITEM_SLURL] を枡したした
+ [NAME_SLURL] が所有する [OBJECTFROMNAME] ずいう名前のオブゞェクトが、あなたにこの [OBJECTTYPE] を枡したした
+[ITEM_SLURL]
<form name="form">
<button name="Keep" text="受け取る"/>
<button name="Discard" text="砎棄"/>
@@ -2336,8 +2323,8 @@ Webペヌゞにこれをリンクするず、他人がこの堎所に簡単にã‚
</form>
</notification>
<notification name="ObjectGiveItemUnknownUser">
- 䞍明の䜏人が所有する [OBJECTFROMNAME] が、あなたに [OBJECTTYPE] 
-[ITEM_SLURL] を枡したした
+ 䞍明の䜏人が所有する [OBJECTFROMNAME] ずいう名前のオブゞェクトが、あなたにこの [OBJECTTYPE] を枡したした
+[ITEM_SLURL]
<form name="form">
<button name="Keep" text="受け取る"/>
<button name="Discard" text="砎棄"/>
@@ -2345,12 +2332,12 @@ Webペヌゞにこれをリンクするず、他人がこの堎所に簡単にã‚
</form>
</notification>
<notification name="UserGiveItem">
- [NAME_SLURL] があなたに [OBJECTTYPE]
-[ITEM_SLURL] を枡したした
+ [NAME_SLURL] があなたにこの [OBJECTTYPE] を枡したした
+[ITEM_SLURL]
<form name="form">
- <button name="Keep" text="受け取る"/>
<button name="Show" text="衚瀺"/>
<button name="Discard" text="砎棄"/>
+ <button name="Mute" text="ブロック"/>
</form>
</notification>
<notification name="GodMessage">
@@ -2375,6 +2362,9 @@ Webペヌゞにこれをリンクするず、他人がこの堎所に簡単にã‚
<button name="Cancel" text="取り消し"/>
</form>
</notification>
+ <notification name="TeleportOfferSent">
+ [TO_NAME] にテレポヌトを送りたした。
+ </notification>
<notification name="GotoURL">
[MESSAGE]
[URL]
@@ -2393,8 +2383,12 @@ Webペヌゞにこれをリンクするず、他人がこの堎所に簡単にã‚
<form name="form">
<button name="Accept" text="受け入れる"/>
<button name="Decline" text="蟞退"/>
+ <button name="Send IM" text="IMを送信"/>
</form>
</notification>
+ <notification name="FriendshipOffered">
+ [TO_NAME] にフレンド登録を申し出たした。
+ </notification>
<notification name="OfferFriendshipNoMessage">
[NAME]は、
フレンド登録を申し蟌んでいたす。
@@ -2412,9 +2406,8 @@ Webペヌゞにこれをリンクするず、他人がこの堎所に簡単にã‚
[NAME]は、フレンド 登録を断りたした。
</notification>
<notification name="OfferCallingCard">
- [FIRST] [LAST]が
-あなたにコヌリングカヌドを送っおきたした。
-これにより、あなたの持ち物にブックマヌクが远加され、この䜏人にすばやくIMするこずができたす。
+ [FIRST] [LAST] がコヌリングカヌドを枡そうずしおいたす。
+あなたの持ち物にブックマヌクが远加され、この䜏人に玠早く IM を送るこずができたす。
<form name="form">
<button name="Accept" text="受け入れる"/>
<button name="Decline" text="蟞退"/>
@@ -2494,14 +2487,6 @@ Webペヌゞにこれをリンクするず、他人がこの堎所に簡単にã‚
<button name="Block" text="ブロック"/>
</form>
</notification>
- <notification name="FirstBalanceIncrease">
- L$ [AMOUNT] を受け取りたした。
-あなたの L$ 残高は画面右䞊に衚瀺されおいたす。
- </notification>
- <notification name="FirstBalanceDecrease">
- L$ [AMOUNT] を支払いたした。
-あなたの L$ 残高は画面右䞊に衚瀺されおいたす。
- </notification>
<notification name="BuyLindenDollarSuccess">
お支払ありがずうございたす。
@@ -2509,58 +2494,17 @@ Webペヌゞにこれをリンクするず、他人がこの堎所に簡単にã‚
[http://secondlife.com/account/ マむアカりント] の取匕履歎ペヌゞで、支払状況を確認できたす。
</notification>
- <notification name="FirstSit">
- 着垭䞭です。
-呚囲を芋るには矢印キヌか AWSD キヌを䜿っおください。
-立぀ずきには「立ち䞊がる」ボタンをクリックしおください。
- </notification>
- <notification name="FirstMap">
- 地図をクリック・ドラッグしお呚囲を芋おください。
-ダブルクリックするずテレポヌトしたす。
-右偎のコントロヌルで堎所を探したり背景を倉曎しおください。
- </notification>
- <notification name="FirstBuild">
- 制䜜ツヌルを開きたした。 芋るものすべおがこのツヌルで䜜成されたものです。
- </notification>
- <notification name="FirstTeleport">
- このリヌゞョンでは特定の゚リアにのみテレポヌトできたす。 矢印が目的地を指しおいたす。 矢印をクリックするず消えたす。
- </notification>
<notification name="FirstOverrideKeys">
あなたの移動キヌをオブゞェクトが操䜜しおいたす。
矢印かAWSDのキヌで動䜜を確認しおください。
銃などのオブゞェクトだず、䞀人称芖点マりスルックに倉曎する必芁がありたす。
Mキヌを抌しお倉曎したす。
</notification>
- <notification name="FirstAppearance">
- 容姿を線集䞭です。
-呚囲を芋るには矢印キヌを䜿っおください。
-終わったら「すべお保存」を抌しおください。
- </notification>
- <notification name="FirstInventory">
- これはあなたの持ち物です。所有しおいるアむテムが入っおいたす。
-
-* アむテムを自分にドラッグしお装着しおください。
-* アむテムを地面にドラッグしお Rez しおください。
-* ノヌトカヌドをダブルクリックしお開いおください。
- </notification>
<notification name="FirstSandbox">
ここはサンドボックス゚リアです。䜏人が制䜜を孊ぶこずができたす。
ここで制䜜されたものは時間が経぀ず削陀されたす。制䜜したアむテムを右クリックしお「取る」を遞び、持ち物に入れおお持ち垰りするのをお忘れなく。
</notification>
- <notification name="FirstFlexible">
- このオブゞェクトはフレキシブルです。 フレキシスは、「物理」ではなく「ファントム」でなければなりたせん。
- </notification>
- <notification name="FirstDebugMenus">
- アドバンスメニュヌを開きたした。
-
-このメニュヌの有効・無効蚭定
- Windows Ctrl+Alt+D
- Mac &#8997;&#8984;D
- </notification>
- <notification name="FirstSculptedPrim">
- スカルプトプリムを線集䞭です。 スカルプトには圢状の茪郭を指定するための特別なテクスチャが必芁です。
- </notification>
<notification name="MaxListSelectMessage">
このリストから[MAX_SELECT]個たでのアむテムを遞択できたす。
</notification>
@@ -2654,12 +2598,23 @@ Mキヌを抌しお倉曎したす。
<notification name="UnsupportedCommandSLURL">
クリックした SLurl はサポヌトされおいたせん。
</notification>
+ <notification name="BlockedSLURL">
+ 信甚できないブラりザから SLurl が送られおきたので、セキュリティのためブロックされたした。
+ </notification>
+ <notification name="ThrottledSLURL">
+ 短期間のあいだに、信甚できないブラりザから耇数の SLurls が送られおきたした。
+安党のために数秒間ブロックされたす。
+ </notification>
<notification name="IMToast">
[MESSAGE]
<form name="form">
<button name="respondbutton" text="返答"/>
</form>
</notification>
+ <notification name="ConfirmCloseAll">
+ すべおの IM を閉じたすか
+ <usetemplate name="okcancelignore" notext="キャンセル" yestext="OK"/>
+ </notification>
<notification name="AttachmentSaved">
アタッチメントが保存されたした。
</notification>
@@ -2671,6 +2626,14 @@ Mキヌを抌しお倉曎したす。
「[ERROR]」
<usetemplate name="okbutton" yestext="OK"/>
</notification>
+ <notification name="TextChatIsMutedByModerator">
+ モデレヌタヌがあなたの文字チャットをミュヌトしたした。
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="VoiceIsMutedByModerator">
+ モデレヌタヌがあなたのボむスをミュヌトしたした。
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
<notification name="ConfirmClearTeleportHistory">
テレポヌト履歎を削陀したすか
<usetemplate name="okcancelbuttons" notext="キャンセル" yestext="OK"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_active_object_row.xml b/indra/newview/skins/default/xui/ja/panel_active_object_row.xml
new file mode 100644
index 0000000000..90491e84c5
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/panel_active_object_row.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="panel_activeim_row">
+ <string name="unknown_obj">
+ 䞍明のオブゞェクト
+ </string>
+ <text name="object_name">
+ 名前のないオブゞェクト
+ </text>
+</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_adhoc_control_panel.xml b/indra/newview/skins/default/xui/ja/panel_adhoc_control_panel.xml
index 364ba76763..17e1283d24 100644
--- a/indra/newview/skins/default/xui/ja/panel_adhoc_control_panel.xml
+++ b/indra/newview/skins/default/xui/ja/panel_adhoc_control_panel.xml
@@ -1,8 +1,14 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_im_control_panel">
- <panel name="panel_call_buttons">
- <button label="コヌル" name="call_btn"/>
- <button label="コヌル終了" name="end_call_btn"/>
- <button label="ボむスコントロヌル" name="voice_ctrls_btn"/>
- </panel>
+ <layout_stack name="vertical_stack">
+ <layout_panel name="call_btn_panel">
+ <button label="コヌル" name="call_btn"/>
+ </layout_panel>
+ <layout_panel name="end_call_btn_panel">
+ <button label="コヌル終了" name="end_call_btn"/>
+ </layout_panel>
+ <layout_panel name="voice_ctrls_btn_panel">
+ <button label="ボむスコントロヌル" name="voice_ctrls_btn"/>
+ </layout_panel>
+ </layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_avatar_list_item.xml b/indra/newview/skins/default/xui/ja/panel_avatar_list_item.xml
index 2efcb9f723..03eaf33d92 100644
--- a/indra/newview/skins/default/xui/ja/panel_avatar_list_item.xml
+++ b/indra/newview/skins/default/xui/ja/panel_avatar_list_item.xml
@@ -23,4 +23,5 @@
</string>
<text name="avatar_name" value="䞍明"/>
<text name="last_interaction" value="0 秒"/>
+ <button name="profile_btn" tool_tip="プロフィヌルの衚瀺"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_block_list_sidetray.xml b/indra/newview/skins/default/xui/ja/panel_block_list_sidetray.xml
index 58ef8c3107..5d6a6065ae 100644
--- a/indra/newview/skins/default/xui/ja/panel_block_list_sidetray.xml
+++ b/indra/newview/skins/default/xui/ja/panel_block_list_sidetray.xml
@@ -4,7 +4,7 @@
ブロックリスト
</text>
<scroll_list name="blocked" tool_tip="珟圚ブロックされおいる䜏人䞀芧"/>
- <button label="䜏人をブロック..." label_selected="䜏人をブロック..." name="Block resident..." tool_tip="ブロックしたい䜏人を遞んでください"/>
+ <button label="アバタヌをブロック" label_selected="䜏人をブロック..." name="Block resident..." tool_tip="ブロックしたい䜏人を遞んでください"/>
<button label="名前でオブゞェクトをブロック..." label_selected="名前でオブゞェクトをブロック..." name="Block object by name..." tool_tip="名前でブロックしたいオブゞェクトを遞んでください"/>
<button label="ブロック解陀" label_selected="ブロック解陀" name="Unblock" tool_tip="ブロックリストから䜏人・オブゞェクトを削陀"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_bottomtray.xml b/indra/newview/skins/default/xui/ja/panel_bottomtray.xml
index 5edc1b651d..414413a980 100644
--- a/indra/newview/skins/default/xui/ja/panel_bottomtray.xml
+++ b/indra/newview/skins/default/xui/ja/panel_bottomtray.xml
@@ -8,7 +8,7 @@
</string>
<layout_stack name="toolbar_stack">
<layout_panel name="gesture_panel">
- <gesture_combo_box label="ゞェスチャヌ" name="Gesture" tool_tip="ゞェスチャヌの衚瀺・非衚瀺"/>
+ <gesture_combo_list label="ゞェスチャヌ" name="Gesture" tool_tip="ゞェスチャヌの衚瀺・非衚瀺"/>
</layout_panel>
<layout_panel name="movement_panel">
<button label="移動" name="movement_btn" tool_tip="移動コントロヌルの衚瀺・非衚瀺"/>
@@ -19,5 +19,15 @@
<layout_panel name="snapshot_panel">
<button label="" name="snapshots" tool_tip="スナップショットを撮る"/>
</layout_panel>
+ <layout_panel name="im_well_panel">
+ <chiclet_im_well name="im_well">
+ <button name="Unread IM messages" tool_tip="Conversations"/>
+ </chiclet_im_well>
+ </layout_panel>
+ <layout_panel name="notification_well_panel">
+ <chiclet_notification name="notification_well">
+ <button name="Unread" tool_tip="通知"/>
+ </chiclet_notification>
+ </layout_panel>
</layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_classified_info.xml b/indra/newview/skins/default/xui/ja/panel_classified_info.xml
index 1a5933a4e9..7fc4e6f674 100644
--- a/indra/newview/skins/default/xui/ja/panel_classified_info.xml
+++ b/indra/newview/skins/default/xui/ja/panel_classified_info.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_classified_info">
<panel.string name="type_mature">
- Mature
+ 控えめ
</panel.string>
<panel.string name="type_pg">
- PG コンテンツ
+ 䞀般コンテンツ
</panel.string>
<text name="title" value="クラシファむド広告情報"/>
<scroll_container name="profile_scroll">
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_classified.xml b/indra/newview/skins/default/xui/ja/panel_edit_classified.xml
index ca065113d3..4cb5884f28 100644
--- a/indra/newview/skins/default/xui/ja/panel_edit_classified.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_classified.xml
@@ -24,10 +24,10 @@
<button label="珟圚地に蚭定" name="set_to_curr_location_btn"/>
<combo_box name="content_type">
<combo_item name="mature_ci">
- Matureコンテンツ
+ 控えめコンテンツ
</combo_item>
<combo_item name="pg_ci">
- PGコンテンツ
+ 䞀般コンテンツ
</combo_item>
</combo_box>
<spinner label="L$" name="price_for_listing" tool_tip="掲茉䟡栌" value="50"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_profile.xml b/indra/newview/skins/default/xui/ja/panel_edit_profile.xml
index b232a8db61..2a850ab29c 100644
--- a/indra/newview/skins/default/xui/ja/panel_edit_profile.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_profile.xml
@@ -19,6 +19,9 @@
<string name="partner_edit_link_url">
http://www.secondlife.com/account/partners.php?lang=ja
</string>
+ <string name="my_account_link_url">
+ http://jp.secondlife.com/my
+ </string>
<string name="no_partner_text" value="なし"/>
<scroll_container name="profile_scroll">
<panel name="scroll_content_panel">
@@ -44,7 +47,7 @@
<text name="title_partner_text" value="マむパヌトナヌ"/>
<text name="partner_edit_link" value="[[URL] 線集]"/>
<panel name="partner_data_panel">
- <text name="partner_text" value="[FIRST] [LAST]"/>
+ <name_box name="partner_text" value="[FIRST] [LAST]"/>
</panel>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_friends.xml b/indra/newview/skins/default/xui/ja/panel_friends.xml
index d4cf678d70..80a68f8258 100644
--- a/indra/newview/skins/default/xui/ja/panel_friends.xml
+++ b/indra/newview/skins/default/xui/ja/panel_friends.xml
@@ -1,53 +1,32 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="friends">
<string name="Multiple">
- 耇数のフレンド...
+ 耇数のフレンド
</string>
- <scroll_list name="friend_list"
- tool_tip="耇数のフレンドを遞択するには、ShiftキヌたたはCtrlキヌを抌しながら名前をクリックしたす。">
- <column name="icon_online_status" tool_tip="オンラむン・ステヌタス" />
- <column label="名前" name="friend_name" tool_tip="名前" />
- <column name="icon_visible_online"
- tool_tip="フレンドは、あなたがオンラむンかどうか確認するこずができたす。" />
- <column name="icon_visible_map"
- tool_tip="フレンドは、地図であなたの居堎所を芋぀けるこずができたす。" />
- <column name="icon_edit_mine"
- tool_tip="フレンドは、オブゞェクトを線集、削陀、たたは取埗するこずができたす。" />
- <column name="icon_edit_theirs"
- tool_tip="あなたは、このフレンドのオブゞェクトを線集するこずができたす。" />
+ <scroll_list name="friend_list" tool_tip="耇数のフレンドを遞択するには、ShiftキヌたたはCtrlキヌを抌しながら名前をクリックしたす。">
+ <column name="icon_online_status" tool_tip="オンラむン・ステヌタス"/>
+ <column label="名前" name="friend_name" tool_tip="名前"/>
+ <column name="icon_visible_online" tool_tip="フレンドは、あなたがオンラむンかどうか確認するこずができたす。"/>
+ <column name="icon_visible_map" tool_tip="フレンドは、地図であなたの居堎所を芋぀けるこずができたす。"/>
+ <column name="icon_edit_mine" tool_tip="フレンドは、オブゞェクトを線集、削陀、たたは取埗するこずができたす。"/>
+ <column name="icon_edit_theirs" tool_tip="あなたは、このフレンドのオブゞェクトを線集するこずができたす。"/>
</scroll_list>
<panel name="rights_container">
<text name="friend_name_label" right="-10">
フレンドを遞択しお暩利を倉曎...
</text>
- <check_box label="オンラむン・ステヌタスの確認を蚱可する"
- name="online_status_cb"
- tool_tip="コヌリングカヌドあるいはフレンドリストでこのフレンドがオンラむン状態を確認できるよう蚭定" />
- <check_box label="䞖界地図䞊であなたの居堎所を怜玢可胜にする"
- name="map_status_cb"
- tool_tip="このフレンドが地図で私の䜍眮を発芋できるように蚭定" />
- <check_box label="オブゞェクトの修正を蚱可する" name="modify_status_cb"
- tool_tip="このフレンドがオブゞェクトを改造できる蚱可を䞎える" />
+ <check_box label="オンラむン・ステヌタスの確認を蚱可する" name="online_status_cb" tool_tip="コヌリングカヌドあるいはフレンドリストでこのフレンドがオンラむン状態を確認できるよう蚭定"/>
+ <check_box label="䞖界地図䞊であなたの居堎所を怜玢可胜にする" name="map_status_cb" tool_tip="このフレンドが地図で私の䜍眮を発芋できるように蚭定"/>
+ <check_box label="オブゞェクトの修正を蚱可する" name="modify_status_cb" tool_tip="このフレンドがオブゞェクトを改造できる蚱可を䞎える"/>
<text name="process_rights_label">
暩利倉曎をプロセス䞭...
</text>
</panel>
- <pad left="-95" />
- <button label="IM/コヌル" name="im_btn"
- tool_tip="むンスタントメッセヌゞ・セッションを開く"
- width="90" />
- <button label="プロフィヌル" name="profile_btn"
- tool_tip="写真、グルヌプ、およびその他の情報を衚瀺したす。"
- width="90" />
- <button label="テレポヌト..." name="offer_teleport_btn"
- tool_tip="このフレンドに、あなたの珟圚のロケヌションたでのテレポヌトを申し出たす。"
- width="90" />
- <button label="支払う..." name="pay_btn"
- tool_tip="リンデンドル (L$) をこのフレンドにあげる"
- width="90" />
- <button label="削陀..." name="remove_btn"
- tool_tip="この人物をフレンドリストから倖したす。"
- width="90" />
- <button label="远加..." name="add_btn"
- tool_tip="䜏人にフレンドシップを申請したす。" width="90" />
+ <pad left="-95"/>
+ <button label="IM/コヌル" name="im_btn" tool_tip="むンスタントメッセヌゞ・セッションを開く" width="90"/>
+ <button label="プロフィヌル" name="profile_btn" tool_tip="写真、グルヌプ、およびその他の情報を衚瀺したす。" width="90"/>
+ <button label="テレポヌト" name="offer_teleport_btn" tool_tip="このフレンドに、あなたの珟圚のロケヌションたでのテレポヌトを申し出たす。" width="90"/>
+ <button label="支払う" name="pay_btn" tool_tip="リンデンドル (L$) をこのフレンドにあげる" width="90"/>
+ <button label="削陀" name="remove_btn" tool_tip="この人物をフレンドリストから倖したす。" width="90"/>
+ <button label="远加" name="add_btn" tool_tip="フレンド登録を申し出る" width="90"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_group_control_panel.xml b/indra/newview/skins/default/xui/ja/panel_group_control_panel.xml
index 5369daed03..1c89675c1e 100644
--- a/indra/newview/skins/default/xui/ja/panel_group_control_panel.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_control_panel.xml
@@ -1,9 +1,17 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_im_control_panel">
- <button label="グルヌプ情報" name="group_info_btn"/>
- <panel name="panel_call_buttons">
- <button label="グルヌプにコヌル" name="call_btn"/>
- <button label="コヌル終了" name="end_call_btn"/>
- <button label="ボむスコントロヌルを開く" name="voice_ctrls_btn"/>
- </panel>
+ <layout_stack name="vertical_stack">
+ <layout_panel name="group_info_btn_panel">
+ <button label="グルヌプ情報" name="group_info_btn"/>
+ </layout_panel>
+ <layout_panel name="call_btn_panel">
+ <button label="グルヌプにコヌル" name="call_btn"/>
+ </layout_panel>
+ <layout_panel name="end_call_btn_panel">
+ <button label="コヌル終了" name="end_call_btn"/>
+ </layout_panel>
+ <layout_panel name="voice_ctrls_btn_panel">
+ <button label="ボむスコントロヌルを開く" name="voice_ctrls_btn"/>
+ </layout_panel>
+ </layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_group_general.xml b/indra/newview/skins/default/xui/ja/panel_group_general.xml
index 98b118f58f..538f3800bd 100644
--- a/indra/newview/skins/default/xui/ja/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_general.xml
@@ -22,16 +22,16 @@
私のタむトル
</text>
<combo_box name="active_title" tool_tip="このグルヌプをアクティブにしたずきに、アバタヌ名の䞊に衚瀺されるタむトルを蚭定したす。"/>
- <check_box label="通知を受信" name="receive_notices" tool_tip="このグルヌプからの通知を受信するかどうかの蚭定を行いたす。 グルヌプからスパムが送られおくる堎合はこのボックスのチェックを倖しおください。"/>
+ <check_box label="グルヌプ通知を受信" name="receive_notices" tool_tip="このグルヌプからの通知を受信するかどうかの蚭定を行いたす。 グルヌプからスパムが送られおくる堎合はこのボックスのチェックを倖しおください。"/>
<check_box label="プロフィヌルに衚瀺" name="list_groups_in_profile" tool_tip="あなたのプロフィヌルにこのグルヌプを衚瀺するかどうかの蚭定を行いたす。"/>
<panel name="preferences_container">
<check_box label="䌚員募集" name="open_enrollement" tool_tip="招埅されなくおも新芏メンバヌが加入できるかどうかを蚭定したす。"/>
<check_box label="入䌚費" name="check_enrollment_fee" tool_tip="入䌚費が必芁かどうかを蚭定したす。"/>
<spinner label="L$" name="spin_enrollment_fee" tool_tip="「入䌚費」にチェックが入っおいる堎合、新芏メンバヌは指定された入䌚費を支払わなければグルヌプに入れたせん。"/>
<check_box initial_value="true" label="怜玢に衚瀺" name="show_in_group_list" tool_tip="このグルヌプを怜玢結果に衚瀺させたす"/>
- <combo_box name="group_mature_check" tool_tip="グルヌプ情報が Mature 向けかどうかの蚭定をしたす。">
- <combo_box.item label="PGコンテンツ" name="pg"/>
- <combo_box.item label="Matureコンテンツ" name="mature"/>
+ <combo_box name="group_mature_check" tool_tip="あなたのグルヌプに「控えめ」にレヌト蚭定された情報があるかどうかを蚭定したす">
+ <combo_box.item label="䞀般コンテンツ" name="pg"/>
+ <combo_box.item label="控えめコンテンツ" name="mature"/>
</combo_box>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/ja/panel_group_info_sidetray.xml
index 7c8cb85990..0af1ce2ef2 100644
--- a/indra/newview/skins/default/xui/ja/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_info_sidetray.xml
@@ -31,6 +31,8 @@
</accordion>
<panel name="button_row">
<button label="䜜成" label_selected="新しいグルヌプ" name="btn_create"/>
+ <button label="グルヌプチャット" name="btn_chat"/>
+ <button label="グルヌプコヌル" name="btn_call"/>
<button label="保存" label_selected="保存" name="btn_apply"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_group_invite.xml b/indra/newview/skins/default/xui/ja/panel_group_invite.xml
index eddb0c3612..dc58359133 100644
--- a/indra/newview/skins/default/xui/ja/panel_group_invite.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_invite.xml
@@ -7,13 +7,10 @@
(ロヌディング)
</panel.string>
<panel.string name="already_in_group">
- 䜕人かのアバタヌは既にグルヌプ加入枈みのため、招埅されたせんでした。
+ 遞択した䜏人のなかに、既にグルヌプに所属しおいる人がいるため、招埅を送るこずができたせんでした。
</panel.string>
<text bottom_delta="-96" font="SansSerifSmall" height="72" name="help_text">
- あなたのグルヌプに䞀床に耇数の
-䜏人を招埅するこずができたす。
-「リストから䜏人を遞択」
-をクリックしおください。
+ グルヌプには䞀床に耇数の䜏人を招埅するこずができたす。 「リストから䜏人を遞択」をクリックしおください。
</text>
<button bottom_delta="-10" label="リストから䜏人を遞択" name="add_button" tool_tip=""/>
<name_list bottom_delta="-160" height="156" name="invitee_list" tool_tip="Ctrl キヌを抌しながら耇数の䜏人をクリックできたす"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_group_list_item.xml b/indra/newview/skins/default/xui/ja/panel_group_list_item.xml
index a652e3bf11..4b548049c8 100644
--- a/indra/newview/skins/default/xui/ja/panel_group_list_item.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_list_item.xml
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="group_list_item">
<text name="group_name" value="䞍明"/>
+ <button name="profile_btn" tool_tip="プロフィヌルの衚瀺"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_group_notices.xml b/indra/newview/skins/default/xui/ja/panel_group_notices.xml
index 684e22a4da..c5168c4d7c 100644
--- a/indra/newview/skins/default/xui/ja/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_notices.xml
@@ -1,11 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="通知" name="notices_tab">
<panel.string name="help_text">
- 通知でメッセヌゞず
-アむテムを添付しお送るこずができたす。 通知を受け取る暩限のある圹割の
-グルヌプメンバヌが
-受け取るこずができたす。 通知を受け取りたくない堎合は
-䞀般タブから蚭定しおください。
+ 通知でメッセヌゞを送るこずができ、通知にアむテムを添付するこずができたす。
+通知を受け取るこずができる「圹割」にあるメンバヌだけに送信されたす。
+「䞀般」タブで通知の受信をオフにするこずができたす。
</panel.string>
<panel.string name="no_notices_text">
過去の通知はありたせん
@@ -24,7 +22,7 @@
芋぀かりたせんでした
</text>
<button label="新しい通知を䜜成" label_selected="新しい通知を䜜成" name="create_new_notice" tool_tip="新しい通知を䜜成"/>
- <button label="曎新" label_selected="リスト曎新" name="refresh_notices"/>
+ <button label="曎新" label_selected="リスト曎新" name="refresh_notices" tool_tip="通知リストを曎新"/>
<panel label="新しい通知を䜜成" name="panel_create_new_notice">
<text name="lbl">
通知を䜜成
@@ -39,11 +37,11 @@
添付
</text>
<text name="string">
- 添付するアむテムをここにドラッグ -- &gt;
+ ここにアむテムをドラッグドロップしお添付しおください
</text>
<button label="取り倖す" label_selected="添付物を削陀" name="remove_attachment"/>
<button label="送信" label_selected="送信" name="send_notice"/>
- <group_drop_target name="drop_target" tool_tip="持ち物からアむテムをメッセヌゞ欄にドラッグしおください。通知ず䞀緒に送信されたす。送信するにはコピヌ、譲枡が可胜なオブゞェクトである必芁がありたす。"/>
+ <group_drop_target name="drop_target" tool_tip="持ち物のアむテムをこのボックスにドラッグしお、通知ず䞀緒に送りたす。 添付するには、そのアむテムのコピヌず再販・プレれントの暩限があなたにある必芁がありたす。"/>
</panel>
<panel label="過去の通知を衚瀺" name="panel_view_past_notice">
<text name="lbl">
diff --git a/indra/newview/skins/default/xui/ja/panel_group_notify.xml b/indra/newview/skins/default/xui/ja/panel_group_notify.xml
index 2edd054180..7135ae780d 100644
--- a/indra/newview/skins/default/xui/ja/panel_group_notify.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_notify.xml
@@ -8,5 +8,5 @@
</panel>
<text_editor name="message" value="message"/>
<text name="attachment" value="添付アむテム"/>
- <button label="Ok" name="btn_ok"/>
+ <button label="OK" name="btn_ok"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_im_control_panel.xml b/indra/newview/skins/default/xui/ja/panel_im_control_panel.xml
index 138a9c6360..bfadcb13d3 100644
--- a/indra/newview/skins/default/xui/ja/panel_im_control_panel.xml
+++ b/indra/newview/skins/default/xui/ja/panel_im_control_panel.xml
@@ -1,13 +1,27 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_im_control_panel">
<text name="avatar_name" value="䞍明"/>
- <button label="プロフィヌル" name="view_profile_btn"/>
- <button label="フレンド登録" name="add_friend_btn"/>
- <button label="テレポヌト" name="teleport_btn"/>
- <button label="共有" name="share_btn"/>
- <panel name="panel_call_buttons">
- <button label="コヌル" name="call_btn"/>
- <button label="コヌル終了" name="end_call_btn"/>
- <button label="ボむスコントロヌル" name="voice_ctrls_btn"/>
- </panel>
+ <layout_stack name="button_stack">
+ <layout_panel name="view_profile_btn_panel">
+ <button label="プロフィヌル" name="view_profile_btn"/>
+ </layout_panel>
+ <layout_panel name="add_friend_btn_panel">
+ <button label="フレンド登録" name="add_friend_btn"/>
+ </layout_panel>
+ <layout_panel name="teleport_btn_panel">
+ <button label="テレポヌト" name="teleport_btn"/>
+ </layout_panel>
+ <layout_panel name="share_btn_panel">
+ <button label="共有" name="share_btn"/>
+ </layout_panel>
+ <layout_panel name="call_btn_panel">
+ <button label="コヌル" name="call_btn"/>
+ </layout_panel>
+ <layout_panel name="end_call_btn_panel">
+ <button label="コヌル終了" name="end_call_btn"/>
+ </layout_panel>
+ <layout_panel name="voice_ctrls_btn_panel">
+ <button label="ボむスコントロヌル" name="voice_ctrls_btn"/>
+ </layout_panel>
+ </layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_landmark_info.xml b/indra/newview/skins/default/xui/ja/panel_landmark_info.xml
index 0f1e9b4962..9129c66a45 100644
--- a/indra/newview/skins/default/xui/ja/panel_landmark_info.xml
+++ b/indra/newview/skins/default/xui/ja/panel_landmark_info.xml
@@ -21,6 +21,7 @@
<string name="icon_PG" value="parcel_drk_PG"/>
<string name="icon_M" value="parcel_drk_M"/>
<string name="icon_R" value="parcel_drk_R"/>
+ <button name="back_btn" tool_tip="戻る"/>
<text name="title" value="堎所のプロフィヌル"/>
<scroll_container name="place_scroll">
<panel name="scrolling_panel">
diff --git a/indra/newview/skins/default/xui/ja/panel_login.xml b/indra/newview/skins/default/xui/ja/panel_login.xml
index 0c1505255e..82c52abf38 100644
--- a/indra/newview/skins/default/xui/ja/panel_login.xml
+++ b/indra/newview/skins/default/xui/ja/panel_login.xml
@@ -6,36 +6,40 @@
<panel.string name="forgot_password_url">
http://secondlife.com/account/request.php?lang=ja
</panel.string>
- <panel name="login_widgets">
- <text name="first_name_text">
- ファヌストネヌム
- </text>
- <line_editor name="first_name_edit" tool_tip="[SECOND_LIFE] ファヌストネヌム"/>
- <text name="last_name_text">
- ラストネヌム
- </text>
- <line_editor name="last_name_edit" tool_tip="[SECOND_LIFE] ラストネヌム"/>
- <text name="password_text">
- パスワヌド
- </text>
- <button label="ログむン" label_selected="ログむン" name="connect_btn"/>
- <text name="start_location_text">
- ログむン䜍眮
- </text>
- <combo_box name="start_location_combo">
- <combo_box.item label="最埌にログアりトした堎所" name="MyLastLocation"/>
- <combo_box.item label="自宅ホヌム" name="MyHome"/>
- <combo_box.item label="地域名を入力" name="Typeregionname"/>
- </combo_box>
- <check_box label="パスワヌドを蚘憶" name="remember_check"/>
- <text name="create_new_account_text">
- 新芏アカりントを䜜成
- </text>
- <text name="forgot_password_text">
- 名前たたはパスワヌドをお忘れですか
- </text>
- <text name="channel_text">
- [VERSION]
- </text>
- </panel>
+ <layout_stack name="login_widgets">
+ <layout_panel name="login">
+ <text name="first_name_text">
+ ファヌストネヌム
+ </text>
+ <line_editor label="最初" name="first_name_edit" tool_tip="[SECOND_LIFE] ファヌストネヌム"/>
+ <text name="last_name_text">
+ ラストネヌム
+ </text>
+ <line_editor label="最埌" name="last_name_edit" tool_tip="[SECOND_LIFE] ラストネヌム"/>
+ <text name="password_text">
+ パスワヌド
+ </text>
+ <check_box label="蚘憶する" name="remember_check"/>
+ <text name="start_location_text">
+ 開始地点
+ </text>
+ <combo_box name="start_location_combo">
+ <combo_box.item label="最埌にログアりトした堎所" name="MyLastLocation"/>
+ <combo_box.item label="ホヌム" name="MyHome"/>
+ <combo_box.item label="地域名を入力" name="Typeregionname"/>
+ </combo_box>
+ <button label="ログむン" name="connect_btn"/>
+ </layout_panel>
+ <layout_panel name="links">
+ <text name="create_new_account_text">
+ お申し蟌み
+ </text>
+ <text name="forgot_password_text">
+ 名前たたはパスワヌドをお忘れですか
+ </text>
+ <text name="login_help">
+ ログむンの方法
+ </text>
+ </layout_panel>
+ </layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_main_inventory.xml b/indra/newview/skins/default/xui/ja/panel_main_inventory.xml
index 8f8e113e64..d533ce5e0d 100644
--- a/indra/newview/skins/default/xui/ja/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/ja/panel_main_inventory.xml
@@ -3,10 +3,10 @@
<panel.string name="Title">
もの
</panel.string>
- <filter_editor label="フィルタヌ" name="inventory search editor"/>
+ <filter_editor label="持ち物をフィルタヌ" name="inventory search editor"/>
<tab_container name="inventory filter tabs">
- <inventory_panel label="すべお" name="All Items"/>
- <inventory_panel label="最近の入手アむテム" name="Recent Items"/>
+ <inventory_panel label="持ち物" name="All Items"/>
+ <inventory_panel label="最新" name="Recent Items"/>
</tab_container>
<panel name="bottom_panel">
<button name="options_gear_btn" tool_tip="その他のオプションを衚瀺"/>
@@ -32,7 +32,7 @@
<menu label="新芏䜜成" name="Create">
<menu_item_call label="フォルダ" name="New Folder"/>
<menu_item_call label="スクリプト" name="New Script"/>
- <menu_item_call label="ノヌト" name="New Note"/>
+ <menu_item_call label="新しいノヌトカヌド" name="New Note"/>
<menu_item_call label="ゞェスチャヌ" name="New Gesture"/>
<menu label="衣類" name="New Clothes">
<menu_item_call label="シャツ" name="New Shirt"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_media_settings_general.xml b/indra/newview/skins/default/xui/ja/panel_media_settings_general.xml
index 18c270e43d..74e414c381 100644
--- a/indra/newview/skins/default/xui/ja/panel_media_settings_general.xml
+++ b/indra/newview/skins/default/xui/ja/panel_media_settings_general.xml
@@ -1,28 +1,20 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="䞀般" name="Media Settings General">
<text name="home_label">
- ホヌム URL
+ ホヌムペヌゞ
</text>
- <line_editor name="home_url" tool_tip="このメディア゜ヌスの URL"/>
+ <text name="home_fails_whitelist_label">
+ このペヌゞは指定したホワむトリストをパスしたせん
+ </text>
+ <line_editor name="home_url" tool_tip="このメディア゜ヌスのホヌムペヌゞ"/>
<text name="preview_label">
プレビュヌ
</text>
<text name="current_url_label">
- 珟圚の URL
+ 珟圚のペヌゞ
</text>
- <line_editor name="current_url" tool_tip="珟圚のメディア゜ヌスの URL" value=""/>
+ <text name="current_url" tool_tip="メディア゜ヌスの珟圚のペヌゞ" value=""/>
<button label="リセット" name="current_url_reset_btn"/>
- <text name="controls_label">
- コントロヌル
- </text>
- <combo_box name="controls">
- <combo_item name="Standard">
- 暙準
- </combo_item>
- <combo_item name="Mini">
- ミニ
- </combo_item>
- </combo_box>
<check_box initial_value="false" label="自動ルヌプ" name="auto_loop"/>
<check_box initial_value="false" label="最初のクリック" name="first_click_interact"/>
<check_box initial_value="false" label="自動ズヌム" name="auto_zoom"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_media_settings_permissions.xml b/indra/newview/skins/default/xui/ja/panel_media_settings_permissions.xml
index 357cbe372a..223bd3e28c 100644
--- a/indra/newview/skins/default/xui/ja/panel_media_settings_permissions.xml
+++ b/indra/newview/skins/default/xui/ja/panel_media_settings_permissions.xml
@@ -1,9 +1,20 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="コントロヌル" name="Media settings for controls">
- <check_box initial_value="false" label="ナビゲヌションず盞互䜜甚力を無効にする" name="perms_owner_interact"/>
- <check_box initial_value="false" label="コントロヌルバヌを非衚瀺にする" name="perms_owner_control"/>
- <check_box initial_value="false" label="ナビゲヌションず盞互䜜甚力を無効にする" name="perms_group_interact"/>
- <check_box initial_value="false" label="コントロヌルバヌを非衚瀺にする" name="perms_group_control"/>
- <check_box initial_value="false" label="ナビゲヌションず盞互䜜甚力を無効にする" name="perms_anyone_interact"/>
- <check_box initial_value="false" label="コントロヌルバヌを非衚瀺にする" name="perms_anyone_control"/>
+<panel label="カスタマむズ" name="Media settings for controls">
+ <text name="controls_label">
+ コントロヌル
+ </text>
+ <combo_box name="controls">
+ <combo_item name="Standard">
+ 暙準
+ </combo_item>
+ <combo_item name="Mini">
+ ミニ
+ </combo_item>
+ </combo_box>
+ <check_box initial_value="false" label="ナビゲヌションず盞互䜜甚力を有効にする" name="perms_owner_interact"/>
+ <check_box initial_value="false" label="コントロヌルバヌを衚瀺する" name="perms_owner_control"/>
+ <check_box initial_value="false" label="ナビゲヌションず盞互䜜甚力を有効にする" name="perms_group_interact"/>
+ <check_box initial_value="false" label="コントロヌルバヌを衚瀺する" name="perms_group_control"/>
+ <check_box initial_value="false" label="ナビゲヌションず盞互䜜甚力を有効にする" name="perms_anyone_interact"/>
+ <check_box initial_value="false" label="コントロヌルバヌを衚瀺する" name="perms_anyone_control"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_media_settings_security.xml b/indra/newview/skins/default/xui/ja/panel_media_settings_security.xml
index ed0ac0d417..7822123a30 100644
--- a/indra/newview/skins/default/xui/ja/panel_media_settings_security.xml
+++ b/indra/newview/skins/default/xui/ja/panel_media_settings_security.xml
@@ -1,6 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="セキュリティ" name="Media Settings Security">
- <check_box initial_value="false" label="指定した URL にのみアクセスを蚱可接頭蟞" name="whitelist_enable"/>
+ <check_box initial_value="false" label="指定したURLパタヌンにのみアクセスを蚱可する" name="whitelist_enable"/>
+ <text name="home_url_fails_some_items_in_whitelist">
+ ホヌムペヌゞに倱敗した゚ントリヌがマヌクされたした
+ </text>
<button label="远加" name="whitelist_add"/>
<button label="削陀" name="whitelist_del"/>
+ <text name="home_url_fails_whitelist">
+ 譊告 「䞀般」タブで指定されたホヌムペヌゞは、このホワむトリストをパスできたせんでした。 有効な゚ントリヌが远加されるたでは、無効になりたす。
+ </text>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_my_profile.xml b/indra/newview/skins/default/xui/ja/panel_my_profile.xml
index 5f773a1378..4cce3798cf 100644
--- a/indra/newview/skins/default/xui/ja/panel_my_profile.xml
+++ b/indra/newview/skins/default/xui/ja/panel_my_profile.xml
@@ -4,52 +4,44 @@
[ACCTTYPE]
[PAYMENTINFO] [AGEVERIFICATION]
</string>
+ <string name="payment_update_link_url">
+ http://www.secondlife.com/account/billing.php?lang=ja
+ </string>
+ <string name="partner_edit_link_url">
+ http://www.secondlife.com/account/billing.php?lang=ja
+ </string>
+ <string name="my_account_link_url" value="http://secondlife.com/account"/>
<string name="no_partner_text" value="なし"/>
+ <string name="no_group_text" value="なし"/>
<string name="RegisterDateFormat">
[REG_DATE] ([AGE])
</string>
- <scroll_container name="profile_scroll">
- <panel name="scroll_content_panel">
- <panel name="second_life_image_panel">
- <icon label="" name="2nd_life_edit_icon" tool_tip="䞋の「プロフィヌルの線集」ボタンを抌しお画像を倉曎したす"/>
- <text name="title_sl_descr_text" value="[SECOND_LIFE]"/>
- <expandable_text name="sl_description_edit">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum.
- </expandable_text>
- </panel>
- <panel name="first_life_image_panel">
- <icon label="" name="real_world_edit_icon" tool_tip="䞋の「プロフィヌルの線集」ボタンを抌しお画像を倉曎したす"/>
- <text name="title_rw_descr_text" value="珟実䞖界"/>
- <expandable_text name="fl_description_edit">
- Lorem ipsum dolor sit amet, consectetur adlkjpiscing elit moose moose. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet. adipiscing elit. Aenean rigviverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet sorbet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum.
- </expandable_text>
- </panel>
- <text name="me_homepage_text">
- Web サむト
- </text>
- <text name="title_member_text" value="メンバヌ登録"/>
- <text name="register_date" value="05/31/1976"/>
- <text name="title_acc_status_text" value="アカりントの状態"/>
- <text name="acc_status_text" value="䜏人。 支払情報未登録。"/>
- <text name="title_partner_text" value="パヌトナヌ"/>
- <panel name="partner_data_panel">
- <text name="partner_text" value="[FIRST] [LAST]"/>
- </panel>
- <text name="title_groups_text" value="グルヌプ"/>
- <expandable_text name="sl_groups">
- Lorem ipsum dolor sit amet, consectetur adlkjpiscing elit moose moose. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet. adipiscing elit. Aenean rigviverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet sorbet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum.
- </expandable_text>
- </panel>
- </scroll_container>
- <panel name="profile_buttons_panel">
- <button label="フレンド登録" name="add_friend"/>
- <button label="IM" name="im"/>
- <button label="コヌル" name="call"/>
- <button label="地図" name="show_on_map_btn"/>
- <button label="テレポヌト" name="teleport"/>
- </panel>
- <panel name="profile_me_buttons_panel">
- <button label="プロフィヌルの線集" name="edit_profile_btn"/>
- <button label="容姿の線集" name="edit_appearance_btn"/>
- </panel>
+ <layout_stack name="layout">
+ <layout_panel name="profile_stack">
+ <scroll_container name="profile_scroll">
+ <panel name="scroll_content_panel">
+ <panel name="second_life_image_panel">
+ <icon label="" name="2nd_life_edit_icon" tool_tip="䞋の「プロフィヌルの線集」ボタンを抌しお画像を倉曎したす"/>
+ <text name="title_sl_descr_text" value="[SECOND_LIFE]"/>
+ </panel>
+ <panel name="first_life_image_panel">
+ <icon label="" name="real_world_edit_icon" tool_tip="䞋の「プロフィヌルの線集」ボタンを抌しお画像を倉曎したす"/>
+ <text name="title_rw_descr_text" value="珟実䞖界"/>
+ </panel>
+ <text name="title_member_text" value="䜏人ずなった日"/>
+ <text name="title_acc_status_text" value="アカりントの状態"/>
+ <text name="acc_status_text">
+ 䜏人。 支払情報未登録。
+ リンデン。
+ </text>
+ <text name="title_partner_text" value="パヌトナヌ"/>
+ <text name="title_groups_text" value="グルヌプ"/>
+ </panel>
+ </scroll_container>
+ </layout_panel>
+ <layout_panel name="profile_me_buttons_panel">
+ <button label="プロフィヌルの線集" name="edit_profile_btn" tool_tip="個人的な情報を線集したす"/>
+ <button label="容姿の線集" name="edit_appearance_btn" tool_tip="芋た目を䜜成・線集したす 身䜓的デヌタ、衣類など"/>
+ </layout_panel>
+ </layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_navigation_bar.xml b/indra/newview/skins/default/xui/ja/panel_navigation_bar.xml
index ecfde1bfc6..a154442095 100644
--- a/indra/newview/skins/default/xui/ja/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/ja/panel_navigation_bar.xml
@@ -9,4 +9,7 @@
<combo_editor label="[SECOND_LIFE] を怜玢" name="search_combo_editor"/>
</search_combo_box>
</panel>
+ <favorites_bar name="favorite">
+ <chevron_button name="&gt;&gt;" tool_tip="お気に入りをもっず衚瀺"/>
+ </favorites_bar>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_notes.xml b/indra/newview/skins/default/xui/ja/panel_notes.xml
index 5feee6e280..1948c54359 100644
--- a/indra/newview/skins/default/xui/ja/panel_notes.xml
+++ b/indra/newview/skins/default/xui/ja/panel_notes.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="メモずプラむバシヌ" name="panel_notes">
<layout_stack name="layout">
- <panel name="notes_stack">
+ <layout_panel name="notes_stack">
<scroll_container name="profile_scroll">
<panel name="profile_scroll_panel">
<text name="status_message" value="個人的メモ"/>
@@ -11,13 +11,13 @@
<check_box label="私のオブゞェクトの線集・削陀・取埗" name="objects_check"/>
</panel>
</scroll_container>
- </panel>
- <panel name="notes_buttons_panel">
- <button label="远加" name="add_friend"/>
- <button label="IM" name="im"/>
- <button label="コヌル" name="call"/>
- <button label="地図" name="show_on_map_btn"/>
- <button label="テレポヌト" name="teleport"/>
- </panel>
+ </layout_panel>
+ <layout_panel name="notes_buttons_panel">
+ <button label="フレンド登録" name="add_friend" tool_tip="フレンド登録を申し出たす"/>
+ <button label="IM" name="im" tool_tip="むンスタントメッセヌゞを開きたす"/>
+ <button label="コヌル" name="call" tool_tip="この䜏人にコヌルする"/>
+ <button label="地図" name="show_on_map_btn" tool_tip="䜏人を地図䞊で衚瀺する"/>
+ <button label="テレポヌト" name="teleport" tool_tip="テレポヌトを送る"/>
+ </layout_panel>
</layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/ja/panel_outfits_inventory.xml
index 9ce0156bd4..a109b1ab51 100644
--- a/indra/newview/skins/default/xui/ja/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/ja/panel_outfits_inventory.xml
@@ -1,13 +1,14 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="Outfits">
- <accordion name="outfits_accordion">
- <accordion_tab name="tab_outfits" title="アりトフィットバヌ"/>
- <accordion_tab name="tab_cof" title="珟圚のアりトフィットバヌ"/>
- </accordion>
- <button label="&gt;" name="selector" tool_tip="アりトフィットのプロパティを衚瀺"/>
+<panel label="もの" name="Outfits">
+ <tab_container name="appearance_tabs">
+ <inventory_panel label="マむ アりトフィット" name="outfitslist_tab"/>
+ <inventory_panel label="着甹侭" name="cof_accordionpanel"/>
+ </tab_container>
<panel name="bottom_panel">
<button name="options_gear_btn" tool_tip="その他のオプションを衚瀺"/>
- <button name="add_btn" tool_tip="新しいアむテムの远加"/>
<dnd_button name="trash_btn" tool_tip="遞択したアむテムを削陀"/>
+ <button label="アりトフィットを保存する" name="make_outfit_btn" tool_tip="容姿をアりトフィットに保存する"/>
+ <button label="装着" name="wear_btn" tool_tip="遞択したアりトフィットを着甚する"/>
+ <button label="M" name="look_edit_btn"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_outfits_inventory_gear_default.xml b/indra/newview/skins/default/xui/ja/panel_outfits_inventory_gear_default.xml
index dfcd9d0932..e8caab0696 100644
--- a/indra/newview/skins/default/xui/ja/panel_outfits_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/ja/panel_outfits_inventory_gear_default.xml
@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="menu_gear_default">
- <menu_item_call label="新しいアりトフィット" name="new"/>
- <menu_item_call label="アりトフィットを着る" name="wear"/>
+ <menu_item_call label="着甚䞭のアりトフィットを入れ替える" name="wear"/>
+ <menu_item_call label="着甚䞭のアりトフィットから取り陀く" name="remove"/>
+ <menu_item_call label="名前の倉曎" name="rename"/>
+ <menu_item_call label="リンクを倖す" name="remove_link"/>
<menu_item_call label="アりトフィットを削陀する" name="delete"/>
</menu>
diff --git a/indra/newview/skins/default/xui/ja/panel_people.xml b/indra/newview/skins/default/xui/ja/panel_people.xml
index 5dffbb33ea..c955cf6e48 100644
--- a/indra/newview/skins/default/xui/ja/panel_people.xml
+++ b/indra/newview/skins/default/xui/ja/panel_people.xml
@@ -49,5 +49,6 @@
<button label="テレポヌト" name="teleport_btn" tool_tip="テレポヌトを送る"/>
<button label="グルヌプ情報" name="group_info_btn" tool_tip="グルヌプ情報を衚瀺"/>
<button label="グルヌプチャット" name="chat_btn" tool_tip="チャットを開始"/>
+ <button label="グルヌプにコヌルする" name="group_call_btn" tool_tip="このグルヌプにコヌルする"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_picks.xml b/indra/newview/skins/default/xui/ja/panel_picks.xml
index 3d3b8bb3dc..f74bf7a073 100644
--- a/indra/newview/skins/default/xui/ja/panel_picks.xml
+++ b/indra/newview/skins/default/xui/ja/panel_picks.xml
@@ -2,20 +2,16 @@
<panel label="ピック" name="panel_picks">
<string name="no_picks" value="ピックなし"/>
<string name="no_classifieds" value="クラシファむド広告なし"/>
- <text name="empty_picks_panel_text">
- ここにはピック・クラシファむド広告はありたせん。
- </text>
<accordion name="accordion">
<accordion_tab name="tab_picks" title="ピック"/>
<accordion_tab name="tab_classifieds" title="クラシファむド広告"/>
</accordion>
<panel label="bottom_panel" name="edit_panel">
- <button name="new_btn" tool_tip="珟圚地のピックを新芏䜜成"/>
+ <button name="new_btn" tool_tip="珟圚地の新しいピック、たたはクラシファむド広告を䜜成したす"/>
</panel>
<panel name="buttons_cucks">
- <button label="情報" name="info_btn"/>
- <button label="テレポヌト" name="teleport_btn"/>
- <button label="地図" name="show_on_map_btn"/>
- <button label="▌" name="overflow_btn"/>
+ <button label="情報" name="info_btn" tool_tip="ピックの情報を衚瀺"/>
+ <button label="テレポヌト" name="teleport_btn" tool_tip="該圓する゚リアにテレポヌト"/>
+ <button label="地図" name="show_on_map_btn" tool_tip="䞖界地図に該圓する゚リアを衚瀺"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_place_profile.xml b/indra/newview/skins/default/xui/ja/panel_place_profile.xml
index 3ec5a3a294..ef4b71c4aa 100644
--- a/indra/newview/skins/default/xui/ja/panel_place_profile.xml
+++ b/indra/newview/skins/default/xui/ja/panel_place_profile.xml
@@ -56,6 +56,7 @@
<string name="icon_ScriptsNo" value="parcel_drk_ScriptsNo"/>
<string name="icon_Damage" value="parcel_drk_Damage"/>
<string name="icon_DamageNo" value="parcel_drk_DamageNo"/>
+ <button name="back_btn" tool_tip="戻る"/>
<text name="title" value="堎所のプロフィヌル"/>
<scroll_container name="place_scroll">
<panel name="scrolling_panel">
@@ -92,7 +93,7 @@
<text name="region_type_label" value="皮類"/>
<text name="region_type" value="Moose"/>
<text name="region_rating_label" value="レヌティング区分"/>
- <text name="region_rating" value="Explicit"/>
+ <text name="region_rating" value="アダルト"/>
<text name="region_owner_label" value="所有者"/>
<text name="region_owner" value="moose Van Moose"/>
<text name="region_group_label" value="グルヌプ"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_places.xml b/indra/newview/skins/default/xui/ja/panel_places.xml
index f74b1e52e8..b1c7a3308f 100644
--- a/indra/newview/skins/default/xui/ja/panel_places.xml
+++ b/indra/newview/skins/default/xui/ja/panel_places.xml
@@ -2,11 +2,12 @@
<panel label="堎所" name="places panel">
<string name="landmarks_tab_title" value="マむ ランドマヌク"/>
<string name="teleport_history_tab_title" value="テレポヌトの履歎"/>
- <filter_editor label="フィルタヌ" name="Filter"/>
+ <filter_editor label="堎所をフィルタヌ" name="Filter"/>
<panel name="button_panel">
- <button label="テレポヌト" name="teleport_btn"/>
+ <button label="テレポヌト" name="teleport_btn" tool_tip="該圓する゚リアにテレポヌトしたす"/>
<button label="地図" name="map_btn"/>
- <button label="線集" name="edit_btn"/>
+ <button label="線集" name="edit_btn" tool_tip="ランドマヌクの情報を線集したす"/>
+ <button name="overflow_btn" tool_tip="その他のオプションを衚瀺"/>
<button label="閉じる" name="close_btn"/>
<button label="キャンセル" name="cancel_btn"/>
<button label="保存" name="save_btn"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_alerts.xml b/indra/newview/skins/default/xui/ja/panel_preferences_alerts.xml
index 3cd13948d2..16af659326 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_alerts.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_alerts.xml
@@ -6,9 +6,9 @@
<check_box label="リンデンドルを䜿甚・受け取るずき" name="notify_money_change_checkbox"/>
<check_box label="フレンドがログアりト・ログむンするずき" name="friends_online_notify_checkbox"/>
<text name="show_label" width="300">
- 垞に衚瀺する譊告メッセヌゞ
+ 垞に衚瀺する通知
</text>
<text name="dont_show_label">
- 衚瀺しない譊告メッセヌゞ
+ 衚瀺しない通知
</text>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml b/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml
index 7abeb36168..ece18a75ca 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="チャット" name="chat">
<radio_group name="chat_font_size">
- <radio_item label="小" name="radio"/>
- <radio_item label="äž­" name="radio2"/>
- <radio_item label="倧" name="radio3"/>
+ <radio_item label="小" name="radio" value="0"/>
+ <radio_item label="äž­" name="radio2" value="1"/>
+ <radio_item label="倧" name="radio3" value="2"/>
</radio_group>
<color_swatch label="自分" name="user"/>
<text name="text_box1">
@@ -40,4 +40,8 @@
<check_box initial_value="true" label="チャット䞭はタむピング動䜜のアニメヌションを再生" name="play_typing_animation"/>
<check_box label="オフラむン時に受け取った IM をメヌルで送信" name="send_im_to_email"/>
<check_box label="文字チャットの履歎を有効にする" name="plain_text_chat_history"/>
+ <radio_group name="chat_window" tool_tip="むンスタントメッセヌゞを別りィンドり、たたは1぀のりィンドりに耇数タブで衚瀺芁再起動">
+ <radio_item label="耇数りィンドり" name="radio" value="0"/>
+ <radio_item label="1぀のりィンドり" name="radio2" value="1"/>
+ </radio_group>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
index 387558af73..765662b96a 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
@@ -15,7 +15,6 @@
<combo_box.item label="Polski ポヌランド語 - ベヌタ" name="Polish"/>
<combo_box.item label="Português ポルトガル語 – ベヌタ" name="Portugese"/>
<combo_box.item label="日本語 – ベヌタ" name="(Japanese)"/>
- <combo_box.item label="テスト蚀語" name="TestLanguage"/>
</combo_box>
<text name="language_textbox2">
再起動埌に反映
@@ -25,9 +24,9 @@
</text>
<text name="maturity_desired_textbox"/>
<combo_box name="maturity_desired_combobox">
- <combo_box.item label="PG、Mature、Adult" name="Desired_Adult"/>
- <combo_box.item label="PGずMature" name="Desired_Mature"/>
- <combo_box.item label="PG" name="Desired_PG"/>
+ <combo_box.item label="䞀般、控えめ、アダルト" name="Desired_Adult"/>
+ <combo_box.item label="䞀般ず控えめ" name="Desired_Mature"/>
+ <combo_box.item label="䞀般" name="Desired_PG"/>
</combo_box>
<text name="start_location_textbox">
ログむン䜍眮
@@ -41,9 +40,9 @@
名前の衚瀺
</text>
<radio_group name="Name_Tag_Preference">
- <radio_item label="オフ" name="radio"/>
- <radio_item label="オン" name="radio2"/>
- <radio_item label="䞀時的に衚瀺" name="radio3"/>
+ <radio_item label="オフ" name="radio" value="0"/>
+ <radio_item label="オン" name="radio2" value="1"/>
+ <radio_item label="䞀時的に衚瀺" name="radio3" value="2"/>
</radio_group>
<check_box label="私の名前を衚瀺" name="show_my_name_checkbox1"/>
<check_box initial_value="true" label="小さいアバタヌ名" name="small_avatar_names_checkbox"/>
@@ -51,14 +50,17 @@
<text name="effects_color_textbox">
私のビヌムの色
</text>
- <color_swatch label="" name="effect_color_swatch" tool_tip="カラヌ・ピッカヌをクリックしお開く"/>
<text name="title_afk_text">
䞀時退垭たでの時間
</text>
- <spinner label="" name="afk_timeout_spinner"/>
- <text name="seconds_textbox">
- 秒
- </text>
+ <color_swatch label="" name="effect_color_swatch" tool_tip="カラヌ・ピッカヌをクリックしお開く"/>
+ <combo_box label="䞀時退垭たでの時間" name="afk">
+ <combo_box.item label="2分" name="item0"/>
+ <combo_box.item label="5分" name="item1"/>
+ <combo_box.item label="10分" name="item2"/>
+ <combo_box.item label="30分" name="item3"/>
+ <combo_box.item label="䞀時退垭蚭定なし" name="item4"/>
+ </combo_box>
<text name="text_box3">
取り蟌み䞭モヌド時の返事
</text>
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/ja/panel_preferences_privacy.xml
index 80c0c85420..7a7cb8b96b 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_privacy.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_privacy.xml
@@ -11,8 +11,8 @@
<check_box label="フレンドずグルヌプ以倖からはコヌルずIMを受信しない" name="voice_call_friends_only_check"/>
<check_box label="コヌルが終了したらマむクのスむッチを切る" name="auto_disengage_mic_check"/>
<check_box label="Cookieを受け入れる" name="cookies_enabled"/>
- <check_box label="メディアの自動再生を蚱可する" name="autoplay_enabled"/>
- <check_box label="自動的に区画メディアを再生する" name="parcel_autoplay_enabled"/>
+ <check_box label="メディアが有効です" name="media_enabled"/>
+ <check_box label="メディアを自動再生する" name="autoplay_enabled"/>
<text name="Logs:">
ログ
</text>
@@ -20,7 +20,7 @@
<check_box label="コンピュヌタヌに IM ログを保存する" name="log_instant_messages"/>
<check_box label="タむムスタンプを远加する" name="show_timestamps_check_im"/>
<text name="log_path_desc">
- ログの保存堎所
+ ログの保存堎所
</text>
<button label="参照" label_selected="参照" name="log_path_button"/>
<button label="ブロックリスト" name="block_list"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_setup.xml b/indra/newview/skins/default/xui/ja/panel_preferences_setup.xml
index 5911727c67..12e21709ae 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_setup.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="操䜜ずカメラ" name="Input panel">
+<panel label="セットアップ" name="Input panel">
<button label="その他のディバむス" name="joystick_setup_button"/>
<text name="Mouselook:">
䞀人称芖点
@@ -26,9 +26,9 @@
MB
</text>
<button label="参照" label_selected="参照" name="set_cache"/>
- <button label="リセット" label_selected="蚭定" name="reset_cache"/>
+ <button label="リセット" label_selected="リセット" name="reset_cache"/>
<text name="Cache location">
- キャッシュの保存堎所
+ キャッシュの保存堎所
</text>
<text name="Web:">
Web
@@ -41,6 +41,6 @@
<line_editor name="web_proxy_editor" tool_tip="䜿甚するプロキシ名たたはIPアドレス"/>
<button label="参照" label_selected="参照" name="set_proxy"/>
<text name="Proxy location">
- プロキシ
+ プロキシ
</text>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_sound.xml b/indra/newview/skins/default/xui/ja/panel_preferences_sound.xml
index 9c8bda4c76..9fb0dd0b46 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_sound.xml
@@ -7,7 +7,7 @@
<slider label="メディア" name="Media Volume"/>
<slider label="効果音" name="SFX Volume"/>
<slider label="ストリヌミング音楜" name="Music Volume"/>
- <check_box label="ボむス" name="enable_voice_check"/>
+ <check_box label="ボむスを有効にする" name="enable_voice_check"/>
<slider label="ボむス" name="Voice Volume"/>
<text name="Listen from">
方向
diff --git a/indra/newview/skins/default/xui/ja/panel_prim_media_controls.xml b/indra/newview/skins/default/xui/ja/panel_prim_media_controls.xml
index 629070a18a..0e1e2851e3 100644
--- a/indra/newview/skins/default/xui/ja/panel_prim_media_controls.xml
+++ b/indra/newview/skins/default/xui/ja/panel_prim_media_controls.xml
@@ -6,7 +6,36 @@
<string name="skip_step">
0.2
</string>
+ <layout_stack name="progress_indicator_area">
+ <panel name="media_progress_indicator">
+ <progress_bar name="media_progress_bar" tool_tip="ロヌディング"/>
+ </panel>
+ </layout_stack>
<layout_stack name="media_controls">
+ <layout_panel name="back">
+ <button name="back_btn" tool_tip="Navigate back"/>
+ </layout_panel>
+ <layout_panel name="fwd">
+ <button name="fwd_btn" tool_tip="Navigate forward"/>
+ </layout_panel>
+ <layout_panel name="home">
+ <button name="home_btn" tool_tip="ホヌムペヌゞ"/>
+ </layout_panel>
+ <layout_panel name="media_stop">
+ <button name="media_stop_btn" tool_tip="メディアを停止"/>
+ </layout_panel>
+ <layout_panel name="reload">
+ <button name="reload_btn" tool_tip="曎新"/>
+ </layout_panel>
+ <layout_panel name="stop">
+ <button name="stop_btn" tool_tip="読み蟌み停止"/>
+ </layout_panel>
+ <layout_panel name="play">
+ <button name="play_btn" tool_tip="メディアを再生"/>
+ </layout_panel>
+ <layout_panel name="pause">
+ <button name="pause_btn" tool_tip="メディアを䞀時停止"/>
+ </layout_panel>
<layout_panel name="media_address">
<line_editor name="media_address_url" tool_tip="メディア URL"/>
<layout_stack name="media_address_url_icons">
@@ -21,13 +50,24 @@
<layout_panel name="media_play_position">
<slider_bar initial_value="0.5" name="media_play_slider" tool_tip="ムヌビヌ再生進行"/>
</layout_panel>
+ <layout_panel name="skip_back">
+ <button name="skip_back_btn" tool_tip="Step back"/>
+ </layout_panel>
+ <layout_panel name="skip_forward">
+ <button name="skip_forward_btn" tool_tip="Step forward"/>
+ </layout_panel>
<layout_panel name="media_volume">
- <button name="media_volume_button" tool_tip="ミュヌト"/>
+ <button name="media_mute_button" tool_tip="ミュヌト"/>
+ <slider name="volume_slider" tool_tip="メディアの音量"/>
+ </layout_panel>
+ <layout_panel name="zoom_frame">
+ <button name="zoom_frame_btn" tool_tip="メディアにズヌムむン"/>
+ </layout_panel>
+ <layout_panel name="close">
+ <button name="close_btn" tool_tip="Zoom Back"/>
+ </layout_panel>
+ <layout_panel name="new_window">
+ <button name="new_window_btn" tool_tip="URLをブラりザで開く"/>
</layout_panel>
- </layout_stack>
- <layout_stack>
- <panel name="media_progress_indicator">
- <progress_bar name="media_progress_bar" tool_tip="ロヌディング"/>
- </panel>
</layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_profile.xml b/indra/newview/skins/default/xui/ja/panel_profile.xml
index 767e26af4c..98969f5ab3 100644
--- a/indra/newview/skins/default/xui/ja/panel_profile.xml
+++ b/indra/newview/skins/default/xui/ja/panel_profile.xml
@@ -12,50 +12,41 @@
</string>
<string name="my_account_link_url" value="http://secondlife.com/my/account/index.php?lang=ja-JP"/>
<string name="no_partner_text" value="なし"/>
+ <string name="no_group_text" value="なし"/>
<string name="RegisterDateFormat">
[REG_DATE] ([AGE])
</string>
- <scroll_container name="profile_scroll">
- <panel name="scroll_content_panel">
- <panel name="second_life_image_panel">
- <text name="title_sl_descr_text" value="[SECOND_LIFE]"/>
- <expandable_text name="sl_description_edit">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum.
- </expandable_text>
- </panel>
- <panel name="first_life_image_panel">
- <text name="title_rw_descr_text" value="珟実䞖界"/>
- <expandable_text name="fl_description_edit">
- Lorem ipsum dolor sit amet, consectetur adlkjpiscing elit moose moose. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet. adipiscing elit. Aenean rigviverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet sorbet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum.
- </expandable_text>
- </panel>
- <text name="me_homepage_text">
- Web サむト
- </text>
- <text name="title_member_text" value="メンバヌ登録"/>
- <text name="register_date" value="05/31/1976"/>
- <text name="title_acc_status_text" value="アカりントの状態"/>
- <text name="acc_status_text" value="䜏人。 支払情報未登録"/>
- <text name="title_partner_text" value="パヌトナヌ"/>
- <panel name="partner_data_panel">
- <text name="partner_text" value="[FIRST] [LAST]"/>
- </panel>
- <text name="title_groups_text" value="グルヌプ"/>
- <expandable_text name="sl_groups">
- Lorem ipsum dolor sit amet, consectetur adlkjpiscing elit moose moose. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet. adipiscing elit. Aenean rigviverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet sorbet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum.
- </expandable_text>
- </panel>
- </scroll_container>
- <panel name="profile_buttons_panel">
- <button label="フレンド登録" name="add_friend"/>
- <button label="IM" name="im"/>
- <button label="コヌル" name="call"/>
- <button label="地図" name="show_on_map_btn"/>
- <button label="テレポヌト" name="teleport"/>
- <button label="▌" name="overflow_btn"/>
- </panel>
- <panel name="profile_me_buttons_panel">
- <button label="プロフィヌルの線集" name="edit_profile_btn"/>
- <button label="容姿の線集" name="edit_appearance_btn"/>
- </panel>
+ <layout_stack name="layout">
+ <layout_panel name="profile_stack">
+ <scroll_container name="profile_scroll">
+ <panel name="profile_scroll_panel">
+ <panel name="second_life_image_panel">
+ <text name="title_sl_descr_text" value="[SECOND_LIFE]"/>
+ </panel>
+ <panel name="first_life_image_panel">
+ <text name="title_rw_descr_text" value="珟実䞖界"/>
+ </panel>
+ <text name="title_member_text" value="䜏人ずなった日"/>
+ <text name="title_acc_status_text" value="アカりントの状態"/>
+ <text name="acc_status_text">
+ 䜏人。 支払情報未登録。
+ リンデン。
+ </text>
+ <text name="title_partner_text" value="パヌトナヌ"/>
+ <text name="title_groups_text" value="グルヌプ"/>
+ </panel>
+ </scroll_container>
+ </layout_panel>
+ <layout_panel name="profile_buttons_panel">
+ <button label="フレンド登録" name="add_friend" tool_tip="フレンド登録を申し出たす"/>
+ <button label="IM" name="im" tool_tip="むンスタントメッセヌゞを開きたす"/>
+ <button label="コヌル" name="call" tool_tip="この䜏人にコヌルする"/>
+ <button label="地図" name="show_on_map_btn" tool_tip="䜏人を地図䞊で衚瀺する"/>
+ <button label="テレポヌト" name="teleport" tool_tip="テレポヌトを送る"/>
+ </layout_panel>
+ <layout_panel name="profile_me_buttons_panel">
+ <button label="プロフィヌルの線集" name="edit_profile_btn" tool_tip="個人的な情報を線集したす"/>
+ <button label="容姿の線集" name="edit_appearance_btn" tool_tip="芋た目を䜜成・線集したす 身䜓的デヌタ、衣類など"/>
+ </layout_panel>
+ </layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_region_estate.xml b/indra/newview/skins/default/xui/ja/panel_region_estate.xml
index 348878a35e..976cfacb3f 100644
--- a/indra/newview/skins/default/xui/ja/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/ja/panel_region_estate.xml
@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="䞍動産" name="Estate">
<text name="estate_help_text">
- このタブの蚭定を倉曎するずこの䞍動産内
-の党おの地域に圱響を䞎えたす。
+ このタブの蚭定ぞの倉曎は、゚ステヌト内のすべおのリヌゞョンに圱響されたす。
</text>
<text name="estate_text">
䞍動産
@@ -17,10 +16,10 @@
䞍明
</text>
<text name="Only Allow">
- 次ぞのアクセスを制限
+ 次のアカりントのアクセス犁止
</text>
- <check_box label="支払い情報登録枈みの䜏人" name="limit_payment" tool_tip="未確認の䜏人の立入を犁止したす"/>
- <check_box label="幎霢確認枈みの成人" name="limit_age_verified" tool_tip="幎霢確認を枈たせおいない䜏人を立入犁止にしたす。 詳しい情報は [SUPPORT_SITE] をご芧䞋さい。"/>
+ <check_box label="支払情報登録枈" name="limit_payment" tool_tip="未確認の䜏人の立入を犁止したす"/>
+ <check_box label="幎霢確認" name="limit_age_verified" tool_tip="幎霢確認を枈たせおいない䜏人の立入を犁止したす。 詳しい情報は [SUPPORT_SITE] をご芧䞋さい。"/>
<check_box label="ボむスチャットを蚱可" name="voice_chat_check"/>
<button label="?" name="voice_chat_help"/>
<text name="abuse_email_text">
diff --git a/indra/newview/skins/default/xui/ja/panel_region_general.xml b/indra/newview/skins/default/xui/ja/panel_region_general.xml
index 690cf3f33d..00be5b6b03 100644
--- a/indra/newview/skins/default/xui/ja/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/ja/panel_region_general.xml
@@ -39,10 +39,10 @@
<text label="成人指定" name="access_text">
区分
</text>
- <combo_box label="Mature" name="access_combo">
+ <combo_box label="控えめ" name="access_combo">
<combo_box.item label="Adult" name="Adult"/>
- <combo_box.item label="Mature" name="Mature"/>
- <combo_box.item label="PG" name="PG"/>
+ <combo_box.item label="控えめ" name="Mature"/>
+ <combo_box.item label="䞀般" name="PG"/>
</combo_box>
<button label="?" name="access_help"/>
<button label="適甚" name="apply_btn"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_region_general_layout.xml b/indra/newview/skins/default/xui/ja/panel_region_general_layout.xml
new file mode 100644
index 0000000000..9673953d06
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/panel_region_general_layout.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="リヌゞョン地域" name="General">
+ <text name="region_text_lbl">
+ リヌゞョン:
+ </text>
+ <text name="region_text">
+ 䞍明
+ </text>
+ <text name="version_channel_text_lbl">
+ バヌゞョン
+ </text>
+ <text name="version_channel_text">
+ 䞍明
+ </text>
+ <text name="region_type_lbl">
+ 皮類
+ </text>
+ <text name="region_type">
+ 䞍明
+ </text>
+ <check_box label="地圢線集をブロック" name="block_terraform_check"/>
+ <check_box label="飛行をブロック" name="block_fly_check"/>
+ <check_box label="ダメヌゞを蚱可" name="allow_damage_check"/>
+ <check_box label="プッシュを制限" name="restrict_pushobject"/>
+ <check_box label="土地の再販を蚱可" name="allow_land_resell_check"/>
+ <check_box label="土地の統合・分割を蚱可" name="allow_parcel_changes_check"/>
+ <check_box label="土地の怜玢教瀺をブロック" name="block_parcel_search_check" tool_tip="このリヌゞョンずリヌゞョン内の区画を怜玢結果に衚瀺する"/>
+ <spinner label="アバタヌ数䞊限" name="agent_limit_spin"/>
+ <spinner label="オブゞェクトボヌナス" name="object_bonus_spin"/>
+ <text label="レヌティング区分" name="access_text">
+ レヌティング区分
+ </text>
+ <combo_box label="控えめ" name="access_combo">
+ <combo_box.item label="アダルト" name="Adult"/>
+ <combo_box.item label="控えめ" name="Mature"/>
+ <combo_box.item label="䞀般" name="PG"/>
+ </combo_box>
+ <button label="適甚" name="apply_btn"/>
+ <button label="ナヌザヌ1名をホヌムにテレポヌト..." name="kick_btn"/>
+ <button label="ナヌザヌ党員をホヌムにテレポヌト..." name="kick_all_btn"/>
+ <button label="リヌゞョンにメッセヌゞを送信..." name="im_btn"/>
+ <button label="テレハブの管理..." name="manage_telehub_btn"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_region_texture.xml b/indra/newview/skins/default/xui/ja/panel_region_texture.xml
index d32d8f9e5d..ea784df127 100644
--- a/indra/newview/skins/default/xui/ja/panel_region_texture.xml
+++ b/indra/newview/skins/default/xui/ja/panel_region_texture.xml
@@ -45,11 +45,10 @@
<spinner label="高" name="height_range_spin_2"/>
<spinner label="高" name="height_range_spin_3"/>
<text name="height_text_lbl10">
- 数倀は䞊のテクスチャのブレンド範囲を瀺したす
+ 数倀は䞊のテクスチャのブレンド範囲を瀺したす。
</text>
<text name="height_text_lbl11">
- 蚈枬単䜍はメヌトルで、「䜎」の倀は 1 番のテクスチャの高さの最倧倀です。
-「高」の倀は、4 番のテクスチャの高さの最䜎倀です。
+ 蚈枬単䜍はメヌトルで、「䜎」の倀は、1番のテクスチャの高さの「最倧倀」です。「高」の倀は、4番のテクスチャの高さの「最䜎倀」です。
</text>
<text name="height_text_lbl12">
そしお「高」の倀はテクスチャヌ#4の高さの䞋限ずなりたす。
diff --git a/indra/newview/skins/default/xui/ja/panel_script_limits_my_avatar.xml b/indra/newview/skins/default/xui/ja/panel_script_limits_my_avatar.xml
new file mode 100644
index 0000000000..e8b5be63ae
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/panel_script_limits_my_avatar.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="マむ アバタヌ" name="script_limits_my_avatar_panel">
+ <text name="loading_text">
+ ロヌディング...
+ </text>
+ <scroll_list name="scripts_list">
+ <scroll_list.columns label="サむズ kb" name="size"/>
+ <scroll_list.columns label="URL" name="urls"/>
+ <scroll_list.columns label="オブゞェクト名" name="name"/>
+ <scroll_list.columns label="堎所" name="location"/>
+ </scroll_list>
+ <button label="リスト曎新" name="refresh_list_btn"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_script_limits_region_memory.xml b/indra/newview/skins/default/xui/ja/panel_script_limits_region_memory.xml
new file mode 100644
index 0000000000..fe0b44d8f4
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/panel_script_limits_region_memory.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="リヌゞョンメモリ" name="script_limits_region_memory_panel">
+ <text name="script_memory">
+ 区画スクリプトメモリ
+ </text>
+ <text name="parcels_listed">
+ 区画所有者
+ </text>
+ <text name="memory_used">
+ 䜿甚されたメモリ
+ </text>
+ <text name="loading_text">
+ ロヌディング...
+ </text>
+ <scroll_list name="scripts_list">
+ <scroll_list.columns label="サむズ kb" name="size"/>
+ <scroll_list.columns label="オブゞェクト名" name="name"/>
+ <scroll_list.columns label="オブゞェクトの所有者" name="owner"/>
+ <scroll_list.columns label="区画・䜍眮" name="location"/>
+ </scroll_list>
+ <button label="リスト曎新" name="refresh_list_btn"/>
+ <button label="ハむラむト" name="highlight_btn"/>
+ <button label="返华" name="return_btn"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_side_tray.xml b/indra/newview/skins/default/xui/ja/panel_side_tray.xml
index 6ec6b3422e..ce5f0b940c 100644
--- a/indra/newview/skins/default/xui/ja/panel_side_tray.xml
+++ b/indra/newview/skins/default/xui/ja/panel_side_tray.xml
@@ -2,9 +2,13 @@
<!-- Side tray cannot show background because it is always
partially on screen to hold tab buttons. -->
<side_tray name="sidebar">
+ <sidetray_tab description="サむドバヌを衚瀺・非衚瀺" name="sidebar_openclose"/>
<sidetray_tab description="ホヌム。" name="sidebar_home">
<panel label="ホヌム" name="panel_home"/>
</sidetray_tab>
+ <sidetray_tab description="あなたの公開プロフィヌルずピックを線集しおください。" name="sidebar_me">
+ <panel label="ミヌ" name="panel_me"/>
+ </sidetray_tab>
<sidetray_tab description="フレンド、連絡先、近くの人を探しおください。" name="sidebar_people">
<panel_container name="panel_container">
<panel label="グルヌプ情報" name="panel_group_info_sidetray"/>
@@ -14,13 +18,10 @@
<sidetray_tab description="行きたい堎所、行ったこずのある堎所を探しおください。" label="堎所" name="sidebar_places">
<panel label="堎所" name="panel_places"/>
</sidetray_tab>
- <sidetray_tab description="あなたの公開プロフィヌルずピックを線集しおください。" name="sidebar_me">
- <panel label="ミヌ" name="panel_me"/>
+ <sidetray_tab description="あなたの持ち物を眺めおください。" name="sidebar_inventory">
+ <panel label="持ち物を線集" name="sidepanel_inventory"/>
</sidetray_tab>
<sidetray_tab description="あなたの容姿や珟圚の芋た目を倉曎しおください。" name="sidebar_appearance">
<panel label="容姿の線集" name="sidepanel_appearance"/>
</sidetray_tab>
- <sidetray_tab description="あなたの持ち物を眺めおください。" name="sidebar_inventory">
- <panel label="持ち物を線集" name="sidepanel_inventory"/>
- </sidetray_tab>
</side_tray>
diff --git a/indra/newview/skins/default/xui/ja/panel_status_bar.xml b/indra/newview/skins/default/xui/ja/panel_status_bar.xml
index 5d122cb8cd..063e584762 100644
--- a/indra/newview/skins/default/xui/ja/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/ja/panel_status_bar.xml
@@ -21,7 +21,8 @@
<panel.string name="buycurrencylabel">
L$ [AMT]
</panel.string>
- <button label="" label_selected="" name="buycurrency" tool_tip="私の残高 クリックしお L$ を賌入したす"/>
+ <button label="" label_selected="" name="buycurrency" tool_tip="私の残高"/>
+ <button label="L$ の賌入" name="buyL" tool_tip="クリックしお L$ を賌入したす"/>
<text name="TimeText" tool_tip="珟圚時刻倪平掋">
1200 AM
</text>
diff --git a/indra/newview/skins/default/xui/ja/panel_teleport_history.xml b/indra/newview/skins/default/xui/ja/panel_teleport_history.xml
index 70969f7ac0..2264ae965b 100644
--- a/indra/newview/skins/default/xui/ja/panel_teleport_history.xml
+++ b/indra/newview/skins/default/xui/ja/panel_teleport_history.xml
@@ -11,5 +11,7 @@
<accordion_tab name="1_month_and_older" title="1ヶ月以䞊前"/>
<accordion_tab name="6_months_and_older" title="半幎以䞊前"/>
</accordion>
- <panel label="bottom_panel" name="bottom_panel"/>
+ <panel label="bottom_panel" name="bottom_panel">
+ <button name="gear_btn" tool_tip="その他のオプションを衚瀺"/>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_teleport_history_item.xml b/indra/newview/skins/default/xui/ja/panel_teleport_history_item.xml
index 9d18c52442..c570cd5696 100644
--- a/indra/newview/skins/default/xui/ja/panel_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/ja/panel_teleport_history_item.xml
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="teleport_history_item">
<text name="region" value="..."/>
+ <button name="profile_btn" tool_tip="アむテム情報を衚瀺"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/role_actions.xml b/indra/newview/skins/default/xui/ja/role_actions.xml
index 9a58f753e5..59fceca2db 100644
--- a/indra/newview/skins/default/xui/ja/role_actions.xml
+++ b/indra/newview/skins/default/xui/ja/role_actions.xml
@@ -1,205 +1,76 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<role_actions>
- <action_set
- description="これらの胜力には、グルヌプ・メンバヌを远加、排陀し、招埅状なしに新メンバヌの参加を認める暩限が含たれたす。"
- name="Membership">
- <action description="このグルヌプに人を招埅"
- longdescription="グルヌプに人を招埅するには、「メンバヌず圹割」タブ「メンバヌ」サブタブの「新しい人を招埅...」ボタンを䜿いたす。"
- name="member invite" value="1" />
- <action description="メンバヌをこのグルヌプから远攟"
- longdescription="メンバヌをこのグルヌプから远攟するには、「メンバヌず圹割」タブ  「圹割」サブタブの「グルヌプから远攟」を䜿いたす。 オヌナヌは、他のオヌナヌ以倖の任意のメンバヌを远攟できたす。 オヌナヌでないナヌザヌがグルヌプからメンバヌを远攟できるのは、そのメンバヌが「党員」の圹割にのみ所属しおおり、他の圹割に所属しおいない堎合だけです。 圹割からメンバヌを陀倖するには、「圹割からメンバヌを陀倖」胜力を有しおいる必芁がありたす。"
- name="member eject" value="2" />
- <action description="「䌚員募集」に切り替え、「入䌚費」を倉曎。"
- longdescription="招埅状なしに新メンバヌが加入できるように「䌚員募集」に切り替え、「䞀般」タブの「グルヌプ環境蚭定」セクションから「入䌚費」を倉曎したす。"
- name="member options" value="3" />
+ <action_set description="これらの胜力には、グルヌプ・メンバヌを远加、排陀し、招埅状なしに新メンバヌの参加を認める暩限が含たれたす。" name="Membership">
+ <action description="このグルヌプに人を招埅" longdescription="「圹割」セクションの「メンバヌ」タブ内にある「招埅」ボタンを抌しお、このグルヌプにメンバヌを招埅したす。" name="member invite" value="1"/>
+ <action description="メンバヌをこのグルヌプから远攟" longdescription="「圹割」セクションの「メンバヌ」タブ内にある「远攟」ボタンを抌しお、このグルヌプからメンバヌを远攟したす。 「オヌナヌ」は、他の「オヌナヌ」以倖は誰でも远攟できたす。 「オヌナヌ」ではない人が「党員Everyone」にしか圹割がない堎合、メンバヌはグルヌプから远攟されるこずがありたす。 「圹割」からメンバヌを削陀するには、「圹割からメンバヌを削陀」の胜力が䞎えられおいる必芁がありたす。" name="member eject" value="2"/>
+ <action description="「自由参加」ず「入䌚費」の切り替え" longdescription="「自由参加」に切り替えるず、招埅されなくおも新しいメンバヌが入䌚できたす。「入䌚費」は「䞀般」セクションで倉曎したす。" name="member options" value="3"/>
</action_set>
- <action_set
- description="これらの胜力には、グルヌプ内の圹割を远加、削陀、倉曎し、圹割にメンバヌを远加、削陀し、さらに圹割ぞ胜力を割り圓おる暩限が含たれたす。"
- name="Roles">
- <action description="新しい圹割を䜜成"
- longdescription="「メンバヌず圹割」タブ  「圹割」サブタブで新しい圹割を䜜成"
- name="role create" value="4" />
- <action description="圹割を削陀"
- longdescription="圹割を削陀するには、「メンバヌず圹割」タブ  「圹割」サブタブを䜿いたす。"
- name="role delete" value="5" />
- <action description="圹割名、タむトル、説明を倉曎"
- longdescription="圹割名、タむトル、説明を倉曎するには、圹割を遞択した埌、「メンバヌず圹割」タブ  「圹割」サブタブの䞋郚分を䜿いたす。"
- name="role properties" value="6" />
- <action description="メンバヌを割り圓お人の圹割に割り圓おる"
- longdescription="メンバヌを割り圓お人の圹割に割り圓おるには、「メンバヌず圹割」タブ「圹割」サブタブの割り圓おられた圹割セクションを䜿いたす。 この胜力を持぀メンバヌは、割り圓お人が珟圚所属しおいる圹割に察しおのみメンバヌを远加できたす。"
- name="role assign member limited" value="7" />
- <action description="メンバヌを任意の圹割に割り圓おる"
- longdescription="メンバヌを任意の圹割に割り圓おるには、「メンバヌず圹割」タブ「圹割」サブタブの割り圓おられた圹割セクションを䜿いたす。 *è­Šå‘Š* この胜力を持぀圹割のメンバヌは、自分自身や他のメンバヌを珟圚の圹割よりも匷力な圹割に割り圓おるこずができたす。このため、オヌナヌ以倖のメンバヌに察しお、オヌナヌに近いパワヌを䞎えるこずも可胜です。 この胜力の割り圓おは、そのこずを理解した䞊で行っおください。"
- name="role assign member" value="8" />
- <action description="圹割からメンバヌを解陀"
- longdescription="メンバヌを圹割から解陀するには、「メンバヌず圹割」タブ「メンバヌ」サブタブの「割り圓おられた圹割」セクションを䜿いたす。 オヌナヌは解陀できたせん。"
- name="role remove member" value="9" />
- <action description="圹割の胜力の割り圓おず解陀"
- longdescription="圹割の胜力の割り圓おず解陀は、「メンバヌず圹割」タブ「圹割」サブタブの蚱可された胜力セクションで行いたす。 *è­Šå‘Š* この胜力を持぀圹割のメンバヌは、すべおの胜力を自分自身や他のメンバヌに割り圓おるこずができたす。このため、オヌナヌ以倖のメンバヌに察しお、オヌナヌに近いパワヌを持たせるこずも可胜です。 この胜力の割り圓おは、そのこずを理解した䞊で行っおください。"
- name="role change actions" value="10" />
+ <action_set description="これらの胜力には、グルヌプ内の圹割を远加、削陀、倉曎し、圹割にメンバヌを远加、削陀し、さらに圹割ぞ胜力を割り圓おる暩限が含たれたす。" name="Roles">
+ <action description="新しい圹割を䜜成" longdescription="新しい「圹割」は、「圹割」セクション &gt; 「圹割」タブで䜜成したす。" name="role create" value="4"/>
+ <action description="圹割を削陀" longdescription="「圹割」は、「圹割」セクション &gt; 「圹割」タブで削陀できたす。" name="role delete" value="5"/>
+ <action description="「圹割」の名前、肩曞き、説明、メンバヌ公開の有無を倉曎" longdescription="「圹割」の名前、肩曞き、説明、メンバヌ公開の有無を倉曎したす。 「圹割」を遞択埌に、「圹割」セクション &gt; 「圹割」タブ の䞋で蚭定できたす。" name="role properties" value="6"/>
+ <action description="メンバヌを割り圓お人の圹割に割り圓おる" longdescription="「割り圓おられた圹割」「圹割」セクション &gt; 「メンバヌ」タブのリストで、メンバヌを「圹割」に割り圓おたす。 この胜力があるメンバヌは、割り圓おる人が既に所属する「圹割」にのみメンバヌを远加できたす。" name="role assign member limited" value="7"/>
+ <action description="メンバヌを任意の圹割に割り圓おる" longdescription="「割り圓おられた圹割」「圹割」セクション &gt; 「メンバヌ」タブのリストで、メンバヌをどの「圹割」にも割り圓おるこずができたす。 *è­Šå‘Š* この「胜力」がある「圹割」を持぀メンバヌなら誰でも自分自身ず、他の「オヌナヌ」以倖のメンバヌを珟圚以䞊の暩限のある「圹割」に割り圓おるこずができたす。぀たり、「オヌナヌ」以倖の人が「オヌナヌ」に近い力を持぀よう蚭定できるこずになりたす。 この「胜力」を割り圓おる前に、自分がしようずしおいるこずをよく把握しおください。" name="role assign member" value="8"/>
+ <action description="圹割からメンバヌを解陀" longdescription="「割り圓おられた圹割」「圹割」セクション &gt; 「メンバヌ」タブのリストで、メンバヌを「圹割」から削陀したす。 「オヌナヌ」は削陀できたせん。" name="role remove member" value="9"/>
+ <action description="圹割の胜力の割り圓おず解陀" longdescription="「蚱可された胜力」「圹割」セクション &gt; 「圹割」タブのリストにある、各「圹割」の「胜力」を割り圓おたり、削陀したす。 *è­Šå‘Š* この「胜力」がある「圹割」を持぀メンバヌなら誰でも自分自身ず、他の「オヌナヌ」以倖のメンバヌをすべおの「胜力」」に割り圓おるこずができたす。぀たり、「オヌナヌ」以倖の人が「オヌナヌ」に近い暩限を持぀よう蚭定できるこずになりたす。 この「胜力」を割り圓おる前に、自分がしようずしおいるこずをよく把握しおください。" name="role change actions" value="10"/>
</action_set>
- <action_set
- description="これらの胜力には、グルヌプの公開性や理念、蚘章の倉曎ずいった、グルヌプのアむデンティティを修正する暩限が含たれたす。"
- name="Group Identity">
- <action
- description="理念、蚘章、「Web䞊で公開」、およびグルヌプ情報内で公開のメンバヌを倉曎。"
- longdescription="理念、蚘章、「Web䞊で公開」、およびグルヌプ情報内で公開のメンバヌを倉曎したす。 この操䜜には、䞀般タブを䜿甚したす。"
- name="group change identity" value="11" />
+ <action_set description="これらの胜力には、グルヌプの公開性や理念、蚘章の倉曎ずいった、グルヌプのアむデンティティを修正する暩限が含たれたす。" name="Group Identity">
+ <action description="理念、蚘章、「Web䞊で公開」、およびグルヌプ情報内で公開のメンバヌを倉曎。" longdescription="理念、蚘章、「怜玢に衚瀺」の倉曎をしたす。 「䞀般」セクションで行えたす。" name="group change identity" value="11"/>
</action_set>
- <action_set
- description="これらの胜力には、グルヌプ所有の土地を譲枡、修正、販売する暩限が含たれたす。 「土地情報」のりィンドりを開くには、地面を右クリックしお「土地情報」を遞択するか、メニュヌバヌの「区画情報」をクリックしたす。"
- name="Parcel Management">
- <action description="グルヌプ甚の土地の譲枡ず賌入"
- longdescription="グルヌプ甚の土地の譲枡ず賌入を行いたす。 この操䜜には、土地情報画面  䞀般タブを䜿いたす。"
- name="land deed" value="12" />
- <action description="Linden総督に土地を明け枡す"
- longdescription="Linden総督に土地を明け枡したす。 *è­Šå‘Š* この胜力を持぀圹割のメンバヌは、「土地情報」「䞀般」でグルヌプ所有の土地を攟棄しお、売り䞊げなしでLinden総督に明け枡すこずができたす。 この胜力の割り圓おは、そのこずを理解した䞊で行っおください。"
- name="land release" value="13" />
- <action description="売り地情報の蚭定"
- longdescription="売り地情報を蚭定したす。 *è­Šå‘Š* この胜力を持぀圹割のメンバヌは、「土地情報」「䞀般」タブでグルヌプ所有の土地を自分の思いどおりに販売するこずができたす。 この胜力の割り圓おは、そのこずを理解した䞊で行っおください。"
- name="land set sale info" value="14" />
- <action description="区画の再分割ず統合"
- longdescription="区画を再分割および統合したす。 この操䜜を実行するには、地面を右クリックしお「地圢を線集」を遞択し、土地の䞊でマりスをドラッグしお範囲を遞択したす。 再分割するには、分割察象を遞択した埌、「再分割...」をクリックしたす。 統合するには、耇数の隣接する区画を遞択した埌、「統合...」をクリックしたす。"
- name="land divide join" value="15" />
+ <action_set description="これらの「胜力」には、このグルヌプの所有地の譲枡、修正、販売をする暩限がありたす。 「土地情報」りィンドりを芋るには、地面を右クリックしお「土地情報」を遞ぶか、ナビゲヌションバヌの「i」アむコンをクリックしたす。" name="Parcel Management">
+ <action description="グルヌプ甚の土地の譲枡ず賌入" longdescription="グルヌプ甚の土地の譲枡ず賌入を行いたす。 この操䜜には、土地情報画面  䞀般タブを䜿いたす。" name="land deed" value="12"/>
+ <action description="Linden総督に土地を明け枡す" longdescription="Linden総督に土地を明け枡したす。 *è­Šå‘Š* この胜力を持぀圹割のメンバヌは、「土地情報」「䞀般」でグルヌプ所有の土地を攟棄しお、売り䞊げなしでLinden総督に明け枡すこずができたす。 この胜力の割り圓おは、そのこずを理解した䞊で行っおください。" name="land release" value="13"/>
+ <action description="売り地情報の蚭定" longdescription="売り地情報を蚭定したす。 *è­Šå‘Š* この胜力を持぀圹割のメンバヌは、「土地情報」「䞀般」タブでグルヌプ所有の土地を自分の思いどおりに販売するこずができたす。 この胜力の割り圓おは、そのこずを理解した䞊で行っおください。" name="land set sale info" value="14"/>
+ <action description="区画の再分割ず統合" longdescription="区画を再分割、統合したす。 地面を右クリックしお「地圢を線集」を遞び、マりスを土地の䞊でドラッグしお範囲を遞択したす。 再分割するには、分割察象を遞んで「再分割」をクリックしたす。 統合するには、2぀以䞊の隣接する区画を遞んで「統合」をクリックしたす。" name="land divide join" value="15"/>
</action_set>
- <action_set
- description="これらの胜力には、区画名、公開蚭定、怜玢ディレクトリぞの登録、着地点ならびにTPルヌトのオプションを倉曎する暩限が含たれたす。"
- name="Parcel Identity">
- <action description="「堎所怜玢に衚瀺」に切り替え、カテゎリヌを蚭定"
- longdescription="「堎所怜玢に衚瀺」に切り替え、「土地情報」「オプション」タブでカテゎリヌを蚭定"
- name="land find places" value="17" />
- <action description="区画名、説明、「Web䞊で公開」の蚭定を倉曎"
- longdescription="区画名、説明、「Web䞊で公開」の蚭定を倉曎。 この操䜜には、「土地情報」  「オプション」タブを䜿いたす。"
- name="land change identity" value="18" />
- <action description="着地点およびテレポヌト・ルヌトを蚭定"
- longdescription="この胜力を持぀圹割のメンバヌは、グルヌプ所有の区画䞊で着地点を蚭定するこずにより倖郚からのテレポヌトの到着䜍眮を指定できるず共に、テレポヌト・ルヌトを蚭定しお现かく制埡するこずができたす。 この操䜜は、「土地情報」「オプション」タブで行いたす。"
- name="land set landing point" value="19" />
+ <action_set description="これらの胜力には、区画名、公開蚭定、怜玢ディレクトリぞの登録、着地点ならびにTPルヌトのオプションを倉曎する暩限が含たれたす。" name="Parcel Identity">
+ <action description="「堎所怜玢に衚瀺」を切り替えカテゎリを蚭定" longdescription="「堎所怜玢に衚瀺」に切り替え、「土地情報」 &gt; 「オプション」タブで区画のカテゎリを蚭定したす。" name="land find places" value="17"/>
+ <action description="区画名、説明、「堎所怜玢に衚瀺」の蚭定を倉曎" longdescription="区画名、説明、「堎所怜玢に衚瀺」の蚭定を倉曎したす。 「土地情報」 &gt; 「オプション」タブで行いたす。" name="land change identity" value="18"/>
+ <action description="着地点およびテレポヌト・ルヌトを蚭定" longdescription="この胜力を持぀圹割のメンバヌは、グルヌプ所有の区画䞊で着地点を蚭定するこずにより倖郚からのテレポヌトの到着䜍眮を指定できるず共に、テレポヌト・ルヌトを蚭定しお现かく制埡するこずができたす。 この操䜜は、「土地情報」「オプション」タブで行いたす。" name="land set landing point" value="19"/>
</action_set>
- <action_set
- description="これらの胜力には、「オブゞェクトを䜜成」、「地圢を線集」、音楜ずメディアの蚭定など、区画のオプションに関連する暩限が含たれたす。"
- name="Parcel Settings">
- <action description="音楜ずメディアの蚭定を倉曎"
- longdescription="ストリヌミング・ミュヌゞックず動画の蚭定を倉曎するには、「土地情報」  「メディア」タブを䜿いたす。"
- name="land change media" value="20" />
- <action description="「地圢を線集」に切り替え"
- longdescription="「地圢を線集」に切り替えたす。 *è­Šå‘Š* 「土地情報」「オプション」「地圢を線集」の順で進むず、誰でもあなたの土地の圢の敎備や、リンデンプラントの蚭眮、移動ができたす。 この胜力を割り振る前に、このこずをよく理解しおおいおください。 「土地情報」「オプション」タブから「地圢を線集」に切り替えられたす。"
- name="land edit" value="21" />
- <action
- description="「土地情報」「オプション」タブ内のさたざたな蚭定を切り替え"
- longdescription="「安党ダメヌゞなし」、「飛ぶ」に切り替え、「土地情報」「オプション」タブから、 他の䜏人がグルヌプ所有の土地で「オブゞェクトを䜜成」、「地圢を線集」、「ランドマヌクを䜜成」、「スクリプトを実行」できるようにしたす。"
- name="land options" value="22" />
+ <action_set description="これらの胜力には、「オブゞェクトを䜜成」、「地圢を線集」、音楜ずメディアの蚭定など、区画のオプションに関連する暩限が含たれたす。" name="Parcel Settings">
+ <action description="音楜ずメディアの蚭定を倉曎" longdescription="ストリヌミング・ミュヌゞックず動画の蚭定を倉曎するには、「土地情報」  「メディア」タブを䜿いたす。" name="land change media" value="20"/>
+ <action description="「地圢を線集」に切り替え" longdescription="「地圢を線集」に切り替えたす。 *è­Šå‘Š* 「土地情報」「オプション」「地圢を線集」の順で進むず、誰でもあなたの土地の圢の敎備や、リンデンプラントの蚭眮、移動ができたす。 この胜力を割り振る前に、このこずをよく理解しおおいおください。 「土地情報」「オプション」タブから「地圢を線集」に切り替えられたす。" name="land edit" value="21"/>
+ <action description="「土地情報」「オプション」タブ内のさたざたな蚭定を切り替え" longdescription="「安党ダメヌゞなし」、「飛行」を切り替え、䜏人に以䞋を蚱可したす グルヌプ所有地の「土地情報」 &gt; 「オプション」タブ内の、「地圢を線集」、「制䜜」、「ランドマヌクの䜜成」、「スクリプトの実行」。" name="land options" value="22"/>
</action_set>
- <action_set
- description="これらの胜力には、グルヌプ所有の区画に関する芏制を迂回するこずを、メンバヌに蚱可する暩限が含たれたす。"
- name="Parcel Powers">
- <action description="垞に「地圢を線集」を蚱可"
- longdescription="この胜力を持぀圹割のメンバヌは、グルヌプ所有の区画䞊で地圢を線集するこずができたす。その区画が「土地情報」「オプション」タブでオフになっおいおも、地圢の線集が可胜です。"
- name="land allow edit land" value="23" />
- <action description="垞に「飛行」を蚱可"
- longdescription="この胜力を持぀圹割のメンバヌは、グルヌプ所有の区画䞊を飛行するこずができたす。その区画が「土地情報」「オプション」タブでオフになっおいおも、飛行が可胜です。"
- name="land allow fly" value="24" />
- <action description="垞に「オブゞェクト䜜成」を蚱可"
- longdescription="この胜力を持぀圹割のメンバヌは、グルヌプ所有の区画䞊にオブゞェクトを䜜成するこずができたす。その区画が「土地情報」「オプション」タブでオフになっおいおも、オブゞェクトの䜜成が可胜です。"
- name="land allow create" value="25" />
- <action description="垞に「ランドマヌクを䜜成」を蚱可"
- longdescription="この胜力を持぀圹割のメンバヌは、グルヌプ所有の区画䞊にランドマヌクを䜜成するこずができたす。その区画が「土地情報」「オプション」タブでオフになっおいおも、ランドマヌクの䜜成が可胜です。"
- name="land allow landmark" value="26" />
- <action description="グルヌプの土地ぞの「ホヌム蚭定」を蚱可"
- longdescription="この胜力を持぀圹割のメンバヌは、「䞖界」メニュヌ「ホヌムをここに蚭定」を䜿甚しお、このグルヌプに譲枡された区画をホヌムに蚭定するこずができたす。"
- name="land allow set home" value="28" />
+ <action_set description="これらの胜力には、グルヌプ所有の区画に関する芏制を迂回するこずを、メンバヌに蚱可する暩限が含たれたす。" name="Parcel Powers">
+ <action description="垞に「地圢を線集」を蚱可" longdescription="この胜力を持぀圹割のメンバヌは、グルヌプ所有の区画䞊で地圢を線集するこずができたす。その区画が「土地情報」「オプション」タブでオフになっおいおも、地圢の線集が可胜です。" name="land allow edit land" value="23"/>
+ <action description="垞に「飛行」を蚱可" longdescription="この胜力を持぀圹割のメンバヌは、グルヌプ所有の区画䞊を飛行するこずができたす。その区画が「土地情報」「オプション」タブでオフになっおいおも、飛行が可胜です。" name="land allow fly" value="24"/>
+ <action description="垞に「オブゞェクト䜜成」を蚱可" longdescription="この胜力を持぀圹割のメンバヌは、グルヌプ所有の区画䞊にオブゞェクトを䜜成するこずができたす。その区画が「土地情報」「オプション」タブでオフになっおいおも、オブゞェクトの䜜成が可胜です。" name="land allow create" value="25"/>
+ <action description="垞に「ランドマヌクを䜜成」を蚱可" longdescription="この胜力を持぀圹割のメンバヌは、グルヌプ所有の区画䞊にランドマヌクを䜜成するこずができたす。その区画が「土地情報」「オプション」タブでオフになっおいおも、ランドマヌクの䜜成が可胜です。" name="land allow landmark" value="26"/>
+ <action description="グルヌプの土地ぞの「ホヌム蚭定」を蚱可" longdescription="この「圹割」を持぀メンバヌは、このグルヌプに譲枡された区画䞊で「䞖界」メニュヌ &gt; ランドマヌク &gt; 珟圚地をホヌムに蚭定 を䜿甚しお、ホヌムの蚭定を行うこずができたす。" name="land allow set home" value="28"/>
</action_set>
- <action_set
- description="これらの胜力には、䜏人の凍結や远攟を含む、グルヌプ所有の区画ぞのアクセスを蚱可、制限する暩限が含たれたす。"
- name="Parcel Access">
- <action description="区画アクセス・リストの管理"
- longdescription="区画アクセス・リストの管理は、「土地情報」「アクセス」タブで行いたす。"
- name="land manage allowed" value="29" />
- <action description="区画犁止リストの管理"
- longdescription="区画犁止リストの管理は、「土地情報」「犁止」タブで行いたす。"
- name="land manage banned" value="30" />
- <action description="区画の「入堎蚱可を販売」の蚭定を倉曎"
- longdescription="区画の「入堎蚱可を販売」の蚭定を倉曎するには、「土地情報」  「アクセス」タブを䜿いたす。"
- name="land manage passes" value="31" />
- <action description="区画䞊の䜏人の远攟ず凍結"
- longdescription="この胜力を持぀圹割のメンバヌは、グルヌプ所有の区画に問題のある䜏人がいる堎合に、右クリック・メニュヌから「詳现」を遞択し、「远攟...」たたは「フリヌズ...」を遞択するこずにより、その䜏人を凊理するこずができたす。"
- name="land admin" value="32" />
+ <action_set description="これらの胜力には、䜏人の凍結や远攟を含む、グルヌプ所有の区画ぞのアクセスを蚱可、制限する暩限が含たれたす。" name="Parcel Access">
+ <action description="区画アクセス・リストの管理" longdescription="区画アクセス・リストの管理は、「土地情報」「アクセス」タブで行いたす。" name="land manage allowed" value="29"/>
+ <action description="区画犁止リストの管理" longdescription="「土地情報」 &gt; 「アクセス」タブの、区画の犁止リストの管理ができたす。" name="land manage banned" value="30"/>
+ <action description="「入堎蚱可を販売」の蚭定を倉曎" longdescription="「土地情報」 &gt; 「アクセス」タブで、区画の「入堎蚱可を販売」の蚭定を倉曎したす。" name="land manage passes" value="31"/>
+ <action description="区画䞊の䜏人の远攟ず凍結" longdescription="この「胜力」を持぀「圹割」のメンバヌは、グルヌプ所有地にいお欲しくない䜏人を右クリックし、「远攟」や「フリヌズ」を遞んで察応できたす。" name="land admin" value="32"/>
</action_set>
- <action_set
- description="これらの胜力には、オブゞェクトの返华、リンデンプラントの蚭眮や移動を、メンバヌに蚱可する暩限が含たれたす。 これはメンバヌがゎミ凊理や景芳䜜成をする際に䟿利ですが、返华したオブゞェクトは元に戻せないので、泚意しお行いたしょう。"
- name="Parcel Content">
- <action description="グルヌプ所有オブゞェクトの返华"
- longdescription="グルヌプ所有の区画䞊のオブゞェクトのうち、グルヌプ所有のオブゞェクトを返华するには、「土地情報」「オブゞェクト」タブを䜿いたす。"
- name="land return group owned" value="48" />
- <action description="グルヌプに蚭定されおいるオブゞェクトを返华"
- longdescription="グルヌプ所有の区画䞊のオブゞェクトのうち、グルヌプに蚭定されおいるオブゞェクトを返华するには、「土地情報」「オブゞェクト」タブを䜿いたす。"
- name="land return group set" value="33" />
- <action description="非グルヌプ・オブゞェクトの返华"
- longdescription="グルヌプ所有の区画䞊のオブゞェクトのうち、グルヌプ以倖のオブゞェクトを返华するには、「土地情報」「オブゞェクト」タブを䜿いたす。"
- name="land return non group" value="34" />
- <action description="Linden補の怍物を䜿甚しお景芳䜜成"
- longdescription="景芳䜜成胜力により、リンデン補の暹朚、怍物、草を配眮および移動するこずができたす。 これらのアむテムは、自分の持ち物のラむブラリオブゞェクト・フォルダから怜玢できるほか、「䜜成」ボタンで䜜成するこずもできたす。"
- name="land gardening" value="35" />
+ <action_set description="これらの胜力には、オブゞェクトの返华、リンデンプラントの蚭眮や移動を、メンバヌに蚱可する暩限が含たれたす。 これはメンバヌがゎミ凊理や景芳䜜成をする際に䟿利ですが、返华したオブゞェクトは元に戻せないので、泚意しお行いたしょう。" name="Parcel Content">
+ <action description="グルヌプ所有オブゞェクトの返华" longdescription="グルヌプ所有の区画䞊のオブゞェクトのうち、グルヌプ所有のオブゞェクトを返华するには、「土地情報」「オブゞェクト」タブを䜿いたす。" name="land return group owned" value="48"/>
+ <action description="グルヌプに蚭定されおいるオブゞェクトを返华" longdescription="グルヌプ所有の区画䞊のオブゞェクトのうち、グルヌプに蚭定されおいるオブゞェクトを返华するには、「土地情報」「オブゞェクト」タブを䜿いたす。" name="land return group set" value="33"/>
+ <action description="非グルヌプ・オブゞェクトの返华" longdescription="グルヌプ所有の区画䞊のオブゞェクトのうち、グルヌプ以倖のオブゞェクトを返华するには、「土地情報」「オブゞェクト」タブを䜿いたす。" name="land return non group" value="34"/>
+ <action description="Linden補の怍物を䜿甚しお景芳䜜成" longdescription="リンデン補の暹朚、怍物、草を怍える、景芳づくりの胜力です。 これらの怍物はあなたの持ち物内の「ラむブラリ」 &gt; 「オブゞェクト」フォルダにありたす。「制䜜」メニュヌで䜜成するこずもできたす。" name="land gardening" value="35"/>
</action_set>
- <action_set
- description="これらの胜力には、グルヌプ所有のオブゞェクトを譲枡、修正、販売する暩限が含たれたす。 こうした倉曎は、「線集ツヌル」「䞀般」タブで行われたす。 オブゞェクトを右クリックしお「線集」を開くず、蚭定内容を衚瀺できたす。"
- name="Object Management">
- <action description="グルヌプにオブゞェクトを譲枡"
- longdescription="グルヌプにオブゞェクトを譲枡するには、「線集ツヌル」「䞀般」タブを䜿いたす。"
- name="object deed" value="36" />
- <action
- description="グルヌプ所有オブゞェクトの操䜜移動、コピヌ、修正"
- longdescription="グルヌプ所有オブゞェクトの操䜜移動、コピヌ、修正は、「線集ツヌル」「䞀般」タブで行いたす。"
- name="object manipulate" value="38" />
- <action description="グルヌプ所有オブゞェクトを販売可胜に蚭定"
- longdescription="グルヌプ所有オブゞェクトを販売可胜に蚭定にするには、「線集ツヌル」「䞀般」タブを䜿いたす。"
- name="object set sale" value="39" />
+ <action_set description="これらの「胜力」には、グルヌプ所有のオブゞェクトを譲枡、修正、販売する暩限が含たれたす。 倉曎は「制䜜ツヌル」 &gt; 「䞀般」タブで行いたす。 オブゞェクトを右クリックしお「線集」を開くず蚭定内容を確認できたす。" name="Object Management">
+ <action description="グルヌプにオブゞェクトを譲枡" longdescription="「制䜜ツヌル」 &gt; 「䞀般」タブで、オブゞェクトをグルヌプに譲枡したす。" name="object deed" value="36"/>
+ <action description="グルヌプ所有オブゞェクトの操䜜移動、コピヌ、修正" longdescription="「制䜜ツヌル」 &gt; 「䞀般」タブで、グルヌプ所有のオブゞェクトを操䜜移動、コピヌ、修正したす。" name="object manipulate" value="38"/>
+ <action description="グルヌプ所有オブゞェクトを販売可胜に蚭定" longdescription="「制䜜ツヌル」 &gt; 「䞀般」タブで、グルヌプ所有のオブゞェクトを販売察象に蚭定したす。" name="object set sale" value="39"/>
</action_set>
- <action_set
- description="これらの胜力には、メンバヌに、グルヌプの負債の支払いず利子受け取りを芁求する暩限、グルヌプ口座履歎ぞのアクセスを制限する暩限が含たれたす。"
- name="Accounting">
- <action description="グルヌプ負債の返枈ずグルヌプ配圓の受領"
- longdescription="この胜力を持぀圹割のメンバヌに぀いおは、グルヌプ負債の支払いずグルヌプ配圓の受け取りが自動的に行われたす。 ぀たり、これらのメンバヌは、毎日配圓されるグルヌプ所有の土地の売り䞊げ金の䞀郚を受け取るず共に、区画の広告費などを負担するこずになりたす。"
- name="accounting accountable" value="40" />
+ <action_set description="これらの胜力には、メンバヌに、グルヌプの負債の支払いず利子受け取りを芁求する暩限、グルヌプ口座履歎ぞのアクセスを制限する暩限が含たれたす。" name="Accounting">
+ <action description="グルヌプ負債の返枈ずグルヌプ配圓の受領" longdescription="この胜力を持぀圹割のメンバヌに぀いおは、グルヌプ負債の支払いずグルヌプ配圓の受け取りが自動的に行われたす。 ぀たり、これらのメンバヌは、毎日配圓されるグルヌプ所有の土地の売り䞊げ金の䞀郚を受け取るず共に、区画の広告費などを負担するこずになりたす。" name="accounting accountable" value="40"/>
</action_set>
- <action_set
- description="これらの胜力には、グルヌプ通知の送信、受信、衚瀺をメンバヌに蚱可する暩限が含たれたす。"
- name="Notices">
- <action description="通知を送信"
- longdescription="この胜力を持぀圹割のメンバヌは、「グルヌプ情報」「通知」タブで通知を送信するこずができたす。"
- name="notices send" value="42" />
- <action description="通知の受信ず過去の通知の閲芧"
- longdescription="この胜力を持぀圹割のメンバヌは、通知を受け取るこずができ、「グルヌプ情報」「通知」タブで過去の通知を閲芧するこずができたす。"
- name="notices receive" value="43" />
+ <action_set description="これらの胜力には、グルヌプ通知の送信、受信、衚瀺をメンバヌに蚱可する暩限が含たれたす。" name="Notices">
+ <action description="通知を送信" longdescription="この「胜力」を持぀「圹割」のメンバヌは、「グルヌプ」 &gt; 「通知」セクションから通知を送信できたす。" name="notices send" value="42"/>
+ <action description="通知の受信ず過去の通知の閲芧" longdescription="この「胜力」を持぀「圹割」のメンバヌは、「グルヌプ」 &gt; 「通知」セクションで通知を受信したり過去の通知を芋るこずができたす。" name="notices receive" value="43"/>
</action_set>
- <action_set
- description="これらの胜力には、提案の䜜成ず投祚、投祚履歎の衚瀺をメンバヌに蚱可する暩限が含たれたす。"
- name="Proposals">
- <action description="提案を䜜成"
- longdescription="この胜力を持぀圹割のメンバヌは、投祚の察象ずなる問題提起を「グルヌプ情報」「問題提起」タブ䞊で䜜成するこずができたす。"
- name="proposal start" value="44" />
- <action description="問題提起に投祚する"
- longdescription="この胜力を持぀圹割のメンバヌは、グルヌプ情報提案タブで提案に投祚するこずができたす。"
- name="proposal vote" value="45" />
+ <action_set description="これらの胜力には、提案の䜜成ず投祚、投祚履歎の衚瀺をメンバヌに蚱可する暩限が含たれたす。" name="Proposals">
+ <action description="提案を䜜成" longdescription="この胜力を持぀圹割のメンバヌは、投祚の察象ずなる問題提起を「グルヌプ情報」「問題提起」タブ䞊で䜜成するこずができたす。" name="proposal start" value="44"/>
+ <action description="問題提起に投祚する" longdescription="この胜力を持぀圹割のメンバヌは、グルヌプ情報提案タブで提案に投祚するこずができたす。" name="proposal vote" value="45"/>
</action_set>
- <action_set
- description="
-これらのアビリティには、グルヌプ・チャット・セッションやグルヌプ・ボむス・チャットぞのアクセスの蚱可や制限の暩限が含たれたす。
-"
- name="Chat">
- <action description="グルヌプ・チャットに参加する"
- longdescription="
-このアビリティを持぀圹割のメンバヌは、グルヌプ・チャット・セッションにテキストおよびボむスで参加できたす。
-"
- name="join group chat" />
- <action description="グルヌプ・ボむス・チャットに参加する"
- longdescription="
-このアビリティを持぀圹割のメンバヌは、グルヌプ・ボむス・チャット・セッションに参加できたす。 泚 ボむス・チャット・セッションにアクセスするには、グルヌプ・チャットに参加するアビリティが必芁です。
-"
- name="join voice chat" />
- <action description="グルヌプ・チャットを管理する"
- longdescription="
-このアビリティを持぀圹割のメンバヌは、グルヌプ・ボむス・チャット・セッションおよびグルヌプ・テキスト・チャット・セッションぞのアクセスや参加をコントロヌルするこずができたす。
-"
- name="moderate group chat" />
+ <action_set description=" これらのアビリティには、グルヌプ・チャット・セッションやグルヌプ・ボむス・チャットぞのアクセスの蚱可や制限の暩限が含たれたす。 " name="Chat">
+ <action description="グルヌプ・チャットに参加する" longdescription=" このアビリティを持぀圹割のメンバヌは、グルヌプ・チャット・セッションにテキストおよびボむスで参加できたす。 " name="join group chat"/>
+ <action description="グルヌプ・ボむス・チャットに参加する" longdescription=" このアビリティを持぀圹割のメンバヌは、グルヌプ・ボむス・チャット・セッションに参加できたす。 泚 ボむス・チャット・セッションにアクセスするには、グルヌプ・チャットに参加するアビリティが必芁です。 " name="join voice chat"/>
+ <action description="グルヌプ・チャットを管理する" longdescription=" このアビリティを持぀圹割のメンバヌは、グルヌプ・ボむス・チャット・セッションおよびグルヌプ・テキスト・チャット・セッションぞのアクセスや参加をコントロヌルするこずができたす。 " name="moderate group chat"/>
</action_set>
</role_actions>
diff --git a/indra/newview/skins/default/xui/ja/sidepanel_appearance.xml b/indra/newview/skins/default/xui/ja/sidepanel_appearance.xml
index ac41d7ce2b..4fba4b1567 100644
--- a/indra/newview/skins/default/xui/ja/sidepanel_appearance.xml
+++ b/indra/newview/skins/default/xui/ja/sidepanel_appearance.xml
@@ -1,16 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="容姿" name="appearance panel">
+<panel label="アりトフィット" name="appearance panel">
<string name="No Outfit" value="アりトフィットなし"/>
<panel name="panel_currentlook">
<button label="線集" name="editappearance_btn"/>
<text name="currentlook_title">
- 着甚䞭のアりトフィット
+ 保存されおいたせん
</text>
<text name="currentlook_name">
- マむ アりトフィット
+ MyOutfit With a really Long Name like MOOSE
</text>
</panel>
- <filter_editor label="フィルタヌ" name="Filter"/>
+ <filter_editor label="アりトフィットのフィルタヌ" name="Filter"/>
<button label="装着" name="wear_btn"/>
<button label="新しいアりトフィット" name="newlook_btn"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/sidepanel_inventory.xml b/indra/newview/skins/default/xui/ja/sidepanel_inventory.xml
index c2a61f738f..0c97fed901 100644
--- a/indra/newview/skins/default/xui/ja/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/ja/sidepanel_inventory.xml
@@ -2,7 +2,7 @@
<panel label="もの" name="objects panel">
<panel label="" name="sidepanel__inventory_panel">
<panel name="button_panel">
- <button label="情報" name="info_btn"/>
+ <button label="プロフィヌル" name="info_btn"/>
<button label="装着" name="wear_btn"/>
<button label="プレむ" name="play_btn"/>
<button label="テレポヌト" name="teleport_btn"/>
diff --git a/indra/newview/skins/default/xui/ja/sidepanel_item_info.xml b/indra/newview/skins/default/xui/ja/sidepanel_item_info.xml
index 9544e7756c..c6a13fa212 100644
--- a/indra/newview/skins/default/xui/ja/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/ja/sidepanel_item_info.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="item properties" title="持ち物アむテムのプロパティ">
+<panel name="item properties" title="オブゞェクトのプロフィヌル">
<panel.string name="unknown">
䞍明
</panel.string>
@@ -15,6 +15,8 @@
<panel.string name="acquiredDate">
[year,datetime,local] [mth,datetime,local] [day,datetime,local] [wkday,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local]
</panel.string>
+ <text name="title" value="オブゞェクトのプロフィヌル"/>
+ <text name="where" value="持ち物"/>
<panel label="">
<text name="LabelItemNameTitle">
名前
@@ -28,53 +30,50 @@
<text name="LabelCreatorName">
Nicole Linden
</text>
- <button label="プロフィヌル..." name="BtnCreator"/>
+ <button label="プロフィヌル" name="BtnCreator"/>
<text name="LabelOwnerTitle">
所有者
</text>
<text name="LabelOwnerName">
Thrax Linden
</text>
- <button label="プロフィヌル..." name="BtnOwner"/>
+ <button label="プロフィヌル" name="BtnOwner"/>
<text name="LabelAcquiredTitle">
取埗
</text>
<text name="LabelAcquiredDate">
Wed May 24 12:50:46 2006
</text>
- <text name="OwnerLabel">
- あなた
- </text>
- <check_box label="線集" name="CheckOwnerModify"/>
- <check_box label="コピヌ" name="CheckOwnerCopy"/>
- <check_box label="再販・プレれント" name="CheckOwnerTransfer"/>
- <text name="AnyoneLabel">
- 党員
- </text>
- <check_box label="コピヌ" name="CheckEveryoneCopy"/>
- <text name="GroupLabel">
- グルヌプ
- </text>
- <check_box label="共有" name="CheckShareWithGroup"/>
- <text name="NextOwnerLabel">
- 次の所有者
- </text>
- <check_box label="線集" name="CheckNextOwnerModify"/>
- <check_box label="コピヌ" name="CheckNextOwnerCopy"/>
- <check_box label="再販・プレれント" name="CheckNextOwnerTransfer"/>
+ <panel name="perms_inv">
+ <text name="perm_modify">
+ あなたができるこず
+ </text>
+ <check_box label="修正" name="CheckOwnerModify"/>
+ <check_box label="コピヌ" name="CheckOwnerCopy"/>
+ <check_box label="再販・プレれント" name="CheckOwnerTransfer"/>
+ <text name="AnyoneLabel">
+ 党員
+ </text>
+ <check_box label="コピヌ" name="CheckEveryoneCopy"/>
+ <text name="GroupLabel">
+ グルヌプ
+ </text>
+ <check_box label="共有" name="CheckShareWithGroup" tool_tip="蚭定したグルヌプのメンバヌ党員にこのオブゞェクトの修正暩限を䞎えたす。 譲枡しない限り、圹割制限を有効にはできたせん。"/>
+ <text name="NextOwnerLabel">
+ 次の所有者
+ </text>
+ <check_box label="修正" name="CheckNextOwnerModify"/>
+ <check_box label="コピヌ" name="CheckNextOwnerCopy"/>
+ <check_box label="再販・プレれント" name="CheckNextOwnerTransfer" tool_tip="次の所有者はこのオブゞェクトを他人にあげたり再販するこずができたす"/>
+ </panel>
<check_box label="販売する" name="CheckPurchase"/>
<combo_box name="combobox sale copy">
<combo_box.item label="コピヌ" name="Copy"/>
<combo_box.item label="オリゞナル" name="Original"/>
</combo_box>
- <spinner label="䟡栌" name="Edit Cost"/>
- <text name="CurrencySymbol">
- L$
- </text>
+ <spinner label="䟡栌 L$" name="Edit Cost"/>
</panel>
<panel name="button_panel">
- <button label="線集" name="edit_btn"/>
<button label="キャンセル" name="cancel_btn"/>
- <button label="保存" name="save_btn"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/sidepanel_task_info.xml b/indra/newview/skins/default/xui/ja/sidepanel_task_info.xml
index 5bf37954c5..c2d2af5346 100644
--- a/indra/newview/skins/default/xui/ja/sidepanel_task_info.xml
+++ b/indra/newview/skins/default/xui/ja/sidepanel_task_info.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="object properties" title="オブゞェクトのプロパティ">
+<panel name="object properties" title="オブゞェクトのプロフィヌル">
<panel.string name="text deed continued">
譲枡
</panel.string>
@@ -36,6 +36,8 @@
<panel.string name="Sale Mixed">
Mixed Sale
</panel.string>
+ <text name="title" value="オブゞェクトのプロフィヌル"/>
+ <text name="where" value="ワヌルド内"/>
<panel label="">
<text name="Name:">
名前
@@ -43,11 +45,11 @@
<text name="Description:">
説明
</text>
- <text name="Creator:">
+ <text name="CreatorNameLabel">
制䜜者
</text>
<text name="Creator Name">
- Esbee Linden
+ Erica Linden
</text>
<text name="Owner:">
所有者
@@ -55,13 +57,12 @@
<text name="Owner Name">
Erica Linden
</text>
- <text name="Group:">
+ <text name="Group_label">
グルヌプ
</text>
<button name="button set group" tool_tip="このオブゞェクト暩限を共有するグルヌプを遞択"/>
<name_box initial_value="ロヌディング..." name="Group Name Proxy"/>
<button label="譲枡" label_selected="譲枡" name="button deed" tool_tip="このアむテムを譲枡するず「次の所有者」の暩限が適甚されたす。 グルヌプ共有オブゞェクトは、グルヌプのオフィサヌが譲枡できたす。"/>
- <check_box label="共有" name="checkbox share with group" tool_tip="蚭定したグルヌプのメンバヌ党員にこのオブゞェクトの修正暩限を䞎えたす。 譲枡しない限り、圹割制限を有効にはできたせん。"/>
<text name="label click action">
クリックで
</text>
@@ -72,55 +73,56 @@
<combo_box.item label="オブゞェクトに支払う" name="Payobject"/>
<combo_box.item label="開く" name="Open"/>
</combo_box>
- <check_box label="販売察象" name="checkbox for sale"/>
- <combo_box name="sale type">
- <combo_box.item label="コピヌ" name="Copy"/>
- <combo_box.item label="䞭身" name="Contents"/>
- <combo_box.item label="オリゞナル" name="Original"/>
- </combo_box>
- <spinner label="䟡栌 L$" name="Edit Cost"/>
- <check_box label="怜玢に衚瀺" name="search_check" tool_tip="このオブゞェクトを怜玢結果に衚瀺したす"/>
- <panel name="perms_build">
+ <panel name="perms_inv">
<text name="perm_modify">
- あなたはこのオブゞェクトを修正できたす
+ このオブゞェクトを修正できたす
</text>
<text name="Anyone can:">
党員
</text>
- <check_box label="移動" name="checkbox allow everyone move"/>
<check_box label="コピヌ" name="checkbox allow everyone copy"/>
- <text name="Next owner can:">
+ <check_box label="移動" name="checkbox allow everyone move"/>
+ <text name="GroupLabel">
+ グルヌプ
+ </text>
+ <check_box label="共有" name="checkbox share with group" tool_tip="蚭定したグルヌプのメンバヌ党員にこのオブゞェクトの修正暩限を䞎えたす。 譲枡しない限り、圹割制限を有効にはできたせん。"/>
+ <text name="NextOwnerLabel">
次の所有者
</text>
<check_box label="修正" name="checkbox next owner can modify"/>
<check_box label="コピヌ" name="checkbox next owner can copy"/>
<check_box label="再販・プレれント" name="checkbox next owner can transfer" tool_tip="次の所有者はこのオブゞェクトを他人にあげたり再販するこずができたす"/>
- <text name="B:">
- B.
- </text>
- <text name="O:">
- O:
- </text>
- <text name="G:">
- G:
- </text>
- <text name="E:">
- E:
- </text>
- <text name="N:">
- N:
- </text>
- <text name="F:">
- F:
- </text>
</panel>
+ <check_box label="販売䞭" name="checkbox for sale"/>
+ <combo_box name="sale type">
+ <combo_box.item label="コピヌ" name="Copy"/>
+ <combo_box.item label="䞭身" name="Contents"/>
+ <combo_box.item label="オリゞナル" name="Original"/>
+ </combo_box>
+ <spinner label="䟡栌 L$" name="Edit Cost"/>
+ <check_box label="怜玢に衚瀺" name="search_check" tool_tip="このオブゞェクトを怜玢結果に衚瀺したす"/>
+ <text name="B:">
+ B.
+ </text>
+ <text name="O:">
+ O:
+ </text>
+ <text name="G:">
+ G:
+ </text>
+ <text name="E:">
+ E:
+ </text>
+ <text name="N:">
+ N:
+ </text>
+ <text name="F:">
+ F:
+ </text>
</panel>
<panel name="button_panel">
- <button label="線集" name="edit_btn"/>
<button label="開く" name="open_btn"/>
<button label="支払う" name="pay_btn"/>
<button label="買う" name="buy_btn"/>
- <button label="キャンセル" name="cancel_btn"/>
- <button label="保存" name="save_btn"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/strings.xml b/indra/newview/skins/default/xui/ja/strings.xml
index 2006d1cbdc..d2a1977fc9 100644
--- a/indra/newview/skins/default/xui/ja/strings.xml
+++ b/indra/newview/skins/default/xui/ja/strings.xml
@@ -10,6 +10,9 @@
<string name="APP_NAME">
Second Life
</string>
+ <string name="CAPITALIZED_APP_NAME">
+ SECOND LIFE
+ </string>
<string name="SECOND_LIFE_GRID">
Second Life Grid
</string>
@@ -49,6 +52,9 @@
<string name="LoginInitializingMultimedia">
マルチメディアを初期化しおいたす...
</string>
+ <string name="LoginInitializingFonts">
+ フォントをロヌディング䞭...
+ </string>
<string name="LoginVerifyingCache">
キャッシュ・ファむルを怜蚌しおいたす(所芁時間は6090秒)...
</string>
@@ -79,6 +85,9 @@
<string name="LoginDownloadingClothing">
服をダりンロヌドしおいたす...
</string>
+ <string name="LoginFailedNoNetwork">
+ ネットワヌク゚ラヌ 接続を確立できたせんでした。お䜿いのネットワヌク接続をご確認ください。
+ </string>
<string name="Quit">
終了
</string>
@@ -174,7 +183,7 @@
地図に衚瀺
</string>
<string name="BUTTON_CLOSE_DARWIN">
- 閉じる &#8984;W
+ 閉じる ⌘W
</string>
<string name="BUTTON_CLOSE_WIN">
閉じる Ctrl+W
@@ -191,9 +200,6 @@
<string name="BUTTON_DOCK">
ドッキング
</string>
- <string name="BUTTON_UNDOCK">
- 切り離す
- </string>
<string name="BUTTON_HELP">
ヘルプを衚瀺
</string>
@@ -626,11 +632,14 @@
<string name="ControlYourCamera">
カメラのコントロヌル
</string>
+ <string name="NotConnected">
+ 接続されおいたせん
+ </string>
<string name="SIM_ACCESS_PG">
- PG
+ 䞀般
</string>
<string name="SIM_ACCESS_MATURE">
- Mature
+ 控えめ
</string>
<string name="SIM_ACCESS_ADULT">
Adult
@@ -818,6 +827,9 @@
<string name="InventoryNoMatchingItems">
䞀臎するアむテムが持ち物にありたせんでした
</string>
+ <string name="FavoritesNoMatchingItems">
+ ここにランドマヌクをドラッグしお、お気に入りに远加したす。
+ </string>
<string name="InventoryNoTexture">
持ち物内にこのテクスチャのコピヌがありたせん
</string>
@@ -1288,6 +1300,156 @@
<string name="RegionInfoAllowedGroups">
蚱可されたグルヌプ [ALLOWEDGROUPS]、最倧 [MAXACCESS] グルヌプ
</string>
+ <string name="ScriptLimitsParcelScriptMemory">
+ 区画スクリプトメモリ
+ </string>
+ <string name="ScriptLimitsParcelsOwned">
+ 区画䞀芧 [PARCELS]
+ </string>
+ <string name="ScriptLimitsMemoryUsed">
+ 䜿甚されたメモリ [MAX] kb äž­ [COUNT] kb[AVAILABLE] kb 利甚可
+ </string>
+ <string name="ScriptLimitsMemoryUsedSimple">
+ 䜿甚されたメモリ [COUNT] kb
+ </string>
+ <string name="ScriptLimitsParcelScriptURLs">
+ 区画のスクリプトURL
+ </string>
+ <string name="ScriptLimitsURLsUsed">
+ 䜿甚されたURL [MAX] äž­ [COUNT] [AVAILABLE] 利甚可
+ </string>
+ <string name="ScriptLimitsURLsUsedSimple">
+ 䜿甚されたURL [COUNT]
+ </string>
+ <string name="ScriptLimitsRequestError">
+ 情報のリク゚スト䞭に゚ラヌが発生したした
+ </string>
+ <string name="ScriptLimitsRequestWrongRegion">
+ ゚ラヌ スクリプト情報は珟圚地のみ取埗できたす
+ </string>
+ <string name="ScriptLimitsRequestWaiting">
+ 情報を取埗䞭...
+ </string>
+ <string name="ScriptLimitsRequestDontOwnParcel">
+ この区画を調査する暩限がありたせん。
+ </string>
+ <string name="SITTING_ON">
+ 着垭䞭
+ </string>
+ <string name="ATTACH_CHEST">
+ 胞郚
+ </string>
+ <string name="ATTACH_HEAD">
+ é ­
+ </string>
+ <string name="ATTACH_LSHOULDER">
+ å·Šè‚©
+ </string>
+ <string name="ATTACH_RSHOULDER">
+ 右肩
+ </string>
+ <string name="ATTACH_LHAND">
+ 巊手
+ </string>
+ <string name="ATTACH_RHAND">
+ 右手
+ </string>
+ <string name="ATTACH_LFOOT">
+ 巊足
+ </string>
+ <string name="ATTACH_RFOOT">
+ 右足
+ </string>
+ <string name="ATTACH_BACK">
+ 背䞭
+ </string>
+ <string name="ATTACH_PELVIS">
+ 骚盀
+ </string>
+ <string name="ATTACH_MOUTH">
+ 口
+ </string>
+ <string name="ATTACH_CHIN">
+ あご
+ </string>
+ <string name="ATTACH_LEAR">
+ 巊耳
+ </string>
+ <string name="ATTACH_REAR">
+ 右耳
+ </string>
+ <string name="ATTACH_LEYE">
+ å·Šç›®
+ </string>
+ <string name="ATTACH_REYE">
+ 右目
+ </string>
+ <string name="ATTACH_NOSE">
+ 錻
+ </string>
+ <string name="ATTACH_RUARM">
+ 右腕䞊
+ </string>
+ <string name="ATTACH_RLARM">
+ 右腕䞋
+ </string>
+ <string name="ATTACH_LUARM">
+ 巊腕䞊
+ </string>
+ <string name="ATTACH_LLARM">
+ 巊腕䞋
+ </string>
+ <string name="ATTACH_RHIP">
+ 右腰
+ </string>
+ <string name="ATTACH_RULEG">
+ 右脚䞊
+ </string>
+ <string name="ATTACH_RLLEG">
+ 右脚䞋
+ </string>
+ <string name="ATTACH_LHIP">
+ å·Šè…°
+ </string>
+ <string name="ATTACH_LULEG">
+ 巊脚䞊
+ </string>
+ <string name="ATTACH_LLLEG">
+ 巊脚䞋
+ </string>
+ <string name="ATTACH_BELLY">
+ お腹
+ </string>
+ <string name="ATTACH_RPEC">
+ 右胞筋
+ </string>
+ <string name="ATTACH_LPEC">
+ 巊胞筋
+ </string>
+ <string name="ATTACH_HUD_CENTER_2">
+ HUD䞭倮 2
+ </string>
+ <string name="ATTACH_HUD_TOP_RIGHT">
+ HUD右䞊
+ </string>
+ <string name="ATTACH_HUD_TOP_CENTER">
+ HUD䞊・䞭倮
+ </string>
+ <string name="ATTACH_HUD_TOP_LEFT">
+ HUD 巊䞊
+ </string>
+ <string name="ATTACH_HUD_CENTER_1">
+ HUD䞭倮 1
+ </string>
+ <string name="ATTACH_HUD_BOTTOM_LEFT">
+ HUD巊䞋
+ </string>
+ <string name="ATTACH_HUD_BOTTOM">
+ HUD䞋
+ </string>
+ <string name="ATTACH_HUD_BOTTOM_RIGHT">
+ HUD右䞋
+ </string>
<string name="CursorPos">
[LINE] 行目、[COLUMN] 列目
</string>
@@ -1338,6 +1500,12 @@
<string name="ClassifiedUpdateAfterPublish">
掲茉埌曎新
</string>
+ <string name="NoPicksClassifiedsText">
+ ここにはピック・クラシファむド広告はありたせん。
+ </string>
+ <string name="PicksClassifiedsLoadingText">
+ ロヌディング...
+ </string>
<string name="MultiPreviewTitle">
プレビュヌ
</string>
@@ -1414,23 +1582,35 @@
䞍明の拡匵子 %s
䜿甚可胜な拡匵子 .wav, .tga, .bmp, .jpg, .jpeg, or .bvh
</string>
+ <string name="MuteObject2">
+ ブロック
+ </string>
+ <string name="MuteAvatar">
+ ブロック
+ </string>
+ <string name="UnmuteObject">
+ ブロック解陀
+ </string>
+ <string name="UnmuteAvatar">
+ ブロック解陀
+ </string>
<string name="AddLandmarkNavBarMenu">
- ランドマヌクを远加...
+ マむ ランドマヌクに远加...
</string>
<string name="EditLandmarkNavBarMenu">
- ランドマヌクを線集...
+ マむ ランドマヌクを線集...
</string>
<string name="accel-mac-control">
- &#8963;
+ ⌃
</string>
<string name="accel-mac-command">
- &#8984;
+ ⌘
</string>
<string name="accel-mac-option">
- &#8997;
+ ⌥
</string>
<string name="accel-mac-shift">
- &#8679;
+ ⇧
</string>
<string name="accel-win-control">
Ctrl+
@@ -1616,7 +1796,7 @@
臎呜的な゚ラヌ
</string>
<string name="MBRequiresAltiVec">
- [APP_NAME] は、AltiVec搭茉のプロセッサが必芁です。G4 以降
+ [APP_NAME] は、AltiVec搭茉のプロセッサが必芁です。G4 以降
</string>
<string name="MBAlreadyRunning">
[APP_NAME] はすでに実行䞭です。
@@ -1628,7 +1808,7 @@
クラッシュ報告を送信したすか
</string>
<string name="MBAlert">
- è­Šå‘Š
+ 通知
</string>
<string name="MBNoDirectX">
[APP_NAME] は DirectX 9.0b 及びそれ以降のバヌゞョンを怜出するこずができたせんでした。
@@ -2010,12 +2190,6 @@ www.secondlife.com から最新バヌゞョンをダりンロヌドしおくだã
<string name="Eyes Bugged">
䞋たぶたがたるんだ目
</string>
- <string name="Eyes Shear Left Up">
- 巊偎を䞊に
- </string>
- <string name="Eyes Shear Right Up">
- 右偎を䞊に
- </string>
<string name="Face Shear">
顔のゆがみ
</string>
@@ -3018,6 +3192,27 @@ www.secondlife.com から最新バヌゞョンをダりンロヌドしおくだã
<string name="LocationCtrlComboBtnTooltip">
マむロケヌション履歎
</string>
+ <string name="LocationCtrlForSaleTooltip">
+ この土地を賌入
+ </string>
+ <string name="LocationCtrlVoiceTooltip">
+ ここではボむスの利甚ができたせん
+ </string>
+ <string name="LocationCtrlFlyTooltip">
+ 飛行は犁止されおいたす
+ </string>
+ <string name="LocationCtrlPushTooltip">
+ プッシュ犁止
+ </string>
+ <string name="LocationCtrlBuildTooltip">
+ オブゞェクトの制䜜・ドロップは犁止されおいたす
+ </string>
+ <string name="LocationCtrlScriptsTooltip">
+ スクリプト䞍可
+ </string>
+ <string name="LocationCtrlDamageTooltip">
+ 䜓力
+ </string>
<string name="UpdaterWindowTitle">
[APP_NAME] アップデヌト
</string>
@@ -3075,6 +3270,33 @@ www.secondlife.com から最新バヌゞョンをダりンロヌドしおくだã
<string name="IM_moderator_label">
モデレヌタ
</string>
+ <string name="started_call">
+ ボむスコヌルを開始したす
+ </string>
+ <string name="joined_call">
+ ボむスコヌルに参加したした
+ </string>
+ <string name="ringing-im">
+ ボむスコヌルに参加...
+ </string>
+ <string name="connected-im">
+ 接続したした。コヌル終了をクリックしお切りたす
+ </string>
+ <string name="hang_up-im">
+ ボむスコヌルから退垭したした
+ </string>
+ <string name="answering-im">
+ 接続䞭...
+ </string>
+ <string name="conference-title">
+ アドホックコンファレンス
+ </string>
+ <string name="inventory_item_offered-im">
+ 持ち物アむテムが送られおきたした
+ </string>
+ <string name="share_alert">
+ 持ち物からここにアむテムをドラッグしたす
+ </string>
<string name="only_user_message">
このセッションにいるナヌザヌはあなただけです。
</string>
@@ -3084,6 +3306,12 @@ www.secondlife.com から最新バヌゞョンをダりンロヌドしおくだã
<string name="invite_message">
このボむスチャットに応答/接続する堎合は、[BUTTON NAME]をクリックしおください。
</string>
+ <string name="muted_message">
+ この䜏人をブロックしおいたす。 メッセヌゞを送るず、ブロックが自動的に解陀されたす。
+ </string>
+ <string name="generic">
+ リク゚スト䞭に゚ラヌが発生したした。あずでもう䞀床お詊しください。
+ </string>
<string name="generic_request_error">
芁求䞭に゚ラヌが発生したした。埌でもう䞀床詊しおください。
</string>
@@ -3102,19 +3330,37 @@ www.secondlife.com から最新バヌゞョンをダりンロヌドしおくだã
<string name="not_a_mod_error">
あなたはセッション・モデレヌタではありたせん。
</string>
+ <string name="muted">
+ グルヌプのモデレヌタヌが、あなたのテキストチャットを犁止したした。
+ </string>
<string name="muted_error">
グルヌプモデレヌタがあなたのテキストチャットを無効化したした
</string>
<string name="add_session_event">
[RECIPIENT] ずのチャット・セッションにナヌザヌを远加するこずができたせん
</string>
+ <string name="message">
+ [RECIPIENT] ずのチャットセッションに、メッセヌゞを送信するこずができたせん。
+ </string>
<string name="message_session_event">
[RECIPIENT] ずのチャット・セッションにメッセヌゞを送るこずができたせん
</string>
+ <string name="mute">
+ モデレヌト䞭に゚ラヌが発生したした。
+ </string>
+ <string name="removed">
+ グルヌプから脱退したした。
+ </string>
<string name="removed_from_group">
あなたはグルヌプから削陀されたした。
</string>
<string name="close_on_no_ability">
このチャット・セッションを継続するこずはできたせん
</string>
+ <string name="unread_chat_single">
+ [SOURCES] は䜕か新しいこずを蚀いたした。
+ </string>
+ <string name="unread_chat_multiple">
+ [SOURCES] は䜕か新しいこずを蚀いたした。
+ </string>
</strings>