summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTofu Linden <tofu.linden@lindenlab.com>2010-05-01 15:52:13 +0100
committerTofu Linden <tofu.linden@lindenlab.com>2010-05-01 15:52:13 +0100
commitb7a3582374c8281919d6b4f52f30a80e1f2c31ce (patch)
treed33bd8e898a32e4e6ccbdbc9fcb737ed47ad68d6
parentd3eb6ffff5fb6ac93aaf12be3937084645055b67 (diff)
parent0cbdad70611201a94b9550598e61067faa1fac6b (diff)
merge from viewer-trunk
-rw-r--r--indra/llcommon/llassettype.cpp26
-rw-r--r--indra/llcommon/llerror.cpp16
-rw-r--r--indra/llcommon/llversionviewer.h4
-rw-r--r--indra/llimage/llimage.cpp2
-rw-r--r--indra/llinventory/llinventorytype.cpp4
-rw-r--r--indra/llplugin/llpluginclassmedia.cpp12
-rw-r--r--indra/llplugin/llpluginclassmedia.h8
-rw-r--r--indra/llplugin/llpluginmessagepipe.cpp121
-rw-r--r--indra/llplugin/llpluginmessagepipe.h9
-rw-r--r--indra/llplugin/llpluginprocesschild.cpp77
-rw-r--r--indra/llplugin/llpluginprocesschild.h5
-rw-r--r--indra/llplugin/llpluginprocessparent.cpp454
-rw-r--r--indra/llplugin/llpluginprocessparent.h30
-rw-r--r--indra/llui/llaccordionctrltab.cpp28
-rw-r--r--indra/llui/llaccordionctrltab.h6
-rw-r--r--indra/llui/llflatlistview.cpp160
-rw-r--r--indra/llui/llflatlistview.h17
-rw-r--r--indra/llui/llspinctrl.cpp5
-rw-r--r--indra/llui/llspinctrl.h1
-rw-r--r--indra/llwindow/llwindowwin32.cpp5
-rw-r--r--indra/media_plugins/webkit/mac_volume_catcher.cpp4
-rw-r--r--indra/media_plugins/webkit/windows_volume_catcher.cpp11
-rw-r--r--indra/media_plugins/winmmshim/winmm_shim.cpp12
-rw-r--r--indra/newview/CMakeLists.txt5
-rw-r--r--indra/newview/English.lproj/InfoPlist.strings4
-rw-r--r--indra/newview/Info-SecondLife.plist2
-rw-r--r--indra/newview/app_settings/settings.xml59
-rw-r--r--indra/newview/llagentwearables.cpp4
-rw-r--r--indra/newview/llappearancemgr.cpp10
-rw-r--r--indra/newview/llappearancemgr.h12
-rw-r--r--indra/newview/llappviewer.cpp12
-rw-r--r--indra/newview/llchannelmanager.cpp16
-rw-r--r--indra/newview/llchannelmanager.h5
-rw-r--r--indra/newview/llcofwearables.cpp194
-rw-r--r--indra/newview/llcofwearables.h81
-rw-r--r--indra/newview/llfavoritesbar.cpp11
-rw-r--r--indra/newview/llimfloater.cpp23
-rw-r--r--indra/newview/llimfloater.h2
-rw-r--r--indra/newview/llimview.cpp33
-rw-r--r--indra/newview/llinventorybridge.cpp120
-rw-r--r--indra/newview/llinventorybridge.h2
-rw-r--r--indra/newview/llinventoryfunctions.cpp23
-rw-r--r--indra/newview/llinventoryfunctions.h6
-rw-r--r--indra/newview/llinventoryitemslist.cpp279
-rw-r--r--indra/newview/llinventoryitemslist.h150
-rw-r--r--indra/newview/llinventoryobserver.cpp87
-rw-r--r--indra/newview/llinventoryobserver.h13
-rw-r--r--indra/newview/llmutelist.cpp26
-rw-r--r--indra/newview/llmutelist.h3
-rw-r--r--indra/newview/lloutfitslist.cpp147
-rw-r--r--indra/newview/lloutfitslist.h17
-rw-r--r--indra/newview/llpaneleditwearable.cpp460
-rw-r--r--indra/newview/llpaneleditwearable.h5
-rw-r--r--indra/newview/llpaneloutfitedit.cpp33
-rw-r--r--indra/newview/llpaneloutfitedit.h4
-rw-r--r--indra/newview/llpaneloutfitsinventory.cpp43
-rw-r--r--indra/newview/llpaneloutfitsinventory.h3
-rw-r--r--indra/newview/llparticipantlist.cpp16
-rw-r--r--indra/newview/llpreviewnotecard.cpp30
-rw-r--r--indra/newview/llpreviewnotecard.h4
-rw-r--r--indra/newview/llscreenchannel.cpp25
-rw-r--r--indra/newview/llscreenchannel.h6
-rw-r--r--indra/newview/llselectmgr.cpp6
-rw-r--r--indra/newview/llsidepanelappearance.cpp18
-rw-r--r--indra/newview/llsidepanelappearance.h3
-rw-r--r--indra/newview/lltexturefetch.cpp53
-rw-r--r--indra/newview/llviewercontrol.cpp7
-rw-r--r--indra/newview/llviewerdisplay.cpp1
-rw-r--r--indra/newview/llviewermedia.cpp39
-rw-r--r--indra/newview/llviewermedia.h1
-rw-r--r--indra/newview/llviewermessage.cpp2
-rw-r--r--indra/newview/llvoiceclient.cpp23
-rw-r--r--indra/newview/llwearableitemslist.cpp203
-rw-r--r--indra/newview/llwearableitemslist.h111
-rw-r--r--indra/newview/pipeline.cpp23
-rw-r--r--indra/newview/res/viewerRes.rc8
-rw-r--r--indra/newview/skins/default/xui/de/floater_about.xml7
-rw-r--r--indra/newview/skins/default/xui/de/floater_animation_preview.xml48
-rw-r--r--indra/newview/skins/default/xui/de/floater_day_cycle_options.xml28
-rw-r--r--indra/newview/skins/default/xui/de/floater_god_tools.xml13
-rw-r--r--indra/newview/skins/default/xui/de/floater_image_preview.xml20
-rw-r--r--indra/newview/skins/default/xui/de/floater_outgoing_call.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_snapshot.xml89
-rw-r--r--indra/newview/skins/default/xui/de/floater_tos.xml19
-rw-r--r--indra/newview/skins/default/xui/de/menu_attachment_other.xml2
-rw-r--r--indra/newview/skins/default/xui/de/menu_attachment_self.xml1
-rw-r--r--indra/newview/skins/default/xui/de/menu_avatar_other.xml2
-rw-r--r--indra/newview/skins/default/xui/de/menu_avatar_self.xml1
-rw-r--r--indra/newview/skins/default/xui/de/menu_edit.xml12
-rw-r--r--indra/newview/skins/default/xui/de/menu_inspect_avatar_gear.xml2
-rw-r--r--indra/newview/skins/default/xui/de/menu_inspect_self_gear.xml1
-rw-r--r--indra/newview/skins/default/xui/de/menu_inv_offer_chiclet.xml4
-rw-r--r--indra/newview/skins/default/xui/de/menu_inventory.xml3
-rw-r--r--indra/newview/skins/default/xui/de/menu_login.xml14
-rw-r--r--indra/newview/skins/default/xui/de/menu_participant_list.xml1
-rw-r--r--indra/newview/skins/default/xui/de/menu_save_outfit.xml5
-rw-r--r--indra/newview/skins/default/xui/de/menu_script_chiclet.xml4
-rw-r--r--indra/newview/skins/default/xui/de/menu_viewer.xml14
-rw-r--r--indra/newview/skins/default/xui/de/notifications.xml52
-rw-r--r--indra/newview/skins/default/xui/de/outfit_accordion_tab.xml4
-rw-r--r--indra/newview/skins/default/xui/de/panel_edit_eyes.xml8
-rw-r--r--indra/newview/skins/default/xui/de/panel_edit_gloves.xml8
-rw-r--r--indra/newview/skins/default/xui/de/panel_edit_hair.xml14
-rw-r--r--indra/newview/skins/default/xui/de/panel_edit_jacket.xml8
-rw-r--r--indra/newview/skins/default/xui/de/panel_edit_pants.xml8
-rw-r--r--indra/newview/skins/default/xui/de/panel_edit_shape.xml24
-rw-r--r--indra/newview/skins/default/xui/de/panel_edit_shirt.xml8
-rw-r--r--indra/newview/skins/default/xui/de/panel_edit_shoes.xml8
-rw-r--r--indra/newview/skins/default/xui/de/panel_edit_skin.xml14
-rw-r--r--indra/newview/skins/default/xui/de/panel_edit_skirt.xml8
-rw-r--r--indra/newview/skins/default/xui/de/panel_edit_socks.xml8
-rw-r--r--indra/newview/skins/default/xui/de/panel_edit_underpants.xml8
-rw-r--r--indra/newview/skins/default/xui/de/panel_edit_undershirt.xml8
-rw-r--r--indra/newview/skins/default/xui/de/panel_edit_wearable.xml5
-rw-r--r--indra/newview/skins/default/xui/de/panel_group_general.xml5
-rw-r--r--indra/newview/skins/default/xui/de/panel_inventory_item.xml4
-rw-r--r--indra/newview/skins/default/xui/de/panel_media_settings_permissions.xml9
-rw-r--r--indra/newview/skins/default/xui/de/panel_nearby_media.xml14
-rw-r--r--indra/newview/skins/default/xui/de/panel_outfit_edit.xml48
-rw-r--r--indra/newview/skins/default/xui/de/panel_outfits_inventory.xml4
-rw-r--r--indra/newview/skins/default/xui/de/panel_people.xml21
-rw-r--r--indra/newview/skins/default/xui/de/panel_places.xml1
-rw-r--r--indra/newview/skins/default/xui/de/panel_preferences_advanced.xml4
-rw-r--r--indra/newview/skins/default/xui/de/panel_world_map.xml6
-rw-r--r--indra/newview/skins/default/xui/de/sidepanel_inventory.xml1
-rw-r--r--indra/newview/skins/default/xui/de/strings.xml48
-rw-r--r--indra/newview/skins/default/xui/en/floater_preview_notecard.xml12
-rw-r--r--indra/newview/skins/default/xui/en/menu_inventory.xml8
-rw-r--r--indra/newview/skins/default/xui/en/menu_viewer.xml10
-rw-r--r--indra/newview/skins/default/xui/en/panel_adhoc_control_panel.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_body_parts_list_item.xml82
-rw-r--r--indra/newview/skins/default/xui/en/panel_bodyparts_list_button_bar.xml36
-rw-r--r--indra/newview/skins/default/xui/en/panel_clothing_list_button_bar.xml37
-rw-r--r--indra/newview/skins/default/xui/en/panel_clothing_list_item.xml115
-rw-r--r--indra/newview/skins/default/xui/en/panel_cof_wearables.xml76
-rw-r--r--indra/newview/skins/default/xui/en/panel_dummy_clothing_list_item.xml72
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_alpha.xml25
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_eyes.xml7
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_gloves.xml14
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_hair.xml7
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_jacket.xml15
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_pants.xml10
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_shirt.xml10
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_shoes.xml10
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_skin.xml17
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_skirt.xml10
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_socks.xml10
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_underpants.xml10
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_undershirt.xml10
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_control_panel.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_main_inventory.xml4
-rw-r--r--indra/newview/skins/default/xui/en/panel_outfit_edit.xml133
-rw-r--r--indra/newview/skins/default/xui/en/panel_outfits_inventory.xml25
-rw-r--r--indra/newview/skins/default/xui/en/panel_people.xml1
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_chat.xml2
-rw-r--r--indra/newview/skins/default/xui/en/sidepanel_appearance.xml86
-rw-r--r--indra/newview/skins/default/xui/en/strings.xml26
-rw-r--r--indra/newview/skins/default/xui/es/floater_about.xml11
-rw-r--r--indra/newview/skins/default/xui/es/floater_animation_preview.xml48
-rw-r--r--indra/newview/skins/default/xui/es/floater_god_tools.xml9
-rw-r--r--indra/newview/skins/default/xui/es/floater_image_preview.xml20
-rw-r--r--indra/newview/skins/default/xui/es/floater_outgoing_call.xml2
-rw-r--r--indra/newview/skins/default/xui/es/floater_snapshot.xml89
-rw-r--r--indra/newview/skins/default/xui/es/floater_tos.xml12
-rw-r--r--indra/newview/skins/default/xui/es/menu_attachment_other.xml2
-rw-r--r--indra/newview/skins/default/xui/es/menu_attachment_self.xml1
-rw-r--r--indra/newview/skins/default/xui/es/menu_avatar_other.xml2
-rw-r--r--indra/newview/skins/default/xui/es/menu_avatar_self.xml1
-rw-r--r--indra/newview/skins/default/xui/es/menu_edit.xml12
-rw-r--r--indra/newview/skins/default/xui/es/menu_inspect_avatar_gear.xml2
-rw-r--r--indra/newview/skins/default/xui/es/menu_inspect_self_gear.xml1
-rw-r--r--indra/newview/skins/default/xui/es/menu_inv_offer_chiclet.xml4
-rw-r--r--indra/newview/skins/default/xui/es/menu_inventory.xml1
-rw-r--r--indra/newview/skins/default/xui/es/menu_login.xml14
-rw-r--r--indra/newview/skins/default/xui/es/menu_participant_list.xml1
-rw-r--r--indra/newview/skins/default/xui/es/menu_save_outfit.xml5
-rw-r--r--indra/newview/skins/default/xui/es/menu_script_chiclet.xml4
-rw-r--r--indra/newview/skins/default/xui/es/menu_viewer.xml16
-rw-r--r--indra/newview/skins/default/xui/es/notifications.xml44
-rw-r--r--indra/newview/skins/default/xui/es/outfit_accordion_tab.xml4
-rw-r--r--indra/newview/skins/default/xui/es/panel_edit_eyes.xml8
-rw-r--r--indra/newview/skins/default/xui/es/panel_edit_gloves.xml8
-rw-r--r--indra/newview/skins/default/xui/es/panel_edit_hair.xml14
-rw-r--r--indra/newview/skins/default/xui/es/panel_edit_jacket.xml8
-rw-r--r--indra/newview/skins/default/xui/es/panel_edit_pants.xml8
-rw-r--r--indra/newview/skins/default/xui/es/panel_edit_shape.xml24
-rw-r--r--indra/newview/skins/default/xui/es/panel_edit_shirt.xml8
-rw-r--r--indra/newview/skins/default/xui/es/panel_edit_shoes.xml8
-rw-r--r--indra/newview/skins/default/xui/es/panel_edit_skin.xml14
-rw-r--r--indra/newview/skins/default/xui/es/panel_edit_skirt.xml8
-rw-r--r--indra/newview/skins/default/xui/es/panel_edit_socks.xml8
-rw-r--r--indra/newview/skins/default/xui/es/panel_edit_underpants.xml8
-rw-r--r--indra/newview/skins/default/xui/es/panel_edit_undershirt.xml8
-rw-r--r--indra/newview/skins/default/xui/es/panel_edit_wearable.xml5
-rw-r--r--indra/newview/skins/default/xui/es/panel_group_general.xml5
-rw-r--r--indra/newview/skins/default/xui/es/panel_inventory_item.xml4
-rw-r--r--indra/newview/skins/default/xui/es/panel_media_settings_permissions.xml9
-rw-r--r--indra/newview/skins/default/xui/es/panel_nearby_media.xml20
-rw-r--r--indra/newview/skins/default/xui/es/panel_outfit_edit.xml48
-rw-r--r--indra/newview/skins/default/xui/es/panel_outfits_inventory.xml4
-rw-r--r--indra/newview/skins/default/xui/es/panel_people.xml21
-rw-r--r--indra/newview/skins/default/xui/es/panel_places.xml1
-rw-r--r--indra/newview/skins/default/xui/es/panel_preferences_advanced.xml4
-rw-r--r--indra/newview/skins/default/xui/es/panel_world_map.xml6
-rw-r--r--indra/newview/skins/default/xui/es/sidepanel_inventory.xml1
-rw-r--r--indra/newview/skins/default/xui/es/strings.xml45
-rw-r--r--indra/newview/skins/default/xui/fr/floater_about.xml7
-rw-r--r--indra/newview/skins/default/xui/fr/floater_animation_preview.xml48
-rw-r--r--indra/newview/skins/default/xui/fr/floater_day_cycle_options.xml23
-rw-r--r--indra/newview/skins/default/xui/fr/floater_god_tools.xml9
-rw-r--r--indra/newview/skins/default/xui/fr/floater_image_preview.xml20
-rw-r--r--indra/newview/skins/default/xui/fr/floater_outgoing_call.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/floater_snapshot.xml89
-rw-r--r--indra/newview/skins/default/xui/fr/floater_tos.xml19
-rw-r--r--indra/newview/skins/default/xui/fr/menu_attachment_other.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/menu_attachment_self.xml1
-rw-r--r--indra/newview/skins/default/xui/fr/menu_avatar_other.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/menu_avatar_self.xml1
-rw-r--r--indra/newview/skins/default/xui/fr/menu_edit.xml12
-rw-r--r--indra/newview/skins/default/xui/fr/menu_inspect_avatar_gear.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/menu_inspect_self_gear.xml1
-rw-r--r--indra/newview/skins/default/xui/fr/menu_inv_offer_chiclet.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/menu_inventory.xml3
-rw-r--r--indra/newview/skins/default/xui/fr/menu_login.xml14
-rw-r--r--indra/newview/skins/default/xui/fr/menu_participant_list.xml1
-rw-r--r--indra/newview/skins/default/xui/fr/menu_save_outfit.xml5
-rw-r--r--indra/newview/skins/default/xui/fr/menu_script_chiclet.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/menu_viewer.xml14
-rw-r--r--indra/newview/skins/default/xui/fr/notifications.xml52
-rw-r--r--indra/newview/skins/default/xui/fr/outfit_accordion_tab.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/panel_edit_eyes.xml8
-rw-r--r--indra/newview/skins/default/xui/fr/panel_edit_gloves.xml10
-rw-r--r--indra/newview/skins/default/xui/fr/panel_edit_hair.xml14
-rw-r--r--indra/newview/skins/default/xui/fr/panel_edit_jacket.xml10
-rw-r--r--indra/newview/skins/default/xui/fr/panel_edit_pants.xml10
-rw-r--r--indra/newview/skins/default/xui/fr/panel_edit_shape.xml24
-rw-r--r--indra/newview/skins/default/xui/fr/panel_edit_shirt.xml10
-rw-r--r--indra/newview/skins/default/xui/fr/panel_edit_shoes.xml10
-rw-r--r--indra/newview/skins/default/xui/fr/panel_edit_skin.xml18
-rw-r--r--indra/newview/skins/default/xui/fr/panel_edit_skirt.xml10
-rw-r--r--indra/newview/skins/default/xui/fr/panel_edit_socks.xml10
-rw-r--r--indra/newview/skins/default/xui/fr/panel_edit_underpants.xml10
-rw-r--r--indra/newview/skins/default/xui/fr/panel_edit_undershirt.xml10
-rw-r--r--indra/newview/skins/default/xui/fr/panel_edit_wearable.xml7
-rw-r--r--indra/newview/skins/default/xui/fr/panel_group_general.xml5
-rw-r--r--indra/newview/skins/default/xui/fr/panel_inventory_item.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/panel_media_settings_permissions.xml9
-rw-r--r--indra/newview/skins/default/xui/fr/panel_nearby_media.xml16
-rw-r--r--indra/newview/skins/default/xui/fr/panel_outfit_edit.xml48
-rw-r--r--indra/newview/skins/default/xui/fr/panel_outfits_inventory.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/panel_people.xml21
-rw-r--r--indra/newview/skins/default/xui/fr/panel_places.xml1
-rw-r--r--indra/newview/skins/default/xui/fr/panel_preferences_advanced.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/panel_world_map.xml6
-rw-r--r--indra/newview/skins/default/xui/fr/sidepanel_inventory.xml1
-rw-r--r--indra/newview/skins/default/xui/fr/strings.xml45
-rw-r--r--indra/newview/skins/default/xui/it/floater_about.xml11
-rw-r--r--indra/newview/skins/default/xui/it/floater_animation_preview.xml48
-rw-r--r--indra/newview/skins/default/xui/it/floater_god_tools.xml12
-rw-r--r--indra/newview/skins/default/xui/it/floater_image_preview.xml20
-rw-r--r--indra/newview/skins/default/xui/it/floater_outgoing_call.xml2
-rw-r--r--indra/newview/skins/default/xui/it/floater_snapshot.xml89
-rw-r--r--indra/newview/skins/default/xui/it/floater_tos.xml12
-rw-r--r--indra/newview/skins/default/xui/it/menu_attachment_other.xml2
-rw-r--r--indra/newview/skins/default/xui/it/menu_attachment_self.xml1
-rw-r--r--indra/newview/skins/default/xui/it/menu_avatar_other.xml2
-rw-r--r--indra/newview/skins/default/xui/it/menu_avatar_self.xml1
-rw-r--r--indra/newview/skins/default/xui/it/menu_edit.xml12
-rw-r--r--indra/newview/skins/default/xui/it/menu_inspect_avatar_gear.xml2
-rw-r--r--indra/newview/skins/default/xui/it/menu_inspect_self_gear.xml1
-rw-r--r--indra/newview/skins/default/xui/it/menu_inv_offer_chiclet.xml4
-rw-r--r--indra/newview/skins/default/xui/it/menu_inventory.xml1
-rw-r--r--indra/newview/skins/default/xui/it/menu_login.xml14
-rw-r--r--indra/newview/skins/default/xui/it/menu_participant_list.xml3
-rw-r--r--indra/newview/skins/default/xui/it/menu_save_outfit.xml5
-rw-r--r--indra/newview/skins/default/xui/it/menu_script_chiclet.xml4
-rw-r--r--indra/newview/skins/default/xui/it/menu_viewer.xml14
-rw-r--r--indra/newview/skins/default/xui/it/notifications.xml46
-rw-r--r--indra/newview/skins/default/xui/it/outfit_accordion_tab.xml4
-rw-r--r--indra/newview/skins/default/xui/it/panel_edit_eyes.xml8
-rw-r--r--indra/newview/skins/default/xui/it/panel_edit_gloves.xml8
-rw-r--r--indra/newview/skins/default/xui/it/panel_edit_hair.xml14
-rw-r--r--indra/newview/skins/default/xui/it/panel_edit_jacket.xml8
-rw-r--r--indra/newview/skins/default/xui/it/panel_edit_pants.xml8
-rw-r--r--indra/newview/skins/default/xui/it/panel_edit_pick.xml4
-rw-r--r--indra/newview/skins/default/xui/it/panel_edit_shape.xml24
-rw-r--r--indra/newview/skins/default/xui/it/panel_edit_shirt.xml8
-rw-r--r--indra/newview/skins/default/xui/it/panel_edit_shoes.xml8
-rw-r--r--indra/newview/skins/default/xui/it/panel_edit_skin.xml14
-rw-r--r--indra/newview/skins/default/xui/it/panel_edit_skirt.xml8
-rw-r--r--indra/newview/skins/default/xui/it/panel_edit_socks.xml8
-rw-r--r--indra/newview/skins/default/xui/it/panel_edit_underpants.xml8
-rw-r--r--indra/newview/skins/default/xui/it/panel_edit_undershirt.xml8
-rw-r--r--indra/newview/skins/default/xui/it/panel_edit_wearable.xml5
-rw-r--r--indra/newview/skins/default/xui/it/panel_group_general.xml5
-rw-r--r--indra/newview/skins/default/xui/it/panel_im_control_panel.xml2
-rw-r--r--indra/newview/skins/default/xui/it/panel_inventory_item.xml4
-rw-r--r--indra/newview/skins/default/xui/it/panel_media_settings_permissions.xml9
-rw-r--r--indra/newview/skins/default/xui/it/panel_nearby_media.xml16
-rw-r--r--indra/newview/skins/default/xui/it/panel_outfit_edit.xml48
-rw-r--r--indra/newview/skins/default/xui/it/panel_outfits_inventory.xml4
-rw-r--r--indra/newview/skins/default/xui/it/panel_people.xml21
-rw-r--r--indra/newview/skins/default/xui/it/panel_places.xml1
-rw-r--r--indra/newview/skins/default/xui/it/panel_preferences_advanced.xml8
-rw-r--r--indra/newview/skins/default/xui/it/panel_world_map.xml6
-rw-r--r--indra/newview/skins/default/xui/it/sidepanel_inventory.xml1
-rw-r--r--indra/newview/skins/default/xui/it/strings.xml51
-rw-r--r--indra/newview/skins/default/xui/it/teleport_strings.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_about.xml7
-rw-r--r--indra/newview/skins/default/xui/ja/floater_animation_preview.xml48
-rw-r--r--indra/newview/skins/default/xui/ja/floater_day_cycle_options.xml33
-rw-r--r--indra/newview/skins/default/xui/ja/floater_god_tools.xml9
-rw-r--r--indra/newview/skins/default/xui/ja/floater_image_preview.xml20
-rw-r--r--indra/newview/skins/default/xui/ja/floater_outgoing_call.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_snapshot.xml89
-rw-r--r--indra/newview/skins/default/xui/ja/floater_tos.xml19
-rw-r--r--indra/newview/skins/default/xui/ja/menu_attachment_other.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/menu_attachment_self.xml1
-rw-r--r--indra/newview/skins/default/xui/ja/menu_avatar_other.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/menu_avatar_self.xml1
-rw-r--r--indra/newview/skins/default/xui/ja/menu_edit.xml12
-rw-r--r--indra/newview/skins/default/xui/ja/menu_inspect_avatar_gear.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/menu_inspect_self_gear.xml1
-rw-r--r--indra/newview/skins/default/xui/ja/menu_inv_offer_chiclet.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/menu_inventory.xml3
-rw-r--r--indra/newview/skins/default/xui/ja/menu_login.xml14
-rw-r--r--indra/newview/skins/default/xui/ja/menu_participant_list.xml1
-rw-r--r--indra/newview/skins/default/xui/ja/menu_save_outfit.xml5
-rw-r--r--indra/newview/skins/default/xui/ja/menu_script_chiclet.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/menu_viewer.xml14
-rw-r--r--indra/newview/skins/default/xui/ja/notifications.xml53
-rw-r--r--indra/newview/skins/default/xui/ja/outfit_accordion_tab.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/panel_edit_eyes.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/panel_edit_gloves.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/panel_edit_hair.xml14
-rw-r--r--indra/newview/skins/default/xui/ja/panel_edit_jacket.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/panel_edit_pants.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/panel_edit_shape.xml24
-rw-r--r--indra/newview/skins/default/xui/ja/panel_edit_shirt.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/panel_edit_shoes.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/panel_edit_skin.xml14
-rw-r--r--indra/newview/skins/default/xui/ja/panel_edit_skirt.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/panel_edit_socks.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/panel_edit_underpants.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/panel_edit_undershirt.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/panel_edit_wearable.xml5
-rw-r--r--indra/newview/skins/default/xui/ja/panel_group_general.xml5
-rw-r--r--indra/newview/skins/default/xui/ja/panel_inventory_item.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/panel_media_settings_permissions.xml9
-rw-r--r--indra/newview/skins/default/xui/ja/panel_nearby_media.xml14
-rw-r--r--indra/newview/skins/default/xui/ja/panel_outfit_edit.xml48
-rw-r--r--indra/newview/skins/default/xui/ja/panel_outfits_inventory.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/panel_people.xml21
-rw-r--r--indra/newview/skins/default/xui/ja/panel_places.xml1
-rw-r--r--indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/panel_world_map.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/sidepanel_inventory.xml1
-rw-r--r--indra/newview/skins/default/xui/ja/strings.xml48
-rw-r--r--indra/newview/skins/default/xui/pt/floater_about.xml9
-rw-r--r--indra/newview/skins/default/xui/pt/floater_animation_preview.xml48
-rw-r--r--indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/floater_god_tools.xml9
-rw-r--r--indra/newview/skins/default/xui/pt/floater_image_preview.xml20
-rw-r--r--indra/newview/skins/default/xui/pt/floater_outgoing_call.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/floater_snapshot.xml89
-rw-r--r--indra/newview/skins/default/xui/pt/floater_tos.xml12
-rw-r--r--indra/newview/skins/default/xui/pt/menu_attachment_other.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/menu_attachment_self.xml1
-rw-r--r--indra/newview/skins/default/xui/pt/menu_avatar_other.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/menu_avatar_self.xml1
-rw-r--r--indra/newview/skins/default/xui/pt/menu_edit.xml12
-rw-r--r--indra/newview/skins/default/xui/pt/menu_inspect_avatar_gear.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/menu_inspect_self_gear.xml1
-rw-r--r--indra/newview/skins/default/xui/pt/menu_inv_offer_chiclet.xml4
-rw-r--r--indra/newview/skins/default/xui/pt/menu_inventory.xml1
-rw-r--r--indra/newview/skins/default/xui/pt/menu_login.xml14
-rw-r--r--indra/newview/skins/default/xui/pt/menu_participant_list.xml1
-rw-r--r--indra/newview/skins/default/xui/pt/menu_save_outfit.xml5
-rw-r--r--indra/newview/skins/default/xui/pt/menu_script_chiclet.xml4
-rw-r--r--indra/newview/skins/default/xui/pt/menu_viewer.xml14
-rw-r--r--indra/newview/skins/default/xui/pt/notifications.xml44
-rw-r--r--indra/newview/skins/default/xui/pt/outfit_accordion_tab.xml4
-rw-r--r--indra/newview/skins/default/xui/pt/panel_edit_eyes.xml8
-rw-r--r--indra/newview/skins/default/xui/pt/panel_edit_gloves.xml8
-rw-r--r--indra/newview/skins/default/xui/pt/panel_edit_hair.xml14
-rw-r--r--indra/newview/skins/default/xui/pt/panel_edit_jacket.xml8
-rw-r--r--indra/newview/skins/default/xui/pt/panel_edit_pants.xml8
-rw-r--r--indra/newview/skins/default/xui/pt/panel_edit_shape.xml24
-rw-r--r--indra/newview/skins/default/xui/pt/panel_edit_shirt.xml8
-rw-r--r--indra/newview/skins/default/xui/pt/panel_edit_shoes.xml8
-rw-r--r--indra/newview/skins/default/xui/pt/panel_edit_skin.xml14
-rw-r--r--indra/newview/skins/default/xui/pt/panel_edit_skirt.xml8
-rw-r--r--indra/newview/skins/default/xui/pt/panel_edit_socks.xml8
-rw-r--r--indra/newview/skins/default/xui/pt/panel_edit_underpants.xml8
-rw-r--r--indra/newview/skins/default/xui/pt/panel_edit_undershirt.xml8
-rw-r--r--indra/newview/skins/default/xui/pt/panel_edit_wearable.xml5
-rw-r--r--indra/newview/skins/default/xui/pt/panel_group_general.xml5
-rw-r--r--indra/newview/skins/default/xui/pt/panel_im_control_panel.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/panel_inventory_item.xml4
-rw-r--r--indra/newview/skins/default/xui/pt/panel_media_settings_permissions.xml9
-rw-r--r--indra/newview/skins/default/xui/pt/panel_nearby_media.xml14
-rw-r--r--indra/newview/skins/default/xui/pt/panel_outfit_edit.xml48
-rw-r--r--indra/newview/skins/default/xui/pt/panel_outfits_inventory.xml4
-rw-r--r--indra/newview/skins/default/xui/pt/panel_people.xml21
-rw-r--r--indra/newview/skins/default/xui/pt/panel_places.xml1
-rw-r--r--indra/newview/skins/default/xui/pt/panel_preferences_advanced.xml4
-rw-r--r--indra/newview/skins/default/xui/pt/panel_world_map.xml6
-rw-r--r--indra/newview/skins/default/xui/pt/sidepanel_inventory.xml1
-rw-r--r--indra/newview/skins/default/xui/pt/strings.xml45
-rw-r--r--indra/test_apps/llplugintest/llmediaplugintest.cpp14
-rw-r--r--indra/test_apps/llplugintest/llmediaplugintest.h2
411 files changed, 5939 insertions, 2260 deletions
diff --git a/indra/llcommon/llassettype.cpp b/indra/llcommon/llassettype.cpp
index 1c664e093b..2cd29448ae 100644
--- a/indra/llcommon/llassettype.cpp
+++ b/indra/llcommon/llassettype.cpp
@@ -77,23 +77,23 @@ LLAssetDictionary::LLAssetDictionary()
{
// DESCRIPTION TYPE NAME HUMAN NAME CAN LINK? CAN FETCH? CAN KNOW?
// |--------------------|-----------|-------------------|-----------|-----------|---------|
- addEntry(LLAssetType::AT_TEXTURE, new AssetEntry("TEXTURE", "texture", "texture", false, false, true));
- addEntry(LLAssetType::AT_SOUND, new AssetEntry("SOUND", "sound", "sound", false, true, true));
- addEntry(LLAssetType::AT_CALLINGCARD, new AssetEntry("CALLINGCARD", "callcard", "calling card", false, false, false));
- addEntry(LLAssetType::AT_LANDMARK, new AssetEntry("LANDMARK", "landmark", "landmark", false, true, true));
- addEntry(LLAssetType::AT_SCRIPT, new AssetEntry("SCRIPT", "script", "legacy script", false, false, false));
+ addEntry(LLAssetType::AT_TEXTURE, new AssetEntry("TEXTURE", "texture", "texture", true, false, true));
+ addEntry(LLAssetType::AT_SOUND, new AssetEntry("SOUND", "sound", "sound", true, true, true));
+ addEntry(LLAssetType::AT_CALLINGCARD, new AssetEntry("CALLINGCARD", "callcard", "calling card", true, false, false));
+ addEntry(LLAssetType::AT_LANDMARK, new AssetEntry("LANDMARK", "landmark", "landmark", true, true, true));
+ addEntry(LLAssetType::AT_SCRIPT, new AssetEntry("SCRIPT", "script", "legacy script", true, false, false));
addEntry(LLAssetType::AT_CLOTHING, new AssetEntry("CLOTHING", "clothing", "clothing", true, true, true));
addEntry(LLAssetType::AT_OBJECT, new AssetEntry("OBJECT", "object", "object", true, false, false));
- addEntry(LLAssetType::AT_NOTECARD, new AssetEntry("NOTECARD", "notecard", "note card", false, false, true));
+ addEntry(LLAssetType::AT_NOTECARD, new AssetEntry("NOTECARD", "notecard", "note card", true, false, true));
addEntry(LLAssetType::AT_CATEGORY, new AssetEntry("CATEGORY", "category", "folder", true, false, false));
- addEntry(LLAssetType::AT_LSL_TEXT, new AssetEntry("LSL_TEXT", "lsltext", "lsl2 script", false, false, false));
- addEntry(LLAssetType::AT_LSL_BYTECODE, new AssetEntry("LSL_BYTECODE", "lslbyte", "lsl bytecode", false, false, false));
- addEntry(LLAssetType::AT_TEXTURE_TGA, new AssetEntry("TEXTURE_TGA", "txtr_tga", "tga texture", false, false, false));
+ addEntry(LLAssetType::AT_LSL_TEXT, new AssetEntry("LSL_TEXT", "lsltext", "lsl2 script", true, false, false));
+ addEntry(LLAssetType::AT_LSL_BYTECODE, new AssetEntry("LSL_BYTECODE", "lslbyte", "lsl bytecode", true, false, false));
+ addEntry(LLAssetType::AT_TEXTURE_TGA, new AssetEntry("TEXTURE_TGA", "txtr_tga", "tga texture", true, false, false));
addEntry(LLAssetType::AT_BODYPART, new AssetEntry("BODYPART", "bodypart", "body part", true, true, true));
- addEntry(LLAssetType::AT_SOUND_WAV, new AssetEntry("SOUND_WAV", "snd_wav", "sound", false, false, false));
- addEntry(LLAssetType::AT_IMAGE_TGA, new AssetEntry("IMAGE_TGA", "img_tga", "targa image", false, false, false));
- addEntry(LLAssetType::AT_IMAGE_JPEG, new AssetEntry("IMAGE_JPEG", "jpeg", "jpeg image", false, false, false));
- addEntry(LLAssetType::AT_ANIMATION, new AssetEntry("ANIMATION", "animatn", "animation", false, true, true));
+ addEntry(LLAssetType::AT_SOUND_WAV, new AssetEntry("SOUND_WAV", "snd_wav", "sound", true, false, false));
+ addEntry(LLAssetType::AT_IMAGE_TGA, new AssetEntry("IMAGE_TGA", "img_tga", "targa image", true, false, false));
+ addEntry(LLAssetType::AT_IMAGE_JPEG, new AssetEntry("IMAGE_JPEG", "jpeg", "jpeg image", true, false, false));
+ addEntry(LLAssetType::AT_ANIMATION, new AssetEntry("ANIMATION", "animatn", "animation", true, true, true));
addEntry(LLAssetType::AT_GESTURE, new AssetEntry("GESTURE", "gesture", "gesture", true, true, true));
addEntry(LLAssetType::AT_SIMSTATE, new AssetEntry("SIMSTATE", "simstate", "simstate", false, false, false));
diff --git a/indra/llcommon/llerror.cpp b/indra/llcommon/llerror.cpp
index bd334a6654..41ff5849f4 100644
--- a/indra/llcommon/llerror.cpp
+++ b/indra/llcommon/llerror.cpp
@@ -1225,17 +1225,32 @@ namespace LLError
char** LLCallStacks::sBuffer = NULL ;
S32 LLCallStacks::sIndex = 0 ;
+#define SINGLE_THREADED 1
+
class CallStacksLogLock
{
public:
CallStacksLogLock();
~CallStacksLogLock();
+
+#if SINGLE_THREADED
+ bool ok() const { return true; }
+#else
bool ok() const { return mOK; }
private:
bool mLocked;
bool mOK;
+#endif
};
+#if SINGLE_THREADED
+ CallStacksLogLock::CallStacksLogLock()
+ {
+ }
+ CallStacksLogLock::~CallStacksLogLock()
+ {
+ }
+#else
CallStacksLogLock::CallStacksLogLock()
: mLocked(false), mOK(false)
{
@@ -1271,6 +1286,7 @@ namespace LLError
apr_thread_mutex_unlock(gCallStacksLogMutexp);
}
}
+#endif
//static
void LLCallStacks::push(const char* function, const int line)
diff --git a/indra/llcommon/llversionviewer.h b/indra/llcommon/llversionviewer.h
index fc9fcb2d9e..fc3ce6df7e 100644
--- a/indra/llcommon/llversionviewer.h
+++ b/indra/llcommon/llversionviewer.h
@@ -35,8 +35,8 @@
const S32 LL_VERSION_MAJOR = 2;
const S32 LL_VERSION_MINOR = 0;
-const S32 LL_VERSION_PATCH = 1;
-const S32 LL_VERSION_BUILD = 203110;
+const S32 LL_VERSION_PATCH = 2;
+const S32 LL_VERSION_BUILD = 0;
const char * const LL_CHANNEL = "Second Life Developer";
diff --git a/indra/llimage/llimage.cpp b/indra/llimage/llimage.cpp
index 0874f574c5..aa7c8c789a 100644
--- a/indra/llimage/llimage.cpp
+++ b/indra/llimage/llimage.cpp
@@ -1338,7 +1338,7 @@ LLImageFormatted::LLImageFormatted(S8 codec)
mCodec(codec),
mDecoding(0),
mDecoded(0),
- mDiscardLevel(0)
+ mDiscardLevel(-1)
{
mMemType = LLMemType::MTYPE_IMAGEFORMATTED;
}
diff --git a/indra/llinventory/llinventorytype.cpp b/indra/llinventory/llinventorytype.cpp
index 4ef5df0b28..c050f20a9d 100644
--- a/indra/llinventory/llinventorytype.cpp
+++ b/indra/llinventory/llinventorytype.cpp
@@ -181,6 +181,10 @@ bool LLInventoryType::cannotRestrictPermissions(LLInventoryType::EType type)
bool inventory_and_asset_types_match(LLInventoryType::EType inventory_type,
LLAssetType::EType asset_type)
{
+ // Links can be of any inventory type.
+ if (LLAssetType::lookupIsLinkType(asset_type))
+ return true;
+
const InventoryEntry *entry = LLInventoryDictionary::getInstance()->lookup(inventory_type);
if (!entry) return false;
diff --git a/indra/llplugin/llpluginclassmedia.cpp b/indra/llplugin/llpluginclassmedia.cpp
index e09b511a6e..41ace62964 100644
--- a/indra/llplugin/llpluginclassmedia.cpp
+++ b/indra/llplugin/llpluginclassmedia.cpp
@@ -57,11 +57,15 @@ LLPluginClassMedia::LLPluginClassMedia(LLPluginClassMediaOwner *owner)
mOwner = owner;
mPlugin = NULL;
reset();
+
+ //debug use
+ mDeleteOK = true ;
}
LLPluginClassMedia::~LLPluginClassMedia()
{
+ llassert_always(mDeleteOK) ;
reset();
}
@@ -160,7 +164,7 @@ void LLPluginClassMedia::idle(void)
mPlugin->idle();
}
- if((mMediaWidth == -1) || (!mTextureParamsReceived) || (mPlugin == NULL))
+ if((mMediaWidth == -1) || (!mTextureParamsReceived) || (mPlugin == NULL) || (mPlugin->isBlocked()))
{
// Can't process a size change at this time
}
@@ -437,6 +441,12 @@ void LLPluginClassMedia::mouseEvent(EMouseEventType type, int button, int x, int
{
if(type == MOUSE_EVENT_MOVE)
{
+ if(!mPlugin || !mPlugin->isRunning() || mPlugin->isBlocked())
+ {
+ // Don't queue up mouse move events that can't be delivered.
+ return;
+ }
+
if((x == mLastMouseX) && (y == mLastMouseY))
{
// Don't spam unnecessary mouse move events.
diff --git a/indra/llplugin/llpluginclassmedia.h b/indra/llplugin/llpluginclassmedia.h
index 8c7b00f45b..66853c9940 100644
--- a/indra/llplugin/llpluginclassmedia.h
+++ b/indra/llplugin/llpluginclassmedia.h
@@ -373,6 +373,14 @@ protected:
F64 mCurrentRate;
F64 mLoadedDuration;
+//--------------------------------------
+ //debug use only
+ //
+private:
+ bool mDeleteOK ;
+public:
+ void setDeleteOK(bool flag) { mDeleteOK = flag ;}
+//--------------------------------------
};
#endif // LL_LLPLUGINCLASSMEDIA_H
diff --git a/indra/llplugin/llpluginmessagepipe.cpp b/indra/llplugin/llpluginmessagepipe.cpp
index 1d7ddc5592..89f8b44569 100644
--- a/indra/llplugin/llpluginmessagepipe.cpp
+++ b/indra/llplugin/llpluginmessagepipe.cpp
@@ -96,11 +96,14 @@ void LLPluginMessagePipeOwner::killMessagePipe(void)
}
}
-LLPluginMessagePipe::LLPluginMessagePipe(LLPluginMessagePipeOwner *owner, LLSocket::ptr_t socket)
+LLPluginMessagePipe::LLPluginMessagePipe(LLPluginMessagePipeOwner *owner, LLSocket::ptr_t socket):
+ mInputMutex(gAPRPoolp),
+ mOutputMutex(gAPRPoolp),
+ mOwner(owner),
+ mSocket(socket)
{
- mOwner = owner;
+
mOwner->setMessagePipe(this);
- mSocket = socket;
}
LLPluginMessagePipe::~LLPluginMessagePipe()
@@ -114,6 +117,7 @@ LLPluginMessagePipe::~LLPluginMessagePipe()
bool LLPluginMessagePipe::addMessage(const std::string &message)
{
// queue the message for later output
+ LLMutexLock lock(&mOutputMutex);
mOutput += message;
mOutput += MESSAGE_DELIMITER; // message separator
@@ -149,6 +153,18 @@ void LLPluginMessagePipe::setSocketTimeout(apr_interval_time_t timeout_usec)
bool LLPluginMessagePipe::pump(F64 timeout)
{
+ bool result = pumpOutput();
+
+ if(result)
+ {
+ result = pumpInput(timeout);
+ }
+
+ return result;
+}
+
+bool LLPluginMessagePipe::pumpOutput()
+{
bool result = true;
if(mSocket)
@@ -156,6 +172,7 @@ bool LLPluginMessagePipe::pump(F64 timeout)
apr_status_t status;
apr_size_t size;
+ LLMutexLock lock(&mOutputMutex);
if(!mOutput.empty())
{
// write any outgoing messages
@@ -183,6 +200,17 @@ bool LLPluginMessagePipe::pump(F64 timeout)
// remove the written part from the buffer and try again later.
mOutput = mOutput.substr(size);
}
+ else if(APR_STATUS_IS_EOF(status))
+ {
+ // This is what we normally expect when a plugin exits.
+ llinfos << "Got EOF from plugin socket. " << llendl;
+
+ if(mOwner)
+ {
+ mOwner->socketError(status);
+ }
+ result = false;
+ }
else
{
// some other error
@@ -196,6 +224,19 @@ bool LLPluginMessagePipe::pump(F64 timeout)
result = false;
}
}
+ }
+
+ return result;
+}
+
+bool LLPluginMessagePipe::pumpInput(F64 timeout)
+{
+ bool result = true;
+
+ if(mSocket)
+ {
+ apr_status_t status;
+ apr_size_t size;
// FIXME: For some reason, the apr timeout stuff isn't working properly on windows.
// Until such time as we figure out why, don't try to use the socket timeout -- just sleep here instead.
@@ -216,8 +257,16 @@ bool LLPluginMessagePipe::pump(F64 timeout)
char input_buf[1024];
apr_size_t request_size;
- // Start out by reading one byte, so that any data received will wake us up.
- request_size = 1;
+ if(timeout == 0.0f)
+ {
+ // If we have no timeout, start out with a full read.
+ request_size = sizeof(input_buf);
+ }
+ else
+ {
+ // Start out by reading one byte, so that any data received will wake us up.
+ request_size = 1;
+ }
// and use the timeout so we'll sleep if no data is available.
setSocketTimeout((apr_interval_time_t)(timeout * 1000000));
@@ -236,11 +285,14 @@ bool LLPluginMessagePipe::pump(F64 timeout)
// LL_INFOS("Plugin") << "after apr_socket_recv, size = " << size << LL_ENDL;
if(size > 0)
+ {
+ LLMutexLock lock(&mInputMutex);
mInput.append(input_buf, size);
+ }
if(status == APR_SUCCESS)
{
-// llinfos << "success, read " << size << llendl;
+ LL_DEBUGS("PluginSocket") << "success, read " << size << LL_ENDL;
if(size != request_size)
{
@@ -250,16 +302,28 @@ bool LLPluginMessagePipe::pump(F64 timeout)
}
else if(APR_STATUS_IS_TIMEUP(status))
{
-// llinfos << "TIMEUP, read " << size << llendl;
+ LL_DEBUGS("PluginSocket") << "TIMEUP, read " << size << LL_ENDL;
// Timeout was hit. Since the initial read is 1 byte, this should never be a partial read.
break;
}
else if(APR_STATUS_IS_EAGAIN(status))
{
-// llinfos << "EAGAIN, read " << size << llendl;
+ LL_DEBUGS("PluginSocket") << "EAGAIN, read " << size << LL_ENDL;
- // We've been doing partial reads, and we're done now.
+ // Non-blocking read returned immediately.
+ break;
+ }
+ else if(APR_STATUS_IS_EOF(status))
+ {
+ // This is what we normally expect when a plugin exits.
+ LL_INFOS("PluginSocket") << "Got EOF from plugin socket. " << LL_ENDL;
+
+ if(mOwner)
+ {
+ mOwner->socketError(status);
+ }
+ result = false;
break;
}
else
@@ -276,22 +340,18 @@ bool LLPluginMessagePipe::pump(F64 timeout)
break;
}
- // Second and subsequent reads should not use the timeout
- setSocketTimeout(0);
- // and should try to fill the input buffer
- request_size = sizeof(input_buf);
+ if(timeout != 0.0f)
+ {
+ // Second and subsequent reads should not use the timeout
+ setSocketTimeout(0);
+ // and should try to fill the input buffer
+ request_size = sizeof(input_buf);
+ }
}
processInput();
}
}
-
- if(!result)
- {
- // If we got an error, we're done.
- LL_INFOS("Plugin") << "Error from socket, cleaning up." << LL_ENDL;
- delete this;
- }
return result;
}
@@ -299,26 +359,27 @@ bool LLPluginMessagePipe::pump(F64 timeout)
void LLPluginMessagePipe::processInput(void)
{
// Look for input delimiter(s) in the input buffer.
- int start = 0;
int delim;
- while((delim = mInput.find(MESSAGE_DELIMITER, start)) != std::string::npos)
+ mInputMutex.lock();
+ while((delim = mInput.find(MESSAGE_DELIMITER)) != std::string::npos)
{
// Let the owner process this message
if (mOwner)
{
- mOwner->receiveMessageRaw(mInput.substr(start, delim - start));
+ // Pull the message out of the input buffer before calling receiveMessageRaw.
+ // It's now possible for this function to get called recursively (in the case where the plugin makes a blocking request)
+ // and this guarantees that the messages will get dequeued correctly.
+ std::string message(mInput, 0, delim);
+ mInput.erase(0, delim + 1);
+ mInputMutex.unlock();
+ mOwner->receiveMessageRaw(message);
+ mInputMutex.lock();
}
else
{
LL_WARNS("Plugin") << "!mOwner" << LL_ENDL;
}
-
- start = delim + 1;
}
-
- // Remove delivered messages from the input buffer.
- if(start != 0)
- mInput = mInput.substr(start);
-
+ mInputMutex.unlock();
}
diff --git a/indra/llplugin/llpluginmessagepipe.h b/indra/llplugin/llpluginmessagepipe.h
index 1ddb38de68..1b0a08254b 100644
--- a/indra/llplugin/llpluginmessagepipe.h
+++ b/indra/llplugin/llpluginmessagepipe.h
@@ -35,6 +35,7 @@
#define LL_LLPLUGINMESSAGEPIPE_H
#include "lliosocket.h"
+#include "llthread.h"
class LLPluginMessagePipe;
@@ -51,7 +52,7 @@ public:
virtual apr_status_t socketError(apr_status_t error);
// called from LLPluginMessagePipe to manage the connection with LLPluginMessagePipeOwner -- do not use!
- virtual void setMessagePipe(LLPluginMessagePipe *message_pipe) ;
+ virtual void setMessagePipe(LLPluginMessagePipe *message_pipe);
protected:
// returns false if writeMessageRaw() would drop the message
@@ -76,14 +77,18 @@ public:
void clearOwner(void);
bool pump(F64 timeout = 0.0f);
-
+ bool pumpOutput();
+ bool pumpInput(F64 timeout = 0.0f);
+
protected:
void processInput(void);
// used internally by pump()
void setSocketTimeout(apr_interval_time_t timeout_usec);
+ LLMutex mInputMutex;
std::string mInput;
+ LLMutex mOutputMutex;
std::string mOutput;
LLPluginMessagePipeOwner *mOwner;
diff --git a/indra/llplugin/llpluginprocesschild.cpp b/indra/llplugin/llpluginprocesschild.cpp
index ccaf95b36d..d1cf91b253 100644
--- a/indra/llplugin/llpluginprocesschild.cpp
+++ b/indra/llplugin/llpluginprocesschild.cpp
@@ -48,6 +48,8 @@ LLPluginProcessChild::LLPluginProcessChild()
mSocket = LLSocket::create(gAPRPoolp, LLSocket::STREAM_TCP);
mSleepTime = PLUGIN_IDLE_SECONDS; // default: send idle messages at 100Hz
mCPUElapsed = 0.0f;
+ mBlockingRequest = false;
+ mBlockingResponseReceived = false;
}
LLPluginProcessChild::~LLPluginProcessChild()
@@ -83,9 +85,14 @@ void LLPluginProcessChild::idle(void)
bool idle_again;
do
{
- if(mSocketError != APR_SUCCESS)
+ if(APR_STATUS_IS_EOF(mSocketError))
{
- LL_INFOS("Plugin") << "message pipe is in error state, moving to STATE_ERROR"<< LL_ENDL;
+ // Plugin socket was closed. This covers both normal plugin termination and host crashes.
+ setState(STATE_ERROR);
+ }
+ else if(mSocketError != APR_SUCCESS)
+ {
+ LL_INFOS("Plugin") << "message pipe is in error state (" << mSocketError << "), moving to STATE_ERROR"<< LL_ENDL;
setState(STATE_ERROR);
}
@@ -226,6 +233,7 @@ void LLPluginProcessChild::idle(void)
void LLPluginProcessChild::sleep(F64 seconds)
{
+ deliverQueuedMessages();
if(mMessagePipe)
{
mMessagePipe->pump(seconds);
@@ -238,6 +246,7 @@ void LLPluginProcessChild::sleep(F64 seconds)
void LLPluginProcessChild::pump(void)
{
+ deliverQueuedMessages();
if(mMessagePipe)
{
mMessagePipe->pump(0.0f);
@@ -309,15 +318,32 @@ void LLPluginProcessChild::receiveMessageRaw(const std::string &message)
LL_DEBUGS("Plugin") << "Received from parent: " << message << LL_ENDL;
+ // Decode this message
+ LLPluginMessage parsed;
+ parsed.parse(message);
+
+ if(mBlockingRequest)
+ {
+ // We're blocking the plugin waiting for a response.
+
+ if(parsed.hasValue("blocking_response"))
+ {
+ // This is the message we've been waiting for -- fall through and send it immediately.
+ mBlockingResponseReceived = true;
+ }
+ else
+ {
+ // Still waiting. Queue this message and don't process it yet.
+ mMessageQueue.push(message);
+ return;
+ }
+ }
+
bool passMessage = true;
// FIXME: how should we handle queueing here?
{
- // Decode this message
- LLPluginMessage parsed;
- parsed.parse(message);
-
std::string message_class = parsed.getClass();
if(message_class == LLPLUGIN_MESSAGE_CLASS_INTERNAL)
{
@@ -425,7 +451,13 @@ void LLPluginProcessChild::receiveMessageRaw(const std::string &message)
void LLPluginProcessChild::receivePluginMessage(const std::string &message)
{
LL_DEBUGS("Plugin") << "Received from plugin: " << message << LL_ENDL;
-
+
+ if(mBlockingRequest)
+ {
+ //
+ LL_ERRS("Plugin") << "Can't send a message while already waiting on a blocking request -- aborting!" << LL_ENDL;
+ }
+
// Incoming message from the plugin instance
bool passMessage = true;
@@ -436,6 +468,12 @@ void LLPluginProcessChild::receivePluginMessage(const std::string &message)
// Decode this message
LLPluginMessage parsed;
parsed.parse(message);
+
+ if(parsed.hasValue("blocking_request"))
+ {
+ mBlockingRequest = true;
+ }
+
std::string message_class = parsed.getClass();
if(message_class == "base")
{
@@ -494,6 +532,19 @@ void LLPluginProcessChild::receivePluginMessage(const std::string &message)
LL_DEBUGS("Plugin") << "Passing through to parent: " << message << LL_ENDL;
writeMessageRaw(message);
}
+
+ while(mBlockingRequest)
+ {
+ // The plugin wants to block and wait for a response to this message.
+ sleep(mSleepTime); // this will pump the message pipe and process messages
+
+ if(mBlockingResponseReceived || mSocketError != APR_SUCCESS || (mMessagePipe == NULL))
+ {
+ // Response has been received, or we've hit an error state. Stop waiting.
+ mBlockingRequest = false;
+ mBlockingResponseReceived = false;
+ }
+ }
}
@@ -502,3 +553,15 @@ void LLPluginProcessChild::setState(EState state)
LL_DEBUGS("Plugin") << "setting state to " << state << LL_ENDL;
mState = state;
};
+
+void LLPluginProcessChild::deliverQueuedMessages()
+{
+ if(!mBlockingRequest)
+ {
+ while(!mMessageQueue.empty())
+ {
+ receiveMessageRaw(mMessageQueue.front());
+ mMessageQueue.pop();
+ }
+ }
+}
diff --git a/indra/llplugin/llpluginprocesschild.h b/indra/llplugin/llpluginprocesschild.h
index 0e5e85406a..1430ad7a5d 100644
--- a/indra/llplugin/llpluginprocesschild.h
+++ b/indra/llplugin/llpluginprocesschild.h
@@ -106,6 +106,11 @@ private:
LLTimer mHeartbeat;
F64 mSleepTime;
F64 mCPUElapsed;
+ bool mBlockingRequest;
+ bool mBlockingResponseReceived;
+ std::queue<std::string> mMessageQueue;
+
+ void deliverQueuedMessages();
};
diff --git a/indra/llplugin/llpluginprocessparent.cpp b/indra/llplugin/llpluginprocessparent.cpp
index 895c858979..3589b22a77 100644
--- a/indra/llplugin/llpluginprocessparent.cpp
+++ b/indra/llplugin/llpluginprocessparent.cpp
@@ -45,8 +45,51 @@ LLPluginProcessParentOwner::~LLPluginProcessParentOwner()
}
-LLPluginProcessParent::LLPluginProcessParent(LLPluginProcessParentOwner *owner)
+bool LLPluginProcessParent::sUseReadThread = false;
+apr_pollset_t *LLPluginProcessParent::sPollSet = NULL;
+bool LLPluginProcessParent::sPollsetNeedsRebuild = false;
+LLMutex *LLPluginProcessParent::sInstancesMutex;
+std::list<LLPluginProcessParent*> LLPluginProcessParent::sInstances;
+LLThread *LLPluginProcessParent::sReadThread = NULL;
+
+
+class LLPluginProcessParentPollThread: public LLThread
{
+public:
+ LLPluginProcessParentPollThread() :
+ LLThread("LLPluginProcessParentPollThread", gAPRPoolp)
+ {
+ }
+protected:
+ // Inherited from LLThread
+ /*virtual*/ void run(void)
+ {
+ while(!isQuitting() && LLPluginProcessParent::getUseReadThread())
+ {
+ LLPluginProcessParent::poll(0.1f);
+ checkPause();
+ }
+
+ // Final poll to clean up the pollset, etc.
+ LLPluginProcessParent::poll(0.0f);
+ }
+
+ // Inherited from LLThread
+ /*virtual*/ bool runCondition(void)
+ {
+ return(LLPluginProcessParent::canPollThreadRun());
+ }
+
+};
+
+LLPluginProcessParent::LLPluginProcessParent(LLPluginProcessParentOwner *owner):
+ mIncomingQueueMutex(gAPRPoolp)
+{
+ if(!sInstancesMutex)
+ {
+ sInstancesMutex = new LLMutex(gAPRPoolp);
+ }
+
mOwner = owner;
mBoundPort = 0;
mState = STATE_UNINITIALIZED;
@@ -54,18 +97,37 @@ LLPluginProcessParent::LLPluginProcessParent(LLPluginProcessParentOwner *owner)
mCPUUsage = 0.0;
mDisableTimeout = false;
mDebug = false;
+ mBlocked = false;
+ mPolledInput = false;
+ mPollFD.client_data = NULL;
mPluginLaunchTimeout = 60.0f;
mPluginLockupTimeout = 15.0f;
// Don't start the timer here -- start it when we actually launch the plugin process.
mHeartbeat.stop();
+
+ // Don't add to the global list until fully constructed.
+ {
+ LLMutexLock lock(sInstancesMutex);
+ sInstances.push_back(this);
+ }
}
LLPluginProcessParent::~LLPluginProcessParent()
{
LL_DEBUGS("Plugin") << "destructor" << LL_ENDL;
+ // Remove from the global list before beginning destruction.
+ {
+ // Make sure to get the global mutex _first_ here, to avoid a possible deadlock against LLPluginProcessParent::poll()
+ LLMutexLock lock(sInstancesMutex);
+ {
+ LLMutexLock lock2(&mIncomingQueueMutex);
+ sInstances.remove(this);
+ }
+ }
+
// Destroy any remaining shared memory regions
sharedMemoryRegionsType::iterator iter;
while((iter = mSharedMemoryRegions.begin()) != mSharedMemoryRegions.end())
@@ -77,15 +139,17 @@ LLPluginProcessParent::~LLPluginProcessParent()
mSharedMemoryRegions.erase(iter);
}
- // orphaning the process means it won't be killed when the LLProcessLauncher is destructed.
- // This is what we want -- it should exit cleanly once it notices the sockets have been closed.
- mProcess.orphan();
+ mProcess.kill();
killSockets();
}
void LLPluginProcessParent::killSockets(void)
{
- killMessagePipe();
+ {
+ LLMutexLock lock(&mIncomingQueueMutex);
+ killMessagePipe();
+ }
+
mListenSocket.reset();
mSocket.reset();
}
@@ -159,21 +223,47 @@ void LLPluginProcessParent::idle(void)
do
{
+ // process queued messages
+ mIncomingQueueMutex.lock();
+ while(!mIncomingQueue.empty())
+ {
+ LLPluginMessage message = mIncomingQueue.front();
+ mIncomingQueue.pop();
+ mIncomingQueueMutex.unlock();
+
+ receiveMessage(message);
+
+ mIncomingQueueMutex.lock();
+ }
+
+ mIncomingQueueMutex.unlock();
+
// Give time to network processing
if(mMessagePipe)
{
- if(!mMessagePipe->pump())
+ // Drain any queued outgoing messages
+ mMessagePipe->pumpOutput();
+
+ // Only do input processing here if this instance isn't in a pollset.
+ if(!mPolledInput)
{
-// LL_WARNS("Plugin") << "Message pipe hit an error state" << LL_ENDL;
- errorState();
+ mMessagePipe->pumpInput();
}
}
-
- if((mSocketError != APR_SUCCESS) && (mState <= STATE_RUNNING))
+
+ if(mState <= STATE_RUNNING)
{
- // The socket is in an error state -- the plugin is gone.
- LL_WARNS("Plugin") << "Socket hit an error state (" << mSocketError << ")" << LL_ENDL;
- errorState();
+ if(APR_STATUS_IS_EOF(mSocketError))
+ {
+ // Plugin socket was closed. This covers both normal plugin termination and plugin crashes.
+ errorState();
+ }
+ else if(mSocketError != APR_SUCCESS)
+ {
+ // The socket is in an error state -- the plugin is gone.
+ LL_WARNS("Plugin") << "Socket hit an error state (" << mSocketError << ")" << LL_ENDL;
+ errorState();
+ }
}
// If a state needs to go directly to another state (as a performance enhancement), it can set idle_again to true after calling setState().
@@ -354,7 +444,7 @@ void LLPluginProcessParent::idle(void)
break;
case STATE_HELLO:
- LL_DEBUGS("Plugin") << "received hello message" << llendl;
+ LL_DEBUGS("Plugin") << "received hello message" << LL_ENDL;
// Send the message to load the plugin
{
@@ -388,7 +478,7 @@ void LLPluginProcessParent::idle(void)
}
else if(pluginLockedUp())
{
- LL_WARNS("Plugin") << "timeout in exiting state, bailing out" << llendl;
+ LL_WARNS("Plugin") << "timeout in exiting state, bailing out" << LL_ENDL;
errorState();
}
break;
@@ -410,8 +500,7 @@ void LLPluginProcessParent::idle(void)
break;
case STATE_CLEANUP:
- // Don't do a kill here anymore -- closing the sockets is the new 'kill'.
- mProcess.orphan();
+ mProcess.kill();
killSockets();
setState(STATE_DONE);
break;
@@ -479,23 +568,323 @@ void LLPluginProcessParent::setSleepTime(F64 sleep_time, bool force_send)
void LLPluginProcessParent::sendMessage(const LLPluginMessage &message)
{
+ if(message.hasValue("blocking_response"))
+ {
+ mBlocked = false;
+
+ // reset the heartbeat timer, since there will have been no heartbeats while the plugin was blocked.
+ mHeartbeat.setTimerExpirySec(mPluginLockupTimeout);
+ }
std::string buffer = message.generate();
LL_DEBUGS("Plugin") << "Sending: " << buffer << LL_ENDL;
writeMessageRaw(buffer);
+
+ // Try to send message immediately.
+ if(mMessagePipe)
+ {
+ mMessagePipe->pumpOutput();
+ }
}
+//virtual
+void LLPluginProcessParent::setMessagePipe(LLPluginMessagePipe *message_pipe)
+{
+ bool update_pollset = false;
+
+ if(mMessagePipe)
+ {
+ // Unsetting an existing message pipe -- remove from the pollset
+ mPollFD.client_data = NULL;
+
+ // pollset needs an update
+ update_pollset = true;
+ }
+ if(message_pipe != NULL)
+ {
+ // Set up the apr_pollfd_t
+ mPollFD.p = gAPRPoolp;
+ mPollFD.desc_type = APR_POLL_SOCKET;
+ mPollFD.reqevents = APR_POLLIN|APR_POLLERR|APR_POLLHUP;
+ mPollFD.rtnevents = 0;
+ mPollFD.desc.s = mSocket->getSocket();
+ mPollFD.client_data = (void*)this;
+
+ // pollset needs an update
+ update_pollset = true;
+ }
+
+ mMessagePipe = message_pipe;
+
+ if(update_pollset)
+ {
+ dirtyPollSet();
+ }
+}
+
+//static
+void LLPluginProcessParent::dirtyPollSet()
+{
+ sPollsetNeedsRebuild = true;
+
+ if(sReadThread)
+ {
+ LL_DEBUGS("PluginPoll") << "unpausing read thread " << LL_ENDL;
+ sReadThread->unpause();
+ }
+}
+
+void LLPluginProcessParent::updatePollset()
+{
+ if(!sInstancesMutex)
+ {
+ // No instances have been created yet. There's no work to do.
+ return;
+ }
+
+ LLMutexLock lock(sInstancesMutex);
+
+ if(sPollSet)
+ {
+ LL_DEBUGS("PluginPoll") << "destroying pollset " << sPollSet << LL_ENDL;
+ // delete the existing pollset.
+ apr_pollset_destroy(sPollSet);
+ sPollSet = NULL;
+ }
+
+ std::list<LLPluginProcessParent*>::iterator iter;
+ int count = 0;
+
+ // Count the number of instances that want to be in the pollset
+ for(iter = sInstances.begin(); iter != sInstances.end(); iter++)
+ {
+ (*iter)->mPolledInput = false;
+ if((*iter)->mPollFD.client_data)
+ {
+ // This instance has a socket that needs to be polled.
+ ++count;
+ }
+ }
+
+ if(sUseReadThread && sReadThread && !sReadThread->isQuitting())
+ {
+ if(!sPollSet && (count > 0))
+ {
+#ifdef APR_POLLSET_NOCOPY
+ // The pollset doesn't exist yet. Create it now.
+ apr_status_t status = apr_pollset_create(&sPollSet, count, gAPRPoolp, APR_POLLSET_NOCOPY);
+ if(status != APR_SUCCESS)
+ {
+#endif // APR_POLLSET_NOCOPY
+ LL_WARNS("PluginPoll") << "Couldn't create pollset. Falling back to non-pollset mode." << LL_ENDL;
+ sPollSet = NULL;
+#ifdef APR_POLLSET_NOCOPY
+ }
+ else
+ {
+ LL_DEBUGS("PluginPoll") << "created pollset " << sPollSet << LL_ENDL;
+
+ // Pollset was created, add all instances to it.
+ for(iter = sInstances.begin(); iter != sInstances.end(); iter++)
+ {
+ if((*iter)->mPollFD.client_data)
+ {
+ status = apr_pollset_add(sPollSet, &((*iter)->mPollFD));
+ if(status == APR_SUCCESS)
+ {
+ (*iter)->mPolledInput = true;
+ }
+ else
+ {
+ LL_WARNS("PluginPoll") << "apr_pollset_add failed with status " << status << LL_ENDL;
+ }
+ }
+ }
+ }
+#endif // APR_POLLSET_NOCOPY
+ }
+ }
+}
+
+void LLPluginProcessParent::setUseReadThread(bool use_read_thread)
+{
+ if(sUseReadThread != use_read_thread)
+ {
+ sUseReadThread = use_read_thread;
+
+ if(sUseReadThread)
+ {
+ if(!sReadThread)
+ {
+ // start up the read thread
+ LL_INFOS("PluginPoll") << "creating read thread " << LL_ENDL;
+
+ // make sure the pollset gets rebuilt.
+ sPollsetNeedsRebuild = true;
+
+ sReadThread = new LLPluginProcessParentPollThread;
+ sReadThread->start();
+ }
+ }
+ else
+ {
+ if(sReadThread)
+ {
+ // shut down the read thread
+ LL_INFOS("PluginPoll") << "destroying read thread " << LL_ENDL;
+ delete sReadThread;
+ sReadThread = NULL;
+ }
+ }
+
+ }
+}
+
+void LLPluginProcessParent::poll(F64 timeout)
+{
+ if(sPollsetNeedsRebuild || !sUseReadThread)
+ {
+ sPollsetNeedsRebuild = false;
+ updatePollset();
+ }
+
+ if(sPollSet)
+ {
+ apr_status_t status;
+ apr_int32_t count;
+ const apr_pollfd_t *descriptors;
+ status = apr_pollset_poll(sPollSet, (apr_interval_time_t)(timeout * 1000000), &count, &descriptors);
+ if(status == APR_SUCCESS)
+ {
+ // One or more of the descriptors signalled. Call them.
+ for(int i = 0; i < count; i++)
+ {
+ LLPluginProcessParent *self = (LLPluginProcessParent *)(descriptors[i].client_data);
+ // NOTE: the descriptor returned here is actually a COPY of the original (even though we create the pollset with APR_POLLSET_NOCOPY).
+ // This means that even if the parent has set its mPollFD.client_data to NULL, the old pointer may still there in this descriptor.
+ // It's even possible that the old pointer no longer points to a valid LLPluginProcessParent.
+ // This means that we can't safely dereference the 'self' pointer here without some extra steps...
+ if(self)
+ {
+ // Make sure this pointer is still in the instances list
+ bool valid = false;
+ {
+ LLMutexLock lock(sInstancesMutex);
+ for(std::list<LLPluginProcessParent*>::iterator iter = sInstances.begin(); iter != sInstances.end(); ++iter)
+ {
+ if(*iter == self)
+ {
+ // Lock the instance's mutex before unlocking the global mutex.
+ // This avoids a possible race condition where the instance gets deleted between this check and the servicePoll() call.
+ self->mIncomingQueueMutex.lock();
+ valid = true;
+ break;
+ }
+ }
+ }
+
+ if(valid)
+ {
+ // The instance is still valid.
+ // Pull incoming messages off the socket
+ self->servicePoll();
+ self->mIncomingQueueMutex.unlock();
+ }
+ else
+ {
+ LL_DEBUGS("PluginPoll") << "detected deleted instance " << self << LL_ENDL;
+ }
+
+ }
+ }
+ }
+ else if(APR_STATUS_IS_TIMEUP(status))
+ {
+ // timed out with no incoming data. Just return.
+ }
+ else if(status == EBADF)
+ {
+ // This happens when one of the file descriptors in the pollset is destroyed, which happens whenever a plugin's socket is closed.
+ // The pollset has been or will be recreated, so just return.
+ LL_DEBUGS("PluginPoll") << "apr_pollset_poll returned EBADF" << LL_ENDL;
+ }
+ else if(status != APR_SUCCESS)
+ {
+ LL_WARNS("PluginPoll") << "apr_pollset_poll failed with status " << status << LL_ENDL;
+ }
+ }
+}
+
+void LLPluginProcessParent::servicePoll()
+{
+ bool result = true;
+
+ // poll signalled on this object's socket. Try to process incoming messages.
+ if(mMessagePipe)
+ {
+ result = mMessagePipe->pumpInput(0.0f);
+ }
+
+ if(!result)
+ {
+ // If we got a read error on input, remove this pipe from the pollset
+ apr_pollset_remove(sPollSet, &mPollFD);
+
+ // and tell the code not to re-add it
+ mPollFD.client_data = NULL;
+ }
+}
void LLPluginProcessParent::receiveMessageRaw(const std::string &message)
{
LL_DEBUGS("Plugin") << "Received: " << message << LL_ENDL;
-
- // FIXME: should this go into a queue instead?
LLPluginMessage parsed;
if(parsed.parse(message) != -1)
{
- receiveMessage(parsed);
+ if(parsed.hasValue("blocking_request"))
+ {
+ mBlocked = true;
+ }
+
+ if(mPolledInput)
+ {
+ // This is being called on the polling thread -- only do minimal processing/queueing.
+ receiveMessageEarly(parsed);
+ }
+ else
+ {
+ // This is not being called on the polling thread -- do full message processing at this time.
+ receiveMessage(parsed);
+ }
+ }
+}
+
+void LLPluginProcessParent::receiveMessageEarly(const LLPluginMessage &message)
+{
+ // NOTE: this function will be called from the polling thread. It will be called with mIncomingQueueMutex _already locked_.
+
+ bool handled = false;
+
+ std::string message_class = message.getClass();
+ if(message_class == LLPLUGIN_MESSAGE_CLASS_INTERNAL)
+ {
+ // no internal messages need to be handled early.
+ }
+ else
+ {
+ // Call out to the owner and see if they to reply
+ // TODO: Should this only happen when blocked?
+ if(mOwner != NULL)
+ {
+ handled = mOwner->receivePluginMessageEarly(message);
+ }
+ }
+
+ if(!handled)
+ {
+ // any message that wasn't handled early needs to be queued.
+ mIncomingQueue.push(message);
}
}
@@ -689,18 +1078,15 @@ bool LLPluginProcessParent::pluginLockedUpOrQuit()
{
bool result = false;
- if(!mDisableTimeout && !mDebug)
+ if(!mProcess.isRunning())
{
- if(!mProcess.isRunning())
- {
- LL_WARNS("Plugin") << "child exited" << llendl;
- result = true;
- }
- else if(pluginLockedUp())
- {
- LL_WARNS("Plugin") << "timeout" << llendl;
- result = true;
- }
+ LL_WARNS("Plugin") << "child exited" << LL_ENDL;
+ result = true;
+ }
+ else if(pluginLockedUp())
+ {
+ LL_WARNS("Plugin") << "timeout" << LL_ENDL;
+ result = true;
}
return result;
@@ -708,6 +1094,12 @@ bool LLPluginProcessParent::pluginLockedUpOrQuit()
bool LLPluginProcessParent::pluginLockedUp()
{
+ if(mDisableTimeout || mDebug || mBlocked)
+ {
+ // Never time out a plugin process in these cases.
+ return false;
+ }
+
// If the timer is running and has expired, the plugin has locked up.
return (mHeartbeat.getStarted() && mHeartbeat.hasExpired());
}
diff --git a/indra/llplugin/llpluginprocessparent.h b/indra/llplugin/llpluginprocessparent.h
index cc6c513615..4dff835b6a 100644
--- a/indra/llplugin/llpluginprocessparent.h
+++ b/indra/llplugin/llpluginprocessparent.h
@@ -41,12 +41,14 @@
#include "llpluginsharedmemory.h"
#include "lliosocket.h"
+#include "llthread.h"
class LLPluginProcessParentOwner
{
public:
virtual ~LLPluginProcessParentOwner();
virtual void receivePluginMessage(const LLPluginMessage &message) = 0;
+ virtual bool receivePluginMessageEarly(const LLPluginMessage &message) {return false;};
// This will only be called when the plugin has died unexpectedly
virtual void pluginLaunchFailed() {};
virtual void pluginDied() {};
@@ -74,6 +76,9 @@ public:
// returns true if the process has exited or we've had a fatal error
bool isDone(void);
+ // returns true if the process is currently waiting on a blocking request
+ bool isBlocked(void) { return mBlocked; };
+
void killSockets(void);
// Go to the proper error state
@@ -87,7 +92,9 @@ public:
void receiveMessage(const LLPluginMessage &message);
// Inherited from LLPluginMessagePipeOwner
- void receiveMessageRaw(const std::string &message);
+ /*virtual*/ void receiveMessageRaw(const std::string &message);
+ /*virtual*/ void receiveMessageEarly(const LLPluginMessage &message);
+ /*virtual*/ void setMessagePipe(LLPluginMessagePipe *message_pipe) ;
// This adds a memory segment shared with the client, generating a name for the segment. The name generated is guaranteed to be unique on the host.
// The caller must call removeSharedMemory first (and wait until getSharedMemorySize returns 0 for the indicated name) before re-adding a segment with the same name.
@@ -110,7 +117,11 @@ public:
void setLockupTimeout(F32 timeout) { mPluginLockupTimeout = timeout; };
F64 getCPUUsage() { return mCPUUsage; };
-
+
+ static void poll(F64 timeout);
+ static bool canPollThreadRun() { return (sPollSet || sPollsetNeedsRebuild || sUseReadThread); };
+ static void setUseReadThread(bool use_read_thread);
+ static bool getUseReadThread() { return sUseReadThread; };
private:
enum EState
@@ -160,12 +171,27 @@ private:
bool mDisableTimeout;
bool mDebug;
+ bool mBlocked;
+ bool mPolledInput;
LLProcessLauncher mDebugger;
F32 mPluginLaunchTimeout; // Somewhat longer timeout for initial launch.
F32 mPluginLockupTimeout; // If we don't receive a heartbeat in this many seconds, we declare the plugin locked up.
+ static bool sUseReadThread;
+ apr_pollfd_t mPollFD;
+ static apr_pollset_t *sPollSet;
+ static bool sPollsetNeedsRebuild;
+ static LLMutex *sInstancesMutex;
+ static std::list<LLPluginProcessParent*> sInstances;
+ static void dirtyPollSet();
+ static void updatePollset();
+ void servicePoll();
+ static LLThread *sReadThread;
+
+ LLMutex mIncomingQueueMutex;
+ std::queue<LLPluginMessage> mIncomingQueue;
};
#endif // LL_LLPLUGINPROCESSPARENT_H
diff --git a/indra/llui/llaccordionctrltab.cpp b/indra/llui/llaccordionctrltab.cpp
index 3c706ce90e..596da782ce 100644
--- a/indra/llui/llaccordionctrltab.cpp
+++ b/indra/llui/llaccordionctrltab.cpp
@@ -436,6 +436,34 @@ void LLAccordionCtrlTab::setAccordionView(LLView* panel)
addChild(panel,0);
}
+void LLAccordionCtrlTab::setTitle(const std::string& title)
+{
+ LLAccordionCtrlTabHeader* header = findChild<LLAccordionCtrlTabHeader>(DD_HEADER_NAME);
+ if (header)
+ {
+ header->setTitle(title);
+ }
+}
+
+boost::signals2::connection LLAccordionCtrlTab::setFocusReceivedCallback(const focus_signal_t::slot_type& cb)
+{
+ LLAccordionCtrlTabHeader* header = findChild<LLAccordionCtrlTabHeader>(DD_HEADER_NAME);
+ if (header)
+ {
+ return header->setFocusReceivedCallback(cb);
+ }
+ return boost::signals2::connection();
+}
+
+boost::signals2::connection LLAccordionCtrlTab::setFocusLostCallback(const focus_signal_t::slot_type& cb)
+{
+ LLAccordionCtrlTabHeader* header = findChild<LLAccordionCtrlTabHeader>(DD_HEADER_NAME);
+ if (header)
+ {
+ return header->setFocusLostCallback(cb);
+ }
+ return boost::signals2::connection();
+}
LLView* LLAccordionCtrlTab::findContainerView()
{
diff --git a/indra/llui/llaccordionctrltab.h b/indra/llui/llaccordionctrltab.h
index fb19d17e99..de254ed3eb 100644
--- a/indra/llui/llaccordionctrltab.h
+++ b/indra/llui/llaccordionctrltab.h
@@ -113,6 +113,12 @@ public:
void setAccordionView(LLView* panel);
LLView* getAccordionView() { return mContainerPanel; };
+ // Set text in LLAccordionCtrlTabHeader
+ void setTitle(const std::string& title);
+
+ boost::signals2::connection setFocusReceivedCallback(const focus_signal_t::slot_type& cb);
+ boost::signals2::connection setFocusLostCallback(const focus_signal_t::slot_type& cb);
+
bool getCollapsible() {return mCollapsible;};
void setCollapsible(bool collapsible) {mCollapsible = collapsible;};
diff --git a/indra/llui/llflatlistview.cpp b/indra/llui/llflatlistview.cpp
index ec247b25c3..bea2572ff8 100644
--- a/indra/llui/llflatlistview.cpp
+++ b/indra/llui/llflatlistview.cpp
@@ -297,6 +297,27 @@ void LLFlatListView::setNoItemsCommentText(const std::string& comment_text)
mNoItemsCommentTextbox->setValue(comment_text);
}
+U32 LLFlatListView::size(const bool only_visible_items) const
+{
+ if (only_visible_items)
+ {
+ U32 size = 0;
+ for (pairs_const_iterator_t
+ iter = mItemPairs.begin(),
+ iter_end = mItemPairs.end();
+ iter != iter_end; ++iter)
+ {
+ if ((*iter)->first->getVisible())
+ ++size;
+ }
+ return size;
+ }
+ else
+ {
+ return mItemPairs.size();
+ }
+}
+
void LLFlatListView::clear()
{
// do not use LLView::deleteAllChildren to avoid removing nonvisible items. drag-n-drop for ex.
@@ -426,7 +447,7 @@ void LLFlatListView::rearrangeItems()
{
static LLUICachedControl<S32> scrollbar_size ("UIScrollbarSize", 0);
- setNoItemsCommentVisible(mItemPairs.empty());
+ setNoItemsCommentVisible(0==size());
if (mItemPairs.empty()) return;
@@ -745,19 +766,43 @@ LLRect LLFlatListView::getLastSelectedItemRect()
void LLFlatListView::selectFirstItem ()
{
// No items - no actions!
- if (mItemPairs.empty()) return;
+ if (0 == size()) return;
- selectItemPair(mItemPairs.front(), true);
- ensureSelectedVisible();
+ // Select first visible item
+ for (pairs_iterator_t
+ iter = mItemPairs.begin(),
+ iter_end = mItemPairs.end();
+ iter != iter_end; ++iter)
+ {
+ // skip invisible items
+ if ( (*iter)->first->getVisible() )
+ {
+ selectItemPair(*iter, true);
+ ensureSelectedVisible();
+ break;
+ }
+ }
}
void LLFlatListView::selectLastItem ()
{
// No items - no actions!
- if (mItemPairs.empty()) return;
+ if (0 == size()) return;
- selectItemPair(mItemPairs.back(), true);
- ensureSelectedVisible();
+ // Select last visible item
+ for (pairs_list_t::reverse_iterator
+ r_iter = mItemPairs.rbegin(),
+ r_iter_end = mItemPairs.rend();
+ r_iter != r_iter_end; ++r_iter)
+ {
+ // skip invisible items
+ if ( (*r_iter)->first->getVisible() )
+ {
+ selectItemPair(*r_iter, true);
+ ensureSelectedVisible();
+ break;
+ }
+ }
}
void LLFlatListView::ensureSelectedVisible()
@@ -775,14 +820,14 @@ void LLFlatListView::ensureSelectedVisible()
bool LLFlatListView::selectNextItemPair(bool is_up_direction, bool reset_selection)
{
// No items - no actions!
- if ( !mItemPairs.size() )
+ if ( 0 == size() )
return false;
-
- item_pair_t* to_sel_pair = NULL;
- item_pair_t* cur_sel_pair = NULL;
if ( mSelectedItemPairs.size() )
{
+ item_pair_t* to_sel_pair = NULL;
+ item_pair_t* cur_sel_pair = NULL;
+
// Take the last selected pair
cur_sel_pair = mSelectedItemPairs.back();
// Bases on given direction choose next item to select
@@ -816,42 +861,42 @@ bool LLFlatListView::selectNextItemPair(bool is_up_direction, bool reset_selecti
}
}
}
+
+ if ( to_sel_pair )
+ {
+ bool select = true;
+ if ( reset_selection )
+ {
+ // Reset current selection if we were asked about it
+ resetSelection();
+ }
+ else
+ {
+ // If item already selected and no reset request than we should deselect last selected item.
+ select = (mSelectedItemPairs.end() == std::find(mSelectedItemPairs.begin(), mSelectedItemPairs.end(), to_sel_pair));
+ }
+ // Select/Deselect next item
+ selectItemPair(select ? to_sel_pair : cur_sel_pair, select);
+ return true;
+ }
}
else
{
// If there weren't selected items then choose the first one bases on given direction
- cur_sel_pair = (is_up_direction) ? mItemPairs.back() : mItemPairs.front();
// Force selection to first item
- to_sel_pair = cur_sel_pair;
- }
-
-
- if ( to_sel_pair )
- {
- bool select = true;
-
- if ( reset_selection )
- {
- // Reset current selection if we were asked about it
- resetSelection();
- }
+ if (is_up_direction)
+ selectLastItem();
else
- {
- // If item already selected and no reset request than we should deselect last selected item.
- select = (mSelectedItemPairs.end() == std::find(mSelectedItemPairs.begin(), mSelectedItemPairs.end(), to_sel_pair));
- }
-
- // Select/Deselect next item
- selectItemPair(select ? to_sel_pair : cur_sel_pair, select);
-
+ selectFirstItem();
return true;
}
+
return false;
}
BOOL LLFlatListView::canSelectAll() const
{
- return !mItemPairs.empty() && mAllowSelection && mMultipleSelection;
+ return 0 != size() && mAllowSelection && mMultipleSelection;
}
void LLFlatListView::selectAll()
@@ -1167,4 +1212,51 @@ void LLFlatListViewEx::updateNoItemsMessage(const std::string& filter_string)
}
+void LLFlatListViewEx::setFilterSubString(const std::string& filter_str)
+{
+ if (0 != LLStringUtil::compareInsensitive(filter_str, mFilterSubString))
+ {
+ mFilterSubString = filter_str;
+ updateNoItemsMessage(mFilterSubString);
+ filterItems();
+ }
+}
+
+void LLFlatListViewEx::filterItems()
+{
+ typedef std::vector <LLPanel*> item_panel_list_t;
+
+ std::string cur_filter = mFilterSubString;
+ LLStringUtil::toUpper(cur_filter);
+
+ LLSD action;
+ action.with("match_filter", cur_filter);
+
+ item_panel_list_t items;
+ getItems(items);
+
+ for (item_panel_list_t::iterator
+ iter = items.begin(),
+ iter_end = items.end();
+ iter != iter_end; ++iter)
+ {
+ LLPanel* pItem = (*iter);
+ // 0 signifies that filter is matched,
+ // i.e. we don't hide items that don't support 'match_filter' action, separators etc.
+ if (0 == pItem->notify(action))
+ {
+ pItem->setVisible(true);
+ }
+ else
+ {
+ // TODO: implement (re)storing of current selection.
+ selectItem(pItem, false);
+ pItem->setVisible(false);
+ }
+ }
+
+ rearrangeItems();
+ notifyParentItemsRectChanged();
+}
+
//EOF
diff --git a/indra/llui/llflatlistview.h b/indra/llui/llflatlistview.h
index 4f718ab0dc..6395805aab 100644
--- a/indra/llui/llflatlistview.h
+++ b/indra/llui/llflatlistview.h
@@ -264,9 +264,8 @@ public:
/** Get number of selected items in the list */
U32 numSelected() const {return mSelectedItemPairs.size(); }
- /** Get number of items in the list */
- U32 size() const { return mItemPairs.size(); }
-
+ /** Get number of (visible) items in the list */
+ U32 size(const bool only_visible_items = true) const;
/** Removes all items from the list */
virtual void clear();
@@ -464,6 +463,17 @@ public:
void setNoItemsMsg(const std::string& msg) { mNoItemsMsg = msg; }
void setNoFilteredItemsMsg(const std::string& msg) { mNoFilteredItemsMsg = msg; }
+ /**
+ * Sets up new filter string and filters the list.
+ */
+ void setFilterSubString(const std::string& filter_str);
+
+ /**
+ * Filters the list, rearranges and notifies parent about shape changes.
+ * Derived classes may want to overload rearrangeItems() to exclude repeated separators after filtration.
+ */
+ void filterItems();
+
protected:
LLFlatListViewEx(const Params& p);
@@ -478,6 +488,7 @@ protected:
private:
std::string mNoFilteredItemsMsg;
std::string mNoItemsMsg;
+ std::string mFilterSubString;
};
#endif
diff --git a/indra/llui/llspinctrl.cpp b/indra/llui/llspinctrl.cpp
index 491cd7b6f3..b47f21ed8a 100644
--- a/indra/llui/llspinctrl.cpp
+++ b/indra/llui/llspinctrl.cpp
@@ -457,3 +457,8 @@ BOOL LLSpinCtrl::handleKeyHere(KEY key, MASK mask)
return FALSE;
}
+BOOL LLSpinCtrl::handleDoubleClick(S32 x, S32 y, MASK mask)
+{
+ // just treat a double click as a second click
+ return handleMouseDown(x, y, mask);
+}
diff --git a/indra/llui/llspinctrl.h b/indra/llui/llspinctrl.h
index 00d6f86f83..06201255d2 100644
--- a/indra/llui/llspinctrl.h
+++ b/indra/llui/llspinctrl.h
@@ -94,6 +94,7 @@ public:
virtual BOOL handleScrollWheel(S32 x,S32 y,S32 clicks);
virtual BOOL handleKeyHere(KEY key, MASK mask);
+ virtual BOOL handleDoubleClick(S32 x, S32 y, MASK mask);
void onEditorCommit(const LLSD& data);
static void onEditorGainFocus(LLFocusableElement* caller, void *userdata);
diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp
index a96ad7e796..f8fde0319e 100644
--- a/indra/llwindow/llwindowwin32.cpp
+++ b/indra/llwindow/llwindowwin32.cpp
@@ -2881,10 +2881,13 @@ void LLSplashScreenWin32::updateImpl(const std::string& mesg)
if( output_str_len>1024 )
return;
- WCHAR w_mesg[1024];
+ WCHAR w_mesg[1025];//big enought to keep null terminatos
MultiByteToWideChar (CP_UTF8, 0, mesg.c_str(), mesg.length(), w_mesg, output_str_len);
+ //looks like MultiByteToWideChar didn't add null terminator to converted string, see EXT-4858
+ w_mesg[output_str_len] = 0;
+
SendDlgItemMessage(mWindow,
666, // HACK: text id
WM_SETTEXT,
diff --git a/indra/media_plugins/webkit/mac_volume_catcher.cpp b/indra/media_plugins/webkit/mac_volume_catcher.cpp
index 9788f10a58..38727e5965 100644
--- a/indra/media_plugins/webkit/mac_volume_catcher.cpp
+++ b/indra/media_plugins/webkit/mac_volume_catcher.cpp
@@ -1,5 +1,5 @@
/**
- * @file dummy_volume_catcher.cpp
+ * @file mac_volume_catcher.cpp
* @brief A Mac OS X specific hack to control the volume level of all audio channels opened by a process.
*
* @cond
@@ -98,7 +98,7 @@ VolumeCatcherImpl *VolumeCatcherImpl::getInstance()
VolumeCatcherImpl::VolumeCatcherImpl()
{
mVolume = 1.0; // default to full volume
- mPan = 0.5; // and center pan
+ mPan = 0.0; // and center pan
ComponentDescription desc;
desc.componentType = kAudioUnitType_Output;
diff --git a/indra/media_plugins/webkit/windows_volume_catcher.cpp b/indra/media_plugins/webkit/windows_volume_catcher.cpp
index fdff28c2c1..ef96102a0a 100644
--- a/indra/media_plugins/webkit/windows_volume_catcher.cpp
+++ b/indra/media_plugins/webkit/windows_volume_catcher.cpp
@@ -34,7 +34,6 @@
#include "volume_catcher.h"
#include <windows.h>
#include "llsingleton.h"
-
class VolumeCatcherImpl : public LLSingleton<VolumeCatcherImpl>
{
friend LLSingleton<VolumeCatcherImpl>;
@@ -48,8 +47,8 @@ private:
VolumeCatcherImpl();
~VolumeCatcherImpl();
- typedef void (*set_volume_func_t)(F32);
- typedef void (*set_mute_func_t)(bool);
+ typedef void (WINAPI *set_volume_func_t)(F32);
+ typedef void (WINAPI *set_mute_func_t)(bool);
set_volume_func_t mSetVolumeFunc;
set_mute_func_t mSetMuteFunc;
@@ -57,7 +56,6 @@ private:
F32 mVolume;
F32 mPan;
};
-
VolumeCatcherImpl::VolumeCatcherImpl()
: mVolume(1.0f), // default volume is max
mPan(0.f) // default pan is centered
@@ -77,10 +75,8 @@ VolumeCatcherImpl::~VolumeCatcherImpl()
void VolumeCatcherImpl::setVolume(F32 volume)
{
- //F32 left_volume = volume * min(1.f, 1.f - mPan);
- //F32 right_volume = volume * max(0.f, 1.f + mPan);
-
mVolume = volume;
+
if (mSetMuteFunc)
{
mSetMuteFunc(volume == 0.f);
@@ -123,3 +119,4 @@ void VolumeCatcher::pump()
// No periodic tasks are necessary for this implementation.
}
+
diff --git a/indra/media_plugins/winmmshim/winmm_shim.cpp b/indra/media_plugins/winmmshim/winmm_shim.cpp
index f7df3b19a0..6fbf517d7c 100644
--- a/indra/media_plugins/winmmshim/winmm_shim.cpp
+++ b/indra/media_plugins/winmmshim/winmm_shim.cpp
@@ -120,8 +120,8 @@ extern "C"
{ // zero out the audio buffer when muted
memset(pwh->lpData, 0, pwh->dwBufferLength);
}
- else
- {
+ else if (sVolumeLevel != 1.f)
+ { // need to apply volume level
wave_out_map_t::iterator found_it = sWaveOuts.find(hwo);
if (found_it != sWaveOuts.end())
{
@@ -144,10 +144,11 @@ extern "C"
// copy volume level 4 times into 64 bit MMX register
__m64 volume_64 = _mm_set_pi16(volume_16, volume_16, volume_16, volume_16);
- __m64 *sample_64;
+ __m64* sample_64;
+ __m64* last_sample_64 = (__m64*)(pwh->lpData + pwh->dwBufferLength - sizeof(__m64));
// for everything that can be addressed in 64 bit multiples...
for (sample_64 = (__m64*)pwh->lpData;
- sample_64 < (__m64*)(pwh->lpData + pwh->dwBufferLength);
+ sample_64 <= last_sample_64;
++sample_64)
{
//...multiply the samples by the volume...
@@ -162,10 +163,11 @@ extern "C"
// the captain has turned off the MMX sign, you are now free to use floating point registers
_mm_empty();
+ // finish remaining samples that didn't fit into 64 bit register
for (short* sample_16 = (short*)sample_64;
sample_16 < (short*)(pwh->lpData + pwh->dwBufferLength);
++sample_16)
- { // finish remaining samples that didn't fit into 64 bit register
+ {
*sample_16 = (*sample_16 * volume_16) >> 15;
}
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 835a9aacd5..a1e3b679ee 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -1588,7 +1588,10 @@ if (WINDOWS)
--login_channel=${VIEWER_LOGIN_CHANNEL}
--source=${CMAKE_CURRENT_SOURCE_DIR}
--touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/touched.bat
- DEPENDS ${VIEWER_BINARY_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
+ DEPENDS
+ ${VIEWER_BINARY_NAME}
+ ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
+ ${COPY_INPUT_DEPENDENCIES}
)
add_custom_target(package ALL DEPENDS
diff --git a/indra/newview/English.lproj/InfoPlist.strings b/indra/newview/English.lproj/InfoPlist.strings
index 02c3dfc6e0..4831dc7273 100644
--- a/indra/newview/English.lproj/InfoPlist.strings
+++ b/indra/newview/English.lproj/InfoPlist.strings
@@ -2,6 +2,6 @@
CFBundleName = "Second Life";
-CFBundleShortVersionString = "Second Life version 2.0.0.203110";
-CFBundleGetInfoString = "Second Life version 2.0.0.203110, Copyright 2004-2009 Linden Research, Inc.";
+CFBundleShortVersionString = "Second Life version 2.0.2.0";
+CFBundleGetInfoString = "Second Life version 2.0.2.0, Copyright 2004-2009 Linden Research, Inc.";
diff --git a/indra/newview/Info-SecondLife.plist b/indra/newview/Info-SecondLife.plist
index 4cb01a0f33..a7241cac89 100644
--- a/indra/newview/Info-SecondLife.plist
+++ b/indra/newview/Info-SecondLife.plist
@@ -32,7 +32,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
- <string>2.0.0.203110</string>
+ <string>2.0.2.0</string>
<key>CSResourcesFileMapped</key>
<true/>
</dict>
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 600c548212..be32d92ea1 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -5585,6 +5585,19 @@
<key>Value</key>
<integer>8</integer>
</map>
+
+ <key>PluginUseReadThread</key>
+ <map>
+ <key>Comment</key>
+ <string>Use a separate thread to read incoming messages from plugins</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>0</integer>
+ </map>
+
<key>PrecachingDelay</key>
<map>
<key>Comment</key>
@@ -5838,7 +5851,40 @@
<key>Value</key>
<real>1.0</real>
</map>
- <key>RecentItemsSortOrder</key>
+ <key>MediaRollOffRate</key>
+ <map>
+ <key>Comment</key>
+ <string>Multiplier to change rate of media attenuation</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>F32</string>
+ <key>Value</key>
+ <real>0.2</real>
+ </map>
+ <key>MediaRollOffMin</key>
+ <map>
+ <key>Comment</key>
+ <string>Adjusts the distance at which media attentuation starts</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>F32</string>
+ <key>Value</key>
+ <real>7.0</real>
+ </map>
+ <key>MediaRollOffMax</key>
+ <map>
+ <key>Comment</key>
+ <string>Distance at which media volume is set to 0</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>F32</string>
+ <key>Value</key>
+ <real>30.0</real>
+ </map>
+ <key>RecentItemsSortOrder</key>
<map>
<key>Comment</key>
<string>Specifies sort key for recent inventory items (+0 = name, +1 = date, +2 = folders always by name, +4 = system folders to top)</string>
@@ -7983,17 +8029,6 @@
<key>Value</key>
<integer>0</integer>
</map>
- <key>ShowDebugAppearanceEditor</key>
- <map>
- <key>Comment</key>
- <string>Show debugging appearance editor</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>Boolean</string>
- <key>Value</key>
- <integer>0</integer>
- </map>
<key>ShowEmptyFoldersWhenSearching</key>
<map>
<key>Comment</key>
diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp
index 8a880e5ace..b5fde0baca 100644
--- a/indra/newview/llagentwearables.cpp
+++ b/indra/newview/llagentwearables.cpp
@@ -1974,7 +1974,11 @@ void LLAgentWearables::userAttachMultipleAttachments(LLInventoryModel::item_arra
msg->nextBlockFast(_PREHASH_ObjectData );
msg->addUUIDFast(_PREHASH_ItemID, item->getLinkedUUID());
msg->addUUIDFast(_PREHASH_OwnerID, item->getPermissions().getOwner());
+#if ENABLE_MULTIATTACHMENTS
+ msg->addU8Fast(_PREHASH_AttachmentPt, 0 | ATTACHMENT_ADD );
+#else
msg->addU8Fast(_PREHASH_AttachmentPt, 0 ); // Wear at the previous or default attachment point
+#endif
pack_permissions_slam(msg, item->getFlags(), item->getPermissions());
msg->addStringFast(_PREHASH_Name, item->getName());
msg->addStringFast(_PREHASH_Description, item->getDescription());
diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp
index 5586b3cd4d..e93e29ecde 100644
--- a/indra/newview/llappearancemgr.cpp
+++ b/indra/newview/llappearancemgr.cpp
@@ -1092,7 +1092,8 @@ void LLAppearanceMgr::updateAppearanceFromCOF()
}
//preparing the list of wearables in the correct order for LLAgentWearables
- std::sort(wear_items.begin(), wear_items.end(), sort_by_description);
+ sortItemsByActualDescription(wear_items);
+
LLWearableHoldingPattern* holder = new LLWearableHoldingPattern;
@@ -1910,6 +1911,13 @@ bool LLAppearanceMgr::moveWearable(LLViewerInventoryItem* item, bool closer_to_b
return result;
}
+//static
+void LLAppearanceMgr::sortItemsByActualDescription(LLInventoryModel::item_array_t& items)
+{
+ if (items.size() < 2) return;
+
+ std::sort(items.begin(), items.end(), sort_by_description);
+}
//#define DUMP_CAT_VERBOSE
diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h
index a308a3efa9..516dada39d 100644
--- a/indra/newview/llappearancemgr.h
+++ b/indra/newview/llappearancemgr.h
@@ -48,6 +48,8 @@ class LLAppearanceMgr: public LLSingleton<LLAppearanceMgr>
friend class LLSingleton<LLAppearanceMgr>;
public:
+ typedef std::vector<LLInventoryModel::item_array_t> wearables_by_type_t;
+
void updateAppearanceFromCOF();
bool needToSaveCOF();
void updateCOF(const LLUUID& category, bool append = false);
@@ -143,17 +145,17 @@ public:
bool moveWearable(LLViewerInventoryItem* item, bool closer_to_body);
+ static void sortItemsByActualDescription(LLInventoryModel::item_array_t& items);
+
+ //Divvy items into arrays by wearable type
+ static void divvyWearablesByType(const LLInventoryModel::item_array_t& items, wearables_by_type_t& items_by_type);
+
protected:
LLAppearanceMgr();
~LLAppearanceMgr();
private:
- typedef std::vector<LLInventoryModel::item_array_t> wearables_by_type_t;
-
- //Divvy items into arrays by wearable type
- static void divvyWearablesByType(const LLInventoryModel::item_array_t& items, wearables_by_type_t& items_by_type);
-
//Check ordering information on wearables stored in links' descriptions and update if it is invalid
void updateClothingOrderingInfo();
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 51af6b50b4..66aba13aba 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -1545,6 +1545,9 @@ bool LLAppViewer::cleanup()
LLViewerMedia::saveCookieFile();
+ // Stop the plugin read thread if it's running.
+ LLPluginProcessParent::setUseReadThread(false);
+
llinfos << "Shutting down Threads" << llendflush;
// Let threads finish
@@ -3969,9 +3972,7 @@ void LLAppViewer::idleNetwork()
{
LLMemType mt_in(LLMemType::MTYPE_IDLE_NETWORK);
pingMainloopTimeout("idleNetwork");
- LLError::LLCallStacks::clear() ;
- llpushcallstacks ;
-
+
gObjectList.mNumNewObjects = 0;
S32 total_decoded = 0;
@@ -3981,7 +3982,6 @@ void LLAppViewer::idleNetwork()
// deal with any queued name requests and replies.
gCacheName->processPending();
- llpushcallstacks ;
LLTimer check_message_timer;
// Read all available packets from network
const S64 frame_count = gFrameCount; // U32->S64
@@ -4051,16 +4051,13 @@ void LLAppViewer::idleNetwork()
gPrintMessagesThisFrame = FALSE;
}
}
- llpushcallstacks ;
LLViewerStats::getInstance()->mNumNewObjectsStat.addValue(gObjectList.mNumNewObjects);
// Retransmit unacknowledged packets.
gXferManager->retransmitUnackedPackets();
gAssetStorage->checkForTimeouts();
- llpushcallstacks ;
gViewerThrottle.updateDynamicThrottle();
- llpushcallstacks ;
// Check that the circuit between the viewer and the agent's current
// region is still alive
LLViewerRegion *agent_region = gAgent.getRegion();
@@ -4076,7 +4073,6 @@ void LLAppViewer::idleNetwork()
mAgentRegionLastID = this_region_id;
mAgentRegionLastAlive = this_region_alive;
}
- llpushcallstacks ;
}
void LLAppViewer::disconnectViewer()
diff --git a/indra/newview/llchannelmanager.cpp b/indra/newview/llchannelmanager.cpp
index 4f9434030f..fafa315a59 100644
--- a/indra/newview/llchannelmanager.cpp
+++ b/indra/newview/llchannelmanager.cpp
@@ -243,3 +243,19 @@ void LLChannelManager::killToastsFromChannel(const LLUUID& channel_id, const LLS
}
}
+// static
+LLNotificationsUI::LLScreenChannel* LLChannelManager::getNotificationScreenChannel()
+{
+ LLNotificationsUI::LLScreenChannel* channel = static_cast<LLNotificationsUI::LLScreenChannel*>
+ (LLNotificationsUI::LLChannelManager::getInstance()->
+ findChannelByID(LLUUID(gSavedSettings.getString("NotificationChannelUUID"))));
+
+ if (channel == NULL)
+ {
+ llwarns << "Can't find screen channel by NotificationChannelUUID" << llendl;
+ llassert(!"Can't find screen channel by NotificationChannelUUID");
+ }
+
+ return channel;
+}
+
diff --git a/indra/newview/llchannelmanager.h b/indra/newview/llchannelmanager.h
index c2be39122f..8c725f2660 100644
--- a/indra/newview/llchannelmanager.h
+++ b/indra/newview/llchannelmanager.h
@@ -114,6 +114,11 @@ public:
*/
void killToastsFromChannel(const LLUUID& channel_id, const LLScreenChannel::Matcher& matcher);
+ /**
+ * Returns notification screen channel.
+ */
+ static LLNotificationsUI::LLScreenChannel* getNotificationScreenChannel();
+
private:
LLScreenChannel* createChannel(LLChannelManager::Params& p);
diff --git a/indra/newview/llcofwearables.cpp b/indra/newview/llcofwearables.cpp
index f0442ee3f6..1925b818f2 100644
--- a/indra/newview/llcofwearables.cpp
+++ b/indra/newview/llcofwearables.cpp
@@ -34,10 +34,13 @@
#include "llcofwearables.h"
+#include "llagentdata.h"
#include "llappearancemgr.h"
#include "llinventory.h"
-#include "llinventoryitemslist.h"
#include "llinventoryfunctions.h"
+#include "llwearableitemslist.h"
+
+static LLRegisterPanelClassWrapper<LLCOFAccordionListAdaptor> t_cof_accodion_list_adaptor("accordion_list_adaptor");
static LLRegisterPanelClassWrapper<LLCOFWearables> t_cof_wearables("cof_wearables");
@@ -91,50 +94,187 @@ void LLCOFWearables::onSelectionChange(LLFlatListView* selected_list)
void LLCOFWearables::refresh()
{
+ typedef std::vector<LLSD> values_vector_t;
+ typedef std::map<LLFlatListView*, values_vector_t> selection_map_t;
+
+ selection_map_t preserve_selection;
+
+ // Save current selection
+ mAttachments->getSelectedValues(preserve_selection[mAttachments]);
+ mClothing->getSelectedValues(preserve_selection[mClothing]);
+ mBodyParts->getSelectedValues(preserve_selection[mBodyParts]);
+
clear();
LLInventoryModel::cat_array_t cats;
- LLInventoryModel::item_array_t items;
+ LLInventoryModel::item_array_t cof_items;
+
+ gInventory.collectDescendents(LLAppearanceMgr::getInstance()->getCOF(), cats, cof_items, LLInventoryModel::EXCLUDE_TRASH);
+
+ populateAttachmentsAndBodypartsLists(cof_items);
+
+
+ LLAppearanceMgr::wearables_by_type_t clothing_by_type(WT_COUNT);
+ LLAppearanceMgr::getInstance()->divvyWearablesByType(cof_items, clothing_by_type);
- gInventory.collectDescendents(LLAppearanceMgr::getInstance()->getCOF(), cats, items, LLInventoryModel::EXCLUDE_TRASH);
- if (items.empty()) return;
+ populateClothingList(clothing_by_type);
- for (U32 i = 0; i < items.size(); ++i)
+ // Restore previous selection
+ for (selection_map_t::iterator
+ iter = preserve_selection.begin(),
+ iter_end = preserve_selection.end();
+ iter != iter_end; ++iter)
{
- LLViewerInventoryItem* item = items.get(i);
- if (!item) continue;
+ LLFlatListView* list = iter->first;
+ const values_vector_t& values = iter->second;
+ for (values_vector_t::const_iterator
+ value_it = values.begin(),
+ value_it_end = values.end();
+ value_it != value_it_end; ++value_it)
+ {
+ list->selectItemByValue(*value_it);
+ }
+ }
+}
- LLPanelInventoryListItem* item_panel = LLPanelInventoryListItem::createItemPanel(item);
- if (!item_panel) continue;
- switch (item->getType())
+void LLCOFWearables::populateAttachmentsAndBodypartsLists(const LLInventoryModel::item_array_t& cof_items)
+{
+ for (U32 i = 0; i < cof_items.size(); ++i)
+ {
+ LLViewerInventoryItem* item = cof_items.get(i);
+ if (!item) continue;
+
+ const LLAssetType::EType item_type = item->getType();
+ if (item_type == LLAssetType::AT_CLOTHING) continue;
+ LLPanelInventoryListItemBase* item_panel = NULL;
+ if (item_type == LLAssetType::AT_OBJECT)
{
- case LLAssetType::AT_OBJECT:
- mAttachments->addItem(item_panel, item->getUUID(), ADD_BOTTOM, false);
- break;
+ item_panel = LLPanelInventoryListItemBase::create(item);
+ mAttachments->addItem(item_panel, item->getUUID(), ADD_BOTTOM, false);
+ }
+ else if (item_type == LLAssetType::AT_BODYPART)
+ {
+ item_panel = buildBodypartListItem(item);
+ if (!item_panel) continue;
- case LLAssetType::AT_BODYPART:
- mBodyParts->addItem(item_panel, item->getUUID(), ADD_BOTTOM, false);
- break;
+ mBodyParts->addItem(item_panel, item->getUUID(), ADD_BOTTOM, false);
+ }
+ }
- case LLAssetType::AT_CLOTHING:
- mClothing->addItem(item_panel, item->getUUID(), ADD_BOTTOM, false);
- break;
+ if (mAttachments->size())
+ {
+ mAttachments->sort(); //*TODO by Name
+ mAttachments->notify(REARRANGE); //notifying the parent about the list's size change (cause items were added with rearrange=false)
+ }
- default: break;
- }
+ if (mBodyParts->size())
+ {
+ mBodyParts->sort(); //*TODO by name
}
- mAttachments->sort(); //*TODO by Name
- mAttachments->notify(REARRANGE); //notifying the parent about the list's size change (cause items were added with rearrange=false)
+ mBodyParts->notify(REARRANGE);
+}
+
+//create a clothing list item, update verbs and show/hide line separator
+LLPanelClothingListItem* LLCOFWearables::buildClothingListItem(LLViewerInventoryItem* item, bool first, bool last)
+{
+ llassert(item);
+
+ LLPanelClothingListItem* item_panel = LLPanelClothingListItem::create(item);
+ if (!item_panel) return NULL;
+
+ //updating verbs
+ //we don't need to use permissions of a link but of an actual/linked item
+ if (item->getLinkedItem()) item = item->getLinkedItem();
+
+ bool allow_modify = item->getPermissions().allowModifyBy(gAgentID);
- mClothing->sort(); //*TODO by actual inventory item description
- mClothing->notify(REARRANGE);
+ item_panel->setShowLockButton(!allow_modify);
+ item_panel->setShowEditButton(allow_modify);
+
+ item_panel->setShowMoveUpButton(!first);
+ item_panel->setShowMoveDownButton(!last);
+
+ //setting callbacks
+ //*TODO move that item panel's inner structure disclosing stuff into the panels
+ item_panel->childSetAction("btn_delete", mCOFCallbacks.mDeleteWearable);
+ item_panel->childSetAction("btn_move_up", mCOFCallbacks.mMoveWearableCloser);
+ item_panel->childSetAction("btn_move_down", mCOFCallbacks.mMoveWearableFurther);
+ item_panel->childSetAction("btn_edit", mCOFCallbacks.mEditWearable);
- mBodyParts->sort(); //*TODO by name
- mBodyParts->notify(REARRANGE);
+ //turning on gray separator line for the last item in the items group of the same wearable type
+ item_panel->childSetVisible("wearable_type_separator_panel", last);
+
+ return item_panel;
}
+LLPanelBodyPartsListItem* LLCOFWearables::buildBodypartListItem(LLViewerInventoryItem* item)
+{
+ llassert(item);
+
+ LLPanelBodyPartsListItem* item_panel = LLPanelBodyPartsListItem::create(item);
+ if (!item_panel) return NULL;
+
+ //updating verbs
+ //we don't need to use permissions of a link but of an actual/linked item
+ if (item->getLinkedItem()) item = item->getLinkedItem();
+
+ bool allow_modify = item->getPermissions().allowModifyBy(gAgentID);
+ item_panel->setShowLockButton(!allow_modify);
+ item_panel->setShowEditButton(allow_modify);
+
+ //setting callbacks
+ //*TODO move that item panel's inner structure disclosing stuff into the panels
+ item_panel->childSetAction("btn_delete", mCOFCallbacks.mDeleteWearable);
+ item_panel->childSetAction("btn_edit", mCOFCallbacks.mEditWearable);
+
+ return item_panel;
+}
+
+void LLCOFWearables::populateClothingList(LLAppearanceMgr::wearables_by_type_t& clothing_by_type)
+{
+ llassert(clothing_by_type.size() == WT_COUNT);
+
+ for (U32 type = WT_SHIRT; type < WT_COUNT; ++type)
+ {
+ U32 size = clothing_by_type[type].size();
+ if (!size) continue;
+
+ LLAppearanceMgr::sortItemsByActualDescription(clothing_by_type[type]);
+
+ for (U32 i = 0; i < size; i++)
+ {
+ LLViewerInventoryItem* item = clothing_by_type[type][i];
+
+ LLPanelClothingListItem* item_panel = buildClothingListItem(item, i == 0, i == size - 1);
+ if (!item_panel) continue;
+
+ mClothing->addItem(item_panel, item->getUUID(), ADD_BOTTOM, false);
+ }
+ }
+
+ addClothingTypesDummies(clothing_by_type);
+
+ mClothing->notify(REARRANGE);
+}
+
+//adding dummy items for missing wearable types
+void LLCOFWearables::addClothingTypesDummies(const LLAppearanceMgr::wearables_by_type_t& clothing_by_type)
+{
+ llassert(clothing_by_type.size() == WT_COUNT);
+
+ for (U32 type = WT_SHIRT; type < WT_COUNT; type++)
+ {
+ U32 size = clothing_by_type[type].size();
+ if (size) continue;
+
+ EWearableType w_type = static_cast<EWearableType>(type);
+ LLPanelInventoryListItemBase* item_panel = LLPanelDummyClothingListItem::create(w_type);
+ if(!item_panel) continue;
+ mClothing->addItem(item_panel, LLUUID::null, ADD_BOTTOM, false);
+ }
+}
LLUUID LLCOFWearables::getSelectedUUID()
{
diff --git a/indra/newview/llcofwearables.h b/indra/newview/llcofwearables.h
index 58d67ed32f..2d26bf781f 100644
--- a/indra/newview/llcofwearables.h
+++ b/indra/newview/llcofwearables.h
@@ -34,12 +34,82 @@
#define LL_LLCOFWEARABLES_H
#include "llpanel.h"
+#include "llinventorymodel.h"
+#include "llappearancemgr.h"
+#include "llwearableitemslist.h"
class LLFlatListView;
+/**
+ * Adaptor between LLAccordionCtrlTab and LLFlatListView to facilitate communication between them
+ * (notify, notifyParent) regarding size changes of a list and selection changes across accordion tabs.
+ * Besides that it acts as a container for the LLFlatListView and a button bar on top of it.
+ */
+class LLCOFAccordionListAdaptor : public LLPanel
+{
+public:
+ LLCOFAccordionListAdaptor() : LLPanel() {};
+ ~LLCOFAccordionListAdaptor() {};
+
+ S32 notifyParent(const LLSD& info)
+ {
+ LLView* parent = getParent();
+ if (!parent) return -1;
+
+ if (!(info.has("action") && "size_changes" == info["action"].asString()))
+ {
+ return parent->notifyParent(info);
+ }
+
+ LLRect rc;
+ childGetRect("button_bar", rc);
+
+ LLSD params;
+ params["action"] = "size_changes";
+ params["width"] = info["width"];
+ params["height"] = info["height"].asInteger() + rc.getHeight();
+
+ return parent->notifyParent(params);
+ }
+
+
+ S32 notify(const LLSD& info)
+ {
+ for (child_list_const_iter_t iter = beginChild(); iter != endChild(); iter++)
+ {
+ if (dynamic_cast<LLFlatListView*>(*iter))
+ {
+ return (*iter)->notify(info);
+ }
+ }
+ return LLPanel::notify(info);
+ };
+};
+
+
class LLCOFWearables : public LLPanel
{
public:
+
+ /**
+ * Represents a collection of callbacks assigned to inventory panel item's buttons
+ */
+ class LLCOFCallbacks
+ {
+ public:
+ LLCOFCallbacks() {};
+ virtual ~LLCOFCallbacks() {};
+
+ typedef boost::function<void (void*)> cof_callback_t;
+
+ cof_callback_t mMoveWearableCloser;
+ cof_callback_t mMoveWearableFurther;
+ cof_callback_t mEditWearable;
+ cof_callback_t mDeleteWearable;
+ };
+
+
+
LLCOFWearables();
virtual ~LLCOFWearables() {};
@@ -50,16 +120,27 @@ public:
void refresh();
void clear();
+ LLCOFCallbacks& getCOFCallbacks() { return mCOFCallbacks; }
+
protected:
+ void populateAttachmentsAndBodypartsLists(const LLInventoryModel::item_array_t& cof_items);
+ void populateClothingList(LLAppearanceMgr::wearables_by_type_t& clothing_by_type);
+
+ void addClothingTypesDummies(const LLAppearanceMgr::wearables_by_type_t& clothing_by_type);
void onSelectionChange(LLFlatListView* selected_list);
+ LLPanelClothingListItem* buildClothingListItem(LLViewerInventoryItem* item, bool first, bool last);
+ LLPanelBodyPartsListItem* buildBodypartListItem(LLViewerInventoryItem* item);
+
LLFlatListView* mAttachments;
LLFlatListView* mClothing;
LLFlatListView* mBodyParts;
LLFlatListView* mLastSelectedList;
+ LLCOFCallbacks mCOFCallbacks;
+
};
diff --git a/indra/newview/llfavoritesbar.cpp b/indra/newview/llfavoritesbar.cpp
index 4c1e3461a5..6b7a257a4b 100644
--- a/indra/newview/llfavoritesbar.cpp
+++ b/indra/newview/llfavoritesbar.cpp
@@ -1165,6 +1165,17 @@ void LLFavoritesBarCtrl::pastFromClipboard() const
void LLFavoritesBarCtrl::onButtonMouseDown(LLUUID id, LLUICtrl* ctrl, S32 x, S32 y, MASK mask)
{
+ // EXT-6997 (Fav bar: Pop-up menu for LM in overflow dropdown is kept after LM was dragged away)
+ // mInventoryItemsPopupMenuHandle.get() - is a pop-up menu (of items) in already opened dropdown menu.
+ // We have to check and set visibility of pop-up menu in such a way instead of using
+ // LLMenuHolderGL::hideMenus() because it will close both menus(dropdown and pop-up), but
+ // we need to close only pop-up menu while dropdown one should be still opened.
+ LLMenuGL* menu = (LLMenuGL*)mInventoryItemsPopupMenuHandle.get();
+ if(menu && menu->getVisible())
+ {
+ menu->setVisible(FALSE);
+ }
+
mDragItemId = id;
mStartDrag = TRUE;
diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp
index 19dbc564d1..c0cc3f1985 100644
--- a/indra/newview/llimfloater.cpp
+++ b/indra/newview/llimfloater.cpp
@@ -53,6 +53,7 @@
#include "llsyswellwindow.h"
#include "lltrans.h"
#include "llchathistory.h"
+#include "llnotifications.h"
#include "llviewerwindow.h"
#include "llvoicechannel.h"
#include "lltransientfloatermgr.h"
@@ -371,6 +372,8 @@ void LLIMFloater::onSlide()
//static
LLIMFloater* LLIMFloater::show(const LLUUID& session_id)
{
+ closeHiddenIMToasts();
+
if (!gIMMgr->hasSession(session_id)) return NULL;
if(!isChatMultiTab())
@@ -1084,6 +1087,26 @@ void LLIMFloater::removeTypingIndicator(const LLIMInfo* im_info)
}
// static
+void LLIMFloater::closeHiddenIMToasts()
+{
+ class IMToastMatcher: public LLNotificationsUI::LLScreenChannel::Matcher
+ {
+ public:
+ bool matches(const LLNotificationPtr notification) const
+ {
+ // "notifytoast" type of notifications is reserved for IM notifications
+ return "notifytoast" == notification->getType();
+ }
+ };
+
+ LLNotificationsUI::LLScreenChannel* channel = LLNotificationsUI::LLChannelManager::getNotificationScreenChannel();
+ if (channel != NULL)
+ {
+ channel->closeHiddenToasts(IMToastMatcher());
+ }
+}
+
+// static
bool LLIMFloater::isChatMultiTab()
{
// Restart is required in order to change chat window type.
diff --git a/indra/newview/llimfloater.h b/indra/newview/llimfloater.h
index 763dd5655b..f9dd8b9b85 100644
--- a/indra/newview/llimfloater.h
+++ b/indra/newview/llimfloater.h
@@ -148,6 +148,8 @@ private:
// Remove the "User is typing..." indicator.
void removeTypingIndicator(const LLIMInfo* im_info = NULL);
+ static void closeHiddenIMToasts();
+
LLPanelChatControlPanel* mControlPanel;
LLUUID mSessionID;
S32 mLastMessageIndex;
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index f03026715d..15dbc03f70 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -257,9 +257,8 @@ LLIMModel::LLIMSession::LLIMSession(const LLUUID& session_id, const std::string&
void LLIMModel::LLIMSession::onVoiceChannelStateChanged(const LLVoiceChannel::EState& old_state, const LLVoiceChannel::EState& new_state, const LLVoiceChannel::EDirection& direction)
{
- std::string you = LLTrans::getString("You");
- std::string started_call = LLTrans::getString("started_call");
- std::string joined_call = LLTrans::getString("joined_call");
+ std::string you_joined_call = LLTrans::getString("you_joined_call");
+ std::string you_started_call = LLTrans::getString("you_started_call");
std::string other_avatar_name = "";
std::string message;
@@ -277,13 +276,15 @@ void LLIMModel::LLIMSession::onVoiceChannelStateChanged(const LLVoiceChannel::ES
switch(new_state)
{
case LLVoiceChannel::STATE_CALL_STARTED :
- message = other_avatar_name + " " + started_call;
- LLIMModel::getInstance()->addMessage(mSessionID, SYSTEM_FROM, LLUUID::null, message);
-
- break;
+ {
+ LLStringUtil::format_map_t string_args;
+ string_args["[NAME]"] = other_avatar_name;
+ message = LLTrans::getString("name_started_call", string_args);
+ LLIMModel::getInstance()->addMessage(mSessionID, SYSTEM_FROM, LLUUID::null, message);
+ break;
+ }
case LLVoiceChannel::STATE_CONNECTED :
- message = you + " " + joined_call;
- LLIMModel::getInstance()->addMessage(mSessionID, SYSTEM_FROM, LLUUID::null, message);
+ LLIMModel::getInstance()->addMessage(mSessionID, SYSTEM_FROM, LLUUID::null, you_joined_call);
default:
break;
}
@@ -293,8 +294,7 @@ void LLIMModel::LLIMSession::onVoiceChannelStateChanged(const LLVoiceChannel::ES
switch(new_state)
{
case LLVoiceChannel::STATE_CALL_STARTED :
- message = you + " " + started_call;
- LLIMModel::getInstance()->addMessage(mSessionID, SYSTEM_FROM, LLUUID::null, message);
+ LLIMModel::getInstance()->addMessage(mSessionID, SYSTEM_FROM, LLUUID::null, you_started_call);
break;
case LLVoiceChannel::STATE_CONNECTED :
message = LLTrans::getString("answered_call");
@@ -312,8 +312,7 @@ void LLIMModel::LLIMSession::onVoiceChannelStateChanged(const LLVoiceChannel::ES
switch(new_state)
{
case LLVoiceChannel::STATE_CONNECTED :
- message = you + " " + joined_call;
- LLIMModel::getInstance()->addMessage(mSessionID, SYSTEM_FROM, LLUUID::null, message);
+ LLIMModel::getInstance()->addMessage(mSessionID, SYSTEM_FROM, LLUUID::null, you_joined_call);
default:
break;
}
@@ -323,8 +322,7 @@ void LLIMModel::LLIMSession::onVoiceChannelStateChanged(const LLVoiceChannel::ES
switch(new_state)
{
case LLVoiceChannel::STATE_CALL_STARTED :
- message = you + " " + started_call;
- LLIMModel::getInstance()->addMessage(mSessionID, SYSTEM_FROM, LLUUID::null, message);
+ LLIMModel::getInstance()->addMessage(mSessionID, SYSTEM_FROM, LLUUID::null, you_started_call);
break;
default:
break;
@@ -2069,8 +2067,9 @@ void LLIncomingCallDialog::processCallResponse(S32 response)
// send notification message to the corresponding chat
if (mPayload["notify_box_type"].asString() == "VoiceInviteGroup" || mPayload["notify_box_type"].asString() == "VoiceInviteAdHoc")
{
- std::string started_call = LLTrans::getString("started_call");
- std::string message = mPayload["caller_name"].asString() + " " + started_call;
+ LLStringUtil::format_map_t string_args;
+ string_args["[NAME]"] = mPayload["caller_name"].asString();
+ std::string message = LLTrans::getString("name_started_call", string_args);
LLIMModel::getInstance()->addMessageSilently(session_id, SYSTEM_FROM, LLUUID::null, message);
}
}
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index b4a1bf2758..2d08c0a01a 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -211,10 +211,14 @@ BOOL LLInvFVBridge::isItemRemovable() const
return FALSE;
}
- // Disable delete from COF folder; have users explicitly choose "detach/take off".
+ // Disable delete from COF folder; have users explicitly choose "detach/take off",
+ // unless the item is not worn but in the COF (i.e. is bugged).
if (LLAppearanceMgr::instance().getIsProtectedCOFItem(mUUID))
{
- return FALSE;
+ if (get_is_item_worn(mUUID))
+ {
+ return FALSE;
+ }
}
const LLInventoryObject *obj = model->getItem(mUUID);
@@ -494,7 +498,7 @@ BOOL LLInvFVBridge::isClipboardPasteableAsLink() const
}
}
const LLViewerInventoryCategory *cat = model->getCategory(objects.get(i));
- if (cat && !LLFolderType::lookupIsProtectedType(cat->getPreferredType()))
+ if (cat && LLFolderType::lookupIsProtectedType(cat->getPreferredType()))
{
return FALSE;
}
@@ -641,13 +645,10 @@ void LLInvFVBridge::getClipboardEntries(bool show_asset_id,
disabled_items.push_back(std::string("Paste"));
}
- if (gAgent.isGodlike())
+ items.push_back(std::string("Paste As Link"));
+ if (!isClipboardPasteableAsLink() || (flags & FIRST_SELECTED_ITEM) == 0)
{
- items.push_back(std::string("Paste As Link"));
- if (!isClipboardPasteableAsLink() || (flags & FIRST_SELECTED_ITEM) == 0)
- {
- disabled_items.push_back(std::string("Paste As Link"));
- }
+ disabled_items.push_back(std::string("Paste As Link"));
}
items.push_back(std::string("Paste Separator"));
@@ -677,7 +678,8 @@ void LLInvFVBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
{
disabled_items.push_back(std::string("Share"));
}
- items.push_back(std::string("Open"));
+
+ addOpenRightClickMenuOption(items);
items.push_back(std::string("Properties"));
getClipboardEntries(true, items, disabled_items, flags);
@@ -712,7 +714,7 @@ void LLInvFVBridge::addDeleteContextMenuOptions(menuentry_vec_t &items,
const LLInventoryObject *obj = getInventoryObject();
// Don't allow delete as a direct option from COF folder.
- if (obj && obj->getIsLinkType() && isCOFFolder())
+ if (obj && obj->getIsLinkType() && isCOFFolder() && get_is_item_worn(mUUID))
{
return;
}
@@ -733,6 +735,17 @@ void LLInvFVBridge::addDeleteContextMenuOptions(menuentry_vec_t &items,
}
}
+void LLInvFVBridge::addOpenRightClickMenuOption(menuentry_vec_t &items)
+{
+ const LLInventoryObject *obj = getInventoryObject();
+ const BOOL is_link = (obj && obj->getIsLinkType());
+
+ if (is_link)
+ items.push_back(std::string("Open Original"));
+ else
+ items.push_back(std::string("Open"));
+}
+
// *TODO: remove this
BOOL LLInvFVBridge::startDrag(EDragAndDropType* type, LLUUID* id) const
{
@@ -840,21 +853,7 @@ void LLInvFVBridge::changeItemParent(LLInventoryModel* model,
const LLUUID& new_parent_id,
BOOL restamp)
{
- if (item->getParentUUID() != new_parent_id)
- {
- LLInventoryModel::update_list_t update;
- LLInventoryModel::LLCategoryUpdate old_folder(item->getParentUUID(),-1);
- update.push_back(old_folder);
- LLInventoryModel::LLCategoryUpdate new_folder(new_parent_id, 1);
- update.push_back(new_folder);
- gInventory.accountForUpdate(update);
-
- LLPointer<LLViewerInventoryItem> new_item = new LLViewerInventoryItem(item);
- new_item->setParent(new_parent_id);
- new_item->updateParentOnServer(restamp);
- model->updateItem(new_item);
- model->notifyObservers();
- }
+ change_item_parent(model, item, new_parent_id, restamp);
}
// static
@@ -1099,7 +1098,7 @@ void LLItemBridge::performAction(LLInventoryModel* model, std::string action)
gotoItem();
}
- if ("open" == action)
+ if ("open" == action || "open_original" == action)
{
openItem();
return;
@@ -1445,17 +1444,11 @@ BOOL LLItemBridge::isItemCopyable() const
return FALSE;
}
- if (gAgent.isGodlike())
- {
- // All items can be copied in god mode since you can
- // at least paste-as-link the item, though you
- // still may not be able paste the item.
- return TRUE;
- }
- else
- {
- return (item->getPermissions().allowCopyBy(gAgent.getID()));
- }
+ // All items can be copied in god mode since you can
+ // at least paste-as-link the item, though you
+ // still may not be able paste the item.
+ return TRUE;
+ // return (item->getPermissions().allowCopyBy(gAgent.getID()));
}
return FALSE;
}
@@ -1596,7 +1589,8 @@ BOOL LLFolderBridge::isUpToDate() const
BOOL LLFolderBridge::isItemCopyable() const
{
- return FALSE;
+ // Can copy folders to paste-as-link, but not for straight paste.
+ return TRUE;
}
BOOL LLFolderBridge::copyToClipboard() const
@@ -1827,11 +1821,13 @@ BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat,
else
{
LLPointer<LLInventoryCallback> cb = NULL;
+ const std::string empty_description = "";
link_inventory_item(
gAgent.getID(),
inv_cat->getUUID(),
mUUID,
inv_cat->getName(),
+ empty_description,
LLAssetType::AT_LINK_FOLDER,
cb);
}
@@ -2500,30 +2496,29 @@ void LLFolderBridge::pasteLinkFromClipboard()
++iter)
{
const LLUUID &object_id = (*iter);
-#if SUPPORT_ENSEMBLES
if (LLInventoryCategory *cat = model->getCategory(object_id))
{
+ const std::string empty_description = "";
link_inventory_item(
gAgent.getID(),
cat->getUUID(),
parent_id,
cat->getName(),
+ empty_description,
LLAssetType::AT_LINK_FOLDER,
LLPointer<LLInventoryCallback>(NULL));
}
- else
-#endif
- if (LLInventoryItem *item = model->getItem(object_id))
- {
- link_inventory_item(
- gAgent.getID(),
- item->getLinkedUUID(),
- parent_id,
- item->getName(),
- item->getDescription(),
- LLAssetType::AT_LINK,
- LLPointer<LLInventoryCallback>(NULL));
- }
+ else if (LLInventoryItem *item = model->getItem(object_id))
+ {
+ link_inventory_item(
+ gAgent.getID(),
+ item->getLinkedUUID(),
+ parent_id,
+ item->getName(),
+ item->getDescription(),
+ LLAssetType::AT_LINK,
+ LLPointer<LLInventoryCallback>(NULL));
+ }
}
}
}
@@ -3333,7 +3328,7 @@ void LLTextureBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
disabled_items.push_back(std::string("Share"));
}
- items.push_back(std::string("Open"));
+ addOpenRightClickMenuOption(items);
items.push_back(std::string("Properties"));
getClipboardEntries(true, items, disabled_items, flags);
@@ -3699,7 +3694,7 @@ void LLCallingCardBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
{
disabled_items.push_back(std::string("Share"));
}
- items.push_back(std::string("Open"));
+ addOpenRightClickMenuOption(items);
items.push_back(std::string("Properties"));
getClipboardEntries(true, items, disabled_items, flags);
@@ -3978,7 +3973,7 @@ void LLGestureBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
if (!is_sidepanel)
{
- items.push_back(std::string("Open"));
+ addOpenRightClickMenuOption(items);
items.push_back(std::string("Properties"));
}
@@ -4716,7 +4711,7 @@ void LLWearableBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
if (can_open && !is_sidepanel)
{
- items.push_back(std::string("Open"));
+ addOpenRightClickMenuOption(items);
}
if (!is_sidepanel)
@@ -5177,9 +5172,13 @@ const LLUUID &LLLinkFolderBridge::getFolderID() const
// static
void LLInvFVBridgeAction::doAction(LLAssetType::EType asset_type,
- const LLUUID& uuid,LLInventoryModel* model)
+ const LLUUID& uuid,
+ LLInventoryModel* model)
{
- LLInvFVBridgeAction* action = createAction(asset_type,uuid,model);
+ // Perform indirection in case of link.
+ const LLUUID& linked_uuid = gInventory.getLinkedItemID(uuid);
+
+ LLInvFVBridgeAction* action = createAction(asset_type,linked_uuid,model);
if(action)
{
action->doIt();
@@ -5292,7 +5291,8 @@ protected:
};
-class LLNotecardBridgeAction: public LLInvFVBridgeAction
+class LLNotecardBridgeAction
+: public LLInvFVBridgeAction
{
friend class LLInvFVBridgeAction;
public:
diff --git a/indra/newview/llinventorybridge.h b/indra/newview/llinventorybridge.h
index f378d219f6..de63bdd76b 100644
--- a/indra/newview/llinventorybridge.h
+++ b/indra/newview/llinventorybridge.h
@@ -135,7 +135,7 @@ protected:
menuentry_vec_t &disabled_items);
virtual void addDeleteContextMenuOptions(menuentry_vec_t &items,
menuentry_vec_t &disabled_items);
-
+ virtual void addOpenRightClickMenuOption(menuentry_vec_t &items);
protected:
LLInvFVBridge(LLInventoryPanel* inventory, LLFolderView* root, const LLUUID& uuid);
diff --git a/indra/newview/llinventoryfunctions.cpp b/indra/newview/llinventoryfunctions.cpp
index 8487588404..8010d1f43d 100644
--- a/indra/newview/llinventoryfunctions.cpp
+++ b/indra/newview/llinventoryfunctions.cpp
@@ -582,3 +582,26 @@ BOOL get_is_item_worn(const LLUUID& id)
}
return FALSE;
}
+
+
+void change_item_parent(LLInventoryModel* model,
+ LLViewerInventoryItem* item,
+ const LLUUID& new_parent_id,
+ BOOL restamp)
+{
+ if (item->getParentUUID() != new_parent_id)
+ {
+ LLInventoryModel::update_list_t update;
+ LLInventoryModel::LLCategoryUpdate old_folder(item->getParentUUID(),-1);
+ update.push_back(old_folder);
+ LLInventoryModel::LLCategoryUpdate new_folder(new_parent_id, 1);
+ update.push_back(new_folder);
+ gInventory.accountForUpdate(update);
+
+ LLPointer<LLViewerInventoryItem> new_item = new LLViewerInventoryItem(item);
+ new_item->setParent(new_parent_id);
+ new_item->updateParentOnServer(restamp);
+ model->updateItem(new_item);
+ model->notifyObservers();
+ }
+}
diff --git a/indra/newview/llinventoryfunctions.h b/indra/newview/llinventoryfunctions.h
index e3cd988e39..6f373f7392 100644
--- a/indra/newview/llinventoryfunctions.h
+++ b/indra/newview/llinventoryfunctions.h
@@ -310,6 +310,12 @@ LLUIImagePtr get_item_icon(LLAssetType::EType asset_type,
// Is this item or its baseitem is worn, attached, etc...
BOOL get_is_item_worn(const LLUUID& id);
+
+void change_item_parent(LLInventoryModel* model,
+ LLViewerInventoryItem* item,
+ const LLUUID& new_parent_id,
+ BOOL restamp);
+
#endif // LL_LLINVENTORYFUNCTIONS_H
diff --git a/indra/newview/llinventoryitemslist.cpp b/indra/newview/llinventoryitemslist.cpp
index dca130c672..9719de4650 100644
--- a/indra/newview/llinventoryitemslist.cpp
+++ b/indra/newview/llinventoryitemslist.cpp
@@ -45,81 +45,269 @@
#include "llinventoryfunctions.h"
#include "llinventorymodel.h"
#include "lltextutil.h"
+#include "lltrans.h"
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
-// static
-LLPanelInventoryListItem* LLPanelInventoryListItem::createItemPanel(const LLViewerInventoryItem* item)
+static const S32 WIDGET_SPACING = 3;
+
+LLPanelInventoryListItemBase* LLPanelInventoryListItemBase::create(LLViewerInventoryItem* item)
{
+ LLPanelInventoryListItemBase* list_item = NULL;
if (item)
{
- return new LLPanelInventoryListItem(item);
+ list_item = new LLPanelInventoryListItemBase(item);
+ list_item->init();
}
- else
+ return list_item;
+}
+
+void LLPanelInventoryListItemBase::draw()
+{
+ if (getNeedsRefresh())
{
- return NULL;
+ updateItem();
+ setNeedsRefresh(false);
}
+ LLPanel::draw();
}
-LLPanelInventoryListItem::~LLPanelInventoryListItem()
-{}
+void LLPanelInventoryListItemBase::updateItem()
+{
+ setIconImage(mIconImage);
+ setTitle(mItem->getName(), mHighlightedText);
+}
-//virtual
-BOOL LLPanelInventoryListItem::postBuild()
+void LLPanelInventoryListItemBase::addWidgetToLeftSide(const std::string& name, bool show_widget/* = true*/)
{
- mIcon = getChild<LLIconCtrl>("item_icon");
- mTitle = getChild<LLTextBox>("item_name");
+ LLUICtrl* ctrl = findChild<LLUICtrl>(name);
+ if(ctrl)
+ {
+ addWidgetToLeftSide(ctrl, show_widget);
+ }
+}
- updateItem();
+void LLPanelInventoryListItemBase::addWidgetToLeftSide(LLUICtrl* ctrl, bool show_widget/* = true*/)
+{
+ mLeftSideWidgets.push_back(ctrl);
+ setShowWidget(ctrl, show_widget);
+}
+
+void LLPanelInventoryListItemBase::addWidgetToRightSide(const std::string& name, bool show_widget/* = true*/)
+{
+ LLUICtrl* ctrl = findChild<LLUICtrl>(name);
+ if(ctrl)
+ {
+ addWidgetToRightSide(ctrl, show_widget);
+ }
+}
+
+void LLPanelInventoryListItemBase::addWidgetToRightSide(LLUICtrl* ctrl, bool show_widget/* = true*/)
+{
+ mRightSideWidgets.push_back(ctrl);
+ setShowWidget(ctrl, show_widget);
+}
+
+void LLPanelInventoryListItemBase::setShowWidget(const std::string& name, bool show)
+{
+ LLUICtrl* widget = findChild<LLUICtrl>(name);
+ if(widget)
+ {
+ setShowWidget(widget, show);
+ }
+}
+
+void LLPanelInventoryListItemBase::setShowWidget(LLUICtrl* ctrl, bool show)
+{
+ // Enable state determines whether widget may become visible in setWidgetsVisible()
+ ctrl->setEnabled(show);
+}
+
+BOOL LLPanelInventoryListItemBase::postBuild()
+{
+ setIconCtrl(getChild<LLIconCtrl>("item_icon"));
+ setTitleCtrl(getChild<LLTextBox>("item_name"));
+
+ mIconImage = get_item_icon(mItem->getType(), mItem->getInventoryType(), mItem->getFlags(), FALSE);
+
+ setNeedsRefresh(true);
+
+ setWidgetsVisible(false);
+ reshapeWidgets();
return TRUE;
}
-//virtual
-void LLPanelInventoryListItem::setValue(const LLSD& value)
+void LLPanelInventoryListItemBase::setValue(const LLSD& value)
{
if (!value.isMap()) return;
if (!value.has("selected")) return;
childSetVisible("selected_icon", value["selected"]);
}
-void LLPanelInventoryListItem::updateItem()
+void LLPanelInventoryListItemBase::onMouseEnter(S32 x, S32 y, MASK mask)
+{
+ childSetVisible("hovered_icon", true);
+ LLPanel::onMouseEnter(x, y, mask);
+}
+
+void LLPanelInventoryListItemBase::onMouseLeave(S32 x, S32 y, MASK mask)
+{
+ childSetVisible("hovered_icon", false);
+ LLPanel::onMouseLeave(x, y, mask);
+}
+
+S32 LLPanelInventoryListItemBase::notify(const LLSD& info)
+{
+ S32 rv = 0;
+ if(info.has("match_filter"))
+ {
+ mHighlightedText = info["match_filter"].asString();
+
+ std::string test(mItem->getName());
+ LLStringUtil::toUpper(test);
+
+ if(mHighlightedText.empty() || std::string::npos != test.find(mHighlightedText))
+ {
+ rv = 0; // substring is found
+ }
+ else
+ {
+ rv = -1;
+ }
+
+ setNeedsRefresh(true);
+ }
+ else
+ {
+ rv = LLPanel::notify(info);
+ }
+ return rv;
+}
+
+LLPanelInventoryListItemBase::LLPanelInventoryListItemBase(LLViewerInventoryItem* item)
+: LLPanel()
+, mItem(item)
+, mIconCtrl(NULL)
+, mTitleCtrl(NULL)
+, mWidgetSpacing(WIDGET_SPACING)
+, mLeftWidgetsWidth(0)
+, mRightWidgetsWidth(0)
+, mNeedsRefresh(false)
+{
+}
+
+void LLPanelInventoryListItemBase::init()
{
- if (mItemIcon.notNull())
- mIcon->setImage(mItemIcon);
+ LLUICtrlFactory::getInstance()->buildPanel(this, "panel_inventory_item.xml");
+}
+
+class WidgetVisibilityChanger
+{
+public:
+ WidgetVisibilityChanger(bool visible) : mVisible(visible){}
+ void operator()(LLUICtrl* widget)
+ {
+ // Disabled widgets never become visible. see LLPanelInventoryListItemBase::setShowWidget()
+ widget->setVisible(mVisible && widget->getEnabled());
+ }
+private:
+ bool mVisible;
+};
+
+void LLPanelInventoryListItemBase::setWidgetsVisible(bool visible)
+{
+ std::for_each(mLeftSideWidgets.begin(), mLeftSideWidgets.end(), WidgetVisibilityChanger(visible));
+ std::for_each(mRightSideWidgets.begin(), mRightSideWidgets.end(), WidgetVisibilityChanger(visible));
+}
+
+void LLPanelInventoryListItemBase::reshapeWidgets()
+{
+ // disabled reshape left for now to reserve space for 'delete' button in LLPanelClothingListItem
+ /*reshapeLeftWidgets();*/
+ reshapeRightWidgets();
+ reshapeMiddleWidgets();
+}
+void LLPanelInventoryListItemBase::setIconImage(const LLUIImagePtr& image)
+{
+ if(image)
+ {
+ mIconImage = image;
+ mIconCtrl->setImage(mIconImage);
+ }
+}
+
+void LLPanelInventoryListItemBase::setTitle(const std::string& title, const std::string& highlit_text)
+{
LLTextUtil::textboxSetHighlightedVal(
- mTitle,
+ mTitleCtrl,
LLStyle::Params(),
- mItemName,
- mHighlightedText);
+ title,
+ highlit_text);
}
-void LLPanelInventoryListItem::onMouseEnter(S32 x, S32 y, MASK mask)
+void LLPanelInventoryListItemBase::reshapeLeftWidgets()
{
- childSetVisible("hovered_icon", true);
+ S32 widget_left = 0;
+ mLeftWidgetsWidth = 0;
- LLPanel::onMouseEnter(x, y, mask);
+ widget_array_t::const_iterator it = mLeftSideWidgets.begin();
+ const widget_array_t::const_iterator it_end = mLeftSideWidgets.end();
+ for( ; it_end != it; ++it)
+ {
+ LLUICtrl* widget = *it;
+ if(!widget->getVisible())
+ {
+ continue;
+ }
+ LLRect widget_rect(widget->getRect());
+ widget_rect.setLeftTopAndSize(widget_left, widget_rect.mTop, widget_rect.getWidth(), widget_rect.getHeight());
+ widget->setShape(widget_rect);
+
+ widget_left += widget_rect.getWidth() + getWidgetSpacing();
+ mLeftWidgetsWidth = widget_rect.mRight;
+ }
}
-void LLPanelInventoryListItem::onMouseLeave(S32 x, S32 y, MASK mask)
+void LLPanelInventoryListItemBase::reshapeRightWidgets()
{
- childSetVisible("hovered_icon", false);
+ S32 widget_right = getLocalRect().getWidth();
+ S32 widget_left = widget_right;
- LLPanel::onMouseLeave(x, y, mask);
+ widget_array_t::const_reverse_iterator it = mRightSideWidgets.rbegin();
+ const widget_array_t::const_reverse_iterator it_end = mRightSideWidgets.rend();
+ for( ; it_end != it; ++it)
+ {
+ LLUICtrl* widget = *it;
+ if(!widget->getVisible())
+ {
+ continue;
+ }
+ LLRect widget_rect(widget->getRect());
+ widget_left = widget_right - widget_rect.getWidth();
+ widget_rect.setLeftTopAndSize(widget_left, widget_rect.mTop, widget_rect.getWidth(), widget_rect.getHeight());
+ widget->setShape(widget_rect);
+
+ widget_right = widget_left - getWidgetSpacing();
+ }
+ mRightWidgetsWidth = getLocalRect().getWidth() - widget_left;
}
-LLPanelInventoryListItem::LLPanelInventoryListItem(const LLViewerInventoryItem* item)
-: LLPanel()
- ,mIcon(NULL)
- ,mTitle(NULL)
+void LLPanelInventoryListItemBase::reshapeMiddleWidgets()
{
- mItemName = item->getName();
- mItemIcon = get_item_icon(item->getType(), item->getInventoryType(), item->getFlags(), FALSE);
-
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_inventory_item.xml");
+ LLRect icon_rect(mIconCtrl->getRect());
+ icon_rect.setLeftTopAndSize(mLeftWidgetsWidth + getWidgetSpacing(), icon_rect.mTop,
+ icon_rect.getWidth(), icon_rect.getHeight());
+ mIconCtrl->setShape(icon_rect);
+
+ S32 name_left = icon_rect.mRight + getWidgetSpacing();
+ S32 name_right = getLocalRect().getWidth() - mRightWidgetsWidth - getWidgetSpacing();
+ LLRect name_rect(mTitleCtrl->getRect());
+ name_rect.set(name_left, name_rect.mTop, name_right, name_rect.mBottom);
+ mTitleCtrl->setShape(name_rect);
}
////////////////////////////////////////////////////////////////////////////////
@@ -130,13 +318,15 @@ LLInventoryItemsList::Params::Params()
{}
LLInventoryItemsList::LLInventoryItemsList(const LLInventoryItemsList::Params& p)
-: LLFlatListView(p)
+: LLFlatListViewEx(p)
, mNeedsRefresh(false)
{
// TODO: mCommitOnSelectionChange is set to "false" in LLFlatListView
// but reset to true in all derived classes. This settings might need to
// be added to LLFlatListView::Params() and/or set to "true" by default.
setCommitOnSelectionChange(true);
+
+ setNoFilteredItemsMsg(LLTrans::getString("InventoryNoMatchingItems"));
}
// virtual
@@ -156,7 +346,7 @@ void LLInventoryItemsList::refreshList(const LLInventoryModel::item_array_t item
void LLInventoryItemsList::draw()
{
- LLFlatListView::draw();
+ LLFlatListViewEx::draw();
if(mNeedsRefresh)
{
refresh();
@@ -184,7 +374,8 @@ void LLInventoryItemsList::refresh()
break;
}
LLViewerInventoryItem* item = gInventory.getItem(*it);
- addNewItem(item);
+ // Do not rearrange items on each adding, let's do that on filter call
+ addNewItem(item, false);
++nadded;
}
@@ -194,6 +385,9 @@ void LLInventoryItemsList::refresh()
removeItemByUUID(*it);
}
+ // Filter, rearrange and notify parent about shape changes
+ filterItems();
+
bool needs_refresh = add_limit_exceeded;
setNeedsRefresh(needs_refresh);
}
@@ -215,22 +409,23 @@ void LLInventoryItemsList::computeDifference(
LLCommonUtils::computeDifference(vnew, vcur, vadded, vremoved);
}
-void LLInventoryItemsList::addNewItem(LLViewerInventoryItem* item)
+void LLInventoryItemsList::addNewItem(LLViewerInventoryItem* item, bool rearrange /*= true*/)
{
if (!item)
{
llwarns << "No inventory item. Couldn't create flat list item." << llendl;
- llassert(!"No inventory item. Couldn't create flat list item.");
+ llassert(item != NULL);
}
- LLPanelInventoryListItem *list_item = LLPanelInventoryListItem::createItemPanel(item);
+ LLPanelInventoryListItemBase *list_item = LLPanelInventoryListItemBase::create(item);
if (!list_item)
return;
- if (!addItem(list_item, item->getUUID()))
+ bool is_item_added = addItem(list_item, item->getUUID(), ADD_BOTTOM, rearrange);
+ if (!is_item_added)
{
llwarns << "Couldn't add flat list item." << llendl;
- llassert(!"Couldn't add flat list item.");
+ llassert(is_item_added);
}
}
diff --git a/indra/newview/llinventoryitemslist.h b/indra/newview/llinventoryitemslist.h
index b496f4b9e9..bc04eb6f5b 100644
--- a/indra/newview/llinventoryitemslist.h
+++ b/indra/newview/llinventoryitemslist.h
@@ -47,37 +47,159 @@ class LLIconCtrl;
class LLTextBox;
class LLViewerInventoryItem;
-class LLPanelInventoryListItem : public LLPanel
+/**
+ * @class LLPanelInventoryListItemBase
+ *
+ * Base class for Inventory flat list item. Panel consists of inventory icon
+ * and inventory item name.
+ * This class is able to display widgets(buttons) on left(before icon) and right(after text-box) sides
+ * of panel.
+ *
+ * How to use (see LLPanelClothingListItem for example):
+ * - implement init() to build panel from xml
+ * - create new xml file, fill it with widgets you want to dynamically show/hide/reshape on left/right sides
+ * - redefine postBuild()(call base implementation) and add needed widgets to needed sides,
+ *
+ */
+class LLPanelInventoryListItemBase : public LLPanel
{
public:
- static LLPanelInventoryListItem* createItemPanel(const LLViewerInventoryItem* item);
+ static LLPanelInventoryListItemBase* create(LLViewerInventoryItem* item);
+
+ virtual void draw();
+
+ /**
+ * Let item know it need to be refreshed in next draw()
+ */
+ void setNeedsRefresh(bool needs_refresh){ mNeedsRefresh = needs_refresh; }
+
+ bool getNeedsRefresh(){ return mNeedsRefresh; }
+
+ /**
+ * Add widget to left side
+ */
+ void addWidgetToLeftSide(const std::string& name, bool show_widget = true);
+ void addWidgetToLeftSide(LLUICtrl* ctrl, bool show_widget = true);
- virtual ~LLPanelInventoryListItem();
+ /**
+ * Add widget to right side, widget is supposed to be child of calling panel
+ */
+ void addWidgetToRightSide(const std::string& name, bool show_widget = true);
+ void addWidgetToRightSide(LLUICtrl* ctrl, bool show_widget = true);
+
+ /**
+ * Mark widgets as visible. Only visible widgets take part in reshaping children
+ */
+ void setShowWidget(const std::string& name, bool show);
+ void setShowWidget(LLUICtrl* ctrl, bool show);
+
+ /**
+ * Set spacing between widgets during reshape
+ */
+ void setWidgetSpacing(S32 spacing) { mWidgetSpacing = spacing; }
+ S32 getWidgetSpacing() { return mWidgetSpacing; }
+
+ /**
+ * Inheritors need to call base implementation of postBuild()
+ */
/*virtual*/ BOOL postBuild();
+
+ /**
+ * Handles item selection
+ */
/*virtual*/ void setValue(const LLSD& value);
- void updateItem();
+ /**
+ * Handles filter request
+ */
+ /*virtual*/ S32 notify(const LLSD& info);
+
+ /* Highlights item */
+ /*virtual*/ void onMouseEnter(S32 x, S32 y, MASK mask);
+ /* Removes item highlight */
+ /*virtual*/ void onMouseLeave(S32 x, S32 y, MASK mask);
- void onMouseEnter(S32 x, S32 y, MASK mask);
- void onMouseLeave(S32 x, S32 y, MASK mask);
+ virtual ~LLPanelInventoryListItemBase(){}
protected:
- LLPanelInventoryListItem(const LLViewerInventoryItem* item);
+
+ LLPanelInventoryListItemBase(LLViewerInventoryItem* item);
+
+ typedef std::vector<LLUICtrl*> widget_array_t;
+
+ /**
+ * Use it from a factory function to build panel, do not build panel in constructor
+ */
+ virtual void init();
+
+ /**
+ * Called after inventory item was updated, update panel widgets to reflect inventory changes.
+ */
+ virtual void updateItem();
+
+ /** setter for mIconCtrl */
+ void setIconCtrl(LLIconCtrl* icon) { mIconCtrl = icon; }
+ /** setter for MTitleCtrl */
+ void setTitleCtrl(LLTextBox* tb) { mTitleCtrl = tb; }
+
+ void setLeftWidgetsWidth(S32 width) { mLeftWidgetsWidth = width; }
+ void setRightWidgetsWidth(S32 width) { mRightWidgetsWidth = width; }
+
+ /**
+ * Set all widgets from both side visible/invisible. Only enabled widgets
+ * (see setShowWidget()) can become visible
+ */
+ virtual void setWidgetsVisible(bool visible);
+
+ /**
+ * Reshape all child widgets - icon, text-box and side widgets
+ */
+ virtual void reshapeWidgets();
+
+ /** set wearable type icon image */
+ void setIconImage(const LLUIImagePtr& image);
+
+ /** Set item title - inventory item name usually */
+ void setTitle(const std::string& title, const std::string& highlit_text);
private:
- LLIconCtrl* mIcon;
- LLTextBox* mTitle;
- LLUIImagePtr mItemIcon;
- std::string mItemName;
+ /** reshape left side widgets
+ * Deprecated for now. Disabled reshape left for now to reserve space for 'delete'
+ * button in LLPanelClothingListItem according to Neal's comment (https://codereview.productengine.com/secondlife/r/325/)
+ */
+ void reshapeLeftWidgets();
+
+ /** reshape right side widgets */
+ void reshapeRightWidgets();
+
+ /** reshape remaining widgets */
+ void reshapeMiddleWidgets();
+
+ LLViewerInventoryItem* mItem;
+
+ LLIconCtrl* mIconCtrl;
+ LLTextBox* mTitleCtrl;
+
+ LLUIImagePtr mIconImage;
std::string mHighlightedText;
+
+ widget_array_t mLeftSideWidgets;
+ widget_array_t mRightSideWidgets;
+ S32 mWidgetSpacing;
+
+ S32 mLeftWidgetsWidth;
+ S32 mRightWidgetsWidth;
+ bool mNeedsRefresh;
};
-class LLInventoryItemsList : public LLFlatListView
+//////////////////////////////////////////////////////////////////////////
+
+class LLInventoryItemsList : public LLFlatListViewEx
{
public:
- struct Params : public LLInitParam::Block<Params, LLFlatListView::Params>
+ struct Params : public LLInitParam::Block<Params, LLFlatListViewEx::Params>
{
Params();
};
@@ -117,7 +239,7 @@ protected:
/**
* Add an item to the list
*/
- void addNewItem(LLViewerInventoryItem* item);
+ virtual void addNewItem(LLViewerInventoryItem* item, bool rearrange = true);
private:
uuid_vec_t mIDs; // IDs of items that were added in refreshList().
diff --git a/indra/newview/llinventoryobserver.cpp b/indra/newview/llinventoryobserver.cpp
index 214b5d317a..c24d2ee0ea 100644
--- a/indra/newview/llinventoryobserver.cpp
+++ b/indra/newview/llinventoryobserver.cpp
@@ -215,7 +215,7 @@ void LLInventoryFetchItemsObserver::changed(U32 mask)
void fetch_items_from_llsd(const LLSD& items_llsd)
{
- if (!items_llsd.size()) return;
+ if (!items_llsd.size() || gDisconnected) return;
LLSD body;
body[0]["cap_name"] = "FetchInventory";
body[1]["cap_name"] = "FetchLib";
@@ -235,6 +235,11 @@ void fetch_items_from_llsd(const LLSD& items_llsd)
for (S32 i=0; i<body.size(); i++)
{
+ if(!gAgent.getRegion())
+ {
+ llwarns<<"Agent's region is null"<<llendl;
+ break;
+ }
if (0 >= body[i].size()) continue;
std::string url = gAgent.getRegion()->getCapability(body[i]["cap_name"].asString());
@@ -664,36 +669,88 @@ void LLInventoryCategoriesObserver::changed(U32 mask)
if (!category)
continue;
- S32 version = category->getVersion();
- if (version != (*iter).second.mVersion)
+ const S32 version = category->getVersion();
+ const S32 expected_num_descendents = category->getDescendentCount();
+ if ((version == LLViewerInventoryCategory::VERSION_UNKNOWN) ||
+ (expected_num_descendents == LLViewerInventoryCategory::DESCENDENT_COUNT_UNKNOWN))
+ {
+ continue;
+ }
+
+ // Check number of known descendents to find out whether it has changed.
+ LLInventoryModel::cat_array_t* cats;
+ LLInventoryModel::item_array_t* items;
+ gInventory.getDirectDescendentsOf((*iter).first, cats, items);
+ if (!cats || !items)
+ {
+ llwarns << "Category '" << category->getName() << "' descendents corrupted, fetch failed." << llendl;
+ // NULL means the call failed -- cats/items map doesn't exist (note: this does NOT mean
+ // that the cat just doesn't have any items or subfolders).
+ // Unrecoverable, so just skip this category.
+
+ llassert(cats != NULL && items != NULL);
+
+ continue;
+ }
+
+ const S32 current_num_known_descendents = cats->count() + items->count();
+
+ LLCategoryData cat_data = (*iter).second;
+
+ // If category version or descendents count has changed
+ // update category data in mCategoryMap and fire a callback.
+ if (version != cat_data.mVersion || current_num_known_descendents != cat_data.mDescendentsCount)
{
- // Update category version in map.
- (*iter).second.mVersion = version;
- (*iter).second.mCallback();
+ cat_data.mVersion = version;
+ cat_data.mDescendentsCount = current_num_known_descendents;
+
+ cat_data.mCallback();
}
}
}
-void LLInventoryCategoriesObserver::addCategory(const LLUUID& cat_id, callback_t cb)
+bool LLInventoryCategoriesObserver::addCategory(const LLUUID& cat_id, callback_t cb)
{
- S32 version;
+ S32 version = LLViewerInventoryCategory::VERSION_UNKNOWN;
+ S32 current_num_known_descendents = LLViewerInventoryCategory::DESCENDENT_COUNT_UNKNOWN;
+ bool can_be_added = true;
+
LLViewerInventoryCategory* category = gInventory.getCategory(cat_id);
+ // If category could not be retrieved it might mean that
+ // inventory is unusable at the moment so the category is
+ // stored with VERSION_UNKNOWN and DESCENDENT_COUNT_UNKNOWN,
+ // it may be updated later.
if (category)
{
// Inventory category version is used to find out if some changes
// to a category have been made.
version = category->getVersion();
+
+ LLInventoryModel::cat_array_t* cats;
+ LLInventoryModel::item_array_t* items;
+ gInventory.getDirectDescendentsOf(cat_id, cats, items);
+ if (!cats || !items)
+ {
+ llwarns << "Category '" << category->getName() << "' descendents corrupted, fetch failed." << llendl;
+ // NULL means the call failed -- cats/items map doesn't exist (note: this does NOT mean
+ // that the cat just doesn't have any items or subfolders).
+ // Unrecoverable, so just return "false" meaning that the category can't be observed.
+ can_be_added = false;
+
+ llassert(cats != NULL && items != NULL);
+ }
+ else
+ {
+ current_num_known_descendents = cats->count() + items->count();
+ }
}
- else
+
+ if (can_be_added)
{
- // If category could not be retrieved it might mean that
- // inventory is unusable at the moment so the category is
- // stored with VERSION_UNKNOWN and it may be updated later.
- version = LLViewerInventoryCategory::VERSION_UNKNOWN;
+ mCategoryMap.insert(category_map_value_t(cat_id, LLCategoryData(cb, version, current_num_known_descendents)));
}
- version = category->getVersion();
- mCategoryMap.insert(category_map_value_t(cat_id, LLCategoryData(cb, version)));
+ return can_be_added;
}
void LLInventoryCategoriesObserver::removeCategory(const LLUUID& cat_id)
diff --git a/indra/newview/llinventoryobserver.h b/indra/newview/llinventoryobserver.h
index e63b67d2ad..036e6ca40d 100644
--- a/indra/newview/llinventoryobserver.h
+++ b/indra/newview/llinventoryobserver.h
@@ -276,19 +276,28 @@ public:
LLInventoryCategoriesObserver() {};
virtual void changed(U32 mask);
- void addCategory(const LLUUID& cat_id, callback_t cb);
+ /**
+ * Add cat_id to the list of observed categories with a
+ * callback fired on category being changed.
+ *
+ * @return "true" if category was added, "false" if it could
+ * not be found.
+ */
+ bool addCategory(const LLUUID& cat_id, callback_t cb);
void removeCategory(const LLUUID& cat_id);
protected:
struct LLCategoryData
{
- LLCategoryData(callback_t cb, S32 version)
+ LLCategoryData(callback_t cb, S32 version, S32 num_descendents)
: mCallback(cb)
, mVersion(version)
+ , mDescendentsCount(num_descendents)
{}
callback_t mCallback;
S32 mVersion;
+ S32 mDescendentsCount;
};
typedef std::map<LLUUID, LLCategoryData> category_map_t;
diff --git a/indra/newview/llmutelist.cpp b/indra/newview/llmutelist.cpp
index 95094f6b52..7cb192e026 100644
--- a/indra/newview/llmutelist.cpp
+++ b/indra/newview/llmutelist.cpp
@@ -145,6 +145,9 @@ std::string LLMute::getDisplayType() const
case GROUP:
return LLTrans::getString("MuteGroup");
break;
+ case EXTERNAL:
+ return LLTrans::getString("MuteExternal");
+ break;
}
}
@@ -303,6 +306,12 @@ BOOL LLMuteList::add(const LLMute& mute, U32 flags)
void LLMuteList::updateAdd(const LLMute& mute)
{
+ // External mutes (e.g. Avaline callers) are local only, don't send them to the server.
+ if (mute.mType == LLMute::EXTERNAL)
+ {
+ return;
+ }
+
// Update the database
LLMessageSystem* msg = gMessageSystem;
msg->newMessageFast(_PREHASH_UpdateMuteListEntry);
@@ -390,6 +399,12 @@ BOOL LLMuteList::remove(const LLMute& mute, U32 flags)
void LLMuteList::updateRemove(const LLMute& mute)
{
+ // External mutes are not sent to the server anyway, no need to remove them.
+ if (mute.mType == LLMute::EXTERNAL)
+ {
+ return;
+ }
+
LLMessageSystem* msg = gMessageSystem;
msg->newMessageFast(_PREHASH_RemoveMuteListEntry);
msg->nextBlockFast(_PREHASH_AgentData);
@@ -573,9 +588,14 @@ BOOL LLMuteList::saveToFile(const std::string& filename)
it != mMutes.end();
++it)
{
- it->mID.toString(id_string);
- const std::string& name = it->mName;
- fprintf(fp, "%d %s %s|%u\n", (S32)it->mType, id_string.c_str(), name.c_str(), it->mFlags);
+ // Don't save external mutes as they are not sent to the server and probably won't
+ //be valid next time anyway.
+ if (it->mType != LLMute::EXTERNAL)
+ {
+ it->mID.toString(id_string);
+ const std::string& name = it->mName;
+ fprintf(fp, "%d %s %s|%u\n", (S32)it->mType, id_string.c_str(), name.c_str(), it->mFlags);
+ }
}
fclose(fp);
return TRUE;
diff --git a/indra/newview/llmutelist.h b/indra/newview/llmutelist.h
index 7cb11e6031..79b556bdbb 100644
--- a/indra/newview/llmutelist.h
+++ b/indra/newview/llmutelist.h
@@ -45,7 +45,8 @@ class LLMute
{
public:
// Legacy mutes are BY_NAME and have null UUID.
- enum EType { BY_NAME = 0, AGENT = 1, OBJECT = 2, GROUP = 3, COUNT = 4 };
+ // EXTERNAL mutes are only processed through an external system (e.g. Voice) and not stored.
+ enum EType { BY_NAME = 0, AGENT = 1, OBJECT = 2, GROUP = 3, EXTERNAL = 4, COUNT = 5 };
// Bits in the mute flags. For backwards compatibility (since any mute list entries that were created before the flags existed
// will have a flags field of 0), some of the flags are "inverted".
diff --git a/indra/newview/lloutfitslist.cpp b/indra/newview/lloutfitslist.cpp
index 1215272685..18bd610dd9 100644
--- a/indra/newview/lloutfitslist.cpp
+++ b/indra/newview/lloutfitslist.cpp
@@ -41,6 +41,7 @@
#include "llaccordionctrl.h"
#include "llaccordionctrltab.h"
+#include "llappearancemgr.h"
#include "llinventoryfunctions.h"
#include "llinventorymodel.h"
#include "llwearableitemslist.h"
@@ -51,6 +52,7 @@ LLOutfitsList::LLOutfitsList()
: LLPanel()
, mAccordion(NULL)
, mListCommands(NULL)
+ , mSelectedList(NULL)
{
mCategoriesObserver = new LLInventoryCategoriesObserver();
gInventory.addObserver(mCategoriesObserver);
@@ -135,30 +137,37 @@ void LLOutfitsList::refreshList(const LLUUID& category_id)
{
const LLUUID cat_id = (*iter);
LLViewerInventoryCategory *cat = gInventory.getCategory(cat_id);
- if (!cat)
- continue;
+ if (!cat) continue;
std::string name = cat->getName();
static LLXMLNodePtr accordionXmlNode = getAccordionTabXMLNode();
-
- accordionXmlNode->setAttributeString("name", name);
- accordionXmlNode->setAttributeString("title", name);
LLAccordionCtrlTab* tab = LLUICtrlFactory::defaultBuilder<LLAccordionCtrlTab>(accordionXmlNode, NULL, NULL);
+ tab->setName(name);
+ tab->setTitle(name);
+
// *TODO: LLUICtrlFactory::defaultBuilder does not use "display_children" from xml. Should be investigated.
tab->setDisplayChildren(false);
mAccordion->addCollapsibleCtrl(tab);
+ // Start observing the new outfit category.
+ LLWearableItemsList* list = tab->getChild<LLWearableItemsList>("wearable_items_list");
+ if (!mCategoriesObserver->addCategory(cat_id, boost::bind(&LLWearableItemsList::updateList, list, cat_id)))
+ {
+ // Remove accordion tab if category could not be added to observer.
+ mAccordion->removeCollapsibleCtrl(tab);
+ continue;
+ }
+
// Map the new tab with outfit category UUID.
mOutfitsMap.insert(LLOutfitsList::outfits_map_value_t(cat_id, tab));
- // Start observing the new outfit category.
- LLWearableItemsList* list = tab->getChild<LLWearableItemsList>("wearable_items_list");
- mCategoriesObserver->addCategory(cat_id, boost::bind(&LLWearableItemsList::updateList, list, cat_id));
+ // Setting tab focus callback to monitor currently selected outfit.
+ tab->setFocusReceivedCallback(boost::bind(&LLOutfitsList::changeOutfitSelection, this, list, cat_id));
- // Setting drop down callback to monitor currently selected outfit.
- tab->setDropDownStateChangedCallback(boost::bind(&LLOutfitsList::onTabExpandedCollapsed, this, list));
+ // Setting list commit callback to monitor currently selected wearable item.
+ list->setCommitCallback(boost::bind(&LLOutfitsList::onSelectionChange, this, _1));
// Fetch the new outfit contents.
cat->fetch();
@@ -178,10 +187,18 @@ void LLOutfitsList::refreshList(const LLUUID& category_id)
// 1. Remove outfit accordion tab from accordion.
mAccordion->removeCollapsibleCtrl(outfits_iter->second);
+ const LLUUID& outfit_id = outfits_iter->first;
+
// 2. Remove outfit category from observer to stop monitoring its changes.
- mCategoriesObserver->removeCategory(outfits_iter->first);
+ mCategoriesObserver->removeCategory(outfit_id);
+
+ // 3. Reset selection if selected outfit is being removed.
+ if (mSelectedOutfitUUID == outfit_id)
+ {
+ changeOutfitSelection(NULL, LLUUID());
+ }
- // 3. Remove category UUID to accordion tab mapping.
+ // 4. Remove category UUID to accordion tab mapping.
mOutfitsMap.erase(outfits_iter);
}
}
@@ -199,47 +216,64 @@ void LLOutfitsList::refreshList(const LLUUID& category_id)
mAccordion->arrange();
}
-void LLOutfitsList::updateOutfitTab(const LLUUID& category_id)
+void LLOutfitsList::onSelectionChange(LLUICtrl* ctrl)
{
- outfits_map_t::iterator outfits_iter = mOutfitsMap.find(category_id);
- if (outfits_iter != mOutfitsMap.end())
- {
- LLViewerInventoryCategory *cat = gInventory.getCategory(category_id);
- if (!cat)
- return;
-
- std::string name = cat->getName();
+ LLWearableItemsList* list = dynamic_cast<LLWearableItemsList*>(ctrl);
+ if (!list) return;
- // Update tab name with the new category name.
- LLAccordionCtrlTab* tab = outfits_iter->second;
- if (tab)
- {
- tab->setName(name);
- }
+ LLViewerInventoryItem *item = gInventory.getItem(list->getSelectedUUID());
+ if (!item) return;
- // Update tab title with the new category name using textbox
- // in accordion tab header.
- LLTextBox* tab_title = tab->findChild<LLTextBox>("dd_textbox");
- if (tab_title)
- {
- tab_title->setText(name);
- }
- }
+ changeOutfitSelection(list, item->getParentUUID());
}
-void LLOutfitsList::onTabExpandedCollapsed(LLWearableItemsList* list)
+void LLOutfitsList::performAction(std::string action)
{
- if (!list)
- return;
+ LLViewerInventoryCategory* cat = gInventory.getCategory(mSelectedOutfitUUID);
+ if (!cat) return;
- // TODO: Add outfit selection handling.
+ if ("replaceoutfit" == action)
+ {
+ LLAppearanceMgr::instance().wearInventoryCategory( cat, FALSE, FALSE );
+ }
+ else if ("addtooutfit" == action)
+ {
+ LLAppearanceMgr::instance().wearInventoryCategory( cat, FALSE, TRUE );
+ }
}
void LLOutfitsList::setFilterSubString(const std::string& string)
{
mFilterSubString = string;
-}
+ for (outfits_map_t::iterator
+ iter = mOutfitsMap.begin(),
+ iter_end = mOutfitsMap.end();
+ iter != iter_end; ++iter)
+ {
+ LLAccordionCtrlTab* tab = iter->second;
+ if (tab)
+ {
+ LLWearableItemsList* list = dynamic_cast<LLWearableItemsList*> (tab->getAccordionView());
+ if (list)
+ {
+ list->setFilterSubString(mFilterSubString);
+ }
+
+ if(!mFilterSubString.empty())
+ {
+ //store accordion tab state when filter is not empty
+ tab->notifyChildren(LLSD().with("action","store_state"));
+ tab->setDisplayChildren(true);
+ }
+ else
+ {
+ //restore accordion state after all those accodrion tab manipulations
+ tab->notifyChildren(LLSD().with("action","restore_state"));
+ }
+ }
+ }
+}
//////////////////////////////////////////////////////////////////////////
// Private methods
@@ -283,4 +317,37 @@ void LLOutfitsList::computeDifference(
LLCommonUtils::computeDifference(vnew, vcur, vadded, vremoved);
}
+void LLOutfitsList::updateOutfitTab(const LLUUID& category_id)
+{
+ outfits_map_t::iterator outfits_iter = mOutfitsMap.find(category_id);
+ if (outfits_iter != mOutfitsMap.end())
+ {
+ LLViewerInventoryCategory *cat = gInventory.getCategory(category_id);
+ if (!cat) return;
+
+ std::string name = cat->getName();
+
+ // Update tab name with the new category name.
+ LLAccordionCtrlTab* tab = outfits_iter->second;
+ if (tab)
+ {
+ tab->setName(name);
+ tab->setTitle(name);
+ }
+ }
+}
+
+void LLOutfitsList::changeOutfitSelection(LLWearableItemsList* list, const LLUUID& category_id)
+{
+ // Reset selection in previously selected tab
+ // if a new one is selected.
+ if (list && mSelectedList && mSelectedList != list)
+ {
+ mSelectedList->resetSelection();
+ }
+
+ mSelectedList = list;
+ mSelectedOutfitUUID = category_id;
+}
+
// EOF
diff --git a/indra/newview/lloutfitslist.h b/indra/newview/lloutfitslist.h
index 2d103ea356..d86cf5a703 100644
--- a/indra/newview/lloutfitslist.h
+++ b/indra/newview/lloutfitslist.h
@@ -65,10 +65,9 @@ public:
void refreshList(const LLUUID& category_id);
- // Update tab displaying outfit identified by category_id.
- void updateOutfitTab(const LLUUID& category_id);
+ void onSelectionChange(LLUICtrl* ctrl);
- void onTabExpandedCollapsed(LLWearableItemsList* list);
+ void performAction(std::string action);
void setFilterSubString(const std::string& string);
@@ -85,12 +84,24 @@ private:
*/
void computeDifference(const LLInventoryModel::cat_array_t& vcats, uuid_vec_t& vadded, uuid_vec_t& vremoved);
+ /**
+ * Updates tab displaying outfit identified by category_id.
+ */
+ void updateOutfitTab(const LLUUID& category_id);
+
+ /**
+ * Resets previous selection and stores newly selected list and outfit id.
+ */
+ void changeOutfitSelection(LLWearableItemsList* list, const LLUUID& category_id);
LLInventoryCategoriesObserver* mCategoriesObserver;
LLAccordionCtrl* mAccordion;
LLPanel* mListCommands;
+ LLWearableItemsList* mSelectedList;
+ LLUUID mSelectedOutfitUUID;
+
std::string mFilterSubString;
typedef std::map<LLUUID, LLAccordionCtrlTab*> outfits_map_t;
diff --git a/indra/newview/llpaneleditwearable.cpp b/indra/newview/llpaneleditwearable.cpp
index da74295f9e..3c112b8b5e 100644
--- a/indra/newview/llpaneleditwearable.cpp
+++ b/indra/newview/llpaneleditwearable.cpp
@@ -51,6 +51,12 @@
#include "llagentwearables.h"
#include "llscrollingpanelparam.h"
+#include "llcolorswatch.h"
+#include "lltexturectrl.h"
+#include "lltextureentry.h"
+#include "llviewercontrol.h" // gSavedSettings
+#include "llviewertexturelist.h"
+
// register panel with appropriate XML
static LLRegisterPanelClassWrapper<LLPanelEditWearable> t_edit_wearable("panel_edit_wearable");
@@ -88,6 +94,8 @@ enum ESubpart {
SUBPART_TATTOO
};
+using namespace LLVOAvatarDefines;
+
typedef std::vector<ESubpart> subpart_vec_t;
// Locally defined classes
@@ -110,14 +118,17 @@ public:
WearableEntry(EWearableType type,
const std::string &title,
const std::string &desc_title,
- U8 num_subparts, ... ); // number of subparts followed by a list of ESubparts
+ U8 num_color_swatches, // number of 'color_swatches'
+ U8 num_texture_pickers, // number of 'texture_pickers'
+ U8 num_subparts, ... ); // number of subparts followed by a list of ETextureIndex and ESubparts
const EWearableType mWearableType;
const std::string mTitle;
const std::string mDescTitle;
subpart_vec_t mSubparts;
-
+ texture_vec_t mColorSwatchCtrls;
+ texture_vec_t mTextureCtrls;
};
struct Wearables : public LLDictionary<EWearableType, WearableEntry>
@@ -158,6 +169,35 @@ public:
} mSubparts;
const SubpartEntry* getSubpart(ESubpart subpart) const { return mSubparts.lookup(subpart); }
+
+ //--------------------------------------------------------------------
+ // Picker Control Entries
+ //--------------------------------------------------------------------
+public:
+ struct PickerControlEntry : public LLDictionaryEntry
+ {
+ PickerControlEntry(ETextureIndex tex_index,
+ const std::string name,
+ const LLUUID default_image_id = LLUUID::null,
+ const bool allow_no_texture = false);
+ ETextureIndex mTextureIndex;
+ const std::string mControlName;
+ const LLUUID mDefaultImageId;
+ const bool mAllowNoTexture;
+ };
+
+ struct ColorSwatchCtrls : public LLDictionary<ETextureIndex, PickerControlEntry>
+ {
+ ColorSwatchCtrls();
+ } mColorSwatchCtrls;
+
+ struct TextureCtrls : public LLDictionary<ETextureIndex, PickerControlEntry>
+ {
+ TextureCtrls();
+ } mTextureCtrls;
+
+ const PickerControlEntry* getTexturePicker(ETextureIndex index) const { return mTextureCtrls.lookup(index); }
+ const PickerControlEntry* getColorSwatch(ETextureIndex index) const { return mColorSwatchCtrls.lookup(index); }
};
LLEditWearableDictionary::LLEditWearableDictionary()
@@ -172,26 +212,28 @@ LLEditWearableDictionary::~LLEditWearableDictionary()
LLEditWearableDictionary::Wearables::Wearables()
{
- addEntry(WT_SHAPE, new WearableEntry(WT_SHAPE,"edit_shape_title","shape_desc_text",9, SUBPART_SHAPE_HEAD, SUBPART_SHAPE_EYES, SUBPART_SHAPE_EARS, SUBPART_SHAPE_NOSE, SUBPART_SHAPE_MOUTH, SUBPART_SHAPE_CHIN, SUBPART_SHAPE_TORSO, SUBPART_SHAPE_LEGS, SUBPART_SHAPE_WHOLE));
- addEntry(WT_SKIN, new WearableEntry(WT_SKIN,"edit_skin_title","skin_desc_text",4, SUBPART_SKIN_COLOR, SUBPART_SKIN_FACEDETAIL, SUBPART_SKIN_MAKEUP, SUBPART_SKIN_BODYDETAIL));
- addEntry(WT_HAIR, new WearableEntry(WT_HAIR,"edit_hair_title","hair_desc_text",4, SUBPART_HAIR_COLOR, SUBPART_HAIR_STYLE, SUBPART_HAIR_EYEBROWS, SUBPART_HAIR_FACIAL));
- addEntry(WT_EYES, new WearableEntry(WT_EYES,"edit_eyes_title","eyes_desc_text",1, SUBPART_EYES));
- addEntry(WT_SHIRT, new WearableEntry(WT_SHIRT,"edit_shirt_title","shirt_desc_text",1, SUBPART_SHIRT));
- addEntry(WT_PANTS, new WearableEntry(WT_PANTS,"edit_pants_title","pants_desc_text",1, SUBPART_PANTS));
- addEntry(WT_SHOES, new WearableEntry(WT_SHOES,"edit_shoes_title","shoes_desc_text",1, SUBPART_SHOES));
- addEntry(WT_SOCKS, new WearableEntry(WT_SOCKS,"edit_socks_title","socks_desc_text",1, SUBPART_SOCKS));
- addEntry(WT_JACKET, new WearableEntry(WT_JACKET,"edit_jacket_title","jacket_desc_text",1, SUBPART_JACKET));
- addEntry(WT_GLOVES, new WearableEntry(WT_GLOVES,"edit_gloves_title","gloves_desc_text",1, SUBPART_GLOVES));
- addEntry(WT_UNDERSHIRT, new WearableEntry(WT_UNDERSHIRT,"edit_undershirt_title","undershirt_desc_text",1, SUBPART_UNDERSHIRT));
- addEntry(WT_UNDERPANTS, new WearableEntry(WT_UNDERPANTS,"edit_underpants_title","underpants_desc_text",1, SUBPART_UNDERPANTS));
- addEntry(WT_SKIRT, new WearableEntry(WT_SKIRT,"edit_skirt_title","skirt_desc_text",1, SUBPART_SKIRT));
- addEntry(WT_ALPHA, new WearableEntry(WT_ALPHA,"edit_alpha_title","alpha_desc_text",1, SUBPART_ALPHA));
- addEntry(WT_TATTOO, new WearableEntry(WT_TATTOO,"edit_tattoo_title","tattoo_desc_text",1, SUBPART_TATTOO));
+ addEntry(WT_SHAPE, new WearableEntry(WT_SHAPE,"edit_shape_title","shape_desc_text",0,0,9, SUBPART_SHAPE_HEAD, SUBPART_SHAPE_EYES, SUBPART_SHAPE_EARS, SUBPART_SHAPE_NOSE, SUBPART_SHAPE_MOUTH, SUBPART_SHAPE_CHIN, SUBPART_SHAPE_TORSO, SUBPART_SHAPE_LEGS, SUBPART_SHAPE_WHOLE));
+ addEntry(WT_SKIN, new WearableEntry(WT_SKIN,"edit_skin_title","skin_desc_text",0,3,4, TEX_HEAD_BODYPAINT, TEX_UPPER_BODYPAINT, TEX_LOWER_BODYPAINT, SUBPART_SKIN_COLOR, SUBPART_SKIN_FACEDETAIL, SUBPART_SKIN_MAKEUP, SUBPART_SKIN_BODYDETAIL));
+ addEntry(WT_HAIR, new WearableEntry(WT_HAIR,"edit_hair_title","hair_desc_text",0,1,4, TEX_HAIR, SUBPART_HAIR_COLOR, SUBPART_HAIR_STYLE, SUBPART_HAIR_EYEBROWS, SUBPART_HAIR_FACIAL));
+ addEntry(WT_EYES, new WearableEntry(WT_EYES,"edit_eyes_title","eyes_desc_text",0,1,1, TEX_EYES_IRIS, SUBPART_EYES));
+ addEntry(WT_SHIRT, new WearableEntry(WT_SHIRT,"edit_shirt_title","shirt_desc_text",1,1,1, TEX_UPPER_SHIRT, TEX_UPPER_SHIRT, SUBPART_SHIRT));
+ addEntry(WT_PANTS, new WearableEntry(WT_PANTS,"edit_pants_title","pants_desc_text",1,1,1, TEX_LOWER_PANTS, TEX_LOWER_PANTS, SUBPART_PANTS));
+ addEntry(WT_SHOES, new WearableEntry(WT_SHOES,"edit_shoes_title","shoes_desc_text",1,1,1, TEX_LOWER_SHOES, TEX_LOWER_SHOES, SUBPART_SHOES));
+ addEntry(WT_SOCKS, new WearableEntry(WT_SOCKS,"edit_socks_title","socks_desc_text",1,1,1, TEX_LOWER_SOCKS, TEX_LOWER_SOCKS, SUBPART_SOCKS));
+ addEntry(WT_JACKET, new WearableEntry(WT_JACKET,"edit_jacket_title","jacket_desc_text",1,2,1, TEX_UPPER_JACKET, TEX_UPPER_JACKET, TEX_LOWER_JACKET, SUBPART_JACKET));
+ addEntry(WT_GLOVES, new WearableEntry(WT_GLOVES,"edit_gloves_title","gloves_desc_text",1,1,1, TEX_UPPER_GLOVES, TEX_UPPER_GLOVES, SUBPART_GLOVES));
+ addEntry(WT_UNDERSHIRT, new WearableEntry(WT_UNDERSHIRT,"edit_undershirt_title","undershirt_desc_text",1,1,1, TEX_UPPER_UNDERSHIRT, TEX_UPPER_UNDERSHIRT, SUBPART_UNDERSHIRT));
+ addEntry(WT_UNDERPANTS, new WearableEntry(WT_UNDERPANTS,"edit_underpants_title","underpants_desc_text",1,1,1, TEX_LOWER_UNDERPANTS, TEX_LOWER_UNDERPANTS, SUBPART_UNDERPANTS));
+ addEntry(WT_SKIRT, new WearableEntry(WT_SKIRT,"edit_skirt_title","skirt_desc_text",1,1,1, TEX_SKIRT, TEX_SKIRT, SUBPART_SKIRT));
+ addEntry(WT_ALPHA, new WearableEntry(WT_ALPHA,"edit_alpha_title","alpha_desc_text",0,5,1, TEX_LOWER_ALPHA, TEX_UPPER_ALPHA, TEX_HEAD_ALPHA, TEX_EYES_ALPHA, TEX_HAIR_ALPHA, SUBPART_ALPHA));
+ addEntry(WT_TATTOO, new WearableEntry(WT_TATTOO,"edit_tattoo_title","tattoo_desc_text",0,3,1, TEX_LOWER_TATTOO, TEX_UPPER_TATTOO, TEX_HEAD_TATTOO, SUBPART_TATTOO));
}
LLEditWearableDictionary::WearableEntry::WearableEntry(EWearableType type,
const std::string &title,
const std::string &desc_title,
+ U8 num_color_swatches,
+ U8 num_texture_pickers,
U8 num_subparts, ... ) :
LLDictionaryEntry(title),
mWearableType(type),
@@ -201,6 +243,18 @@ LLEditWearableDictionary::WearableEntry::WearableEntry(EWearableType type,
va_list argp;
va_start(argp, num_subparts);
+ for (U8 i = 0; i < num_color_swatches; ++i)
+ {
+ ETextureIndex index = (ETextureIndex)va_arg(argp,int);
+ mColorSwatchCtrls.push_back(index);
+ }
+
+ for (U8 i = 0; i < num_texture_pickers; ++i)
+ {
+ ETextureIndex index = (ETextureIndex)va_arg(argp,int);
+ mTextureCtrls.push_back(index);
+ }
+
for (U8 i = 0; i < num_subparts; ++i)
{
ESubpart part = (ESubpart)va_arg(argp,int);
@@ -265,6 +319,268 @@ LLEditWearableDictionary::SubpartEntry::SubpartEntry(ESubpart part,
{
}
+LLEditWearableDictionary::ColorSwatchCtrls::ColorSwatchCtrls()
+{
+ addEntry ( TEX_UPPER_SHIRT, new PickerControlEntry (TEX_UPPER_SHIRT, "Color/Tint" ));
+ addEntry ( TEX_LOWER_PANTS, new PickerControlEntry (TEX_LOWER_PANTS, "Color/Tint" ));
+ addEntry ( TEX_LOWER_SHOES, new PickerControlEntry (TEX_LOWER_SHOES, "Color/Tint" ));
+ addEntry ( TEX_LOWER_SOCKS, new PickerControlEntry (TEX_LOWER_SOCKS, "Color/Tint" ));
+ addEntry ( TEX_UPPER_JACKET, new PickerControlEntry (TEX_UPPER_JACKET, "Color/Tint" ));
+ addEntry ( TEX_SKIRT, new PickerControlEntry (TEX_SKIRT, "Color/Tint" ));
+ addEntry ( TEX_UPPER_GLOVES, new PickerControlEntry (TEX_UPPER_GLOVES, "Color/Tint" ));
+ addEntry ( TEX_UPPER_UNDERSHIRT, new PickerControlEntry (TEX_UPPER_UNDERSHIRT, "Color/Tint" ));
+ addEntry ( TEX_LOWER_UNDERPANTS, new PickerControlEntry (TEX_LOWER_UNDERPANTS, "Color/Tint" ));
+}
+
+LLEditWearableDictionary::TextureCtrls::TextureCtrls()
+{
+ addEntry ( TEX_HEAD_BODYPAINT, new PickerControlEntry (TEX_HEAD_BODYPAINT, "Head Tattoos", LLUUID::null, TRUE ));
+ addEntry ( TEX_UPPER_BODYPAINT, new PickerControlEntry (TEX_UPPER_BODYPAINT, "Upper Tattoos", LLUUID::null, TRUE ));
+ addEntry ( TEX_LOWER_BODYPAINT, new PickerControlEntry (TEX_LOWER_BODYPAINT, "Lower Tattoos", LLUUID::null, TRUE ));
+ addEntry ( TEX_HAIR, new PickerControlEntry (TEX_HAIR, "Texture", LLUUID( gSavedSettings.getString( "UIImgDefaultHairUUID" ) ), FALSE ));
+ addEntry ( TEX_EYES_IRIS, new PickerControlEntry (TEX_EYES_IRIS, "Iris", LLUUID( gSavedSettings.getString( "UIImgDefaultEyesUUID" ) ), FALSE ));
+ addEntry ( TEX_UPPER_SHIRT, new PickerControlEntry (TEX_UPPER_SHIRT, "Fabric", LLUUID( gSavedSettings.getString( "UIImgDefaultShirtUUID" ) ), FALSE ));
+ addEntry ( TEX_LOWER_PANTS, new PickerControlEntry (TEX_LOWER_PANTS, "Fabric", LLUUID( gSavedSettings.getString( "UIImgDefaultPantsUUID" ) ), FALSE ));
+ addEntry ( TEX_LOWER_SHOES, new PickerControlEntry (TEX_LOWER_SHOES, "Fabric", LLUUID( gSavedSettings.getString( "UIImgDefaultShoesUUID" ) ), FALSE ));
+ addEntry ( TEX_LOWER_SOCKS, new PickerControlEntry (TEX_LOWER_SOCKS, "Fabric", LLUUID( gSavedSettings.getString( "UIImgDefaultSocksUUID" ) ), FALSE ));
+ addEntry ( TEX_UPPER_JACKET, new PickerControlEntry (TEX_UPPER_JACKET, "Upper Fabric", LLUUID( gSavedSettings.getString( "UIImgDefaultJacketUUID" ) ), FALSE ));
+ addEntry ( TEX_LOWER_JACKET, new PickerControlEntry (TEX_LOWER_JACKET, "Lower Fabric", LLUUID( gSavedSettings.getString( "UIImgDefaultJacketUUID" ) ), FALSE ));
+ addEntry ( TEX_SKIRT, new PickerControlEntry (TEX_SKIRT, "Fabric", LLUUID( gSavedSettings.getString( "UIImgDefaultSkirtUUID" ) ), FALSE ));
+ addEntry ( TEX_UPPER_GLOVES, new PickerControlEntry (TEX_UPPER_GLOVES, "Fabric", LLUUID( gSavedSettings.getString( "UIImgDefaultGlovesUUID" ) ), FALSE ));
+ addEntry ( TEX_UPPER_UNDERSHIRT, new PickerControlEntry (TEX_UPPER_UNDERSHIRT, "Fabric", LLUUID( gSavedSettings.getString( "UIImgDefaultUnderwearUUID" ) ), FALSE ));
+ addEntry ( TEX_LOWER_UNDERPANTS, new PickerControlEntry (TEX_LOWER_UNDERPANTS, "Fabric", LLUUID( gSavedSettings.getString( "UIImgDefaultUnderwearUUID" ) ), FALSE ));
+ addEntry ( TEX_LOWER_ALPHA, new PickerControlEntry (TEX_LOWER_ALPHA, "Lower Alpha", LLUUID( gSavedSettings.getString( "UIImgDefaultAlphaUUID" ) ), TRUE ));
+ addEntry ( TEX_UPPER_ALPHA, new PickerControlEntry (TEX_UPPER_ALPHA, "Upper Alpha", LLUUID( gSavedSettings.getString( "UIImgDefaultAlphaUUID" ) ), TRUE ));
+ addEntry ( TEX_HEAD_ALPHA, new PickerControlEntry (TEX_HEAD_ALPHA, "Head Alpha", LLUUID( gSavedSettings.getString( "UIImgDefaultAlphaUUID" ) ), TRUE ));
+ addEntry ( TEX_EYES_ALPHA, new PickerControlEntry (TEX_EYES_ALPHA, "Eye Alpha", LLUUID( gSavedSettings.getString( "UIImgDefaultAlphaUUID" ) ), TRUE ));
+ addEntry ( TEX_HAIR_ALPHA, new PickerControlEntry (TEX_HAIR_ALPHA, "Hair Alpha", LLUUID( gSavedSettings.getString( "UIImgDefaultAlphaUUID" ) ), TRUE ));
+ addEntry ( TEX_LOWER_TATTOO, new PickerControlEntry (TEX_LOWER_TATTOO, "Lower Tattoo", LLUUID::null, TRUE ));
+ addEntry ( TEX_UPPER_TATTOO, new PickerControlEntry (TEX_UPPER_TATTOO, "Upper Tattoo", LLUUID::null, TRUE ));
+ addEntry ( TEX_HEAD_TATTOO, new PickerControlEntry (TEX_HEAD_TATTOO, "Head Tattoo", LLUUID::null, TRUE ));
+}
+
+LLEditWearableDictionary::PickerControlEntry::PickerControlEntry(ETextureIndex tex_index,
+ const std::string name,
+ const LLUUID default_image_id,
+ const bool allow_no_texture) :
+ LLDictionaryEntry(name),
+ mTextureIndex(tex_index),
+ mControlName(name),
+ mDefaultImageId(default_image_id),
+ mAllowNoTexture(allow_no_texture)
+{
+}
+
+// Helper functions.
+static const texture_vec_t null_texture_vec;
+
+// Specializations of this template function return a vector of texture indexes of particular control type
+// (i.e. LLColorSwatchCtrl or LLTextureCtrl) which are contained in given WearableEntry.
+template <typename T>
+const texture_vec_t&
+get_pickers_indexes(const LLEditWearableDictionary::WearableEntry *wearable_entry) { return null_texture_vec; }
+
+// Specializations of this template function return picker control entry for particular control type.
+template <typename T>
+const LLEditWearableDictionary::PickerControlEntry*
+get_picker_entry (const ETextureIndex index) { return NULL; }
+
+typedef boost::function<void(LLPanel* panel, const LLEditWearableDictionary::PickerControlEntry*)> function_t;
+
+typedef struct PickerControlEntryNamePredicate
+{
+ PickerControlEntryNamePredicate(const std::string name) : mName (name) {};
+ bool operator()(const LLEditWearableDictionary::PickerControlEntry* entry) const
+ {
+ return (entry && entry->mName == mName);
+ }
+private:
+ const std::string mName;
+} PickerControlEntryNamePredicate;
+
+// A full specialization of get_pickers_indexes for LLColorSwatchCtrl
+template <>
+const texture_vec_t&
+get_pickers_indexes<LLColorSwatchCtrl> (const LLEditWearableDictionary::WearableEntry *wearable_entry)
+{
+ if (!wearable_entry)
+ {
+ llwarns << "could not get LLColorSwatchCtrl indexes for null wearable entry." << llendl;
+ return null_texture_vec;
+ }
+ return wearable_entry->mColorSwatchCtrls;
+}
+
+// A full specialization of get_pickers_indexes for LLTextureCtrl
+template <>
+const texture_vec_t&
+get_pickers_indexes<LLTextureCtrl> (const LLEditWearableDictionary::WearableEntry *wearable_entry)
+{
+ if (!wearable_entry)
+ {
+ llwarns << "could not get LLTextureCtrl indexes for null wearable entry." << llendl;
+ return null_texture_vec;
+ }
+ return wearable_entry->mTextureCtrls;
+}
+
+// A full specialization of get_picker_entry for LLColorSwatchCtrl
+template <>
+const LLEditWearableDictionary::PickerControlEntry*
+get_picker_entry<LLColorSwatchCtrl> (const ETextureIndex index)
+{
+ return LLEditWearableDictionary::getInstance()->getColorSwatch(index);
+}
+
+// A full specialization of get_picker_entry for LLTextureCtrl
+template <>
+const LLEditWearableDictionary::PickerControlEntry*
+get_picker_entry<LLTextureCtrl> (const ETextureIndex index)
+{
+ return LLEditWearableDictionary::getInstance()->getTexturePicker(index);
+}
+
+template <typename CtrlType, class Predicate>
+const LLEditWearableDictionary::PickerControlEntry*
+find_picker_ctrl_entry_if(EWearableType type, const Predicate pred)
+{
+ const LLEditWearableDictionary::WearableEntry *wearable_entry
+ = LLEditWearableDictionary::getInstance()->getWearable(type);
+ if (!wearable_entry)
+ {
+ llwarns << "could not get wearable dictionary entry for wearable of type: " << type << llendl;
+ return NULL;
+ }
+ const texture_vec_t& indexes = get_pickers_indexes<CtrlType>(wearable_entry);
+ for (texture_vec_t::const_iterator
+ iter = indexes.begin(),
+ iter_end = indexes.end();
+ iter != iter_end; ++iter)
+ {
+ const ETextureIndex te = *iter;
+ const LLEditWearableDictionary::PickerControlEntry* entry
+ = get_picker_entry<CtrlType>(te);
+ if (!entry)
+ {
+ llwarns << "could not get picker dictionary entry (" << te << ") for wearable of type: " << type << llendl;
+ continue;
+ }
+ if (pred(entry))
+ {
+ return entry;
+ }
+ }
+ return NULL;
+}
+
+template <typename CtrlType>
+void
+for_each_picker_ctrl_entry(LLPanel* panel, EWearableType type, function_t fun)
+{
+ if (!panel)
+ {
+ llwarns << "the panel wasn't passed for wearable of type: " << type << llendl;
+ return;
+ }
+ const LLEditWearableDictionary::WearableEntry *wearable_entry
+ = LLEditWearableDictionary::getInstance()->getWearable(type);
+ if (!wearable_entry)
+ {
+ llwarns << "could not get wearable dictionary entry for wearable of type: " << type << llendl;
+ return;
+ }
+ const texture_vec_t& indexes = get_pickers_indexes<CtrlType>(wearable_entry);
+ for (texture_vec_t::const_iterator
+ iter = indexes.begin(),
+ iter_end = indexes.end();
+ iter != iter_end; ++iter)
+ {
+ const ETextureIndex te = *iter;
+ const LLEditWearableDictionary::PickerControlEntry* entry
+ = get_picker_entry<CtrlType>(te);
+ if (!entry)
+ {
+ llwarns << "could not get picker dictionary entry (" << te << ") for wearable of type: " << type << llendl;
+ continue;
+ }
+ fun (panel, entry);
+ }
+}
+
+// The helper functions for pickers management
+static void init_color_swatch_ctrl(LLPanelEditWearable* self, LLPanel* panel, const LLEditWearableDictionary::PickerControlEntry* entry)
+{
+ LLColorSwatchCtrl* color_swatch_ctrl = panel->getChild<LLColorSwatchCtrl>(entry->mControlName);
+ if (color_swatch_ctrl)
+ {
+ color_swatch_ctrl->setOriginal(self->getWearable()->getClothesColor(entry->mTextureIndex));
+ }
+}
+
+static void init_texture_ctrl(LLPanelEditWearable* self, LLPanel* panel, const LLEditWearableDictionary::PickerControlEntry* entry)
+{
+ LLTextureCtrl* texture_ctrl = panel->getChild<LLTextureCtrl>(entry->mControlName);
+ if (texture_ctrl)
+ {
+ texture_ctrl->setDefaultImageAssetID(entry->mDefaultImageId);
+ texture_ctrl->setAllowNoTexture(entry->mAllowNoTexture);
+ // Don't allow (no copy) or (notransfer) textures to be selected.
+ texture_ctrl->setImmediateFilterPermMask(PERM_NONE);
+ texture_ctrl->setNonImmediateFilterPermMask(PERM_NONE);
+ }
+}
+
+static void update_color_swatch_ctrl(LLPanelEditWearable* self, LLPanel* panel, const LLEditWearableDictionary::PickerControlEntry* entry)
+{
+ LLColorSwatchCtrl* color_swatch_ctrl = panel->getChild<LLColorSwatchCtrl>(entry->mControlName);
+ if (color_swatch_ctrl)
+ {
+ color_swatch_ctrl->set(self->getWearable()->getClothesColor(entry->mTextureIndex));
+ }
+}
+
+static void update_texture_ctrl(LLPanelEditWearable* self, LLPanel* panel, const LLEditWearableDictionary::PickerControlEntry* entry)
+{
+ LLTextureCtrl* texture_ctrl = panel->getChild<LLTextureCtrl>(entry->mControlName);
+ if (texture_ctrl)
+ {
+ LLUUID new_id;
+ LLLocalTextureObject *lto = self->getWearable()->getLocalTextureObject(entry->mTextureIndex);
+ if( lto && (lto->getID() != IMG_DEFAULT_AVATAR) )
+ {
+ new_id = lto->getID();
+ }
+ else
+ {
+ new_id = LLUUID::null;
+ }
+ LLUUID old_id = texture_ctrl->getImageAssetID();
+ if (old_id != new_id)
+ {
+ // texture has changed, close the floater to avoid DEV-22461
+ texture_ctrl->closeDependentFloater();
+ }
+ texture_ctrl->setImageAssetID(new_id);
+ }
+}
+
+static void set_enabled_color_swatch_ctrl(bool enabled, LLPanel* panel, const LLEditWearableDictionary::PickerControlEntry* entry)
+{
+ LLColorSwatchCtrl* color_swatch_ctrl = panel->getChild<LLColorSwatchCtrl>(entry->mControlName);
+ if (color_swatch_ctrl)
+ {
+ color_swatch_ctrl->setEnabled(enabled);
+ }
+}
+
+static void set_enabled_texture_ctrl(bool enabled, LLPanel* panel, const LLEditWearableDictionary::PickerControlEntry* entry)
+{
+ LLTextureCtrl* texture_ctrl = panel->getChild<LLTextureCtrl>(entry->mControlName);
+ if (texture_ctrl)
+ {
+ texture_ctrl->setEnabled(enabled);
+ }
+}
// LLPanelEditWearable
@@ -273,6 +589,8 @@ LLPanelEditWearable::LLPanelEditWearable()
, mWearablePtr(NULL)
, mWearableItem(NULL)
{
+ mCommitCallbackRegistrar.add("ColorSwatch.Commit", boost::bind(&LLPanelEditWearable::onColorSwatchCommit, this, _1));
+ mCommitCallbackRegistrar.add("TexturePicker.Commit", boost::bind(&LLPanelEditWearable::onTexturePickerCommit, this, _1));
}
//virtual
@@ -341,6 +659,10 @@ BOOL LLPanelEditWearable::isDirty() const
void LLPanelEditWearable::draw()
{
updateVerbs();
+ if (getWearable())
+ {
+ updatePanelPickerControls(getWearable()->getType());
+ }
LLPanel::draw();
}
@@ -361,6 +683,102 @@ void LLPanelEditWearable::onRevertButtonClicked(void* userdata)
panel->revertChanges();
}
+void LLPanelEditWearable::onTexturePickerCommit(const LLUICtrl* ctrl)
+{
+ const LLTextureCtrl* texture_ctrl = dynamic_cast<const LLTextureCtrl*>(ctrl);
+ if (!texture_ctrl)
+ {
+ llwarns << "got commit signal from not LLTextureCtrl." << llendl;
+ return;
+ }
+
+ if (getWearable())
+ {
+ EWearableType type = getWearable()->getType();
+ const PickerControlEntryNamePredicate name_pred(texture_ctrl->getName());
+ const LLEditWearableDictionary::PickerControlEntry* entry
+ = find_picker_ctrl_entry_if<LLTextureCtrl, PickerControlEntryNamePredicate>(type, name_pred);
+ if (entry)
+ {
+ // Set the new version
+ LLViewerFetchedTexture* image = LLViewerTextureManager::getFetchedTexture(texture_ctrl->getImageAssetID());
+ if( image->getID().isNull() )
+ {
+ image = LLViewerTextureManager::getFetchedTexture(IMG_DEFAULT_AVATAR);
+ }
+ if (getWearable())
+ {
+ U32 index = gAgentWearables.getWearableIndex(getWearable());
+ gAgentAvatarp->setLocalTexture(entry->mTextureIndex, image, FALSE, index);
+ LLVisualParamHint::requestHintUpdates();
+ gAgentAvatarp->wearableUpdated(type, FALSE);
+ }
+ }
+ else
+ {
+ llwarns << "could not get texture picker dictionary entry for wearable of type: " << type << llendl;
+ }
+ }
+}
+
+void LLPanelEditWearable::onColorSwatchCommit(const LLUICtrl* ctrl)
+{
+ if (getWearable())
+ {
+ EWearableType type = getWearable()->getType();
+ const PickerControlEntryNamePredicate name_pred(ctrl->getName());
+ const LLEditWearableDictionary::PickerControlEntry* entry
+ = find_picker_ctrl_entry_if<LLColorSwatchCtrl, PickerControlEntryNamePredicate>(type, name_pred);
+ if (entry)
+ {
+ const LLColor4& old_color = getWearable()->getClothesColor(entry->mTextureIndex);
+ const LLColor4& new_color = LLColor4(ctrl->getValue());
+ if( old_color != new_color )
+ {
+ getWearable()->setClothesColor(entry->mTextureIndex, new_color, TRUE);
+ LLVisualParamHint::requestHintUpdates();
+ gAgentAvatarp->wearableUpdated(getWearable()->getType(), FALSE);
+ }
+ }
+ else
+ {
+ llwarns << "could not get color swatch dictionary entry for wearable of type: " << type << llendl;
+ }
+ }
+}
+
+void LLPanelEditWearable::updatePanelPickerControls(EWearableType type)
+{
+ LLPanel* panel = getPanel(type);
+ if (!panel)
+ return;
+
+ bool is_modifiable = false;
+ bool is_complete = false;
+ bool is_copyable = false;
+
+ if(mWearableItem)
+ {
+ const LLPermissions& perm = mWearableItem->getPermissions();
+ is_modifiable = perm.allowModifyBy(gAgent.getID(), gAgent.getGroupID());
+ is_copyable = perm.allowCopyBy(gAgent.getID(), gAgent.getGroupID());
+ is_complete = mWearableItem->isFinished();
+ }
+
+ if (is_modifiable && is_complete)
+ {
+ // Update picker controls
+ for_each_picker_ctrl_entry <LLColorSwatchCtrl> (panel, type, boost::bind(update_color_swatch_ctrl, this, _1, _2));
+ for_each_picker_ctrl_entry <LLTextureCtrl> (panel, type, boost::bind(update_texture_ctrl, this, _1, _2));
+ }
+
+ if (!is_modifiable || !is_complete || !is_copyable)
+ {
+ // Disable controls
+ for_each_picker_ctrl_entry <LLColorSwatchCtrl> (panel, type, boost::bind(set_enabled_color_swatch_ctrl, false, _1, _2));
+ for_each_picker_ctrl_entry <LLTextureCtrl> (panel, type, boost::bind(set_enabled_texture_ctrl, false, _1, _2));
+ }
+}
void LLPanelEditWearable::saveChanges()
{
@@ -428,6 +846,9 @@ void LLPanelEditWearable::showWearable(LLWearable* wearable, BOOL show)
mDescTitle->setText(description_title);
}
+ // Update picker controls state
+ for_each_picker_ctrl_entry <LLColorSwatchCtrl> (targetPanel, type, boost::bind(set_enabled_color_swatch_ctrl, show, _1, _2));
+ for_each_picker_ctrl_entry <LLTextureCtrl> (targetPanel, type, boost::bind(set_enabled_texture_ctrl, show, _1, _2));
}
void LLPanelEditWearable::initializePanel()
@@ -493,6 +914,11 @@ void LLPanelEditWearable::initializePanel()
updateScrollingPanelUI();
}
+
+ // initialize texture and color picker controls
+ for_each_picker_ctrl_entry <LLColorSwatchCtrl> (getPanel(type), type, boost::bind(init_color_swatch_ctrl, this, _1, _2));
+ for_each_picker_ctrl_entry <LLTextureCtrl> (getPanel(type), type, boost::bind(init_texture_ctrl, this, _1, _2));
+
updateVerbs();
}
diff --git a/indra/newview/llpaneleditwearable.h b/indra/newview/llpaneleditwearable.h
index 8b63685177..76b0ddb3cc 100644
--- a/indra/newview/llpaneleditwearable.h
+++ b/indra/newview/llpaneleditwearable.h
@@ -77,6 +77,10 @@ private:
// update bottom bar buttons ("Save", "Revert", etc)
void updateVerbs();
+ void onColorSwatchCommit(const LLUICtrl*);
+ void onTexturePickerCommit(const LLUICtrl*);
+ void updatePanelPickerControls(EWearableType type);
+
// the pointer to the wearable we're editing. NULL means we're not editing a wearable.
LLWearable *mWearablePtr;
LLViewerInventoryItem* mWearableItem;
@@ -112,7 +116,6 @@ private:
LLPanel *mPanelSkirt;
LLPanel *mPanelAlpha;
LLPanel *mPanelTattoo;
-
};
#endif
diff --git a/indra/newview/llpaneloutfitedit.cpp b/indra/newview/llpaneloutfitedit.cpp
index dbccd243da..daa41e1467 100644
--- a/indra/newview/llpaneloutfitedit.cpp
+++ b/indra/newview/llpaneloutfitedit.cpp
@@ -128,8 +128,6 @@ LLPanelOutfitEdit::LLPanelOutfitEdit()
mSearchFilter(NULL),
mCOFWearables(NULL),
mInventoryItemsPanel(NULL),
- mAddToOutfitBtn(NULL),
- mRemoveFromOutfitBtn(NULL),
mLookObserver(NULL)
{
mSavedFolderState = new LLSaveFolderState();
@@ -174,13 +172,20 @@ BOOL LLPanelOutfitEdit::postBuild()
mCurrentOutfitName = getChild<LLTextBox>("curr_outfit_name");
- childSetCommitCallback("add_btn", boost::bind(&LLPanelOutfitEdit::showAddWearablesPanel, this), NULL);
childSetCommitCallback("filter_button", boost::bind(&LLPanelOutfitEdit::showWearablesFilter, this), NULL);
childSetCommitCallback("list_view_btn", boost::bind(&LLPanelOutfitEdit::showFilteredWearablesPanel, this), NULL);
mCOFWearables = getChild<LLCOFWearables>("cof_wearables_list");
mCOFWearables->setCommitCallback(boost::bind(&LLPanelOutfitEdit::onOutfitItemSelectionChange, this));
+ mCOFWearables->getCOFCallbacks().mEditWearable = boost::bind(&LLPanelOutfitEdit::onEditWearableClicked, this);
+ mCOFWearables->getCOFCallbacks().mDeleteWearable = boost::bind(&LLPanelOutfitEdit::onRemoveFromOutfitClicked, this);
+ mCOFWearables->getCOFCallbacks().mMoveWearableCloser = boost::bind(&LLPanelOutfitEdit::moveWearable, this, true);
+ mCOFWearables->getCOFCallbacks().mMoveWearableFurther = boost::bind(&LLPanelOutfitEdit::moveWearable, this, false);
+
+ mCOFWearables->childSetAction("add_btn", boost::bind(&LLPanelOutfitEdit::toggleAddWearablesPanel, this));
+
+
mInventoryItemsPanel = getChild<LLInventoryPanel>("inventory_items");
mInventoryItemsPanel->setFilterTypes(ALL_ITEMS_MASK);
mInventoryItemsPanel->setShowFolderState(LLInventoryFilter::SHOW_NON_EMPTY_FOLDERS);
@@ -209,13 +214,6 @@ BOOL LLPanelOutfitEdit::postBuild()
mAddToLookBtn->setEnabled(FALSE);
mAddToLookBtn->setVisible(FALSE); */
- childSetAction("add_to_outfit_btn", boost::bind(&LLPanelOutfitEdit::onAddToOutfitClicked, this));
- childSetEnabled("add_to_outfit_btn", false);
-
- mRemoveFromOutfitBtn = getChild<LLButton>("remove_from_outfit_btn");
- mRemoveFromOutfitBtn->setEnabled(FALSE);
- mRemoveFromOutfitBtn->setCommitCallback(boost::bind(&LLPanelOutfitEdit::onRemoveFromOutfitClicked, this));
-
mEditWearableBtn = getChild<LLButton>("edit_wearable_btn");
mEditWearableBtn->setEnabled(FALSE);
mEditWearableBtn->setVisible(FALSE);
@@ -233,9 +231,6 @@ BOOL LLPanelOutfitEdit::postBuild()
mWearableListManager = new LLFilteredWearableListManager(
getChild<LLInventoryItemsList>("filtered_wearables_list"), ALL_ITEMS_MASK);
-
- childSetAction("move_closer_btn", boost::bind(&LLPanelOutfitEdit::moveWearable, this, true));
- childSetAction("move_further_btn", boost::bind(&LLPanelOutfitEdit::moveWearable, this, false));
return TRUE;
}
@@ -252,9 +247,9 @@ void LLPanelOutfitEdit::moveWearable(bool closer_to_body)
updateLookInfo();
}
-void LLPanelOutfitEdit::showAddWearablesPanel()
+void LLPanelOutfitEdit::toggleAddWearablesPanel()
{
- childSetVisible("add_wearables_panel", childGetValue("add_btn"));
+ childSetVisible("add_wearables_panel", !childIsVisible("add_wearables_panel"));
}
void LLPanelOutfitEdit::showWearablesFilter()
@@ -379,8 +374,6 @@ void LLPanelOutfitEdit::onRemoveFromOutfitClicked(void)
LLAppearanceMgr::getInstance()->removeItemFromAvatar(id_to_remove);
updateLookInfo();
-
- mRemoveFromOutfitBtn->setEnabled(FALSE);
}
@@ -434,10 +427,7 @@ void LLPanelOutfitEdit::onInventorySelectionChange(const std::deque<LLFolderView
case LLAssetType::AT_CLOTHING:
case LLAssetType::AT_BODYPART:
case LLAssetType::AT_OBJECT:
- childSetEnabled("add_to_outfit_btn", true);
- break;
default:
- childSetEnabled("add_to_outfit_btn", false);
break;
}
@@ -470,10 +460,7 @@ void LLPanelOutfitEdit::onOutfitItemSelectionChange(void)
{
case LLAssetType::AT_CLOTHING:
case LLAssetType::AT_OBJECT:
- mRemoveFromOutfitBtn->setEnabled(TRUE);
- break;
default:
- mRemoveFromOutfitBtn->setEnabled(FALSE);
break;
}
}
diff --git a/indra/newview/llpaneloutfitedit.h b/indra/newview/llpaneloutfitedit.h
index 21fa849289..0074cd517b 100644
--- a/indra/newview/llpaneloutfitedit.h
+++ b/indra/newview/llpaneloutfitedit.h
@@ -90,7 +90,7 @@ public:
void moveWearable(bool closer_to_body);
- void showAddWearablesPanel();
+ void toggleAddWearablesPanel();
void showWearablesFilter();
void showFilteredWearablesPanel();
void saveOutfit(bool as_new = false);
@@ -122,8 +122,6 @@ private:
LLFilterEditor* mSearchFilter;
LLSaveFolderState* mSavedFolderState;
std::string mSearchString;
- LLButton* mAddToOutfitBtn;
- LLButton* mRemoveFromOutfitBtn;
LLButton* mEditWearableBtn;
LLToggleableMenu* mSaveMenu;
diff --git a/indra/newview/llpaneloutfitsinventory.cpp b/indra/newview/llpaneloutfitsinventory.cpp
index 789e85b46f..59c1fb4f3c 100644
--- a/indra/newview/llpaneloutfitsinventory.cpp
+++ b/indra/newview/llpaneloutfitsinventory.cpp
@@ -68,7 +68,6 @@ static const std::string OUTFITS_TAB_NAME = "outfitslist_tab";
static const std::string COF_TAB_NAME = "cof_tab";
static LLRegisterPanelClassWrapper<LLPanelOutfitsInventory> t_inventory("panel_outfits_inventory");
-bool LLPanelOutfitsInventory::sShowDebugEditor = false;
LLPanelOutfitsInventory::LLPanelOutfitsInventory() :
@@ -88,7 +87,6 @@ LLPanelOutfitsInventory::~LLPanelOutfitsInventory()
// virtual
BOOL LLPanelOutfitsInventory::postBuild()
{
- sShowDebugEditor = gSavedSettings.getBOOL("ShowDebugAppearanceEditor");
initTabPanels();
initListCommandsHandlers();
@@ -133,7 +131,6 @@ void LLPanelOutfitsInventory::updateVerbs()
if (mListCommands)
{
- mListCommands->childSetVisible("edit_current_outfit_btn",sShowDebugEditor);
updateListCommands();
}
}
@@ -188,19 +185,37 @@ void LLPanelOutfitsInventory::onSearchEdit(const std::string& string)
void LLPanelOutfitsInventory::onWearButtonClick()
{
- LLFolderViewEventListener* listenerp = getCorrectListenerForAction();
- if (listenerp)
+ // TODO: Remove if/else, add common interface
+ // for "My Outfits" and "Wearing" tabs.
+ if (!isCOFPanelActive())
{
- listenerp->performAction(NULL, "replaceoutfit");
+ mMyOutfitsPanel->performAction("replaceoutfit");
+ }
+ else
+ {
+ LLFolderViewEventListener* listenerp = getCorrectListenerForAction();
+ if (listenerp)
+ {
+ listenerp->performAction(NULL, "replaceoutfit");
+ }
}
}
void LLPanelOutfitsInventory::onAdd()
{
- LLFolderViewEventListener* listenerp = getCorrectListenerForAction();
- if (listenerp)
+ // TODO: Remove if/else, add common interface
+ // for "My Outfits" and "Wearing" tabs.
+ if (!isCOFPanelActive())
{
- listenerp->performAction(NULL, "addtooutfit");
+ mMyOutfitsPanel->performAction("addtooutfit");
+ }
+ else
+ {
+ LLFolderViewEventListener* listenerp = getCorrectListenerForAction();
+ if (listenerp)
+ {
+ listenerp->performAction(NULL, "addtooutfit");
+ }
}
}
@@ -289,14 +304,6 @@ void LLPanelOutfitsInventory::onSelectionChange(const std::deque<LLFolderViewIte
}
}
-void LLPanelOutfitsInventory::showEditOutfitPanel()
-{
- LLSD key;
- key["type"] = "edit_outfit";
-
- LLSideTray::getInstance()->showPanel("sidepanel_appearance", key);
-}
-
LLFolderViewEventListener *LLPanelOutfitsInventory::getCorrectListenerForAction()
{
// TODO: add handling "My Outfits" tab.
@@ -351,8 +358,6 @@ void LLPanelOutfitsInventory::initListCommandsHandlers()
mListCommands->childSetAction("make_outfit_btn", boost::bind(&LLPanelOutfitsInventory::onAddButtonClick, this));
mListCommands->childSetAction("wear_btn", boost::bind(&LLPanelOutfitsInventory::onWearButtonClick, this));
- mListCommands->childSetAction("edit_current_outfit_btn", boost::bind(&LLPanelOutfitsInventory::showEditOutfitPanel, this));
-
LLDragAndDropButton* trash_btn = mListCommands->getChild<LLDragAndDropButton>("trash_btn");
trash_btn->setDragAndDropHandler(boost::bind(&LLPanelOutfitsInventory::handleDragAndDropToTrash, this
, _4 // BOOL drop
diff --git a/indra/newview/llpaneloutfitsinventory.h b/indra/newview/llpaneloutfitsinventory.h
index 4234cc45c5..975d99f834 100644
--- a/indra/newview/llpaneloutfitsinventory.h
+++ b/indra/newview/llpaneloutfitsinventory.h
@@ -65,7 +65,6 @@ public:
bool onSaveCommit(const LLSD& notification, const LLSD& response);
void onSelectionChange(const std::deque<LLFolderViewItem*> &items, BOOL user_action);
- void showEditOutfitPanel();
// If a compatible listener type is selected, then return a pointer to that.
// Otherwise, return NULL.
@@ -131,8 +130,6 @@ private:
// List Commands //
////////////////////////////////////////////////////////////////////////////////
///
-public:
- static bool sShowDebugEditor;
};
#endif //LL_LLPANELOUTFITSINVENTORY_H
diff --git a/indra/newview/llparticipantlist.cpp b/indra/newview/llparticipantlist.cpp
index c3748ca81d..a058548459 100644
--- a/indra/newview/llparticipantlist.cpp
+++ b/indra/newview/llparticipantlist.cpp
@@ -722,7 +722,21 @@ void LLParticipantList::LLParticipantListMenu::toggleMute(const LLSD& userdata,
name = speakerp->mDisplayName;
- LLMute mute(speaker_id, name, speakerp->mType == LLSpeaker::SPEAKER_AGENT ? LLMute::AGENT : LLMute::OBJECT);
+ LLMute::EType mute_type;
+ switch (speakerp->mType)
+ {
+ case LLSpeaker::SPEAKER_AGENT:
+ mute_type = LLMute::AGENT;
+ break;
+ case LLSpeaker::SPEAKER_OBJECT:
+ mute_type = LLMute::OBJECT;
+ break;
+ case LLSpeaker::SPEAKER_EXTERNAL:
+ default:
+ mute_type = LLMute::EXTERNAL;
+ break;
+ }
+ LLMute mute(speaker_id, name, mute_type);
if (!is_muted)
{
diff --git a/indra/newview/llpreviewnotecard.cpp b/indra/newview/llpreviewnotecard.cpp
index 75702dc8e5..fb7ac0d86b 100644
--- a/indra/newview/llpreviewnotecard.cpp
+++ b/indra/newview/llpreviewnotecard.cpp
@@ -35,6 +35,7 @@
#include "llpreviewnotecard.h"
#include "llinventory.h"
+#include "llinventoryfunctions.h" // for change_item_parent()
#include "llagent.h"
#include "llassetuploadresponders.h"
@@ -92,11 +93,17 @@ BOOL LLPreviewNotecard::postBuild()
childSetAction("Save", onClickSave, this);
childSetVisible("lock", FALSE);
+ childSetAction("Delete", onClickDelete, this);
+ childSetEnabled("Delete", false);
+
const LLInventoryItem* item = getItem();
childSetCommitCallback("desc", LLPreview::onText, this);
if (item)
+ {
childSetText("desc", item->getDescription());
+ childSetEnabled("Delete", true);
+ }
childSetPrevalidate("desc", &LLTextValidate::validateASCIIPrintableNoPipe);
return LLPreview::postBuild();
@@ -374,6 +381,17 @@ void LLPreviewNotecard::onClickSave(void* user_data)
}
}
+
+// static
+void LLPreviewNotecard::onClickDelete(void* user_data)
+{
+ LLPreviewNotecard* preview = (LLPreviewNotecard*)user_data;
+ if(preview)
+ {
+ preview->deleteNotecard();
+ }
+}
+
struct LLSaveNotecardInfo
{
LLPreviewNotecard* mSelf;
@@ -466,6 +484,18 @@ bool LLPreviewNotecard::saveIfNeeded(LLInventoryItem* copyitem)
return true;
}
+void LLPreviewNotecard::deleteNotecard()
+{
+ LLViewerInventoryItem* item = gInventory.getItem(mItemUUID);
+ if (item != NULL)
+ {
+ const LLUUID trash_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_TRASH);
+ change_item_parent(&gInventory, item, trash_id, FALSE);
+ }
+
+ closeFloater();
+}
+
// static
void LLPreviewNotecard::onSaveComplete(const LLUUID& asset_uuid, void* user_data, S32 status, LLExtStat ext_status) // StoreAssetData callback (fixed)
{
diff --git a/indra/newview/llpreviewnotecard.h b/indra/newview/llpreviewnotecard.h
index e0363eef54..98de99aa33 100644
--- a/indra/newview/llpreviewnotecard.h
+++ b/indra/newview/llpreviewnotecard.h
@@ -83,6 +83,8 @@ protected:
virtual void loadAsset();
bool saveIfNeeded(LLInventoryItem* copyitem = NULL);
+ void deleteNotecard();
+
static void onLoadComplete(LLVFS *vfs,
const LLUUID& asset_uuid,
LLAssetType::EType type,
@@ -90,6 +92,8 @@ protected:
static void onClickSave(void* data);
+ static void onClickDelete(void* data);
+
static void onSaveComplete(const LLUUID& asset_uuid,
void* user_data,
S32 status, LLExtStat ext_status);
diff --git a/indra/newview/llscreenchannel.cpp b/indra/newview/llscreenchannel.cpp
index af440a3689..de1da248c1 100644
--- a/indra/newview/llscreenchannel.cpp
+++ b/indra/newview/llscreenchannel.cpp
@@ -706,6 +706,31 @@ void LLScreenChannel::hideToast(const LLUUID& notification_id)
}
}
+void LLScreenChannel::closeHiddenToasts(const Matcher& matcher)
+{
+ // since we can't guarantee that close toast operation doesn't change mToastList
+ // we collect matched toasts that should be closed into separate list
+ std::list<ToastElem> toasts;
+ for (std::vector<ToastElem>::iterator it = mToastList.begin(); it
+ != mToastList.end(); it++)
+ {
+ LLToast * toast = it->toast;
+ // add to list valid toast that match to provided matcher criteria
+ if (toast != NULL && !toast->isDead() && toast->getNotification() != NULL
+ && !toast->getVisible() && matcher.matches(toast->getNotification()))
+ {
+ toasts.push_back(*it);
+ }
+ }
+
+ // close collected toasts
+ for (std::list<ToastElem>::iterator it = toasts.begin(); it
+ != toasts.end(); it++)
+ {
+ it->toast->closeFloater();
+ }
+}
+
//--------------------------------------------------------------------------
void LLScreenChannel::removeToastsFromChannel()
{
diff --git a/indra/newview/llscreenchannel.h b/indra/newview/llscreenchannel.h
index 88053d87d9..46c5fed7b6 100644
--- a/indra/newview/llscreenchannel.h
+++ b/indra/newview/llscreenchannel.h
@@ -173,6 +173,12 @@ public:
void hideToastsFromScreen();
// hide toast by notification id
void hideToast(const LLUUID& notification_id);
+
+ /**
+ * Closes hidden matched toasts from channel.
+ */
+ void closeHiddenToasts(const Matcher& matcher);
+
// removes all toasts from a channel
void removeToastsFromChannel();
// show all toasts in a channel
diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp
index d03a492cd1..2c26bada20 100644
--- a/indra/newview/llselectmgr.cpp
+++ b/indra/newview/llselectmgr.cpp
@@ -3624,14 +3624,14 @@ void LLSelectMgr::sendAttach(U8 attachment_point)
return;
}
-#if ENABLE_MULTIATTACHMENTS
- attachment_point |= ATTACHMENT_ADD;
-#endif
BOOL build_mode = LLToolMgr::getInstance()->inEdit();
// Special case: Attach to default location for this object.
if (0 == attachment_point ||
get_if_there(gAgentAvatarp->mAttachmentPoints, (S32)attachment_point, (LLViewerJointAttachment*)NULL))
{
+#if ENABLE_MULTIATTACHMENTS
+ attachment_point |= ATTACHMENT_ADD;
+#endif
sendListToRegions(
"ObjectAttach",
packAgentIDAndSessionAndAttachment,
diff --git a/indra/newview/llsidepanelappearance.cpp b/indra/newview/llsidepanelappearance.cpp
index f38df19de0..08098e2adb 100644
--- a/indra/newview/llsidepanelappearance.cpp
+++ b/indra/newview/llsidepanelappearance.cpp
@@ -44,6 +44,7 @@
#include "llfoldervieweventlistener.h"
#include "llpaneleditwearable.h"
#include "llpaneloutfitsinventory.h"
+#include "llsidetray.h"
#include "lltextbox.h"
#include "lluictrlfactory.h"
#include "llviewerregion.h"
@@ -115,6 +116,8 @@ BOOL LLSidepanelAppearance::postBuild()
mEditAppearanceBtn = getChild<LLButton>("editappearance_btn");
mEditAppearanceBtn->setClickedCallback(boost::bind(&LLSidepanelAppearance::onEditAppearanceButtonClicked, this));
+ childSetAction("edit_outfit_btn", boost::bind(&LLSidepanelAppearance::onEditOutfitButtonClicked, this));
+
mEditBtn = getChild<LLButton>("edit_btn");
mEditBtn->setClickedCallback(boost::bind(&LLSidepanelAppearance::onEditButtonClicked, this));
@@ -154,7 +157,7 @@ BOOL LLSidepanelAppearance::postBuild()
mCurrentLookName = getChild<LLTextBox>("currentlook_name");
- mOutfitDirtyTag = getChild<LLTextBox>("currentlook_title");
+ mOutfitStatus = getChild<LLTextBox>("currentlook_status");
mCurrOutfitPanel = getChild<LLPanel>("panel_currentlook");
@@ -238,6 +241,13 @@ void LLSidepanelAppearance::onEditAppearanceButtonClicked()
}
}
+void LLSidepanelAppearance::onEditOutfitButtonClicked()
+{
+ LLSD key;
+ key["type"] = "edit_outfit";
+ LLSideTray::getInstance()->showPanel("sidepanel_appearance", key);
+}
+
void LLSidepanelAppearance::onEditButtonClicked()
{
toggleOutfitEditPanel(FALSE);
@@ -339,7 +349,11 @@ void LLSidepanelAppearance::updateVerbs()
void LLSidepanelAppearance::refreshCurrentOutfitName(const std::string& name)
{
- mOutfitDirtyTag->setVisible(LLAppearanceMgr::getInstance()->isOutfitDirty());
+ // Set current outfit status (wearing/unsaved).
+ bool dirty = LLAppearanceMgr::getInstance()->isOutfitDirty();
+ std::string cof_status_str = getString(dirty ? "Unsaved Changes" : "Now Wearing");
+ mOutfitStatus->setText(cof_status_str);
+
if (name == "")
{
std::string outfit_name;
diff --git a/indra/newview/llsidepanelappearance.h b/indra/newview/llsidepanelappearance.h
index 0a609797fb..0a2d882a0b 100644
--- a/indra/newview/llsidepanelappearance.h
+++ b/indra/newview/llsidepanelappearance.h
@@ -71,6 +71,7 @@ private:
void onOpenOutfitButtonClicked();
void onEditAppearanceButtonClicked();
+ void onEditOutfitButtonClicked();
void onEditButtonClicked();
void onEditWearBackClicked();
@@ -90,7 +91,7 @@ private:
LLPanel* mCurrOutfitPanel;
LLTextBox* mCurrentLookName;
- LLTextBox* mOutfitDirtyTag;
+ LLTextBox* mOutfitStatus;
// Used to make sure the user's inventory is in memory.
LLCurrentlyWornFetchObserver* mFetchWorn;
diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp
index e64696b120..3d447dd411 100644
--- a/indra/newview/lltexturefetch.cpp
+++ b/indra/newview/lltexturefetch.cpp
@@ -167,8 +167,6 @@ public:
}
protected:
- LLTextureFetchWorker(LLTextureFetch* fetcher, const LLUUID& id, const LLHost& host,
- F32 priority, S32 discard, S32 size);
LLTextureFetchWorker(LLTextureFetch* fetcher, const std::string& url, const LLUUID& id, const LLHost& host,
F32 priority, S32 discard, S32 size);
@@ -215,8 +213,15 @@ private:
QUEUED = 1,
SENT_SIM = 2
};
+ enum e_write_to_cache_state //mWriteToCacheState
+ {
+ NOT_WRITE = 0,
+ CAN_WRITE = 1,
+ SHOULD_WRITE = 2
+ };
static const char* sStateDescs[];
e_state mState;
+ e_write_to_cache_state mWriteToCacheState;
LLTextureFetch* mFetcher;
LLPointer<LLImageFormatted> mFormattedImage;
LLPointer<LLImageRaw> mRawImage;
@@ -377,6 +382,7 @@ LLTextureFetchWorker::LLTextureFetchWorker(LLTextureFetch* fetcher,
S32 size) // Desired size
: LLWorkerClass(fetcher, "TextureFetch"),
mState(INIT),
+ mWriteToCacheState(NOT_WRITE),
mFetcher(fetcher),
mID(id),
mHost(host),
@@ -595,7 +601,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
}
if (mState == INIT)
- {
+ {
mRawImage = NULL ;
mRequestedDiscard = -1;
mLoadedDiscard = -1;
@@ -636,17 +642,18 @@ bool LLTextureFetchWorker::doWork(S32 param)
mFileSize = 0;
mLoaded = FALSE;
setPriority(LLWorkerThread::PRIORITY_LOW | mWorkPriority); // Set priority first since Responder may change it
-
- CacheReadResponder* responder = new CacheReadResponder(mFetcher, mID, mFormattedImage);
+
if (mUrl.compare(0, 7, "file://") == 0)
{
// read file from local disk
std::string filename = mUrl.substr(7, std::string::npos);
+ CacheReadResponder* responder = new CacheReadResponder(mFetcher, mID, mFormattedImage);
mCacheReadHandle = mFetcher->mTextureCache->readFromCache(filename, mID, cache_priority,
offset, size, responder);
}
else if (mUrl.empty())
{
+ CacheReadResponder* responder = new CacheReadResponder(mFetcher, mID, mFormattedImage);
mCacheReadHandle = mFetcher->mTextureCache->readFromCache(mID, cache_priority,
offset, size, responder);
}
@@ -659,8 +666,6 @@ bool LLTextureFetchWorker::doWork(S32 param)
}
setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);
mState = SEND_HTTP_REQ;
- delete responder;
- responder = NULL;
}
}
@@ -694,6 +699,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
llassert_always(mFormattedImage->getDataSize() > 0);
mLoadedDiscard = mDesiredDiscard;
mState = DECODE_IMAGE;
+ mWriteToCacheState = NOT_WRITE ;
LL_DEBUGS("Texture") << mID << ": Cached. Bytes: " << mFormattedImage->getDataSize()
<< " Size: " << llformat("%dx%d",mFormattedImage->getWidth(),mFormattedImage->getHeight())
<< " Desired Discard: " << mDesiredDiscard << " Desired Size: " << mDesiredSize << LL_ENDL;
@@ -735,6 +741,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
if (!http_url.empty())
{
mUrl = http_url + "/?texture_id=" + mID.asString().c_str();
+ mWriteToCacheState = CAN_WRITE ; //because this texture has a fixed texture id.
}
}
else
@@ -747,12 +754,17 @@ bool LLTextureFetchWorker::doWork(S32 param)
{
mState = LLTextureFetchWorker::SEND_HTTP_REQ;
setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);
+ if(mWriteToCacheState != NOT_WRITE)
+ {
+ mWriteToCacheState = CAN_WRITE ;
+ }
// don't return, fall through to next state
}
else if (mSentRequest == UNSENT)
{
// Add this to the network queue and sit here.
// LLTextureFetch::update() will send off a request which will change our state
+ mWriteToCacheState = CAN_WRITE ;
mRequestedSize = mDesiredSize;
mRequestedDiscard = mDesiredDiscard;
mSentRequest = QUEUED;
@@ -789,6 +801,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
}
setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);
mState = DECODE_IMAGE;
+ mWriteToCacheState = SHOULD_WRITE ;
}
else
{
@@ -850,7 +863,6 @@ bool LLTextureFetchWorker::doWork(S32 param)
mState = WAIT_HTTP_REQ;
mFetcher->addToHTTPQueue(mID);
- mSentRequest = QUEUED;
// Will call callbackHttpGet when curl request completes
std::vector<std::string> headers;
headers.push_back("Accept: image/x-j2c");
@@ -933,15 +945,15 @@ bool LLTextureFetchWorker::doWork(S32 param)
}
llassert_always(mBufferSize == cur_size + mRequestedSize);
- if (mHaveAllData)
+ if (mHaveAllData && mRequestedDiscard == 0) //the image file is fully loaded.
{
mFileSize = mBufferSize;
}
- else //the file size is unknown
+ else //the file size is unknown.
{
- mFileSize = S32_MAX ; //flag the file is not fully loaded.
+ mFileSize = mBufferSize + 1 ; //flag the file is not fully loaded.
}
-
+
U8* buffer = new U8[mBufferSize];
if (cur_size > 0)
{
@@ -956,6 +968,10 @@ bool LLTextureFetchWorker::doWork(S32 param)
mBufferSize = 0;
mLoadedDiscard = mRequestedDiscard;
mState = DECODE_IMAGE;
+ if(mWriteToCacheState != NOT_WRITE)
+ {
+ mWriteToCacheState = SHOULD_WRITE ;
+ }
setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);
return false;
}
@@ -1055,7 +1071,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
if (mState == WRITE_TO_CACHE)
{
- if (mInLocalCache || mSentRequest == UNSENT || mFormattedImage.isNull())
+ if (mWriteToCacheState != SHOULD_WRITE || mFormattedImage.isNull())
{
// If we're in a local cache or we didn't actually receive any new data,
// or we failed to load anything, skip
@@ -1063,6 +1079,17 @@ bool LLTextureFetchWorker::doWork(S32 param)
return false;
}
S32 datasize = mFormattedImage->getDataSize();
+ if(mFileSize < datasize)//This could happen when http fetching and sim fetching mixed.
+ {
+ if(mHaveAllData)
+ {
+ mFileSize = datasize ;
+ }
+ else
+ {
+ mFileSize = datasize + 1 ; //flag not fully loaded.
+ }
+ }
llassert_always(datasize);
setPriority(LLWorkerThread::PRIORITY_LOW | mWorkPriority); // Set priority first since Responder may change it
U32 cache_priority = mWorkPriority;
diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp
index 33fb3d0f0f..a8004f26ed 100644
--- a/indra/newview/llviewercontrol.cpp
+++ b/indra/newview/llviewercontrol.cpp
@@ -487,12 +487,6 @@ bool toggle_show_favorites_panel(const LLSD& newvalue)
return true;
}
-bool toggle_show_appearance_editor(const LLSD& newvalue)
-{
- LLPanelOutfitsInventory::sShowDebugEditor = newvalue.asBoolean();
- return true;
-}
-
bool toggle_show_object_render_cost(const LLSD& newvalue)
{
LLFloaterTools::sShowObjectCost = newvalue.asBoolean();
@@ -644,7 +638,6 @@ void settings_setup_listeners()
gSavedSettings.getControl("ShowSnapshotButton")->getSignal()->connect(boost::bind(&toggle_show_snapshot_button, _2));
gSavedSettings.getControl("ShowNavbarNavigationPanel")->getSignal()->connect(boost::bind(&toggle_show_navigation_panel, _2));
gSavedSettings.getControl("ShowNavbarFavoritesPanel")->getSignal()->connect(boost::bind(&toggle_show_favorites_panel, _2));
- gSavedSettings.getControl("ShowDebugAppearanceEditor")->getSignal()->connect(boost::bind(&toggle_show_appearance_editor, _2));
gSavedSettings.getControl("ShowObjectRenderingCost")->getSignal()->connect(boost::bind(&toggle_show_object_render_cost, _2));
gSavedSettings.getControl("ForceShowGrid")->getSignal()->connect(boost::bind(&handleForceShowGrid, _2));
}
diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp
index ede5950ecc..235faba15a 100644
--- a/indra/newview/llviewerdisplay.cpp
+++ b/indra/newview/llviewerdisplay.cpp
@@ -169,7 +169,6 @@ void display_startup()
void display_update_camera()
{
LLMemType mt_uc(LLMemType::MTYPE_DISPLAY_UPDATE_CAMERA);
- llpushcallstacks ;
// TODO: cut draw distance down if customizing avatar?
// TODO: cut draw distance on per-parcel basis?
diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp
index 3c0345df90..1f6687bd83 100644
--- a/indra/newview/llviewermedia.cpp
+++ b/indra/newview/llviewermedia.cpp
@@ -33,6 +33,7 @@
#include "llviewerprecompiledheaders.h"
#include "llagent.h"
+#include "llagentcamera.h"
#include "llviewermedia.h"
#include "llviewermediafocus.h"
#include "llmimetypes.h"
@@ -732,10 +733,17 @@ static bool proximity_comparitor(const LLViewerMediaImpl* i1, const LLViewerMedi
}
}
+static LLFastTimer::DeclareTimer FTM_MEDIA_UPDATE("Update Media");
+
//////////////////////////////////////////////////////////////////////////////////////////
// static
void LLViewerMedia::updateMedia(void *dummy_arg)
{
+ LLFastTimer t1(FTM_MEDIA_UPDATE);
+
+ // Enable/disable the plugin read thread
+ LLPluginProcessParent::setUseReadThread(gSavedSettings.getBOOL("PluginUseReadThread"));
+
sAnyMediaShowing = false;
sUpdatedCookies = getCookieStore()->getChangedCookies();
if(!sUpdatedCookies.empty())
@@ -1578,6 +1586,7 @@ void LLViewerMediaImpl::destroyMediaSource()
if(mMediaSource)
{
+ mMediaSource->setDeleteOK(true) ;
delete mMediaSource;
mMediaSource = NULL;
}
@@ -1729,7 +1738,7 @@ bool LLViewerMediaImpl::initializePlugin(const std::string& media_type)
}
mMediaSource = media_source;
-
+ mMediaSource->setDeleteOK(false) ;
updateVolume();
return true;
@@ -1914,7 +1923,28 @@ void LLViewerMediaImpl::updateVolume()
{
if(mMediaSource)
{
- mMediaSource->setVolume(mRequestedVolume * LLViewerMedia::getVolume());
+ // always scale the volume by the global media volume
+ F32 volume = mRequestedVolume * LLViewerMedia::getVolume();
+
+ if (mProximityCamera > 0)
+ {
+ if (mProximityCamera > gSavedSettings.getF32("MediaRollOffMax"))
+ {
+ volume = 0;
+ }
+ else if (mProximityCamera > gSavedSettings.getF32("MediaRollOffMin"))
+ {
+ // attenuated_volume = v / ( 1 + (roll_off_rate * (d - min))^2
+ // the +1 is there so that for distance 0 the volume stays the same
+ F64 adjusted_distance = mProximityCamera - gSavedSettings.getF32("MediaRollOffMin");
+ F64 attenuation = gSavedSettings.getF32("MediaRollOffRate") * adjusted_distance;
+ attenuation = attenuation * attenuation;
+ // the attenuation multiplier should never be more than one since that would increase volume
+ volume = volume * llmin(1.0, 1 /(attenuation + 1));
+ }
+ }
+
+ mMediaSource->setVolume(volume);
}
}
@@ -2427,6 +2457,8 @@ void LLViewerMediaImpl::update()
}
else
{
+ updateVolume();
+
// If we didn't just create the impl, it may need to get cookie updates.
if(!sUpdatedCookies.empty())
{
@@ -2999,6 +3031,9 @@ void LLViewerMediaImpl::calculateInterest()
LLVector3d agent_global = gAgent.getPositionGlobal() ;
LLVector3d global_delta = agent_global - obj_global ;
mProximityDistance = global_delta.magVecSquared(); // use distance-squared because it's cheaper and sorts the same.
+
+ LLVector3d camera_delta = gAgentCamera.getCameraPositionGlobal() - obj_global;
+ mProximityCamera = camera_delta.magVec();
}
if(mNeedsMuteCheck)
diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h
index e829d7a5b4..8626f4469e 100644
--- a/indra/newview/llviewermedia.h
+++ b/indra/newview/llviewermedia.h
@@ -431,6 +431,7 @@ private:
bool mIsParcelMedia;
S32 mProximity;
F64 mProximityDistance;
+ F64 mProximityCamera;
LLMimeDiscoveryResponder *mMimeTypeProbe;
bool mMediaAutoPlay;
std::string mMediaEntryURL;
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 78be6bdfd0..8e82725bb7 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -1091,7 +1091,7 @@ void open_inventory_offer(const uuid_vec_t& items, const std::string& from_name)
////////////////////////////////////////////////////////////////////////////////
// Special handling for various types.
- const LLAssetType::EType asset_type = item->getType();
+ const LLAssetType::EType asset_type = item->getActualType();
if (check_offer_throttle(from_name, false)) // If we are throttled, don't display
{
LL_DEBUGS("Messaging") << "Highlighting inventory item: " << item->getUUID() << LL_ENDL;
diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp
index 298ce3fcec..542ec16547 100644
--- a/indra/newview/llvoiceclient.cpp
+++ b/indra/newview/llvoiceclient.cpp
@@ -5143,9 +5143,6 @@ LLVoiceClient::participantState *LLVoiceClient::sessionState::addParticipant(con
{
result->mAvatarIDValid = true;
result->mAvatarID = id;
-
- if(result->updateMuteState())
- mMuteDirty = true;
}
else
{
@@ -5154,7 +5151,12 @@ LLVoiceClient::participantState *LLVoiceClient::sessionState::addParticipant(con
setUUIDFromStringHash(result->mAvatarID, uri);
}
}
-
+
+ if(result->updateMuteState())
+ {
+ mMuteDirty = true;
+ }
+
mParticipantsByUUID.insert(participantUUIDMap::value_type(&(result->mAvatarID), result));
if (LLSpeakerVolumeStorage::getInstance()->getSpeakerVolume(result->mAvatarID, result->mVolume))
@@ -5173,15 +5175,12 @@ bool LLVoiceClient::participantState::updateMuteState()
{
bool result = false;
- if(mAvatarIDValid)
+ bool isMuted = LLMuteList::getInstance()->isMuted(mAvatarID, LLMute::flagVoiceChat);
+ if(mOnMuteList != isMuted)
{
- bool isMuted = LLMuteList::getInstance()->isMuted(mAvatarID, LLMute::flagVoiceChat);
- if(mOnMuteList != isMuted)
- {
- mOnMuteList = isMuted;
- mVolumeDirty = true;
- result = true;
- }
+ mOnMuteList = isMuted;
+ mVolumeDirty = true;
+ result = true;
}
return result;
}
diff --git a/indra/newview/llwearableitemslist.cpp b/indra/newview/llwearableitemslist.cpp
index 3d110dcc78..bd5d8d9357 100644
--- a/indra/newview/llwearableitemslist.cpp
+++ b/indra/newview/llwearableitemslist.cpp
@@ -33,8 +33,11 @@
#include "llwearableitemslist.h"
+#include "lliconctrl.h"
+
#include "llinventoryfunctions.h"
#include "llinventorymodel.h"
+#include "lltransutil.h"
class LLFindOutfitItems : public LLInventoryCollectFunctor
{
@@ -60,6 +63,204 @@ bool LLFindOutfitItems::operator()(LLInventoryCategory* cat,
return FALSE;
}
+//////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////
+
+void LLPanelWearableListItem::onMouseEnter(S32 x, S32 y, MASK mask)
+{
+ LLPanelInventoryListItemBase::onMouseEnter(x, y, mask);
+ setWidgetsVisible(true);
+ reshapeWidgets();
+}
+
+void LLPanelWearableListItem::onMouseLeave(S32 x, S32 y, MASK mask)
+{
+ LLPanelInventoryListItemBase::onMouseLeave(x, y, mask);
+ setWidgetsVisible(false);
+ reshapeWidgets();
+}
+
+LLPanelWearableListItem::LLPanelWearableListItem(LLViewerInventoryItem* item)
+: LLPanelInventoryListItemBase(item)
+{
+}
+
+//////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////
+
+// static
+LLPanelClothingListItem* LLPanelClothingListItem::create(LLViewerInventoryItem* item)
+{
+ LLPanelClothingListItem* list_item = NULL;
+ if(item)
+ {
+ list_item = new LLPanelClothingListItem(item);
+ list_item->init();
+ }
+ return list_item;
+}
+
+LLPanelClothingListItem::LLPanelClothingListItem(LLViewerInventoryItem* item)
+ : LLPanelWearableListItem(item)
+{
+}
+
+LLPanelClothingListItem::~LLPanelClothingListItem()
+{
+}
+
+void LLPanelClothingListItem::init()
+{
+ LLUICtrlFactory::getInstance()->buildPanel(this, "panel_clothing_list_item.xml");
+}
+
+BOOL LLPanelClothingListItem::postBuild()
+{
+ LLPanelInventoryListItemBase::postBuild();
+
+ addWidgetToLeftSide("btn_delete");
+ addWidgetToRightSide("btn_move_up");
+ addWidgetToRightSide("btn_move_down");
+ addWidgetToRightSide("btn_lock");
+ addWidgetToRightSide("btn_edit");
+
+ LLButton* delete_btn = getChild<LLButton>("btn_delete");
+ // Reserve space for 'delete' button event if it is invisible.
+ setLeftWidgetsWidth(delete_btn->getRect().mRight);
+
+ setWidgetsVisible(false);
+ reshapeWidgets();
+
+ return TRUE;
+}
+
+//////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////
+
+// static
+LLPanelBodyPartsListItem* LLPanelBodyPartsListItem::create(LLViewerInventoryItem* item)
+{
+ LLPanelBodyPartsListItem* list_item = NULL;
+ if(item)
+ {
+ list_item = new LLPanelBodyPartsListItem(item);
+ list_item->init();
+ }
+ return list_item;
+}
+
+LLPanelBodyPartsListItem::LLPanelBodyPartsListItem(LLViewerInventoryItem* item)
+: LLPanelWearableListItem(item)
+{
+}
+
+LLPanelBodyPartsListItem::~LLPanelBodyPartsListItem()
+{
+}
+
+void LLPanelBodyPartsListItem::init()
+{
+ LLUICtrlFactory::getInstance()->buildPanel(this, "panel_body_parts_list_item.xml");
+}
+
+BOOL LLPanelBodyPartsListItem::postBuild()
+{
+ LLPanelInventoryListItemBase::postBuild();
+
+ addWidgetToRightSide("btn_lock");
+ addWidgetToRightSide("btn_edit");
+
+ return TRUE;
+}
+
+//////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////
+
+LLPanelDummyClothingListItem* LLPanelDummyClothingListItem::create(EWearableType w_type)
+{
+ LLPanelDummyClothingListItem* list_item = new LLPanelDummyClothingListItem(w_type);
+ list_item->init();
+ return list_item;
+}
+
+void LLPanelDummyClothingListItem::updateItem()
+{
+ std::string title = wearableTypeToString(mWearableType);
+ setTitle(title, LLStringUtil::null);
+}
+
+BOOL LLPanelDummyClothingListItem::postBuild()
+{
+ LLIconCtrl* icon = getChild<LLIconCtrl>("item_icon");
+ setIconCtrl(icon);
+ setTitleCtrl(getChild<LLTextBox>("item_name"));
+
+ addWidgetToRightSide("btn_add");
+
+ setIconImage(get_item_icon(LLAssetType::AT_CLOTHING, LLInventoryType::IT_NONE, mWearableType, FALSE));
+ updateItem();
+
+ // Make it look loke clothing item - reserve space for 'delete' button
+ setLeftWidgetsWidth(icon->getRect().mLeft);
+
+ setWidgetsVisible(false);
+ reshapeWidgets();
+
+ return TRUE;
+}
+
+LLPanelDummyClothingListItem::LLPanelDummyClothingListItem(EWearableType w_type)
+ : LLPanelWearableListItem(NULL)
+ , mWearableType(w_type)
+{
+}
+
+void LLPanelDummyClothingListItem::init()
+{
+ LLUICtrlFactory::getInstance()->buildPanel(this, "panel_dummy_clothing_list_item.xml");
+}
+
+typedef std::map<EWearableType, std::string> clothing_to_string_map_t;
+
+clothing_to_string_map_t init_clothing_string_map()
+{
+ clothing_to_string_map_t w_map;
+ w_map.insert(std::make_pair(WT_SHIRT, "shirt_not_worn"));
+ w_map.insert(std::make_pair(WT_PANTS, "pants_not_worn"));
+ w_map.insert(std::make_pair(WT_SHOES, "shoes_not_worn"));
+ w_map.insert(std::make_pair(WT_SOCKS, "socks_not_worn"));
+ w_map.insert(std::make_pair(WT_JACKET, "jacket_not_worn"));
+ w_map.insert(std::make_pair(WT_GLOVES, "gloves_not_worn"));
+ w_map.insert(std::make_pair(WT_UNDERSHIRT, "undershirt_not_worn"));
+ w_map.insert(std::make_pair(WT_UNDERPANTS, "underpants_not_worn"));
+ w_map.insert(std::make_pair(WT_SKIRT, "skirt_not_worn"));
+ w_map.insert(std::make_pair(WT_ALPHA, "alpha_not_worn"));
+ w_map.insert(std::make_pair(WT_TATTOO, "tattoo_not_worn"));
+ return w_map;
+}
+
+std::string LLPanelDummyClothingListItem::wearableTypeToString(EWearableType w_type)
+{
+ static const clothing_to_string_map_t w_map = init_clothing_string_map();
+ static const std::string invalid_str = LLTrans::getString("invalid_not_worn");
+
+ std::string type_str = invalid_str;
+ clothing_to_string_map_t::const_iterator it = w_map.find(w_type);
+ if(w_map.end() != it)
+ {
+ type_str = LLTrans::getString(it->second);
+ }
+ return type_str;
+}
+
+//////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////
+
static const LLDefaultChildRegistry::Register<LLWearableItemsList> r("wearable_items_list");
LLWearableItemsList::Params::Params()
@@ -89,3 +290,5 @@ void LLWearableItemsList::updateList(const LLUUID& category_id)
refreshList(item_array);
}
+
+// EOF
diff --git a/indra/newview/llwearableitemslist.h b/indra/newview/llwearableitemslist.h
index e7ccba8e6c..29532a15c1 100644
--- a/indra/newview/llwearableitemslist.h
+++ b/indra/newview/llwearableitemslist.h
@@ -36,6 +36,117 @@
// newview
#include "llinventoryitemslist.h"
+#include "llinventorymodel.h"
+#include "llwearabledictionary.h"
+
+/**
+ * @class LLPanelWearableListItem
+ *
+ * Extends LLPanelInventoryListItemBase:
+ * - makes side widgets show on mouse_enter and hide on
+ * mouse_leave events.
+ * - provides callback for button clicks
+ */
+class LLPanelWearableListItem : public LLPanelInventoryListItemBase
+{
+ LOG_CLASS(LLPanelWearableListItem);
+public:
+
+ /**
+ * Shows buttons when mouse is over
+ */
+ /*virtual*/ void onMouseEnter(S32 x, S32 y, MASK mask);
+
+ /**
+ * Hides buttons when mouse is out
+ */
+ /*virtual*/ void onMouseLeave(S32 x, S32 y, MASK mask);
+
+protected:
+
+ LLPanelWearableListItem(LLViewerInventoryItem* item);
+};
+
+/**
+ * @class LLPanelClothingListItem
+ *
+ * Provides buttons for editing, moving, deleting a wearable.
+ */
+class LLPanelClothingListItem : public LLPanelWearableListItem
+{
+ LOG_CLASS(LLPanelClothingListItem);
+public:
+
+ static LLPanelClothingListItem* create(LLViewerInventoryItem* item);
+
+ virtual ~LLPanelClothingListItem();
+
+ /*virtual*/ BOOL postBuild();
+
+ /**
+ * Make button visible during mouse over event.
+ */
+ inline void setShowDeleteButton(bool show) { setShowWidget("btn_delete", show); }
+ inline void setShowMoveUpButton(bool show) { setShowWidget("btn_move_up", show); }
+
+ inline void setShowMoveDownButton(bool show) { setShowWidget("btn_move_down", show); }
+ inline void setShowLockButton(bool show) { setShowWidget("btn_lock", show); }
+ inline void setShowEditButton(bool show) { setShowWidget("btn_edit", show); }
+
+
+protected:
+
+ LLPanelClothingListItem(LLViewerInventoryItem* item);
+
+ /*virtual*/ void init();
+};
+
+class LLPanelBodyPartsListItem : public LLPanelWearableListItem
+{
+ LOG_CLASS(LLPanelBodyPartsListItem);
+public:
+
+ static LLPanelBodyPartsListItem* create(LLViewerInventoryItem* item);
+
+ virtual ~LLPanelBodyPartsListItem();
+
+ /*virtual*/ BOOL postBuild();
+
+ /**
+ * Make button visible during mouse over event.
+ */
+ inline void setShowLockButton(bool show) { setShowWidget("btn_lock", show); }
+ inline void setShowEditButton(bool show) { setShowWidget("btn_edit", show); }
+
+protected:
+ LLPanelBodyPartsListItem(LLViewerInventoryItem* item);
+
+ /*virtual*/ void init();
+};
+
+/**
+ * @class LLPanelDummyClothingListItem
+ *
+ * A dummy item panel - displays grayed clothing icon, grayed title '<clothing> not worn' and 'add' button
+ */
+class LLPanelDummyClothingListItem : public LLPanelWearableListItem
+{
+public:
+ static LLPanelDummyClothingListItem* create(EWearableType w_type);
+
+ /*virtual*/ void updateItem();
+ /*virtual*/ BOOL postBuild();
+
+protected:
+ LLPanelDummyClothingListItem(EWearableType w_type);
+
+ /*virtual*/ void init();
+
+ static std::string wearableTypeToString(EWearableType w_type);
+
+private:
+ EWearableType mWearableType;
+};
/**
* @class LLWearableItemsList
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index e35c1a1c9c..7c618162a4 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -2223,7 +2223,7 @@ void LLPipeline::stateSort(LLCamera& camera, LLCullResult &result)
//LLVertexBuffer::unbind();
grabReferences(result);
-
+ llpushcallstacks ;
for (LLCullResult::sg_list_t::iterator iter = sCull->beginDrawableGroups(); iter != sCull->endDrawableGroups(); ++iter)
{
LLSpatialGroup* group = *iter;
@@ -2241,7 +2241,7 @@ void LLPipeline::stateSort(LLCamera& camera, LLCullResult &result)
}
}
}
-
+ llpushcallstacks ;
for (LLCullResult::sg_list_t::iterator iter = sCull->beginVisibleGroups(); iter != sCull->endVisibleGroups(); ++iter)
{
LLSpatialGroup* group = *iter;
@@ -2257,7 +2257,7 @@ void LLPipeline::stateSort(LLCamera& camera, LLCullResult &result)
}
}
-
+ llpushcallstacks ;
if (LLViewerCamera::sCurCameraID == LLViewerCamera::CAMERA_WORLD)
{
for (LLCullResult::bridge_list_t::iterator i = sCull->beginVisibleBridge(); i != sCull->endVisibleBridge(); ++i)
@@ -2271,7 +2271,7 @@ void LLPipeline::stateSort(LLCamera& camera, LLCullResult &result)
}
}
}
-
+ llpushcallstacks ;
{
LLFastTimer ftm(FTM_STATESORT_DRAWABLE);
for (LLCullResult::drawable_list_t::iterator iter = sCull->beginVisibleList();
@@ -2291,6 +2291,7 @@ void LLPipeline::stateSort(LLCamera& camera, LLCullResult &result)
}
postSort(camera);
+ llpushcallstacks ;
}
void LLPipeline::stateSort(LLSpatialGroup* group, LLCamera& camera)
@@ -2985,7 +2986,6 @@ U32 LLPipeline::sCurRenderPoolType = 0 ;
void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)
{
- llpushcallstacks ;
LLMemType mt(LLMemType::MTYPE_PIPELINE_RENDER_GEOM);
LLFastTimer t(FTM_RENDER_GEOMETRY);
@@ -7189,8 +7189,7 @@ inline float sgn(float a)
}
void LLPipeline::generateWaterReflection(LLCamera& camera_in)
-{
- llpushcallstacks ;
+{
if (LLPipeline::sWaterReflections && assertInitialized() && LLDrawPoolWater::sNeedsReflectionUpdate)
{
BOOL skip_avatar_update = FALSE;
@@ -7199,6 +7198,7 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
skip_avatar_update = TRUE;
}
+ llpushcallstacks ;
if (!skip_avatar_update)
{
gAgentAvatarp->updateAttachmentVisibility(CAMERA_MODE_THIRD_PERSON);
@@ -7286,7 +7286,6 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
glCullFace(GL_FRONT);
-
static LLCullResult ref_result;
U32 ref_mask = 0;
if (LLDrawPoolWater::sNeedsDistortionUpdate)
@@ -7298,6 +7297,7 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
(1 << LLPipeline::RENDER_TYPE_WL_SKY));
static LLCullResult result;
updateCull(camera, result);
+ llpushcallstacks ;
stateSort(camera, result);
mRenderTypeMask = tmp & ((1 << LLPipeline::RENDER_TYPE_SKY) |
(1 << LLPipeline::RENDER_TYPE_CLOUDS) |
@@ -7331,13 +7331,13 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
LLGLUserClipPlane clip_plane(plane, mat, projection);
LLGLDisable cull(GL_CULL_FACE);
updateCull(camera, ref_result, 1);
+ llpushcallstacks ;
stateSort(camera, ref_result);
}
ref_mask = mRenderTypeMask;
mRenderTypeMask = mask;
}
-
if (LLDrawPoolWater::sNeedsDistortionUpdate)
{
mRenderTypeMask = ref_mask;
@@ -7355,7 +7355,6 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
}
camera.setOrigin(camera_in.getOrigin());
-
//render distortion map
static BOOL last_update = TRUE;
if (last_update)
@@ -7389,6 +7388,7 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
LLGLUserClipPlane clip_plane(LLPlane(-pnorm, -(pd+pad)), mat, projection);
static LLCullResult result;
updateCull(camera, result, water_clip);
+ llpushcallstacks ;
stateSort(camera, result);
gGL.setColorMask(true, true);
@@ -7412,7 +7412,6 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
glClear(GL_DEPTH_BUFFER_BIT);
}
glClearColor(0.f, 0.f, 0.f, 0.f);
-
gViewerWindow->setup3DViewport();
mRenderTypeMask = type_mask;
LLDrawPoolWater::sNeedsReflectionUpdate = FALSE;
@@ -7428,6 +7427,7 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
{
gAgentAvatarp->updateAttachmentVisibility(gAgentCamera.getCameraMode());
}
+ llpushcallstacks ;
}
}
@@ -7982,7 +7982,6 @@ void LLPipeline::renderHighlight(const LLViewerObject* obj, F32 fade)
void LLPipeline::generateHighlight(LLCamera& camera)
{
//render highlighted object as white into offscreen render target
- llpushcallstacks ;
if (mHighlightObject.notNull())
{
mHighlightSet.insert(HighlightItem(mHighlightObject));
diff --git a/indra/newview/res/viewerRes.rc b/indra/newview/res/viewerRes.rc
index 12a09392f6..731953f9bb 100644
--- a/indra/newview/res/viewerRes.rc
+++ b/indra/newview/res/viewerRes.rc
@@ -129,8 +129,8 @@ TOOLSIT CURSOR "toolsit.cur"
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 2,0,0,203110
- PRODUCTVERSION 2,0,0,203110
+ FILEVERSION 2,0,2,0
+ PRODUCTVERSION 2,0,2,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -147,12 +147,12 @@ BEGIN
BEGIN
VALUE "CompanyName", "Linden Lab"
VALUE "FileDescription", "Second Life"
- VALUE "FileVersion", "2.0.0.203110"
+ VALUE "FileVersion", "2.0.2.0"
VALUE "InternalName", "Second Life"
VALUE "LegalCopyright", "Copyright 2001-2008, Linden Research, Inc."
VALUE "OriginalFilename", "SecondLife.exe"
VALUE "ProductName", "Second Life"
- VALUE "ProductVersion", "2.0.0.203110"
+ VALUE "ProductVersion", "2.0.2.0"
END
END
BLOCK "VarFileInfo"
diff --git a/indra/newview/skins/default/xui/de/floater_about.xml b/indra/newview/skins/default/xui/de/floater_about.xml
index c19f98516d..89f9f87043 100644
--- a/indra/newview/skins/default/xui/de/floater_about.xml
+++ b/indra/newview/skins/default/xui/de/floater_about.xml
@@ -43,13 +43,14 @@ Vivox-Version: [VIVOX_VERSION]
</panel>
<panel label="Danksagung" name="credits_panel">
<text_editor name="credits_editor">
- Second Life wird Ihnen präsentiert von Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Yang, T, Simone, Maestro, Scott, Charlene, Quixote, Amanda, Susan, Zed, Anne, Enkidu, Esbee, Joroan, Katelin, Roxie, Tay, Scarlet, Kevin, Johnny, Wolfgang, Andren, Bob, Howard, Merov, Rand, Ray, Michon, Newell, Galen, Dessie, Les, Michon, Jenelle, Geo, Siz, Shapiro, Pete, Calyle, Selene, Allen, Phoebe, Goldin, Kimmora, Dakota, Slaton, Lindquist, Zoey, Hari, Othello, Rohit, Sheldon, Petra, Viale, Gordon, Kaye, Pink, Ferny, Emerson, Davy, Bri, Chan, Juan, Robert, Terrence, Nathan, Carl und vielen anderen.
+ Second Life wird Ihnen präsentiert von Philip, Tessa, Andrew, Cory, Ian, James, Phoenix, Ryan, Haney, Dan, Char, Ben, John, Tanya, Eddie, Richard, Mitch, Doug, Eric, Frank, Bruce, Aaron, Peter, Alice, Charlie, Debra, Eileen, Helen, Janet, Steffan, Steve, Tom, Mark, Hunter, Xenon, Burgess, Bill, Jim, Lee, Hamlet, Daniel, Jeff, Todd, Sarah, Tim, Stephanie, Colin, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Jack, Vektor, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Jesse, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Yuko, Makiko, Thomas, Harry, Seth, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Brad, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, Beez, Milo, Hermia, Red, Thrax, Gulliver, Joe, Sally, Paul, Jose, Rejean, Dore, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, Dustin, George, Del, Matthew, Cat, Jacqui, Adrian, Viola, Alfred, Noel, Irfan, Yool, Rika, Jane, Frontier, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Jeremy, JP, Jake, Anthony, Maurice, Madhavi, Leopard, Kyle, Joon, Bert, Belinda, Jon, Kristi, Bridie, Pramod, Socrates, Maria, Aric, Adreanne, Jay, Kari, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Colossus, Zen, BigPapi, Pastrami, Kurz, Mani, Neuro, Mel, Sardonyx, MJ, Rowan, Sgt, Elvis, Samuel, Leo, Bryan, Niko, Austin, Soft, Poppy, Rachel, Aki, Banzai, Alexa, Sue, Bender, CG, Angelo, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Rothman, Niall, Marin, Allison, Katie, Dawn, Dusty, Katt, Judy, Andrea, Ambroff, Infinity, Rico, Gail, Kalpana, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Maestro, Simone, Yang, T, Shannon, Nelson, Khanh, Scott, Courtney, Charlene, Quixote, Susan, Zed, Amanda, Katelin, Enkidu, Roxie, Esbee, JoRoan, Scarlet, Tay, Kevin, Wolfgang, Johnny, Ray, Andren, Merov, Bob, Rand, Howard, Callen, Heff, Galen, Newell, Dessie, Les, Michon, Jenelle, Geo, Siz, Shapiro, Pete, Calyle, Selene, Allen, Phoebe, Goldin, Kimmora, Dakota, Slaton, Lindquist, Zoey, Hari, Othello, Rohit, Sheldon, Petra, Viale, Gordon, Kaye, Pink, Ferny, Emerson, Davy, Bri, Chan, Juan, Robert, Terrence, Nathan, Carl, Ashley, JessieAnn, Huseby, Karina, Paris, Kurt, Rick, Lis, Kotler, Theeba, Lynx, Murphy, Doten, Taka, Norm, Jillian, Marcus, Mae, Novack, Esther, Perry, Dana, Ducot, Javier, Porter, Madison, Gecko, Dough, JR, Gisele, Crimp, Norie, Arch, Kimi, Fisher, Barbara, Jason, Peggy, Bernard, Jules, Leroy, Eva, Khederian, Campbell, Vogt, Masido, Karel, Torres, Lo, Breezer, Delby, Rountree, Anna, Servus, Rue, Itiaes, Chuck, Luna, Novella, Zaza, Wen, Gino, Lex, Cassandra, Limey, Nancy, Anukul, Silver, Brodesky, Jinsai, Squid, Gez, Rakesh, Ladan, Edelman, Marcet, Squire, Tatem, Tony, Jerm, Tia, Falcon, BK, Tiggs, Driscoll, Bacon, Timothee, Cru, Carmilla, Coyot, Webb, Kazu, Rudas, LJ, Sea, Ali Wallace, Bewest, Pup, Drub, Dragon, Inoshiro, Byron, Rhett, Xandix, Aimee, Fredrik, Thor, Teddy, Baron, Nelly, Ghengis, Epic, Eli, Stone, Grapes, Irie, Prep, Scobu, Valerie, Alain und vielen anderen.
-Vielen Dank den folgenden Einwohnern, die uns geholfen haben, dies zur bisher besten Version zu machen: able whitman, Adeon Writer, adonaira aabye, Aeron Kohime, Agathos Frascati, Aimee Trescothick, Aleric Inglewood, Alissa Sabre, Aminom Marvin, Angela Talamasca, Aralara Rajal, Armin Weatherwax, Ashrilyn Hayashida, Athanasius Skytower, Aura Dirval, Barney Boomslang, Biancaluce Robbiani, Biker Offcourse, Borg Capalini, Bulli Schumann, catherine pfeffer, Chalice Yao, Corre Porta, Court Goodman, Cummere Mayo, Dale Innis, Darien Caldwell, Darjeeling Schoonhoven, Daten Thielt, dimentox travanti, Dirk Talamasca, Drew Dwi, Duckless Vandyke, Elanthius Flagstaff, Electro Burnstein, emiley tomsen, Escort DeFarge, Eva Rau, Ezian Ecksol, Fire Centaur, Fluf Fredriksson, Francisco Koolhoven, Frontera Thor, Frungi Stastny, Gally Young, gearsawe stonecutter, Gigs Taggart, Gordon Wendt, Gudmund Shepherd, Gypsy Paz, Harleen Gretzky, Henri Beauchamp, Inma Rau, Irene Muni, Iskar Ariantho, Jacek Antonelli, JB Kraft, Jessicka Graves, Joeseph Albanese, Joshua Philgarlic, Khyota Wulluf, kirstenlee Cinquetti, Latif Khalifa, Lex Neva, Lilibeth Andree, Lisa Lowe, Lunita Savira, Loosey Demonia, lum pfohl, Marcos Fonzarelli, MartinRJ Fayray, Marusame Arai, Matthew Dowd, Maya Remblai, McCabe Maxsted, Meghan Dench, Melchoir Tokhes, Menos Short, Michelle2 Zenovka, Mimika Oh, Minerva Memel, Mm Alder, Ochi Wolfe, Omei Turnbull, Pesho Replacement, Phantom Ninetails, phoenixflames kukulcan, Polo Gufler, prez pessoa, princess niven, Prokofy Neva, Qie Niangao, Rem Beattie, RodneyLee Jessop, Saijanai Kuhn, Seg Baphomet, Sergen Davies, Shirley Marquez, SignpostMarv Martin, Sindy Tsure, Sira Arbizu, Skips Jigsaw, Sougent Harrop, Spritely Pixel, Squirrel Wood, StarSong Bright, Subversive Writer, Sugarcult Dagger, Sylumm Grigorovich, Tammy Nowotny, Tanooki Darkes, Tayra Dagostino, Theoretical Chemistry, Thickbrick Sleaford, valerie rosewood, Vex Streeter, Vixen Heron, Whoops Babii, Winter Ventura, Xiki Luik, Yann Dufaux, Yina Yao, Yukinoroh Kamachi, Zolute Infinity, Zwagoth Klaar
+Wir bedanken uns bei folgenden Einwohnern, die uns geholfen haben, dies zur bisher besten Version zu machen: Drew Dwi, Zai Lynch, Latif Khalifa, Ellla McMahon, Harleen Gretzky, Squirrel Wood, Malarthi Behemoth, Dante Tucker, Buckaroo Mu, Eddi Decosta, Dirk, Talamasca, Torben Trautman, Irene Muni, Lilly Zenovka, Vick Forcella, Sasy Scarborough, Gentle Welinder, Elric Anatine, Techwolf Lupindo, Dusan Writer, WolfPup Lowenhar, Marianne McCann, Fiachra Lach, Sitearm Madonna, Sudane Erato, Sahkolihaa Contepomi, Sachi Vixen, Questar Utu, Dimitrio Lewis, Matto Destiny, Scrim Pinion, Radio Signals, Psi Merlin, Pixel Gausman, Mel Vanbeeck, Laurent Bechir, Lamorna Proctor, Lares Carter, Gwyneth Llewelyn, Hydra Shaftoe, Holger Gilruth, Gentle Heron, Carla Broek, Boroondas Gupte, Fury Rosewood, Flower Ducatillon, Colpo Wexler, gwampa Lomu, Borg Capalini, Beansy Twine, Ardy Lay, , 45ms Zhong, Adeon Writer, Aeonix Aeon, Ai Austin, Aiko Ying, Alexandrea Fride, Alliez Mysterio, Annie Milestone, Annika Genezzia, Ansariel Hiller, ArminasX Saiman, Arya Braveheart, Asaeda Meltingdots, Asturkon Jua, Avallyn Oakleaf, Avatar Quinzet, BabyA Littlething, Bacchus Ireto, Bazaar, Riva, Benjamin Bigdipper, Beth Walcher, Bezilon Kasei, Biancaluce Robbiani, Bill Walach, blakopal Galicia, Blitzckreed Levenque, Bryn Oh, Callipygian Christensen, Cap Carver, Carr Arbenlow, Chantal Harvey, Charles Courtois, Charlie Sazaland, Cherry Cheevers, ChickyBabes Zuzu, Christopher Organiser, Ciaran Laval, Clara Young, Celierra Darling, Corinne Helendale, Corro Moseley, Coughdrop Littlething, Darien Caldwell, Dartagan Shepherd, Debs Regent, Decro Schmooz, Denim Kamachi, DiJodi Dubratt, Dil Spitz, Edgware Marker, Egehan Dryke, Emma Portilo, Emmie Fairymeadow, Evangelista Emerald, Faelon Swordthain, Frenchimmo Sabra, Gaberoonie Zanzibar, Ganymedes Costagravas, Gene Frostbite, GeneJ Composer, Giggles Littlebird, Grady Echegaray, Guni Greenstein, Gypsy Tripsa, Hackshaven Harford, Ham Rambler, Han Shuffle, Hanglow Short, Hatzfeld Runo, herina Bode, Horatio Freund, Hypatia Callisto, Hypatia Pickens, Identity Euler, Imnotgoing Sideways, Innula Zenovka, Iyoba Tarantal, Jack Abraham, Jagga Meredith, Jennifer Boyle, Jeremy Marquez, Jessica Qin, Jinx Nordberg, Jo Bernandes, Jocial Sonnenkern, Joel Savard, Jondan Lundquist, Josef Munster, Josette Windlow, Juilan Tripsa, Juro Kothari, Justin RiversRunRed, Kagehi Kohn, Kaimen Takahe, Keklily Longfall, Ken Lavender, Kestral Karas, Khisme Nitely, Kimar Coba, Kithrak Kirkorian, Kitty Barnett, Kolor Fall, Komiko Okamoto, Korvel Noh, Larry Pixel, Leal Choche, len Starship, Lenae Munz, Lexi Frua, Lillie Cordeaux, Lizzy Macarthur, LSL Scientist, Luban Yiyuan, Luc Starsider, Maccus McCullough, Madison Blanc, Maggie Darwin, Mallory Destiny, Manx Wharton, Marc Claridge, Marc2 Sands, Matthew Anthony, Maxim RiversRunRed, Medhue Simoni, Melinda Latynina, Mencius Watts, Michi Lumin, Midian Farspire, Miles Glaz, Mindy Mathy, Mitch Wagner, Mo Hax, Mourna Biziou, Nao Noe, naofan Teardrop, Naomah Beaumont, Nathiel Siamendes, Nber Medici, Neko Link, Netpat Igaly, Neutron Chesnokov, Newfie Pendragon, Nicholai Laviscu, Nick Rhodes, Nicoladie Gymnast, Ollie Kubrick, Orenj Marat, Orion Delphis, Oryx Tempel, Parvati Silverweb, PeterPunk Mooney, Pixel Scientist, Pounce Teazle, Professor Noarlunga, Quantum Destiny, Quicksilver Hermes, Ralf Setsuko, RAT Quan, RedMokum Bravin, Revolution Perenti, Rezit Sideways, Rich Grainger, Rosco Teardrop, Rose Evans, Rudee Voom, RufusTT Horsefly, Saii Hallard, SaintLEOlions Zimer, Samm Larkham, Satanello Miami, SexySteven Morrisey, Sheet Spotter, Shnurui Troughton, sicarius Thorne, Sicarius Toxx, Sini Nubalo, SLB Wirefly, snowy Sidran, Soupa Segura, ST Mensing, Starshine Halasy, Stickman Ingmann, Synystyr Texan, Takeda Terrawyng, Tali Rosca, Templar Merlin, Tezcatlipoca Bisiani, Tiel Stonecutter, Tony Kembia, TouchaHoney Perhaps, Trey Reanimator, TriloByte Zanzibar, Trinity Dechou, Trinity Dejavu, Unlikely Quintessa, UsikuFarasi Kanarik, Veritas Raymaker, Vex Streeter, Viaticus Speculaas, Villain Baroque, Vixie Durant, Void Singer, Watty Berkson, Westley Schridde, Westley Streeter, Whimsy Winx, Winter Ventura, Wundur Primbee, xstorm Radek, YongYong Francois, Zak Westminster, Zana Kohime, Zaren Alexander, Zeja Pyle, ZenMondo Wormser, Zoex Flanagan und vielen anderen.
-Um im Geschäftsleben erfolreich zu sein, sei kühn, sei schnell, sei anders. --Henry Marchant
+
+„Die Arbeit beginnt aufs Neue, die Hoffnung lebt weiter, und der Traum wird niemals sterben.“ - Edward Kennedy
</text_editor>
</panel>
<panel label="Lizenzen" name="licenses_panel">
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 0d55ea7413..82a4a51d07 100644
--- a/indra/newview/skins/default/xui/de/floater_animation_preview.xml
+++ b/indra/newview/skins/default/xui/de/floater_animation_preview.xml
@@ -142,35 +142,35 @@ Maximal erlaubt sind [MAX_LENGTH] Sekunden.
Ausdruck
</text>
<combo_box label="" name="emote_combo" tool_tip="Steuert Gesichtsregungen während der Animation">
- <combo_box.item label="(Keiner)" name="[None]"/>
- <combo_box.item label="Aaaaah" name="Aaaaah"/>
- <combo_box.item label="Ängstlich" name="Afraid"/>
- <combo_box.item label="Verärgert" name="Angry"/>
- <combo_box.item label="Grinst" name="BigSmile"/>
- <combo_box.item label="Gelangweilt" name="Bored"/>
- <combo_box.item label="Weinen" name="Cry"/>
- <combo_box.item label="Verachten" name="Disdain"/>
- <combo_box.item label="Verlegen" name="Embarrassed"/>
- <combo_box.item label="Stirnrunzeln" name="Frown"/>
- <combo_box.item label="Küssen" name="Kiss"/>
- <combo_box.item label="Lachen" name="Laugh"/>
- <combo_box.item label="Bäääh" name="Plllppt"/>
- <combo_box.item label="Angewidert" name="Repulsed"/>
- <combo_box.item label="Traurig" name="Sad"/>
- <combo_box.item label="Schulterzucken" name="Shrug"/>
- <combo_box.item label="Lächeln" name="Smile"/>
- <combo_box.item label="Überraschung" name="Surprise"/>
- <combo_box.item label="Zwinkern" name="Wink"/>
- <combo_box.item label="Sorgenvoll" name="Worry"/>
+ <item label="(Keiner)" name="[None]" value=""/>
+ <item label="Aaaaah" name="Aaaaah" value="Aaaaah"/>
+ <item label="Ängstlich" name="Afraid" value="Ängstlich"/>
+ <item label="Verärgert" name="Angry" value="Verärgert"/>
+ <item label="Grinst" name="BigSmile" value="Grinsend"/>
+ <item label="Gelangweilt" name="Bored" value="Gelangweilt"/>
+ <item label="Weinen" name="Cry" value="Weinen"/>
+ <item label="Verachten" name="Disdain" value="Verachten"/>
+ <item label="Verlegen" name="Embarrassed" value="Verlegen"/>
+ <item label="Stirnrunzeln" name="Frown" value="Stirnrunzeln"/>
+ <item label="Küssen" name="Kiss" value="Küssen"/>
+ <item label="Lachen" name="Laugh" value="Lachen"/>
+ <item label="Bäääh" name="Plllppt" value="Bäääh"/>
+ <item label="Angewidert" name="Repulsed" value="Angewidert"/>
+ <item label="Traurig" name="Sad" value="Traurig"/>
+ <item label="Schulterzucken" name="Shrug" value="Schulterzucken"/>
+ <item label="Lächeln" name="Smile" value="Lächeln"/>
+ <item label="Überraschung" name="Surprise" value="Überraschung"/>
+ <item label="Zwinkern" name="Wink" value="Zwinkern"/>
+ <item label="Sorgenvoll" name="Worry" value="Sorgenvoll"/>
</combo_box>
<text name="preview_label" width="97">
Vorschau während:
</text>
<combo_box label="" left_delta="107" name="preview_base_anim" tool_tip="Hiermit können Sie das Verhalten Ihres Avatars testen, während Ihr Avatar normale Bewegungen ausführt.">
- <combo_box.item label="Stehend" name="Standing"/>
- <combo_box.item label="Geht" name="Walking"/>
- <combo_box.item label="Sitzt" name="Sitting"/>
- <combo_box.item label="Fliegen" name="Flying"/>
+ <item label="Stehend" name="Standing" value="Stehend"/>
+ <item label="Geht" name="Walking" value="Gehend"/>
+ <item label="Sitzt" name="Sitting" value="Sitzend"/>
+ <item label="Fliegen" name="Flying" value="Fliegen"/>
</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"/>
diff --git a/indra/newview/skins/default/xui/de/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/de/floater_day_cycle_options.xml
index 837dfa9e8c..8599737106 100644
--- a/indra/newview/skins/default/xui/de/floater_day_cycle_options.xml
+++ b/indra/newview/skins/default/xui/de/floater_day_cycle_options.xml
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="Day Cycle Floater" title="TAGESZYKLUS-EDITOR">
<tab_container name="Day Cycle Tabs">
<panel label="Tageszyklus" name="Day Cycle">
- <button label=" ?" name="WLDayCycleHelp" />
+ <button label=" ?" name="WLDayCycleHelp"/>
<text name="WL12am">
24:00
</text>
@@ -57,40 +57,38 @@
<text name="WL12amHash2">
|
</text>
- <button label="Key hinzu" label_selected="Key hinzu" name="WLAddKey" />
- <button label="Key löschen" label_selected="Key löschen" name="WLDeleteKey" />
+ <button label="Key hinzu" label_selected="Key hinzu" name="WLAddKey"/>
+ <button label="Key löschen" label_selected="Key löschen" name="WLDeleteKey"/>
<text name="WLCurKeyFrameText">
Keyframe-Einstellungen:
</text>
<text name="WLCurKeyTimeText">
Key-Zeit:
</text>
- <spinner label="Std." name="WLCurKeyHour" />
+ <spinner label="Std." name="WLCurKeyHour"/>
<spinner label="Min." name="WLCurKeyMin"/>
<text name="WLCurKeyTimeText2">
Key-Voreinstellung:
</text>
- <combo_box label="Voreinstellung" name="WLKeyPresets" />
+ <combo_box label="Voreinstellung" name="WLKeyPresets"/>
<text name="DayCycleText">
Einrasten:
</text>
- <combo_box label="5 min" name="WLSnapOptions" />
+ <combo_box label="5 min" name="WLSnapOptions"/>
<text name="DayCycleText2">
Zykluslänge:
</text>
- <spinner label="Std." name="WLLengthOfDayHour" />
+ <spinner label="Std." name="WLLengthOfDayHour"/>
<spinner label="Min." name="WLLengthOfDayMin"/>
<spinner label="Sek." name="WLLengthOfDaySec"/>
<text name="DayCycleText3">
Vorschau:
</text>
- <button label="Start" label_selected="Start" name="WLAnimSky" />
- <button label="Stopp" label_selected="Stopp" name="WLStopAnimSky" />
- <button label="Grundbesitzzeit verw" label_selected="Zur Grundbesitzzeit"
- name="WLUseLindenTime" />
- <button label="Testtag speichern" label_selected="Testtag speichern"
- name="WLSaveDayCycle" />
- <button label="Testtag laden" label_selected="Testtag laden" name="WLLoadDayCycle" />
+ <button label="Start" label_selected="Start" name="WLAnimSky"/>
+ <button label="Stopp" label_selected="Stopp" name="WLStopAnimSky"/>
+ <button label="Grundbesitzzeit verw" label_selected="Zur Grundbesitzzeit" name="WLUseLindenTime"/>
+ <button label="Testtag speichern" label_selected="Testtag speichern" name="WLSaveDayCycle"/>
+ <button label="Testtag laden" label_selected="Testtag laden" name="WLLoadDayCycle"/>
</panel>
</tab_container>
</floater>
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 9708d7603f..8cb1af9f7d 100644
--- a/indra/newview/skins/default/xui/de/floater_god_tools.xml
+++ b/indra/newview/skins/default/xui/de/floater_god_tools.xml
@@ -2,12 +2,11 @@
<floater name="godtools floater" title="GOTT-WERKZEUGE">
<tab_container name="GodTools Tabs">
<panel label="Raster" name="grid">
- <button label="Alle Benutzer hinauswerfen" label_selected="Alle Benutzer hinauswerfen" name="Kick all users" width="175"/>
<button label="Sichtbarkeits-Cache dieser Regionskarte leeren" label_selected="Sichtbarkeits-Cache dieser Regionskarte leeren" name="Flush This Region&apos;s Map Visibility Caches" width="285"/>
</panel>
<panel label="Region" name="region">
- <text name="Sim Name:" width="55">
- Sim:
+ <text name="Region Name:">
+ Name der Region:
</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/Grundbesitz“ &gt; „Terrain“."/>
@@ -35,8 +34,8 @@
<text name="Redirect to Grid: " width="110">
Auf Raster umleiten:
</text>
- <line_editor left_delta="110" name="redirectx" width="35" left_pad="0"/>
- <line_editor left_delta="45" name="redirecty" width="35" />
+ <line_editor left_delta="110" left_pad="0" name="redirectx" width="35"/>
+ <line_editor left_delta="45" name="redirecty" width="35"/>
<text font="SansSerifSmall" name="billable factor text">
Abrechnungsfaktor:
</text>
@@ -52,8 +51,8 @@
<panel.string name="no_target">
(kein Ziel)
</panel.string>
- <text name="Sim Name:" width="55">
- Sim-Name:
+ <text name="Region Name:">
+ Name der Region:
</text>
<text name="region name">
Welsh
diff --git a/indra/newview/skins/default/xui/de/floater_image_preview.xml b/indra/newview/skins/default/xui/de/floater_image_preview.xml
index fd675f8808..d581c6051b 100644
--- a/indra/newview/skins/default/xui/de/floater_image_preview.xml
+++ b/indra/newview/skins/default/xui/de/floater_image_preview.xml
@@ -10,16 +10,16 @@
Bildvorschau als:
</text>
<combo_box label="Kleidungstyp" name="clothing_type_combo">
- <combo_box.item label="Bild" name="Image"/>
- <combo_box.item label="Haare" name="Hair"/>
- <combo_box.item label="Kopf (Frau)" name="FemaleHead"/>
- <combo_box.item label="Oberkörper (Frau)" name="FemaleUpperBody"/>
- <combo_box.item label="Unterkörper (Frau)" name="FemaleLowerBody"/>
- <combo_box.item label="Kopf (Mann)" name="MaleHead"/>
- <combo_box.item label="Oberkörper (Mann)" name="MaleUpperBody"/>
- <combo_box.item label="Unterkörper (Mann)" name="MaleLowerBody"/>
- <combo_box.item label="Rock" name="Skirt"/>
- <combo_box.item label="Geformtes Primitiv" name="SculptedPrim"/>
+ <item label="Bild" name="Image" value="Bild"/>
+ <item label="Haare" name="Hair" value="Haare"/>
+ <item label="Kopf (Frau)" name="FemaleHead" value="Kopf (Frau)"/>
+ <item label="Oberkörper (Frau)" name="FemaleUpperBody" value="Oberkörper (Frau)"/>
+ <item label="Unterkörper (Frau)" name="FemaleLowerBody" value="Unterkörper (Frau)"/>
+ <item label="Kopf (Mann)" name="MaleHead" value="Kopf (Mann)"/>
+ <item label="Oberkörper (Mann)" name="MaleUpperBody" value="Oberkörper (Mann)"/>
+ <item label="Unterkörper (Mann)" name="MaleLowerBody" value="Unterkörper (Mann)"/>
+ <item label="Rock" name="Skirt" value="Rock"/>
+ <item label="Geformtes Primitiv" name="SculptedPrim" value="Geformtes Primitiv"/>
</combo_box>
<text name="bad_image_text">
Bild kann nicht gelesen werden.
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 5372b8387e..81079a3c52 100644
--- a/indra/newview/skins/default/xui/de/floater_outgoing_call.xml
+++ b/indra/newview/skins/default/xui/de/floater_outgoing_call.xml
@@ -28,7 +28,7 @@
Die Verbindung zu [VOICE_CHANNEL_NAME] wurde abgebrochen. [RECONNECT_NEARBY]
</text>
<text name="nearby_P2P_by_other">
- [VOICE_CHANNEL_NAME] hat den Anruf beendet. [RECONNECT_NEARBY]
+ Ihr Anfruf wurde beendet. [RECONNECT_NEARBY]
</text>
<text name="nearby_P2P_by_agent">
Sie haben das Gespräch beendet. [RECONNECT_NEARBY]
diff --git a/indra/newview/skins/default/xui/de/floater_snapshot.xml b/indra/newview/skins/default/xui/de/floater_snapshot.xml
index 9ee50c7c5c..4c417710bd 100644
--- a/indra/newview/skins/default/xui/de/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/de/floater_snapshot.xml
@@ -1,79 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Snapshot" title="FOTO-VORSCHAU">
- <text name="type_label">
- Zweck des Fotos
- </text>
- <radio_group label="Fototyp" name="snapshot_type_radio">
- <radio_item label="Emailen" 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">
- [SIZE] KB
- </text>
- <button label="Foto aktualisieren" name="new_snapshot_btn"/>
- <button label="Senden" name="send_btn"/>
- <button label="Speichern ([AMOUNT] L$)" name="upload_btn"/>
- <flyout_button label="Speichern" name="save_btn" tool_tip="Bild als Datei speichern">
- <flyout_button_item label="Speichern" name="save_item"/>
- <flyout_button_item label="Speichern unter..." name="saveas_item"/>
- </flyout_button>
- <button label="Abbrechen" name="discard_btn"/>
- <button label="Mehr" name="more_btn" tool_tip="Erweiterte Optionen"/>
- <button label="Weniger" name="less_btn" tool_tip="Erweiterte Optionen"/>
- <text name="type_label2">
- Größe
- </text>
- <text name="format_label">
- Format
- </text>
- <combo_box label="Auflösung" name="postcard_size_combo">
- <combo_box.item label="Aktuelles Fenster" name="CurrentWindow"/>
- <combo_box.item label="640x480" name="640x480"/>
- <combo_box.item label="800x600" name="800x600"/>
- <combo_box.item label="1024x768" name="1024x768"/>
- <combo_box.item label="Benutzerdefiniert" name="Custom"/>
- </combo_box>
- <combo_box label="Auflösung" name="texture_size_combo">
- <combo_box.item label="Aktuelles Fenster" name="CurrentWindow"/>
- <combo_box.item label="Klein (128x128)" name="Small(128x128)"/>
- <combo_box.item label="Mittel (256x256)" name="Medium(256x256)"/>
- <combo_box.item label="Groß (512x512)" name="Large(512x512)"/>
- <combo_box.item label="Benutzerdefiniert" name="Custom"/>
- </combo_box>
- <combo_box label="Auflösung" name="local_size_combo">
- <combo_box.item label="Aktuelles Fenster" name="CurrentWindow"/>
- <combo_box.item label="320x240" name="320x240"/>
- <combo_box.item label="640x480" name="640x480"/>
- <combo_box.item label="800x600" name="800x600"/>
- <combo_box.item label="1024x768" name="1024x768"/>
- <combo_box.item label="1280x1024" name="1280x1024"/>
- <combo_box.item label="1600x1200" name="1600x1200"/>
- <combo_box.item label="Benutzerdefiniert" name="Custom"/>
- </combo_box>
- <combo_box label="Format" name="local_format_combo">
- <combo_box.item label="PNG" name="PNG"/>
- <combo_box.item label="JPEG" name="JPEG"/>
- <combo_box.item label="BMP" name="BMP"/>
- </combo_box>
- <spinner label="Breite" name="snapshot_width"/>
- <spinner label="Höhe" name="snapshot_height"/>
- <check_box label="Seitenverhältnis beibehalten" name="keep_aspect_check"/>
- <slider label="Bildqualität" name="image_quality_slider"/>
- <text name="layer_type_label" width="66">
- Aufnehmen:
- </text>
- <combo_box label="Bildlayer" left="73" name="layer_types" width="132">
- <combo_box.item label="Farben" name="Colors"/>
- <combo_box.item label="Tiefe" name="Depth"/>
- <combo_box.item label="Objektmasken" name="ObjectMattes"/>
- </combo_box>
- <check_box label="Oberfläche" 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 (Vollbild)" name="freeze_frame_check"/>
- <check_box label="Automatisch aktualisieren" name="auto_snapshot_check"/>
- <string name="unknown">
+<floater name="Snapshot" title="Foto">
+ <floater.string name="unknown">
unbekannt
- </string>
+ </floater.string>
+ <button label="Foto aktualisieren" name="new_snapshot_btn"/>
+ <line_editor label="Beschreibung" name="description"/>
+ <button label="Foto freigeben" name="share"/>
+ <button label="Ins Internet stellen" name="share_to_web"/>
+ <button label="Objekt in meinem Inventar speichern" name="save_to_inventory"/>
+ <button label="Foto speichern" name="save"/>
+ <button label="Foto per E-Mail senden" name="share_to_email"/>
+ <button label="Auf meinem Computer speichern" name="save_to_computer"/>
+ <button label="Als Profilbild festlegen" name="set_profile_pic"/>
+ <button label="Zurück" name="cancel"/>
</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_tos.xml b/indra/newview/skins/default/xui/de/floater_tos.xml
index 27c15a0337..1f3ef2f0b4 100644
--- a/indra/newview/skins/default/xui/de/floater_tos.xml
+++ b/indra/newview/skins/default/xui/de/floater_tos.xml
@@ -1,22 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="modal container" title=" ">
+ <floater.string name="real_url">
+ http://secondlife.com/app/tos/
+ </floater.string>
+ <floater.string name="loading_url">
+ data:text/html,%3Chtml%3E%3Chead%3E%3C/head%3E%3Cbody text=%22000000%22%3E%3Ch2%3E Loading %3Ca%20target%3D%22_external%22%20href%3D%22http%3A//secondlife.com/app/tos/%22%3ETerms%20of%20Service%3C/a%3E...%3C/h2%3E %3C/body%3E %3C/html%3E
+ </floater.string>
<button label="Weiter" label_selected="Weiter" name="Continue"/>
<button label="Abbrechen" label_selected="Abbrechen" name="Cancel"/>
- <radio_group name="tos_agreement">
- <radio_item label="Ich stimme den Servicebedingungen nicht zu" name="radio_disagree"/>
- <radio_item label="Ich stimme den Servicebedingungen zu" name="radio_agree"/>
- </radio_group>
- <text name="tos_title">
- Nutzungsvereinbarung
- </text>
<check_box label="Ich stimme den Servicebedingungen und Datenschutzbestimmungen zu." name="agree_chk"/>
<text name="tos_heading">
Lesen Sie die folgenden Servicebedingungen und Datenbestimmungen sorgfältig durch. Sie müssen den Servicebedingungen zustimmen, um sich bei [SECOND_LIFE] anmelden zu können.
</text>
- <text_editor name="tos_text">
- TOS_TEXT
- </text_editor>
- <text name="real_url">
- http://secondlife.com/app/tos/
- </text>
</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
index d234443fae..237c92f7d2 100644
--- a/indra/newview/skins/default/xui/de/menu_attachment_other.xml
+++ b/indra/newview/skins/default/xui/de/menu_attachment_other.xml
@@ -10,7 +10,7 @@
<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="Fehler in Texturen beseitigen" name="Debug..."/>
<menu_item_call label="Hineinzoomen" name="Zoom In"/>
<menu_item_call label="Bezahlen" name="Pay..."/>
<menu_item_call label="Objektprofil" name="Object Inspect"/>
diff --git a/indra/newview/skins/default/xui/de/menu_attachment_self.xml b/indra/newview/skins/default/xui/de/menu_attachment_self.xml
index bc33b9b93d..3af69d2f31 100644
--- a/indra/newview/skins/default/xui/de/menu_attachment_self.xml
+++ b/indra/newview/skins/default/xui/de/menu_attachment_self.xml
@@ -9,4 +9,5 @@
<menu_item_call label="Meine Freunde" name="Friends..."/>
<menu_item_call label="Meine Gruppen" name="Groups..."/>
<menu_item_call label="Mein Profil" name="Profile..."/>
+ <menu_item_call label="Fehler in Texturen beseitigen" name="Debug..."/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_avatar_other.xml b/indra/newview/skins/default/xui/de/menu_avatar_other.xml
index 05eade1d34..8aee0be3d2 100644
--- a/indra/newview/skins/default/xui/de/menu_avatar_other.xml
+++ b/indra/newview/skins/default/xui/de/menu_avatar_other.xml
@@ -10,7 +10,7 @@
<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="Fehler in Texturen beseitigen" name="Debug..."/>
<menu_item_call label="Hineinzoomen" name="Zoom In"/>
<menu_item_call label="Bezahlen" 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
index 3a116b84a2..d310d10ea5 100644
--- a/indra/newview/skins/default/xui/de/menu_avatar_self.xml
+++ b/indra/newview/skins/default/xui/de/menu_avatar_self.xml
@@ -24,4 +24,5 @@
<menu_item_call label="Meine Freunde" name="Friends..."/>
<menu_item_call label="Meine Gruppen" name="Groups..."/>
<menu_item_call label="Mein Profil" name="Profile..."/>
+ <menu_item_call label="Fehler in Texturen beseitigen" name="Debug..."/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_edit.xml b/indra/newview/skins/default/xui/de/menu_edit.xml
new file mode 100644
index 0000000000..37f68d68d5
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_edit.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu label="Bearbeiten" name="Edit">
+ <menu_item_call label="Rückgängig" name="Undo"/>
+ <menu_item_call label="Wiederherstellen" name="Redo"/>
+ <menu_item_call label="Ausschneiden" name="Cut"/>
+ <menu_item_call label="Kopieren" name="Copy"/>
+ <menu_item_call label="Einfügen" name="Paste"/>
+ <menu_item_call label="Löschen" name="Delete"/>
+ <menu_item_call label="Duplizieren" name="Duplicate"/>
+ <menu_item_call label="Alle auswählen" name="Select All"/>
+ <menu_item_call label="Auswahl aufheben" name="Deselect"/>
+</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 6f003dc9a5..edad34a1d5 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
@@ -11,7 +11,7 @@
<menu_item_call label="Melden" name="report"/>
<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="Fehler in Texturen beseitigen" name="debug"/>
<menu_item_call label="Auf Karte anzeigen" name="find_on_map"/>
<menu_item_call label="Hineinzoomen" name="zoom_in"/>
<menu_item_call label="Bezahlen" name="pay"/>
diff --git a/indra/newview/skins/default/xui/de/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/de/menu_inspect_self_gear.xml
index 383ee7831e..a74c41bb0c 100644
--- a/indra/newview/skins/default/xui/de/menu_inspect_self_gear.xml
+++ b/indra/newview/skins/default/xui/de/menu_inspect_self_gear.xml
@@ -5,4 +5,5 @@
<menu_item_call label="Mein Profil" name="my_profile"/>
<menu_item_call label="Meine Freunde" name="my_friends"/>
<menu_item_call label="Meine Gruppen" name="my_groups"/>
+ <menu_item_call label="Fehler in Texturen beseitigen" name="Debug..."/>
</menu>
diff --git a/indra/newview/skins/default/xui/de/menu_inv_offer_chiclet.xml b/indra/newview/skins/default/xui/de/menu_inv_offer_chiclet.xml
new file mode 100644
index 0000000000..71cff7136b
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_inv_offer_chiclet.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="InvOfferChiclet Menu">
+ <menu_item_call label="Schließen" name="Close"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/de/menu_inventory.xml b/indra/newview/skins/default/xui/de/menu_inventory.xml
index a0625d88a8..306ef19de3 100644
--- a/indra/newview/skins/default/xui/de/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/de/menu_inventory.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="Popup">
+ <menu_item_call label="Teilen" name="Share"/>
<menu_item_call label="Kaufen" name="Task Buy"/>
<menu_item_call label="Öffnen" name="Task Open"/>
<menu_item_call label="Abspielen" name="Task Play"/>
@@ -49,9 +50,9 @@
<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="Original suchen" name="Find Original"/>
<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"/>
<menu_item_call label="Öffnen" name="Open"/>
<menu_item_call label="Eigenschaften" name="Properties"/>
<menu_item_call label="Umbenennen" name="Rename"/>
diff --git a/indra/newview/skins/default/xui/de/menu_login.xml b/indra/newview/skins/default/xui/de/menu_login.xml
index fffa056cac..70d31f93de 100644
--- a/indra/newview/skins/default/xui/de/menu_login.xml
+++ b/indra/newview/skins/default/xui/de/menu_login.xml
@@ -8,18 +8,8 @@
<menu_item_call label="[SECOND_LIFE]-Hilfe" name="Second Life Help"/>
<menu_item_call label="INFO ÜBER [APP_NAME]" name="About Second Life"/>
</menu>
+ <menu_item_check label="Debug-Menü anzeigen" name="Show Debug Menu"/>
<menu label="Debug" name="Debug">
- <menu label="Bearbeiten" name="Edit">
- <menu_item_call label="Rückgängig" name="Undo"/>
- <menu_item_call label="Wiederherstellen" name="Redo"/>
- <menu_item_call label="Ausschneiden" name="Cut"/>
- <menu_item_call label="Kopieren" name="Copy"/>
- <menu_item_call label="Einfügen" name="Paste"/>
- <menu_item_call label="Löschen" name="Delete"/>
- <menu_item_call label="Duplizieren" name="Duplicate"/>
- <menu_item_call label="Alle auswählen" name="Select All"/>
- <menu_item_call label="Auswahl aufheben" name="Deselect"/>
- </menu>
<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"/>
@@ -28,5 +18,7 @@
<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"/>
+ <menu_item_check label="Grid-Auswahl anzeigen" name="Show Grid Picker"/>
+ <menu_item_call label="Benachrichtigungs-Konsole anzeigen" name="Show Notifications Console"/>
</menu>
</menu_bar>
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 5ca4eaaa50..ca0d9f8c2d 100644
--- a/indra/newview/skins/default/xui/de/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/de/menu_participant_list.xml
@@ -8,6 +8,7 @@
<menu_item_call label="Anrufen" name="Call"/>
<menu_item_call label="Teilen" name="Share"/>
<menu_item_call label="Bezahlen" name="Pay"/>
+ <menu_item_check label="Symbole für Personen anzeigen" name="View Icons"/>
<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">
diff --git a/indra/newview/skins/default/xui/de/menu_save_outfit.xml b/indra/newview/skins/default/xui/de/menu_save_outfit.xml
new file mode 100644
index 0000000000..70bca077ab
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_save_outfit.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="save_outfit_menu">
+ <menu_item_call label="Speichern" name="save_outfit"/>
+ <menu_item_call label="Als neue Datei speichern" name="save_as_new_outfit"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_script_chiclet.xml b/indra/newview/skins/default/xui/de/menu_script_chiclet.xml
new file mode 100644
index 0000000000..3256aa1a87
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_script_chiclet.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="ScriptChiclet Menu">
+ <menu_item_call label="Schließen" name="Close"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/de/menu_viewer.xml b/indra/newview/skins/default/xui/de/menu_viewer.xml
index 84ed19e253..c416ebd7c1 100644
--- a/indra/newview/skins/default/xui/de/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/de/menu_viewer.xml
@@ -31,6 +31,7 @@
<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="Ortsprofil" name="Place Profile"/>
<menu_item_call label="Land-Info" name="About Land"/>
<menu_item_call label="Region/Grundbesitz" name="Region/Estate"/>
</menu>
@@ -66,17 +67,6 @@
<menu_item_call label="Erstellen" name="Create"/>
<menu_item_call label="Land" name="Land"/>
</menu>
- <menu label="Bearbeiten" name="Edit">
- <menu_item_call label="Rückgängig" name="Undo"/>
- <menu_item_call label="Wiederherstellen" name="Redo"/>
- <menu_item_call label="Ausschneiden" name="Cut"/>
- <menu_item_call label="Kopieren" name="Copy"/>
- <menu_item_call label="Einfügen" name="Paste"/>
- <menu_item_call label="Löschen" name="Delete"/>
- <menu_item_call label="Duplizieren" name="Duplicate"/>
- <menu_item_call label="Alle auswählen" name="Select All"/>
- <menu_item_call label="Auswahl aufheben" name="Deselect"/>
- </menu>
<menu_item_call label="Verknüpfung" name="Link"/>
<menu_item_call label="Verknüpfung auflösen" name="Unlink"/>
<menu_item_check label="Verknüpfte Teile bearbeiten" name="Edit Linked Parts"/>
@@ -124,6 +114,7 @@
<menu_item_call label="INFO ÜBER [APP_NAME]" name="About Second Life"/>
</menu>
<menu label="Erweitert" name="Advanced">
+ <menu_item_check label="Menü „Erweitert“ anzeigen" name="Show Advanced Menu"/>
<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"/>
@@ -145,7 +136,6 @@
<menu_item_check label="Durchsichtig hervorheben" name="Highlight Transparent"/>
<menu_item_check label="HUD-Anhänge anzeigen" name="Show HUD Attachments"/>
<menu_item_check label="Fadenkreuz für Mouselook anzeigen" name="ShowCrosshairs"/>
- <menu_item_check label="Land-Kurzinfos anzeigen" name="Land Tips"/>
</menu>
<menu label="Darstellungstypen" name="Rendering Types">
<menu_item_check label="Einfach" name="Simple"/>
diff --git a/indra/newview/skins/default/xui/de/notifications.xml b/indra/newview/skins/default/xui/de/notifications.xml
index 97387e9e87..aa1ee71c3f 100644
--- a/indra/newview/skins/default/xui/de/notifications.xml
+++ b/indra/newview/skins/default/xui/de/notifications.xml
@@ -359,7 +359,7 @@ Sind Sie sicher, dass Sie fortfahren wollen?
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="DeleteAvatarPick">
- Auswahl [PICK] löschen?
+ Auswahl &lt;nolink&gt;[PICK]&lt;/nolink&gt; löschen?
<usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
</notification>
<notification name="PromptGoToEventsPage">
@@ -937,6 +937,16 @@ Sie sind nicht berechtigt, Land für die aktive Gruppe zu kaufen.
<button name="Cancel" text="Abbrechen"/>
</form>
</notification>
+ <notification label="Outfit speichern" name="SaveOutfitAs">
+ Mein aktuelles Outfit als neues Outfit speichern:
+ <form name="form">
+ <input name="message">
+ [DESC] (neu)
+ </input>
+ <button name="Offer" text="OK"/>
+ <button name="Cancel" text="Abbrechen"/>
+ </form>
+ </notification>
<notification name="RemoveFromFriends">
Möchten Sie [FIRST_NAME] [LAST_NAME] aus Ihrer Freundesliste entfernen?
<usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
@@ -1426,6 +1436,10 @@ Chat und Instant Messages werden ausgeblendet. Instant Messages (Sofortnachricht
Zu [CLASSIFIED] teleportieren?
<usetemplate ignoretext="Bestätigen, dass ich zu einer Position in Anzeigen teleportieren möchte." name="okcancelignore" notext="Abbrechen" yestext="Teleportieren"/>
</notification>
+ <notification name="TeleportToHistoryEntry">
+ Nach [HISTORY_ENTRY] teleportieren?
+ <usetemplate ignoretext="Bestätigen, dass ich zu einem Standort aus der Teleportliste teleportieren möchte" name="okcancelignore" notext="Abbrechen" yestext="Teleportieren"/>
+ </notification>
<notification label="Nachricht an alle auf diesem Grundbesitz" name="MessageEstate">
Geben Sie eine kurze Nachricht ein, die an jede Person auf Ihrem Grundbesitz gesendet wird.
<form name="form">
@@ -1517,6 +1531,9 @@ Klicken Sie auf „Einstellung ändern“, um Ihre Einstellung für Altereinstuf
<ignore name="ignore" text="Meine Alterseinstufung lässt nicht zu, dass ich eine Region betrete."/>
</form>
</notification>
+ <notification name="PreferredMaturityChanged">
+ Ihre Inhaltseinstufung ist jetzt [RATING].
+ </notification>
<notification name="LandClaimAccessBlocked">
Sie haben aufgrund Ihrer Alterseinstufung keinen Anspruch auf dieses Land. Der Grund hierfür ist möglicherweise, dass Sie nicht altersüberprüft sind.
@@ -1932,6 +1949,9 @@ Von einer Webseite zu diesem Formular linken, um anderen leichten Zugang zu dies
<notification name="SystemMessageTip">
[MESSAGE]
</notification>
+ <notification name="IMSystemMessageTip">
+ [MESSAGE]
+ </notification>
<notification name="Cancelled">
Abgebrochen
</notification>
@@ -1960,6 +1980,11 @@ Von einer Webseite zu diesem Formular linken, um anderen leichten Zugang zu dies
In-Welt- und Website-Fotos werden hochgeladen...
(Dauert ca. 5 Minuten.)
</notification>
+ <notification name="UploadConfirmation">
+ Kosten für Hochladen: [AMOUNT] L$.
+Möchten Sie fortfahren?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="Hochladen"/>
+ </notification>
<notification name="UploadPayment">
Sie haben für das Hochladen [AMOUNT] L$ bezahlt.
</notification>
@@ -2304,9 +2329,9 @@ Versuchen Sie es in einigen Minuten erneut.
</form>
</notification>
<notification name="TeleportOffered">
- [NAME] hat Ihnen einen Teleport an seine/ihre Position angeboten:
+ [NAME_SLURL] hat Ihnen einen Teleport an seine/ihre Position angeboten:
-[MESSAGE]
+[MESSAGE] - [MATURITY_STR] &lt;icon&gt;[MATURITY_ICON]&lt;/icon&gt;
<form name="form">
<button name="Teleport" text="Teleportieren"/>
<button name="Cancel" text="Abbrechen"/>
@@ -2324,11 +2349,11 @@ Versuchen Sie es in einigen Minuten erneut.
</form>
</notification>
<notification name="OfferFriendship">
- [NAME] bietet Ihnen die Freundschaft an.
+ [NAME_SLURL] bietet Ihnen die Freundschaft an.
[MESSAGE]
-(Standardmäßig werden Sie gegenseitig ihren Online-Status sehen können.)
+(Standardmäßig können Sie gegenseitig ihren Online-Status sehen.)
<form name="form">
<button name="Accept" text="Akzeptieren"/>
<button name="Decline" text="Ablehnen"/>
@@ -2391,6 +2416,9 @@ Von Objekt: [OBJECTNAME], Eigentümer: [NAME]?
<notification name="FailedToFindWearable">
[TYPE] namens [DESC] nicht in Datenbank.
</notification>
+ <notification name="ShareToWebFailed">
+ Bild aus Internet konnte nicht hochgeladen werden.
+ </notification>
<notification name="InvalidWearable">
Dieser Artikel verwendet eine Funktion, die Ihr Viewer nicht unterstützt. Bitte aktualisieren Sie Ihre Version von [APP_NAME], um dieses Objekt anziehen zu können.
</notification>
@@ -2432,14 +2460,6 @@ Anfrage gestatten?
<button name="Ignore" text="Ignorieren"/>
</form>
</notification>
- <notification name="ScriptToast">
- [FIRST] [LAST]s &apos;[TITLE]&apos; fordert Eingaben vom Benutzer an.
- <form name="form">
- <button name="Open" text="Dialog öffnen"/>
- <button name="Ignore" text="Ignorieren"/>
- <button name="Block" text="Ignorieren"/>
- </form>
- </notification>
<notification name="BuyLindenDollarSuccess">
Vielen Dank für Ihre Zahlung.
@@ -2596,6 +2616,12 @@ Diese werden für ein paar Sekunden sicherheitshalber gesperrt.
Die ausgewählte Schaltfläche kann zur Zeit nicht angezeigt werden.
Die Schaltfläche wird angezeigt, wenn genügend Platz vorhanden ist.
</notification>
+ <notification name="ShareNotification">
+ Artikel aus Inventar auf eine Person im Fenster „Einwohner auswählen“ ziehen.
+ </notification>
+ <notification name="AvatarRezNotification">
+ Avatar &apos;[NAME]&apos; wurde in [TIME] Sekunden gerezzt.
+ </notification>
<global name="UnsupportedCPU">
- Ihre CPU-Geschwindigkeit entspricht nicht den Mindestanforderungen.
</global>
diff --git a/indra/newview/skins/default/xui/de/outfit_accordion_tab.xml b/indra/newview/skins/default/xui/de/outfit_accordion_tab.xml
new file mode 100644
index 0000000000..bac885e5d8
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/outfit_accordion_tab.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- *NOTE: mantipov: this xml is intended to be used inside panel_outfits_list.xml for each outfit folder-->
+<!-- All accordion tabs in the My Appearance/My Outfits panel will be created from this one at runtume-->
+<accordion_tab name="Mockup Tab" title="Mockup Tab"/>
diff --git a/indra/newview/skins/default/xui/de/panel_edit_eyes.xml b/indra/newview/skins/default/xui/de/panel_edit_eyes.xml
index 31251ed48f..69bcf2fb71 100644
--- a/indra/newview/skins/default/xui/de/panel_edit_eyes.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_eyes.xml
@@ -3,7 +3,9 @@
<panel name="avatar_eye_color_panel">
<texture_picker label="Iris" name="Iris" tool_tip="Zum Auswählen eines Bildes hier klicken"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="eyes_main_tab" title="Augen"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="eyes_main_tab" title="Augen"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_edit_gloves.xml b/indra/newview/skins/default/xui/de/panel_edit_gloves.xml
index 2d11befbfd..ad87e432d6 100644
--- a/indra/newview/skins/default/xui/de/panel_edit_gloves.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_gloves.xml
@@ -4,7 +4,9 @@
<texture_picker label="Stoff" name="Fabric" tool_tip="Zum Auswählen eines Bildes hier klicken"/>
<color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="gloves_main_tab" title="Handschuhe"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="gloves_main_tab" title="Handschuhe"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_edit_hair.xml b/indra/newview/skins/default/xui/de/panel_edit_hair.xml
index d255b1c16c..d6efde8306 100644
--- a/indra/newview/skins/default/xui/de/panel_edit_hair.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_hair.xml
@@ -3,10 +3,12 @@
<panel name="avatar_hair_color_panel">
<texture_picker label="Textur" name="Texture" tool_tip="Zum Auswählen eines Bildes hier klicken"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="hair_color_tab" title="Farbe"/>
- <accordion_tab name="hair_style_tab" title="Stil"/>
- <accordion_tab name="hair_eyebrows_tab" title="Augenbrauen"/>
- <accordion_tab name="hair_facial_tab" title="Gesicht"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="hair_color_tab" title="Farbe"/>
+ <accordion_tab name="hair_style_tab" title="Stil"/>
+ <accordion_tab name="hair_eyebrows_tab" title="Augenbrauen"/>
+ <accordion_tab name="hair_facial_tab" title="Gesicht"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_edit_jacket.xml b/indra/newview/skins/default/xui/de/panel_edit_jacket.xml
index 950c9023fe..8fe76f6225 100644
--- a/indra/newview/skins/default/xui/de/panel_edit_jacket.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_jacket.xml
@@ -5,7 +5,9 @@
<texture_picker label="Stoff: unten" name="Lower Fabric" tool_tip="Zum Auswählen eines Bildes hier klicken"/>
<color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="jacket_main_tab" title="Jacke"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="jacket_main_tab" title="Jacke"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_edit_pants.xml b/indra/newview/skins/default/xui/de/panel_edit_pants.xml
index 1ff439dc26..d40a27c5fd 100644
--- a/indra/newview/skins/default/xui/de/panel_edit_pants.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_pants.xml
@@ -4,7 +4,9 @@
<texture_picker label="Stoff" name="Fabric" tool_tip="Zum Auswählen eines Bildes hier klicken"/>
<color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="pants_main_tab" title="Hose"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="pants_main_tab" title="Hose"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_edit_shape.xml b/indra/newview/skins/default/xui/de/panel_edit_shape.xml
index 37be3c1d90..393a586903 100644
--- a/indra/newview/skins/default/xui/de/panel_edit_shape.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_shape.xml
@@ -9,15 +9,17 @@
<radio_item label="Männlich" name="radio2"/>
</radio_group>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="shape_body_tab" title="Körper"/>
- <accordion_tab name="shape_head_tab" title="Kopf"/>
- <accordion_tab name="shape_eyes_tab" title="Augen"/>
- <accordion_tab name="shape_ears_tab" title="Ohren"/>
- <accordion_tab name="shape_nose_tab" title="Nase"/>
- <accordion_tab name="shape_mouth_tab" title="Mund"/>
- <accordion_tab name="shape_chin_tab" title="Kinn"/>
- <accordion_tab name="shape_torso_tab" title="Oberkörper"/>
- <accordion_tab name="shape_legs_tab" title="Beine"/>
- </accordion>
+ <panel label="Hemd" name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="shape_body_tab" title="Körper"/>
+ <accordion_tab name="shape_head_tab" title="Kopf"/>
+ <accordion_tab name="shape_eyes_tab" title="Augen"/>
+ <accordion_tab name="shape_ears_tab" title="Ohren"/>
+ <accordion_tab name="shape_nose_tab" title="Nase"/>
+ <accordion_tab name="shape_mouth_tab" title="Mund"/>
+ <accordion_tab name="shape_chin_tab" title="Kinn"/>
+ <accordion_tab name="shape_torso_tab" title="Oberkörper"/>
+ <accordion_tab name="shape_legs_tab" title="Beine"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_edit_shirt.xml b/indra/newview/skins/default/xui/de/panel_edit_shirt.xml
index 6025606777..344b0b412a 100644
--- a/indra/newview/skins/default/xui/de/panel_edit_shirt.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_shirt.xml
@@ -4,7 +4,9 @@
<texture_picker label="Stoff" name="Fabric" tool_tip="Zum Auswählen eines Bildes hier klicken"/>
<color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="shirt_main_tab" title="Hemd"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="shirt_main_tab" title="Hemd"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_edit_shoes.xml b/indra/newview/skins/default/xui/de/panel_edit_shoes.xml
index 15e8a21dd7..56aee5d0fe 100644
--- a/indra/newview/skins/default/xui/de/panel_edit_shoes.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_shoes.xml
@@ -4,7 +4,9 @@
<texture_picker label="Stoff" name="Fabric" tool_tip="Zum Auswählen eines Bildes hier klicken"/>
<color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="shoes_main_tab" title="Schuhe"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="shoes_main_tab" title="Schuhe"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_edit_skin.xml b/indra/newview/skins/default/xui/de/panel_edit_skin.xml
index 90b06a29bc..f167f45e98 100644
--- a/indra/newview/skins/default/xui/de/panel_edit_skin.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_skin.xml
@@ -5,10 +5,12 @@
<texture_picker label="Obere Tattoos" name="Upper Tattoos" tool_tip="Zum Auswählen eines Bildes hier klicken"/>
<texture_picker label="Untere Tattoos" name="Lower Tattoos" tool_tip="Zum Auswählen eines Bildes hier klicken"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="skin_color_tab" title="Hautfarbe"/>
- <accordion_tab name="skin_face_tab" title="Gesichtsdetails"/>
- <accordion_tab name="skin_makeup_tab" title="Make-Up"/>
- <accordion_tab name="skin_body_tab" title="Körperdetails"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="skin_color_tab" title="Hautfarbe"/>
+ <accordion_tab name="skin_face_tab" title="Gesichtsdetails"/>
+ <accordion_tab name="skin_makeup_tab" title="Make-Up"/>
+ <accordion_tab name="skin_body_tab" title="Körperdetails"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_edit_skirt.xml b/indra/newview/skins/default/xui/de/panel_edit_skirt.xml
index 4fa9126c37..c8931bc947 100644
--- a/indra/newview/skins/default/xui/de/panel_edit_skirt.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_skirt.xml
@@ -4,7 +4,9 @@
<texture_picker label="Stoff" name="Fabric" tool_tip="Zum Auswählen eines Bildes hier klicken"/>
<color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="skirt_main_tab" title="Rock"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="skirt_main_tab" title="Rock"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_edit_socks.xml b/indra/newview/skins/default/xui/de/panel_edit_socks.xml
index c2ecad8642..abbeefa44e 100644
--- a/indra/newview/skins/default/xui/de/panel_edit_socks.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_socks.xml
@@ -4,7 +4,9 @@
<texture_picker label="Stoff" name="Fabric" tool_tip="Zum Auswählen eines Bildes hier klicken"/>
<color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="socks_main_tab" title="Socken"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="socks_main_tab" title="Strümpfe"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_edit_underpants.xml b/indra/newview/skins/default/xui/de/panel_edit_underpants.xml
index 4484068c1d..03c61a495d 100644
--- a/indra/newview/skins/default/xui/de/panel_edit_underpants.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_underpants.xml
@@ -4,7 +4,9 @@
<texture_picker label="Stoff" name="Fabric" tool_tip="Zum Auswählen eines Bildes hier klicken"/>
<color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="underpants_main_tab" title="Unterhose"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="underpants_main_tab" title="Unterhose"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_edit_undershirt.xml b/indra/newview/skins/default/xui/de/panel_edit_undershirt.xml
index 847f806fce..39919393e1 100644
--- a/indra/newview/skins/default/xui/de/panel_edit_undershirt.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_undershirt.xml
@@ -4,7 +4,9 @@
<texture_picker label="Stoff" name="Fabric" tool_tip="Zum Auswählen eines Bildes hier klicken"/>
<color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="undershirt_main_tab" title="Unterhemd"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="undershirt_main_tab" title="Unterhemd"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_edit_wearable.xml b/indra/newview/skins/default/xui/de/panel_edit_wearable.xml
index c3ffb2f353..17a632b46e 100644
--- a/indra/newview/skins/default/xui/de/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_wearable.xml
@@ -94,6 +94,11 @@
<panel label="Hemd" name="wearable_type_panel">
<text name="description_text" value="Form:"/>
</panel>
+ <panel label="gear_buttom_panel" name="gear_buttom_panel">
+ <button name="friends_viewsort_btn" tool_tip="Optionen"/>
+ <button name="add_btn" tool_tip="TODO"/>
+ <button name="del_btn" tool_tip="TODO"/>
+ </panel>
<panel name="button_panel">
<button label="Speichern unter" name="save_as_button"/>
<button label="Zurücksetzen" name="revert_button"/>
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 f300679e16..9d4301de73 100644
--- a/indra/newview/skins/default/xui/de/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_general.xml
@@ -47,8 +47,11 @@ Bewegen Sie die Maus über die Optionen, um weitere Informationen anzuzeigen.
<check_box label="Kosten für Beitritt" 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."/>
<combo_box name="group_mature_check" tool_tip="Legt fest, ob Ihre Gruppeninformation moderate Inhalte enthält">
- <combo_box.item label="Genereller Inhalt" name="pg"/>
+ <combo_item name="select_mature">
+ - Inhaltseinstufung auswählen -
+ </combo_item>
<combo_box.item label="Moderater Inhalt" name="mature"/>
+ <combo_box.item label="Genereller Inhalt" name="pg"/>
</combo_box>
<check_box initial_value="true" label="In Suche anzeigen" name="show_in_group_list" tool_tip="Diese Gruppe in Suchergebnissen anzeigen"/>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_inventory_item.xml b/indra/newview/skins/default/xui/de/panel_inventory_item.xml
new file mode 100644
index 0000000000..d18047fbcf
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/panel_inventory_item.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="inventory_item">
+ <text name="item_name" value="..."/>
+</panel>
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 7ee0074a3b..dd408b8275 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
@@ -11,10 +11,19 @@
Mini
</combo_item>
</combo_box>
+ <text name="owner_label">
+ Eigentümer
+ </text>
<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"/>
+ <text name="group_label">
+ Gruppe:
+ </text>
<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"/>
+ <text name="anyone_label">
+ Jeder
+ </text>
<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_nearby_media.xml b/indra/newview/skins/default/xui/de/panel_nearby_media.xml
index 32750f14d4..e633ae1dde 100644
--- a/indra/newview/skins/default/xui/de/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/de/panel_nearby_media.xml
@@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="nearby_media">
+ <string name="media_item_count_format">
+ (%ls Medien-Objekte)
+ </string>
<string name="empty_item_text">
&lt;leer&gt;
</string>
@@ -16,15 +19,10 @@
<button label="Stoppen" name="all_nearby_media_disable_btn" tool_tip="Alle Medien in der Nähe ausschalten"/>
<button label="Starten" name="all_nearby_media_enable_btn" tool_tip="Alle Medien in der Nähe einschalten"/>
<button name="open_prefs_btn" tool_tip="Medien-Einstellungen öffnen"/>
- <button label="Mehr &gt;&gt;" label_selected="Weniger &lt;&lt;" name="more_less_btn" tool_tip="Erweiterte Steuerung"/>
+ <button label="Mehr &gt;&gt;" label_selected="Weniger &lt;&lt;" name="more_btn" tool_tip="Erweiterte Steuerung"/>
+ <button label="Mehr &gt;&gt;" label_selected="Weniger &lt;&lt;" name="less_btn" tool_tip="Erweiterte Steuerung"/>
</panel>
<panel name="nearby_media_panel">
- <text name="nearby_media">
- Medien in der Nähe
- </text>
- <text name="show">
- Anzeigen:
- </text>
<combo_box name="show_combo">
<combo_box.item label="Alle" name="All"/>
<combo_box.item label="Auf dieser Parzelle" name="WithinParcel"/>
@@ -38,7 +36,7 @@
<scroll_list.columns label="Name" name="media_name"/>
<scroll_list.columns label="Fehler beseitigen" name="media_debug"/>
</scroll_list>
- <panel name="media_controls_panel">
+ <panel>
<layout_stack name="media_controls">
<layout_panel name="stop">
<button name="stop_btn" tool_tip="Ausgewählte Medien stoppen"/>
diff --git a/indra/newview/skins/default/xui/de/panel_outfit_edit.xml b/indra/newview/skins/default/xui/de/panel_outfit_edit.xml
new file mode 100644
index 0000000000..5ff088d41c
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/panel_outfit_edit.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- Side tray Outfit Edit panel -->
+<panel label="Outfit bearbeiten" name="outfit_edit">
+ <string name="No Outfit" value="Kein Outfit"/>
+ <panel.string name="not_available">
+ k.A.
+ </panel.string>
+ <panel.string name="unknown">
+ (unbekannt)
+ </panel.string>
+ <string name="Filter.All" value="Alle"/>
+ <string name="Filter.Clothes/Body" value="Kleider/Körper"/>
+ <string name="Filter.Objects" value="Objekte"/>
+ <button label="Bearbeiten" name="edit_wearable_btn"/>
+ <text name="title" value="Outfit bearbeiten"/>
+ <panel label="bottom_panel" name="header_panel">
+ <panel label="bottom_panel" name="outfit_name_and_status">
+ <text name="status" value="Wird bearbeitet..."/>
+ <text name="curr_outfit_name" value="[Aktuelles Outfit]"/>
+ </panel>
+ </panel>
+ <layout_stack name="im_panels">
+ <layout_panel label="IM Steuerkonsole" name="outfit_wearables_panel">
+ <scroll_list name="look_items_list">
+ <scroll_list.columns label="Look-Artikel" name="look_item"/>
+ <scroll_list.columns label="Outfit-Artikel sortieren" name="look_item_sort"/>
+ </scroll_list>
+ <panel label="bottom_panel" name="edit_panel"/>
+ </layout_panel>
+ <layout_panel name="add_wearables_panel">
+ <filter_editor label="Filter" name="look_item_filter"/>
+ <layout_stack name="filter_panels">
+ <layout_panel label="IM Steuerkonsole" name="filter_button_panel">
+ <text name="add_to_outfit_label" value="Zum Outfit hinzufügen:"/>
+ <button label="O" name="filter_button"/>
+ </layout_panel>
+ </layout_stack>
+ <panel label="add_wearables_button_bar" name="add_wearables_button_bar">
+ <button label="O" name="folder_view_btn"/>
+ <button label="L" name="list_view_btn"/>
+ </panel>
+ </layout_panel>
+ </layout_stack>
+ <panel name="save_revert_button_bar">
+ <button label="Speichern" name="save_btn"/>
+ <button label="Zurücksetzen" name="revert_btn"/>
+ </panel>
+</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 54c56992fd..f695d67d1b 100644
--- a/indra/newview/skins/default/xui/de/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/de/panel_outfits_inventory.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Sonstiges" name="Outfits">
<tab_container name="appearance_tabs">
- <inventory_panel label="MEINE OUTFITS" name="outfitslist_tab"/>
+ <panel label="MEINE OUTFITS" name="outfitslist_tab"/>
<inventory_panel label="AKTUELLES OUTFIT" name="cof_tab"/>
</tab_container>
<panel name="bottom_panel">
@@ -9,6 +9,6 @@
<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"/>
+ <button label="Outfit bearbeiten" name="edit_current_outfit_btn"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_people.xml b/indra/newview/skins/default/xui/de/panel_people.xml
index cc45f25c82..59cc3a8b70 100644
--- a/indra/newview/skins/default/xui/de/panel_people.xml
+++ b/indra/newview/skins/default/xui/de/panel_people.xml
@@ -1,14 +1,23 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- Side tray panel -->
<panel label="Leute" name="people_panel">
- <string name="no_people" value="Keine Leute"/>
- <string name="no_one_near" value="Keiner in der Nähe"/>
+ <string name="no_recent_people" value="Hier sind keine Leute. Sie suchen nach Leuten? Verwenden Sie die [secondlife:///app/search/people Suche] oder die [secondlife:///app/worldmap Karte]."/>
+ <string name="no_filtered_recent_people" value="Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/people Suche]."/>
+ <string name="no_one_near" value="Es ist niemand in der Nähe. Sie suchen nach Leuten? Verwenden Sie die [secondlife:///app/search/people Suche] oder die [secondlife:///app/worldmap Karte]."/>
+ <string name="no_one_filtered_near" value="Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/people Suche]."/>
<string name="no_friends_online" value="Keine Freunde online"/>
<string name="no_friends" value="Keine Freunde"/>
+ <string name="no_friends_msg">
+ Verwenden Sie die [secondlife:///app/search/people Suche], um Freunde zu finden. Oder klicken Sie mit rechts auf einen Einwohner und fügen Sie diesen als Freund hinzu.
+Sie suchen nach Leuten? Verwenden Sie die [secondlife:///app/worldmap Karte].
+ </string>
+ <string name="no_filtered_friends_msg">
+ Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/people Suche].
+ </string>
<string name="people_filter_label" value="Nach Leuten filtern"/>
<string name="groups_filter_label" value="Nach Gruppen filtern"/>
- <string name="no_filtered_groups_msg" value="[secondlife:///app/search/groups Suche verwenden, um die Gruppe zu finden?]"/>
- <string name="no_groups_msg" value="[secondlife:///app/search/groups Suche verwenden, um Gruppen zu finden?]"/>
+ <string name="no_filtered_groups_msg" value="Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/groups Suche]."/>
+ <string name="no_groups_msg" value="Suchen Sie nach Gruppen? Versuchen Sie es mit der [secondlife:///app/search/groups Suche]."/>
<filter_editor label="Filter" name="filter_input"/>
<tab_container name="tabs">
<panel label="IN DER NÄHE" name="nearby_panel">
@@ -27,10 +36,6 @@
<button name="add_btn" tool_tip="Bieten Sie einem Einwohner die Freundschaft an"/>
<button name="del_btn" tool_tip="Ausgewählte Person von Ihrer Freundesliste entfernen"/>
</panel>
- <text name="no_friends_msg">
- Verwenden Sie [secondlife:///app/search/people die globale Suche], um Freunde hinzuzufügen. Oder klicken Sie mit rechts auf einen Einwohner und fügen Sie diesen als Freund hinzu.
-Wenn Sie nach Orten suchen, an denen sich Leute befinden, verwenden Sie [secondlife:///app/worldmap die Karte].
- </text>
</panel>
<panel label="MEINE GRUPPEN" name="groups_panel">
<panel label="bottom_panel" name="bottom_panel">
diff --git a/indra/newview/skins/default/xui/de/panel_places.xml b/indra/newview/skins/default/xui/de/panel_places.xml
index 2215ea3988..37ccdbeb7d 100644
--- a/indra/newview/skins/default/xui/de/panel_places.xml
+++ b/indra/newview/skins/default/xui/de/panel_places.xml
@@ -11,5 +11,6 @@
<button label="Speichern" name="save_btn" width="66"/>
<button label="Abbrechen" name="cancel_btn" width="66"/>
<button label="Schließen" name="close_btn"/>
+ <button label="Profil" name="profile_btn"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml
index c0ab69fcdf..f9d5c93dc0 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml
@@ -20,6 +20,9 @@
<check_box label="Blasen-Chat" name="bubble_text_chat"/>
<slider label="Deckkraft" label_width="66" name="bubble_chat_opacity"/>
<color_swatch left_pad="35" name="background" tool_tip="Farbe für Blasen-Chat auswählen"/>
+ <text name="UI Size:">
+ UI-Größe
+ </text>
<check_box label="Skript-Fehler anzeigen:" name="show_script_errors"/>
<radio_group name="show_location">
<radio_item label="Chat in der Nähe" name="0"/>
@@ -29,4 +32,5 @@
<line_editor label="Auslöser für Zum-Sprechen-drücken:" name="modifier_combo"/>
<button label="Taste festlegen" name="set_voice_hotkey_button"/>
<button label="Mittlere Maustaste" name="set_voice_middlemouse_button" tool_tip="Auf mittlere Maustaste zurücksetzen"/>
+ <button label="Andere Geräte" name="joystick_setup_button"/>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_world_map.xml b/indra/newview/skins/default/xui/de/panel_world_map.xml
index f7454dd634..35fe3d3ffc 100644
--- a/indra/newview/skins/default/xui/de/panel_world_map.xml
+++ b/indra/newview/skins/default/xui/de/panel_world_map.xml
@@ -30,6 +30,12 @@
<panel.string name="world_map_northwest">
NW
</panel.string>
+ <panel.string name="world_map_person">
+ 1 Person
+ </panel.string>
+ <panel.string name="world_map_people">
+ [NUMBER] Leute
+ </panel.string>
<text label="N" name="floater_map_north" text="N">
N
</text>
diff --git a/indra/newview/skins/default/xui/de/sidepanel_inventory.xml b/indra/newview/skins/default/xui/de/sidepanel_inventory.xml
index f6cf911bb3..26bde94ffd 100644
--- a/indra/newview/skins/default/xui/de/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/de/sidepanel_inventory.xml
@@ -3,6 +3,7 @@
<panel label="" name="sidepanel__inventory_panel">
<panel name="button_panel">
<button label="Profil" name="info_btn"/>
+ <button label="Teilen" name="share_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/strings.xml b/indra/newview/skins/default/xui/de/strings.xml
index b3aeb8cd68..90cdd13173 100644
--- a/indra/newview/skins/default/xui/de/strings.xml
+++ b/indra/newview/skins/default/xui/de/strings.xml
@@ -261,6 +261,9 @@
<string name="BUTTON_CLOSE_WIN">
Schließen (Strg+W)
</string>
+ <string name="BUTTON_CLOSE_CHROME">
+ Schließen
+ </string>
<string name="BUTTON_RESTORE">
Wiederherstellen
</string>
@@ -303,6 +306,9 @@
<string name="GroupNameNone">
(keiner)
</string>
+ <string name="AvalineCaller">
+ Avaline-Anfrufer [ORDER]
+ </string>
<string name="AssetErrorNone">
Kein Fehler
</string>
@@ -904,7 +910,7 @@
ESC drücken, um zur Normalansicht zurückzukehren
</string>
<string name="InventoryNoMatchingItems">
- Im Inventar wurden keine passenden Objekte gefunden. Versuchen Sie es mit [secondlife:///app/search/groups „Suche&quot;].
+ Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/all Suche].
</string>
<string name="FavoritesNoMatchingItems">
Landmarke hier hin ziehen, um diese hinzuzufügen.
@@ -1575,9 +1581,7 @@
<string name="RegionNoCovenantOtherOwner">
Für diesen Grundbesitz liegt kein Vertrag vor. Das Land auf diesem Grundbesitz wird vom Grundbesitzer und nicht von Linden Lab verkauft. Für Informationen zum Verkauf setzen Sie sich bitte mit dem Grundbesitzer in Verbindung.
</string>
- <string name="covenant_last_modified">
- Zuletzt geändert:
- </string>
+ <string name="covenant_last_modified" value="Zuletzt geändert:"/>
<string name="none_text" value=" (keiner) "/>
<string name="never_text" value=" (nie) "/>
<string name="GroupOwned">
@@ -3311,6 +3315,15 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_
<string name="LocationCtrlDamageTooltip">
Gesundheit
</string>
+ <string name="LocationCtrlAdultIconTooltip">
+ Adult-Region
+ </string>
+ <string name="LocationCtrlModerateIconTooltip">
+ Moderate Region
+ </string>
+ <string name="LocationCtrlGeneralIconTooltip">
+ Generelle Region
+ </string>
<string name="UpdaterWindowTitle">
[APP_NAME] Aktualisierung
</string>
@@ -3341,6 +3354,12 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_
<string name="UpdaterFailStartTitle">
Viewer konnte nicht gestartet werden
</string>
+ <string name="ItemsComingInTooFastFrom">
+ [APP_NAME]: Zuviele Objekte auf einmal von [FROM_NAME]. Automaitsche Vorschau ist für [TIME] Sekunden nicht verfügbar.
+ </string>
+ <string name="ItemsComingInTooFast">
+ [APP_NAME]: Zuviele Objekte auf einmal. Automaitsche Vorschau ist für [TIME] Sekunden nicht verfügbar.
+ </string>
<string name="IM_logging_string">
-- Instant-Message-Protokoll aktiviert --
</string>
@@ -3368,6 +3387,9 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_
<string name="IM_moderator_label">
(Moderator)
</string>
+ <string name="answered_call">
+ Ihr Anruf wurde entgegengenommen
+ </string>
<string name="started_call">
haben/hat einen Anruf initiiert
</string>
@@ -3461,12 +3483,18 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_
<string name="unread_chat_multiple">
[SOURCES] haben etwas Neues gesagt
</string>
+ <string name="session_initialization_timed_out_error">
+ Die Initialisierung der Sitzung ist fehlgeschlagen
+ </string>
<string name="paid_you_ldollars">
[NAME] hat Ihnen [AMOUNT] L$ bezahlt.
</string>
<string name="you_paid_ldollars">
Sie haben [REASON] [AMOUNT] L$ an [NAME] bezahlt.
</string>
+ <string name="you_paid_ldollars_no_info">
+ Sie haben [AMOUNT] L$ bezahlt.
+ </string>
<string name="you_paid_ldollars_no_reason">
Sie haben [AMOUNT] L$ an [NAME] bezahlt.
</string>
@@ -3577,7 +3605,13 @@ Missbrauchsbericht
<string name="Contents">
Inhalt
</string>
- <string name="AvatarBirthDateFormat">
- [day,datetime,slt]/[mthnum,datetime,slt]/[year,datetime,slt]
- </string>
+ <string name="AvatarBirthDateFormat">
+ [mthnum,datetime,slt]/[day,datetime,slt]/[year,datetime,slt]
+ </string>
+ <string name="DefaultMimeType">
+ Keine/Keiner
+ </string>
+ <string name="texture_load_dimensions_error">
+ Bilder, die größer sind als [WIDTH]*[HEIGHT] können nicht geladen werden
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/en/floater_preview_notecard.xml b/indra/newview/skins/default/xui/en/floater_preview_notecard.xml
index 14c0081c0d..0e8eef2a21 100644
--- a/indra/newview/skins/default/xui/en/floater_preview_notecard.xml
+++ b/indra/newview/skins/default/xui/en/floater_preview_notecard.xml
@@ -84,8 +84,18 @@
label="Save"
label_selected="Save"
layout="topleft"
- left="288"
+ left="178"
name="Save"
top="332"
width="100" />
+ <button
+ follows="right|bottom"
+ height="22"
+ label="Delete"
+ label_selected="Delete"
+ layout="topleft"
+ left="288"
+ name="Delete"
+ top="332"
+ width="100" />
</floater>
diff --git a/indra/newview/skins/default/xui/en/menu_inventory.xml b/indra/newview/skins/default/xui/en/menu_inventory.xml
index 5e1f6b58e8..11459ad0e6 100644
--- a/indra/newview/skins/default/xui/en/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/en/menu_inventory.xml
@@ -410,6 +410,14 @@
parameter="open" />
</menu_item_call>
<menu_item_call
+ label="Open Original"
+ layout="topleft"
+ name="Open Original">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="open_original" />
+ </menu_item_call>
+ <menu_item_call
label="Properties"
layout="topleft"
name="Properties">
diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index cc16194c2d..17316ffda0 100644
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -1339,6 +1339,16 @@
function="ToggleControl"
parameter="RunMultipleThreads" />
</menu_item_check>
+ <menu_item_check
+ label="Use Plugin Read Thread"
+ name="Use Plugin Read Thread">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="PluginUseReadThread" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="PluginUseReadThread" />
+ </menu_item_check>
<menu_item_call
label="Clear Group Cache"
name="ClearGroupCache">
diff --git a/indra/newview/skins/default/xui/en/panel_adhoc_control_panel.xml b/indra/newview/skins/default/xui/en/panel_adhoc_control_panel.xml
index 28a6995186..e70abc0975 100644
--- a/indra/newview/skins/default/xui/en/panel_adhoc_control_panel.xml
+++ b/indra/newview/skins/default/xui/en/panel_adhoc_control_panel.xml
@@ -37,7 +37,7 @@
layout="topleft"
name="speakers_list"
opaque="false"
- show_info_btn="false"
+ show_info_btn="true"
show_profile_btn="false"
show_speaking_indicator="false"
width="147" />
diff --git a/indra/newview/skins/default/xui/en/panel_body_parts_list_item.xml b/indra/newview/skins/default/xui/en/panel_body_parts_list_item.xml
new file mode 100644
index 0000000000..115964e5f2
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_body_parts_list_item.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ follows="top|right|left"
+ height="22"
+ layout="topleft"
+ left="0"
+ name="wearable_item"
+ top="0"
+ width="380">
+ <icon
+ follows="top|right|left"
+ height="20"
+ image_name="ListItem_Over"
+ layout="topleft"
+ left="0"
+ name="hovered_icon"
+ top="0"
+ visible="false"
+ width="380" />
+ <icon
+ height="20"
+ follows="top|right|left"
+ image_name="ListItem_Select"
+ layout="topleft"
+ left="0"
+ name="selected_icon"
+ top="0"
+ visible="false"
+ width="380" />
+ <icon
+ height="16"
+ follows="top|left"
+ image_name="Inv_Object"
+ layout="topleft"
+ left="0"
+ name="item_icon"
+ top="2"
+ width="16" />
+ <text
+ follows="left|right"
+ height="16"
+ layout="topleft"
+ left_pad="5"
+ allow_html="false"
+ use_ellipses="true"
+ name="item_name"
+ text_color="white"
+ top="4"
+ value="..."
+ width="359" />
+ <icon
+ name="btn_lock"
+ layout="topleft"
+ follows="top|right"
+ image_name="Lock2"
+ top="0"
+ left="0"
+ height="20"
+ width="20"
+ tab_stop="false" />
+ <button
+ name="btn_edit"
+ layout="topleft"
+ follows="top|right"
+ image_unselected="Icon_Gear_Background"
+ image_selected="Icon_Gear_Background"
+ top="0"
+ left_pad="3"
+ height="20"
+ width="20"
+ tab_stop="false" />
+ <panel
+ background_visible="true"
+ bg_alpha_color="0.4 0.4 0.4 1.0"
+ bottom="0"
+ follows="left|right|top"
+ height="1"
+ layout="bottomleft"
+ left="0"
+ name="wearable_type_separator_panel"
+ width="380"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_bodyparts_list_button_bar.xml b/indra/newview/skins/default/xui/en/panel_bodyparts_list_button_bar.xml
new file mode 100644
index 0000000000..9d19b89a61
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_bodyparts_list_button_bar.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+
+<panel
+ follows="left|right|top"
+ height="35"
+ layout="topleft"
+ left="0"
+ name="clothing_list_button_bar_panel"
+ top="0"
+ visible="true"
+ width="300">
+ <button
+ follows="top|left"
+ height="25"
+ image_hover_unselected="Toolbar_Middle_Over"
+ image_selected="Toolbar_Middle_Selected"
+ image_unselected="Toolbar_Middle_Off"
+ label="Switch"
+ layout="topleft"
+ left="5"
+ name="switch_btn"
+ top="5"
+ width="45" />
+ <button
+ follows="top|right"
+ height="25"
+ image_hover_unselected="Toolbar_Middle_Over"
+ image_selected="Toolbar_Middle_Selected"
+ image_unselected="Toolbar_Middle_Off"
+ label="Shop >"
+ layout="topleft"
+ right="-5"
+ name="bodyparts_shop_btn"
+ top="5"
+ width="61" />
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_clothing_list_button_bar.xml b/indra/newview/skins/default/xui/en/panel_clothing_list_button_bar.xml
new file mode 100644
index 0000000000..2359719c2a
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_clothing_list_button_bar.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+
+<panel
+ follows="left|right|top"
+ height="35"
+ layout="topleft"
+ left="0"
+ name="clothing_list_button_bar_panel"
+ top="0"
+ visible="true"
+ width="500">
+ <button
+ follows="top|left"
+ height="25"
+ image_hover_unselected="Toolbar_Middle_Over"
+ image_selected="Toolbar_Middle_Selected"
+ image_unselected="Toolbar_Middle_Off"
+ is_toggle="true"
+ label="Add +"
+ layout="topleft"
+ left="5"
+ name="add_btn"
+ top="5"
+ width="45" />
+ <button
+ follows="top|right"
+ height="25"
+ image_hover_unselected="Toolbar_Middle_Over"
+ image_selected="Toolbar_Middle_Selected"
+ image_unselected="Toolbar_Middle_Off"
+ label="Shop >"
+ layout="topleft"
+ right="-5"
+ name="clothing_shop_btn"
+ top="5"
+ width="61" />
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_clothing_list_item.xml b/indra/newview/skins/default/xui/en/panel_clothing_list_item.xml
new file mode 100644
index 0000000000..7cc9c46c08
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_clothing_list_item.xml
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ follows="top|right|left"
+ height="23"
+ layout="topleft"
+ left="0"
+ name="wearable_item"
+ top="0"
+ width="380">
+ <icon
+ follows="top|right|left"
+ height="20"
+ image_name="ListItem_Over"
+ layout="topleft"
+ left="0"
+ name="hovered_icon"
+ top="0"
+ visible="false"
+ width="380" />
+ <icon
+ height="20"
+ follows="top|right|left"
+ image_name="ListItem_Select"
+ layout="topleft"
+ left="0"
+ name="selected_icon"
+ top="0"
+ visible="false"
+ width="380" />
+ <button
+ name="btn_delete"
+ layout="topleft"
+ follows="top|left"
+ image_unselected="Toast_CloseBtn"
+ image_selected="Toast_CloseBtn"
+ top="0"
+ left="0"
+ height="20"
+ width="20"
+ tab_stop="false" />
+ <icon
+ height="16"
+ follows="top|left"
+ image_name="Inv_Object"
+ layout="topleft"
+ left_pad="3"
+ name="item_icon"
+ top="2"
+ width="16" />
+ <text
+ follows="left|right"
+ height="16"
+ layout="topleft"
+ left_pad="5"
+ allow_html="false"
+ use_ellipses="true"
+ name="item_name"
+ text_color="white"
+ top="4"
+ value="..."
+ width="359" />
+ <button
+ name="btn_move_up"
+ layout="topleft"
+ follows="top|right"
+ image_unselected="Movement_Up_Off"
+ image_selected="Movement_Up_Off"
+ top="0"
+ left="0"
+ height="20"
+ width="20"
+ tab_stop="false" />
+ <button
+ name="btn_move_down"
+ layout="topleft"
+ follows="top|right"
+ image_unselected="Movement_Down_Off"
+ image_selected="Movement_Down_Off"
+ top="0"
+ left_pad="3"
+ height="20"
+ width="20"
+ tab_stop="false" />
+ <icon
+ name="btn_lock"
+ layout="topleft"
+ follows="top|right"
+ image_name="Lock2"
+ top="0"
+ left_pad="3"
+ height="20"
+ width="20" />
+ <button
+ name="btn_edit"
+ layout="topleft"
+ follows="top|right"
+ image_unselected="Icon_Gear_Background"
+ image_selected="Icon_Gear_Background"
+ top="0"
+ left_pad="3"
+ height="20"
+ width="20"
+ tab_stop="false" />
+ <panel
+ background_visible="true"
+ bg_alpha_color="0.4 0.4 0.4 1.0"
+ bottom="0"
+ follows="left|right|top"
+ height="1"
+ layout="bottomleft"
+ left="0"
+ name="wearable_type_separator_panel"
+ visible="false"
+ width="380"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_cof_wearables.xml b/indra/newview/skins/default/xui/en/panel_cof_wearables.xml
index 01c7ae61d2..86b9ea6e14 100644
--- a/indra/newview/skins/default/xui/en/panel_cof_wearables.xml
+++ b/indra/newview/skins/default/xui/en/panel_cof_wearables.xml
@@ -3,22 +3,22 @@
background_visible="true"
bg_alpha_color="DkGray"
border="false"
- bottom="0"
follows="all"
height="200"
left="0"
name="cof_wearables"
- width="313">
+ width="311">
<accordion
follows="all"
- height="373"
+ height="200"
layout="topleft"
- left="3"
+ left="0"
+ single_expansion="true"
top="0"
name="cof_wearables_accordion"
background_visible="true"
bg_alpha_color="DkGray2"
- width="307">
+ width="311">
<accordion_tab
layout="topleft"
name="tab_attachments"
@@ -26,40 +26,82 @@
<flat_list_view
allow_select="true"
follows="all"
- height="150"
+ height="10"
layout="topleft"
left="0"
name="list_attachments"
top="0"
- width="307" />
+ width="311" />
</accordion_tab>
<accordion_tab
layout="topleft"
name="tab_clothing"
title="Clothing">
- <flat_list_view
- allow_select="true"
+
+ <!-- *NOTE there should be no any gaps between the button bar and the list -
+ accordiong-list adaptor won't employ them while calculating new height when the size of the list changes -->
+ <panel
+ background_visible="false"
+ class="accordion_list_adaptor"
follows="all"
- height="150"
+ height="45"
layout="topleft"
left="0"
- name="list_clothing"
+ name="button_bar_adaptor"
top="0"
- width="307" />
+ width="311">
+ <panel
+ bevel="none"
+ filename="panel_clothing_list_button_bar.xml"
+ height="35"
+ name="button_bar"
+ top="0"
+ width="311" />
+ <flat_list_view
+ allow_select="true"
+ follows="all"
+ height="10"
+ layout="topleft"
+ left="0"
+ name="list_clothing"
+ top_pad="0"
+ width="311" />
+ </panel>
</accordion_tab>
<accordion_tab
layout="topleft"
name="tab_body_parts"
title="Body Parts">
- <flat_list_view
- allow_select="true"
+
+ <!-- *NOTE there should be no any gaps between the button bar and the list -
+ accordiong-list adaptor won't employ them while calculating new height when the size of the list changes -->
+ <panel
+ background_visible="false"
+ class="accordion_list_adaptor"
follows="all"
- height="150"
+ height="45"
layout="topleft"
left="0"
- name="list_body_parts"
+ name="button_bar_adaptor"
top="0"
- width="307" />
+ width="311">
+ <panel
+ bevel="none"
+ filename="panel_bodyparts_list_button_bar.xml"
+ height="35"
+ name="button_bar"
+ top="0"
+ width="311"/>
+ <flat_list_view
+ allow_select="true"
+ follows="all"
+ height="10"
+ layout="topleft"
+ left="0"
+ name="list_body_parts"
+ top_pad="0"
+ width="311" />
+ </panel>
</accordion_tab>
</accordion>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_dummy_clothing_list_item.xml b/indra/newview/skins/default/xui/en/panel_dummy_clothing_list_item.xml
new file mode 100644
index 0000000000..c5a60ced88
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_dummy_clothing_list_item.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ follows="top|right|left"
+ height="22"
+ layout="topleft"
+ left="0"
+ name="dummy_clothing_item"
+ top="0"
+ width="380">
+ <icon
+ follows="top|right|left"
+ height="20"
+ image_name="ListItem_Over"
+ layout="topleft"
+ left="0"
+ name="hovered_icon"
+ top="0"
+ visible="false"
+ width="380" />
+ <icon
+ height="20"
+ follows="top|right|left"
+ image_name="ListItem_Select"
+ layout="topleft"
+ left="0"
+ name="selected_icon"
+ top="0"
+ visible="false"
+ width="380" />
+ <icon
+ height="16"
+ color="0.75 0.75 0.75 1"
+ follows="top|left"
+ image_name="Inv_Object"
+ layout="topleft"
+ left="20"
+ name="item_icon"
+ top="2"
+ width="16" />
+ <text
+ follows="left|right"
+ height="16"
+ layout="topleft"
+ left_pad="5"
+ allow_html="false"
+ use_ellipses="true"
+ name="item_name"
+ text_color="LtGray_50"
+ top="4"
+ value="..."
+ width="359" />
+ <button
+ name="btn_add"
+ layout="topleft"
+ follows="top|right"
+ label="+"
+ top="0"
+ left="0"
+ height="20"
+ width="20"
+ tab_stop="false" />
+ <panel
+ background_visible="true"
+ bg_alpha_color="0.4 0.4 0.4 1.0"
+ bottom="0"
+ follows="left|right|top"
+ height="1"
+ layout="bottomleft"
+ left="0"
+ name="wearable_type_separator_panel"
+ width="380"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_edit_alpha.xml b/indra/newview/skins/default/xui/en/panel_edit_alpha.xml
index 1d0c0a02b0..cfcdc25f81 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_alpha.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_alpha.xml
@@ -32,7 +32,10 @@
name="Lower Alpha"
tool_tip="Click to choose a picture"
top="10"
- width="94" />
+ width="94" >
+ <texture_picker.commit_callback
+ function="TexturePicker.Commit" />
+ </texture_picker>
<check_box
control_name="LowerAlphaTextureInvisible"
follows="left"
@@ -53,7 +56,10 @@
name="Upper Alpha"
tool_tip="Click to choose a picture"
top="10"
- width="94" />
+ width="94">
+ <texture_picker.commit_callback
+ function="TexturePicker.Commit" />
+ </texture_picker>
<check_box
control_name="UpperAlphaTextureInvisible"
follows="left"
@@ -74,7 +80,10 @@
name="Head Alpha"
tool_tip="Click to choose a picture"
top="120"
- width="94" />
+ width="94" >
+ <texture_picker.commit_callback
+ function="TexturePicker.Commit" />
+ </texture_picker>
<check_box
control_name="HeadAlphaTextureInvisible"
follows="left"
@@ -95,7 +104,10 @@
name="Eye Alpha"
tool_tip="Click to choose a picture"
top="120"
- width="94" />
+ width="94" >
+ <texture_picker.commit_callback
+ function="TexturePicker.Commit" />
+ </texture_picker>
<check_box
control_name="Eye AlphaTextureInvisible"
follows="left"
@@ -116,7 +128,10 @@
name="Hair Alpha"
tool_tip="Click to choose a picture"
top="230"
- width="94" />
+ width="94" >
+ <texture_picker.commit_callback
+ function="TexturePicker.Commit" />
+ </texture_picker>
<check_box
control_name="HairAlphaTextureInvisible"
follows="left"
diff --git a/indra/newview/skins/default/xui/en/panel_edit_eyes.xml b/indra/newview/skins/default/xui/en/panel_edit_eyes.xml
index f11ef43c76..4149a0b06f 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_eyes.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_eyes.xml
@@ -32,8 +32,11 @@
name="Iris"
tool_tip="Click to choose a picture"
top="10"
- width="64" />
- </panel>
+ width="64" >
+ <texture_picker.commit_callback
+ function="TexturePicker.Commit" />
+ </texture_picker>
+ </panel>
<panel
border="false"
bg_alpha_color="DkGray2"
diff --git a/indra/newview/skins/default/xui/en/panel_edit_gloves.xml b/indra/newview/skins/default/xui/en/panel_edit_gloves.xml
index 7d8eed5085..94fd2f9080 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_gloves.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_gloves.xml
@@ -32,7 +32,10 @@
name="Fabric"
tool_tip="Click to choose a picture"
top="10"
- width="64" />
+ width="64" >
+ <texture_picker.commit_callback
+ function="TexturePicker.Commit" />
+ </texture_picker>
<color_swatch
can_apply_immediately="true"
follows="left|top"
@@ -43,9 +46,12 @@
name="Color/Tint"
tool_tip="Click to open color picker"
top="10"
- width="64" />
- </panel>
- <panel
+ width="64" >
+ <color_swatch.commit_callback
+ function="ColorSwatch.Commit" />
+ </color_swatch>
+ </panel>
+ <panel
border="false"
bg_alpha_color="DkGray2"
bg_opaque_color="DkGray2"
diff --git a/indra/newview/skins/default/xui/en/panel_edit_hair.xml b/indra/newview/skins/default/xui/en/panel_edit_hair.xml
index cd81aa2c4f..9b60e83387 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_hair.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_hair.xml
@@ -32,8 +32,11 @@
name="Texture"
tool_tip="Click to choose a picture"
top="10"
- width="64" />
- </panel>
+ width="64" >
+ <texture_picker.commit_callback
+ function="TexturePicker.Commit" />
+ </texture_picker>
+ </panel>
<panel
border="false"
bg_alpha_color="DkGray2"
diff --git a/indra/newview/skins/default/xui/en/panel_edit_jacket.xml b/indra/newview/skins/default/xui/en/panel_edit_jacket.xml
index ba03865937..248ae9fe04 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_jacket.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_jacket.xml
@@ -32,7 +32,10 @@
name="Upper Fabric"
tool_tip="Click to choose a picture"
top="10"
- width="74" />
+ width="74" >
+ <texture_picker.commit_callback
+ function="TexturePicker.Commit" />
+ </texture_picker>
<texture_picker
can_apply_immediately="true"
default_image_name="Default"
@@ -44,7 +47,10 @@
name="Lower Fabric"
tool_tip="Click to choose a picture"
top="10"
- width="74" />
+ width="74" >
+ <texture_picker.commit_callback
+ function="TexturePicker.Commit" />
+ </texture_picker>
<color_swatch
can_apply_immediately="true"
follows="left|top"
@@ -55,7 +61,10 @@
name="Color/Tint"
tool_tip="Click to open color picker"
top="10"
- width="74" />
+ width="74" >
+ <color_swatch.commit_callback
+ function="ColorSwatch.Commit" />
+ </color_swatch>
</panel>
<panel
border="false"
diff --git a/indra/newview/skins/default/xui/en/panel_edit_pants.xml b/indra/newview/skins/default/xui/en/panel_edit_pants.xml
index 5b02d1f968..3ed1df2399 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_pants.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_pants.xml
@@ -32,7 +32,10 @@
name="Fabric"
tool_tip="Click to choose a picture"
top="10"
- width="64" />
+ width="64" >
+ <texture_picker.commit_callback
+ function="TexturePicker.Commit" />
+ </texture_picker>
<color_swatch
can_apply_immediately="true"
follows="left|top"
@@ -43,7 +46,10 @@
name="Color/Tint"
tool_tip="Click to open color picker"
top="10"
- width="64" />
+ width="64" >
+ <color_swatch.commit_callback
+ function="ColorSwatch.Commit" />
+ </color_swatch>
</panel>
<panel
border="false"
diff --git a/indra/newview/skins/default/xui/en/panel_edit_shirt.xml b/indra/newview/skins/default/xui/en/panel_edit_shirt.xml
index 7da8de4c0b..e088aa05ac 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_shirt.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_shirt.xml
@@ -32,7 +32,10 @@
name="Fabric"
tool_tip="Click to choose a picture"
top="10"
- width="64" />
+ width="64" >
+ <texture_picker.commit_callback
+ function="TexturePicker.Commit" />
+ </texture_picker>
<color_swatch
can_apply_immediately="true"
follows="left|top"
@@ -43,7 +46,10 @@
name="Color/Tint"
tool_tip="Click to open color picker"
top="10"
- width="64" />
+ width="64" >
+ <color_swatch.commit_callback
+ function="ColorSwatch.Commit" />
+ </color_swatch>
</panel>
<panel
border="false"
diff --git a/indra/newview/skins/default/xui/en/panel_edit_shoes.xml b/indra/newview/skins/default/xui/en/panel_edit_shoes.xml
index 84fe26f7f6..e079047a86 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_shoes.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_shoes.xml
@@ -32,7 +32,10 @@
name="Fabric"
tool_tip="Click to choose a picture"
top="10"
- width="64" />
+ width="64" >
+ <texture_picker.commit_callback
+ function="TexturePicker.Commit" />
+ </texture_picker>
<color_swatch
can_apply_immediately="true"
follows="left|top"
@@ -43,7 +46,10 @@
name="Color/Tint"
tool_tip="Click to open color picker"
top="10"
- width="64" />
+ width="64" >
+ <color_swatch.commit_callback
+ function="ColorSwatch.Commit" />
+ </color_swatch>
</panel>
<panel
border="false"
diff --git a/indra/newview/skins/default/xui/en/panel_edit_skin.xml b/indra/newview/skins/default/xui/en/panel_edit_skin.xml
index b5c8c95473..9158685c40 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_skin.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_skin.xml
@@ -33,7 +33,10 @@
name="Head Tattoos"
tool_tip="Click to choose a picture"
top="10"
- width="74" />
+ width="74" >
+ <texture_picker.commit_callback
+ function="TexturePicker.Commit" />
+ </texture_picker>
<texture_picker
allow_no_texture="true"
can_apply_immediately="true"
@@ -46,7 +49,10 @@
name="Upper Tattoos"
tool_tip="Click to choose a picture"
top="10"
- width="74" />
+ width="74" >
+ <texture_picker.commit_callback
+ function="TexturePicker.Commit" />
+ </texture_picker>
<texture_picker
allow_no_texture="true"
can_apply_immediately="true"
@@ -59,8 +65,11 @@
name="Lower Tattoos"
tool_tip="Click to choose a picture"
top="10"
- width="74" />
- </panel>
+ width="74" >
+ <texture_picker.commit_callback
+ function="TexturePicker.Commit" />
+ </texture_picker>
+ </panel>
<panel
border="false"
bg_alpha_color="DkGray2"
diff --git a/indra/newview/skins/default/xui/en/panel_edit_skirt.xml b/indra/newview/skins/default/xui/en/panel_edit_skirt.xml
index 16f6950bd5..87f3270b31 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_skirt.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_skirt.xml
@@ -32,7 +32,10 @@
name="Fabric"
tool_tip="Click to choose a picture"
top="10"
- width="64" />
+ width="64" >
+ <texture_picker.commit_callback
+ function="TexturePicker.Commit" />
+ </texture_picker>
<color_swatch
can_apply_immediately="true"
follows="left|top"
@@ -43,7 +46,10 @@
name="Color/Tint"
tool_tip="Click to open color picker"
top="10"
- width="64" />
+ width="64" >
+ <color_swatch.commit_callback
+ function="ColorSwatch.Commit" />
+ </color_swatch>
</panel>
<panel
border="false"
diff --git a/indra/newview/skins/default/xui/en/panel_edit_socks.xml b/indra/newview/skins/default/xui/en/panel_edit_socks.xml
index e4f916703b..5bd99969a2 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_socks.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_socks.xml
@@ -32,7 +32,10 @@
name="Fabric"
tool_tip="Click to choose a picture"
top="10"
- width="64" />
+ width="64" >
+ <texture_picker.commit_callback
+ function="TexturePicker.Commit" />
+ </texture_picker>
<color_swatch
can_apply_immediately="true"
follows="left|top"
@@ -43,7 +46,10 @@
name="Color/Tint"
tool_tip="Click to open color picker"
top="10"
- width="64" />
+ width="64" >
+ <color_swatch.commit_callback
+ function="ColorSwatch.Commit" />
+ </color_swatch>
</panel>
<panel
border="false"
diff --git a/indra/newview/skins/default/xui/en/panel_edit_underpants.xml b/indra/newview/skins/default/xui/en/panel_edit_underpants.xml
index d43497c943..bbe5230341 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_underpants.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_underpants.xml
@@ -32,7 +32,10 @@
name="Fabric"
tool_tip="Click to choose a picture"
top="10"
- width="64" />
+ width="64" >
+ <texture_picker.commit_callback
+ function="TexturePicker.Commit" />
+ </texture_picker>
<color_swatch
can_apply_immediately="true"
follows="left|top"
@@ -43,7 +46,10 @@
name="Color/Tint"
tool_tip="Click to open color picker"
top="10"
- width="64" />
+ width="64" >
+ <color_swatch.commit_callback
+ function="ColorSwatch.Commit" />
+ </color_swatch>
</panel>
<panel
border="false"
diff --git a/indra/newview/skins/default/xui/en/panel_edit_undershirt.xml b/indra/newview/skins/default/xui/en/panel_edit_undershirt.xml
index 45c6ef4526..a79c1b9eaa 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_undershirt.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_undershirt.xml
@@ -32,7 +32,10 @@
name="Fabric"
tool_tip="Click to choose a picture"
top="10"
- width="64" />
+ width="64" >
+ <texture_picker.commit_callback
+ function="TexturePicker.Commit" />
+ </texture_picker>
<color_swatch
can_apply_immediately="true"
follows="left|top"
@@ -43,7 +46,10 @@
name="Color/Tint"
tool_tip="Click to open Color Picker"
top="10"
- width="64" />
+ width="64" >
+ <color_swatch.commit_callback
+ function="ColorSwatch.Commit" />
+ </color_swatch>
</panel>
<panel
border="false"
diff --git a/indra/newview/skins/default/xui/en/panel_group_control_panel.xml b/indra/newview/skins/default/xui/en/panel_group_control_panel.xml
index aa7d621e4c..c1dc2aaaf7 100644
--- a/indra/newview/skins/default/xui/en/panel_group_control_panel.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_control_panel.xml
@@ -36,7 +36,7 @@
layout="topleft"
name="speakers_list"
opaque="false"
- show_info_btn="false"
+ show_info_btn="true"
show_profile_btn="false"
show_speaking_indicator="false"
width="145" />
diff --git a/indra/newview/skins/default/xui/en/panel_main_inventory.xml b/indra/newview/skins/default/xui/en/panel_main_inventory.xml
index 27d66945d9..46625144e1 100644
--- a/indra/newview/skins/default/xui/en/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/en/panel_main_inventory.xml
@@ -3,7 +3,7 @@
background_visible="true"
default_tab_group="1"
follows="all"
- height="408"
+ height="423"
label="Things"
layout="topleft"
min_height="350"
@@ -48,7 +48,7 @@
left="10"
max_length="300"
name="inventory search editor"
- top="3"
+ top="18"
width="303" />
<tab_container
bg_alpha_color="DkGray"
diff --git a/indra/newview/skins/default/xui/en/panel_outfit_edit.xml b/indra/newview/skins/default/xui/en/panel_outfit_edit.xml
index 73181392c9..6a212306d6 100644
--- a/indra/newview/skins/default/xui/en/panel_outfit_edit.xml
+++ b/indra/newview/skins/default/xui/en/panel_outfit_edit.xml
@@ -69,19 +69,21 @@
<!-- "HEADER WITH ICON, STATUS TEXT AND OUTFIT NAME" -->
<panel
+ background_visible="true"
+ bg_alpha_color="DkGray2"
bevel_style="none"
follows="top|left|right"
- height="45"
+ height="40"
label="bottom_panel"
layout="topleft"
- left="5"
+ left="6"
name="header_panel"
top_pad="5"
- width="300">
+ width="311">
<icon
follows="left|top"
height="40"
- image_name="t-shirt-image"
+ image_name="TabIcon_Appearance_Off"
left="2"
mouse_opaque="false"
name="outfit_icon"
@@ -92,35 +94,35 @@
<panel
bevel_style="none"
follows="top|right"
- height="40"
+ height="38"
label="bottom_panel"
layout="topleft"
- left_pad="10"
+ left_pad="5"
name="outfit_name_and_status"
top="2"
- width="200">
+ width="270">
<text
follows="top|left|right"
- font="SansSerif"
+ font="SansSerifSmallBold"
height="13"
layout="topleft"
name="status"
- text_color="Green"
- top="0"
- value="Editing..."
+ text_color="EmphasisColor"
+ top="2"
+ value="Now editing..."
use_ellipses="true"
- width="275" />
+ width="270" />
<text
follows="bottom|left|right"
- font="SansSerifHugeBold"
+ font="SansSerifLargeBold"
height="26"
layout="topleft"
name="curr_outfit_name"
text_color="LtGray"
- top_pad="0"
+ top_pad="2"
value="[Current Outfit]"
use_ellipses="true"
- width="275" />
+ width="270" />
</panel>
</panel>
@@ -130,22 +132,21 @@
animate="false"
default_tab_group="2"
follows="all"
- height="470"
- width="300"
+ height="495"
+ width="313"
layout="topleft"
orientation="vertical"
name="im_panels"
tab_group="1"
- top_pad="10"
+ top_pad="5"
left="5">
<layout_panel
layout="topleft"
- follows="left|top|right"
height="220"
label="IM Control Panel"
min_height="100"
name="outfit_wearables_panel"
- width="300"
+ width="313"
auto_resize="true"
user_resize="true">
@@ -157,11 +158,12 @@
follows="left|top|right|bottom"
height="193"
layout="topleft"
- left="0"
+ left="1"
name="cof_wearables_list"
top="0"
- width="300" />
+ width="311" />
+ <!-- Button bar -->
<panel
background_visible="true"
bevel_style="none"
@@ -171,8 +173,8 @@
layout="topleft"
left="0"
name="edit_panel"
- top_pad="0"
- width="300">
+ top="193"
+ width="313">
<button
follows="bottom|left"
height="25"
@@ -185,67 +187,14 @@
name="gear_menu_btn"
top="1"
width="31" />
- <button
- is_toggle="true"
- follows="bottom|left"
- height="25"
- image_hover_unselected="Toolbar_Middle_Over"
- image_overlay="AddItem_Off"
- image_selected="Toolbar_Middle_Selected"
- image_unselected="Toolbar_Middle_Off"
- layout="topleft"
- left_pad="1"
- name="add_btn"
- top="1"
- width="31" />
- <button
- follows="bottom|left"
- height="25"
- image_hover_unselected="Toolbar_Middle_Over"
- image_overlay=""
- image_selected="Toolbar_Middle_Selected"
- image_unselected="Toolbar_Middle_Off"
- layout="topleft"
- left_pad="1"
- name="new_btn"
- top="1"
- width="31" />
- <button
- follows="bottom|left"
- height="25"
- image_hover_unselected="Toolbar_Middle_Over"
- image_overlay="Movement_Forward_On"
- image_selected="Toolbar_Middle_Selected"
- image_unselected="Toolbar_Middle_Off"
- layout="topleft"
- left_pad="1"
- name="move_closer_btn"
- top="1"
- width="31" />
- <button
- follows="bottom|left"
+ <icon
+ follows="bottom|left|right"
height="25"
- image_hover_unselected="Toolbar_Middle_Over"
- image_overlay="Movement_Backward_On"
- image_selected="Toolbar_Middle_Selected"
- image_unselected="Toolbar_Middle_Off"
+ image_name="Toolbar_Right_Off"
layout="topleft"
left_pad="1"
- name="move_further_btn"
- top="1"
- width="31" />
- <button
- follows="bottom|right"
- height="25"
- image_hover_unselected="Toolbar_Middle_Over"
- image_overlay="TrashItem_Off"
- image_selected="Toolbar_Middle_Selected"
- image_unselected="Toolbar_Middle_Off"
- layout="topleft"
- name="remove_from_outfit_btn"
- right="-1"
- top="1"
- width="31" />
+ name="dummy_right_icon"
+ width="281" />
</panel>
</layout_panel>
@@ -256,7 +205,7 @@
height="210"
min_height="210"
name="add_wearables_panel"
- width="300"
+ width="313"
tab_group="2"
user_resize="true"
visible="false">
@@ -448,25 +397,28 @@
follows="left|right|bottom"
height="30"
layout="topleft"
- left="5"
- top_pad="10"
+ left="4"
+ top_pad="2"
name="save_revert_button_bar"
width="300">
<button
- follows="bottom|left|right"
+ follows="bottom|left"
height="23"
label="Save"
left="0"
layout="topleft"
name="save_btn"
- width="145" />
+ top="0"
+ width="155" />
<button
- follows="bottom|right"
+ follows="bottom|left"
height="23"
name="save_flyout_btn"
label=""
+ layout="topleft"
left_pad="-20"
tab_stop="false"
+ top="0"
image_selected="SegmentedBtn_Right_Selected_Press"
image_unselected="SegmentedBtn_Right_Off"
image_pressed="SegmentedBtn_Right_Press"
@@ -476,10 +428,11 @@
<button
follows="bottom|left|right"
height="23"
- left_pad="15"
+ left_pad="12"
label="Revert"
layout="topleft"
name="revert_btn"
- width="145" />
+ top="0"
+ width="147" />
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml
index b8ad278da7..9e59651bd1 100644
--- a/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml
@@ -5,7 +5,7 @@
background_opaque="true"
background_visible="true"
follows="all"
- height="570"
+ height="575"
label="Things"
layout="topleft"
min_height="350"
@@ -14,7 +14,7 @@
border="false">
<tab_container
follows="all"
- height="501"
+ height="509"
layout="topleft"
left="7"
name="appearance_tabs"
@@ -22,6 +22,7 @@
tab_height="30"
tab_position="top"
halign="center"
+ top="8"
width="312">
<panel
class="outfits_list"
@@ -50,8 +51,8 @@
</tab_container>
<panel
background_visible="true"
- follows="bottom|left"
- height="73"
+ follows="bottom|left|right"
+ height="57"
layout="topleft"
left="9"
top_pad="-1"
@@ -72,7 +73,7 @@
top="1"
width="31" />
<icon
- follows="bottom|left"
+ follows="bottom|left|right"
height="25"
image_name="Toolbar_Middle_Off"
layout="topleft"
@@ -82,7 +83,7 @@
/>
<dnd_button
- follows="bottom|left"
+ follows="bottom|right"
height="25"
image_hover_unselected="Toolbar_Right_Over"
image_overlay="TrashItem_Off"
@@ -104,7 +105,7 @@
left="0"
width="153" />
<button
- follows="bottom|right"
+ follows="bottom|left|right"
height="23"
label="Wear"
layout="topleft"
@@ -112,16 +113,6 @@
left_pad="3"
tool_tip="Wear selected outfit"
width="152" />
- <button
- follows="bottom|left"
- height="23"
- label="Edit Outfit"
- layout="topleft"
- right="-140"
- name="edit_current_outfit_btn"
- top="26"
- visible="false"
- width="50" />
</panel>
</panel> \ No newline at end of file
diff --git a/indra/newview/skins/default/xui/en/panel_people.xml b/indra/newview/skins/default/xui/en/panel_people.xml
index 066ea3be6e..7e212c9383 100644
--- a/indra/newview/skins/default/xui/en/panel_people.xml
+++ b/indra/newview/skins/default/xui/en/panel_people.xml
@@ -490,6 +490,7 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M
label="Share"
layout="topleft"
name="share_btn"
+ tool_tip="Share an inventory item"
width="62" />
<button
follows="bottom|left"
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml
index 3ef16d2dec..ba967d3e2c 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml
@@ -330,7 +330,7 @@
<check_box
enabled="false"
height="16"
- label="Enable plain text chat history"
+ label="Enable plain text IM and chat history"
layout="topleft"
left_delta="0"
name="plain_text_chat_history"
diff --git a/indra/newview/skins/default/xui/en/sidepanel_appearance.xml b/indra/newview/skins/default/xui/en/sidepanel_appearance.xml
index 73650a19dc..e74c70789f 100644
--- a/indra/newview/skins/default/xui/en/sidepanel_appearance.xml
+++ b/indra/newview/skins/default/xui/en/sidepanel_appearance.xml
@@ -15,63 +15,85 @@ width="333">
<string
name="No Outfit"
value="No Outfit" />
+ <string
+ name="Unsaved Changes"
+ value="Unsaved changes" />
+ <string
+ name="Now Wearing"
+ value="Now wearing..." />
<panel
- left="0"
- top="0"
- follows="all"
+ background_opaque="true"
+ background_visible="true"
+ bg_opaque_color="DkGray2"
+ left="10"
+ top="5"
+ follows="left|top|right"
layout="topleft"
- width="330"
+ width="303"
height="33"
name="panel_currentlook"
>
<button
follows="left|top"
- top="0" width="1" height="1"
+ left="205" top="7" width="20" height="20"
+ label="E"
layout="topleft"
- left="0"
- name="editappearance_btn" />
+ name="editappearance_btn"
+ visible="false" />
<button
follows="left|top"
- top="0" width="1" height="1"
+ left="235" top="7" width="20" height="20"
+ label="O"
layout="topleft"
- left="0"
- name="openoutfit_btn" />
+ name="openoutfit_btn"
+ visible="false" />
<icon
follows="top|left"
- height="24"
+ height="32"
image_name="TabIcon_Appearance_Off"
name="outfit_icon"
mouse_opaque="false"
visible="true"
- left="9"
+ left="0"
top="0"
- width="24" />
+ width="32" />
<text
- font="SansSerifHugeBold"
+ font="SansSerifSmallBold"
+ text_color="EmphasisColor"
+ width="300"
+ height="10"
+ follows="top|left"
+ layout="topleft"
+ left="35"
+ top="3"
+ mouse_opaque="false"
+ name="currentlook_status" >
+ (Status)
+ </text>
+ <text
+ font="SansSerifLargeBold"
height="20"
- left_pad="5"
- text_color="LtGray"
- top="0"
+ left="35"
+ text_color="White"
+ top="15"
use_ellipses="true"
- width="305"
+ width="230"
follows="top|left"
- word_wrap="true"
+ word_wrap="false"
mouse_opaque="false"
name="currentlook_name">
MyOutfit With a really Long Name like MOOSE
</text>
- <text
- font="SansSerifSmall"
- text_color="White_50"
- width="300"
- height="1"
- follows="top|left"
+ <button
+ follows="left|top"
+ height="20"
+ image_overlay="windows/Icon_Gear_Over.png"
+ label=""
layout="topleft"
- top_pad="5"
- mouse_opaque="false"
- name="currentlook_title" >
- (unsaved)
- </text>
+ left="265"
+ name="edit_outfit_btn"
+ top="7"
+ width="30" />
</panel>
<filter_editor
height="23"
@@ -87,7 +109,7 @@ width="333">
class="panel_outfits_inventory"
filename="panel_outfits_inventory.xml"
name="panel_outfits_inventory"
- height="505"
+ height="493"
min_height="410"
width="320"
left="0"
@@ -106,7 +128,7 @@ width="333">
<panel
class="panel_outfit_edit"
filename="panel_outfit_edit.xml"
- height="550"
+ height="565"
follows="all"
layout="topleft"
left="5"
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index b0e43e72ed..f544449d02 100644
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -1802,6 +1802,20 @@ Clears (deletes) the media and all params from the given face.
<string name="alpha">Alpha</string>
<string name="tattoo">Tattoo</string>
<string name="invalid">invalid</string>
+
+ <!-- Not Worn Wearable Types -->
+ <string name="shirt_not_worn">Shirt not worn</string>
+ <string name="pants_not_worn">Pants not worn</string>
+ <string name="shoes_not_worn">Shoes not worn</string>
+ <string name="socks_not_worn">Socks not worn</string>
+ <string name="jacket_not_worn">Jacket not worn</string>
+ <string name="gloves_not_worn">Gloves not worn</string>
+ <string name="undershirt_not_worn">Undershirt not worn</string>
+ <string name="underpants_not_worn">Underpants not worn</string>
+ <string name="skirt_not_worn">Skirt not worn</string>
+ <string name="alpha_not_worn">Alpha not worn</string>
+ <string name="tattoo_not_worn">Tattoo not worn</string>
+ <string name="invalid_not_worn">invalid</string>
<!-- Wearable List-->
<string name="NewWearable">New [WEARABLE_ITEM]</string>
@@ -2149,10 +2163,11 @@ Clears (deletes) the media and all params from the given face.
<string name="BusyModeResponseDefault">The Resident you messaged is in &apos;busy mode&apos; which means they have requested not to be disturbed. Your message will still be shown in their IM panel for later viewing.</string>
<!-- Mute -->
- <string name="MuteByName">(by name)</string>
+ <string name="MuteByName">(By name)</string>
<string name="MuteAgent">(Resident)</string>
- <string name="MuteObject">(object)</string>
- <string name="MuteGroup">(group)</string>
+ <string name="MuteObject">(Object)</string>
+ <string name="MuteGroup">(Group)</string>
+ <string name="MuteExternal">(External)</string>
<!-- Region/Estate Covenant -->
<string name="RegionNoCovenant">There is no Covenant provided for this Estate.</string>
@@ -2951,8 +2966,9 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<!-- voice calls -->
<string name="answered_call">Your call has been answered</string>
- <string name="started_call">Started a voice call</string>
- <string name="joined_call">Joined the voice call</string>
+ <string name="you_started_call">You started a voice call</string>
+ <string name="you_joined_call">You joined the voice call</string>
+ <string name="name_started_call">[NAME] started a voice call</string>
<string name="ringing-im">
Joining voice call...
diff --git a/indra/newview/skins/default/xui/es/floater_about.xml b/indra/newview/skins/default/xui/es/floater_about.xml
index cb1aa5eaa1..ebd0bdb3d7 100644
--- a/indra/newview/skins/default/xui/es/floater_about.xml
+++ b/indra/newview/skins/default/xui/es/floater_about.xml
@@ -43,19 +43,14 @@ Versión de Vivox: [VIVOX_VERSION]
</panel>
<panel label="Créditos" name="credits_panel">
<text_editor name="credits_editor">
- Te ofrecen Second Life Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Yang, T, Simone, Maestro, Scott, Charlene, Quixote, Amanda, Susan, Zed, Anne, Enkidu, Esbee, Joroan, Katelin, Roxie, Tay, Scarlet, Kevin, Johnny, Wolfgang, Andren, Bob, Howard, Merov, Rand, Ray, Michon, Newell, Galen, Dessie, Les y muchos otros.
+ Te ofrecen Second Life Philip, Tessa, Andrew, Cory, Ian, James, Phoenix, Ryan, Haney, Dan, Char, Ben, John, Tanya, Eddie, Richard, Mitch, Doug, Eric, Frank, Bruce, Aaron, Peter, Alice, Charlie, Debra, Eileen, Helen, Janet, Steffan, Steve, Tom, Mark, Hunter, Xenon, Burgess, Bill, Jim, Lee, Hamlet, Daniel, Jeff, Todd, Sarah, Tim, Stephanie, Colin, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Jack, Vektor, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Jesse, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Yuko, Makiko, Thomas, Harry, Seth, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Brad, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, Beez, Milo, Hermia, Red, Thrax, Gulliver, Joe, Sally, Paul, Jose, Rejean, Dore, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, Dustin, George, Del, Matthew, Cat, Jacqui, Adrian, Viola, Alfred, Noel, Irfan, Yool, Rika, Jane, Frontier, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Jeremy, JP, Jake, Anthony, Maurice, Madhavi, Leopard, Kyle, Joon, Bert, Belinda, Jon, Kristi, Bridie, Pramod, Socrates, Maria, Aric, Adreanne, Jay, Kari, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Colossus, Zen, BigPapi, Pastrami, Kurz, Mani, Neuro, Mel, Sardonyx, MJ, Rowan, Sgt, Elvis, Samuel, Leo, Bryan, Niko, Austin, Soft, Poppy, Rachel, Aki, Banzai, Alexa, Sue, Bender, CG, Angelo, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Rothman, Niall, Marin, Allison, Katie, Dawn, Dusty, Katt, Judy, Andrea, Ambroff, Infinity, Rico, Gail, Kalpana, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Maestro, Simone, Yang, T, Shannon, Nelson, Khanh, Scott, Courtney, Charlene, Quixote, Susan, Zed, Amanda, Katelin, Enkidu, Roxie, Esbee, JoRoan, Scarlet, Tay, Kevin, Wolfgang, Johnny, Ray, Andren, Merov, Bob, Rand, Howard, Callen, Heff, Galen, Newell, Dessie, Les, Michon, Jenelle, Geo, Siz, Shapiro, Pete, Calyle, Selene, Allen, Phoebe, Goldin, Kimmora, Dakota, Slaton, Lindquist, Zoey, Hari, Othello, Rohit, Sheldon, Petra, Viale, Gordon, Kaye, Pink, Ferny, Emerson, Davy, Bri, Chan, Juan, Robert, Terrence, Nathan, Carl, Ashley, JessieAnn, Huseby, Karina, Paris, Kurt, Rick, Lis, Kotler, Theeba, Lynx, Murphy, Doten, Taka, Norm, Jillian, Marcus, Mae, Novack, Esther, Perry, Dana, Ducot, Javier, Porter, Madison, Gecko, Dough, JR, Gisele, Crimp, Norie, Arch, Kimi, Fisher, Barbara, Jason, Peggy, Bernard, Jules, Leroy, Eva, Khederian, Campbell, Vogt, Masido, Karel, Torres, Lo, Breezer, Delby, Rountree, Anna, Servus, Rue, Itiaes, Chuck, Luna, Novella, Zaza, Wen, Gino, Lex, Cassandra, Limey, Nancy, Anukul, Silver, Brodesky, Jinsai, Squid, Gez, Rakesh, Ladan, Edelman, Marcet, Squire, Tatem, Tony, Jerm, Tia, Falcon, BK, Tiggs, Driscoll, Bacon, Timothee, Cru, Carmilla, Coyot, Webb, Kazu, Rudas, LJ, Sea, Ali Wallace, Bewest, Pup, Drub, Dragon, Inoshiro, Byron, Rhett, Xandix, Aimee, Fredrik, Thor, Teddy, Baron, Nelly, Ghengis, Epic, Eli, Stone, Grapes, Irie, Prep, Scobu, Valerie, Alain, y muchos otros.
-Gracias a los siguientes Residentes por ayudarnos a estar seguros de que, hoy por hoy, esta es la mejor versión: (pendiente)
+Gracias a estos Residentes por ayudarnos a estar seguros de que, con todo, esta es la mejor versión: Drew Dwi, Zai Lynch, Latif Khalifa, Ellla McMahon, Harleen Gretzky, Squirrel Wood, Malarthi Behemoth, Dante Tucker, Buckaroo Mu, Eddi Decosta, Dirk Talamasca, Torben Trautman, Irene Muni, Lilly Zenovka, Vick Forcella, Sasy Scarborough, Gentle Welinder, Elric Anatine, Techwolf Lupindo, Dusan Writer, WolfPup Lowenhar, Marianne McCann, Fiachra Lach, Sitearm Madonna, Sudane Erato, Sahkolihaa Contepomi, Sachi Vixen, Questar Utu, Dimitrio Lewis, Matto Destiny, Scrim Pinion, Radio Signals, Psi Merlin, Pixel Gausman, Mel Vanbeeck, Laurent Bechir, Lamorna Proctor, Lares Carter, Gwyneth Llewelyn, Hydra Shaftoe, Holger Gilruth, Gentle Heron, Carla Broek, Boroondas Gupte, Fury Rosewood, Flower Ducatillon, Colpo Wexler, gwampa Lomu, Borg Capalini, Beansy Twine, Ardy Lay, 45ms Zhong, Adeon Writer, Aeonix Aeon, Ai Austin, Aiko Ying, Alexandrea Fride, Alliez Mysterio, Annie Milestone, Annika Genezzia, Ansariel Hiller, ArminasX Saiman, Arya Braveheart, Asaeda Meltingdots, Asturkon Jua, Avallyn Oakleaf, Avatar Quinzet, BabyA Littlething, Bacchus Ireto, Bazaar, Riva, Benjamin Bigdipper, Beth Walcher, Bezilon Kasei, Biancaluce Robbiani, Bill Walach, blakopal Galicia, Blitzckreed Levenque, Bryn Oh, Callipygian Christensen, Cap Carver, Carr Arbenlow, Chantal Harvey, Charles Courtois, Charlie Sazaland, Cherry Cheevers, ChickyBabes Zuzu, Christopher Organiser, Ciaran Laval, Clara Young, Celierra Darling, Corinne Helendale, Corro Moseley, Coughdrop Littlething, Darien Caldwell, Dartagan Shepherd, Debs Regent, Decro Schmooz, Denim Kamachi, DiJodi Dubratt, Dil Spitz, Edgware Marker, Egehan Dryke, Emma Portilo, Emmie Fairymeadow, Evangelista Emerald, Faelon Swordthain, Frenchimmo Sabra, Gaberoonie Zanzibar, Ganymedes Costagravas, Gene Frostbite, GeneJ Composer, Giggles Littlebird, Grady Echegaray, Guni Greenstein, Gypsy Tripsa, Hackshaven Harford, Ham Rambler, Han Shuffle, Hanglow Short, Hatzfeld Runo, herina Bode, Horatio Freund, Hypatia Callisto, Hypatia Pickens, Identity Euler, Imnotgoing Sideways, Innula Zenovka, Iyoba Tarantal, Jack Abraham, Jagga Meredith, Jennifer Boyle, Jeremy Marquez, Jessica Qin, Jinx Nordberg, Jo Bernandes, Jocial Sonnenkern, Joel Savard, Jondan Lundquist, Josef Munster, Josette Windlow, Juilan Tripsa, Juro Kothari, Justin RiversRunRed, Kagehi Kohn, Kaimen Takahe, Keklily Longfall, Ken Lavender, Kestral Karas, Khisme Nitely, Kimar Coba, Kithrak Kirkorian, Kitty Barnett, Kolor Fall, Komiko Okamoto, Korvel Noh, Larry Pixel, Leal Choche, len Starship, Lenae Munz, Lexi Frua, Lillie Cordeaux, Lizzy Macarthur, LSL Scientist, Luban Yiyuan, Luc Starsider, Maccus McCullough, Madison Blanc, Maggie Darwin, Mallory Destiny, Manx Wharton, Marc Claridge, Marc2 Sands, Matthew Anthony, Maxim RiversRunRed, Medhue Simoni, Melinda Latynina, Mencius Watts, Michi Lumin, Midian Farspire, Miles Glaz, Mindy Mathy, Mitch Wagner, Mo Hax, Mourna Biziou, Nao Noe, naofan Teardrop, Naomah Beaumont, Nathiel Siamendes, Nber Medici, Neko Link, Netpat Igaly, Neutron Chesnokov, Newfie Pendragon, Nicholai Laviscu, Nick Rhodes, Nicoladie Gymnast, Ollie Kubrick, Orenj Marat, Orion Delphis, Oryx Tempel, Parvati Silverweb, PeterPunk Mooney, Pixel Scientist, Pounce Teazle, Professor Noarlunga, Quantum Destiny, Quicksilver Hermes, Ralf Setsuko, RAT Quan, RedMokum Bravin, Revolution Perenti, Rezit Sideways, Rich Grainger, Rosco Teardrop, Rose Evans, Rudee Voom, RufusTT Horsefly, Saii Hallard, SaintLEOlions Zimer, Samm Larkham, Satanello Miami, SexySteven Morrisey, Sheet Spotter, Shnurui Troughton, sicarius Thorne, Sicarius Toxx, Sini Nubalo, SLB Wirefly, snowy Sidran, Soupa Segura, ST Mensing, Starshine Halasy, Stickman Ingmann, Synystyr Texan, Takeda Terrawyng, Tali Rosca, Templar Merlin, Tezcatlipoca Bisiani, Tiel Stonecutter, Tony Kembia, TouchaHoney Perhaps, Trey Reanimator, TriloByte Zanzibar, Trinity Dechou, Trinity Dejavu, Unlikely Quintessa, UsikuFarasi Kanarik, Veritas Raymaker, Vex Streeter, Viaticus Speculaas, Villain Baroque, Vixie Durant, Void Singer, Watty Berkson, Westley Schridde, Westley Streeter, Whimsy Winx, Winter Ventura, Wundur Primbee, xstorm Radek, YongYong Francois, Zak Westminster, Zana Kohime, Zaren Alexander, Zeja Pyle, ZenMondo Wormser, Zoex Flanagan, y muchos otros.
-
-
-
-
-No es frecuente la mente que puede hacer que lo que hasta ahora no existía de pronto salte a la vista. Sí es frecuente -y engañoso- gritar &apos;A mí se me podía haber ocurrido eso&apos;, pero el hecho es que no se hizo, un hecho muy significativo y revelador.
- -- Douglas Adams
+&quot;El trabajo sigue avanzando, la causa perdura, la esperanza aún vive, y los sueños no morirán jamás&quot; - Edward Kennedy
</text_editor>
</panel>
<panel label="Licencias" name="licenses_panel">
diff --git a/indra/newview/skins/default/xui/es/floater_animation_preview.xml b/indra/newview/skins/default/xui/es/floater_animation_preview.xml
index a40d53a8a8..d57405f7e5 100644
--- a/indra/newview/skins/default/xui/es/floater_animation_preview.xml
+++ b/indra/newview/skins/default/xui/es/floater_animation_preview.xml
@@ -141,35 +141,35 @@ La duración máxima de una animación es de [MAX_LENGTH] segundos.
Expresión
</text>
<combo_box name="emote_combo" tool_tip="Controla qué hace la cara durante la animación">
- <combo_box.item label="(ninguno)" name="[None]"/>
- <combo_box.item label="Aaaaah" name="Aaaaah"/>
- <combo_box.item label="Con miedo" name="Afraid"/>
- <combo_box.item label="Enfado" name="Angry"/>
- <combo_box.item label="Gran sonrisa" name="BigSmile"/>
- <combo_box.item label="Aburrimiento" name="Bored"/>
- <combo_box.item label="Llorar" name="Cry"/>
- <combo_box.item label="Desdén" name="Disdain"/>
- <combo_box.item label="Avergonzarse" name="Embarrassed"/>
- <combo_box.item label="Fruncir el ceño" name="Frown"/>
- <combo_box.item label="Beso" name="Kiss"/>
- <combo_box.item label="Reír" name="Laugh"/>
- <combo_box.item label="Sacar la lengua" name="Plllppt"/>
- <combo_box.item label="Rechazo" name="Repulsed"/>
- <combo_box.item label="Triste" name="Sad"/>
- <combo_box.item label="Encogerse de hombros" name="Shrug"/>
- <combo_box.item label="Sonrisa" name="Smile"/>
- <combo_box.item label="Sorpresa" name="Surprise"/>
- <combo_box.item label="Guiño" name="Wink"/>
- <combo_box.item label="Preocupación" name="Worry"/>
+ <item label="(ninguno)" name="[None]" value=""/>
+ <item label="Aaaaah" name="Aaaaah" value="Aaaaah"/>
+ <item label="Con miedo" name="Afraid" value="Miedo"/>
+ <item label="Enfado" name="Angry" value="Enfado"/>
+ <item label="Gran sonrisa" name="BigSmile" value="Gran sonrisa"/>
+ <item label="Aburrimiento" name="Bored" value="Aburrimiento"/>
+ <item label="Llorar" name="Cry" value="Lloro"/>
+ <item label="Desdén" name="Disdain" value="Desdén"/>
+ <item label="Avergonzarse" name="Embarrassed" value="Vergüenza"/>
+ <item label="Fruncir el ceño" name="Frown" value="Fruncir el ceño"/>
+ <item label="Beso" name="Kiss" value="Beso"/>
+ <item label="Reír" name="Laugh" value="Risa"/>
+ <item label="Sacar la lengua" name="Plllppt" value="Sacar la lengua"/>
+ <item label="Rechazo" name="Repulsed" value="Rechazo"/>
+ <item label="Triste" name="Sad" value="Tristeza"/>
+ <item label="Encogerse de hombros" name="Shrug" value="Encogerse de hombros"/>
+ <item label="Sonrisa" name="Smile" value="Sonrisa"/>
+ <item label="Sorpresa" name="Surprise" value="Sorpresa"/>
+ <item label="Guiño" name="Wink" value="Guiño"/>
+ <item label="Preocupación" name="Worry" value="Preocupación"/>
</combo_box>
<text name="preview_label">
Vista previa mientras
</text>
<combo_box name="preview_base_anim" tool_tip="Compruebe cómo se comporta su animación a la vez que el avatar realiza acciones comunes.">
- <combo_box.item label="De pie" name="Standing"/>
- <combo_box.item label="Caminando" name="Walking"/>
- <combo_box.item label="Sentado/a" name="Sitting"/>
- <combo_box.item label="Volando" name="Flying"/>
+ <item label="De pie" name="Standing" value="De pie"/>
+ <item label="Caminando" name="Walking" value="Caminando"/>
+ <item label="Sentado/a" name="Sitting" value="Sentado"/>
+ <item label="Volando" name="Flying" value="Volando"/>
</combo_box>
<spinner label="Combinar (sec)" name="ease_in_time" tool_tip="Tiempo (en segundos) en el que se combinan las animaciones"/>
<spinner label="Dejar de combinar (sec)" name="ease_out_time" tool_tip="Tiempo (en segundos) en el que dejan de combinarse las animaciones"/>
diff --git a/indra/newview/skins/default/xui/es/floater_god_tools.xml b/indra/newview/skins/default/xui/es/floater_god_tools.xml
index 73187f208b..218a5effe8 100644
--- a/indra/newview/skins/default/xui/es/floater_god_tools.xml
+++ b/indra/newview/skins/default/xui/es/floater_god_tools.xml
@@ -2,12 +2,11 @@
<floater name="godtools floater" title="HERRAMIENTAS DE DIOS">
<tab_container name="GodTools Tabs">
<panel label="Red" name="grid">
- <button label="Expulsar a todos los Residentes" label_selected="Expulsar a todos los Residentes" name="Kick all users"/>
<button label="Vaciar los caches de visibilidad del mapa de la región" label_selected="Vaciar los caches de visibilidad del mapa de la región" name="Flush This Region&apos;s Map Visibility Caches"/>
</panel>
<panel label="Región" name="region">
- <text name="Sim Name:">
- Nombre del Sim:
+ <text name="Region Name:">
+ Nombre de la región:
</text>
<check_box label="Preludio" name="check prelude" tool_tip="Defina esté para hacer un preludio de la región."/>
<check_box label="Sol fijo" name="check fixed sun" tool_tip="Fijar la posición del sol (así como en Región/Propiedad &gt; Terreno."/>
@@ -47,8 +46,8 @@
<button label="Guardado automático ahora" label_selected="Guardado automático ahora" name="Autosave now" tool_tip="Guardar estado con gzip en el directorio de guardado automático."/>
</panel>
<panel label="Objetos" name="objects">
- <text name="Sim Name:">
- Nombre del Sim:
+ <text name="Region Name:">
+ Nombre de la región:
</text>
<text name="region name">
Galés
diff --git a/indra/newview/skins/default/xui/es/floater_image_preview.xml b/indra/newview/skins/default/xui/es/floater_image_preview.xml
index 0ad91265c9..84c5bfc824 100644
--- a/indra/newview/skins/default/xui/es/floater_image_preview.xml
+++ b/indra/newview/skins/default/xui/es/floater_image_preview.xml
@@ -11,16 +11,16 @@
imagen como:
</text>
<combo_box label="Tipo de ropa" left="100" name="clothing_type_combo" width="186">
- <combo_box.item label="Imagen" name="Image"/>
- <combo_box.item label="Pelo" name="Hair"/>
- <combo_box.item label="Mujer: cabeza" name="FemaleHead"/>
- <combo_box.item label="Mujer: parte superior del cuerpo" name="FemaleUpperBody"/>
- <combo_box.item label="Mujer: parte inferior del cuerpo" name="FemaleLowerBody"/>
- <combo_box.item label="Varón: cabeza" name="MaleHead"/>
- <combo_box.item label="Varón: parte superior del cuerpo" name="MaleUpperBody"/>
- <combo_box.item label="Varón: parte inferior del cuerpo" name="MaleLowerBody"/>
- <combo_box.item label="Falda" name="Skirt"/>
- <combo_box.item label="Prim sculpted" name="SculptedPrim"/>
+ <item label="Imagen" name="Image" value="Imagen"/>
+ <item label="Pelo" name="Hair" value="Pelo"/>
+ <item label="Mujer: cabeza" name="FemaleHead" value="Mujer: cabeza"/>
+ <item label="Mujer: parte superior del cuerpo" name="FemaleUpperBody" value="Mujer: parte superior del cuerpo"/>
+ <item label="Mujer: parte inferior del cuerpo" name="FemaleLowerBody" value="Mujer: parte inferior del cuerpo"/>
+ <item label="Varón: cabeza" name="MaleHead" value="Varón: cabeza"/>
+ <item label="Varón: parte superior del cuerpo" name="MaleUpperBody" value="Varón: parte superior del cuerpo"/>
+ <item label="Varón: parte inferior del cuerpo" name="MaleLowerBody" value="Varón: parte inferior del cuerpo"/>
+ <item label="Falda" name="Skirt" value="Falda"/>
+ <item label="Prim sculpted" name="SculptedPrim" value="Prim sculpted"/>
</combo_box>
<text name="bad_image_text">
Imposible leer la imagen.
diff --git a/indra/newview/skins/default/xui/es/floater_outgoing_call.xml b/indra/newview/skins/default/xui/es/floater_outgoing_call.xml
index e2a53693b5..5fd9dba9ac 100644
--- a/indra/newview/skins/default/xui/es/floater_outgoing_call.xml
+++ b/indra/newview/skins/default/xui/es/floater_outgoing_call.xml
@@ -28,7 +28,7 @@
Has sido desconectado de [VOICE_CHANNEL_NAME]. [RECONNECT_NEARBY]
</text>
<text name="nearby_P2P_by_other">
- [VOICE_CHANNEL_NAME] ha colgado la llamada. [RECONNECT_NEARBY]
+ Tu llamada ha acabado. [RECONNECT_NEARBY]
</text>
<text name="nearby_P2P_by_agent">
Has finalizado la llamada. [RECONNECT_NEARBY]
diff --git a/indra/newview/skins/default/xui/es/floater_snapshot.xml b/indra/newview/skins/default/xui/es/floater_snapshot.xml
index febb51e5d6..151421c244 100644
--- a/indra/newview/skins/default/xui/es/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/es/floater_snapshot.xml
@@ -1,79 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Snapshot" title="VISTA PREVIA DE LA FOTO">
- <text name="type_label">
- Destino de la foto
- </text>
- <radio_group label="Tipo de la foto" name="snapshot_type_radio">
- <radio_item label="Correo-e" name="postcard"/>
- <radio_item label="Mi inventario ([AMOUNT] L$)" name="texture"/>
- <radio_item label="Guardar en mi ordenador" name="local"/>
- </radio_group>
- <text name="file_size_label">
- [SIZE] KB
- </text>
- <button label="Actualizar la foto" name="new_snapshot_btn"/>
- <button label="Enviar" name="send_btn"/>
- <button label="Guardar ([AMOUNT] L$)" name="upload_btn"/>
- <flyout_button label="Guardar" name="save_btn" tool_tip="Guardar la imagen en un archivo">
- <flyout_button_item label="Guardar" name="save_item"/>
- <flyout_button_item label="Guardar como..." name="saveas_item"/>
- </flyout_button>
- <button label="Cancelar" name="discard_btn"/>
- <button label="Más" name="more_btn" tool_tip="Opciones avanzadas"/>
- <button label="Menos" name="less_btn" tool_tip="Opciones avanzadas"/>
- <text name="type_label2">
- Tamaño
- </text>
- <text name="format_label">
- Formato
- </text>
- <combo_box label="Resolución" name="postcard_size_combo">
- <combo_box.item label="Ventana actual" name="CurrentWindow"/>
- <combo_box.item label="640x480" name="640x480"/>
- <combo_box.item label="800x600" name="800x600"/>
- <combo_box.item label="1024x768" name="1024x768"/>
- <combo_box.item label="Personalizar" name="Custom"/>
- </combo_box>
- <combo_box label="Resolución" name="texture_size_combo">
- <combo_box.item label="Ventana actual" name="CurrentWindow"/>
- <combo_box.item label="Pequeño (128x128)" name="Small(128x128)"/>
- <combo_box.item label="Medio (256x256)" name="Medium(256x256)"/>
- <combo_box.item label="Grande (512x512)" name="Large(512x512)"/>
- <combo_box.item label="Personalizar" name="Custom"/>
- </combo_box>
- <combo_box label="Resolución" name="local_size_combo">
- <combo_box.item label="Ventana actual" name="CurrentWindow"/>
- <combo_box.item label="320x240" name="320x240"/>
- <combo_box.item label="640x480" name="640x480"/>
- <combo_box.item label="800x600" name="800x600"/>
- <combo_box.item label="1024x768" name="1024x768"/>
- <combo_box.item label="1280x1024" name="1280x1024"/>
- <combo_box.item label="1600x1200" name="1600x1200"/>
- <combo_box.item label="Personalizar" name="Custom"/>
- </combo_box>
- <combo_box label="Formato" name="local_format_combo">
- <combo_box.item label="PNG" name="PNG"/>
- <combo_box.item label="JPEG" name="JPEG"/>
- <combo_box.item label="BMP" name="BMP"/>
- </combo_box>
- <spinner label="Ancho" label_width="41" name="snapshot_width" width="101"/>
- <spinner label="Alto" label_width="30" left="121" name="snapshot_height" width="90"/>
- <check_box label="Mantener las proporciones" name="keep_aspect_check"/>
- <slider label="Calidad de la imagen" name="image_quality_slider"/>
- <text name="layer_type_label">
- Captura:
- </text>
- <combo_box label="Capas de la imagen" name="layer_types">
- <combo_box.item label="Colores" name="Colors"/>
- <combo_box.item label="Profundidad" name="Depth"/>
- <combo_box.item label="Bandas negras" name="ObjectMattes"/>
- </combo_box>
- <check_box label="Interfaz" name="ui_check"/>
- <check_box bottom_delta="-17" label="HUDs" name="hud_check"/>
- <check_box bottom_delta="-17" label="Mantenerla abierta tras guardarla" name="keep_open_check"/>
- <check_box bottom_delta="-17" label="Congelar la toma (pantalla completa)" name="freeze_frame_check"/>
- <check_box bottom_delta="-29" label="Actualizar automáticamente" name="auto_snapshot_check"/>
- <string name="unknown">
+<floater name="Snapshot" title="Foto">
+ <floater.string name="unknown">
desconocido
- </string>
+ </floater.string>
+ <button label="Actualizar la foto" name="new_snapshot_btn"/>
+ <line_editor label="Descripción" name="description"/>
+ <button label="Compartir la foto" name="share"/>
+ <button label="Compartir en la web" name="share_to_web"/>
+ <button label="Guardar en mi inventario" name="save_to_inventory"/>
+ <button label="Guardar la foto" name="save"/>
+ <button label="Foto por correo-e" name="share_to_email"/>
+ <button label="Guardar en mi ordenador" name="save_to_computer"/>
+ <button label="Usar como imagen del perfil" name="set_profile_pic"/>
+ <button label="Atrás" name="cancel"/>
</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_tos.xml b/indra/newview/skins/default/xui/es/floater_tos.xml
index 7dd91f29fa..f4a0897d73 100644
--- a/indra/newview/skins/default/xui/es/floater_tos.xml
+++ b/indra/newview/skins/default/xui/es/floater_tos.xml
@@ -1,15 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="modal container" title=" ">
+ <floater.string name="real_url">
+ http://secondlife.com/app/tos/
+ </floater.string>
+ <floater.string name="loading_url">
+ data:text/html,%3Chtml%3E%3Chead%3E%3C/head%3E%3Cbody text=%22000000%22%3E%3Ch2%3E Loading %3Ca%20target%3D%22_external%22%20href%3D%22http%3A//secondlife.com/app/tos/%22%3ETerms%20of%20Service%3C/a%3E...%3C/h2%3E %3C/body%3E %3C/html%3E
+ </floater.string>
<button label="Continuar" label_selected="Continuar" name="Continue"/>
<button label="Cancelar" label_selected="Cancelar" name="Cancel"/>
<check_box label="Acepto las Condiciones del servicio y la Política de privacidad" name="agree_chk"/>
<text name="tos_heading">
Por favor, lee detenidamente las siguientes Condiciones del servicio y Política de privacidad. Debes aceptar el acuerdo para poder iniciar sesión en [SECOND_LIFE].
</text>
- <text_editor name="tos_text">
- TOS_TEXT
- </text_editor>
- <string name="real_url">
- http://secondlife.com/app/tos/
- </string>
</floater>
diff --git a/indra/newview/skins/default/xui/es/menu_attachment_other.xml b/indra/newview/skins/default/xui/es/menu_attachment_other.xml
index 12acb572dc..00bdb74881 100644
--- a/indra/newview/skins/default/xui/es/menu_attachment_other.xml
+++ b/indra/newview/skins/default/xui/es/menu_attachment_other.xml
@@ -10,7 +10,7 @@
<menu_item_call label="Denunciar" name="abuse"/>
<menu_item_call label="Congelar" name="Freeze..."/>
<menu_item_call label="Expulsar" name="Eject..."/>
- <menu_item_call label="Depurar" name="Debug..."/>
+ <menu_item_call label="Depurar las texturas" name="Debug..."/>
<menu_item_call label="Acercar el zoom" name="Zoom In"/>
<menu_item_call label="Pagar" name="Pay..."/>
<menu_item_call label="Perfil del objeto" name="Object Inspect"/>
diff --git a/indra/newview/skins/default/xui/es/menu_attachment_self.xml b/indra/newview/skins/default/xui/es/menu_attachment_self.xml
index 8cbe4299a8..650ac78855 100644
--- a/indra/newview/skins/default/xui/es/menu_attachment_self.xml
+++ b/indra/newview/skins/default/xui/es/menu_attachment_self.xml
@@ -9,4 +9,5 @@
<menu_item_call label="Mis amigos" name="Friends..."/>
<menu_item_call label="Mis grupos" name="Groups..."/>
<menu_item_call label="Mi perfil" name="Profile..."/>
+ <menu_item_call label="Depurar las texturas" name="Debug..."/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/es/menu_avatar_other.xml b/indra/newview/skins/default/xui/es/menu_avatar_other.xml
index 83801e872d..7df2d7c4e0 100644
--- a/indra/newview/skins/default/xui/es/menu_avatar_other.xml
+++ b/indra/newview/skins/default/xui/es/menu_avatar_other.xml
@@ -10,7 +10,7 @@
<menu_item_call label="Denunciar" name="abuse"/>
<menu_item_call label="Congelar" name="Freeze..."/>
<menu_item_call label="Expulsar" name="Eject..."/>
- <menu_item_call label="Depurar" name="Debug..."/>
+ <menu_item_call label="Depurar las texturas" name="Debug..."/>
<menu_item_call label="Acercar el zoom" name="Zoom In"/>
<menu_item_call label="Pagar" name="Pay..."/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/es/menu_avatar_self.xml b/indra/newview/skins/default/xui/es/menu_avatar_self.xml
index 67e56844b1..5b72498439 100644
--- a/indra/newview/skins/default/xui/es/menu_avatar_self.xml
+++ b/indra/newview/skins/default/xui/es/menu_avatar_self.xml
@@ -24,4 +24,5 @@
<menu_item_call label="Mis amigos" name="Friends..."/>
<menu_item_call label="Mis grupos" name="Groups..."/>
<menu_item_call label="Mi perfil" name="Profile..."/>
+ <menu_item_call label="Depurar las texturas" name="Debug..."/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/es/menu_edit.xml b/indra/newview/skins/default/xui/es/menu_edit.xml
new file mode 100644
index 0000000000..96fc9d8881
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/menu_edit.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu label="Editar" name="Edit">
+ <menu_item_call label="Deshacer" name="Undo"/>
+ <menu_item_call label="Rehacer" name="Redo"/>
+ <menu_item_call label="Cortar" name="Cut"/>
+ <menu_item_call label="Copiar" name="Copy"/>
+ <menu_item_call label="Pegar" name="Paste"/>
+ <menu_item_call label="Borrar" name="Delete"/>
+ <menu_item_call label="Duplicar" name="Duplicate"/>
+ <menu_item_call label="Seleccionar todo" name="Select All"/>
+ <menu_item_call label="Deseleccionar" name="Deselect"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/es/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/es/menu_inspect_avatar_gear.xml
index 34f6b8ece7..236289f82a 100644
--- a/indra/newview/skins/default/xui/es/menu_inspect_avatar_gear.xml
+++ b/indra/newview/skins/default/xui/es/menu_inspect_avatar_gear.xml
@@ -11,7 +11,7 @@
<menu_item_call label="Denunciar" name="report"/>
<menu_item_call label="Congelar" name="freeze"/>
<menu_item_call label="Expulsar" name="eject"/>
- <menu_item_call label="Depurar" name="debug"/>
+ <menu_item_call label="Depurar las texturas" name="debug"/>
<menu_item_call label="Encontrar en el mapa" name="find_on_map"/>
<menu_item_call label="Acercar el zoom" name="zoom_in"/>
<menu_item_call label="Pagar" name="pay"/>
diff --git a/indra/newview/skins/default/xui/es/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/es/menu_inspect_self_gear.xml
index f21866e54f..af5c17d7cb 100644
--- a/indra/newview/skins/default/xui/es/menu_inspect_self_gear.xml
+++ b/indra/newview/skins/default/xui/es/menu_inspect_self_gear.xml
@@ -5,4 +5,5 @@
<menu_item_call label="Mi perfil" name="my_profile"/>
<menu_item_call label="Mis amigos" name="my_friends"/>
<menu_item_call label="Mis grupos" name="my_groups"/>
+ <menu_item_call label="Depurar las texturas" name="Debug..."/>
</menu>
diff --git a/indra/newview/skins/default/xui/es/menu_inv_offer_chiclet.xml b/indra/newview/skins/default/xui/es/menu_inv_offer_chiclet.xml
new file mode 100644
index 0000000000..20d99afde1
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/menu_inv_offer_chiclet.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="InvOfferChiclet Menu">
+ <menu_item_call label="Cerrar" name="Close"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/es/menu_inventory.xml b/indra/newview/skins/default/xui/es/menu_inventory.xml
index 602798b108..ea68bc5bee 100644
--- a/indra/newview/skins/default/xui/es/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/es/menu_inventory.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="Popup">
+ <menu_item_call label="Compartir" name="Share"/>
<menu_item_call label="Comprar" name="Task Buy"/>
<menu_item_call label="Abrir" name="Task Open"/>
<menu_item_call label="Ejecutar" name="Task Play"/>
diff --git a/indra/newview/skins/default/xui/es/menu_login.xml b/indra/newview/skins/default/xui/es/menu_login.xml
index 7ebe2e0c31..df21ced9ab 100644
--- a/indra/newview/skins/default/xui/es/menu_login.xml
+++ b/indra/newview/skins/default/xui/es/menu_login.xml
@@ -7,18 +7,8 @@
<menu label="Ayuda" name="Help">
<menu_item_call label="Ayuda de [SECOND_LIFE]" name="Second Life Help"/>
</menu>
+ <menu_item_check label="Mostrar el menú &apos;Debug&apos;" name="Show Debug Menu"/>
<menu label="Depurar" name="Debug">
- <menu label="Editar" name="Edit">
- <menu_item_call label="Deshacer" name="Undo"/>
- <menu_item_call label="Rehacer" name="Redo"/>
- <menu_item_call label="Cortar" name="Cut"/>
- <menu_item_call label="Copiar" name="Copy"/>
- <menu_item_call label="Pegar" name="Paste"/>
- <menu_item_call label="Borrar" name="Delete"/>
- <menu_item_call label="Duplicar" name="Duplicate"/>
- <menu_item_call label="Seleccionar todo" name="Select All"/>
- <menu_item_call label="Deseleccionar" name="Deselect"/>
- </menu>
<menu_item_call label="Mostrar las configuraciones del depurador" name="Debug Settings"/>
<menu_item_call label="Configuraciones del Visor/Color" name="UI/Color Settings"/>
<menu label="Pruebas de la interfaz" name="UI Tests"/>
@@ -26,5 +16,7 @@
<menu_item_call label="Mostrar los &apos;TOS&apos;" name="TOS"/>
<menu_item_call label="Mostrar mensaje crítico" name="Critical"/>
<menu_item_call label="Web Browser Test" name="Web Browser Test"/>
+ <menu_item_check label="Mostrar el selector de Grid" name="Show Grid Picker"/>
+ <menu_item_call label="Mostrar la consola de notificaciones" name="Show Notifications Console"/>
</menu>
</menu_bar>
diff --git a/indra/newview/skins/default/xui/es/menu_participant_list.xml b/indra/newview/skins/default/xui/es/menu_participant_list.xml
index ed69683de9..0985f308ae 100644
--- a/indra/newview/skins/default/xui/es/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/es/menu_participant_list.xml
@@ -8,6 +8,7 @@
<menu_item_call label="Llamar" name="Call"/>
<menu_item_call label="Compartir" name="Share"/>
<menu_item_call label="Pagar" name="Pay"/>
+ <menu_item_check label="Ver los iconos de la gente" name="View Icons"/>
<menu_item_check label="Ignorar la voz" name="Block/Unblock"/>
<menu_item_check label="Ignorar el texto" name="MuteText"/>
<context_menu label="Opciones del moderador &gt;" name="Moderator Options">
diff --git a/indra/newview/skins/default/xui/es/menu_save_outfit.xml b/indra/newview/skins/default/xui/es/menu_save_outfit.xml
new file mode 100644
index 0000000000..f21dd32b80
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/menu_save_outfit.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="save_outfit_menu">
+ <menu_item_call label="Guardar" name="save_outfit"/>
+ <menu_item_call label="Guardar como nuevo" name="save_as_new_outfit"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/es/menu_script_chiclet.xml b/indra/newview/skins/default/xui/es/menu_script_chiclet.xml
new file mode 100644
index 0000000000..f517baf566
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/menu_script_chiclet.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="ScriptChiclet Menu">
+ <menu_item_call label="Cerrar" name="Close"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/es/menu_viewer.xml b/indra/newview/skins/default/xui/es/menu_viewer.xml
index 323e7c98bf..c9ae4def46 100644
--- a/indra/newview/skins/default/xui/es/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/es/menu_viewer.xml
@@ -31,6 +31,7 @@
<menu_item_call label="Foto" name="Take Snapshot"/>
<menu_item_call label="Crear un hito de este sitio" name="Create Landmark Here"/>
<menu label="Perfil del lugar" name="Land">
+ <menu_item_call label="Perfil del lugar" name="Place Profile"/>
<menu_item_call label="Acerca del terreno" name="About Land"/>
<menu_item_call label="Región/Estado" name="Region/Estate"/>
</menu>
@@ -66,17 +67,6 @@
<menu_item_call label="Herramienta Crear" name="Create"/>
<menu_item_call label="Herramienta Terreno" name="Land"/>
</menu>
- <menu label="Editar" name="Edit">
- <menu_item_call label="Deshacer" name="Undo"/>
- <menu_item_call label="Rehacer" name="Redo"/>
- <menu_item_call label="Cortar" name="Cut"/>
- <menu_item_call label="Copiar" name="Copy"/>
- <menu_item_call label="Pegar" name="Paste"/>
- <menu_item_call label="Eliminar" name="Delete"/>
- <menu_item_call label="Duplicar" name="Duplicate"/>
- <menu_item_call label="Seleccionar todo" name="Select All"/>
- <menu_item_call label="Deseleccionar" name="Deselect"/>
- </menu>
<menu_item_call label="Enlazar" name="Link"/>
<menu_item_call label="Desenlazar" name="Unlink"/>
<menu_item_check label="Editar las partes enlazadas" name="Edit Linked Parts"/>
@@ -124,6 +114,7 @@
<menu_item_call label="Acerca de [APP_NAME]" name="About Second Life"/>
</menu>
<menu label="Avanzado" name="Advanced">
+ <menu_item_check label="Mostrar el menú Avanzado" name="Show Advanced Menu"/>
<menu_item_call label="Parar mis animaciones" name="Stop Animating My Avatar"/>
<menu_item_call label="Recargar las texturas" name="Rebake Texture"/>
<menu_item_call label="Interfaz en el tamaño predeterminado" name="Set UI Size to Default"/>
@@ -145,7 +136,6 @@
<menu_item_check label="Realzar las transparencias" name="Highlight Transparent"/>
<menu_item_check label="Mostrar los HUD anexados" name="Show HUD Attachments"/>
<menu_item_check label="Mostrar el Punto de Mira en la vista subjetiva" name="ShowCrosshairs"/>
- <menu_item_check label="Mostrar información complementaria del terreno" name="Land Tips"/>
</menu>
<menu label="Objetos representados" name="Rendering Types">
<menu_item_check label="Simple" name="Simple"/>
@@ -201,7 +191,7 @@
<menu_item_call label="Pantalla completa" name="Toggle Fullscreen"/>
</menu>
<menu_item_call label="Mostrar las configuraciones del depurador" name="Debug Settings"/>
- <menu_item_check label="Mostrar el menú 'Develop'" name="Debug Mode"/>
+ <menu_item_check label="Mostrar el menú &apos;Develop&apos;" name="Debug Mode"/>
</menu>
<menu label="Develop" name="Develop">
<menu label="Consoles" name="Consoles">
diff --git a/indra/newview/skins/default/xui/es/notifications.xml b/indra/newview/skins/default/xui/es/notifications.xml
index 082841af31..49f30ae807 100644
--- a/indra/newview/skins/default/xui/es/notifications.xml
+++ b/indra/newview/skins/default/xui/es/notifications.xml
@@ -349,7 +349,7 @@ No se reembolsan las cuotas pagadas.
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="DeleteAvatarPick">
- ¿Borrar el destacado [PICK]?
+ ¿Borrar el destacado &lt;nolink&gt;[PICK]&lt;/nolink&gt;?
<usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
</notification>
<notification name="PromptGoToEventsPage">
@@ -929,6 +929,16 @@ no tienes el permiso de comprar terreno para el grupo que tienes activado actual
<button name="Cancel" text="Cancelar"/>
</form>
</notification>
+ <notification label="Guardar el vestuario" name="SaveOutfitAs">
+ Guardar como un nuevo vestuario lo que estoy llevando:
+ <form name="form">
+ <input name="message">
+ [DESC] (nuevo)
+ </input>
+ <button name="Offer" text="OK"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
<notification name="RemoveFromFriends">
¿Quieres quitar a [FIRST_NAME] [LAST_NAME] de tu lista de amigos?
<usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
@@ -1421,6 +1431,10 @@ Se ocultará el chat y los mensajes instantáneos (éstos recibirán tu Respuest
¿Teleportarte a [CLASSIFIED]?
<usetemplate ignoretext="Confirmar el teleporte a una localización de los Clasificados" name="okcancelignore" notext="Cancelar" yestext="Teleportar"/>
</notification>
+ <notification name="TeleportToHistoryEntry">
+ ¿Teleportarse a [HISTORY_ENTRY]?
+ <usetemplate ignoretext="Confirmar que quiero teleportarme a una localización del historial" name="okcancelignore" notext="Cancelar" yestext="Teleportar"/>
+ </notification>
<notification label="Mensaje a todo el estado" name="MessageEstate">
Escribe un anuncio breve que se enviará a todo el que esté en tu estado.
<form name="form">
@@ -1512,6 +1526,9 @@ Puedes pulsar &apos;Cambiar las Preferencias&apos; para incrementar las preferen
<ignore name="ignore" text="Mis preferencias sobre nivel de calificación me impiden entrar a esta región"/>
</form>
</notification>
+ <notification name="PreferredMaturityChanged">
+ Tu preferencia actual de calificación es [RATING].
+ </notification>
<notification name="LandClaimAccessBlocked">
No puedes reclamar este terreno por su nivel de calificación. Puede deberse a que no hay información validada de tu edad.
@@ -1926,6 +1943,9 @@ Publícala en una página web para que otros puedan acceder fácilmente a esta p
<notification name="SystemMessageTip">
[MESSAGE]
</notification>
+ <notification name="IMSystemMessageTip">
+ [MESSAGE]
+ </notification>
<notification name="Cancelled">
Cancelado
</notification>
@@ -1954,6 +1974,11 @@ Publícala en una página web para que otros puedan acceder fácilmente a esta p
Subiendo fotos del mundo y del sitio web...
(tardará unos 5 minutos).
</notification>
+ <notification name="UploadConfirmation">
+ La subida cuesta [AMOUNT] L$.
+¿Quieres continuar?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Subir"/>
+ </notification>
<notification name="UploadPayment">
Has pagado [AMOUNT] LS por la subida.
</notification>
@@ -2295,9 +2320,9 @@ Por favor, vuelve a intentarlo en unos momentos.
</form>
</notification>
<notification name="TeleportOffered">
- [NAME] te ofrece teleportarte a su localización:
+ [NAME_SLURL] te ha ofrecido teleportarte a su posición:
-[MESSAGE]
+[MESSAGE] - [MATURITY_STR] &lt;icon&gt;[MATURITY_ICON]&lt;/icon&gt;
<form name="form">
<button name="Teleport" text="Teleportar"/>
<button name="Cancel" text="Cancelar"/>
@@ -2315,11 +2340,11 @@ Por favor, vuelve a intentarlo en unos momentos.
</form>
</notification>
<notification name="OfferFriendship">
- [NAME] te está ofreciendo amistad.
+ [NAME_SLURL] te está ofreciendo su amistad.
[MESSAGE]
-(Por defecto, podrás ver si están conectados los demás).
+(Por defecto, podrás ver si el otro está conectado)
<form name="form">
<button name="Accept" text="Aceptar"/>
<button name="Decline" text="Rehusar"/>
@@ -2382,6 +2407,9 @@ Del objeto: [OBJECTNAME]; propiedad de: [NAME]?
<notification name="FailedToFindWearable">
Búsqueda fallida de [TYPE] de nombre [DESC] en la base de datos.
</notification>
+ <notification name="ShareToWebFailed">
+ Fallo al subir la imagen a la web.
+ </notification>
<notification name="InvalidWearable">
El ítem que quieres vestirte tiene una característica que tu visor no puede leer. Por favor, actualiza tu versión de [APP_NAME] para ponerte este ítem.
</notification>
@@ -2577,6 +2605,12 @@ Por tu seguridad, serán bloqueadas durante unos segundos.
El botón elegido no se puede mostrar correctamente.
Se mostrará cuando haya suficiente espacio.
</notification>
+ <notification name="ShareNotification">
+ Arrastrar ítems desde el inventario hasta una persona en el perfil del residente.
+ </notification>
+ <notification name="AvatarRezNotification">
+ Avatar de &apos;[NAME]&apos; obtenido en [TIME] segs.
+ </notification>
<global name="UnsupportedCPU">
- La velocidad de tu CPU no cumple los requerimientos mínimos.
</global>
diff --git a/indra/newview/skins/default/xui/es/outfit_accordion_tab.xml b/indra/newview/skins/default/xui/es/outfit_accordion_tab.xml
new file mode 100644
index 0000000000..bac885e5d8
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/outfit_accordion_tab.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- *NOTE: mantipov: this xml is intended to be used inside panel_outfits_list.xml for each outfit folder-->
+<!-- All accordion tabs in the My Appearance/My Outfits panel will be created from this one at runtume-->
+<accordion_tab name="Mockup Tab" title="Mockup Tab"/>
diff --git a/indra/newview/skins/default/xui/es/panel_edit_eyes.xml b/indra/newview/skins/default/xui/es/panel_edit_eyes.xml
index e33848554d..29a416f698 100644
--- a/indra/newview/skins/default/xui/es/panel_edit_eyes.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_eyes.xml
@@ -3,7 +3,9 @@
<panel name="avatar_eye_color_panel">
<texture_picker label="Iris" name="Iris" tool_tip="Pulsa para elegir una imagen"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="eyes_main_tab" title="Ojos"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="eyes_main_tab" title="Ojos"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_edit_gloves.xml b/indra/newview/skins/default/xui/es/panel_edit_gloves.xml
index 397322466c..684a35a830 100644
--- a/indra/newview/skins/default/xui/es/panel_edit_gloves.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_gloves.xml
@@ -4,7 +4,9 @@
<texture_picker label="Tela" name="Fabric" tool_tip="Pulsa para elegir una imagen"/>
<color_swatch label="Color/Tinte" name="Color/Tint" tool_tip="Pulsa para abrir el selector de color"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="gloves_main_tab" title="Guantes"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="gloves_main_tab" title="Guantes"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_edit_hair.xml b/indra/newview/skins/default/xui/es/panel_edit_hair.xml
index 49cc8ce98c..25af1ea8cb 100644
--- a/indra/newview/skins/default/xui/es/panel_edit_hair.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_hair.xml
@@ -3,10 +3,12 @@
<panel name="avatar_hair_color_panel">
<texture_picker label="Textura" name="Texture" tool_tip="Pulsa para elegir una imagen"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="hair_color_tab" title="Color"/>
- <accordion_tab name="hair_style_tab" title="Estilo"/>
- <accordion_tab name="hair_eyebrows_tab" title="Cejas"/>
- <accordion_tab name="hair_facial_tab" title="Facial"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="hair_color_tab" title="Color"/>
+ <accordion_tab name="hair_style_tab" title="Estilo"/>
+ <accordion_tab name="hair_eyebrows_tab" title="Cejas"/>
+ <accordion_tab name="hair_facial_tab" title="Facial"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_edit_jacket.xml b/indra/newview/skins/default/xui/es/panel_edit_jacket.xml
index abee993aec..347107d746 100644
--- a/indra/newview/skins/default/xui/es/panel_edit_jacket.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_jacket.xml
@@ -5,7 +5,9 @@
<texture_picker label="Tejido inferior" name="Lower Fabric" tool_tip="Pulsa para elegir una imagen"/>
<color_swatch label="Color/Tinte" name="Color/Tint" tool_tip="Pulsa para abrir el selector de color"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="jacket_main_tab" title="Chaqueta"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="jacket_main_tab" title="Chaqueta"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_edit_pants.xml b/indra/newview/skins/default/xui/es/panel_edit_pants.xml
index 80eb5f0de0..e765702343 100644
--- a/indra/newview/skins/default/xui/es/panel_edit_pants.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_pants.xml
@@ -4,7 +4,9 @@
<texture_picker label="Tela" name="Fabric" tool_tip="Pulsa para elegir una imagen"/>
<color_swatch label="Color/Tinte" name="Color/Tint" tool_tip="Pulsa para abrir el selector de color"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="pants_main_tab" title="Pantalones"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="pants_main_tab" title="Pantalones"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_edit_shape.xml b/indra/newview/skins/default/xui/es/panel_edit_shape.xml
index 8a9ac0e9ec..1a13f928a2 100644
--- a/indra/newview/skins/default/xui/es/panel_edit_shape.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_shape.xml
@@ -9,15 +9,17 @@
<radio_item label="Varón" name="radio2"/>
</radio_group>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="shape_body_tab" title="Cuerpo"/>
- <accordion_tab name="shape_head_tab" title="Cabeza"/>
- <accordion_tab name="shape_eyes_tab" title="Ojos"/>
- <accordion_tab name="shape_ears_tab" title="Orejas"/>
- <accordion_tab name="shape_nose_tab" title="Nariz"/>
- <accordion_tab name="shape_mouth_tab" title="Boca"/>
- <accordion_tab name="shape_chin_tab" title="Barbilla"/>
- <accordion_tab name="shape_torso_tab" title="Torso"/>
- <accordion_tab name="shape_legs_tab" title="Piernas"/>
- </accordion>
+ <panel label="Camisa" name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="shape_body_tab" title="Cuerpo"/>
+ <accordion_tab name="shape_head_tab" title="Cabeza"/>
+ <accordion_tab name="shape_eyes_tab" title="Ojos"/>
+ <accordion_tab name="shape_ears_tab" title="Orejas"/>
+ <accordion_tab name="shape_nose_tab" title="Nariz"/>
+ <accordion_tab name="shape_mouth_tab" title="Boca"/>
+ <accordion_tab name="shape_chin_tab" title="Barbilla"/>
+ <accordion_tab name="shape_torso_tab" title="Torso"/>
+ <accordion_tab name="shape_legs_tab" title="Piernas"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_edit_shirt.xml b/indra/newview/skins/default/xui/es/panel_edit_shirt.xml
index 6d65660409..f763e1b18d 100644
--- a/indra/newview/skins/default/xui/es/panel_edit_shirt.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_shirt.xml
@@ -4,7 +4,9 @@
<texture_picker label="Tela" name="Fabric" tool_tip="Pulsa para elegir una imagen"/>
<color_swatch label="Color/Tinte" name="Color/Tint" tool_tip="Pulsa para abrir el selector de color"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="shirt_main_tab" title="Camisa"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="shirt_main_tab" title="Camisa"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_edit_shoes.xml b/indra/newview/skins/default/xui/es/panel_edit_shoes.xml
index e613b1809d..70f2027398 100644
--- a/indra/newview/skins/default/xui/es/panel_edit_shoes.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_shoes.xml
@@ -4,7 +4,9 @@
<texture_picker label="Tela" name="Fabric" tool_tip="Pulsa para elegir una imagen"/>
<color_swatch label="Color/Tinte" name="Color/Tint" tool_tip="Pulsa para abrir el selector de color"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="shoes_main_tab" title="Zapatos"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="shoes_main_tab" title="Zapatos"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_edit_skin.xml b/indra/newview/skins/default/xui/es/panel_edit_skin.xml
index 2d9e556a4a..501ecfb4de 100644
--- a/indra/newview/skins/default/xui/es/panel_edit_skin.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_skin.xml
@@ -5,10 +5,12 @@
<texture_picker label="Tatuajes superiores" name="Upper Tattoos" tool_tip="Pulsa para elegir una imagen"/>
<texture_picker label="Tatuajes inferiores" name="Lower Tattoos" tool_tip="Pulsa para elegir una imagen"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="skin_color_tab" title="Color de la piel"/>
- <accordion_tab name="skin_face_tab" title="Detalles faciales"/>
- <accordion_tab name="skin_makeup_tab" title="Maquillaje"/>
- <accordion_tab name="skin_body_tab" title="Detalles del cuerpo"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="skin_color_tab" title="Color de la piel"/>
+ <accordion_tab name="skin_face_tab" title="Detalles faciales"/>
+ <accordion_tab name="skin_makeup_tab" title="Maquillaje"/>
+ <accordion_tab name="skin_body_tab" title="Detalles del cuerpo"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_edit_skirt.xml b/indra/newview/skins/default/xui/es/panel_edit_skirt.xml
index c8e25d38a9..2c7196642c 100644
--- a/indra/newview/skins/default/xui/es/panel_edit_skirt.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_skirt.xml
@@ -4,7 +4,9 @@
<texture_picker label="Tela" name="Fabric" tool_tip="Pulsa para elegir una imagen"/>
<color_swatch label="Color/Tinte" name="Color/Tint" tool_tip="Pulsa para abrir el selector de color"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="skirt_main_tab" title="Falda"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="skirt_main_tab" title="Falda"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_edit_socks.xml b/indra/newview/skins/default/xui/es/panel_edit_socks.xml
index d65f119da7..28423eaf61 100644
--- a/indra/newview/skins/default/xui/es/panel_edit_socks.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_socks.xml
@@ -4,7 +4,9 @@
<texture_picker label="Tela" name="Fabric" tool_tip="Pulsa para elegir una imagen"/>
<color_swatch label="Color/Tinte" name="Color/Tint" tool_tip="Pulsa para abrir el selector de color"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="socks_main_tab" title="Calcetines"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="socks_main_tab" title="Calcetines"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_edit_underpants.xml b/indra/newview/skins/default/xui/es/panel_edit_underpants.xml
index ea446c1625..6c82bcfedf 100644
--- a/indra/newview/skins/default/xui/es/panel_edit_underpants.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_underpants.xml
@@ -4,7 +4,9 @@
<texture_picker label="Tela" name="Fabric" tool_tip="Pulsa para elegir una imagen"/>
<color_swatch label="Color/Tinte" name="Color/Tint" tool_tip="Pulsa para abrir el selector de color"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="underpants_main_tab" title="Ropa interior"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="underpants_main_tab" title="Ropa interior"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_edit_undershirt.xml b/indra/newview/skins/default/xui/es/panel_edit_undershirt.xml
index 92e42657a4..412bdceddf 100644
--- a/indra/newview/skins/default/xui/es/panel_edit_undershirt.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_undershirt.xml
@@ -4,7 +4,9 @@
<texture_picker label="Tela" name="Fabric" tool_tip="Pulsa para elegir una imagen"/>
<color_swatch label="Color/Tinte" name="Color/Tint" tool_tip="Pulsa para abrir el selector de color"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="undershirt_main_tab" title="Camiseta"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="undershirt_main_tab" title="Camiseta"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_edit_wearable.xml b/indra/newview/skins/default/xui/es/panel_edit_wearable.xml
index 6d48b77d3c..97ab566f4d 100644
--- a/indra/newview/skins/default/xui/es/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_wearable.xml
@@ -94,6 +94,11 @@
<panel label="Camisa" name="wearable_type_panel">
<text name="description_text" value="Anatomía:"/>
</panel>
+ <panel label="gear_buttom_panel" name="gear_buttom_panel">
+ <button name="friends_viewsort_btn" tool_tip="Opciones"/>
+ <button name="add_btn" tool_tip="TODO"/>
+ <button name="del_btn" tool_tip="TODO"/>
+ </panel>
<panel name="button_panel">
<button label="Guardar como" name="save_as_button"/>
<button label="Revertir" name="revert_button"/>
diff --git a/indra/newview/skins/default/xui/es/panel_group_general.xml b/indra/newview/skins/default/xui/es/panel_group_general.xml
index 66d0c5be93..c4f17ab6dc 100644
--- a/indra/newview/skins/default/xui/es/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/es/panel_group_general.xml
@@ -47,8 +47,11 @@ Deja el cursor sobre las opciones para ver más ayuda.
<check_box label="Cuota de entrada" name="check_enrollment_fee" tool_tip="Configura si hay que pagar una cuota para entrar al grupo"/>
<spinner label="L$" left_delta="130" name="spin_enrollment_fee" tool_tip="Si la opción Cuota de entrada está marcada, los nuevos miembros han de pagar esta cuota para entrar al grupo." width="60"/>
<combo_box bottom_delta="-38" name="group_mature_check" tool_tip="Establece si la información de su grupo es &apos;mature&apos;." width="150">
- <combo_box.item label="Contenido &apos;PG&apos;" name="pg"/>
+ <combo_item name="select_mature">
+ - Elige la Calificación -
+ </combo_item>
<combo_box.item label="Contenido &apos;Mature&apos;" name="mature"/>
+ <combo_box.item label="Contenido &apos;PG&apos;" name="pg"/>
</combo_box>
<check_box initial_value="true" label="Mostrar en la búsqueda" name="show_in_group_list" tool_tip="Permite que la gente vea este grupo en los resultados de la búsqueda"/>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_inventory_item.xml b/indra/newview/skins/default/xui/es/panel_inventory_item.xml
new file mode 100644
index 0000000000..d18047fbcf
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/panel_inventory_item.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="inventory_item">
+ <text name="item_name" value="..."/>
+</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_media_settings_permissions.xml b/indra/newview/skins/default/xui/es/panel_media_settings_permissions.xml
index 3e625f56fe..ec9edbfa15 100644
--- a/indra/newview/skins/default/xui/es/panel_media_settings_permissions.xml
+++ b/indra/newview/skins/default/xui/es/panel_media_settings_permissions.xml
@@ -11,10 +11,19 @@
Mini
</combo_item>
</combo_box>
+ <text name="owner_label">
+ Propietario
+ </text>
<check_box initial_value="false" label="Permitir la navegación e interactividad" name="perms_owner_interact"/>
<check_box initial_value="false" label="Mostrar la barra de control" name="perms_owner_control"/>
+ <text name="group_label">
+ Grupo:
+ </text>
<check_box initial_value="false" label="Permitir la navegación e interactividad" name="perms_group_interact"/>
<check_box initial_value="false" label="Mostrar la barra de control" name="perms_group_control"/>
+ <text name="anyone_label">
+ Cualquiera
+ </text>
<check_box initial_value="false" label="Permitir la navegación e interactividad" name="perms_anyone_interact"/>
<check_box initial_value="false" label="Mostrar la barra de control" name="perms_anyone_control"/>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_nearby_media.xml b/indra/newview/skins/default/xui/es/panel_nearby_media.xml
index 9bd90572d7..d1a14c877f 100644
--- a/indra/newview/skins/default/xui/es/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/es/panel_nearby_media.xml
@@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="nearby_media">
+ <string name="media_item_count_format">
+ (%ld ítems media)
+ </string>
<string name="empty_item_text">
&lt;vacío&gt;
</string>
@@ -16,15 +19,10 @@
<button label="Parar todo" name="all_nearby_media_disable_btn" tool_tip="Apagar todos los media cercanos"/>
<button label="Iniciar todo" name="all_nearby_media_enable_btn" tool_tip="Encender todos los media cercanos"/>
<button name="open_prefs_btn" tool_tip="Abrir las preferencias de los media"/>
- <button label="Más &gt;&gt;" label_selected="Menos &lt;&lt;" name="more_less_btn" tool_tip="Controles avanzados"/>
+ <button label="Más &gt;&gt;" label_selected="Menos &lt;&lt;" name="more_btn" tool_tip="Controles avanzados"/>
+ <button label="Más &gt;&gt;" label_selected="Menos &lt;&lt;" name="less_btn" tool_tip="Controles avanzados"/>
</panel>
<panel name="nearby_media_panel">
- <text name="nearby_media">
- Media cercanos
- </text>
- <text name="show">
- Mostrar:
- </text>
<combo_box name="show_combo">
<combo_box.item label="Todo" name="All"/>
<combo_box.item label="En esta parcela" name="WithinParcel"/>
@@ -38,22 +36,22 @@
<scroll_list.columns label="Nombre" name="media_name"/>
<scroll_list.columns label="Depurar" name="media_debug"/>
</scroll_list>
- <panel name="media_controls_panel">
+ <panel>
<layout_stack name="media_controls">
<layout_panel name="stop">
<button name="stop_btn" tool_tip="Parar los media seleccionados"/>
</layout_panel>
<layout_panel name="play">
- <button name="play_btn" tool_tip="Ejecutar los media seleccionados"/>
+ <button name="play_btn" tool_tip="Ejecutar los media"/>
</layout_panel>
<layout_panel name="pause">
- <button name="pause_btn" tool_tip="Pausar los media seleccionados"/>
+ <button name="pause_btn" tool_tip="Pausa los media seleccionados"/>
</layout_panel>
<layout_panel name="volume_slider_ctrl">
<slider_bar initial_value="0.5" name="volume_slider" tool_tip="Volumen de los media seleccionados"/>
</layout_panel>
<layout_panel name="mute">
- <button name="mute_btn" tool_tip="Silenciar el audio de los media seleccionados"/>
+ <button name="mute_btn" tool_tip="Silencia los media seleccionados"/>
</layout_panel>
<layout_panel name="zoom">
<button name="zoom_btn" tool_tip="Zoom en los media seleccionados"/>
diff --git a/indra/newview/skins/default/xui/es/panel_outfit_edit.xml b/indra/newview/skins/default/xui/es/panel_outfit_edit.xml
new file mode 100644
index 0000000000..484f51569b
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/panel_outfit_edit.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- Side tray Outfit Edit panel -->
+<panel label="Editar el vestuario" name="outfit_edit">
+ <string name="No Outfit" value="No hay vestuario"/>
+ <panel.string name="not_available">
+ (No disp.)
+ </panel.string>
+ <panel.string name="unknown">
+ (desconocido)
+ </panel.string>
+ <string name="Filter.All" value="Todos"/>
+ <string name="Filter.Clothes/Body" value="Ropas/Cuerpo"/>
+ <string name="Filter.Objects" value="Objetos"/>
+ <button label="editar" name="edit_wearable_btn"/>
+ <text name="title" value="Editar el vestuario"/>
+ <panel label="bottom_panel" name="header_panel">
+ <panel label="bottom_panel" name="outfit_name_and_status">
+ <text name="status" value="Editando..."/>
+ <text name="curr_outfit_name" value="[Vestuario actual]"/>
+ </panel>
+ </panel>
+ <layout_stack name="im_panels">
+ <layout_panel label="Panel de control de los MI" name="outfit_wearables_panel">
+ <scroll_list name="look_items_list">
+ <scroll_list.columns label="Vestuario" name="look_item"/>
+ <scroll_list.columns label="Orden de los ítems del vestuario" name="look_item_sort"/>
+ </scroll_list>
+ <panel label="bottom_panel" name="edit_panel"/>
+ </layout_panel>
+ <layout_panel name="add_wearables_panel">
+ <filter_editor label="Filtrar" name="look_item_filter"/>
+ <layout_stack name="filter_panels">
+ <layout_panel label="Panel de control de los MI" name="filter_button_panel">
+ <text name="add_to_outfit_label" value="Añadir al vestuario:"/>
+ <button label="o" name="filter_button"/>
+ </layout_panel>
+ </layout_stack>
+ <panel label="add_wearables_button_bar" name="add_wearables_button_bar">
+ <button label="C" name="folder_view_btn"/>
+ <button label="L" name="list_view_btn"/>
+ </panel>
+ </layout_panel>
+ </layout_stack>
+ <panel name="save_revert_button_bar">
+ <button label="Guardar" name="save_btn"/>
+ <button label="Revertir" name="revert_btn"/>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/es/panel_outfits_inventory.xml
index 2f60df7743..4b23094103 100644
--- a/indra/newview/skins/default/xui/es/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/es/panel_outfits_inventory.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Cosas" name="Outfits">
<tab_container name="appearance_tabs">
- <inventory_panel label="MIS VESTUARIOS" name="outfitslist_tab"/>
+ <panel label="MIS VESTUARIOS" name="outfitslist_tab"/>
<inventory_panel label="PUESTO" name="cof_tab"/>
</tab_container>
<panel name="bottom_panel">
@@ -9,6 +9,6 @@
<dnd_button name="trash_btn" tool_tip="Quitar el ítem seleccionado"/>
<button label="Guardar el vestuario" name="make_outfit_btn" tool_tip="Guardar la apariencia como un vestuario"/>
<button label="Ponerme" name="wear_btn" tool_tip="Ponerme el vestuario seleccionado"/>
- <button label="M" name="look_edit_btn"/>
+ <button label="Editar el vestuario" name="edit_current_outfit_btn"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_people.xml b/indra/newview/skins/default/xui/es/panel_people.xml
index 376aea5278..ad14d8ac9d 100644
--- a/indra/newview/skins/default/xui/es/panel_people.xml
+++ b/indra/newview/skins/default/xui/es/panel_people.xml
@@ -1,14 +1,23 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- Side tray panel -->
<panel label="Gente" name="people_panel">
- <string name="no_people" value="No hay nadie"/>
- <string name="no_one_near" value="No hay nadie cerca"/>
+ <string name="no_recent_people" value="No hay nadie reciente. ¿Buscas gente con la que pasar el rato? Prueba la [secondlife:///app/search/people Búsqueda] o el [secondlife:///app/worldmap Mapa del mundo]."/>
+ <string name="no_filtered_recent_people" value="¿No encontraste lo que buscabas? Prueba la [secondlife:///app/search/people Búsqueda]."/>
+ <string name="no_one_near" value="No hay nadie cerca. ¿Buscas gente con la que pasar el rato? Prueba la [secondlife:///app/search/people Búsqueda] o el [secondlife:///app/worldmap Mapa del mundo]."/>
+ <string name="no_one_filtered_near" value="¿No encontraste lo que buscabas? Prueba la [secondlife:///app/search/people Búsqueda]."/>
<string name="no_friends_online" value="No hay amigos conectados"/>
<string name="no_friends" value="No hay amigos"/>
+ <string name="no_friends_msg">
+ Busca amigos usando la [secondlife:///app/search/people Búsqueda] o pulsa con el botón derecho del ratón en un Residente para añadirle como amigo.
+¿Buscas gente con la que pasar el rato? Prueba el [secondlife:///app/worldmap Mapa del mundo].
+ </string>
+ <string name="no_filtered_friends_msg">
+ ¿No encontraste lo que buscabas? Prueba la [secondlife:///app/search/people Búsqueda].
+ </string>
<string name="people_filter_label" value="Filtrar a la gente"/>
<string name="groups_filter_label" value="Filtrar a los grupos"/>
- <string name="no_filtered_groups_msg" value="[secondlife:///app/search/groups Intenta encontrar el grupo con una búsqueda]"/>
- <string name="no_groups_msg" value="[secondlife:///app/search/groups Intenta encontrar grupos a los que unirte.]"/>
+ <string name="no_filtered_groups_msg" value="¿No encontraste lo que buscabas? Prueba la [secondlife:///app/search/groups Búsqueda]."/>
+ <string name="no_groups_msg" value="¿Buscas grupos en que participar? Prueba la [secondlife:///app/search/groups Búsqueda]."/>
<filter_editor label="Filtrar" name="filter_input"/>
<tab_container name="tabs">
<panel label="CERCANA" name="nearby_panel">
@@ -27,10 +36,6 @@
<button name="add_btn" tool_tip="Ofrecer amistad a un Residente"/>
<button name="del_btn" tool_tip="Quitar a la persona seleccionada de tu lista de amigos"/>
</panel>
- <text name="no_friends_msg">
- Para añadir amigos, prueba a hacer una [secondlife:///app/search/people búsqueda general] o pulsa en un usuario para añadirle como amigo.
-Si estás buscando gente para pasar el rato, [secondlife:///app/worldmap usa el mapa].
- </text>
</panel>
<panel label="MIS GRUPOS" name="groups_panel">
<panel label="bottom_panel" name="bottom_panel">
diff --git a/indra/newview/skins/default/xui/es/panel_places.xml b/indra/newview/skins/default/xui/es/panel_places.xml
index 4818bff069..1970284466 100644
--- a/indra/newview/skins/default/xui/es/panel_places.xml
+++ b/indra/newview/skins/default/xui/es/panel_places.xml
@@ -11,5 +11,6 @@
<button label="Guardar" name="save_btn"/>
<button label="Cancelar" name="cancel_btn"/>
<button label="Cerrar" name="close_btn"/>
+ <button label="Perfil" name="profile_btn"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/es/panel_preferences_advanced.xml
index a7c13b05b6..e0ce03d09a 100644
--- a/indra/newview/skins/default/xui/es/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_advanced.xml
@@ -20,6 +20,9 @@
<check_box label="Chat en bocadillos" name="bubble_text_chat"/>
<slider label="Opacidad" name="bubble_chat_opacity"/>
<color_swatch name="background" tool_tip="Elegir el color de los bocadillos del chat"/>
+ <text name="UI Size:">
+ Tamaño de la UI
+ </text>
<check_box label="Mostrar los errores de los scripts en:" name="show_script_errors"/>
<radio_group name="show_location">
<radio_item label="Chat" name="0"/>
@@ -29,4 +32,5 @@
<line_editor label="Botón de Apretar para Hablar" name="modifier_combo"/>
<button label="Elegir la tecla" name="set_voice_hotkey_button"/>
<button label="Botón de en medio del ratón" name="set_voice_middlemouse_button" tool_tip="Reconfigurarlo al botón medio del ratón"/>
+ <button label="Otros dispositivos" name="joystick_setup_button"/>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_world_map.xml b/indra/newview/skins/default/xui/es/panel_world_map.xml
index 77cec6b60b..b1dea02210 100644
--- a/indra/newview/skins/default/xui/es/panel_world_map.xml
+++ b/indra/newview/skins/default/xui/es/panel_world_map.xml
@@ -30,6 +30,12 @@
<panel.string name="world_map_northwest">
NO
</panel.string>
+ <panel.string name="world_map_person">
+ 1 persona
+ </panel.string>
+ <panel.string name="world_map_people">
+ [NUMBER] personas
+ </panel.string>
<text label="N" name="floater_map_north" text="N">
N
</text>
diff --git a/indra/newview/skins/default/xui/es/sidepanel_inventory.xml b/indra/newview/skins/default/xui/es/sidepanel_inventory.xml
index 776b253adc..ff4d201d01 100644
--- a/indra/newview/skins/default/xui/es/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/es/sidepanel_inventory.xml
@@ -3,6 +3,7 @@
<panel label="" name="sidepanel__inventory_panel">
<panel name="button_panel">
<button label="Perfil" name="info_btn"/>
+ <button label="Compartir" name="share_btn"/>
<button label="Ponerme" name="wear_btn"/>
<button label="Play" name="play_btn"/>
<button label="Teleporte" name="teleport_btn"/>
diff --git a/indra/newview/skins/default/xui/es/strings.xml b/indra/newview/skins/default/xui/es/strings.xml
index 4cee677420..27700b2efe 100644
--- a/indra/newview/skins/default/xui/es/strings.xml
+++ b/indra/newview/skins/default/xui/es/strings.xml
@@ -249,6 +249,9 @@
<string name="BUTTON_CLOSE_WIN">
Cerrar (Ctrl+W)
</string>
+ <string name="BUTTON_CLOSE_CHROME">
+ Cerrar
+ </string>
<string name="BUTTON_RESTORE">
Maximizar
</string>
@@ -288,6 +291,9 @@
<string name="GroupNameNone">
(ninguno)
</string>
+ <string name="AvalineCaller">
+ Avaline: [ORDER]
+ </string>
<string name="AssetErrorNone">
No hay ningún error
</string>
@@ -883,7 +889,7 @@
Pulsa ESC para salir de la vista subjetiva
</string>
<string name="InventoryNoMatchingItems">
- No se han encontrado tales ítems en el inventario. Intenta con [secondlife:///app/search/groups &quot;Buscar&quot;].
+ ¿No encontraste lo que buscabas? Prueba en la [secondlife:///app/search/all Búsqueda].
</string>
<string name="FavoritesNoMatchingItems">
Arrastra aquí un hito para tenerlo en tus favoritos.
@@ -1542,9 +1548,7 @@
<string name="RegionNoCovenantOtherOwner">
No se ha aportado un contrato para este estado. El terreno de este estado lo vende el propietario del estado, no Linden Lab. Por favor, contacta con ese propietario para informarte sobre la venta.
</string>
- <string name="covenant_last_modified">
- Última modificación:
- </string>
+ <string name="covenant_last_modified" value="Última modificación:"/>
<string name="none_text" value="(no hay)"/>
<string name="never_text" value=" (nunca)"/>
<string name="GroupOwned">
@@ -3221,6 +3225,15 @@ Si sigues recibiendo este mensaje, contacta con [SUPPORT_SITE].
<string name="LocationCtrlComboBtnTooltip">
Historial de mis localizaciones
</string>
+ <string name="LocationCtrlAdultIconTooltip">
+ Región Adulta
+ </string>
+ <string name="LocationCtrlModerateIconTooltip">
+ Región Moderada
+ </string>
+ <string name="LocationCtrlGeneralIconTooltip">
+ Región General
+ </string>
<string name="UpdaterWindowTitle">
Actualizar [APP_NAME]
</string>
@@ -3251,6 +3264,12 @@ Si sigues recibiendo este mensaje, contacta con [SUPPORT_SITE].
<string name="UpdaterFailStartTitle">
Fallo al iniciar el visor
</string>
+ <string name="ItemsComingInTooFastFrom">
+ [APP_NAME]: Los ítems se reciben muy rápido de [FROM_NAME]; desactivada la vista previa automática durante [TIME] sgs.
+ </string>
+ <string name="ItemsComingInTooFast">
+ [APP_NAME]: Los ítems se reciben muy rápido; desactivada la vista previa automática durante [TIME] sgs.
+ </string>
<string name="IM_logging_string">
-- Activado el registro de los mensajes instantáneos --
</string>
@@ -3278,6 +3297,9 @@ Si sigues recibiendo este mensaje, contacta con [SUPPORT_SITE].
<string name="IM_moderator_label">
(Moderador)
</string>
+ <string name="answered_call">
+ Han respondido a tu llamada
+ </string>
<string name="started_call">
Llamada de voz iniciada
</string>
@@ -3359,12 +3381,18 @@ Si sigues recibiendo este mensaje, contacta con [SUPPORT_SITE].
<string name="unread_chat_multiple">
[SOURCES] ha dicho algo nuevo
</string>
+ <string name="session_initialization_timed_out_error">
+ Se ha agotado el tiempo del inicio de sesión
+ </string>
<string name="paid_you_ldollars">
[NAME] te ha pagado [AMOUNT] L$
</string>
<string name="you_paid_ldollars">
Has pagado [AMOUNT] L$ a [NAME] por [REASON].
</string>
+ <string name="you_paid_ldollars_no_info">
+ Has pagado[AMOUNT] L$
+ </string>
<string name="you_paid_ldollars_no_reason">
Has pagado [AMOUNT] L$ a [NAME].
</string>
@@ -3475,4 +3503,13 @@ Denuncia de infracción
<string name="Contents">
Contenidos
</string>
+ <string name="AvatarBirthDateFormat">
+ [day,datetime,slt]/[mthnum,datetime,slt]/[year,datetime,slt]
+ </string>
+ <string name="DefaultMimeType">
+ ninguno/ninguno
+ </string>
+ <string name="texture_load_dimensions_error">
+ No se puede subir imágenes mayores de [WIDTH]*[HEIGHT]
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/fr/floater_about.xml b/indra/newview/skins/default/xui/fr/floater_about.xml
index 21d0b6c10c..681fd203f0 100644
--- a/indra/newview/skins/default/xui/fr/floater_about.xml
+++ b/indra/newview/skins/default/xui/fr/floater_about.xml
@@ -43,13 +43,14 @@ Version Vivox : [VIVOX_VERSION]
</panel>
<panel label="Remerciements" name="credits_panel">
<text_editor name="credits_editor">
- Second Life existe grâce aux efforts de Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Yang, T, Simone, Maestro, Scott, Charlene, Quixote, Amanda, Susan, Zed, Anne, Enkidu, Esbee, Joroan, Katelin, Roxie, Tay, Scarlet, Kevin, Johnny, Wolfgang, Andren, Bob, Howard, Merov, Rand, Ray, Michon, Newell, Galen, Dessie, Les, Michon, Jenelle, Geo, Siz, Shapiro, Pete, Calyle, Selene, Allen, Phoebe, Goldin, Kimmora, Dakota, Slaton, Lindquist, Zoey, Hari, Othello, Rohit, Sheldon, Petra, Viale, Gordon, Kaye, Pink, Ferny, Emerson, Davy, Bri, Chan, Juan, Robert, Terrence, Nathan, Carl et de nombreuses autres personnes.
+ Second Life existe grâce aux efforts de Philip, Tessa, Andrew, Cory, Ian, James, Phoenix, Ryan, Haney, Dan, Char, Ben, John, Tanya, Eddie, Richard, Mitch, Doug, Eric, Frank, Bruce, Aaron, Peter, Alice, Charlie, Debra, Eileen, Helen, Janet, Steffan, Steve, Tom, Mark, Hunter, Xenon, Burgess, Bill, Jim, Lee, Hamlet, Daniel, Jeff, Todd, Sarah, Tim, Stephanie, Colin, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Jack, Vektor, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Jesse, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Yuko, Makiko, Thomas, Harry, Seth, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Brad, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, Beez, Milo, Hermia, Red, Thrax, Gulliver, Joe, Sally, Paul, Jose, Rejean, Dore, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, Dustin, George, Del, Matthew, Cat, Jacqui, Adrian, Viola, Alfred, Noel, Irfan, Yool, Rika, Jane, Frontier, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Jeremy, JP, Jake, Anthony, Maurice, Madhavi, Leopard, Kyle, Joon, Bert, Belinda, Jon, Kristi, Bridie, Pramod, Socrates, Maria, Aric, Adreanne, Jay, Kari, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Colossus, Zen, BigPapi, Pastrami, Kurz, Mani, Neuro, Mel, Sardonyx, MJ, Rowan, Sgt, Elvis, Samuel, Leo, Bryan, Niko, Austin, Soft, Poppy, Rachel, Aki, Banzai, Alexa, Sue, Bender, CG, Angelo, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Rothman, Niall, Marin, Allison, Katie, Dawn, Dusty, Katt, Judy, Andrea, Ambroff, Infinity, Rico, Gail, Kalpana, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Maestro, Simone, Yang, T, Shannon, Nelson, Khanh, Scott, Courtney, Charlene, Quixote, Susan, Zed, Amanda, Katelin, Enkidu, Roxie, Esbee, JoRoan, Scarlet, Tay, Kevin, Wolfgang, Johnny, Ray, Andren, Merov, Bob, Rand, Howard, Callen, Heff, Galen, Newell, Dessie, Les, Michon, Jenelle, Geo, Siz, Shapiro, Pete, Calyle, Selene, Allen, Phoebe, Goldin, Kimmora, Dakota, Slaton, Lindquist, Zoey, Hari, Othello, Rohit, Sheldon, Petra, Viale, Gordon, Kaye, Pink, Ferny, Emerson, Davy, Bri, Chan, Juan, Robert, Terrence, Nathan, Carl, Ashley, JessieAnn, Huseby, Karina, Paris, Kurt, Rick, Lis, Kotler, Theeba, Lynx, Murphy, Doten, Taka, Norm, Jillian, Marcus, Mae, Novack, Esther, Perry, Dana, Ducot, Javier, Porter, Madison, Gecko, Dough, JR, Gisele, Crimp, Norie, Arch, Kimi, Fisher, Barbara, Jason, Peggy, Bernard, Jules, Leroy, Eva, Khederian, Campbell, Vogt, Masido, Karel, Torres, Lo, Breezer, Delby, Rountree, Anna, Servus, Rue, Itiaes, Chuck, Luna, Novella, Zaza, Wen, Gino, Lex, Cassandra, Limey, Nancy, Anukul, Silver, Brodesky, Jinsai, Squid, Gez, Rakesh, Ladan, Edelman, Marcet, Squire, Tatem, Tony, Jerm, Tia, Falcon, BK, Tiggs, Driscoll, Bacon, Timothee, Cru, Carmilla, Coyot, Webb, Kazu, Rudas, LJ, Sea, Ali Wallace, Bewest, Pup, Drub, Dragon, Inoshiro, Byron, Rhett, Xandix, Aimee, Fredrik, Thor, Teddy, Baron, Nelly, Ghengis, Epic, Eli, Stone, Grapes, Irie, Prep, Scobu, Valerie, Alain et bien d&apos;autres.
- Tous nos remerciements aux résidents suivants pour avoir testé cette version (la meilleure qui soit jusqu&apos;à présent) : able whitman, Adeon Writer, adonaira aabye, Aeron Kohime, Agathos Frascati, Aimee Trescothick, Aleric Inglewood, Alissa Sabre, Aminom Marvin, Angela Talamasca, Aralara Rajal, Armin Weatherwax, Ashrilyn Hayashida, Athanasius Skytower, Aura Dirval, Barney Boomslang, Biancaluce Robbiani, Biker Offcourse, Borg Capalini, Bulli Schumann, catherine pfeffer, Chalice Yao, Corre Porta, Court Goodman, Cummere Mayo, Dale Innis, Darien Caldwell, Darjeeling Schoonhoven, Daten Thielt, dimentox travanti, Dirk Talamasca, Drew Dwi, Duckless Vandyke, Elanthius Flagstaff, Electro Burnstein, emiley tomsen, Escort DeFarge, Eva Rau, Ezian Ecksol, Fire Centaur, Fluf Fredriksson, Francisco Koolhoven, Frontera Thor, Frungi Stastny, Gally Young, gearsawe stonecutter, Gigs Taggart, Gordon Wendt, Gudmund Shepherd, Gypsy Paz, Harleen Gretzky, Henri Beauchamp, Inma Rau, Irene Muni, Iskar Ariantho, Jacek Antonelli, JB Kraft, Jessicka Graves, Joeseph Albanese, Joshua Philgarlic, Khyota Wulluf, kirstenlee Cinquetti, Latif Khalifa, Lex Neva, Lilibeth Andree, Lisa Lowe, Lunita Savira, Loosey Demonia, lum pfohl, Marcos Fonzarelli, MartinRJ Fayray, Marusame Arai, Matthew Dowd, Maya Remblai, McCabe Maxsted, Meghan Dench, Melchoir Tokhes, Menos Short, Michelle2 Zenovka, Mimika Oh, Minerva Memel, Mm Alder, Ochi Wolfe, Omei Turnbull, Pesho Replacement, Phantom Ninetails, phoenixflames kukulcan, Polo Gufler, prez pessoa, princess niven, Prokofy Neva, Qie Niangao, Rem Beattie, RodneyLee Jessop, Saijanai Kuhn, Seg Baphomet, Sergen Davies, Shirley Marquez, SignpostMarv Martin, Sindy Tsure, Sira Arbizu, Skips Jigsaw, Sougent Harrop, Spritely Pixel, Squirrel Wood, StarSong Bright, Subversive Writer, Sugarcult Dagger, Sylumm Grigorovich, Tammy Nowotny, Tanooki Darkes, Tayra Dagostino, Theoretical Chemistry, Thickbrick Sleaford, valerie rosewood, Vex Streeter, Vixen Heron, Whoops Babii, Winter Ventura, Xiki Luik, Yann Dufaux, Yina Yao, Yukinoroh Kamachi, Zolute Infinity, Zwagoth Klaar
+Tous nos remerciements aux résidents suivants pour avoir testé cette version (la meilleure qui soit jusqu&apos;à présent) : Drew Dwi, Zai Lynch, Latif Khalifa, Ellla McMahon, Harleen Gretzky, Squirrel Wood, Malarthi Behemoth, Dante Tucker, Buckaroo Mu, Eddi Decosta, Dirk, Talamasca, Torben Trautman, Irene Muni, Lilly Zenovka, Vick Forcella, Sasy Scarborough, Gentle Welinder, Elric Anatine, Techwolf Lupindo, Dusan Writer, WolfPup Lowenhar, Marianne McCann, Fiachra Lach, Sitearm Madonna, Sudane Erato, Sahkolihaa Contepomi, Sachi Vixen, Questar Utu, Dimitrio Lewis, Matto Destiny, Scrim Pinion, Radio Signals, Psi Merlin, Pixel Gausman, Mel Vanbeeck, Laurent Bechir, Lamorna Proctor, Lares Carter, Gwyneth Llewelyn, Hydra Shaftoe, Holger Gilruth, Gentle Heron, Carla Broek, Boroondas Gupte, Fury Rosewood, Flower Ducatillon, Colpo Wexler, gwampa Lomu, Borg Capalini, Beansy Twine, Ardy Lay, , 45ms Zhong, Adeon Writer, Aeonix Aeon, Ai Austin, Aiko Ying, Alexandrea Fride, Alliez Mysterio, Annie Milestone, Annika Genezzia, Ansariel Hiller, ArminasX Saiman, Arya Braveheart, Asaeda Meltingdots, Asturkon Jua, Avallyn Oakleaf, Avatar Quinzet, BabyA Littlething, Bacchus Ireto, Bazaar, Riva, Benjamin Bigdipper, Beth Walcher, Bezilon Kasei, Biancaluce Robbiani, Bill Walach, blakopal Galicia, Blitzckreed Levenque, Bryn Oh, Callipygian Christensen, Cap Carver, Carr Arbenlow, Chantal Harvey, Charles Courtois, Charlie Sazaland, Cherry Cheevers, ChickyBabes Zuzu, Christopher Organiser, Ciaran Laval, Clara Young, Celierra Darling, Corinne Helendale, Corro Moseley, Coughdrop Littlething, Darien Caldwell, Dartagan Shepherd, Debs Regent, Decro Schmooz, Denim Kamachi, DiJodi Dubratt, Dil Spitz, Edgware Marker, Egehan Dryke, Emma Portilo, Emmie Fairymeadow, Evangelista Emerald, Faelon Swordthain, Frenchimmo Sabra, Gaberoonie Zanzibar, Ganymedes Costagravas, Gene Frostbite, GeneJ Composer, Giggles Littlebird, Grady Echegaray, Guni Greenstein, Gypsy Tripsa, Hackshaven Harford, Ham Rambler, Han Shuffle, Hanglow Short, Hatzfeld Runo, herina Bode, Horatio Freund, Hypatia Callisto, Hypatia Pickens, Identity Euler, Imnotgoing Sideways, Innula Zenovka, Iyoba Tarantal, Jack Abraham, Jagga Meredith, Jennifer Boyle, Jeremy Marquez, Jessica Qin, Jinx Nordberg, Jo Bernandes, Jocial Sonnenkern, Joel Savard, Jondan Lundquist, Josef Munster, Josette Windlow, Juilan Tripsa, Juro Kothari, Justin RiversRunRed, Kagehi Kohn, Kaimen Takahe, Keklily Longfall, Ken Lavender, Kestral Karas, Khisme Nitely, Kimar Coba, Kithrak Kirkorian, Kitty Barnett, Kolor Fall, Komiko Okamoto, Korvel Noh, Larry Pixel, Leal Choche, len Starship, Lenae Munz, Lexi Frua, Lillie Cordeaux, Lizzy Macarthur, LSL Scientist, Luban Yiyuan, Luc Starsider, Maccus McCullough, Madison Blanc, Maggie Darwin, Mallory Destiny, Manx Wharton, Marc Claridge, Marc2 Sands, Matthew Anthony, Maxim RiversRunRed, Medhue Simoni, Melinda Latynina, Mencius Watts, Michi Lumin, Midian Farspire, Miles Glaz, Mindy Mathy, Mitch Wagner, Mo Hax, Mourna Biziou, Nao Noe, naofan Teardrop, Naomah Beaumont, Nathiel Siamendes, Nber Medici, Neko Link, Netpat Igaly, Neutron Chesnokov, Newfie Pendragon, Nicholai Laviscu, Nick Rhodes, Nicoladie Gymnast, Ollie Kubrick, Orenj Marat, Orion Delphis, Oryx Tempel, Parvati Silverweb, PeterPunk Mooney, Pixel Scientist, Pounce Teazle, Professor Noarlunga, Quantum Destiny, Quicksilver Hermes, Ralf Setsuko, RAT Quan, RedMokum Bravin, Revolution Perenti, Rezit Sideways, Rich Grainger, Rosco Teardrop, Rose Evans, Rudee Voom, RufusTT Horsefly, Saii Hallard, SaintLEOlions Zimer, Samm Larkham, Satanello Miami, SexySteven Morrisey, Sheet Spotter, Shnurui Troughton, sicarius Thorne, Sicarius Toxx, Sini Nubalo, SLB Wirefly, snowy Sidran, Soupa Segura, ST Mensing, Starshine Halasy, Stickman Ingmann, Synystyr Texan, Takeda Terrawyng, Tali Rosca, Templar Merlin, Tezcatlipoca Bisiani, Tiel Stonecutter, Tony Kembia, TouchaHoney Perhaps, Trey Reanimator, TriloByte Zanzibar, Trinity Dechou, Trinity Dejavu, Unlikely Quintessa, UsikuFarasi Kanarik, Veritas Raymaker, Vex Streeter, Viaticus Speculaas, Villain Baroque, Vixie Durant, Void Singer, Watty Berkson, Westley Schridde, Westley Streeter, Whimsy Winx, Winter Ventura, Wundur Primbee, xstorm Radek, YongYong Francois, Zak Westminster, Zana Kohime, Zaren Alexander, Zeja Pyle, ZenMondo Wormser, Zoex Flanagan et bien d&apos;autres.
-Pour réussir dans les affaires, soyez audacieux, créatif et différent. - Henry Marchant
+
+« Le travail continue, la cause demeure, l&apos;espoir vit encore et le rêve ne mourra jamais » - Edward Kennedy
</text_editor>
</panel>
<panel label="Licences" name="licenses_panel">
diff --git a/indra/newview/skins/default/xui/fr/floater_animation_preview.xml b/indra/newview/skins/default/xui/fr/floater_animation_preview.xml
index e0cb0ef524..aa42fe6150 100644
--- a/indra/newview/skins/default/xui/fr/floater_animation_preview.xml
+++ b/indra/newview/skins/default/xui/fr/floater_animation_preview.xml
@@ -142,36 +142,36 @@ main
Expression
</text>
<combo_box label="" name="emote_combo" tool_tip="Contrôle ce que fait le visage pendant l&apos;animation">
- <combo_box.item label="(aucun)" name="[None]"/>
- <combo_box.item label="Aaaaah" name="Aaaaah"/>
- <combo_box.item label="Effrayé" name="Afraid"/>
- <combo_box.item label="En colère" name="Angry"/>
- <combo_box.item label="Grand sourire" name="BigSmile"/>
- <combo_box.item label="Ennui" name="Bored"/>
- <combo_box.item label="Pleurer" name="Cry"/>
- <combo_box.item label="Mépris" name="Disdain"/>
- <combo_box.item label="Gêne" name="Embarrassed"/>
- <combo_box.item label="Froncer les sourcils" name="Frown"/>
- <combo_box.item label="Embrasser" name="Kiss"/>
- <combo_box.item label="Rire" name="Laugh"/>
- <combo_box.item label="Plllppt" name="Plllppt"/>
- <combo_box.item label="Dégoût" name="Repulsed"/>
- <combo_box.item label="Triste" name="Sad"/>
- <combo_box.item label="Hausser les épaules" name="Shrug"/>
- <combo_box.item label="Sourire" name="Smile"/>
- <combo_box.item label="Surprise" name="Surprise"/>
- <combo_box.item label="Clin d&apos;œil" name="Wink"/>
- <combo_box.item label="Soucis" name="Worry"/>
+ <item label="(aucun)" name="[None]" value=""/>
+ <item label="Aaaaah" name="Aaaaah" value="Aaaaah"/>
+ <item label="Effrayé" name="Afraid" value="Effrayé"/>
+ <item label="En colère" name="Angry" value="En colère"/>
+ <item label="Grand sourire" name="BigSmile" value="Grand sourire"/>
+ <item label="Ennui" name="Bored" value="Ennui"/>
+ <item label="Pleurer" name="Cry" value="Pleurer"/>
+ <item label="Mépris" name="Disdain" value="Mépris"/>
+ <item label="Gêne" name="Embarrassed" value="Gêne"/>
+ <item label="Froncer les sourcils" name="Frown" value="Froncer les sourcils"/>
+ <item label="Embrasser" name="Kiss" value="Embrasser"/>
+ <item label="Rire" name="Laugh" value="Rire"/>
+ <item label="Plllppt" name="Plllppt" value="Tirer la langue"/>
+ <item label="Dégoût" name="Repulsed" value="Dégoût"/>
+ <item label="Triste" name="Sad" value="Triste"/>
+ <item label="Hausser les épaules" name="Shrug" value="Hausser les épaules"/>
+ <item label="Sourire" name="Smile" value="Sourire"/>
+ <item label="Surprise" name="Surprise" value="Surprise"/>
+ <item label="Clin d&apos;œil" name="Wink" value="Clin d&apos;œil"/>
+ <item label="Soucis" name="Worry" value="Inquiétude"/>
</combo_box>
<text name="preview_label">
Prévisualiser
pendant
</text>
<combo_box label="" name="preview_base_anim" tool_tip="Utilisez cette option pour tester votre animation pendant que votre avatar fait des choses banales.">
- <combo_box.item label="Debout" name="Standing"/>
- <combo_box.item label="Marche" name="Walking"/>
- <combo_box.item label="Assis" name="Sitting"/>
- <combo_box.item label="Vol" name="Flying"/>
+ <item label="Debout" name="Standing" value="Debout"/>
+ <item label="Marche" name="Walking" value="Marche"/>
+ <item label="Assis" name="Sitting" value="Assis"/>
+ <item label="Vol" name="Flying" value="Vol"/>
</combo_box>
<spinner label="Transition début (s)" name="ease_in_time" tool_tip="Durée (en secondes) de l&apos;entrée en fondu de l&apos;animation"/>
<spinner label="Transition fin (s)" name="ease_out_time" tool_tip="Durée (en secondes) de la sortie en fondu de l&apos;animation"/>
diff --git a/indra/newview/skins/default/xui/fr/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/fr/floater_day_cycle_options.xml
index ec3b246c76..87c8847cbd 100644
--- a/indra/newview/skins/default/xui/fr/floater_day_cycle_options.xml
+++ b/indra/newview/skins/default/xui/fr/floater_day_cycle_options.xml
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="Day Cycle Floater" title="EDITEUR DU CYCLE DU JOUR">
<tab_container name="Day Cycle Tabs">
<panel label="Cycle du jour" name="Day Cycle">
- <button label="?" name="WLDayCycleHelp" />
+ <button label="?" name="WLDayCycleHelp"/>
<text name="WL12am">
Min.
</text>
@@ -70,28 +70,25 @@
<text name="WLCurKeyTimeText2">
Préréglages clés :
</text>
- <combo_box label="Préréglage" name="WLKeyPresets" />
+ <combo_box label="Préréglage" name="WLKeyPresets"/>
<text name="DayCycleText">
Snap :
</text>
- <combo_box label="5 min" name="WLSnapOptions" />
+ <combo_box label="5 min" name="WLSnapOptions"/>
<text name="DayCycleText2">
Durée du cycle :
</text>
<spinner label="Heure" name="WLLengthOfDayHour"/>
- <spinner label="Min" name="WLLengthOfDayMin" />
+ <spinner label="Min" name="WLLengthOfDayMin"/>
<spinner label="S" name="WLLengthOfDaySec"/>
<text name="DayCycleText3">
- Prévisualiser :
+ Aperçu :
</text>
<button label="Lire" label_selected="Lire" name="WLAnimSky"/>
- <button label="Stop !" label_selected="Stop" name="WLStopAnimSky" />
- <button label="Utiliser heure domaine" label_selected="Aller heure domaine"
- name="WLUseLindenTime" />
- <button label="Enregistrer jour test" label_selected="Enregistrer jour test"
- name="WLSaveDayCycle" />
- <button label="Charger jour test" label_selected="Charger jour test"
- name="WLLoadDayCycle" />
+ <button label="Stop !" label_selected="Stop" name="WLStopAnimSky"/>
+ <button label="Utiliser heure domaine" label_selected="Aller heure domaine" name="WLUseLindenTime"/>
+ <button label="Enregistrer jour test" label_selected="Enregistrer jour test" name="WLSaveDayCycle"/>
+ <button label="Charger jour test" label_selected="Charger jour test" name="WLLoadDayCycle"/>
</panel>
</tab_container>
</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_god_tools.xml b/indra/newview/skins/default/xui/fr/floater_god_tools.xml
index e20da40bcf..e4c53d866c 100644
--- a/indra/newview/skins/default/xui/fr/floater_god_tools.xml
+++ b/indra/newview/skins/default/xui/fr/floater_god_tools.xml
@@ -2,12 +2,11 @@
<floater name="godtools floater" title="OUTILS DIVINS">
<tab_container name="GodTools Tabs">
<panel label="Grille" name="grid">
- <button label="Éjecter tous les résidents" label_selected="Éjecter tous les résidents" name="Kick all users" width="175"/>
<button label="Vider le cache cartographique de la région" label_selected="Vider le cache cartographique de la région" name="Flush This Region&apos;s Map Visibility Caches" width="285"/>
</panel>
<panel label="Région" name="region">
- <text name="Sim Name:" width="70">
- Nom du sim :
+ <text name="Region Name:">
+ Nom de la région :
</text>
<line_editor left="85" name="region name" width="198"/>
<check_box label="Initiation" name="check prelude" tool_tip="Définir cette région comme zone d&apos;initiation."/>
@@ -55,8 +54,8 @@
<panel.string name="no_target">
(aucune cible)
</panel.string>
- <text name="Sim Name:" width="70">
- Nom du sim :
+ <text name="Region Name:">
+ Nom de la région :
</text>
<text left_delta="75" name="region name">
Welsh
diff --git a/indra/newview/skins/default/xui/fr/floater_image_preview.xml b/indra/newview/skins/default/xui/fr/floater_image_preview.xml
index a28e0bd7d5..3d405f358d 100644
--- a/indra/newview/skins/default/xui/fr/floater_image_preview.xml
+++ b/indra/newview/skins/default/xui/fr/floater_image_preview.xml
@@ -10,16 +10,16 @@
Prévisualiser comme :
</text>
<combo_box label="Habits" left="126" name="clothing_type_combo">
- <combo_box.item label="Image" name="Image"/>
- <combo_box.item label="Cheveux" name="Hair"/>
- <combo_box.item label="Tête de femme" name="FemaleHead"/>
- <combo_box.item label="Corps de femme (haut)" name="FemaleUpperBody"/>
- <combo_box.item label="Corps de femme (bas)" name="FemaleLowerBody"/>
- <combo_box.item label="Tête d&apos;homme" name="MaleHead"/>
- <combo_box.item label="Corps d&apos;homme (haut)" name="MaleUpperBody"/>
- <combo_box.item label="Corps d&apos;homme (bas)" name="MaleLowerBody"/>
- <combo_box.item label="Jupe" name="Skirt"/>
- <combo_box.item label="Sculptie" name="SculptedPrim"/>
+ <item label="Image" name="Image" value="Image"/>
+ <item label="Cheveux" name="Hair" value="Cheveux"/>
+ <item label="Tête de femme" name="FemaleHead" value="Tête de femme"/>
+ <item label="Corps de femme (haut)" name="FemaleUpperBody" value="Corps de femme (haut)"/>
+ <item label="Corps de femme (bas)" name="FemaleLowerBody" value="Corps de femme (bas)"/>
+ <item label="Tête d&apos;homme" name="MaleHead" value="Tête d&apos;homme"/>
+ <item label="Corps d&apos;homme (haut)" name="MaleUpperBody" value="Corps d&apos;homme (haut)"/>
+ <item label="Corps d&apos;homme (bas)" name="MaleLowerBody" value="Corps d&apos;homme (bas)"/>
+ <item label="Jupe" name="Skirt" value="Jupe"/>
+ <item label="Sculptie" name="SculptedPrim" value="Sculptie"/>
</combo_box>
<text name="bad_image_text">
Impossible de lire l&apos;image.
diff --git a/indra/newview/skins/default/xui/fr/floater_outgoing_call.xml b/indra/newview/skins/default/xui/fr/floater_outgoing_call.xml
index 2420c2b04b..089d710f17 100644
--- a/indra/newview/skins/default/xui/fr/floater_outgoing_call.xml
+++ b/indra/newview/skins/default/xui/fr/floater_outgoing_call.xml
@@ -28,7 +28,7 @@
Vous avez été déconnecté(e) de [VOICE_CHANNEL_NAME]. [RECONNECT_NEARBY]
</text>
<text name="nearby_P2P_by_other">
- [VOICE_CHANNEL_NAME] a mis fin à l&apos;appel. [RECONNECT_NEARBY]
+ Votre appel a pris fin. [RECONNECT_NEARBY]
</text>
<text name="nearby_P2P_by_agent">
Vous avez mis fin à l&apos;appel. [RECONNECT_NEARBY]
diff --git a/indra/newview/skins/default/xui/fr/floater_snapshot.xml b/indra/newview/skins/default/xui/fr/floater_snapshot.xml
index ccb862acac..381a513bda 100644
--- a/indra/newview/skins/default/xui/fr/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/fr/floater_snapshot.xml
@@ -1,79 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Snapshot" title="APERÇU DE LA PHOTO" width="247">
- <text name="type_label">
- Destination de la photo
- </text>
- <radio_group label="Type de photo" name="snapshot_type_radio" width="228">
- <radio_item label="E-mail" name="postcard"/>
- <radio_item label="Mon inventaire ([AMOUNT] L$)" name="texture"/>
- <radio_item label="Enregistrer sur mon ordinateur" name="local"/>
- </radio_group>
- <button label="Plus" name="more_btn" tool_tip="Options avancées"/>
- <button label="Moins" name="less_btn" tool_tip="Options avancées"/>
- <text name="type_label2">
- Taille
- </text>
- <text name="format_label">
- Format
- </text>
- <combo_box label="Résolution" name="postcard_size_combo">
- <combo_box.item label="640 x 480" name="640x480"/>
- <combo_box.item label="800 x 600" name="800x600"/>
- <combo_box.item label="1024 x 768" name="1024x768"/>
- <combo_box.item label="Fenêtre actuelle" name="CurrentWindow"/>
- <combo_box.item label="Personnaliser" name="Custom"/>
- </combo_box>
- <combo_box label="Résolution" name="texture_size_combo">
- <combo_box.item label="Fenêtre actuelle" name="CurrentWindow"/>
- <combo_box.item label="Petite (128 x 128)" name="Small(128x128)"/>
- <combo_box.item label="Moyenne (256 x 256)" name="Medium(256x256)"/>
- <combo_box.item label="Grande (512 x 512)" name="Large(512x512)"/>
- <combo_box.item label="Personnaliser" name="Custom"/>
- </combo_box>
- <combo_box label="Résolution" name="local_size_combo">
- <combo_box.item label="Fenêtre actuelle" name="CurrentWindow"/>
- <combo_box.item label="320 x 240" name="320x240"/>
- <combo_box.item label="640 x 480" name="640x480"/>
- <combo_box.item label="800 x 600" name="800x600"/>
- <combo_box.item label="1024 x 768" name="1024x768"/>
- <combo_box.item label="1280 x 1024" name="1280x1024"/>
- <combo_box.item label="1600 x 1200" name="1600x1200"/>
- <combo_box.item label="Personnaliser" name="Custom"/>
- </combo_box>
- <combo_box label="Format" name="local_format_combo">
- <combo_box.item label="PNG" name="PNG"/>
- <combo_box.item label="JPEG" name="JPEG"/>
- <combo_box.item label="BMP" name="BMP"/>
- </combo_box>
- <spinner label="Largeur" label_width="44" name="snapshot_width" width="101"/>
- <spinner label="Hauteur" label_width="46" left="121" name="snapshot_height" width="101"/>
- <slider label="Qualité de l&apos;image" name="image_quality_slider"/>
- <text name="layer_type_label">
- Capturer :
- </text>
- <combo_box label="Couches de l&apos;image" name="layer_types">
- <combo_box.item label="Couleurs" name="Colors"/>
- <combo_box.item label="Profondeur" name="Depth"/>
- <combo_box.item label="Matte des objets" name="ObjectMattes"/>
- </combo_box>
- <text name="file_size_label">
- [SIZE] Ko
- </text>
- <check_box label="Interface" name="ui_check"/>
- <check_box label="HUD" name="hud_check"/>
- <check_box label="Garder ouvert après enregistrement" name="keep_open_check"/>
- <check_box label="Conserver les proportions" name="keep_aspect_check"/>
- <check_box label="Figer l&apos;image (plein écran)" name="freeze_frame_check"/>
- <button label="Rafraîchir" name="new_snapshot_btn"/>
- <check_box label="Rafraîchissement automatique" name="auto_snapshot_check"/>
- <button label="Enregistrer ([AMOUNT] L$)" name="upload_btn" width="118"/>
- <button label="Envoyer" name="send_btn" width="118"/>
- <flyout_button label="Enregistrer" name="save_btn" tool_tip="Enregistrer l&apos;image dans un fichier" width="118">
- <flyout_button.item label="Enregistrer" name="save_item"/>
- <flyout_button.item label="Enregistrer sous..." name="saveas_item"/>
- </flyout_button>
- <button label="Annuler" left="133" name="discard_btn" width="72"/>
- <string name="unknown">
+<floater name="Snapshot" title="Photo" width="247">
+ <floater.string name="unknown">
inconnu
- </string>
+ </floater.string>
+ <button label="Rafraîchir" name="new_snapshot_btn"/>
+ <line_editor label="Description" name="description"/>
+ <button label="Partager" name="share"/>
+ <button label="Partage Web" name="share_to_web"/>
+ <button label="Dans mon inventaire" name="save_to_inventory"/>
+ <button label="Enregistrer" name="save"/>
+ <button label="Envoi par e-mail" name="share_to_email"/>
+ <button label="Sur mon ordinateur" name="save_to_computer"/>
+ <button label="Image de profil" name="set_profile_pic"/>
+ <button label="Précédent" name="cancel"/>
</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_tos.xml b/indra/newview/skins/default/xui/fr/floater_tos.xml
index cdfd26f402..8a2a1e1d25 100644
--- a/indra/newview/skins/default/xui/fr/floater_tos.xml
+++ b/indra/newview/skins/default/xui/fr/floater_tos.xml
@@ -1,22 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="modal container" title=" ">
+ <floater.string name="real_url">
+ http://secondlife.com/app/tos/
+ </floater.string>
+ <floater.string name="loading_url">
+ data:text/html,%3Chtml%3E%3Chead%3E%3C/head%3E%3Cbody text=%22000000%22%3E%3Ch2%3E Loading %3Ca%20target%3D%22_external%22%20href%3D%22http%3A//secondlife.com/app/tos/%22%3ETerms%20of%20Service%3C/a%3E...%3C/h2%3E %3C/body%3E %3C/html%3E
+ </floater.string>
<button label="Continuer" label_selected="Continuer" name="Continue"/>
<button label="Annuler" label_selected="Annuler" name="Cancel"/>
- <radio_group name="tos_agreement">
- <radio_item label="Je n&apos;accepte pas les Conditions Générales d&apos;Utilisation" name="radio_disagree"/>
- <radio_item label="J&apos;accepte les Conditions Générales d&apos;Utilisation" name="radio_agree"/>
- </radio_group>
- <text name="tos_title">
- Acceptation des Conditions Générales d&apos;Utilisation
- </text>
<check_box label="J&apos;accepte les Conditions d&apos;utilisation et le Règlement sur le respect de la vie privée" name="agree_chk"/>
<text name="tos_heading">
Veuillez lire attentivement les Conditions d&apos;utilisation et le Règlement sur le respect de la vie privée suivants. Vous devez les accepter pour pouvoir vous connecter à [SECOND_LIFE].
</text>
- <text_editor name="tos_text">
- TOS_TEXT
- </text_editor>
- <text name="real_url">
- http://secondlife.com/app/tos/
- </text>
</floater>
diff --git a/indra/newview/skins/default/xui/fr/menu_attachment_other.xml b/indra/newview/skins/default/xui/fr/menu_attachment_other.xml
index 8d51c1b4e3..f48513eb2b 100644
--- a/indra/newview/skins/default/xui/fr/menu_attachment_other.xml
+++ b/indra/newview/skins/default/xui/fr/menu_attachment_other.xml
@@ -10,7 +10,7 @@
<menu_item_call label="Signaler" name="abuse"/>
<menu_item_call label="Figer" name="Freeze..."/>
<menu_item_call label="Expulser" name="Eject..."/>
- <menu_item_call label="Débogage" name="Debug..."/>
+ <menu_item_call label="Déboguer les textures" name="Debug..."/>
<menu_item_call label="Zoomer en avant" name="Zoom In"/>
<menu_item_call label="Payer" name="Pay..."/>
<menu_item_call label="Profil de l&apos;objet" name="Object Inspect"/>
diff --git a/indra/newview/skins/default/xui/fr/menu_attachment_self.xml b/indra/newview/skins/default/xui/fr/menu_attachment_self.xml
index 999a1c156c..8bc3182198 100644
--- a/indra/newview/skins/default/xui/fr/menu_attachment_self.xml
+++ b/indra/newview/skins/default/xui/fr/menu_attachment_self.xml
@@ -9,4 +9,5 @@
<menu_item_call label="Mes amis" name="Friends..."/>
<menu_item_call label="Mes groupes" name="Groups..."/>
<menu_item_call label="Mon profil" name="Profile..."/>
+ <menu_item_call label="Déboguer les textures" name="Debug..."/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_avatar_other.xml b/indra/newview/skins/default/xui/fr/menu_avatar_other.xml
index b42271e969..08d1a20361 100644
--- a/indra/newview/skins/default/xui/fr/menu_avatar_other.xml
+++ b/indra/newview/skins/default/xui/fr/menu_avatar_other.xml
@@ -10,7 +10,7 @@
<menu_item_call label="Signaler" name="abuse"/>
<menu_item_call label="Figer" name="Freeze..."/>
<menu_item_call label="Expulser" name="Eject..."/>
- <menu_item_call label="Débogage" name="Debug..."/>
+ <menu_item_call label="Déboguer les textures" name="Debug..."/>
<menu_item_call label="Zoomer en avant" name="Zoom In"/>
<menu_item_call label="Payer" name="Pay..."/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_avatar_self.xml b/indra/newview/skins/default/xui/fr/menu_avatar_self.xml
index c8643708da..17899b491b 100644
--- a/indra/newview/skins/default/xui/fr/menu_avatar_self.xml
+++ b/indra/newview/skins/default/xui/fr/menu_avatar_self.xml
@@ -24,4 +24,5 @@
<menu_item_call label="Mes amis" name="Friends..."/>
<menu_item_call label="Mes groupes" name="Groups..."/>
<menu_item_call label="Mon profil" name="Profile..."/>
+ <menu_item_call label="Déboguer les textures" name="Debug..."/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_edit.xml b/indra/newview/skins/default/xui/fr/menu_edit.xml
new file mode 100644
index 0000000000..56669f31e1
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/menu_edit.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu label="Modifier" name="Edit">
+ <menu_item_call label="Annuler" name="Undo"/>
+ <menu_item_call label="Refaire" name="Redo"/>
+ <menu_item_call label="Couper" name="Cut"/>
+ <menu_item_call label="Copier" name="Copy"/>
+ <menu_item_call label="Coller" name="Paste"/>
+ <menu_item_call label="Supprimer" name="Delete"/>
+ <menu_item_call label="Dupliquer" name="Duplicate"/>
+ <menu_item_call label="Tout sélectionner" name="Select All"/>
+ <menu_item_call label="Désélectionner" name="Deselect"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/fr/menu_inspect_avatar_gear.xml
index 0da9a1806d..8bda133a0b 100644
--- a/indra/newview/skins/default/xui/fr/menu_inspect_avatar_gear.xml
+++ b/indra/newview/skins/default/xui/fr/menu_inspect_avatar_gear.xml
@@ -11,7 +11,7 @@
<menu_item_call label="Signaler" name="report"/>
<menu_item_call label="Figer" name="freeze"/>
<menu_item_call label="Expulser" name="eject"/>
- <menu_item_call label="Débogage" name="debug"/>
+ <menu_item_call label="Déboguer les textures" name="debug"/>
<menu_item_call label="Situer sur la carte" name="find_on_map"/>
<menu_item_call label="Zoomer en avant" name="zoom_in"/>
<menu_item_call label="Payer" name="pay"/>
diff --git a/indra/newview/skins/default/xui/fr/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/fr/menu_inspect_self_gear.xml
index d28d36bca7..b7dafca5ce 100644
--- a/indra/newview/skins/default/xui/fr/menu_inspect_self_gear.xml
+++ b/indra/newview/skins/default/xui/fr/menu_inspect_self_gear.xml
@@ -5,4 +5,5 @@
<menu_item_call label="Mon profil" name="my_profile"/>
<menu_item_call label="Mes amis" name="my_friends"/>
<menu_item_call label="Mes groupes" name="my_groups"/>
+ <menu_item_call label="Déboguer les textures" name="Debug..."/>
</menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_inv_offer_chiclet.xml b/indra/newview/skins/default/xui/fr/menu_inv_offer_chiclet.xml
new file mode 100644
index 0000000000..a9b2883cca
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/menu_inv_offer_chiclet.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="InvOfferChiclet Menu">
+ <menu_item_call label="Fermer" name="Close"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_inventory.xml b/indra/newview/skins/default/xui/fr/menu_inventory.xml
index 2f6f25dc6b..a7334db46d 100644
--- a/indra/newview/skins/default/xui/fr/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/fr/menu_inventory.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="Popup">
+ <menu_item_call label="Partager" name="Share"/>
<menu_item_call label="Acheter" name="Task Buy"/>
<menu_item_call label="Ouvrir" name="Task Open"/>
<menu_item_call label="Jouer" name="Task Play"/>
@@ -49,9 +50,9 @@
<menu_item_call label="Remplacer la tenue actuelle" name="Replace Outfit"/>
<menu_item_call label="Ajouter à la tenue actuelle" name="Add To Outfit"/>
<menu_item_call label="Enlever de la tenue actuelle" name="Remove From Outfit"/>
+ <menu_item_call label="Trouver l&apos;original" name="Find Original"/>
<menu_item_call label="Purger l&apos;objet" name="Purge Item"/>
<menu_item_call label="Restaurer l&apos;objet" name="Restore Item"/>
- <menu_item_call label="Trouver l&apos;original" name="Find Original"/>
<menu_item_call label="Ouvrir" name="Open"/>
<menu_item_call label="Propriétés" name="Properties"/>
<menu_item_call label="Renommer" name="Rename"/>
diff --git a/indra/newview/skins/default/xui/fr/menu_login.xml b/indra/newview/skins/default/xui/fr/menu_login.xml
index fc42b02908..b712c008cd 100644
--- a/indra/newview/skins/default/xui/fr/menu_login.xml
+++ b/indra/newview/skins/default/xui/fr/menu_login.xml
@@ -8,18 +8,8 @@
<menu_item_call label="Aide de [SECOND_LIFE]" name="Second Life Help"/>
<menu_item_call label="À propos de [APP_NAME]" name="About Second Life"/>
</menu>
+ <menu_item_check label="Afficher le menu de débogage" name="Show Debug Menu"/>
<menu label="Débogage" name="Debug">
- <menu label="Éditer" name="Edit">
- <menu_item_call label="Annuler" name="Undo"/>
- <menu_item_call label="Refaire" name="Redo"/>
- <menu_item_call label="Couper" name="Cut"/>
- <menu_item_call label="Copier" name="Copy"/>
- <menu_item_call label="Coller" name="Paste"/>
- <menu_item_call label="Supprimer" name="Delete"/>
- <menu_item_call label="Dupliquer" name="Duplicate"/>
- <menu_item_call label="Tout sélectionner" name="Select All"/>
- <menu_item_call label="Désélectionner" name="Deselect"/>
- </menu>
<menu_item_call label="Afficher les paramètres de débogage" name="Debug Settings"/>
<menu_item_call label="Paramètres de couleurs/interface" name="UI/Color Settings"/>
<menu_item_call label="Outil d&apos;aperçu XUI" name="UI Preview Tool"/>
@@ -28,5 +18,7 @@
<menu_item_call label="Afficher les conditions d&apos;utilisation" name="TOS"/>
<menu_item_call label="Afficher le message critique" name="Critical"/>
<menu_item_call label="Test du navigateur Web" name="Web Browser Test"/>
+ <menu_item_check label="Afficher le sélecteur de grille" name="Show Grid Picker"/>
+ <menu_item_call label="Afficher la console des notifications" name="Show Notifications Console"/>
</menu>
</menu_bar>
diff --git a/indra/newview/skins/default/xui/fr/menu_participant_list.xml b/indra/newview/skins/default/xui/fr/menu_participant_list.xml
index c8f5b5f1ad..4434a8e53d 100644
--- a/indra/newview/skins/default/xui/fr/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/fr/menu_participant_list.xml
@@ -8,6 +8,7 @@
<menu_item_call label="Appeler" name="Call"/>
<menu_item_call label="Partager" name="Share"/>
<menu_item_call label="Payer" name="Pay"/>
+ <menu_item_check label="Afficher les icônes des résidents" name="View Icons"/>
<menu_item_check label="Bloquer le chat vocal" name="Block/Unblock"/>
<menu_item_check label="Ignorer le texte" name="MuteText"/>
<context_menu label="Options du modérateur &gt;" name="Moderator Options">
diff --git a/indra/newview/skins/default/xui/fr/menu_save_outfit.xml b/indra/newview/skins/default/xui/fr/menu_save_outfit.xml
new file mode 100644
index 0000000000..fbec933382
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/menu_save_outfit.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="save_outfit_menu">
+ <menu_item_call label="Enregistrer" name="save_outfit"/>
+ <menu_item_call label="Enregistrer comme nouvelle" name="save_as_new_outfit"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_script_chiclet.xml b/indra/newview/skins/default/xui/fr/menu_script_chiclet.xml
new file mode 100644
index 0000000000..46efa30bd6
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/menu_script_chiclet.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="ScriptChiclet Menu">
+ <menu_item_call label="Fermer" name="Close"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_viewer.xml b/indra/newview/skins/default/xui/fr/menu_viewer.xml
index b8a3b65101..64270cbe73 100644
--- a/indra/newview/skins/default/xui/fr/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/fr/menu_viewer.xml
@@ -31,6 +31,7 @@
<menu_item_call label="Photo" name="Take Snapshot"/>
<menu_item_call label="Créer un repère pour ce lieu" name="Create Landmark Here"/>
<menu label="Profil du lieu" name="Land">
+ <menu_item_call label="Profil du lieu" name="Place Profile"/>
<menu_item_call label="À propos du terrain" name="About Land"/>
<menu_item_call label="Région/Domaine" name="Region/Estate"/>
</menu>
@@ -66,17 +67,6 @@
<menu_item_call label="Outil de création" name="Create"/>
<menu_item_call label="Outil Terrain" name="Land"/>
</menu>
- <menu label="Édition" name="Edit">
- <menu_item_call label="Annuler" name="Undo"/>
- <menu_item_call label="Refaire" name="Redo"/>
- <menu_item_call label="Couper" name="Cut"/>
- <menu_item_call label="Copier" name="Copy"/>
- <menu_item_call label="Coller" name="Paste"/>
- <menu_item_call label="Supprimer" name="Delete"/>
- <menu_item_call label="Dupliquer" name="Duplicate"/>
- <menu_item_call label="Tout sélectionner" name="Select All"/>
- <menu_item_call label="Désélectionner" name="Deselect"/>
- </menu>
<menu_item_call label="Lien" name="Link"/>
<menu_item_call label="Annuler le lien" name="Unlink"/>
<menu_item_check label="Modifier les parties liées" name="Edit Linked Parts"/>
@@ -124,6 +114,7 @@
<menu_item_call label="À propos de [APP_NAME]" name="About Second Life"/>
</menu>
<menu label="Avancé" name="Advanced">
+ <menu_item_check label="Afficher le menu Avancé" name="Show Advanced Menu"/>
<menu_item_call label="Arrêter mon animation" name="Stop Animating My Avatar"/>
<menu_item_call label="Refixer les textures" name="Rebake Texture"/>
<menu_item_call label="Taille de l&apos;interface par défaut" name="Set UI Size to Default"/>
@@ -145,7 +136,6 @@
<menu_item_check label="Mettre la transparence en surbrillance" name="Highlight Transparent"/>
<menu_item_check label="Afficher les éléments HUD" name="Show HUD Attachments"/>
<menu_item_check label="Afficher le réticule de la vue subjective" name="ShowCrosshairs"/>
- <menu_item_check label="Afficher les info-bulles de terrain" name="Land Tips"/>
</menu>
<menu label="Types de rendu" name="Rendering Types">
<menu_item_check label="Simple" name="Simple"/>
diff --git a/indra/newview/skins/default/xui/fr/notifications.xml b/indra/newview/skins/default/xui/fr/notifications.xml
index 38c6b57f5c..d38afe13d2 100644
--- a/indra/newview/skins/default/xui/fr/notifications.xml
+++ b/indra/newview/skins/default/xui/fr/notifications.xml
@@ -351,7 +351,7 @@ Voulez-vous vraiment continuer ?
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="DeleteAvatarPick">
- Supprimer le favori [PICK] ?
+ Supprimer la sélection &lt;nolink&gt;[PICK]&lt;/nolink&gt; ?
<usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
</notification>
<notification name="PromptGoToEventsPage">
@@ -925,6 +925,16 @@ Proposer à [NAME] de devenir votre ami(e) ?
<button name="Cancel" text="Annuler"/>
</form>
</notification>
+ <notification label="Enregistrer la tenue" name="SaveOutfitAs">
+ Enregistrer ce que je porte comme nouvelle tenue :
+ <form name="form">
+ <input name="message">
+ [DESC] (nouv.)
+ </input>
+ <button name="Offer" text="OK"/>
+ <button name="Cancel" text="Annuler"/>
+ </form>
+ </notification>
<notification name="RemoveFromFriends">
Voulez-vous supprimer [FIRST_NAME] [LAST_NAME] de votre liste d&apos;amis ?
<usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
@@ -1407,6 +1417,10 @@ Les chats et les messages instantanés ne s&apos;afficheront pas. Les messages i
Vous téléporter vers [CLASSIFIED] ?
<usetemplate ignoretext="Confirmer que je veux me téléporter à un endroit dans les Petites annonces" name="okcancelignore" notext="Annuler" yestext="Téléporter"/>
</notification>
+ <notification name="TeleportToHistoryEntry">
+ Vous téléporter vers [HISTORY_ENTRY] ?
+ <usetemplate ignoretext="Confirmer que je veux me téléporter à un endroit de l&apos;historique" name="okcancelignore" notext="Annuler" yestext="Téléporter"/>
+ </notification>
<notification label="Envoyer un message à tout le monde dans votre domaine" name="MessageEstate">
Saisissez un message court qui sera envoyé à tous les résidents se trouvant actuellement sur votre domaine.
<form name="form">
@@ -1498,6 +1512,9 @@ En cliquant sur Modifier les préférences, vous pourrez changer votre catégori
<ignore name="ignore" text="La catégorie de contenu que j&apos;ai choisie m&apos;empêche de pénétrer dans une région"/>
</form>
</notification>
+ <notification name="PreferredMaturityChanged">
+ Votre préférence de catégorie de contenu est désormais [RATING].
+ </notification>
<notification name="LandClaimAccessBlocked">
Votre catégorie d&apos;accès ne vous permet pas de réclamer cette région. Cela vient peut-être du fait qu&apos;il manquait des informations pour valider votre âge.
@@ -1913,6 +1930,9 @@ Liez-la à partir d&apos;une page web pour permettre aux autres résidents d&apo
<notification name="SystemMessageTip">
[MESSAGE]
</notification>
+ <notification name="IMSystemMessageTip">
+ [MESSAGE]
+ </notification>
<notification name="Cancelled">
Annulé
</notification>
@@ -1941,6 +1961,11 @@ Liez-la à partir d&apos;une page web pour permettre aux autres résidents d&apo
Importation de photos SL et Web en cours...
(prend environ 5 minutes.)
</notification>
+ <notification name="UploadConfirmation">
+ Le chargement coûte [AMOUNT] L$.
+Continuer ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="Charger"/>
+ </notification>
<notification name="UploadPayment">
Le chargement a coûté [AMOUNT] L$.
</notification>
@@ -2286,9 +2311,9 @@ Veuillez réessayer dans quelques minutes.
</form>
</notification>
<notification name="TeleportOffered">
- [NAME] vous propose d&apos;être téléporté jusqu&apos;à son emplacement :
+ [NAME_SLURL] propose de vous téléporter à son emplacement :
-[MESSAGE]
+[MESSAGE] - [MATURITY_STR] &lt;icon&gt;[MATURITY_ICON]&lt;/icon&gt;
<form name="form">
<button name="Teleport" text="Téléporter"/>
<button name="Cancel" text="Annuler"/>
@@ -2306,11 +2331,11 @@ Veuillez réessayer dans quelques minutes.
</form>
</notification>
<notification name="OfferFriendship">
- [NAME] vous demande de devenir son ami(e).
+ [NAME_SLURL] vous demande de devenir son ami(e).
[MESSAGE]
-(Par défaut, vous pourrez voir lorsque vous êtes tous deux connectés.)
+(Par défaut, chacun pourra voir si l&apos;autre est connecté.)
<form name="form">
<button name="Accept" text="Accepter"/>
<button name="Decline" text="Refuser"/>
@@ -2373,6 +2398,9 @@ Venant de l&apos;objet : [OBJECTNAME], appartenant à : [NAME]?
<notification name="FailedToFindWearable">
La recherche du [TYPE] nommé(e) [DESC] dans la base de données a échoué.
</notification>
+ <notification name="ShareToWebFailed">
+ Échec de chargement de l&apos;image sur le Web.
+ </notification>
<notification name="InvalidWearable">
L&apos;objet que vous essayez de porter utilise une fonctionnalité que le client ne peut lire. Pour porter cet objet, veuillez télécharger une mise à jour de [APP_NAME].
</notification>
@@ -2414,14 +2442,6 @@ Accepter cette requête ?
<button name="Ignore" text="Ignorer"/>
</form>
</notification>
- <notification name="ScriptToast">
- Le/La [TITLE] de [FIRST] [LAST] demande la participation du résident.
- <form name="form">
- <button name="Open" text="Ouvrir la boîte de dialogue"/>
- <button name="Ignore" text="Ignorer"/>
- <button name="Block" text="Ignorer"/>
- </form>
- </notification>
<notification name="BuyLindenDollarSuccess">
Nous vous remercions de votre paiement.
@@ -2577,6 +2597,12 @@ Elles vont être bloquées pendant quelques secondes pour votre sécurité.
Le bouton sélectionné ne peut pas être affiché actuellement.
Le bouton sera affiché quand il y aura suffisamment de place.
</notification>
+ <notification name="ShareNotification">
+ Faire glisser des articles de l&apos;inventaire sur une personne dans le sélecteur de résident
+ </notification>
+ <notification name="AvatarRezNotification">
+ Avatar [NAME] rezzé en [TIME] secondes.
+ </notification>
<global name="UnsupportedCPU">
- Votre processeur ne remplit pas les conditions minimum requises.
</global>
diff --git a/indra/newview/skins/default/xui/fr/outfit_accordion_tab.xml b/indra/newview/skins/default/xui/fr/outfit_accordion_tab.xml
new file mode 100644
index 0000000000..bac885e5d8
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/outfit_accordion_tab.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- *NOTE: mantipov: this xml is intended to be used inside panel_outfits_list.xml for each outfit folder-->
+<!-- All accordion tabs in the My Appearance/My Outfits panel will be created from this one at runtume-->
+<accordion_tab name="Mockup Tab" title="Mockup Tab"/>
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_eyes.xml b/indra/newview/skins/default/xui/fr/panel_edit_eyes.xml
index 7de6ca8b3f..549864e237 100644
--- a/indra/newview/skins/default/xui/fr/panel_edit_eyes.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_eyes.xml
@@ -3,7 +3,9 @@
<panel name="avatar_eye_color_panel">
<texture_picker label="Iris" name="Iris" tool_tip="Cliquez pour sélectionner une image"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="eyes_main_tab" title="Yeux"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="eyes_main_tab" title="Yeux"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_gloves.xml b/indra/newview/skins/default/xui/fr/panel_edit_gloves.xml
index b1a437497d..7f02222bef 100644
--- a/indra/newview/skins/default/xui/fr/panel_edit_gloves.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_gloves.xml
@@ -2,9 +2,11 @@
<panel name="edit_gloves_panel">
<panel name="avatar_gloves_color_panel">
<texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image"/>
- <color_swatch label="Coul./Teinte" name="Color/Tint" width="80" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/>
+ <color_swatch label="Coul./Teinte" name="Color/Tint" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs" width="80"/>
+ </panel>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="gloves_main_tab" title="Gants"/>
+ </accordion>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="gloves_main_tab" title="Gants"/>
- </accordion>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_hair.xml b/indra/newview/skins/default/xui/fr/panel_edit_hair.xml
index 9293c23e19..575cbabc88 100644
--- a/indra/newview/skins/default/xui/fr/panel_edit_hair.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_hair.xml
@@ -3,10 +3,12 @@
<panel name="avatar_hair_color_panel">
<texture_picker label="Texture" name="Texture" tool_tip="Cliquez pour sélectionner une image"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="hair_color_tab" title="Couleur"/>
- <accordion_tab name="hair_style_tab" title="Coupe"/>
- <accordion_tab name="hair_eyebrows_tab" title="Sourcils"/>
- <accordion_tab name="hair_facial_tab" title="Pilosité du visage"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="hair_color_tab" title="Couleur"/>
+ <accordion_tab name="hair_style_tab" title="Style"/>
+ <accordion_tab name="hair_eyebrows_tab" title="Sourcils"/>
+ <accordion_tab name="hair_facial_tab" title="Pilosité"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_jacket.xml b/indra/newview/skins/default/xui/fr/panel_edit_jacket.xml
index b757f60b18..0a87471db8 100644
--- a/indra/newview/skins/default/xui/fr/panel_edit_jacket.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_jacket.xml
@@ -3,9 +3,11 @@
<panel name="avatar_jacket_color_panel">
<texture_picker label="Tissu (haut)" name="Upper Fabric" tool_tip="Cliquez pour sélectionner une image"/>
<texture_picker label="Tissu (bas)" name="Lower Fabric" tool_tip="Cliquez pour sélectionner une image"/>
- <color_swatch label="Coul./Teinte" name="Color/Tint" width="80" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/>
+ <color_swatch label="Coul./Teinte" name="Color/Tint" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs" width="80"/>
+ </panel>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="jacket_main_tab" title="Veste"/>
+ </accordion>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="jacket_main_tab" title="Veste"/>
- </accordion>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_pants.xml b/indra/newview/skins/default/xui/fr/panel_edit_pants.xml
index 0cebe1e76a..b9f81278e2 100644
--- a/indra/newview/skins/default/xui/fr/panel_edit_pants.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_pants.xml
@@ -2,9 +2,11 @@
<panel name="edit_pants_panel">
<panel name="avatar_pants_color_panel">
<texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image"/>
- <color_swatch label="Coul./Teinte" name="Color/Tint" width="80" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/>
+ <color_swatch label="Coul./Teinte" name="Color/Tint" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs" width="80"/>
+ </panel>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="pants_main_tab" title="Pantalon"/>
+ </accordion>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="pants_main_tab" title="Pantalon"/>
- </accordion>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_shape.xml b/indra/newview/skins/default/xui/fr/panel_edit_shape.xml
index 450b23608a..98f48887a9 100644
--- a/indra/newview/skins/default/xui/fr/panel_edit_shape.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_shape.xml
@@ -9,15 +9,17 @@
<radio_item label="Homme" name="radio2"/>
</radio_group>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="shape_body_tab" title="Corps"/>
- <accordion_tab name="shape_head_tab" title="Tête"/>
- <accordion_tab name="shape_eyes_tab" title="Yeux"/>
- <accordion_tab name="shape_ears_tab" title="Oreilles"/>
- <accordion_tab name="shape_nose_tab" title="Nez"/>
- <accordion_tab name="shape_mouth_tab" title="Bouche"/>
- <accordion_tab name="shape_chin_tab" title="Menton"/>
- <accordion_tab name="shape_torso_tab" title="Torse"/>
- <accordion_tab name="shape_legs_tab" title="Jambes"/>
- </accordion>
+ <panel label="Chemise" name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="shape_body_tab" title="Corps"/>
+ <accordion_tab name="shape_head_tab" title="Tête"/>
+ <accordion_tab name="shape_eyes_tab" title="Yeux"/>
+ <accordion_tab name="shape_ears_tab" title="Oreilles"/>
+ <accordion_tab name="shape_nose_tab" title="Nez"/>
+ <accordion_tab name="shape_mouth_tab" title="Bouche"/>
+ <accordion_tab name="shape_chin_tab" title="Menton"/>
+ <accordion_tab name="shape_torso_tab" title="Torse"/>
+ <accordion_tab name="shape_legs_tab" title="Jambes"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_shirt.xml b/indra/newview/skins/default/xui/fr/panel_edit_shirt.xml
index d6035415d8..e4e66db2ed 100644
--- a/indra/newview/skins/default/xui/fr/panel_edit_shirt.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_shirt.xml
@@ -2,9 +2,11 @@
<panel name="edit_shirt_panel">
<panel name="avatar_shirt_color_panel">
<texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image"/>
- <color_swatch label="Coul./Teinte" name="Color/Tint" width="80" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/>
+ <color_swatch label="Coul./Teinte" name="Color/Tint" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs" width="80"/>
+ </panel>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="shirt_main_tab" title="Chemise"/>
+ </accordion>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="shirt_main_tab" title="Chemise"/>
- </accordion>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_shoes.xml b/indra/newview/skins/default/xui/fr/panel_edit_shoes.xml
index ef6d72629c..6fca0fe121 100644
--- a/indra/newview/skins/default/xui/fr/panel_edit_shoes.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_shoes.xml
@@ -2,9 +2,11 @@
<panel name="edit_shoes_panel">
<panel name="avatar_shoes_color_panel">
<texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image"/>
- <color_swatch label="Coul./Teinte" name="Color/Tint" width="80" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/>
+ <color_swatch label="Coul./Teinte" name="Color/Tint" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs" width="80"/>
+ </panel>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="shoes_main_tab" title="Chaussures"/>
+ </accordion>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="shoes_main_tab" title="Chaussures"/>
- </accordion>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_skin.xml b/indra/newview/skins/default/xui/fr/panel_edit_skin.xml
index dac005f6b6..9640adcdf8 100644
--- a/indra/newview/skins/default/xui/fr/panel_edit_skin.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_skin.xml
@@ -1,14 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="edit_skin_panel">
<panel name="avatar_skin_color_panel">
- <texture_picker label="Tatouage tête" name="Head Tattoos" width="76" tool_tip="Cliquez pour sélectionner une image"/>
- <texture_picker label="Tatouage haut" name="Upper Tattoos" width="80" tool_tip="Cliquez pour sélectionner une image"/>
+ <texture_picker label="Tatouage tête" name="Head Tattoos" tool_tip="Cliquez pour sélectionner une image" width="76"/>
+ <texture_picker label="Tatouage haut" name="Upper Tattoos" tool_tip="Cliquez pour sélectionner une image" width="80"/>
<texture_picker label="Tatouage bas" name="Lower Tattoos" tool_tip="Cliquez pour sélectionner une image"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="skin_color_tab" title="Couleur de peau"/>
- <accordion_tab name="skin_face_tab" title="Détails du visage"/>
- <accordion_tab name="skin_makeup_tab" title="Maquillage"/>
- <accordion_tab name="skin_body_tab" title="Détails du corps"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="skin_color_tab" title="Couleur"/>
+ <accordion_tab name="skin_face_tab" title="Détails visage"/>
+ <accordion_tab name="skin_makeup_tab" title="Maquillage"/>
+ <accordion_tab name="skin_body_tab" title="Détails corps"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_skirt.xml b/indra/newview/skins/default/xui/fr/panel_edit_skirt.xml
index 1250c7819d..65fed2fbf4 100644
--- a/indra/newview/skins/default/xui/fr/panel_edit_skirt.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_skirt.xml
@@ -2,9 +2,11 @@
<panel name="edit_skirt_panel">
<panel name="avatar_skirt_color_panel">
<texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image"/>
- <color_swatch label="Coul./Teinte" name="Color/Tint" width="80" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/>
+ <color_swatch label="Coul./Teinte" name="Color/Tint" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs" width="80"/>
+ </panel>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="skirt_main_tab" title="Jupe"/>
+ </accordion>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="skirt_main_tab" title="Jupe"/>
- </accordion>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_socks.xml b/indra/newview/skins/default/xui/fr/panel_edit_socks.xml
index bcd69b7dc5..b9e9a07b8c 100644
--- a/indra/newview/skins/default/xui/fr/panel_edit_socks.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_socks.xml
@@ -2,9 +2,11 @@
<panel name="edit_socks_panel">
<panel name="avatar_socks_color_panel">
<texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image"/>
- <color_swatch label="Coul./Teinte" name="Color/Tint" width="80" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/>
+ <color_swatch label="Coul./Teinte" name="Color/Tint" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs" width="80"/>
+ </panel>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="socks_main_tab" title="Chaussettes"/>
+ </accordion>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="socks_main_tab" title="Chaussettes"/>
- </accordion>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_underpants.xml b/indra/newview/skins/default/xui/fr/panel_edit_underpants.xml
index dd2670bd75..7eddbd93f6 100644
--- a/indra/newview/skins/default/xui/fr/panel_edit_underpants.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_underpants.xml
@@ -2,9 +2,11 @@
<panel name="edit_underpants_panel">
<panel name="avatar_underpants_color_panel">
<texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image"/>
- <color_swatch label="Coul./Teinte" name="Color/Tint" width="80" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/>
+ <color_swatch label="Coul./Teinte" name="Color/Tint" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs" width="80"/>
+ </panel>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="underpants_main_tab" title="Caleçon"/>
+ </accordion>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="underpants_main_tab" title="Caleçon"/>
- </accordion>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_undershirt.xml b/indra/newview/skins/default/xui/fr/panel_edit_undershirt.xml
index 93a08f1189..e6bac22c23 100644
--- a/indra/newview/skins/default/xui/fr/panel_edit_undershirt.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_undershirt.xml
@@ -2,9 +2,11 @@
<panel name="edit_undershirt_panel">
<panel name="avatar_undershirt_color_panel">
<texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image"/>
- <color_swatch label="Coul./Teinte" name="Color/Tint" width="80" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/>
+ <color_swatch label="Coul./Teinte" name="Color/Tint" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs" width="80"/>
+ </panel>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="undershirt_main_tab" title="Débardeur"/>
+ </accordion>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="undershirt_main_tab" title="Débardeur"/>
- </accordion>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_wearable.xml b/indra/newview/skins/default/xui/fr/panel_edit_wearable.xml
index 1efc9b00a4..3e581f387c 100644
--- a/indra/newview/skins/default/xui/fr/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_wearable.xml
@@ -94,8 +94,13 @@
<panel label="Chemise" name="wearable_type_panel">
<text name="description_text" value="Silhouette :"/>
</panel>
+ <panel label="gear_buttom_panel" name="gear_buttom_panel">
+ <button name="friends_viewsort_btn" tool_tip="Options"/>
+ <button name="add_btn" tool_tip="TODO"/>
+ <button name="del_btn" tool_tip="TODO"/>
+ </panel>
<panel name="button_panel">
<button label="Enregistrer sous" name="save_as_button"/>
- <button label="Rétablir" width="130" name="revert_button"/>
+ <button label="Rétablir" name="revert_button" width="130"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_group_general.xml b/indra/newview/skins/default/xui/fr/panel_group_general.xml
index cf71a28451..20cb5bd974 100644
--- a/indra/newview/skins/default/xui/fr/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/fr/panel_group_general.xml
@@ -47,8 +47,11 @@ Faites glisser le pointeur de la souris sur les options pour en savoir plus.
<check_box label="Inscription payante" name="check_enrollment_fee" tool_tip="Indique s&apos;il faut payer des frais d&apos;inscription pour rejoindre ce groupe"/>
<spinner label="L$" name="spin_enrollment_fee" tool_tip="Les nouveaux membres doivent payer ces frais pour rejoindre le groupe quand l&apos;option Frais d&apos;inscription est cochée."/>
<combo_box name="group_mature_check" tool_tip="Définit si votre groupe contient des informations de type Modéré" width="195">
- <combo_box.item label="Contenu Général" name="pg"/>
+ <combo_item name="select_mature">
+ - Catégorie d&apos;accès -
+ </combo_item>
<combo_box.item label="Contenu Modéré" name="mature"/>
+ <combo_box.item label="Contenu Général" name="pg"/>
</combo_box>
<check_box initial_value="true" label="Afficher dans la recherche" name="show_in_group_list" tool_tip="Permettre aux autres résidents de voir ce groupe dans les résultats de recherche"/>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_inventory_item.xml b/indra/newview/skins/default/xui/fr/panel_inventory_item.xml
new file mode 100644
index 0000000000..d18047fbcf
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/panel_inventory_item.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="inventory_item">
+ <text name="item_name" value="..."/>
+</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_media_settings_permissions.xml b/indra/newview/skins/default/xui/fr/panel_media_settings_permissions.xml
index f456ee1c83..8f1b436ba1 100644
--- a/indra/newview/skins/default/xui/fr/panel_media_settings_permissions.xml
+++ b/indra/newview/skins/default/xui/fr/panel_media_settings_permissions.xml
@@ -11,10 +11,19 @@
Mini
</combo_item>
</combo_box>
+ <text name="owner_label">
+ Propriétaire
+ </text>
<check_box initial_value="false" label="Activer la navigation et l&apos;interactivité" name="perms_owner_interact"/>
<check_box initial_value="false" label="Afficher la barre de contrôles" name="perms_owner_control"/>
+ <text name="group_label">
+ Groupe :
+ </text>
<check_box initial_value="false" label="Activer la navigation et l&apos;interactivité" name="perms_group_interact"/>
<check_box initial_value="false" label="Afficher la barre de contrôles" name="perms_group_control"/>
+ <text name="anyone_label">
+ Tout le monde
+ </text>
<check_box initial_value="false" label="Activer la navigation et l&apos;interactivité" name="perms_anyone_interact"/>
<check_box initial_value="false" label="Afficher la barre de contrôles" name="perms_anyone_control"/>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_nearby_media.xml b/indra/newview/skins/default/xui/fr/panel_nearby_media.xml
index ef5a42555e..36388b0bc1 100644
--- a/indra/newview/skins/default/xui/fr/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/fr/panel_nearby_media.xml
@@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="nearby_media">
+ <string name="media_item_count_format">
+ (%ld articles de média)
+ </string>
<string name="empty_item_text">
&lt;vide&gt;
</string>
@@ -16,15 +19,10 @@
<button label="Arrêter" name="all_nearby_media_disable_btn" tool_tip="Désactiver tous les médias près de vous"/>
<button label="Lire" name="all_nearby_media_enable_btn" tool_tip="Activer tous les médias près de vous"/>
<button name="open_prefs_btn" tool_tip="Ouvrir les préférences de média"/>
- <button label="Plus &gt;&gt;" label_selected="Moins &lt;&lt;" name="more_less_btn" tool_tip="Options avancées"/>
+ <button label="Plus &gt;&gt;" label_selected="Moins &lt;&lt;" name="more_btn" tool_tip="Options avancées"/>
+ <button label="Plus &gt;&gt;" label_selected="Moins &lt;&lt;" name="less_btn" tool_tip="Options avancées"/>
</panel>
<panel name="nearby_media_panel">
- <text name="nearby_media">
- Médias proches
- </text>
- <text name="show">
- Voir :
- </text>
<combo_box name="show_combo">
<combo_box.item label="Tout" name="All"/>
<combo_box.item label="Sur cette parcelle" name="WithinParcel"/>
@@ -38,7 +36,7 @@
<scroll_list.columns label="Nom" name="media_name"/>
<scroll_list.columns label="Débogage" name="media_debug"/>
</scroll_list>
- <panel name="media_controls_panel">
+ <panel>
<layout_stack name="media_controls">
<layout_panel name="stop">
<button name="stop_btn" tool_tip="Arrêter le média sélectionné"/>
@@ -47,7 +45,7 @@
<button name="play_btn" tool_tip="Lire le média sélectionné"/>
</layout_panel>
<layout_panel name="pause">
- <button name="pause_btn" tool_tip="Suspendre la lecture du média sélectionné"/>
+ <button name="pause_btn" tool_tip="Pause du média sélectionné"/>
</layout_panel>
<layout_panel name="volume_slider_ctrl">
<slider_bar initial_value="0.5" name="volume_slider" tool_tip="Volume audio du média sélectionné"/>
diff --git a/indra/newview/skins/default/xui/fr/panel_outfit_edit.xml b/indra/newview/skins/default/xui/fr/panel_outfit_edit.xml
new file mode 100644
index 0000000000..31e1906f01
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/panel_outfit_edit.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- Side tray Outfit Edit panel -->
+<panel label="Modification de la tenue" name="outfit_edit">
+ <string name="No Outfit" value="Pas de tenue"/>
+ <panel.string name="not_available">
+ (s/o)
+ </panel.string>
+ <panel.string name="unknown">
+ (inconnu)
+ </panel.string>
+ <string name="Filter.All" value="Tout"/>
+ <string name="Filter.Clothes/Body" value="Habits/Corps"/>
+ <string name="Filter.Objects" value="Objets"/>
+ <button label="modifier" name="edit_wearable_btn"/>
+ <text name="title" value="Modifier la tenue"/>
+ <panel label="bottom_panel" name="header_panel">
+ <panel label="bottom_panel" name="outfit_name_and_status">
+ <text name="status" value="Modification..."/>
+ <text name="curr_outfit_name" value="[Current Outfit]"/>
+ </panel>
+ </panel>
+ <layout_stack name="im_panels">
+ <layout_panel label="Panneau de contrôle IM" name="outfit_wearables_panel">
+ <scroll_list name="look_items_list">
+ <scroll_list.columns label="Article de la tenue" name="look_item"/>
+ <scroll_list.columns label="Tri des articles de la tenue" name="look_item_sort"/>
+ </scroll_list>
+ <panel label="bottom_panel" name="edit_panel"/>
+ </layout_panel>
+ <layout_panel name="add_wearables_panel">
+ <filter_editor label="Filtre" name="look_item_filter"/>
+ <layout_stack name="filter_panels">
+ <layout_panel label="Panneau de contrôle IM" name="filter_button_panel">
+ <text name="add_to_outfit_label" value="Ajouter à la tenue :"/>
+ <button label="F" name="filter_button"/>
+ </layout_panel>
+ </layout_stack>
+ <panel label="add_wearables_button_bar" name="add_wearables_button_bar">
+ <button label="D" name="folder_view_btn"/>
+ <button label="L" name="list_view_btn"/>
+ </panel>
+ </layout_panel>
+ </layout_stack>
+ <panel name="save_revert_button_bar">
+ <button label="Enregistrer" name="save_btn"/>
+ <button label="Rétablir" name="revert_btn"/>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/fr/panel_outfits_inventory.xml
index 9b9d830aaf..f4fa3a2838 100644
--- a/indra/newview/skins/default/xui/fr/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/fr/panel_outfits_inventory.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Choses" name="Outfits">
<tab_container name="appearance_tabs">
- <inventory_panel label="MES TENUES" name="outfitslist_tab"/>
+ <panel label="MES TENUES" name="outfitslist_tab"/>
<inventory_panel label="PORTÉ" name="cof_tab"/>
</tab_container>
<panel name="bottom_panel">
@@ -9,6 +9,6 @@
<dnd_button name="trash_btn" tool_tip="Supprimer l&apos;objet sélectionné"/>
<button label="Enregistrer la tenue" name="make_outfit_btn" tool_tip="Enregistrer l&apos;apparence comme tenue"/>
<button label="Porter" name="wear_btn" tool_tip="Porter la tenue sélectionnée"/>
- <button label="M" name="look_edit_btn"/>
+ <button label="Modifier tenue" name="edit_current_outfit_btn"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_people.xml b/indra/newview/skins/default/xui/fr/panel_people.xml
index 8d17d9ffdf..e1ba2990cc 100644
--- a/indra/newview/skins/default/xui/fr/panel_people.xml
+++ b/indra/newview/skins/default/xui/fr/panel_people.xml
@@ -1,14 +1,23 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- Side tray panel -->
<panel label="Résidents" name="people_panel">
- <string name="no_people" value="Personne"/>
- <string name="no_one_near" value="Personne près de vous"/>
+ <string name="no_recent_people" value="Personne de récent. Pour rechercher des résidents avec qui passer du temps, voir [secondlife:///app/search/people Rechercher] ou [secondlife:///app/worldmap Carte du monde]."/>
+ <string name="no_filtered_recent_people" value="Vous n&apos;avez pas trouvé ce que vous cherchiez ? Utilisez [secondlife:///app/search/people Rechercher]."/>
+ <string name="no_one_near" value="Personne près de vous. Pour rechercher des résidents avec qui passer du temps, voir [secondlife:///app/search/people Rechercher] ou [secondlife:///app/worldmap Carte du monde]."/>
+ <string name="no_one_filtered_near" value="Vous n&apos;avez pas trouvé ce que vous cherchiez ? Utilisez [secondlife:///app/search/people Rechercher]."/>
<string name="no_friends_online" value="Pas d&apos;amis connectés"/>
<string name="no_friends" value="Pas d&apos;amis"/>
+ <string name="no_friends_msg">
+ Pour rechercher des amis, utilisez [secondlife:///app/search/people Rechercher] ou cliquez-droit sur le résident à ajouter comme ami.
+Pour rechercher des résidents avec qui passer du temps, utilisez [secondlife:///app/worldmap Carte du monde].
+ </string>
+ <string name="no_filtered_friends_msg">
+ Vous n&apos;avez pas trouvé ce que vous cherchiez ? Utilisez [secondlife:///app/search/people Rechercher].
+ </string>
<string name="people_filter_label" value="Filtrer les personnes"/>
<string name="groups_filter_label" value="Filtrer les groupes"/>
- <string name="no_filtered_groups_msg" value="[secondlife:///app/search/groups Trouver le groupe via la recherche ?]"/>
- <string name="no_groups_msg" value="[secondlife:///app/search/groups Rechercher des groupes à rejoindre.]"/>
+ <string name="no_filtered_groups_msg" value="Vous n&apos;avez pas trouvé ce que vous cherchiez ? Utilisez [secondlife:///app/search/groups Rechercher]."/>
+ <string name="no_groups_msg" value="Vous souhaitez trouver des groupes à rejoindre ? Utilisez [secondlife:///app/search/groups Rechercher]."/>
<filter_editor label="Filtre" name="filter_input"/>
<tab_container name="tabs">
<panel label="PRÈS DE VOUS" name="nearby_panel">
@@ -27,10 +36,6 @@
<button name="add_btn" tool_tip="Proposer à un résident de devenir votre ami"/>
<button name="del_btn" tool_tip="Supprimer le résident sélectionné de votre liste d&apos;amis"/>
</panel>
- <text name="no_friends_msg">
- Pour ajouter des amis, utilisez la [secondlife:///app/search/people recherche] ou cliquez-droit sur le résident à ajouter comme ami.
-Si vous souhaitez rencontrer d&apos;autres résidents, cliquez sur [secondlife:///app/worldmap la carte].
- </text>
</panel>
<panel label="MES GROUPES" name="groups_panel">
<panel label="bottom_panel" name="bottom_panel">
diff --git a/indra/newview/skins/default/xui/fr/panel_places.xml b/indra/newview/skins/default/xui/fr/panel_places.xml
index 92b0a6c1db..9990c4612d 100644
--- a/indra/newview/skins/default/xui/fr/panel_places.xml
+++ b/indra/newview/skins/default/xui/fr/panel_places.xml
@@ -11,5 +11,6 @@
<button label="Enregistrer" name="save_btn"/>
<button label="Annuler" name="cancel_btn"/>
<button label="Fermer" name="close_btn"/>
+ <button label="Profil" name="profile_btn"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/fr/panel_preferences_advanced.xml
index f8ecfbedac..97f5d1ad91 100644
--- a/indra/newview/skins/default/xui/fr/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_advanced.xml
@@ -20,6 +20,9 @@
<check_box label="Bulles de chat" name="bubble_text_chat"/>
<slider label="Opacité" name="bubble_chat_opacity"/>
<color_swatch name="background" tool_tip="Choisir la couleur des bulles de chat"/>
+ <text name="UI Size:">
+ Taille de l&apos;interface
+ </text>
<check_box label="Afficher les erreurs de script dans :" name="show_script_errors"/>
<radio_group name="show_location">
<radio_item label="Chat près de moi" name="0"/>
@@ -29,4 +32,5 @@
<line_editor label="Touche de contrôle de la fonction Appuyer pour parler" name="modifier_combo"/>
<button label="Définir la touche" name="set_voice_hotkey_button"/>
<button label="Bouton central de la souris" name="set_voice_middlemouse_button" tool_tip="Réinitialiser sur le bouton central de la souris"/>
+ <button label="Autres accessoires" name="joystick_setup_button"/>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_world_map.xml b/indra/newview/skins/default/xui/fr/panel_world_map.xml
index e6e95c2605..972aae1fab 100644
--- a/indra/newview/skins/default/xui/fr/panel_world_map.xml
+++ b/indra/newview/skins/default/xui/fr/panel_world_map.xml
@@ -30,6 +30,12 @@
<panel.string name="world_map_northwest">
NO
</panel.string>
+ <panel.string name="world_map_person">
+ 1 personne
+ </panel.string>
+ <panel.string name="world_map_people">
+ [NUMBER] personnes
+ </panel.string>
<text label="N" name="floater_map_north" text="N">
N
</text>
diff --git a/indra/newview/skins/default/xui/fr/sidepanel_inventory.xml b/indra/newview/skins/default/xui/fr/sidepanel_inventory.xml
index eba399f6a3..f92f142c64 100644
--- a/indra/newview/skins/default/xui/fr/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/fr/sidepanel_inventory.xml
@@ -3,6 +3,7 @@
<panel label="" name="sidepanel__inventory_panel">
<panel name="button_panel">
<button label="Profil" name="info_btn"/>
+ <button label="Partager" name="share_btn"/>
<button label="Porter" name="wear_btn"/>
<button label="Jouer" name="play_btn"/>
<button label="Téléporter" name="teleport_btn"/>
diff --git a/indra/newview/skins/default/xui/fr/strings.xml b/indra/newview/skins/default/xui/fr/strings.xml
index 6d81df5cdb..f89ab9ba80 100644
--- a/indra/newview/skins/default/xui/fr/strings.xml
+++ b/indra/newview/skins/default/xui/fr/strings.xml
@@ -261,6 +261,9 @@
<string name="BUTTON_CLOSE_WIN">
Fermer (Ctrl+W)
</string>
+ <string name="BUTTON_CLOSE_CHROME">
+ Fermer
+ </string>
<string name="BUTTON_RESTORE">
Restaurer
</string>
@@ -303,6 +306,9 @@
<string name="GroupNameNone">
(aucun)
</string>
+ <string name="AvalineCaller">
+ Appelant Avaline [ORDER]
+ </string>
<string name="AssetErrorNone">
Aucune erreur
</string>
@@ -904,7 +910,7 @@
Appuyez sur ESC pour quitter la vue subjective
</string>
<string name="InventoryNoMatchingItems">
- Objet inexistant dans l&apos;inventaire. Voir [secondlife:///app/search/groups &quot;Rechercher&quot;].
+ Vous n&apos;avez pas trouvé ce que vous cherchiez ? Utilisez [secondlife:///app/search/all Rechercher].
</string>
<string name="FavoritesNoMatchingItems">
Faites glisser un repère ici pour l&apos;ajouter à vos Favoris.
@@ -1575,9 +1581,7 @@
<string name="RegionNoCovenantOtherOwner">
Il n&apos;y a aucun règlement pour ce domaine. Le terrain sur ce domaine est vendu par le propriétaire, non par Linden Lab. Pour en savoir plus, veuillez contacter le propriétaire.
</string>
- <string name="covenant_last_modified">
- Dernière modification :
- </string>
+ <string name="covenant_last_modified" value="Dernière modification :"/>
<string name="none_text" value=" (aucun)"/>
<string name="never_text" value=" (jamais)"/>
<string name="GroupOwned">
@@ -3311,6 +3315,15 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
<string name="LocationCtrlDamageTooltip">
Santé
</string>
+ <string name="LocationCtrlAdultIconTooltip">
+ Région de type Adulte
+ </string>
+ <string name="LocationCtrlModerateIconTooltip">
+ Région de type Modéré
+ </string>
+ <string name="LocationCtrlGeneralIconTooltip">
+ Région de type Général
+ </string>
<string name="UpdaterWindowTitle">
[APP_NAME] - Mise à jour
</string>
@@ -3341,6 +3354,12 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
<string name="UpdaterFailStartTitle">
Impossible de lancer le client
</string>
+ <string name="ItemsComingInTooFastFrom">
+ [APP_NAME] : transfert trop rapide des articles de [FROM_NAME] ; aperçu automatique désactivé pendant [TIME] secondes
+ </string>
+ <string name="ItemsComingInTooFast">
+ [APP_NAME] : transfert trop rapide des articles ; aperçu automatique désactivé pendant [TIME] secondes
+ </string>
<string name="IM_logging_string">
-- Archivage des IM activé --
</string>
@@ -3368,6 +3387,9 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
<string name="IM_moderator_label">
(Modérateur)
</string>
+ <string name="answered_call">
+ Votre appel a fait l&apos;objet d&apos;une réponse
+ </string>
<string name="started_call">
A appelé quelqu&apos;un
</string>
@@ -3461,12 +3483,18 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
<string name="unread_chat_multiple">
[SOURCES] ont dit quelque chose de nouveau
</string>
+ <string name="session_initialization_timed_out_error">
+ Expiration du délai d&apos;initialisation de la session
+ </string>
<string name="paid_you_ldollars">
[NAME] vous a payé [AMOUNT] L$
</string>
<string name="you_paid_ldollars">
Vous avez payé à [AMOUNT] L$ [REASON].
</string>
+ <string name="you_paid_ldollars_no_info">
+ Vous avez payé [AMOUNT] L$.
+ </string>
<string name="you_paid_ldollars_no_reason">
Vous avez payé à [NAME] [AMOUNT] L$.
</string>
@@ -3577,4 +3605,13 @@ de l&apos;infraction signalée
<string name="Contents">
Contenus
</string>
+ <string name="AvatarBirthDateFormat">
+ [day,datetime,slt]/[mthnum,datetime,slt]/[year,datetime,slt]
+ </string>
+ <string name="DefaultMimeType">
+ aucun/aucun
+ </string>
+ <string name="texture_load_dimensions_error">
+ Impossible de charger des images de taille supérieure à [WIDTH]*[HEIGHT]
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/it/floater_about.xml b/indra/newview/skins/default/xui/it/floater_about.xml
index 495c24f5e9..55e699612c 100644
--- a/indra/newview/skins/default/xui/it/floater_about.xml
+++ b/indra/newview/skins/default/xui/it/floater_about.xml
@@ -43,19 +43,14 @@ Versione Vivox: [VIVOX_VERSION]
</panel>
<panel label="Ringraziamenti" name="credits_panel">
<text_editor name="credits_editor">
- Second Life ti è offerto da Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Yang, T, Simone, Maestro, Scott, Charlene, Quixote, Amanda, Susan, Zed, Anne, Enkidu, Esbee, Joroan, Katelin, Roxie, Tay, Scarlet, Kevin, Johnny, Wolfgang, Andren, Bob, Howard, Merov, Rand, Ray, Michon, Newell, Galen, Dessie, Les and many others.
+ Second Life ti è offerto da Philip, Tessa, Andrew, Cory, Ian, James, Phoenix, Ryan, Haney, Dan, Char, Ben, John, Tanya, Eddie, Richard, Mitch, Doug, Eric, Frank, Bruce, Aaron, Peter, Alice, Charlie, Debra, Eileen, Helen, Janet, Steffan, Steve, Tom, Mark, Hunter, Xenon, Burgess, Bill, Jim, Lee, Hamlet, Daniel, Jeff, Todd, Sarah, Tim, Stephanie, Colin, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Jack, Vektor, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Jesse, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Yuko, Makiko, Thomas, Harry, Seth, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Brad, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, Beez, Milo, Hermia, Red, Thrax, Gulliver, Joe, Sally, Paul, Jose, Rejean, Dore, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, Dustin, George, Del, Matthew, Cat, Jacqui, Adrian, Viola, Alfred, Noel, Irfan, Yool, Rika, Jane, Frontier, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Jeremy, JP, Jake, Anthony, Maurice, Madhavi, Leopard, Kyle, Joon, Bert, Belinda, Jon, Kristi, Bridie, Pramod, Socrates, Maria, Aric, Adreanne, Jay, Kari, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Colossus, Zen, BigPapi, Pastrami, Kurz, Mani, Neuro, Mel, Sardonyx, MJ, Rowan, Sgt, Elvis, Samuel, Leo, Bryan, Niko, Austin, Soft, Poppy, Rachel, Aki, Banzai, Alexa, Sue, Bender, CG, Angelo, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Rothman, Niall, Marin, Allison, Katie, Dawn, Dusty, Katt, Judy, Andrea, Ambroff, Infinity, Rico, Gail, Kalpana, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Maestro, Simone, Yang, T, Shannon, Nelson, Khanh, Scott, Courtney, Charlene, Quixote, Susan, Zed, Amanda, Katelin, Enkidu, Roxie, Esbee, JoRoan, Scarlet, Tay, Kevin, Wolfgang, Johnny, Ray, Andren, Merov, Bob, Rand, Howard, Callen, Heff, Galen, Newell, Dessie, Les, Michon, Jenelle, Geo, Siz, Shapiro, Pete, Calyle, Selene, Allen, Phoebe, Goldin, Kimmora, Dakota, Slaton, Lindquist, Zoey, Hari, Othello, Rohit, Sheldon, Petra, Viale, Gordon, Kaye, Pink, Ferny, Emerson, Davy, Bri, Chan, Juan, Robert, Terrence, Nathan, Carl, Ashley, JessieAnn, Huseby, Karina, Paris, Kurt, Rick, Lis, Kotler, Theeba, Lynx, Murphy, Doten, Taka, Norm, Jillian, Marcus, Mae, Novack, Esther, Perry, Dana, Ducot, Javier, Porter, Madison, Gecko, Dough, JR, Gisele, Crimp, Norie, Arch, Kimi, Fisher, Barbara, Jason, Peggy, Bernard, Jules, Leroy, Eva, Khederian, Campbell, Vogt, Masido, Karel, Torres, Lo, Breezer, Delby, Rountree, Anna, Servus, Rue, Itiaes, Chuck, Luna, Novella, Zaza, Wen, Gino, Lex, Cassandra, Limey, Nancy, Anukul, Silver, Brodesky, Jinsai, Squid, Gez, Rakesh, Ladan, Edelman, Marcet, Squire, Tatem, Tony, Jerm, Tia, Falcon, BK, Tiggs, Driscoll, Bacon, Timothee, Cru, Carmilla, Coyot, Webb, Kazu, Rudas, LJ, Sea, Ali Wallace, Bewest, Pup, Drub, Dragon, Inoshiro, Byron, Rhett, Xandix, Aimee, Fredrik, Thor, Teddy, Baron, Nelly, Ghengis, Epic, Eli, Stone, Grapes, Irie, Prep, Scobu, Valerie, Alain e molti altri ancora.
-Si ringraziano i seguenti residenti per aver contribuito a rendere questa versione la migliore possibile: (in corso)
+Si ringraziano i seguenti residenti per aver contribuito a rendere questa versione la migliore possibile: Drew Dwi, Zai Lynch, Latif Khalifa, Ellla McMahon, Harleen Gretzky, Squirrel Wood, Malarthi Behemoth, Dante Tucker, Buckaroo Mu, Eddi Decosta, Dirk, Talamasca, Torben Trautman, Irene Muni, Lilly Zenovka, Vick Forcella, Sasy Scarborough, Gentle Welinder, Elric Anatine, Techwolf Lupindo, Dusan Writer, WolfPup Lowenhar, Marianne McCann, Fiachra Lach, Sitearm Madonna, Sudane Erato, Sahkolihaa Contepomi, Sachi Vixen, Questar Utu, Dimitrio Lewis, Matto Destiny, Scrim Pinion, Radio Signals, Psi Merlin, Pixel Gausman, Mel Vanbeeck, Laurent Bechir, Lamorna Proctor, Lares Carter, Gwyneth Llewelyn, Hydra Shaftoe, Holger Gilruth, Gentle Heron, Carla Broek, Boroondas Gupte, Fury Rosewood, Flower Ducatillon, Colpo Wexler, gwampa Lomu, Borg Capalini, Beansy Twine, Ardy Lay, , 45ms Zhong, Adeon Writer, Aeonix Aeon, Ai Austin, Aiko Ying, Alexandrea Fride, Alliez Mysterio, Annie Milestone, Annika Genezzia, Ansariel Hiller, ArminasX Saiman, Arya Braveheart, Asaeda Meltingdots, Asturkon Jua, Avallyn Oakleaf, Avatar Quinzet, BabyA Littlething, Bacchus Ireto, Bazaar, Riva, Benjamin Bigdipper, Beth Walcher, Bezilon Kasei, Biancaluce Robbiani, Bill Walach, blakopal Galicia, Blitzckreed Levenque, Bryn Oh, Callipygian Christensen, Cap Carver, Carr Arbenlow, Chantal Harvey, Charles Courtois, Charlie Sazaland, Cherry Cheevers, ChickyBabes Zuzu, Christopher Organiser, Ciaran Laval, Clara Young, Celierra Darling, Corinne Helendale, Corro Moseley, Coughdrop Littlething, Darien Caldwell, Dartagan Shepherd, Debs Regent, Decro Schmooz, Denim Kamachi, DiJodi Dubratt, Dil Spitz, Edgware Marker, Egehan Dryke, Emma Portilo, Emmie Fairymeadow, Evangelista Emerald, Faelon Swordthain, Frenchimmo Sabra, Gaberoonie Zanzibar, Ganymedes Costagravas, Gene Frostbite, GeneJ Composer, Giggles Littlebird, Grady Echegaray, Guni Greenstein, Gypsy Tripsa, Hackshaven Harford, Ham Rambler, Han Shuffle, Hanglow Short, Hatzfeld Runo, herina Bode, Horatio Freund, Hypatia Callisto, Hypatia Pickens, Identity Euler, Imnotgoing Sideways, Innula Zenovka, Iyoba Tarantal, Jack Abraham, Jagga Meredith, Jennifer Boyle, Jeremy Marquez, Jessica Qin, Jinx Nordberg, Jo Bernandes, Jocial Sonnenkern, Joel Savard, Jondan Lundquist, Josef Munster, Josette Windlow, Juilan Tripsa, Juro Kothari, Justin RiversRunRed, Kagehi Kohn, Kaimen Takahe, Keklily Longfall, Ken Lavender, Kestral Karas, Khisme Nitely, Kimar Coba, Kithrak Kirkorian, Kitty Barnett, Kolor Fall, Komiko Okamoto, Korvel Noh, Larry Pixel, Leal Choche, len Starship, Lenae Munz, Lexi Frua, Lillie Cordeaux, Lizzy Macarthur, LSL Scientist, Luban Yiyuan, Luc Starsider, Maccus McCullough, Madison Blanc, Maggie Darwin, Mallory Destiny, Manx Wharton, Marc Claridge, Marc2 Sands, Matthew Anthony, Maxim RiversRunRed, Medhue Simoni, Melinda Latynina, Mencius Watts, Michi Lumin, Midian Farspire, Miles Glaz, Mindy Mathy, Mitch Wagner, Mo Hax, Mourna Biziou, Nao Noe, naofan Teardrop, Naomah Beaumont, Nathiel Siamendes, Nber Medici, Neko Link, Netpat Igaly, Neutron Chesnokov, Newfie Pendragon, Nicholai Laviscu, Nick Rhodes, Nicoladie Gymnast, Ollie Kubrick, Orenj Marat, Orion Delphis, Oryx Tempel, Parvati Silverweb, PeterPunk Mooney, Pixel Scientist, Pounce Teazle, Professor Noarlunga, Quantum Destiny, Quicksilver Hermes, Ralf Setsuko, RAT Quan, RedMokum Bravin, Revolution Perenti, Rezit Sideways, Rich Grainger, Rosco Teardrop, Rose Evans, Rudee Voom, RufusTT Horsefly, Saii Hallard, SaintLEOlions Zimer, Samm Larkham, Satanello Miami, SexySteven Morrisey, Sheet Spotter, Shnurui Troughton, sicarius Thorne, Sicarius Toxx, Sini Nubalo, SLB Wirefly, snowy Sidran, Soupa Segura, ST Mensing, Starshine Halasy, Stickman Ingmann, Synystyr Texan, Takeda Terrawyng, Tali Rosca, Templar Merlin, Tezcatlipoca Bisiani, Tiel Stonecutter, Tony Kembia, TouchaHoney Perhaps, Trey Reanimator, TriloByte Zanzibar, Trinity Dechou, Trinity Dejavu, Unlikely Quintessa, UsikuFarasi Kanarik, Veritas Raymaker, Vex Streeter, Viaticus Speculaas, Villain Baroque, Vixie Durant, Void Singer, Watty Berkson, Westley Schridde, Westley Streeter, Whimsy Winx, Winter Ventura, Wundur Primbee, xstorm Radek, YongYong Francois, Zak Westminster, Zana Kohime, Zaren Alexander, Zeja Pyle, ZenMondo Wormser, Zoex Flanagan e molti altri ancora.
-
-
-
-
-Senza dubbio è una mente rara quella che può rendere brillantemente ovvio il finora mai esistito. Dichiarare &quot;Avrei potuto pensare a tutto questo&quot; è molto comune e fuorviante, per il motivo che non l&apos;hanno fatto, e anche questo fatto è assai significativo e rivelativo.
- -- Douglas Adams
+&quot;Il lavoro continua, la causa sussiste, la speranza vive ancora e i sogni non svaniranno mai&quot; - Edward Kennedy
</text_editor>
</panel>
<panel label="Licenze" name="licenses_panel">
diff --git a/indra/newview/skins/default/xui/it/floater_animation_preview.xml b/indra/newview/skins/default/xui/it/floater_animation_preview.xml
index c3ee23898c..5472e32544 100644
--- a/indra/newview/skins/default/xui/it/floater_animation_preview.xml
+++ b/indra/newview/skins/default/xui/it/floater_animation_preview.xml
@@ -141,35 +141,35 @@ La lunghezza massima è [MAX_LENGTH] secondi.
Espressione
</text>
<combo_box left_delta="100" name="emote_combo" tool_tip="Definisce ciò che fa il viso durante l&apos;animazione" width="184">
- <combo_box.item label="(Nessuno)" name="[None]"/>
- <combo_box.item label="Aaaaah" name="Aaaaah"/>
- <combo_box.item label="Spavento" name="Afraid"/>
- <combo_box.item label="Arrabbiato" name="Angry"/>
- <combo_box.item label="Grande sorriso" name="BigSmile"/>
- <combo_box.item label="Annoiato" name="Bored"/>
- <combo_box.item label="Pianto" name="Cry"/>
- <combo_box.item label="Disdegno" name="Disdain"/>
- <combo_box.item label="Imbarazzato" name="Embarrassed"/>
- <combo_box.item label="Accigliato" name="Frown"/>
- <combo_box.item label="Bacio" name="Kiss"/>
- <combo_box.item label="Risata" name="Laugh"/>
- <combo_box.item label="Plllppt" name="Plllppt"/>
- <combo_box.item label="Repulsione" name="Repulsed"/>
- <combo_box.item label="Triste" name="Sad"/>
- <combo_box.item label="Scrollata di spalle" name="Shrug"/>
- <combo_box.item label="Sorriso" name="Smile"/>
- <combo_box.item label="Stupore" name="Surprise"/>
- <combo_box.item label="Occhiolino" name="Wink"/>
- <combo_box.item label="Preoccupato" name="Worry"/>
+ <item label="(Nessuno)" name="[None]" value=""/>
+ <item label="Aaaaah" name="Aaaaah" value="Aaaaah"/>
+ <item label="Spavento" name="Afraid" value="Spavento"/>
+ <item label="Arrabbiato" name="Angry" value="Arrabbiato"/>
+ <item label="Grande sorriso" name="BigSmile" value="Grande sorriso"/>
+ <item label="Annoiato" name="Bored" value="Annoiato"/>
+ <item label="Pianto" name="Cry" value="Pianto"/>
+ <item label="Disdegno" name="Disdain" value="Disdegno"/>
+ <item label="Imbarazzato" name="Embarrassed" value="Imbarazzato"/>
+ <item label="Accigliato" name="Frown" value="Accigliato"/>
+ <item label="Bacio" name="Kiss" value="Bacio"/>
+ <item label="Risata" name="Laugh" value="Risata"/>
+ <item label="Plllppt" name="Plllppt" value="Plllppt"/>
+ <item label="Repulsione" name="Repulsed" value="Repulsione"/>
+ <item label="Triste" name="Sad" value="Triste"/>
+ <item label="Scrollata di spalle" name="Shrug" value="Scrollata di spalle"/>
+ <item label="Sorriso" name="Smile" value="Sorriso"/>
+ <item label="Stupore" name="Surprise" value="Stupore"/>
+ <item label="Occhiolino" name="Wink" value="Occhiolino"/>
+ <item label="Preoccupato" name="Worry" value="Preoccupato"/>
</combo_box>
<text name="preview_label" width="250">
Vedi anteprima mentre
</text>
<combo_box left_delta="154" name="preview_base_anim" tool_tip="Da usarsi per controllare il comportamento dell&apos;animazione mentre l&apos;avatar svolge azioni abituali." width="130">
- <combo_box.item label="In piedi" name="Standing"/>
- <combo_box.item label="Camminando" name="Walking"/>
- <combo_box.item label="Seduto" name="Sitting"/>
- <combo_box.item label="Volo" name="Flying"/>
+ <item label="In piedi" name="Standing" value="In piedi"/>
+ <item label="Camminando" name="Walking" value="Cammina"/>
+ <item label="Seduto" name="Sitting" value="Seduto"/>
+ <item label="Volo" name="Flying" value="Volo"/>
</combo_box>
<spinner label="Avvio lento (sec)" label_width="125" name="ease_in_time" tool_tip="Durata (in secondi) della fusione in entrata delle animazioni" width="192"/>
<spinner bottom_delta="-20" label="Arresto lento (sec)" label_width="125" left="10" name="ease_out_time" tool_tip="Durata (in secondi) della fusione in uscita delle animazioni" width="192"/>
diff --git a/indra/newview/skins/default/xui/it/floater_god_tools.xml b/indra/newview/skins/default/xui/it/floater_god_tools.xml
index 23d44780ac..32c79936cf 100644
--- a/indra/newview/skins/default/xui/it/floater_god_tools.xml
+++ b/indra/newview/skins/default/xui/it/floater_god_tools.xml
@@ -1,11 +1,17 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="godtools floater" title="GOD TOOLS">
<tab_container name="GodTools Tabs">
- <panel label="Grid" name="grid">
- <button label="Espelli tutti i residenti" label_selected="Espelli tutti i residenti" name="Kick all users"/>
- </panel>
+ <panel label="Grid" name="grid"/>
<panel label="Region" name="region">
+ <text name="Region Name:">
+ Nome regione:
+ </text>
<check_box label="Reset Home On Teleport" name="check reset home" tool_tip="Quando un residente esce con un teleport, reimposta la sua posizione di base sul luogo di destinazione."/>
</panel>
+ <panel label="Objects" name="objects">
+ <text name="Region Name:">
+ Nome regione:
+ </text>
+ </panel>
</tab_container>
</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_image_preview.xml b/indra/newview/skins/default/xui/it/floater_image_preview.xml
index 6169c0222d..ee7be7b155 100644
--- a/indra/newview/skins/default/xui/it/floater_image_preview.xml
+++ b/indra/newview/skins/default/xui/it/floater_image_preview.xml
@@ -11,16 +11,16 @@
immagine come:
</text>
<combo_box label="Tipo d&apos;abito" left="120" name="clothing_type_combo" width="166">
- <combo_box.item label="Immagine" name="Image"/>
- <combo_box.item label="Capigliature" name="Hair"/>
- <combo_box.item label="Testa femminile" name="FemaleHead"/>
- <combo_box.item label="Parte superiore del corpo femminile" name="FemaleUpperBody"/>
- <combo_box.item label="Parte inferiore del corpo femminile" name="FemaleLowerBody"/>
- <combo_box.item label="Testa maschile" name="MaleHead"/>
- <combo_box.item label="Parte superiore del corpo maschile" name="MaleUpperBody"/>
- <combo_box.item label="Parte inferiore del corpo maschile" name="MaleLowerBody"/>
- <combo_box.item label="Gonna" name="Skirt"/>
- <combo_box.item label="Prim Sculpted" name="SculptedPrim"/>
+ <item label="Immagine" name="Image" value="Immagine"/>
+ <item label="Capigliature" name="Hair" value="Capigliature"/>
+ <item label="Testa femminile" name="FemaleHead" value="Testa femminile"/>
+ <item label="Parte superiore del corpo femminile" name="FemaleUpperBody" value="Parte superiore del corpo femminile"/>
+ <item label="Parte inferiore del corpo femminile" name="FemaleLowerBody" value="Parte inferiore del corpo femminile"/>
+ <item label="Testa maschile" name="MaleHead" value="Testa maschile"/>
+ <item label="Parte superiore del corpo maschile" name="MaleUpperBody" value="Parte superiore del corpo maschile"/>
+ <item label="Parte inferiore del corpo maschile" name="MaleLowerBody" value="Parte inferiore del corpo maschile"/>
+ <item label="Gonna" name="Skirt" value="Gonna"/>
+ <item label="Prim Sculpted" name="SculptedPrim" value="Prim Sculpted"/>
</combo_box>
<text name="bad_image_text">
Non è stato possibile leggere l&apos;immagine.
diff --git a/indra/newview/skins/default/xui/it/floater_outgoing_call.xml b/indra/newview/skins/default/xui/it/floater_outgoing_call.xml
index 268d46e07e..cdb180bacd 100644
--- a/indra/newview/skins/default/xui/it/floater_outgoing_call.xml
+++ b/indra/newview/skins/default/xui/it/floater_outgoing_call.xml
@@ -28,7 +28,7 @@
Sei stato scollegato da [VOICE_CHANNEL_NAME]. [RECONNECT_NEARBY]
</text>
<text name="nearby_P2P_by_other">
- [VOICE_CHANNEL_NAME] ha chiuso la chiamata. [RECONNECT_NEARBY]
+ La chiamata è terminata. [RECONNECT_NEARBY]
</text>
<text name="nearby_P2P_by_agent">
Hai chiuso la chiamata. [RECONNECT_NEARBY]
diff --git a/indra/newview/skins/default/xui/it/floater_snapshot.xml b/indra/newview/skins/default/xui/it/floater_snapshot.xml
index 03aaed46be..2f5c86985c 100644
--- a/indra/newview/skins/default/xui/it/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/it/floater_snapshot.xml
@@ -1,79 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Snapshot" title="ANTEPRIMA FOTOGRAFIA" width="247">
- <text name="type_label">
- Destinazione della fotografia
- </text>
- <radio_group label="Tipo di fotografia" name="snapshot_type_radio" width="228">
- <radio_item label="E-mail" name="postcard"/>
- <radio_item label="Il mio inventario (L$[AMOUNT])" name="texture"/>
- <radio_item label="Salva sul mio computer" name="local"/>
- </radio_group>
- <text name="file_size_label">
- [SIZE] KB
- </text>
- <button label="Aggiorna la fotografia" name="new_snapshot_btn"/>
- <button label="Invia" name="send_btn"/>
- <button label="Salva ([AMOUNT] L$)" name="upload_btn"/>
- <flyout_button label="Salva" name="save_btn" tool_tip="Salva l&apos;immagine come file">
- <flyout_button_item label="Salva" name="save_item"/>
- <flyout_button_item label="Salva con nome..." name="saveas_item"/>
- </flyout_button>
- <button label="Annulla" name="discard_btn"/>
- <button label="Altro" name="more_btn" tool_tip="Opzioni Avanzate"/>
- <button label="Meno" name="less_btn" tool_tip="Opzioni Avanzate"/>
- <text name="type_label2">
- Grandezza
- </text>
- <text name="format_label">
- Formato
- </text>
- <combo_box label="Risoluzione" name="postcard_size_combo">
- <combo_box.item label="Finestra corrente" name="CurrentWindow"/>
- <combo_box.item label="640x480" name="640x480"/>
- <combo_box.item label="800x600" name="800x600"/>
- <combo_box.item label="1024x768" name="1024x768"/>
- <combo_box.item label="Personalizzata" name="Custom"/>
- </combo_box>
- <combo_box label="Risoluzione" name="texture_size_combo">
- <combo_box.item label="Finestra corrente" name="CurrentWindow"/>
- <combo_box.item label="Piccola (128x128)" name="Small(128x128)"/>
- <combo_box.item label="Media (256x256)" name="Medium(256x256)"/>
- <combo_box.item label="Larga (512x512)" name="Large(512x512)"/>
- <combo_box.item label="Personalizzata" name="Custom"/>
- </combo_box>
- <combo_box label="Risoluzione" name="local_size_combo">
- <combo_box.item label="Finestra corrente" name="CurrentWindow"/>
- <combo_box.item label="320x240" name="320x240"/>
- <combo_box.item label="640x480" name="640x480"/>
- <combo_box.item label="800x600" name="800x600"/>
- <combo_box.item label="1024x768" name="1024x768"/>
- <combo_box.item label="1280x1024" name="1280x1024"/>
- <combo_box.item label="1600x1200" name="1600x1200"/>
- <combo_box.item label="Personalizzata" name="Custom"/>
- </combo_box>
- <combo_box label="Formato" name="local_format_combo">
- <combo_box.item label="PNG" name="PNG"/>
- <combo_box.item label="JPEG" name="JPEG"/>
- <combo_box.item label="BMP" name="BMP"/>
- </combo_box>
- <spinner label="Larghezza" label_width="58" name="snapshot_width" width="116"/>
- <spinner label="Altezza" label_width="41" left="130" name="snapshot_height" width="101"/>
- <check_box label="Mantieni le proporzioni" name="keep_aspect_check"/>
- <slider label="Qualità dell&apos;immagine" name="image_quality_slider"/>
- <text name="layer_type_label" width="55">
- Fotografa:
- </text>
- <combo_box label="Layer dell&apos;immagine" left="68" name="layer_types" width="165">
- <combo_box.item label="Colori" name="Colors"/>
- <combo_box.item label="Profondità" name="Depth"/>
- <combo_box.item label="Colori primari degli oggetti" name="ObjectMattes"/>
- </combo_box>
- <check_box label="Interfaccia" name="ui_check"/>
- <check_box bottom_delta="-17" label="HUD" name="hud_check"/>
- <check_box bottom_delta="-17" label="Mantieni aperto dopo aver salvato" name="keep_open_check"/>
- <check_box bottom_delta="-17" label="Congela il frame (pieno schermo)" name="freeze_frame_check"/>
- <check_box bottom_delta="-29" label="Auto-Aggiorna" name="auto_snapshot_check"/>
- <string name="unknown">
+<floater name="Snapshot" title="Istantanea" width="247">
+ <floater.string name="unknown">
sconosciuto
- </string>
+ </floater.string>
+ <button label="Aggiorna la fotografia" name="new_snapshot_btn"/>
+ <line_editor label="Descrizione" name="description"/>
+ <button label="Condividi foto" name="share"/>
+ <button label="Condividi su Web" name="share_to_web"/>
+ <button label="Salva nell&apos;inventario" name="save_to_inventory"/>
+ <button label="Salva foto" name="save"/>
+ <button label="Invia foto via e-mail" name="share_to_email"/>
+ <button label="Salva sul mio computer" name="save_to_computer"/>
+ <button label="Imposta come foto del profilo" name="set_profile_pic"/>
+ <button label="Indietro" name="cancel"/>
</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_tos.xml b/indra/newview/skins/default/xui/it/floater_tos.xml
index a11ccdc3af..28a2dfdda2 100644
--- a/indra/newview/skins/default/xui/it/floater_tos.xml
+++ b/indra/newview/skins/default/xui/it/floater_tos.xml
@@ -1,15 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="modal container" title="">
+ <floater.string name="real_url">
+ http://secondlife.com/app/tos/
+ </floater.string>
+ <floater.string name="loading_url">
+ data:text/html,%3Chtml%3E%3Chead%3E%3C/head%3E%3Cbody text=%22000000%22%3E%3Ch2%3E Caricamento in corso %3Ca%20target%3D%22_external%22%20href%3D%22http%3A//secondlife.com/app/tos/%22%3ETerms%20of%20Service%3C/a%3E...%3C/h2%3E %3C/body%3E %3C/html%3E
+ </floater.string>
<button label="Continua" label_selected="Continua" name="Continue"/>
<button label="Annulla" label_selected="Annulla" name="Cancel"/>
<check_box label="Accetto i Termini del servizio e le Regole sulla privacy" name="agree_chk"/>
<text name="tos_heading">
Sei pregato di leggere attentamente i Termini del servizio e le Regole sulla privacy di seguito. Per continuare l&apos;accesso a [SECOND_LIFE], devi accettare le condizioni.
</text>
- <text_editor name="tos_text">
- TOS_TEXT
- </text_editor>
- <string name="real_url">
- http://secondlife.com/app/tos/
- </string>
</floater>
diff --git a/indra/newview/skins/default/xui/it/menu_attachment_other.xml b/indra/newview/skins/default/xui/it/menu_attachment_other.xml
index 3dfadd9690..d4d6fd68d0 100644
--- a/indra/newview/skins/default/xui/it/menu_attachment_other.xml
+++ b/indra/newview/skins/default/xui/it/menu_attachment_other.xml
@@ -10,7 +10,7 @@
<menu_item_call label="Segnala" name="abuse"/>
<menu_item_call label="Congela" name="Freeze..."/>
<menu_item_call label="Espelli" name="Eject..."/>
- <menu_item_call label="Debug" name="Debug..."/>
+ <menu_item_call label="Debug delle texture" name="Debug..."/>
<menu_item_call label="Zoom avanti" name="Zoom In"/>
<menu_item_call label="Paga" name="Pay..."/>
<menu_item_call label="Profilo dell&apos;oggetto" name="Object Inspect"/>
diff --git a/indra/newview/skins/default/xui/it/menu_attachment_self.xml b/indra/newview/skins/default/xui/it/menu_attachment_self.xml
index f30b286901..054f4802e6 100644
--- a/indra/newview/skins/default/xui/it/menu_attachment_self.xml
+++ b/indra/newview/skins/default/xui/it/menu_attachment_self.xml
@@ -9,4 +9,5 @@
<menu_item_call label="I miei amici..." name="Friends..."/>
<menu_item_call label="I miei gruppi" name="Groups..."/>
<menu_item_call label="Il mio profilo" name="Profile..."/>
+ <menu_item_call label="Debug delle texture" name="Debug..."/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/it/menu_avatar_other.xml b/indra/newview/skins/default/xui/it/menu_avatar_other.xml
index 8a1ff3d7ec..c2edc32a49 100644
--- a/indra/newview/skins/default/xui/it/menu_avatar_other.xml
+++ b/indra/newview/skins/default/xui/it/menu_avatar_other.xml
@@ -10,7 +10,7 @@
<menu_item_call label="Segnala" name="abuse"/>
<menu_item_call label="Congela" name="Freeze..."/>
<menu_item_call label="Espelli" name="Eject..."/>
- <menu_item_call label="Debug" name="Debug..."/>
+ <menu_item_call label="Debug delle texture" name="Debug..."/>
<menu_item_call label="Zoom avanti" name="Zoom In"/>
<menu_item_call label="Paga" name="Pay..."/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/it/menu_avatar_self.xml b/indra/newview/skins/default/xui/it/menu_avatar_self.xml
index 09219cb843..d73d97d499 100644
--- a/indra/newview/skins/default/xui/it/menu_avatar_self.xml
+++ b/indra/newview/skins/default/xui/it/menu_avatar_self.xml
@@ -24,4 +24,5 @@
<menu_item_call label="I miei amici..." name="Friends..."/>
<menu_item_call label="I miei gruppi" name="Groups..."/>
<menu_item_call label="Il mio profilo" name="Profile..."/>
+ <menu_item_call label="Debug delle texture" name="Debug..."/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/it/menu_edit.xml b/indra/newview/skins/default/xui/it/menu_edit.xml
new file mode 100644
index 0000000000..ffb20a02e9
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/menu_edit.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu label="Modifica" name="Edit">
+ <menu_item_call label="Annulla" name="Undo"/>
+ <menu_item_call label="Ripeti" name="Redo"/>
+ <menu_item_call label="Taglia" name="Cut"/>
+ <menu_item_call label="Copia" name="Copy"/>
+ <menu_item_call label="Incolla" name="Paste"/>
+ <menu_item_call label="Elimina" name="Delete"/>
+ <menu_item_call label="Duplica" name="Duplicate"/>
+ <menu_item_call label="Seleziona tutto" name="Select All"/>
+ <menu_item_call label="Deseleziona" name="Deselect"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/it/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/it/menu_inspect_avatar_gear.xml
index ca6d5a4ad8..22a37d7095 100644
--- a/indra/newview/skins/default/xui/it/menu_inspect_avatar_gear.xml
+++ b/indra/newview/skins/default/xui/it/menu_inspect_avatar_gear.xml
@@ -11,7 +11,7 @@
<menu_item_call label="Segnala" name="report"/>
<menu_item_call label="Congela" name="freeze"/>
<menu_item_call label="Espelli" name="eject"/>
- <menu_item_call label="Debug" name="debug"/>
+ <menu_item_call label="Debug delle texture" name="debug"/>
<menu_item_call label="Trova sulla mappa" name="find_on_map"/>
<menu_item_call label="Zoom avanti" name="zoom_in"/>
<menu_item_call label="Paga" name="pay"/>
diff --git a/indra/newview/skins/default/xui/it/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/it/menu_inspect_self_gear.xml
index 359afcc283..33229bb7c0 100644
--- a/indra/newview/skins/default/xui/it/menu_inspect_self_gear.xml
+++ b/indra/newview/skins/default/xui/it/menu_inspect_self_gear.xml
@@ -5,4 +5,5 @@
<menu_item_call label="Il mio profilo" name="my_profile"/>
<menu_item_call label="I miei amici..." name="my_friends"/>
<menu_item_call label="I miei gruppi" name="my_groups"/>
+ <menu_item_call label="Debug delle texture" name="Debug..."/>
</menu>
diff --git a/indra/newview/skins/default/xui/it/menu_inv_offer_chiclet.xml b/indra/newview/skins/default/xui/it/menu_inv_offer_chiclet.xml
new file mode 100644
index 0000000000..471640eff5
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/menu_inv_offer_chiclet.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="InvOfferChiclet Menu">
+ <menu_item_call label="Chiudi" name="Close"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/it/menu_inventory.xml b/indra/newview/skins/default/xui/it/menu_inventory.xml
index 9662f6f937..dacb257758 100644
--- a/indra/newview/skins/default/xui/it/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/it/menu_inventory.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="Popup">
+ <menu_item_call label="Condividi" name="Share"/>
<menu_item_call label="Compra" name="Task Buy"/>
<menu_item_call label="Apri" name="Task Open"/>
<menu_item_call label="Esegui" name="Task Play"/>
diff --git a/indra/newview/skins/default/xui/it/menu_login.xml b/indra/newview/skins/default/xui/it/menu_login.xml
index 36eeadc478..b0edeb3618 100644
--- a/indra/newview/skins/default/xui/it/menu_login.xml
+++ b/indra/newview/skins/default/xui/it/menu_login.xml
@@ -7,18 +7,8 @@
<menu label="Aiuto" name="Help">
<menu_item_call label="Aiuto di [SECOND_LIFE]" name="Second Life Help"/>
</menu>
+ <menu_item_check label="Mostra menu Debug" name="Show Debug Menu"/>
<menu label="Debug" name="Debug">
- <menu label="Modifica" name="Edit">
- <menu_item_call label="Annulla" name="Undo"/>
- <menu_item_call label="Rifai" name="Redo"/>
- <menu_item_call label="Taglia" name="Cut"/>
- <menu_item_call label="Copia" name="Copy"/>
- <menu_item_call label="Incolla" name="Paste"/>
- <menu_item_call label="Elimina" name="Delete"/>
- <menu_item_call label="Duplica" name="Duplicate"/>
- <menu_item_call label="Seleziona tutto" name="Select All"/>
- <menu_item_call label="Deseleziona" name="Deselect"/>
- </menu>
<menu_item_call label="Mostra impostazioni di debug" name="Debug Settings"/>
<menu_item_call label="Impostazioni colori interfaccia" name="UI/Color Settings"/>
<menu label="Test interfaccia utente" name="UI Tests"/>
@@ -26,5 +16,7 @@
<menu_item_call label="Mostra i Termini del servizio (TOS)" name="TOS"/>
<menu_item_call label="Mostra messaggio critico" name="Critical"/>
<menu_item_call label="Test browser Web" name="Web Browser Test"/>
+ <menu_item_check label="Mostra selettore griglia" name="Show Grid Picker"/>
+ <menu_item_call label="Mostra Console notifiche" name="Show Notifications Console"/>
</menu>
</menu_bar>
diff --git a/indra/newview/skins/default/xui/it/menu_participant_list.xml b/indra/newview/skins/default/xui/it/menu_participant_list.xml
index e641d38508..71f1a9a0da 100644
--- a/indra/newview/skins/default/xui/it/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/it/menu_participant_list.xml
@@ -8,6 +8,7 @@
<menu_item_call label="Chiama" name="Call"/>
<menu_item_call label="Condividi" name="Share"/>
<menu_item_call label="Paga" name="Pay"/>
+ <menu_item_check label="Icone persone" name="View Icons"/>
<menu_item_check label="Blocca voce" name="Block/Unblock"/>
<menu_item_check label="Blocca testo" name="MuteText"/>
<context_menu label="Opzioni moderatore &gt;" name="Moderator Options">
@@ -15,6 +16,6 @@
<menu_item_call label="Disattiva audio di questo participante" name="ModerateVoiceMuteSelected"/>
<menu_item_call label="Disattiva audio di tutti gli altri" name="ModerateVoiceMuteOthers"/>
<menu_item_call label="Riattiva audio di questo participante" name="ModerateVoiceUnMuteSelected"/>
- <menu_item_call label="Disattiva audio di tutti gli altri" name="ModerateVoiceUnMuteOthers"/>
+ <menu_item_call label="Riattiva audio di tutti gli altri" name="ModerateVoiceUnMuteOthers"/>
</context_menu>
</context_menu>
diff --git a/indra/newview/skins/default/xui/it/menu_save_outfit.xml b/indra/newview/skins/default/xui/it/menu_save_outfit.xml
new file mode 100644
index 0000000000..ac7b40ca48
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/menu_save_outfit.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="save_outfit_menu">
+ <menu_item_call label="Salva" name="save_outfit"/>
+ <menu_item_call label="Salva come nuovo" name="save_as_new_outfit"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/it/menu_script_chiclet.xml b/indra/newview/skins/default/xui/it/menu_script_chiclet.xml
new file mode 100644
index 0000000000..604f754ba8
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/menu_script_chiclet.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="ScriptChiclet Menu">
+ <menu_item_call label="Chiudi" name="Close"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/it/menu_viewer.xml b/indra/newview/skins/default/xui/it/menu_viewer.xml
index d9b401ea46..8556ac7da0 100644
--- a/indra/newview/skins/default/xui/it/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/it/menu_viewer.xml
@@ -31,6 +31,7 @@
<menu_item_call label="Istantanea" name="Take Snapshot"/>
<menu_item_call label="Crea punto di riferimento per questo luogo" name="Create Landmark Here"/>
<menu label="Profilo del posto" name="Land">
+ <menu_item_call label="Profilo del luogo" name="Place Profile"/>
<menu_item_call label="Informazioni sui terreni" name="About Land"/>
<menu_item_call label="Regione/proprietà immobiliare" name="Region/Estate"/>
</menu>
@@ -66,17 +67,6 @@
<menu_item_call label="Crea strumento" name="Create"/>
<menu_item_call label="Strumento Terreno" name="Land"/>
</menu>
- <menu label="Modifica" name="Edit">
- <menu_item_call label="Annulla" name="Undo"/>
- <menu_item_call label="Rifai" name="Redo"/>
- <menu_item_call label="Taglia" name="Cut"/>
- <menu_item_call label="Copia" name="Copy"/>
- <menu_item_call label="Incolla" name="Paste"/>
- <menu_item_call label="Elimina" name="Delete"/>
- <menu_item_call label="Duplica" name="Duplicate"/>
- <menu_item_call label="Seleziona tutto" name="Select All"/>
- <menu_item_call label="Deseleziona" name="Deselect"/>
- </menu>
<menu_item_call label="Collegamento" name="Link"/>
<menu_item_call label="Scollega" name="Unlink"/>
<menu_item_check label="Modifica le parti collegate" name="Edit Linked Parts"/>
@@ -124,6 +114,7 @@
<menu_item_call label="Informazioni su [APP_NAME]" name="About Second Life"/>
</menu>
<menu label="Avanzate" name="Advanced">
+ <menu_item_check label="Mostra menu Avanzato" name="Show Advanced Menu"/>
<menu_item_call label="Ferma animazione" name="Stop Animating My Avatar"/>
<menu_item_call label="Ridisegna le texture" name="Rebake Texture"/>
<menu_item_call label="Imposta dimensioni dell&apos;interfaccia sui valori predefiniti" name="Set UI Size to Default"/>
@@ -145,7 +136,6 @@
<menu_item_check label="Evidenzia trasparenza" name="Highlight Transparent"/>
<menu_item_check label="Mostra elementi HUD" name="Show HUD Attachments"/>
<menu_item_check label="Mostra mirino visuale soggettiva" name="ShowCrosshairs"/>
- <menu_item_check label="Mostra tooltip terreno" name="Land Tips"/>
</menu>
<menu label="Modalità di rendering" name="Rendering Types">
<menu_item_check label="Semplice" name="Simple"/>
diff --git a/indra/newview/skins/default/xui/it/notifications.xml b/indra/newview/skins/default/xui/it/notifications.xml
index 6736c6a6f1..0ca404d06b 100644
--- a/indra/newview/skins/default/xui/it/notifications.xml
+++ b/indra/newview/skins/default/xui/it/notifications.xml
@@ -352,7 +352,7 @@ Vuoi continuare?
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="DeleteAvatarPick">
- Cancella il favorito [PICK]?
+ Elimina preferito &lt;nolink&gt;[PICK]&lt;/nolink&gt;?
<usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
</notification>
<notification name="PromptGoToEventsPage">
@@ -898,7 +898,7 @@ Unisci il terreno?
In genere si tratta di un problema temporaneo. Attendi alcuni minuti per modificare e salvare nuovamente gli elementi indossabili.
</notification>
<notification name="YouHaveBeenLoggedOut">
- Accidenti. Sei stato scollegato da [SECOND_LIFE]
+ Sei stato scollegato da [SECOND_LIFE].
[MESSAGE]
<usetemplate name="okcancelbuttons" notext="Esci" yestext="Vedi IM &amp; Chat"/>
</notification>
@@ -924,6 +924,16 @@ Offri l&apos;amicizia a [NAME]?
<button name="Cancel" text="Annulla"/>
</form>
</notification>
+ <notification label="Salva vestiario" name="SaveOutfitAs">
+ Salva gli abiti che indosso come nuovo vestiario:
+ <form name="form">
+ <input name="message">
+ [DESC] (nuovo)
+ </input>
+ <button name="Offer" text="OK"/>
+ <button name="Cancel" text="Annulla"/>
+ </form>
+ </notification>
<notification name="RemoveFromFriends">
Vuoi rimuovere remove [FIRST_NAME] [LAST_NAME] dalla lista dei tuoi amici?
<usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
@@ -1414,6 +1424,10 @@ La chat e gli IM verranno nascosti. Gli IM riceveranno la tua risposta di Non di
Teleport a [CLASSIFIED]?
<usetemplate ignoretext="Conferma il teleport verso questa posizione negli annunci" name="okcancelignore" notext="Annulla" yestext="Teleport"/>
</notification>
+ <notification name="TeleportToHistoryEntry">
+ Teleport a [HISTORY_ENTRY]?
+ <usetemplate ignoretext="Conferma il teleport verso un luogo che compare nella cronologia" name="okcancelignore" notext="Annulla" yestext="Teleport"/>
+ </notification>
<notification label="Manda un messaggio a tutti nella tua proprietà" name="MessageEstate">
Scrivi un annuncio breve che verrà mandato a tutti quelli che sono in questo momento nella tua proprietà.
<form name="form">
@@ -1505,6 +1519,9 @@ Puoi cliccare su Cambia preferenze per modificare la categoria di accesso e quin
<ignore name="ignore" text="La categoria di accesso impostata mi impedisce di entrare in una regione"/>
</form>
</notification>
+ <notification name="PreferredMaturityChanged">
+ La tua categoria di accesso attuale è [RATING].
+ </notification>
<notification name="LandClaimAccessBlocked">
Non puoi prendere possesso di questo terreno a causa della tua categoria di accesso. Questo può essere dovuto ad una mancanza di informazioni valide che confermino la tua età.
@@ -1921,6 +1938,9 @@ Inseriscilo in una pagina web per dare ad altri un accesso facile a questa ubica
<notification name="SystemMessageTip">
[MESSAGE]
</notification>
+ <notification name="IMSystemMessageTip">
+ [MESSAGE]
+ </notification>
<notification name="Cancelled">
Annullato
</notification>
@@ -1949,6 +1969,11 @@ Inseriscilo in una pagina web per dare ad altri un accesso facile a questa ubica
Sto importando le fotografie per l&apos;uso inworld e per il web...
(Durata circa 5 minuti.)
</notification>
+ <notification name="UploadConfirmation">
+ Il costo per il caricamento è di L$ [AMOUNT].
+Continuare?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="Carica nel server"/>
+ </notification>
<notification name="UploadPayment">
Hai pagato [AMOUNT]L$ per il caricamento.
</notification>
@@ -2290,9 +2315,9 @@ Riprova tra qualche istante.
</form>
</notification>
<notification name="TeleportOffered">
- [NAME] ti ha offerto di teleportarti nella sua ubicazione:
+ [NAME_SLURL] ti ha offerto il teleport alla sua ubicazione:
-[MESSAGE]
+[MESSAGE] - [MATURITY_STR] &lt;icon&gt;[MATURITY_ICON]&lt;/icon&gt;
<form name="form">
<button name="Teleport" text="Teleport"/>
<button name="Cancel" text="Cancella"/>
@@ -2310,11 +2335,11 @@ Riprova tra qualche istante.
</form>
</notification>
<notification name="OfferFriendship">
- [NAME] ti ha offerto la sua amicizia.
+ [NAME_SLURL] ti ha offerto di diventare amici.
[MESSAGE]
-(Di default, potrete vedervi reciprocamente online.)
+(L&apos;impostazione predefinita consente a ciascuno di vedere se l&apos;altro è online.)
<form name="form">
<button name="Accept" text="Accetta"/>
<button name="Decline" text="Rifiuta"/>
@@ -2377,6 +2402,9 @@ Dall&apos;oggetto: [OBJECTNAME], di: [NAME]?
<notification name="FailedToFindWearable">
Impossibile trovare [TYPE] chiamato [DESC] nel database.
</notification>
+ <notification name="ShareToWebFailed">
+ Caricamento dell&apos;immagine su Web non riuscita.
+ </notification>
<notification name="InvalidWearable">
L&apos;elemento che stai tentando di indossare usa delle caratteristiche che il tuo viewer non può leggere. Aggiorna la versione di [APP_NAME] per poterlo indossare.
</notification>
@@ -2573,6 +2601,12 @@ Per sicurezza, verranno bloccati per alcuni secondi.
Il pulsante selezionato non può essere visualizzato in questo momento.
Il pulsante verrà visualizzato quando lo spazio sarà sufficiente.
</notification>
+ <notification name="ShareNotification">
+ Trascina articoli dell&apos;inventario su una persona nel selettore residenti
+ </notification>
+ <notification name="AvatarRezNotification">
+ Avatar &apos;[NAME]&apos; rezzato in [TIME] secondi.
+ </notification>
<global name="UnsupportedCPU">
- La velocità della tua CPU non soddisfa i requisiti minimi.
</global>
diff --git a/indra/newview/skins/default/xui/it/outfit_accordion_tab.xml b/indra/newview/skins/default/xui/it/outfit_accordion_tab.xml
new file mode 100644
index 0000000000..bac885e5d8
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/outfit_accordion_tab.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- *NOTE: mantipov: this xml is intended to be used inside panel_outfits_list.xml for each outfit folder-->
+<!-- All accordion tabs in the My Appearance/My Outfits panel will be created from this one at runtume-->
+<accordion_tab name="Mockup Tab" title="Mockup Tab"/>
diff --git a/indra/newview/skins/default/xui/it/panel_edit_eyes.xml b/indra/newview/skins/default/xui/it/panel_edit_eyes.xml
index 3b1e51e759..9f31bb7dc7 100644
--- a/indra/newview/skins/default/xui/it/panel_edit_eyes.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_eyes.xml
@@ -3,7 +3,9 @@
<panel name="avatar_eye_color_panel">
<texture_picker label="Iride" name="Iris" tool_tip="Clicca per scegliere una fotografia"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="eyes_main_tab" title="Occhi"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="eyes_main_tab" title="Occhi"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_edit_gloves.xml b/indra/newview/skins/default/xui/it/panel_edit_gloves.xml
index 2a80d6df3d..48024b8095 100644
--- a/indra/newview/skins/default/xui/it/panel_edit_gloves.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_gloves.xml
@@ -4,7 +4,9 @@
<texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere una fotografia"/>
<color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per aprire il selettore dei colori"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="gloves_main_tab" title="Guanti"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="gloves_main_tab" title="Guanti"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_edit_hair.xml b/indra/newview/skins/default/xui/it/panel_edit_hair.xml
index 534ff457ff..50e2e7e4b3 100644
--- a/indra/newview/skins/default/xui/it/panel_edit_hair.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_hair.xml
@@ -3,10 +3,12 @@
<panel name="avatar_hair_color_panel">
<texture_picker label="Texture" name="Texture" tool_tip="Clicca per scegliere una fotografia"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="hair_color_tab" title="Colore"/>
- <accordion_tab name="hair_style_tab" title="Stile"/>
- <accordion_tab name="hair_eyebrows_tab" title="Sopracciglia"/>
- <accordion_tab name="hair_facial_tab" title="Del viso"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="hair_color_tab" title="Colore"/>
+ <accordion_tab name="hair_style_tab" title="Stile"/>
+ <accordion_tab name="hair_eyebrows_tab" title="Sopracciglia"/>
+ <accordion_tab name="hair_facial_tab" title="Del viso"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_edit_jacket.xml b/indra/newview/skins/default/xui/it/panel_edit_jacket.xml
index 43c825ff73..d77c1ec763 100644
--- a/indra/newview/skins/default/xui/it/panel_edit_jacket.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_jacket.xml
@@ -5,7 +5,9 @@
<texture_picker label="Tessuto inferiore" name="Lower Fabric" tool_tip="Clicca per scegliere una fotografia"/>
<color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per aprire il selettore dei colori"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="jacket_main_tab" title="Giacca"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="jacket_main_tab" title="Giacca"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_edit_pants.xml b/indra/newview/skins/default/xui/it/panel_edit_pants.xml
index cbab711fb1..83ef274877 100644
--- a/indra/newview/skins/default/xui/it/panel_edit_pants.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_pants.xml
@@ -4,7 +4,9 @@
<texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere una fotografia"/>
<color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per aprire il selettore dei colori"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="pants_main_tab" title="Pantaloni"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="pants_main_tab" title="Pantaloni"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_edit_pick.xml b/indra/newview/skins/default/xui/it/panel_edit_pick.xml
index d2d97cfc71..f93b953eac 100644
--- a/indra/newview/skins/default/xui/it/panel_edit_pick.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_pick.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Modifica scelta" name="panel_edit_pick">
+<panel label="Modifica preferito" name="panel_edit_pick">
<panel.string name="location_notice">
(si aggiornerà dopo il salvataggio)
</panel.string>
<text name="title">
- Modifica scelta
+ Modifica preferito
</text>
<scroll_container name="profile_scroll">
<panel name="scroll_content_panel">
diff --git a/indra/newview/skins/default/xui/it/panel_edit_shape.xml b/indra/newview/skins/default/xui/it/panel_edit_shape.xml
index cc0676b43c..7e1ba43756 100644
--- a/indra/newview/skins/default/xui/it/panel_edit_shape.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_shape.xml
@@ -9,15 +9,17 @@
<radio_item label="Maschio" name="radio2"/>
</radio_group>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="shape_body_tab" title="Corpo"/>
- <accordion_tab name="shape_head_tab" title="Testa"/>
- <accordion_tab name="shape_eyes_tab" title="Occhi"/>
- <accordion_tab name="shape_ears_tab" title="Orecchie"/>
- <accordion_tab name="shape_nose_tab" title="Naso"/>
- <accordion_tab name="shape_mouth_tab" title="Bocca"/>
- <accordion_tab name="shape_chin_tab" title="Mento"/>
- <accordion_tab name="shape_torso_tab" title="Torace"/>
- <accordion_tab name="shape_legs_tab" title="Gambe"/>
- </accordion>
+ <panel label="Camicia" name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="shape_body_tab" title="Corpo"/>
+ <accordion_tab name="shape_head_tab" title="Testa"/>
+ <accordion_tab name="shape_eyes_tab" title="Occhi"/>
+ <accordion_tab name="shape_ears_tab" title="Orecchie"/>
+ <accordion_tab name="shape_nose_tab" title="Naso"/>
+ <accordion_tab name="shape_mouth_tab" title="Bocca"/>
+ <accordion_tab name="shape_chin_tab" title="Mento"/>
+ <accordion_tab name="shape_torso_tab" title="Torace"/>
+ <accordion_tab name="shape_legs_tab" title="Gambe"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_edit_shirt.xml b/indra/newview/skins/default/xui/it/panel_edit_shirt.xml
index 631d609d60..1f41b28348 100644
--- a/indra/newview/skins/default/xui/it/panel_edit_shirt.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_shirt.xml
@@ -4,7 +4,9 @@
<texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere una fotografia"/>
<color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per aprire il selettore dei colori"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="shirt_main_tab" title="Camicia"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="shirt_main_tab" title="Camicia"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_edit_shoes.xml b/indra/newview/skins/default/xui/it/panel_edit_shoes.xml
index bd1fa5b16d..7a82c8e99d 100644
--- a/indra/newview/skins/default/xui/it/panel_edit_shoes.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_shoes.xml
@@ -4,7 +4,9 @@
<texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere una fotografia"/>
<color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per aprire il selettore dei colori"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="shoes_main_tab" title="Scarpe"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="shoes_main_tab" title="Scarpe"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_edit_skin.xml b/indra/newview/skins/default/xui/it/panel_edit_skin.xml
index 9e05599470..a15489b333 100644
--- a/indra/newview/skins/default/xui/it/panel_edit_skin.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_skin.xml
@@ -5,10 +5,12 @@
<texture_picker label="Tatuaggi superiori" name="Upper Tattoos" tool_tip="Clicca per scegliere una fotografia"/>
<texture_picker label="Tatuaggi inferiori" name="Lower Tattoos" tool_tip="Clicca per scegliere una fotografia"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="skin_color_tab" title="Colore della pelle"/>
- <accordion_tab name="skin_face_tab" title="Dettagli del viso"/>
- <accordion_tab name="skin_makeup_tab" title="Makeup"/>
- <accordion_tab name="skin_body_tab" title="Dettagli del corpo"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="skin_color_tab" title="Colore della pelle"/>
+ <accordion_tab name="skin_face_tab" title="Dettagli del viso"/>
+ <accordion_tab name="skin_makeup_tab" title="Makeup"/>
+ <accordion_tab name="skin_body_tab" title="Dettagli del corpo"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_edit_skirt.xml b/indra/newview/skins/default/xui/it/panel_edit_skirt.xml
index e036fff67e..7080b65737 100644
--- a/indra/newview/skins/default/xui/it/panel_edit_skirt.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_skirt.xml
@@ -4,7 +4,9 @@
<texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere una fotografia"/>
<color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per aprire il selettore dei colori"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="skirt_main_tab" title="Gonna"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="skirt_main_tab" title="Gonna"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_edit_socks.xml b/indra/newview/skins/default/xui/it/panel_edit_socks.xml
index d2af3ebd5a..6731511282 100644
--- a/indra/newview/skins/default/xui/it/panel_edit_socks.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_socks.xml
@@ -4,7 +4,9 @@
<texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere una fotografia"/>
<color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per aprire il selettore dei colori"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="socks_main_tab" title="Calzini"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="socks_main_tab" title="Calzini"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_edit_underpants.xml b/indra/newview/skins/default/xui/it/panel_edit_underpants.xml
index ca2ba3ca01..671eb57551 100644
--- a/indra/newview/skins/default/xui/it/panel_edit_underpants.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_underpants.xml
@@ -4,7 +4,9 @@
<texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere una fotografia"/>
<color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per aprire il selettore dei colori"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="underpants_main_tab" title="Slip"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="underpants_main_tab" title="Slip"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_edit_undershirt.xml b/indra/newview/skins/default/xui/it/panel_edit_undershirt.xml
index cf44dad464..fccc86f8fc 100644
--- a/indra/newview/skins/default/xui/it/panel_edit_undershirt.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_undershirt.xml
@@ -4,7 +4,9 @@
<texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere una fotografia"/>
<color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per aprire il selettore dei colori"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="undershirt_main_tab" title="Maglietta intima"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="undershirt_main_tab" title="Maglietta intima"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_edit_wearable.xml b/indra/newview/skins/default/xui/it/panel_edit_wearable.xml
index 2583cf4e0e..1135a582f5 100644
--- a/indra/newview/skins/default/xui/it/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_wearable.xml
@@ -94,6 +94,11 @@
<panel label="Camicia" name="wearable_type_panel">
<text name="description_text" value="Figura corporea:"/>
</panel>
+ <panel label="gear_buttom_panel" name="gear_buttom_panel">
+ <button name="friends_viewsort_btn" tool_tip="Opzioni"/>
+ <button name="add_btn" tool_tip="TODO"/>
+ <button name="del_btn" tool_tip="TODO"/>
+ </panel>
<panel name="button_panel">
<button label="Salva con nome" name="save_as_button"/>
<button label="Ripristina" name="revert_button"/>
diff --git a/indra/newview/skins/default/xui/it/panel_group_general.xml b/indra/newview/skins/default/xui/it/panel_group_general.xml
index e21f9d2049..08a5153c73 100644
--- a/indra/newview/skins/default/xui/it/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/it/panel_group_general.xml
@@ -47,8 +47,11 @@ Muovi il tuo mouse sopra le opzioni per maggiore aiuto.
<check_box label="Quota di adesione" name="check_enrollment_fee" tool_tip="Imposta se richiedere una tassa d&apos;iscrizione per aderire al gruppo"/>
<spinner label="L$" left_delta="136" name="spin_enrollment_fee" tool_tip="I nuovi soci devono pagare questa tassa d&apos;iscrizione quando è selezionata." width="60"/>
<combo_box name="group_mature_check" tool_tip="Imposta se le informazioni sul tuo gruppo sono da considerarsi Mature.">
- <combo_box.item label="Contenuto PG" name="pg"/>
+ <combo_item name="select_mature">
+ - Seleziona categoria di accesso -
+ </combo_item>
<combo_box.item label="Contenuto Mature" name="mature"/>
+ <combo_box.item label="Contenuto PG" name="pg"/>
</combo_box>
<check_box initial_value="true" label="Mostra nella ricerca" name="show_in_group_list" tool_tip="Permetti alle persone di vedere questo gruppo nei risultati della ricerca"/>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_im_control_panel.xml b/indra/newview/skins/default/xui/it/panel_im_control_panel.xml
index 97ec0e11eb..76b28eab24 100644
--- a/indra/newview/skins/default/xui/it/panel_im_control_panel.xml
+++ b/indra/newview/skins/default/xui/it/panel_im_control_panel.xml
@@ -20,7 +20,7 @@
<button label="Chiama" name="call_btn"/>
</layout_panel>
<layout_panel name="end_call_btn_panel">
- <button label="Abbandona chiamata" name="end_call_btn"/>
+ <button label="Chiudi chiamata" name="end_call_btn"/>
</layout_panel>
<layout_panel name="voice_ctrls_btn_panel">
<button label="Regolazione voce" name="voice_ctrls_btn"/>
diff --git a/indra/newview/skins/default/xui/it/panel_inventory_item.xml b/indra/newview/skins/default/xui/it/panel_inventory_item.xml
new file mode 100644
index 0000000000..d18047fbcf
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/panel_inventory_item.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="inventory_item">
+ <text name="item_name" value="..."/>
+</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_media_settings_permissions.xml b/indra/newview/skins/default/xui/it/panel_media_settings_permissions.xml
index 53dac1299f..0f0f1c9fe4 100644
--- a/indra/newview/skins/default/xui/it/panel_media_settings_permissions.xml
+++ b/indra/newview/skins/default/xui/it/panel_media_settings_permissions.xml
@@ -11,10 +11,19 @@
Mini
</combo_item>
</combo_box>
+ <text name="owner_label">
+ Proprietario
+ </text>
<check_box initial_value="false" label="Permetti navigazione e interattività" name="perms_owner_interact"/>
<check_box initial_value="false" label="Mostra la barra di controllo" name="perms_owner_control"/>
+ <text name="group_label">
+ Gruppo:
+ </text>
<check_box initial_value="false" label="Permetti navigazione e interattività" name="perms_group_interact"/>
<check_box initial_value="false" label="Mostra la barra di controllo" name="perms_group_control"/>
+ <text name="anyone_label">
+ Chiunque
+ </text>
<check_box initial_value="false" label="Permetti navigazione e interattività" name="perms_anyone_interact"/>
<check_box initial_value="false" label="Mostra la barra di controllo" name="perms_anyone_control"/>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_nearby_media.xml b/indra/newview/skins/default/xui/it/panel_nearby_media.xml
index 5343ecae13..649b772424 100644
--- a/indra/newview/skins/default/xui/it/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/it/panel_nearby_media.xml
@@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="nearby_media">
+ <string name="media_item_count_format">
+ (%ld oggetti multimediali)
+ </string>
<string name="empty_item_text">
&lt;vuoto&gt;
</string>
@@ -16,15 +19,10 @@
<button label="Interrompi tutto" name="all_nearby_media_disable_btn" tool_tip="Spegni tutti i media nei dintorni"/>
<button label="Accendi tutto" name="all_nearby_media_enable_btn" tool_tip="Accendi tutti i media nei dintorni"/>
<button name="open_prefs_btn" tool_tip="Accedi alle preferenze del media"/>
- <button label="Più &gt;&gt;" label_selected="Meno &lt;&lt;" name="more_less_btn" tool_tip="Opzioni avanzate"/>
+ <button label="Più &gt;&gt;" label_selected="Meno &lt;&lt;" name="more_btn" tool_tip="Opzioni avanzate"/>
+ <button label="Più &gt;&gt;" label_selected="Meno &lt;&lt;" name="less_btn" tool_tip="Opzioni avanzate"/>
</panel>
<panel name="nearby_media_panel">
- <text name="nearby_media">
- Multimedia vicini
- </text>
- <text name="show">
- Mostra:
- </text>
<combo_box name="show_combo">
<combo_box.item label="Tutto" name="All"/>
<combo_box.item label="In questo lotto" name="WithinParcel"/>
@@ -38,7 +36,7 @@
<scroll_list.columns label="Nome" name="media_name"/>
<scroll_list.columns label="Debug" name="media_debug"/>
</scroll_list>
- <panel name="media_controls_panel">
+ <panel>
<layout_stack name="media_controls">
<layout_panel name="stop">
<button name="stop_btn" tool_tip="Interrompi supporto selezionato"/>
@@ -53,7 +51,7 @@
<slider_bar initial_value="0.5" name="volume_slider" tool_tip="Volume audio per il media selezionato"/>
</layout_panel>
<layout_panel name="mute">
- <button name="mute_btn" tool_tip="Disattiva audio del media selezionato"/>
+ <button name="mute_btn" tool_tip="Disattiva audio dei supporti selezionati"/>
</layout_panel>
<layout_panel name="zoom">
<button name="zoom_btn" tool_tip="Zoom nel media selezionato"/>
diff --git a/indra/newview/skins/default/xui/it/panel_outfit_edit.xml b/indra/newview/skins/default/xui/it/panel_outfit_edit.xml
new file mode 100644
index 0000000000..516181e0e9
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/panel_outfit_edit.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- Side tray Outfit Edit panel -->
+<panel label="Modifica del vestiario" name="outfit_edit">
+ <string name="No Outfit" value="Nessun vestiario"/>
+ <panel.string name="not_available">
+ (non pert.)
+ </panel.string>
+ <panel.string name="unknown">
+ (sconosciuto)
+ </panel.string>
+ <string name="Filter.All" value="Tutto"/>
+ <string name="Filter.Clothes/Body" value="Abiti/corpo"/>
+ <string name="Filter.Objects" value="Oggetti"/>
+ <button label="modifica" name="edit_wearable_btn"/>
+ <text name="title" value="Modifica vestiario"/>
+ <panel label="bottom_panel" name="header_panel">
+ <panel label="bottom_panel" name="outfit_name_and_status">
+ <text name="status" value="Modifica..."/>
+ <text name="curr_outfit_name" value="[Current Outfit]"/>
+ </panel>
+ </panel>
+ <layout_stack name="im_panels">
+ <layout_panel label="Pannello di controllo IM" name="outfit_wearables_panel">
+ <scroll_list name="look_items_list">
+ <scroll_list.columns label="Articolo look" name="look_item"/>
+ <scroll_list.columns label="Ordina in base agli articoli del vestiario" name="look_item_sort"/>
+ </scroll_list>
+ <panel label="bottom_panel" name="edit_panel"/>
+ </layout_panel>
+ <layout_panel name="add_wearables_panel">
+ <filter_editor label="Filtro" name="look_item_filter"/>
+ <layout_stack name="filter_panels">
+ <layout_panel label="Pannello di controllo IM" name="filter_button_panel">
+ <text name="add_to_outfit_label" value="Aggiungi al vestiario:"/>
+ <button label="V" name="filter_button"/>
+ </layout_panel>
+ </layout_stack>
+ <panel label="add_wearables_button_bar" name="add_wearables_button_bar">
+ <button label="C" name="folder_view_btn"/>
+ <button label="E" name="list_view_btn"/>
+ </panel>
+ </layout_panel>
+ </layout_stack>
+ <panel name="save_revert_button_bar">
+ <button label="Salva" name="save_btn"/>
+ <button label="Ripristina" name="revert_btn"/>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/it/panel_outfits_inventory.xml
index 58055d91c7..932788eaa3 100644
--- a/indra/newview/skins/default/xui/it/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/it/panel_outfits_inventory.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Cose" name="Outfits">
<tab_container name="appearance_tabs">
- <inventory_panel label="I MIEI ABITI" name="outfitslist_tab"/>
+ <panel label="I MIEI ABITI" name="outfitslist_tab"/>
<inventory_panel label="INDOSSA" name="cof_tab"/>
</tab_container>
<panel name="bottom_panel">
@@ -9,6 +9,6 @@
<dnd_button name="trash_btn" tool_tip="Rimuovi l&apos;articolo selezionato"/>
<button label="Salva vestiario" name="make_outfit_btn" tool_tip="Salva questo aspetto fisico come un vestito"/>
<button label="Indossa" name="wear_btn" tool_tip="Indossa il vestiario selezionato"/>
- <button label="M" name="look_edit_btn"/>
+ <button label="Modifica vestiario" name="edit_current_outfit_btn"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_people.xml b/indra/newview/skins/default/xui/it/panel_people.xml
index acbc2cf326..c469da014a 100644
--- a/indra/newview/skins/default/xui/it/panel_people.xml
+++ b/indra/newview/skins/default/xui/it/panel_people.xml
@@ -1,14 +1,23 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- Side tray panel -->
<panel label="Persone" name="people_panel">
- <string name="no_people" value="Nessuna persona"/>
- <string name="no_one_near" value="Nessuno vicino"/>
+ <string name="no_recent_people" value="Nessuna persona recente. Stai cercando persone da frequentare? Prova la [secondlife:///app/search/people Ricerca] o la [secondlife:///app/worldmap Mappa del mondo]."/>
+ <string name="no_filtered_recent_people" value="Non riesci a trovare quello che cerchi? Prova [secondlife:///app/search/people Cerca]."/>
+ <string name="no_one_near" value="Nessuno vicino. Stai cercando persone da frequentare? Try la [secondlife:///app/search/people Ricerca] o la [secondlife:///app/worldmap Mappa del mondo]."/>
+ <string name="no_one_filtered_near" value="Non riesci a trovare quello che cerchi? Prova [secondlife:///app/search/people Cerca]."/>
<string name="no_friends_online" value="Nessun amico online"/>
<string name="no_friends" value="Nessun amico"/>
+ <string name="no_friends_msg">
+ Per trovare amici, utilizza [secondlife:///app/search/people Cerca] oppure fai clic col tasto destro del mouse su un residente per aggiungerlo come amico.
+Stai cercando persone da frequentare? Prova la [secondlife:///app/worldmap Mappa del mondo].
+ </string>
+ <string name="no_filtered_friends_msg">
+ Non riesci a trovare quello che cerchi? Prova [secondlife:///app/search/people Cerca].
+ </string>
<string name="people_filter_label" value="Filtro persone"/>
<string name="groups_filter_label" value="Filtro gruppi"/>
- <string name="no_filtered_groups_msg" value="[secondlife:///app/search/groups Try finding the group in search?]"/>
- <string name="no_groups_msg" value="[secondlife:///app/search/groups Try searching for some groups to join.]"/>
+ <string name="no_filtered_groups_msg" value="Non riesci a trovare quello che cerchi? Prova [secondlife:///app/search/groups Cerca]."/>
+ <string name="no_groups_msg" value="Stai cercando gruppi di cui far parte? Prova [secondlife:///app/search/groups Cerca]."/>
<filter_editor label="Filtro" name="filter_input"/>
<tab_container name="tabs">
<panel label="NELLE VICINANZE" name="nearby_panel">
@@ -27,10 +36,6 @@
<button name="add_btn" tool_tip="Offri amicizia a un residente"/>
<button name="del_btn" tool_tip="Rimuovi la persona selezionata dalla lista degli amici"/>
</panel>
- <text name="no_friends_msg">
- Per aggiungere amici, prova [secondlife:///app/search/people global search] oppure fai clic col pulsante destro del mouse su un residente per aggiungerlo come amico.
-Se stai cercando qualcuno da frequentare, [secondlife:///app/worldmap try the Map].
- </text>
</panel>
<panel label="I MIEI GRUPPI" name="groups_panel">
<panel label="bottom_panel" name="bottom_panel">
diff --git a/indra/newview/skins/default/xui/it/panel_places.xml b/indra/newview/skins/default/xui/it/panel_places.xml
index bdb852ba62..3b242b1805 100644
--- a/indra/newview/skins/default/xui/it/panel_places.xml
+++ b/indra/newview/skins/default/xui/it/panel_places.xml
@@ -11,5 +11,6 @@
<button label="Salva" name="save_btn"/>
<button label="Annulla" name="cancel_btn"/>
<button label="Chiudi" name="close_btn"/>
+ <button label="Profilo" name="profile_btn"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/it/panel_preferences_advanced.xml
index c24d3f656a..09e19f4bc0 100644
--- a/indra/newview/skins/default/xui/it/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/it/panel_preferences_advanced.xml
@@ -13,13 +13,16 @@
</text>
<check_box label="Costruire/Modificare" name="edit_camera_movement" tool_tip="Utilizza il posizionamento automatico della fotocamera entrando o uscendo dalla modalità modifica"/>
<check_box label="Aspetto fisico" name="appearance_camera_movement" tool_tip="Utilizza il posizionamento automatico della camera in modalità modifica"/>
- <check_box label="Mostra in modalità Mouselook" name="first_person_avatar_visible"/>
+ <check_box label="Visualizzami in modalità soggettiva" name="first_person_avatar_visible"/>
<check_box label="Le frecce di direzione mi fanno sempre spostare" name="arrow_keys_move_avatar_check"/>
<check_box label="Doppio click e tieni premuto per correre" name="tap_tap_hold_to_run"/>
- <check_box label="Consente il movimento delle labbra dell&apos;avatar quando parla" name="enable_lip_sync"/>
+ <check_box label="Movimento delle labbra dell&apos;avatar quando parla" name="enable_lip_sync"/>
<check_box label="Chat a bolla" name="bubble_text_chat"/>
<slider label="Opacità" name="bubble_chat_opacity"/>
<color_swatch name="background" tool_tip="Scegli il colore delle vignette della chat"/>
+ <text name="UI Size:">
+ Dimensioni interfaccia utente
+ </text>
<check_box label="Mostra errori dello script in:" name="show_script_errors"/>
<radio_group name="show_location">
<radio_item label="Chat nei dintorni" name="0"/>
@@ -29,4 +32,5 @@
<line_editor label="Pulsante di comando della funzione Premi per parlare" name="modifier_combo"/>
<button label="Imposta tasto" name="set_voice_hotkey_button"/>
<button label="Pulsante centrale del mouse" name="set_voice_middlemouse_button" tool_tip="Reimposta sul pulsante centrale del mouse"/>
+ <button label="Altri dispositivi" name="joystick_setup_button"/>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_world_map.xml b/indra/newview/skins/default/xui/it/panel_world_map.xml
index 8d18e0ee0b..642af75028 100644
--- a/indra/newview/skins/default/xui/it/panel_world_map.xml
+++ b/indra/newview/skins/default/xui/it/panel_world_map.xml
@@ -30,6 +30,12 @@
<panel.string name="world_map_northwest">
NO
</panel.string>
+ <panel.string name="world_map_person">
+ 1 persona
+ </panel.string>
+ <panel.string name="world_map_people">
+ [NUMBER] persone
+ </panel.string>
<text label="N" name="floater_map_north" text="N">
N
</text>
diff --git a/indra/newview/skins/default/xui/it/sidepanel_inventory.xml b/indra/newview/skins/default/xui/it/sidepanel_inventory.xml
index 196eb75bd7..8a391c882c 100644
--- a/indra/newview/skins/default/xui/it/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/it/sidepanel_inventory.xml
@@ -3,6 +3,7 @@
<panel label="" name="sidepanel__inventory_panel">
<panel name="button_panel">
<button label="Profilo" name="info_btn"/>
+ <button label="Condividi" name="share_btn"/>
<button label="Indossa" name="wear_btn"/>
<button label="Riproduci" name="play_btn"/>
<button label="Teleport" name="teleport_btn"/>
diff --git a/indra/newview/skins/default/xui/it/strings.xml b/indra/newview/skins/default/xui/it/strings.xml
index a1b570d716..a496d4c8d6 100644
--- a/indra/newview/skins/default/xui/it/strings.xml
+++ b/indra/newview/skins/default/xui/it/strings.xml
@@ -255,6 +255,9 @@
<string name="BUTTON_CLOSE_WIN">
Chiudi (Ctrl+W)
</string>
+ <string name="BUTTON_CLOSE_CHROME">
+ Chiudi
+ </string>
<string name="BUTTON_RESTORE">
Ripristina
</string>
@@ -294,6 +297,9 @@
<string name="GroupNameNone">
(nessuno)
</string>
+ <string name="AvalineCaller">
+ Chiamante Avaline [ORDER]
+ </string>
<string name="AssetErrorNone">
Nessun errore
</string>
@@ -886,13 +892,13 @@
Alto
</string>
<string name="LeaveMouselook">
- Premi ESC per tornare in visulizzazione normale
+ Premi ESC per tornare in visualizzazione normale
</string>
<string name="InventoryNoMatchingItems">
- Nessun oggetto corrispondente trovato in inventario. Prova [secondlife:///app/search/groups &quot;Cerca&quot;].
+ Non riesci a trovare quello che cerchi? Prova [secondlife:///app/search/all Cerca].
</string>
<string name="FavoritesNoMatchingItems">
- Trascina qui un punto di riferimento per aggiungerlo ai tuoi preferiti.
+ Trascina qui un punto di riferimento per aggiungerlo ai Preferiti.
</string>
<string name="InventoryNoTexture">
Non hai una copia di questa texture nel tuo inventario
@@ -1548,9 +1554,7 @@
<string name="RegionNoCovenantOtherOwner">
Non esiste alcun regolamento per questa proprietà. Il terreno di questa proprietà è messo in vendita dal proprietario, non dalla Linden Lab. Contatta il proprietario del terreno per i dettagli della vendita.
</string>
- <string name="covenant_last_modified">
- Ultima modifica:
- </string>
+ <string name="covenant_last_modified" value="Ultima modifica:"/>
<string name="none_text" value="(nessuno)"/>
<string name="never_text" value="(mai)"/>
<string name="GroupOwned">
@@ -1566,7 +1570,7 @@
(si aggiornerà dopo la pubblicazione)
</string>
<string name="NoPicksClassifiedsText">
- Non hai creato luoghi preferiti né inserzioni. Clicca il pulsante più qui sotto per creare un luogo preferito o un&apos;inserzione.
+ Non hai creato luoghi preferiti né inserzioni. Clicca il pulsante + qui sotto per creare un luogo preferito o un&apos;inserzione.
</string>
<string name="NoAvatarPicksClassifiedsText">
L&apos;utente non ha luoghi preferiti né inserzioni
@@ -3227,6 +3231,15 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
<string name="LocationCtrlComboBtnTooltip">
La cronologia delle mie posizioni
</string>
+ <string name="LocationCtrlAdultIconTooltip">
+ Regione con categoria adulti
+ </string>
+ <string name="LocationCtrlModerateIconTooltip">
+ Regione con categoria moderata
+ </string>
+ <string name="LocationCtrlGeneralIconTooltip">
+ Regione generale
+ </string>
<string name="UpdaterWindowTitle">
Aggiornamento [APP_NAME]
</string>
@@ -3257,6 +3270,12 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
<string name="UpdaterFailStartTitle">
Errore nell&apos;avvio del viewer
</string>
+ <string name="ItemsComingInTooFastFrom">
+ [APP_NAME]: Oggetti in arrivo troppo velocemente da [FROM_NAME], anteprima automatica disattivata per [TIME] secondi
+ </string>
+ <string name="ItemsComingInTooFast">
+ [APP_NAME]: Oggetti in arrivo troppo velocemente, anteprima automatica disattivata per [TIME] secondi
+ </string>
<string name="IM_logging_string">
-- Registrazione messaggi instantanei abilitata --
</string>
@@ -3284,6 +3303,9 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
<string name="IM_moderator_label">
(Moderatore)
</string>
+ <string name="answered_call">
+ Risposto alla chiamata
+ </string>
<string name="started_call">
Chiamata vocale iniziata
</string>
@@ -3365,12 +3387,18 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
<string name="unread_chat_multiple">
[SOURCES] ha detto qualcosa di nuovo
</string>
+ <string name="session_initialization_timed_out_error">
+ Sessione di inizializzazione scaduta
+ </string>
<string name="paid_you_ldollars">
[NAME] ti ha inviato un pagamento di L$[AMOUNT].
</string>
<string name="you_paid_ldollars">
Hai inviato un pagamento di L$[AMOUNT] a [NAME] [REASON].
</string>
+ <string name="you_paid_ldollars_no_info">
+ Hai pagato L$ [AMOUNT].
+ </string>
<string name="you_paid_ldollars_no_reason">
Hai inviato un pagamento di L$[AMOUNT] a [NAME].
</string>
@@ -3481,4 +3509,13 @@ Segnala abuso
<string name="Contents">
Contenuto
</string>
+ <string name="AvatarBirthDateFormat">
+ [day,datetime,slt]/[mthnum,datetime,slt]/[year,datetime,slt]
+ </string>
+ <string name="DefaultMimeType">
+ nessuna/nessuna
+ </string>
+ <string name="texture_load_dimensions_error">
+ Impossibile caricare immagini di dimensioni superiori a [WIDTH]*[HEIGHT]
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/it/teleport_strings.xml b/indra/newview/skins/default/xui/it/teleport_strings.xml
index c11d41f6b9..7a1046abd3 100644
--- a/indra/newview/skins/default/xui/it/teleport_strings.xml
+++ b/indra/newview/skins/default/xui/it/teleport_strings.xml
@@ -66,7 +66,7 @@ Se si continua a visualizzare questo messaggio, consulta la pagina [SUPPORT_SITE
Elaborazione della destinazione in corso...
</message>
<message name="contacting">
- Contattando la nuova regione.
+ Contatto in corso con la nuova regione.
</message>
<message name="arriving">
In arrivo a destinazione...
diff --git a/indra/newview/skins/default/xui/ja/floater_about.xml b/indra/newview/skins/default/xui/ja/floater_about.xml
index 0eaad11cc7..31cfb5c339 100644
--- a/indra/newview/skins/default/xui/ja/floater_about.xml
+++ b/indra/newview/skins/default/xui/ja/floater_about.xml
@@ -43,13 +43,14 @@ Vivox バージョン: [VIVOX_VERSION]
</panel>
<panel label="クレジット" name="credits_panel">
<text_editor name="credits_editor">
- Second Life は、 Philip、Tessa、Andrew、Cory、James、Ben、Char、Charlie、Colin、Dan、Daniel、Doug、Eric、Hamlet、Haney、Eve、Hunter、Ian、Jeff、Jennifer、Jim、John、Lee、Mark、Peter、Phoenix、Richard、Robin、Xenon、Steve、Tanya、Eddie、Avi、Frank、Bruce、Aaron、Alice、Bob、Debra、Eileen、Helen、Janet、Louie、Leviathania、Stefan、Ray、Kevin、Tom、Mikeb、MikeT、Burgess、Elena、Tracy、Bill、Todd、Ryan、Zach、Sarah、Nova、Tim、Stephanie、Michael、Evan、Nicolas、Catherine、Rachelle、Dave、Holly、Bub、Kelly、Magellan、Ramzi、Don、Sabin、Jill、Rheya、Jeska、Torley、Kona、Callum、Charity、Ventrella、Jack、Vektor、Iris、Chris、Nicole、Mick、Reuben、Blue、Babbage、Yedwab、Deana、Lauren、Brent、Pathfinder、Chadrick、Altruima、Jesse、Teeny、Monroe、Icculus、David、Tess、Lizzie、Patsy、Isaac、Lawrence、Cyn、Bo、Gia、Annette、Marius、Tbone、Jonathan、Karen、Ginsu、Satoko、Yuko、Makiko、Thomas、Harry、Seth、Alexei、Brian、Guy、Runitai、Ethan、Data、Cornelius、Kenny、Swiss、Zero、Natria、Wendy、Stephen、Teeple、Thumper、Lucy、Dee、Mia、Liana、Warren、Branka、Aura、beez、Milo、Hermia、Red、Thrax、Joe、Sally、Magenta、Mogura、Paul、Jose、Rejean、Henrik、Lexie、Amber、Logan、Xan、Nora、Morpheus、Donovan、Leyla、MichaelFrancis、Beast、Cube、Bucky、Joshua、Stryfe、Harmony、Teresa、Claudia、Walker、Glenn、Fritz、Fordak、June、Cleopetra、Jean、Ivy、Betsy、Roosevelt、Spike、Ken、Which、Tofu、Chiyo、Rob、Zee、dustin、George、Del、Matthew、Cat、Jacqui、Lightfoot、Adrian、Viola、Alfred、Noel、Irfan、Sunil、Yool、Rika、Jane、Xtreme、Frontier、a2、Neo、Siobhan、Yoz、Justin、Elle、Qarl、Benjamin、Isabel、Gulliver、Everett、Christopher、Izzy、Stephany、Garry、Sejong、Sean、Tobin、Iridium、Meta、Anthony、Jeremy、JP、Jake、Maurice、Madhavi、Leopard、Kyle、Joon、Kari、Bert、Belinda、Jon、Kristi、Bridie、Pramod、KJ、Socrates、Maria、Ivan、Aric、Yamasaki、Adreanne、Jay、MitchK、Ceren、Coco、Durl、Jenny、Periapse、Kartic、Storrs、Lotte、Sandy、Rohn、Colossus、Zen、BigPapi、Brad、Pastrami、Kurz、Mani、Neuro、Jaime、MJ、Rowan、Sgt、Elvis、Gecko、Samuel、Sardonyx、Leo、Bryan、Niko、Soft、Poppy、Rachel、Aki、Angelo、Banzai、Alexa、Sue、CeeLo、Bender、CG、Gillian、Pelle、Nick、Echo、Zara、Christine、Shamiran、Emma、Blake、Keiko、Plexus、Joppa、Sidewinder、Erica、Ashlei、Twilight、Kristen、Brett、Q、Enus、Simon、Bevis、Kraft、Kip、Chandler、Ron、LauraP、Ram、KyleJM、Scouse、Prospero、Melissa、Marty、Nat、Hamilton、Kend、Lordan、Jimmy、Kosmo、Seraph、Green、Ekim、Wiggo、JT、Rome、Doris、Miz、Benoc、Whump、Trinity、Patch、Kate、TJ、Bao、Joohwan、Christy、Sofia、Matias、Cogsworth、Johan、Oreh、Cheah、Angela、Brandy、Mango、Lan、Aleks、Gloria、Heidy、Mitchell、Space、Colton、Bambers、Einstein、Maggie、Malbers、Rose、Winnie、Stella、Milton、Rothman、Niall、Marin、Allison、Katie、Dawn、Katt、Dusty、Kalpana、Judy、Andrea、Ambroff、Infinity、Gail、Rico、Raymond、Yi、William、Christa、M、Teagan、Scout、Molly、Dante、Corr、Dynamike、Usi、Kaylee、Vidtuts、Lil、Danica、Sascha、Kelv、Jacob、Nya、Rodney、Brandon、Elsie、Blondin、Grant、Katrin、Nyx、Gabriel、Locklainn、Claire、Devin、Minerva、Monty、Austin、Bradford、Si、Keira、H、Caitlin、Dita、Makai、Jenn、Ann、Meredith、Clare、Joy、Praveen、Cody、Edmund、Ruthe、Sirena、Gayathri、Spider、FJ、Davidoff、Tian、Jennie、Louise、Oskar、Landon、Noelle、Jarv、Ingrid、Al、Sommer、Doc、Aria、Huin、Gray、Lili、Vir、DJ、Yang、T、Simone、Maestro、Scott、Charlene、Quixote、Amanda、Susan、Zed、Anne、Enkidu、Esbee、Joroan、Katelin、Roxie、Tay、Scarlet、Kevin、Johnny、Wolfgang、Andren、Bob、Howard、Merov、Rand、Ray、Michon、Newell、Galen、Dessie、Les、Michon、Jenelle、Geo、Siz、Shapiro、Pete、Calyle、Selene、Allen、Phoebe、Goldin、Kimmora、Dakota、Slaton、Lindquist、Zoey、Hari、Othello、Rohit、Sheldon、Petra、Viale、Gordon、Kaye、Pink、Ferny、Emerson、Davy、Bri、Chan、Juan、Robert、Terrence、Nathan、Carlと、その他多数の人達によって作成されました。
+ Second Life は、Philip, Tessa, Andrew, Cory, Ian, James, Phoenix, Ryan, Haney, Dan, Char, Ben, John, Tanya, Eddie, Richard, Mitch, Doug, Eric, Frank, Bruce, Aaron, Peter, Alice, Charlie, Debra, Eileen, Helen, Janet, Steffan, Steve, Tom, Mark, Hunter, Xenon, Burgess, Bill, Jim, Lee, Hamlet, Daniel, Jeff, Todd, Sarah, Tim, Stephanie, Colin, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Jack, Vektor, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Jesse, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Yuko, Makiko, Thomas, Harry, Seth, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Brad, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, Beez, Milo, Hermia, Red, Thrax, Gulliver, Joe, Sally, Paul, Jose, Rejean, Dore, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, Dustin, George, Del, Matthew, Cat, Jacqui, Adrian, Viola, Alfred, Noel, Irfan, Yool, Rika, Jane, Frontier, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Jeremy, JP, Jake, Anthony, Maurice, Madhavi, Leopard, Kyle, Joon, Bert, Belinda, Jon, Kristi, Bridie, Pramod, Socrates, Maria, Aric, Adreanne, Jay, Kari, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Colossus, Zen, BigPapi, Pastrami, Kurz, Mani, Neuro, Mel, Sardonyx, MJ, Rowan, Sgt, Elvis, Samuel, Leo, Bryan, Niko, Austin, Soft, Poppy, Rachel, Aki, Banzai, Alexa, Sue, Bender, CG, Angelo, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Rothman, Niall, Marin, Allison, Katie, Dawn, Dusty, Katt, Judy, Andrea, Ambroff, Infinity, Rico, Gail, Kalpana, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Maestro, Simone, Yang, T, Shannon, Nelson, Khanh, Scott, Courtney, Charlene, Quixote, Susan, Zed, Amanda, Katelin, Enkidu, Roxie, Esbee, JoRoan, Scarlet, Tay, Kevin, Wolfgang, Johnny, Ray, Andren, Merov, Bob, Rand, Howard, Callen, Heff, Galen, Newell, Dessie, Les, Michon, Jenelle, Geo, Siz, Shapiro, Pete, Calyle, Selene, Allen, Phoebe, Goldin, Kimmora, Dakota, Slaton, Lindquist, Zoey, Hari, Othello, Rohit, Sheldon, Petra, Viale, Gordon, Kaye, Pink, Ferny, Emerson, Davy, Bri, Chan, Juan, Robert, Terrence, Nathan, Carl, Ashley, JessieAnn, Huseby, Karina, Paris, Kurt, Rick, Lis, Kotler, Theeba, Lynx, Murphy, Doten, Taka, Norm, Jillian, Marcus, Mae, Novack, Esther, Perry, Dana, Ducot, Javier, Porter, Madison, Gecko, Dough, JR, Gisele, Crimp, Norie, Arch, Kimi, Fisher, Barbara, Jason, Peggy, Bernard, Jules, Leroy, Eva, Khederian, Campbell, Vogt, Masido, Karel, Torres, Lo, Breezer, Delby, Rountree, Anna, Servus, Rue, Itiaes, Chuck, Luna, Novella, Zaza, Wen, Gino, Lex, Cassandra, Limey, Nancy, Anukul, Silver, Brodesky, Jinsai, Squid, Gez, Rakesh, Ladan, Edelman, Marcet, Squire, Tatem, Tony, Jerm, Tia, Falcon, BK, Tiggs, Driscoll, Bacon, Timothee, Cru, Carmilla, Coyot, Webb, Kazu, Rudas, LJ, Sea, Ali Wallace, Bewest, Pup, Drub, Dragon, Inoshiro, Byron, Rhett, Xandix, Aimee, Fredrik, Thor, Teddy, Baron, Nelly, Ghengis, Epic, Eli, Stone, Grapes, Irie, Prep, Scobu, Valerie, Alain その他大勢の方々によって提供されています。
- このバージョンをこれまでで最高のものになるようご協力をいただいた以下の住人の皆様に深く感謝いたします。 able whitman, Adeon Writer, adonaira aabye, Aeron Kohime, Agathos Frascati, Aimee Trescothick, Aleric Inglewood, Alissa Sabre, Aminom Marvin, Angela Talamasca, Aralara Rajal, Armin Weatherwax, Ashrilyn Hayashida, Athanasius Skytower, Aura Dirval, Barney Boomslang, Biancaluce Robbiani, Biker Offcourse, Borg Capalini, Bulli Schumann, catherine pfeffer, Chalice Yao, Corre Porta, Court Goodman, Cummere Mayo, Dale Innis, Darien Caldwell, Darjeeling Schoonhoven, Daten Thielt, dimentox travanti, Dirk Talamasca, Drew Dwi, Duckless Vandyke, Elanthius Flagstaff, Electro Burnstein, emiley tomsen, Escort DeFarge, Eva Rau, Ezian Ecksol, Fire Centaur, Fluf Fredriksson, Francisco Koolhoven, Frontera Thor, Frungi Stastny, Gally Young, gearsawe stonecutter, Gigs Taggart, Gordon Wendt, Gudmund Shepherd, Gypsy Paz, Harleen Gretzky, Henri Beauchamp, Inma Rau, Irene Muni, Iskar Ariantho, Jacek Antonelli, JB Kraft, Jessicka Graves, Joeseph Albanese, Joshua Philgarlic, Khyota Wulluf, kirstenlee Cinquetti, Latif Khalifa, Lex Neva, Lilibeth Andree, Lisa Lowe, Lunita Savira, Loosey Demonia, lum pfohl, Marcos Fonzarelli, MartinRJ Fayray, Marusame Arai, Matthew Dowd, Maya Remblai, McCabe Maxsted, Meghan Dench, Melchoir Tokhes, Menos Short, Michelle2 Zenovka, Mimika Oh, Minerva Memel, Mm Alder, Ochi Wolfe, Omei Turnbull, Pesho Replacement, Phantom Ninetails, phoenixflames kukulcan, Polo Gufler, prez pessoa, princess niven, Prokofy Neva, Qie Niangao, Rem Beattie, RodneyLee Jessop, Saijanai Kuhn, Seg Baphomet, Sergen Davies, Shirley Marquez, SignpostMarv Martin, Sindy Tsure, Sira Arbizu, Skips Jigsaw, Sougent Harrop, Spritely Pixel, Squirrel Wood, StarSong Bright, Subversive Writer, Sugarcult Dagger, Sylumm Grigorovich, Tammy Nowotny, Tanooki Darkes, Tayra Dagostino, Theoretical Chemistry, Thickbrick Sleaford, valerie rosewood, Vex Streeter, Vixen Heron, Whoops Babii, Winter Ventura, Xiki Luik, Yann Dufaux, Yina Yao, Yukinoroh Kamachi, Zolute Infinity, Zwagoth Klaar
+現在最も優れたバージョンとなるようご協力いただいた次の住人の皆様に深く感謝いたします。 Drew Dwi, Zai Lynch, Latif Khalifa, Ellla McMahon, Harleen Gretzky, Squirrel Wood, Malarthi Behemoth, Dante Tucker, Buckaroo Mu, Eddi Decosta, Dirk, Talamasca, Torben Trautman, Irene Muni, Lilly Zenovka, Vick Forcella, Sasy Scarborough, Gentle Welinder, Elric Anatine, Techwolf Lupindo, Dusan Writer, WolfPup Lowenhar, Marianne McCann, Fiachra Lach, Sitearm Madonna, Sudane Erato, Sahkolihaa Contepomi, Sachi Vixen, Questar Utu, Dimitrio Lewis, Matto Destiny, Scrim Pinion, Radio Signals, Psi Merlin, Pixel Gausman, Mel Vanbeeck, Laurent Bechir, Lamorna Proctor, Lares Carter, Gwyneth Llewelyn, Hydra Shaftoe, Holger Gilruth, Gentle Heron, Carla Broek, Boroondas Gupte, Fury Rosewood, Flower Ducatillon, Colpo Wexler, gwampa Lomu, Borg Capalini, Beansy Twine, Ardy Lay, , 45ms Zhong, Adeon Writer, Aeonix Aeon, Ai Austin, Aiko Ying, Alexandrea Fride, Alliez Mysterio, Annie Milestone, Annika Genezzia, Ansariel Hiller, ArminasX Saiman, Arya Braveheart, Asaeda Meltingdots, Asturkon Jua, Avallyn Oakleaf, Avatar Quinzet, BabyA Littlething, Bacchus Ireto, Bazaar, Riva, Benjamin Bigdipper, Beth Walcher, Bezilon Kasei, Biancaluce Robbiani, Bill Walach, blakopal Galicia, Blitzckreed Levenque, Bryn Oh, Callipygian Christensen, Cap Carver, Carr Arbenlow, Chantal Harvey, Charles Courtois, Charlie Sazaland, Cherry Cheevers, ChickyBabes Zuzu, Christopher Organiser, Ciaran Laval, Clara Young, Celierra Darling, Corinne Helendale, Corro Moseley, Coughdrop Littlething, Darien Caldwell, Dartagan Shepherd, Debs Regent, Decro Schmooz, Denim Kamachi, DiJodi Dubratt, Dil Spitz, Edgware Marker, Egehan Dryke, Emma Portilo, Emmie Fairymeadow, Evangelista Emerald, Faelon Swordthain, Frenchimmo Sabra, Gaberoonie Zanzibar, Ganymedes Costagravas, Gene Frostbite, GeneJ Composer, Giggles Littlebird, Grady Echegaray, Guni Greenstein, Gypsy Tripsa, Hackshaven Harford, Ham Rambler, Han Shuffle, Hanglow Short, Hatzfeld Runo, herina Bode, Horatio Freund, Hypatia Callisto, Hypatia Pickens, Identity Euler, Imnotgoing Sideways, Innula Zenovka, Iyoba Tarantal, Jack Abraham, Jagga Meredith, Jennifer Boyle, Jeremy Marquez, Jessica Qin, Jinx Nordberg, Jo Bernandes, Jocial Sonnenkern, Joel Savard, Jondan Lundquist, Josef Munster, Josette Windlow, Juilan Tripsa, Juro Kothari, Justin RiversRunRed, Kagehi Kohn, Kaimen Takahe, Keklily Longfall, Ken Lavender, Kestral Karas, Khisme Nitely, Kimar Coba, Kithrak Kirkorian, Kitty Barnett, Kolor Fall, Komiko Okamoto, Korvel Noh, Larry Pixel, Leal Choche, len Starship, Lenae Munz, Lexi Frua, Lillie Cordeaux, Lizzy Macarthur, LSL Scientist, Luban Yiyuan, Luc Starsider, Maccus McCullough, Madison Blanc, Maggie Darwin, Mallory Destiny, Manx Wharton, Marc Claridge, Marc2 Sands, Matthew Anthony, Maxim RiversRunRed, Medhue Simoni, Melinda Latynina, Mencius Watts, Michi Lumin, Midian Farspire, Miles Glaz, Mindy Mathy, Mitch Wagner, Mo Hax, Mourna Biziou, Nao Noe, naofan Teardrop, Naomah Beaumont, Nathiel Siamendes, Nber Medici, Neko Link, Netpat Igaly, Neutron Chesnokov, Newfie Pendragon, Nicholai Laviscu, Nick Rhodes, Nicoladie Gymnast, Ollie Kubrick, Orenj Marat, Orion Delphis, Oryx Tempel, Parvati Silverweb, PeterPunk Mooney, Pixel Scientist, Pounce Teazle, Professor Noarlunga, Quantum Destiny, Quicksilver Hermes, Ralf Setsuko, RAT Quan, RedMokum Bravin, Revolution Perenti, Rezit Sideways, Rich Grainger, Rosco Teardrop, Rose Evans, Rudee Voom, RufusTT Horsefly, Saii Hallard, SaintLEOlions Zimer, Samm Larkham, Satanello Miami, SexySteven Morrisey, Sheet Spotter, Shnurui Troughton, sicarius Thorne, Sicarius Toxx, Sini Nubalo, SLB Wirefly, snowy Sidran, Soupa Segura, ST Mensing, Starshine Halasy, Stickman Ingmann, Synystyr Texan, Takeda Terrawyng, Tali Rosca, Templar Merlin, Tezcatlipoca Bisiani, Tiel Stonecutter, Tony Kembia, TouchaHoney Perhaps, Trey Reanimator, TriloByte Zanzibar, Trinity Dechou, Trinity Dejavu, Unlikely Quintessa, UsikuFarasi Kanarik, Veritas Raymaker, Vex Streeter, Viaticus Speculaas, Villain Baroque, Vixie Durant, Void Singer, Watty Berkson, Westley Schridde, Westley Streeter, Whimsy Winx, Winter Ventura, Wundur Primbee, xstorm Radek, YongYong Francois, Zak Westminster, Zana Kohime, Zaren Alexander, Zeja Pyle, ZenMondo Wormser, Zoex Flanagan その他大勢の方々。
- ビジネスで成功するには、勇気を持って、誰よりも先に、人と違ったことをすることだ。 --Henry Marchant
+
+「努力は続く。目標は持続する。希望は残されている。夢は決して消えない。」 - エドワード・ケネディ
</text_editor>
</panel>
<panel label="ライセンス" name="licenses_panel">
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 8c2ac17ace..548d24097f 100644
--- a/indra/newview/skins/default/xui/ja/floater_animation_preview.xml
+++ b/indra/newview/skins/default/xui/ja/floater_animation_preview.xml
@@ -141,35 +141,35 @@
表現
</text>
<combo_box label="" name="emote_combo" tool_tip="アニメーション再生中の顔の表情を決めます">
- <combo_box.item label="(なし)" name="[None]"/>
- <combo_box.item label="アーーーーー" name="Aaaaah"/>
- <combo_box.item label="恐れる" name="Afraid"/>
- <combo_box.item label="怒る" name="Angry"/>
- <combo_box.item label="満面の笑み" name="BigSmile"/>
- <combo_box.item label="退屈" name="Bored"/>
- <combo_box.item label="泣く" name="Cry"/>
- <combo_box.item label="侮辱" name="Disdain"/>
- <combo_box.item label="恥ずかしがる" name="Embarrassed"/>
- <combo_box.item label="しかめっ面" name="Frown"/>
- <combo_box.item label="キス" name="Kiss"/>
- <combo_box.item label="笑う" name="Laugh"/>
- <combo_box.item label="Plllppt" name="Plllppt"/>
- <combo_box.item label="嫌悪感" name="Repulsed"/>
- <combo_box.item label="悲しい" name="Sad"/>
- <combo_box.item label="肩をすくめる" name="Shrug"/>
- <combo_box.item label="微笑む" name="Smile"/>
- <combo_box.item label="驚く" name="Surprise"/>
- <combo_box.item label="ウィンク" name="Wink"/>
- <combo_box.item label="心配する" name="Worry"/>
+ <item label="(なし)" name="[None]" value=""/>
+ <item label="アーーーーー" name="Aaaaah" value="アーーーーー"/>
+ <item label="恐れる" name="Afraid" value="恐れる"/>
+ <item label="怒る" name="Angry" value="怒る"/>
+ <item label="満面の笑み" name="BigSmile" value="満面の笑み"/>
+ <item label="退屈" name="Bored" value="退屈"/>
+ <item label="泣く" name="Cry" value="泣く"/>
+ <item label="侮辱" name="Disdain" value="侮辱"/>
+ <item label="恥ずかしがる" name="Embarrassed" value="恥ずかしがる"/>
+ <item label="しかめっ面" name="Frown" value="しかめっ面"/>
+ <item label="キス" name="Kiss" value="キス"/>
+ <item label="笑う" name="Laugh" value="笑う"/>
+ <item label="Plllppt" name="Plllppt" value="Plllppt"/>
+ <item label="嫌悪感" name="Repulsed" value="嫌悪感"/>
+ <item label="悲しい" name="Sad" value="悲しい"/>
+ <item label="肩をすくめる" name="Shrug" value="肩をすくめる"/>
+ <item label="微笑む" name="Smile" value="微笑む"/>
+ <item label="驚く" name="Surprise" value="驚く"/>
+ <item label="ウィンク" name="Wink" value="ウィンク"/>
+ <item label="心配する" name="Worry" value="心配する"/>
</combo_box>
<text name="preview_label">
同時進行行動
</text>
<combo_box label="" name="preview_base_anim" tool_tip="アバターが普通の行動をするときのアニメーションの動きをテストするためにこれを使います。">
- <combo_box.item label="立つ" name="Standing"/>
- <combo_box.item label="歩く" name="Walking"/>
- <combo_box.item label="座る" name="Sitting"/>
- <combo_box.item label="飛ぶ" name="Flying"/>
+ <item label="立つ" name="Standing" value="立つ"/>
+ <item label="歩く" name="Walking" value="歩く"/>
+ <item label="座る" name="Sitting" value="座る"/>
+ <item label="飛ぶ" name="Flying" value="飛ぶ"/>
</combo_box>
<spinner label="イーズイン(秒)" name="ease_in_time" tool_tip="アニメーションのブレンドイン時間(秒)"/>
<spinner label="イーズアウト(秒)" name="ease_out_time" tool_tip="アニメーションのブレンドアウト時間(秒)"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/ja/floater_day_cycle_options.xml
index b924af4e67..b0949cd4e0 100644
--- a/indra/newview/skins/default/xui/ja/floater_day_cycle_options.xml
+++ b/indra/newview/skins/default/xui/ja/floater_day_cycle_options.xml
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="Day Cycle Floater" title="デイサイクル編集">
<tab_container name="Day Cycle Tabs">
<panel label="デイサイクル" name="Day Cycle">
- <button label="?" name="WLDayCycleHelp" />
+ <button label="?" name="WLDayCycleHelp"/>
<text name="WL12am">
深夜 12時
</text>
@@ -57,41 +57,38 @@
<text name="WL12amHash2">
|
</text>
- <button label="キーの追加" label_selected="キーの追加" name="WLAddKey" />
- <button label="キーの削除" label_selected="キーの削除" name="WLDeleteKey" />
+ <button label="キーの追加" label_selected="キーの追加" name="WLAddKey"/>
+ <button label="キーの削除" label_selected="キーの削除" name="WLDeleteKey"/>
<text name="WLCurKeyFrameText">
キーフレームの設定:
</text>
<text name="WLCurKeyTimeText">
キータイム:
</text>
- <spinner label="時間" name="WLCurKeyHour" />
- <spinner label="分" name="WLCurKeyMin" />
+ <spinner label="時間" name="WLCurKeyHour"/>
+ <spinner label="分" name="WLCurKeyMin"/>
<text name="WLCurKeyTimeText2">
キーの事前設定:
</text>
- <combo_box label="事前設定" name="WLKeyPresets" />
+ <combo_box label="事前設定" name="WLKeyPresets"/>
<text name="DayCycleText">
スナップ:
</text>
- <combo_box label="5 分" name="WLSnapOptions" />
+ <combo_box label="5 分" name="WLSnapOptions"/>
<text name="DayCycleText2">
サイクルの長さ:
</text>
- <spinner label="時間" name="WLLengthOfDayHour" />
- <spinner label="分" name="WLLengthOfDayMin" />
- <spinner label="秒" name="WLLengthOfDaySec" />
+ <spinner label="時間" name="WLLengthOfDayHour"/>
+ <spinner label="分" name="WLLengthOfDayMin"/>
+ <spinner label="秒" name="WLLengthOfDaySec"/>
<text name="DayCycleText3">
プレビュー:
</text>
<button label="再生" label_selected="再生" name="WLAnimSky"/>
- <button label="停止" label_selected="停止" name="WLStopAnimSky" />
- <button label="不動産の時刻を使用"
- label_selected="不動産の時刻に変更" name="WLUseLindenTime"/>
- <button label="デイテストを保存"
- label_selected="デイテストを保存" name="WLSaveDayCycle" />
- <button label="デイテストをロード"
- label_selected="デイテストをロード" name="WLLoadDayCycle" />
+ <button label="停止" label_selected="停止" name="WLStopAnimSky"/>
+ <button label="不動産の時刻を使用" label_selected="不動産の時刻に変更" name="WLUseLindenTime"/>
+ <button label="デイテストを保存" label_selected="デイテストを保存" name="WLSaveDayCycle"/>
+ <button label="デイテストをロード" label_selected="デイテストをロード" name="WLLoadDayCycle"/>
</panel>
</tab_container>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_god_tools.xml b/indra/newview/skins/default/xui/ja/floater_god_tools.xml
index 6ccd6b9293..ffea9474b0 100644
--- a/indra/newview/skins/default/xui/ja/floater_god_tools.xml
+++ b/indra/newview/skins/default/xui/ja/floater_god_tools.xml
@@ -2,12 +2,11 @@
<floater name="godtools floater" title="ゴッド・ツール">
<tab_container name="GodTools Tabs">
<panel label="グリッド" name="grid">
- <button label="住人全員を追い出す" label_selected="住人全員を追い出す" name="Kick all users" width="160"/>
<button label="この地域の地図の表示キャッシュを消去" label_selected="この地域の地図の表示キャッシュを消去" name="Flush This Region&apos;s Map Visibility Caches"/>
</panel>
<panel label="地域" name="region">
- <text name="Sim Name:">
- シム名:
+ <text name="Region Name:">
+ リージョン名:
</text>
<check_box label="準備" name="check prelude" tool_tip="この設定により、この地域の準備をします。"/>
<check_box label="太陽固定" name="check fixed sun" tool_tip="太陽位置を固定([地域/不動産]>[地形]の場合と同様)"/>
@@ -52,8 +51,8 @@
<panel.string name="no_target">
(ターゲットなし)
</panel.string>
- <text name="Sim Name:">
- シム名:
+ <text name="Region Name:">
+ リージョン名:
</text>
<text name="region name">
ウェルシュ
diff --git a/indra/newview/skins/default/xui/ja/floater_image_preview.xml b/indra/newview/skins/default/xui/ja/floater_image_preview.xml
index 2e57acf0d2..1ffc27fd70 100644
--- a/indra/newview/skins/default/xui/ja/floater_image_preview.xml
+++ b/indra/newview/skins/default/xui/ja/floater_image_preview.xml
@@ -10,16 +10,16 @@
プレビュー:
</text>
<combo_box label="服の種類" name="clothing_type_combo">
- <combo_box.item label="画像" name="Image"/>
- <combo_box.item label="髪" name="Hair"/>
- <combo_box.item label="女性の頭" name="FemaleHead"/>
- <combo_box.item label="女性の上半身" name="FemaleUpperBody"/>
- <combo_box.item label="女性の下半身" name="FemaleLowerBody"/>
- <combo_box.item label="男性の頭" name="MaleHead"/>
- <combo_box.item label="男性の上半身" name="MaleUpperBody"/>
- <combo_box.item label="男性の下半身" name="MaleLowerBody"/>
- <combo_box.item label="スカート" name="Skirt"/>
- <combo_box.item label="スカルプトプリム" name="SculptedPrim"/>
+ <item label="画像" name="Image" value="画像"/>
+ <item label="髪" name="Hair" value="髪"/>
+ <item label="女性の頭" name="FemaleHead" value="女性の頭"/>
+ <item label="女性の上半身" name="FemaleUpperBody" value="女性の上半身"/>
+ <item label="女性の下半身" name="FemaleLowerBody" value="女性の下半身"/>
+ <item label="男性の頭" name="MaleHead" value="男性の頭"/>
+ <item label="男性の上半身" name="MaleUpperBody" value="男性の上半身"/>
+ <item label="男性の下半身" name="MaleLowerBody" value="男性の下半身"/>
+ <item label="スカート" name="Skirt" value="スカート"/>
+ <item label="スカルプトプリム" name="SculptedPrim" value="スカルプトプリム"/>
</combo_box>
<text name="bad_image_text">
イメージを読み取れません。
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 4ccaf1a4af..f1a05e0eec 100644
--- a/indra/newview/skins/default/xui/ja/floater_outgoing_call.xml
+++ b/indra/newview/skins/default/xui/ja/floater_outgoing_call.xml
@@ -28,7 +28,7 @@
[VOICE_CHANNEL_NAME] への接続が切れました。 [RECONNECT_NEARBY]
</text>
<text name="nearby_P2P_by_other">
- [VOICE_CHANNEL_NAME] がコールを終了しました。 [RECONNECT_NEARBY]
+ コールを切りました。 [RECONNECT_NEARBY]
</text>
<text name="nearby_P2P_by_agent">
コールを終了しました。 [RECONNECT_NEARBY]
diff --git a/indra/newview/skins/default/xui/ja/floater_snapshot.xml b/indra/newview/skins/default/xui/ja/floater_snapshot.xml
index 153b4068ad..9aecbab70f 100644
--- a/indra/newview/skins/default/xui/ja/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/ja/floater_snapshot.xml
@@ -1,79 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Snapshot" title="スナップショットのプレビュー">
- <text name="type_label">
- スナップショットの送り先
- </text>
- <radio_group label="スナップショットの種類" name="snapshot_type_radio">
- <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
- </text>
- <button label="スナップショットを更新" name="new_snapshot_btn"/>
- <button label="送信" name="send_btn"/>
- <button label="保存(L$[AMOUNT])" name="upload_btn"/>
- <flyout_button label="保存" name="save_btn" tool_tip="画像をファイルに保存">
- <flyout_button.item label="保存" name="save_item"/>
- <flyout_button.item label="別名で保存..." name="saveas_item"/>
- </flyout_button>
- <button label="キャンセル" name="discard_btn"/>
- <button label="全表示" name="more_btn" tool_tip="詳しい設定"/>
- <button label="簡易" name="less_btn" tool_tip="詳しい設定"/>
- <text name="type_label2">
- サイズ
- </text>
- <text name="format_label" width="75">
- 形式
- </text>
- <combo_box label="解像度" name="postcard_size_combo">
- <combo_box.item label="現在のウィンドウ" name="CurrentWindow"/>
- <combo_box.item label="640 x 480" name="640x480"/>
- <combo_box.item label="800 x 600" name="800x600"/>
- <combo_box.item label="1024 x 768" name="1024x768"/>
- <combo_box.item label="カスタム" name="Custom"/>
- </combo_box>
- <combo_box label="解像度" name="texture_size_combo">
- <combo_box.item label="現在のウィンドウ" name="CurrentWindow"/>
- <combo_box.item label="小(128 x 128)" name="Small(128x128)"/>
- <combo_box.item label="中(256 x 256)" name="Medium(256x256)"/>
- <combo_box.item label="大(512 x5 12)" name="Large(512x512)"/>
- <combo_box.item label="カスタム" name="Custom"/>
- </combo_box>
- <combo_box label="解像度" name="local_size_combo">
- <combo_box.item label="現在のウィンドウ" name="CurrentWindow"/>
- <combo_box.item label="320 x 240" name="320x240"/>
- <combo_box.item label="640 x 480" name="640x480"/>
- <combo_box.item label="800 x 600" name="800x600"/>
- <combo_box.item label="1024 x 768" name="1024x768"/>
- <combo_box.item label="1280 x 1024" name="1280x1024"/>
- <combo_box.item label="1600 x 1200" name="1600x1200"/>
- <combo_box.item label="カスタム" name="Custom"/>
- </combo_box>
- <combo_box label="形式" name="local_format_combo">
- <combo_box.item label="PNG" name="PNG"/>
- <combo_box.item label="JPEG" name="JPEG"/>
- <combo_box.item label="BMP" name="BMP"/>
- </combo_box>
- <spinner label="幅" label_width="25" name="snapshot_width" width="90"/>
- <spinner label="高さ" label_width="30" left="115" name="snapshot_height" width="90"/>
- <check_box label="縦横比の固定" name="keep_aspect_check"/>
- <slider label="画質" name="image_quality_slider"/>
- <text name="layer_type_label">
- キャプチャ:
- </text>
- <combo_box label="画像レイヤー" name="layer_types">
- <combo_box.item label="色" name="Colors"/>
- <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="keep_open_check"/>
- <check_box label="画面全体を静止" name="freeze_frame_check"/>
- <check_box label="自動更新" name="auto_snapshot_check"/>
- <string name="unknown">
+<floater name="Snapshot" title="スナップショット">
+ <floater.string name="unknown">
不明
- </string>
+ </floater.string>
+ <button label="スナップショットを更新" name="new_snapshot_btn"/>
+ <line_editor label="説明" name="description"/>
+ <button label="共有" name="share"/>
+ <button label="Web で共有" name="share_to_web"/>
+ <button label="「持ち物」に保存" name="save_to_inventory"/>
+ <button label="保存" name="save"/>
+ <button label="スナップショットをメール" name="share_to_email"/>
+ <button label="コンピューターに保存" name="save_to_computer"/>
+ <button label="プロフィールに設定" name="set_profile_pic"/>
+ <button label="戻る" name="cancel"/>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_tos.xml b/indra/newview/skins/default/xui/ja/floater_tos.xml
index 337766987c..ae064724c0 100644
--- a/indra/newview/skins/default/xui/ja/floater_tos.xml
+++ b/indra/newview/skins/default/xui/ja/floater_tos.xml
@@ -1,22 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="modal container" title=" ">
+ <floater.string name="real_url">
+ http://secondlife.com/app/tos/
+ </floater.string>
+ <floater.string name="loading_url">
+ data:text/html,%3Chtml%3E%3Chead%3E%3C/head%3E%3Cbody text=%22000000%22%3E%3Ch2%3E Loading %3Ca%20target%3D%22_external%22%20href%3D%22http%3A//secondlife.com/app/tos/%22%3ETerms%20of%20Service%3C/a%3E...%3C/h2%3E %3C/body%3E %3C/html%3E
+ </floater.string>
<button label="続行" label_selected="続行" name="Continue"/>
<button label="取り消し" label_selected="取り消し" name="Cancel"/>
- <radio_group name="tos_agreement">
- <radio_item label="利用規約に同意しません" name="radio_disagree"/>
- <radio_item label="利用規約に同意します" name="radio_agree"/>
- </radio_group>
- <text name="tos_title">
- 利用規約
- </text>
<check_box label="利用規約とプライバシーポリシーに同意します" name="agree_chk"/>
<text name="tos_heading">
次の利用規約とプライバシーポリシーをよくお読みください。 [SECOND_LIFE] へのログインを続けるには、規約に同意する必要があります。
</text>
- <text_editor name="tos_text">
- TOS_TEXT
- </text_editor>
- <text name="real_url">
- http://secondlife.com/app/tos/
- </text>
</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
index f163c2cf4f..5adf0b3745 100644
--- a/indra/newview/skins/default/xui/ja/menu_attachment_other.xml
+++ b/indra/newview/skins/default/xui/ja/menu_attachment_other.xml
@@ -10,7 +10,7 @@
<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="Debug..."/>
<menu_item_call label="ズームイン" name="Zoom In"/>
<menu_item_call label="支払う" name="Pay..."/>
<menu_item_call label="オブジェクトのプロフィール" name="Object Inspect"/>
diff --git a/indra/newview/skins/default/xui/ja/menu_attachment_self.xml b/indra/newview/skins/default/xui/ja/menu_attachment_self.xml
index 209edd80ba..72c91da479 100644
--- a/indra/newview/skins/default/xui/ja/menu_attachment_self.xml
+++ b/indra/newview/skins/default/xui/ja/menu_attachment_self.xml
@@ -9,4 +9,5 @@
<menu_item_call label="フレンド" name="Friends..."/>
<menu_item_call label="グループ" name="Groups..."/>
<menu_item_call label="プロフィール" name="Profile..."/>
+ <menu_item_call label="テクスチャのデバッグ" name="Debug..."/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_avatar_other.xml b/indra/newview/skins/default/xui/ja/menu_avatar_other.xml
index 74d877cdda..54dd96f5ef 100644
--- a/indra/newview/skins/default/xui/ja/menu_avatar_other.xml
+++ b/indra/newview/skins/default/xui/ja/menu_avatar_other.xml
@@ -10,7 +10,7 @@
<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="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
index a638bed36f..c856cdccb9 100644
--- a/indra/newview/skins/default/xui/ja/menu_avatar_self.xml
+++ b/indra/newview/skins/default/xui/ja/menu_avatar_self.xml
@@ -24,4 +24,5 @@
<menu_item_call label="フレンド" name="Friends..."/>
<menu_item_call label="グループ" name="Groups..."/>
<menu_item_call label="プロフィール" name="Profile..."/>
+ <menu_item_call label="テクスチャのデバッグ" name="Debug..."/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_edit.xml b/indra/newview/skins/default/xui/ja/menu_edit.xml
new file mode 100644
index 0000000000..c2ef0179b2
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_edit.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu label="編集" name="Edit">
+ <menu_item_call label="元に戻す" name="Undo"/>
+ <menu_item_call label="やり直し" name="Redo"/>
+ <menu_item_call label="切り取り" name="Cut"/>
+ <menu_item_call label="コピー" name="Copy"/>
+ <menu_item_call label="貼り付け" name="Paste"/>
+ <menu_item_call label="削除" name="Delete"/>
+ <menu_item_call label="複製" name="Duplicate"/>
+ <menu_item_call label="すべて選択" name="Select All"/>
+ <menu_item_call label="選択解除" name="Deselect"/>
+</menu>
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 93f75f3ce1..5fdaa9ae6b 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
@@ -11,7 +11,7 @@
<menu_item_call label="報告" name="report"/>
<menu_item_call label="フリーズ" name="freeze"/>
<menu_item_call label="追放" name="eject"/>
- <menu_item_call label="デバッグ" name="debug"/>
+ <menu_item_call label="テクスチャのデバッグ" name="debug"/>
<menu_item_call label="地図で探す" name="find_on_map"/>
<menu_item_call label="ズームイン" name="zoom_in"/>
<menu_item_call label="支払う" name="pay"/>
diff --git a/indra/newview/skins/default/xui/ja/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/ja/menu_inspect_self_gear.xml
index d02701b400..8867e5ccd6 100644
--- a/indra/newview/skins/default/xui/ja/menu_inspect_self_gear.xml
+++ b/indra/newview/skins/default/xui/ja/menu_inspect_self_gear.xml
@@ -5,4 +5,5 @@
<menu_item_call label="プロフィール" name="my_profile"/>
<menu_item_call label="フレンド" name="my_friends"/>
<menu_item_call label="グループ" name="my_groups"/>
+ <menu_item_call label="テクスチャのデバッグ" name="Debug..."/>
</menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_inv_offer_chiclet.xml b/indra/newview/skins/default/xui/ja/menu_inv_offer_chiclet.xml
new file mode 100644
index 0000000000..9a4a8138f5
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_inv_offer_chiclet.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="InvOfferChiclet Menu">
+ <menu_item_call label="閉じる" name="Close"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_inventory.xml b/indra/newview/skins/default/xui/ja/menu_inventory.xml
index 1607b2647e..bfb5023cf7 100644
--- a/indra/newview/skins/default/xui/ja/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/ja/menu_inventory.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="Popup">
+ <menu_item_call label="共有" name="Share"/>
<menu_item_call label="購入" name="Task Buy"/>
<menu_item_call label="開く" name="Task Open"/>
<menu_item_call label="再生" name="Task Play"/>
@@ -49,9 +50,9 @@
<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="Find Original"/>
<menu_item_call label="アイテムを除外する" name="Purge Item"/>
<menu_item_call label="アイテムを復元する" name="Restore Item"/>
- <menu_item_call label="オリジナルを探す" name="Find Original"/>
<menu_item_call label="開く" name="Open"/>
<menu_item_call label="プロパティ" name="Properties"/>
<menu_item_call label="名前を変更する" name="Rename"/>
diff --git a/indra/newview/skins/default/xui/ja/menu_login.xml b/indra/newview/skins/default/xui/ja/menu_login.xml
index d6f13f0e59..e2a7f39dfd 100644
--- a/indra/newview/skins/default/xui/ja/menu_login.xml
+++ b/indra/newview/skins/default/xui/ja/menu_login.xml
@@ -8,18 +8,8 @@
<menu_item_call label="[SECOND_LIFE] ヘルプ" name="Second Life Help"/>
<menu_item_call label="[APP_NAME] について" name="About Second Life"/>
</menu>
+ <menu_item_check label="デバッグメニューを表示する" name="Show Debug Menu"/>
<menu label="デバッグ" name="Debug">
- <menu label="編集" name="Edit">
- <menu_item_call label="元に戻す" name="Undo"/>
- <menu_item_call label="やり直し" name="Redo"/>
- <menu_item_call label="切り取り" name="Cut"/>
- <menu_item_call label="コピー" name="Copy"/>
- <menu_item_call label="貼り付け" name="Paste"/>
- <menu_item_call label="削除" name="Delete"/>
- <menu_item_call label="複製" name="Duplicate"/>
- <menu_item_call label="すべて選択" name="Select All"/>
- <menu_item_call label="選択解除" name="Deselect"/>
- </menu>
<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"/>
@@ -28,5 +18,7 @@
<menu_item_call label="利用規約を表示" name="TOS"/>
<menu_item_call label="クリティカルメッセージを表示" name="Critical"/>
<menu_item_call label="Web ブラウザのテスト" name="Web Browser Test"/>
+ <menu_item_check label="グリッドピッカーを表示する" name="Show Grid Picker"/>
+ <menu_item_call label="通知コンソールを表示する" name="Show Notifications Console"/>
</menu>
</menu_bar>
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 398a78bb61..3d0368245e 100644
--- a/indra/newview/skins/default/xui/ja/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/ja/menu_participant_list.xml
@@ -8,6 +8,7 @@
<menu_item_call label="コール" name="Call"/>
<menu_item_call label="共有" name="Share"/>
<menu_item_call label="支払う" name="Pay"/>
+ <menu_item_check label="人のアイコン表示" name="View Icons"/>
<menu_item_check label="ボイスをブロック" name="Block/Unblock"/>
<menu_item_check label="文字をブロックする" name="MuteText"/>
<context_menu label="モデレーターのオプション &gt;" name="Moderator Options">
diff --git a/indra/newview/skins/default/xui/ja/menu_save_outfit.xml b/indra/newview/skins/default/xui/ja/menu_save_outfit.xml
new file mode 100644
index 0000000000..7ebaa6e1c8
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_save_outfit.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="save_outfit_menu">
+ <menu_item_call label="保存" name="save_outfit"/>
+ <menu_item_call label="新規で保存" name="save_as_new_outfit"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_script_chiclet.xml b/indra/newview/skins/default/xui/ja/menu_script_chiclet.xml
new file mode 100644
index 0000000000..a89dd0bcbe
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_script_chiclet.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="ScriptChiclet Menu">
+ <menu_item_call label="閉じる" name="Close"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_viewer.xml b/indra/newview/skins/default/xui/ja/menu_viewer.xml
index bcad812457..760128408d 100644
--- a/indra/newview/skins/default/xui/ja/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/ja/menu_viewer.xml
@@ -31,6 +31,7 @@
<menu_item_call label="スナップショット" name="Take Snapshot"/>
<menu_item_call label="現在地をランドマーク" name="Create Landmark Here"/>
<menu label="場所のプロフィール" name="Land">
+ <menu_item_call label="場所のプロフィール" name="Place Profile"/>
<menu_item_call label="土地情報" name="About Land"/>
<menu_item_call label="地域 / 不動産" name="Region/Estate"/>
</menu>
@@ -66,17 +67,6 @@
<menu_item_call label="作成ツール" name="Create"/>
<menu_item_call label="土地ツール" name="Land"/>
</menu>
- <menu label="編集" name="Edit">
- <menu_item_call label="元に戻す" name="Undo"/>
- <menu_item_call label="やり直し" name="Redo"/>
- <menu_item_call label="切り取り" name="Cut"/>
- <menu_item_call label="コピー" name="Copy"/>
- <menu_item_call label="貼り付け" name="Paste"/>
- <menu_item_call label="削除" name="Delete"/>
- <menu_item_call label="複製" name="Duplicate"/>
- <menu_item_call label="すべて選択" name="Select All"/>
- <menu_item_call label="選択解除" name="Deselect"/>
- </menu>
<menu_item_call label="リンク" name="Link"/>
<menu_item_call label="リンクを外す" name="Unlink"/>
<menu_item_check label="リンクした部分を編集" name="Edit Linked Parts"/>
@@ -124,6 +114,7 @@
<menu_item_call label="[APP_NAME] について" name="About Second Life"/>
</menu>
<menu label="アドバンス" name="Advanced">
+ <menu_item_check label="アドバンスメニューを表示する" name="Show Advanced Menu"/>
<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"/>
@@ -145,7 +136,6 @@
<menu_item_check label="透明部分をハイライトする" name="Highlight Transparent"/>
<menu_item_check label="HUD を表示する" name="Show HUD Attachments"/>
<menu_item_check label="一人称視点のときに十字線を表示する" name="ShowCrosshairs"/>
- <menu_item_check label="土地のツールチップを表示する" name="Land Tips"/>
</menu>
<menu label="レンダリング(種類)" name="Rendering Types">
<menu_item_check label="シンプル" name="Simple"/>
diff --git a/indra/newview/skins/default/xui/ja/notifications.xml b/indra/newview/skins/default/xui/ja/notifications.xml
index ddb2ae49f7..ce3ac32568 100644
--- a/indra/newview/skins/default/xui/ja/notifications.xml
+++ b/indra/newview/skins/default/xui/ja/notifications.xml
@@ -374,7 +374,7 @@ L$ が不足しているのでこのグループに参加することができ
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="DeleteAvatarPick">
- ピック「 [PICK] 」を削除しますか?
+ &lt;nolink&gt;[PICK]&lt;/nolink&gt; を削除しますか?
<usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
</notification>
<notification name="PromptGoToEventsPage">
@@ -958,6 +958,16 @@ L$ は返金されません。
<button name="Cancel" text="キャンセル"/>
</form>
</notification>
+ <notification label="アウトフィットを保存する" name="SaveOutfitAs">
+ 着用中のアウトフィットを新しいアウトフットとして保存:
+ <form name="form">
+ <input name="message">
+ [DESC] (新)
+ </input>
+ <button name="Offer" text="OK"/>
+ <button name="Cancel" text="キャンセル"/>
+ </form>
+ </notification>
<notification name="RemoveFromFriends">
[FIRST_NAME] [LAST_NAME] をフレンドリストから削除しますか?
<usetemplate name="okcancelbuttons" notext="取り消し" yestext="OK"/>
@@ -1456,6 +1466,10 @@ F1 キーを押してください。
[CLASSIFIED] にテレポートしますか?
<usetemplate ignoretext="クラシファイド広告の場所にテレポートしたいかどうかの確認" name="okcancelignore" notext="キャンセル" yestext="テレポート"/>
</notification>
+ <notification name="TeleportToHistoryEntry">
+ [HISTORY_ENTRY] にテレポートしますか?
+ <usetemplate ignoretext="履歴の場所にテレポートしたいかどうかの確認" name="okcancelignore" notext="キャンセル" yestext="テレポート"/>
+ </notification>
<notification label="あなたの不動産内の全員にメッセージを送信" name="MessageEstate">
今あなたの不動産にいる人全員に送る、短いメッセージを入力してください。
<form name="form">
@@ -1547,6 +1561,9 @@ F1 キーを押してください。
<ignore name="ignore" text="選択したレーティング区分が原因で、リージョンに入れないとき"/>
</form>
</notification>
+ <notification name="PreferredMaturityChanged">
+ あなたのレーティング区分設定は現在 [RATING] です。
+ </notification>
<notification name="LandClaimAccessBlocked">
あなたのレーティング区分により、この土地を取得することはできません。 年齢を確認する際の情報に不足があったためと考えられます。
@@ -1970,6 +1987,9 @@ Web ページにリンクすると、他人がこの場所に簡単にアクセ
<notification name="SystemMessageTip">
[MESSAGE]
</notification>
+ <notification name="IMSystemMessageTip">
+ [MESSAGE]
+ </notification>
<notification name="Cancelled">
取り消されました。
</notification>
@@ -1998,6 +2018,11 @@ Web ページにリンクすると、他人がこの場所に簡単にアクセ
インワールドと Web サイトのスナップショットをアップロード中です...
(所要時間:約 5 分)
</notification>
+ <notification name="UploadConfirmation">
+ アップロード料金は L$[AMOUNT] です。
+続けますか?
+ <usetemplate name="okcancelbuttons" notext="キャンセル" yestext="アップロード"/>
+ </notification>
<notification name="UploadPayment">
アップロードに L$ [AMOUNT] 支払いました。
</notification>
@@ -2346,9 +2371,9 @@ Web ページにリンクすると、他人がこの場所に簡単にアクセ
</form>
</notification>
<notification name="TeleportOffered">
- [NAME] はテレポートであなたを呼んでいます。
+ [NAME_SLURL] はテレポートであなたを呼んでいます。
-[MESSAGE]
+[MESSAGE] - [MATURITY_STR] &lt;icon&gt;[MATURITY_ICON]&lt;/icon&gt;
<form name="form">
<button name="Teleport" text="テレポート"/>
<button name="Cancel" text="取り消し"/>
@@ -2366,12 +2391,11 @@ Web ページにリンクすると、他人がこの場所に簡単にアクセ
</form>
</notification>
<notification name="OfferFriendship">
- [NAME]は、
-フレンド登録を申し込んでいます。
+ [NAME_SLURL] はフレンド登録を申し込んでいます。
[MESSAGE]
-(デフォルトでお互いのオンライン状態を見ることができるようになります。)
+(デフォルト設定だとお互いのオンライン状態を見ることができます)
<form name="form">
<button name="Accept" text="受け入れる"/>
<button name="Decline" text="辞退"/>
@@ -2435,6 +2459,9 @@ Web ページにリンクすると、他人がこの場所に簡単にアクセ
<notification name="FailedToFindWearable">
データベースに [DESC] という名前の [TYPE] が見つかりませんでした。
</notification>
+ <notification name="ShareToWebFailed">
+ Web サイトへの画像のアップロードに失敗しました。
+ </notification>
<notification name="InvalidWearable">
着用しようとしているアイテムはあなたのビューワでは読み込むことができません。 [APP_NAME] のバージョンをアップグレードしてからこのアイテムを着用してください。
</notification>
@@ -2476,14 +2503,6 @@ Web ページにリンクすると、他人がこの場所に簡単にアクセ
<button name="Ignore" text="無視する"/>
</form>
</notification>
- <notification name="ScriptToast">
- [FIRST] [LAST] の「 [TITLE] 」は、住人インプットをリクエストしています。
- <form name="form">
- <button name="Open" text="ダイアログを開く"/>
- <button name="Ignore" text="無視"/>
- <button name="Block" text="ブロック"/>
- </form>
- </notification>
<notification name="BuyLindenDollarSuccess">
お支払ありがとうございます。
@@ -2639,6 +2658,12 @@ M キーを押して変更します。
選択したボタンを現在表示することができません。
じゅうぶんなスペースができればボタンは表示されます。
</notification>
+ <notification name="ShareNotification">
+ 住人選択画面に表示された人に、持ち物からアイテムをドラッグ
+ </notification>
+ <notification name="AvatarRezNotification">
+ アバター名「 [NAME] 」が [TIME] 秒で出現します。
+ </notification>
<global name="UnsupportedCPU">
- あなたの CPU の速度は必須動作環境の条件を満たしていません。
</global>
diff --git a/indra/newview/skins/default/xui/ja/outfit_accordion_tab.xml b/indra/newview/skins/default/xui/ja/outfit_accordion_tab.xml
new file mode 100644
index 0000000000..0cee35b901
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/outfit_accordion_tab.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- *NOTE: mantipov: this xml is intended to be used inside panel_outfits_list.xml for each outfit folder-->
+<!-- All accordion tabs in the My Appearance/My Outfits panel will be created from this one at runtume-->
+<accordion_tab name="Mockup Tab" title="モックアップタブ"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_eyes.xml b/indra/newview/skins/default/xui/ja/panel_edit_eyes.xml
index 0cee85f685..94967999a1 100644
--- a/indra/newview/skins/default/xui/ja/panel_edit_eyes.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_eyes.xml
@@ -3,7 +3,9 @@
<panel name="avatar_eye_color_panel">
<texture_picker label="瞳" name="Iris" tool_tip="クリックして写真を選択します"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="eyes_main_tab" title="目"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="eyes_main_tab" title="目"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_gloves.xml b/indra/newview/skins/default/xui/ja/panel_edit_gloves.xml
index 393bd15236..83e9abca85 100644
--- a/indra/newview/skins/default/xui/ja/panel_edit_gloves.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_gloves.xml
@@ -4,7 +4,9 @@
<texture_picker label="生地" name="Fabric" tool_tip="クリックして写真を選択します"/>
<color_swatch label="色・色彩配合" name="Color/Tint" tool_tip="クリックしてカラーピッカーを開きます"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="gloves_main_tab" title="手袋"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="gloves_main_tab" title="手袋"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_hair.xml b/indra/newview/skins/default/xui/ja/panel_edit_hair.xml
index 065771df16..f73f760192 100644
--- a/indra/newview/skins/default/xui/ja/panel_edit_hair.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_hair.xml
@@ -3,10 +3,12 @@
<panel name="avatar_hair_color_panel">
<texture_picker label="テクスチャ" name="Texture" tool_tip="クリックして写真を選択"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="hair_color_tab" title="色"/>
- <accordion_tab name="hair_style_tab" title="スタイル"/>
- <accordion_tab name="hair_eyebrows_tab" title="眉毛"/>
- <accordion_tab name="hair_facial_tab" title="フェイシャル"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="hair_color_tab" title="色"/>
+ <accordion_tab name="hair_style_tab" title="スタイル"/>
+ <accordion_tab name="hair_eyebrows_tab" title="眉毛"/>
+ <accordion_tab name="hair_facial_tab" title="フェイシャル"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_jacket.xml b/indra/newview/skins/default/xui/ja/panel_edit_jacket.xml
index 96a851cc4c..fe95061e57 100644
--- a/indra/newview/skins/default/xui/ja/panel_edit_jacket.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_jacket.xml
@@ -5,7 +5,9 @@
<texture_picker label="生地・下" name="Lower Fabric" tool_tip="クリックして写真を選択します"/>
<color_swatch label="色・色彩配合" name="Color/Tint" tool_tip="クリックしてカラーピッカーを開きます"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="jacket_main_tab" title="ジャケット"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="jacket_main_tab" title="ジャケット"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_pants.xml b/indra/newview/skins/default/xui/ja/panel_edit_pants.xml
index f93d3d6b14..9f672337aa 100644
--- a/indra/newview/skins/default/xui/ja/panel_edit_pants.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_pants.xml
@@ -4,7 +4,9 @@
<texture_picker label="生地" name="Fabric" tool_tip="クリックして写真を選択します"/>
<color_swatch label="色・色彩配合" name="Color/Tint" tool_tip="クリックしてカラーピッカーを開きます"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="pants_main_tab" title="パンツ"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="pants_main_tab" title="パンツ"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_shape.xml b/indra/newview/skins/default/xui/ja/panel_edit_shape.xml
index 1e20eb26b6..e60534a54e 100644
--- a/indra/newview/skins/default/xui/ja/panel_edit_shape.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_shape.xml
@@ -9,15 +9,17 @@
<radio_item label="男性" name="radio2"/>
</radio_group>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="shape_body_tab" title="身体"/>
- <accordion_tab name="shape_head_tab" title="頭"/>
- <accordion_tab name="shape_eyes_tab" title="目"/>
- <accordion_tab name="shape_ears_tab" title="耳"/>
- <accordion_tab name="shape_nose_tab" title="鼻"/>
- <accordion_tab name="shape_mouth_tab" title="口"/>
- <accordion_tab name="shape_chin_tab" title="あご"/>
- <accordion_tab name="shape_torso_tab" title="頭"/>
- <accordion_tab name="shape_legs_tab" title="脚"/>
- </accordion>
+ <panel label="シャツ" name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="shape_body_tab" title="身体"/>
+ <accordion_tab name="shape_head_tab" title="頭"/>
+ <accordion_tab name="shape_eyes_tab" title="目"/>
+ <accordion_tab name="shape_ears_tab" title="耳"/>
+ <accordion_tab name="shape_nose_tab" title="鼻"/>
+ <accordion_tab name="shape_mouth_tab" title="口"/>
+ <accordion_tab name="shape_chin_tab" title="あご"/>
+ <accordion_tab name="shape_torso_tab" title="頭"/>
+ <accordion_tab name="shape_legs_tab" title="脚"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_shirt.xml b/indra/newview/skins/default/xui/ja/panel_edit_shirt.xml
index b2eb8fa18e..457c0bceb8 100644
--- a/indra/newview/skins/default/xui/ja/panel_edit_shirt.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_shirt.xml
@@ -4,7 +4,9 @@
<texture_picker label="生地" name="Fabric" tool_tip="クリックして写真を選択"/>
<color_swatch label="色・色彩配合" name="Color/Tint" tool_tip="クリックしてカラーピッカーを開きます"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="shirt_main_tab" title="シャツ"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="shirt_main_tab" title="シャツ"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_shoes.xml b/indra/newview/skins/default/xui/ja/panel_edit_shoes.xml
index 83e302f8f9..98b4c57fc7 100644
--- a/indra/newview/skins/default/xui/ja/panel_edit_shoes.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_shoes.xml
@@ -4,7 +4,9 @@
<texture_picker label="生地" name="Fabric" tool_tip="クリックして写真を選択します"/>
<color_swatch label="色・色彩配合" name="Color/Tint" tool_tip="クリックしてカラーピッカーを開きます"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="shoes_main_tab" title="靴"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="shoes_main_tab" title="靴"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_skin.xml b/indra/newview/skins/default/xui/ja/panel_edit_skin.xml
index cd7efbec68..2c554dad94 100644
--- a/indra/newview/skins/default/xui/ja/panel_edit_skin.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_skin.xml
@@ -5,10 +5,12 @@
<texture_picker label="上部のタトゥー" name="Upper Tattoos" tool_tip="クリックして写真を選択"/>
<texture_picker label="下部のタトゥー" name="Lower Tattoos" tool_tip="クリックして写真を選択"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="skin_color_tab" title="肌の色"/>
- <accordion_tab name="skin_face_tab" title="顔の詳細"/>
- <accordion_tab name="skin_makeup_tab" title="メイクアップ"/>
- <accordion_tab name="skin_body_tab" title="身体の詳細"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="skin_color_tab" title="肌の色"/>
+ <accordion_tab name="skin_face_tab" title="顔の詳細"/>
+ <accordion_tab name="skin_makeup_tab" title="メイクアップ"/>
+ <accordion_tab name="skin_body_tab" title="身体の詳細"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_skirt.xml b/indra/newview/skins/default/xui/ja/panel_edit_skirt.xml
index 0a0936a3a9..b169bab591 100644
--- a/indra/newview/skins/default/xui/ja/panel_edit_skirt.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_skirt.xml
@@ -4,7 +4,9 @@
<texture_picker label="生地" name="Fabric" tool_tip="クリックして写真を選択"/>
<color_swatch label="色・色彩配合" name="Color/Tint" tool_tip="クリックしてカラーピッカーを開きます"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="skirt_main_tab" title="スカート"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="skirt_main_tab" title="スカート"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_socks.xml b/indra/newview/skins/default/xui/ja/panel_edit_socks.xml
index 7cbc75624f..b095257a56 100644
--- a/indra/newview/skins/default/xui/ja/panel_edit_socks.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_socks.xml
@@ -4,7 +4,9 @@
<texture_picker label="生地" name="Fabric" tool_tip="クリックして写真を選択します"/>
<color_swatch label="色・色彩配合" name="Color/Tint" tool_tip="クリックしてカラーピッカーを開きます"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="socks_main_tab" title="靴下"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="socks_main_tab" title="靴下"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_underpants.xml b/indra/newview/skins/default/xui/ja/panel_edit_underpants.xml
index 9287463b2c..fec34479c3 100644
--- a/indra/newview/skins/default/xui/ja/panel_edit_underpants.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_underpants.xml
@@ -4,7 +4,9 @@
<texture_picker label="生地" name="Fabric" tool_tip="クリックして写真を選択します"/>
<color_swatch label="色・色彩配合" name="Color/Tint" tool_tip="クリックしてカラーピッカーを開きます"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="underpants_main_tab" title="下着パンツ"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="underpants_main_tab" title="下着パンツ"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_undershirt.xml b/indra/newview/skins/default/xui/ja/panel_edit_undershirt.xml
index 085ad97384..bd47d89947 100644
--- a/indra/newview/skins/default/xui/ja/panel_edit_undershirt.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_undershirt.xml
@@ -4,7 +4,9 @@
<texture_picker label="生地" name="Fabric" tool_tip="クリックして写真を選択します"/>
<color_swatch label="色・色彩配合" name="Color/Tint" tool_tip="クリックしてカラーピッカーを開きます"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="undershirt_main_tab" title="下着シャツ"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="undershirt_main_tab" title="下着シャツ"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_wearable.xml b/indra/newview/skins/default/xui/ja/panel_edit_wearable.xml
index 2ae8e1863e..67828af6c2 100644
--- a/indra/newview/skins/default/xui/ja/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_wearable.xml
@@ -94,6 +94,11 @@
<panel label="シャツ" name="wearable_type_panel">
<text name="description_text" value="シェイプ:"/>
</panel>
+ <panel label="gear_buttom_panel" name="gear_buttom_panel">
+ <button name="friends_viewsort_btn" tool_tip="オプション"/>
+ <button name="add_btn" tool_tip="TODO"/>
+ <button name="del_btn" tool_tip="TODO"/>
+ </panel>
<panel name="button_panel">
<button label="別名で保存" name="save_as_button"/>
<button label="元に戻す" name="revert_button"/>
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 1b89b1b3cc..94efd00770 100644
--- a/indra/newview/skins/default/xui/ja/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_general.xml
@@ -47,8 +47,11 @@
<check_box label="入会費がかかります" name="check_enrollment_fee" tool_tip="入会費が必要かどうかを設定します。"/>
<spinner label="L$" name="spin_enrollment_fee" tool_tip="「入会費」にチェックが入っている場合、新規メンバーは指定された入会費を支払わなければグループに入れません。"/>
<combo_box name="group_mature_check" tool_tip="あなたのグループに「Moderate」にレート設定された情報があるかどうかを設定します">
- <combo_box.item label="「General」コンテンツ" name="pg"/>
+ <combo_item name="select_mature">
+ - Mature の選択 -
+ </combo_item>
<combo_box.item label="「Moderate」コンテンツ" name="mature"/>
+ <combo_box.item label="「General」コンテンツ" name="pg"/>
</combo_box>
<check_box initial_value="true" label="検索に表示" name="show_in_group_list" tool_tip="このグループを検索結果に表示させます"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_inventory_item.xml b/indra/newview/skins/default/xui/ja/panel_inventory_item.xml
new file mode 100644
index 0000000000..d18047fbcf
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/panel_inventory_item.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="inventory_item">
+ <text name="item_name" value="..."/>
+</panel>
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 223bd3e28c..11d9ed4c16 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
@@ -11,10 +11,19 @@
ミニ
</combo_item>
</combo_box>
+ <text name="owner_label">
+ 所有者
+ </text>
<check_box initial_value="false" label="ナビゲーションと相互作用力を有効にする" name="perms_owner_interact"/>
<check_box initial_value="false" label="コントロールバーを表示する" name="perms_owner_control"/>
+ <text name="group_label">
+ グループ:
+ </text>
<check_box initial_value="false" label="ナビゲーションと相互作用力を有効にする" name="perms_group_interact"/>
<check_box initial_value="false" label="コントロールバーを表示する" name="perms_group_control"/>
+ <text name="anyone_label">
+ 全員
+ </text>
<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_nearby_media.xml b/indra/newview/skins/default/xui/ja/panel_nearby_media.xml
index fb273de420..d0e423bd18 100644
--- a/indra/newview/skins/default/xui/ja/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/ja/panel_nearby_media.xml
@@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="nearby_media">
+ <string name="media_item_count_format">
+ (メディアアイテム %ld )
+ </string>
<string name="empty_item_text">
&lt;空&gt;
</string>
@@ -16,15 +19,10 @@
<button label="すべて停止" name="all_nearby_media_disable_btn" tool_tip="近くのメディアをすべてオフにします"/>
<button label="すべて開始" name="all_nearby_media_enable_btn" tool_tip="近くのメディアをすべてオンにします"/>
<button name="open_prefs_btn" tool_tip="メディアの設定を開きます"/>
- <button label="詳細 &gt;&gt;" label_selected="簡易 &lt;&lt;" name="more_less_btn" tool_tip="アドバンスコントロール"/>
+ <button label="詳細 &gt;&gt;" label_selected="簡易 &lt;&lt;" name="more_btn" tool_tip="アドバンスコントロール"/>
+ <button label="詳細 &gt;&gt;" label_selected="簡易 &lt;&lt;" name="less_btn" tool_tip="アドバンスコントロール"/>
</panel>
<panel name="nearby_media_panel">
- <text name="nearby_media">
- 近くのメディア
- </text>
- <text name="show">
- 表示:
- </text>
<combo_box name="show_combo">
<combo_box.item label="すべて" name="All"/>
<combo_box.item label="この区画内" name="WithinParcel"/>
@@ -38,7 +36,7 @@
<scroll_list.columns label="名前" name="media_name"/>
<scroll_list.columns label="デバッグ" name="media_debug"/>
</scroll_list>
- <panel name="media_controls_panel">
+ <panel>
<layout_stack name="media_controls">
<layout_panel name="stop">
<button name="stop_btn" tool_tip="選択したメディアを停止"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_outfit_edit.xml b/indra/newview/skins/default/xui/ja/panel_outfit_edit.xml
new file mode 100644
index 0000000000..d0089b46aa
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/panel_outfit_edit.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- Side tray Outfit Edit panel -->
+<panel label="アウトフットの編集" name="outfit_edit">
+ <string name="No Outfit" value="アウトフィットなし"/>
+ <panel.string name="not_available">
+ (該当なし)
+ </panel.string>
+ <panel.string name="unknown">
+ (不明)
+ </panel.string>
+ <string name="Filter.All" value="すべて"/>
+ <string name="Filter.Clothes/Body" value="衣類/身体"/>
+ <string name="Filter.Objects" value="オブジェクト"/>
+ <button label="編集" name="edit_wearable_btn"/>
+ <text name="title" value="アウトフットの編集"/>
+ <panel label="bottom_panel" name="header_panel">
+ <panel label="bottom_panel" name="outfit_name_and_status">
+ <text name="status" value="編集中..."/>
+ <text name="curr_outfit_name" value="[Current Outfit]"/>
+ </panel>
+ </panel>
+ <layout_stack name="im_panels">
+ <layout_panel label="IM コントロールパネル" name="outfit_wearables_panel">
+ <scroll_list name="look_items_list">
+ <scroll_list.columns label="アイテムを確認" name="look_item"/>
+ <scroll_list.columns label="アウトフィットアイテムの並べ替え" name="look_item_sort"/>
+ </scroll_list>
+ <panel label="bottom_panel" name="edit_panel"/>
+ </layout_panel>
+ <layout_panel name="add_wearables_panel">
+ <filter_editor label="フィルター" name="look_item_filter"/>
+ <layout_stack name="filter_panels">
+ <layout_panel label="IM コントロールパネル" name="filter_button_panel">
+ <text name="add_to_outfit_label" value="アウトフィットに追加:"/>
+ <button label="O" name="filter_button"/>
+ </layout_panel>
+ </layout_stack>
+ <panel label="add_wearables_button_bar" name="add_wearables_button_bar">
+ <button label="F" name="folder_view_btn"/>
+ <button label="L" name="list_view_btn"/>
+ </panel>
+ </layout_panel>
+ </layout_stack>
+ <panel name="save_revert_button_bar">
+ <button label="保存" name="save_btn"/>
+ <button label="元に戻す" name="revert_btn"/>
+ </panel>
+</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 b941763388..14f0d7d5e0 100644
--- a/indra/newview/skins/default/xui/ja/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/ja/panel_outfits_inventory.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="もの" name="Outfits">
<tab_container name="appearance_tabs">
- <inventory_panel label="マイ アウトフィット" name="outfitslist_tab"/>
+ <panel label="マイ アウトフィット" name="outfitslist_tab"/>
<inventory_panel label="着用中" name="cof_tab"/>
</tab_container>
<panel name="bottom_panel">
@@ -9,6 +9,6 @@
<dnd_button name="trash_btn" tool_tip="選択したアイテムを削除します"/>
<button label="アウトフィットを保存する" name="make_outfit_btn" tool_tip="容姿をアウトフィットに保存します" width="140"/>
<button label="装着" name="wear_btn" tool_tip="選択したアウトフィットを着用します"/>
- <button label="M" name="look_edit_btn"/>
+ <button label="アウトフットの編集" name="edit_current_outfit_btn"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_people.xml b/indra/newview/skins/default/xui/ja/panel_people.xml
index 488a8c7a9b..1d29080687 100644
--- a/indra/newview/skins/default/xui/ja/panel_people.xml
+++ b/indra/newview/skins/default/xui/ja/panel_people.xml
@@ -1,14 +1,23 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- Side tray panel -->
<panel label="人" name="people_panel">
- <string name="no_people" value="誰もいません"/>
- <string name="no_one_near" value="近くに誰もいません"/>
+ <string name="no_recent_people" value="最近交流した人はいません。 一緒に何かする仲間もお探しですか? [secondlife:///app/search/people 検索] か [secondlife:///app/worldmap 世界地図] をお試しください。"/>
+ <string name="no_filtered_recent_people" value="お探しのものは見つかりましたか? [secondlife:///app/search/people 検索] をお試しください。"/>
+ <string name="no_one_near" value="近くに誰もいません。 一緒に何かする仲間もお探しですか? [secondlife:///app/search/people 検索] か [secondlife:///app/worldmap 世界地図] をお試しください。"/>
+ <string name="no_one_filtered_near" value="お探しのものは見つかりましたか? [secondlife:///app/search/people 検索] をお試しください。"/>
<string name="no_friends_online" value="オンラインのフレンドはいません"/>
<string name="no_friends" value="フレンドはいません"/>
+ <string name="no_friends_msg">
+ 友達を見つけるには、[secondlife:///app/search/people 検索] をするか、住人を右クリックしてフレンド登録してください。
+一緒に何かする仲間もお探しですか? [secondlife:///app/worldmap 世界地図] をお試しください。
+ </string>
+ <string name="no_filtered_friends_msg">
+ お探しのものは見つかりましたか? [secondlife:///app/search/people 検索] をお試しください。
+ </string>
<string name="people_filter_label" value="人をフィルター"/>
<string name="groups_filter_label" value="グループをフィルター"/>
- <string name="no_filtered_groups_msg" value="[secondlife:///app/search/groups 検索でグループを探してみますか?]"/>
- <string name="no_groups_msg" value="[secondlife:///app/search/groups 入会するグループを探します。]"/>
+ <string name="no_filtered_groups_msg" value="お探しのものは見つかりましたか? [secondlife:///app/search/groups 検索] をお試しください。"/>
+ <string name="no_groups_msg" value="グループをお探しですか? [secondlife:///app/search/groups 検索] をお試しください。"/>
<filter_editor label="フィルター" name="filter_input"/>
<tab_container name="tabs">
<panel label="近く" name="nearby_panel">
@@ -27,10 +36,6 @@
<button name="add_btn" tool_tip="フレンド登録を申し出ます"/>
<button name="del_btn" tool_tip="選択した人をフレンドリストから削除します"/>
</panel>
- <text name="no_friends_msg">
- フレンドを登録するには、[secondlife:///app/search/people グローバル検索] をするか、住人を右クリックしてください。
-誰か一緒に行動をする人をお探しの時は、[secondlife:///app/worldmap 地図をお試しださい]。
- </text>
</panel>
<panel label="マイ グループ" name="groups_panel">
<panel label="bottom_panel" name="bottom_panel">
diff --git a/indra/newview/skins/default/xui/ja/panel_places.xml b/indra/newview/skins/default/xui/ja/panel_places.xml
index acfa0bf4e8..d78a56aa10 100644
--- a/indra/newview/skins/default/xui/ja/panel_places.xml
+++ b/indra/newview/skins/default/xui/ja/panel_places.xml
@@ -11,5 +11,6 @@
<button label="保存" name="save_btn"/>
<button label="キャンセル" name="cancel_btn"/>
<button label="閉じる" name="close_btn"/>
+ <button label="プロフィール" name="profile_btn"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml
index a8520a51cc..753951e282 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml
@@ -20,6 +20,9 @@
<check_box label="吹き出しチャット" name="bubble_text_chat"/>
<slider label="透明度" name="bubble_chat_opacity"/>
<color_swatch name="background" tool_tip="吹き出しチャットの色を選択します"/>
+ <text name="UI Size:">
+ UI サイズ
+ </text>
<check_box label="スクリプトのエラーを表示:" name="show_script_errors"/>
<radio_group name="show_location">
<radio_item label="近くのチャット" name="0"/>
@@ -29,4 +32,5 @@
<line_editor label="プッシュ・トゥ・スピークのトリガー" name="modifier_combo"/>
<button label="キー設定" name="set_voice_hotkey_button"/>
<button label="マウスの中央ボタン" name="set_voice_middlemouse_button" tool_tip="マウスの中央ボタンにリセットします"/>
+ <button label="その他のディバイス" name="joystick_setup_button"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_world_map.xml b/indra/newview/skins/default/xui/ja/panel_world_map.xml
index 2f5c2bf6a1..8ff853193a 100644
--- a/indra/newview/skins/default/xui/ja/panel_world_map.xml
+++ b/indra/newview/skins/default/xui/ja/panel_world_map.xml
@@ -30,6 +30,12 @@
<panel.string name="world_map_northwest">
北西
</panel.string>
+ <panel.string name="world_map_person">
+ 1 人
+ </panel.string>
+ <panel.string name="world_map_people">
+ [NUMBER] 人
+ </panel.string>
<text label="北" name="floater_map_north" text="北">
</text>
diff --git a/indra/newview/skins/default/xui/ja/sidepanel_inventory.xml b/indra/newview/skins/default/xui/ja/sidepanel_inventory.xml
index 0c97fed901..f82c6136a6 100644
--- a/indra/newview/skins/default/xui/ja/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/ja/sidepanel_inventory.xml
@@ -3,6 +3,7 @@
<panel label="" name="sidepanel__inventory_panel">
<panel name="button_panel">
<button label="プロフィール" name="info_btn"/>
+ <button label="共有" name="share_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/strings.xml b/indra/newview/skins/default/xui/ja/strings.xml
index a54d96061f..2ba437b710 100644
--- a/indra/newview/skins/default/xui/ja/strings.xml
+++ b/indra/newview/skins/default/xui/ja/strings.xml
@@ -261,6 +261,9 @@
<string name="BUTTON_CLOSE_WIN">
閉じる (Ctrl+W)
</string>
+ <string name="BUTTON_CLOSE_CHROME">
+ 閉じる
+ </string>
<string name="BUTTON_RESTORE">
復元
</string>
@@ -303,6 +306,9 @@
<string name="GroupNameNone">
(なし)
</string>
+ <string name="AvalineCaller">
+ Avaline コール [ORDER]
+ </string>
<string name="AssetErrorNone">
エラーなし
</string>
@@ -904,7 +910,7 @@
ESC キーを押してワールドビューに戻ります
</string>
<string name="InventoryNoMatchingItems">
- 一致するアイテムがありませんでした。[secondlife:///app/search/groups 「検索」]をお試しください。
+ お探しのものは見つかりましたか? [secondlife:///app/search/all 検索] をお試しください。
</string>
<string name="FavoritesNoMatchingItems">
ここにランドマークをドラッグして、お気に入りに追加します。
@@ -1575,9 +1581,7 @@
<string name="RegionNoCovenantOtherOwner">
この不動産には約款がありません。 この不動産上の土地は不動産所有者により販売され、Linden Lab は販売しません。 販売に関するお問い合わせは、不動産所有者までお願い致します。
</string>
- <string name="covenant_last_modified">
- 最終修正日:
- </string>
+ <string name="covenant_last_modified" value="最終修正日:"/>
<string name="none_text" value=" (なし) "/>
<string name="never_text" value=" (無) "/>
<string name="GroupOwned">
@@ -3311,6 +3315,15 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ
<string name="LocationCtrlDamageTooltip">
体力
</string>
+ <string name="LocationCtrlAdultIconTooltip">
+ Adult リージョン
+ </string>
+ <string name="LocationCtrlModerateIconTooltip">
+ Moderate リージョン
+ </string>
+ <string name="LocationCtrlGeneralIconTooltip">
+ General リージョン
+ </string>
<string name="UpdaterWindowTitle">
[APP_NAME] アップデート
</string>
@@ -3341,6 +3354,12 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ
<string name="UpdaterFailStartTitle">
ビューワの起動に失敗しました
</string>
+ <string name="ItemsComingInTooFastFrom">
+ [APP_NAME] : アイテムが [FROM_NAME] から一気に読み込まれているため、自動プレビューが [TIME] 秒間無効となります。
+ </string>
+ <string name="ItemsComingInTooFast">
+ [APP_NAME] : アイテムが一気に読み込まれているため、自動プレビューが [TIME] 秒間無効となります。
+ </string>
<string name="IM_logging_string">
-- インスタントメッセージの保存開始 --
</string>
@@ -3368,6 +3387,9 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ
<string name="IM_moderator_label">
(モデレータ)
</string>
+ <string name="answered_call">
+ 相手がコールを受けました
+ </string>
<string name="started_call">
ボイスコールを開始します
</string>
@@ -3461,12 +3483,18 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ
<string name="unread_chat_multiple">
[SOURCES] は何か新しいことを言いました。
</string>
+ <string name="session_initialization_timed_out_error">
+ セッションの初期化がタイムアウトしました
+ </string>
<string name="paid_you_ldollars">
[NAME] は L$[AMOUNT] 支払いました
</string>
<string name="you_paid_ldollars">
[NAME] に L$ [AMOUNT] を支払いました:[REASON]
</string>
+ <string name="you_paid_ldollars_no_info">
+ L$ [AMOUNT] を支払いました。
+ </string>
<string name="you_paid_ldollars_no_reason">
[NAME] に L$ [AMOUNT] を支払いました。
</string>
@@ -3577,7 +3605,13 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ
<string name="Contents">
コンテンツ
</string>
- <string name="AvatarBirthDateFormat">
- [year,datetime,slt]/[mthnum,datetime,slt]/[day,datetime,slt]
- </string>
+ <string name="AvatarBirthDateFormat">
+ [year,datetime,slt]/[mthnum,datetime,slt]/[day,datetime,slt]
+ </string>
+ <string name="DefaultMimeType">
+ なし/なし
+ </string>
+ <string name="texture_load_dimensions_error">
+ [WIDTH]*[HEIGHT] 以上の画像は読み込めません
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/pt/floater_about.xml b/indra/newview/skins/default/xui/pt/floater_about.xml
index f1f6ff9aea..7671f58691 100644
--- a/indra/newview/skins/default/xui/pt/floater_about.xml
+++ b/indra/newview/skins/default/xui/pt/floater_about.xml
@@ -44,17 +44,12 @@ Versão Vivox: [VIVOX_VERSION]
<text_editor name="credits_editor">
O Second Life é o resultado do trabalho de Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Yang, T, Simone, Maestro, Scott, Charlene, Quixote, Amanda, Susan, Zed, Anne, Enkidu, Esbee, Joroan, Katelin, Roxie, Tay, Scarlet, Kevin, Johnny, Wolfgang, Andren, Bob, Howard, Merov, Rand, Ray, Michon, Newell, Galen, Dessie, Les e muitos mais.
-Agradecemos também aos seguintes residentes por sua colaboração na mais nova versão do Second Life: (in progress)
+Agradecemos também aos seguintes residentes por sua colaboração na mais nova versão do Second Life: Drew Dwi, Zai Lynch, Latif Khalifa, Ellla McMahon, Harleen Gretzky, Squirrel Wood, Malarthi Behemoth, Dante Tucker, Buckaroo Mu, Eddi Decosta, Dirk, Talamasca, Torben Trautman, Irene Muni, Lilly Zenovka, Vick Forcella, Sasy Scarborough, Gentle Welinder, Elric Anatine, Techwolf Lupindo, Dusan Writer, WolfPup Lowenhar, Marianne McCann, Fiachra Lach, Sitearm Madonna, Sudane Erato, Sahkolihaa Contepomi, Sachi Vixen, Questar Utu, Dimitrio Lewis, Matto Destiny, Scrim Pinion, Radio Signals, Psi Merlin, Pixel Gausman, Mel Vanbeeck, Laurent Bechir, Lamorna Proctor, Lares Carter, Gwyneth Llewelyn, Hydra Shaftoe, Holger Gilruth, Gentle Heron, Carla Broek, Boroondas Gupte, Fury Rosewood, Flower Ducatillon, Colpo Wexler, gwampa Lomu, Borg Capalini, Beansy Twine, Ardy Lay, , 45ms Zhong, Adeon Writer, Aeonix Aeon, Ai Austin, Aiko Ying, Alexandrea Fride, Alliez Mysterio, Annie Milestone, Annika Genezzia, Ansariel Hiller, ArminasX Saiman, Arya Braveheart, Asaeda Meltingdots, Asturkon Jua, Avallyn Oakleaf, Avatar Quinzet, BabyA Littlething, Bacchus Ireto, Bazaar, Riva, Benjamin Bigdipper, Beth Walcher, Bezilon Kasei, Biancaluce Robbiani, Bill Walach, blakopal Galicia, Blitzckreed Levenque, Bryn Oh, Callipygian Christensen, Cap Carver, Carr Arbenlow, Chantal Harvey, Charles Courtois, Charlie Sazaland, Cherry Cheevers, ChickyBabes Zuzu, Christopher Organiser, Ciaran Laval, Clara Young, Celierra Darling, Corinne Helendale, Corro Moseley, Coughdrop Littlething, Darien Caldwell, Dartagan Shepherd, Debs Regent, Decro Schmooz, Denim Kamachi, DiJodi Dubratt, Dil Spitz, Edgware Marker, Egehan Dryke, Emma Portilo, Emmie Fairymeadow, Evangelista Emerald, Faelon Swordthain, Frenchimmo Sabra, Gaberoonie Zanzibar, Ganymedes Costagravas, Gene Frostbite, GeneJ Composer, Giggles Littlebird, Grady Echegaray, Guni Greenstein, Gypsy Tripsa, Hackshaven Harford, Ham Rambler, Han Shuffle, Hanglow Short, Hatzfeld Runo, herina Bode, Horatio Freund, Hypatia Callisto, Hypatia Pickens, Identity Euler, Imnotgoing Sideways, Innula Zenovka, Iyoba Tarantal, Jack Abraham, Jagga Meredith, Jennifer Boyle, Jeremy Marquez, Jessica Qin, Jinx Nordberg, Jo Bernandes, Jocial Sonnenkern, Joel Savard, Jondan Lundquist, Josef Munster, Josette Windlow, Juilan Tripsa, Juro Kothari, Justin RiversRunRed, Kagehi Kohn, Kaimen Takahe, Keklily Longfall, Ken Lavender, Kestral Karas, Khisme Nitely, Kimar Coba, Kithrak Kirkorian, Kitty Barnett, Kolor Fall, Komiko Okamoto, Korvel Noh, Larry Pixel, Leal Choche, len Starship, Lenae Munz, Lexi Frua, Lillie Cordeaux, Lizzy Macarthur, LSL Scientist, Luban Yiyuan, Luc Starsider, Maccus McCullough, Madison Blanc, Maggie Darwin, Mallory Destiny, Manx Wharton, Marc Claridge, Marc2 Sands, Matthew Anthony, Maxim RiversRunRed, Medhue Simoni, Melinda Latynina, Mencius Watts, Michi Lumin, Midian Farspire, Miles Glaz, Mindy Mathy, Mitch Wagner, Mo Hax, Mourna Biziou, Nao Noe, naofan Teardrop, Naomah Beaumont, Nathiel Siamendes, Nber Medici, Neko Link, Netpat Igaly, Neutron Chesnokov, Newfie Pendragon, Nicholai Laviscu, Nick Rhodes, Nicoladie Gymnast, Ollie Kubrick, Orenj Marat, Orion Delphis, Oryx Tempel, Parvati Silverweb, PeterPunk Mooney, Pixel Scientist, Pounce Teazle, Professor Noarlunga, Quantum Destiny, Quicksilver Hermes, Ralf Setsuko, RAT Quan, RedMokum Bravin, Revolution Perenti, Rezit Sideways, Rich Grainger, Rosco Teardrop, Rose Evans, Rudee Voom, RufusTT Horsefly, Saii Hallard, SaintLEOlions Zimer, Samm Larkham, Satanello Miami, SexySteven Morrisey, Sheet Spotter, Shnurui Troughton, sicarius Thorne, Sicarius Toxx, Sini Nubalo, SLB Wirefly, snowy Sidran, Soupa Segura, ST Mensing, Starshine Halasy, Stickman Ingmann, Synystyr Texan, Takeda Terrawyng, Tali Rosca, Templar Merlin, Tezcatlipoca Bisiani, Tiel Stonecutter, Tony Kembia, TouchaHoney Perhaps, Trey Reanimator, TriloByte Zanzibar, Trinity Dechou, Trinity Dejavu, Unlikely Quintessa, UsikuFarasi Kanarik, Veritas Raymaker, Vex Streeter, Viaticus Speculaas, Villain Baroque, Vixie Durant, Void Singer, Watty Berkson, Westley Schridde, Westley Streeter, Whimsy Winx, Winter Ventura, Wundur Primbee, xstorm Radek, YongYong Francois, Zak Westminster, Zana Kohime, Zaren Alexander, Zeja Pyle, ZenMondo Wormser, Zoex Flanagan e muitos mais.
-
-
-
-
-Raras são as mentes capazes de tornar óbvio o até então inexistente. Dizer &apos;eu poderia ter pensado a mesma coisa&apos; é comum, revelador e nem sempre a verdade; porque de fato não pensaram.
- -- Douglas Adams
+&quot;O trabalho continua, a causa vive, a esperança persiste, e os sonhos nunca morrem&quot; - Edward Kennedy
</text_editor>
</panel>
<panel label="Licenças" name="licenses_panel">
diff --git a/indra/newview/skins/default/xui/pt/floater_animation_preview.xml b/indra/newview/skins/default/xui/pt/floater_animation_preview.xml
index 78bcde251a..3ec81612a1 100644
--- a/indra/newview/skins/default/xui/pt/floater_animation_preview.xml
+++ b/indra/newview/skins/default/xui/pt/floater_animation_preview.xml
@@ -141,35 +141,35 @@ A duração máxima de animação permitida é de [MAX_LENGTH] segundos.
Expressão
</text>
<combo_box left_delta="100" name="emote_combo" tool_tip="Controla as expressões faciais durante a animação" width="184">
- <combo_box.item label="(nenhum)" name="[None]"/>
- <combo_box.item label="Aaaaah" name="Aaaaah"/>
- <combo_box.item label="Com medo" name="Afraid"/>
- <combo_box.item label="Bravo" name="Angry"/>
- <combo_box.item label="Sorriso contagiante" name="BigSmile"/>
- <combo_box.item label="À toa" name="Bored"/>
- <combo_box.item label="Chorar" name="Cry"/>
- <combo_box.item label="Desdenho" name="Disdain"/>
- <combo_box.item label="Com vergonha" name="Embarrassed"/>
- <combo_box.item label="Franzir testa" name="Frown"/>
- <combo_box.item label="Beijo" name="Kiss"/>
- <combo_box.item label="Rir" name="Laugh"/>
- <combo_box.item label="Mostrar a língua" name="Plllppt"/>
- <combo_box.item label="Asco" name="Repulsed"/>
- <combo_box.item label="Triste" name="Sad"/>
- <combo_box.item label="Encolher os ombros" name="Shrug"/>
- <combo_box.item label="Sorriso" name="Smile"/>
- <combo_box.item label="Surpresa" name="Surprise"/>
- <combo_box.item label="Piscar" name="Wink"/>
- <combo_box.item label="Preocupado" name="Worry"/>
+ <item label="(nenhum)" name="[None]" value=""/>
+ <item label="Aaaaah" name="Aaaaah" value="Aaaaah"/>
+ <item label="Com medo" name="Afraid" value="Com medo"/>
+ <item label="Bravo" name="Angry" value="Bravo"/>
+ <item label="Sorriso contagiante" name="BigSmile" value="Sorriso contagiante"/>
+ <item label="À toa" name="Bored" value="À toa"/>
+ <item label="Chorar" name="Cry" value="Chorar"/>
+ <item label="Desdenho" name="Disdain" value="Desdenho"/>
+ <item label="Com vergonha" name="Embarrassed" value="Com vergonha"/>
+ <item label="Franzir testa" name="Frown" value="Franzir testa"/>
+ <item label="Beijo" name="Kiss" value="Beijo"/>
+ <item label="Rir" name="Laugh" value="Rir"/>
+ <item label="Mostrar a língua" name="Plllppt" value="Mostrar a língua"/>
+ <item label="Asco" name="Repulsed" value="Asco"/>
+ <item label="Triste" name="Sad" value="Triste"/>
+ <item label="Encolher os ombros" name="Shrug" value="Encolher os ombros"/>
+ <item label="Sorriso" name="Smile" value="Sorriso"/>
+ <item label="Surpresa" name="Surprise" value="Surpresa"/>
+ <item label="Piscar" name="Wink" value="Piscar"/>
+ <item label="Preocupado" name="Worry" value="Preocupado"/>
</combo_box>
<text name="preview_label" width="250">
Prever enquanto
</text>
<combo_box left_delta="100" name="preview_base_anim" tool_tip="Use isto para testar o comportamento de sua animação enquanto seu avatar executa ações comuns." width="130">
- <combo_box.item label="Em pé" name="Standing"/>
- <combo_box.item label="Andando" name="Walking"/>
- <combo_box.item label="Sentado" name="Sitting"/>
- <combo_box.item label="Voando" name="Flying"/>
+ <item label="Em pé" name="Standing" value="Em pé"/>
+ <item label="Andando" name="Walking" value="Andando"/>
+ <item label="Sentado" name="Sitting" value="Sentado"/>
+ <item label="Voando" name="Flying" value="Voando"/>
</combo_box>
<spinner label="Facilitar a entrada (sec)" label_width="125" name="ease_in_time" tool_tip="Tempo (em segundos) da transição inicial da animação" width="192"/>
<spinner bottom_delta="-20" label="Facilitar a saída (sec)" label_width="125" left="10" name="ease_out_time" tool_tip="Tempo (em segundos) da transição de saída da animação" width="192"/>
diff --git a/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml
index dbca247a2f..306487939e 100644
--- a/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml
+++ b/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml
@@ -55,7 +55,7 @@
<spinner label="Minuto" name="WLLengthOfDayMin"/>
<spinner label="Segundo" name="WLLengthOfDaySec"/>
<text name="DayCycleText3">
- Prévia:
+ Visualizar
</text>
<button label="Tocar" label_selected="Tocar" name="WLAnimSky"/>
<button label="Pare!" label_selected="Pare" name="WLStopAnimSky"/>
diff --git a/indra/newview/skins/default/xui/pt/floater_god_tools.xml b/indra/newview/skins/default/xui/pt/floater_god_tools.xml
index 2e63d86281..82f21fac70 100644
--- a/indra/newview/skins/default/xui/pt/floater_god_tools.xml
+++ b/indra/newview/skins/default/xui/pt/floater_god_tools.xml
@@ -2,12 +2,11 @@
<floater name="godtools floater" title="FERRAMENTAS DE DEUS">
<tab_container name="GodTools Tabs">
<panel label="Grade" name="grid">
- <button label="Chutar todos" label_selected="Chutar todos" name="Kick all users"/>
<button label="Limpar os cachês de visibilidade do mapa da região." label_selected="Limpar os cachês de visibilidade do mapa da região." name="Flush This Region&apos;s Map Visibility Caches"/>
</panel>
<panel label="Região" name="region">
- <text name="Sim Name:">
- Nome do Simulador:
+ <text name="Region Name:">
+ Nome da região:
</text>
<check_box label="Prelúdio" name="check prelude" tool_tip="Ajustar para tornar esta região um prelúdio."/>
<check_box label="Fixar Sol" name="check fixed sun" tool_tip="Fixa a posição do sol (como em Região/Estados) &gt; Terreno."/>
@@ -47,8 +46,8 @@
<button label="Autosalvar Agora" label_selected="Autosalvar Agora" name="Autosave now" tool_tip="Salvar estado compactado para o diretório de gravação automática."/>
</panel>
<panel label="Objetos" name="objects">
- <text name="Sim Name:">
- Sim Nome:
+ <text name="Region Name:">
+ Nome da região:
</text>
<text name="region name">
Welsh
diff --git a/indra/newview/skins/default/xui/pt/floater_image_preview.xml b/indra/newview/skins/default/xui/pt/floater_image_preview.xml
index 2ff1aa7915..3582923ed0 100644
--- a/indra/newview/skins/default/xui/pt/floater_image_preview.xml
+++ b/indra/newview/skins/default/xui/pt/floater_image_preview.xml
@@ -11,16 +11,16 @@
imagem como:
</text>
<combo_box label="Tipo de Roupas" left="100" name="clothing_type_combo" width="186">
- <combo_box.item label="Imagem" name="Image"/>
- <combo_box.item label="Cabelo" name="Hair"/>
- <combo_box.item label="Cabeça de mulher" name="FemaleHead"/>
- <combo_box.item label="Cintura para cima, mulher" name="FemaleUpperBody"/>
- <combo_box.item label="Cintura para baixo, mulher" name="FemaleLowerBody"/>
- <combo_box.item label="Cabeça de homem" name="MaleHead"/>
- <combo_box.item label="Cintura para cima, homem" name="MaleUpperBody"/>
- <combo_box.item label="Cintura para baixo, homem" name="MaleLowerBody"/>
- <combo_box.item label="Saia" name="Skirt"/>
- <combo_box.item label="Prim esculpido" name="SculptedPrim"/>
+ <item label="Imagem" name="Image" value="Imagem"/>
+ <item label="Cabelo" name="Hair" value="Cabelo"/>
+ <item label="Cabeça de mulher" name="FemaleHead" value="Cabeça de mulher"/>
+ <item label="Cintura para cima, mulher" name="FemaleUpperBody" value="Cintura para cima, mulher"/>
+ <item label="Cintura para baixo, mulher" name="FemaleLowerBody" value="Cintura para baixo, mulher"/>
+ <item label="Cabeça de homem" name="MaleHead" value="Cabeça de homem"/>
+ <item label="Cintura para cima, homem" name="MaleUpperBody" value="Cintura para cima, homem"/>
+ <item label="Cintura para baixo, homem" name="MaleLowerBody" value="Cintura para baixo, homem"/>
+ <item label="Saia" name="Skirt" value="Saia"/>
+ <item label="Prim esculpido" name="SculptedPrim" value="Prim esculpido"/>
</combo_box>
<text name="bad_image_text">
Incapaz de ler a imagem.
diff --git a/indra/newview/skins/default/xui/pt/floater_outgoing_call.xml b/indra/newview/skins/default/xui/pt/floater_outgoing_call.xml
index 8a536b90db..35afde7612 100644
--- a/indra/newview/skins/default/xui/pt/floater_outgoing_call.xml
+++ b/indra/newview/skins/default/xui/pt/floater_outgoing_call.xml
@@ -28,7 +28,7 @@
Você saiu da ligação com [VOICE_CHANNEL_NAME]. [RECONNECT_NEARBY]
</text>
<text name="nearby_P2P_by_other">
- [VOICE_CHANNEL_NAME] encerrou a ligação. [RECONNECT_NEARBY]
+ A ligação foi desligada. [RECONNECT_NEARBY]
</text>
<text name="nearby_P2P_by_agent">
Você encerrou a ligação. [RECONNECT_NEARBY]
diff --git a/indra/newview/skins/default/xui/pt/floater_snapshot.xml b/indra/newview/skins/default/xui/pt/floater_snapshot.xml
index bb852cb11a..b612442195 100644
--- a/indra/newview/skins/default/xui/pt/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/pt/floater_snapshot.xml
@@ -1,79 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Snapshot" title="VER FOTO">
- <text name="type_label">
- Destino da foto
- </text>
- <radio_group label="Tipo de foto" name="snapshot_type_radio">
- <radio_item label="Email" name="postcard"/>
- <radio_item label="Meu inventário (L$[AMOUNT])" name="texture"/>
- <radio_item label="Salvar no meu PC" name="local"/>
- </radio_group>
- <text name="file_size_label">
- [SIZE] KB
- </text>
- <button label="Atualizar a foto" name="new_snapshot_btn"/>
- <button label="Enviar" name="send_btn"/>
- <button label="Salvar (L$[AMOUNT])" name="upload_btn"/>
- <flyout_button label="Salvar" name="save_btn" tool_tip="Salvar imagem em um arquivo">
- <flyout_button.item label="Salvar" name="save_item"/>
- <flyout_button.item label="Salvar como..." name="saveas_item"/>
- </flyout_button>
- <button label="Cancelar" name="discard_btn"/>
- <button label="Mais" name="more_btn" tool_tip="Opções avançadas"/>
- <button label="Menos" name="less_btn" tool_tip="Opções avançadas"/>
- <text name="type_label2">
- Tamanho
- </text>
- <text name="format_label">
- Formato
- </text>
- <combo_box label="Resolução" name="postcard_size_combo">
- <combo_box.item label="Janela atual" name="CurrentWindow"/>
- <combo_box.item label="640x480" name="640x480"/>
- <combo_box.item label="800x600" name="800x600"/>
- <combo_box.item label="1024x768" name="1024x768"/>
- <combo_box.item label="Customizado" name="Custom"/>
- </combo_box>
- <combo_box label="Resolução" name="texture_size_combo">
- <combo_box.item label="Janela atual" name="CurrentWindow"/>
- <combo_box.item label="Pequeno (128x128)" name="Small(128x128)"/>
- <combo_box.item label="Médio (256x256)" name="Medium(256x256)"/>
- <combo_box.item label="Grande (512x512)" name="Large(512x512)"/>
- <combo_box.item label="Customizado" name="Custom"/>
- </combo_box>
- <combo_box label="Resolução" name="local_size_combo">
- <combo_box.item label="Janela atual" name="CurrentWindow"/>
- <combo_box.item label="320x240" name="320x240"/>
- <combo_box.item label="640x480" name="640x480"/>
- <combo_box.item label="800x600" name="800x600"/>
- <combo_box.item label="1024x768" name="1024x768"/>
- <combo_box.item label="1280x1024" name="1280x1024"/>
- <combo_box.item label="1600x1200" name="1600x1200"/>
- <combo_box.item label="Customizado" name="Custom"/>
- </combo_box>
- <combo_box label="Formato" name="local_format_combo">
- <combo_box.item label="PNG" name="PNG"/>
- <combo_box.item label="JPEG" name="JPEG"/>
- <combo_box.item label="BMP" name="BMP"/>
- </combo_box>
- <spinner label="Largura" label_width="41" name="snapshot_width" width="101"/>
- <spinner label="Altura" label_width="31" left="119" name="snapshot_height" width="91"/>
- <check_box label="Limitar proproções" name="keep_aspect_check"/>
- <slider label="Qualidade da imagem" name="image_quality_slider"/>
- <text name="layer_type_label">
- Capturar:
- </text>
- <combo_box label="Camadas da imagem" name="layer_types">
- <combo_box.item label="Cores" name="Colors"/>
- <combo_box.item label="Formato" name="Depth"/>
- <combo_box.item label="Decoração do objeto" name="ObjectMattes"/>
- </combo_box>
- <check_box label="Interface" name="ui_check"/>
- <check_box bottom_delta="-17" label="HUDs" name="hud_check"/>
- <check_box bottom_delta="-17" label="Manter aberto após salvar" name="keep_open_check"/>
- <check_box bottom_delta="-17" label="Gerar quadro (tela inteira)" name="freeze_frame_check"/>
- <check_box bottom_delta="-29" label="Auto-atualizar" name="auto_snapshot_check"/>
- <string name="unknown">
+<floater name="Snapshot" title="Foto">
+ <floater.string name="unknown">
desconhecido
- </string>
+ </floater.string>
+ <button label="Atualizar a foto" name="new_snapshot_btn"/>
+ <line_editor label="Descrição" name="description"/>
+ <button label="Compartilhar foto" name="share"/>
+ <button label="Compartilhar na web" name="share_to_web"/>
+ <button label="Salvar no meu inventário" name="save_to_inventory"/>
+ <button label="Salvar foto" name="save"/>
+ <button label="Enviar foto por email" name="share_to_email"/>
+ <button label="Salvar no meu PC" name="save_to_computer"/>
+ <button label="Usar como foto do perfil" name="set_profile_pic"/>
+ <button label="Atrás" name="cancel"/>
</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_tos.xml b/indra/newview/skins/default/xui/pt/floater_tos.xml
index 3603545ee7..2675979783 100644
--- a/indra/newview/skins/default/xui/pt/floater_tos.xml
+++ b/indra/newview/skins/default/xui/pt/floater_tos.xml
@@ -1,15 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="modal container" title=" ">
+ <floater.string name="real_url">
+ http://secondlife.com/app/tos/
+ </floater.string>
+ <floater.string name="loading_url">
+ data:text/html,%3Chtml%3E%3Chead%3E%3C/head%3E%3Cbody text=%22000000%22%3E%3Ch2%3E Carregando %3Ca%20target%3D%22_external%22%20href%3D%22http%3A//secondlife.com/app/tos/%22%3ETerms%20of%20Service%3C/a%3E...%3C/h2%3E %3C/body%3E %3C/html%3E
+ </floater.string>
<button label="Continuar" label_selected="Continuar" name="Continue"/>
<button label="Cancelar" label_selected="Cancelar" name="Cancel"/>
<check_box label="Concordo com os Termos de Serviço e com a Política de Privacidade" name="agree_chk"/>
<text name="tos_heading">
Leia com atenção os Termos do Serviço e a Política de Privacidade. Para continuar a entrar no [SECOND_LIFE], é preciso aceitar esses termos.
</text>
- <text_editor name="tos_text">
- TOS_TEXT
- </text_editor>
- <string name="real_url">
- http://secondlife.com/app/tos/
- </string>
</floater>
diff --git a/indra/newview/skins/default/xui/pt/menu_attachment_other.xml b/indra/newview/skins/default/xui/pt/menu_attachment_other.xml
index b6cf896836..cfd69158bc 100644
--- a/indra/newview/skins/default/xui/pt/menu_attachment_other.xml
+++ b/indra/newview/skins/default/xui/pt/menu_attachment_other.xml
@@ -10,7 +10,7 @@
<menu_item_call label="Denunciar" name="abuse"/>
<menu_item_call label="Congelar" name="Freeze..."/>
<menu_item_call label="Ejetar" name="Eject..."/>
- <menu_item_call label="Depurar" name="Debug..."/>
+ <menu_item_call label="Depurar texturas" name="Debug..."/>
<menu_item_call label="Mais zoom" name="Zoom In"/>
<menu_item_call label="Pagar" name="Pay..."/>
<menu_item_call label="Perfil do objeto" name="Object Inspect"/>
diff --git a/indra/newview/skins/default/xui/pt/menu_attachment_self.xml b/indra/newview/skins/default/xui/pt/menu_attachment_self.xml
index 04f6227141..de3178b946 100644
--- a/indra/newview/skins/default/xui/pt/menu_attachment_self.xml
+++ b/indra/newview/skins/default/xui/pt/menu_attachment_self.xml
@@ -9,4 +9,5 @@
<menu_item_call label="Meus amigos" name="Friends..."/>
<menu_item_call label="Meus grupos" name="Groups..."/>
<menu_item_call label="Meu perfil" name="Profile..."/>
+ <menu_item_call label="Depurar texturas" name="Debug..."/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_avatar_other.xml b/indra/newview/skins/default/xui/pt/menu_avatar_other.xml
index 21c2cb196a..a4a26144c7 100644
--- a/indra/newview/skins/default/xui/pt/menu_avatar_other.xml
+++ b/indra/newview/skins/default/xui/pt/menu_avatar_other.xml
@@ -10,7 +10,7 @@
<menu_item_call label="Denunciar" name="abuse"/>
<menu_item_call label="Congelar" name="Freeze..."/>
<menu_item_call label="Ejetar" name="Eject..."/>
- <menu_item_call label="Depurar" name="Debug..."/>
+ <menu_item_call label="Depurar texturas" name="Debug..."/>
<menu_item_call label="Mais zoom" name="Zoom In"/>
<menu_item_call label="Pagar" name="Pay..."/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_avatar_self.xml b/indra/newview/skins/default/xui/pt/menu_avatar_self.xml
index abbf2e7032..ccbb921ebc 100644
--- a/indra/newview/skins/default/xui/pt/menu_avatar_self.xml
+++ b/indra/newview/skins/default/xui/pt/menu_avatar_self.xml
@@ -24,4 +24,5 @@
<menu_item_call label="Meus amigos" name="Friends..."/>
<menu_item_call label="Meus grupos" name="Groups..."/>
<menu_item_call label="Meu perfil" name="Profile..."/>
+ <menu_item_call label="Depurar texturas" name="Debug..."/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_edit.xml b/indra/newview/skins/default/xui/pt/menu_edit.xml
new file mode 100644
index 0000000000..ff431c9a21
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/menu_edit.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu label="Editar" name="Edit">
+ <menu_item_call label="Desfazer" name="Undo"/>
+ <menu_item_call label="Repetir" name="Redo"/>
+ <menu_item_call label="Cortar" name="Cut"/>
+ <menu_item_call label="Copiar" name="Copy"/>
+ <menu_item_call label="Colar" name="Paste"/>
+ <menu_item_call label="Excluir" name="Delete"/>
+ <menu_item_call label="Replicar" name="Duplicate"/>
+ <menu_item_call label="Selecionar tudo" name="Select All"/>
+ <menu_item_call label="Desfazer seleção" name="Deselect"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/pt/menu_inspect_avatar_gear.xml
index cdd8959cd4..6a511e6ab7 100644
--- a/indra/newview/skins/default/xui/pt/menu_inspect_avatar_gear.xml
+++ b/indra/newview/skins/default/xui/pt/menu_inspect_avatar_gear.xml
@@ -11,7 +11,7 @@
<menu_item_call label="Denunciar" name="report"/>
<menu_item_call label="Congelar" name="freeze"/>
<menu_item_call label="Ejetar" name="eject"/>
- <menu_item_call label="Depurar" name="debug"/>
+ <menu_item_call label="Depurar texturas" name="debug"/>
<menu_item_call label="Localizar no mapa" name="find_on_map"/>
<menu_item_call label="Mais zoom" name="zoom_in"/>
<menu_item_call label="Pagar" name="pay"/>
diff --git a/indra/newview/skins/default/xui/pt/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/pt/menu_inspect_self_gear.xml
index 2eba4ccb2d..effc970eb8 100644
--- a/indra/newview/skins/default/xui/pt/menu_inspect_self_gear.xml
+++ b/indra/newview/skins/default/xui/pt/menu_inspect_self_gear.xml
@@ -5,4 +5,5 @@
<menu_item_call label="Meu perfil" name="my_profile"/>
<menu_item_call label="Meus amigos" name="my_friends"/>
<menu_item_call label="Meus grupos" name="my_groups"/>
+ <menu_item_call label="Depurar texturas" name="Debug..."/>
</menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_inv_offer_chiclet.xml b/indra/newview/skins/default/xui/pt/menu_inv_offer_chiclet.xml
new file mode 100644
index 0000000000..c404719c95
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/menu_inv_offer_chiclet.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="InvOfferChiclet Menu">
+ <menu_item_call label="Fechar" name="Close"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_inventory.xml b/indra/newview/skins/default/xui/pt/menu_inventory.xml
index 2691ac81b3..e3c12e8b7d 100644
--- a/indra/newview/skins/default/xui/pt/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/pt/menu_inventory.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="Popup">
+ <menu_item_call label="Compartilhar" name="Share"/>
<menu_item_call label="Comprar" name="Task Buy"/>
<menu_item_call label="Abrir" name="Task Open"/>
<menu_item_call label="Executar" name="Task Play"/>
diff --git a/indra/newview/skins/default/xui/pt/menu_login.xml b/indra/newview/skins/default/xui/pt/menu_login.xml
index 6cc83d11d0..a7df67a6b5 100644
--- a/indra/newview/skins/default/xui/pt/menu_login.xml
+++ b/indra/newview/skins/default/xui/pt/menu_login.xml
@@ -7,18 +7,8 @@
<menu label="Ajuda" name="Help">
<menu_item_call label="Ajuda do [SECOND_LIFE]" name="Second Life Help"/>
</menu>
+ <menu_item_check label="Exibir menu de depuração" name="Show Debug Menu"/>
<menu label="Depurar" name="Debug">
- <menu label="Editar" name="Edit">
- <menu_item_call label="Desfazer" name="Undo"/>
- <menu_item_call label="Repetir" name="Redo"/>
- <menu_item_call label="Cortar" name="Cut"/>
- <menu_item_call label="Copiar" name="Copy"/>
- <menu_item_call label="Colar" name="Paste"/>
- <menu_item_call label="Excluir" name="Delete"/>
- <menu_item_call label="Replicar" name="Duplicate"/>
- <menu_item_call label="Selecionar tudo" name="Select All"/>
- <menu_item_call label="Desfazer seleção" name="Deselect"/>
- </menu>
<menu_item_call label="Mostrar configurações" name="Debug Settings"/>
<menu_item_call label="Configurações da interface e cor" name="UI/Color Settings"/>
<menu label="Testes de UI" name="UI Tests"/>
@@ -26,5 +16,7 @@
<menu_item_call label="Mostrar TOS" name="TOS"/>
<menu_item_call label="Mostrar mensagem crítica" name="Critical"/>
<menu_item_call label="Teste de navegador web" name="Web Browser Test"/>
+ <menu_item_check label="Exibir seletor da grade" name="Show Grid Picker"/>
+ <menu_item_call label="Exibir painel de notificações" name="Show Notifications Console"/>
</menu>
</menu_bar>
diff --git a/indra/newview/skins/default/xui/pt/menu_participant_list.xml b/indra/newview/skins/default/xui/pt/menu_participant_list.xml
index 849dec3108..c0db7752af 100644
--- a/indra/newview/skins/default/xui/pt/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/pt/menu_participant_list.xml
@@ -8,6 +8,7 @@
<menu_item_call label="Ligar" name="Call"/>
<menu_item_call label="Compartilhar" name="Share"/>
<menu_item_call label="Pagar" name="Pay"/>
+ <menu_item_check label="Ver ícones de pessoas" name="View Icons"/>
<menu_item_check label="Bloquear voz" name="Block/Unblock"/>
<menu_item_check label="Bloquear texto" name="MuteText"/>
<context_menu label="Opções do moderador &gt;" name="Moderator Options">
diff --git a/indra/newview/skins/default/xui/pt/menu_save_outfit.xml b/indra/newview/skins/default/xui/pt/menu_save_outfit.xml
new file mode 100644
index 0000000000..a957708ae4
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/menu_save_outfit.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="save_outfit_menu">
+ <menu_item_call label="Salvar" name="save_outfit"/>
+ <menu_item_call label="Salvar como novo" name="save_as_new_outfit"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_script_chiclet.xml b/indra/newview/skins/default/xui/pt/menu_script_chiclet.xml
new file mode 100644
index 0000000000..ccf3878e14
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/menu_script_chiclet.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="ScriptChiclet Menu">
+ <menu_item_call label="Fechar" name="Close"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_viewer.xml b/indra/newview/skins/default/xui/pt/menu_viewer.xml
index fe69d228e9..2f3345741c 100644
--- a/indra/newview/skins/default/xui/pt/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/pt/menu_viewer.xml
@@ -31,6 +31,7 @@
<menu_item_call label="Foto" name="Take Snapshot"/>
<menu_item_call label="Criar marco deste lugar" name="Create Landmark Here"/>
<menu label="Perfil da região" name="Land">
+ <menu_item_call label="Perfil da região" name="Place Profile"/>
<menu_item_call label="Sobre terrenos" name="About Land"/>
<menu_item_call label="Região/Propriedade" name="Region/Estate"/>
</menu>
@@ -66,17 +67,6 @@
<menu_item_call label="Ferramenta criar" name="Create"/>
<menu_item_call label="Ferramenta de terrenos" name="Land"/>
</menu>
- <menu label="Editar" name="Edit">
- <menu_item_call label="Desfazer" name="Undo"/>
- <menu_item_call label="Repetir" name="Redo"/>
- <menu_item_call label="Cortar" name="Cut"/>
- <menu_item_call label="Copiar" name="Copy"/>
- <menu_item_call label="Colar" name="Paste"/>
- <menu_item_call label="Excluir" name="Delete"/>
- <menu_item_call label="Replicar" name="Duplicate"/>
- <menu_item_call label="Selecionar tudo" name="Select All"/>
- <menu_item_call label="Desfazer seleção" name="Deselect"/>
- </menu>
<menu_item_call label="Link" name="Link"/>
<menu_item_call label="Desconectar links" name="Unlink"/>
<menu_item_check label="Edit Linked Parts" name="Edit Linked Parts"/>
@@ -124,6 +114,7 @@
<menu_item_call label="Sobre [APP_NAME]" name="About Second Life"/>
</menu>
<menu label="Avançado" name="Advanced">
+ <menu_item_check label="Exibir menu avançado" name="Show Advanced Menu"/>
<menu_item_call label="Parar minha animação" name="Stop Animating My Avatar"/>
<menu_item_call label="Recarregar texturas" name="Rebake Texture"/>
<menu_item_call label="Interface tamanho padrão" name="Set UI Size to Default"/>
@@ -145,7 +136,6 @@
<menu_item_check label="Realçar transparentes" name="Highlight Transparent"/>
<menu_item_check label="Mostrar anexos HUD" name="Show HUD Attachments"/>
<menu_item_check label="Mostrar retículo na vista subjetiva" name="ShowCrosshairs"/>
- <menu_item_check label="Mostrar dicas de terreno" name="Land Tips"/>
</menu>
<menu label="Tipos de renderização" name="Rendering Types">
<menu_item_check label="Simples" name="Simple"/>
diff --git a/indra/newview/skins/default/xui/pt/notifications.xml b/indra/newview/skins/default/xui/pt/notifications.xml
index 5f91ff09e5..b888510922 100644
--- a/indra/newview/skins/default/xui/pt/notifications.xml
+++ b/indra/newview/skins/default/xui/pt/notifications.xml
@@ -349,7 +349,7 @@ Tem certeza de que quer prosseguir?
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="DeleteAvatarPick">
- Apagar pegar [PICK]?
+ Excluir destaque &lt;nolink&gt;[PICK]&lt;/nolink&gt;?
<usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Delete"/>
</notification>
<notification name="PromptGoToEventsPage">
@@ -918,6 +918,16 @@ Oferecer amizade para [NAME]?
<button name="Cancel" text="Cancelar"/>
</form>
</notification>
+ <notification label="Salvar este look" name="SaveOutfitAs">
+ Veja o meu novo visual:
+ <form name="form">
+ <input name="message">
+ [DESC] (novo)
+ </input>
+ <button name="Offer" text="OK"/>
+ <button name="Cancel" text="Cancelar"/>
+ </form>
+ </notification>
<notification name="RemoveFromFriends">
Você quer remover [FIRST_NAME] [LAST_NAME] da sua lista de amigos?
<usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Remover"/>
@@ -1398,6 +1408,10 @@ O bate-papo e MIs não serão exibidos. MIs enviadas para você receberão sua
Teletransportar para [CLASSIFIED]?
<usetemplate ignoretext="Confirmar se eu quero ser teletransportado lugar do anúncio" name="okcancelignore" notext="Cancelar" yestext="Teletransportar"/>
</notification>
+ <notification name="TeleportToHistoryEntry">
+ Teletransportar para [HISTORY_ENTRY]?
+ <usetemplate ignoretext="Confirmar se eu quero ser teletransportado para marcos" name="okcancelignore" notext="Cancelar" yestext="Teletransportar"/>
+ </notification>
<notification label="Mensagem para todos na sua Propriedade" name="MessageEstate">
Digite um breve anúncio que será enviado para todos que estejam atualmente na sua propriedade.
<form name="form">
@@ -1489,6 +1503,9 @@ Clique em &apos;Mudar preferência&apos; para aumentar o nível de maturidade e
<ignore name="ignore" text="Minha preferência de maturidade impede que eu vá a uma região"/>
</form>
</notification>
+ <notification name="PreferredMaturityChanged">
+ Sua opção de nível de maturidade é [RATING].
+ </notification>
<notification name="LandClaimAccessBlocked">
Você não pode reclamar esta terra devido à sua Classificação de maturidade. Isto pode ser o resultado de falta de informação na validação de sua idade.
@@ -1904,6 +1921,9 @@ Inclua um link para facilitar o acesso para visitantes. Teste o link na barra de
<notification name="SystemMessageTip">
[MESSAGE]
</notification>
+ <notification name="IMSystemMessageTip">
+ [MESSAGE]
+ </notification>
<notification name="Cancelled">
Cancelado
</notification>
@@ -1932,6 +1952,11 @@ Inclua um link para facilitar o acesso para visitantes. Teste o link na barra de
Fazendo o upload das fotos do site da web e do mundo...
(Leva cerca de 5 minutos)
</notification>
+ <notification name="UploadConfirmation">
+ O upload custa L$ [AMOUNT].
+Deseja continuar?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Upload"/>
+ </notification>
<notification name="UploadPayment">
Você paga L$[AMOUNT] para fazer o upload.
</notification>
@@ -2270,9 +2295,9 @@ Por favor, tente novamente em alguns instantes.
</form>
</notification>
<notification name="TeleportOffered">
- [NAME] quer te teletransportar para a região deles:
+ [NAME_SLURL] quer teletransportar você para a região deles:
-[MESSAGE]
+[MESSAGE] - [MATURITY_STR] &lt;icon&gt;[MATURITY_ICON]&lt;/icon&gt;
<form name="form">
<button name="Teleport" text="Teletransporte"/>
<button name="Cancel" text="Cancelar"/>
@@ -2290,11 +2315,11 @@ Por favor, tente novamente em alguns instantes.
</form>
</notification>
<notification name="OfferFriendship">
- [NAME] está lhe oferecendo sua amizade
+ [NAME_SLURL] quer a sua amizade.
[MESSAGE]
-(Por definição vocês serão capazes de ver um ao outro online)
+Cada um pode ver o status do outro (definição padrão).
<form name="form">
<button name="Accept" text="Aceitar"/>
<button name="Decline" text="Recusar"/>
@@ -2357,6 +2382,9 @@ Do objeto: [OBJECTNAME], dono: [NAME]?
<notification name="FailedToFindWearable">
Falhou ao procurar [TYPE] nomeado [DESC] no banco de dados.
</notification>
+ <notification name="ShareToWebFailed">
+ Falha de upload da imagem na web.
+ </notification>
<notification name="InvalidWearable">
O item que você está tentando usar tem um recurso que seu Visualizador não consegue ler. Atualize o [APP_NAME] para poder vestir esse item.
</notification>
@@ -2553,6 +2581,12 @@ Para sua segurança, os SLurls serão bloqueados por alguns instantes.
O botão selecionado não pode ser exibido no momento.
O botão será exibido quando houver espaço suficente.
</notification>
+ <notification name="ShareNotification">
+ Arraste itens do inventário para uma pessoa no seletor de residentes
+ </notification>
+ <notification name="AvatarRezNotification">
+ O avatar de &apos;[NAME]&apos; renderizou em [TIME] s.
+ </notification>
<global name="UnsupportedCPU">
- A velocidade da sua CPU não suporta os requisitos mínimos exigidos.
</global>
diff --git a/indra/newview/skins/default/xui/pt/outfit_accordion_tab.xml b/indra/newview/skins/default/xui/pt/outfit_accordion_tab.xml
new file mode 100644
index 0000000000..b1ffa0d2e5
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/outfit_accordion_tab.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- *NOTE: mantipov: this xml is intended to be used inside panel_outfits_list.xml for each outfit folder-->
+<!-- All accordion tabs in the My Appearance/My Outfits panel will be created from this one at runtume-->
+<accordion_tab name="Mockup Tab" title="Guia Protótipo"/>
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_eyes.xml b/indra/newview/skins/default/xui/pt/panel_edit_eyes.xml
index 2c73e67c4a..f21656d526 100644
--- a/indra/newview/skins/default/xui/pt/panel_edit_eyes.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_eyes.xml
@@ -3,7 +3,9 @@
<panel name="avatar_eye_color_panel">
<texture_picker label="Íris" name="Iris" tool_tip="Selecionar imagem"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="eyes_main_tab" title="Olhos"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="eyes_main_tab" title="Olhos"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_gloves.xml b/indra/newview/skins/default/xui/pt/panel_edit_gloves.xml
index 6b4141e4a7..a94716e659 100644
--- a/indra/newview/skins/default/xui/pt/panel_edit_gloves.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_gloves.xml
@@ -4,7 +4,9 @@
<texture_picker label="Tecido" name="Fabric" tool_tip="Selecionar imagem"/>
<color_swatch label="Cor/Tonalidade" name="Color/Tint" tool_tip="Selecionar a cor"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="gloves_main_tab" title="Luvas"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="gloves_main_tab" title="Luvas"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_hair.xml b/indra/newview/skins/default/xui/pt/panel_edit_hair.xml
index b49f5850aa..13f1f892f9 100644
--- a/indra/newview/skins/default/xui/pt/panel_edit_hair.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_hair.xml
@@ -3,10 +3,12 @@
<panel name="avatar_hair_color_panel">
<texture_picker label="Texture" name="Texture" tool_tip="Selecionar imagem"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="hair_color_tab" title="Cor"/>
- <accordion_tab name="hair_style_tab" title="Estilo"/>
- <accordion_tab name="hair_eyebrows_tab" title="Sombrancelhas"/>
- <accordion_tab name="hair_facial_tab" title="Faciais"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="hair_color_tab" title="Cor"/>
+ <accordion_tab name="hair_style_tab" title="Estilo"/>
+ <accordion_tab name="hair_eyebrows_tab" title="Sombrancelhas"/>
+ <accordion_tab name="hair_facial_tab" title="Faciais"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_jacket.xml b/indra/newview/skins/default/xui/pt/panel_edit_jacket.xml
index dcccf76c26..f555bd9ac7 100644
--- a/indra/newview/skins/default/xui/pt/panel_edit_jacket.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_jacket.xml
@@ -5,7 +5,9 @@
<texture_picker label="Tecido de baixo" name="Lower Fabric" tool_tip="Selecionar imagem"/>
<color_swatch label="Cor/Tonalidade" name="Color/Tint" tool_tip="Selecionar a cor"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="jacket_main_tab" title="Jaqueta"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="jacket_main_tab" title="Jaqueta"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_pants.xml b/indra/newview/skins/default/xui/pt/panel_edit_pants.xml
index 8cfa6933eb..67c300cc8d 100644
--- a/indra/newview/skins/default/xui/pt/panel_edit_pants.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_pants.xml
@@ -4,7 +4,9 @@
<texture_picker label="Tecido" name="Fabric" tool_tip="Selecionar imagem"/>
<color_swatch label="Cor/Tonalidade" name="Color/Tint" tool_tip="Selecionar a cor"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="pants_main_tab" title="Calças"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="pants_main_tab" title="Calças"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_shape.xml b/indra/newview/skins/default/xui/pt/panel_edit_shape.xml
index 6a03c2e2ff..504486c3bb 100644
--- a/indra/newview/skins/default/xui/pt/panel_edit_shape.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_shape.xml
@@ -9,15 +9,17 @@
<radio_item label="Masculino" name="radio2"/>
</radio_group>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="shape_body_tab" title="Corpo"/>
- <accordion_tab name="shape_head_tab" title="Cabeça"/>
- <accordion_tab name="shape_eyes_tab" title="Olhos"/>
- <accordion_tab name="shape_ears_tab" title="Orelhas"/>
- <accordion_tab name="shape_nose_tab" title="Nariz"/>
- <accordion_tab name="shape_mouth_tab" title="Boca"/>
- <accordion_tab name="shape_chin_tab" title="Queixo"/>
- <accordion_tab name="shape_torso_tab" title="Tronco"/>
- <accordion_tab name="shape_legs_tab" title="Pernas"/>
- </accordion>
+ <panel label="Camisa" name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="shape_body_tab" title="Corpo"/>
+ <accordion_tab name="shape_head_tab" title="Cabeça"/>
+ <accordion_tab name="shape_eyes_tab" title="Olhos"/>
+ <accordion_tab name="shape_ears_tab" title="Orelhas"/>
+ <accordion_tab name="shape_nose_tab" title="Nariz"/>
+ <accordion_tab name="shape_mouth_tab" title="Boca"/>
+ <accordion_tab name="shape_chin_tab" title="Queixo"/>
+ <accordion_tab name="shape_torso_tab" title="Tronco"/>
+ <accordion_tab name="shape_legs_tab" title="Pernas"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_shirt.xml b/indra/newview/skins/default/xui/pt/panel_edit_shirt.xml
index e9d4207e49..fb7c4c080c 100644
--- a/indra/newview/skins/default/xui/pt/panel_edit_shirt.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_shirt.xml
@@ -4,7 +4,9 @@
<texture_picker label="tecido" name="Fabric" tool_tip="Clique para escolher uma foto"/>
<color_swatch label="Cor/Matiz" name="Color/Tint" tool_tip="Clique para abrir o selecionador de cor"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="shirt_main_tab" title="Camisa"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="shirt_main_tab" title="Camisa"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_shoes.xml b/indra/newview/skins/default/xui/pt/panel_edit_shoes.xml
index 79cb641079..d1d30cf46e 100644
--- a/indra/newview/skins/default/xui/pt/panel_edit_shoes.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_shoes.xml
@@ -4,7 +4,9 @@
<texture_picker label="Tecido" name="Fabric" tool_tip="Selecionar imagem"/>
<color_swatch label="Cor/Tonalidade" name="Color/Tint" tool_tip="Selecionar a cor"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="shoes_main_tab" title="Sapatos"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="shoes_main_tab" title="Sapatos"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_skin.xml b/indra/newview/skins/default/xui/pt/panel_edit_skin.xml
index e3caf9f6f7..f3d88123f2 100644
--- a/indra/newview/skins/default/xui/pt/panel_edit_skin.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_skin.xml
@@ -5,10 +5,12 @@
<texture_picker label="Tatuagem parte de cima" name="Upper Tattoos" tool_tip="Selecionar imagem"/>
<texture_picker label="Tatuagem de baixo" name="Lower Tattoos" tool_tip="Selecionar imagem"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="skin_color_tab" title="Cor da pele"/>
- <accordion_tab name="skin_face_tab" title="Detalhe do rosto"/>
- <accordion_tab name="skin_makeup_tab" title="Maquilagem"/>
- <accordion_tab name="skin_body_tab" title="Detalhe do corpo"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="skin_color_tab" title="Cor da pele"/>
+ <accordion_tab name="skin_face_tab" title="Detalhe do rosto"/>
+ <accordion_tab name="skin_makeup_tab" title="Maquilagem"/>
+ <accordion_tab name="skin_body_tab" title="Detalhe do corpo"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_skirt.xml b/indra/newview/skins/default/xui/pt/panel_edit_skirt.xml
index 00ec0691ea..b67cd53a83 100644
--- a/indra/newview/skins/default/xui/pt/panel_edit_skirt.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_skirt.xml
@@ -4,7 +4,9 @@
<texture_picker label="Tecido" name="Fabric" tool_tip="Selecionar imagem"/>
<color_swatch label="Cor/Tonalidade" name="Color/Tint" tool_tip="Selecionar a cor"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="skirt_main_tab" title="Saia"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="skirt_main_tab" title="Saia"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_socks.xml b/indra/newview/skins/default/xui/pt/panel_edit_socks.xml
index 88abc74716..405568abeb 100644
--- a/indra/newview/skins/default/xui/pt/panel_edit_socks.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_socks.xml
@@ -4,7 +4,9 @@
<texture_picker label="Tecido" name="Fabric" tool_tip="Selecionar imagem"/>
<color_swatch label="Cor/Tonalidade" name="Color/Tint" tool_tip="Selecionar a cor"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="socks_main_tab" title="Meias"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="socks_main_tab" title="Meias"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_underpants.xml b/indra/newview/skins/default/xui/pt/panel_edit_underpants.xml
index 10c34a1c0a..f858dc0495 100644
--- a/indra/newview/skins/default/xui/pt/panel_edit_underpants.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_underpants.xml
@@ -4,7 +4,9 @@
<texture_picker label="Tecido" name="Fabric" tool_tip="Selecionar imagem"/>
<color_swatch label="Cor/Tonalidade" name="Color/Tint" tool_tip="Selecionar a cor"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="underpants_main_tab" title="Roupa de baixo"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="underpants_main_tab" title="Roupa de baixo"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_undershirt.xml b/indra/newview/skins/default/xui/pt/panel_edit_undershirt.xml
index fb7b919365..9c18fc1d6c 100644
--- a/indra/newview/skins/default/xui/pt/panel_edit_undershirt.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_undershirt.xml
@@ -4,7 +4,9 @@
<texture_picker label="Tecido" name="Fabric" tool_tip="Selecionar imagem"/>
<color_swatch label="Cor/Tonalidade" name="Color/Tint" tool_tip="Selecionar a cor"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="undershirt_main_tab" title="Camiseta"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="undershirt_main_tab" title="Camiseta"/>
+ </accordion>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_edit_wearable.xml b/indra/newview/skins/default/xui/pt/panel_edit_wearable.xml
index b85d481941..a78539f274 100644
--- a/indra/newview/skins/default/xui/pt/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_wearable.xml
@@ -94,6 +94,11 @@
<panel label="Camisa" name="wearable_type_panel">
<text name="description_text" value="Forma:"/>
</panel>
+ <panel label="gear_buttom_panel" name="gear_buttom_panel">
+ <button name="friends_viewsort_btn" tool_tip="Opções"/>
+ <button name="add_btn" tool_tip="TODO"/>
+ <button name="del_btn" tool_tip="TODO"/>
+ </panel>
<panel name="button_panel">
<button label="Salvar como" name="save_as_button"/>
<button label="Reverter" name="revert_button"/>
diff --git a/indra/newview/skins/default/xui/pt/panel_group_general.xml b/indra/newview/skins/default/xui/pt/panel_group_general.xml
index 0b65b4aade..6060f23bba 100644
--- a/indra/newview/skins/default/xui/pt/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/pt/panel_group_general.xml
@@ -47,8 +47,11 @@ Para obter mais ajuda, passe o mouse sobre as opções.
<check_box label="Taxa de inscrição" name="check_enrollment_fee" tool_tip="Controla a cobrança de uma taxa de associação ao grupo."/>
<spinner label="L$" left_delta="120" name="spin_enrollment_fee" tool_tip="Se a opção &apos;Taxa de associação&apos; estiver marcada, novos membros precisam pagar o valor definido para entrar no grupo." width="60"/>
<combo_box name="group_mature_check" tool_tip="Define se os dados do seu grupo são conteúdo moderado." width="170">
- <combo_box.item label="Conteúdo PG" name="pg"/>
+ <combo_item name="select_mature">
+ - Selecione Maduro -
+ </combo_item>
<combo_box.item label="Conteúdo Mature" name="mature"/>
+ <combo_box.item label="Conteúdo PG" name="pg"/>
</combo_box>
<check_box initial_value="true" label="Mostre na busca" name="show_in_group_list" tool_tip="Incluir o grupo nos resultados de busca"/>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_im_control_panel.xml b/indra/newview/skins/default/xui/pt/panel_im_control_panel.xml
index 2535340f4c..91b7d1b7cd 100644
--- a/indra/newview/skins/default/xui/pt/panel_im_control_panel.xml
+++ b/indra/newview/skins/default/xui/pt/panel_im_control_panel.xml
@@ -20,7 +20,7 @@
<button label="Ligar" name="call_btn"/>
</layout_panel>
<layout_panel name="end_call_btn_panel">
- <button label="Desligar" name="end_call_btn"/>
+ <button label="Encerrar ligação" name="end_call_btn"/>
</layout_panel>
<layout_panel name="voice_ctrls_btn_panel">
<button label="Controles de voz" name="voice_ctrls_btn"/>
diff --git a/indra/newview/skins/default/xui/pt/panel_inventory_item.xml b/indra/newview/skins/default/xui/pt/panel_inventory_item.xml
new file mode 100644
index 0000000000..d18047fbcf
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/panel_inventory_item.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="inventory_item">
+ <text name="item_name" value="..."/>
+</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_media_settings_permissions.xml b/indra/newview/skins/default/xui/pt/panel_media_settings_permissions.xml
index 009dd0d752..55226db274 100644
--- a/indra/newview/skins/default/xui/pt/panel_media_settings_permissions.xml
+++ b/indra/newview/skins/default/xui/pt/panel_media_settings_permissions.xml
@@ -11,10 +11,19 @@
Mini
</combo_item>
</combo_box>
+ <text name="owner_label">
+ Proprietário
+ </text>
<check_box initial_value="false" label="Permitir navegação &amp; interatividade" name="perms_owner_interact"/>
<check_box initial_value="false" label="Exibir barra de controle" name="perms_owner_control"/>
+ <text name="group_label">
+ Grupo:
+ </text>
<check_box initial_value="false" label="Permitir navegação &amp; interatividade" name="perms_group_interact"/>
<check_box initial_value="false" label="Exibir barra de controle" name="perms_group_control"/>
+ <text name="anyone_label">
+ Todos
+ </text>
<check_box initial_value="false" label="Permitir navegação &amp; interatividade" name="perms_anyone_interact"/>
<check_box initial_value="false" label="Exibir barra de controle" name="perms_anyone_control"/>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_nearby_media.xml b/indra/newview/skins/default/xui/pt/panel_nearby_media.xml
index 34db606d8b..8d08177eed 100644
--- a/indra/newview/skins/default/xui/pt/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/pt/panel_nearby_media.xml
@@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="nearby_media">
+ <string name="media_item_count_format">
+ (%ld itens de mídia)
+ </string>
<string name="empty_item_text">
&lt;vazio&gt;
</string>
@@ -16,15 +19,10 @@
<button label="Parar tudo" name="all_nearby_media_disable_btn" tool_tip="Desligar mídias por perto"/>
<button label="Executar tudo" name="all_nearby_media_enable_btn" tool_tip="Ligar mídias por perto"/>
<button name="open_prefs_btn" tool_tip="Preferências de mídia"/>
- <button label="Mais &gt;&gt;" label_selected="Menos &lt;&lt;" name="more_less_btn" tool_tip="Controles avançados"/>
+ <button label="Mais &gt;&gt;" label_selected="Menos &lt;&lt;" name="more_btn" tool_tip="Controles avançados"/>
+ <button label="Mais &gt;&gt;" label_selected="Menos &lt;&lt;" name="less_btn" tool_tip="Controles avançados"/>
</panel>
<panel name="nearby_media_panel">
- <text name="nearby_media">
- Mídia por perto
- </text>
- <text name="show">
- Mostrar:
- </text>
<combo_box name="show_combo">
<combo_box.item label="Tudo" name="All"/>
<combo_box.item label="Neste lote" name="WithinParcel"/>
@@ -38,7 +36,7 @@
<scroll_list.columns label="Nome" name="media_name"/>
<scroll_list.columns label="Depurar" name="media_debug"/>
</scroll_list>
- <panel name="media_controls_panel">
+ <panel>
<layout_stack name="media_controls">
<layout_panel name="stop">
<button name="stop_btn" tool_tip="Parar mídia selecionada"/>
diff --git a/indra/newview/skins/default/xui/pt/panel_outfit_edit.xml b/indra/newview/skins/default/xui/pt/panel_outfit_edit.xml
new file mode 100644
index 0000000000..3dc8b4cc75
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/panel_outfit_edit.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- Side tray Outfit Edit panel -->
+<panel label="Editar look" name="outfit_edit">
+ <string name="No Outfit" value="Nenhum"/>
+ <panel.string name="not_available">
+ (N\A)
+ </panel.string>
+ <panel.string name="unknown">
+ (Desconhecido)
+ </panel.string>
+ <string name="Filter.All" value="Tudo"/>
+ <string name="Filter.Clothes/Body" value="Roupas/Corpo"/>
+ <string name="Filter.Objects" value="Objects"/>
+ <button label="Editar" name="edit_wearable_btn"/>
+ <text name="title" value="Editar look"/>
+ <panel label="bottom_panel" name="header_panel">
+ <panel label="bottom_panel" name="outfit_name_and_status">
+ <text name="status" value="Editando..."/>
+ <text name="curr_outfit_name" value="[Look atual]"/>
+ </panel>
+ </panel>
+ <layout_stack name="im_panels">
+ <layout_panel label="Painel de controle de MIs" name="outfit_wearables_panel">
+ <scroll_list name="look_items_list">
+ <scroll_list.columns label="Ver item" name="look_item"/>
+ <scroll_list.columns label="Ordenar itens" name="look_item_sort"/>
+ </scroll_list>
+ <panel label="bottom_panel" name="edit_panel"/>
+ </layout_panel>
+ <layout_panel name="add_wearables_panel">
+ <filter_editor label="Filtro" name="look_item_filter"/>
+ <layout_stack name="filter_panels">
+ <layout_panel label="Painel de controle de MIs" name="filter_button_panel">
+ <text name="add_to_outfit_label" value="Adicionar ao look:"/>
+ <button label="O" name="filter_button"/>
+ </layout_panel>
+ </layout_stack>
+ <panel label="add_wearables_button_bar" name="add_wearables_button_bar">
+ <button label="F" name="folder_view_btn"/>
+ <button label="L" name="list_view_btn"/>
+ </panel>
+ </layout_panel>
+ </layout_stack>
+ <panel name="save_revert_button_bar">
+ <button label="Salvar" name="save_btn"/>
+ <button label="Reverter" name="revert_btn"/>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/pt/panel_outfits_inventory.xml
index 8d648a98fa..c8f33f85a9 100644
--- a/indra/newview/skins/default/xui/pt/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/pt/panel_outfits_inventory.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Coisas" name="Outfits">
<tab_container name="appearance_tabs">
- <inventory_panel label="MEUS LOOKS" name="outfitslist_tab"/>
+ <panel label="MEUS LOOKS" name="outfitslist_tab"/>
<inventory_panel label="EM USO" name="cof_tab"/>
</tab_container>
<panel name="bottom_panel">
@@ -9,6 +9,6 @@
<dnd_button name="trash_btn" tool_tip="Remover item selecionado"/>
<button label="Salvar este look" name="make_outfit_btn" tool_tip="Salvar aparência como um look"/>
<button label="Vestir" name="wear_btn" tool_tip="Vestir look selecionado"/>
- <button label="M" name="look_edit_btn"/>
+ <button label="Editar look" name="edit_current_outfit_btn"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_people.xml b/indra/newview/skins/default/xui/pt/panel_people.xml
index 1516a2bb65..0b274d6faa 100644
--- a/indra/newview/skins/default/xui/pt/panel_people.xml
+++ b/indra/newview/skins/default/xui/pt/panel_people.xml
@@ -1,14 +1,23 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- Side tray panel -->
<panel label="Pessoas" name="people_panel">
- <string name="no_people" value="Nenhuma pessoa"/>
- <string name="no_one_near" value="Ninguém por perto"/>
+ <string name="no_recent_people" value="Ninguém, recentemente. Em busca de alguém para conversar? Use a [secondlife:///app/search/people Busca] ou o [secondlife:///app/worldmap Mapa-Múndi]."/>
+ <string name="no_filtered_recent_people" value="Não encontrou o que procura? Tente fazer uma [secondlife:///app/search/groups Busca]."/>
+ <string name="no_one_near" value="Ninguém por perto Em busca de alguém para conversar? Use a [secondlife:///app/search/people Busca] ou o [secondlife:///app/worldmap Mapa-Múndi]."/>
+ <string name="no_one_filtered_near" value="Não encontrou o que procura? Tente fazer uma [secondlife:///app/search/groups Busca]."/>
<string name="no_friends_online" value="Nenhum amigo online"/>
<string name="no_friends" value="Nenhum amigo"/>
+ <string name="no_friends_msg">
+ Encontre amigos fazendo uma [secondlife:///app/search/people busca de pessoas] ou clique em um residente para adicioná-lo.
+Em busca de alguém para conversar? Procure no [secondlife:///app/worldmap Mapa-Múndi].
+ </string>
+ <string name="no_filtered_friends_msg">
+ Não encontrou o que procura? Tente fazer uma [secondlife:///app/search/groups Busca].
+ </string>
<string name="people_filter_label" value="Filtro de pessoas"/>
<string name="groups_filter_label" value="Filtro de grupos"/>
- <string name="no_filtered_groups_msg" value="[secondlife:///app/search/groups Tente encontrar o grupo na Busca]"/>
- <string name="no_groups_msg" value="[secondlife:///app/search/groups Tente procurar grupos que lhe interessam]"/>
+ <string name="no_filtered_groups_msg" value="Não encontrou o que procura? Tente fazer uma [secondlife:///app/search/groups Busca]."/>
+ <string name="no_groups_msg" value="À procura de grupos interessantes? Tente fazer uma [secondlife:///app/search/groups Busca]."/>
<filter_editor label="Filtro" name="filter_input"/>
<tab_container name="tabs">
<panel label="PROXIMIDADE" name="nearby_panel">
@@ -27,10 +36,6 @@
<button name="add_btn" tool_tip="Oferecer amizade para um residente"/>
<button name="del_btn" tool_tip="Remover a pessoa selecionada da sua lista de amigos"/>
</panel>
- <text name="no_friends_msg">
- Para adicionar amigos, use a [secondlife:///app/search/people busca de pessoas] ou clique em um residente para adicioná-lo.
-Para conhecer mais gente, use [secondlife:///app/worldmap o Mapa].
- </text>
</panel>
<panel label="MEUS GRUPOS" name="groups_panel">
<panel label="bottom_panel" name="bottom_panel">
diff --git a/indra/newview/skins/default/xui/pt/panel_places.xml b/indra/newview/skins/default/xui/pt/panel_places.xml
index 9da4201c85..f7b6f54dea 100644
--- a/indra/newview/skins/default/xui/pt/panel_places.xml
+++ b/indra/newview/skins/default/xui/pt/panel_places.xml
@@ -11,5 +11,6 @@
<button label="Salvar" name="save_btn"/>
<button label="Cancelar" name="cancel_btn"/>
<button label="Fechar" name="close_btn"/>
+ <button label="Perfil" name="profile_btn"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/pt/panel_preferences_advanced.xml
index f30c218c81..9c366fb4fd 100644
--- a/indra/newview/skins/default/xui/pt/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/pt/panel_preferences_advanced.xml
@@ -20,6 +20,9 @@
<check_box label="Balão de bate-papo" name="bubble_text_chat"/>
<slider label="Opacidade" name="bubble_chat_opacity"/>
<color_swatch name="background" tool_tip="Cor do balão de bate-papo"/>
+ <text name="UI Size:">
+ Interface
+ </text>
<check_box label="Mostrar erros de script" name="show_script_errors"/>
<radio_group name="show_location">
<radio_item label="Bate-papo local" name="0"/>
@@ -29,4 +32,5 @@
<line_editor label="Botão apertar e falar" name="modifier_combo"/>
<button label="Definir tecla" name="set_voice_hotkey_button"/>
<button label="Botão do meio do mouse" name="set_voice_middlemouse_button" tool_tip="Redefinir como botão do meio do mouse"/>
+ <button label="Outros dispositivos" name="joystick_setup_button"/>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_world_map.xml b/indra/newview/skins/default/xui/pt/panel_world_map.xml
index 584ef8a666..accab068fd 100644
--- a/indra/newview/skins/default/xui/pt/panel_world_map.xml
+++ b/indra/newview/skins/default/xui/pt/panel_world_map.xml
@@ -30,6 +30,12 @@
<panel.string name="world_map_northwest">
NO
</panel.string>
+ <panel.string name="world_map_person">
+ 1 pessoa
+ </panel.string>
+ <panel.string name="world_map_people">
+ [NUMBER] pessoas
+ </panel.string>
<text label="N" name="floater_map_north" text="N">
N
</text>
diff --git a/indra/newview/skins/default/xui/pt/sidepanel_inventory.xml b/indra/newview/skins/default/xui/pt/sidepanel_inventory.xml
index 75b737b8bd..f634236cd2 100644
--- a/indra/newview/skins/default/xui/pt/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/pt/sidepanel_inventory.xml
@@ -3,6 +3,7 @@
<panel label="" name="sidepanel__inventory_panel">
<panel name="button_panel">
<button label="Perfil" name="info_btn"/>
+ <button label="Compartilhar" name="share_btn"/>
<button label="Vestir" name="wear_btn"/>
<button label="Tocar" name="play_btn"/>
<button label="Teletransportar" name="teleport_btn"/>
diff --git a/indra/newview/skins/default/xui/pt/strings.xml b/indra/newview/skins/default/xui/pt/strings.xml
index 773aea5848..51b6581d42 100644
--- a/indra/newview/skins/default/xui/pt/strings.xml
+++ b/indra/newview/skins/default/xui/pt/strings.xml
@@ -249,6 +249,9 @@
<string name="BUTTON_CLOSE_WIN">
Fechar (Ctrl+W)
</string>
+ <string name="BUTTON_CLOSE_CHROME">
+ Fechar
+ </string>
<string name="BUTTON_RESTORE">
Restaurar
</string>
@@ -288,6 +291,9 @@
<string name="GroupNameNone">
(nenhum)
</string>
+ <string name="AvalineCaller">
+ Interlocutor Avaline [ORDER]
+ </string>
<string name="AssetErrorNone">
Nenhum erro
</string>
@@ -883,7 +889,7 @@
Pressione ESC para retornar para visão do mundo
</string>
<string name="InventoryNoMatchingItems">
- Nenhum item correspondente foi encontrado no inventário. Tente fazer uma [secondlife:///app/search/groups &quot;Busca&quot;].
+ Não encontrou o que procura? Tente fazer uma [secondlife:///app/search/groups Busca].
</string>
<string name="FavoritesNoMatchingItems">
Arraste um marco para adicioná-lo aos seus favoritos.
@@ -1542,9 +1548,7 @@
<string name="RegionNoCovenantOtherOwner">
Não foi definido um contrato para essa Região. O terreno nesta região está sendo vendido pelo Proprietário, não pela Linden Lab. Favor contatar o Proprietário da região para detalhes de venda.
</string>
- <string name="covenant_last_modified">
- Última modificação:
- </string>
+ <string name="covenant_last_modified" value="Última modificação:"/>
<string name="none_text" value="(nenhum)"/>
<string name="never_text" value="(nunca)"/>
<string name="GroupOwned">
@@ -3220,6 +3224,15 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="LocationCtrlComboBtnTooltip">
Histórico de localizações
</string>
+ <string name="LocationCtrlAdultIconTooltip">
+ Região Adulta
+ </string>
+ <string name="LocationCtrlModerateIconTooltip">
+ Região Moderada
+ </string>
+ <string name="LocationCtrlGeneralIconTooltip">
+ Região em geral
+ </string>
<string name="UpdaterWindowTitle">
[APP_NAME] Atualização
</string>
@@ -3250,6 +3263,12 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="UpdaterFailStartTitle">
Falha ao iniciar o visualizador
</string>
+ <string name="ItemsComingInTooFastFrom">
+ [APP_NAME]: Entrada de itens rápida demais de [FROM_NAME], visualização automática suspensa por [TIME] segundos
+ </string>
+ <string name="ItemsComingInTooFast">
+ [APP_NAME]: Entrada de itens rápida demais, visualização automática suspensa por [TIME] segundos
+ </string>
<string name="IM_logging_string">
-- Log de mensagem instantânea habilitado --
</string>
@@ -3277,6 +3296,9 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="IM_moderator_label">
(Moderador)
</string>
+ <string name="answered_call">
+ Ligação atendida
+ </string>
<string name="started_call">
Iniciou uma ligação de voz
</string>
@@ -3358,12 +3380,18 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="unread_chat_multiple">
[SOURCES] disseram alguma coisa
</string>
+ <string name="session_initialization_timed_out_error">
+ A inicialização da sessão expirou
+ </string>
<string name="paid_you_ldollars">
[NAME] lhe pagou L$ [AMOUNT]
</string>
<string name="you_paid_ldollars">
You pagou L$[AMOUNT] por [REASON] a [NAME].
</string>
+ <string name="you_paid_ldollars_no_info">
+ Você acaba de pagar L$[AMOUNT].
+ </string>
<string name="you_paid_ldollars_no_reason">
You pagou L$[AMOUNT] a [NAME].
</string>
@@ -3474,4 +3502,13 @@ Denunciar abuso
<string name="Contents">
Conteúdo
</string>
+ <string name="AvatarBirthDateFormat">
+ [mthnum,datetime,slt]/[day,datetime,slt]/[year,datetime,slt]
+ </string>
+ <string name="DefaultMimeType">
+ nenhum/nehum
+ </string>
+ <string name="texture_load_dimensions_error">
+ A imagem excede o limite [WIDTH]*[HEIGHT]
+ </string>
</strings>
diff --git a/indra/test_apps/llplugintest/llmediaplugintest.cpp b/indra/test_apps/llplugintest/llmediaplugintest.cpp
index 7e9a8336e7..7a544debb2 100644
--- a/indra/test_apps/llplugintest/llmediaplugintest.cpp
+++ b/indra/test_apps/llplugintest/llmediaplugintest.cpp
@@ -241,6 +241,9 @@ LLMediaPluginTest::~LLMediaPluginTest()
{
remMediaPanel( mMediaPanels[ i ] );
};
+
+ // Stop the plugin read thread if it's running.
+ LLPluginProcessParent::setUseReadThread(false);
}
////////////////////////////////////////////////////////////////////////////////
@@ -1047,6 +1050,11 @@ void LLMediaPluginTest::gluiCallback( int control_id )
}
}
else
+ if ( control_id == mIdUsePluginReadThread )
+ {
+ LLPluginProcessParent::setUseReadThread(mUsePluginReadThread);
+ }
+ else
if ( control_id == mIdControlCrashPlugin )
{
// send message to plugin and ask it to crash
@@ -1431,6 +1439,12 @@ void LLMediaPluginTest::makeChrome()
glui_window_misc_control->set_main_gfx_window( mAppWindow );
glui_window_misc_control->add_column( true );
+ mIdUsePluginReadThread = start_id++;
+ mUsePluginReadThread = 0;
+ glui_window_misc_control->add_checkbox( "Use plugin read thread", &mUsePluginReadThread, mIdUsePluginReadThread, gluiCallbackWrapper );
+ glui_window_misc_control->set_main_gfx_window( mAppWindow );
+ glui_window_misc_control->add_column( true );
+
mIdLargePanelSpacing = start_id++;
mLargePanelSpacing = 0;
glui_window_misc_control->add_checkbox( "Large Panel Spacing", &mLargePanelSpacing, mIdLargePanelSpacing, gluiCallbackWrapper );
diff --git a/indra/test_apps/llplugintest/llmediaplugintest.h b/indra/test_apps/llplugintest/llmediaplugintest.h
index e7c7699343..5d08e42148 100644
--- a/indra/test_apps/llplugintest/llmediaplugintest.h
+++ b/indra/test_apps/llplugintest/llmediaplugintest.h
@@ -164,6 +164,8 @@ class LLMediaPluginTest : public LLPluginClassMediaOwner
int mRandomBookmarks;
int mIdDisableTimeout;
int mDisableTimeout;
+ int mIdUsePluginReadThread;
+ int mUsePluginReadThread;
int mIdLargePanelSpacing;
int mLargePanelSpacing;
int mIdControlCrashPlugin;